计算机组成与系统结构课后答案全清华大学出版社袁春风主编

内容发布更新时间 : 2025/6/18 13:28:01星期一 下面是文章的全部内容请认真阅读。

add $rs, $rs, $rt

(2)假定该指令占x%,其他指令占(1-x)%

则用硬件实现该指令时, 程序执行时间为原来的1.1*(x+1-x) =1.1 倍 用软件实现该指令时,程序执行时间为原来的3x+1-x =(2x+1)倍 当1.1 < 2x+1 时,硬件实现才有意义 由此可知,x > 5%

9. 假定图6.33多周期数据通路对应的控制逻辑发生错误,使得在任何情况下控制信号PCWr、IRWr、RegWr、BrWr、PCSource、MemWr、MemtoReg、PCWrCond、R-type总是为0,则哪些指令不能正确执行?为什么? 参考答案:

若PCWr=0,则所有指令都不正确,因为无法更新PC

若IRWr=0,则所有指令都不能正确执行,因为IR中不能写入指令

若RegWr=0,则所有需要写结果到寄存器的指令(如:R-Type指令、load指令等)都 不能正确执行,因为寄存器不发生写操作

若BrWr=0,则Branch指令不能正确执行,因为投机计算的分支地址无法送入寄存器 若PCSource=00,则除j之外的其他指令都不能正确得到下条指令地址 若MemWr=0,则Store指令不能正确执行,因为存储器不能写入数据 若MemtoReg=0,则所有Load指令执行错误,因为寄存器写入的是ALU输出 若PCWrCond=0,则Branch指令不能正确执行,因为不能写入转移目标地址到PC 若R-type=0,则所有R-type指令的执行可能出错

10. 假定P.185图6.32多周期数据通路对应的控制逻辑发生错误,使得在任何情况下控制信号PCWr、IRWr、RegWr、BrWr、PCSource、MemWr、MemtoReg、PCWrCond、R-type总是为1,则哪些指令不能正确执行?为什么? 参考答案:

若PCWr=1,则程序执行顺序失控,因为每个时钟都会更新PC

若IRWr=1,则所有指令都可能不能正确执行,因为写入IR的可能不是当前指令 若RegWr=1,则所有不需写结果到寄存器的指令(如:sw、beq等)都不能正确执行

若BrWr=1,则Branch指令不能正确执行,因为运算阶段的ALU输出也会放入寄存器,成为错误的分支转移目标地址。

若PCSource=01,则j和Branch指令不能正确得到下条指令地址 若MemWr=1,则除Store指令外的所有指令都不能正确执行 若MemtoReg=1,则除Load外的所有指令执行错误

若PCWrCond=1,则除Branch外的其他指令可能不能正确执行 若R-type=1,则所有非R-type指令的执行可能出错

12. 假定某计算机字长16位,标志寄存器Flag中的ZF、NF和VF分别是零、负和溢出标志,采用双字节定长指令字。假定Bgt (大于零转移) 指令的第一个字节指明操作码和寻址方式,第二个字节为偏移地址Imm8,其功能是:

若(ZF+(NF⊕VF)=0) 则 PC=PC+2+Imm8 否则 PC=PC+2 (1) 该计算机的编址单位是什么? (2) 画出实现Bgt指令的数据通路。 参考答案:

(1)该计算机的编址单位是字节。

因为PC的增量是2,且每条指令占2个字节,所以编址单位是字节。

(2)实现Bgt指令的数据通路如下

根据“大于”条件判断表达式,可以看出该bgt指令实现的是带符号整数比较。因为无符号数比较时,其判断表达式中没有溢出标志OF。偏移地址Imm8为补码表示,转移目标地址可能在bgt指令之前,也可能在bgt指令之后。计算转移目标地址时,偏移量为Imm8, 范围为-128~127,故转移目标地址的范围是PC+2+(-128)~PC+2+127

如果偏移量为I

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi