在一本书中,我读到了以下内容:
32位处理器有2^32个可能的地址,而当前的64位处理器有48位地址空间
我的预期是,如果它是64位处理器,地址空间也应该是2^64。
所以我想知道这个限制的原因是什么?
发布于 2011-07-16 19:16:43
因为这就是我们所需要的。48位提供256兆兆字节的地址空间。太多了。你不会很快看到一个比这更需要的系统。
所以CPU制造商走了一条捷径。它们使用的指令集允许完整的64位地址空间,但当前的CPU只使用低48位。另一种选择是浪费晶体管来处理更大的地址空间,而这在很多年内都是不需要的。
因此,一旦我们接近48位的限制,就只需要释放处理全部地址空间的CPU,但它不需要对指令集进行任何更改,也不会破坏兼容性。
发布于 2011-07-16 20:34:20
任何涉及总线大小和物理内存的答案都是错误的,因为OP的问题是关于虚拟地址空间的,而不是物理地址空间的。例如,假设对一些386的限制是对它们可以使用的物理内存的限制,而不是对虚拟地址空间的限制,虚拟地址空间始终是完整的32位。原则上,即使只有几MB的物理内存,您也可以使用完整的64位虚拟地址空间;当然,您可以通过交换来做到这一点,或者用于需要在大多数地址映射同一页的特定任务(例如,某些稀疏数据操作)。
我认为真正的答案是AMD只是便宜,希望现在没有人会关心,但我没有引用的参考资料。
发布于 2011-07-16 19:16:30
阅读wikipedia article的限制部分
AMD不能包含4PB的内存(由于当前内存芯片的大小,如果没有其他因素),但
设想了大型服务器,共享内存集群,以及在可预见的未来可能接近这一目标的物理地址空间的其他用途,52位物理地址提供了足够的扩展空间,同时不会产生实现64位物理地址的成本
也就是说,在这一点上实现完整的64位寻址是没有意义的,因为我们不能构建一个可以完全利用这样的地址空间的系统-所以我们选择了对今天(和将来)的系统实用的东西。
https://stackoverflow.com/questions/6716946
复制相似问题