丰满女人又夹又紧又丰满/国产精品久久久久久久久福交 /黄色va视频/姜恩惠的29分钟激情视频

English服務(wù)熱線:400-610-7333
北京金支點(diǎn)參加2025服貿(mào)會(huì) 聚焦AI與數(shù)字化轉(zhuǎn)型前沿技術(shù)“AI+”智能運(yùn)維:重塑運(yùn)維范式 AI驅(qū)動(dòng)的自愈IT系統(tǒng):IT運(yùn)維邁向智能自治時(shí)代 AI時(shí)代運(yùn)維范式重構(gòu):新華三AIO3.0以全域能力實(shí)現(xiàn)價(jià)值躍遷 中老鐵路國(guó)際多式聯(lián)運(yùn)信息服務(wù)平臺(tái)上線 全“芯”亮相!海光信息加速智慧鐵路新進(jìn)程 “鐵路車(chē)輛運(yùn)維智能監(jiān)控?cái)?shù)據(jù)平臺(tái)”通過(guò)驗(yàn)收并實(shí)現(xiàn)產(chǎn)業(yè)化 【云南】賦能跨境物流高質(zhì)量發(fā)展 ——“中老鐵路國(guó)際多式聯(lián)運(yùn)信息服務(wù)平臺(tái)”正式上線 西安鐵路局深化標(biāo)準(zhǔn)化規(guī)范化建設(shè) 助推企業(yè)發(fā)展提質(zhì)增效 國(guó)內(nèi)首創(chuàng)重載鐵路基礎(chǔ)設(shè)施智能運(yùn)維技術(shù)在國(guó)家能源集團(tuán)發(fā)布 以科技創(chuàng)新賦能交通強(qiáng)國(guó)建設(shè)的鐵路先鋒單杏花 國(guó)際權(quán)威報(bào)告:OceanBase位列中國(guó)分布式數(shù)據(jù)庫(kù)本地部署第一 x86處理器2025Q2市場(chǎng)份額報(bào)告:AMD在臺(tái)式機(jī)PC市場(chǎng)份額創(chuàng)下新高 2025全球及中國(guó)云計(jì)算市場(chǎng)規(guī)模、產(chǎn)業(yè)鏈、發(fā)展驅(qū)動(dòng)因素報(bào)告信通院發(fā)布《云計(jì)算藍(lán)皮書(shū) (2025年)》 IDC:2024年中國(guó)政務(wù)云市場(chǎng)規(guī)模達(dá)939.4億元
首頁(yè)  >  資訊動(dòng)態(tài)  >  IT服務(wù)快訊
全面總結(jié)虛擬化技術(shù),CPU、內(nèi)存、設(shè)備虛擬化 2024-03-11 14:14  消息來(lái)源:人人極客社區(qū)

01 虛擬化概述

1.1 驅(qū)動(dòng)力和優(yōu)勢(shì)

 

虛擬化是一種廣泛使用的技術(shù),支撐了幾乎所有現(xiàn)代云計(jì)算和企業(yè)基礎(chǔ)設(shè)施。

開(kāi)發(fā)人員基于虛擬化功能可以在單臺(tái)機(jī)器上運(yùn)行多個(gè)操作系統(tǒng),從而完成軟件測(cè)試而不會(huì)存在破壞主計(jì)算環(huán)境的風(fēng)險(xiǎn)。

虛擬化為芯片和基礎(chǔ)設(shè)施帶來(lái)了許多特性,包括良好的隔離性、不同資源的可及性、同一資源的工作負(fù)載平衡、隔離保護(hù)等。

對(duì)于汽車(chē)芯片,尤其是座艙域SoC,當(dāng)前的發(fā)展趨勢(shì)是通過(guò)提高集成度來(lái)節(jié)省成本,因此在同一個(gè)SoC芯片上會(huì)集成多個(gè)操作系統(tǒng)對(duì)應(yīng)的物理資源,這些資源需要在虛擬化環(huán)境中安全隔離的情況下共存。

具體而言,車(chē)載SoC虛擬化需要面臨的要求和挑戰(zhàn)有:

  • 至少三個(gè)具有不同安全要求和異構(gòu)操作系統(tǒng)的域之間的隔離,運(yùn)行RTOS操作系統(tǒng)的需要滿足ASIL-D安全等級(jí)要求的安全島,運(yùn)行QNX或輕量級(jí)Linux操作系統(tǒng)的需要滿足ASIL-B安全等級(jí)要求的儀表域,運(yùn)行Android或鴻蒙操作系統(tǒng)的信息和娛樂(lè)域系統(tǒng)。



  • 關(guān)鍵資源的可及性和工作負(fù)載平衡,包括內(nèi)存、CPU工作線程等,尤其是在GPUNPU處理巨大工作負(fù)載時(shí)。在功率約束和內(nèi)存容量限制下,通過(guò)虛擬化來(lái)動(dòng)態(tài)保證資源的可用性和靈活性。

1.2 Hypervisor簡(jiǎn)介

 

Hypervisor是虛擬化功能最核心的支持組件。Hypervisor主要負(fù)責(zé)處理虛擬機(jī)下陷和管理實(shí)際物理資源等功能。Hypervisor主要可以分為兩大類(lèi):

·     原生獨(dú)立的Hypervisor,一般稱(chēng)為Type1 Hypervisor。這類(lèi)Hypervisor以最高權(quán)限運(yùn)行,控制和管理所有物理資源。

在這類(lèi)Hypervisor運(yùn)行過(guò)程中,與每個(gè)虛擬機(jī)相關(guān)的資源管理和調(diào)度功能可以卸載到該虛擬機(jī)的操作系統(tǒng)中實(shí)現(xiàn),這樣管理程序可以專(zhuān)注于與虛擬化相關(guān)的功能。這類(lèi)Hypervisor典型的案例有QNX HypervisorXen Hypervisor等。



  • 主操作系統(tǒng)內(nèi)嵌Hypervisor擴(kuò)展,一般稱(chēng)為Type2 Hypervisor,基本管理功能可以通過(guò)主機(jī)操作系統(tǒng)實(shí)現(xiàn),Hypervisor擴(kuò)展只專(zhuān)注于虛擬化支持,與主機(jī)操作系統(tǒng)配合實(shí)現(xiàn)虛擬化功能。這類(lèi)Hypervisor典型的案例有Linux KVM等。


對(duì)應(yīng)于ARM異常處理體系結(jié)構(gòu),通常虛擬機(jī)操作系統(tǒng)的應(yīng)用程序或用戶空間處于EL0安全等級(jí)。
虛擬機(jī)操作系統(tǒng)的內(nèi)核態(tài)空間處于EL1安全等級(jí)。為了支持虛擬化擴(kuò)展引入EL2安全等級(jí)。具體安全等級(jí)細(xì)分如下圖所示:

  • 對(duì)于Type1 Hypervisor:屬于虛擬機(jī)操作系統(tǒng)用戶態(tài)空間在EL0安全等級(jí),虛擬機(jī)操作系統(tǒng)內(nèi)核態(tài)在EL1安全等級(jí),獨(dú)立的HypervisorEL2安全等級(jí)。



  • 對(duì)于Type2 hypervisor:虛擬機(jī)操作系統(tǒng)用戶態(tài)空間和宿主機(jī)操作系統(tǒng)的用戶態(tài)空間都在EL0 安全等級(jí),虛擬機(jī)操作系統(tǒng)內(nèi)核態(tài)在EL1安全等級(jí)。帶有Hypervisor擴(kuò)展的宿主機(jī)操作系統(tǒng)內(nèi)核態(tài)空間在EL2安全等級(jí)。

1. Hypervisor類(lèi)型和對(duì)應(yīng)ARM異常處理等級(jí)
從不失一般性出發(fā),后續(xù)章節(jié)將以 QNX Hypervisor相關(guān)的軟件實(shí)現(xiàn)和基于ARMv8.0體系結(jié)構(gòu)的硬件實(shí)現(xiàn)作為典型示例來(lái)介紹當(dāng)前虛擬化的主要問(wèn)題和解決方案。
根據(jù)虛擬化場(chǎng)景的功能劃分,當(dāng)前主流座艙SoC的虛擬化大致可以分為三類(lèi):

·     用于VM管理和執(zhí)行的CPU虛擬化;

·     用于內(nèi)存空間分離和管理的內(nèi)存虛擬化;

  • 以及用于設(shè)備配置和管理的設(shè)備虛擬化。

02 CPU虛擬化

 

2.1 CPU虛擬化概述

 

CPU或處理器可以為VM提供虛擬處理器的抽象,并執(zhí)行特定VM的相應(yīng)指令。通常來(lái)說(shuō),Hypervisor管理程序直接在物理CPU上執(zhí)行,占用物理資源并直接使用物理CPUISA
而虛擬機(jī)操作系統(tǒng)基于虛擬處理器的抽象占用相關(guān)資源并執(zhí)行相關(guān)指令,除了需要更高權(quán)限的動(dòng)作外,大部分場(chǎng)景也可以直接使用物理CPU資源和物理CPUISA
Hypervisor
VM的協(xié)同管理是通過(guò)虛擬機(jī)下陷機(jī)制實(shí)現(xiàn)的,通常這種下陷是VM或應(yīng)用需要更高的權(quán)限才能執(zhí)行的時(shí)候會(huì)產(chǎn)生。
ARM架構(gòu)中,上面介紹的對(duì)虛擬化的異常處理等級(jí),VM和應(yīng)用程序最多可以擁有EL1權(quán)限,因此對(duì)于不允許執(zhí)行的指令,將觸發(fā)虛擬機(jī)陷阱。詳細(xì)流程如下:

·     通常情況下,VM在物理CPU上運(yùn)行其指令,與沒(méi)有Hypervisor的情況下一樣;

·     當(dāng)虛擬機(jī)操作系統(tǒng)或應(yīng)用程序試圖執(zhí)行一條超出執(zhí)行權(quán)限的指令時(shí),觸發(fā)虛擬機(jī)下陷,虛擬機(jī)操作系統(tǒng)做上下文切換,切到Hypervisor程序;

·     發(fā)生虛擬機(jī)陷阱后,Hypervisor接管現(xiàn)場(chǎng),并保存虛擬機(jī)的上下文,之后處理虛擬機(jī)操作系統(tǒng)開(kāi)啟的任務(wù);

  • 當(dāng)Hypervisor完成任務(wù)后,恢復(fù)VM的上下文并將執(zhí)行權(quán)限交還給VM




2. 虛擬機(jī)下陷機(jī)制和處理流程
虛擬機(jī)抽象和下陷處理機(jī)制將在后續(xù)QNX HypervisorARM體系結(jié)構(gòu)中進(jìn)一步介紹。

 

2.2 QNX虛擬機(jī)和虛擬處理器支持

 

QNX Hypervisor軟件架構(gòu)中資源和組件的詳細(xì)層次結(jié)構(gòu)如下圖所示,從Hypervisor作為操作系統(tǒng)視角來(lái)看,各個(gè)VM需要通過(guò)例化qvm進(jìn)程來(lái)在Hypervisor操作系統(tǒng)用戶態(tài)空間中注冊(cè)。
在配置某個(gè)VM時(shí),會(huì)根據(jù)規(guī)范創(chuàng)建一個(gè)對(duì)應(yīng)的qvm進(jìn)程并進(jìn)行配置,用以指定該VM的組件,包括虛擬虛擬處理器vCPU、虛擬設(shè)備、內(nèi)存管理頁(yè)表配置等。

3. QNX Hypervisor資源層級(jí)示意圖
Hypervisor正常運(yùn)行期間,qvm 進(jìn)程實(shí)例需要執(zhí)行以下操作:

·     捕獲從虛擬機(jī)出入的訪問(wèn)嘗試,并根據(jù)類(lèi)型進(jìn)行相應(yīng)的處理;

·     在切換物理CPU之前保存VM的上下文;

·     在物理CPU重新執(zhí)行某個(gè)VM之前恢復(fù)該VM的上下文;

·     負(fù)責(zé)虛擬化相關(guān)故障處理;

  • 執(zhí)行確保虛擬機(jī)完整性所需的維護(hù)程序。


在一個(gè)qvm進(jìn)程被例化的同時(shí),會(huì)在進(jìn)程內(nèi)實(shí)例化多個(gè)vCPU線程、虛擬設(shè)備列表和Stage2頁(yè)表,分別用于應(yīng)用線程抽象、虛擬設(shè)備抽象和內(nèi)存虛擬化抽象。
對(duì)于vCPU抽象,QNX Hypervisor遵循基于優(yōu)先級(jí)的vCPU共享模型,其中優(yōu)先級(jí)包括qvm進(jìn)程優(yōu)先級(jí)和vCPU線程優(yōu)先級(jí)。
Hypervisor運(yùn)行規(guī)則中,qvm進(jìn)程的相對(duì)優(yōu)先級(jí)和qvm 進(jìn)程內(nèi)的 vCPU調(diào)度線程的優(yōu)先級(jí)層次化地決定哪個(gè)vCPU可以訪問(wèn)物理CPU
但是映射過(guò)程和后續(xù)執(zhí)行過(guò)程中,VM中運(yùn)行的內(nèi)容和數(shù)據(jù)對(duì)于Hypervisor來(lái)說(shuō)是完全的黑盒。Hypervisor僅確保在基于 vCPU的優(yōu)先級(jí)和調(diào)度策略共享物理CPU時(shí),較高優(yōu)先級(jí)的vCPU將始終搶占較低優(yōu)先級(jí)的vCPU
除此之外的虛擬設(shè)備列表和Stage2頁(yè)表將在后續(xù)章節(jié)介紹。

 

2.3 ARM 虛擬機(jī)和虛擬處理器支持

 

ARM架構(gòu)中的下陷機(jī)制是通過(guò)異常處理來(lái)實(shí)現(xiàn)的。如上文所述,通常虛擬機(jī)操作系統(tǒng)的應(yīng)用程序或用戶空間處于EL0安全等級(jí)。
虛擬機(jī)操作系統(tǒng)的內(nèi)核態(tài)空間處于EL1安全等級(jí)。Hypervisor處于EL2安全等級(jí)。
如下如左邊所示,當(dāng)超出EL1安全等級(jí)的VM或者應(yīng)用程序指令執(zhí)行時(shí),將向 EL2級(jí)別的Hypervisor發(fā)出異常下陷,交由Hypervisor來(lái)處理異常,然后通過(guò)上下文切換返回到EL1安全等級(jí)的VM
下圖右邊示例了一個(gè)CPU捕獲WFI的處理過(guò)程。執(zhí)行等待中斷WFI指令通常會(huì)使物理CPU進(jìn)入低功耗狀態(tài)。
通過(guò)注入斷言TWI信號(hào),如果滿足HCR_EL2.TWI==1,則在EL0EL1安全等級(jí)上執(zhí)行WFI將導(dǎo)致異常并下陷到EL2安全等級(jí)上處理。
在此示例中,VM通常會(huì)在空閑循環(huán)中執(zhí)行WFI,而Hypervisor可以捕獲此類(lèi)下陷動(dòng)作,并調(diào)度不同的vCPU到這個(gè)物理CPU,而不是直接進(jìn)入低功耗狀態(tài)。
4. 下陷機(jī)制和WFI下陷示例
ARM體系結(jié)構(gòu)中,vCPU一般代表虛擬的處理單元,每個(gè)vCPUHypervisor中需要例化對(duì)應(yīng)的vCPU線程。VM對(duì)應(yīng)的是Hypervisor中例化的qvm進(jìn)程,會(huì)包含一個(gè)或者多個(gè)vCPU線程。

5. ARM虛擬機(jī)和虛擬處理器層級(jí)關(guān)系

 

03 內(nèi)存虛擬化

 

3.1 內(nèi)存虛擬化概述

 

內(nèi)存虛擬化配合CPU虛擬化,可以保證所有VM都有獨(dú)立的內(nèi)存空間,并嚴(yán)格按照權(quán)限進(jìn)行隔離。而內(nèi)存虛擬化的關(guān)鍵要求是地址管理,根據(jù)上下文配置和控制各個(gè)VM對(duì)物理內(nèi)存的訪問(wèn)。
內(nèi)存虛擬化通常是與通過(guò)內(nèi)存分配和釋放的管理相結(jié)合來(lái)實(shí)現(xiàn)的。從硬件實(shí)現(xiàn)視角,通常的內(nèi)存虛擬化是通過(guò)控制兩級(jí)地址翻譯來(lái)實(shí)現(xiàn)的。
Hypervisor
VM的內(nèi)存分配和釋放機(jī)制都和典型的操作系統(tǒng)內(nèi)部?jī)?nèi)存分配和釋放的機(jī)制類(lèi)似,使用基于分級(jí)頁(yè)表實(shí)現(xiàn)內(nèi)存管理。

3.2 ARM內(nèi)存管理體系


ARM
架構(gòu)中采用基于頁(yè)表的兩級(jí)地址翻譯機(jī)制。
通常來(lái)說(shuō),第一層級(jí)轉(zhuǎn)換將虛擬地址VA轉(zhuǎn)換為中間物理地址IPA,這一層級(jí)地址翻譯由操作系統(tǒng)管理和控制。
而第二層級(jí)地址翻譯則將中間物理地址IPA轉(zhuǎn)換為物理地址PA,這一層級(jí)地址翻譯由Hypervisor管理和控制。這兩個(gè)階段的翻譯是相互獨(dú)立,互不干擾的。
如下圖6所示,連續(xù)的虛擬頁(yè)地址可以映射到離散的中間物理頁(yè)中的地址,而離散的中間物理頁(yè)地址可以映射到連續(xù)的物理頁(yè)地址。

6. 兩級(jí)地址翻譯機(jī)制
下圖7顯示了ARMv8架構(gòu)的典型兩級(jí)地址空間。其中,虛擬地址空間主要代表有:

·     位于非安全EL0/EL1安全等級(jí)中的虛擬機(jī)操作系統(tǒng)虛擬內(nèi)存映射空間;

·     位于非安全EL2安全等級(jí)中的Hypervisor虛擬內(nèi)存映射空間;

  • 位于EL3安全等級(jí)中的安全監(jiān)視器虛擬內(nèi)存映射空間。


這些虛擬地址空間都是相互獨(dú)立的,并且每個(gè)內(nèi)存空間都有獨(dú)立的配置和頁(yè)表。
圖示的兩級(jí)頁(yè)表可以比較完整地支持內(nèi)存虛擬化功能,其中Stage1虛擬機(jī)操作系統(tǒng)頁(yè)表可以將虛擬地址轉(zhuǎn)換為中間物理地址,包括串口設(shè)備地址、內(nèi)存地址和存儲(chǔ)設(shè)備地址,而Stage2虛擬化頁(yè)表,結(jié)合Hypervisor頁(yè)表和安全監(jiān)視器頁(yè)表,可以將中間物理地址轉(zhuǎn)換為合法的物理地址。

7. ARMv8典型的兩級(jí)地址空間
AArch64架構(gòu)中,物理地址通常為48bits,頁(yè)表大小通常為4KB或者64KB,為避免頁(yè)表空間太大,通常采用4級(jí)頁(yè)表劃分,按照地址段進(jìn)行頁(yè)表項(xiàng)查詢(xún)。
下圖為4級(jí)頁(yè)表和第一層級(jí)地址翻譯示例,具體內(nèi)容本文不再贅述。

8. AArch64 4級(jí)頁(yè)表和第一層級(jí)地址翻譯示例

04 設(shè)備虛擬化



4.1 設(shè)備虛擬化概述

 

虛擬化中Device的概念可以概括為系統(tǒng)中除了運(yùn)行HypervisorVM的處理器之外的可訪問(wèn)內(nèi)存的設(shè)備。在座艙芯片中,典型的Device類(lèi)型可以總結(jié)為:

  • 軟件模擬虛擬化設(shè)備:借助軟件模擬或硬件虛擬化的方法捕捉原生驅(qū)動(dòng),之后在Hypervisor內(nèi)模擬虛擬設(shè)備的行為,所有虛擬機(jī)都通過(guò)管理程序陷阱與該設(shè)備交互;



  • 半虛擬化設(shè)備:為所有虛擬機(jī)模擬一個(gè)實(shí)際的物理設(shè)備,所有虛擬機(jī)都可以通過(guò)一次下陷與該設(shè)備進(jìn)行批處理調(diào)用;

  • 直通設(shè)備:被虛擬化環(huán)境中的特定虛擬機(jī)完全獨(dú)占;



  • 共享設(shè)備:可以供一個(gè)VM使用,也可以供一個(gè)或多個(gè)VMHypervisor本身使用。


后續(xù)章節(jié)將詳細(xì)介紹QNX Hypervisor中設(shè)備虛擬化的具體實(shí)現(xiàn)以及在ARM體系結(jié)構(gòu)下對(duì)于設(shè)備虛擬化的支持。

4.2 QNX設(shè)備虛擬化支持

 

QNX Hypervisor中的設(shè)備可以歸納為:

·     物理設(shè)備,包括直通設(shè)備和共享設(shè)備,

  • 虛擬設(shè)備,包括全虛擬化和半虛擬化設(shè)備。


如前面所述,QNX Hypervisor在為VM配置和實(shí)例化qvm進(jìn)程時(shí),需要將物理設(shè)備和虛擬設(shè)備vdev配置給qvm進(jìn)程和VM
下圖為QNX Hypervisor中對(duì)于不同種類(lèi)設(shè)備虛擬化的支持。
9. QNX Hypervisor中的設(shè)備虛擬化支持
對(duì)于直通設(shè)備,VM具有直接且獨(dú)占的訪問(wèn)權(quán)限,并且Hypervisor主機(jī)操作系統(tǒng)將被繞過(guò)。這類(lèi)直通設(shè)備的驅(qū)動(dòng)程序也將由VM直接擁有。
對(duì)于直通設(shè)備,Hypervisor只需要將來(lái)自物理設(shè)備的中斷直接路由到對(duì)應(yīng)的VM,并將來(lái)自VM的所有信號(hào)直接傳遞到對(duì)應(yīng)的設(shè)備。
所有交互都在VM和設(shè)備之間,Hypervisor需要識(shí)別并允許通過(guò)來(lái)自設(shè)備的中斷和來(lái)自來(lái)VM的信號(hào)。直通設(shè)備的典型示例是 PCIe、以太網(wǎng)等。
對(duì)于共享設(shè)備,這些設(shè)備可以被多個(gè)訪客使用,典型示例是共享內(nèi)存。QNX Hypervisor支持兩種不同類(lèi)型的設(shè)備共享,引用共享和中介共享:

  • 引用共享:共享設(shè)備作為直通設(shè)備分配給一個(gè)特定的VM,該VM也管理該設(shè)備的驅(qū)動(dòng)程序,其他授權(quán)的VM將通過(guò)虛擬設(shè)備訪問(wèn)該設(shè)備。



  • 中介共享:所有授權(quán)的VM通過(guò)虛擬設(shè)備訪問(wèn)該設(shè)備,Hypervisor控制該設(shè)備并管理驅(qū)動(dòng)程序。


對(duì)于虛擬設(shè)備,QNX Hypervisor支持全虛擬化和半虛擬化設(shè)備,用來(lái)隔離系統(tǒng)上物理設(shè)備之間的直接通信:

·     全虛擬化設(shè)備/軟件模擬虛擬化設(shè)備:為VM模擬實(shí)際物理設(shè)備的虛擬設(shè)備。使用此類(lèi)設(shè)備時(shí),VM不需要知道它在虛擬化環(huán)境中運(yùn)行。

根據(jù)物理設(shè)備的類(lèi)型,全虛擬化設(shè)備可以自己處理所有事務(wù),也可以充當(dāng)VM和實(shí)際物理設(shè)備之間的中介。典型示例包括中斷控制器GIC、計(jì)時(shí)器Timer等。



·     半虛擬化設(shè)備:與全虛擬化設(shè)備相比,半虛擬化設(shè)備可以通過(guò)單次異常下陷批量處理設(shè)備調(diào)用,從而提高效率,減少因?yàn)樘摂M化而額外引入的異常下陷下陷。

QNX Hypervisor支持基于VirtIO1.0標(biāo)準(zhǔn)的半虛擬化設(shè)備,包括典型的塊設(shè)備、I/O 設(shè)備、控制臺(tái)、GPUDPUISP等。

 

4.3 ARM設(shè)備虛擬化支持


ARM
架構(gòu)中針對(duì)設(shè)備虛擬化提供了多方位的支持,其中主要的機(jī)制包括系統(tǒng)內(nèi)存管理單元SMMU和支持虛擬化的中斷控制器GIC
對(duì)于SoC系統(tǒng)中除處理器以外的設(shè)備,尤其是DMA控制器或具有DMA控制器的設(shè)備,在虛擬化場(chǎng)景下由VM分配時(shí),可以通過(guò)SMMU保證地址轉(zhuǎn)換和OS級(jí)別的內(nèi)存保護(hù)
下圖左圖顯示了操作系統(tǒng)視角下不帶虛擬化支持的DMA控制器。
DMA
控制器將通過(guò)主機(jī)操作系統(tǒng)內(nèi)核空間中的驅(qū)動(dòng)程序進(jìn)行編程,該驅(qū)動(dòng)程序?qū)⒏鶕?jù)MMU單元為DMA配置物理地址。
但是在虛擬化環(huán)境中,特定VM的視角下,直通DMA只能基于該VM所對(duì)應(yīng)的第一層級(jí)MMU做地址翻譯,從而只能配置中間物理。
因此,下圖右圖顯示了用于該 DMA 控制器的虛擬化支持的系統(tǒng)內(nèi)存管理單元SMMU,可以在支持VM直接配置直通DMA
所有的內(nèi)存訪問(wèn)都可以通過(guò)管理程序主機(jī)編程的SMMUIPA轉(zhuǎn)換為PA,以確保VMDMA都是基于IPA進(jìn)行地址操作而保持統(tǒng)一的視角。

10. ARM架構(gòu)中SMMU對(duì)設(shè)備虛擬化的支持
Arm GICv2開(kāi)始,如下圖所示,GIC可以通過(guò)提供物理CPU接口和虛擬CPU接口來(lái)發(fā)出物理和虛擬中斷信號(hào)。
GIC功能來(lái)看,這兩個(gè)接口是相同的,區(qū)別是一個(gè)發(fā)出物理中斷信號(hào)而另一個(gè)發(fā)出虛擬中斷信號(hào)。Hypervisor可以將虛擬CPU接口映射到VM,允許該VM中的軟件直接與GIC通信。
這個(gè)機(jī)制的優(yōu)點(diǎn)是Hypervisor只需要設(shè)置虛擬接口,而不需要采用全虛擬化的方式來(lái)支持GIC。可以減少中斷下陷的次數(shù),從而減少中斷虛擬化的開(kāi)銷(xiāo)。

11. ARM架構(gòu)中GIC對(duì)設(shè)備虛擬化的支持

 

05 結(jié)語(yǔ)

 

虛擬化正迅速成為現(xiàn)代車(chē)載場(chǎng)景軟件架構(gòu)中的一項(xiàng)關(guān)鍵技術(shù),尤其是座艙SoC當(dāng)前面臨著安全隔離、靈活性和高利用率的挑戰(zhàn)。

Hypervisor軟件與硬件虛擬化擴(kuò)展的配合,可以讓座艙場(chǎng)景中的虛擬化特性更加高效、安全。

 

 

 

 

服務(wù)熱線:400-610-7333 | 郵箱:service@gpos.cn | 電話:8610-82564561/71 | 傳真:8610-82564561-8025 | 京ICP備18017976號(hào) | 京公網(wǎng)安備 11010802036102號(hào)北京金支點(diǎn)技術(shù)服務(wù)有限公司保留所有權(quán)利 | Copyright ? 2005-2025 Beijing Golden Point Outsourcing Service Co., Ltd. All Rights Reserved.