마이크로프로세서

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색
인텔 4004는 최초의 일반용, 상용 마이크로프로세서이다.

마이크로프로세서(영어: microprocessor, 문화어: 극소형처리장치, 미크로처리장치)는 컴퓨터중앙 처리 장치(CPU)를 말한다. 기계어 코드를 실행하기 위해 실행과정을 단계별로 나누어 처리를 위한 마이크로 코드를 작성하고, 이 마이크로 코드에 의해 단계적으로 처리하는 논리회로를 말한다.[1] 초기의 마이크로프로세서는 하나의 칩으로 만들어졌으나, 점점 다른 하드웨어 요소들을 집적시키는 경향이 있다. 따라서 CPU-코어라는 말로 다른 요소들과 구별한다.중앙 처리 장치(CPU)가 컴퓨터 전체 시스템의 위치와 입장에서 나온 말이라면, 마이크로프로세서는 동작 방식에서 나온 말로 서로 같은 것 이다.

1971년미국 인텔에서 세계 최초로 만들었으며 오늘날은 이를 흔히 MPU(microprocessing unit)라고 부르기도 한다. 최초의 마이크로프로세서는 일반 컴퓨터의 중앙처리장치에서 주기억장치를 제외한 연산장치, 제어장치 및 각종 레지스터들을 단지 1개의 IC 소자에 집적시킨 것이다.

마이크로프로세서 개발자는 기계어 설계를 하고, 기계어를 수행하기 위해 마이크로코드(Microcode)를 작성 한다. 기계어를 분류하여 공통점을 찾아내어 한개의 기계어 코드가 실행되는 과정을 단계별로 기능적 블럭으로 나눈다. 마치 C언어의 함수처럼 기능별로 작성 한다. 이것을 디지털회로와 결합하여 동작을 하게 된다. 마이크로코드는 마이크로프로세서 내의 마스크 롬(영어: Mask ROM)에 저장되고 사용자는 변경할 수 없다. 마스크 ROM마이크로코드 변경이라는 것은 곧 기계어 코드 변경을 의미하기 때문이다. ROM에 저장 된 정해진 코드는 마이크로프로세서의 입장에서는 부담이 될 수 있다. 고 기능이라면 크게 신경 쓸 일은 아니지 저속, 저전력 등에서는 신경 쓸 일이다. 따라서 마이크로코드 자체를 논리회로로 대처하는 경우도 있다. 영어: 6502(MOS Technology 6502)나 일부의 RISC 마이크로프로세서는 논리회로(하드웨어 방식)로 대체 한다.


개요[편집]

용도에 따라 입·출력 등의 주변 회로나 메모리를 내장한 것도 있어서 하나의 LSI 또는 컴퓨터 시스템으로서 동작하는 것을 ‘원칩 마이크로컴퓨터’라고 부른다. 마이크로프로세서는 하나의 LSI칩으로 기능을 수행할 수도 있지만 여러 개의 LSI로 구성된 것도 존재한다.

마이크로프로세서가 개발되기 이전까지 CPU는 진공관이나 트랜지스터와 같은 단독 소자로 구성되거나 집적회로가 개발되고 나서도 많은 집적회로의 편성으로서 구성되어 왔었다. 집적회로의 규모가 커지고 많은 회로를 삽입할 수 있는 기술이 등장해 하나의 대규모 집적회로에 CPU 기능을 수행할 수 있게 되었다. 이에 따라 생산과 이용이 편리하게 되고 대량 소비가 가능해짐에 따라 성능은 증가하고 가격도 점차 떨어져 갔다.

인텔고든 무어가 1965년에 약 18개월마다 2배가 된다고 하는 ‘무어의 법칙’을 내놓은 뒤 오늘에 이르기까지 이 법칙에 따라 마이크로프로세서의 성능은 계속 향상되고 있다. 현재 마이크로프로세서는 슈퍼 컴퓨터부터 소형 노트북 컴퓨터까지 다양한 종류의 컴퓨터에 탑재되고 있다.

마이크로프로세서의 구성[편집]

마이크로프로세서는 제어장치(명령어 해석 및 실행), 레지스터, ALU등의 기본 구성을 갖는다.

  • 제어장치(명령어 해석 및 실행) : 마이크로코드의 실행에 의해 메모리의 기계어 코드를 읽고, 어떤 기능인지를 결정한 다음 해당 기능을 실행 한다.
  • 레지스터
    • 범용 레지스터 : 데이터 처리를 위해 데이터 저장 한다.
    • 특수 레지스터 : 특수 기능을 위해 설정된 레지스터 이다. 레지스터의 기능이 결정되어 있다.
      • SP (Stack Pointer) : 스택 구조를 위한 포인터 이다. 보통 push에 의해 데이터가 저장될 때, 메모리의 주소가 감소하는 것이 일반적이다. 8051은 반대로 증가한다. PUSH, POP 등의 스택 명령어와 CALL/RET에 의한 복귀주소가 저장된다. 액세스단위는 8비트 마이크로프로세서는 8비트 단위로 32비트 CPU에서 32비트 단위가 기본 단위이다.
      • PC (Program Counter 또는 IP(Instruction Pointer)) : 실행해야 하는 기계어 명령어가 존재하는 메모리 주소값을 저장한다. 따라서 이 레지스트의 값에 의해 기계어 명령어가 패치되어 읽혀 명령어 해석되어 실행된다.
      • 인덱스 레지스터 : 데이터를 처리할 주소값을 저장한다. 이 레지스터 값을 데이터 액세스할 때 주소값으로 활용한다. 데이터 포인터를 저장하는 레지스터이다.
      • FLAG, 인터럽트 제어, 상태 저장, CPU 제어, 기타를 저장하는 레지스터.
  • 정수형 산술 논리 장치(ALU) : 수학연산, 논리연산, 쉬프트 등의 수학적 연산을 담당한다.
    • 사칙연산 : 더하기, 빼기, 나누기, 곱하기를 한다. 정수형 ALU가 대부분이고, 기본이기 때문에 나누기 시 몫과 나머지로 처리된어 결과가 나오고 이것은 2개의 레지스터에 나누어 저장된다.
    • 논리 연산 : 비트별로 AND, OR, XOR, NOT 등의 논리연산을 실행한다.
    • 쉬프트 연산 : 레지스터의 값을 왼쪽 또는 오른쪽으로 이동 시킨다. 보통 C(Carry)와 결합하여 실행되는 경우도 있다.
  • FLAG : ALU에서 실행된 결과와 함께 여러가지 보조결과를 저장한다.
    • C (Carry) : 연산결과 MSB의 비트에서 발생하는 올림 또는 빌림의 결과를 저장한다.
    • N (Negative, 또는 S (Sign)) : 정수형 표현에서 음수를 나타내는 비트인 MSB가 1인 경우를 나타낸다.
    • Z (Zero) : 연산결과 모든 비트가 0임을 나타낸다.
    • O (Overflow) : 연산결과 정해진 비트수를 벗어나 숫자가 변형된 상태를 나타낸다. gg

초기에는 위의 요소로 구성 된 마이크로프로세서가 하나의 칩으로 만들어졌다. 그러나 마이크로컨트롤러(MCU)등이 나오면서 마이크로프로세서와 메모리 기타 컴퓨터를 이루는 요소들이 합쳐지기 시작 했다. 8051등의 마이크로컨트롤러와 ARM 등이 그렇다. 따라서 한 칩에 마이크로프로세서 뿐만 아니라 기타 요소를 구분할 필요가 생긴다. 초기의 마이크로프로세서 모듈 만을 CPU-core라는 말을 사용하기도 한다.

함께 보기[편집]

참조[편집]

  1. Osborne, Adam (1980). 《An Introduction to Microcomputers》, 2nd, Berkely, California: Osborne-McGraw Hill. ISBN 0-931988-34-9