流水线处理器中时钟寄存器的用途是什么

What's the purpose of clocked registers in pipelined processor

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

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

您可以通过想象闩锁被移除来开始理解闩锁的必要性。

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

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

输出会是什么样子?一旦新数据呈现给输入,该块的输出就无效了。这意味着块 B 的输入无效,并且在输入有效之前无法开始处理数据。

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

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