古詩詞大全網 - 古詩大全 - MMU和TLB

MMU和TLB

1. MMU是硬件。

2. TLB:Translate lookside buffer, 是MMU的壹部分,也是硬件。

3. TLB 裏面存放的是頁表的緩存。頁表本來是放在內存裏的。但是對於常用的或剛剛用到的頁,會被放進TLB暫存, 這樣MMU拿到虛擬地址,可以直接在TLB裏匹配到物理地址,不用去訪問內存裏的頁表,速度快。

4. 其實TLB也就是壹些寄存器,比如32個等,每個TLB寄存器裏面存放壹個內存頁面信息(page),包含: 有效位,虛頁面號,修改位,保護碼,和頁面所在的物理頁面號。 它們和頁面表中的表項壹壹對應。

5.?當壹個虛地址被送到MMU翻譯時,硬件首先把它和TLB中的所有條目同時(並行地)進行比較,如果它的虛頁號在TLB中,並且訪問沒有違反保護位,它的頁面會直接從TLB中取出而不去訪問頁表,如虛頁面號在TLB但當前指令試圖寫壹個只讀的頁面,這時將產生壹個缺頁異常,與直接訪問頁表時相同。如MMU發現在TLB中沒有命中,它將隨即進行壹次常規的頁表查找,然後從TLB中淘汰壹個條目並把它替換為剛剛找到的頁表項。因此如果這個頁面很快再被用到的話,第二次訪問時它就能在TLB中直接找到。在壹個TLB 條目被淘汰時,被修改的位被復制回在內存中的頁表項,其它的值則已經在那裏了。當TLB從頁表裝入時,所有的域都從內存中取得。必須明確在分頁機制中,TLB中的數據和頁表中的數據的相關性,不是由處理器進行維護,而是必須由操作系統來維護,高速緩存的刷新是通過裝入處理器(80386)中的寄存器CR3來完成的。(見刷新機制flush_tlb())這裏要還提到命中率,即壹個頁面在TLB中找到的概率。壹般來說TLB的尺寸大可增加命中率,但會增加成本和軟件的管理。所以壹般都采用8--64個條目的數量。假如命中率是0.85,訪問內存時間是120納秒,訪TLB時間是15納秒。那麽訪問時間是:0.85*(15)+(1-0.85)*(15+120)=136.35納秒。