RM新时代网站-首页

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

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

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

MMU中的頁(yè)命中、缺頁(yè)介紹

麥辣雞腿堡 ? 來(lái)源:TrustZone ? 作者:Hcoco ? 2023-11-26 16:19 ? 次閱讀

頁(yè)命中、缺頁(yè)

(1)頁(yè)命中

圖片

? a) 處理器要對(duì)虛擬地址VA進(jìn)行訪問(wèn)。

? b) MMU的TLB沒(méi)有命中,通過(guò)TWU遍歷主存頁(yè)表中的PTEA(PTE地址)。

? c) 主存向MMU返回PTE。

? d) MMU通過(guò)PTE映射物理地址,并把它傳給高速緩存或主存。

? e) 高速緩存或主存返回物理地址對(duì)應(yīng)的數(shù)據(jù)給處理器。

(2)缺頁(yè)

圖片

? a) 處理器要對(duì)虛擬地址VA進(jìn)行訪問(wèn)。

? b) MMU的TLB沒(méi)有命中,通過(guò)TWU遍歷主存頁(yè)表中的PTEA(PTE地址)。

? c) 主存向MMU返回PTE。

? d) PTE中有效位是0,MMU觸發(fā)一次異常,CPU相應(yīng)缺頁(yè)異常,運(yùn)行相應(yīng)的處理程序。

? e) 缺頁(yè)異常處理程序選出物理內(nèi)存中的犧牲頁(yè),若這個(gè)頁(yè)面已經(jīng)被修改,將其換出到EMMC。

? f) 缺頁(yè)異常處理程序從EMMC中加載新的頁(yè)面,并更新內(nèi)存中頁(yè)表的PTE。

? g)缺頁(yè)異常處理程序返回到原來(lái)的進(jìn)程,再次執(zhí)行導(dǎo)致缺頁(yè)的指令。CPU將引起缺頁(yè)異常的虛擬地址重新發(fā)給MMU。由于虛擬頁(yè)面現(xiàn)在緩存在主存中,主存會(huì)將所請(qǐng)求的地址對(duì)應(yīng)的內(nèi)容返回給cache和處理器。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)注

    關(guān)注

    68

    文章

    19259

    瀏覽量

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

    關(guān)注

    8

    文章

    3019

    瀏覽量

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

    關(guān)注

    0

    文章

    91

    瀏覽量

    18283
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于MMU的一級(jí)頁(yè)表為什么必須是16K對(duì)齊

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

    關(guān)于頁(yè)表和MMU的問(wèn)題

    剛開(kāi)始學(xué),好多東西都云里霧里的TT為什么在bootloader里要進(jìn)行頁(yè)表初始化然后開(kāi)啟MMU,然后在進(jìn)入內(nèi)核后還要?jiǎng)?chuàng)建頁(yè)表開(kāi)啟MMU?這兩個(gè)有什么不一樣么?s3c2410,bootl
    發(fā)表于 05-06 17:25

    ARM MMU 理解(基于ARM 920T)

    、4KB和1KB大小地址空間的映射。要實(shí)現(xiàn)從虛擬地址到物理地址的映射,必然會(huì)遇到一個(gè)問(wèn)題,如何找到這個(gè)頁(yè)表。對(duì)于表的查找,要知道這個(gè)表的基地址和偏移地址,在具有MMU功能的處理器,集成了一個(gè)被稱(chēng)為CP15
    發(fā)表于 08-29 11:10

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

    的設(shè)置MMU,可以把16個(gè)虛頁(yè)隱射到8個(gè)頁(yè)的任何一個(gè),但是這個(gè)方法并沒(méi)有有效的解決虛擬地址空間比物理地址空間大的問(wèn)題。從上圖中我們可以看到,我們只有8個(gè)頁(yè)框(物理地址),但我們有1
    發(fā)表于 07-03 08:19

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

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

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

    ( translate table )是實(shí)現(xiàn) MMU 功能不可缺少的一步。頁(yè)表是位于系統(tǒng)的內(nèi)存,頁(yè)表的每一項(xiàng)對(duì)應(yīng)于一個(gè)虛擬地址到物理地址的映射。每一項(xiàng)的長(zhǎng)度即是一個(gè)字的長(zhǎng)度(在 AR
    發(fā)表于 10-23 15:29

    如何配置MMU page table walk的訪問(wèn)屬性

    眾所周知,MMU頁(yè)表是由軟件建立在外部?jī)?nèi)存的。實(shí)際上有兩條硬件路徑需要訪問(wèn)這個(gè)頁(yè)表:1 MMU硬件進(jìn)行page table walk時(shí),
    發(fā)表于 10-24 15:45

    對(duì)MMU頁(yè)表工作機(jī)制的簡(jiǎn)單評(píng)析

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

    缺頁(yè)異常是匿名映射缺頁(yè)異常分析

    前面講到過(guò)寫(xiě)時(shí)復(fù)制缺頁(yè)異常(COW),一般用于父子進(jìn)程之間共享頁(yè),而我們會(huì)常見(jiàn)一種缺頁(yè)異常是匿名映射缺頁(yè)異常,今天我們就來(lái)討論下這種缺頁(yè)異常
    的頭像 發(fā)表于 09-09 10:55 ?3028次閱讀
    <b class='flag-5'>缺頁(yè)</b>異常是匿名映射<b class='flag-5'>缺頁(yè)</b>異常分析

    為什么要用MMU?為什么要用虛擬地址?

    既然MMU開(kāi)啟后,硬件會(huì)自動(dòng)的將虛擬地址轉(zhuǎn)換成物理地址,那么還需要我們軟件做什么事情呢?即創(chuàng)建一個(gè)頁(yè)表翻譯都需要做哪些事情呢?或者說(shuō)啟用一個(gè)MMU需要軟件做什么事情呢?
    的頭像 發(fā)表于 04-26 14:37 ?4925次閱讀

    Linux內(nèi)核虛擬內(nèi)存管理mmu_gather操作

    本文講解Linux內(nèi)核虛擬內(nèi)存管理mmu_gather操作,看看它是如何保證刷tlb和釋放物理頁(yè)的順序的,又是如何將更多的頁(yè)面聚集起來(lái)統(tǒng)一釋放的。
    的頭像 發(fā)表于 05-20 14:37 ?1963次閱讀

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

    MMU怎么知道這個(gè)頁(yè)表在內(nèi)存的具體地址呢? 通常CPU會(huì)提供一個(gè)頁(yè)表基址寄存器給操作系統(tǒng)使用,用于給MMU指示
    的頭像 發(fā)表于 10-08 11:52 ?1295次閱讀
    <b class='flag-5'>MMU</b>如何知道<b class='flag-5'>頁(yè)</b>表在內(nèi)存<b class='flag-5'>中</b>的具體地址

    MMU原理:CPU是如何訪問(wèn)到內(nèi)存的?

    當(dāng)CPU訪問(wèn)虛擬地址0的時(shí)候,MMU會(huì)去查上面頁(yè)表的第0行,發(fā)現(xiàn)第0行沒(méi)有命中,于是無(wú)論以何種形式(R讀,W寫(xiě),X執(zhí)行)訪問(wèn),MMU都會(huì)給CPU發(fā)出page fault,CPU自動(dòng)跳到
    發(fā)表于 11-09 12:30 ?1182次閱讀
    <b class='flag-5'>MMU</b>原理:CPU是如何訪問(wèn)到內(nèi)存的?

    MMU包含兩個(gè)模塊是什么

    1-CPU發(fā)出的虛擬地址 CPU發(fā)出的虛擬地址由兩部分組成:VPN和offset,VPN(virtual page number)是頁(yè)的條目number,而offset是指頁(yè)內(nèi)偏移。 最終轉(zhuǎn)換后
    的頭像 發(fā)表于 11-26 15:40 ?653次閱讀
    <b class='flag-5'>MMU</b>包含兩個(gè)模塊是什么

    MMU多級(jí)頁(yè)表映射過(guò)程

    空間,也有相應(yīng)的頁(yè)表負(fù)責(zé)虛擬地址到物理地址之間的轉(zhuǎn)換。MMU查詢(xún)的過(guò)程,用戶(hù)進(jìn)程的一級(jí)頁(yè)表的基址存放在TTBR0。操作系統(tǒng)的內(nèi)核空間公用一塊地址空間,
    的頭像 發(fā)表于 11-26 16:28 ?955次閱讀
    <b class='flag-5'>MMU</b>多級(jí)<b class='flag-5'>頁(yè)</b>表映射過(guò)程
    RM新时代网站-首页