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

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

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

MMU多級頁表映射過程

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

物理頁面大小一級地址總線寬度不同,頁表的級數(shù)也不同。以AArch64運(yùn)行狀態(tài),4KB大小物理頁面,48位地址寬度為例,頁表映射的查詢過程如圖:

圖片

對于多任務(wù)操作系統(tǒng),每個用戶進(jìn)程都擁有獨(dú)立的進(jìn)程地址空間,也有相應(yīng)的頁表負(fù)責(zé)虛擬地址到物理地址之間的轉(zhuǎn)換。MMU查詢的過程中,用戶進(jìn)程的一級頁表的基址存放在TTBR0。操作系統(tǒng)的內(nèi)核空間公用一塊地址空間,MMU查詢的過程中,內(nèi)核空間的一級頁表基址存放在TTBR1。當(dāng)TLB未命中時,處理器查詢頁表的過程如下:

? 處理器根據(jù)虛擬地址第63位,來選擇使用TTBR0或者TTBR1。當(dāng)VA[63]為0時,選擇TTBR0,TTBR中存放著L0頁表的基址。

? 處理器以VA[47:39]作為L0的索引,在L0頁表中查找頁表項(xiàng),L0頁表有512個頁表項(xiàng)。

?L0頁表的頁表項(xiàng)中存放著L1頁表的物理基址。處理器以VA[38:30]作為L1索引,在L1頁表中找到相應(yīng)的頁表項(xiàng),L1頁表中有512個頁表項(xiàng)。

?L1頁表的頁表項(xiàng)中存放著L2頁表的物理基址。處理器以VA[29:21]作為L2索引,在L2頁表中找到相應(yīng)的頁表項(xiàng),L2頁表中有512個頁表項(xiàng)。

?L2頁表的頁表項(xiàng)中存放著L3頁表的物理基址。處理器以VA[20:12]作為L1索引,在L3頁表中找到相應(yīng)的頁表項(xiàng),L3頁表中有512個頁表項(xiàng)。

?L3頁表的頁表項(xiàng)里,存放著4KB頁面的物理基址,然后加上VA[11:0],這樣就構(gòu)成了物理地址,至此處理器完成了一次虛擬地址到物理地址的查詢與翻譯的工作。

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

    關(guān)注

    68

    文章

    19586

    瀏覽量

    232140
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6968

    瀏覽量

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

    關(guān)注

    0

    文章

    92

    瀏覽量

    18489
收藏 0人收藏

    評論

    相關(guān)推薦

    關(guān)于MMU的一級為什么必須是16K對齊

    哪位仁兄知道:MMU的一級為什么必須是16K對齊,最好有計(jì)算公式~~~謝謝!?。?/div>
    發(fā)表于 02-14 23:46

    關(guān)于MMU的問題

    剛開始學(xué),好多東西都云里霧里的TT為什么在bootloader里要進(jìn)行初始化然后開啟MMU,然后在進(jìn)入內(nèi)核后還要創(chuàng)建開啟
    發(fā)表于 05-06 17:25

    ARM MMU 理解(基于ARM 920T)

    被用戶應(yīng)用程序所訪問的。通過MMU可以控制地址空間的訪問權(quán)限,從而保護(hù)這些代碼不被破壞。MMU的實(shí)現(xiàn)過程,實(shí)際上就是一個查表映射過程。建立
    發(fā)表于 08-29 11:10

    MMU映射的地址訪問會怎么處理?

    `訪問一個MMU表里沒有填寫映射描述符的虛擬地址,會發(fā)生什么?百度沒有找到明確的解答,求前輩指導(dǎo)。`
    發(fā)表于 06-25 09:40

    MMU的產(chǎn)生及MMU工作過程詳解

    號為2,框2的物理地址范圍是8192~12287,故MMU將虛擬地址1026映射為物理地址9218(框首地址+偏移量=8192+1026=9218)。以上就是
    發(fā)表于 07-03 08:19

    ARM11 S3C6410的地址

    映射方式為段映射,且映射粒度為16M時,映射圖如下: 虛擬地址到物理地址的映射過程如下: 虛擬地址的[31:24]位存放一級
    發(fā)表于 08-17 00:53

    裸機(jī)加強(qiáng)版MMU章節(jié)創(chuàng)建,地址映射相同

    ARM裸機(jī)1期加強(qiáng)版 024_mmu_cache_021\002_mmu_021_004\mmu.c 文件/* 2.3 for 64M sdram */創(chuàng)建
    發(fā)表于 04-18 07:45

    為什么我把MMU裸機(jī)程序修改成兩級后程序編譯時提示找不到‘memset’函數(shù)?

    在看完MMU例程之后,我在原來程序的基礎(chǔ)上把一級改成了兩級,用一個粗和一個小
    發(fā)表于 08-07 22:20

    映射過程映射到FPGA上的LUT時利用率都會達(dá)到0%是為什么?

    嗨,大家好,我遇到了Xilinx ISE映射過程的棘手問題。當(dāng)我綜合我的設(shè)計(jì)時,我得到了一些FPGA資源的利用。雖然在映射過程映射到FPGA上的LUT時,所有利用率都會達(dá)到0%。他很可能是由于
    發(fā)表于 06-13 09:57

    ARM的內(nèi)存管理(MMU)是如何實(shí)現(xiàn)的?

    是不希望被用戶應(yīng)用程序所訪問的。通過 MMU 可以控制地址空間的訪問權(quán)限,從而保護(hù)這些代碼不被破壞。二 MMU 地址映射的實(shí)現(xiàn)MMU 的實(shí)現(xiàn)過程
    發(fā)表于 10-23 15:29

    鴻蒙內(nèi)核源碼分析(內(nèi)存映射篇):虛擬地址與物理地址之間是如何映射

    ));//釋放內(nèi)存池}LOS_ArchMmuMap 生成L1,L2表項(xiàng),實(shí)現(xiàn)映射過程mmu的map 就是生成L1,L2表項(xiàng)的
    發(fā)表于 11-19 10:52

    詳解ARMv8-A系列CPU的MMU隱射查找過程

    狀態(tài),MMU的選取又能分為幾種方式。本文首先分析異常級別、執(zhí)行狀態(tài)、MMU選取三者之間的
    發(fā)表于 08-09 17:18

    MMU表工作機(jī)制的簡單評析

    對于一個有MMU的CPU而言,MMU開啟后,CPU是這樣尋址的:CPU任何時候,一切時候,發(fā)出的地址都是虛擬地址,這個虛擬地址發(fā)給MMU后,MMU通過
    的頭像 發(fā)表于 02-02 14:08 ?1.1w次閱讀
    對<b class='flag-5'>MMU</b>和<b class='flag-5'>頁</b>表工作機(jī)制的簡單評析

    MMU如何知道在內(nèi)存中的具體地址

    Translation and Protection) 基址寄存器存儲了第一級的基地址,通過訪問該寄存器,就能知道
    的頭像 發(fā)表于 10-08 11:52 ?1544次閱讀
    <b class='flag-5'>MMU</b>如何知道<b class='flag-5'>頁</b><b class='flag-5'>表</b>在內(nèi)存中的具體地址

    MMU中的命中、缺頁介紹

    命中、缺頁 (1)命中 ? a) 處理器要對虛擬地址VA進(jìn)行訪問。 ? b) MMU的TLB沒有命中,通過TWU遍歷主存中的PTEA
    的頭像 發(fā)表于 11-26 16:19 ?1313次閱讀
    <b class='flag-5'>MMU</b>中的<b class='flag-5'>頁</b>命中、缺頁介紹

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品