考虑基本处理器的组织结构,如图所示:
对于微操作AR <-M [AR](它读取地址存在于AR寄存器中的存储单元,并将该存储字加载到AR寄存器中),我无法理解如何使用AR注册为源,因为它启用了特定的存储单元,并作为目标,如从存储器中提取字并同时将其加载到AR中。这里的AR是地址寄存器。
答案 0 :(得分:2)
当前的数字计算机正在以电流运行,该电流以大约光速的1/6“移动”,这看似很多,但仍不是“即时”的。
即如果您具有逻辑门AND,该逻辑门需要两条输入线,并且只有一条输出线,如果将输入线设置为0和1,那么输出线不会立即变为0,则在输出之前需要花费很少的时间稳定到结果值。
为使CPU(和整个计算机)以确定性的数字方式工作,同时由类似的逻辑门/电路构建,其基本思想是将所有输入线设置为所需状态(电流将立即开始通过电源传播。输出电路,将它们早晚设置为所需的输出电平),使其稳定,并在特定的特定时间(已知足以稳定所有输出线)之后处理输出信号。这些时间步长由时钟晶体处理,时钟晶体将输入/输出信号稳定时的时间点发送给电路,将连续时间分成离散的步长。一个1kHz的CPU每秒可运行1000个离散步(单个步可能会或可能不会覆盖整个操作,许多早期的CPU确实需要多个步才能完成单条机器代码指令,但所有内容的布局和编排方式都可以在这些离散时间内工作时间步长)。
为简单起见,我们将这些步骤称为“滴答”,让我们假设您的CPU非常简单和基本(我现在无法访问问题中的图像,因此我可能缺少一些重要的细节)
因此AR<-M[AR]
的作用是(由于涉及存储芯片,这使情况变得更加复杂):
AR
寄存器,将其设置为新值,并完成指令,可以处理下一个。因此,正如您所看到的,它不是在“同一时间”,实际上是多个“滴答”,当新值对该指令不再重要时,新值将设置到AR中。
(现代x86之类的CPU具有更复杂的体系结构和逻辑,以使该过程尽可能地并行化,以至此类CPU不仅可以执行平均每条指令1滴答的指令流,甚至可以执行多个单指令中的指令,只要它们使用CPU的不同部分并且之间没有任何依赖关系...但是原则上,如果您将其追溯到单指令,则仍会以某种方式对其进行处理和执行与上面的描述非常相似)