4.1 제어 유니트의 기능
제어 유니트의 기능
- 명령어 코드의 해독
- 명령어 실행에 필요한 제어 신호들을 발생
용어정리
- 마이크로 연산 (Micro-operation) : 명령어 실행 사이클의 각 주기 동안 실행되는 기본적인 CPU 동작
- 마이크로 명령어 (Micro-instruction) : 명령어 사이클의 각 주기에서 실행되는 각 마이크로 연산을 지정해주는 2진 비트들로서, 제어 단어 (Control word)라고도 함
- 마이크로 프로그램 (Microprogram) : 마이크로명령어들의 집합
- 루틴 (Routine) : CPU의 특정 기능을 수행하기 위한 마이크로 명령어들의 그룹
> EX) 인출 사이클 루틴, 실행 사이클 루틴, 인터럽트 사이클 루틴
* 마이크로 명령어 < 루틴 < 마이크로 프로그램
4.2 제어 유니트의 구조
제어 유니트의 내부 구성도
- 명령어 해독기 (instruction decoder) : 명령 레지스터(IR)로부터 들어오는 명령어의 연산 코드를 해독하여 해당 연산을 수행하기 위한 루틴의 시작 주소를 결정
- 제어 주소 레지스터 (control address register : CAR) : 다음에 실행할 마이크로 명령어의 주소를 지정하는 레지스터
-> 이 주소는 제어 기억장치의 특정 위치를 가리킴
- 제어 기억장치 (control memory) : 마이크로 명령어들로 이루어진 마이크로 프로그램을 저장하는 내부 기억장치
- 제어 버퍼 레지스터 (control buffer register : CBR) : 제어 기억장치로부터 읽혀진 마이크로 명령어 비트들을 일시적으로 저장하는 레지스터
- 서브루틴 레지스터 (subroutine register : SBR) : 마이크로 프로그램에서 서브루틴이 호출되는 경우에 현재의 제어 주소 레지스터(CAR)의 내용을 일시적으로 저장하는 레지스터
- 순서제어 모듈(sequencing module) : 마이크로 명령어의 실행 순서를 결정하는 회로들의 집합
CPU의 명령어 세트 설계 과정
1. 명령어들의 종류 및 비트 패턴 정의
2. 명령어들의 실행에 필요한 하드웨어 설계
3. 각 명령어를 위한 실행 사이클 루틴 작성 (마이크로 프로그래밍)
4. 마이크로 프로그램 코드들을 제어 기억장치에 저장
※ 마이크로 프로그램은 루틴들의 집합이므로 CPU 설계 단계에서 확정되고, 그 후에는 변하지 않는다.
> 마이크로 프로그램을 저장하는 제어 기억장치는 ROM으로 만들어져 CPU 칩 내에 포함된다.
제어 기억장치의 내부 구성
[마이크로 프로그램 루틴들을 제어 기억장치에 저장한 예]
- 제어 기억장치 용량 = 128 단어
- 전반부 (0~63 번지) : 공통 루틴들 저장
- 후반부 (64~127 번지) : 각 명령어의 실행 사이클 루틴들 저장
명령어 해독
명령어의 연산 코드가 지정하는 연산을 위한 실행 사이클 루틴의 시작 주소를 결정하는 동작
사상 (mapping)을 이용한 해독 방법
- 명령어의 연산 코드를 특정 비트 패턴과 조합
[EXAMPLE] 16-비트 길이의 명령어가 4 비트의 연산 코드, 1 비트의 간접 주소지정(I)비트 및 11 비트의 주소로 구성된 경우
- 연산 코드 = 0001 -> 실행 사이클 루틴의 시작 주소 = 1000100 (68)
- 연산 코드 = 0110 -> 실행 사이클 루틴의 시작 주소 = 1011000 (88)
04. 제어 유니트 (3) [마이크로 프로그래밍] (0) | 2020.04.22 |
---|---|
04. 제어 유니트 (2) [마이크로 명령어의 형식] (0) | 2020.04.22 |
03. 컴퓨터 산술과 논리 연산 (4) [부동소수점 수의 표현/연산] (0) | 2020.04.17 |
03. 컴퓨터 산술과 논리 연산 (3) [정수의 산술 연산] (0) | 2020.04.08 |
03. 컴퓨터 산술과 논리 연산(2) [논리 연산, 시프트 연산] (0) | 2020.04.08 |
댓글 영역