본문 바로가기
컴퓨터구조

[컴퓨터구조][기초] CPU - 레지스터

by codingbird1234 2025. 3. 17.

*해당 글은 '혼자 공부하는 컴퓨터구조 + 운영체제(강민철 지음)'을 참고하여 작성되었습니다.

*구체적인 예시와 함께 더 자세히 공부하고 싶으신 분들은 해당 책을 읽어보시기를 추천드립니다.

 

 

최근에 컴퓨터의 4가지 핵심 부품에 대해 알아보면서, 현재 CPU를 살펴보고 있습니다.

지난 시간까지 CPU의 ALU와 제어 장치에 대해서 알아봤는데요, 오늘은 레지스터에 대해 알아보겠습니다.

 

 

레지스터(CPU 내부의) 임시 저장 장치입니다.

일반적으로 프로그램이 실행될 때, 명령어와 데이터는 레지스터에 저장됩니다.

CPU가 프로그램을 실행할 때 필요한 정보들은 보통 레지스터를 거쳐간다는 것이죠.

 

레지스터는 이름, 종류, 크기가 다양합니다.

그 중에서도 공통적으로 사용되는 8가지의 레지스터에 대해 알아보겠습니다.

 

 

1. 프로그램 카운터

프로그램 카운터(PC : Program Counter)메모리에서 가져올 명령어의 주소를 저장하는 레지스터입니다.

명령어 포인터(IP : Instruction Pointer)라고 부르기도 합니다.

CPU는 해당 주소에 있는 명령어를 가져와서 그 명령을 수행하겠죠?

 

2. 명령어 레지스터

명령어 레지스터(IR : Instruction Register)메모리에서 가져온 명령어 자체를 저장하는 레지스터입니다.

프로그램 카운터는 메모리에서 가져올 명령어의 주소를 담고 있고,

그 주소에서 명령어를 가져오면 그 명령어는 명령어 레지스터에 저장되겠죠?

제어장치는 이 명령어 레지스터에 있는 명령어를 받아들이고 해석한 뒤 다른 장치에 제어 신호를 보내게 됩니다.

 

3. 메모리 주소 레지스터

메모리 주소 레지스터(MAR : Memory Address Register)메모리의 주소를 저장하는 레지스터입니다.

CPU가 메모리에 데이터를 저장하거나, 메모리에서 데이터를 읽어들일 때, 해당 메모리 주소를 메모리 주소 레지스터에 저장합니다.

해당 메모리 주소를 주소 버스로 보낼 때, 메모리 주소 레지스터를 거치게 됩니다.

 

4. 메모리 버퍼 레지스터

메모리 버퍼 레지스터(MBR : Memory Buffer Register)메모리와 주고받는 값을 저장하는 레지스터입니다.

메모리에 쓰고자 하는 값이나 메모리에서 가져온 값들은 메모리 버퍼 레지스터에 저장되어 사용되겠죠?

주소 버스로 내보낼 값이 메모리 주소 레지스터를 거쳐가듯이, 데이터 버스로 주고 받는 값은 메모리 버퍼 레지스터를 거칩니다.

 

5. 범용 레지스터

범용 레지스터(General Purpose Register)다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터입니다.

범용 레지스터는 데이터와 주소를 모두 저장할 있는 것입니다.

 

6. 플래그 레지스터

플래그 레지스터(Flag Register)연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장하는 레지스터입니다.

이전부터 꽤 자주 봤죠?

ALU 부분에서 언급했었습니다.

 

 

 

이렇게 8가지 레지스터 중 6개를 알아봤습니다.

나머지 2개는 주소 지정 방식과 관련이 있는데요, 이것들은 다음 시간에 마저 살펴보도록 하겠습니다!

오늘도 수고하셨습니다!