日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[保护模式]PAE模式

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [保护模式]PAE模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • PAE模式 2-9-9-12分頁
      • 非PAE模式為什么是10-10-12
      • PAE模式為什么是2-9-9-12
        • 總結
      • PDPTE結構
      • PTE結構
      • PTE結構
      • XD標志位(AMD中稱為NX,即No Excetion)

PAE模式 2-9-9-12分頁

非PAE模式為什么是10-10-12

  • 先確定了頁的大小4K,所以后面12位的功能也就確定了。2的12次方為4096,也就是4KB。12位正好可以索引到每一個物理地址。
  • 當初的物理內存比較小,所以4個字節的PTE就夠了,加上頁的尺寸是4K。所以一個頁能存儲1024個PTE,也就是2的10次方,第二個10也就確定了。2的10次方為1024,所以PTI確定為10
  • 剩下的10位PDI,10+10+12剛好32位
  • PAE模式為什么是2-9-9-12

    在非PAE模式下,由于物理地址長度為32位。所以內存范圍在0-0xFFFFFFFF之間,也就是2的32次方,也就是4GB。

    CPU的尋址范圍取決于物理地址的長度。CPU要想尋址到4GB以外的內存空間。就必須增大物理地址的長度。

    例如下面的地址:

    10-10-12:0x12345678 PDE:FFFFF123(32) PTE:FFFFF123(32) 物理地址:FFFFF678(32) 物理頁起始地址:FFFFF000(32)

    32位的物理地址可以尋址到4GB,那么如果增大物理地址長度到36位,就可以尋址到64GB。事實上非PAE模式下的2-9-9-12的物理地址長度就是36位。

    CPU->0-FFFFFFFFF(36) 2-9-9-12(36)

    那么問題來了,當物理地址擴大到36位的時候,32位的PTE自然也要發生變化。例如下面的這個地址

    FFBFF123(32)

    后面12位0x123肯定是不能動的,這三位是屬性。前面20位是物理地址。那么就只有把前面20位拉長來突破4GB。將地址變成下面的36位地址

    FFBFFF123(36)

    這樣的話,PTE就由原先的32位拉長到36位,能尋址到64GB的空間。

    但是一旦拉長,就不是4字節對齊了;沒有做到字節對齊就會影響程序的執行效率。CPU的做法是犧牲空間換時間,將原來的4字節的PTE變成8字節。

    原先能保存1024個PTE成員的PTT表,現在只能保存512個PTE了。想要索引到512個成員需要9個二進制位。2的9次方等于512。這個就是2-9-9-12分頁的第三個9的來源

    以此類推,PDE也由4個字節變成了8個字節。數據項也由1024變成了512。PDE需要增大到8字節的原因在于如果還是保持原來的4字節,就無法索引到4GB以外的PTE了。所以PDE需要跟隨PTE增大了8個字節

    2的來源:在PDT和PTT的基礎上多了一張頁目錄指針表PDPTE(Page-Directory-Point-Table-Entry),每項占8個字節。表里面一共4個成員。(因為一共只有兩位,2的2次方等于4)如圖:

    總結

    2-9-9-12的來源

    • 12:物理頁的大小為4KB,4096字節。想要索引到每一個字節需要12個二進制位。因為2的12次方等于4096。所以是12
    • 9:由于PTE增加到36位,原先能保存1024個PTE成員的PTT表,現在只能保存512個PTE了。想要索引到512個成員需要9個二進制位。2的9次方等于512。
    • 9:PDE跟隨PTE由原來的4個字節變成了8個字節。數據項也由1024變成了512。
    • 2:PDPTE的成員有4個,正好用兩個二進制位索引。

    PDPTE結構

    • PDPTE共有4項
    • 灰色部分為保留項
    • 35-12存儲的是頁目錄表的基址,低12位補0,共36位,即頁目錄基址

    PTE結構

    • 當PS=1時是大頁,35-21位是大頁的物理地址,這樣36位的物理地址的低21位為0,這就意味著頁的大小為,且都是對齊
    • 當PS=0時,35-12位是頁表基址,低12位補0,共36位

    PTE結構

    • PTE中35-12是物理頁基址,24位,低12位補0
    • 物理頁基址+12位的頁內偏移指向具體數據

    XD標志位(AMD中稱為NX,即No Excetion)

    段的屬性有可讀可寫可執行,頁的屬性有可讀 可寫。為了填補上沒有可執行位的這個坑,Initel就做了硬件保護,做了一個不可執行位。XD=1時,表示不可執行。在PAE分頁模式下,PDE與PTE的最高位為XD/NX位。

    讀 可寫。為了填補上沒有可執行位的這個坑,Initel就做了硬件保護,做了一個不可執行位。XD=1時,表示不可執行。在PAE分頁模式下,PDE與PTE的最高位為XD/NX位。

    總結

    以上是生活随笔為你收集整理的[保护模式]PAE模式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。