마이크로프로세서
마이크로프로세서(Microprocessor)는 마이크로(micro)와 프로세서(processor)가 결합한 용어로, 컴퓨터 중앙처리장치(CPU)의 핵심 기능을 통합한 집적회로(IC)이다.
목차
개요[편집]
마이크로프로세서는 프로그램이 가능한 다목적 실리콘 칩으로, 크기가 매우 작고, 뛰어난 계산 능력을 갖춘 장치이다. IC 집적기술, 컴퓨터 구조기술, 시스템 프로그래밍 기술과 함께 묶어 단일 칩으로 집적화한 반도체 소자로, 클록 구동 방식이며, 레지스터 기반이다. 또한, 바이너리 데이터를 입력으로 받아들여 메모리에 저장된 지침에 따라 처리한 후 출력을 제공한다. 프로그램을 신속하게 실행하기 위한 목적으로 내부 구조를 최적화한다.[1][2] CPU형 마이크로프로세서와 단일 칩 마이크로프로세서가 있다. CPU형 마이크로프로세서는 중앙처리장치(CPU) 기능 대부분을 칩 하나에 집적하고, CPU형 마이크로프로세서를 중심으로 롬(ROM), RAM(램), 입출력장치 등을 추가하여 마이크로컴퓨터를 구성할 수 있다.[3] 단일 칩 마이크로프로세서는 마이크로컴퓨터에 들어가는 모든 부품을 하나의 반도체 칩에 집적한 것으로, 용도에 따라 연산 및 데이터 처리를 목적으로 하는 연산용과 기계 제어를 목적으로 하는 제어용으로 분류하며, 제어용 단일 칩 마이크로컴퓨터를 마이크로컨트롤러라고 한다.[3][4]
특징[편집]
중앙처리장치(CPU)가 모든 명령을 하드웨어적으로 해독하여 실행한다. 명령어 구조가 단순하고, 수가 상당히 적다. 또한, 명령어 형식의 종류가 적고, 명령어에서 주소 지정방식의 종류가 적다. 명령어 길이가 워드 및 데이터 버스 폭과 같은 길이로 통일되어 있고, 범용 레지스터의 수가 많으며, 대부분의 연산 명령은 범용 레지스터를 중심으로 동작한다. 집적회로 기술로 저렴한 비용으로 이용할 수 있다. 즉, 컴퓨터 시스템의 비용을 줄일 수 있다. 초당 수백만 개의 명령을 실행할 수 있을 정도로 빠른 속도로 작동한다. 용도가 다양하고, 같은 칩은 프로그램을 간단히 변경하여 많은 용도에 사용될 수 있다. 또한, 마이크로프로세서는 신뢰성이 높고, 고장률은 반도체 기술이 사용됨에 따라 매우 낮다.[1][5]
- 무어의 법칙
집적회로의 성능이 24개월마다 2배로 증가한다는 법칙이다. 인텔의 공동 설립자인 고든 무어(Gordon Earl Moore)가 1965년에 논문에 내놓았다. 무어의 법칙(Moore’s Law)은 세 가지 조건이 있다.
- 반도체 메모리칩의 성능 즉, 메모리의 용량이나 중앙처리장치의 속도가 18개월에서 24개월마다 2배씩 향상된다는 기술 개발 속도에 관한 법칙이다.
- 컴퓨팅 성능은 18개월마다 2배씩 향상된다.
- 컴퓨터 가격은 18개월마다 반으로 떨어진다.[6]
구성[편집]
제어장치와 산술논리연산장치, 레지스터로 구성되어 있다. 제어장치는 명령어를 해석하여 레지스터나 연산 장치를 제어하고, 산술논리연산장치는 산술연산을 담당하여 제어장치의 제어를 받는다. 레지스터는 소량의 데이터를 임시 저장하는 공간이다.[7]또한, 마이크로프로세서를 이용한 시스템에서 중앙처리장치(CPU)와 외부 메모리나 입출력 장치 사이에는 버스로 접속되는 구조를 갖는다.
산술논리연산장치[편집]
주로 덧셈, 뺄셈인 산술 연산이나 논리 연산을 한다. 또한, 보수 연산과 시프트 연산 등을 한다. 산술 연산에서 뺄셈은 덧셈과 부호 반전의 조합으로 뺄 값의 부호를 바꾸어 이를 더한다. 곱셈은 덧셈의 반복으로, 나눗셈은 뺄셈의 반복으로 구현할 수 있다. 논리 연산에는 논리곱(AND), 논리합(OR), 배타적 논리합(XOR), 부정(NOT)이 있고, 시프트 레지스터는 비트를 이동시킨다. 산술 논리 연산 장치에서는 메모리와 레지스터 간에 데이터 전송을 한다. 연산을 위해 레지스터 또는 메모리로부터 데이터가 입력되고, 그 처리 결과가 레지스터 중의 하나 또는 메모리에 저장된다.[8]
레지스터[편집]
범용 레지스터(General Purpose Register)는 연산의 입력 또는 연산의 결과를 일시 저장하는 역할을 한다. 즉, 연산의 중심 역할을 한다. 연산의 결과를 다시 자신에게 누적시키고, 메모리에 있는 값을 불러올 수도 있다. 특수 레지스터는 프로그램의 상태를 저장한다. 프로그램 카운터(PC), 스택 포인터, 상태 레지스터 등이 있다. 프로그램 카운터(PC)는 다음 인출할 명령어 주소를 임시 저장하는 레지스터이다. 각 명령어 인출 후에는 1씩 증가한다. 분기 명령어(jump, branch)일 경우에는, 해당 목적지 주소로 변경된다. 스택 포인터(SP)는 스택 메모리에 데이터가 채워진 마지막 위치를 가리킨다. 상태 레지스터(SR)는 오버플로, 언더플로, 자리 올림, 계산 상태, 인터럽트 등의 상태가 기록된 정보를 저장하고 있는 레지스터이다.[9][10][11]
버스[편집]
디지털 회로에서 동일한 기능을 수행하는 많은 신호선의 집합이다. 컴퓨터에서는 주소 버스, 데이터 버스, 제어 버스 3가지의 시스템 버스(System Bus)를 사용한다. 주소 버스(Address Bus)는 마이크로프로세서가 외부의 메모리나 입출력장치의 번지를 지정할 때 사용하는 단방향 버스이다. 따라서 주소 버스의 신호선의 수는 최대로 사용 가능한 메모리의 용량이나 입출력장치의 수를 결정한다. 데이터 버스(Data Bus)는 마이크로프로세서에서 메모리나 출력장치로 데이터를 출력하거나 반대로 메모리나 입력 장치로부터 데이터를 입력할 때 이들 데이터의 전송로로 사용되는 양방향 버스이다. 마이크로프로세서의 성능을 결정하는 중요한 요소이다. 제어 버스(Control Bus)는 현재 수행 중인 작업의 종류나 상태를 메모리나 입출력 기기에 알려주는 출력신호와 외부에서 어떤 동작을 취하도록 요구하기 위한 입력신호 등으로 구성되는 단방향 버스이다. 마이크로프로세서의 기능은 제어 신호에 의해 크게 좌우된다.[12]
플래그[편집]
연산기에서 연산 결과를 나타내는 조건 플래그와 그 외에 중앙처리장치(CPU)를 제어하기 위해 사용되는 제어 플래그로 나뉜다. 조건 플래그(Conditional Flags)에는 산술 연산 결과의 부호 비트를 저장하는 부호 플래그(S)와 연산 결과가 0인지 표시하는 제로 플래그(Z), 자리 올림 수 발생 시 표시하는 자리 올림 수 플래그(C), 패리티 체크를 통해 연산 결과의 유효성을 체크하는 패리티 비트(P), 오버플로우 발생 여부를 알려주는 오버플로우(OV)가 있다. 제어 플래그(Control Flags)에는 중앙처리장치(CPU)가 외부 인터럽트의 요청을 수락할지에 대한 여부를 알려주는 인터럽트 플래그(IE)와 해당 명령어가 관리자 모드에서 실행되고 있는지에 대한 여부를 알려주는 관리자 모드 플래그(SV)가 있다.[13]
성능[편집]
마이크로프로세서가 처리하는 워드 길이, 접근할 수 있는 메모리 크기, 명령어 처리 속도에 따라 성능이 달라진다. 4비트 마이크로프로세서는 가장 저가의 마이크로프로세서이며, 이진화 십진법(BCD) 사용이 가능하며, 계산기나 간단한 가전기기, 장난감에 사용된다. 8비트 마이크로프로세서는 가장 많이 사용되며, 이진화 십진법(BCD) 숫자 두 개를 다룬다. 숫자를 포함하여 문자와 특수기호도 표현이 가능하다. 워드 길이가 두 배로 되면, 성능은 두 배 이상으로 강력해진다. 메모리의 데이터 워드 길이는 마이크로프로세서에서 사용하는 워드의 길이와 같다. 메모리 주소의 크기가 클수록 마이크로프로세서의 성능도 커진다. 명령어 처리속도는 하나의 명령어의 인출과 실행 주기를 완수하는 데 걸리는 시간인데, 속도를 측정하는 두 가지 방법이 있다. 클럭 속도를 측정하거나, 1초에 수행할 수 있는 명령어의 수를 측정한다. 명령어의 처리 속도를 높이기 위해서 두 개의 프로세스를 이용하는 병렬 처리나, 전용 계산을 위한 보조프로세서를 이용하는 코프레싱 기술, 메모리의 접근성을 높이기 위해 캐시 메모리를 사용한다. 또한, 다수의 명령어를 조립공정과 같은 방식으로 조금씩 처리하는 파이프라인 기법을 사용한다.[14]
분류[편집]
메모리 구성에 따라 폰 노이만 구조와 하버드 구조, 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][15]
비교[편집]
마이크로프로세서는 산술 논리 장치, 제어장치, 레지스터를 갖는 실리콘 칩으로 구성되지만, 마이크로컨트롤러는 램(RAM), 롬(ROM), 입출력 포트 등과 함께 마이크로프로세서의 속성을 통합한다. 마이크로프로세서는 타이머, 인터럽트 컨트롤러, 프로그램 및 데이터 메모리와 같은 다른 칩 그룹이 필요하지만, 마이크로컨트롤러는 다른 하드웨어 유닛이 이미 활성화되어 있기에 다른 하드웨어 유닛이 필요하지 않는다. 또한, 마이크로프로세서는 범용 작업을 수행하고, 마이크로컨트롤러는 애플리케이션 지향적인 동작을 수행한다. 마이크로프로세서는 성능을 중점으로 두기 때문에 하이엔드 시장을 목표로 하지만, 마이크로컨트롤러는 임베디드 시장을 목표로 한다.[16]
활용[편집]
전자제품에는 마이크로컨트롤러가 많이 탑재되어 있다. 마이크로컨트롤러는 전자기기의 디스플레이, 타이머, 컴프레서, 냉장고, 세탁기, 에어컨 등 주요 가전제품의 모터를 제어한다. 혈압기에 탑재된 마이크로컨트롤러는 모터, 밸브, 디지털 디스플레이를 제어하고, 온도계의 마이크로컨트롤러는 온도 센서의 신호를 측정한다. 리모컨이 대표적인 예인데, 버튼의 누름을 탐지하여 리모컨이 전송하는 적외선 신호를 제어하는 것이 역할이다. 또한, 카메라 장비, 사이클링과 같은 취미생활 도구에도 적용된다. 카메라에서는 자동 초점 기능, 셔터 스피드, 떨림 방지 기능 등을 제어하고, 자전거는 속도계와 기어 변속기 등에서 활용된다. 시각적 기능으로는 액정표시장치(LCD)나 발광다이오드(LEDs) 상에 텍스트를 표시할 수 있고, 일부 가전제품에서는 단순히 발광 다이오드 빛을 켜거나 플래시 용도로 사용된다. 청각적 기능은 전자레인지, 화재 알람 등 음악이나 알람 소리를 통해 기기의 동작 상태를 알리는 음성 기능을 제공한다. 온도계, 혈압계와 같은 건강 기기에서도 흔히 볼 수 있다.[17] 아두이노는 오픈 소스를 기반으로 한 단일 보드 마이크로컨트롤러로, 완성된 상품과 관련 개발 도구 및 환경을 의미한다. 2005년 이탈리아에서 하드웨어에 익숙하지 않은 학생들이 디자인 작품을 손쉽게 제어할 수 있게 하기 위해서 고안된 아두이노는 처음에 AVR을 기반으로 만들어졌다.[18]
각주[편집]
- ↑ 1.0 1.1 〈마이크로프로세서란?(What is a Microprocessor?)〉, 《티스토리》, 2018-05-18
- ↑ 2.0 2.1 이상설, 〈마이크로프로세서의 원리〉, 《한빛미디어》
- ↑ 3.0 3.1 3.2 Oo, 〈마이크로프로세서의 개요〉, 《네이버 블로그》, 2016-09-08
- ↑ 〈1. 마이크로 프로세어의 기초〉, 《티스토리》
- ↑ 〈마이크로프로세서의 특징〉, 《티스토리》, 2008-07-13
- ↑ 〈무어의 법칙〉, 《위키백과》
- ↑ 오픈랩, 〈마이크로프로세서와 마이크로컨트롤러의 차이점 및 특징/마이크로프로세서란?/마이크로컨트롤러란?〉, 《네이버 블로그》, 2016-09-19
- ↑ 〈ALU Arithmetic Logic Unit, Arithmetic and Logic Operation Unit 산술 연산 장치〉, 《정보통신기술용어해설》
- ↑ 〈Register 레지스터〉, 《정보통신기술용어해설》
- ↑ 〈프로세서 레지스터〉, 《위키백과》
- ↑ 코딩팩토리, 〈(H/W) 여러 가지 CPU 레지스터의 종류와 기능〉, 《티스토리》, 2019-04-25
- ↑ 윤덕용, 〈마이크로프로세서에서 버스란 무엇인가?〉, 《티스토리》, 2000-05-01
- ↑ 〈(컴퓨터구조) 레지스터(Register)〉, 《티스토리》, 2020-07-14
- ↑ 류지환, 〈마이크로프로세서 개요〉, 《IRiS Lab》
- ↑ 〈마이크로프로세서란?〉, 《티스토리》, 2019-03-11
- ↑ 〈마이크로 프로세서와 마이크로 컨트롤러의 차이점〉, 《Gadget-info.com》
- ↑ 이나리 기자, 〈일상 속 모든 가전제품의 핵심 반도체, MCU란 무엇인가?〉, 《테크월드》, 2018-03-05
- ↑ 전기과 팡팡이, 〈(전기전자공학 실험) 아두이노 마이크로 프로세서 기본 및 환경 세...〉, 《티스토리》, 2019-08-01
참고자료[편집]
- 〈마이크로프로세서란?(What is a Microprocessor?)〉, 《티스토리》, 2018-05-18
- 이상설, 〈마이크로프로세서의 원리〉, 《한빛미디어》
- Oo, 〈마이크로프로세서의 개요〉, 《네이버 블로그》, 2016-09-08
- 〈1. 마이크로 프로세어의 기초〉, 《티스토리》
- 〈마이크로프로세서의 특징〉, 《티스토리》, 2008-07-13
- 〈무어의 법칙〉, 《위키백과》
- 오픈랩, 〈마이크로프로세서와 마이크로컨트롤러의 차이점 및 특징/마이크로프로세서란?/마이크로컨트롤러란?〉, 《네이버 블로그》, 2016-09-19
- 〈ALU Arithmetic Logic Unit, Arithmetic and Logic Operation Unit 산술 연산 장치〉, 《정보통신기술용어해설》
- 〈Register 레지스터〉, 《정보통신기술용어해설》
- 〈프로세서 레지스터〉, 《위키백과》
- 코딩팩토리, 〈(H/W) 여러 가지 CPU 레지스터의 종류와 기능〉, 《티스토리》, 2019-04-25
- 윤덕용, 〈마이크로프로세서에서 버스란 무엇인가?〉, 《티스토리》, 2000-05-01
- 〈(컴퓨터구조) 레지스터(Register)〉, 《티스토리》, 2020-07-14
- 류지환, 〈마이크로프로세서 개요〉, 《IRiS Lab》
- 〈마이크로프로세서란?〉, 《티스토리》, 2019-03-11
- 〈마이크로 프로세서와 마이크로 컨트롤러의 차이점〉, 《Gadget-info.com》
- 이나리 기자, 〈일상 속 모든 가전제품의 핵심 반도체, MCU란 무엇인가?〉, 《테크월드》, 2018-03-05
- 전기과 팡팡이, 〈(전기전자공학 실험) 아두이노 마이크로 프로세서 기본 및 환경 세...〉, 《티스토리》, 2019-08-01
같이 보기[편집]