CPU 在硬件层面上是如何计算的?

Per*_*nce 2 cpu

我知道 CPU 在 FDE 周期上运行,并且有各种寄存器和计数器可以在数据之间移动。我也很欣赏这些数据沿着数据总线在内存和 CPU 之间移动。

但是,我无法理解的是,CPU 如何实际执行命令、获取特定数据,然后对其执行操作。

请您解释一下这是如何在硬件级别上工作的。也许甚至只是将两个变量加在一起。

这将不胜感激,因为这是我根本无法理解的事情,而且我的研究一无所获!

Law*_*ceC 8

CPU 基本上是一个庞大的晶体管网络,其各种组合代表逻辑门。与模拟晶体管不同,CPU 中的数字晶体管等要么开 (1) 要么关 (0)。

逻辑门具有输入(1 或 2 - A/B)和输出。门对输入执行操作。一些类型的逻辑门如下:

在此处输入图片说明

门究竟是什么并不重要,重要的是它们执行的功能。它们可以是物理开关、分立晶体管、DIP 封装上的多个门、硅上的沉积物等。

您可以将门相互连接来做更复杂的事情。例如,使用两个门,您可以制作一个 1 位加法器:

在此处输入图片说明

您可能想要添加多个位,但您确实需要一个支持“进位”的“三位”加法器:

在此处输入图片说明

所以现在您可以将一个加法器的“进位”连接到另一个加法器的“进位”。

在此处输入图片说明

“查看”加法器输出的最简单方法是将输出线连接到 LED 灯或灯泡。控制加法器输入的最简单方法是通过物理开关。老式 Altair 的控制面板是如何工作的(当然 Altair 的控制面板连接到完整的 CPU 而不仅仅是一个简单的加法器):

在此处输入图片说明

所以这是添加如何工作的一个例子。一个真正的现代 CPU 有数十亿个逻辑门,并且有更复杂的网络,但上面的基本操作是相同的。

如果您想实时玩转逻辑门,是一个很好的 Windows/Mac 程序。它还有一个在线版本。

编辑:也读这个

  • @JamesHughes - 你刚刚问的内容涵盖了两个为期 16 周的大学课程。你真的意识到了吗?简单来说,指令被解码。数据检索本身只是一个特定的指令 (3认同)