전에 정리한 메모리 계층 구조에서 최상위에 위치한 레지스터에 대해 알아보자. 레지스터는 CPU 내부에 위치하여 가장 빠른 속도로 접근 가능한 메모리이다. 일반적으로 프로세서 내부에 레지스터 구성은 PC, IR, MAR, MBR, I/O AR, I/O BR이 있따.
다음에 실행될 명령어의 주소를 가지고 있어 실행할 기계어 코드의 위치를 지정한다. 따라서 명령어 포인터라고도 한다. PC는 각 명령 주기에 따라 자동으로 증가하여 메모리에 있는 명령어들이 순차적으로 실행될 수 있도록 한다.
IR은 PC가 지정하는 주소에 기억되어 있는 명령어를 호출해서 해독하기 위해 명령어를 잠시 보관해 두는 특수 목적 레지스터이다.
MAR은 CPU가 데이터를 읽거나 쓰려는 메모리 주소를 일시적으로 저장한다. CPU가 메모리에 일부 데이터를 저장하려고 하거나 메모리에서 데이터를 읽을 때 필요한 메모리 위치의 주소를 MAR에 저장한다.
MBR은 메모리에 읽거나 쓰려는 데이터 또는 명령을 일시적으로 저장한다.(메모리 주소를 일시적으로 저장하는 MAR과 다르다.) MBR에 배치된 명령은 IR로 전송되고, 데이터 내용은 AC 또는 I/O(주소, 버퍼) 레지스터로 전송된다.
간략하게 전체적으로 보면 다음 그림과 같다.(PC가 CPU로 잘 못 기재된 것 같다.)
일반적으로 잘 알려진 레지스터에 대해서 알아봤다. 이 밖에도 여러가지 레지스터가 더 있다. 다음 기회에 언젠가 살펴보자.
참고사이트 :
https://open4tech.com/microprocessor-program-counter/
https://www.sciencedirect.com/topics/engineering/memory-address-register
https://www.geeksforgeeks.org/essential-registers-for-instruction-execution/