《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARMv7-A架構(gòu)的虛擬存儲(chǔ)系統(tǒng)技術(shù)研究
基于ARMv7-A架構(gòu)的虛擬存儲(chǔ)系統(tǒng)技術(shù)研究
2018年電子技術(shù)應(yīng)用第6期
曹朋朋1,2,陳 佳1,2,張少鋒1,2
1.中航工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安710068; 2.集成電路與微系統(tǒng)設(shè)計(jì)航空科技重點(diǎn)實(shí)驗(yàn)室,陜西 西安710068
摘要: 在機(jī)彈載設(shè)備綜合化、智能化、低功耗的發(fā)展趨勢(shì)下,嵌入式系統(tǒng)設(shè)計(jì)中近幾年也廣泛采用了ARM系列處理器。其中ARMv7的VMSA(虛擬存儲(chǔ)系統(tǒng)架構(gòu))支持虛擬化擴(kuò)展、安全擴(kuò)展以及大物理地址擴(kuò)展,使得多虛擬機(jī)的運(yùn)行或分區(qū)操作系統(tǒng)實(shí)現(xiàn)有了硬件系統(tǒng)的支持,復(fù)雜嵌入式設(shè)備可采用新一代嵌入式處理器完成系統(tǒng)綜合化與小型化。主要針對(duì)ARMv7-A體系結(jié)構(gòu)中擴(kuò)展后的VMSA內(nèi)存管理的應(yīng)用結(jié)構(gòu)變化進(jìn)行了研究,并就其在機(jī)載設(shè)備上的應(yīng)用方式進(jìn)行分析,為ARM處理器在機(jī)載設(shè)備的應(yīng)用提供了技術(shù)支撐。
關(guān)鍵詞: ARMv7 VMSA 虛擬化 安全擴(kuò)展
中圖分類號(hào): TN495
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.180612
中文引用格式: 曹朋朋,陳佳,張少鋒. 基于ARMv7-A架構(gòu)的虛擬存儲(chǔ)系統(tǒng)技術(shù)研究[J].電子技術(shù)應(yīng)用,2018,44(6):11-14,18.
英文引用格式: Cao Pengpeng,Chen Jia,Zhang Shaofeng. Research on virtual memory system based on ARMv7-A architecture[J]. Application of Electronic Technique,2018,44(6):11-14,18.
Research on virtual memory system based on ARMv7-A architecture
Cao Pengpeng1,2,Chen Jia1,2,Zhang Shaofeng1,2
1.AVIC Computing Technique Research Institute,Xi′an 710068,China; 2.Aviation Key Laboratory of Science on Integrated Circuit and Micro-System Design,Xi′an 710068,China
Abstract: As the development trend of integrated, intelligent and low power application in embedded systems, ARM series processors have been widely used in recent years. Virtualization extensions, security extensions, and large physical address extensions supported in ARMv7′s Virtual Memory System Architecture(VMSA),This allows for hardware system support for the operation of multiple virtual machines or the implementation of partitioned operating systems.Complex embedded devices can use the new generation of embedded processors to complete system integration and miniaturization.This article focuses on the changes in the application structure of the memory management of extened VMSA in the ARMv7-A architecture.And also analyzed the application on airborne equipment.This will provides technical support for ARM processor used in airborne equipment applications.
Key words : ARMv7;VMSA;virtualization extensions;security extensions

0 引言

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

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

    本文以ARMV7A中的虛擬存儲(chǔ)系統(tǒng)架構(gòu)(VMSA)為研究對(duì)象,對(duì)引入安全擴(kuò)展、虛擬化擴(kuò)展、大物理地址擴(kuò)展(LPAE)后VMSA架構(gòu)的MMU技術(shù)實(shí)現(xiàn)進(jìn)行了解析,并對(duì)基于該處理器的虛擬化應(yīng)用進(jìn)行研究與展望。

1 VMSA簡介

1.1 VMSA存儲(chǔ)管理簡介

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

    ARMv7通過轉(zhuǎn)換表定義地址轉(zhuǎn)換的機(jī)制,轉(zhuǎn)換表基地址寄存器表示了轉(zhuǎn)換表的開始位置[3]。使用系統(tǒng)控制協(xié)處理器進(jìn)行存儲(chǔ)管理,實(shí)現(xiàn)虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射、及存儲(chǔ)空間訪問權(quán)限、緩沖特性的分配,其實(shí)現(xiàn)方式主要是通過內(nèi)存中的頁表描述符,在系統(tǒng)控制協(xié)處理器中保存該頁表的基地址,當(dāng)MMU使能時(shí),處理器發(fā)起的所有訪問操作均需通過MMU,地址轉(zhuǎn)換過程如圖1所示。

wdz2-t1.gif

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

wdz2-t2.gif

1.2 擴(kuò)展VMSA的地址轉(zhuǎn)換機(jī)制

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

wdz2-t3.gif

2 VMSA擴(kuò)展功能研究

2.1 大物理地址擴(kuò)展的地址轉(zhuǎn)換

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

wdz2-b1.gif

2.2 虛擬化擴(kuò)展后的地址轉(zhuǎn)換

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

    在ARMv7A體系結(jié)構(gòu)中,增加了虛擬化模式(hyp mode),該模式擁有比操作系統(tǒng)的管理模式(svc mode)更高的權(quán)限。因此,在管理模式中執(zhí)行的全部特權(quán)指令會(huì)被自動(dòng)捕獲,并且控制權(quán)被轉(zhuǎn)移到虛擬化模式中的虛擬機(jī)監(jiān)視器中。同時(shí),管理模式中寄存器的狀態(tài)會(huì)被保存,以便在返回的時(shí)候讀取。

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

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

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

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

2.3 安全模式擴(kuò)展的地址轉(zhuǎn)換

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

    在處理器中引入安全擴(kuò)展后,VMSA的安全擴(kuò)展則提供了兩個(gè)物理地址空間:安全物理地址空間和非安全物理地址空間。對(duì)PL1&0階段1的地址轉(zhuǎn)換,轉(zhuǎn)換表基地址寄存器TTBR0、TTBR1及TTBCR在安全和非安全狀態(tài)是分組的。處理器在安全狀態(tài)時(shí),存儲(chǔ)訪問選擇對(duì)應(yīng)狀態(tài)的寄存器,使用獨(dú)立的安全和非安全轉(zhuǎn)換表的版本,轉(zhuǎn)換表查找在對(duì)安全狀態(tài)對(duì)應(yīng)的轉(zhuǎn)換表地址空間進(jìn)行。

3 擴(kuò)展VMSA應(yīng)用研究

    隨著ARM處理器硬件體系結(jié)構(gòu)的升級(jí),擴(kuò)展的VMSA提供虛擬化擴(kuò)展、安全擴(kuò)展、大物理地址擴(kuò)展,為基于硬件的虛擬化提供了不同的應(yīng)用,主要可展開如下的應(yīng)用。

3.1 多虛擬機(jī)的標(biāo)準(zhǔn)通用處理模塊

    基于ARM虛擬化擴(kuò)展及安全擴(kuò)展的支持下,將硬件虛擬化技術(shù)和系統(tǒng)安全問題結(jié)合起來,通過虛擬機(jī)管理程序可以對(duì)多個(gè)虛擬操作系統(tǒng)進(jìn)行有效的管理,在標(biāo)準(zhǔn)處理硬件模塊,實(shí)現(xiàn)多個(gè)虛擬操作系統(tǒng)對(duì)標(biāo)準(zhǔn)底層硬件的共享訪問,有利于多種不同設(shè)備的功能整合、減少整機(jī)功耗,提供系統(tǒng)的可靠性。

    虛擬化可實(shí)現(xiàn)以下幾種應(yīng)用:

    (1)在通用的處理器平臺(tái)管理多個(gè)虛擬機(jī),同時(shí)運(yùn)行多個(gè)操作系統(tǒng),實(shí)現(xiàn)多個(gè)模塊的快速整合[6];

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

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

    (4)把不同功能的操作系統(tǒng)運(yùn)行在一起,由不同的操作系統(tǒng)提供不同的服務(wù)。

3.2 基于標(biāo)準(zhǔn)通用處理模塊分區(qū)操作系統(tǒng)

    隨著綜合模塊化航空電子體系結(jié)構(gòu)的應(yīng)用與發(fā)展,其軟件結(jié)構(gòu)采用了分區(qū)的軟件架構(gòu)概念,符合ARINC 653標(biāo)準(zhǔn),該標(biāo)準(zhǔn)要求操作系統(tǒng)的各個(gè)分區(qū)在空間上保證相互隔離,當(dāng)一個(gè)分區(qū)出現(xiàn)問題時(shí),不會(huì)影響其他分區(qū)。

    在擴(kuò)展VMSA架構(gòu)的標(biāo)準(zhǔn)通用模塊上,將虛擬化和分區(qū)操作系統(tǒng)相結(jié)合,利用統(tǒng)一的硬件平臺(tái),實(shí)現(xiàn)分區(qū)操作系統(tǒng),充分利用VMSA提供的虛擬化機(jī)制,將ARINC 653分區(qū)對(duì)應(yīng)于一個(gè)基于虛擬化處理器模塊中運(yùn)行的虛擬機(jī), 并可以保證分區(qū)切換時(shí)的性能以及Cache一致性,降低應(yīng)用軟件的耦合度[7]。

4 結(jié)束語

    嵌入式設(shè)備綜合化發(fā)展的需求,需要利用ARMv7-A 架構(gòu)MMU中增加的擴(kuò)展功能,以實(shí)現(xiàn)設(shè)備的綜合化和安全隔離。本文首先對(duì)VMSA的地址轉(zhuǎn)換機(jī)制進(jìn)行研究,在此基礎(chǔ)上對(duì)包含安全擴(kuò)展、虛擬化擴(kuò)展及大物理地址擴(kuò)展后的地址轉(zhuǎn)換機(jī)制進(jìn)行分析,最后對(duì)利用VMSA的特征在設(shè)備綜合化應(yīng)用進(jìn)行了分析。對(duì)后續(xù)基于ARM平臺(tái)的嵌入式設(shè)備的設(shè)計(jì)研發(fā)具有一定的應(yīng)用價(jià)值。

參考文獻(xiàn)

[1] 左宗玉,王強(qiáng).一種基于ARM的通用飛行器控制系統(tǒng)設(shè)計(jì)[J].航空科學(xué)技術(shù),2016,27(4):64-68.

[2] ARM Architecture Reference Manual[EB/OL],ARM ltd,2011.

[3] 杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.

[4] 顧峰.在ARM虛擬化環(huán)境中實(shí)現(xiàn)ARINC653分區(qū)的研究[D].武漢:華中科技大學(xué),2015.

[5] 李舟軍,沈東,蘇曉菁,等.基于ARM虛擬化擴(kuò)展的安全防護(hù)技術(shù)[J].軟件學(xué)報(bào),2017,28(9):2229-2247.

[6] 汪卓.基于ARM TrustZone的嵌入式虛擬機(jī)研究和應(yīng)用[D].武漢:華中科技大學(xué),2013.

[7] 郝繼鋒.嵌入式虛擬機(jī)管理器內(nèi)存虛擬化方法研究[J].航空計(jì)算技術(shù),2017,49(2):125-130.



作者信息:

曹朋朋1,2,陳  佳1,2,張少鋒1,2

(1.中航工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安710068;

2.集成電路與微系統(tǒng)設(shè)計(jì)航空科技重點(diǎn)實(shí)驗(yàn)室,陜西 西安710068)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。