CS/운영체제

[운영체제] 4. 레지스터의 역할과 종류 (Feat. 컴퓨터구조)

개발자딥게 2022. 8. 7. 10:46
반응형

레지스터란

플립플롭 여러개를 일렬로 배열하고 연결하여 만들어진 레지스터는 여러 비트로 구성된 2진수를 저장하기에 용이하다.

저장된 비트를 좌측, 우측으로 하나씩 이동할 때 사용한다. (shift)

 

레지스터의 용도

- 범용 레지스터: 데이터와 주소 둘다 저장 가능하다.

- 특수 레지스터: 실행중인 프로그램의 상태를 저장한다. 프로그램 카운터, 상태 레지스터 등.

- 데이터 레지스터: 정수값 저장

- 주소 레지스터: 기억장치 주소를 저장하여, 기억장치 액세스에 사용된다.

- 부동소수점 레지스터: 부동소수점 데이터값을 저장하기 위해 사용된다.

- 상수 레지스터: 0이나 1 등 고정된 데이터를 저장한다.

- 명령 레지스터: 현재 실행중인 명령어를 저장한다.

- 색인 레지스터: 실행 중인 피 연산자의 주소를 계산하는 데 사용한다.

 

 

 

프로세서 레지스터 (CPU 레지스터)

CPU 내부에서 데이터를 저장하는 장치를 프로세서 레지스터라고 한다.

레지스터는 기억장치 중에서 속도가 가장 빨라 CPU 에서 고속으로 계산한 값을 저장할 때 쓰인다.

예를 들면, ALU(연산장치)에서 처리된 결과 데이터를 레지스터에서 임시 보관하고, 주기억장치에서 읽어온 명령어와 데이터를 임시보관하기도 한다.

 

 

레지스터의 두 가지 분류

1. 사용자에게 보이는 레지스터

어셈블리 프로그래밍을 하기 위해 명칭과 용도를 알아야 하는 레지스터.

어셈블리 프로그래머는 프로그램에서 사용되는 변수 데이터 등을 저장하기 위해 해당 레지스터를 알고 있어야 한다.

- 범용 레지스터: 연산을 위한 모든 종류의 피연산자(Operand)를 저장할 수 있다.

- 데이터 레지스터: 데이터 저장에만 사용 가능하다. 누산기(Accumulator) 등

- 주소 레지스터: 간접 주소지정방식에서 특정 레지스터는 유효주소를 표시하는데, 이것이 주소 레지스터이다.

- 조건 코드: 사용자에게 보이는 레지스터에 저장된 데이터의 상채를 표시하는 데 사용된다.  (부호비트, 영 비트, 오버플로우 비트 등)

 

2. 제어 및 상태 레지스터

프로그램 실행 과정에서 CPU 내부적으로 사용되는 대표 레지스터이다.

- 프로그램 카운터 (PC): 주기억장치에 저장된 다음에 인출할 명령의 주소를 가지고 있다. 

- 명령어 레지스터 (IR): 가장 최근에 주기억장치인 RAM에서 인출할 명령어의 주소를 가지고 있다.

- 기억장치 주소 레지스터 (MAR): 액세스할 기억장치의 주소가 저장되며 이 레지스터의 출력이 주소버스와 직접 연결

- 기억장치 버퍼 레지스터 (MBR): 기억장치에 쓰일 데이터 혹은 가장 최근에 읽은 데이터가 저장. 데이터 버스와 직접 연결

- 입출력 주소 레지스터 (I/O AR): 입출력 장치의 주소를 저장한다.

- 입출력 버퍼 레지스터 (I/O BR): 입출력 모듈과 CPU 사이에 교환되는 데이터를 일시적으로 저장한다.

- 프로그램 상태 단어: 제어 및 상태 레지스터에서 저장된 데이터의 상태와 조건을 나타내기 위하여 추가된 조건코드 비트.

 

 

 

참고 도서) 컴퓨터 구조와 원리 2.0 

 

 

반응형