我知道 CPU 以 FDE 周期运行,并且有各种寄存器和计数器用于传输数据。我还知道这些数据沿着数据总线在内存和 CPU 之间移动。
然而,我无法理解的是,CPU 实际上是如何服从命令、获取特定数据然后对其执行操作的。
请您解释一下硬件层面的工作原理。也许只是将两个变量相加。
这将不胜感激,因为这是我根本无法理解的事情,而且我的研究也没有发现任何结果!
答案1
CPU 基本上是一个庞大的晶体管网络,晶体管的各种组合代表逻辑门。与模拟晶体管不同,CPU 等中的数字晶体管要么打开(1),要么关闭(0)。
逻辑门有输入(1 或 2 - A/B)和输出。门对输入执行操作。一些类型的逻辑门如下:
这些门的具体内容并不重要,重要的是它们执行的功能。它们可能是物理开关、分立晶体管、DIP 封装上的多个门、硅上的沉积物等。
你可以将门电路连接起来,做更复杂的事情。例如,用两个门电路可以制作一个 1 位加法器:
您可能想要添加多个位,但您实际上需要一个支持“进位”的“三位”加法器:
所以现在您可以将一个加法器的“进位输出”连接到另一个加法器的“进位输入”。
要“查看”加法器的输出,最简单的方法是将输出线连接到 LED 灯或灯泡。控制加法器输入的最简单方法是通过物理开关。有点像旧 Altair 的控制面板的工作方式(当然,Altair 的控制面板连接到整个 CPU,而不仅仅是一个简单的加法器):
这就是加法工作原理的一个例子。真正的现代 CPU 有数十亿个逻辑门,并且有更复杂的逻辑门网络,但上述基本操作是相同的。
这如果您想实时玩转逻辑门,这是一款不错的 Windows/Mac 程序。它还有一个在线版本。
编辑:阅读这也。
答案2
这个问题问得好,我很想更深入地了解自己。就我目前所知:
- 控制单元生成带有指令的信号
- 算术逻辑单元用指令执行信号
- 寄存器将信号与指令一起存储,以供日后检索
我认为如果我没有按照您想要的方式回答您的问题,这些链接可能会有所帮助。
https://www.doc.ic.ac.uk/~eedwards/compsys/10_Slides_CPU_buses.pdf
http://www.teach-ict.com/gcse_computing/ocr/212_computing_hardware/cpu/miniweb/pg3.htm