【问题标题】:Single-cycle vs a pipelined approach单周期与流水线方法
【发布时间】:2014-06-30 05:26:58
【问题描述】:

我了解单周期程序效率不高。一个原因是因为并非所有指令的长度都相等,但在单周期程序中,所有指令都在相同的时间长度内完成。

在流水线中,吞吐量会增加,这意味着在达到某个点后,一个输出与下一个输出之间的时间将比单周期实现更短。但是你能说流水线方法中的指令花费相同的时间吗(从 IF/Instruction Fetch 到 WB/Writeback)?或者这是错误的结论?

【问题讨论】:

    标签: pipeline instructions pipelining


    【解决方案1】:

    查看单周期非流水线结构中的所有指令不一定花费相同的时间,而是一条指令之后要执行的下一条指令直到下一个时钟周期才能开始,当前指令可能在当前周期之前完成,因为周期长度由最长的指令决定。例如,添加寄存器在加载到 RISC 之前完成。

    现在在流水线结构中的处理器是
    多级带寄存器来存储和传播处理器的状态。现在基本上在流水线处理器上,我们通过重叠两条指令的子级来节省时间。因此,即使单独增加了指令的长度,但总体时间却减少了。现在看到每条指令可能不会走通过所有阶段,例如加载并再次添加 因此,每条指令的总体延迟将由所有阶段组成,但其执行可能花费的周期数更少

    所以你可以说每条指令的延迟是相同的,但不是执行时间或消耗的周期

    【讨论】:

    • 所以要澄清一下,流水线方法中指令的执行时间不一定是相同的时间长度?
    • 不,只有每条指令的延迟与实际时间不同
    猜你喜欢
    • 2014-08-04
    • 2014-12-17
    • 2017-03-12
    • 2011-01-25
    • 1970-01-01
    • 2018-03-25
    • 2012-02-10
    • 2021-10-09
    • 2018-03-08
    相关资源
    最近更新 更多