마이크로 프로세서의 기본 구조 CPU란 Central Processing Unit의 약자로, 중앙 처리 장치라고 하는데, 사전적 의미로는 컴퓨터의 제어와 데이터의 처리를 하는 장치를 말하고, 기능상으로는 컴퓨터에서 두뇌 역할을 하는 장치이다. 컴퓨터의 동작에서, 키보드나 마우스 등의 입력 장치를 통해서 입력된 자료는 일시적으로 컴퓨터의 기억 장치(memory, 메모리)에 저장된다. 이 자료는 CPU에서 처리된 후 모니터나 프린터와 같은 출력 장치를 통해서 외부로 출력되는 것이 일반적이다. 컴퓨터에서 CPU가 전체적인 작업을 처리하는 것은 아니지만, 컴퓨터라는 장치가 기본적으로 연산을 처리하는데 있어서 CPU가 핵심을 담당하는 것이 사실인 만큼 컴퓨터의 종류를 나타낼 때 286, 386, 486, 펜티엄과 같은 명칭을 사용하기도 하는 것이다. | |||||||||||||
|
CPU의 종류 PC에 장착되어 있는 CPU는 각종 연산 기능과 제어 기능을 하나의 마이크로 프로세서에 집약시킨 형태를 가진다. 이것은 연산을 처리하는 방식과 한 번에 처리할 수 있는 데이터의 양에 따라 여러 가지로 구분할 수 있다. | ||||||||||
|
CISC와 RISC CPU는 명령어의 구성 방식에 따라서 CISC와 RISC 방식으로 구분할 수 있다. 또한, 자료를 처리하는 방식에 따라서 SIMD, VLIW 방식으로 나눌 수 있다. | ||||||||
|
SIMD와 VLIW | ||||
|
생산 업체에 따른 구분 CPU를 기능이나 방식에 따라서 구분하는 것과 생산업체별로 구분하는 것은 다소 애매하고 중복되는 분류이지만 CPU에 대한 전체적인 이해를 돕기 위해 간단히 업체별 CPU의 종류를 살펴보도록 한다. | ||||||
|
CPU 발전사 여기에서는 CPU의 발전과정과 이에 따라 새롭게 등장된 기술과 특징에 대하여 설명하도록 한다. 가능한 폭넓은 범위의 제품 영역을 설명하기는 하지만 너무나 기술적인 내용는 생략하기로 하고 용어적인 설명을 위주로 설명한다. 컴퓨터에 사용하는 마이크로 프로세서는 지난 25년간 계속적인 발전을 거듭하였다. 1970년 말 개인용 컴퓨터가 출시된 이후에 마이크로 프로세서의 무어의 법칙에 힘입어서 더욱더 비약적인 발전을 하기에 이르렀다. 또한 인텔은 새로운 기술인 DIB과 MMX, SEC 카트리지 방식을 채용한 강력한 프로세서를 출시하였다. 여기에서 현재까지의 출시된 CPU를 살펴보고 마이크로 프로세서의 상황을 정리하는 의미에서 발전과정을 살펴보기로 한다. |
Intel 계열 | ||||||||
|
8086 인텔이 1978년도에 발표한 것이 8086이다. 8086의 장점은 기존의 8비트 CPU들이 가지고있던 64KB의 메모리 제한을 없앴다는 점이다. 8086은 기존의 8비트 프로세서인 8080, 8085의 프로그램을 직접 실행할 수는 없지만 명령어가 상당히 유사하게 구성되어 있기 때문에 명령어 코드를 수정하게 되면 8086에서 구동이 가능하다. 8086의 특징은 다음과 같다. | ||||
|
8088 |
8088은 NMOS 마이크로 프로세서로 가격을 내리기 위해 8086의 외부 데이터버스 폭을 16비트에서 8비트로 한 CPU로서 내부 구조는 8086과 거의 같다. 인텔의 8088은 1981년에 발표한 초기 IBM XT에 처음으로 장착된 CPU이다. 8088 칩은 4.77MHz로 동작하며, 8086 마이크로프로세서와 동일한 명령어 세트를 사용한다. 즉 내주데이터를 8비트로 처리한다는 뜻이다. 8088에서는 최소 모드(minimum mode)와 최대 모드(maximum mode)가 있는데, 최소 모드란 이 8088을 제어용으로 사용할 때를 말하며, 최대 모드란 PC용과 같이 범용으로 쓸 때를 말한다. 8088은 곱셈, 나눗셈을 포함한 16비트 연산과 8086에서 사용한 세그먼트에 의한 메모리 관리 기법을 이용하며, 8086과 마찬가지로 20비트 어드레스버스를 가지고 있어 1MB의 메모리를 사용할 수 있다. CPU의 모양은 DIP(Dual In-line Pakage)의 형태이다. 초기의 8088은 5MHz 이하에서만 동작을 하였으며 8088-1이라고 하였다. 그후에 클럭수가 6.66MHz, 7.16MHz, 8.0MHz 등으로 높아짐에 따라 좀더 고속의 클럭에서 동작하는 CPU가 필요하게 되었다. 이렇게 해서 만든 것이 8088-2이다. 8088은 29,000개의 트랜지스터가 집약되어 있다. |
80186/80188 |
80186/80188은 8086/8088 CPU에 외부의 I/O를 내장한 형태이다. 이것은 PC용이 아니라 마이크로 컨트롤러로서 사용하도록 제작이 되었다. IBM의 PC 구조와도 다르게 제작되어서 PC에는 사용이 불가능하다. 이러한 원칩을 이용한 PC에는 NEC의 V25,V40이 있으며,IBM PC의 내부 I/O와 동일하게 제작되어 사용이 가능하였다. 프로세서의 모양은 PGA의 형태를 띄고 있다. |
80286 인텔이 1981년에 발표한 새로운 16비트 마이크로 프로세서가 80286이다. 80286은 이전 CPU과 비교하여 상당히 많은 발전을 했다. 칩의 패키지 형태로 PLLC(Plastic Leadless Chip Carrier)를 사용하였으며, 8088보다 4배 많은 130,000개의 트랜지스터가 집약되어 있다. 80286은 8086의 프로그램을 좀더 고속으로 실행하는 리얼 모드(real mode)와 고속운영 체제를 염두에 둔 새로운 모드인 보호모드 (protected mode)를 가지고 있었다. 리얼 모드에서 80286은 8086과 같은 명령어를 읽어들이며 유사한 동작을 하는데 80286은 8086의 명령어 모드와 어드레싱 모드를 이어받음으로써 기존의 도스기반의 자원을 그대로 살릴 수 있었다. | |||||||
|
80386 | |||||
|
코프로세서 코프로세서는 고속으로 산술연산, 로그함수, 삼각함수 등의 연산을 하는 것으로 마이크로프로세서와는 병렬로 수행한다. 이 병렬 연산은 코프로세서가 계산을 하고 있는 동안에도 마이크로 프로세서로 하여금 다른 일을 수행 가능하도록 해줌으로 전체적인 계산에 걸리는 시간을 단축시켜준다. | |||||||
|
코프로세서의 동작원리 코프로세서는 CPU의 명령에 따라 동작하는데 주 프로세서가 명령을 수행하다가 코프로세서가 해야할 작업을 만나게 되면 코 프로세서가 다른 작업을 수행하고 있지 않다면 해당 명령어를 전송하고 다른 작업을 수행중이라면 대기하게 된다. 그후에 코프로세서는 수행명령을 점검하고 동시에 주 프로세서는 수행 명령을 점검하고 동시에 주 프로세서는 메모리에 있는 필요한 변수의 어드레스를 계산하여 코 프로세서로 넘겨주고 자신은 다음 명령어를 가져오게 된다. | |
|
80486 80486은 여러 개의 LSI로 구성되어진 80386 마이크로프로세서 패밀리를 직접화한 것으로, 80386 CPU를 중심으로 캐쉬 컨트롤러, 80387 수치 연산 보조 프로세서(math coprocessor) 및 8KB 캐쉬 메모리를 하나의 칩에 집적한 마이크로프로세서이다. 80486에서는 자주 사용되는 명령어들을 한 CPU 클록 사이클에 수행시킬 수 있는 RISC(Reduced Instruction Set Computer) 디자인 기술이 첨가되었다. 86계열에서 80486 프로세서는 유일하게 캐시를 이용해 바로 다음 명령어로부터 입력된 데이터를 사용할 수 있는 CPU이다. 대부분의 RISC 프로세서들은 처음부터 캐시를 내장한 형태로 사용한다. 프로그래머는 바로 입력된 데이터들을 사용하기 전에 nop명령어를 삽입하기도 하는데, nop(non-operation) 명령의 사용은 필요(하드웨어 타이밍 맞추기등)에 따라 사용이 된다. . | |||||||||||||
|
80486sx | |
|
80486DX2 50/66/80MHz |
이 제품들의 클럭속도(CPU-캐쉬-메모리와 로컬버스속도)는 25/33/40MHz이며 5V로 구동된다. 8KB의 통합된 내장캐쉬를 가지고 있으며 120만개의 트랜지스터가 집적되어 있고 0.8미크론 CMOS공정으로 만들어진다. ODP의 발전된 형태로서 80486DX2가 있다. 80486DX2는 배율의 2배로서 DX2는 ODP와 마찬가지로 외부적으로는 X MHz에서 동작하지만 내부적으로는 2X MHz에서 동작하게 되어있다. 따라서 66MHz 486DX2는 33MHz 칩용으로 설계된 마더보드에서 동작하지만, 내부적으로는 66MHz에서 움직이게 된다. 기존의 33MHz 486DX CPU가 있는 메인보드에서 33MHz 486DX 프로세서를 66MHz 486DX 프로세서로 교체하면 66MHz 486이 된다. |
486DX4 75/100MHz |
486 CPU의 외부에서 다루어지는 클럭 속도는 25/33.3MHz 이며 3.5V의 저전압구조를 가지고 있어서 5V 버전에 비해 상대적으로 발열량이 적은 편이다. 따라서 노트북용으로 상당히 많이 사용되었다. 16KB의 캐쉬가 내장되어 있고 속도도 486DX2보다 훨씬 빠르며 150만개의 트랜지스터를 집적했다. 이 CPU는 0.8미크론 CMOS공정으로 만들어진다. 그러나 AMD제품(Am486DX4)은 DX2처럼 8KB의 용량을 가지고 있다. 386SL에서 사용된 전원관리기능을 칩에 사용한 후 배율을 3배로 늘린 프로세서이다. |
ODP 서서히 386 CPU에서 486 CPU 쪽으로 관심이 옮겨지던 92년 5월 26일 인텔은 오버드라이브 프로세서(OverDrive Processor)라는 이름의 새로운 프로세서를 발표했다. 인텔이 발표한 오버드라이브 프로세서(이하 ODP)의 가장 큰 목적은 소프트웨어에의 업그레이드 개념을 시스템에서 가장 큰 역할을 맡고 있는 CPU에도 적용 해보자는 것으로 사용자가 좀더 나은 성능의 CPU를 쉽고 간편하게 장착해서 사용할 수 있게끔 하는 것이었다. 인텔은 ODP가 CPU 성능은 2배, PC의 전체적인 성능은 70% 가량 향상시킨다고 발표했다. 초창기 GUI환경으로 접어들게 되면서 강력한 32비트 운영체제와 프로그램들은 좀더 나은 성능의 하드웨어를 염두에 두고 개발이 되고 있었으며, 하드웨어의 가격은 점차적으로 하락하고 있었습니다. 일반 사용자들은 업그레이드의 여부가 시스템 구입의 큰 이슈로 부각이 되었는데, 인텔에서 이러한 점을 염두에 두고 ODP를 내놓게 된 것이다. | ||
|
오버드라이브의 성능 |
그렇다면 ODP를 이용하여 사용자가 시스템을 업그레이드 했을 때 얻을 수 있는 성능향상은 어느 정도일까? 이 질문에 대한 답으로 ODP의 기술적인 배경을 살펴보아야 한다. 이미 언급했던 ODP는 독립된 CPU라고 할 수 있다. 즉 설치되었을 때 기존의 CPU의 성능을 향상시켜주는 것이 아니라 기존의 CPU를 대신하는 새로운 CPU로서 작동하는 것이다. 이러한 ODP에서 사용된 가장 중요한 기술은 현재 486DX CPU에 적용되고 있는 스피드 더블링 기술이다. 대부분의 독자들이 CPU의 모델 뒤에 항상 따라붙는 일련의 숫자를 알고 있을 것이다. 이미 16비트 프로세서였던 8086, 8088때부터 이 숫자는 CPU의 동작 속도를 결정짓는 주파수(Frequency)로 알려져 있다. 이 주파수가 CPU의 속도를 결정할 수 있는 이유는 CPU를 비롯한 모든 디지탈 소자는 클럭이라고 불리는 핀을 통해서 일련의 동작을 위한 기준 신호를 입력받기 때문이다. 이 신호는 정기적으로 0과 1을 되풀이하는 고주파의 신호이며, 디지탈 소자는 이 신호가 1일 때 동작하게 된다. 33MHz라면 1초 동안에 3300만 번 0과 1을 반복하게되며 최대 3300번의 일을 수행한다. 만약 이러한 기준 신호가 없다면 수십만 개의 트랜지스터가 모인 CPU가 동작하는 일은 상상할 수도 없는 일이다. 따라서 이 주파수의 속도가 빨라지면 CPU를 구성하는 모든 소자들의 작동 속도는 빨라지고 결국 CPU의 전체적인 처리속도는 빨라지게 된다. 스피드 더블링 기술이란 마더보드의 크리스탈 오실레이터라는 부품을 통해 입력받는 주파수를 CPU 내부에서 두 배로 증가시켜 사용할 수 있도록 클럭을 두 배로 증대시키는 것을 말한다. 따라서 486DX2-50은 실제로 25MHz에서 동작하는 마더보드에 장착되어 50MHz의 마더보드에 장착된 CPU처럼 작동하게 된다. 이 기술은 마더보드의 생산업체나 사용자에게 모두 호평 받을 수 있었다. 마더보드의 설계자는 고주파에서도 작동하도록 설계되어야 하는 어려움과 가격상승을 피할 수 있으며 사용자는 좀 더 비싼 마더보드를 구입하지 않고도 고성능의 CPU를 사용할 수 있기 때문이다. 하지만 만약 DX2-50 CPU를 사용할 경우 분명 마더보드에 설치된 장치들은 CPU 속도의 반에 해당하는 25MHz의 속도로 동작하게 된다. 이것은 CPU가 램이나 슬롯에 꽂혀있는 I/O 포트를 비롯한 CPU외부장치와 데이터를 교환하기 위해서는 어쩔 수 없이 기다려야 하는 것을 의미한다. 따라서 실직적인 컴퓨터의 성능은 2배로 증가할 수 없다. 이런 문제들은 486DX가 램에서 데이터를 읽어오거나 부동소수점연산을 위한 동작들을 위해 486 CPU 내부에 8KB의 내부캐쉬와 FPU를 내장했기 때문에 어느 정도 해결될 수 있다. 여기서 조금 더 생각을 해본다면 내부캐쉬와 FPU를 CPU 내에 갖고 있지 않은 386 CPU에서는 386DX2를 개발했다. 하지만, 486DX2 만큼의 속도 향상을 기대하기 어렵다는 것을 알 수 있을 것이다. 결국 대부분의 독자들이 DX2의 '2'라는 숫자가 시스템 전체의 성능을 2배로 향상시키는 것을 의미한다고 생각하는 것은 잘못된 인식이며, 인텔에서도 밝혔듯이 최대 70%정도의 시스템 속도 향상을 기대할 수 있다. 물론 초기에 발표된 16MHz, 20MHz 그리고 25MHz의 클럭에서 작동하는 80486SX용 ODP는 이미 설명했듯이 486DX2 CPU라고 할 수 있으므로 거의 2배에 해당하는 속도 향상을 느낄 수도 있다. 하지만 486DX용으로 발표된 ODP들은 486SX용 ODP 만큼의 속도 향상을 기대하기 어렵다. 특히 486DX2용으로 ODP가 발표되었지만 이들 ODP들이 2배의 속도향상을 가져다준다고 장담할 수 없다. 분명 내부적으로 클럭만을 2배, 3배 또는 4배(?)로 하여 속도를 향상시키는데는 마더보드와 CPU모두 근본적인 구조의 한계가 분명히 있을 것이기 때문이다. |
펜티엄의 기원을 찾아서 80x86시리즈로 나가던 인텔은 칩의 이름을 놓고 벌인 재판에서 패함으로써 더이상 80x86이라는 이름을 붙일 수 없었다. 그래서 인텔에서는 실제로 80586이라고 붙여야 되는 새로운 칩의 이름을 다섯 번째라는 의미의 희랍어인 펜티엄(Pentium)이라는 이름을 붙였다. 이 칩은 80386, 80486등의 칩에서 32비트로 데이터를 처리하는 것이 아니고 64비트로 데이터를 처리하며 클럭수도 66Mhz까지 지원하게 되었다. | ||||
|
펜티엄 120MHz 120MHz 펜티엄은 0.35마이크론 BiCMOS 기술을 채택하여 제작된 CPU로 펜티엄 프로세서의 근간을 이루고 있다 | ||||
|