问答题X 纠错假定有一个程序的指令序列为“lw,add,lw,add,…”。add指令仅依赖它前面的lw指令,而lw指令也仅依赖它前面的add指令,寄存器写口和寄存器读口分别在一个时钟周期的前、后半个周期内独立工作。请问:
因为lw指令和add指令之间存在一个load-use数据冒险,所以每个lw指令和add指令之间要有一次流水线阻塞。而add指令和lw指令之间的数据冒险可通过数据转发解决。即:CPI为1.5
你可能喜欢
问答题
以下指令序列中,哪些指令对发生数据相关?假定采用“取指、译码/取数、执行、访存、写回”五段流水线方式,那么不用“转发”技术的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序避免数据冒险?如果采用“转发”是否可以完全解决数据冒险?不行的话,需要在发生数据相关的指令前加入几条nop指令才能使这段程序不发生数据冒险?
问答题
问答题
问答题
问答题
问答题
问答题
问答题
问答题
实现伪指令“bcmp$t1,$t2,$t3”的指令序列如下。