Register   레지스터

(2024-07-09)

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


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 참조

[중앙처리장치 (CPU)]1. MPU,MCU,FPU,GPU   2. CPU   3. RISC,CISC   4. ALU   5. 제어 장치   6. 내부 레지스터   7. 파이프라인   8. 80x86   9. 그래픽 프로세서 GPU  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)