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),這里了解下即可。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
了TLB,TLB是Translation Lookaside Buffer的簡(jiǎn)稱,可翻譯為“地址轉(zhuǎn)換后援緩沖器”,也可簡(jiǎn)稱為“快表”。簡(jiǎn)單地說(shuō),TLB就是頁(yè)表的Cache,其中存儲(chǔ)了當(dāng)前最可能被訪問(wèn)
發(fā)表于 05-12 14:41
?4745次閱讀
每次下載彈出VIPM發(fā)現(xiàn)沒(méi)有TLB這個(gè)選項(xiàng)
發(fā)表于 04-03 15:44
本帖最后由 一只耳朵怪 于 2018-6-20 15:46 編輯
在board_init_f 函數(shù)中,只有定義了CONFIG_SYS_DCACHE_OFF,才會(huì)對(duì) tlb_addr 初始化
發(fā)表于 06-20 02:06
一個(gè)設(shè)備的控制API給的是*.tlb,使用工具注冊(cè)后以ActiveX的方式加載到labview中,運(yùn)行報(bào)錯(cuò)如下。不知為何報(bào)錯(cuò)?請(qǐng)有經(jīng)驗(yàn)的大牛們指導(dǎo)一二。謝謝測(cè)試程序(2015)+API的tlb庫(kù)和注冊(cè)工具見(jiàn)附件
發(fā)表于 07-12 14:25
我從SMTP.C文件中找到了FIDEMAILATION中的TLB異常。這似乎只有當(dāng)我在優(yōu)化級(jí)別1并運(yùn)行沒(méi)有斷點(diǎn)的例程時(shí)才發(fā)生。如果我跨過(guò)它,一切似乎都起作用了。我在和諧1.04,XC 1.34
發(fā)表于 09-18 13:22
稱之為頁(yè)表(Page Table)。最容易的想到的是使用主存儲(chǔ)器存放這個(gè)映射關(guān)系表,但是沒(méi)有程序能夠忍受在使用虛擬地址訪問(wèn)一段物理空間時(shí),首先需要從主存儲(chǔ)器的頁(yè)表中獲得物理地址。使用TLB
發(fā)表于 09-07 14:38
今天來(lái)看一條關(guān)于TLB維護(hù)的指令,無(wú)效操作指令TLBI。TLBI指令用于TLB無(wú)效操。TLBI指令的編碼格式如下:TLBI的語(yǔ)法格式如下:TLBI <tlbi_op>
發(fā)表于 02-16 13:59
P2020初始化時(shí),需要通過(guò)MMUCSR0(MMU Control and Status Register 0)使TLB0和TLB1失效,我的問(wèn)題是TLB0/TLB1失效:如果
發(fā)表于 03-21 07:57
摘要:為了提高基于虛擬存儲(chǔ)技術(shù)的嵌入式處理器的性能,本文提出了一種用于高效加速地址轉(zhuǎn)換的TLB電路結(jié)構(gòu)該電路采用64-entries的全關(guān)聯(lián)結(jié)構(gòu),硬件支持基于段及不同大小頁(yè)的轉(zhuǎn)
發(fā)表于 05-12 10:01
?18次下載
搞嵌入式的,為啥要有uboot?
發(fā)表于 02-05 12:00
?3014次閱讀
一、前言 進(jìn)程切換是一個(gè)復(fù)雜的過(guò)程,本文不準(zhǔn)備詳細(xì)描述整個(gè)進(jìn)程切換的方方面面,而是關(guān)注進(jìn)程切換中一個(gè)小小的知識(shí)點(diǎn):TLB的處理。為了能夠講清楚這個(gè)問(wèn)題,我們?cè)诘诙旅枋鲈趩蜟PU場(chǎng)景下一些和TLB
發(fā)表于 12-26 09:42
?3961次閱讀
TLB就是Translation Lookaside Buffer ,很多文章翻譯成“旁路轉(zhuǎn)換緩沖”
發(fā)表于 07-28 18:02
?1.5w次閱讀
和 ISB 的組合可防止隨后的猜測(cè)。但是,對(duì)于在 DSB SYS + ISB 之后執(zhí)行頁(yè)面轉(zhuǎn)換的單次加載、存儲(chǔ)或其他內(nèi)存操作,可推測(cè)在 DSB SYS + ISB 完成之前的初始查找中是否發(fā)生了 TLB 錯(cuò)誤,并填充新的 TLB 條目。
發(fā)表于 08-05 17:27
?388次閱讀
要有光
發(fā)表于 11-07 08:07
?0次下載
近日,韓國(guó)上市PCB制造商TLB (KOSDAQ:356860)成功開(kāi)發(fā)出CXL內(nèi)存模塊PCB,并已獨(dú)家向三星電子和SK海力士提供了6款以上的首批樣品。
發(fā)表于 05-30 11:30
?880次閱讀
評(píng)論