组成原理课后习题答案 下载本文

6.假设某机器有80条指令,平均每条指令由4条微指令组成,其中有一条取指微指令是所有指令公用的。已知微指令长度为32位,请估算控制存储器容量。

解:80条指令,平均每条指令由4条微指令组成,其中有一条公用微指令,所以总微指令条数为80*(4-1)+1=241条微指令,每条微指令32位,所以控存容量大约为241*32位 7.某ALU器件是用模式控制码M S3 S2 S1 C来控制执行不同的算术运算和逻辑操作。下表列出各条指令所要求的模式控制码,其中y为二进制变量,φ为0或l任选。

试以指令码(A,B,H,D,E,F,G)为输入变量,写出控制参数M,S3,S2,Sl,C的逻辑表达式。

指令码 A,B H,D E M 0 0 0 S3 0 1 0 S2 1 1 1 S1 1 0 0 C 0 1 y y φ F 0 1 1 1 G 1 0 1 1 解:由表可列如下逻辑方程 M=G

S3=H+D+F

S2=A+B+D+H+E+F+G S1=A+B+F+G C=H+D+Ey+Ey

由以上逻辑方程即可画出逻辑电路图

8.某机有8条微指令I1—I8,每条微指令所包含的微命令控制信号如下表所示。 微指令 a b c d e f g h i j I1 √ √ √ √ √ I2 I3 I4 I5 I6 I7 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ I8 √ √ a—j分别对应10种不同性质的微命令信号。假设一条微指令的控制字段仅限为8位,请安排微指令的控制字段格式。 解:为了压缩控制字段的长度,必须设法把一个微指令周期中的互斥性微命令组合在一个小组中,进行分组译码。

经分析,(e,f,h)和(b,i,j)、或(d,i,j)和(e,f,h)均是不可能同时出现的互斥信号,所以可将其通过2:4译码后输出三个微命令信号(00不用),而其余四个微命令信号用直接表示方式。因此可用以下两种形式安排控制字段格式。

9.微地址转移逻辑表达式如下: μA8 = P1·IR6·T4 μA7 = P1·IR5·T4 μA6 = P2·C·T4

其中μA8—μA6为微地址寄存器相应位,P1和P2为判别标志,C为进位标志,IR5和IR6为指令寄存器的相应位,T4为时钟周期信号。说明上述逻辑表达式的含义,画出微地址转移逻辑图。 解:

μA8 = P1·IR6·T4 表示微地址的第8位在P1有效时,用IR6设置 μA7 = P1·IR5·T4 表示微地址的第7位在P1有效时,用IR5设置

μA6 = P2·C·T4 表示微地址的第6位在P2有效时,用进位标志C设置 地址转移逻辑图如下:

10.某计算机有如下部件,ALU,移位器,主存M,主存数据寄存器MDR,主存地址寄存器MAR,指令寄存器IR,通用寄存器R0一R7,暂存器C和D。

(1)请将各逻辑部件组成一个数据通路,并标明数据流动方向。

(2)画出“ADD (R1),(R2)+”指令的指令周期流程图,指令的含义与PDP·11相同。 解:

(1)将C,D两个暂存器直接接到ALU的A,B两个输入端上。与此同时,除C,D外,其

余7个寄存器都双向接到单总线上。

移位器IR+1BR0R1MDRALUAPC+1MR2R3MARCD (2)

取指M->MDR->IR,PC+1

测试R1->MDR取源操作数M->MDR->CR2->MDR取目的操作数M->MDR->D加C+D->MDR存回MDR->M,R2->DD+1->R2PC->MAR修改送回继指令地址

11.已知某机采用微程序控制方式,控存容量为512*48位。微程序可在整个控存中实现转移,控制微程序转移的条件共4个,微指令采用水平型格式,后继微指令地址采用断定方式。请问;

(1)微指令的三个字段分别应为多少位?

(2)画出对应这种微指令格式的微程序控制器逻辑框图。

答:(1)假设判别测试字段中每一位作为一个判别标志,那么由于有4个转移条件,故该字

段为4位。下地址字段为9位,因为控存容量为512单元。微命令字段则是(48-4-9)=35位。

(2)对应上述微指令格式的微程序控制器逻辑框图如图所示。其中微地址寄存器对应下地

址字,P字段即为判别测试字段,控制字段即为微命令字段,后两部分组成微指令寄存器。地址转移逻辑的输入是指令寄存器的OP码、各种状态条件以及判别测试字段

所给的判别标志(某一位为1),其输出修改微地址寄存器的适当位数,从而实现微程序的分支转移。就是说,此处微指令的后继地址采用断定方式。

指令寄存器IROP状态条件?地址译码控制存储器P字段微地址寄存器地址转移逻辑微命令信号?控制字段

12.今有4级流水线,分别完成取指、指令译码并取数、运算、送结果四步操作。今假设完成各步 操作的时间依次为100ns,100ns,80ns,50ns。请问; (1)流水线的操作周期应设计为多少?

(2)若相邻两条指令发生数据相关,而且在硬件上不采取措施,那么第2条指令要推迟多少时间进行?

(3)如果在硬件设计上加以改进,至少需推迟多少时间? 答:(1) 流水操作周期为max(100,100,80,50)=100ns

(2) 200ns (3) 100ns

13.指令流水线有取指(IF)、译码(ID)、执行(EX)、访存(MEM)、写回寄存器堆(WB)五个过程段,共有20条指令连续输入此流水线。

(1)画出流水处理的时空图,假设时钟周期为100ns。

(2)求流水线的实际吞吐率(单位时间里执行完毕的指令数)。 (3)求流水线的加速比。 解:

(1) (1) 若流水操作周期为100ns,可画时空图如下

(2) 流水线的实际吞吐量:20条指令/2400ns =833.33万条指令/秒

(3) 流水线的加速比为: 设流水线操作周期为τ,

则n指令串行经过k个过程段的时间为n*K*τ ;

而n条指令经过可并行的k段流水线时所需的时间为k+n*τ; 故加速比为:

lim (n*k*τ)/{[K+(n-1)]*τ}=k n→∞

20条指令经过5个过程段的加速比为: 20*5*100/(5+19)*100)=4.17

14.用时空图法证明流水计算机比非流水计算机具有更高的吞吐率。 解: