为什么 32 位限制为 4 GB RAM 但它可以轻松支持 1 TB HDD?
二进制数学如何运作?
答案1
问题在于寻址:RAM 寻址是基于每个字节进行的,因此 2^32 允许使 4G 字节可寻址。
硬盘寻址是按扇区进行的。每个扇区长度为 512 字节。因此,单个 32 位值可以寻址 2 TB 磁盘中的一个扇区。
为了允许访问大于 2TB 的磁盘,操作系统使用 64 位扇区地址。
答案2
它与二进制数学无关。它与使用有限数量的位可以创建的地址空间大小有关。位在其各自的寻址能力方面是指数级的。从 32 位跳到 64 位并不会为您提供比以前多一倍的地址空间,而是为您提供更多。例如:
128 64 32 16 8 4 2 1
这就是 8 位或一个字节的样子。每位都是有序的,并且具有指示的值。因此,使用 8 位,您可以创建一个介于 0 到 255 之间的数字。自己尝试一下,将所有位加在一起,看看会得到什么...
1 + 2 + 4 + 8 ... and so on = 255
简单地说...
2^8 where 8 is the number of bits
但是,只需添加一位,就可以将值提升到 511:(255 + 256)= 511
256 128 64 32 16 8 4 2 1
想象一下,每个地址空间只是一个数字,因此使用 8 位,您可以寻址 256 字节内存。也许值 65536 或 64k 看起来很熟悉?那是因为它是可以用 16 位寻址的内存字节数。因此,使用 32 位,您可以寻址 4 GB 内存:
2^32 = 4294967296 or 4GB
现在回答您关于硬盘的问题。硬盘没有需要地址空间的静态物理线路。硬盘是动态的,因为它们有移动部件。在任何给定时间,操作系统都不必对硬盘上的每个字节进行寻址。它可以在需要时在内存中寻址其中的一些字节(因此从磁盘读取到内存),然后在不需要时写回。硬盘控制器有一个驱动程序,允许操作系统与文件系统交互。文件系统有一个索引,它是可寻址的,并使用它来加载扩展索引或知道在磁盘上查找哪里以获取数据。这就是为什么硬盘比内存慢的原因,因为数据访问是一个非常机械的过程。
把您的硬盘想象成一本书。您可以开始阅读每一页以找到您要查找的内容,但这可能需要数周时间。相反,您将查看书末的索引以获取包含相关信息的页码。然后,您将找到这些页面并将信息读入您的短期记忆中,在那里您将处理这些事实。在某个时候,您需要记住其他东西,这时您会忘记刚刚阅读的内容的细节。下次您想再次访问该信息时,您可以翻到索引,再次查找页码并找到书中的页面,在那里您再次将其读入短期记忆中。
希望这可以帮助。