마이크로프로세서

역사

"마이크로프로세서"라는 용어를 처음 사용한 것은 1968년 발표된 시스템 21 소형 컴퓨터 시스템에 쓰인 맞춤식 집적 회로를 설명한 비아트론 컴퓨터 시스템즈이다.
1971년에 인텔은 1971년 최초의 4비트 마이크로프로세서 4004를, 1972년에 8비트 마이크로프로세서 8008을 선보였다. 최초의 마이크로프로세서는 일반 컴퓨터의 중앙처리장치에서 주기억장치를 제외한 연산장치, 제어장치 및 각종 레지스터들을 단지 1개의 IC 소자에 집적시킨 것이다.
오늘날은 이를 흔히 MPU(microprocessing unit)라고 부르기도 한다.

개요

용도에 따라 입·출력 등의 주변 회로나 메모리를 내장한 것도 있어서 하나의 LSI 또는 컴퓨터 시스템으로서 동작하는 것을 ‘원칩 마이크로컴퓨터’라고 부른다. 마이크로프로세서는 하나의 LSI칩으로 기능을 수행할 수도 있지만 여러 개의 LSI로 구성된 것도 존재한다.
마이크로프로세서가 개발되기 이전까지 CPU는 진공관이나 트랜지스터와 같은 단독 소자로 구성되거나 집적회로가 개발되고 나서도 많은 집적회로의 편성으로서 구성되어 왔었다. 집적회로의 규모가 커지고 많은 회로를 삽입할 수 있는 기술이 등장해 하나의 대규모 집적회로에 CPU 기능을 수행할 수 있게 되었다. 이에 따라 생산과 이용이 편리하게 되고 대량 소비가 가능해짐에 따라 성능은 증가하고 가격도 점차 떨어져 갔다.
인텔의 고든 무어가 1965년에 약 18개월마다 2배가 된다고 하는 ‘무어의 법칙’을 내놓은 뒤 오늘에 이르기까지 이 법칙에 따라 마이크로프로세서의 성능은 계속 향상되고 있다. 현재 마이크로프로세서는 슈퍼 컴퓨터부터 소형 노트북 컴퓨터까지 다양한 종류의 컴퓨터에 탑재되고 있다.

구조

마이크로프로세서 내부의 배열은 설계된 시기나 사용되는 목적에 따라 다양하다. 집적회로의 집약성은 한 개의 칩에 집적될 수 있는 트랜지스터의 개수, 연결 될 수 있는 배선의 개수, 칩이 견딜 수 있는 열의 한계 등에 따라 결정된다. 발전하는 기술은 더 복잡하고 강력한 칩을 생산 할 수 있게 만든다.
가상의 최소한의 마이크로프로세서는 산술논리장치(ALU)와 제어 논리 섹션만을 포함할 수 있다. ALU는 덧셈, 뺄셈, 그리고 AND나 OR같은 연산을 수행한다. ALU의 각각의 연산은 상태 레지스터에 플래그를 모아서 마지막 연산의 결과를 표시한다. 제어 논리 섹션은 메모리로부터 지시 연산 코드를 되찾고, ALU의 연산의 결과가 실행하라고 하는 어떤 지시던지 실행한다. 한 개의 연산 코드는 경로, 레지스터, 그리고 프로세서의 다른 요소들에게 영향을 끼칠 수 있다.
집적회로 기술이 발전하면서, 한 개의 칩에 점점 더 복잡한 프로세서를 생산할 수 있게 된다. 데이터 객체의 크기는 점점 더 커져지고, 칩에 더 많은 트랜지스터가 포함되는 것은 4비트나 8비트의 워드를 오늘날 64비트까지 늘릴 수 있게 한다. 프로세서 아키텍처에 추가적인 특징이 생겼다. 더 많은 온칩 레지스터는 프로그램의 속도를 높이고, 복잡한 명령은 더 정교한 프로그램을 가능하게 한다. 예를 들어, 부동 소수점 연산은 8비트 마이크로프로세서에서는 가능하지 않았고, 소프트웨어 안에서만 실행되어야 했다. 부동 소수점 유닛의 집적은 처음엔 분리된 집적회로에서 실현된 후에 단일 마이크로칩에서 실현되었고, 부동소수점의 연산의 속도를 높였다.
가끔, 집적회로의 물리적인 한계가 비트 슬라이스 접근법 같은 실행이 필요하게 만든다. 긴 워드를 한 개의 집적회로에서 처리하는 대신에, 여러 개의 회로에서 각각의 데이터 워드를 병렬로 처리하는 방식이다. 이 방식이 추가적인 논리를 처리해야 하지만, 예를 들어, 각각의 슬라이스에서 올림이나 오버플로 같은, 즉 각각 4비트밖에 안 되는 집적회로가 32비트의 워드를 처리할 수 있게 한다. 한 개의 칩에 많은 수의 트랜지스터를 집적시키는 능력은 프로세서로서 한 개의 같은 다이에 메모리를 집적시키는 것을 가능하게 한다. 이 CPU 캐시는 오프칩 메모리보다 더 빠른 접근이 가능하다는 장점이 있고 시스템의 처리 속력을 증가시킨다. 최근을 제외하고는 프로세서의 클럭 수의 증가속도는 는 외장 메모리의 그것보다 더 빨랐고, 따라서 더 느린 외장 메모리가 프로세서를 지연시키지 않으려면 캐시 메모리가 필요하다.

특수한 목적의 설계

마이크로프로세서는 범용 시스템이다. 여러 개의 특화된 처리기기가 기술을 따라 발전해왔다. 마이크로컨트롤러는 임베디드 시스템에 지엽적인 기기와 마이크로프로세서를 집적시켰다. DSP는 신호처리에 특화되어있다. GPU는 없거나 제한되거나 아주 일반적인 프로그래밍 기능이 있다. 예를 들어 1990년대의 GPU는 대부분 프로그래밍이 불가능하거나 최근에 와서야 프로그램 가능한 버텍스 셰이더같은 제한된 기능이 생겼다.
32비트 프로세서는 더 많은 디지털 논리를 가지고 있고, 더 많은 디지털 노이즈를 발생시키며, 더 높은 정적 소비전력을 가지고 있다. 그래서 8비트나 16비트 프로세서가 32비트 프로세서보다 단일 칩 시스템이거나, 극히 저전력을 요구하는 경우가 많으며 고해상도 아날로그 디지털 신호 변환기와 같은 노이즈에 민감한 온칩 아날로그 전자기기에 포함되는 혼합 신호 집적회로의 부분으로서는 더 적합하다.
비슷한 공정으로 생산될 때, 8비트 마이크로프로세서는 32비트 마이크로프로세서보다 작동할 때나 작동하지 않을 때 더 적은 전력을 소비한다.
하지만, 일부는 부동 소수점 연산같은 작업에서 32비트 마이크로프로세서보다 8비트 프로세서가 더 많은 클럭의 회전을 하기 때문에, 평균적으로 8비트 프로세서가 더 많은 전력을 소비한다고 한다.

동작 주기에 의한 마이크로프로세서 동작

컴퓨터가 동작한다는 말은 곧 마이크로프로세서가 연속적으로 명령 주기를 반복하여 기계어 코드를 실행한다는 말과 같다. 프로그래밍에 의해 만들어진 메모리 속의 기계어 코드를 실행함으로써 컴퓨터가 사용자가 원하는 기능을 수행한다.

아이들 모드

마이크로프로세서가 특정 일을 할 필요가 없거나,  전원 등의 이유로 동작을 멈추었다가 필요할 때 동작을 재게할 수 있도록 할 수 있다. 마이크로프로세서가 동작을 멈추는 상태를 아이들 모드(idle mode) 또는 슬립 모드(sleep mode)라고 한다. 이 모드 상태가 되면 최저 전력이 사용된다. 보통 하드웨어로 깨울 수 있는 방식을 많이 사용한다. 이 모드로 전환을 위해 기계어 명령이 제공된다. 경우에 따라 마이크로프로세서에서 사용하는 클럭 회로도 제어할 수 있다.

임베디드 애플리케이션

전통적으로는 컴퓨터와 관련되어 있지 않은 수많은 제품들이 마이크로프로세서를 포함한다. 이것들은 크거나 작은 가전제품, 차, 차키, 공구와 테스트 기기, 장난감, 전등 스위치나 전기회로 차단기를 포함한다. 휴대폰, dvd비디오 시스템, hdtv방송시스템 같은 것들은 기본적으로 강력하고 저비용인 마이크로프로세서를 필요로 한다. 최근에 엄격해진 환경 오염 통제 기준은 자동차의 다양한 주행 상황에 대응하여 최적의 배출 조절을 위해 마이크로프로세서 엔진 관리 시스템을 요구한다.
마이크로프로세서 컨트롤 프로그램(임베디드 소프트웨어)는 제품의 재설계를 최소화하면서 성능의 업그레이드를 시키면서, 제품 라인의 다양한 요구에 맞춰 설계될 수 있다.
시스템의 마이크로프로세서 컨트롤은 전자기계컨트롤이나 목적이 정해진 전자 제어기는 불가능한 제어 전략을 제공한다. 예를 들어 자동차의 엔진 관리 시스템은 엔진의 속도나 부담, 내부의 온도, 그리고 다른 상황의 정보에 맞춰서 자동차가 연비에 맞게 주행할 수 있도록 점화타이밍을 조절 할 수 있다.