文獻(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.
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簡(jiǎn)介
1.1 VMSA存儲(chǔ)管理簡(jiǎn)介
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)存中的頁(yè)表描述符,,在系統(tǒng)控制協(xié)處理器中保存該頁(yè)表的基地址,,當(dāng)MMU使能時(shí),處理器發(fā)起的所有訪問操作均需通過MMU,,地址轉(zhuǎn)換過程如圖1所示,。
在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)控程序來隔離程度,,提高可靠性。
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)換使用的寄存器,。客戶操作系統(tǒng)使用虛擬地址,,通過操作系統(tǒng)提供的頁(yè)表將虛擬地址轉(zhuǎn)換為中間物理地址(IPA)完成第一階段的轉(zhuǎn)換,,再將IPA地址使用第二階段頁(yè)表才能轉(zhuǎn)換為真正的物理地址,第二階段地址轉(zhuǎn)換過程及頁(yè)表對(duì)客戶操作系統(tǒng)是不可見的,,由虛擬機(jī)管理器控制,。
2 VMSA擴(kuò)展功能研究
2.1 大物理地址擴(kuò)展的地址轉(zhuǎn)換
在包含大物理地址擴(kuò)展的ARMv7 VMSA實(shí)現(xiàn)中,,存在兩種格式的描述符,即32位的短描述符表格式和64位的長(zhǎng)描述符表格式,,如表1所示,。
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)換頁(yè)表項(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ū)分全局頁(yè)和線程相關(guān)頁(yè),ASID表示與特定線程相關(guān)的頁(yè),,在線程切換時(shí)不需要TLB維護(hù)操作,;
(2)VMID與特定虛擬機(jī)關(guān)聯(lián),TLB入口包含了VMID信息,,即更改虛擬機(jī)不需要刷新TLB,,對(duì)于階段2的轉(zhuǎn)換,所有轉(zhuǎn)換均與VMID相關(guān),,而無(wú)全局頁(yè)的概念,。
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é)束語(yǔ)
嵌入式設(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)