기술면접 대비 10탄 CPU

양진영·2022년 4월 20일
0

오늘은 항상 공부해야지 하며 마음만 먹고있었던 cs를 시작하기로 마음을 먹고 찾던중 많이는 접해봤지만 정확하게 무엇인지 알지못했던 CPU에 대해서 알아보고자 한다. CPU는 central process unit의 줄인 말로 말그대로 중앙에서 연산,처리,통제 등 다양한 역할을 맡고 있다.

cpu의 동작원리는 개념적으로는 간단하다. 우선 크게 세가지의 주요 기능들이 순서에 맞게 이루어지는데 첫번째로는 입력장치 로 부터 어떠한 데이터를 처리해줘야 한다는 명령을 받으면 레지스터 중 모든 명령어가 저장되어있는 프로그램 카운터(pc)이 명령어 레지스터(ir)에 현재 수행중인(입력받은) 데이터를 처리할수 있는 명령어를 전달해준다. 또한 레지스터에는 처리한 데이터를 임시적으로 저장할수있는 램이 존재한다. 아무튼, 레지스터에서 해당 명령을 수행할수있는 명령어 주소 나 명령어 코드들이 제어장치를 통해 서로 연결이 되고 처리해야하는 데이터 값이 연산장치로 이동되어 연산을 수행한다. 이후 연산이 완료된 데이터는 다시 레지스터로 이동되어 데이터값을 사용자에게 전달해줄지, 아니면 전달하지 않고 보조기억장치인 disc에 저장할지가 결정되며 동작이 마무리된다.

과거 cpu에는 하나의 코어가 탑제되었었다.코어란 프로세스를 처리하는 역할을 하는데, 하나의 코어는 하나의 프로세스만 처리할수있어 프로세스가 동작하는 동안 다른 프로세스를 돌릴수없었다. 프로세스를 짧게 설명하고 가자면 어떠한 프로그램을 실행시키기 위해 컴퓨터로 부터 리소스를 할당받아 프로그램을 실행시키는 역할을 수행하는것 이라고 생각하면 편할것이다. 예를 들면 웹서핑, 이것이 하나의 프로세스라고 보면 생각하기 쉬울것같다. 과거 cpu에는 싱글코어만 탑제되어 이 싱글코어에 대한 성능 업그레이드만 했었지만 하나의 코어만으로는 쉽게 과열되어 한계가 느껴져 intel에서 처음으로 멀티코어 연구를 시작했다고 한다. 그래서 나온것이 듀얼코어(코어 2개), 쿼드코어(코어 4개), 옥타코어(코어 8개)가 나오고 거기에 쓰레드 라는 개념도 나온다. 쓰레드는 일종의 가상 코어라고 보면쉽다. 프로세스는 어떤 프로그램을 실행시키기 위해 컴퓨터로 부터 리소스를 할당 받았다고 한다면 쓰레드는 하나의 프로세스안에서 여러가지 일을 나누어서 할수있게 하는 역할 이라고 보면 될것이다. 예를 들면 유튜브를 보는데 동영상을 실시간으로 다운받고 그것을 재생하는것은 유튜브라는 프로그램을 실행시키는데 필요한 프로세스에 여러 작업들이 병렬적으로 처리되는 쓰레드 라고 보면 쉽다.

오늘은 cpu에 대해서 알아봤는데 동작원리는 간단하게 보면 쉽지만 계속보니 점점 어려워져서 다음에 더 봐야할거같다,

profile
왜? 라는 질문을 중요시하는 서버 개발자입니다

0개의 댓글