为什么x86-64系统只有48位虚拟地址空间? [英] Why do x86-64 systems have only a 48 bit virtual address space?
问题描述
在一本书中,我读到以下内容:
In a book I read the following:
32位处理器有2 ^ 32个可能的地址,而当前的64位处理器我有一个48位地址空间
32-bit processors have 2^32 possible addresses, while current 64-bit processors have a 48-bit address space
我的期望是,如果它是64位处理器,则地址空间也应该是2 ^ 64。
My expectation was that if it's a 64-bit processor, the address space should also be 2^64.
所以我想知道限制的原因是什么?
So I was wondering what is the reason for this limitation?
推荐答案
因为这就是所有需要的东西。 48位为您提供256 TB的地址空间。好多啊。您不会很快看到系统需要的系统。
Because that's all that's needed. 48 bits give you an address space of 256 terabyte. That's a lot. You're not going to see a system which needs more than that any time soon.
因此,CPU制造商采取了捷径。他们使用的指令集允许完整的64位地址空间,但是当前的CPU仅使用低48位。另一种选择是浪费晶体管来处理更大的地址空间,这是多年以来不需要的。
So CPU manufacturers took a shortcut. They use an instruction set which allows a full 64-bit address space, but current CPUs just only use the lower 48 bits. The alternative was wasting transistors on handling a bigger address space which wasn't going to be needed for many years.
因此,一旦我们接近48位限制,那就是只需释放可处理全部地址空间的CPU即可,但这不需要对指令集进行任何更改,也不会破坏兼容性。
So once we get near the 48-bit limit, it's just a matter of releasing CPUs that handle the full address space, but it won't require any changes to the instruction set, and it won't break compatibility.
这篇关于为什么x86-64系统只有48位虚拟地址空间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!