검수요청.png검수요청.png

마이크로프로세서

해시넷
dlensk99 (토론 | 기여)님의 2021년 2월 4일 (목) 11:46 판
이동: 둘러보기, 검색

마이크로프로세서(Microprocessor)는 마이크로(micro)와 프로세서(processor)가 결합된 용어로, 컴퓨터 중앙처리장치(CPU)의 핵심 기능을 통합한 집적회로(IC)이다.

개요

마이크로프로세서는 프로그램이 가능한 다목적 실리콘 칩으로, 크기가 매우 작고, 뛰어난 계산 능력을 가진 장치이다. IC 집적기술, 컴퓨터 구조기술, 시스템 프로그래밍 기술과 함께 묶어 단일 칩으로 집적화한 반도체 소자로, 클록 구동 방식이며, 레지스터 기반이다. 또한, 바이너리 데이터를 입력으로 받아들여 메모리에 저장된 지침에 따라 처리한 후 출력을 제공한다. 프로그램을 신속하게 실행하기 위한 목적으로 내부 구조를 최적화한다.[1][2] CPU형 마이크로프로세서와 단일 칩 마이크로프로세서가 있다. CPU형 마이크로프로세서는 중앙처리장치(CPU) 기능 대부분을 칩 하나에 집적하고, CPU형 마이크로프로세서를 중심으로 롬(ROM), RAM(램), 입출력장치 등을 추가하여 마이크로컴퓨터를 구성할 수 있다.[3] 단일 칩 마이크로프로세서는 마이크로컴퓨터에 들어가는 모든 부품들을 하나의 반도체 칩에 집적한 것으로, 용도에 따라 연산 및 데이터 처리를 목적으로 하는 연산용과 기계제어를 목적으로 하는 제어용으로 분류하며, 제어용 단일 칩 마이크로컴퓨터를 마이크로컨트롤러라고 한다.[3][4]

특징

중앙처리장치(CPU)가 모든 명령을 하드웨어적으로 해독하여 실행한다. 명령어 구조가 단순하고, 수가 상당히 적다. 또한, 명령어 형식의 종류가 적고, 명령어에서 주소 지정방식의 종류가 적다. 명령어 길이가 워드 및 데이터 버스 폭과 같은 길이로 통일되어 있고, 범용 레지스터의 수가 많으며, 대부분의 연산 명령은 범용 레지스터를 중심으로 동작한다. 집적회로 기술로 저렴한 비용으로 이용할 수 있다. 즉, 컴퓨터 시스템의 비용을 줄일 수 있다. 초당 수백만 개의 명령을 실행할 수 있을 정도로 빠른 속도로 작동한다. 용도가 다양하고, 같은 칩은 프로그램을 간단히 변경하여 많은 용도에 사용될 수 있다. 또한, 마이크로프로세서는 신뢰성이 높고, 고장률은 반도체 기술이 사용됨에 따라 매우 낮다.[1][5]

구성

제어장치와 산술논리연산장치, 레지스터로 구성되어 있다. 제어장치는 명령어를 해석하여 레지스터나 연산 장치를 제어하고, 산술논리연산장치는 산술연산을 담당하여 제어장치의 제어를 받는다. 레지스터는 소량의 데이터를 임시 저장하는 공간이다.[6]또한, 마이크로프로세서를 이용한 시스템에서 중앙처리장치(CPU)와 외부 메모리나 입출력 장치 사이에는 버스로 접속되는 구조를 갖는다.

산술논리연산장치

주로 덧셈, 뺄셈인 산술 연산이나 논리 연산을 한다. 또한, 보수 연산과 시프트 연산 등을 한다. 산술 연산에서 뺄셈은 덧셈과 부호 반전의 조합으로 뺄 값의 부호를 바꾸어 이를 더한다. 곱셈은 덧셈의 반복으로, 나눗셈은 뺄셈의 반복으로 구현할 수 있다. 논리 연산에는 논리곱(AND), 논리합(OR), 배타적 논리합(XOR), 부정(NOT)이 있고, 시프트 레지스터는 비트를 이동시킨다. 산술논리연산장치에서는 메모리와 레지스터 간에 데이터 전송을 한다. 연산을 위해 레지스터 또는 메모리로부터 데이터가 입력되고, 그 처리 결과가 레지스터 중의 하나 또는 메모리에 저장된다.[7]

레지스터

범용 레지스터(General Purpose Register)는 연산의 입력 또는 연산의 결과를 일시 저장하는 역할을 한다. 즉, 연산의 중심 역할을 한다. 연산의 결과를 다시 자신에게 누적시키고, 메모리에 있는 값을 불러올 수도 있다. 특수 레지스터는 프로그램의 상태를 저장한다. 프로그램 카운터(PC), 스택 포인터, 상태 레지스터 등이 있다. 프로그램 카운터(PC)는 다음 인출할 명령어 주소를 임시 저장하는 레지스터이다. 각 명령어 인출 후에는 1씩 증가한다. 분기 명령어(jump, branch)일 경우에는, 해당 목적지 주소로 변경된다. 스택 포인터(SP)는 스택 메모리에 데이터가 채워진 마지막 위치를 가리킨다. 상태 레지스터(SR)는 오버플로, 언더플로, 자리올림, 계산상태, 인터럽트 등의 상태가 기록된 정보를 저장하고 있는 레지스터이다.[8][9][10]

버스

디지털 회로에서 동일한 기능을 수행하는 많은 신호선의 집합이다. 컴퓨터에서는 주소 버스, 데이터 버스, 제어 버스 3가지의 시스템 버스(System Bus)를 사용한다. 주소 버스(Address Bus)는 마이크로프로세서가 외부의 메모리나 입출력장치의 번지를 지정할 때 사용하는 단방향 버스이다. 따라서, 주소 버스의 신호선의 수는 최대로 사용가능한 메모리의 용량이나 입출력장치의 수를 결정한다. 데이터 버스(Data Bus)는 마이크로프로세서에서 메모리나 출력장치로 데이터를 출력하거나 반대로 메모리나 입력 장치로부터 데이터를 입력할 때 이들 데이터의 전송로로 사용되는 양방향 버스이다. 마이크로프로세서의 성능을 결정하는 중요한 요소이다. 제어 버스(Control Bus)는 현재 수행중인 작업의 종류나 상태를 메모리나 입출력 기기에게 알려주는 출력신호와 외부에서 어떤 동작을 취하도록 요구하기 위한 입력신호 등으로 구성되는 단방향 버스이다. 마이크로프로세어의 기능은 제어신호에 의해 크게 좌우된다.[11]

분류

메모리 구성에 따라 폰 노이만 구조와 하버드 구조,CMOS 구조가 있고, 명령어 구조에 따라 CISC 구조와 RISC 구조가 있다. 폰 노이만 구조는 데이터 영역과 프로그램 영역의 물리적인 구분이 없고, 버스의 크기도 동일하다. 데이터와 프로그램 코드를 동일하게 취급하기 때문에 데이터도 프로그램 코드에 함께 들어간다. 예시로 일반 데스크톱이 있다. 하버드 구조는 프로그램 버스와 데이터 버스가 별도로 있는 것이 특징이다. 동시에 액세스가 가능한 방식으로, 데이터 메모리가 레지스터 파일의 형태로 통합 관리한다. 레지스터와 메모리 간에 상호 전송이 필요없어 명령어 수를 줄일 수 있고, 속도를 빠르게 할 수 있다. 또한, 데이터 영역과 프로그램 영역이 물리적으로 구분되어 있고, 각 버스의 크기들이 서로 다를 수 있다. 데이터와 명령어를 분리해서 처리한다. 하버드 구조의 예시로는 8051과 PIC, AVR이 있다. CMOS 구조는 소비 전력이 매우 적고, 전달 특성이 우수하며, 동작 전압의 범위가 넓다. CISC(Complex Instruction Set Computer) 구조는 복합 명령어 세트 컴퓨터라는 의미를 지니는 방식이다. 대표적으로 인텔의 x86계열의 중앙처리장치(CPU)와 팬티엄4도 이 방식을 사용한다. 중앙처리장치가 처리할 수 있는 명령어를 모두 내장하고 있어 구조가 매우 복잡하다. 하지만 뛰어난 호환성을 가지고 있다. 개인용 컴퓨터에 많이 사용한다. RISC(Reduced Instruction Set Computer) 구조는 축소 명령어 세트 컴퓨터라는 의미를 지니는 방식이다. 주로 대형 컴퓨터나 워크스테이션에 사용된다. 중앙처리장치에 내장된 명령어를 줄여 빠른 처리속도를 가지고 있고, 구조를 단순화 하였다. 컴파일러에게 많은 연산 과정을 넘김으로써 중앙처리장치의 내부 구조를 단순하게 제작한다. 복잡한 명령어는 단순한 명령어를 조합하여 사용한다.[3]

마이크로컨트롤러

마이크로프로세서와 컨트롤러가 결합된 용어로, 단일 칩 내에 마이크로프로세서의 중앙처리장치(CPU) 기능과 한정된 주기억장치와 입출력 제어회로를 내장한 것을 말한다. 즉, 칩 하나만으로 컴퓨터의 기능을 수행한다. 프로그램을 실행하면서 장치를 효과적으로 제어하기 위한 목적으로 내부 구조를 최적화한다. 이 컨트롤러는 단순화와 저가격화가 가능하고, 기본적인 컴퓨터 기능을 수행하기 때문에 세탁기나 전자레인지 같은 가전제품 또는 아두이노 등 기계 제어용으로 사용된다. 중앙처리장치(CPU)코어, 롬(ROM), 램(RAM), DMA(Direct Memory Access)제어기, 직병렬 포트, 인터럽트 제어기, 타이머/카운트, 아날로그-디지털(A/D), 디지털-아날로그(D/A) 컨버터로 구성되어있다.[2][12]

비교

마이크로프로세서는 산술 논리 장치, 제어장치, 레지스터를 갖는 실리콘 칩으로 구성되지만 마이크로컨트롤러는 램(RAM), 롬(ROM), 입출력 포트 등과 함께 마이크로프로세서의 속성을 통합한다. 마이크로프로세서는 타이머, 인터럽트 컨트롤러, 프로그램 및 데이터 메모리와 같은 다른 칩 그룹이 필요한 반면, 마이크로컨트롤러는 다른 하드웨어 유닛이 이미 활성화되어 있기에 다른 하드웨어 유닛을 필요로 하지 않는다. 또한, 마이크로프로세서는 범용 작업을 수행하고, 마이크로컨트롤러는 애플리케이션 지향적인 동작을 수행한다. 마이크로프로세서는 성능을 중점으로 두기 때문에 하이엔드 시장을 목표로 하지만, 마이크로컨트롤러는 임베디드 시장을 목표로 한다.[13]

각주

  1. 1.0 1.1 마이크로프로세서란?(What is a Microprocessor?)〉, 《티스토리》, 2018-05-18
  2. 2.0 2.1 이상설, 〈마이크로프로세서의 원리〉, 《한빛미디어》
  3. 3.0 3.1 3.2 Oo, 〈마이크로프로세서의 개요〉, 《네이버 블로그》, 2016-09-08
  4. 1. 마이크로 프로세어의 기초〉, 《티스토리》
  5. 마이크로프로세서의 특징〉, 《티스토리》, 2008-07-13
  6. 오픈랩, 〈마이크로프로세서와 마이크로컨트롤러의 차이점 및 특징/마이크로프로세서란?/마이크로컨트롤러란?〉, 《네이버 블로그》, 2016-09-19
  7. ALU Arithmetic Logic Unit, Arithmetic and Logic Operation Unit 산술 연산 장치〉, 《정보통신기술용어해설》
  8. Register 레지스터〉, 《정보통신기술용어해설》
  9. 프로세서 레지스터〉, 《위키백과》
  10. 코딩팩토리, 〈(H/W) 여러 가지 CPU 레지스터의 종류와 기능〉, 《티스토리》, 2019-04-25
  11. 윤덕용, 〈마이크로프로세서에서 버스란 무엇인가?〉, 《티스토리》, 2000-05-01
  12. 마이크로프로세서란?〉, 《티스토리》, 2019-03-11
  13. 마이크로 프로세서와 마이크로 컨트롤러의 차이점〉, 《Gadget-info.com》

참고자료

같이 보기

  검수요청.png검수요청.png 이 마이크로프로세서 문서는 하드웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.