在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

虛擬化概述,Hypervisor簡介

倩倩 ? 來源:算力基建 ? 作者:Erick.X ? 2022-09-09 15:03 ? 次閱讀

01虛擬化概述

1.1驅動力和優勢

虛擬化是一種廣泛使用的技術,支撐了幾乎所有現代云計算和企業基礎設施。開發人員基于虛擬化功能可以在單臺機器上運行多個操作系統,從而完成軟件測試而不會存在破壞主計算環境的風險。虛擬化為芯片和基礎設施帶來了許多特性,包括良好的隔離性、不同資源的可及性、同一資源的工作負載平衡、隔離保護等。 對于汽車芯片,尤其是座艙域SoC,當前的發展趨勢是通過提高集成度來節省成本,因此在同一個SoC芯片上會集成多個操作系統對應的物理資源,這些資源需要在虛擬化環境中安全隔離的情況下共存。具體而言,車載SoC虛擬化需要面臨的要求和挑戰有:

至少三個具有不同安全要求和異構操作系統的域之間的隔離,運行RTOS操作系統的需要滿足ASIL-D安全等級要求的安全島,運行QNX或輕量級Linux操作系統的需要滿足ASIL-B安全等級要求的儀表域,運行Android鴻蒙操作系統的信息和娛樂域系統。

關鍵資源的可及性和工作負載平衡,包括內存、CPU工作線程等,尤其是在GPU或NPU處理巨大工作負載時。在功率約束和內存容量限制下,通過虛擬化來動態保證資源的可用性和靈活性。

1.2Hypervisor簡介

Hypervisor是虛擬化功能最核心的支持組件。Hypervisor主要負責處理虛擬機下陷和管理實際物理資源等功能。Hypervisor主要可以分為兩大類:

原生獨立的Hypervisor,一般稱為Type1 Hypervisor。這類Hypervisor以最高權限運行,控制和管理所有物理資源。在這類Hypervisor運行過程中,與每個虛擬機相關的資源管理和調度功能可以卸載到該虛擬機的操作系統中實現,這樣管理程序可以專注于與虛擬化相關的功能。這類Hypervisor典型的案例有QNX Hypervisor和Xen Hypervisor等。

主操作系統內嵌Hypervisor擴展,一般稱為Type2 Hypervisor,基本管理功能可以通過主機操作系統實現,Hypervisor擴展只專注于虛擬化支持,與主機操作系統配合實現虛擬化功能。這類Hypervisor典型的案例有Linux KVM等。

對應于ARM異常處理體系結構,通常虛擬機操作系統的應用程序或用戶空間處于EL0安全等級。虛擬機操作系統的內核態空間處于EL1安全等級。為了支持虛擬化擴展引入EL2安全等級。具體安全等級細分如下圖所示:

對于Type1 Hypervisor:屬于虛擬機操作系統用戶態空間在EL0安全等級,虛擬機操作系統內核態在EL1安全等級,獨立的Hypervisor在EL2安全等級。

對于Type2 hypervisor:虛擬機操作系統用戶態空間和宿主機操作系統的用戶態空間都在EL0 安全等級,虛擬機操作系統內核態在EL1安全等級。帶有Hypervisor擴展的宿主機操作系統內核態空間在EL2安全等級。

3387f8a8-300c-11ed-ba43-dac502259ad0.png

圖1. Hypervisor類型和對應ARM異常處理等級 從不失一般性出發,后續章節將以 QNX Hypervisor相關的軟件實現和基于ARMv8.0體系結構的硬件實現作為典型示例來介紹當前虛擬化的主要問題和解決方案。根據虛擬化場景的功能劃分,當前主流座艙SoC的虛擬化大致可以分為三類:

用于VM管理和執行的CPU虛擬化;

用于內存空間分離和管理的內存虛擬化;

以及用于設備配置和管理的設備虛擬化。

02CPU虛擬化

2.1CPU虛擬化概述

CPU或處理器可以為VM提供虛擬處理器的抽象,并執行特定VM的相應指令。通常來說,Hypervisor管理程序直接在物理CPU上執行,占用物理資源并直接使用物理CPU的ISA。而虛擬機操作系統基于虛擬處理器的抽象占用相關資源并執行相關指令,除了需要更高權限的動作外,大部分場景也可以直接使用物理CPU資源和物理CPU的ISA。 Hypervisor和VM的協同管理是通過虛擬機下陷機制實現的,通常這種下陷是VM或應用需要更高的權限才能執行的時候會產生。在ARM架構中,上面介紹的對虛擬化的異常處理等級,VM和應用程序最多可以擁有EL1權限,因此對于不允許執行的指令,將觸發虛擬機陷阱。詳細流程如下:

通常情況下,VM在物理CPU上運行其指令,與沒有Hypervisor的情況下一樣;

當虛擬機操作系統或應用程序試圖執行一條超出執行權限的指令時,觸發虛擬機下陷,虛擬機操作系統做上下文切換,切到Hypervisor程序;

發生虛擬機陷阱后,Hypervisor接管現場,并保存虛擬機的上下文,之后處理虛擬機操作系統開啟的任務;

當Hypervisor完成任務后,恢復VM的上下文并將執行權限交還給VM。

33ae96de-300c-11ed-ba43-dac502259ad0.png

圖2. 虛擬機下陷機制和處理流程 虛擬機抽象和下陷處理機制將在后續QNX Hypervisor和ARM體系結構中進一步介紹。

2.2QNX虛擬機和虛擬處理器支持

QNX Hypervisor軟件架構中資源和組件的詳細層次結構如下圖所示,從Hypervisor作為操作系統視角來看,各個VM需要通過例化qvm進程來在Hypervisor操作系統用戶態空間中注冊。在配置某個VM時,會根據規范創建一個對應的qvm進程并進行配置,用以指定該VM的組件,包括虛擬虛擬處理器vCPU、虛擬設備、內存管理頁表配置等。

33d60c0a-300c-11ed-ba43-dac502259ad0.png

圖3. QNXHypervisor資源層級示意圖 在Hypervisor正常運行期間,qvm 進程實例需要執行以下操作:

捕獲從虛擬機出入的訪問嘗試,并根據類型進行相應的處理;

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

在物理CPU重新執行某個VM之前恢復該VM的上下文;

負責虛擬化相關故障處理;

執行確保虛擬機完整性所需的維護程序。

在一個qvm進程被例化的同時,會在進程內實例化多個vCPU線程、虛擬設備列表和Stage2頁表,分別用于應用線程抽象、虛擬設備抽象和內存虛擬化抽象。對于vCPU抽象,QNX Hypervisor遵循基于優先級的vCPU共享模型,其中優先級包括qvm進程優先級和vCPU線程優先級。在Hypervisor運行規則中,qvm進程的相對優先級和qvm 進程內的 vCPU調度線程的優先級層次化地決定哪個vCPU可以訪問物理CPU。但是映射過程和后續執行過程中,VM中運行的內容和數據對于Hypervisor來說是完全的黑盒。Hypervisor僅確保在基于 vCPU的優先級和調度策略共享物理CPU時,較高優先級的vCPU將始終搶占較低優先級的vCPU。除此之外的虛擬設備列表和Stage2頁表將在后續章節介紹。

2.3ARM 虛擬機和虛擬處理器支持

ARM架構中的下陷機制是通過異常處理來實現的。如上文所述,通常虛擬機操作系統的應用程序或用戶空間處于EL0安全等級。虛擬機操作系統的內核態空間處于EL1安全等級。Hypervisor處于EL2安全等級。如下如左邊所示,當超出EL1安全等級的VM或者應用程序指令執行時,將向 EL2級別的Hypervisor發出異常下陷,交由Hypervisor來處理異常,然后通過上下文切換返回到EL1安全等級的VM。 下圖右邊示例了一個CPU捕獲WFI的處理過程。執行等待中斷WFI指令通常會使物理CPU進入低功耗狀態。通過注入斷言TWI信號,如果滿足HCR_EL2.TWI==1,則在EL0或EL1安全等級上執行WFI將導致異常并下陷到EL2安全等級上處理。在此示例中,VM通常會在空閑循環中執行WFI,而Hypervisor可以捕獲此類下陷動作,并調度不同的vCPU到這個物理CPU,而不是直接進入低功耗狀態。

34174170-300c-11ed-ba43-dac502259ad0.png

圖4. 下陷機制和WFI下陷示例 在ARM體系結構中,vCPU一般代表虛擬的處理單元,每個vCPU在Hypervisor中需要例化對應的vCPU線程。VM對應的是Hypervisor中例化的qvm進程,會包含一個或者多個vCPU線程。

342b017e-300c-11ed-ba43-dac502259ad0.png

圖5. ARM虛擬機和虛擬處理器層級關系

03內存虛擬化

3.1內存虛擬化概述

內存虛擬化配合CPU虛擬化,可以保證所有VM都有獨立的內存空間,并嚴格按照權限進行隔離。而內存虛擬化的關鍵要求是地址管理,根據上下文配置和控制各個VM對物理內存的訪問。 內存虛擬化通常是與通過內存分配和釋放的管理相結合來實現的。從硬件實現視角,通常的內存虛擬化是通過控制兩級地址翻譯來實現的。Hypervisor和VM的內存分配和釋放機制都和典型的操作系統內部內存分配和釋放的機制類似,使用基于分級頁表實現內存管理。

3.2 ARM內存管理體系

ARM架構中采用基于頁表的兩級地址翻譯機制。通常來說,第一層級轉換將虛擬地址VA轉換為中間物理地址IPA,這一層級地址翻譯由操作系統管理和控制。而第二層級地址翻譯則將中間物理地址IPA轉換為物理地址PA,這一層級地址翻譯由Hypervisor管理和控制。這兩個階段的翻譯是相互獨立,互不干擾的。如下圖6所示,連續的虛擬頁地址可以映射到離散的中間物理頁中的地址,而離散的中間物理頁地址可以映射到連續的物理頁地址。

344c3e2a-300c-11ed-ba43-dac502259ad0.png

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

位于非安全EL0/EL1安全等級中的虛擬機操作系統虛擬內存映射空間;

位于非安全EL2安全等級中的Hypervisor虛擬內存映射空間;

位于EL3安全等級中的安全監視器虛擬內存映射空間。

這些虛擬地址空間都是相互獨立的,并且每個內存空間都有獨立的配置和頁表。圖示的兩級頁表可以比較完整地支持內存虛擬化功能,其中Stage1虛擬機操作系統頁表可以將虛擬地址轉換為中間物理地址,包括串口設備地址、內存地址和存儲設備地址,而Stage2虛擬化頁表,結合Hypervisor頁表和安全監視器頁表,可以將中間物理地址轉換為合法的物理地址。

347cedc2-300c-11ed-ba43-dac502259ad0.png

圖7. ARMv8典型的兩級地址空間 在AArch64架構中,物理地址通常為48bits,頁表大小通常為4KB或者64KB,為避免頁表空間太大,通常采用4級頁表劃分,按照地址段進行頁表項查詢。下圖為4級頁表和第一層級地址翻譯示例,具體內容本文不再贅述。

34e553b2-300c-11ed-ba43-dac502259ad0.png

圖8. AArch64 4級頁表和第一層級地址翻譯示例

04設備虛擬化

4.1設備虛擬化概述

虛擬化中Device的概念可以概括為系統中除了運行Hypervisor和VM的處理器之外的可訪問內存的設備。在座艙芯片中,典型的Device類型可以總結為:

軟件模擬虛擬化設備:借助軟件模擬或硬件虛擬化的方法捕捉原生驅動,之后在Hypervisor內模擬虛擬設備的行為,所有虛擬機都通過管理程序陷阱與該設備交互;

半虛擬化設備:為所有虛擬機模擬一個實際的物理設備,所有虛擬機都可以通過一次下陷與該設備進行批處理調用;

直通設備:被虛擬化環境中的特定虛擬機完全獨占;

共享設備:可以供一個VM使用,也可以供一個或多個VM和Hypervisor本身使用。

后續章節將詳細介紹QNX Hypervisor中設備虛擬化的具體實現以及在ARM體系結構下對于設備虛擬化的支持。

4.2QNX設備虛擬化支持

QNX Hypervisor中的設備可以歸納為:

物理設備,包括直通設備和共享設備,

虛擬設備,包括全虛擬化和半虛擬化設備。

如前面所述,QNX Hypervisor在為VM配置和實例化qvm進程時,需要將物理設備和虛擬設備vdev配置給qvm進程和VM。下圖為QNX Hypervisor中對于不同種類設備虛擬化的支持。

35150738-300c-11ed-ba43-dac502259ad0.png

圖9. QNXHypervisor中的設備虛擬化支持 對于直通設備,VM具有直接且獨占的訪問權限,并且Hypervisor主機操作系統將被繞過。這類直通設備的驅動程序也將由VM直接擁有。對于直通設備,Hypervisor只需要將來自物理設備的中斷直接路由到對應的VM,并將來自VM的所有信號直接傳遞到對應的設備。所有交互都在VM和設備之間,Hypervisor需要識別并允許通過來自設備的中斷和來自來VM的信號。直通設備的典型示例是 PCIe、以太網等。 對于共享設備,這些設備可以被多個訪客使用,典型示例是共享內存。QNX Hypervisor支持兩種不同類型的設備共享,引用共享和中介共享:

引用共享:共享設備作為直通設備分配給一個特定的VM,該VM也管理該設備的驅動程序,其他授權的VM將通過虛擬設備訪問該設備。

中介共享:所有授權的VM通過虛擬設備訪問該設備,Hypervisor控制該設備并管理驅動程序。

對于虛擬設備,QNX Hypervisor支持全虛擬化和半虛擬化設備,用來隔離系統上物理設備之間的直接通信

全虛擬化設備/軟件模擬虛擬化設備:為VM模擬實際物理設備的虛擬設備。使用此類設備時,VM不需要知道它在虛擬化環境中運行。根據物理設備的類型,全虛擬化設備可以自己處理所有事務,也可以充當VM和實際物理設備之間的中介。典型示例包括中斷控制器GIC、計時器Timer等。

半虛擬化設備:與全虛擬化設備相比,半虛擬化設備可以通過單次異常下陷批量處理設備調用,從而提高效率,減少因為虛擬化而額外引入的異常下陷下陷。QNX Hypervisor支持基于VirtIO1.0標準的半虛擬化設備,包括典型的塊設備、I/O 設備、控制臺、GPU、DPU、ISP等。

4.3ARM設備虛擬化支持

ARM架構中針對設備虛擬化提供了多方位的支持,其中主要的機制包括系統內存管理單元SMMU和支持虛擬化的中斷控制器GIC。 對于SoC系統中除處理器以外的設備,尤其是DMA控制器或具有DMA控制器的設備,在虛擬化場景下由VM分配時,可以通過SMMU保證地址轉換和OS級別的內存保護。下圖左圖顯示了操作系統視角下不帶虛擬化支持的DMA控制器。DMA控制器將通過主機操作系統內核空間中的驅動程序進行編程,該驅動程序將根據MMU單元為DMA配置物理地址。但是在虛擬化環境中,特定VM的視角下,直通DMA只能基于該VM所對應的第一層級MMU做地址翻譯,從而只能配置中間物理。因此,下圖右圖顯示了用于該 DMA 控制器的虛擬化支持的系統內存管理單元SMMU,可以在支持VM直接配置直通DMA。所有的內存訪問都可以通過管理程序主機編程的SMMU從IPA轉換為PA,以確保VM和DMA都是基于IPA進行地址操作而保持統一的視角。

354fa974-300c-11ed-ba43-dac502259ad0.png

圖10. ARM架構中SMMU對設備虛擬化的支持 從Arm GICv2開始,如下圖所示,GIC可以通過提供物理CPU接口和虛擬CPU接口來發出物理和虛擬中斷信號。從GIC功能來看,這兩個接口是相同的,區別是一個發出物理中斷信號而另一個發出虛擬中斷信號。Hypervisor可以將虛擬CPU接口映射到VM,允許該VM中的軟件直接與GIC通信。這個機制的優點是Hypervisor只需要設置虛擬接口,而不需要采用全虛擬化的方式來支持GIC。可以減少中斷下陷的次數,從而減少中斷虛擬化的開銷。

357b976e-300c-11ed-ba43-dac502259ad0.png

圖11. ARM架構中GIC對設備虛擬化的支持

05結語

虛擬化正迅速成為現代車載場景軟件架構中的一項關鍵技術,尤其是座艙SoC當前面臨著安全隔離、靈活性和高利用率的挑戰。Hypervisor軟件與硬件虛擬化擴展的配合,可以讓座艙場景中的虛擬化特性更加高效、安全。

審核編輯 :李倩

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

    關注

    68

    文章

    10889

    瀏覽量

    212383
  • 操作系統
    +關注

    關注

    37

    文章

    6859

    瀏覽量

    123501
  • 虛擬化
    +關注

    關注

    1

    文章

    375

    瀏覽量

    29823

原文標題:虛擬化:提升座艙算力效率

文章出處:【微信號:算力基建,微信公眾號:算力基建】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RAID 5 在虛擬環境中的應用

    和可擴展性。然而,虛擬環境對存儲系統提出了更高的要求,包括性能、可靠性和可擴展性。RAID(獨立磁盤冗余陣列)技術作為一種提高存儲系統性能和可靠性的方法,在虛擬環境中發揮著重要作用
    的頭像 發表于 12-27 17:18 ?378次閱讀

    黑莓QNX Hypervisor斬獲GGAI年度標桿產品獎

    近日,歷時三天的第八屆高工智能汽車年會在上海圓滿閉幕。大會第一天,黑莓QNX大中華區首席代表董淵文先生帶來了精彩的“車規級操作系統—汽車電子軟件的基石”的分享。大會第三天,高工智能宣布QNX Hypervisor(虛擬)產品斬
    的頭像 發表于 12-14 16:57 ?501次閱讀

    如何在windows上emulate不同操作系統

    一、虛擬技術概述 虛擬技術允許在單個物理機器上創建多個虛擬機,每個
    的頭像 發表于 12-05 15:50 ?252次閱讀

    云計算中的虛擬技術應用

    云計算中的虛擬技術是一種將計算機物理實體(如服務器、存儲設備、網絡設備)通過軟件技術劃分為多個虛擬實體的技術,每個虛擬實體可以獨立運行操作系統和應用程序。以下是關于云計算中
    的頭像 發表于 10-24 09:22 ?861次閱讀

    基于DPU的輕量虛擬化解決方案

    機上都會運行宿主機以及虛擬的系統軟件。這些系統軟件負責為用戶提供虛擬的計算環境,包括虛擬CPU、虛擬內存、
    的頭像 發表于 10-14 14:57 ?947次閱讀
    基于DPU的輕量<b class='flag-5'>虛擬</b>化解決方案

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+ Hypervisor應用場景調研

    繼續研讀《嵌入式Hypervisor:架構、原理與應用》,想搞清楚Hypervisor的具體應用場景,是否能用于我們的嵌入式產品設計。 通過閱讀“Hypervisor類型和產品”一節,知道了
    發表于 10-14 11:21

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+ 了解Hypervisor

    被稱為主管(Supervisor),而虛擬機監控程序用來托管主管,稱為超級主管,即Hypervisor,也被稱為虛擬機管理器。看來Hypervisor是用來實現主機
    發表于 10-13 16:47

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+全文學習心得

    Hypervisor是一種在嵌入式系統中實現虛擬技術的關鍵組件,它能夠在同一硬件平臺上并行運行多個操作系統或應用程序,提供資源隔離、管理和優化。通過引入時空域隔離的虛擬機,嵌入式
    發表于 10-09 19:11

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+第7-8章學習心得

    提供了安全、可靠和高效的虛擬環境。同時,嵌入式Hypervisor的設計還注重解決容錯性和實時性問題,為構造高可靠的嵌入式系統提供了全面的保障。 其次,我在學習過程中深刻體會到了嵌入式
    發表于 10-09 18:50

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+第三四章閱讀報告

    : PRTOS Hypervisor架構 :了解了PRTOS Hypervisor如何通過模塊設計,將虛擬功能與RTOS的實時性、可靠
    發表于 10-09 18:29

    【「嵌入式Hypervisor:架構、原理與應用」閱讀體驗】+第一二章讀后感

    的全面而深入的基礎介紹。以下是對這兩章的讀后感: 首先,第一章從虛擬技術的基本知識入手,詳細解釋了CPU虛擬、I/O虛擬
    發表于 10-09 18:22

    嵌入式Hypervisor:架構、原理與應用 閱讀體驗 +Hypervisor基礎概念

    本章詳細介紹了虛擬技術的基本概念、實現方式以及應用領域,著重介紹了嵌入式虛擬技術的特點、面臨的挑戰以及具體的解決方案。嵌入式Hypervisor
    的頭像 發表于 10-08 15:08 ?642次閱讀
    嵌入式<b class='flag-5'>Hypervisor</b>:架構、原理與應用 閱讀體驗 +<b class='flag-5'>Hypervisor</b>基礎概念

    學習hypervisor嵌入式產品安全設計

    第一部分(第1~2章)介紹Hypervisor基礎,涵蓋虛擬技術與實現、主流的嵌入式Hypervisor產品,以及基于分離內核的嵌入式Hyperv
    發表于 08-25 09:11

    名單公布!【書籍評測活動NO.42】 嵌入式Hypervisor:架構、原理與應用

    工作日內未聯系,視為放棄本次試用評測資格! 內容簡介 本書由資深虛擬專家撰寫,輔以大量驗證式案例,提供參考源碼,更有項目開源社區提供支持。本書從解讀虛擬
    發表于 08-23 15:17

    康佳特在其x86計算機模塊集成Hypervisor簡化系統整合

    全新隨插即用方案簡化虛擬實時IIoT平臺的設置? ? 2024/0 2 /0 1 中國上海 * * * 嵌入式和邊緣計算技術的領先供應商德國康佳特,宣布將虛擬技術
    發表于 02-01 11:25 ?375次閱讀
    康佳特在其x86計算機模塊集成<b class='flag-5'>Hypervisor</b>簡化系統整合
    主站蜘蛛池模板: 精品黄色片| 免费一级毛片在线播放| 国产秦先生大战白丝97在线| 午夜高清免费在线观看| 爱我免费视频观看在线www| 成人a级特黄毛片| 午夜看片| 理论片国产| 黄色大片在线视频| 久婷婷| 午夜骚| 日韩一级一欧美一级国产| 一级日本大片免费观看视频| 亚洲入口无毒网址你懂的| 亚洲黄站| 综合99| 手机看片1024国产基地| 毛片爱爱| 91色欧美| 国产精品99r8在线观看 | 天堂8在线官网| 国产午夜久久精品| xxxx大片| 亚洲视频久久| 你懂的网站在线观看| 成人免费精品视频| 免费在线黄网| 欲妇放荡叫床很浪的小说| 在线中文字幕一区| 一级做a爱免费观看视频| 三级免费观看| 欧美日韩一日韩一线不卡| 国产精品永久免费| 深夜影院一级毛片| 欧美性操| 中文字幕视频一区| 一个人看的www片免费高清视频| 日日噜噜噜夜夜爽爽狠狠图片| 国产你懂| 九九精品在线| 2016天天干|