본문 바로가기
Computer Architecture

CPU(Central Processing Unit)에 대한 간단한 이해

by 노마드공학자 2020. 12. 11.

[GPU에 대한 간단한 이해] : https://limitsinx.tistory.com/24 

 

 

"CPU??"

 

 

CPU란 컴퓨터의 '뇌'에 해당하는 부분입니다.

 

즉, 중앙에서 제어/연산을 하는 부분으로써, 크게 3가지 부분으로 나누어져있습니다. (제어장치/연산장치/레지스터)

 

1. 제어장치

CPU에서 일어나는 모든 작업을 통제하고 관리(제어)하며, 프로그램의 instruction을 해석하고, 해석된 instruction에따라 동작을 지시합니다.

 

2. 연산장치

ALU(Arithmetic Logic Unit)은, 제어장치의 신호에따라(instruction source) 사칙연산과 AND,OR,NOT등의 논리적인 연산을 수행합니다.

 

3. 레지스터

CPU에 instruction이나, 연산한 결과(instruction destination)을 저장하는 기억장소로, CPU에서 instruction을 실행하는동안 연산에 필요한 operands들을 저장합니다.

(극히 소량의 데이터나 처리중인 중간결과를 일시적으로 저장해두는 고속 엑세스 영역/S-RAM)

 

이렇게 세가지 부분의 합으로 CPU는 구성되어 있으며,

 

CPU는 복잡한 고차원 연산이 가능한대신 단순 반복작업에는 최적화 되어있지 않습니다. (GPU와 비교글 참조)

 

CPU의 연산장치인 'Core'는 보통 6개~8개로 최신버전에 따라서는 16개~32개까지의 멀티코어가 나옵니다.

 

 

이 코어하나하나가 훌륭한계산기라고 생각하시면 되고, multi threading시 여러개의 훌륭한계산기를 동시에 돌릴수있다고 생각하시면됩니다.

 

 

2000년 중반 이전까지는, 각각의 CPU 코어 1개의 성능을 최대한 끌어올리는데 집중했습니다.

 

보통, CPU clock이라고해서 CPU 2GHz 이런식으로 주파수단위로 적혀있는것을 볼 수 있는데, 

 

주파스(Frequency)란, 어떤 한 명령어를 수행하는 데 필요한 Period의 역수로써

 

즉, 어떤 한 명령어를 수행하는데 필요한 시간이 길다고하면, 그 역수인 주파수는 낮아지고

 

명령어를 수행하는데 필요한 시간이 짧아질수록, 주파수는 높아집니다.

 

따라서 주파수가 2GHz라는건 어떤명령어를 수행하는데 필요한 시간이 1/(2*10^9)sec 라는거죠 (간단하게 설명을 위해)

 

따라서 주파수를 올리면 올릴수록 좋고, 이 주파수를 올리는법은 칩에 최대한 많은 트랜지스터를 우겨넣는것입니다.

 

 

"CPU의 코어가 연산한다.. 명령어를 수행한다" 라는말은 기계어(Machine language)의 입장에서는 1과 0의비트를 엄청나게 빠르게 반복함으로써

 

명령어를 해석(decoding)하고 연산(EX)하는것을 의미합니다. 즉, 1과 0을 표현하는 방법이 우리가 물리적으로 전구의 버튼을 키고 끄듯 한다고 생각하면

 

전구의 불을 한번 껏다 키면 1과 0 이라는 데이터가 생성된걸로 볼 수 있습니다.

 

이걸, 트랜지스터라는 도구를 사용해서 미친듯이 초당 수백만번씩 껏다킨다면, 같은 1초라도 사람이 껏다킬때와 다르게 엄청나게 많은 정보를 송수신할 수 있겠죠

 

간단하게 생각해서

 

트랜지스터가 1,0을 초당 1000번 껏다킬수있다고하면, 수신하는입장에서는 2^1000개의 데이터를 송신할수있겠죠

 

그럼 이런 트랜지스터가 2개가 연결되어있다면 2^1000 * 2^1000 으로 4^1000개의 데이터를 송신할 수 있습니다. (이 1과 0을 Bit라고 부릅니다.)

 

즉, 트랜지스터를 엄청나게 많이 칩에 때려박을수록 처리할 수 있는 비트의 양이 늘어나게되고, 이건 명령어를 수행하는 시간을 줄임으로써 CPU clock인 Frequency가 올라가게 될 수 있다는것을 의미하죠

 

무어의 법칙

 

"18개월마다 트랜지스터를 이전의 2배씩 때려박은 칩이 나올것이다" 라는것이 유명한 고든무어라는 엔지니어의 말인데요

 

이게 현재까지는 그럭저럭 잘 지켜져왔으나, 최근들어서는 이 법칙이 깨지고 있습니다.

 

그 이유인즉슨, 트랜지스터를 많이 때려박기위해 트랜지스터는 소형화되고, 한개의 칩위에 셀수없이 많은 트랜지스터가 들어가다보니

 

이 CPU의 발열을 막아줄수가 없게되죠

 

간단하게 생각하면, 사람이 전등의 스위치를 할수있는한 최대한 1과0을 번갈아누르게되면 점점 스위치와 손이 마찰열에 의해 뜨거워지겠죠

 

이런 원리입니다. 트랜지스터도 엄청난속도로 스위치를 껐다키다보니 발열문제가 너무 심하게되고, 이건 결국 제품을 사용할 수 없는 단계까지 만들어지죠

 

이런 문제들때문에 Single Thread Performance(단일 CPU성능)향상은 더이상 CPU업계의 관심이 아닙니다.

 

2000년 중반부터는 위의 문제들때문에 Multi-Thread Performance로 포커스가 돌아가서, 한개의 CPU성능을 고집하는게 아니라, 충분히 훌륭한 단일 코어들을

 

여러개로 묶어 멀티코어 형태로 만드는 것이 주 메인연구분야입니다.

 

https://blog.naver.com/ithopenanum/222025888093

인텔 10세대 cpu, 14나노의 장인 인텔 이번에 해냈을까요? - 1편

 

 

 

 

트랜지스터 공정을 14nm이하로 인텔이 진행하지 못하고 있었는데, 최근 AMD가 7nm공정에 성공했다고 합니다.

 

기존의 AMD는 뭔가.. intel에 비하면 가성비? 취급을 받으면서 상대적으로 입지가 약했는데요

 

이전까지만해도 CPU계의 절대강자로 인텔이 거의 모든 서버CPU시장을 독점하고 있었던 intel에게는, 7nm공정을 통해 intel의 최신 서버용칩 제논보다도 훌륭한

 

AMD의 Epyc CPU가 나와 (가격도 거의 절반입니다.), 현재 MS APPLE LENOVO외 가라성같은 기업들이 기존 intel칩에서 amd칩으로 넘어가고 있습니다.

 

(intel의 갑질도 워낙심했습니다. 독점이였다보니)

 

이런, AMD의 성장을 진두지휘한 리사수 라는 반도체업계에서는 신과같은 인물이 앞으로 정말 intel을 뛰어넘는 AMD가 될 수 있을지 궁금하게 만드네요

 

앞으로도 CPU시장은 꾸준히 커질것이고, intel독점체제가아닌 amd vs intel 체제로 경쟁시장이 생길 수 있을지 귀추가 주목됩니다.

 

댓글