CPU 레지스터(Register)
< CPU 레지스터란? >
레지스터는 컴퓨터의 중앙 처리 장치(CPU) 내부에 있는 매우 빠른 메모리 장치이다.
연산과 프로그램의 실행을 효율적으로 수행하기 위해 사용되며, 이를 위해 컴퓨터 메모리와 상호 작용하는 여러 가지 레지스터가 있다.
레지스터의 핵심 목적은 데이터를 빠르게 CPU로 가져오는 것이다. RAM에서 명령어를 가져오는 것은 하드 드라이브보다 빠르지만, CPU에게는 못 미친다.(속도 : RAM < CPU)
※ 레지스터는 메모리의 일종이지만, 흔히 이야기하는 RAM과는 다르다.
RAM이라는 용어는 주로 CPU 외부에 위치한 주 메모리를 가리킨다. 반면, 레지스터는 CPU 내부에 위치하며, 아주 빠른 속도로 데이터에 액세스할 수 있는 작은 메모리 장치( 레지스터는 매우 작은 용량을 가졌기에, 이런 작은 용량 덕분에 레지스터는 매우 빠른 속도로 데이터에 액세스하고 처리할 수 있다.)다.
레지스터는 작고, 빠르기에 CPU가 연산을 수행하는 데 필요한 중요한 정보(예: 명령어, 데이터, 주소 등)를 임시 저장한다.
< 레지스터의 종류와 기능 >
Accumulator : 데이터를 메모리에서 가져와 저장하는 데 가장 자주 사용되는 레지스터이다.
Memory Address Registers (MAR): 메모리의 접근할 위치의 주소를 가지고 있는 레지스터.
MAR와 MDR(Memory Data Register)이 함께 작동하여 CPU와 주 메모리 간의 통신을 지원한다.
Memory Data Registers (MDR) : 주소 지정된 위치에서 읽어야 할 데이터 또는 기록해야 하는 데이터를 포함한다.
General Purpose Registers : 임시 데이터를 저장하는 데 사용되며, 어셈블리 프로그래밍에서 그 내용에 액세스 할 수 있다. 현대의 CPU 아키텍처는 레지스터 대 레지스터 주소 지정을 더 많이 사용할 수 있도록 더 많은 일반 목적 레지스터를 사용하는 경향이 있다.
Program Counter (PC) : 프로그램의 실행을 추적하는 데 사용된. 이는 다음에 가져올 명령어의 메모리 주소를 포함한다.
Instruction Register (IR): 바로 실행될 명령어를 가지고 있다. PC에서 가져온 명령어가 IR에 저장되며, IR에 명령어가 위치하자마자 CPU는 명령어를 실행하기 시작하고 PC는 다음에 실행될 명령어를 가리킨다.
< 레지스터의 장점과 단점 >
레지스터는 매우 빠르며, 메인 메모리보다 훨씬 빠르게 데이터에 액세스할액세스 할 수 있다. 또한, 효율적으로 작은 양의 데이터만 저장하도록 설계되었으며, 이는 CPU가 쉽게 액세스 할 수 있게 한다.
그러나 레지스터에는 일부 단점도 있다. 레지스터는 소량의 데이터만 저장할 수 있어 일부 애플리케이션에서 문제가 발생할 수 있으며, 높은 속도의 메모리 셀로 만들어져 있어 CPU의 비용이 증가한다.
Reference : https://www.prepbytes.com/blog/digital-electronics/registers-in-computer-architecture/
https://www.geeksforgeeks.org/different-classes-of-cpu-registers/