頁目錄項和頁表項
上圖就是頁目錄項和頁表項的格式。可以看出,由於頁表或者頁的物理地址都是4KB對齊的(低12位全是零),所以上圖中只保留了物理基地址的高20位(bit[31:12])。低12位可以安排其他用途。
【P】:存在位。為1表示頁表或者頁位於內存中。否則,表示不在內存中,必須先予以創建或者從磁盤調入內存后方可使用。
【R/W】:讀寫標志。為1表示頁面可以被讀寫,為0表示只讀。當處理器運行在0、1、2特權級時,此位不起作用。頁目錄中的這個位對其所映射的所有頁面起作用。
【U/S】:用戶/超級用戶標志。為1時,允許所有特權級別的程序訪問;為0時,僅允許特權級為0、1、2的程序訪問。頁目錄中的這個位對其所映射的所有頁面起作用。
【PWT】:Page級的Write-Through標志位。為1時使用Write-Through的Cache類型;為0時使用Write-Back的Cache類型。當CR0.CD=1時(Cache被Disable掉),此標志被忽略。對於我們的實驗,此位清零。
【PCD】:Page級的Cache Disable標志位。為1時,物理頁面是不能被Cache的;為0時允許Cache。當CR0.CD=1時,此標志被忽略。對於我們的實驗,此位清零。
【A】:訪問位。該位由處理器固件設置,用來指示此表項所指向的頁是否已被訪問(讀或寫),一旦置位,處理器從不清這個標志位。這個位可以被操作系統用來監視頁的使用頻率。
【D】:臟位。該位由處理器固件設置,用來指示此表項所指向的頁是否寫過數據。
【PS】:Page Size位。為0時,頁的大小是4KB;為1時,頁的大小是4MB(for normal 32-bit addressing )或者2MB(if extended physical addressing is enabled).
【G】:全局位。如果頁是全局的,那么它將在高速緩存中一直保存。當CR4.PGE=1時,可以設置此位為1,指示Page是全局Page,在CR3被更新時,TLB內的全局Page不會被刷新。
【AVL】:被處理器忽略,軟件可以使用。