레지스터
- CPU 내부의 작은 임시저장장치
- 프로그램 속 명령어, 데이터는 실행 전후로 레지스터에 저장
레지스터의 종류
- 프로그램 카운터
- 메모리에서 가져올 명령어의 주소
- 메모리에서 읽어 들일 명령어의 주소
- Instruction Pointer, 명령어 포인터라고 부르는 CPU도 있다.
- 명령어 레지스터
- 해석할 명령어를 저장
- 방금 메모리에서 읽어 들인 명령어, 이 명령어를 제어장치가 해석하고 제어신호를 내보낸다.
- 메모리 주소 레지스터
- 메모리의 주소를 저장
- CPU가 읽어 들이고자 하는 주소를 버스로 보낼 때 거치는 레지스터
- 메모리 버퍼 레지스터
- 메모리와 주고받을 값(데이터와 명령어)을 저장
- CPU가 정보를 데이터 버스로 주고받을 때 거치는 레지스터
다음에 실행할 명령이 1101이고 주소가 1000이므로 프로그램 카운터에 1000이 저장된다.
명령을 읽기 위해 메모리 주소 레지스터에 1000번지가 저장되고 메모리 읽기 신호와 함께 몇 번지 주소를 읽고 싶은지 주소 버스를 통해 읽고자 하는 메모리 주소를 보낸다.
메모리는 1000번지에 적힌 명령 1101을 메모리 버퍼 레지스터에 데이터 버스를 통해 전달한다. 그리고 이때 프로그램 카운터가 1이 증가해 1001이 된다. (다음으로 실행할 주소로 변한다.)
갖고 온 명령을 제어장치에서 해석하기 위해서 명령어 레지스터에 명령 1101을 보낸다.
하지만 프로그램 카운터가 순차적으로 증가하는 경우만 있는 것은 아니다.
- 순차적인 실행 흐름이 끊기는 경우
- 특정 메모리 주소로 실행 흐름을 이동하는 명령어 실행 시 (JUMP, CONDITIONAL JUMP, CALL, RET(Return)
- 인터럽트 발생 시 등
5. 플래그 레지스터
- 연산 결과 또는 CPU 상태에 대한 부가적인 정보
6. 범용 레지스터
- 다양하고 일반적인 상황에서 자유롭게 사용
- 주소, 명령어 등 다양한 것을 담을 수 있다.
7. 스택 포인터
- 스택의 꼭대기를 가리킨다.
- 주소 지정에 사용된다.
- 스택 포인터: 스택의 꼭대기를 가리키는 레지스터, 스택이 어디까지 차 있는지에 대한 표시이다.
- 스택 주소 지정 방식: 스택과 스택 포인터를 이용한 주소 지정 방식
8. 베이스 레지스터
- 기준 주소를 저장한다.
- 주소 지정에 사용된다.
- 변위 주소 지정 방식: 오퍼랜드 필드의 값(변위)과 특정 레지스터의 값을 더해 유효 주소 얻기
- 변위 주소 지정 방식에는 상대 주소 지정 방식, 베이스 레지스터 주소 지정 방식이 있다.
- 상대 주소 지정 방식: 오퍼랜드 필드의 값(변위)과 프로그램 카운터의 값을 더해 유효 주소 얻는 방식
- 베이스 레지스터 주소 지정 방식: 오퍼랜드 필드의 값(변위)과 베이스 레지스터의 값을 더해 유효 주소 얻는 방식
- 기준 주소: 프로그램의 시작 주소와 같이 기준이 되는 주소라고 생각
'컴퓨터 공학 기초 > 컴퓨터 구조' 카테고리의 다른 글
빠른 CPU를 위한 설계 기법 (0) | 2025.04.22 |
---|---|
명령어 사이클과 인터럽트 (0) | 2025.04.22 |
ALU와 제어장치 (0) | 2025.03.15 |
C언어의 컴파일 (0) | 2025.03.15 |
명령어의 구조와 주소 지정 방식 (0) | 2025.03.15 |