奔騰尋呼

在開發 Pentium 時,記憶體大小以及執行它們的程式越來越大。作業系統必須做更多的工作來維護分頁子系統,只需要在使用大型程式或資料集時需要更新的頁面索引數量。

因此,Pentium 設計人員新增了一個簡單的技巧:他們在頁面目錄的條目中新增了一個額外的位,指示下一級是否是頁面表(如前所述) - 或直接轉到 4 MB 頁面! 通過具有 4 MB 頁面的概念,作業系統不必建立頁面表並填充 1,024 個條目,這些條目基本上將地址索引 4K 比前一個更高。

地址佈局

+-----------+----------------------+
| Dir Index | 4MB Byte Index       |
+-----------+----------------------+
 3         2 2                    0   Bit
 1         2 1                    0   number

目錄條目佈局

+-----------+----+---+------+-----+---+---+
| Page Addr | OS | S | Used | Sup | W | P |
+-----------+----+---+------+-----+---+---+
Page Addr = Top 20 bits of Page Table or Page address
OS        = Available for OS use
S         = Size of Next Level: 0 = Page Table, 1 = 4 MB Page
Used      = Whether this page has been accessed or written to
Sup       = Whether this page is Supervisory - onlly accessible by the OS
W         = Whether this page is allowed to be Written
P         = Whether this page is even Present

當然,這有一些後果:

  • 4 MB 頁面必須從 4 MB 地址邊界開始,就像 4K 頁面必須從 4K 地址邊界開始一樣。
  • 所有 4 MB 必須屬於一個程式 - 或由多個程式共享。

這非常適合用於大記憶體外圍裝置,例如圖形介面卡,它具有需要對映以供作業系統使用的大型地址空間視窗。