중앙처리장치/레지스터
IT위키
더 많은 작업
- Register; CPU Register
중앙처리장치에서 사용하는 임시기억장치로, 가장 접근 및 처리속도가 빠른 메모리
레지스터는 CPU 안에 존재하는 저장 공간을 의미한다. 레지스터는 1bit의 정보를 저장할 수 있는 flip-flop의 집합이다. 레지스터는 데이터와 명령어를 저장하는 역할을 하며, 가장 빠른 속도로 접근 가능한 메모리이다.
레지스터는 CPU 코어 내부에도 몇 개 존재하지 않는 귀한 장치이며(100개 들어있으면 많이 들어있는 것이다), 대부분의 현대 프로세서는 메인 메모리에서 레지스터로 데이터를 옮겨와 데이터를 처리한 후 그 내용을 다시 레지스터에서 메인 메모리로 저장하는 로드-스토어 설계를 사용하고 있다.
최신 프로세서에서 레지스터는 대개 레지스터 파일로 구현되지만, 과거에는 플립플롭, 마그네틱 코어, 박막 필름 메모리 등으로 구현되기도 했다.
레지스터의 최대 처리 용량은 CPU의 처리 용량과 같은데, 32bit 컴퓨터는 2^32 까지, 64bit 컴퓨터는 2^64까지 인식이 가능하다.
| 레지스터 | 하는 일 |
|---|---|
| 프로그램 카운터(PC) | 다음에 실행할 명령어의 번지를 기억한다 |
| 명령 레지스터(IR) | 지금 실행 중인 명령어를 기억한다 |
| 누산기(AC, Accumulator) | 연산 결과를 잠시 기억한다 |
| 메모리 주소 레지스터(MAR) | 읽거나 쓸 기억장치의 주소를 기억한다 |
| 메모리 버퍼 레지스터(MBR) | 기억장치에서 읽어 오거나 쓸 데이터를 잠시 기억한다 |
| 상태 레지스터(PSW) | 연산 결과의 부호·자리올림·0 여부와 인터럽트 상태 같은 CPU 상태를 기억한다 |
| 인덱스 레지스터 | 주소를 수정하거나 반복 횟수를 세는 데 쓴다 |
| 스택 포인터(SP) | 스택의 맨 위 주소를 가리킨다 |
- 인텔 x86 의 범용 레지스터(EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP)와 EIP 는 X86 레지스터 문서에 정리했다
- PC·IR 은 제어장치에, 누산기·상태 레지스터는 연산장치에 속한다
- 주소를 담는 레지스터(PC, MAR)는 기억장치의 워드 수로 크기가 정해진다. 2n 개의 워드를 가리키려면 n 비트가 필요하다
- 데이터를 담는 레지스터(MBR, AC, IR)는 워드 하나의 비트 수와 같다
- 예: 1024(=210) 워드, 워드당 16비트인 기억장치 → PC 10비트, MAR 10비트, MBR 16비트
- 상태 레지스터(PSW, 플래그 레지스터)의 부호·0·자리올림·오버플로 플래그가 조건 분기 여부를 정하고, 인터럽트 허용 상태를 담는다. 그래서 프로그램의 실행 흐름(프로그램 제어)과 관계가 있다
- 프로그램 카운터도 다음 명령의 번지를 정해 실행 흐름을 이끈다
- 메모리 주소 레지스터, 인덱스 레지스터, 누산기는 주소 지정과 연산 데이터를 다루는 레지스터다
- 레지스터 > 캐시 > 주기억장치 > 보조기억장치(디스크)