您好,我正在读一本教科书,介绍CPU的简单设计。 我不明白为什么我们仍然需要时钟寄存器?例如,如下图所示:
如果我们可以删除所有三个寄存器,则可以节省60ps,因为我们只需要处理器来连续执行指令,所以当 梳齿逻辑完成了,就是下一条指令应该开始执行的时候,为什么我们需要时钟周期来手动控制执行指令的开始?
答案 0 :(得分:4)
您可以通过将闩锁卸下来开始了解对闩锁的需求。
秘密在于认识到每个块要花100皮秒才能产生有效结果。在此之前,输出无效,也就是垃圾,而不是您可能认为的先前结果。请记住,这些没有内存的组合块。
现在想象一下,每隔100皮秒将新数据放入A块的输入中。
输出将是什么样?一旦将新数据提供给输入,该块的输出即告无效。这意味着B块具有无效输入,并且只有在它们有效之前才能开始处理数据。
现在,在100皮秒之后,块A的有效数据将消失,块B终于可以开始了。但是,否,块A的输入已更改,块B再次具有无效输入。通过所有三个块获得有效结果的唯一方法是使输入在通过所有三个块所需的整个300皮秒内保持有效。
使用锁存器,每个块的有效结果都被锁存,并且不会随着输入的变化而改变。因此,相对于每300皮秒,我们可以每100 + 20皮秒显示新数据。或者,使用管道锁存器,电路的运行速度提高了2.5倍。