-> 블로그 이전

[컴퓨터구조론] 4장 연습문제

2022. 2. 7. 16:25Solution`/컴퓨터구조론

[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