저번에는 컴퓨터가 이해하는 정보에 대해 학습해보았습니다. 이번에는 컴퓨터의 구조에 대해 자세히 알아보도록 하겠습니다.
CPU란?
CPU(Central Processing Unit)는 중앙 처리 장치로 산술·논리 연산, 제어, 입출력 등 프로그램 명령을 수행합니다. 비유하자면 사람의 두뇌라고 할 수 있습니다.

CPU의 구조
- 산술 논리 연산 장치(ALU ; Arithmetic and Logic Unit) : 연산을 수행할 회로로 구성된 일종의 계산기
- 제어 장치(CU ; Control Unut) : 명령어를 해석해 제어 신호라는 전기 신호를 내보내는 장치
- 레지스터(Register) : 임시 저장 장치
- 데이터와 명령어를 처리하는 중간 값을 저장
- 여러 개로 각기 다른 이름과 역할을 수행한다.
이 중 레지스터에 대해 자세히 알아보도록 하겠습니다.
레지스터란?
CPU 내부의 임시 저장 장치로, WinDbg(윈도우 운영체제), gdb(리눅스, 맥 OS 운영체제) 등의 디버깅 도구를 이용해서 관찰할 수 있습니다.
각각의 레지스터가 CPU 내부에서 어떤 역할을 수행하는지 알아봅시다.
레지스터 내부 동작
1. 프로그램 카운터

- 프로그램 카운터(PC; Program Counter) : 메모리에서 다음으로 읽어 들일 명령어의 주소
- CPU의 종류 따라 명령어 포인터(IP, Instruction Pointer)라고 부르는 경우도 존재합니다.
- 일반적으로 프로그램 카운터는 메모리 주소가 1씩 증가하여 순차적으로 실행되지만, 프로그래밍 언어의 조건문이나 리턴문에 따라서 실행 흐름이 순차적이지 않을 때는 임의의 위치로 변경됩니다.

레지스터 종류
1. 명령어 레지스터(IR; Instructiion Register)
- 해석할 명령어, 즉 메모리에서 방금 읽어 들인 명령어를 저장하는 레지스터
- 명령어 레지스터 속 명령어를 해석한 후 ALU로 하여금 연산하도록 시키거나 다른 부품으로 제어 신호를 보내 해당 부품을 작동시킨다.
2. 범용 레지스터(general purpose register)
- 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터
- 데이터와 명령어, 주소 모두 저장
- 일반적으로 CPU 안에 여러 개의 레지스터들이 존재한다.
3. 플래그 레지스터(flag register)
- 연산 결과 혹은 CPU 상태에 대한 부가 정보인 플래그 값을 저장하는 레지스터
* 플래그 : CPU 명령어 처리 과정 중 반드시 참조해야 할 상태
4. 스택 포인터(stack pointer)
- 스택과 같은 형태로 사용 가능한 주소 공간을 하나 이상 가지고 있는 메모리 영역
- 스택이 채워진 정도를 나타내는 레지스터

다양한 레지스터에 대해 학습했지만, 레지스터만으로는 CPU를 이해하긴 어렵습니다. 다음에는 인터럽트에 대한 내용과 함께 CPU에 대한 마무리 내용을 가져오도록 하겠습니다.
'CS' 카테고리의 다른 글
| 컴퓨터의 구조 - 메모리 (0) | 2026.03.17 |
|---|---|
| 컴퓨터의 구조 - CPU에 대해 2 (1) | 2026.03.17 |
| 컴퓨터의 구조 - 컴퓨터가 이해하는 정보 (0) | 2026.03.12 |