为什么x86-64长模式不需要分段?

时间:2012-10-28 23:42:59

标签: operating-system

X86_64长模式(64位)不需要segmente选择器。为什么在32位中需要分段而在64位中无用? 谢谢,

2 个答案:

答案 0 :(得分:3)

X86_64长模式下的CPU使用PAE(物理地址扩展)技术来控制内存。

因此不需要段选择器。

我建议您阅读此pdf手册AMD64 Architecture Programmer’s Manual Volume 2: System Programming

Google amd64 volume 2,第一个结果是pdf手册。

请参阅第5.3章Long-Mode Page Translation,您将理解。

答案 1 :(得分:2)

当内存实际按段加载和卸载时,段选择器很有用,这是x86首次开发时的选项。然而,现代操作系统都使用分页,稍后引入x86(尽管有一些权衡),它的简单性最终导致它取代分段。

32位x86保持分段可用,而16位操作系统转换到新的处理器架构,但在64位x86的设计过程中,删除了一些传统功能(包括分段)。 OS教科书中经常描述但在实践中从未使用的另一个特征是不同权限“环”的概念。经典地,有4个环(编号为0-3),但实际上没有人使用除0(内核)和3(用户空间)之外的任何东西,因此x86-64删除了环1和2.但是,添加对新管理程序的支持相关指令,x86-64引入了一个低于0的新环,称为-1。

分段使得检测cache aliases内存变得更加困难,因此支持它也会使x86-64芯片的设计变得更加复杂。