1.一種GPU多線程紋理映射SystemC建模結(jié)構(gòu),其特征在于,包括:
紋理參數(shù)獲取和Level計算單元(1)、紋素地址計算單元(2)、數(shù)據(jù)組裝與任務(wù)分配單元單元(3)、紋素數(shù)據(jù)提取和格式轉(zhuǎn)換單元(4)、紋素過濾、紋素數(shù)據(jù)歸一化單元(5)和紋理映射狀態(tài)與控制參數(shù)單元(6);
紋理參數(shù)獲取和Level計算單元(1)輸出接口與紋素地址計算單元(2)的輸入接口相連接,紋理參數(shù)獲取和Level計算單元(1)的根據(jù)統(tǒng)一染色體陣列(USA)輸入的紋理Quad請求的紋理單元ID信息,從紋理映射狀態(tài)與控制參數(shù)單元(6)讀取紋理映射類型mapType和過濾模式filterMode、baselevel以及baselevel層的紋理圖像分辨率參數(shù)width、height、depth、lod_bias參數(shù),并和統(tǒng)一染色體陣列輸入的紋理Quad請求Quad_mask與坐標(biāo)變量s,t,r一起代入Level計算流程中,得到常駐紋理的level層的值,并從紋理映射狀態(tài)與控制參數(shù)單元(6)讀取level層紋理圖像分辨率參數(shù)的width、height、depth,將所述常駐紋理的level層的值、level層紋理圖像分辨率參數(shù)的width、height、depth、紋理映射類型mapType、紋理過濾模式filterMode和統(tǒng)一染色體陣列輸入的紋理Quad請求坐標(biāo)變量s,t,r,輸入給紋素地址計算單元(2);
紋素地址計算單元(2)根據(jù)紋理參數(shù)獲取和Level計算單元(1)輸入的統(tǒng)一染色體陣列輸入的紋理Quad請求坐標(biāo)變量s,t,r和level層紋理圖像分辨率參數(shù)的width、height、depth,首先計算指定Level層的紋理坐標(biāo),得到第Level層紋素坐標(biāo)地址(i0,j0,k0),(i1,j1,k1);其次,紋素地址計算單元(2)將紋素坐標(biāo)地址(i0,j0,k0),(i1,j1,k1)帶入wrap模式對Level層的坐標(biāo)調(diào)整算法中,得到每個小分量wrap調(diào)整處理后的紋理坐標(biāo)地址(i0,j0,k0),(i1,j1,k1);再次,紋素地址計算單元(2)根據(jù)輸入的紋理過濾模式filterMode和紋理映射類型mapType,對紋理坐標(biāo)進(jìn)行紋素采樣處理,并產(chǎn)生1到n個紋素坐標(biāo);并根據(jù)wrap模式對Level層的坐標(biāo)調(diào)整算法對多個紋素坐標(biāo)進(jìn)行處理,最后,并將最終的包含紋素采樣坐標(biāo)的紋素采樣請求輸出給數(shù)據(jù)組裝與任務(wù)分配單元(3);
數(shù)據(jù)組裝與任務(wù)分配單元(3),根據(jù)當(dāng)前外部紋理存儲器的ready狀態(tài),如果ready狀態(tài)為1,總是允許本單元向紋理存儲L1TCache發(fā)送紋素采樣請求;否則,將整個紋理流水線停滯;同時,通過與外部紋理存儲器的接口將紋素采樣請求傳送給外部紋理存儲器進(jìn)行請求尋址處理,并設(shè)置請求完成標(biāo)識,數(shù)據(jù)組裝與任務(wù)分配單元(3)通過內(nèi)部進(jìn)程不斷檢測外部紋理存儲器返回的完成標(biāo)識狀態(tài),如果返回數(shù)據(jù)有效,則將外部紋理存儲器處理后的請求結(jié)果按照請求的先后順序進(jìn)行排序,輸出給紋素數(shù)據(jù)提取和格式轉(zhuǎn)換單元(4);
紋素數(shù)據(jù)提取和格式轉(zhuǎn)換單元(4),先從紋理映射狀態(tài)與控制參數(shù)單元(6)讀取當(dāng)前紋理請求在紋理Cache內(nèi)部存儲格式internalformat,根據(jù)外部紋理存儲器返回的存儲格式,從紋素數(shù)據(jù)提取和格式轉(zhuǎn)換單元(4)獲取的請求結(jié)果中提取出紋理格式中的R、G、B、A、Lum、Int和Depth,將不同內(nèi)部格式轉(zhuǎn)換為RGBA格式的顏色數(shù)據(jù),并結(jié)果輸出給紋素過濾操作、紋素數(shù)據(jù)歸一化單元(5);
紋素過濾操作、紋素數(shù)據(jù)歸一化單元(5),當(dāng)紋理過濾模式為臨近采樣模式,意味著不需要執(zhí)行過濾操作,這種類型的紋理請求在過濾模塊被“透傳”;否則,需要根據(jù)紋理過濾模式filterMode,對多個紋理采樣值通過線性、或雙線性,或三線性插值計算,得到一個過濾后的紋素值,將結(jié)果進(jìn)行紋素數(shù)據(jù)歸一化,最后,將所述結(jié)果通過與統(tǒng)一染色陣列之間的接口函數(shù)輸出給外部統(tǒng)一染色陣列。