本發(fā)明涉及計(jì)算機(jī)硬件技術(shù)領(lǐng)域,尤其涉及GPU統(tǒng)一染色處理陣列的調(diào)試結(jié)構(gòu)。
背景技術(shù):
隨著圖形化應(yīng)用的不斷增加,早期單靠CPU進(jìn)行圖形繪制的解決方案已經(jīng)難以滿足成績和技術(shù)增長的圖形處理需求,圖形處理器(Graphic Processing Unit,GPU)應(yīng)運(yùn)而生。從1999年Nvidia發(fā)布第一款GPU產(chǎn)品至今,GPU技術(shù)的發(fā)展主要經(jīng)歷了固定功能流水線階段、分離染色器架構(gòu)階段、統(tǒng)一染色器架構(gòu)階段,其圖形處理能力不斷提升,應(yīng)用領(lǐng)域也從最初的圖形繪制逐步擴(kuò)展到通用計(jì)算領(lǐng)域。GPU流水線高速、并行的特征和靈活的可編程能力,為圖形處理和通用并行計(jì)算提供了良好的運(yùn)行平臺。
目前,我國尚無基于統(tǒng)一染色架構(gòu)的GPU,各領(lǐng)域顯示控制系統(tǒng)中大量采用國外進(jìn)口的商用GPU芯片。尤其是在軍用領(lǐng)域中,國外進(jìn)口商用GPU芯片存在溫度和環(huán)境適應(yīng)性差、無法保證電路本身或配套軟件沒有“后門”、包含大量軍用領(lǐng)域不需要的冗余功能單元,功耗指標(biāo)無法滿足要求、商用GPU芯片更新?lián)Q代快,隨時(shí)面臨停產(chǎn)、斷檔,難以滿足武器裝備持續(xù)保障等缺陷,在安全性、可靠性、保障性等方面的存在重大隱患。而且,出于政治、軍事、經(jīng)濟(jì)等原因,國外對我國實(shí)行技術(shù)“封鎖”和產(chǎn)品“壟斷”,難以獲得GPU芯片的底層技術(shù)資料,如寄存器資料、詳細(xì)內(nèi)部微架構(gòu)、核心軟件源碼等,導(dǎo)致GPU功能、性能無法充分發(fā)揮,且移植性較差;上述問題嚴(yán)重制約了我國顯示系統(tǒng)的獨(dú)立研制和自主發(fā)展。
尤其是GPU統(tǒng)一染色陣列調(diào)試機(jī)制,是GPU圖形處理流水線微架構(gòu)的核心設(shè)計(jì)與驗(yàn)證技術(shù),突破GPU統(tǒng)一染色陣列調(diào)試關(guān)鍵技術(shù),研制高性能圖形處理器芯片迫在眉睫。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明公開了一種GPU統(tǒng)一染色處理陣列的調(diào)試結(jié)構(gòu),能夠?qū)崿F(xiàn)在設(shè)計(jì)驗(yàn)證和使用過程中,主機(jī)對GPU統(tǒng)一染色陣列中所有染色任務(wù)屬性數(shù)據(jù)的簡便、高效訪問。
本發(fā)明的技術(shù)解決方案是:
一種GPU統(tǒng)一染色處理陣列的調(diào)試結(jié)構(gòu),包括:
包含GPU與主機(jī)之間的總線接口單元(1)(PCIe EP)、染色任務(wù)調(diào)度單元(2)、多個(gè)統(tǒng)一染色陣列中的控制和狀態(tài)寄存器(3)(CSR,Control and Status Register)、多個(gè)染色器簇程序入口寄存器(4)(SPE,Shader Program Entry),以及對統(tǒng)一染色陣列內(nèi)部局部存儲器進(jìn)行訪問的窗口訪問控制邏輯(5);
主機(jī)通過總線接口單元(1)配置染色任務(wù)調(diào)度單元(2),確定染色任務(wù)的調(diào)度模式,即每個(gè)染色任務(wù)中多個(gè)獨(dú)立頂點(diǎn)和像素的MASK標(biāo)識和染色任務(wù)在SSC中的位置信息;
主機(jī)通過總線接口單元(1)配置控制和狀態(tài)寄存器(3),確定統(tǒng)一染色陣列中多個(gè)SSC的工作模式;
主機(jī)通過總線接口單元(1)配置染色器簇程序入口寄存器(4),確定統(tǒng)一染色陣列中多個(gè)SSC執(zhí)行染色程序時(shí)的入口地址;
主機(jī)通過總線接口單元(1)配置窗口訪問控制邏輯(5),確定窗口控制邏輯的工作模式;
主機(jī)通過總線接口單元(1)根據(jù)染色任務(wù)調(diào)度單元(2)中的調(diào)度模式信息,通過訪問窗口訪問控制邏輯(5)中的地址窗口寄存器和數(shù)據(jù)窗口寄存器將要調(diào)試的染色任務(wù)數(shù)據(jù)送入統(tǒng)一染色陣列中不同的SSC中,調(diào)試準(zhǔn)備工作結(jié)束;
統(tǒng)一染色陣列根據(jù)控制和狀態(tài)寄存器(3)和染色器簇程序入口寄存器(4)并行執(zhí)行染色程序,并將執(zhí)行結(jié)果寫入染色器內(nèi)核的存儲器中;
主機(jī)通過總線接口單元(1)通過訪問窗口訪問控制邏輯(5)中的地址窗口寄存器和數(shù)據(jù)窗口寄存器將調(diào)試的染色任務(wù)的執(zhí)行結(jié)果從染色器內(nèi)核的存儲器中讀回主機(jī),調(diào)試工作結(jié)束。
所述GPU與主機(jī)之間的總線接口單元(1)能夠?qū)θ旧蝿?wù)調(diào)度單元(2)、窗口訪問控制邏輯(5),以及多個(gè)染色器簇程序入口寄存器(4)進(jìn)行配置訪問.
所述染色任務(wù)調(diào)度單元(2)進(jìn)行頂點(diǎn)和像素染色任務(wù)的調(diào)度,至少包括對頂點(diǎn)和像素染色任務(wù)屬性數(shù)據(jù)的傳輸,以及對染色任務(wù)類型、任務(wù)掩碼和數(shù)據(jù)準(zhǔn)備好標(biāo)識的設(shè)置。
所述統(tǒng)一染色陣列中的控制和狀態(tài)寄存器(3)包含一組寄存器,用來存儲統(tǒng)一染色陣列中某個(gè)染色器簇的控制和狀態(tài)信息,至少包括在當(dāng)前染色器簇上運(yùn)行的所有染色任務(wù)的類型、所有染色任務(wù)的掩碼、數(shù)據(jù)準(zhǔn)備好標(biāo)識,以及染色任務(wù)執(zhí)行完成標(biāo)志。
所述染色器簇程序入口寄存器(4)用來存儲統(tǒng)一染色陣列中某個(gè)染色器簇上,用來進(jìn)行頂點(diǎn)和像素染色任務(wù)處理的頂點(diǎn)染色程序和像素染色程序在顯示存儲器中的入口地址;染色器簇程序入口寄存器(4)可以根據(jù)用戶指定的頂點(diǎn)染色程序和像素染色程序在顯示存儲器中的實(shí)際起始地址隨意指定。
所述窗口訪問控制邏輯(5)包括多個(gè)專用的窗口寄存器;通過多個(gè)專用的窗口寄存器可以實(shí)現(xiàn)對統(tǒng)一染色陣列所有染色器簇中用來存儲染色任務(wù)屬性數(shù)據(jù)的局部存儲器(LocalSRAM)進(jìn)行訪問;
所述窗口訪問控制邏輯中的多個(gè)專用窗口寄存器至少包括地址窗口寄存器、數(shù)據(jù)窗口寄存器,以及窗口訪問模式寄存器;其中,地址窗口寄存器用來存儲需要訪問的某個(gè)染色器簇中局部存儲器的地址,以及本次訪問的讀寫控制信號;數(shù)據(jù)窗口寄存器用來存儲要寫入某個(gè)染色器簇中局部存儲器的數(shù)據(jù),或者從某個(gè)染色器簇中局部存儲器讀出的數(shù)據(jù),根據(jù)不同的圖形狀態(tài)參數(shù)訪問數(shù)據(jù)通路寬度,包含一個(gè)或多個(gè)32b寄存器;窗口訪問模式寄存器中的標(biāo)志位用來在正常圖形處理模式和調(diào)試模式間進(jìn)行選擇。
主機(jī)可以對窗口訪問控制邏輯(5)中的窗口訪問模式寄存器進(jìn)行配置,使窗口工作于正常圖形處理模式或者調(diào)試模式。
統(tǒng)一染色陣列中所有染色器簇中的局部存儲器統(tǒng)一編址,不同染色任務(wù)的屬性數(shù)據(jù)位于不同的局部存儲器的不同地址段中。
總線接口單元的寄存器訪問通路連接到染色任務(wù)調(diào)度單元、窗口訪問控制邏輯,以及多個(gè)染色器簇程序入口寄存器中;染色任務(wù)調(diào)度單元的染色任務(wù)信息設(shè)置通路連接到統(tǒng)一染色陣列中的多個(gè)控制和狀態(tài)寄存器單元(CSR)中;窗口寄存器中的地址窗口寄存器、數(shù)據(jù)窗口寄存器連接到所有統(tǒng)一染色陣列中所有染色器簇中。
在調(diào)試模式下,只有主機(jī)可以通過對多個(gè)窗口寄存器對統(tǒng)一染色陣列所有染色器簇中所有局部存儲器進(jìn)行訪問,染色任務(wù)類型、狀態(tài)等信息仍由染色任務(wù)調(diào)度單元負(fù)責(zé)設(shè)置;在正常圖形處理模式下,染色任務(wù)調(diào)度單元可以對統(tǒng)一染色陣列所有染色器簇中所有局部存儲器進(jìn)行訪問,并負(fù)責(zé)對染色任務(wù)類型、狀態(tài)等信息進(jìn)行設(shè)置。
本發(fā)明的技術(shù)效果是:
1、典型的GPU統(tǒng)一染色陣列中的染色任務(wù)的屬性數(shù)據(jù)屬于GPU內(nèi)部狀態(tài),主機(jī)端無法獲得。因此,在設(shè)計(jì)過程中如何在FPGA平臺上驗(yàn)證大量染色任務(wù)并行執(zhí)行時(shí)統(tǒng)一染色陣列計(jì)算結(jié)果的正確性是極為困難的工作。本發(fā)明中所述窗口訪問機(jī)制提供了一種手段,可以通過窗口控制邏輯內(nèi)部有限的幾個(gè)專用寄存器,就能實(shí)現(xiàn)主機(jī)對數(shù)量眾多的統(tǒng)一染色陣列中染色任務(wù)屬性數(shù)據(jù)進(jìn)行訪問的目的,降低了FPGA驗(yàn)證過程難度。
2、典型的GPU統(tǒng)一染色陣列中包含2000000個(gè)以上的32b寄存器用來存儲染色任務(wù)的屬性數(shù)據(jù),直接將如此數(shù)量眾多的染色任務(wù)屬性數(shù)據(jù)暴露給主機(jī)處理器會占用大量主機(jī)總線地址空間,而采用窗口訪問機(jī)制可以將主機(jī)訪問染色任務(wù)屬性數(shù)據(jù)時(shí)需要占用的總線地址空間降低到不超過10個(gè)32b字,大幅降低主機(jī)需要訪問的存儲空間范圍,為總線上其它設(shè)備留出了更大空間。
附圖說明
圖1是本發(fā)明基于窗口的GPU統(tǒng)一染色陣列調(diào)試結(jié)構(gòu)框圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例,對本發(fā)明的技術(shù)方案進(jìn)行清楚、完整地表述。顯然,所表述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提所獲得的所有其它實(shí)施例,都屬于本發(fā)明的保護(hù)范圍。
本發(fā)明提供一種GPU統(tǒng)一染色處理陣列的調(diào)試結(jié)構(gòu),包括:
包含GPU與主機(jī)之間的總線接口單元1(PCIe EP)、染色任務(wù)調(diào)度單元2、多個(gè)統(tǒng)一染色陣列中的控制和狀態(tài)寄存器3(CSR,Control and Status Register)、多個(gè)染色器簇程序入口寄存器4(SPE,Shader Program Entry),以及對統(tǒng)一染色陣列內(nèi)部局部存儲器進(jìn)行訪問的窗口訪問控制邏輯5;
主機(jī)通過總線接口單元1配置染色任務(wù)調(diào)度單元2,確定染色任務(wù)的調(diào)度模式,即每個(gè)染色任務(wù)中多個(gè)獨(dú)立頂點(diǎn)和像素的MASK標(biāo)識和染色任務(wù)在SSC中的位置信息;
主機(jī)通過總線接口單元1配置控制和狀態(tài)寄存器3,確定統(tǒng)一染色陣列中多個(gè)SSC的工作模式;
主機(jī)通過總線接口單元1配置染色器簇程序入口寄存器4,確定統(tǒng)一染色陣列中多個(gè)SSC執(zhí)行染色程序時(shí)的入口地址;
主機(jī)通過總線接口單元1配置窗口訪問控制邏輯5,確定窗口控制邏輯的工作模式;
主機(jī)通過總線接口單元1根據(jù)染色任務(wù)調(diào)度單元2中的調(diào)度模式信息,通過訪問窗口訪問控制邏輯5中的地址窗口寄存器和數(shù)據(jù)窗口寄存器將要調(diào)試的染色任務(wù)數(shù)據(jù)送入統(tǒng)一染色陣列中不同的SSC中,調(diào)試準(zhǔn)備工作結(jié)束;
統(tǒng)一染色陣列根據(jù)控制和狀態(tài)寄存器3和染色器簇程序入口寄存器4并行執(zhí)行染色程序,并將執(zhí)行結(jié)果寫入染色器內(nèi)核的存儲器中;
主機(jī)通過總線接口單元1通過訪問窗口訪問控制邏輯5中的地址窗口寄存器和數(shù)據(jù)窗口寄存器將調(diào)試的染色任務(wù)的執(zhí)行結(jié)果從染色器內(nèi)核的存儲器中讀回主機(jī),調(diào)試工作結(jié)束。
所述GPU與主機(jī)之間的總線接口單元1能夠?qū)θ旧蝿?wù)調(diào)度單元2、窗口訪問控制邏輯5,以及多個(gè)染色器簇程序入口寄存器4進(jìn)行配置訪問.
所述染色任務(wù)調(diào)度單元2進(jìn)行頂點(diǎn)和像素染色任務(wù)的調(diào)度,至少包括對頂點(diǎn)和像素染色任務(wù)屬性數(shù)據(jù)的傳輸,以及對染色任務(wù)類型、任務(wù)掩碼和數(shù)據(jù)準(zhǔn)備好標(biāo)識的設(shè)置。
所述統(tǒng)一染色陣列中的控制和狀態(tài)寄存器3包含一組寄存器,用來存儲統(tǒng)一染色陣列中某個(gè)染色器簇的控制和狀態(tài)信息,至少包括在當(dāng)前染色器簇上運(yùn)行的所有染色任務(wù)的類型、所有染色任務(wù)的掩碼、數(shù)據(jù)準(zhǔn)備好標(biāo)識,以及染色任務(wù)執(zhí)行完成標(biāo)志。
所述染色器簇程序入口寄存器4用來存儲統(tǒng)一染色陣列中某個(gè)染色器簇上,用來進(jìn)行頂點(diǎn)和像素染色任務(wù)處理的頂點(diǎn)染色程序和像素染色程序在顯示存儲器中的入口地址;染色器簇程序入口寄存器4可以根據(jù)用戶指定的頂點(diǎn)染色程序和像素染色程序在顯示存儲器中的實(shí)際起始地址隨意指定。
所述窗口訪問控制邏輯5包括多個(gè)專用的窗口寄存器;通過多個(gè)專用的窗口寄存器可以實(shí)現(xiàn)對統(tǒng)一染色陣列所有染色器簇中用來存儲染色任務(wù)屬性數(shù)據(jù)的局部存儲器(LocalSRAM)進(jìn)行訪問;
所述窗口訪問控制邏輯中的多個(gè)專用窗口寄存器至少包括地址窗口寄存器、數(shù)據(jù)窗口寄存器,以及窗口訪問模式寄存器;其中,地址窗口寄存器用來存儲需要訪問的某個(gè)染色器簇中局部存儲器的地址,以及本次訪問的讀寫控制信號;數(shù)據(jù)窗口寄存器用來存儲要寫入某個(gè)染色器簇中局部存儲器的數(shù)據(jù),或者從某個(gè)染色器簇中局部存儲器讀出的數(shù)據(jù),根據(jù)不同的圖形狀態(tài)參數(shù)訪問數(shù)據(jù)通路寬度,包含一個(gè)或多個(gè)32b寄存器;窗口訪問模式寄存器中的標(biāo)志位用來在正常圖形處理模式和調(diào)試模式間進(jìn)行選擇。
主機(jī)可以對窗口訪問控制邏輯5中的窗口訪問模式寄存器進(jìn)行配置,使窗口工作于正常圖形處理模式或者調(diào)試模式。
統(tǒng)一染色陣列中所有染色器簇中的局部存儲器統(tǒng)一編址,不同染色任務(wù)的屬性數(shù)據(jù)位于不同的局部存儲器的不同地址段中。
總線接口單元的寄存器訪問通路連接到染色任務(wù)調(diào)度單元、窗口訪問控制邏輯,以及多個(gè)染色器簇程序入口寄存器中;染色任務(wù)調(diào)度單元的染色任務(wù)信息設(shè)置通路連接到統(tǒng)一染色陣列中的多個(gè)控制和狀態(tài)寄存器單元(CSR)中;窗口寄存器中的地址窗口寄存器、數(shù)據(jù)窗口寄存器連接到所有統(tǒng)一染色陣列中所有染色器簇中。
在調(diào)試模式下,只有主機(jī)可以通過對多個(gè)窗口寄存器對統(tǒng)一染色陣列所有染色器簇中所有局部存儲器進(jìn)行訪問,染色任務(wù)類型、狀態(tài)等信息仍由染色任務(wù)調(diào)度單元負(fù)責(zé)設(shè)置;在正常圖形處理模式下,染色任務(wù)調(diào)度單元可以對統(tǒng)一染色陣列所有染色器簇中所有局部存儲器進(jìn)行訪問,并負(fù)責(zé)對染色任務(wù)類型、狀態(tài)等信息進(jìn)行設(shè)置。
實(shí)施例
如圖1所示,主機(jī)通過PCIe模塊中的寄存器通道,可以配置窗口控制邏輯中的窗口訪問模式寄存器,從而選擇工作在正常工作模式或是調(diào)試工作模式。
在調(diào)試工作模式下,不同實(shí)現(xiàn)方案的訪問流程可能存在差異,但并不使相應(yīng)實(shí)現(xiàn)方案的本質(zhì)脫離本發(fā)明方案的精神和范圍。主機(jī)對統(tǒng)一染色陣列調(diào)試訪問的典型流程如下:
第一步,主機(jī)通過總線接口單元的寄存器通道依次訪問窗口控制邏輯中的地址和數(shù)據(jù)窗口寄存器,寫入要寫的染色器簇局部存儲器地址和寫標(biāo)志,以及要寫的數(shù)據(jù)。窗口控制邏輯會向統(tǒng)一染色陣列某一個(gè)染色簇局部存儲器中寫入任意指定的染色任務(wù)屬性數(shù)據(jù)。這一步驟可以重復(fù)多次,從而最多向統(tǒng)一染色陣列中注入不超過最大染色任務(wù)數(shù)量的任意多個(gè)染色任務(wù);
第二步,主機(jī)通過總線接口單元的寄存器通道訪問多個(gè)染色器簇程序入口寄存器,寫入不同染色器簇上不同類型染色任務(wù)的軟件處理程序在顯示存儲器中的入口地址。染色器簇程序入口寄存器的數(shù)量與統(tǒng)一染色陣列中染色器簇的數(shù)量相同,從而使得每個(gè)染色器簇可以從任意的染色程序入口開始處理。但需要設(shè)置的染色器簇程序入口寄存器的數(shù)量應(yīng)該與第一步中已經(jīng)通過主機(jī)寫入的染色任務(wù)的染色器簇的數(shù)量一致;
第三步,主機(jī)通過總線接口單元的寄存器通道訪問染色任務(wù)調(diào)度單元上的統(tǒng)一染色陣列調(diào)試控制寄存器,然后,染色任務(wù)調(diào)度單元根據(jù)統(tǒng)一染色陣列調(diào)試控制寄存器的內(nèi)容訪問統(tǒng)一染色陣列中多個(gè)控制和狀態(tài)寄存器單元(CSR),完成不同染色器簇上染色任務(wù)的類型和掩碼信息,以及數(shù)據(jù)準(zhǔn)備好標(biāo)志的設(shè)置。需要設(shè)置的控制和狀態(tài)寄存器單元的數(shù)量與第一步中已經(jīng)通過主機(jī)寫入的染色任務(wù)的染色器簇的數(shù)量一致;
第四步,統(tǒng)一染色陣列中的染色器簇在與其對應(yīng)的控制和狀態(tài)寄存器中數(shù)據(jù)準(zhǔn)備好標(biāo)志有效的情況下開始進(jìn)行一個(gè)或多個(gè)染色任務(wù)的處理,每個(gè)染色器簇中的染色任務(wù)處理程序從其對應(yīng)的局部存儲器中取出頂點(diǎn)或像素染色任務(wù)的屬性數(shù)據(jù)進(jìn)行計(jì)算。計(jì)算完成后將染色任務(wù)屬性數(shù)據(jù)的計(jì)算結(jié)果仍然寫回到對應(yīng)的局部存儲器中;
第五步,主機(jī)通過總線接口單元的寄存器通道訪問窗口控制邏輯中的地址窗口寄存器,寫入要讀的局部存儲器地址和讀標(biāo)志;然后窗口控制邏輯會根據(jù)地址窗口寄存器中的內(nèi)容將對應(yīng)染色器簇中局部存儲器的數(shù)據(jù)讀回,并寫入到數(shù)據(jù)窗口寄存器中。最后窗口控制邏輯會將數(shù)據(jù)窗口寄存器中的內(nèi)容通過總線接口單元的寄存器通道返回到主機(jī)。
這樣,主機(jī)就可以根據(jù)需要向統(tǒng)一染色陣列中的任意染色器簇中注入不超過最大染色任務(wù)數(shù)量的任意多個(gè)染色任務(wù);并能夠隨意指定所注入染色任務(wù)的類型;還能夠通過設(shè)定染色處理程序入口地址的方式隨意指定不同染色器簇上不同類型染色任務(wù)的處理方式;還能夠獲得任意以及處理完成的染色任務(wù)的執(zhí)行結(jié)果。從而,完整、方便的實(shí)現(xiàn)了對統(tǒng)一染色陣列的調(diào)試,為GPU芯片的FPGA驗(yàn)證,以及芯片流片后測試過程提供了重要手段。
在正常工作模式下,向統(tǒng)一染色陣列中注入染色任務(wù)屬性數(shù)據(jù)的過程由染色任務(wù)調(diào)度單元完成,而不是主機(jī)。但對多個(gè)染色器簇程序入口寄存器的設(shè)置仍然由主機(jī)完成,統(tǒng)一染色陣列中多個(gè)控制和狀態(tài)寄存器單元(CSR)中染色任務(wù)類型、掩碼,以及屬性數(shù)據(jù)準(zhǔn)備好標(biāo)志仍然由染色任務(wù)調(diào)度單元完成設(shè)置。
最后應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解;其依然可以對前述各實(shí)施例記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。