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