"마이크로프로세서"의 두 판 사이의 차이

편집 요약 없음
 
마이크로프로세서 이전에 작은 컴퓨터들은 중간 규모나 소규모 집적회로의 회로 기판의 납땜을 이용해서 주로 실행되었다. 마이크로프로세서는 이것을 한 개나 소수의 대규모 집적회로에 집적시켰다. 마이크로프로세서의 계속된 용량의 증가는 다른 종류의 컴퓨터들을 거의 구식으로 만들어버렸고, 현재는 가장 작은 임베디드 시스템이나 휴대용 기기에서부터 가장 큰 메인프레임이나 슈퍼컴퓨터에까지 쓰이고 있다.
 
== 개요 ==
용도에 따라 입·출력 등의 주변 회로나 메모리를 내장한 것도 있어서 하나의 LSI 또는 컴퓨터 시스템으로서 동작하는 것을 ‘원칩 마이크로컴퓨터’라고 부른다. 마이크로프로세서는 하나의 LSI칩으로 기능을 수행할 수도 있지만 여러 개의 LSI로 구성된 것도 존재한다.
 
== 마이크로프로세서의 구성 ==
 
마이크로프로세서는 제어장치(명령어 해석 및 실행), 레지스터, ALU등의 기본 구성을 갖는다.
* 제어장치(명령어 해석 및 실행) : 마이크로코드의 실행에 의해 메모리의 기계어 코드를 읽고, 어떤 기능인지를 결정한 다음 해당 기능을 실행 한다.
** 특수 레지스터 : 특수 기능을 위해 설정된 레지스터 이다. 레지스터의 기능이 결정되어 있다.
*** SP (Stack Pointer) : 스택 구조를 위한 포인터 이다. 보통 push에 의해 데이터가 저장될 때, 메모리의 주소가 감소하는 것이 일반적이다. 8051은 반대로 증가한다. PUSH, POP 등의 스택 명령어와 CALL/RET에 의한 복귀주소가 저장된다. [[액세스]]단위는 8비트 마이크로프로세서는 8비트 단위로 32비트 CPU에서 32비트 단위가 기본 단위이다.
*** PC (Program Counter) 또는 IP(Instruction Pointer)) : 실행해야 하는 기계어 명령어가 존재하는 메모리 주소값을 저장한다. 따라서 이 레지스트의 값에 의해 기계어 명령어가 [[패치]]되어 읽혀 명령어 해석되어 실행된다.
*** 인덱스 레지스터 : 데이터를 처리할 주소값을 저장한다. 이 레지스터 값을 데이터 액세스할 때 주소값으로 활용한다. 데이터 포인터를 저장하는 레지스터이다.
*** FLAG, [[인터럽트]] 제어, 상태 저장, CPU 제어, 기타를 저장하는 레지스터.
** O (Overflow) : 연산결과 정해진 비트수를 벗어나 숫자가 변형된 상태를 나타낸다. gg
 
초기에는 위의 요소로 구성 된 마이크로프로세서가 하나의 칩으로 만들어졌다. 그러나 [[마이크로컨트롤러]](MCU)등이 나오면서 마이크로프로세서와 메모리 기타 컴퓨터를 이루는 요소들이 합쳐지기 시작 했다. 8051등의 마이크로컨트롤러와 ARM 등이 그렇다. 따라서 한 칩에 마이크로프로세서 뿐만 아니라 기타 요소를 구분할 필요가 생긴다. 초기의 마이크로프로세서 모듈 만을 CPU-core라는 코어라는 말을 사용하기도 한다.
 
==구조==
 
== 구조 ==
마이크로프로세서 내부의 배열은 설계된 시기나 사용되는 목적에 따라 다양하다. 집적회로의 집약성은 한 개의 칩에 집적될 수 있는 [[트랜지스터]]의 개수, 연결 될 수 있는 배선의 개수, 칩이 견딜 수 있는 열의 한계 등에 따라 결정된다. 발전하는 기술은 더 복잡하고 강력한 칩을 생산 할 수 있게 만든다.
 
가끔, 집적회로의 물리적인 한계가 비트 슬라이스 접근법 같은 실행이 필요하게 만든다. 긴 워드를 한 개의 집적회로에서 처리하는 대신에, 여러 개의 회로에서 각각의 데이터 워드를 병렬처리 하는 방식이다. 이 방식이 추가적인 논리를 처리해야 하지만, 예를 들어, 각각의 슬라이스에서 올림이나 오버플로우같은, 어쨌거나 결론적으로 각각 4비트밖에 안 되는 집적회로가 32비트의 워드를 처리 할 수 있게 한다. 한 개의 칩에 많은 수의 트랜지스터를 집적시키는 능력은 프로세서로서 한 개의 같은 다이에 메모리를 집적시키는 것을 가능하게 한다. 이 CPU캐치는 오프칩 메모리보다 더 빠른 접근이 가능하다는 장점이 있고. 시스템의 처리 속력을 증가시킨다. 최근을 제외하고는 프로세서의 클럭 수의 증가속도는 는 외장메모리의 그것보다 더 빨랐고, 따라서 더 느린 외장메모리가 프로세서를 지연시키지 않으려면 캐치메모리가 필요하다.
 
=== 특수한 목적의 설계 ===
 
마이크로프로세서는 범용 시스템이다. 여러 개의 특화된 처리기기가 기술을 따라 발전해왔다. 마이크로컨트롤러는 임베디드 시스템에 지엽적인 기기와 마이크로프로세서를 집적시켰다. DSP는 신호처리에 특화되어있다. GPU는 없거나 제한되거나 아주 일반적인 프로그래밍 기능이 있다. 예를 들어 1990년대의 GPU는 대부분 프로그래밍이 불가능하거나 최근에 와서야 프로그램 가능한 버텍스 셰이더같은 제한된 기능이 생겼다.
 
하지만, 일부는 부동 소수점 연산같은 작업에서 32비트 마이크로프로세서보다 8비트 프로세서가 더 많은 클럭의 회전을 하기 때문에, 평균적으로 8비트 프로세서가 더 많은 전력을 소비한다고 한다.
 
== 임베디드 어플리케이션애플리케이션 ==
전통적으로는 컴퓨터와 관련관련되어 되어있지있지 않은 수많은 제품들이 마이크로프로세서를 포함한다. 이것들은 크거나 작은 가전제품, 차, 차키, 공구와 테스트 기기, 장난감, 전등 스위치나 전기회로 차단기를 포함한다. 휴대폰, dvd비디오 시스템, hdtv방송시스템 같은 것들은 기본적으로 강력하고 저비용인 마이크로프로세서를 필요로 한다. 최근에 엄격해진 환경 오염 통제 기준은 자동차의 다양한 주행 상황에 대응하여 최적의 배출 조절을 위해 마이크로프로세서 엔진 관리 시스템을 요구한다.
 
전통적으로는 컴퓨터와 관련 되어있지 않은 수많은 제품들이 마이크로프로세서를 포함한다. 이것들은 크거나 작은 가전제품, 차, 차키, 공구와 테스트 기기, 장난감, 전등 스위치나 전기회로 차단기를 포함한다. 휴대폰, dvd비디오 시스템, hdtv방송시스템 같은 것들은 기본적으로 강력하고 저비용인 마이크로프로세서를 필요로 한다. 최근에 엄격해진 환경 오염 통제 기준은 자동차의 다양한 주행 상황에 대응하여 최적의 배출 조절을 위해 마이크로프로세서 엔진 관리 시스템을 요구한다.
 
마이크로프로세서 컨트롤 프로그램(임베디드 소프트웨어)는 제품의 재설계를 최소화하면서 성능의 업그레이드를 시키면서, 제품 라인의 다양한 요구에 맞춰 설계될 수 있다.
 
== 함께 보기 ==
 
* [[마이크로아키텍처]]