【问题标题】:What's the purpose of clocked registers in pipelined processor流水线处理器中时钟寄存器的目的是什么
【发布时间】:2019-03-08 04:42:30
【问题描述】:

您好,我正在阅读一本描述 CPU 流水线设计的教科书。 我不明白为什么我们仍然需要时钟寄存器?例如,如下图所示:

如果我们可以去掉所有三个寄存器,我们可以节省 60ps,因为我们只需要处理器继续执行指令,所以当 一个梳状逻辑结束,就是下一条指令开始执行的时间,为什么我们需要时钟周期来手动控制执行指令的开始?

【问题讨论】:

    标签: cpu pipeline cpu-architecture cycle cpu-registers


    【解决方案1】:

    您可以通过想象它们被移除来开始理解对闩锁的需求。

    秘诀是要认识到每个块需要 100 皮秒才能产生有效结果。在那之前,输出是无效的,也就是垃圾,而不是你想象的那样,以前的结果。请记住,这些是没有记忆的组合块。

    现在假设我们每 100 皮秒在块 A 的输入中放置新数据。

    输出会是什么样子?好吧,只要将新数据呈现给输入,该块的输出就无效。这意味着 Block B 的输入无效,并且在它们有效之前无法开始处理数据。

    现在 100 皮秒后,A 块有有效数据流出,B 块终于可以开始了。但是不,块 A 的输入发生了变化,块 B 再次具有无效输入。通过所有三个块获得有效结果的唯一方法是在通过所有三个块所需的整个 300 皮秒内保持输入有效。

    使用锁存器,每个块的有效结果都会被锁存,并且不会随着输入的变化而变化。因此,我们可以每 100 + 20 皮秒而不是每 300 皮秒呈现新数据。或者,使用流水线锁存器,电路运行速度提高 2.5 倍。

    【讨论】:

    • 哦,我明白了。关键句是“输出无效,也就是垃圾,不是你想象的那样,之前的结果。”,但每本教科书都说它拥有之前的结果
    • 不能指望组合逻辑来“持有”任何东西。执行数据“保存”的是锁存器。我认为您需要重新阅读教科书的那一部分,注意使用的确切语言。
    • 更复杂的是,进入寄存器的每个位的值(以上表示为一个箭头)不会完全同时存在,这取决于前一个块的组合逻辑,只有最慢的块会在 100ps 过去不久之前处于其想要的状态。
    猜你喜欢
    • 2013-07-10
    • 2021-10-09
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    相关资源
    最近更新 更多