루리코딩 세상

CPU Register 본문

이론

CPU Register

루리딩 2025. 5. 14. 09:53

CPU 속 레지스터들은 이름, 크기, 종류가 매우 다양하다.

레지스터 이름 역할
프로그램 카운터 PC
(program Counter)
메모리에서 가져올 명령어의 주소, 메모리에서 읽어 들일 명령어의 주소를 저장한다.
명령어 포인터(Instruction Pointer) 라고 부르는 CPU도 있음
명령어 레지스터 IR
(Instruction Register)
해석할 명령어, 메모리에서 읽어 들인 명령어를 저장하는 레지스터.
레지스터 속 명령어를 받아들이고 해석한 뒤 제어 신호를 내보냄
메모리 주소 레지스터 MAR
(Memory Address Register)
메모리의 주소를 저장하는 레지스터
CPU가 읽어 들이고자 하는 주소 값을 주소 버스로 보낼 때 메모리 주소 레지스터를 거친다.
메모리 버퍼 레지스터 MBR
(Memory Buffer Register)
메모리 데이터 레지스터(Memory Data Register) 라고도 부른다.
플래그 레지스터
(Flag register)
ALU 연산 결과에 따른 플래그를 플래그 레지스터에 저장한다.
플래그 레지스터는 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장하는 레지스터이다.
범용 레지스터
(General Purpose register)
다양하고 일반적인 상황에서 자유롭게 사용 할 수 있는 레지스터이다.
메모리 버퍼 레지스터는 데이터 버스로 주고 받을 값만 저장하고, 메모리 주소 레지스터는 주소 버스로 보낼 주소 값만 저장한다. 
범용 레지스터는 데이터와 주소를 모두 저장할 수 있다.
- 범용 레지스터는 CPU 제조사에 따라 R0, R1, R2 // EAX, EBX 등으로 다양하게 불리움
- 아래 주소는 x86(x86-64) ARM 레지스터
- https://github.com/kangtegong/self-learning-cs
스택 포인터 **
(Stack poniter)
스택 주소 지정 방식이라는 주소 지정 방식에 사용된다.
베이스 레지스터
(Base-register addressing mode)
베이스 레지스터(기준 주소) -> 오퍼랜드(기준 주소로부터 떨어진 거리)
ex) "(Bra 값 200) (오퍼랜드 40)" = 기준 주소 200번지로부터 40만큼 떨어진 240번지로 접근하라.

 

 

 

'이론' 카테고리의 다른 글

Deadlock (교착 상태)  (0) 2025.05.26
확장자 명에 따른 프로그램 유형  (0) 2025.05.14
캐시 메모리 (Cache memory)  (1) 2025.05.14
Virtual memory, Virtual storage  (0) 2025.05.13
Thread(스레드)  (0) 2025.05.09