首页 > 解决方案 > (Nand2tetris CPU)(什么/多少)在每个时钟周期发生?

问题描述

Nand2tetris CPU的基础上,如下图,想知道以下几点:

  1. (什么/多少)在每个时钟周期内发生? (见 IMG_1 和 IMG_2)

  2. 作为问题 1 的后续问题,程序计数器应该何时更改?


请注意,我知道时钟是什么以及何时

IMG_1

在此处输入图像描述


IMG_2

在此处输入图像描述

标签: architecturecpucpu-architecturenand2tetris

解决方案


Nand2Tetris 仿真掩盖了时钟的许多细微之处。没有滴答/滴答阶段。相反,有一个特殊的 DFF(数据触发器)组件可以满足对内存的需求。

可视化它的方法是将组件划分为没有内部状态的组件(那些是其输入的纯函数,例如没有 DFF 构建的任何组件)。当它们的输入发生变化时,它们会立即改变它们的输出状态。

DFF 基本上将其新状态计算为其输入的纯函数,但将输出该状态延迟一个周期。所以它有一个内部记忆,它在前一个周期中的状态。事实证明,这就是实现相当于滴答/滴答时钟所需的全部内容。

有关更多详细信息,请参阅https://docs.wixstatic.com/ugd/56440f_e458602dcb0c4af9aaeb7fdaa34bb2b4.pdf 。


推荐阅读