레지스터: CPU 내부의 작은 임시 저장장치 <- 프로그램 속 명령어&데이터는 실행 전후로 레지스터에 저장함.
-> row레벨 개발자(시스템 개발자, 임베디드 개발자)는 레지스터에 있는 값을 관찰하는 경우 많음.
CPU 내부에는 다양한 레지스터들이 있고, 각기 다른 역할을 한다.
* CPU 종류마다 레지스터 종류와 갯수도 다름.
(공통 8가지에 대해 학습할 예정)
1. 프로그램 카운터
: 메모리에서 가져올 명령어의 주소 (메모리에서 읽어 들일 명령어의 주소)
: instruction pointer(명령어 포인터)라고 부르는 CPU도 있음.
2. 명령어 레지스터
: 해석할 명령어 (방금 메모리에서 읽어 들인 명령어) <- 제어장치가 해석함.
3. 메모리 주소 레지스터
: 메모리의 주소 <- CPU가 읽어 들이고자 하는 주소를 주소 버스로 보낼 때 거치는 레지스터
4. 메모리 버퍼 레지스터
: 메모리와 주고받을 값(데이터와 명령어) <- CPU가 정보를 데이터 버스로 주고받을 때 거치는 레지스터
5. 플래그 레지스터
: 연산 결과 또는 CPU 상태에 대한 부가적인 정보
6. 범용 레지스터
: 다양하고 일반적인 상황에서 자유롭게 사용
7. 스택 포인터
: 스택의 꼭대기를 가리키는 레지스터(스택이 어디까지 차 있는지에 대한 표시)
<- 스택 주소 지정 방식(스택과 스택 포인터를 이용한 주소 지정 방식)에서 사용함.
8. 베이스 레지스터
: 변위 주소 지정 방식(오퍼랜드 필드의 값(변위)과 특정 레지스터의 값을 더하여 유효 주소 얻기)
* 유효주소(effective address)
: 연산에 사용할 데이터가 저장된 위치
상대 주소 지정 방식: 오퍼랜드 필드의 값과 프로그램 카운터의 값을 더하여 유효 주소 얻기
베이스 레지스터 주소 지정 방식: 오퍼랜드 필드의 값과 베이스 레지스터의 값을 더하여 유효 주소 얻기
* 베이스 레지스터: 프로그램의 시작점 주소 = 기준 주소
'CONCEPT > Computer Architecture' 카테고리의 다른 글
[컴퓨터구조] 빠른 CPU를 위한 설계 기법 (0) | 2025.02.18 |
---|---|
[컴퓨터구조] 명령어 사이클과 인터럽트 (0) | 2025.02.18 |
[컴퓨터구조] ALU와 제어장치 (0) | 2025.02.16 |
[컴퓨터구조] C언어의 컴파일과정 (0) | 2025.02.16 |
[컴퓨터구조] 소스코드와 명령어 (0) | 2025.02.15 |
댓글