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