본문 바로가기

Computer Science

컴퓨터 구조론 - CPU 레지스터

 

 

 

 

레지스터란?

CPU는 메모리에서 명령어를 읽고, 해석한뒤 수행합니다.

이를 위해서는 프로그램의 명령어와 데이터를 저장하는 공간이 필요하며, 이를 레지스터라고 합니다.

레지스터는 일시적인 메모리 역할을 수행하면서 연산속도를 향상시킵니다.

 

 

 

 

레지스터 종류

1. Program Counter(PC)

   - 메모리 주소를 저장하는 레지스터입니다.

   - 명령어를 실행할때마다 자동적으로 카운팅되며, 다음 명령어 위치를 가리키고 있습니다.

   - 아래의 그림은 16bit counter로, 1씩 증가하는 조합논리회로 입니다.

Program Counter

 

2. Instruction Register (IR)

   - 가장 최근에 인출된 명령어가 저장된 레지스터 입니다.

 

3. Memory Address Register (MAR)

   - PC에 저장된 명령어 주소가 일시적으로 저장되는 공간입니다.

 

4. Memory Buffer Register (MBR)

   - 기억장치에 읽거나 쓰려는 데이터 또는 명령을 일시적으로 저장하는 레지스터입니다.

   - MBR 레지스터에 저장된 명령은 IR로 전송되고, 데이터는 AC 또는 IO 레지스터로 전송됩니다.

 

5. Accumulator ( AC )

   - 연산 결과를 일시적으로 보관하는 레지스터입니다.

   - 레지스터의 길이는 CPU가 한번에 처리할 수 있는 데이터의 비트수와 같습니다.

 

 

 

CPU 기본 실행 구조

   1. 명령어 인출 ( Instruction Fetch ) : 실행할 명령어를 메모리에서 읽어 CPU로 가져갑니다.

      - PC가 가리키는 주소를 MAR에 보냅니다. [ PC → MAR ]

      - MAR에 적힌 주소를 메모리에서 읽어 MBR에 보냅니다. [ MAR → MBR ]

      - MBR에 있는 명령어를 IR에 저장합니다. [ MBR → IR ]

      - 다음 명령어를 가리키도록 PC의 주소값이 증가합니다. [ PC++ ]

 

   2. 명령어 해독 ( Instruction Decode ) : 인출한 명령어에 포함된 데이터를 가져오고, 명령어를 해독합니다.

   

   3. 명령어 실행 ( Instruction Execution )

      - MBR의 데이터와 ACC(Accumulator)의 데이터로 연산 후, ACC에 저장합니다. [ MBR → AC ]

 

   4. Write Back : 실행결과를 저장합니다.