chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

MMU的工作原理梳理

璟琰乀 ? 來源:一口Linux ? 作者:一口Linux ? 2020-12-17 16:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文從內(nèi)存管理的發(fā)展歷程角度層層遞進(jìn),介紹 MMU 的誕生背景,工作機(jī)制。而忽略了具體處理器的具體實(shí)現(xiàn)細(xì)節(jié),將 MMU 的工作原理從概念上比較清晰的梳理了一遍。

MMU 誕生之前:在傳統(tǒng)的批處理系統(tǒng)如 DOS 系統(tǒng),應(yīng)用程序與操作系統(tǒng)在內(nèi)存中的布局大致如下圖:

RJNfUr.jpeg

應(yīng)用程序直接訪問物理內(nèi)存,操作系統(tǒng)占用一部分內(nèi)存區(qū)。

操作系統(tǒng)的職責(zé)是“加載”應(yīng)用程序,“運(yùn)行”或“卸載”應(yīng)用程序。

如果我們一直是單任務(wù)處理,則不會有任何問題,也或者應(yīng)用程序所需的內(nèi)存總是非常小,則這種架構(gòu)是不會有任何問題的。然而隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,所需解決的問題越來越復(fù)雜,單任務(wù)批處理已不能滿足需求了。而且應(yīng)用程序需要的內(nèi)存量也越來越大。而且伴隨著多任務(wù)同時(shí)處理的需求,這種技術(shù)架構(gòu)已然不能滿足需求了,早先的多任務(wù)處理系統(tǒng)是怎么運(yùn)作的呢?

程序員將應(yīng)用程序分段加載執(zhí)行,但是分段是一個(gè)苦力活。而且死板枯燥。此時(shí)聰明的計(jì)算機(jī)科學(xué)家想到了好辦法,提出來虛擬內(nèi)存的思想。程序所需的內(nèi)存可以遠(yuǎn)超物理內(nèi)存的大小,將當(dāng)前需要執(zhí)行的留在內(nèi)存中,而不需要執(zhí)行的部分留在磁盤中,這樣同時(shí)就可以滿足多應(yīng)用程序同時(shí)駐留內(nèi)存能并發(fā)執(zhí)行了。

從總體上而言,需要實(shí)現(xiàn)哪些大的策略呢?

所有的應(yīng)用程序能同時(shí)駐留內(nèi)存,并由操作系統(tǒng)調(diào)度并發(fā)執(zhí)行。需要提供機(jī)制管理 I/O 重疊,CPU 資源競爭訪問。

虛實(shí)內(nèi)存映射及交換管理,可以將真實(shí)的物理內(nèi)存,有可變或固定的分區(qū),分頁或者分段與虛擬內(nèi)存建立交換映射關(guān)系,并且有效的管理這種映射,實(shí)現(xiàn)交換管理。

這樣,衍生而來的一些實(shí)現(xiàn)上的更具體的需求:

競爭訪問保護(hù)管理需求:需要嚴(yán)格的訪問保護(hù),動態(tài)管理哪些內(nèi)存頁/段或區(qū),為哪些應(yīng)用程序所用。這屬于資源的競爭訪問管理需求。

高效的翻譯轉(zhuǎn)換管理需求:需要實(shí)現(xiàn)快速高效的映射翻譯轉(zhuǎn)換,否則系統(tǒng)的運(yùn)行效率將會低下。

高效的虛實(shí)內(nèi)存交換需求:需要在實(shí)際的虛擬內(nèi)存與物理內(nèi)存進(jìn)行內(nèi)存頁/段交換過程中快速高效。

總之,在這樣的背景下,MMU 應(yīng)運(yùn)而生,也由此可見,任何一項(xiàng)技術(shù)的發(fā)展壯大,都必然是需求驅(qū)動的。這是技術(shù)本身發(fā)展的客觀規(guī)律。

內(nèi)存管理的好處為編程提供方便統(tǒng)一的內(nèi)存空間抽象,在應(yīng)用開發(fā)而言,好似都完全擁有各自獨(dú)立的用戶內(nèi)存空間的訪問權(quán)限,這樣隱藏了底層實(shí)現(xiàn)細(xì)節(jié),提供了統(tǒng)一可移植用戶抽象。

以最小的開銷換取性能最大化,利用 MMU 管理內(nèi)存肯定不如直接對內(nèi)存進(jìn)行訪問效率高,為什么需要用這樣的機(jī)制進(jìn)行內(nèi)存管理,是因?yàn)椴l(fā)進(jìn)程每個(gè)進(jìn)程都擁有完整且相互獨(dú)立的內(nèi)存空間。那么實(shí)際上內(nèi)存是昂貴的,即使內(nèi)存成本遠(yuǎn)比從前便宜,但是應(yīng)用進(jìn)程對內(nèi)存的尋求仍然無法在實(shí)際硬件中,設(shè)計(jì)足夠大的內(nèi)存實(shí)現(xiàn)直接訪問,即使能滿足,CPU 利用地址總線直接尋址空間也是有限的。

內(nèi)存管理實(shí)現(xiàn)總體策略從操作系統(tǒng)角度來看,虛擬內(nèi)存的基本抽象由操作系統(tǒng)實(shí)現(xiàn)完成:

處理器內(nèi)存空間不必與真實(shí)的所連接的物理內(nèi)存空間一致。

當(dāng)應(yīng)用程序請求訪問內(nèi)存時(shí),操作系統(tǒng)將虛擬內(nèi)存地址翻譯成物理內(nèi)存地址,然后完成訪問。

從應(yīng)用程序角度來看,應(yīng)用程序(往往是進(jìn)程)所使用的地址是虛擬內(nèi)存地址,從概念上就如下示意圖所示,MMU 在操作系統(tǒng)的控制下負(fù)責(zé)將虛擬內(nèi)存實(shí)際翻譯成物理內(nèi)存。

VjmEra.png

從而這樣的機(jī)制,虛擬內(nèi)存使得應(yīng)用程序不用將其全部內(nèi)容都一次性駐留在內(nèi)存中執(zhí)行:

節(jié)省內(nèi)存:很多應(yīng)用程序都不必讓其全部內(nèi)容一次性加載駐留在內(nèi)存中,那么這樣的好處是顯而易見,即使硬件系統(tǒng)配置多大的內(nèi)存,內(nèi)存在系統(tǒng)中仍然是最為珍貴的資源。所以這種技術(shù)節(jié)省內(nèi)存的好處是顯而易見的。

使得應(yīng)用程序以及操作系統(tǒng)更具靈活性。

操作系統(tǒng)根據(jù)應(yīng)用程序的動態(tài)運(yùn)行時(shí)行為靈活的分配內(nèi)存給應(yīng)用程序。

使得應(yīng)用程序可以使用比實(shí)際物理內(nèi)存多或少的內(nèi)存空間。

MMU 以及 TLBMMU(Memory Management Unit)內(nèi)存管理單元:

一種硬件電路單元負(fù)責(zé)將虛擬內(nèi)存地址轉(zhuǎn)換為物理內(nèi)存地址

所有的內(nèi)存訪問都將通過 MMU 進(jìn)行轉(zhuǎn)換,除非沒有使能 MMU。

TLB(Translation Lookaside Bu?er)轉(zhuǎn)譯后備緩沖器: 本質(zhì)上是 MMU 用于虛擬地址到物理地址轉(zhuǎn)換表的緩存

RZRrMn.png

這樣一種架構(gòu),其最終運(yùn)行時(shí)目的,是為主要滿足下面這樣運(yùn)行需求:

EzaiYz.png

多進(jìn)程并發(fā)同時(shí)并發(fā)運(yùn)行在實(shí)際物理內(nèi)存空間中,而 MMU 充當(dāng)了一個(gè)至關(guān)重要的虛擬內(nèi)存到物理內(nèi)存的橋梁作用。

那么,這種框架具體從高層級的概念上是怎么做到的呢?事實(shí)上,是將物理內(nèi)存采用分片管理的策略來實(shí)現(xiàn)的,那么,從實(shí)現(xiàn)的角度將有兩種可選的策略:

固定大小分區(qū)機(jī)制

可變大小分區(qū)機(jī)制

固定大小區(qū)片機(jī)制通過這樣一種概念上的策略,將物理內(nèi)存分成固定等大小的片:

每一個(gè)片提供一個(gè)基地址

實(shí)際尋址,物理地址=某片基址+虛擬地址

片基址由操作系統(tǒng)在進(jìn)程動態(tài)運(yùn)行時(shí)動態(tài)加載

這種策略實(shí)現(xiàn),其優(yōu)勢在于簡易,切換快速。但是該策略也帶來明顯的劣勢:

內(nèi)部碎片:一個(gè)進(jìn)程不使用的分區(qū)中的內(nèi)存對其他進(jìn)程而言無法使用

一種分區(qū)大小并不能滿足所有應(yīng)用進(jìn)程所需。

可變大小分區(qū)機(jī)制內(nèi)存被劃分為可變大小的區(qū)塊進(jìn)行映射交換管理:

需要提供基址以及可變大小邊界,可變大小邊界用于越界保護(hù)。

實(shí)際尋址,物理地址=某片基址+虛擬地址

那么這種策略其優(yōu)勢在于沒有內(nèi)部內(nèi)存碎片,分配剛好夠進(jìn)程所需的大小。但是劣勢在于,在加載和卸載的動態(tài)過程中會產(chǎn)生碎片。

分頁機(jī)制分頁機(jī)制采用在虛擬內(nèi)存空間以及物理內(nèi)存空間都使用固定大小的分區(qū)進(jìn)行映射管理。

從應(yīng)用程序(進(jìn)程)角度看內(nèi)存是連續(xù)的 0-N 的分頁的虛擬地址空間。

物理內(nèi)存角度看,內(nèi)存頁是分散在整個(gè)物理存儲中

這種映射關(guān)系對應(yīng)用程序不可見,隱藏了實(shí)現(xiàn)細(xì)節(jié)。

分頁機(jī)制是如何尋址的呢?這里介紹的設(shè)計(jì)理念,具體的處理器實(shí)現(xiàn)各有細(xì)微差異:

虛擬地址包含了兩個(gè)部分: 虛擬頁序號 VPN(virtual paging number)以及偏移量

虛擬頁序號 VPN是 頁表(Page Table)的索引

頁表(Page Table)維護(hù)了頁框號(Page frame number PFN)

物理地址由 PFN::Offset進(jìn)行解析。

舉個(gè)栗子,如下圖所示:

FZ7VVb.png

還沒有查到具體的物理地址,憋急,再看一下完整解析示例:

fAjqUz.png

如何管理頁表對于 32 位地址空間而言,假定 4K 為分頁大小,則頁表的大小為 100MB,這對于頁表的查詢而言是一個(gè)很大的開銷。那么如何減小這種開銷呢?實(shí)際運(yùn)行過程中發(fā)現(xiàn),事實(shí)上只需要映射實(shí)際使用的很小一部分地址空間。那么在一級頁機(jī)制基礎(chǔ)上,延伸出多級頁表機(jī)制。

以二級分頁機(jī)制為例:

ymEjM3.png

單級頁表已然有不小的開銷,查詢頁表以及取數(shù),而二級分頁機(jī)制,因?yàn)樾枰樵儍纱雾摫?,則將這種開銷再加一倍。那么如何提高效率呢?其實(shí)前面提到一個(gè)概念一直還沒有深入描述 TLB,將翻譯工作由硬件緩存 cache,這就是 TLB 存在的意義。

TLB 將虛擬頁翻譯成 PTE,這個(gè)工作可在單周期指令完成。

TLB 由硬件實(shí)現(xiàn)

完全關(guān)聯(lián)緩存(并行查找所有條目)

緩存索引是虛擬頁碼

緩存內(nèi)容是 PTE

則由 PTE+offset,可直接計(jì)算出物理地址

TLB 加載誰負(fù)責(zé)加載 TLB 呢?這里可供選擇的有兩種策略:

由操作系統(tǒng)加載,操作系統(tǒng)找到對應(yīng)的 PTE,而后加載到 TLB。格式比較靈活。

MMU 硬件負(fù)責(zé),由操作系統(tǒng)維護(hù)頁表,MMU 直接訪問頁表,頁表格式嚴(yán)格依賴硬件設(shè)計(jì)格式。

總結(jié)一下從計(jì)算機(jī)大致發(fā)展歷程來了解內(nèi)存管理的大致發(fā)展策略,如何衍生出 MMU,以及固定分片管理、可變分片管理等不同機(jī)制的差異,最后衍生出單級分頁管理機(jī)制、多級分頁管理機(jī)制、TLB 的作用。從概念上相對比較易懂的角度描述了 MMU 的誕生、機(jī)制,而忽略了處理器的具體實(shí)現(xiàn)細(xì)節(jié)。作為從概念上更深入的理解 MMU 的工作機(jī)理的角度,還是不失為一篇淺顯易懂的文章。責(zé)任編輯:haq

聲明:本文內(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

    文章

    20339

    瀏覽量

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

    關(guān)注

    9

    文章

    3238

    瀏覽量

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

    關(guān)注

    0

    文章

    92

    瀏覽量

    19290
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    UPS電源技術(shù)深度解析:從工作原理到未來趨勢

    指標(biāo)及未來發(fā)展方向,幫助讀者建立對這一“電力衛(wèi)士”的全面認(rèn)知。一、UPS電源的基本工作原理UPS的核心功能是在市電異常時(shí)提供連續(xù)、穩(wěn)定的電力供應(yīng)。其工作模式通常分為三種:
    的頭像 發(fā)表于 04-21 08:28 ?95次閱讀
    UPS電源技術(shù)深度解析:從<b class='flag-5'>工作原理</b>到未來趨勢

    這個(gè)電路干啥用的呢?它的工作原理是怎么樣?

    很多工程師認(rèn)為圈起來的這個(gè)電路不能工作,我剛開始看到這個(gè)電路也是這么認(rèn)為的!這個(gè)圈起來的三極管(PNP)電路到底能不能工作呢,怎么樣的工作原理呢?歡迎工程師們在評論區(qū)暢所欲言。 APA320-160W+160W.
    發(fā)表于 04-15 11:03

    433M無線模塊的工作原理和距離

    一、工作原理  433MHz無線模塊的工作原理是通過發(fā)射器和接收器之間的模擬信號進(jìn)行無線通信。具體來說,它由發(fā)射器和接收器兩部分組成,這兩部分通過433MHz的模擬信號進(jìn)行通信。發(fā)射器工作原理
    發(fā)表于 04-10 14:44

    無線充電器的工作原理核心

    無線充電器的工作原理核心
    的頭像 發(fā)表于 12-06 10:19 ?1949次閱讀
    無線充電器的<b class='flag-5'>工作原理</b>核心

    Vishay / Beyschlag MMU 0102 VG03薄膜可靠MELF電阻器數(shù)據(jù)手冊

    IEC Q-CECC認(rèn)證,采用先進(jìn)的金屬膜技術(shù)。Vishay/Beyschlag MMU 0102 VG03 MELF電阻器具有0102 DIN尺寸、0.2W額定功耗、150V額定工作電壓以及100Ω 至2.21MΩ 電阻范圍。這些電阻器補(bǔ)充了專業(yè)和精密
    的頭像 發(fā)表于 11-13 09:19 ?934次閱讀
    Vishay / Beyschlag <b class='flag-5'>MMU</b> 0102 VG03薄膜可靠MELF電阻器數(shù)據(jù)手冊

    E203 代碼結(jié)構(gòu)梳理

    一、隊(duì)伍介紹 本篇為蜂鳥E203系列分享第五篇,本篇介紹的內(nèi)容是E203 代碼結(jié)構(gòu)梳理。 二、層次圖 三、模塊具體功能
    發(fā)表于 10-30 06:56

    超景深顯微鏡的工作原理與測試影響因素

    ,精準(zhǔn)把控測試過程中的影響因素,是充分發(fā)揮超景深顯微鏡觀測效能的關(guān)鍵。本文將系統(tǒng)解析超景深顯微鏡的工作原理,并全面梳理影響其測試結(jié)果的核心因素。#Photonixb
    的頭像 發(fā)表于 10-09 18:02 ?867次閱讀
    超景深顯微鏡的<b class='flag-5'>工作原理</b>與測試影響因素

    高壓清洗機(jī)的工作原理是什么?

    歡迎。那么,您是否了解高壓清洗機(jī)的工作原理是什么呢?科偉達(dá)作為高壓清洗機(jī)的領(lǐng)先品牌,本文將帶您深度解析其工作原理,幫助您更好地理解和使用這種設(shè)備。高壓清洗機(jī)的技術(shù)原
    的頭像 發(fā)表于 07-18 16:39 ?2002次閱讀
    高壓清洗機(jī)的<b class='flag-5'>工作原理</b>是什么?

    語音控制模塊工作原理

    ,才能夠發(fā)出正確的指令。 語音芯片控制模塊是實(shí)現(xiàn) “語音指令 - 設(shè)備響應(yīng)” 的核心組件,其工作原理可拆解為信號采集、處理、識別及指令執(zhí)行的完整鏈路,下面將以WTK69000為例給大家分享一下整個(gè)流程的工作原理。 一、語音信號采集
    的頭像 發(fā)表于 06-17 11:49 ?1704次閱讀
    語音控制模塊<b class='flag-5'>工作原理</b>

    煙氣檢測儀是如何工作的?工作原理大揭秘

    如何工作的呢? 煙氣檢測儀的工作原理基于多種檢測技術(shù),常見的有電化學(xué)傳感器技術(shù)、紅外吸收技術(shù)等。 電化學(xué)傳感器技術(shù)是一種應(yīng)用廣泛的檢測方法。其核心是電化學(xué)傳感器,它由電極、電解質(zhì)和透氣膜等部分組成。當(dāng)
    發(fā)表于 06-16 16:10

    管道浮力平衡壓袋(配重壓袋)工作原理

    管道浮力平衡壓袋(配重壓袋)工作原理
    發(fā)表于 06-12 15:09 ?0次下載

    FLASH的工作原理與應(yīng)用

    14FLASHFLASH的工作原理與應(yīng)用OWEIS1什么是FLASH?Flash閃存是一種非易失性半導(dǎo)體存儲器,它結(jié)合了ROM(只讀存儲器)和RAM(隨機(jī)訪問存儲器)的優(yōu)點(diǎn),具有電子可擦除和可編程
    的頭像 發(fā)表于 05-27 13:10 ?2430次閱讀
    FLASH的<b class='flag-5'>工作原理</b>與應(yīng)用

    GPIO配置的工作原理是什么?

    我使用 EZ-USB 配置實(shí)用程序,我想知道是否有人知道 GPIO 配置的工作原理。 例如,GPIO0 可以用作傳感器復(fù)位,我知道這個(gè) GPIO0 用于重置傳感器,但我不明白的是選項(xiàng)用戶 GPIO 例如GPIO 1可以是User GPIO0,這是什么意思呢?
    發(fā)表于 05-19 06:56

    水質(zhì)常規(guī)五參數(shù)探頭工作原理

    在水環(huán)境監(jiān)測領(lǐng)域,水質(zhì)常規(guī)五參數(shù)(pH、溶解氧、電導(dǎo)率、濁度、溫度)探頭對于準(zhǔn)確把握水質(zhì)狀況意義重大。本文以DX-W100-1在線多參數(shù)水質(zhì)傳感器為例,深入剖析這些參數(shù)探頭的工作原理。一、pH探頭
    的頭像 發(fā)表于 05-13 17:07 ?1642次閱讀
    水質(zhì)常規(guī)五參數(shù)探頭<b class='flag-5'>工作原理</b>

    電動調(diào)壓器的工作原理

    電壓調(diào)壓器是一種用于控制電路中電壓的裝置,其工作原理因類型而異,以下是幾種常見電壓調(diào)壓器的工作原理
    的頭像 發(fā)表于 05-12 13:46 ?1641次閱讀
    電動調(diào)壓器的<b class='flag-5'>工作原理</b>