複製鏈接
請複製以下鏈接發送給好友

圖形處理單元

鎖定
圖形處理單元是指3D引擎的關鍵模塊。本模塊處理的命令可分為配置信息命令、堆棧操作命令、清除緩衝區命令、累積緩衝區命令、片段數據和非本單元使用的命令6 種。所以將本模塊劃分成6個部分來實現,如 “CAC 模塊”所示。命令解析部分負責命令的初步解析和分派,配置信息部分負責配置信息命令的解析和保存,堆棧操作部分負責堆棧操作命令的解析和參數的存取,清除部分負責清除緩衝區命令的解析和清除處理,累積部分負責累積緩衝區命令的解析和累積操作,讀數據部分負責本模塊和後續模塊所需目標信息的讀取,發送部分負責發送處理好的數據和非本單元處理的命令。
中文名
圖形處理單元
所屬學科
計算機
領    域
3D圖形
釋    義
3D引擎的關鍵模塊
範    圍
計算機系統

圖形處理單元簡介

在多元化應用需求的推動下,半導體製造工藝水平飛速發展,計算機系統的功能和性能極大地豐富和提高。圖形處理器( Graphic Processing Unit,GPU) 作為計算機顯示系統的核心,具有強大的數據計算能力,以硬件加速器的形式實現了二維/三維( Two Dimension /Three Dimension,2D/3D) 圖形處理、圖像處理和顯示控制等功能,將通用CPU從複雜的圖形算法和繪製中解放出來,已經成為幾乎所有類型計算機系統的標準配置。
片段處理單元( Fragment Operation Unit,FOU) 是GPU 3D 引擎的關鍵模塊,處於3D圖形流水線的末端,承擔着合併和輸出圖形的任務。更為重要的是,FOU決定了實現3D圖形特殊顯示效果的能力,例如,圖形的透明效果、抗鋸齒處理、佈告板技術、景深效果、運動模糊等技術均需要FOU的支持。在高端GPU中,集成FOU的數量越來越多,並以陣列方式加速對海量圖元片段的處理。可見,FOU是GPU中不可或缺的關鍵模塊,具有重要的研究價值和實用意義 [1] 

圖形處理單元清除和累積操作單元

本模塊處理的命令可分為配置信息命令、堆棧操作命令、清除緩衝區命令、累積緩衝區命令、片段數據和非本單元使用的命令6 種。所以將本模塊劃分成6個部分來實現,如 “CAC 模塊”所示。命令解析部分負責命令的初步解析和分派,配置信息部分負責配置信息命令的解析和保存,堆棧操作部分負責堆棧操作命令的解析和參數的存取,清除部分負責清除緩衝區命令的解析和清除處理,累積部分負責累積緩衝區命令的解析和累積操作,讀數據部分負責本模塊和後續模塊所需目標信息的讀取,發送部分負責發送處理好的數據和非本單元處理的命令。
配置信息命令由命令解析電路發送到配置信息部分,配置信息電路對相應的參數解析並將信息保存到配置寄存器中供其他操作使用; 堆棧操作命令由命令解析電路發送到堆棧操作部分,堆棧操作電路接收到堆棧操作命令後,會進行配置信息的保存( 壓棧) 或讀取( 出棧);清除操作命令由命令解析電路發送到清除部分,由清除操作電路產生寫緩衝區的座標地址和數據,並將數據發送出去;累積操作命令由命令解析電路發送到累積操作部分,由累積操作電路產生新的座標地址和數據,並將數據發送出去;當命令解析部分接收到片段數據時,若後續模塊的處理需要目標片段值,則發送到讀數據部分讀取目標片段,否則將命令直接發送;不是本單元所需的命令將其直接發送出去。以上所有的數據和命令最終都由發送部分傳送到下一級流水線單元 [2] 

圖形處理單元片段測試單元

本單元將接收到的命令分流成兩部分,一部分進行配置信息相關的操作,另一部分進行測試處理。這兩部分數據最終都將會以命令的形式發送出去。另外,在參數配置的過程中會出現對配置信息的堆棧操作。將片段測試的處理劃分為輸入選擇、配置參數、片上存儲、測試處理和輸出控制5個功能模塊。
輸入選擇模塊負責對收到命令的初步譯碼,把命令分流成兩路,一路進行片段測試處理,另一路進行參數配置。同時,為了確保命令的順序執行,當且僅當後續各模塊都空閒時本模塊才會接收新的命令。
配置參數模塊會對接收到的命令進行進一步的解析,進行兩方面的處理。一方面提取命令中攜帶的配置信息保存到配置參數寄存器中; 另一方面當接收到壓棧命令時,將相應配置參數寄存器中的配置信息存儲到片上存儲中,當接收到出棧命令時,讀取片上存儲中的數據,更新配置參數寄存器。
測試處理模塊會根據配置參數設置的處理環境對輸入的圖形片段進行測試,並將測試結果與輸入信息同時發送到輸出控制模塊。本模塊會對片段進行裁剪測試、alpha 測試、深度測試和模板測試,另外在使用模板測試時,會根據模板測試和深度測試的結果更新模板緩衝區中對應位置的模板值。
經過分流處理的兩路命令在輸出控制模塊選擇輸出。配置參數模塊的輸出數據是後級流水線需要的配置信息時會直接輸出;測試處理模塊的輸出將根據測試結果選擇性地輸出:若圖形片段的所有測試均通過,則將輸入圖形片段的命令輸出;若模板測試開啓,除深度/模板測試外的其他測試均通過,則不管是否通過深度/模板測試,結果都將輸入數據輸出,並標記為只寫模板值,此時的深度和顏色數據不會寫入幀緩存中;若模板測試沒有開啓,則只要有一項測試失敗,輸入數據都不會發送到下一級流水線單元 [3] 

圖形處理單元混合和邏輯操作單元

本模塊中的混合操作是對源片段的顏色和目標片段的顏色進行算數運算得到最終顏色。首先需要運用乘法運算採用混合因子對顏色成分進行縮放,然後再將源成分和目標成分進行混合。為了提高電路的處理速度,將乘法運算和混合分步處理,採用流水的方式實現,首先進行乘法運算(混合1) ,然後進行混合運算(混合2) 。由於邏輯操作和屏蔽緩衝區的實現均是一些邏輯運算,可以採用組合電路實現,在數據輸出控制部分完成。據此,將BDLM單元的設計劃分為5個單獨的模塊,分別是命令解析模塊、RAM模塊、混合1模塊、混合2模塊和輸出控制模塊。其中混合1模塊和混合2模塊分步實現混合操作的功能。各模塊之間的連接關係和本單元總體結構“BDLM模塊”。
命令解析模塊提取並保存命令中的配置信息,並在接收到堆棧操作命令時對配置信息進行保存和更新。當接收到需要處理的片段信息時,將配置信息和片段信息同時發送到相應的處理電路。
圖形片段數據依次經過混合1和混合2電路的處理完成混合操作。首先完成混合操作中的乘法運算,根據混合方式將源片段和目標像素分別乘以對應的混合因子,得出新的顏色值。然後根據混合方式將新的源片段和目標像素的顏色值進行加、減、取最大值或最小值,得到新的源片段值。混合操作後新生成的片段值在輸出控制模塊完成邏輯操作和屏蔽處理。
至此,所有的數據處理完畢,生成的像素、深度和模板值即為最終要寫入幀緩存的數據。片段處理單元寫入幀緩存的數據寬度是128b,而處理產生的數據寬度是32b,所以對幀緩存的一次寫操作能夠裝載4個數據。為了減少幀緩存的訪問次數,增大帶寬利用率,在片段處理單元緩存4個數據後再寫入幀緩存,由“輸出控制”模塊根據座標連續的原則,將屬於同一地址的數據以4個為一組進行數據的合併輸出 [3] 

圖形處理單元虛擬仿真與原型驗證

一方面,構建了虛擬仿真平台,並採用Cadence NCVerilog仿真工具進行功能驗證,將輸出結果保存成圖片。另一方面,基於Xilinx Vertex6 XC6VLX760 FPGA 構件原型系統,並對FOU 進行原型驗證。採用Xilinx ISE 工具對設計進行綜合,FOU的工作頻率達到180 MHz。另外,為了評估ASIC 實現時的性能,基於SMIC65nm CMOS工藝下,採用Synopsys Design-Compiler 對設計進行綜合,電路工作頻率達到300 MHz,大於GPU 芯片工作頻率270 MHz 的設計要求,能夠滿足應用需求。
為了能全面地對FOU 的功能進行驗證,將FPGA原型驗證結果與虛擬仿真平台輸出的結果和在Windows 下用MicrosoftVisual Studio 2008 軟件運行OpenGL 函數編寫的C ++ 程序所得的圖形進行對比。
在清除緩衝區的測試中將顏色緩衝區的清除值設置為灰色(0.5,0.5,0.5,0.5) ,則整個屏幕顯示為灰色。累積操作首先採用GL_ACCUM 累積模式,value 值設置為3.5,對圖形進行操作,然後採用GL_RETURN 操作模式,value 值設置為1.0,將累積操作的結果返回到顏色緩衝區進行顯示。不同像素顏色成分經過累積操作之後使圖形顯示不同的層次,這就是圖形景深效果的基本原理。將裁剪框設置為圖中白色部分,繪製三角形和矩形框,使三角形全部落在裁剪框之中,矩形框全部落在裁剪框之外。經過裁剪測試後只有三角形顯示出來。alpha 測試所用原始圖形,分別繪製一個顏色漸變的三角形和矩形,它們的alpha 值分別由0.1、0.4、0.8 和0.1、0.4、0.7、0.8 經過插值運算得來,所以兩個圖形的alpha 值範圍均為0.1 ~ 0.8。將alpha 測試的比較函數設置為GL_GREATER,參考值設置為0.4,則只有alpha 值大於0.4 的部分圖形能夠顯示出來。模板測試用圖,圖中白色以及兩條白色邊框內的部分為模板,藍色矩形為繪製圖形,將模板測試函數設置為GL_NOTEQUAL,則只有在模板之外的圖形能夠顯示出來。混合操作的一個重要作用是實現圖形的抗鋸齒功能,第一行的圖形是沒有使用混合功能時繪製的點,邊緣比較明顯,呈現出小矩形的形狀。第二行的圖形是使用混合功能將每個像素的alpha 值作為混合因子採用GL_FUNC_ADD 方式進行混合之後的圖形,邊緣被鋭化了,呈現出邊緣平滑的原點。邏輯操作測試輸入為黃色三角形,將邏輯操作碼設置為GL _NOR,黃色三角形與黑色的背景經過邏輯操作後變成藍色( 0,0,1)。使用屏蔽操作繪製的三角形,將屏蔽碼設置為( 0,1,1) ,屏蔽紅色成分。則經過平滑着色產生的帶有紅綠藍成分的三角形經過屏蔽操作後只有綠色和藍色成分被顯示 [2] 
參考資料
  • 1.    劉國林. 基於圖形處理單元的時頻域矩量法並行研究[D]. 西安電子科技大學, 2012.
  • 2.    喻武龍, 陳倫海, 蘇秉華,等. 運動目標跟蹤系統的圖像處理單元設計[J]. 儀表技術與傳感器, 2012(1):40-42.
  • 3.    田澤, 張淑, 張駿,等. 圖形處理器片段處理單元的設計與實現[J]. 計算機應用, 2014(s2):357-360.