1. Register (레지스터)
레지스터는 CPU 내에서 데이터와 주소를 임시로 저장하는 매우 빠른 메모리입니다. 주로 두 가지 유형으로 나뉩니다:
- GPR (General Purpose Registers, 범용 레지스터): GPR은 데이터 처리를 위해 CPU가 자유롭게 사용할 수 있는 레지스터입니다. 산술 연산, 논리 연산, 데이터 이동 등 다양한 작업에서 사용됩니다. 대표적으로 32-bit 시스템에서는 32개의 범용 레지스터가 있을 수 있습니다. 이 레지스터들은 특정 기능에 얽매이지 않으며, 데이터나 주소 값을 임시로 저장할 수 있습니다.
- SPR (Special Purpose Registers, 특수 레지스터): CPU의 제어와 상태 관리에 필요한 레지스터들로, 특정한 기능을 담당합니다. SPR은 보통 상태 레지스터(Status Register), 프로그램 카운터(Program Counter), 스택 포인터(Stack Pointer) 등으로 구성됩니다.
- 상태 레지스터는 연산 결과에 대한 플래그 비트(Carry, Zero, Negative, Overflow 등)를 저장합니다.
- **프로그램 카운터(PC)**는 다음에 실행할 명령어의 주소를 저장합니다.
- **스택 포인터(SP)**는 스택 메모리의 최상단 주소를 가리키며 함수 호출 시 중요한 역할을 합니다.
2. ALU (Arithmetic Logic Unit, 산술 논리 연산 장치)
ALU는 산술 연산(덧셈, 뺄셈 등)과 논리 연산(AND, OR, NOT 등)을 수행하는 장치입니다. ALU는 CPU의 연산 핵심이며, 두 개의 입력을 받아 연산을 수행한 후 결과를 출력합니다. 또한, 플래그 비트(Carry, Zero, Overflow 등)를 통해 연산 결과에 대한 상태 정보를 제공합니다.
3. Control Logic (제어 논리)
제어 논리는 CPU의 모든 작동을 조정하고 동기화하는 역할을 합니다. 명령어 디코딩, 실행 순서 결정, 레지스터와 메모리 접근 제어 등 중요한 작업을 수행합니다. 제어 논리는 명령어 인코딩을 해석하여 ALU, 레지스터, 메모리 등 각 컴포넌트에 어떤 작업을 해야 할지 신호를 전달합니다.
- FSM(유한 상태 기계, Finite State Machine) 기반으로 동작하는 경우가 많습니다. FSM은 각 상태에서 특정 명령어를 수행하고, 다음 상태로 넘어가는 방식으로 CPU의 전체 동작 흐름을 제어합니다.
4. Instruction Memory (명령어 메모리)
CPU가 실행할 명령어들이 저장된 메모리입니다. 일반적으로 실행할 프로그램의 바이너리 코드가 로드되며, CPU는 프로그램 카운터(PC)를 사용해 명령어 메모리에서 다음에 실행할 명령어를 가져옵니다.
- ROM(Read-Only Memory) 형태로 구현되는 경우도 있으며, 일부 임베디드 시스템에서는 프로그램이 ROM에 저장된 상태로 실행됩니다.
5. Data Memory (데이터 메모리)
명령어 실행 중에 사용되는 데이터들이 저장되는 메모리입니다. 명령어가 데이터를 읽거나 쓰는 작업을 수행할 때 사용됩니다. 이 메모리는 CPU가 연산 중 필요로 하는 변수를 저장하거나, 연산 결과를 임시로 보관하는 용도로 사용됩니다.
- RAM (Random Access Memory) 형태로 구현되며, 데이터 메모리 접근은 주로 로드(Load)와 스토어(Store) 명령어에 의해 이루어집니다. 이때 GPR을 사용하여 메모리 주소와 데이터를 주고받습니다.
'CPU ARCHITECTURE1 > CPU' 카테고리의 다른 글
| 05-1. Instruction Fetch(IF) (0) | 2024.09.30 |
|---|---|
| 05. CPU 5-Stage Pipeline (0) | 2024.09.30 |
| 04. SPR(Special Purpose Register) (0) | 2024.09.29 |
| 02. Computer Architecture (0) | 2024.09.29 |
| 01. Overall Architecture(Memory Hierarchy) (0) | 2024.09.29 |