A-A+
某指令流水线分为五级 分别完成取址(IF) 译码并取数(ID) 执行(EX) 访存(MEM)
问题详情
某指令流水线分为五级,分别完成取址(IF)、译码并取数(ID)、执行(EX)、访存(MEM)、写结果(WR)。设完成各阶段操作的时间依次为90 ns、60 ns、70 ns、1 00 ns、50 ns。试问流水线的时钟周期应取何值?若第一条和第二条指令发生数据相关,试问第二条指令需推迟多少时间才能不发生错误?若相邻两条指令发生数据相关,而不推迟第二条指令的执行可采取什么措施?
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:流水线的时钟周期应取其中最长的时间段即100 ns。第二条指令需推迟300 ns(即等待上一条指令完成EX、MEM、WR三个周期后才能开始ID)才能不发生错误。若相邻两条指令发生数据相关而不推迟第二条指令的执行可采取的措施是在访存与执行之间设置相关专用通路。
流水线的时钟周期应取其中最长的时间段,即100ns。第二条指令需推迟300ns(即等待上一条指令完成EX、MEM、WR三个周期后才能开始ID),才能不发生错误。若相邻两条指令发生数据相关,而不推迟第二条指令的执行可采取的措施是在访存与执行之间设置相关专用通路。