[컴퓨터구조론] 4장 연습문제
2022. 2. 7. 16:25ㆍSolution`/컴퓨터구조론
[4.1]
그림 4-2의 제어 기억장치의 용량을 256단어로 확장하고, 각 실행 사이클 루틴이 최대 8개의 마이크로-연산들로 구성될 수 있도록 하려면, 그림 4-3의 사상 함수는 어떻게 바뀌어야 하는가?
(1) 제어 기억장치의 용량이 256단어
>> 사상 함수 전체 길이 = 8
(2) 실행 사이클은 절반-끝 부분에 위치
>> 사상 함수 첫번째 값 = 1
(3) 각 루틴은 최대 8개의 마이크로-연산들로 구성
>> 사상 함수 끝 3자리를 0으로 만들기
-----> result : 1 XXXX 000
[4.2]
제어 기억장치의 전체 용량이 128 단어이고, 실행 사이클 루틴들의 처음-절반 부분에 저장된다고 하자. 각 루틴이 최대 4개씩의 마이크로명령어들로 구성된다면, 그림 4-3의 사상 함수는 어떻게 변경되어야 하는가?
(1) 제어 기억장치의 전체 용량이 128단어
>> 사상 함수 전체 길이 = 7
(2) 처음-절반에 실행 사이클 루틴들이 저장
>> 사상 함수 첫번째 값 = 0
(3) 각 루틴이 최대 4개씩의 마이크로명령어들로 구성
>> 사상 함수 끝 2자리를 0으로 설정
-----> result : 0 XXXX 00
[4.3]
각 명령어의 실행 사이클 루틴들이 최대 8개의 마이크로명령어들로 구성되는 CPU가 있다. 각 명령어의 연산 코드는 5bit이고, 제어 기억장치의 용량은 512 단어이다. 연산 코드를 실행 사이클 루틴의 주소로 사상하는 방법을 제시하라.
(1) 제어 기억장치 용량이 512단어
>> 사상 함수 전체 길이 = 9
(2) 일반적으로 실행 사이클은 절반-끝
>> 사상 함수 첫번째 값 = 1
(3) 각 루틴들은 최대 8개의 마이크로명령어들로 구성
>> 사상 함수 끝 3자리를 0으로 설정
-----> result : 1 XXXXX 000
[4.4]
[표 4-1], [표 4-2], [표 4-3]을 이용해서 그림 4-5의 마이크로명령어들을 2진 비트 패턴으로 변환하라. 만약 필요하다면, [표 4-1]에 새로운 마이크로-연산을 추가해서 사용하라
- 사상 함수 : 1 XXXX 00
간접 사이클 루틴
ORG 4 (시작 주소 4) |
연산 기호 | 조건 기호 | 분기 기호 | 분기 목적지 | 설명 | |
INDRT: | IRTAR | U | JMP | NEXT | ; IR(addr) → MAR ; 다음 마이크로명령어 실행 |
READ | U | JMP | NEXT | ; M[MAR] → MBR ; 다음 마이크로명령어 실행 |
|
BRTIR | U | RET | ; MBR → IR(addr) ; 실행 사이클 루틴으로 복귀 |
▶ NOP
주소 | 마이크로-연산 필드 | 조건 필드(CD) | 분기 필드(BR) | 주소 필드(ADF) |
1 0000 00 | 000 001 | 00 | 00 | 000 0000 (인출 사이클로 복귀) |
▶ LOAD
1) I = 1
주소 | 마이크로-연산 필드 | 조건 필드(CD) | 분기 필드(BR) | 주소 필드(ADF) |
1 0001 00 | 000 000 | 01 | 01 | 000 0100 |
간접 사이클 루틴 시작 | ||||
000 0100 | 010 000 | 00 | 00 | 000 0101 |
000 0101 | 100 000 | 00 | 00 | 000 0110 |
000 0110 | 110 000 | 00 | 10 | 1 0001 01 |
간접 사이클 루틴으로부터 복귀 | ||||
1 0001 01 | 010 000 | 00 | 00 | 1 0001 10 |
1 0001 10 | 100 000 | 00 | 00 | 1 0001 11 |
1 0001 11 | 101 000 | 00 | 00 | 000 0000 (인출 사이클로 복귀) |
2) I = 0
주소 | 마이크로-연산 필드 | 조건 필드(CD) | 분기 필드(BR) | 주소 필드(ADF) |
1 0001 00 | 000 000 | 01 | 01 | 1 0001 01 |
1 0001 01 | 010 000 | 00 | 00 | 1 0001 10 |
1 0001 10 | 100 000 | 00 | 00 | 1 0001 11 |
1 0001 11 | 101 000 | 00 | 00 | 000 0000 (인출 사이클로 복귀) |
▶ STORE
1) I = 1
주소 | 마이크로-연산 필드 | 조건 필드(CD) | 분기 필드(BR) | 주소 필드(ADF) |
1 0010 00 | 000 000 | 01 | 01 | 000 0100 |
간접 사이클 루틴 시작 | ||||
000 0100 | 010 000 | 00 | 00 | 000 0101 |
000 0101 | 100 000 | 00 | 00 | 000 0110 |
000 0110 | 110 000 | 00 | 10 | 1 0010 01 |
간접 사이클 루틴으로부터 복귀 | ||||
1 0010 01 | 010 000 | 00 | 00 | 1 0010 10 |
1 0010 10 | 000 010 | 00 | 00 | 1 0010 11 |
1 0010 11 | 111 000 | 00 | 00 | 000 0000 (인출 사이클로 복귀) |
2) I = 0
주소 | 마이크로-연산 필드 | 조건 필드(CD) | 분기 필드(BR) | 주소 필드(ADF) |
1 0010 00 | 000 000 | 01 | 01 | 1 0010 01 |
1 0010 01 | 010 000 | 00 | 00 | 1 0010 10 |
1 0010 10 | 000 010 | 00 | 00 | 1 0010 11 |
1 0010 11 | 111 000 | 00 | 00 | 000 0000 (인출 사이클로 복귀) |
▶ ADD
주소 | 마이크로-연산 필드 | 조건 필드(CD) | 분기 필드(BR) | 주소 필드(ADF) |
1 0011 00 | 010 000 | 00 | 00 | 1 0011 01 |
1 0011 01 | 100 000 | 00 | 00 | 1 0011 10 |
1 0011 10 | 011 000 | 00 | 00 | 000 0000 (인출 사이클로 복귀) |
▶ SUB
주소 | 마이크로-연산 필드 | 조건 필드(CD) | 분기 필드(BR) | 주소 필드(ADF) |
1 0100 00 | 010 000 | 00 | 00 | 1 0100 01 |
1 0100 01 | 100 000 | 00 | 00 | 1 0100 10 |
1 0100 10 | 000 110 | 00 | 00 | 000 0000 (인출 사이클로 복귀) |
▶ JUMP
주소 | 마이크로-연산 필드 | 조건 필드(CD) | 분기 필드(BR) | 주소 필드(ADF) |
1 0101 00 | 000 111 | 00 | 00 | 000 0000 (인출 사이클로 복귀) |
[4.5]
각각 3bit씩으로 구성된 2개의 연산 필드들로부터 64개의 제어 신호들을 발생하는 방법을 제안하라.
- 총 64개의 제어 신호들을 발생시킨다
[4.6]
조건분기 명령어 'JNZ addr'는 Z 플래그가 '1'이 아니면 addr 번지로 점프하라는 것이다. 점프 목적지 주소(addr)는 I 비트에 따라 직접 혹은 간접 주소지정 된다. 이 명령어를 위한 실행 사이클 루틴을 그림 4-5와 같은 형식으로 작성하라.
연산 기호 | 조건 기호 | 분기 기호 | 분기 목적지 | 설명 | |
JNZ addr: | NOP | Z | JUMP | FETCH | ; Z플래그가 0이면 다음 인출 사이클로 점프 |
NOP | I | CALL | INDRT | ; I=1이면 간접 사이클 루틴 호출 | |
IRTPC | U | JMP | FETCH | ; IR(addr) -> PC ; 인출 사이클 루틴으로 복귀 |
[4.7]
수직적 마이크로명령어 형식에서 연산-코드 필드가 9bit이다. 지정해야 할 마이크로-연산들의 수가 46개이고 동시에 2개 이상의 마이크로-연산들이 수행될 수 있도록 하려면, 연산-코드 필드를 어떤 서브필드(subfield)들로 몇 비트씩 나누면 되는가?
- (16 + 3 + 4) × 2 = 46
[4.8]
수직적 마이크로프로그래밍과 수평적 마이크로프로그래밍의 장점과 단점을 비교하라.
## 수직적 마이크로프로그래밍 ##
장점 : 마이크로명령어의 길이를 줄일 수 있기 때문에 제어 기억장치의 용량이 감소할 수 있다
단점 : 해독 동작에 걸리는 시간 만큼의 지연시간이 발생한다
## 수평적 마이크로프로그래밍 ##
장점 : 하드웨어가 간단하고, 추가적인 하드웨어(해독기)가 필요없고, 해독에 따른 지연시간이 없다
단점 : 마이크로명령어의 비트 수가 길어지기 때문에 제어 기억장치 용량이 증가한다
[4.9]
어떤 제어 기억장치의 폭(단어 길이)이 26bit이다. 마이크로명령어 형식에서 14bit는 마이크로-연산을 가리키는 연산 필드로 사용된다. 주소 선택 필드는 분기 조건을 규정하며, 그 조건을 결정하는 플래그들은 8개이다. 그리고 분기의 종류는 1가지 뿐이어서 분기 필드는 필요하지 않다고 가정한다.
(1) 주소 선택 필드는 몇 bit가 필요한가?
조건을 결정하는 플래그가 8개이기 때문에
>> 주소 선택 필드 : 3bit
(2) 주소 필드(ADF)는 몇 bit로 구성될 수 있는가?
연산 필드 : 14bit
조건 필드 : 8개 이므로 3bit
주소 필드 : 26 - (14 + 3) = 9bit
(3) 제어 기억장치의 최대 용량(단어 수 × 폭)을 구하라.
단어의 길이 = 26bit
>> 제어 기억장치 최대 용량 = 26 * 2^(9) = 13312bit