我知道单周期程序效率不高。一个原因是因为并非所有指令的长度都相等,但在单周期程序中,所有指令都在相同的时间长度内完成。
在流水线中,吞吐量增加了,这意味着在达到某个点后,一个输出与下一个输出之间的时间将比单周期实现更短。但是你能说流水线方法中的指令花费相同的时间吗(从 IF/Instruction Fetch 到 WB/Writeback)?或者这是错误的结论?
我知道单周期程序效率不高。一个原因是因为并非所有指令的长度都相等,但在单周期程序中,所有指令都在相同的时间长度内完成。
在流水线中,吞吐量增加了,这意味着在达到某个点后,一个输出与下一个输出之间的时间将比单周期实现更短。但是你能说流水线方法中的指令花费相同的时间吗(从 IF/Instruction Fetch 到 WB/Writeback)?或者这是错误的结论?
查看单周期非流水线结构中的所有指令不一定需要相同的时间,而是一条指令之后要执行的下一条指令要到下一个时钟周期才能开始,当前指令可能在当前周期之前完成,因为周期长度是确定的通过最长的指令。例如,添加寄存器在加载到 RISC 之前完成。
现在在流水线结构中,处理器是
多级的,带有寄存器来存储和传播处理器的状态。现在,基本上在流水线处理器上,我们通过重叠两个指令的子级来节省时间。因此,即使单独增加了指令的长度,但总时间却减少了。现在看到每条指令可能不会经过所有阶段,例如加载和再次添加因此每条指令的总延迟将由所有阶段组成,但其执行可能花费的周期数较少
所以你可以说每条指令的延迟是相同的,但不是执行时间或消耗的周期