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