为什么x86-64系统只有48位虚拟地址空间? [英] Why do x86-64 systems have only a 48 bit virtual address space?

查看:435
本文介绍了为什么x86-64系统只有48位虚拟地址空间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在一本书中,我读到以下内容:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆