吴忠躺衫网络科技有限公司

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

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

3天內不再提示

針對ARMv7-A體系結構中擴展后的VMSA內存管理的應用結構變化進行了研究

SwM2_ChinaAET ? 來源:未知 ? 作者:李倩 ? 2018-06-15 08:51 ? 次閱讀

摘要:在機彈載設備綜合化、智能化、低功耗的發展趨勢下,嵌入式系統設計中近幾年也廣泛采用了ARM系列處理器。其中ARMv7的VMSA(虛擬存儲系統架構)支持虛擬化擴展、安全擴展以及大物理地址擴展,使得多虛擬機的運行或分區操作系統實現有了硬件系統的支持,復雜嵌入式設備可采用新一代嵌入式處理器完成系統綜合化與小型化。主要針對ARMv7-A體系結構中擴展后的VMSA內存管理的應用結構變化進行了研究,并就其在機載設備上的應用方式進行分析,為ARM處理器在機載設備的應用提供了技術支撐。

0 引言

隨著微電子技術和計算機技術的發展,嵌入式設備的性能越來越高,功能越來越復雜,機載電子設備的復雜程度也越來越高,需要有更多的傳感器,集成更多的信號處理模塊和其他各種應用模塊。電子設備綜合化將多個功能單元集成到一塊電路板上,以減少設備的尺寸、重量,實現低功耗、體積小、低成本、高集成度等目標[1]。

新型嵌入式設備采用高性能通用處理器,綜合化的機載設備則支持不同安全關鍵級別的應用軟件共享同一套硬件資源,并提供一種安全性機制保證應用程序之間互相隔離,這就要求系統不僅應具備高性能計算能力和擴展能力,還有具備安全、可靠、低成本和低功耗的特點。通常,在航空航天領域的嵌入式設備較多采用PowerPC系列處理器或DSP微處理器,但隨著ARM處理器架構的升級,除性能越來越強悍外, 在內核中實現了一些額外增加的擴展,其中安全擴展、虛擬化擴展技術以滿足嵌入式設備對安全性和可靠性的技術要求,并以其強大的計算能力和高度集成的硬件設計為航電電子產品的研制帶來更多可能性。

本文以ARMV7A中的虛擬存儲系統架構(VMSA)為研究對象,對引入安全擴展、虛擬化擴展、大物理地址擴展(LPAE)后VMSA架構的MMU技術實現進行了解析,并對基于該處理器的虛擬化應用進行研究與展望。

1 VMSA簡介

1.1 VMSA存儲管理簡介

ARM處理器進行存儲訪問時的地址轉換為映射一個地址到另外一個地址的過程,如映射VA到IPA,或映射VA到PA。在ARMv7體系結構中,共定義了兩種存儲管理體系架構,其中對于ARMv7-A架構系列,使用VMSA存儲架構,而對于ARMv7-R系列,則使用PMSA(Protected Memory System Architecture)[2]。

ARMv7通過轉換表定義地址轉換的機制,轉換表基地址寄存器表示了轉換表的開始位置[3]。使用系統控制協處理器進行存儲管理,實現虛擬存儲空間到物理存儲空間的映射、及存儲空間訪問權限、緩沖特性的分配,其實現方式主要是通過內存中的頁表描述符,在系統控制協處理器中保存該頁表的基地址,當MMU使能時,處理器發起的所有訪問操作均需通過MMU,地址轉換過程如圖1所示。

在VMSAv7中,包括安全擴展、多處理器擴展、大物理地址擴展、以及虛擬化擴展等擴展。在引入這些擴展的VMSA中,將處理器模式劃分為兩部分:安全態(Secure State)和非安全態(Non-Secure State),處理器內核可在普通區域和安全區域中執行代碼,并在安全模式下增加了一種處理器狀態:監控模式(Monitor Mode),可在監控模式進行安全態或非安全態的切換。在包含虛擬化擴展的實現中,處理器的特權被分為3個級別,分別為PL0、PL1以及PL2,如圖2所示。在復雜系統中要求安全性、穩定性和高度可配置性的電子系統都需要這種嵌入式虛擬機技術,航空電子也需要利用虛擬機監控程序來隔離程度,提高可靠性。

1.2 擴展VMSA的地址轉換機制

在擴展的VMSAv7中,包含虛擬化擴展必包括大物理地址擴展(LPAE)以支持40位物理地址,此時支持兩個階段地址轉換。在安全狀態或非安全的PL2只支持一階段的地址轉換;在非安全狀態,程序執行在PL1 或PL0時,可達到兩個階段的地址轉換, 如圖3所示為不同狀態下地址轉換機制及完成轉換使用的寄存器??蛻舨僮飨到y使用虛擬地址,通過操作系統提供的頁表將虛擬地址轉換為中間物理地址(IPA)完成第一階段的轉換,再將IPA地址使用第二階段頁表才能轉換為真正的物理地址,第二階段地址轉換過程及頁表對客戶操作系統是不可見的,由虛擬機管理器控制。

2 VMSA擴展功能研究

2.1 大物理地址擴展的地址轉換

在包含大物理地址擴展的ARMv7 VMSA實現中,存在兩種格式的描述符,即32位的短描述符表格式和64位的長描述符表格式,如表1所示。

2.2 虛擬化擴展后的地址轉換

虛擬化技術是嵌入式系統的最新發展方向之一,通過虛擬化技術可以使得同一處理器執行多個虛擬機(Virtual Machine,VM), 允許多個操作系統存于同一硬件平臺,并具有系統安全防護的特性[4]。ARM 處理器的ARMv7和ARMv8架構引入了硬件虛擬化擴展,硬件輔助的全虛擬化解決方案使得 ARM 平臺上的虛擬機性能得到了顯著的提高,可通過虛擬機管理程序(hypervisor)提供的有限接口實現隔離,控制系統的行為,并設置安全策略對關鍵數據對象和內核執行流程進行保護,其權限高于客戶操作系統的權限,可有效發現防御客戶操作系統內核中的惡意行為。

在ARMv7A體系結構中,增加了虛擬化模式(hyp mode),該模式擁有比操作系統的管理模式(svc mode)更高的權限。因此,在管理模式中執行的全部特權指令會被自動捕獲,并且控制權被轉移到虛擬化模式中的虛擬機監視器中。同時,管理模式中寄存器的狀態會被保存,以便在返回的時候讀取。

在ARMv7-A不再使用快速上下文切換機制(FCSE),該機制不適合多核處理器的存儲管理。VMSA 在ASID的基礎上,地址轉換表增加了虛擬機ID(VMID),以保證在進行虛擬機切換時或線程切換時,Cache的一致性問題,因此每次上下文切換處理器只需保存某些模式特定的寄存器,可在保證性能的基礎上也會更加靈活。

為了更好地支持虛擬化的應用,在包含虛擬化擴展的MMU實現中,提供兩個階段的地址轉換機制。第一階段的轉換由虛擬機操作系統實現,虛擬機操作系統定義其虛擬地址到內部物理地址(IPA)的轉換,第二階段的地址轉換由虛擬機管理器實現,將虛擬機的內部物理地址轉換為物理地址,也可以通過配置第2階段轉換頁表項中的屬性控制位來實現客戶操作系統對內存的訪問控制。通過該機制,虛擬機管理器可以重映射虛擬機的地址映射,將客戶物理地址映射為機器物理地址,第二階段的轉換對虛擬機操作系統不可見。在包含虛擬化擴展的VMSA中,存儲管理主要有如下特性:

(1)為減少TLB維護操作,VMSA區分全局頁和線程相關頁,ASID表示與特定線程相關的頁,在線程切換時不需要TLB維護操作;

(2)VMID與特定虛擬機關聯,TLB入口包含了VMID信息,即更改虛擬機不需要刷新TLB,對于階段2的轉換,所有轉換均與VMID相關,而無全局頁的概念。

2.3 安全模式擴展的地址轉換

綜合化的機載嵌入式設備只需部分應用處理一些關鍵數據,需考慮設備的安全問題,ARM公司提出了相應的解決方案,即 TrustZone 技術,可抵御許多的特定攻擊,提升系統的安全可靠性[5]。在包含安全擴展的實現中,將地址空間分為安全或非安全的地址空間,處理器運行模式也相應劃分為即安全環境(Secure world)和普通環境(Normal)。航空電子設備在關鍵任務系統中使用可信計算技術,使得安全環境中的關鍵任務不能被普通環境的組件所訪問。

在處理器中引入安全擴展后,VMSA的安全擴展則提供了兩個物理地址空間:安全物理地址空間和非安全物理地址空間。對PL1&0階段1的地址轉換,轉換表基地址寄存器TTBR0、TTBR1及TTBCR在安全和非安全狀態是分組的。處理器在安全狀態時,存儲訪問選擇對應狀態的寄存器,使用獨立的安全和非安全轉換表的版本,轉換表查找在對安全狀態對應的轉換表地址空間進行。

3 擴展VMSA應用研究

隨著ARM處理器硬件體系結構的升級,擴展的VMSA提供虛擬化擴展、安全擴展、大物理地址擴展,為基于硬件的虛擬化提供了不同的應用,主要可展開如下的應用。

3.1 多虛擬機的標準通用處理模塊

基于ARM虛擬化擴展及安全擴展的支持下,將硬件虛擬化技術和系統安全問題結合起來,通過虛擬機管理程序可以對多個虛擬操作系統進行有效的管理,在標準處理硬件模塊,實現多個虛擬操作系統對標準底層硬件的共享訪問,有利于多種不同設備的功能整合、減少整機功耗,提供系統的可靠性。

虛擬化可實現以下幾種應用:

(1)在通用的處理器平臺管理多個虛擬機,同時運行多個操作系統,實現多個模塊的快速整合[6];

(2)把多種負荷較小的系統,通過虛擬化移植到其他統一的硬件平臺;

(3)基于安全性考慮,把容易受到安全攻擊的服務和內核隔離,提供保護;

(4)把不同功能的操作系統運行在一起,由不同的操作系統提供不同的服務。

3.2 基于標準通用處理模塊分區操作系統

隨著綜合模塊化航空電子體系結構的應用與發展,其軟件結構采用了分區的軟件架構概念,符合ARINC 653標準,該標準要求操作系統的各個分區在空間上保證相互隔離,當一個分區出現問題時,不會影響其他分區。

在擴展VMSA架構的標準通用模塊上,將虛擬化和分區操作系統相結合,利用統一的硬件平臺,實現分區操作系統,充分利用VMSA提供的虛擬化機制,將ARINC 653分區對應于一個基于虛擬化處理器模塊中運行的虛擬機, 并可以保證分區切換時的性能以及Cache一致性,降低應用軟件的耦合度[7]。

4 結束語

嵌入式設備綜合化發展的需求,需要利用ARMv7-A 架構MMU中增加的擴展功能,以實現設備的綜合化和安全隔離。本文首先對VMSA的地址轉換機制進行研究,在此基礎上對包含安全擴展、虛擬化擴展及大物理地址擴展后的地址轉換機制進行分析,最后對利用VMSA的特征在設備綜合化應用進行了分析。對后續基于ARM平臺的嵌入式設備的設計研發具有一定的應用價值。

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

    關注

    134

    文章

    9169

    瀏覽量

    369239
  • 存儲系統
    +關注

    關注

    2

    文章

    414

    瀏覽量

    40940
  • 嵌入式設備
    +關注

    關注

    0

    文章

    110

    瀏覽量

    17037

原文標題:【學術論文】基于ARMv7-A架構的虛擬存儲系統技術研究

文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    無線傳感器網絡的體系結構分析

    本文對無線傳感器網絡體系結構進行了較為深入的研究,從物理體系結構、軟件體系結構和通信體系結構三個
    發表于 11-03 16:24 ?9004次閱讀
    無線傳感器網絡的<b class='flag-5'>體系結構</b>分析

    無線傳感器網絡體系結構研究

    ,傳感器網絡可以部署用來監測病人并輔助殘障病人、其他商業應用還包括跟蹤產品質量、監測危險地域等。  本文對無線傳感器網絡體系結構進行了較為深入的研究,從物理體系結構、軟件
    發表于 03-23 14:57

    帶你了解Linux內核體系結構

    ,內核被劃分為多個子系統。Linux 也可以看作是一個整體,因為它會將所有這些基本服務都集成到內核。這與微內核的體系結構不同,后者會提供一些基本的服務,例如通信、I/O、內存和進程管理
    發表于 08-27 10:31

    ARM體系結構知識!01ARM匯編指令

    列支持基于內存管理單元(MMU)的虛擬內存系統體系結構VMSA)。它支持A64、
    發表于 07-26 07:53

    ARM體系結構知識!01ARM匯編指令

    列支持基于內存管理單元(MMU)的虛擬內存系統體系結構VMSA)。它支持A64、
    發表于 08-07 09:25

    淺析ARMv7-A體系架構下的MMU的基本原理

    。MMU 主要功能之一是虛擬地址到物理地址的轉換,這個需要軟件和硬件配合完成,軟件需要針對不同的硬件進行策略。這里主要分析 ARMv7-A 體系架構下的 MMU 的基本原理。
    發表于 05-24 16:54

    ARMV7-M體系結構參考手冊

    Arm體系結構經過幾次重大修訂,已發展到支持實現的程度在廣泛的性能點上,每年生產超過10億個零件。最新Armv7版本通過定義一組架構概要文件正式承認了這種多樣性架構以適應不同的市場需求。一個關鍵因素
    發表于 08-02 09:43

    Armv8-A體系結構內存系統詳解

    本指南介紹Armv8-A體系結構內存系統。這些系統詳細通過內存模型、內存類型、
    發表于 08-02 10:38

    Armv9-A體系結構參考手冊

    本增補件是Armv9-A體系結構的Arm?體系結構參考手冊增補件輪廓本書介紹了Armv9-A體系結構擴展
    發表于 08-08 07:07

    ARMv8-M體系結構及其程序員模型簡介

    )和微控制器(M)。 A簡介: ?支持AArch64或AArch32執行狀態 ?支持A64、A32和T32指令集 ?支持基于內存管理單元的虛
    發表于 08-08 06:18

    ARM通用中斷控制器體系結構規范GIC體系結構版本3和版本4

    本手冊體系結構描述使用了與Armv8體系結構相同的術語。有關該術語的更多信息,請參閱Armv8-A架構配置文件
    發表于 08-11 07:45

    ARM體系結構參考手冊ARMv7-AARMv7-R版本

    提前(AOT)編譯的特定支持。 ·決定處理器如何運行的模式和狀態,包括當前的執行特權和安全性。 ·例外模式。 ·內存模型,定義內存排序和內存管理: -
    發表于 08-12 07:46

    ARM Cortex-A系列ARMv8-A程序員指南

    。 GNU和Linux文檔(Redhat和Fedora發行版除外)有時將AArch64稱為ARM64。 因為ARMv8-A體系結構的許多概念都與ARMv7-A體系結構相同,所以這里不涉
    發表于 08-22 07:22

    ARMv7-M體系結構應用級參考手冊

    ARMv7-M體系結構應用級參考手冊,有需要的下來看看。
    發表于 01-12 18:07 ?38次下載

    ARMv7ARMv7體系結構參考手冊免費下載

    ARM? Architecture Reference Manual ARMv7-A and ARMv7-R edition
    發表于 09-28 08:00 ?27次下載
    <b class='flag-5'>ARMv7</b>和<b class='flag-5'>ARMv7</b>的<b class='flag-5'>體系結構</b>參考手冊免費下載
    百家乐赌场代理合作| 百家乐赌台| 大发888 充值淘宝| 壹贰博娱乐城| 镇安县| 网络百家乐官网软件真假| 百家乐官网桌保险| 百家乐概率计算过程| 机械百家乐技巧| 明升国际网| 水晶百家乐官网筹码| 邯郸百家乐园怎么样| 棋牌小游戏| 百家乐官网出千方法技巧| 电脑赌百家乐可靠吗| 沙龙国际娱乐网站| 至尊百家乐官网娱乐| 优博百家乐的玩法技巧和规则| 平原县| 2024属虎人全年运势| 免费百家乐的玩法技巧和规则| 皇博国际| 易学24山3d罗盘App| 大发888信誉平台| 百家乐官网太阳城真人游戏 | 大发888官网充值| 真人百家乐官网赌法| 网页百家乐官网| 大发娱乐场官网| 姚记百家乐官网的玩法技巧和规则 | 温州牌九| 风水24山组成| 梭哈棋牌游戏大厅| 百家乐官网具体怎么收费的| 大发888娱乐城df888| 百家乐官网游戏规则介绍| 百家乐现金网信誉排名| 百家乐官网打连技巧| 百家乐怎么骗人| 百家乐官网高手长胜攻略| 大佬百家乐的玩法技巧和规则 |