在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

詳解MMU相關概念及工作原理

安芯教育科技 ? 來源:老秦談芯 ? 作者:老秦談芯 ? 2022-04-22 09:20 ? 次閱讀

提到MMU就要提到一個概念,虛擬地址(Virtual Address)。前面的文章中反復提到過虛擬地址的概念。

使用虛擬地址的好處是它允許管理軟件,例如操作系統(OS)來控制呈現給軟件的內存視圖。操作系統可以控制哪些內存是可見的,哪些內存是可見的,哪些訪問是允許的。應用程序知道它是由操作系統和硬件協同工作來執行地址轉換的。實際上,每個應用程序都可以使用自己的一組虛擬地址,這些地址將映射到物理系統中的不同位置。當操作系統在不同的應用程序之間切換時,它會重新編程映射。這意味著當前應用程序的虛擬地址將映射到內存中正確的物理位置。

使用虛擬地址的另一個好處是操作系統可以將內存的多個碎片物理區域作為單個、連續的虛擬地址空間呈現給應用程序。虛擬地址也有利于軟件開發人員,他們在編寫應用程序時不知道系統的確切內存地址。使用虛擬地址,軟件開發人員不需要關心物理內存。

虛擬地址和物理地址之間的映射存儲在轉換表(translation tables)中:

eadf5626-bed4-11ec-9e50-dac502259ad0.png

轉換表在內存中,由軟件(通常是操作系統或管理程序)管理。地址轉換表是動態的,可以根據軟件的需要進行更新。負責虛擬地址到物理地址轉換的部件就是MMU。MMU由兩部分組成:

表遍歷單元(Table Walk Unit),包含從內存中讀取地址轉換表的邏輯。

TLB(Translation Lookaside Buffer),緩存最近使用的地址轉換。

eae90f68-bed4-11ec-9e50-dac502259ad0.png

軟件發出的所有內存地址都是虛擬的。這些內存地址被傳遞給MMU,MMU檢查TLB中最近使用的緩存地址轉換。如果MMU沒有找到最近緩存的地址轉換,表遍歷單元(TWU)將從內存中讀取相應的表條目。

轉換表的工作原理是將虛擬地址空間劃分為大小相等的塊,并在每個塊的表中提供一個條目。

eaf99e6e-bed4-11ec-9e50-dac502259ad0.png

當轉換發生時,由軟件發出的虛擬地址將一分為二。在下圖中被標記為“which entry”的高位告訴您要查找哪個塊條目,并將它們用作表的索引。此輸入塊包含虛擬地址的物理地址。低階位在圖中被標記為“offset in blocks”,是該塊中的偏移量,不會因轉換而改變。

eb0d0f6c-bed4-11ec-9e50-dac502259ad0.png

多級查找更為復雜。以下圖為例,第一個表將虛擬地址空間劃分為大的塊。這個表中的每個條目可以指向一個大小相等的物理內存塊,也可以指向另一個將塊細分為更小塊的表。我們稱這種類型的表為“多級表”。在ARMv8-A中,最多可以支持四級查找。多級查找為虛擬化技術提供了支持。

eb187d84-bed4-11ec-9e50-dac502259ad0.png

這種多級查找方法允許描述較大的內存塊和較小的內存塊。大/小塊體的特點如下:

大內存塊比小內存塊需要更少的讀取級別。另外,大內存塊在TLB中的緩存效率更高。

小內存塊為軟件提供了對內存分配的細粒度控制。但是,小內存塊在TLB中的緩存效率較低。緩存效率較低,因為小內存塊需要多次讀取級別才能轉換。

處理器在開始表查找時不知道轉換的大小。處理器通過執行表遍歷計算出正在轉換的塊的大小。

在ARMv8-A中有三個獨立的虛擬地址空間,分別是:

NS.EL0 and NS.EL1 (Non-secure EL0/EL1).

NS.EL2 (Non-secure EL2).

EL3.

eb23d27e-bed4-11ec-9e50-dac502259ad0.png

在虛擬化中,我們將操作系統控制的地址轉換集稱為stage 1。Stage 1表將虛擬地址轉換為中間物理地址(IPA)。在Stage 1,操作系統認為IPA是物理地址空間。然而,hypervisor控制第二組轉換,我們稱之為Stage 2。Stage2 將IPA轉換為物理地址。前面介紹ARM虛擬化的文章中有介紹,不再贅述。

eb2f4a28-bed4-11ec-9e50-dac502259ad0.png

Armv8-A是一個64位體系結構,但這并不意味著所有的地址都是64位的。虛擬地址以64位格式存儲。因此,LDR指令和STR指令中的地址始終在X寄存器中指定。但是,并非X寄存器中的所有地址都有效。在Armv8.0-A中,物理地址的最多是48位。在Armv8.2-A中擴展到52位。

許多現代操作系統的所有應用程序似乎都運行在同一個地址區域,這就是我們所說的用戶空間。實際上,不同的應用程序需要不同的映射。

理想情況下,我們希望不同應用程序的地址轉換在TLB中共存,以防止TLB在上下文切換時失效。但是處理器如何知道要使用哪個版本的地址轉換呢?在Armv8-A中,答案是地址空間標識符(Address SpaceIdentifiers,ASID)。

對于EL0/EL1虛擬地址空間,可以使用轉換表項的屬性字段中的nG位將轉換標記為全局(G)或非全局(nG)。例如,內核映射是全局轉換,而應用程序映射是非全局轉換。全局轉換應用于當前正在運行的應用程序。非全局地址轉換僅適用于特定應用程序。

非全局映射在TLB中用ASID標記。在TLB查找中,TLB條目中的ASID將與當前選定的ASID進行比較。如果它們不匹配,則不使用TLB條目。下圖顯示了內核空間中沒有ASID標記的全局映射,以及具有ASID標記的用戶空間中的非全局映射。該圖顯示,允許多個應用程序的TLB條目在緩存中共存,ASID決定使用哪個條目。

eb458a9a-bed4-11ec-9e50-dac502259ad0.png

EL0/EL1轉換也可以使用虛擬機標識符(Virtual MachineIdentifier,VMID)進行標記。VMID允許來自不同VM的轉換在緩存中共存。這與ASID處理來自不同應用程序的地址轉換的方式類似。在實踐中,這意味著一些轉換將同時使用VMID和ASID進行標記,并且兩者都必須與要使用的TLB條目相匹配。

如果一個系統包含多個處理器,那么在一個處理器上使用的ASID和VMID在其他處理器上的含義是否相同?對于Armv8.0-A來說,答案是它們的意思并不一定相同。軟件不需要以相同的方式在多個處理器間使用給定的ASID。例如,ASID 5可能被一個處理器上的計算器和另一個處理器上的web瀏覽器使用。這意味著一個處理器創建的TLB條目不能被另一個處理器使用。

實際上,軟件不太可能在處理器之間使用不同的ASID。軟件在給定系統中的所有處理器上以相同的方式使用ASID和VMID更為常見。因此,Armv8.2-A在轉換表基寄存器(TTBR)中引入了公共非私有(Common not Private,CnP)位。當設置了CnP位時,軟件承諾在所有處理器上以相同的方式使用ASID和VMID,這允許一個處理器創建的TLB條目被另一個處理器使用。

轉化粒度是可以描述的最小的存儲塊。Armv8-A支持三種不同的粒度:4KB、16KB和64KB。處理器支持的顆粒大小由實現定義,并由ID_AA64MMFR0_EL1報告。所有Arm Cortex-A處理器支持4KB和64KB。

eb531ebc-bed4-11ec-9e50-dac502259ad0.png

當MMU被禁用時,所有地址都是平面映射的。也就是說,輸入和輸出地址是相同的。

關于安芯教育

安芯教育是聚焦AIoT(人工智能+物聯網)的創新教育平臺,提供從中小學到高等院校的貫通式AIoT教育解決方案。

安芯教育依托Arm技術,開發了ASC(Arm智能互聯)課程及人才培養體系。已廣泛應用于高等院校產學研合作及中小學STEM教育,致力于為學校和企業培養適應時代需求的智能互聯領域人才。

原文標題:技術分享 | ARM系列 -- MMU

文章出處:【微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9097

    瀏覽量

    367555
  • 操作系統
    +關注

    關注

    37

    文章

    6825

    瀏覽量

    123331
  • MMU
    MMU
    +關注

    關注

    0

    文章

    91

    瀏覽量

    18289

原文標題:技術分享 | ARM系列 -- MMU

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電壓比較器工作原理詳解

    電壓比較器工作原理詳解
    發表于 11-28 11:10 ?1978次閱讀

    Allegro正負片的概念及相關設置說明

     Allegro正負片的概念及相關設置說明
    發表于 05-12 21:22

    FPGA與CPLD的概念及其區別PDF

    FPGA與CPLD的概念及其區別
    發表于 08-15 15:46

    CAD命令:CAD軟件中from命令的相關概念及應用

    ,最后輸入半徑值,就把圓畫好了。如下圖所示:以上就是在浩辰CAD軟件中from命令(基點捕捉命令)的相關概念及應用,感興趣的小伙伴可以參考本CAD教程來了解一下CAD命令——from命令的一些使用技巧。
    發表于 05-25 17:27

    介紹SRv6獨有的工作原理相關概念

    1、SRv6基本概念由于SR MPLS已經普及,相信大家已經對Segment Routing的基本概念有足夠的了解。這里重點介紹SRv6獨有的工作原理相關
    發表于 07-28 09:07

    嵌入式系統的概念及特點

    文章目錄嵌入式系統概要嵌入式系統的概念及特點嵌入式系統硬件嵌入式系統軟件嵌入式系統的編程模式微控制器的程序開發方式嵌入式系統概要嵌入式系統的概念及特點1. 概念國外的定義:用于控制、監視或者輔助操作
    發表于 12-22 06:36

    電子商務相關概念及理論,下載

    電子商務相關概念及理論 1 什么是電子商務 2 電子商務的分類 3 電子商務的功能 4 電子商務的特點  
    發表于 04-28 15:55 ?0次下載

    異步傳輸是什么_異步傳輸概念及工作原理

    本文開始介紹了異步傳輸基本概念和異步傳輸的工作原理,其次介紹了異步傳輸的結構,最后闡述了異步傳輸的傳輸模式與異步傳輸的通信協議。
    發表于 03-02 14:34 ?1.9w次閱讀
    異步傳輸是什么_異步傳輸<b class='flag-5'>概念及</b><b class='flag-5'>工作原理</b>

    igbt工作原理視頻

    本文首先介紹了IGBT概念及結構,其次介紹了IGBT工作原理及代換,最后介紹了它的應用領域。
    的頭像 發表于 07-17 15:00 ?8.6w次閱讀

    MMU工作原理梳理

    本文從內存管理的發展歷程角度層層遞進,介紹 MMU 的誕生背景,工作機制。而忽略了具體處理器的具體實現細節,將 MMU工作原理概念上比
    的頭像 發表于 12-17 16:13 ?1.3w次閱讀
    <b class='flag-5'>MMU</b>的<b class='flag-5'>工作原理</b>梳理

    智能電網的概念及通信技術詳解

    智能電網的概念及通信技術詳解
    發表于 11-21 20:41 ?1244次閱讀

    SMT貼片機工作原理詳解

    SMT貼片機工作原理詳解
    的頭像 發表于 09-04 11:08 ?2877次閱讀

    MMU相關的基本概念

    1-MMU相關的基本概念 (1)虛擬地址相關基本概念 ? 虛擬內存(Virtual Memory,VM):為每個進程提供了一致的、連續的、私
    的頭像 發表于 11-26 16:11 ?697次閱讀

    S參數的概念及應用

    電子發燒友網站提供《S參數的概念及應用.pdf》資料免費下載
    發表于 08-12 14:29 ?0次下載

    諧波的概念及應用

    本文簡單介紹了諧波的概念及應用。
    的頭像 發表于 10-18 14:14 ?465次閱讀
    諧波的<b class='flag-5'>概念及</b>應用
    主站蜘蛛池模板: 99热一区| 日本久本草精品| 一级毛片免费毛片一级毛片免费| 干干操| 欧洲三级网站| 黄视频在线观看网站| 天堂a| 男人天堂久久| bt天堂资源种子在线| 女色窝人体色77777| 男人日女人免费视频| 99久久免费中文字幕精品| 女人色网| 六月丁香综合网| 亚洲专区一| 特黄特色的视频免费播放| 麦克斯奥特曼在线观看| 亚洲色图20p| 97超频国产在线公开免费视频| 欧美视频一区二区三区四区| 天堂成人一区二区三区| bt天堂bt在线网| 中文字幕一区二区三区免费视频 | 欧美性满足hd1819| 怡红院日本一道日本久久| 欧美三级不卡在线观线看高清| free性日本| 亚洲一区二区三区免费看| 免费人成激情视频在线观看冫 | 免费精品99久久国产综合精品| 色播在线永久免费视频网站| 高清欧美日本视频免费观看| 加勒比一到三区| 精品国产免费久久久久久婷婷 | 中日韩在线视频| 老色皮| 欧美破处视频在线| 午夜三级国产精品理论三级| 国产天堂网| 国产精品久久久福利| 一色屋网站|