当32位机器可以访问最大4GB RAM时,它如何访问150GB硬盘

qua*_*231 4 memory memory-management

我知道 32 位机器可以访问的内存大小限制为 4GB。由于还需要处理 PCIe、USB、串行、并行、PS/2、音频 I/O、CD 驱动器、软驱、存储卡读卡器等 I/O 端口,结果是小于CPU 本身支持 4GB RAM。我刚才提到的所有事情和其他事情也需要相当多的记忆。

现在让我困惑的是它如何支持几GB的硬盘空间?它如何能够通过这些 SATA/ATA 接口访问甚至高达 1 TB 的外部存储。USB大容量存储设备如外置USB硬盘也是如此,我很惊讶CPU可以访问如此大的存储空间,同时被限制为32位。32位处理器可以支持多大的硬盘没有限制吗?

Szo*_*ske 5

不知道从哪里开始 :-)

这是一个非常非常简单的解释,自 286 以来并不完全正确,但可能会帮助您掌握基本概念:

内存寻址是通过地址总线完成的:32 位地址总线可以表示 2^32 个不同的地址。一次操作中可操作的最小内存量称为“字”大小,它受数据总线宽度的限制。

可寻址内存的最大数量是字长乘以地址数。

在“块 IO”操作中,字大小的等价物是块大小,通常要大得多。这是一种权衡:可以使用相同的地址长度访问更大的数据,但翻转单个位需要覆盖整个块。

更大的区别在于地址不需要像在内存中一样同时出现在“地址总线”上:命令(和响应)以顺序“数据包”的形式传输,就像在网络上一样。因此,地址大小没有硬件强加的限制,尽管我确信协议指定了一个合理的上限。

如您所见,可寻址磁盘大小与 CPU 总线宽度和寄存器大小完全无关。