【转】TLB(Translation Lookaside Buffers,TLB)的作用
原文網址:http://sdnydubing.blog.163.com/blog/static/137470570201122810503396/
從虛擬地址到物理地址的轉換過程可知:使用一級頁表進行地址轉換時,每次讀/寫數據需要訪問兩次內存,第一次訪問一級頁表獲得物理地址,第二次才是真正的讀/寫數據;使用兩級頁表時,每次讀/寫數據需要訪問三次內存,訪問兩次頁表(一級頁表和二級頁表)獲得物理地址,第三次才是真正的讀/寫數據。
????????? 上述的地址轉換過程打打降低了CPU的性能,有沒有辦法改進呢?程序執行過程中,所用到的指令、數據的地址往往集中在一個很小的范圍內,其中的地址、數據經常多次使用,這稱為程序訪問的局部性。由此,通過使用一個高速、容量相對較小的存儲器來存儲近期用到的頁表條目(段/大頁/小頁/極小頁描述符),以避免每次地址轉換時都到主存去查找,這樣可以大幅度地提高性能。這個存儲器用來幫助快速地進行地址轉換,稱為“轉譯查找緩存”(TLB)。
?????????? 當CPU發出一個虛擬地址時,MMU首先訪問TLB,如果TLB中含有能轉換這個虛擬地址的描述符,則直接利用此描述符進行地址轉換和權限檢查;否則MMU訪問頁表找到描述符后再進行地址轉換和權限檢查,并將這個描述符填入TLB中(如果TLB已滿,則利用round-robin算法找到一個條目,然后覆蓋它),下次再使用這個虛擬地址時就可以直接使用TLB中的地址描述符了。
??????????? 使用TLB需要保證TLB中的內容與頁表一致,在啟動MMU之前,在頁表中的內容發生變化后,尤其要注意這一點。S3C2440可以使無效(Invalidate)整個TLB,或者通過某個虛擬地址使無效TLB中的某個條目。一般做法是:在啟動MMU之前使無效整個TLB,在改變頁表時,使無效所涉及的虛擬地址對應的TLB中的條目。
轉載于:https://www.cnblogs.com/wi100sh/p/4277346.html
總結
以上是生活随笔為你收集整理的【转】TLB(Translation Lookaside Buffers,TLB)的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NAT(NAPT)地址转换过程
- 下一篇: 初识Notification