也许我没能正确思考这个问题,但是当你给 CPU 下达命令(例如乘以寄存器 (MR) R2、R4)时,它如何决定使用哪些逻辑门,是只使用第一个可用的门,还是有什么我不知道的隐藏在内部的事情。我知道 CPU 有数百万个逻辑门,那么它如何正确管理它们的使用呢?
答案1
您的问题实际上更多的是属于电气工程领域而不是计算机科学领域,因此有点偏离主题,但我会看看我能做些什么。
你的乘法指令将排队到算术处理单元在其一个输入/输出连接上。
ALU 使用组合逻辑在其布局中,电流流过整个电路,其输出根据收到的输入而变化。它不会选择一组门来使用,所有门都在接收信号,但电路的布局会创建携带结果的输入信号的可重复转换。请注意,在这个级别,您处理的模拟信号和数字位一样多,因此电流像水一样流过管道网络,电路允许或多或少的水通过不同的路径。
驱动指令的执行单元将其发送给 ALU 进行处理,并在下一个时钟滴答时期望结果在 ALU 的输出寄存器之一上可用。请在此处查看更多详细信息:https://en.wikipedia.org/wiki/Arithmetic_logic_unit#Circuit_operation
答案2
简单来说,就是你运行的命令本身决定了晶体管的状态,从而决定了使用的逻辑门。它将看到一系列字节,而这些字节实际上配置了处理器的初始状态。在具有多个执行单元的现代处理器上,情况要复杂得多,但这就是它的要点。
处理器启动时,它将位于地址 0,并将该地址放到地址总线上。然后,它将等待地址 0 处的字节出现在其数据输入上。这将告诉处理器它需要处于的起始状态,因此它可以将下一个地址位置放到地址总线上并等待下一个字节,依此类推。
很快它就会收到完整的命令,以及需要相乘的字节。所有这些字节将有效地“配置”处理器核心以执行需要完成的任务。
将完整的命令与所需的数据字节一起放入寄存器后,它可以继续执行所需的命令,并在循环完成所需的一系列逻辑转换后输出结果。