🧞 들어가기 전에
CPU의 기능은 연산 기능, 기억 기능, 제어 기능이 있다.
이 3가지 기능을 담당하는 CPU의 3대 구성 요소는:
- 연산 기능을 담당하는
ALU
- 기억 기능을 담당하는
Register
- 제어 기능을 담당하는
Control Unit
관련하여 자세한 내용은 본문을 참고해 주시라~
🧮 1. 산술 논리 장치(Arithmatic Logic Unit)
- 제어 장치의 명령을 받아 실제 연산을 수행
- 덧셈, 뺄셈, 나눗셈, 곱셈과 논리 연산(True/False) 수행
- 가산기, 누산기, 보수기, 데이터 레지스터, 오버플로우 검출기 등으로 구성
🧠 2. 기억 장치(Memory Unit) -> RAM X
- 기억 장치라고 하면 흔히 RAM을 먼저 떠올릴 텐데 CPU의 기억장치는 RAM이 아님
- CPU의 기억 공간인 레지스터(Register)를 의미
- CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억장소
- 메모리 중에서 가장 빠른 속도를 가짐
- 일반적으로 말하는 8비트/16비트/32비트 컴퓨터는 레지스터 한개의 크기를 의미
- CPU 내부에는 다양한 레지스터가 있고, 각기 다른 역할(용도)을 지님
[기억장치 예시]
"1 + 2" 연산 수행 시, 다음과 같은 레지스터가 있을 수 있음
- 1과 2의 값을 저장하기 위한 레지스토리
- 1 + 2의 결과 값인 3을 저장하기 위한 레지스토리
- CPU마다 레지스터 종류와 개수가 다름
- 똑같은 용도의 레지스터가 다른 이름으로 불리는 경우가 있는데 그럼에도 불구하고 대다수 CPU가 갖고 있는 레지스터가 있음
- 프로그램 카운터(Program Counter)
- 명령어 레지스터(Instruction Register)
- 메모리 주소 레지스터(Memory Address Register)
- 메모리 버퍼 레지스터(Memory Buffer Register)
- 플래그 레지스터
- 범용 레지스터
- 스택 포인터
- 베이스 레지스터
여기서는 1~4번 레지스터까지 다루어 보려 함.
1~4번 레지스터가 어떻게 상호작용(?)하는지에 대해서
코드스쿼드에 같이 참여하고 있는 조원 🌍지구님이 블로그에 그림으로 잘 정리해 놓으셔서 필자가 쓴 본문과 해당 블로그의 그림을 같이 보면 이해가 잘 될 것 같다.
📌 2-1. PC 레지스터(Program Counter)
- 메모리에서 가져올 (현재 or 다음)명령어의 주소를 저장
📌 2-2. IR 레지스터(Instruction Register)
📌 2-3. MAR 레지스터(Memory Address Register)
📌 2-4. MBR 레지스터(Memory Buffer Register)
🎚 3. 제어 장치(Control Unit)
- 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어
- 메모리에서 명령어 읽어옴 -> 해독 -> 해당하는 장치에게 제어 신호를 보내 수행함
- 간단하게는 CPU 이외의 모든 장치, CPU가 자신 및 주변 기기들을 컨트롤할 수 있는 장치를 의미함
(예: RAM, 그래픽 카드)
- 제어장치의 구성요소는 다음과 같은 것들이 있는데 시간이 있으면 또 다뤄보겠음
(공부할게 넘 많아...)
- 명령 해독기(Decoder)
- 부호기(Encoder)
- 제어 주소 레지스터(CAR)
- 제어 버퍼 레지스터
- 제어 기억장치
- 순서 제어 모듈
참고: