1. 컴퓨터 CPU의 내부 레지스터
ㅇ 메모리와 유사하나, 훨씬 빠른 소규모 저장장치를 주로 의미
- CPU 내 임시 저장장치 로써, CPU 또는 MPU에 내장되어 있음
. 例) 마이크로프로세서 초기 모델인 x86 계열은 레지스터가 8개 정도
ㅇ 명령,주소,데이터를 CPU 내에 임시 보관하는 고속의 기억장치 임
- 실제 모든 데이터,명령어 등은 모두 메모리 어딘가에 흩어져 있게 됨
ㅇ 구분
- 범용 레지스터
- 용도 지정 레지스터
* 프로세서 제작사 마다 다르게 정의되고 호칭됨
2. 컴퓨터 레지스터 : (범용)
ㅇ 범용 레지스터 (General Purpose Register) / 누산기 (어큐뮬레이터, Accmulator)
- 연산의 중심 역할
. (임시 저장)
.. 연산 입력 또는 연산 결과를 일시 저장하는 역할
.. 연산 결과를 다시 자신에게 누적시킴 (accumulate)
. (메모리 fetch)
.. 또한, 메모리에 있는 값을 불러오라는 것일 수도 있음
* 결국, 이 레지스터의 비트 수는,
. CPU 1회 연산에 처리 가능한 데이터 비트 수(즉, 워드) 임
ㅇ 위의 범용 이외의 다른 레지스터들을, `용도 지정 레지스터`,`특수 목적 레지스터` 등으로 총칭
- 프로그램 카운터, 명령어 레지스터, 데이터 레지스터, 주소 레지스터, 입출력 레지스터 등
3. 컴퓨터 레지스터 : (용도 지정) (명령어 관련)
ㅇ 프로그램 카운터 (PC : Program Counter)
- 다음 인출할 명령어 주소(메모리 상의 주소)를 임시 저장하는 레지스터
. 각 명령어 인출 후에는, 1씩 증가
. 만일, 현재 수행 중인 명령어일 경우에는, (PC - (1 워드)) = IR
. 만일, 분기 명령어(jump,branch)일 경우에는, 이곳(PC)에 해당 목적지 주소로 변경됨
ㅇ 명령어 레지스터 (IR : Instruction Register)
- 가장 최근에 인출된 명령어(현재 실행 중인 명령어)를 임시 저장하는 레지스터
. 제어 장치가 이 명령어 레지스터에 있는 명령어를 해독(디코딩)하고,
. 그에따른 동작에 필요한 제어 신호를 발생시키게 됨
※ 한편, 운영체제의 멀티태스킹 동작에서, 작은 시간 주기 마다, 각 태스크들의 실행 주소를,
프로그램 카운터 상에서 번갈아 바꿔가며 실행 위치를 제어함으로써 구현됨
4. 컴퓨터 레지스터 : (용도 지정) (데이터,주소 관련)
ㅇ 데이터 레지스터 (Data Register)
- 데이터 버스에 데이터를 읽고 쓰기 위해 잠시 저장해두는 버퍼 레지스터
. 이 레지스터의 입출력선들은 데이터 버스 선들과 직접 접속됨
- (별칭) 기억장치 버퍼 레지스터 (MBR : Memory Buffer Register)
. 기억장치를 출입하는 데이터를 잠시 기억
ㅇ 주소 레지스터 (Address Register)
- 주소 버스에 주소를 출력하기 전에 임시 저장하는 레지스터
. 이 레지스터의 출력선들은 주소 버스 선에 직접 접속됨
- (별칭) 기억장치 주소 레지스터 (MAR : Memory Address Register)
. 기억장치를 출입하는 데이터 위치에 대한 기억장치 내 주소를 기억
. 또한, 주소 레지스터를 다른 말로 포인터라고 부르기도 함
- 例)
. 스택 포인터 (SP : Stack Pointer)
.. 스택 메모리에 가장 최근 데이터가 채워진 마지막(최상단) 위치(주소)를 가리킴
.. 데이터를 스택에 푸시(Push),팝(Pop)할 때, 스택 포인터의 값이 증가,감소되어,
항상 스택의 최상단 위치가 유지됨
.. (함수 호출 및 반환, 로컬 변수 관리, 인터럽트 처리)
. 베이스 포인터 (BP : Base Pointer)
.. 스택 프레임의 시작 주소를 가리킴
.. 함수 호출시 마다, 새로운 스택 프레임이 생성되고,
베이스 포인터는 이 스택 프레임의 기준점 역할을 함
. 인덱스 포인터 (IX : Index Pointer)
5. 컴퓨터 레지스터 : (용도 지정) (상태 관련)
ㅇ 프로그램 상태 레지스터 (Program Staus Register)
- CPU 현재 상태, ALU 연산 결과, 인터럽트 제어, 모드 전환 등 상태를 비트 형식으로 표시
. 각 상태 비트들은 CPU 명령 해석 동작에 대한 참조 역할 수행
. 또한, 운영체제의 커널 모드와 사용자 모드 간의 전환을 포함하기도 함
6. 컴퓨터 레지스터 : (용도 지정) (특화된 입출력 관련)
ㅇ 입출력 레지스터 (I/O 레지스터)
- 특히, 마이크로컨트롤러에서는 일반 컴퓨터 CPU와는 달리,
- 주변장치와 CPU 간에 데이터 전송/중개를 전담하는,
- 특화된 입출력 레지스터가 제법 많이 쓰임 ☞ GPIO 참조