位 CPU、架构和操作系统

Tim*_*Tim 2 cpu operating-systems terminology computer-architecture

  1. 我想知道 OS、指令集、CPU 寄存器、从 CPU 到内存的数据总线以及从 CPU 到内存的地址总线的位是否必须在某种意义上保持一致,以及如何一致?
  2. 当我们对架构进行一些处理时,它指的是上述哪一项?
  3. 当我们说 CPU 的位时,它指的是上述哪一项?
  4. 为什么在http://en.wikipedia.org/wiki/Comparison_of_CPU_architectures的表中 ,寄存器的位有时比架构的位大,有时小?他们不是应该更大吗?
  5. 当我们说操作系统或应用程序的一部分时,它是什么意思?是什么意思?它们必须与指令集的位相同吗?

感谢致敬!

Mok*_*bai 5

  1. 任何特定阶段(寄存器、数据总线、地址总线甚至指令)的位宽不必与任何其他阶段的位宽相匹配。无论在该 CPU 上运行的操作系统是什么,都必须了解每个阶段的限制并加以考虑。

  2. 通常,当我们说 32 位或 64 位时,我们指的是 CPU 可用的地址线数量,这通常与地址寄存器位宽同义,因为这是最大的限制因素。可以通过多次传输使用少量数据线传输数据,但内存地址就不能这样说了。每个地址都必须通过地址线物理选择,并且必须至少有足够的地址线作为地址位。

  3. 与数字 2 相同。

  4. 寄存器(尤其是特殊数据寄存器,如 SSE)可以处理比数据总线的一般位宽更多的数据,虽然有一些指令声明“从内存位置 X 获取这个字节并存储在寄存器 y 中”,但也有指令能够声明“从内存位置 x 和 x + 1 中获取数据并存储在特殊寄存器 z 中”,这将使用两次内存传输来获取两个数据片段,并且指令只会在寄存器 z 被两个片段都填充后返回数据的。

    通过这种方式,数据寄存器的内部宽度不必与外部数据总线宽度相匹配,因为您可以简单地等待更长的时间以将数据拉入处理器。这仅适用于内存中使用的数据

  5. 同样,我们通常指的是可用的地址位数,因此有多少内存可用。

您可能需要考虑在Z80等简单 CPU 上进行编程,因为它是众所周知且相对简单的 CPU,但会让您深入了解它和当前 CPU 的限制和使用方式。虽然现代 CPU 的复杂程度高出几个数量级,指令更多,但 Z80 将为您提供通用 CPU 工作原理的良好基础。