본문 바로가기

Basic for AI/컴퓨터 이론

레지스터

레지스터

cpu내에서는 다양한 레지스터들이 존재

프로그램 속 명령어와 데이터는 실행 전후 반드시 레지스터에 저장됨

 

레지스터의 종류

프로그램 카운터 PC - 메모리에서 불러올 명령어의 주소를 저장함

- 일반적으로 꾸준히 증가하며 프로그램을 차례대로 실행함
(일반적이지 않은 경우: 특정 메모리 주소로 실행 흐름 이동하는 명령어, 인터럽트 발생)

- 명령어 포인터(IP, Instuction Pointer)라고도 부름
명령어 레지스터 IR(instruction~) - 해석할 명령어, 즉 방금 메모리에서 읽어들인 명령어를 저장
- 제어장치는 명령어 레지스터 속 명령어를 받고 이를 해석한 뒤 제어 신호를 내보냄
메모리 주소 레지스터 MAR - 메모리의 주소 저장
- CPU가 읽고자 하는 주소를 주소 버스로 보낼 때 메모리 주소 레지스터를 거침
메모리 버퍼 레지스터 MBR - 메모리&데이터&명령어를 저장하는 레지스터
- 데이터 버스로 주고 받을 값은 메모리 버퍼 레지스터를 거침
- MDR(Memory Data Register)라고도 불림
플래그 레지스터 FR ALU 연산 결과에 따른 플래그를 플래그 레지스터에 저장
범용 레지스터 general purpose register 다양하고 일반적인 상황에서 자유롭게 사용할 수 있음
데이터와 주소 모두 저장 가능
스택 포인터   스택 주소 지정 방식에 사용되는 레지스터
베이스 레지스터   변위 주소 지정 방식에 사용하는 레지스터

 

스택 주소 지정 방식

  • 스택과 스택 포인터를 이용한 주소 지정 방식
  • 스택 포인터는 스택의 꼭대기를 가리키며 스택에 가장 마지막으로 저장된 값의 위치를 저장하는 레지스터
  • 스택은 메모리 내 스택영역에 위치해 있음

 

변위 주소 지정 방식(displacement addressing mode)

  • 오퍼랜드의 필드값(변위)과 특정 레지스터 값을 더해서 유효 주소를 얻어내는 주소 지정 방식
  • 따라서 변위 주소 지정 방식을 사용하는 명령어는 연산 코드 필드, 레지스터 필드, 오퍼랜드 필드로 이루어져 있음
  • 이때 레지스터 필드에서 어떤 레지스터를 사용하느냐에 따라 여러 방식으로 나뉨
    • 상대 주소 지정 방식(relative addressing mode)
      • 오퍼랜드 필드 + 프로그램 카운터 값 >> 유효 주소
      • 이때 오퍼랜드 필드의 값 n은 메모리에서 불러오기로 한 명령어의 번지와 n 차이나는 번지로 접근하게 함
    • 베이스 레지스터 지정 방식
      • 오퍼랜드 필드 + 베이스 레지스터 값 >> 유효 주소
      • 이때 오퍼랜드 필드의 값 n은 베이스 레지스터 속 기준 주소로부터 n만큼 떨어진 번지에 접근하게 함
       

'Basic for AI > 컴퓨터 이론' 카테고리의 다른 글

CPU의 구성요소: ALU와 제어장치  (0) 2024.03.26