TLB就是Translation Lookaside Buffer ,很多文章翻譯成“旁路轉換緩沖”
老實說,不知所云,不如不去翻譯,就當個專有名詞,理解它的含義就好了。
Translation Lookaside Buffer (TLB) 是 MMU 中的cache,其緩存的內容就是頁表項(某個VA-PA的映射關系)。
在內存需要進行VA-PA轉換時,MMU首先會在TLB中檢查是否有頁表項被緩存。如果TLB hit,那么TLB就能立即完成VA-PA的轉換。如果TLB miss,即TLB中沒有該VA對應的VA-PA映射關系,所以就需要到外部主存獲取這個VA-PA轉換關系,并將這個轉換關系緩存到TLB中以加速下一次VA-PA轉換。
micro-TLB
類似于L1 cache和L2 cache的層次結構,一般還有micro-TLB和TLB。如果頁表訪問在micro-TLB中hit,那么就不需要訪問外面的內存。但是,micro-TLB能夠緩存的頁表映射有限,所以其后級往往有一個更大的main TLB。
TLB與其他cache類似,只不過其他cache緩存的是指令或者數據,而TLB緩存的是VA-PA映射關系,當TLB hit即可完成VA-PA轉換。
軟件異常
一般TLB只會緩存有效的VA-PA映射關系,如果這個映射關系是無效的,就需要上報異常讓軟件處理。
TLB一致性 & invalid
TLB一致性,同樣類似于cache的一致性。
當操作系統更改頁表時,TLB中就可能包含舊的無效映射關系。操作系統必須采取措施invalid TLB中的緩存的頁表項。
不同的結構實現可能會專門地去invalid特性的cacheline,比如特定ASID或者特定VA。
審核編輯:劉清
-
操作系統
+關注
關注
37文章
6889瀏覽量
123699 -
MMU
+關注
關注
0文章
91瀏覽量
18350
發布評論請先 登錄
相關推薦
評論