반응형

CPU, 프로세서, 코어... 같은 용어인가?

학부 때 항상 느꼈던 궁금점인데, 왜 이제서야 정리를 하게 되었을까...

CPU, 프로세서, 코어 ... 같은 용어인거 같기도 하고, 아닌거 같기도 하고...



일단 3가지 용어의 기본 정의부터 살펴보자.



- CPU (Central Processing Unit, 중앙 처리 장치)


컴퓨터를 뇌에 비유하자면 단기기억 담당은 RAM, 장기기억은 하드디스크, CPU는 사고를 담당하는 대뇌피질 정도로 볼 수 있겠다.

대뇌피질 없이 인간의 사고가 성립하지 않듯이 컴퓨터도 CPU없이는 그냥 전기 잡아먹는 기계가 된다. 

간단하게 말하자면 컴퓨터의 뇌와 같다.


컴퓨터의 구성 단위 중 기억,연산,제어의 3대 기능을 종합하는 장치이고 컴퓨터의 가장 중요한 부분.

프로그램의 명령어를 해석하여 데이터를 연산/처리 하는 부분, 혹은 그 기능을 내장한 칩을 말한다.

컴퓨터가 동작하는데 필요한 모든 계산을 처리한다. 


CPU 중에서도 각종 전자부품과 반도체 칩을 하나의 작은 칩에 내장한 형태를 마이크로프로세서라고 한다. 마이크로프레서는 전기밥통, 냉장고에 쓰이는 낮은 성능의 제품부터 컴퓨터에 쓰이는 높은 성능의 제품까지 매우 다양한다. 마이크로프로세서들 가운데 가장 복잡하고 성능이 높은 제품음 컴퓨터의 연산장치로 쓰인다.


CPU를 용도에 따라 분류하면


  • MPU (Micro Processor Unit)
    1. CPU 중에서도 각종 전자부품과 반도체칩을 하나의 작은 칩에 내장한 형태를 마이크로프로세서라고 하는데, 이 마이크로프로세서가 바로 MPU이다.
    2. 일반적인 PC/워크스테이션에서 사용되는 CPU의 한 종류.
  • MCU (Micro Controller Unit)
    1. 마이크로컨트롤러로도 불리우며 오늘날 지구상에 존재하는 CPU 숫자의 대다수를 차지한다. 2013년 한 해동안 추정되는 생산량은 190억개로 PC용 프로세서 2억개의 약 100배 규모.
    2. CPU(또는 MPU)를 포함하며, 일정한 용량의 기억장치(램,롬), 입출력제어회로 등을 단일 칩에 모두 내장한 것을 의미한다.
    3. 1개의 소자로 완전한 1개의 컴퓨터로서의 기능을 갖추고 있어 단일칩 마이크로컴퓨터(Singlechip Micro Computer or Onechip Micro Computer)라고도 불린다.


이 밖에도 DSP, FPU, GPU 등이 있다.


참고로 CPU, MPU 이런 용어들은 대부분 업계에서 자사 제품을 지칭하는 용어가 관례적으로 굳어졌기 때문에 생긴 것이다.

가령 예를 들어 CPU는 처음에는 인텔이 자사의 원칩 솔루션을 지칭하던 용어이고, MPU는 그에 대응하는 모토로라가 쓰던 용어이다.

마이크로프로세서는 MPU를 한글로 풀어 놓은 용어이다. 그리고 CPU가 원보드 솔루션에서 원칩솔루션으로 전환한 현재 시점에서 CPU, MPU, 마이크로프로세서라는 단어는 서로 혼용해도 별 문제가 없다. 즉 그냥 MCU의 개념만 잘 구분할 수 있으면 문제되지 않는다.



우선 CPU에 대해서만 살펴보았는데, 벌써부터 정리가 안되는 분을 위해 아주 간단히 정리하자면

CPU는 컴퓨터에 '뇌'에 해당하는 장치로 컴퓨터가 동작하는데 필요한 모든 계산을 처리하고

CPU, MPU, 마이크로프로세서 모두 같은 의미라고 보아도 무방하며, MCU는 개념이 다르다. (후에 다시 언급)



- 프로세서(Processor)


컴퓨터 운영을 위해 기본적인 명령어들을 처리하고 반응하기 위한 논리회로이다.

보통 소프트웨어의 지시를 읽고 하드웨어의 다른 부분으로 신호를 보내는 제어장치(Control Unit)와 덧셈, 뺄셈 등 사칙연산과 AND, OR와 같은 논리연산 등을 담당하는 연산장치(ALU, Arithmetic Logic Unit)로 구성된다.

디바이스가 해야할 일을 총 지휘하는 프로세서를 CPU라고 하며, CPU의 기능을 보조하는 프로세서를 보조프로세서(Coprocessor)라고 한다. PC나 소형 디바이스에 장착된 프로세서를 흔히 마이크로프로세서라고 한다.

그러나 프로세서라는 용어는 점차적으로 CPU라는 용어를 대체해왔다.


프로세서까지 살펴보았는데, 정리하자면 

일반적인 PC/워크스테이션 환경을 기준으로 프로세서, CPU, MPU 모두 같은 개념으로 보면 되어도 무방하며

마이크로프로세서는 프로세서의 한 종류로 구분지으면 될 것 같다.



- 코어(Core)


코어란 각종 연산을 하는 CPU의 핵심요소이며, CPU 내부에는 코어 말고도 컨트롤러, 캐시메모리 등이 들어있다.

쉽게 설명하기 위해 간단히 예를 들면 100만큼의 일을 하는데 A는 초당 5의 일을 하고, B 또한 초당 5의 일을 한다고 가정하자.

그렇게 되면 둘 다 일처리 속도가 똑같다. 하지만 A or B가 혼자 100의 일을 하기에는 힘들 것이다. 하지만 A,B가 함께 일을

한다면 일처리하는데 빠르고 편할 것이다.


바로 이것이 코어의 개념이다. 코어란 CPU안에서 일하는 부품을 말한다.

1개면 싱글코어, 2개면 듀얼코어, 3개면 트리플코어라고 부르며, 많으면 많을수록 일반적으로 처리속도가 빨라진다.

싱글코어는 1개의 칩셋(프로세서)로 처리하는 것이라서 대부분 1Ghz를 넘지못한다. 듀얼코어는 2개의 프로세서로 일을 한다.


그렇다면 싱글코어 2.4Ghz와 듀얼코어 1.4Ghz 중 누가 더 좋을까?

일반적으로 클럭수가 높으면 높을수록 좋다고 알고있는데 이 경우에도 싱글코어가 더 좋은 것일까?


정답은 듀얼코어이다. 한 사람이 2.4로 일하는 것보다 두 사람이 1.4로 일하는 것이 더 빠르기 때문이다.

클럭에 대한 내용은 나중에 다른 글에서 다시 다루겠다.


코어의 개념은 상당히 간단했다. CPU 안에 각종 연산을 하는 핵심요소!

CPU랑은 다르다는 것!



이제 정리를 하고자 하는데, 아무래도 글이 너무 길다보니 읽다가 CPU가 뭐였더라..코어가 뭐였더라..할 것같아서

재밌는 예를 하나 찾아서 설명해보고자 한다. 이 예는 코어와 MCU, CPU를 잘 표현한 것 같다.


코어는 사장님, MCU는 회사라고 비유할 수 있다. 

한 회사는 많은 사람들로 구성되어 있는데 그 중에서도 가장 중요한 사람이 바로 사장님이다.


회사가 잘 운영되기 위해서는 가장 중요한 역할을 하는 사장님 말을 잘 들어야 하는 것처럼 MCU가 잘 동작하기 위해서는 코어의 눈치를 잘 살피고 일을 열심히 해야 한다. 


최근에는 하나의 MCU에 2개 이상의 코어가 들어있는 칩셋들이 있고, 점점 증가하는 추세이다. 이 경우네는 회사에 사장님이 2명 이상 있는 경우가 되는 것이다. (공동대표이사?) 사장님이 2명이면 회사 업무 처리를 나누어서 할 수 있으니 효율적이다. 어쨌든 한 개의 코어보다는 빠르지 않을까?


그럼 CPU는 무슨 일을 하는가? 위에서 이미 살펴보았지만 계속해서 이야기를 하자면... CPU는 임원진에 비유할 수 있다.

사장님을 포함해 전무, 상무, 부사장님 등으로 구성된 임원진은 회사의 아주 핵심 인사들이며 회사는 


CPU안에는 코어, 코프로세서,MMU, 캐시 등으로 구성되어 있다. 흔히 CPU 또는 프로세서라고 불리는데,

만약 ARM 코어가 들어있으면 ARM 프로세서라고 부른다. 1개의 MCU 안에 코어가 2개이면 CPU가 2개인 셈이 되는 것이다.


ARM 프로세서를 가지고 MCU를 만드는 회사는 대표적으로 삼성, 티아이(TI), 에스티(ST), 퀄컴(Qualcomm) 등이 있다.

일반적으로 Soc(System on Chip)를 만드는 업체라고 한다. Soc 업체들은 ARM 프로세서를 가지고 MCU를 만들며 각 회사마다 고유의 이름을 붙여서 MCU 이름을 짓는다고 한다.



이렇게 해서 CPU, 프로세서, 코어에 대해 자세히 살펴보았다. 간단하게 요약하자면 본 글의 주황색 글씨만 읽어도 된다.

글을 쓰는데 많은 검색과 서적을 참조했는데 사실 글쓴이 스스로 공부를 위해서 작성하는 목적으로 시작했기에 출처를 적어야 하는가 싶었지만 글작성에 있어서 직접으로 인용한 내용에 대해서는 출처를 밝히는 게 옳은 것 같아서 아래에 출처를 밝히는 바이다.




<출처>

http://egloos.zum.com/recipes/v/5249877

https://namu.wiki/w/CPU

http://nesoft.tistory.com/62

http://www.enuri.com/knowbox/KbCopy.jsp?kbno=255459



'컴퓨터공학' 카테고리의 다른 글

멀티 프로그래밍이란?  (0) 2016.02.12
멀티태스킹이란?  (2) 2016.02.12
멀티 프로세싱이란?  (2) 2016.02.12
Thread(쓰레드)란 무엇인가?  (0) 2016.02.11
Difference between interrupt, exception and trap  (0) 2016.02.03

댓글

Designed by JB FACTORY