1.一種統(tǒng)一染色器陣列多warp指令取指電路,其特征在于:包括warp調(diào)度單元(1)、取指信息fifo(2)、外部的icache(3)及至少2個warp的pc地址計算單元(4);每個pc地址計算單元對應(yīng)1個warp,
pc地址計算單元(4)與warp調(diào)度單元(1)連接,進(jìn)行warp pc地址的計算并產(chǎn)生warp可調(diào)度請求,將所述warp可調(diào)度請求發(fā)送給warp調(diào)度單元(1);
warp調(diào)度單元(1)與取指信息fifo(2)及至少2個pc地址計算單元(4)連接,根據(jù)所述warp可調(diào)度請求進(jìn)行多個warp的調(diào)度,選取一個warp產(chǎn)生對應(yīng)的warp取指信息發(fā)送給取指信息fifo(2);
取指信息fifo(2)與warp調(diào)度單元(1)及外部的icache(3)連接,存儲調(diào)度出的warp取指信息并產(chǎn)生外部的icache(3)的取指接口信號;
外部的icache(3)與取指信息fifo(2)連接,根據(jù)所述取指接口信號產(chǎn)生取指令。
2.根據(jù)權(quán)利要求1所述的一種統(tǒng)一染色器陣列多warp指令取指電路,其特征在于:pc地址計算單元(4)內(nèi)部包含一個warp pc棧,warp pc棧用于實(shí)現(xiàn)函數(shù)嵌套時pc地址的保存與恢復(fù)。
3.根據(jù)權(quán)利要求1所述的一種統(tǒng)一染色器陣列多warp指令取指電路,其特征在于:pc地址計算單元(4)中warp可調(diào)度請求的產(chǎn)生條件如下:
1)每個warp的指令有2行的buffer緩存,該warp只要有一個空閑即可調(diào)度;
2)該warp數(shù)據(jù)準(zhǔn)備好;
3)該warp的取指pc準(zhǔn)備好;
a)初始的取指pc準(zhǔn)備好是在該warp數(shù)據(jù)準(zhǔn)備好的時刻;
b)之后的取指pc準(zhǔn)備好是根據(jù)取回的指令進(jìn)行判斷,取回的指令中有跳轉(zhuǎn)指令時,等該跳轉(zhuǎn)指令執(zhí)行完該warp取指pc即準(zhǔn)備好;反之,取回指令后該warp取指pc就準(zhǔn)備好。
4)該warp的指令取到后,才能進(jìn)行該warp的下一次調(diào)度。
4.根據(jù)權(quán)利要求1所述的一種統(tǒng)一染色器陣列多warp指令取指電路,其特征在于:pc地址計算單元(4)中warp pc地址計算的方法如下:
1)在warp數(shù)據(jù)準(zhǔn)備好時,warp pc地址值的初值為某個具體的數(shù)值;
2)根據(jù)warp pc地址值取回的指令確定下一次該warp pc地址的值;
a)取回的m條指令中不含跳轉(zhuǎn)指令,則warp pc地址每次順序加m;
b)取回的m條指令中含有跳轉(zhuǎn)指令,則warp pc地址需要根據(jù)跳轉(zhuǎn)指令的類型和跳轉(zhuǎn)指令的執(zhí)行結(jié)果進(jìn)行計算得到warp pc值,warp pc值的更新時間根據(jù)跳轉(zhuǎn)指令的執(zhí)行情況確定。
5.根據(jù)權(quán)利要求1所述的一種統(tǒng)一染色器陣列多warp指令取指電路,其特征在于:
warp pc地址根據(jù)跳轉(zhuǎn)指令的類型和執(zhí)行結(jié)果進(jìn)行計算的具體過程為:
1)對于絕對跳轉(zhuǎn)指令,warp pc的值取指令中的立即數(shù);
2)對于條件跳轉(zhuǎn)指令,如果條件判斷為成立,則進(jìn)行跳轉(zhuǎn),warp pc的值取指令中的立即數(shù);如果條件判斷不成立,則不進(jìn)行跳轉(zhuǎn),warp pc保持原值。
6.一種統(tǒng)一染色器陣列的多warp指令取指方法,其特征在于,包括以下步驟:
步驟1、多個warp pc地址計算單元同時進(jìn)行warp pc地址的計算,并向warp調(diào)度單元發(fā)出可調(diào)度的warp請求和warp pc地址;
步驟2、warp調(diào)度單元接收來自多個warp pc地址計算單元的warp可調(diào)度請求和warp pc地址,監(jiān)控取指信息fifo的滿狀態(tài);在取指信息fifo不滿的情況下根據(jù)多個warp的可調(diào)度請求進(jìn)行公平輪詢調(diào)度,輸出當(dāng)前調(diào)度的warp號;并通過該warp號進(jìn)行warp pc地址選擇,向取指信息fifo發(fā)送寫fifo信號和包括調(diào)度出的warp號和warp pc地址的寫fifo數(shù)據(jù);
步驟3、取指信息fifo存儲調(diào)度的warp號和pc地址,在icache空閑且fifo不空的情況下產(chǎn)生讀fifo信號,接著根據(jù)icache空閑和讀fifo信號產(chǎn)生取指請求,然后將讀出的包括warp號和取指pc地址的fifo數(shù)據(jù)、取指請求作為warp取指信息輸出給外部icache單元進(jìn)行取指;
步驟4、外部icache接收取指信息fifo的warp取指請求、warp號和取指pc地址,進(jìn)而返回該warp要取的指令。