我知道 CPU 在 FDE 周期上运行,并且有各种寄存器和计数器可以在数据之间移动。我也很欣赏这些数据沿着数据总线在内存和 CPU 之间移动。
但是,我无法理解的是,CPU 如何实际执行命令、获取特定数据,然后对其执行操作。
请您解释一下这是如何在硬件级别上工作的。也许甚至只是将两个变量加在一起。
这将不胜感激,因为这是我根本无法理解的事情,而且我的研究一无所获!
CPU 基本上是一个庞大的晶体管网络,其各种组合代表逻辑门。与模拟晶体管不同,CPU 中的数字晶体管等要么开 (1) 要么关 (0)。
逻辑门具有输入(1 或 2 - A/B)和输出。门对输入执行操作。一些类型的逻辑门如下:
门究竟是什么并不重要,重要的是它们执行的功能。它们可以是物理开关、分立晶体管、DIP 封装上的多个门、硅上的沉积物等。
您可以将门相互连接来做更复杂的事情。例如,使用两个门,您可以制作一个 1 位加法器:
您可能想要添加多个位,但您确实需要一个支持“进位”的“三位”加法器:
所以现在您可以将一个加法器的“进位”连接到另一个加法器的“进位”。
“查看”加法器输出的最简单方法是将输出线连接到 LED 灯或灯泡。控制加法器输入的最简单方法是通过物理开关。老式 Altair 的控制面板是如何工作的(当然 Altair 的控制面板连接到完整的 CPU 而不仅仅是一个简单的加法器):
所以这是添加如何工作的一个例子。一个真正的现代 CPU 有数十亿个逻辑门,并且有更复杂的网络,但上面的基本操作是相同的。
如果您想实时玩转逻辑门,这是一个很好的 Windows/Mac 程序。它还有一个在线版本。
编辑:也读这个。