TLB 是 translation lookaside buffer 的簡(jiǎn)稱。首先,我們知道 MMU 的作用是把虛擬地址轉(zhuǎn)換成物理地址。

虛擬地址和物理地址的映射關(guān)系存儲(chǔ)在頁(yè)表中,而現(xiàn)在頁(yè)表又是分級(jí)的。
64 位系統(tǒng)一般都是 3~5 級(jí)。
常見(jiàn)的配置是 4 級(jí)頁(yè)表,就以 4 級(jí)頁(yè)表為例說(shuō)明。
分別是 PGD、PUD、PMD、PTE 四級(jí)頁(yè)表。
在硬件上會(huì)有一個(gè)叫做頁(yè)表基地址寄存器,它存儲(chǔ) PGD 頁(yè)表的首地址。

MMU 就是根據(jù)頁(yè)表基地址寄存器從 PGD 頁(yè)表一路查到 PTE,最終找到物理地址(PTE頁(yè)表中存儲(chǔ)物理地址)。
這就像在地圖上顯示你的家在哪一樣,我為了找到你家的地址,先確定你是中國(guó),再確定你是某個(gè)省,繼續(xù)往下某個(gè)市,最后找到你家是一樣的原理。一級(jí)一級(jí)找下去。(這個(gè)比喻真的不錯(cuò))
這個(gè)過(guò)程你也看到了,非常繁瑣。如果第一次查到你家的具體位置,我如果記下來(lái)你的姓名和你家的地址。下次查找時(shí),是不是只需要跟我說(shuō)你的姓名是什么,我就直接能夠告訴你地址,而不需要一級(jí)一級(jí)查找。
四級(jí)頁(yè)表查找過(guò)程需要四次內(nèi)存訪問(wèn)。延時(shí)可想而知,非常影響性能。頁(yè)表查找過(guò)程的示例如下圖所示。以后有機(jī)會(huì)詳細(xì)展開(kāi),這里了解下即可。

-
寄存器
+關(guān)注
關(guān)注
31文章
5611瀏覽量
130076 -
內(nèi)存
+關(guān)注
關(guān)注
9文章
3214瀏覽量
76399 -
硬件
+關(guān)注
關(guān)注
12文章
3597瀏覽量
69044 -
MMU
+關(guān)注
關(guān)注
0文章
92瀏覽量
19242
發(fā)布評(píng)論請(qǐng)先 登錄
詳解TLB的作用及工作原理
請(qǐng)問(wèn)jh7110的MMU TLB是否緩存無(wú)效PTE?是否支持ASID?
請(qǐng)問(wèn)TLB框架程序誰(shuí)有?求壇友共享一個(gè)
請(qǐng)問(wèn)AM335 u-boot 中的MMU,gd->arch.tlb_addr是在哪里初始化的?
labview2015調(diào)用tlb庫(kù)錯(cuò)誤信息:LabVIEW: 輸入為空引用句柄或之前已刪除的引用句柄。
FIDEMAILATION中的TLB異常
以Freescale的E500內(nèi)核為例簡(jiǎn)單介紹TLB Entry基本組成結(jié)構(gòu)
看一條關(guān)于TLB維護(hù)的指令
P2020 TLB0/TLB1失效的原因?怎么解決?
嵌入式處理器的TLB電路設(shè)計(jì)
CPU場(chǎng)景下的TLB相關(guān)細(xì)節(jié)
為什么要有TLB
評(píng)論