컴퓨터구조

제어유니트

Backchus 2017. 10. 26. 00:40

제어 유니트의 기능

제어 유니트의 기능

  • 명령어 코드의 해독
  • 명령어 실행에 필요한 제어 신호들의 발생


마이크로명령어(micro-instruction)

  • 명령어 사이클의 각 주기에서 실행되는 마이크로-연산들에 대응되는 비트들로 이루어진 단어로서, 제어 단어(control word)라고도 함


마이크로프로그램(microprogram) 

  • 마이크로명령어들의 집합


루틴(routine)

  • CPU의 특정 기능을 수행하기 위한 마이크로명령어들의 그룹 


제어 유니트의 구조

구성요소들

  • 명령어 해독기(instruction decoder)
명령어 레지스터(IR)로부터 들어오는 명령어의 연산 코드를 해독하여 해당 연산을 수행하기 위한 루틴의 시작 주소를 결정한다.


  • 제어 주소 레지스터(control address register: CAR)
다음에 실행할 마이크로명령어의 주소를 저장하는 레지스터이다. 이 주소는 제어 기억장치의 특정 위치를 가리킨다.


  • 제어 기억장치(control memory)
마이크로명령어들로 이루어진 마이크로프로그램을 저장하는 내부 기억장치이다.


  • 제어 버퍼 레지스터(control buffer register: CBR)
제어 기억장치로부터 읽혀진 마이크로명령어를 일시적으로 저장하는 레지스터이다.


  • 서브루틴 레지스터(subroutine register: SBR)
마이크로프로그램에서 서브루틴이 호출되는 경우에, 현재의 CAR 내용을 일시적으로 저장하는 레지스터이다.


  • 순서제어 모듈(sequencing module)
마이크로명령어의 실행 순서를 결정하는 회로들의 집합니다.


CPU의 명령어 세트 설계 과정

  1. 명령어들의 종류 및 비트 패턴 정의
  2. 명령어들의 실행에 필요한 하드웨어 설계
  3. 각 명령어를 위한 실행 사이클 루틴 작성(마이크로프로그래밍)
  4. 마이크로프로그램 코드들을 제어 기억장치에 저장

제어 기억장치의 내부 구성

  • 마이크로프로그램 루틴들을 제어 기억장치에 저장한 예
    • 제어 기억장치 용량 = 128 단어
    • 전반부(0~63번지) : 공통 루틴들 저장
    • 후반부(64~127번지) : 각 명령어의 실행 사이클 루틴들 저장










명령어 해독

사상 함수의 비트가 '1'이므로, 사상에 의해 결정되는 주소가 64번지 부터 시작할 수 있게 된다. 예를 들어, LOAD 명령어의 연산 코드가 '0001'이라면, 위의 사상 함수에 의하여 이 연산을 위한 실행 사이클 루틴의 시작 주소는 '1000100', 즉 64+4 = 68 번지로 결정된다. 따라서 그 주소가 CAR로 입력되며, 명령어 실행 사이클이 시작되면 그 위치부터 마이크로명령어들을 순차적으로 인출하여 수행하게 된다.