4.1 제어 유니트의 기능
명령어 실행에 필요한 제어 신호들의 발생
-마이크로 명령어 : 각 마이크로 연산을 실제로 수행하기 위해서 2진 비트들로 표현한 것
-마이크로 프로그램 : 일련의 마이크로 명령어들로 구성된 프로그램
-루틴 : 마이크로 명령어들로 구성된 그룹의 단위.
4.2 제어 유니트의 구조
-제어 주소 레지스터(control address register, CAR) : 다음에 실행할 마이크로 명령어의 주소를 저장. 제어 기억장치의 특정 위치를 가리킴.
-제어 기억장치(control memory) : 마이크로 프로그램을 저장.
-제어 버퍼 레지스터(control buffer register, CBR) : 제어 기억장치로부터 읽혀진 마이크로 명령어 비트들을 일시적으로 저장.
-서브루틴 레지스터(subroutine register, SBR) : 서브루틴이 호출되는 경우 현재의 CAR의 내용을 일시적으로 저장.
-순서제어 모듈(sequencing module) : 마이크로 명령어의 실행 순서를 결정하는 회로들의 집합.
*CPU의 명령어 세트의 설계
1. 명령어의 종류와 비트 패턴을 정의
2. 그 명령어들의 실행에 필요한 하드웨어를 설계
3. 각 명령어를 위한 실행 사이클 루틴을 마이크로 프로그래밍.
-명령어의 해독 : 명령어의 연산 코드가 지정하는 연산의 실행 사이클 루틴의 시작 주소를 결정하는 동작.
-사상(mapping)을 이용한 해독 : 명령어의 연산 코드를 특정 비트 패턴과 조합하는 방법.
(사상함수에 연산코드를 입력(또는 대응)시킨 값이 곧 실행 사이클 루틴의 시작 주소가 됨)
4.3 마이크로 명령어의 형식
연산 필드1 | 연산 필드2 | 조건 필드 | 분기 필드 | 주소 필드 |
-연산 필드가 두 개 이므로 두 개의 마이크로 연산들이 동시에 수행될 수 있다.
코드 | 마이크로연산 | 기호 |
000 | None | NOP |
001 | MAR <- PC | PCTAR |
010 | MAR <- IR(addr) | IRTAR |
011 | AC <- AC + MBR | ADD |
100 | MBR <- M[MBR] | READ |
101 | AC <- MBR | BRTAC |
110 | IR <- MBR | BRTIR |
111 | M[MAR] <- MBR | WRITE |
코드 | 마이크로 연산 | 기호 |
000 | None | NOP |
001 | PC <- PC + 1 | INCPC |
010 | MBR <- AC | ACTBR |
011 | MBR <- PC | PCTBR |
100 | PC <- MBR | BRTPC |
101 | MAR <- SP | SPTAR |
110 | AC <- AC - MBR | SUB |
111 | PC <- IR(addr) | IRTPC |
코드 | 조건 | 기호 | 설명 |
00 |
1
|
U
|
무조건 분기 |
01
|
I 비트
|
I
|
간접 주소지정 |
10 |
AC(S)
|
S
|
누산기(AC)에 저장된 데이터의 부호 |
11 |
AC = 0
|
Z
|
AC에 저장된 데이터가 0 |
코드 |
기호
|
설명
|
00 | JMP | 만약 조건 = 1이면, CAR <- ADF |
01 | CALL | 만약 조건 = 1이면, CAR <- ADF, SBR <- CAR + 1 만약 조건 = 0이면, CAR <- CAR + 1 |
10 | RET | CAR <- SBR(서브루틴으로부터의 복귀) |
11 | MAP | CAR(1) <- 1, CAR(2~5) <- IR(op), CAR(6,7) <- 0 |
ORG 0 | |||||
FETCH | PCTAR | U | JMP | NEXT | ; MAR <- PC, 다음 마이크로 명령어 실행 |
READ,INCPC | U | JMP | NEXT | ; MBR <- M[MAR], PC = PC + 1, 다음 마이크로 명령어 실행 | |
BRTIR | U | MAP | ; IR <- MBR, 해당 실행 사이클 루틴으로 분기 |
*2진 비트 패턴
주소 | 마이크로 연산 | CD | BR | ADF |
0000000 | 001 000 | 00 | 00 | 0000001 |
0000001 | 100 001 | 00 | 00 | 0000010 |
0000010 | 110 000 | 00 | 11 | 0000000 |
ORG 4 | |||||
INDRT: | IRTAR | U | JMP | NEXT | ; MAR <- IR(addr), 다음 마이크로 명령어 실행 |
READ | U | JMP | NEXT | ; MBR <- M[MAR], 다음 마이크로 명령어 실행 | |
BRTIR | U | RET | ; IR(addr) <- MBR, 해당 실행 사이클 루틴으로 분기 |
*2진 비트 패턴
주소 | 마이크로 연산 | CD | BR | ADF |
0000100 | 010 000 | 00 | 00 | 0000101 |
0000101 | 100 000 | 00 | 00 | 0000110 |
0000110 | 110 000 | 00 | 10 | 0000000 |
*각 명령어에 대한 루틴의 시작 주소 결정(사상 방식)
명령어 | 연산코드 | 루틴의 시작 주소 |
NOP | 0000 | 1000000(=64) |
LOAD(I) | 0001 | 1000100(=68) |
STORE(I) | 0010 | 1001000(=72) |
ADD | 0011 | 1001100(=76) |
SUB | 0100 | 1010000(=80) |
JUMP | 0101 | 1010100(=84) |
*각 명령어에 대한 실행 사이클의 마이크로 명령어 루틴
ORG 64 | |||||
NOP: | INCPC | U | JMP | FETCH | ; PC <- PC + 1 |
ORG 68 | |||||
LOAD: | NOP | I | CALL | INDRT | ; I = 1이면, 간접 사이클 루틴 호출 |
IRTAR | U | JMP | NEXT | ; MAR <- IR(addr) | |
READ | U | JMP | NEXT | ; MBR <- M[MAR] | |
BRTAC | U | JMP | FETCH | ; AC <- MBR | |
ORG 72 | |||||
STORE: | NOP | I | CALL | INDRT | ; I = 1이면, 간접 사이클 루틴 호출 |
IRTAR | U | JMP | NEXT | ; MAR <- IR(addr) | |
ACTBR | U | JMP | NEXT | ; MBR <- AC | |
WRITE | U | JMP | NEXT | ; M[MAR] <- MBR | |
ORG 76 | |||||
ADD: | IRTAR | U | JMP | NEXT | ; MAR <- IR(addr) |
READ | U | JMP | NEXT | ; MBR <- M[MAR] | |
ADD | U | JMP | NEXT | ; AC <- AC + MBR | |
ORG 80 | |||||
SUB: | IRTAR | U | JMP | NEXT | ; MAR <- IR(addr) |
READ | U | JMP | NEXT | ; MBR <- M[MAR] | |
SUB | U | JMP | NEXT | ; AC <- AC - MBR | |
ORG 84 | |||||
JUMP: | IRTPC | U | JMP | FETCH | ; PC <- IR(addr) |
4.5 마이크로 프로그램의 순서 제어
-제어 유니트가 명령어의 실행을 제어한다는 것 -> 제어 기억장치에 저장된 해당 마이크로 명령어들을 순서대로 인출하는 것.
*순서 제어 : 제어 유니트의 기능. 다음에 실행할 마이크로 명령어의 주소를 결정.
-CAR의 초기 값 = 0
-MUX 1 : 다음에 실행할 마이크로 명령어의 주소 선택
-MUX 2 : 조건 플래그를 선택하여 주소 선택 회로로 전송
*수직적 마이크로 프로그래밍(vertical microprogramming)
-마이크로 명령어의 연산필드에 적은 수의 코드화된 비트들을 포함시킴으로써 마이크로 명령어의 길이를 줄이고, 해독기를 접속하여 제어 신호를 확장하는 방식.
-장점 : 마이크로 명령어의 길이 감소 -> 제어 기억장치의 용량 감소
-단점 : 해독 시간만큼의 시간이 지연
*수평적 마이크로 프로그래밍(horizon microprogramming)
-연산 필드의 각 비트와 제어 신호를 일대일로 대응시켜 사용하는 방식.
-장점 : 하드웨어가 간단함, 해독에 따른 시간 지연이 없음
-단점 : 마이크로 명령어의 길이 증가 -> 제어 기억장치의 용량 증가
'학부 전공 > 컴퓨터구조' 카테고리의 다른 글
5. 기억장치 - 1 (0) | 2010.06.07 |
---|