프로세서 레지스터와 하드웨어 레지스터란? 개념 정리



1. 프로세서 레지스터

  • 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소로 현재 계산을 수행중인 값을 저장하는 데 사용
  • 레지스터는 메모리 계층의 최상위에 위치하며, 가장 빠른 속도로 접근 가능한 메모리
  • CPU는 메인 메모리에서 캐시를 거쳐 레지스터에 데이터를 옮겨와서 데이터를 처리한 다음 다시 메인 메모리로 데이터를 넣습니다. 이런 방식을 로드-스토어 방식이라고 합니다.
  • 프로그램이 실행될 때, 프로세스의 데이터를 연산할 때 레지스터에 데이터를 넣어 프로그램을 수행합니다.
  • 레지스터의 종류로는 데이터 레지스터, 주소 레지스터, 범용 레지스터, 명령어 레지스터와 같은 것들이 있다.
  • 일반적인 CPU의 레지스터에는 아래와 같은 것들이 존재함
    • PC(프로그램 계수기) : 다음에 실행할 명령어(instruction)의 주소를 가지고 있다.
    • IR(명령어 레지스터) : 현재 수행 중인 명령어를 가지고 있다.
    • MAR(메모리 주소 레지스터) : 메모리로부터 읽어오거나 메모리에 쓰기 위한 주소를 가지고 있다.
    • MBR(메모리 버퍼 레지스터) : 메모리로부터 읽어온 데이터 또는 메모리에 써야할 데이터를 가지고 있다.
    • I/O AR(입출력 주소 레지스터) : 입출력 장치에 따른 입출력 모듈의 주소를 가지고 있다.
    • I/O BR(입출력 버퍼 레지스터) : 입출력 모듈과 프로세서 간의 데이터 교환을 위해 사용된다.

2. 하드웨어 레지스터

  • 하드웨어 레지스터(hardware register)는 CPU가 아닌 주변장치 하드웨어의 입출력 (I/O)을 위한 저장공간
  • 하드웨어 레지스터는 주요 주변장치의 내부에 포함
  • 하드웨어의 다양한 특징들(Congigurations)에 대한 값을 가지고 있음. 버전, 저전력 Enable 여부, 최대 지원 속도 등 하드웨어의 특징 정보들이 기록됨. 정보를 기록할 때 기록하는 정보에 따라 한 bit(예시. 단순한 Enable 여부)만 사용할 수도 있고, 여러 bit(예시. 지원 가능한 속도)를 사용할 수 있음
  • CPU가 주변장치(peripheral units)라고 불리는 하드웨어에 접근하려면, memory-mapped I/O 주소나 I/O-mapped I/O 주소로 접근함

출처