레지스터
cpu내에서는 다양한 레지스터들이 존재
프로그램 속 명령어와 데이터는 실행 전후 반드시 레지스터에 저장됨
레지스터의 종류
프로그램 카운터 | PC | - 메모리에서 불러올 명령어의 주소를 저장함 - 일반적으로 꾸준히 증가하며 프로그램을 차례대로 실행함 (일반적이지 않은 경우: 특정 메모리 주소로 실행 흐름 이동하는 명령어, 인터럽트 발생) - 명령어 포인터(IP, Instuction Pointer)라고도 부름 |
명령어 레지스터 | IR(instruction~) | - 해석할 명령어, 즉 방금 메모리에서 읽어들인 명령어를 저장 - 제어장치는 명령어 레지스터 속 명령어를 받고 이를 해석한 뒤 제어 신호를 내보냄 |
메모리 주소 레지스터 | MAR | - 메모리의 주소 저장 - CPU가 읽고자 하는 주소를 주소 버스로 보낼 때 메모리 주소 레지스터를 거침 |
메모리 버퍼 레지스터 | MBR | - 메모리&데이터&명령어를 저장하는 레지스터 - 데이터 버스로 주고 받을 값은 메모리 버퍼 레지스터를 거침 - MDR(Memory Data Register)라고도 불림 |
플래그 레지스터 | FR | ALU 연산 결과에 따른 플래그를 플래그 레지스터에 저장 |
범용 레지스터 | general purpose register | 다양하고 일반적인 상황에서 자유롭게 사용할 수 있음 데이터와 주소 모두 저장 가능 |
스택 포인터 | 스택 주소 지정 방식에 사용되는 레지스터 | |
베이스 레지스터 | 변위 주소 지정 방식에 사용하는 레지스터 |
스택 주소 지정 방식
- 스택과 스택 포인터를 이용한 주소 지정 방식
- 스택 포인터는 스택의 꼭대기를 가리키며 스택에 가장 마지막으로 저장된 값의 위치를 저장하는 레지스터
- 스택은 메모리 내 스택영역에 위치해 있음
변위 주소 지정 방식(displacement addressing mode)
- 오퍼랜드의 필드값(변위)과 특정 레지스터 값을 더해서 유효 주소를 얻어내는 주소 지정 방식
- 따라서 변위 주소 지정 방식을 사용하는 명령어는 연산 코드 필드, 레지스터 필드, 오퍼랜드 필드로 이루어져 있음
- 이때 레지스터 필드에서 어떤 레지스터를 사용하느냐에 따라 여러 방식으로 나뉨
- 상대 주소 지정 방식(relative addressing mode)
- 오퍼랜드 필드 + 프로그램 카운터 값 >> 유효 주소
- 이때 오퍼랜드 필드의 값 n은 메모리에서 불러오기로 한 명령어의 번지와 n 차이나는 번지로 접근하게 함
- 베이스 레지스터 지정 방식
- 오퍼랜드 필드 + 베이스 레지스터 값 >> 유효 주소
- 이때 오퍼랜드 필드의 값 n은 베이스 레지스터 속 기준 주소로부터 n만큼 떨어진 번지에 접근하게 함
- 상대 주소 지정 방식(relative addressing mode)
'Basic for AI > 컴퓨터 이론' 카테고리의 다른 글
CPU의 구성요소: ALU와 제어장치 (0) | 2024.03.26 |
---|