RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么要有TLB

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-11-26 15:54 ? 次閱讀

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

圖片

虛擬地址和物理地址的映射關(guān)系存儲在頁表中,而現(xiàn)在頁表又是分級的。

64 位系統(tǒng)一般都是 3~5 級。

常見的配置是 4 級頁表,就以 4 級頁表為例說明。

分別是 PGD、PUD、PMD、PTE 四級頁表。

硬件上會有一個叫做頁表基地址寄存器,它存儲 PGD 頁表的首地址。

圖片

MMU 就是根據(jù)頁表基地址寄存器從 PGD 頁表一路查到 PTE,最終找到物理地址(PTE頁表中存儲物理地址)。

這就像在地圖上顯示你的家在哪一樣,我為了找到你家的地址,先確定你是中國,再確定你是某個省,繼續(xù)往下某個市,最后找到你家是一樣的原理。一級一級找下去。(這個比喻真的不錯)

這個過程你也看到了,非常繁瑣。如果第一次查到你家的具體位置,我如果記下來你的姓名和你家的地址。下次查找時,是不是只需要跟我說你的姓名是什么,我就直接能夠告訴你地址,而不需要一級一級查找。

四級頁表查找過程需要四次內(nèi)存訪問。延時可想而知,非常影響性能。頁表查找過程的示例如下圖所示。以后有機會詳細(xì)展開,這里了解下即可。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120230
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3019

    瀏覽量

    74002
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3312

    瀏覽量

    66200
  • MMU
    MMU
    +關(guān)注

    關(guān)注

    0

    文章

    91

    瀏覽量

    18283
收藏 人收藏

    評論

    相關(guān)推薦

    詳解TLB的作用及工作原理

    TLBTLB是Translation Lookaside Buffer的簡稱,可翻譯為“地址轉(zhuǎn)換后援緩沖器”,也可簡稱為“快表”。簡單地說,TLB就是頁表的Cache,其中存儲了當(dāng)前最可能被訪問
    發(fā)表于 05-12 14:41 ?4704次閱讀
    詳解<b class='flag-5'>TLB</b>的作用及工作原理

    請問TLB框架程序誰有?求壇友共享一個

    每次下載彈出VIPM發(fā)現(xiàn)沒有TLB這個選項
    發(fā)表于 04-03 15:44

    請問AM335 u-boot 中的MMU,gd->arch.tlb_addr是在哪里初始化的?

    本帖最后由 一只耳朵怪 于 2018-6-20 15:46 編輯 在board_init_f 函數(shù)中,只有定義了CONFIG_SYS_DCACHE_OFF,才會對 tlb_addr 初始化
    發(fā)表于 06-20 02:06

    labview2015調(diào)用tlb庫錯誤信息:LabVIEW: 輸入為空引用句柄或之前已刪除的引用句柄。

    一個設(shè)備的控制API給的是*.tlb,使用工具注冊后以ActiveX的方式加載到labview中,運行報錯如下。不知為何報錯?請有經(jīng)驗的大牛們指導(dǎo)一二。謝謝測試程序(2015)+API的tlb庫和注冊工具見附件
    發(fā)表于 07-12 14:25

    FIDEMAILATION中的TLB異常

    我從SMTP.C文件中找到了FIDEMAILATION中的TLB異常。這似乎只有當(dāng)我在優(yōu)化級別1并運行沒有斷點的例程時才發(fā)生。如果我跨過它,一切似乎都起作用了。我在和諧1.04,XC 1.34
    發(fā)表于 09-18 13:22

    以Freescale的E500內(nèi)核為例簡單介紹TLB Entry基本組成結(jié)構(gòu)

    稱之為頁表(Page Table)。最容易的想到的是使用主存儲器存放這個映射關(guān)系表,但是沒有程序能夠忍受在使用虛擬地址訪問一段物理空間時,首先需要從主存儲器的頁表中獲得物理地址。使用TLB
    發(fā)表于 09-07 14:38

    看一條關(guān)于TLB維護(hù)的指令

    今天來看一條關(guān)于TLB維護(hù)的指令,無效操作指令TLBI。TLBI指令用于TLB無效操。TLBI指令的編碼格式如下:TLBI的語法格式如下:TLBI <tlbi_op>
    發(fā)表于 02-16 13:59

    P2020 TLB0/TLB1失效的原因?怎么解決?

    P2020初始化時,需要通過MMUCSR0(MMU Control and Status Register 0)使TLB0和TLB1失效,我的問題是TLB0/TLB1失效:如果
    發(fā)表于 03-21 07:57

    嵌入式處理器的TLB電路設(shè)計

    摘要:為了提高基于虛擬存儲技術(shù)的嵌入式處理器的性能,本文提出了一種用于高效加速地址轉(zhuǎn)換的TLB電路結(jié)構(gòu)該電路采用64-entries的全關(guān)聯(lián)結(jié)構(gòu),硬件支持基于段及不同大小頁的轉(zhuǎn)
    發(fā)表于 05-12 10:01 ?18次下載

    搞嵌入式,為啥要有uboot?

    搞嵌入式的,為啥要有uboot?
    的頭像 發(fā)表于 02-05 12:00 ?2958次閱讀

    CPU場景下的TLB相關(guān)細(xì)節(jié)

    一、前言 進(jìn)程切換是一個復(fù)雜的過程,本文不準(zhǔn)備詳細(xì)描述整個進(jìn)程切換的方方面面,而是關(guān)注進(jìn)程切換中一個小小的知識點:TLB的處理。為了能夠講清楚這個問題,我們在第二章描述在單CPU場景下一些和TLB
    的頭像 發(fā)表于 12-26 09:42 ?3920次閱讀
    CPU場景下的<b class='flag-5'>TLB</b>相關(guān)細(xì)節(jié)

    TLB是什么?有何作用

    TLB就是Translation Lookaside Buffer ,很多文章翻譯成“旁路轉(zhuǎn)換緩沖”
    的頭像 發(fā)表于 07-28 18:02 ?1.5w次閱讀
    <b class='flag-5'>TLB</b>是什么?有何作用

    Versal ACAP、APU - DSB 指令后可能會發(fā)生推測性 TLB 填充

    和 ISB 的組合可防止隨后的猜測。但是,對于在 DSB SYS + ISB 之后執(zhí)行頁面轉(zhuǎn)換的單次加載、存儲或其他內(nèi)存操作,可推測在 DSB SYS + ISB 完成之前的初始查找中是否發(fā)生了 TLB 錯誤,并填充新的 TLB 條目。
    發(fā)表于 08-05 17:27 ?377次閱讀

    要有

    要有
    發(fā)表于 11-07 08:07 ?0次下載
    <b class='flag-5'>要有</b>光

    TLB成功開發(fā)出CXL內(nèi)存模塊PCB,并向三星和SK海力士提供首批樣品

    近日,韓國上市PCB制造商TLB (KOSDAQ:356860)成功開發(fā)出CXL內(nèi)存模塊PCB,并已獨家向三星電子和SK海力士提供了6款以上的首批樣品。
    的頭像 發(fā)表于 05-30 11:30 ?806次閱讀
    RM新时代网站-首页