본문 바로가기
CONCEPT/Computer Architecture

[컴퓨터구조] 레지스터

by 1005 2025. 2. 17.

레지스터: CPU 내부의 작은 임시 저장장치 <- 프로그램 속 명령어&데이터는 실행 전후로 레지스터에 저장함.

 -> row레벨 개발자(시스템 개발자, 임베디드 개발자)는 레지스터에 있는 값을 관찰하는 경우 많음. 

 

CPU 내부에는 다양한 레지스터들이 있고, 각기 다른 역할을 한다.

* CPU 종류마다 레지스터 종류와 갯수도 다름. 

 

(공통 8가지에 대해 학습할 예정)

 

1. 프로그램 카운터

: 메모리에서 가져올 명령어의 주소 (메모리에서 읽어 들일 명령어의 주소)

: instruction pointer(명령어 포인터)라고 부르는 CPU도 있음.

 

2. 명령어 레지스터

: 해석할 명령어 (방금 메모리에서 읽어 들인 명령어)  <- 제어장치가 해석함.

 

3. 메모리 주소 레지스터

: 메모리의 주소  <- CPU가 읽어 들이고자 하는 주소를 주소 버스로 보낼 때 거치는 레지스터

 

4. 메모리 버퍼 레지스터

: 메모리와 주고받을 값(데이터와 명령어) <- CPU가 정보를 데이터 버스로 주고받을 때 거치는 레지스터  

 

프로그램이 순차적으로 실행되는 원리

 

5. 플래그 레지스터

: 연산 결과 또는 CPU 상태에 대한 부가적인 정보

 

6. 범용 레지스터

: 다양하고 일반적인 상황에서 자유롭게 사용

 

7. 스택 포인터 

: 스택의 꼭대기를 가리키는 레지스터(스택이 어디까지 차 있는지에 대한 표시)

    <- 스택 주소 지정 방식(스택과 스택 포인터를 이용한 주소 지정 방식)에서 사용함.

 

8. 베이스 레지스터

: 변위 주소 지정 방식(오퍼랜드 필드의 값(변위)특정 레지스터의 값을 더하여 유효 주소 얻기)

 

* 유효주소(effective address)

: 연산에 사용할 데이터가 저장된 위치


상대 주소 지정 방식: 오퍼랜드 필드의 값과 프로그램 카운터의 값을 더하여 유효 주소 얻기

 

베이스 레지스터 주소 지정 방식: 오퍼랜드 필드의 값과 베이스 레지스터의 값을 더하여 유효 주소 얻기

* 베이스 레지스터: 프로그램의 시작점 주소 = 기준 주소

 

댓글