當前位置:吉日网官网 - 傳統美德 - X64的虛擬地址

X64的虛擬地址

盡管虛擬地址有64位的寬度,但當前的實現機制(以及任何已知處在計劃階段的芯片)並不允許整個16EB的虛擬地址空間都被使用。大多數的操作系統和應用程序在可見的未來都用不到如此巨大的地址空間(比如,Windows在AMD64上的實現僅應用了16TB,即44位的寬度),所以實現如此巨大的地址寬度只會增加系統的復雜度和地址轉換的成本,帶不來任何好處。AMD因此決定,在對這壹架構的首次實現中,只有虛擬地址的最低48位才會在地址轉換(頁表查詢)時被使用。但是,任何虛擬地址的48位至63位必須與47位壹致(按照符號位擴展的方式),否則處理器將會報告壹個異常。符合這壹規則的地址被稱作“規範尋址(Canonical Addressing)”。規範地址形式將從0至00007FFF`FFFFFFFF,以及從FFFF8000`00000000至FFFFFFFF`FFFFFFFF總計256TB的地址範圍作為可以使用的虛擬地址空間。

這種“古怪”的規則為日後擴展到真正的64位尋址保留了壹個重要的特性:很多的操作系統(包括但不限於Windows NT系列)將地址空間的高半部分(被稱作內核空間)留給自己,將低半部分(用戶空間)留給應用程序代碼、用戶態棧、堆和其他數據區。這種“傳統地址”的設計保證了每壹個符合AMD64的實現都擁有兩個內存片段:低半段從00000000`00000000開始,隨著更多的虛擬地址比特變得可用而“向上生長”;高半部分被“懸掛”在地址空間的頂部而“向下生長”。同樣,將未被使用的地址比特內容固定下來防止被操作系統用作標誌位、特權級標號等其他用途,是為了避免當架構擴展至52, 56, 60和64位的時候出現問題。

64位尋址模式(長模式),是物理地址擴展(PAE)的超集;因此,內存頁大小可以是4KB,2MB,或1GB。但是,與系統在PAE模式下使用的三級標簽頁表機制不同,長模式下系統使用四級標簽頁表:PAE的頁目錄指針表的表項從4個擴展到了512個,而且附加了壹個第四級頁面映射表(Page-Map Level 4 Table,PML4 Table),包含512個采用48位實現的表項。在提供更大虛擬地址的實現中,這個表既可以進行擴展來提供足夠數量的表項(對於64位實現來說理論值高達33,554,432個)以描述整個地址空間,也可以再被壹個更高層映射級所映射,像是PML5。整個48位地址空間的4KB頁面完整映射層級將會占據略多於512GB的內存(256TB虛擬地址空間的0.196%)。

  • 上一篇:國外各種有名的糕點叫什麽名字?
  • 下一篇:唐山有什麽特產?
  • copyright 2024吉日网官网