基于ARM和FPGA架構的三維圖形加速系統(tǒng)
隨著圖形處理的巨額運算量,CPU變得不堪重負。此時,需要使用特定的硬件設備來為嵌入式CPU承擔圖形處理的任務。
具有三維圖形硬件加速能力的ARM+FPGA架構嵌入式圖形系統(tǒng)就是其中一種解決方案。其中,ARM處理器負責運行嵌入式操作系統(tǒng)、執(zhí)行上層圖形應用程序,而三維圖形處理所需的大量運算則由FPGA實現(xiàn)的GPU(圖形處理單元)進行。
圖形API簡介
在圖形系統(tǒng)中預先定義了一組圖形API,作為一個抽象層將圖形應用程序和圖形系統(tǒng)的具體實現(xiàn)隔離開來。具體的圖形應用程序都將通過這些圖形API來完成所有與繪制圖形相關的工作。這樣,同樣的應用程序就可以在不同的目標圖形系統(tǒng)上運行。
目前應用較為廣泛的標準圖形API主要有Direct3D和OpenGL。OpenGL定義了與具體硬件實現(xiàn)無關的軟件接口,并且不受制于具體的窗體系統(tǒng)。
本文選用23條OpenGL中最常用的API作為本系統(tǒng)的圖形API。在執(zhí)行應用程序時,具體的圖形API被轉換成GPU可以處理的渲染列表數據格式,從而將計算任務轉交由GPU完成,實現(xiàn)對三維圖形處理的硬件加速。
系統(tǒng)硬件設計
系統(tǒng)硬件結構
本文設計的嵌入式圖形系統(tǒng)由基于ARM處理器的最小系統(tǒng)、FPGA實現(xiàn)的圖形加速、LCD控制器等功能模塊,以及常用外設接口電路組成,如圖1所示?! ?/P>
基于ARM處理器的最小系統(tǒng)是本系統(tǒng)的核心模塊,主要由嵌入式處理器、系統(tǒng)內存SDRAM和FLASH存儲器組成。SDRAM為處理器運行操作系統(tǒng)和執(zhí)行應用程序提供內存空間,F(xiàn)LASH用來存放系統(tǒng)引導代碼、操作系統(tǒng)內核和應用程序。
圖形加速模塊是使用FPGA實現(xiàn)的嵌入式GPU,是系統(tǒng)能夠實現(xiàn)硬件加速的關鍵部件。它通過內部圖形處理流水線處理CPU生成的渲染列表,并最終形成像素數據寫入幀緩沖SRAM中供LCD進行顯示。該模塊在三維圖形處理中使用固定功能的圖形處理流水線,如圖2所示?! ?/P>
圖形加速模塊在一片SRAM中生成完整幀數據后將其控制權交給LCD控制器,并使用另一片SRAM繼續(xù)下一幀數據的計算。在新的一幀數據完成后便再次與LCD控制器交換控制權。LCD控制器通過SRAM仲裁模塊從當前顯示的幀緩存中讀出幀數據,生成符合LCD顯示屏要求的時序,完成三維數據的顯示。
系統(tǒng)中存在兩組LCD總線。一組是ARM處理器提供的LCD總線,用來顯示嵌入式操作系統(tǒng)的圖形用戶界面;另一組是進行三維圖像顯示的LCD控制器的LCD總線??偩€切換模塊負責兩類總線的切換,將合適的LCD總線掛接到LCD屏上進行顯示。
評論