某16位计算机中,带符号整数用补码表示,数据Cache和指令cache分离。题44表给出了指令系统中部分指令格式,其中Rs和Rd表示寄存器,mem表示存储单元地址,(x)表示寄存器x或存储单元x的内容。该计算机采用5段流水方式执行指令,各流水段分别是取指(

admin2014-01-14  43

问题 某16位计算机中,带符号整数用补码表示,数据Cache和指令cache分离。题44表给出了指令系统中部分指令格式,其中Rs和Rd表示寄存器,mem表示存储单元地址,(x)表示寄存器x或存储单元x的内容。该计算机采用5段流水方式执行指令,各流水段分别是取指(IF)、译码/读寄存器(ID)、执行/计算有效地址(Ex)、访问存储器(M)和结果写回寄存器(WB),流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一个寄存器的渎和写操作不能在同一个时钟周期内进行。请回答下列问题。
级语言程序中某赋值语句为x=a+h,x、a和b均为int型变量,它们的存储单元地址分别表示为[x]、[a]和[h]。该语句对应的指令序列及其在指令流水线中的执行过程如题44图所示。
I,LOADR1,[a]
I,LOADR2,
I,ADDR1,R2
I,STORER2,[x]

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

选项

答案I,的ID段被阻塞的原因:因为I3与I1和I2都存在数据相关,需等到I1和I2将结果写回寄存器后,I3才能读寄存器内容,所以I3的ID段被阻塞。I4的IF段被阻塞的原因:因为I4的前一条指令I3在ID段被阻塞,所以I4的lF段被阻塞。

解析
转载请注明原文地址:https://kaotiyun.com/show/Kvxi777K
0

最新回复(0)