정의
- 명령어를 실행하기 위해 필요한 데이터와 상태, 명령어를 저장하는 기억 소자
- CPU 내부에 존재하며, 기억 장치 중 가장 빠르며 용량이 작음
- 데이터 레지스터와 제어용 레지스터로 구분
데이터 레지스터
- CPU가 명령어를 처리하는 과정에서 임시로 처리할 데이터를 저장하거나 메모리의 주소를 저장할 목적으로 사용
- 데이터 레지스터 (Data Register), 주소 레지스터 (Address Register), .범용 레지스터(General Register)로 구분
1) 주소 레지스터
스택 포인터 (SP , Stack Pointer)
- CPU는 현재 실행하고 있는 프로그램의 메모리 영역을 스택으로 관리
- SP는 현재 스택 영역에서 가장 마지막 부분 (가장 최근에 저장된)을 가르킴
베이스 포인터 (BP, Base Pointer)
- BP는 스택 영역에서 각 메모리 영역의 경계선을 가르킴 즉 서브루틴 호출 시에 Caller의 SP는 BP가 됨
- 서브루틴의 실행이 완료되면 BP는 다시 SP가 됨
인덱스 레지스터 (IX, Index Register)
- 배열에 순차적으로 접근하기 위한 레지스터
제어용 레지스터
- CPU가 프로그램의 실행 흐름을 제어하거나 상태를 저장하기 위해 사용되는 레지스터
- 프로그램 카운터(PC), 명령어 레지스터(IR), 상태 레지스터(SR), 명령어 주소 레지스터(MAR), 명령어 버퍼 레지스터(MBR)로 구성
1) 프로그램 카운터(PC, Program Counter)
- 다음에 실행할 명령어의 주소 저장
2) 명령어 레지스터(IR, Instruction Register)
- 현재 실행중인 명령어 저장
3) 메모리 주소 레지스터(MAR, Memory Address Register)
- 액세스할 메모리의 주소 저장
- 주소 버스에 연결
4) 메모리 버퍼 레지스터(MBR, Memory Buffer Register)
- 메모리에 접근 시에 해당 주소에 저장/적재할 데이터를 임시 저장
- 데이터 버스에 연결
5) 상태 레지스터(SR, Status Register)
- 조건 혹은 이벤트를 검사해 프로그램의 흐름을 제어
- 각 비트에 플래그 값을 가짐
- 연산 결과를 나타내는 조건 플래그(Conditional Flags)와 CPU를 제어하기 위한 제어 플래그(Control Falgs)로 구성
(1) 조건 플래그(Conditional Flags)
a. 부호 플래그(S)
- 산술 연산 결과의 부호비트 저장
b. 제로 플래그(Z)
- 연산 결과가 0인지 표시
c. 자리 올림수 플래그(C)
- 자리 올림수 발생 시 표시
e. 패리티 비트(P)
- 패리티 체크를 통해 연산 결과의 유효성 체크
f. 오버플로우(OV)
- 오버플로우 발생 여부
(2) 제어 플래그(Control Flags)
a. 인터럽트 플래그(IE)
- CPU가 외부 인터럽트의 요청을 수락할지에 대한 여부
b. 관리자 모드 플래그(SV)
- 해당 명령어가 관리자 모드에서 실행되고 있는지에 대한 여부
'CS > OS & 하드웨어' 카테고리의 다른 글
중앙처리장치(CPU) - 2 (CPU 명령어) (0) | 2024.04.18 |
---|---|
중앙처리장치(CPU) - 1 (CPU 구조) (0) | 2024.04.18 |
가상 메모리와 가상 주소 공간 (0) | 2024.04.12 |
프로그램 (Program) 이란? (0) | 2024.01.03 |
세션의 생성과 관리 (0) | 2023.12.12 |