《计算机组成与设计》习题解答 下载本文

内容发布更新时间 : 2024/11/5 11:37:28星期一 下面是文章的全部内容请认真阅读。

R2out Add Zin Zout R3in IRout R1in PCin MDRin Write

将上述18个控制信号组成一个控制字,形成各微指令的控制字如下,其中取指令操作在T1和T2两个时钟周期完成,因为采用水平型直接编码:

T1: 1110 1000 0000 0000 00 T2: 0001 0100 0000 0000 00 ADDT3: 0000 0011 0000 0000 00 ADDT4: 0000 0000 1110 0000 00 ADDT5: 0000 0000 0001 1000 00 LOADT3: 0010 1000 0000 0100 00 LOADT4: 0001 0000 0000 0010 00 STORET3: 0010 0000 0000 0100 00 STORET4: 0000 0010 0000 0000 11 JMPT3: 1000 0001 0000 0000 00 JMPT4: 0000 0000 0110 0100 00 JMPT5: 0000 0000 0001 0001 00 (3) 画出微程序流程图。 根据指令执行过程,列出指令控制流程如下:

00000001ADD0010ADDT300110011ADDT401000100ADDT50000LOAD0110LOADT301110111LOADT40000T1T20001xx10STORE1010STORET310111011STORET40000JMP1110JMPT311111111JMPT410001000JMPT50000

(4) 安排微指令存储地址。以上总共有12条微指令,安排每条微指令在控制存储器中的存储地址如上图中所示。控制存储器的地址为4位,每条微指令的地址如图中每个微指令方框的左上角所示。

(5) 微指令格式设计。设计每条指令的控制字段。上述流程图中只有一个分支,所以在微指令中设置一位BCF字段。每条微指令的下一条微指令地址字段BAF为4位,标注在每个方框的右下角。在多路分支的时候,BAF中的高三位根据操作码以及寻址信息构成。这样完整的微指令格式是:

控制字(18位) BCF(1位) BAF(4位) 各指令代码如下: T1: 1110 1000 0000 0000 00 0 0001 T2: 0001 0100 0000 0000 00 1 xx10 ADDT3: 0000 0011 0000 0000 00 0 0011 ADDT4: 0000 0000 1110 0000 00 0 0100 ADDT5: 0000 0000 0001 1000 00 0 0000

LOADT3: 0010 1000 0000 0100 00 0 0111 LOADT4: 0001 0000 0000 0010 00 0 0000 STORET3: 0010 0000 0000 0100 00 0 1011 STORET4: 0000 0010 0000 0000 11 0 0000 JMPT3: 1000 0001 0000 0000 00 0 1111 JMPT4: 0000 0000 0110 0100 00 0 1000 JMPT5: 0000 0000 0001 0001 00 0 0000

第二条微指令(T2)的下址采用的多路分支方法为: 用指令操作码生成下址的高2位,低2位固定为10。并用一位的BCF字段控制分支地址的生成。微指令格式以及多路分支地址的形成电路如下图所示:

控制字(18位)?控制信号BCFBAF操作码1 0下址

34. 对于上题指令操作,若采用阵列逻辑实现控制器,试画出控制器的状态转换图。 解: (1) 写出各指令的操作步骤。同上。 (2) 画出状态图。控制器的状态转换图如下图所示:

S0S1ADDJMPLOADSTORES5S7S2S9S3S6S8S10S4S11

(3) 列出状态码。每个状态的输出控制信号分别对应于微程序方法中的控制字,即:

S0: 1110 1000 0000 0000 00 S1: 0001 0100 0000 0000 00 S2: 0000 0011 0000 0000 00 S3: 0000 0000 1110 0000 00 S4: 0000 0000 0001 1000 00 S5: 0010 1000 0000 0100 00 S6: 0001 0000 0000 0010 00 S7: 0010 0000 0000 0100 00

S8: S9: S10: S11: 0000 0010 0000 0000 11 1000 0001 0000 0000 00 0000 0000 0110 0100 00 0000 0000 0001 0001 00

41. 对于下列指令序列: MULTD F0,F6,F4 SUBD F8,F0,F2 ADDD F2,F10,F2 指出指令间的数据相关性。

答:指令1和2之间存在关于F0的RAW相关, 指令2和3之间存在关于F2的WAR相关。

42. 在1个5级指令流水线(IF, ID, EXE, MEM, WB)中执行以下指令序列。流水线中具有检测相关性的硬件,并能停顿指令的EXE阶段以解决相关性问题,允许不相关指令提前进入EXE阶段和以后的阶段,假设每条指令都需经过5个流水阶段,每个流水阶段都只需1个周期,流水线中无相关专用通路。 (1) 指出指令序列中的数据相关性;

(2) 画出指令流水线的时空图,指出这些指令的执行(EXE)顺序。 Sub R1,R0,R5 Add R1,R1,R0 Addi R2,R5,1 mult R4, R1,R0 And R6,R2,R0 Add R3,R3,R4 答:(1)指令1与指令2对于R1存在RAW和WAW相关, 指令1与指令4对于R1存在RAW, 指令2与指令4对于R1存在RAW, 指令3与指令5对于R2存在RAW, 指令4与指令6对于R4存在RAW。 (2)时空图: IF ID Ex M IF ID IF IF ID IF ID IF ID W Ex M ID Ex M W Ex M Ex M W Ex M W W W 指令的执行(EXE)顺序为:1? 3? 2 ? 5? 4?6

第八章

9. 用EIA-232-F异步串行通信方式传送十六进制数A816,数据位为8位,偶校验位为1位,停止位1位,请画出波形图。

答:波形图如下

起始位 0 0 0 1 0 1 0 校1 验位 结束位

14. 假设存储器系统采用50MHz时钟,存储器以每周期一个字的速率传输8个字的访问请求,以支持块长为8个字的cache,每字4字节。对于读操作,访问顺序是1个周期接受地址;3个周期延迟;8个周期用于传输8个字。对于写操作,访问顺序是1个周期接受地址;2个周期延迟;8个周期用于传输8个字;3个周期恢复和写入纠错码。对于以下访问模式,求出该存储器的最大带宽:

(1) 全部访问为读操作 (2) 全部访问为写操作

(3) 65%的访问为读操作,35%的访问为写操作 答:(1) 读操作周期时间为

Tm = (1+3+8)×20×10-9 = 240×10-9 (s)

读操作的带宽为

Bm = 8/Tm = 33.3MW/S = 133.3MB/S

(2) 写操作的周期时间为

Tm = (1+2+8+3)×20×10-9 = 280×10-9 (s)

写操作的带宽为

Bm = 8/Tm = 28.6MW/S = 114.4MB/S

(3) 加权平均周期时间为

Tm = (240×0.65 + 280×0.35)×10-9 = 254×10-9 (s)

加权平均带宽为

Bm = 8/Tm = 31.50MW/S = 126.0MB/S

或者采用带宽的加权平均

Bm=133.3×0.65 + 114.4×0.35 = 126.685 MB/S

15. 对于上题的计算机系统,假定处理器采用写回式cache,每条指令中出现cache失效的概率为0.05,40%的cache失效需要进行写回,其余60%只需要进行读操作,cache失效时CPU需要等待,求平均每条指令中用于处理cache失效的等待时钟周期数。 答:从上题得到读操作需要12周期,写操作需要14个时钟周期,读操作时需要写回。这样,

每条指令中用于处理cache失效的时钟周期数为

0.05×0.40×(12 + 14) + 0.05×0.60×12 =0.02×26 + 0.03×12 = 0.52+0.36 = 0.88

第九章

19. 设一个磁盘的平均寻道时间为20ms,传输速率是1MB/s,控制器开销是2ms,转速为每分钟5400转。求读写一个512字节的扇区的平均时间。 答:平均旋转延时 = 0.5/5400转/分 = 0.0056秒 = 5.6ms