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

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

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

一文解讀內(nèi)存管理單元 (MMU)

冬至配餃子 ? 來源:芯片驗證工程師 ? 作者:驗證哥布林 ? 2022-07-28 18:09 ? 次閱讀

內(nèi)存管理單元 (MMU) 的一個重要功能是讓不同的任務(wù)能夠獨立地在各自的虛擬內(nèi)存空間里運行,MMU能夠?qū)崿F(xiàn)這個特性的本質(zhì)就是抽象隔離,對不同任務(wù)的虛擬地址空間進行重新映射(map)到實際的物理空間。

這都是由硬件自動實現(xiàn)的,并且大部分時候都是對軟件不可見的。

此外,MMU基于頁粒度控制每個內(nèi)存空間的訪問權(quán)限、內(nèi)存屬性和緩存策略等等。

MMU使不同的任務(wù)不用關(guān)心其實際使用的物理空間,也就是說程序員可以使用相同且連續(xù)的虛擬地址空間,而不會發(fā)生沖突,即使實際使用的物理空間非常零碎。

但是,MMU將虛擬地址空間轉(zhuǎn)化成物理地址空間也并不是完全地對軟件不可見,或者說對程序員不可見,但是對操作系統(tǒng)可見。

poYBAGLiYC6AJU0aAABTRDMaqgU134.png

配置初始化MMU以正確地管理不同并行任務(wù)的地址空間是操作系統(tǒng)的事情。

一般MMU會有一種disable的模式,即不使能MMU,所有虛擬地址都直接映射到相應(yīng)的物理地址,VA=PA。

如果處理器訪問的虛擬地址并沒有被操作系統(tǒng)分配,這個時候MMU會上報中斷異常,以告知操作系統(tǒng)分配相應(yīng)的地址空間映射關(guān)系,從而讓任務(wù)正常地完成?。


審核編輯:劉清

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

    關(guān)注

    68

    文章

    19052

    瀏覽量

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

    關(guān)注

    37

    文章

    6627

    瀏覽量

    123059
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    895

    瀏覽量

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

    關(guān)注

    0

    文章

    91

    瀏覽量

    18240
收藏 人收藏

    評論

    相關(guān)推薦

    為什么沒有MMU就無法運行Linux系統(tǒng)呢?

    MMU(Memory Management Unit,內(nèi)存管理單元)是種硬件模塊,用于在CPU和內(nèi)存
    發(fā)表于 08-03 10:05 ?882次閱讀
    為什么沒有<b class='flag-5'>MMU</b>就無法運行Linux系統(tǒng)呢?

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

    平板式的地址映射機制對其操作,或需要使用虛擬地址對其進行讀寫;系統(tǒng)中,需引入存儲保護機制,增強系統(tǒng)的安全性。為適應(yīng)如此復(fù)雜的存儲體系要求, ARM 處理器中引入了存儲管理單元管理存儲系統(tǒng)。
    發(fā)表于 10-23 15:29

    內(nèi)存管理概述及原理

    記錄下,方便以后翻閱~主要內(nèi)容:1) 內(nèi)存管理概述及原理;2)相關(guān)實驗代碼解讀。官方資料:《STM32中參考手冊_V10》-第19章 靈
    發(fā)表于 02-23 06:15

    Arm CoreLink MMU?700系統(tǒng)內(nèi)存管理單元技術(shù)參考手冊

    MMU?700是個系統(tǒng)級內(nèi)存管理單元(SMMU),用于將輸入地址轉(zhuǎn)換為輸出地址。此轉(zhuǎn)換基于MMU
    發(fā)表于 08-08 07:44

    ARM CORELINK?MMU-600AE系統(tǒng)內(nèi)存管理單元技術(shù)參考手冊

    MMU-600AE是MMU-600系統(tǒng)級內(nèi)存管理單元(SMMU)的功能安全(FUSA)變體,可將輸入地址轉(zhuǎn)換為輸出地址。此轉(zhuǎn)換基于
    發(fā)表于 08-09 06:28

    ARM系統(tǒng)內(nèi)存管理單元架構(gòu)規(guī)范SMMU架構(gòu)2.0版

    ARM系統(tǒng)MMU(SMMU)體系結(jié)構(gòu)為存儲器管理單元(MMU)實施提供了靈活的實施框架,具有多個實施定義的選項。 該體系結(jié)構(gòu)可用于系統(tǒng)級的MMU
    發(fā)表于 08-12 06:25

    ARM 內(nèi)存管理單元MMU詳細圖解資料

    ARM 內(nèi)存管理單元MMU詳細圖解資料 本文描述基于存儲器管理單元的系統(tǒng)結(jié)構(gòu), 包含以下內(nèi)容:
    發(fā)表于 03-03 16:22 ?97次下載

    S3C2410內(nèi)存管理單元MMU基礎(chǔ)實驗

    (11)實驗十一:MMU 在理論上概括或解釋MMU,這不是我能勝任的。我僅基于為了理解本實驗中操作MMU的代碼而對MMU做些說明,現(xiàn)在先簡單地描述虛擬地址(VA)、變換后的虛擬地址(M
    發(fā)表于 01-01 02:29 ?17次下載

    ARM存儲管理單元MMU詳解

    15.5 存儲管理單元MMU 在創(chuàng)建多任務(wù)嵌入式系統(tǒng)時,最好有個簡單的方式來編寫、裝載及運行各自獨立的任務(wù)。目前大多數(shù)的嵌入式系統(tǒng)不再使用自己定制的控制系統(tǒng),而使用操作系統(tǒng)來簡化這個
    發(fā)表于 10-17 16:24 ?4次下載

    ARM920T的MMU與Cache介紹

    CPU通過地址來訪問內(nèi)存中的單元,地址有虛擬地址和物理地址之分,如果CPU沒有MMU(Memory Management Unit,內(nèi)存管理
    發(fā)表于 03-28 11:05 ?14次下載
    ARM920T的<b class='flag-5'>MMU</b>與Cache介紹

    為什么沒有MMU就無法運行Linux系統(tǒng)

    MMU(Memory Management Unit,內(nèi)存管理單元)是種硬件模塊,用于在CPU和內(nèi)存
    的頭像 發(fā)表于 04-23 10:48 ?857次閱讀
    為什么沒有<b class='flag-5'>MMU</b>就無法運行Linux系統(tǒng)

    MMU內(nèi)存管理單元的工作原理和作用

    MMU(Memory Management Unit,內(nèi)存管理單元)是種硬件模塊,用于在CPU和內(nèi)存
    的頭像 發(fā)表于 08-03 10:03 ?2204次閱讀
    <b class='flag-5'>MMU</b><b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b><b class='flag-5'>單元</b>的工作原理和作用

    什么是MMU?linux為什么需要MMU?

    內(nèi)存管理方面,MMU可以通過頁面表(Page Table)實現(xiàn)虛擬內(nèi)存管理。頁面表是種數(shù)據(jù)結(jié)
    發(fā)表于 10-09 11:27 ?1232次閱讀
    什么是<b class='flag-5'>MMU</b>?linux為什么需要<b class='flag-5'>MMU</b>?

    MMU內(nèi)存管理單元的宏觀理解

    (Memory Management Unit,內(nèi)存管理單元)是種硬件模塊,用于在CPU和內(nèi)存之間實現(xiàn)虛擬
    的頭像 發(fā)表于 11-26 15:21 ?500次閱讀
    <b class='flag-5'>MMU</b><b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b><b class='flag-5'>單元</b>的宏觀理解

    內(nèi)存管理單元的重要功能是什么

    微觀理解 內(nèi)存管理單元MMU)的個重要功能是使系統(tǒng)能夠運行多個任務(wù),作為獨立的程序運行在他們自己的 私有虛擬
    的頭像 發(fā)表于 11-26 15:36 ?594次閱讀
    <b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b><b class='flag-5'>單元</b>的重要功能是什么