2. 제어 유닛의 구조
• 명령어 해독기(Instruction Decoder)
• 명령어 레지스터(IR)로부터 읽혀진 Op-code를 해독한다.
• 헤독된 연산을 실행하기 위한 마이크로서브루틴의 시작주소를 결
정한다.
• 제어 주소 레지스터(Control Address Register)
• 다음 번에 실행할 마이크로명령어의 주소 정보가 저장되는 레지스
터이다.
• 주소는 제어 기억장치의 위치를 말한다.
• 제어 기억장치(Control Memory)
• 마이크로명령어들로 이루어진 마이크로프로그램을 저장하는 내부
기억장치이다.
• 제어 버퍼 레지스터(Control Buffer Register)
• 제어 기억장치로부터 읽혀진 마이크로 명령어를 일시적으로 저장
하는 레지스터이다.
• 서브루틴 레지스터(Subroutine Register)
• 마이크로프로그램에서 서브루틴이 호출되는 경우에 현재 제어 주
소 레지스터(CAR) 내용을 일시적으로 저장하는 레지스터이다.
• 순서제어 모듈(Sequencing Module)
• 마이크로명령어의 실행 순서를 결정하는 회로들의 집합이다.
3. 3 Bits 3 Bits 2 Bits 2 Bits 7 Bits
연산 1 연산 2 조건 분기 주소(ADF)
• 연산1, 2 필드: 이 필드들은 두 개의 마이크로 명령어들이 동시에 실행될 수 있다는 것을 의미한다.
• 조건 필드: 분기 필드에서 사용될 조건을 명시한다.
• 분기 필드: 분기의 종류를 명시하고, 조건에 따라 다음에 실행될 마이크로 명령어의 주소 결정방법을 명시한다.
• 주소 필드: 조건에 따라 분기가 발생하는 경우에 분기의 목적지 주소로 이동한다.
코
드
마이크로 연산 기호
000 None NONE
001 MAR < PC PCTAR
010 MAR < IR(addr) IRTAR
011 AC < AC + MDR ADD
100 MDR < M[MAR] READ
101 AC < MDR DRTAC
110 IR < MDR DRTIR
111 M[MAR] < MDR WRITE
코
드
마이크로 연산 기호
000 None NONE
001 PC < PC + 1 INCPC
010 MDR < AC ACTAR
011 MDR < PC PCTAR
100 PC < MDR DRTPC
101 MAR < SP SPTAR
110 AC < AC - MDR SUB
111 PC < IR(addr) IRTPC
코
드
조건 기호
00 1 U
01 i bit I
10 AC(S) S
11 AC=0 Z
코
드
기호 설명
00 JMP
0: CAR < ADF
1: CAR < CAR + 1
01 CALL
0: CAR < ADF, SBR < CAR
+ 1
1: CAR < CAR + 1
10 RET
CAR < SBR (Subroutine 복
귀)
11 MAP CAR < map(IR(op-code))
MICROPROGRAM
4. MICROPROGRAM
ORG 0
FETCH: PCTAR NONE U JMP NEXT ; MAP <- PC
READ INCPC U JMP NEXT ; MDR <- M[MAR], PC <- CP + 1
DRTIR NONE U MAP ; IR <- MDR
Addr OP1 OP2 CD BR ADF
0000000 001 000 00 00 0000001
0000001 100 001 00 00 0000010
0000010 110 000 00 11 0000000
ORG 84
NOP: NONE IRTPC U JMP FETCH ; PC <- IR(addr)
Addr OP1 OP2 CD BR ADF
1010100 000 111 00 00 0000000