컴퓨터의 중앙처리장치와 마이크로프로세서
본문 바로가기

용어 정리, 이슈/과학&기술

컴퓨터의 중앙처리장치와 마이크로프로세서

728x90
컴퓨터활용능력 자격증 필기를 준비하면서 CPU에 대한 내용을 다시 한번 정리해봤다.

1. 중앙처리장치(CPU)와 그 구성

인간에게 대뇌가 있다면, 컴퓨터에는 CPU가 있다!

사실 이 한마디로 모든 설명이 끝난다. 그러나 인체공학이나 뇌과학을 전문적으로 공부한 사람이 아니라면 대뇌가 어떻게 구성되어 있고, 각 위치가 어떤 역할을 담당하는지 정확하게 알지 못한다. 컴퓨터 공학에서도 마찬가지다. CPU의 구성장치가 무엇인지 공부한 적이 없다면 전혀 모른다. CPU에 대해 제대로 정리하기 위해 이 글을 쓴다.

 

CPU 혹은 중앙처리장치(Central Processing Unit)컴퓨터 프로그램을 구성하는 명령어를 수행하는 전자 회로다. CPU라는 말 이외에도 중앙처리기(central processor)주처리기(main processor)라고 부르기도 한다. 이 CPU는 특정한 프로그램의 명령어로 지정된 기본적인 연산, 논리, 제어, 입출력(I/O) 작업을 수행한다. 따라서 이 CPU는 입출력 회로(I/O 회로)나 주기억장치(메인 메모리)와 같은 외부 부품과 그래픽 처리 장치(GPU)와 같은 전문 프로세서와 대조된다.

이해를 돕기 위해 레지스터를 밖에 두었지만, 경우에 따라 CU나 ALU에 장착되어 있는 경우가 많다.

CPU의 주요 구성 요소로는 연산과 논리를 수행하는 산술 논리 장치(ALU), 피연산자를 공급하고 ALU 연산 결과를 저장하는 프로세스 레지스터(processor register), ALU, 레지스터 및 기타 구성 요소의 조정된 작업을 지시하여 디코딩 및 명령어 실행, 메모리로부터 가져오기(페칭)를 조절하는 제어 장치(CU)가 포함된다.

CPU(중앙처리장치)의 구성
1. 제어장치CU) - 입출력 및 저장, 연산 장치들에 대한 지시 또는 감독 기능을 수행하는 기능
2. 연산장치(ALU) - 산술적 / 논리적 연산을 수행하는 기능
3. 주기억장치(레지스터) - 입력된 자료들을 주기억장치나 보조기억장치에 기억하거나 저장하는 기능

대부분의 현대 CPU는 집적회로(IC) 마이크로프로세서(microprocessor)에 구현되며, 하나 이상의 CPU가 하나의 IC칩에 있다. 다중 CPU를 가진마이크로프로세서칩은 멀티코어 프로세서다. 개별 물리적 CPU(프로세스 코어)를 멀티스레드화해서 추가적인 가상 CPU나 논리적 CPU를 생성할 수도 있다.

 

1-1. 제어장치(CU) : 명령어를 해독해 해당 장치에 제어 신호를 보내 지시, 감독

제어장치(Control Unit)프로세서(processor)의 동작을 지시하는 CPU의 구성 요소다. 컴퓨터의 메모리, 연산 및 논리 장치, 입출력 장치에 어떻게 프로세서로 전송된 명령어에 응답해야하는지를 알려준다. 또한 타이밍과 제어 신호를 제공해 다른 장치(unit)의 작동도 지시한다.

대부분의 컴퓨터 자원(리소스)는 이 제어장치에 의해 관리되며, 그래서 제어장치는 CPU와 다른 장치 사이의 데이터 흐름을 감독한다. 현대의 컴퓨터 설계에서 제어장치는 일반적으로 CPU의 내부 부분에 있으며, CPU가 도입되고 나서부터 전체적인 역할과 작동에 변화가 전혀 없었다.

1-1-1. 프로그램 카운터(PC) : 다음에 수행할 명령어의 주소 기억

흔히 명령어 포인터(IP, Instruction Pointer)라고도 부르는 프로그램 카운터(PC, Program Counter)마이크로프로세서 내부에 있으며 다음에 수행할 명령어의 주소를 기억하는 레지스터다. 프로그램 카운터 또한 레지스터이기 때문에 종종 명령어 주소 레지스터(IAR, Instruction Address Register)명령어 레지스터(IR, Instruction Register)라고도 부른다.

 

1-1-2. 명령 레지스터(IR) : 현재 수행 중인 명령어의 내용 기억

현재 명령 레지스터(CIR, Current Instruction Register) 혹은  명령 레지스터(IR, Instruction Register)현재 실행중이거나 디코딩 중인 명령어을 유지하고 기억하는 CPU 제어장치의 한 부분를 말한다. 단순 프로세서에서 실행될 각 명령어가 명령 레지스터에 로드되며, 이후 이 명령 레지스터는 명령어가 디코딩, 준비, 실행되는 동안 이를 유지한다.

 

1-1-3. 명령 해독기(디코더) : 현재 수행할 명령 해석(이진법->십진법)

디지털 전자 공학에서 명령 해독기(디코더,decoder)코드화된 입력에서 이진 정보를 최대 2n개의 고유 출력으로 변환하는 조합 논리 회로다. 현재 수행해야 할 명령어을 해석하여 부호기로 전달하는 역할을 맡는데, 보통 부호화(인코딩)된 데이터를 사람이 읽을 수 있는 부호화(코딩)되기 전의 상태로 되돌리는 작업을 한다.

 

 

1-1-4. 부호기(인코더) : 명령을 실행하기 위한 신호로 변환(십진법->이진법)

디지털 전자 공학에서 부호기(인코더,encoder)는 부호화(인코딩)를 하는 이진 변환기를 말한다. 명령 해독기(디코더)에서 전송된 명령어를 실행하기 위한 이진 신호(0과 1)로 변환해 각 장치로 전달하는 역할을 맡는다.

 

 

1-2. 산술논리장치(ALU) : 연산(계산) 및 이동

산술논리장치(Arithmetic Logic Unit)정수 연산과 비트 논리 작업을 수행하는 프로세서 내의 디지털 회로다. ALU에는 연산할 데이터 워드(피연산자), 이전 연산에서 얻은 상태 정보 및 수행할 연산을 나타내는 제어장치의 코드가 입력된다.

ALU의 입력 및 출력 신호의 기호적 표현

실행 중인 명령어에 따라서, 피연산자는 내부 CPU 레지스터나 외부 메모리로부터 올 수도 있고 ALU 자체에서 생성된 상수일 수도 있다. 이렇게 입력된 신호는 경우에 따라 산술/논리 연산, 관계 연산, 이동(shift) 등의 방식으로 수행된다.

 

1-2-1. 누산기(ACC)

컴퓨터의 CPU에서 누산기(accumulator)중간 ALU 결과가 일시적으로 저장되는 레지스터다. 즉, 연산 결과를 임시 기억하는 공간인 것이다. '임시 기억'이라는 말에서 알 수 있듯, 이 누산기는 레지스터의 한 종류다.

 

이 누산기라는 말을 알기전에 누계(累算, to total)에 대해서 알아야 한다. 누계란 부분끼리의 합을 다시 묶어(累) 친 셈(算) 즉, 누적된 값을 계산한 것을 말한다. 이러한 누계를 계산하는 기계누산기라고 한다. 영어의 accumulate 또한 '축척하다(누적하다)'라는 뜻이라는 걸 알면 이해하기 쉽다.

 

1-2-2. 가산기

가산기(adder)덧셈 연산을 수행하는 디지털 회로를 말한다. 대부분의 컴퓨터나 프로세서에서 이 가산기는 ALU에 사용된다.

 

1-2-3. 보수기

보수기(補數器)뺄셈 연산을 수행하기 위해 입력된 값을 보수(補數)로 표현하는 회로를 말한다. 대부분의 컴퓨터나 프로세서에서 이 가산기는 ALU에 사용된다. 여기서 보수(補數)란 말 그대로 보충(補)해주는 수(數)를 말하는데, 컴퓨터에서 음의 정수를 표현할 때만 종종 쓰이는데  2의 보수를 사용해서 표현한다.

 

1-2-4. 상태 레지스터

조건 코드 레지스터(CCR, condition code register)플래그 레지스터(flag register)라고도 불리는 상태 레지스터(status register)는 다양한 산술 연산 결과의 상태를 알려주는 상태 플래그 비트의 모음이자 프로세서 상태에 대한 정보를 포함하는 하드웨어 레지스터를 말한다. 보통 영어 대문자를 이용해 상태를 표시하는데 대표적인 CPU 상태 레지스터 플래그 목록은 아래와 같다.

플래그 기호 이름 정의
Z 제로 플래그 연산과 논리 작업 혹 때로는 부하(load)의 결과가 0인 경우는 참
C 캐리 플래그 부호 없는 숫자의 연산 결과가 비트 범위를 넘어선 경우는 참
S 사인 플래그 수학적 연산 결과가 음수인 경우는 참

일부 프로세서에서,
마지막 결과의 음수 여부, 덧셈 혹은 뺄셈의 발생 여부 판단
N 네거티브 플래그
V / O / W 오버플러그 플래그 부호 있는 숫자의 연산 결과가 비트 범위를 넘어선 경우는 참

1-2-5. 메모리 버퍼 레지스터

메모리 데이터 레지스터(MDR, Memory Data Register) 혹은 국내에서는 약칭인 데이터 레지스터(DR, Data Register)로 유명한 메모리 버퍼 레지스터(MBR, Memort Buffer Register)컴퓨터 CPU에 내장되어 즉각적인 액세스 저장소로 전송되는 데이터를 저장하는 레지스터 즉, 연산 등에 사용할 데이터를 일시적으로 기억하는 레지스터를 말한다.

 

1-2-6. 인덱스 레지스터

컴퓨터 CPU의 인덱스 레지스터(index register)는 프로그램을 실행하는 동안 피연산자 주소를 수정(변경)하기 위해 사용하는 프로세서 레지스터 혹은 할당된 메모리 위치를 말한다. 이 인덱스 레지스터의 내용은 실제 데이터(피연산자)의 유효한 주소를 형성하기 위해 즉시 주소에 추가된다.

 

1-3. 레지스터(register) : 임시기억장치

프로세스 레지스터(processor register)컴퓨터의 프로세서가 빠르게 액세스할 수 있는 ''위치(영역)''를 말한다.

레지스터는 보통 소량의 빠른 저장소로 구성되는 '위치(location)'이지만, 그 위치에 CPU 내의 데이터를 일시적으로 저장하기 때문에 '저장장치'라고 보기도 한다. 가장 큰 장점은 레지스터는 주기억장치보다 속도가 빠르며, 메모리 중 속도가 가장 빠르다는 것이다. 누산기(ACC)처럼 ALU에서 연산된 자료를 일시적으로 저장하는 기능도 가지고 있다.

[자주 헷갈려하는 것들]

1. 레지스터 vs 누산기
레지스터임시기억장치이고, 누산기 또한 연산 장치 내에서 연산 결과를 임시 기억하는 위치라는 점에서 이 둘을 자주 헷갈린다고 한다. 누산기는 레지스터냐, 연산장치(ALU)냐라면서 고민에 빠진다는데, 정확하게 누산기는 연산 장치(ALU)에서 사용되는 레지스터다! 이렇게 기억하면 헷갈릴 일이 없다.

2. 레지스터 vs 레지스트리
레지스터임시기억장치이고, 레지스트리는 마이크로소프트OS에서 데이터 및 정보 유지 관리를 담당하는 데이터베이스다. 물론 둘 다 같은 뜻에서 유래한 동족어이긴 하지만, 레지스터는 '기억장치'이고, 레지스트리는 '정보관리 데이터베이스'다.

 

2. 마이크로프로세서

마이크로프로세서(microprocessor)는 데이터 처리 논리 및 제어가 하나 또는 소수의 집적 회로에 포함되는 컴퓨터 프로세서 혹은 CPU다. 이 프로세서를 CPU와 같이 설명하는데는 이유가 있다. 마이크로프로세서는 컴퓨터의 CPU 기능을 수행하는 데 필요한 산술, 논리 및 제어 회로를 포함하는 새로운 형태의 CPU이기 때문이다. 그렇기에 보통 개인용 컴퓨터(PC)에서는 이 마이크로프로세서사 CPU로 사용되기도 한다.

 

이 마이크로프로세서는 클럭 주파수와 내부 버스의 폭으로 성능을 평가하며, 기본 처리 속도는 트랜지스터의 집적도에 따라 결정된다. 또 소규모의 임베디드 시스템이나 휴대용 기기에서부터 메인 프레임이나 슈퍼 컴퓨터까지 다양한 컴퓨터에서 사용되고 있다. 이러한 마이크로프로세서는 설계방식에 따라 2가지로 분류할 수 있다.

복잡 명령어 집합 컴퓨터
(CISC, Complex instruction set computer)
단일 명령어가 연산 작업, 메모리 저장, 메모리로부터의 부하와 같은 여러 하위 수준의 연산을 실행하거나 단일 명령어 내에서 다단계 연상 혹은 주소 지정 모드를 실행할 수 있는 컴퓨터 구조
(마이크로 프로그래밍을 통해 사용자가 작성하는 고급 언어에 각각 하나씩 기계어를 대응시킨 회로로 구성된 프로세서)
축소 명령어 집합 컴퓨터
(RISC, Reduced instruction set computer)
비교적 적은 수의 명령 집합을 신속하고 효율적으로(단순하게) 처리하도록 설계된 프로세서이자 컴퓨터 구조

그럼 CISC와 RISC의 차이를 살펴보며 글을 끝마치겠다.

구분 CISC RISC
명령어 수 많음 적음
레지스터 수 적음 많음
프로그래밍 간단 복잡
처리 속도 느림 빠름
전력 소모 많음 적음
생산 가격 고가 저가
용도 일반 PC 워크스테이션, 그래픽용 컴퓨터, 서버

 

반응형