4.1 제어 유니트의 기능

명령어 코드의 해독
명령어 실행에 필요한 제어 신호들의 발생
 
즉, 제어 유니트명령어 사이클이 적절히 수행되도록 모든 동작들을 제어하는 장치이다.

-마이크로 명령어 : 각 마이크로 연산을 실제로 수행하기 위해서 2진 비트들로 표현한 것
-마이크로 프로그램 : 일련의 마이크로 명령어들로 구성된 프로그램
-루틴 : 마이크로 명령어들로 구성된 그룹의 단위.


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. 각 명령어를 위한 실행 사이클 루틴을 마이크로 프로그래밍.

-명령어의 해독 : 명령어의 연산 코드가 지정하는 연산의 실행 사이클 루틴의 시작 주소를 결정하는 동작.

-사상(mapping)을 이용한 해독 : 명령어의 연산 코드를 특정 비트 패턴과 조합하는 방법.
(사상함수에 연산코드를 입력(또는 대응)시킨 값이 곧 실행 사이클 루틴의 시작 주소가 됨)


4.3 마이크로 명령어의 형식

제어 기억장치에 저장되는 마이크로 명령어 형식의 예

 연산 필드1 연산 필드2  조건 필드  분기 필드  주소 필드 

-연산 필드가 두 개 이므로 두 개의 마이크로 연산들이 동시에 수행될 수 있다.
-조건 필드는 분기에 사용될 조건 플래그를 지정한다.
-분기 필드는 분기의 종류와 다음에 실행할 마이크로 명령어의 주소를 결정하는 방법을 명시한다.
-주소 필드는 분기가 발생하는 경우의 목적지 마이크로 명령어의 주소이다.

 *마이크로 연산들에 대한 2진 코드 및 기호의 예
-연산 필드1
 코드 마이크로연산  기호 
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 


-연산 필드2
 코드  마이크로 연산 기호 
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
U
무조건 분기 
01
I 비트 
I
간접 주소지정 
10
AC(S) 
S
누산기(AC)에 저장된 데이터의 부호
11
AC = 0 
Z
AC에 저장된 데이터가 0 

-분기 필드
 코드
기호 
설명 
00 JMP

만약 조건 = 1이면, CAR <- ADF
만약 조건 = 0이면, CAR <- CAR + 1

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
(1XXXX00)



4.4 마이크로 프로그래밍

 *인출 사이클의 마이크로 명령어 루틴

  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

+ Recent posts