44.(12分)某16位计算机中,带符号整数用补码表示,数据Cache和
2021.07.11 07:42

  【题目】

  44.(12分)某16位计算机中,带符号整数用补码表示,数据Cache和指令Cache分离。题44表给出了指令系统中部分指令格式,其中Rs和Rd表示寄存器,mem表示存储单元地址,(x)表示寄存器x或存储单元x的内容。

  该计算机采用5段流水方式执行指令,各流水段分别是取指(IF)、译码/读寄存器(ID)、执行/计算有效地址(EX)、访问存储器(M)和结果写回寄存器(WB),流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一个寄存器的读和写操作不能在同一个时钟周期内进行。请回答下列问题。

  (1)若int型变量x的值为-513,存放在寄存器R1中,则执行指令“SHR R1”后,R1的内容是多少?(用十六进制表示)

  (2)若某个时间段中,有连续的4条指令进入流水线,在其执行过程中没有发生任何阻塞,则执行这4条指令所需的时钟周期数为多少?

  (3)若高级语言程序中某赋值语句为x=a+b,x、a和b均为int型变量,它们的存储单元地址分别表示为[x]、[a]和[b]。该语句对应的指令序列及其在指令流水线中的执行过程如题44图所示。

  则这4条指令执行过程中,Ⅰ3,的ID段和Ⅰ4的IF段被阻塞的原因各是什么?

  (4)若高级语言程序中某赋值语句为x=2*x+a,x和a均为unsigned int类型变量,它们的存储单元地址分别表示为[x]、[a],则执行这条语句至少需要多少个时钟周期?要求模仿题44图画出这条语句对应的指令序列及其在流水线中的执行过程示意图。

  【答案要点】

  (1)x的机器码为[x]补=1111 1101 1111 1111 B,即指令执行前(R1)=FDFFH,右移1位后为

  1111 1110 1111 1111B,即指令执行后(R1)=FEFFH。(2分)

  (2)至少需要4+(5-1)=8个时钟周期数。(2分)

  (3)Ⅰ3的ID段被阻塞的原因:因为Ⅰ3与Ⅰ1和Ⅰ2都存在数据相关,需等到Ⅰ1和Ⅰ2将结

  果写回寄存器后,Ⅰ3才能读寄存器内容,所以Ⅰ3的ID段被阻塞。(1分)

  Ⅰ4的IF段被阻塞的原因:因为Ⅰ4的前一条指令Ⅰ3在ID段被阻塞,所以Ⅰ4的IF段被阻

  塞。(1分)

  (4)因2*x操作有左移和加法两种实现方法,故x=2*x+a对应的指令序列为:



MORE+

    相关阅读 MORE+

    版权及免责声明
    1.凡本网注明"稿件来源:新东方在线"的所有文字、图片和音视频稿件,版权均属北京新东方迅程网络科技有限公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明"稿件来源:新东方在线",违者本网将依法追究责任。
    2.本网末注明"稿件来源:新东方在线"的文/图等稿件均为转载稿,本网转载出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。如擅自篡改为"稿件来源:新东方在线”,本网将依法追究责任。
    3.如本网转载稿涉及版权等问题,请作者致信weisen@xdfzx.com,我们将及时外理

    Copyright © 2011-202

    All Rights Reserved