Register   레지스터

(2021-01-19)

CPU 내부 레지스터, General Purpose Register, 범용 레지스터, 누산기, 입출력 레지스터, Program Counter, 프로그램 카운터, IR , Instruction Register, 명령어 레지스터, 스택 포인터 , Address Register, 주소 레지스터


1. 컴퓨터 CPU의 내부 레지스터  메모리와 유사하나, 훨씬 빠른 소규모 저장장치를 주로 의미

  ㅇ CPU 내 임시 저장장치
     - CPU 또는 MPU에 내장되어 있음
        . 마이크로프로세서 초기 모델x86 계열은 레지스터가 8개 정도
     - 명령,주소,데이터를 임시 보관하는 고속의 기억장치
        . 실제 모든 데이터,명령 등은 모두 메모리 어딘가에 흩어져 있게 됨

  ㅇ 구분
     - 범용 레지스터
     - 용도 지정 레지스터
     * 프로세서 제작사 마다 다르게 정의되고 호칭됨


2. 컴퓨터 레지스터 : (범용)

  ㅇ 범용 레지스터(General Purpose Register) / 누산기(어큐뮬레이터, AC : 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 참조



Copyrightⓒ   차재복 (Cha Jae Bok)