【问题标题】:non piplined processor非流水线处理器
【发布时间】:2013-04-04 11:58:13
【问题描述】:

每个人都知道要执行的指令必须分为多个阶段,例如取指、指令解码等......

在流水线指令处理器中,每个阶段都在一个周期内完成,并且可能在一个周期内完成不同指令的不同阶段(指令在不同阶段重叠)

在非流水线处理器中,指令是按顺序完成的(没有重叠), 我的问题是在非流水线处理器中,指令是在一个周期内完成(所有阶段)还是在一个周期内完成?

【问题讨论】:

    标签: computer-science


    【解决方案1】:

    每条指令至少要从缓存中取出(1 个周期)并解码(1 个周期)。只有这样才能执行(nr 个周期取决于指令)。因此不可能在 1 个周期内执行任何指令(包括其获取和解码)。

    【讨论】:

    • 完全可以在一个周期内获取、解码、执行和写回(当然,如果你的记忆允许的话)。它只会使您的关键路径更长(并且时钟频率更低)。
    • 您原则上是对的,但原则上说您可以在一个周期内执行整个程序也是正确的......
    • 不,您不能在一个循环中执行整个程序。但是您可以在单个周期内对每个块 RAM 的每个端口进行一次读取和一次写入。例如,请参阅我在回答中提到的 J1 核心。
    • 是的,原则上可以。如果你有一个非常长的字处理器,可以在一个周期内读取整个程序,以及一个可以在一个周期内进行多次写入的并行存储器。
    • 仅当您的程序是线性的,根本没有分支。
    【解决方案2】:

    绝对有可能实现一个非流水线 CPU,它在一个周期内评估每条指令。例如,参见J1 core:在时钟的上升沿从块 RAM 获取数据,在下降沿完成回写。

    指令可以足够简单,以缩短关键路径(并且时钟频率相当高)。

    尽管,大多数历史上的 pre-RISC 内核曾经是多周期的。 here 解释了这种 CPU 的典型设计。

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      • 2012-05-07
      • 2014-01-05
      • 1970-01-01
      相关资源
      最近更新 更多