2012-10-28 53 views

回答

3

CPU在X86_64長模式下使用PAE(物理地址擴展)技術來控制內存。

因此段選擇器是不必要的。

我建議你閱讀這本pdf手冊AMD64 Architecture Programmer’s Manual Volume 2: System Programming

谷歌amd64 volume 2,第一個結果是pdf手冊。

請參閱第5.3章Long-Mode Page Translation,你就會明白。

2

當內存實際按段加載和卸載時,段選擇器很有用,當x86被首次開發時,這是一個選項。然而,現代操作系統全都使用分頁,後者在後來引入到x86中(儘管進行了一些折衷),但它的簡單性最終導致它取代了分段。

32位x86保留分段可用,而16位操作系統轉換到新處理器體系結構,但在64位x86設計期間,某些舊功能(包括分段)被刪除。操作系統教科書中通常描述的另一個功能,但實際上從未使用的功能是不同權限「環」的概念。通常情況下,有4個環(編號爲0-3),但實際上沒有人使用除0(內核)和3(用戶空間)以外的任何內容,因此x86-64刪除了環1和環2。但是,要添加對新管理程序相關的指令,x86-64引入了一個低於0的新環,稱爲-1。

分割使得難以檢測cache aliases的內存,所以支持它也會使x86-64芯片的設計更加複雜。