過去的幾年里,虛擬化的概念——將軟件從承載其的硬件中分離出來——已經為許多人所熟知。在本文中,我們將描述虛擬化是什么,看看它在PowerVR GPU中是如何工作的,并解釋它是如何給各種市場(尤其是汽車行業)帶來巨大的利益。
對于電腦來說,目前的虛擬化技術能夠讓一臺計算機同時運行多個操作系統,例如,一個開發人員可以在Microsoft Windows主機上運行一個Linux“訪客”操作系統,而對于企業而言,它通常用來整合工作負載以減少CapEx和OpEx。在嵌入式平臺上,虛擬化技術的主要目的則是在降低成本的同時通過分離確保安全性。
當涉及到GPU時,虛擬化提供了支持多個操作系統同時運行的能力,每個操作系統都能夠將圖形工作負載提交給底層的圖形硬件實體。這在汽車領域變得越來越重要。例如,通過將一些要求嚴格的系統比如ADAS(高級駕駛輔助系統)和數字化顯示面板分別放在完全獨立域內以保證他們安全獨立的運行。
為了打破它,虛擬化GPU需要執行如下操作:
? 管理程序(Hypervisor):這基本上是為訪客操作系統提供共享虛擬硬件平臺(在本例中為GPU硬件)并管理客戶操作系統托管的軟件實體。
? 主機操作系統(Host OS)——相比訪客操作系統,主機操作系統具有完整的驅動程序并且對底層硬件具有更高級的控制能力。
? 訪客操作系統(Guest OS):由虛擬機管理程序托管的具有操作系統的虛擬機,可以是一個或多個,它們可以共享底層可用的硬件資源。
硬件虛擬化 vs 半虛擬化
自Series6系列GPU內核以來,PowerVR已經具備高級的、完整的硬件虛擬化特性,并且在Series8XT中得到了進一步的增強,我們將在本文后面深入討論這個細節。通過完全虛擬化,這意味著管理程序下運行的每個訪客操作系統都不會意識到它正與其他訪客操作系統和主機操作系統共享GPU資源。每個訪客系統都具有完整的驅動程序,并且可以以獨立和并發的方式直接向底層硬件提交任務。這種方式的好處是在處理不同“訪客”的任務提交時不會再有管理程序的開銷,從而也減少了向GPU提交任務的等待時間,因此具有更高的利用率。
這與半虛擬化解決方案有所不同,在半虛擬化方式中,訪客操作系統能夠意識到它們是虛擬化的并且與其他訪客系統共享底層硬件資源。這種情況下訪客系統需要通過管理程序(Hypervisor)提交任務,整個系統必須作為一個內聚單元協同工作。該解決方案的缺點是管理程序(運行在CPU上)的開銷過高,任務提交延遲過長,這潛在的降低了底層GPU硬件的有效利用率。此外,還需要修改訪客操作系統(添加額外的功能)以使得它們能夠通過管理程序進行通信。
GPU虛擬化使用案例:
GPU虛擬化應用案例很多,下面列舉的主要集中在嵌入式市場:
? 汽車
? 數字電視(DTV)/機頂盒(STB)
? 物聯網(IoT)/可穿戴設備
? 智能手機/平板電腦
我們在這篇文章中討論的虛擬化主要集中在汽車方面,因為在這個市場,虛擬化將會帶來很多的好處。它有特定的要求,這使它成為比較復雜的市場之一,對于這方面的內容你可以參考我們的白皮書。
為什么汽車市場需要虛擬化?
GPU虛擬化正在成為汽車行業的必備需求。大多數一級代理商和OEM廠商都選擇加入更多的ADAS功能,在新款汽車中多個高分辨率的顯示器也變得越來越普遍。
隨著汽車越來越自動化,ADAS的功能也隨之增加。這些功能在計算上十分復雜,而現在GPU強大的并行計算能力使得它們能夠很好的處理這些任務。于此同時,儀表板集群和信息娛樂設備(在儀表板和后排座位處)以及擋風玻璃上更高分辨率的顯示正在成為發展趨勢。
汽車系統虛擬化環境中支持多個應用程序展示
面向汽車行業
那么,為什么PowerVR虛擬化特性如此適合汽車呢?從本質上講,這是因為它提供了一系列解決多種問題的特性,例如,硬件穩健性以實現最大的安全性和服務質量,以確保持續的性能,同時確保硬件的最大硬件利用率。
隔離
首先讓我們看看基本的隔離方式,這是不同操作系統(OS)及其對應的應用程序之間的隔離,這些應用程序通過分離應用程序來提供安全性,當然這是虛擬化基本的好處之一。
下面的視頻演示了這個特性,視頻中顯示的是一個操作系統,一個顯示關鍵信息比如速度、警示燈等的顯示器,并在其旁邊有一個導航應用程序,這是一個不太重要的操作系統,先是衛星導航應用程序崩潰(人為),緊隨其后是“內核崩潰”,然后是全面的重啟。我們要注意的關鍵點是這些并不會影響運行在其他操作系統上的儀表板顯示應用;它繼續完全不間斷的工作,另外請注意,一旦這個操作系統重新啟動,它就能再次無縫的向GPU提交任務。
服務質量:保證性能水平
汽車行業的關鍵要求之一是要求一個或多個關鍵應用程序/操作系統得到足夠的資源來提供所需的性能。在PowerVR上,這是通過優先級機制實現的,GPU中一個專用的微控制器(MCU)處理調度并對每個操作系統的優先級進行設置(如果需要也可以設置每個操作系統中應用程序/工作負載的優先級)。當更高優先級操作系統的工作負載提交給GPU時,低優先級操作系統的工作負載會從上下文中切換出來。
在簡單的術語中,“上下文切換”是當前操作在盡可能早的時間點暫停的地方,所需的數據會被保存出來以便在稍后的時間點恢復操作時使用。
在本次演示中使用的Series6XT(第一代PowerVR GPU支持完全硬件虛擬化)平臺最早可能使用的時間點是:
? 幾何處理:調用繪制粒度
? 像素處理:貼片粒度
? 計算處理:工作組粒度
一旦更高優先級操作系統的工作復雜完成后,較低優先級的工作負載就會恢復并完成,這個特性有助于確保關鍵的更高優先級的工作負載獲得所需的GPU資源,從而保證所需性能要求。
下面的視頻演示了這一點,視頻中在GPU上運
更進一步:Series 8XT增強虛擬化
第一個支持完全硬件虛擬化的PowerVR系列是Series6XT,上文中所有視頻/演示使用的都是Series 6XT平臺。在本節,我們將討論在Series8XT如何進一步增強,并提供了一些新特性和增強功能。
上下文切換細粒度
在Series8XT上,中上下文切換可以更細粒度地執行,從而確保更快速的上下文切換,在較低優先級的工作負載和較高優先級的工作負載之間的切換,上下文切換細粒度目前主要是:
? 頂點處理:原始粒度
? 像素處理:次平鋪或最壞情況下回到貼片粒度
每個數據主的終止
在優先級較低的應用沒有在定義的時間范圍內切換上下文的情況下,這時需要根據數據主(計算、頂點或像素處理)采用DoS機制終止某個集成或者將應用程序進行軟件復位。前幾代只支持計算終止,而頂點和像素處理則需要軟復位,因此如果與不安全的低優先級應用程序重疊運行,則會影響高優先級的工作負載。在Series8XT中,現在所有數據主都可以被終止,確保即使高優先級/關鍵的工作負載與需要結束的應用程序重疊時也不會受到影響。
每個SPU工作負載的提交控制
得益于此特性,一個特定的應用程序就可以在GPU中為它自己的可擴展處理單元(SPU)執行它的工作負載。例如,有利于汽車中基于計算的長時間運行的ADAS應用,在應用程序中可以不間斷的運行自己的專用SPU,而其他應用程序,可能來自于其他操作系統,則使用另一種機制(比如基于上下文切換的更高優先級任務)分享剩余的GPU資源。
緊密集成二級MMU
上一代的GPU采用一級MMU,因此要求SoC供應商設計并實現二級/系統級MMU或相似的機制來支持虛擬化。現在Series8XT已經在GPU中集成了二級MMU,這帶來了以下好處:
? 優化設計并與一級MMU緊密耦合,實現低延遲并提高效率
? 降低SoC供應商的開發難度,使產品更快的上市
? 在管理應用程序中對于可用的實體設置對應的獨立軟件
? 支持全/雙向相干支持,提高性能并減少系統帶寬
? 從本質上說,可以在虛擬化環境中提供更高級別的保護和更小的細粒度(頁界,計算機專用名詞)安全支持
總結
PowerVR GPU集成的硬件虛擬化技術非常的有效,非常適合并滿足汽車行業的許多需求。我們最新的Series8XT GPU已經證明了這一點,它進一步加強了它的功能,以幫助實現下一代車載信息娛樂和自動駕駛, 安全且經濟高效。
-
gpu
+關注
關注
28文章
4729瀏覽量
128890 -
powervr
+關注
關注
0文章
98瀏覽量
31061
發布評論請先 登錄
相關推薦
評論