바로 이전글에 언급했던 CPU에 대해 더 자세히 알아보고, 둘이 어떻게 사용하는지 알아 볼 것이다.
CPU : 프로그램 명령을 해석하고 실행하는 역할, 사람의 두뇌에 해당한다.
CPU - 구성요소
1. 연산 장치
- 산술 논리 연상장치
- 사칙연산 등의 산술연살과 AND , OR등의 논리 연산을 담당한다.
마치 CPU내부에 있는 계산기 역할을 한다고 보면 된다.
2. 제어장치
- 명령어를 해독하는 기능과 제어신호를 해당 장치에 전달하는 역할이다.
- CPU 내부와 다른 하드웨어 장치 간의 데이터 흐름을 관리한다.
- 명령어 해독기: [명령어 레지스터]의 명령어를 해독하여 수행할 연산을 결정한다. 수행할 연산이 연산장치에서 실행되게 한다.(ALU같은..)
마치 CPU의 교통신호등, 매니저라고 생각하면 된다. 지시를 내리고 조율한다.
3. 레지스터
- CPU 내부의 고속 저장 공간으로, 현재 처리중인 데이터를 임시로 저장한다.
- CPU 내부의 대표적인 레지스터이다. 다양한 종류가 존재한다. 밑에서 살펴보겠다.
마치 CPU의 작은 메모장이라고 생각하면 된다.
[기억장치 버퍼 레지스터 ] : 주기억 장치에서 읽어온 명령어를 임시 저장한다. (CPU와 메모리 사이의 다리 역할)
[기억장치 주소 레지스터] : [명령어 레지스터]에 저장된 명령어의 주소를 저장한다.
[명령어 레지스터] : 실행중인 명령어를 저장한다.
[프로그램 카운터(PC)] : 다음에 인출할 명령어의 주소를 저장한다. CPU가 다음에 어디로 가야 할지 알려주는 "네비게이션"역할이다.
< 레지스터를 왜 "고속" 저장공간이라고 부를까 ?>
레지스터는 CPU 내부에 있는 작은 메모장이라고 생각하면 편하다. CPU내부에 존재하고 있기 때문에, CPU가 읽고 쓸수 있어서 빠르다(고속)
CPU - 명령어 처리 흐름
전체적으로 CPU는 (명령어 인출 => 명령어 해독 => 명령어 실행 => 프로그램 카운터 갱신) 이렇게 4단계로 이루어진다.
이제 단계별로 자세히 설명하겠다.
1. 명령어 인출 단계 (주기억 장치에서 명령어를 꺼내옴)
cf) 명령어같은 데이터 정보는 주기억장치에 저장된다.
- [프로그램 카운터PC (네비게이션) ]에 다음에 실행할 명령어 주소를 저장하고 있는다
- [기억장치 주소 레지스터]에 PC값을 복사하여 다음으로 읽어올 데이터 주소를 지정한다. (파랑)
- 주기억 장치에서 읽어온 명령어를 [기억장치 버퍼 레지스터]에 임시 저장한다. (주황)
- 차례가 되면 이 데이터를 [명령어 레지스터]로 전달한다. (주황)

예시를 들어보자. "a"번째 주소가 있다고 했을 때, 사진처럼 프로그램 카운터는 "a"번째 주소를 저장하고 있는다. 이것을 기억장치에 전달하고 주소버스를 주기억장치에 주소를 전달한다.
이후 데이터버스를 통해 "a"주소에 해당하는 데이터를 CPU로 되돌려준다. 그 정보를 기억장치 버퍼 레지스터에 임시저장한하고 차례가 되면 명령어 레지스터로 전달한다.
이때 제어장치는 CPU내부 모든 요소와 연결되어있다. cf)제어버스 : ready,write...
위에 예시와 같이 , 시스템버스는 (주소전달+제어신호 전달)의 역할로 사용되는것을 확인할 수 있다.
2. 명령어 해독 단계
cf) 연산 해석만 하는게 아니라, 필요한 경우 시스템 버스를 통해 메모리 추가접근을 하여 데이터를 가져온다.
- [명령어 레지스터]는 전달받은 가져온 명령어를 저장한다.
- [명령어 해독기]에서 수행해야 할 작업을 분석한다 (연산인지, 메모리 접근인지, I/O인지) (연두)
- 피연산자 주소가 있으면 다시 [기억장치 주소 레지스터]로 전달하여 데이터를 준비한다.

예시를 들어보자.
Q. 명령어 레지스터에 ADD 2 3 이라고 적힌다면?
즉시값이라 , 메모리 접근이 최소화된다. 2,3이 숫자 자체이기 때문에 메모리 접근이 없다.
Q. 명령어 레지스터에 ADD X+Y가 적힌다면?
숫자가 아닌 새로운 메모리 주소(X, Y)가 명령어에 있으면 CPU는 해당 주소를 주소 레지스터에 적고, 주소 버스를 통해 메모리에 전달한 뒤 제어버스를 통해 읽기(Read) 신호를 보낸다. 메모리는 해당 주소의 데이터를 데이터 버스를 통해 CPU로 전송하고 그 값은 기억장치 버퍼 레지스터(MBR)에 저장된다. 제어장치는 이 모든 과정을 제어하며 CPU 내부의 모든 레지스터와 연산장치에 적절한 제어 신호를 전달한다.
3. 명령어 실행 단계 (빨강)
- 명령어의 종류에 따라 [연산장치(ALU)]를 통해 연산이 수행되거나 데이터의 입출력 또는 메모리 접근 등의 작업이 이루어 진다. (버스를 통해)
- 결과를 레지스터 또는 주기억 장치에 저장한다.

4. 프로그램 카운터 갱신
- 명령어 실행이 끝나면 [프로그램 카운터]값이 1 증가하여 다음 명령어 주소를 가리킨다.
- 분기/점프 명령일 경우에는 단순히 +1이 아니라, 분기 대상 주소가 pc에 저장된다.
명령어 실행이 완료되면 프로그램 카운터(PC)는 다음 명령어의 주소를 가리키도록 증가한다.
단, 분기나 점프 명령어의 경우에는 연산 결과로 결정된 분기 대상 주소가 PC에 저장된다.
결과적으로 이렇게 총 4단계를 반복되면서 프로그램이 실행된다.!!
'cs > 컴퓨터구조' 카테고리의 다른 글
| 컴퓨터의 구성 (1) | 2026.01.01 |
|---|---|
| 데이터와 표현- 컴퓨터의 문자 표현 (0) | 2025.12.31 |
| 데이터와 표현- 컴퓨터의 숫자 표현 (0) | 2025.12.31 |