嵌入式系統(tǒng)中的圖形處理技術(shù)(如用戶界面和游戲)正在不斷發(fā)展和改善,例如從基于2D的交互圖形發(fā)展到基于3D的交互圖形。便攜式游戲站(PSP)這樣的便攜式設(shè)備就實現(xiàn)了PlayStation 2類3D圖形質(zhì)量。而在PC圖形方面,可以讓開發(fā)人員在頂點和片段層級配置功能的可編程著色方案已經(jīng)成為DirectX和OpernGL API基礎(chǔ)架構(gòu)的主要方案,這類硬件在像Xbox360和PlayStation 3這樣的游戲設(shè)備上已經(jīng)形成了非常豐富的內(nèi)容和經(jīng)驗。然而嵌入式系統(tǒng)中的圖形處理存在著很多問題和挑戰(zhàn)需要開發(fā)人員去解決,例如為了保持長電池壽命所需的低功耗,因為空間約束要使系統(tǒng)的器件數(shù)量最少,以及限制門的數(shù)量以降低成本。
Khronos Group公司正在定義針對嵌入式領(lǐng)域的各種媒體API,目前已經(jīng)發(fā)布了一種圖形API,即OpenGL ES。該OpenGL ES共有1.x和2.x兩個版本,分別針對固定圖形管線和可編程圖形管線,這種方法與PC圖形中用的方法是一樣的。
DMP圖形內(nèi)核概述
DMP為嵌入式領(lǐng)域中的便攜式設(shè)備、移動電話、汽車導航系統(tǒng)、娛樂游戲機和所有其它嵌入式圖形設(shè)備提供了可擴展的高性能、低功耗3D圖形內(nèi)核。PICA200是最新的3D圖形IP內(nèi)核,涵蓋了前面提到的所有應用領(lǐng)域。
該內(nèi)核由多個組件組成,包括OpenGL ES標準功能以及我們自己最初的圖形技術(shù)。這些組件是根據(jù)用戶要求以及帶有定制要素(如性能、存儲器帶寬和功耗)的目標系統(tǒng)構(gòu)建的。在選擇IP接口方案時,很難設(shè)定在這么寬的應用范圍下用戶的具體要求。在采用開放內(nèi)核協(xié)議(OCP)作為我們組件的標準總線接口方面DMP一直做得非常成功。
Maestro技術(shù)
通過采用OpenGL ES 1.1和我們自己的、被稱為Maestro的擴展圖形API,圖形內(nèi)核已經(jīng)取得了很好的高性能低功耗效果。這些Maestro功能包括了各種目標應用中頻繁使用和實用的圖形功能,包括各種光照和明暗處理模型,例如Phong、Cook-Torrance和BRDF、陰影效應、多邊形細分以及過程紋理。
1:Maestro功能、光照、陰影和微粒效果
Maestro功能利用我們改進的最初算法以硬連線邏輯形式實現(xiàn),從而解決了嵌入式系統(tǒng)設(shè)計中低功耗與高性能的矛盾。Maestro功能可以實現(xiàn)非常豐富的內(nèi)容,比如PC和便攜式設(shè)備上的控制臺圖形(圖1)。
Maestro功能包括以下一些效果:
1. 光照Maestro-包括按照每個片斷的高性能光照功能,并支持各種明暗處理模型,如Phong、同向/異向 BRD以及下表面散射;
2. 陰影Maestro-支持實時的硬陰影和軟陰影處理;
3. 形狀Maestro-通過用硬件(例如NURBS和多邊形細分)產(chǎn)生精細的多邊形來減少存儲器帶寬,因此可以使輸入數(shù)據(jù)量實現(xiàn)最小化;
4. 映像Maestro-支持凹凸映像和過程紋理,并且過程紋理不需要任何存儲器讀取來生成紋理圖像,因為圖像是根據(jù)算術(shù)等式產(chǎn)生的;
5. 微粒Maestro-用硬件產(chǎn)生霧化、云和氣體效果。
圖1:由Futuremark和DMP合作開發(fā)的PICA200演示場景。
圖2:只使用OpenGL ES的渲染結(jié)果(左邊)以及用OpenGL ES 和我們的Maestro API后的渲染結(jié)果(右邊)
圖3:利用我們的陰影Maestro API實現(xiàn)的實時軟陰影渲染。
圖4:使用形狀Maestro的多邊形細分實例。左邊的圖形顯示了來自主CPU的輸入控制多邊形,右邊的圖形顯示了我們的圖形硬件實時產(chǎn)生的多邊形。
圖5:映像Maestro實例(左邊:針對每個片段光照的凹凸映像,右邊:利用沒有任何紋理存儲器訪問的過程紋理硬件實現(xiàn)的木紋圖案)。
圖6:微粒 Maestro可以產(chǎn)生霧化、云和氣體效果。在我們的渲染算法中,清晰和模糊對象的組合沒有任何的瑕疵。
2:硬件框圖
這些Maestro技術(shù)通過算法優(yōu)化以及多個研究機構(gòu)的長期研究得以實現(xiàn)。目前我們正在向嵌入式系統(tǒng)引入PC級的圖形和經(jīng)驗。
硬件框圖
下面是圖形內(nèi)核的框圖。
在圖7中的所有紅色箭頭都指向了采用OCP的存儲器總線接口。
圖7:PICA200框圖。
在開發(fā)PICA200內(nèi)核的過程中解決了以下一些挑戰(zhàn):
1)為了涵蓋所有嵌入式系統(tǒng),IP內(nèi)核必須支持各種運行光譜的設(shè)備,包括從帶微型顯示屏的移動電話到帶很大顯示器的娛樂設(shè)備。
2)3D圖形硬件需要極大的帶寬用于命令、紋理、色彩和z緩沖器讀/寫訪問,而這種帶寬將確定3D IP內(nèi)核的性能,并且
3)IP內(nèi)核應能很容易地集成到SoC系統(tǒng)環(huán)境中。
為解決所有這些問題,我們決定采用OCP作為我們構(gòu)建模塊方案的標準接口基礎(chǔ)架構(gòu)。結(jié)果是,我們可以提供下面的選項來滿足用戶的需求(表1)。
以移動電話系統(tǒng)為例,要求支持OpenGL ES功能和VGA顯示器尺寸,功耗應該最小,因此在這種情況下,頂點處理器和紋理管線的數(shù)量需要分別優(yōu)化為兩個(當然這里的數(shù)量僅僅是一個例子)。Maestro功能的實現(xiàn)并不僅僅支持Open ES,因為在大量的蜂窩電話中不需要非標準的功能。紋理緩存參數(shù)也可以針對SoC總線特性進行優(yōu)化,因為事實上這些參數(shù)是由OCP標準自動提供的。在像娛樂游戲機這樣的應用中,所有Maestro功能都需要組件來支持更高質(zhì)量和吸引人的內(nèi)容以及高性能和大顯示器尺寸。
我們還采用了利用OCP線程協(xié)議的預取機制。這對于避免渲染管線的停頓以保持很高的渲染性能來說是很重要的。表2給出了在該圖形內(nèi)核中線程ID分配的實例,在這個例子中,內(nèi)核共有四個紋理模塊。
OCP2.2支持標示哪個線程允許失序響應,但是這個特殊DMP內(nèi)核并不支持失序處理,因為對色彩和深度緩沖器的訪問需要使用基于讀-修改-寫鎖定的訪問,對其它的訪問沒有針對失序訪問支持的邏輯和FIFO,以便生成小型IP內(nèi)核及支持上述各種應用。為了在沒有標示功能條件下獲得較好的存儲器訪問性能,這種圖形內(nèi)核針對基于模塊化的光柵化處理進行了優(yōu)化,所有從三角函數(shù)產(chǎn)生的象素都要通過4X4這樣的矩形塊處理,以便通過長突發(fā)長度訪問和數(shù)據(jù)訪問跟上對齊地址而充分利用存儲器訪問,并為紋理和色彩緩沖器獲得較高的緩存利用率。
3:OCP好處
使用OCP的最大好處是廣泛使用的行業(yè)標準是開放的,任何人都能得到。此外,大多數(shù)主要的SoC銷售商利用和支持OCP。這樣一來,我們可以根據(jù)協(xié)議在我們的接口和緩存中定義某些參數(shù),以優(yōu)化我們的用戶總線訪問接口和系統(tǒng)參數(shù),就像表1中的最后一行,這為IP提供商和SoC供應商同時提供了一種高層次的構(gòu)建模塊概念。
本文小結(jié)
這種內(nèi)核最早是在SIGGRAPH 2006上發(fā)布的(圖8),目前PICA200構(gòu)建內(nèi)核已經(jīng)能夠供貨。
圖8:在SIGGRAPH 2006上的FPGA原型展示。
我們多年來一直在為嵌入式應用開發(fā)3D圖形技術(shù),而利用OCP可以減少開發(fā)這種技術(shù)的時間和成本。對于IP內(nèi)核和SoC供應商來說,系統(tǒng)整合工作是一項非常耗時的工作。PICA200內(nèi)核不僅支持各種嵌入式應用,還通過利用基于OCP的構(gòu)建模塊方案優(yōu)化了每個系統(tǒng)的性能。OCP提供了能夠滿足上述設(shè)計挑戰(zhàn)所需的完整規(guī)范和基礎(chǔ)架構(gòu)。
責任編輯:gt
-
嵌入式
+關(guān)注
關(guān)注
5059文章
18975瀏覽量
302085 -
存儲器
+關(guān)注
關(guān)注
38文章
7435瀏覽量
163522 -
電池
+關(guān)注
關(guān)注
84文章
10408瀏覽量
128677
發(fā)布評論請先 登錄
相關(guān)推薦
評論