摘要:在機彈載設(shè)備綜合化、智能化、低功耗的發(fā)展趨勢下,嵌入式系統(tǒng)設(shè)計中近幾年也廣泛采用了ARM系列處理器。其中ARMv7的VMSA(虛擬存儲系統(tǒng)架構(gòu))支持虛擬化擴展、安全擴展以及大物理地址擴展,使得多虛擬機的運行或分區(qū)操作系統(tǒng)實現(xiàn)有了硬件系統(tǒng)的支持,復(fù)雜嵌入式設(shè)備可采用新一代嵌入式處理器完成系統(tǒng)綜合化與小型化。主要針對ARMv7-A體系結(jié)構(gòu)中擴展后的VMSA內(nèi)存管理的應(yīng)用結(jié)構(gòu)變化進行了研究,并就其在機載設(shè)備上的應(yīng)用方式進行分析,為ARM處理器在機載設(shè)備的應(yīng)用提供了技術(shù)支撐。
0 引言
隨著微電子技術(shù)和計算機技術(shù)的發(fā)展,嵌入式設(shè)備的性能越來越高,功能越來越復(fù)雜,機載電子設(shè)備的復(fù)雜程度也越來越高,需要有更多的傳感器,集成更多的信號處理模塊和其他各種應(yīng)用模塊。電子設(shè)備綜合化將多個功能單元集成到一塊電路板上,以減少設(shè)備的尺寸、重量,實現(xiàn)低功耗、體積小、低成本、高集成度等目標(biāo)[1]。
新型嵌入式設(shè)備采用高性能通用處理器,綜合化的機載設(shè)備則支持不同安全關(guān)鍵級別的應(yīng)用軟件共享同一套硬件資源,并提供一種安全性機制保證應(yīng)用程序之間互相隔離,這就要求系統(tǒng)不僅應(yīng)具備高性能計算能力和擴展能力,還有具備安全、可靠、低成本和低功耗的特點。通常,在航空航天領(lǐng)域的嵌入式設(shè)備較多采用PowerPC系列處理器或DSP等微處理器,但隨著ARM處理器架構(gòu)的升級,除性能越來越強悍外, 在內(nèi)核中實現(xiàn)了一些額外增加的擴展,其中安全擴展、虛擬化擴展技術(shù)以滿足嵌入式設(shè)備對安全性和可靠性的技術(shù)要求,并以其強大的計算能力和高度集成的硬件設(shè)計為航電電子產(chǎn)品的研制帶來更多可能性。
本文以ARMV7A中的虛擬存儲系統(tǒng)架構(gòu)(VMSA)為研究對象,對引入安全擴展、虛擬化擴展、大物理地址擴展(LPAE)后VMSA架構(gòu)的MMU技術(shù)實現(xiàn)進行了解析,并對基于該處理器的虛擬化應(yīng)用進行研究與展望。
1 VMSA簡介
1.1 VMSA存儲管理簡介
ARM處理器進行存儲訪問時的地址轉(zhuǎn)換為映射一個地址到另外一個地址的過程,如映射VA到IPA,或映射VA到PA。在ARMv7體系結(jié)構(gòu)中,共定義了兩種存儲管理體系架構(gòu),其中對于ARMv7-A架構(gòu)系列,使用VMSA存儲架構(gòu),而對于ARMv7-R系列,則使用PMSA(Protected Memory System Architecture)[2]。
ARMv7通過轉(zhuǎn)換表定義地址轉(zhuǎn)換的機制,轉(zhuǎn)換表基地址寄存器表示了轉(zhuǎn)換表的開始位置[3]。使用系統(tǒng)控制協(xié)處理器進行存儲管理,實現(xiàn)虛擬存儲空間到物理存儲空間的映射、及存儲空間訪問權(quán)限、緩沖特性的分配,其實現(xiàn)方式主要是通過內(nèi)存中的頁表描述符,在系統(tǒng)控制協(xié)處理器中保存該頁表的基地址,當(dāng)MMU使能時,處理器發(fā)起的所有訪問操作均需通過MMU,地址轉(zhuǎn)換過程如圖1所示。
在VMSAv7中,包括安全擴展、多處理器擴展、大物理地址擴展、以及虛擬化擴展等擴展。在引入這些擴展的VMSA中,將處理器模式劃分為兩部分:安全態(tài)(Secure State)和非安全態(tài)(Non-Secure State),處理器內(nèi)核可在普通區(qū)域和安全區(qū)域中執(zhí)行代碼,并在安全模式下增加了一種處理器狀態(tài):監(jiān)控模式(Monitor Mode),可在監(jiān)控模式進行安全態(tài)或非安全態(tài)的切換。在包含虛擬化擴展的實現(xiàn)中,處理器的特權(quán)被分為3個級別,分別為PL0、PL1以及PL2,如圖2所示。在復(fù)雜系統(tǒng)中要求安全性、穩(wěn)定性和高度可配置性的電子系統(tǒng)都需要這種嵌入式虛擬機技術(shù),航空電子也需要利用虛擬機監(jiān)控程序來隔離程度,提高可靠性。
1.2 擴展VMSA的地址轉(zhuǎn)換機制
在擴展的VMSAv7中,包含虛擬化擴展必包括大物理地址擴展(LPAE)以支持40位物理地址,此時支持兩個階段地址轉(zhuǎn)換。在安全狀態(tài)或非安全的PL2只支持一階段的地址轉(zhuǎn)換;在非安全狀態(tài),程序執(zhí)行在PL1 或PL0時,可達(dá)到兩個階段的地址轉(zhuǎn)換, 如圖3所示為不同狀態(tài)下地址轉(zhuǎn)換機制及完成轉(zhuǎn)換使用的寄存器。客戶操作系統(tǒng)使用虛擬地址,通過操作系統(tǒng)提供的頁表將虛擬地址轉(zhuǎn)換為中間物理地址(IPA)完成第一階段的轉(zhuǎn)換,再將IPA地址使用第二階段頁表才能轉(zhuǎn)換為真正的物理地址,第二階段地址轉(zhuǎn)換過程及頁表對客戶操作系統(tǒng)是不可見的,由虛擬機管理器控制。
2 VMSA擴展功能研究
2.1 大物理地址擴展的地址轉(zhuǎn)換
在包含大物理地址擴展的ARMv7 VMSA實現(xiàn)中,存在兩種格式的描述符,即32位的短描述符表格式和64位的長描述符表格式,如表1所示。
2.2 虛擬化擴展后的地址轉(zhuǎn)換
虛擬化技術(shù)是嵌入式系統(tǒng)的最新發(fā)展方向之一,通過虛擬化技術(shù)可以使得同一處理器執(zhí)行多個虛擬機(Virtual Machine,VM), 允許多個操作系統(tǒng)存于同一硬件平臺,并具有系統(tǒng)安全防護的特性[4]。ARM 處理器的ARMv7和ARMv8架構(gòu)引入了硬件虛擬化擴展,硬件輔助的全虛擬化解決方案使得 ARM 平臺上的虛擬機性能得到了顯著的提高,可通過虛擬機管理程序(hypervisor)提供的有限接口實現(xiàn)隔離,控制系統(tǒng)的行為,并設(shè)置安全策略對關(guān)鍵數(shù)據(jù)對象和內(nèi)核執(zhí)行流程進行保護,其權(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)指令會被自動捕獲,并且控制權(quán)被轉(zhuǎn)移到虛擬化模式中的虛擬機監(jiān)視器中。同時,管理模式中寄存器的狀態(tài)會被保存,以便在返回的時候讀取。
在ARMv7-A不再使用快速上下文切換機制(FCSE),該機制不適合多核處理器的存儲管理。VMSA 在ASID的基礎(chǔ)上,地址轉(zhuǎn)換表增加了虛擬機ID(VMID),以保證在進行虛擬機切換時或線程切換時,Cache的一致性問題,因此每次上下文切換處理器只需保存某些模式特定的寄存器,可在保證性能的基礎(chǔ)上也會更加靈活。
為了更好地支持虛擬化的應(yīng)用,在包含虛擬化擴展的MMU實現(xiàn)中,提供兩個階段的地址轉(zhuǎn)換機制。第一階段的轉(zhuǎn)換由虛擬機操作系統(tǒng)實現(xiàn),虛擬機操作系統(tǒng)定義其虛擬地址到內(nèi)部物理地址(IPA)的轉(zhuǎn)換,第二階段的地址轉(zhuǎn)換由虛擬機管理器實現(xiàn),將虛擬機的內(nèi)部物理地址轉(zhuǎn)換為物理地址,也可以通過配置第2階段轉(zhuǎn)換頁表項中的屬性控制位來實現(xiàn)客戶操作系統(tǒng)對內(nèi)存的訪問控制。通過該機制,虛擬機管理器可以重映射虛擬機的地址映射,將客戶物理地址映射為機器物理地址,第二階段的轉(zhuǎn)換對虛擬機操作系統(tǒng)不可見。在包含虛擬化擴展的VMSA中,存儲管理主要有如下特性:
(1)為減少TLB維護操作,VMSA區(qū)分全局頁和線程相關(guān)頁,ASID表示與特定線程相關(guān)的頁,在線程切換時不需要TLB維護操作;
(2)VMID與特定虛擬機關(guān)聯(lián),TLB入口包含了VMID信息,即更改虛擬機不需要刷新TLB,對于階段2的轉(zhuǎn)換,所有轉(zhuǎn)換均與VMID相關(guān),而無全局頁的概念。
2.3 安全模式擴展的地址轉(zhuǎn)換
綜合化的機載嵌入式設(shè)備只需部分應(yīng)用處理一些關(guān)鍵數(shù)據(jù),需考慮設(shè)備的安全問題,ARM公司提出了相應(yīng)的解決方案,即 TrustZone 技術(shù),可抵御許多的特定攻擊,提升系統(tǒng)的安全可靠性[5]。在包含安全擴展的實現(xiàn)中,將地址空間分為安全或非安全的地址空間,處理器運行模式也相應(yīng)劃分為即安全環(huán)境(Secure world)和普通環(huán)境(Normal)。航空電子設(shè)備在關(guān)鍵任務(wù)系統(tǒng)中使用可信計算技術(shù),使得安全環(huán)境中的關(guān)鍵任務(wù)不能被普通環(huán)境的組件所訪問。
在處理器中引入安全擴展后,VMSA的安全擴展則提供了兩個物理地址空間:安全物理地址空間和非安全物理地址空間。對PL1&0階段1的地址轉(zhuǎn)換,轉(zhuǎn)換表基地址寄存器TTBR0、TTBR1及TTBCR在安全和非安全狀態(tài)是分組的。處理器在安全狀態(tài)時,存儲訪問選擇對應(yīng)狀態(tài)的寄存器,使用獨立的安全和非安全轉(zhuǎn)換表的版本,轉(zhuǎn)換表查找在對安全狀態(tài)對應(yīng)的轉(zhuǎn)換表地址空間進行。
3 擴展VMSA應(yīng)用研究
隨著ARM處理器硬件體系結(jié)構(gòu)的升級,擴展的VMSA提供虛擬化擴展、安全擴展、大物理地址擴展,為基于硬件的虛擬化提供了不同的應(yīng)用,主要可展開如下的應(yīng)用。
3.1 多虛擬機的標(biāo)準(zhǔn)通用處理模塊
基于ARM虛擬化擴展及安全擴展的支持下,將硬件虛擬化技術(shù)和系統(tǒng)安全問題結(jié)合起來,通過虛擬機管理程序可以對多個虛擬操作系統(tǒng)進行有效的管理,在標(biāo)準(zhǔn)處理硬件模塊,實現(xiàn)多個虛擬操作系統(tǒng)對標(biāo)準(zhǔn)底層硬件的共享訪問,有利于多種不同設(shè)備的功能整合、減少整機功耗,提供系統(tǒng)的可靠性。
虛擬化可實現(xiàn)以下幾種應(yīng)用:
(1)在通用的處理器平臺管理多個虛擬機,同時運行多個操作系統(tǒng),實現(xiàn)多個模塊的快速整合[6];
(2)把多種負(fù)荷較小的系統(tǒng),通過虛擬化移植到其他統(tǒng)一的硬件平臺;
(3)基于安全性考慮,把容易受到安全攻擊的服務(wù)和內(nèi)核隔離,提供保護;
(4)把不同功能的操作系統(tǒng)運行在一起,由不同的操作系統(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)的各個分區(qū)在空間上保證相互隔離,當(dāng)一個分區(qū)出現(xiàn)問題時,不會影響其他分區(qū)。
在擴展VMSA架構(gòu)的標(biāo)準(zhǔn)通用模塊上,將虛擬化和分區(qū)操作系統(tǒng)相結(jié)合,利用統(tǒng)一的硬件平臺,實現(xiàn)分區(qū)操作系統(tǒng),充分利用VMSA提供的虛擬化機制,將ARINC 653分區(qū)對應(yīng)于一個基于虛擬化處理器模塊中運行的虛擬機, 并可以保證分區(qū)切換時的性能以及Cache一致性,降低應(yīng)用軟件的耦合度[7]。
4 結(jié)束語
嵌入式設(shè)備綜合化發(fā)展的需求,需要利用ARMv7-A 架構(gòu)MMU中增加的擴展功能,以實現(xiàn)設(shè)備的綜合化和安全隔離。本文首先對VMSA的地址轉(zhuǎn)換機制進行研究,在此基礎(chǔ)上對包含安全擴展、虛擬化擴展及大物理地址擴展后的地址轉(zhuǎn)換機制進行分析,最后對利用VMSA的特征在設(shè)備綜合化應(yīng)用進行了分析。對后續(xù)基于ARM平臺的嵌入式設(shè)備的設(shè)計研發(fā)具有一定的應(yīng)用價值。
-
ARM
+關(guān)注
關(guān)注
134文章
9121瀏覽量
368238 -
存儲系統(tǒng)
+關(guān)注
關(guān)注
2文章
413瀏覽量
40886 -
嵌入式設(shè)備
+關(guān)注
關(guān)注
0文章
110瀏覽量
16991
原文標(biāo)題:【學(xué)術(shù)論文】基于ARMv7-A架構(gòu)的虛擬存儲系統(tǒng)技術(shù)研究
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論