Mali200像素處理器和MaliGP2幾何處理器
的ARM Mali圖形解決方案由ARM Mali200像素處理器和MaliGP2可編程幾何處理器組成。它們共同組成了一個完整的OpenGL ES2.0可編程圖形解決方案。
一直以來,3D圖形加速器都需要非常高的存儲器帶寬。Mali系列通過使用小片渲染方案來小化存儲器帶寬。小片渲染也稱為延遲渲染,因為渲染被延遲到多邊形(三角形)的一個完整幀準備好渲染才開始。小片方案將屏幕劃分成若干小片,一次一個小片地渲染到片上的小片存儲器,這意味著采用傳統渲染器時許多需要片外實現的存儲器訪問在使用Mali核時可以保持在片上實現。由于片外存儲器讀取比片上存儲器讀取需要的功耗高一個數量級,因此這樣做有助于降低功耗,對于要求長電池壽命的移動設備來說這是很關鍵的。
小片渲染方法的一個缺點是成本,與簡單的“直接模式”渲染器相比,增加的復雜性將導致更高的邏輯門數,并導致更大的硅片面積和更高的成本。Mali系列使用小片渲染和傳統的“直接模式”渲染結合的獨特方式,因此能同時實現存儲器帶寬和成本/面積的小化,并使Mali內核遠小于競爭性的移動小片渲染器。
Mali系列是由Mali55、新的Mali200和MaliGP2組成,前者實現了OpenGL ES 1.1固定功能渲染API,而Mali200和MaliGP2一起實現了OpenGL ES 1.1 API和OpenGL ES 2.0可編程API。OpenGL ES 2.0 API通過一個可替代OpenGL EX1.1中固定功能管線的可編程渲染管線提供顯著的靈活性和高質量。因此只需很少量的多邊形就可實現很高的質量,從而不僅小化了存儲器帶寬,而且化了圖形質量。
Mali55內核可以從前向光柵實現OpenGL ES 1.1管線。Mali200也是從前向光柵實現OpenGL ES 2.0管線級。MaliGP2則實現了圖形管線的Vertex Shader部分。就像OpenGL ES一樣,Mali內核還能實現其它的API,例如微軟的DirectX Mobile。
圖1:OpenGL ES 1.x固定功能流水線示意圖。
圖2:OpenGL ES 2.0可編程流水線示意圖。
圖3:利用全屏抗鋸齒功能提高圖像質量。
圖像質量、系統集成和數據流
為了充分利用移動電話、PDA和移動GPS設備的小型顯示器,Mali內核提供了全屏反鋸齒(FSAA)功能。FSAA可以減少鋸齒狀圖形,從而改善圖像質量。Mali內核使用了一種正在申請專利的技術,這種技術能實現4倍的反鋸齒效果,而對存儲器帶寬以及幀速率幾乎沒有影響,盡管可以實現16倍的反鋸齒,但是會在一定程度上增加帶寬并降低幀速率。
Mali圖形內核針對統一存儲器架構進行了優化,在這種架構中,單個存儲器子系統可在主處理器和圖形加速器之間共享。Mali內核的主系統接口是AMBA 3 AX主機接口。AMBA 2 APB接口用于編程片上寄存器。對Mali寄存器的訪問量很少,因為每個幀的全部圖形處理命令集中在存儲器內,多只有存儲器中的命令基地址需要重新編程到寄存器內。
需要顯示的圖形對象被分割成許多列三角形,這些三角形由三個用X、Y和Z空間坐標給出的頂點組成。針對MaliGP2的頂點和命令由ARM處理器寫入到存儲器中。MaliGP2對命令和頂點進行處理,將處理后的頂點寫回到主存儲器中(在Mali55中,這是由優化的軟件來處理的)。然后由Mali200對三角形進行光柵化處理-從主存儲器中讀取頂點和命令,一次對一個小片進行渲染。經光柵化處理(或渲染過)的小片被寫入到存儲器中,然后由LCD或VGA控制器讀取和顯示。因為Mali內核具有延遲渲染特點,因此在ARM內核和MaliGP2之間以及在MaliGP和Mali200之間的管線是以一個幀為基礎-產生一個完整的數據幀,并存儲到管線流中每個器件之間的主存儲器中。
與競爭方案相比,Mali圖形內核需要較小的存儲器帶寬,但是存儲器系統帶寬依然很重要。Mali內核設計成與主處理器共享SDRAM。當前的SDRAM器件具有較高的時鐘速度以及較高的理論帶寬,但是延遲時間較長。Mali內核設計成與SDRAM一起工作。來自Mali內核的事務大多數是4個字或8個字串。3D圖形引擎不同于通用的處理器,各個存儲器訪問之間幾乎沒有依賴性。在前一個像素的數據返回之前,可以開始另外一個像素的存儲器事務,因為它們之間沒有依賴性。這樣,3D內核可以發起多個未結束的事務。ARM AMBA 3 AXI非常適合于圖形內核,因為它支持多個未結束的事務。
SDRAM和PL111彩色LCD/VGA控制器
ARM PrimeCell PL340 SDRAM控制器支持SDR和DDR存儲器,包括移動和低功耗類產品,這些產品分別具有時鐘速度高達166MHz的16、32和64比特的總線。典型的移動設備需要使用16比特或32比特、時鐘速度在200和166MHz之間(200到333MHz數據率)的移動型DDR。對于更高性能的系統,ARM PrimeCell PL341 DDRⅡ SDRAM控制器可以支持時鐘速率高達400MHz(800MHz數據速率)的DDRⅡ。為使方案更加完善,ARM(由其Artisan物理IP部門)還提供DDR和DDRⅡ板以及實現完整DDR物理接口(PHY)所需的PLL和DLL。
Mali渲染引擎(Mali200和Mali55)對即將由LCD或視頻控制器顯示的圖形進行渲染,并存儲到存儲器的幀緩存中。ARM PrimeCell PL111彩色LCD控制器支持高達1,024×1,024分辨率的監視器或LCD平面顯示器。除了有源TFT LCD外,它還支持老式的單面板或雙面板STN LCD顯示器。
軟件驅動程序
與Mali內核一起提供的還有針對OpenGL ES2.0、OpenGL ES1.1(為了兼容固定功能API)和OpenVG矢量圖形API的驅動程序。獲得許可的人可以收到他們所選操作系統(Linux、Symbian或Windows Mobile)的驅動程序,也可以獲得針對其它操作系統的驅動程序組(需要另外付費)。除了OpenGL ES外,DirectX Mobile API也將在微軟的Windows Mobile上得到支持。
本文小結
ARM Mali產品為當前的移動手持設備提供了完整二維和三維圖形以及視頻解決方案的基礎。低存儲器帶寬使得Mali解決方案非常適合移動設備使用。但是完整的圖形解決方案光靠一個3D內核是不夠的,ARM提供了一個完整的系統解決方案:軟件驅動程序、在上面運行軟件的處理器、AMBA 3 AXI互聯架構、高吞吐量SDRAM控制器以及LCD/VGA視頻控制器。這些產品綜合在一起為當今的移動設備和嵌入式設備提供了一個完整的低功耗高性能的2D和3D圖形解決方案。