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

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

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

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

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

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

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

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

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

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

poYBAGLiYC6AJU0aAABTRDMaqgU134.png

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

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

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


審核編輯:劉清

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

    關(guān)注

    68

    文章

    19293

    瀏覽量

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

    關(guān)注

    37

    文章

    6834

    瀏覽量

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

    關(guān)注

    5

    文章

    898

    瀏覽量

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

    關(guān)注

    0

    文章

    91

    瀏覽量

    18307
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

    ARM CoreLink MMU-401系統(tǒng)內(nèi)存管理單元技術(shù)參考手冊(cè)

    MMU-401提供管理程序虛擬化多個(gè)客戶操作系統(tǒng)所需的地址轉(zhuǎn)換。它通過將操作系統(tǒng)(OS)定義的中間物理地址(IPA)轉(zhuǎn)換為系統(tǒng)管理程序定義的物理地址(PA)來實(shí)現(xiàn)這點(diǎn)。如果需要,
    發(fā)表于 08-02 08:02

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

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

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

    MMU-600AE是MMU-600系統(tǒng)級(jí)內(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)為存儲(chǔ)器管理單元(MMU)實(shí)施提供了靈活的實(shí)施框架,具有多個(gè)實(shí)施定義的選項(xiàng)。 該體系結(jié)構(gòu)可用于系統(tǒng)級(jí)的MMU
    發(fā)表于 08-12 06:25

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

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

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

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

    ARM存儲(chǔ)管理單元MMU詳解

    15.5 存儲(chǔ)管理單元MMU 在創(chuàng)建多任務(wù)嵌入式系統(tǒng)時(shí),最好有個(gè)簡(jiǎn)單的方式來編寫、裝載及運(yùn)行各自獨(dú)立的任務(wù)。目前大多數(shù)的嵌入式系統(tǒng)不再使用自己定制的控制系統(tǒng),而使用操作系統(tǒng)來簡(jiǎn)化這個(gè)
    發(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就無法運(yùn)行Linux系統(tǒng)

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

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

    MMU(Memory Management Unit,內(nèi)存管理單元)是種硬件模塊,用于在CPU和內(nèi)存
    的頭像 發(fā)表于 08-03 10:03 ?2419次閱讀
    <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可以通過頁(yè)面表(Page Table)實(shí)現(xiàn)虛擬內(nèi)存管理。頁(yè)面表是種數(shù)據(jù)結(jié)
    發(fā)表于 10-09 11:27 ?1399次閱讀
    什么是<b class='flag-5'>MMU</b>?linux為什么需要<b class='flag-5'>MMU</b>?

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

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