본문 바로가기

끄적끄적

CPU, MPU, MCU, RISC, CISC

1.중앙처리장치(CPU)

• 인간의 뇌에 해당되는 장치로, 컴퓨터 시스템의 가장 핵심적인 역할을 담당한다.

• 컴퓨터 시스템 전체를 제어, 관리, 감독하며 자료의 연산 및 논리 조작을 수행한다.

• 제어장치(CU), 연산장치(ALU), 레지스터로 구성된다.


① 제어장치(CU : Control Unit)

• 주기억장치로부터 프로그램 명령어를 읽어들여 이를 해독하고 처리하는 장치이다.

• 입력, 출력, 기억, 연산 등의 장치들을 효율적으로 관리하고 감독하는 역할을 수행한다.


프로그램카운터

(PC:ProgramCounter)

• 다음에 수행할 명령어의 주소(Address)를 기억

• 프로그램 계수기라고도 함

명령레지스터

(IR:InstructionRegister)

현재 실행중인 명령어의 내용을 기억

명령해독기(InstructionDecoder)

명령을 해독하여 제어 신호를 발생하는 장치

부호기(Encoder)

해독된 내용을 신호로 변환하여 각 장치에 전송하는 장치

메모리주소레지스터(MAR)

기억장소의 주소를 기억

메모리버퍼레지스터(MBR)

기억장소의 내용을 기억


② 연산장치 : ALU(Arithmetic & Logic unit)

제어장치의 명령에 따라 실제로 산술 연산 및 논리 연산을 수행하는 장치이다.

누산기(Accumulator)

산술 연산 및 논리 연산의 결과 값을 일시적으로 기억하는 레지스터

가산기(Adder)

누산기와 데이터 레지스터에 보관된 자료를 더하여 누산기에 보관

보수기(Complementer)

음수 표현 또는 뺄셈을 수행하기 위해 보수로 변환하는 장치

상태레지스터

(StatusRegister)

PSW라고도 하며, 연산 수행시 발생되는 여러 가지 상태 정보를 기억하는 레지스터

인덱스레지스터

(IndexRegister)

주소 계산에 사용되는 레지스터


③ CPU의 처리능력 단위 및 용어

KIPS

• Kilo Instruction Per Second의 약자

• 초당 실행되는 명령어의 수를 1,000 단위로 표현

MIPS

• Million Instructions Per Second의 약자

• 초당 처리되는 명령어 수를 백만단위로 나타낸 것

FLOPS

• Floating-point Operations Per Second의 약자

• 초당 처리되는 부동 소수점 연산 명령의 실행 횟수

MHz

CPU의 데이터 처리 속도인 클록(Clock)을 표시하는 단위

코프로세서

(Coprocessor)

캐드나 그래픽 작업과 같이 부동소수점 연산이 많은 작업을 전문적으로

수행하는 프로세서

 

 

2. mpu & mcu

MPU(Micro processor unit)의 약자이고, MCU(Micro controller unit)입니다.
둘다 CPU이고, 어떤 명령을 주기억장치에서 불러와서 처리하는 과정은 같지만,
개념적으로 어떤 부분에 비중을 두는냐에 따라 구분될수 있습니다.
CPU는 ALU에서의 연산과정을 통해 명령을 수행하고, 결과값을 주기억장치(RAM)
에 씌여지게 됩니다.

이에 따라 CPU칩의 구조방식에 차이가 있는데, Off chip과 On chip개념으로 나뉘게 됩니다. Off chip은 CPU와 주기억장치, I/O Port가 외부에 존재하게 됩니다. 반대로 On chip은 내부에 모두가(CPU,주기억장치,I/O Port) 집적되어있는 형태로 나뉘어 집니다.

여기서 두가지 종류의 형태에 많은 차이가 발생하게 됩니다.

먼저 MPU는 오프칩 형태로 이뤄져 있는데, Processor말 그대로 연산을 하는데, 무엇보다도 큰 비중을 두게 됩니다. 사칙연산, 논리연산, 보수 등을 다루게 되는 CPU로써 더욱더 큰 메모리를 요구하게 되고, 연산처리에 하는 레지스터로써 결과값을 저장하는 어큐뮬레이터(Accumulator)의 비중이 커지게 되는 것입니다. 한마디로 MPU는 연산이 주목적인 CPU라는 말입니다. 이러한 연산중심의 CPU는 오프칩형태로 연산처리에 주변장치가 특히 주기억장치의 비중이 크기 때문에 오프칩형태를 쓰게 되는것입니다. 그래서 컴퓨터의 램이 외부에 장착되어있는 것입니다.
이CPU는 보통 컴퓨터에서 쓰이는 중앙처리장치를 말하고, 연산처리에 필요한 주기억장치가 크다는 것과 CPU의 메모리맵이 isolate방식으로 외부에 포트나 부가적기능이 따로 분리되어 있는 독립된 형태가 주를 이루고 있습니다.

이에 반하여 MCU는 연산이 목적이 아닌 말 그대로 컨트롤 목적이므로 Off chip형태가 아닌 통합된 칩인 On chip형태를 이루고 있습니다.
컨트롤러는 User가 직접컨트롤 하여, 메모리맵 구성하며 User의 필요한 기능만을 부가적으로 셋팅하여 쓸수 있는 형태로 되어있습니다. 온칩 형태이기때문에 오프칩의 메모리맵과는 다른 형태로 메모리영역이 줄어들게 되어, 데이터 처리에 있어 제한된 기능만을 수행하는 형태가 될수 밖에 없는 것입니다.
앞서 말한바와 같이 MCU는필요한 기능을 컨트롤 한다는 목적으로 사용되어지고,
이러한 칩에는 고유한 기능을 가지고 있으며, 사용자의 필요에 따라 각각 다른 수십 가지의 칩 기능을 가지고 있습니다. 이러한 ON chip형태는 집적화로 인해 좁은 공간의 회로에서도 많은 기능을 수행할수 있고, CPU내부에 메모리가 있어 명령에 필요한 프로그램도 집어 넣을수 있습니다. 이러한 칩은 4bit, 8bit, 16bit, 32bit형태로써 데이터를 처리하는 속도를 가지고 있으며 수많은 가전제품의 자동제어장치 시스템이나, 도난 방지시스템, 자동차ABS시스템, 항온 시스템등 등 다른 분야에서도 널리 쓰이고 있는 CPU라 할수 있겠습니다.

간략히 말하면,MPU는 컴퓨터용CPU로 연산목적(Pin-out으로 CPU와 메모리,I/O가 문리된 형태)이고, MCU는 가전제품이나 특히 널리 잘알려진 로봇(마이크로마우스, 2족로봇,등등)에 많이 쓰이는 User controller CPU(chip에 메모리와 I/O가 내장)라 할수 있다.

 

 

3.CISC & RISC

CISC(Complex Instruction Set Computer)
인텔의 8086은 16비트 프로세서로, 명령어의 길이가 1바이트에서 8바이트까지 가변적으로 구성되어 있다. 명령어가 가변적이고 복잡하므로 CISC 방식이라고 하는 것이다. 이 구조는 가능한 한 명령어의 길이를 줄여서 명령어의 디코딩(decoding, 해석) 속도를 높이고 최소의 메모리 구조를 갖도록 하기 위해서 정해진 것으로, 하나의 프로세서가 일련의 명령어를 순차적으로 처리하기에는 무척 유용한 방법이며, CPU의 동작 속도가 높아짐에 따라 성능이 비례로 증가한다. CISC 방식은 32비트 프로세서인 80386까지도 아무런 문제없이 적용된 기술이므로 완벽한 하위 호환성을 유지할 수 있었다.

그러나, 80486이 등장하면서 단순히 CPU의 클럭(clock, 동작 속도)을 높이는 방식으로 성능 향상을 기대할 수 없으므로 CISC 방식의 문제점이 드러나기 시작했다. 클럭에는 한계가 있기 때문이다. 그래서, 한번에 여러 개의 명령어를 동시에 수행할 수 있는 기술이 필요하게 되었다. 즉, 동일한 클럭에서 두 개의 명령어를 한번에 처리하게 되면 두 배의 성능 향상을 기대할 수 있기 때문이다. 그러나, 슈퍼 스칼라(super scalar) 구조에서는 명령어의 길이가 가변적이기 때문에 순차적으로 해석해야 하고 조건/비조건 분기가 중간에 자주 등장하므로 여러개의 명령어를 처리하기에는 적합하지 못했다.

결국, 펜티엄부터 RISC86이라는 기법이 사용되었다. 이 방식은 AMD의 인텔 호환 CPU에서 사용된 기술로, 명령어의 해석 부분을 기존의 슈퍼 스칼라 방식으로 유지하면서 독립된 장치로 설계하여 연속적이고 고속으로 명령어를 RISC 방식으로 변환시키는 것이다. 그리고, 실제로 연산을 처리하는 장치는 RISC 방식으로 처리하여 여러 개의 명령어를 처리할 수 있도록 하는 방식이다. 그래서, 인텔 펜티엄 프로세서는 최대한 두 개의 명령어를 동시에 처리할 수 있는 것이다.


CISC 방식의 마이크로 프로세서
RISC(Reduced Instruction Set Computer)
1970년대에 등장한 RISC 방식은 최신 프로세서의 핵심 기술로, CPU에서 수행하는 모든 동작의 대부분이 몇 개의 명령어만7으로 가능하다는 사실을 전제로 하고 있다.

인텔과 경쟁하며 제품을 개발하던 모토롤라(Motorola)의 프로세서를 사용한 애플(Apple)의 매킨토시 컴퓨터에는 68 계열의 프로세서가 장착되어 있는데, 이 프로세서가 CISC(Complex Instruction Set Computer) 방식을 채택하고 있다. 모토롤러의 RISC계열로는 88계열이, 인텔에서는 x60계열이 있었다. 말 그대로 간단한 명령어만으로 구성되는 CPU이다.
그래서, 인텔 CPU 기반으로 개발된 프로그램은 매킨토시에서 사용할수 없었는데, 이것은 CPU 아키텍처가 다르기 때문이다.

RISC CPU는 고정된 길이의 명령어를 사용하고 명령어의 종류가 미리 정해져 있으므로 해석 속도가 빠르고 여러 개의 명령어를 처리하기에 적합하다는 장점이 있다. 특히, 분기 위치가 정해져 있고 비순차 처리도 가능하다. 그러나, 처리 비트 단위가 변하거나 CPU의 구조가 조금만 바뀌어도 하위 프로세서와의 호환성이 떨어지므로 문제가 발생한다. 이것은 하위 컴퓨터의 표준이 될만한 호환 명령어라는 개념이 없고 프로세서의 단계에 따라 최적의 명령어가 정해져 있기 때문이다.

이처럼 RISC 방식의 대표적인 CPU인 모토롤라 68 계열은 소프트웨어의 호환성 결여 때문에 인텔에 비해서 뛰어난 성능을 가지고 있음에도 불구하고 많은 사용자를 확보하지 못하고 있다. 단지 고성능의 대용량 데이터 처리가 필요하고 소프트웨어 활용이 비교적 고정되어 있는 워크스테이션을 중심으로 해서 많이 사용되고 있다.

RISC는 명령어가 전부 1워드(word) 길이로 짧고 파이프라인(pipeline)과 슈퍼 스칼라(super scalar)를 통해서 멀티 태스킹이 가능하므로 CISC에 비해서 많은 레지스터를 가지고 있다는 특징을 가진다.

간단히 설명하자면 RISC 는 명령어를 줄여서 수가 적기 때문에 명령어 크기를 일정하게 만들수 있습니다. RISC 는 속도가 빠른 대신 호환성이 떨어집니다.  아래는 상세한 설명입니다