7. 마이크로 프로그램된 제어
7.4 제어 장치의 설계
- 마이크로 명령어의 각 필드
- 마이크로 명령어는 각각 독립된 기능을 가지는 여러 개의 필드(F1, F2, F3)로 구성되어 있다.
- 각 필드는 마이크로 연산을 구동시키기 위한 제어 비트를 포함 or
- 다음에 실행될 마이크로 명령어의 주소를 결정하는 방법을 지시 or
- 분기를 위한 주소를 포함
- 제어 비트를 인코딩한 실례
- 9비트의 마이크로 연산 필드가 3비트씩 3개의 하부 필드로 구분
- 각 하부 필드는 디코딩되어 각각 서로 다른 마이크로 연산을 표시
마이크로 연산 필드의 디코딩
- 3개의 3x8 디코더
- 마이크로 명령의 3개의 연산필드를 디코딩하여 구성
- 예) F1 = 101일 때
- DR(0-10)의 값이 AR로 전송(DRTAR)되며,
- 예2) F=100 이면
- PC의 값이 AR로 전송(PCTAR)된다.
- 위 그림에서 보여주듯이 F1 디코더의 출력 5와 6이 AR의 로드입력에 연결된다.
- 디코더 출력 5는 멀티플렉서에도 연결이 되며 그 값이 1이면 DR을 선택, 0이면 PC를 선택한다.
- 산술 및 논리 시프트 장치를 위한 제어
- AND, ADD, DR 등으로 표시되는 제어 신호를 만들기 위하여 게이트를 사용하지 않고 마이크로 명령의 연산 필드를 디코딩한 출력을 이용
마이크로 프로그램 시퀀서
- 마이크로 프로그램된 제어장치의 기본 요소
- 제어 메모리와 다음 주소를 결정하는 회로
- 주소를 결정하는 부분은 마이크로 프로그램 시퀀서라 부른다.
- 다음 주소를 결정하는 요인
- 현재 진행중인 마이크로 명령어의 주소 비트와 상태 비트이다.
- 장치내에 레지스터 스택이 있어서 마이크로 연산의 루프나 서브루틴 호출할 때의 일시적인 주소를 저장하기도 한다.
-마이크로 프로그램 시퀀서의 내부 구조
마이크로 연산 필드의 디코딩
- 동작
- 4개의 주소 소스 중 하나를 골라 CAR로 보내는 멀티플렉서 1과 상태비트를 선택하여 그 값을 입력논리회로에 보내는 멀티플렉서 2가 있다
- CAR의 출력은 제어 메모리의 주소를 나타낸다.
- CAR+1의 값은 멀티플렉서 입력중 하나가 되기도 하고 SBR에 전송되기도 한다.
- 멀티플렉서 1의 다른 3개의 입력은 각각 현재 진행중인 마이크로 명령어의 주소 필드, SBR의 출력 및 매크로 연산을 위한 외부 입력 등이 있다.
- 입력 논리회로
- I0, I1, T의 입력과 S1, S0, L의 출력을 갖는다.
- S1, S0은 CAR을 위한 번지를 어디서 가져올 것인가를 선택
- L은 SBR의 로드(load) 동작을 하게 한다.
- 입력 논리의 진리표
마이크로 프로그램 시퀀서를 위한 입력 논리 진리표
- I0과 I1 두 비트는 BR필드의 값과 같다.
- BR = 01이면 call 마이크로 명령어인데 그 동안 CAR+1의 값이 SBR에 로드된다.
- 이 진리표를 부울 대수식으로 표현하면
S1 = I1
S0 = I1I0 + I'1 + T
L = I1I0T
- 인크리먼트 회로
- 플립플롭을 사용한 것이 아니라 조합 회로이어야 한다.
- 반가산기 회로를 종속 접속하게 하여 설계할 수 있다.
- 한 스테이지의 출력 캐리는 다음 스테이지의 입력 캐리가 되어야 한다.
- 가장 처음 스테이지의 입력 캐리는 1로 고정되어야 1이 증가되는 동작을 할 수 있다.
'COMPUTER SYSTEM ARCHITECTURE' 카테고리의 다른 글
fetch (0) | 2014.10.11 |
---|---|
마이크로 프로그램의 예 (0) | 2014.10.11 |
주소 시퀀싱 (0) | 2014.10.11 |
제어 메모리(Control Memory) (0) | 2014.10.07 |
부울 대수 (0) | 2014.09.28 |