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