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