Search

레지스터 (processor register)

프로세서에 위치한 고속 메모리로 극히 소량의 데이터나 처리 중인 중간 결과와도 같은 프로세서가 바로 사용할 수 있는 데이터를 담고 있는 영역을 레지스터라고 한다.
프로세스 내부에 있는 작은 공간이고 연산 제어, 디버깅 등등의 목적으로 사용한다. 일반적으로 얘기하는 RAM과는 다르다. CPU가 RAM에 있는 데이터에 접근하기 위해서는 물리적으로 먼 길을 돌아가야 하는데, 레지스터를 이용하면 고속으로 데이터를 처리할 수 있다.
연산을 위한 데이터를 레지스터에 저장하고, 그 결과값도 레지스터에 저장한다. 속도가 엄청 빠르다(레지스터 > 메모리 > 하드디스크)
컴퓨터 구조에 따라 크기와 종류가 다양하다.
레지스터는 용도에 따라 전용 레지스터범용 레지스터로 나뉜다. 저장되는 정보의 종류에 따라 데이터 레지스터와 주소 레지스터,상태 레지스터로 나뉜다.
사용자가 정보 변경 가능 유무에 따라 사용자 가시 레지스터와 사용자 불가시 레지스터로 크게 분류할 수 있다.
프로세서 밖의 고속 메모리 장치로는 캐시 메모리가 있으며, 용량이 조금 더 크다.

레지스터의 종류

데이터 레지스터 : 정수 값을 저장할 수 있는 레지스터.
주소 레지스터 : 메모리 주소를 저장하여 메모리 접근에 사용되는 레지스터. 어떤 프로세서에서는, 주소를 저장하는 것이 아니라 조작하기 위한 목적으로 색인 레지스터를 사용하기도 한다.
범용 레지스터 : 데이터와 주소를 모두 저장할 수 있는 레지스터.
부동소수점 레지스터 : 많은 시스템에서 부동소수점 값을 저장하기 위해 사용된다.
상수 레지스터 : 0이나 1 등 고정된 값을 저장하고 있는 레지스터.
특수 레지스터 : 프로그램의 상태를 저장한다. 프로그램 카운터스택 포인터상태 레지스터 등이 있다.
명령 레지스터 : 현재 실행중인 명령어를 저장한다.
색인 레지스터 : 실행중에 피연산자의 주소를 계산하는 데 사용된다.