관리 메뉴

드럼치는 프로그래머

[H/W] [MCU]] CPU / MPU / MCU 본문

★─Programing/☆─HardWare

[H/W] [MCU]] CPU / MPU / MCU

드럼치는한동이 2008. 5. 1. 20:58

* CPU/MPU/MCU


* 무엇이 컴퓨터인가?

우리 집사람부터 시작해서 전기 밥통이 컴퓨터다 라고 얘기하면 잘 믿지 않으려는 경향이 있다. 전기 밥통만 컴퓨터냐 하면 전기 다리미, 전자 레인지 등등도 모두 컴퓨터이고, 전자 계산기가 강력한 컴퓨터 임은 말할것도 없다. 그렇다면 전기만 들어가면 모두 컴퓨터냐 하면 그것은 아니다. 왜냐하면 선풍기, 스피커 등등은 컴퓨터라고 할수 없다. 무엇이 컴퓨터이고 무엇이 컴퓨터가 아닌가? 그것은 바로 컴퓨터의 구조를 갖고 있느냐 아니냐 하는 차이이다.


컴퓨터의 구조란 "입력과 출력을 갖고 내부적으로 CPU에서 연산을 하는 구조"를 말한다.


전기 밥통의 경우를 살펴보면 여러가지 input이 존재하고 output이 존재하고, 내부적으로 연산을 한다. (중요한 것은 input과 output과 calcuration이지 input을 키보드로 받아야 한다던지, output이 모니터로 나와야 한다던지 하는 것이 아니다.) 대개 이런 전자 제품은 정해진 입력을 받으며 정해진 프로그램내에서만 연산하고 결과를 output으로 출력한다.


이런 간단한 기능의 컴퓨터를 만들기 위해서는 (어차피 기능이 별로 없으므로) 고성능의 CPU를 쓸일도 없고 써서도 안된다. 아주 간단한 밥통의 경우 밥짓기, 보온, 취소 의 세가지 버튼만 존재하면 되고 따라서 CPU에서 0, 1, 2만을 알려주면 되는데, 여기에 INTEL의 PENTIUM 칩을 쓴다는 것은 밥통 값보다 CPU 값이 더 들어가는 배보다 배꼽이 더큰 상황이 발생한다.


* MPU란 무엇인가?

따라서 이런 작은 기능의 CPU가 필요하게 되고, 이런 기능을 갖고 있는 CPU를 특별히 MPU라고 부른다. MPU란 Micro Processing Unit의 약자이다.


이러한 MPU는 또 종류가 너무너무 많아서 여기에 적을수조차 없지만, 대표적인 MPU들 가운데 Z80, 8051 등이 있다. AVR칩은 근래에 등장한 MPU로서 여러가지 장점을 갖고 있으면서 부상하고 있는 MPU의 일종이다.


MPU도 자그마한 컴퓨터이기 때문에 메모리, 롬, I/O를 모두 갖고 있다. 따라서 MPU를 다루려면 MPU의 특징이나 연산과정을 이해할수 있어야 하기 때문에 Data sheet를 반드시 숙지하고 있어야 한다. MPU가 꽤 여러가지 기능을 갖고 있기 때문에 Data sheet의 양또한 상당히 많다.


* MCU란 무엇인가?

MCU는 한마디로 얘기해서 "MPU를 원칩화 한것"이라고 말할수 있다. 일반적으로 우리가 알고있는 MPU인 인텔의 MPU는 칩 내부에 RAM이나 ROM등을 갖고 있지 않다. (내부 캐쉬라던가 레지스터를 말하는게 아니다.) 물론 이러한 메모리를 칩내부에 집어넣어 만들수도 있으나 그렇게 만드는 것은 매우 비 효율적이다. (한번 상상해 보아라. 인텔의 펜티엄이 칩 내부에 4G 정도의 메모리를 갖고 있다면 칩의 사이즈는 얼마나 커질것이며 가격은 또 얼마나 비싸질것인가. 또한 1G 정도의 메모리만 필요한 사용자도 울며 겨자먹기 식으로 4G를 쓸수 밖에 없으며 성능이 우수한 다른 종류의 메모리가 나온다고 해도 교체할수 조차 없다.) 인텔의 MPU는 주변장치를 최대한 제거한채 MPU의 고속연산만을 위해 설계된 칩이라고 할수 있다.


그러나, 컨트롤러를 위해 설계된 MCU는 위와 사정이 다르다. MCU는 위와 같은 MPU에 비해 고속연산을 위해 설계된 칩이 아니다. 인텔의 최신 펜티엄 칩은 1GHz 대의 엄청나게 빠른 클럭을 갖고 있지만, MCU는 수십 KHz 정도에서 십 수MHz 정도가 고작이다. 매우 빠른 것도 수십 MHz를 넘지 않는다. 그렇다면 MCU를 왜 고속으로 만들지 않는가.


MCU는 그렇게 고속으로 만들 필요가 없기 때문이다. 일반 MPU에 대해 연산량이 그렇게 많지 않을뿐더러, 특정 어플리케이션 (예를 들면 밥통)에 대해서만 적용하면 되기 때문이다. 또한 처리해야할 작업이 많지 않기때문에 메모리 또한 적은 사이즈로도 충분히 가능하다.보통 MCU가 메모리를 많이 갖는다고 해도 1M를 갖지 않는데, 메모리가 1M라면 MPU에서는 윈도우 프로세스 하나 띄우기도 벅찬 사이즈이지만  MCU에서는 감당하기 힘들정도의 메모리이다.


MCU도 CPU를 내장하고 있기때문에 메모리는 당연히 필요하다. 그러나 MPU와 같이 대용량의 메모리는 필요없고, 확장할 일도 그다지 없기 때문에 소용량의 메모리를 칩에 내장한다. 아울러 MPU에는 별로 필요없는 컨트롤하기 위한 기능을 추가한다. 이렇게해서 MCU를 만드는 것이다.

[출처] CPU / MPU / MCU|작성자 김씨

Comments