軟件TLB

當(dāng)發(fā)生 TLB缺失時,MMU硬件只負(fù)責(zé)生成TLB缺失故障,接下來由操作系統(tǒng)負(fù)責(zé)查找缺失的頁,從TLB中移除一個記錄,輸入新的記錄,重啟發(fā)生故障的指令。
注意,在發(fā)生TLB缺失時,操作系統(tǒng)的處理必須在一小撮指令內(nèi)完成,因為TLB缺失發(fā)生的頻率要比頁面缺失發(fā)生的頻率高。

如何提升效率?
硬件方面:設(shè)置更大的TLB
如果TLB的大小適中,比如有64條,則通過軟件來管理TLB所帶來的效率提升是明顯的。因為TLB越大,意味著MMU的結(jié)構(gòu)越簡單,可以騰出更多的空間來放置緩存,從而提升效率。
軟件層面:
方法一:操作系統(tǒng)使用直覺來預(yù)判下一個將要被引用的頁,并提前將其放入TLB
方法二:在固定位置添加一個TLB條目的緩存

當(dāng)使用軟件來管理TLB時,需要理解幾個概念

  1. 軟缺失:虛擬頁不在TLB中,但是在內(nèi)存中
    執(zhí)行操作就是更新TLB,不需要硬盤I/O
    修復(fù)軟缺失需要執(zhí)行10-20個指令,可以在10-20ns內(nèi)完成;
  2. 硬缺失
    指令引用的虛擬地址頁既不在內(nèi)存頁中,也不在TLB中
    執(zhí)行的操作是一次硬盤訪問操作+遍歷頁表
    硬缺失比軟缺失要慢100萬倍
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容