專利名稱::多重執(zhí)行資源圖形處理器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種計算機(jī)處理器及計算機(jī)網(wǎng)絡(luò)的架構(gòu),特別是涉及一種用于產(chǎn)生及動態(tài)排程多重流動數(shù)據(jù)處理任務(wù)的系統(tǒng)與方法,用來在一平行處理器中執(zhí)行。
背景技術(shù):
:微處理器設(shè)計人員與廠商不斷地專注于改進(jìn)微處理器效能,以便執(zhí)行越加復(fù)雜的軟件,進(jìn)而提高功效。雖然改進(jìn)處理可借助縮小硅幾何大小而有助于提高微處理器的速度,不過,處理器的設(shè)計方式,尤其是指令執(zhí)行核心,仍然關(guān)系到處理器效能。有許多微處理器都使用指令管線排列技術(shù)(instructionpipelining)來提高指令總處理量。一指令管線可利用一種組合線(assemblyline)方式經(jīng)過數(shù)個不同的指令執(zhí)行相來同時處理數(shù)項指令。以非限制范例為例,可以將數(shù)個個別的功能單元,例如譯碼單元,進(jìn)一步管線排列成數(shù)個硬件級,每一級均會在一分離的指令中實施該指令譯碼過程中的某個步驟。因此,利用多個不同的管線級便可深化處理器硬件管線。用于改進(jìn)指令執(zhí)行速度的另一種方法稱為“亂序(out-of-order)”執(zhí)行法。亂序執(zhí)行法執(zhí)行指令的順序不同于編譯器發(fā)送該些指令的順序,以便縮短含有該些指令的程序的整體執(zhí)行等待時間。亂序指令執(zhí)行法的其中一種方式是使用被稱為“緩存器記分板(registerscoreboarding)”的技術(shù),其中,指令會被依序發(fā)送,但是卻以亂序的方式來執(zhí)行。亂序排程的另一種形式為運(yùn)用被稱為“動態(tài)排程”的技術(shù)。對提供動態(tài)排程的處理器來說,甚至?xí)Πl(fā)送指令給執(zhí)行硬件的順序進(jìn)行重新排程,使其異于原來的程序順序。雖然這些指令執(zhí)行結(jié)果可能亂序,不過該些指令實際上已退出程序順序。而且,亂序技術(shù)中的指令管線排列處理,例如動態(tài)排程,可在相同的微處理器中被分開使用或一起使用。動態(tài)排程平行指令執(zhí)行可能包含特殊的關(guān)聯(lián)表,用來登記指令與功能單元的狀態(tài)以及某項特殊指令結(jié)果作為所規(guī)定指令的輸入操作數(shù)的可用性。排程硬件會使用該些表來發(fā)送、執(zhí)行、以及完成個別的指令。動態(tài)排程平行指令執(zhí)行的范疇為指令層平行度(instructionlevelparallelism,ILP),該項技術(shù)已經(jīng)延伸至多重線程(超線程處理或是同步多重線程處理(simultaneousmultithreading,SMT)。此項技術(shù)提供硬件輔助的多重線程派發(fā)及執(zhí)行,從而在一平行功能單元中可在每個頻率中處理多重指令。動態(tài)排程硬件可從該些多重現(xiàn)役線程中提供同步指令發(fā)送。排程硬件可利用記分板來登記線程與指令狀態(tài),以便追蹤指令發(fā)送與執(zhí)行的相依性并且定義指令發(fā)送與執(zhí)行的時間。此外,線程可能會因為冗長的等待時間快取錯失或是其它的I/O原因而被暫止。不過,以一非限制性范例為例,該記分板可能由指令狀態(tài)、功能單元狀態(tài)、以及緩存器結(jié)果狀態(tài)所組成。此三份表格都會在指令執(zhí)行過程中借助在每個頻率循環(huán)中更新它們的字段來進(jìn)行互動。為傳送某道指令的級與變化狀態(tài),應(yīng)該滿足特定的條件并且在每一級中實行特定的操作。緩存器更名是在已經(jīng)預(yù)設(shè)架構(gòu)緩存器名稱空間(architectureregisternamespace)時用來克服名稱相依性問題的另一項技術(shù),其允許數(shù)個指令被并行執(zhí)行。根據(jù)緩存器更名技術(shù),每當(dāng)某一緩存器分配到某數(shù)值時,便可分派一新的緩存器。當(dāng)譯碼某道指令時,硬件便會檢查目的地字段,并且重新命名該架構(gòu)緩存器名稱空間。以一非限制范例為例,假設(shè)緩存器R3分配到某數(shù)值的話,便可分派一新的緩存器復(fù)制體R3’,而在后面指令中對緩存器R3所進(jìn)行的所有讀取操作則均會被導(dǎo)向復(fù)制體R3’(以復(fù)制名稱取代架構(gòu)名稱)。繼續(xù)此非限制性范例,當(dāng)緩存器R3新分配到某數(shù)值的話,便可分派另一緩存器復(fù)制體R3”,而后面的參考值則均會被導(dǎo)向新的復(fù)制體R3”。此過程會針對所有輸入指令來進(jìn)行。此過程不僅會消除名稱相依性,還可讓該處理器看似具有更多的緩存器并且可提高指令層平行度,進(jìn)而可操作更多的平行單元。重排序緩沖器(reorderbuffer)也可能會使用緩存器更名技術(shù),以便擴(kuò)充架構(gòu)緩存器空間并且產(chǎn)生和不同命令相關(guān)聯(lián)的同一緩存器的多重復(fù)制。如此便能夠讓亂序執(zhí)行具有有序的結(jié)果。當(dāng)譯碼某道指令時,可能會分配和該適當(dāng)功能單元相關(guān)聯(lián)的重排序緩沖器登錄項。該被譯碼指令的目的地緩存器可能與該被分派的重排序緩沖器登錄項有關(guān),其會導(dǎo)致更改該緩存器的名稱。該處理器硬件可產(chǎn)生一卷標(biāo)來唯一識別此結(jié)果。該標(biāo)簽可儲存于該重排序緩沖器登錄項之中。當(dāng)后續(xù)的指令參考到該更名目的地緩存器時,其便可接收該重排序緩沖器登錄項中所儲存的數(shù)值或標(biāo)簽,端視是否收到該數(shù)據(jù)而定。重排序緩沖器可被組態(tài)成一內(nèi)容尋址式存儲器(contentaddressablememory,CAM),其中可利用該卷標(biāo)進(jìn)行數(shù)據(jù)搜尋。應(yīng)用中,后續(xù)指令的目的地緩存器編號可被套用至一重排序緩沖器,并且也可確認(rèn)含有此緩存器編號的登錄項。確認(rèn)之后,便可傳回已算出的數(shù)值。假使該數(shù)值尚未算出,便可傳回上述的標(biāo)簽來取代。假使有多個登錄項含有此緩存器編號的話,那么便可確認(rèn)最新的登錄項。假使沒有登錄項含有該必要的緩存器編號的話,那么便可使用架構(gòu)緩存器文件。當(dāng)結(jié)果產(chǎn)生時,則可將該結(jié)果與卷標(biāo)散布給所有的功能單元。另一種處理方式包含實時排程及多重處理器系統(tǒng)。此組態(tài)包含數(shù)個松散耦合的多指令多數(shù)據(jù)(MIMD)微處理器,每個處理器均具有自己的存儲器與輸入輸出(I/O)信道。在該些系統(tǒng)上可同時執(zhí)行數(shù)項任務(wù)及子任務(wù)(線程)。不過,該些任務(wù)可能包含特定排序類型的同步化,以保持預(yù)期的處理型樣。另外,各種處理型樣可能需要不同的同步化。和指令層平行度處理器不同的是在線程中,實時排程處理器會針對任務(wù)進(jìn)行處理器分配(資源分派)。利用指令層平行度組態(tài),在專屬的功能單元中其中一部份可能重復(fù),其意謂著,為分散所進(jìn)行的指令分配非常簡單,其相依于可用槽(slot)的數(shù)量及指令類型。不過,對多指令多數(shù)據(jù)型的多重處理器系統(tǒng)來說,所有處理器通常是相似的,而且具有比較復(fù)雜的任務(wù)分配策略。至少其中一種非限制方式是將該多指令多數(shù)據(jù)結(jié)構(gòu)視為一處理器群,其意謂著,將處理器看待成一結(jié)合資源,并且相依于存儲器與計算資源的可用性來將處理分配給處理器。此環(huán)境中,至少有兩種方法可用來分散任務(wù)與線程。第一種為靜態(tài)分配法,當(dāng)每種任務(wù)或線程被預(yù)先分配給某個特殊處理器或某群處理器時便會進(jìn)行此法。第二種組態(tài)為動態(tài)分配法,和上述者相似,本法需要相依于可用資源及任務(wù)優(yōu)先權(quán)來將任務(wù)分配給該處理器群中的任何處理器。在此組態(tài)中,該多重處理器群可能具有特殊的派發(fā)線索,其中多項任務(wù)及多項線程正在等待分配及執(zhí)行,并且供完成輸入輸出使用。另外,在此組態(tài)中,線程是任務(wù)的一部份,而某些任務(wù)可分割成數(shù)個線程,以便利用特定的數(shù)據(jù)同步及順序來平行執(zhí)行。因此,該些線程通??膳c該處理的其余部份分開執(zhí)行。另外,應(yīng)用軟件可能為一組線程,該些線程會在相同的地址空間但使用不同的處理器來同時合作及執(zhí)行。因此,在不同處理器上同時執(zhí)行的線程可產(chǎn)生動態(tài)的效能增益。在一多重處理器組態(tài)中,可依照負(fù)載共享技術(shù)來實現(xiàn)線程排程。負(fù)載共享可能需要將負(fù)載均勻地分散于該微處理器群中的各個微處理器之上。這樣才能確保沒有任何微處理器是閑置的。多重處理器線程排程可能會使用上述某些靜態(tài)排程技術(shù),例如當(dāng)將某個線程分配給某個特定處理器時。不過,在將數(shù)個特定的線程分配給某個特定處理器時,其它的處理器可能會閑置,而該被分配的處理器則相當(dāng)忙碌,從而導(dǎo)致該已分配的線程必須閑置等待其所分配到的處理器有空為止。因此,靜態(tài)排程經(jīng)常會造成處理器效率不高。處理器的動態(tài)排程可以對象導(dǎo)向的圖形管線來實行。對象是一種結(jié)構(gòu)性數(shù)據(jù)項,代表沿著一邏輯管線往下移動的事物,例如三角形的頂點、貼片(patch)、像素、或是視頻數(shù)據(jù)。在邏輯層處,數(shù)值數(shù)據(jù)與控制數(shù)據(jù)均可為該對象的一部份,不過實際的實行方式則可分開處理兩者。在一圖形模型中,有數(shù)種對象可在該數(shù)據(jù)流中進(jìn)行處理。第一種為狀態(tài)對象,其含有硬件控制信息及描影碼(shadercode)。第二,可處理頂點對象,其含有和該數(shù)值控制數(shù)據(jù)相關(guān)的數(shù)組頂點。第三,在該數(shù)據(jù)流模型中可處理基本對象(primitiveobject),其含有和基本對象有關(guān)的數(shù)組數(shù)值數(shù)據(jù)與控制數(shù)據(jù)。更明確地說,一基礎(chǔ)對象可能含有貼片對象、三角形對象、直線對象及/或點物件。第四,碎形對象可為該數(shù)據(jù)流模型的一部份,其含有和像素有關(guān)的數(shù)組數(shù)值數(shù)據(jù)與控制數(shù)據(jù)。最后,在數(shù)據(jù)流模型中還可處理其它類型的對象,例如視頻數(shù)據(jù)。每種對象均可具有可在其上實行的一組可能操作以及一(邏輯電路上)固定的數(shù)據(jù)布置。對象可能具有不同的大小與狀態(tài),其也可能被稱為數(shù)層或數(shù)級,用來代表該些對象在管線處理中所抵達(dá)的位置。以一非限制范例為例,可將某對象的各層例示在一三角形對象上,此對象剛開始具有三個頂點,指向頂點幾何與屬性數(shù)據(jù)的實際位置。當(dāng)解出該些參考值時(檢查快取以及在必要時從應(yīng)用程序接口(API)緩沖器中檢索數(shù)據(jù)),便可更新該對象層,使之經(jīng)其它級來傳送該對象。經(jīng)更新的層通??煞从吃搶ο蠼Y(jié)構(gòu)中特定數(shù)據(jù)的可用性,以便進(jìn)行立即處理。大部份情況中,一經(jīng)更新的層會包含前面的層。熟知本技術(shù)的人士會了解,一對象通常會有兩種布置。第一為邏輯布置,其包含所有的數(shù)據(jù)結(jié)構(gòu)。從對象產(chǎn)生時刻起至結(jié)束為止,該邏輯布置可能會保持不變。第二種對象布置為實體布置,其顯示的為可供立即處理使用的數(shù)據(jù)結(jié)構(gòu),其可運(yùn)行用來匹配最上層中的邏輯布置。邏輯布置與實體布置兩者均可以訊框及緩沖器-邏輯訊框及實體緩沖器來表示。邏輯訊框可被映像至實體緩沖器,以便讓數(shù)據(jù)結(jié)構(gòu)可供立即處理使用。每個對象一開始均含有數(shù)個邏輯訊框,而其中一個訊框可被映像至一實體緩沖器。用于后級中的所有其它訊框則可不被映像,以便節(jié)省芯片上的存儲器資源。并且,訊框與緩沖器兩者均可具有可變的大小,彼此間可彈性映像。一對象可能會參考系統(tǒng)中其它對象內(nèi)所保有的數(shù)據(jù)。管線怠惰評估技術(shù)(Pipelinelazyevaluationscheme)會追蹤該些相依性,并且使用該些相依性來計算隨選對象(objectondemand)內(nèi)所儲存的數(shù)值。相同類型的對象可在平行獨立的線索中來處理。或者,可產(chǎn)生一種復(fù)合對象,其含有數(shù)個頂點對象、碎形對象、或是基礎(chǔ)對象,以便在單指令多數(shù)據(jù)(SIMD)模式中進(jìn)行處理。對圖形處理應(yīng)用而言,上述的特點具有歷史內(nèi)含固定函數(shù)及可程序硬件型管線解決方式。不過,該些線性解決方式經(jīng)常會因該圖形管線的靜態(tài)組態(tài)而導(dǎo)致效率不明顯。當(dāng)如上述的某個特殊級的頻寬在訊框產(chǎn)生的執(zhí)行時間期間沒有改變時,便會造成該處理器效率不明顯且出現(xiàn)閑置時間,從而降低整體的效率。在涉及多個平行處理器的應(yīng)用中,效率不彰的情形會更加惡化。因此,目前為止,必須要解決由數(shù)個平行多重線程處理器所組成的多指令多數(shù)據(jù)結(jié)構(gòu)中動態(tài)產(chǎn)生及多重邏輯圖形管線執(zhí)行管理的問題。本人還進(jìn)一步在平行處理中改進(jìn)資源利用率,以達(dá)到更高的效能,此問題以前可能起因于不良分派及不良排程協(xié)議分辨率。
發(fā)明內(nèi)容本發(fā)明的目的在于提供一種平行圖形處理器的動態(tài)排程單元與方法,其可處理頂點本體、三角本體、以及像素本體,此均為非限制性范例。本發(fā)明提供和頂點、三角形、以及像素有關(guān)的多重數(shù)據(jù)串處理任務(wù)的動態(tài)排程。也就是說,一平行處理器會同時平行處理該些本體。為了實現(xiàn)上述目的,本發(fā)明提供了一種平行圖形處理器的動態(tài)排程單元,包括一散布器,其會產(chǎn)生圖形對象進(jìn)行處理。該散布器會分配與分散該些產(chǎn)生要進(jìn)行處理的圖形對象給一或多個執(zhí)行單元。每個執(zhí)行單元會接收一指令來處理一圖形對象且將借助排程該圖形對象的處理及在該圖形對象上執(zhí)行指令操作來推動該對象經(jīng)過每個處理級。該動態(tài)排程單元包含一或多個固定功能單元,被耦合至該散布器,被配置成用來在一圖形對象上執(zhí)行一或多個預(yù)設(shè)的操作。一輸入/輸出單元,被耦合至該散布器、該些一或多個固定功能單元以及該數(shù)個執(zhí)行單元,且被配置成用來存取該動態(tài)排程單元外面的存儲器。此動態(tài)排程單元會分派資源來提高處理效率,從而改善效能。以下結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)描述,但不作為對本發(fā)明的限定。圖1為本發(fā)明的對象導(dǎo)向架構(gòu)的抽象硬件模型示意圖;圖2為圖1的對象導(dǎo)向架構(gòu)模型中的三層動態(tài)排程示意圖;圖3為利用和圖1的單元相關(guān)的額外操作單元來顯示圖1的對象導(dǎo)向架構(gòu)模型的示意圖;圖4為圖3的隊列與快取控制器示意圖;圖5為由圖1的對象導(dǎo)向架構(gòu)來執(zhí)行的頂點處理序列中該對象導(dǎo)向架構(gòu)互動的執(zhí)行示意圖;圖6、圖7為圖1模型的三角形處理序列的對象導(dǎo)向架構(gòu)互動示意圖;圖8、圖9為圖1模型的像素處理序列的對象導(dǎo)向架構(gòu)互動示意圖;圖10為一非限制性范例示意圖,圖中描繪的是在該全域散布器及圖1的執(zhí)行單元之間分派一三角形本體。其中,附圖標(biāo)記10對象導(dǎo)向架構(gòu)模型object-orientedarchitecturemodel12全域散布器(全域排程及任務(wù)及含表的分散器)globalspreader(globalschedulerandtaskdistributor)13數(shù)據(jù)傳輸通信系統(tǒng)datatransportcommunicationsystem15執(zhí)行單元(執(zhí)行方塊隊列及快取控制器)executionblock17執(zhí)行單元executionblock19執(zhí)行單元executionblock21固定功能硬件與快取單元存儲器Fixedfunctionhardwareandcacheunit23共同輸入輸出服務(wù)與大量快取存儲器I/Ocommonserviceandbulkcacheblock32流管線線程控制器numericstreampipethreadcontroller34數(shù)據(jù)移動控制器datamovecontroller41基礎(chǔ)對象表primitivetable43頂點描述符表vertexdescriptortable46輸入頂點緩沖器與索引緩沖器inputvertexbufferandindexbuffer48執(zhí)行單元executionblock49執(zhí)行單元executionblock50像素封包器pixelpacker51隊列快取控制器queuecachecontroller52數(shù)據(jù)管理移動機(jī)制datamanagementmovemachine54區(qū)域快取存儲器localcache56線程控制器threadcontroller57流動數(shù)值管線及相關(guān)的緩存器單元streamnumericpipeandassociatedregisterunit61微片旁通式隊列tilebypassqueue63重排序緩沖器reorderbuffer64輸出微片產(chǎn)生器outputtilegenerator71通信單元communicationunit73輸入inputportion75輸出outputportion77控制器communicationcontroller78本體描述符表(具有控制器PB(Prioritybuffer,優(yōu)先緩沖))entitydescriptortable79CTRL總線CTRLbus82級剖析器stageparser83級指標(biāo)表stagepointertable85輸入輸出及移動描述符緩存器表I/Oandmovedescriptorregistertable87數(shù)據(jù)管理微程序存儲器datamanagementmicroprogrammemory88快取存儲器cachememory91數(shù)值處理描述符緩存器表numericalprocessdescriptorregistertable94地址更名邏輯表單元addressrenamelogictable101非限制性范例流程圖nonlimitingexampleflowchart步驟S104檢查輸入三角形封包步驟S106檢查頂點描述符表步驟S108產(chǎn)生區(qū)域參考值步驟S109產(chǎn)生全域參考值步驟S111定義候選執(zhí)行單元以供分派步驟S115定義最小資源數(shù)量步驟S118產(chǎn)生本體分派要求步驟S120檢查第一候選執(zhí)行單元的狀態(tài)步驟S122檢查第二候選執(zhí)行單元的狀態(tài)步驟S124檢查第三候選執(zhí)行單元的狀態(tài)步驟S126傳送本體分派要求給執(zhí)行單元具體實施方式不同于靜態(tài)排程的如上述,在線程執(zhí)行期間可運(yùn)用動態(tài)排程,使之可由該應(yīng)用軟件來動態(tài)變更某處理中的線程數(shù)量。動態(tài)排程還可促成閑置處理器分配來執(zhí)行特定的線程。此方式可改善可用處理器的運(yùn)用情形,所以可改善系統(tǒng)的效率。圖1為本發(fā)明的對象導(dǎo)向架構(gòu)模型10的抽象硬件示意圖。圖1的對象導(dǎo)向架構(gòu)模型10包含一具有一群執(zhí)行單元的通用處理部份,其可提供區(qū)域排程、數(shù)據(jù)交換、以及本體或是對象處理。圖1的對象導(dǎo)向架構(gòu)模型10可為以動態(tài)排程指令執(zhí)行概念為主的平行圖形處理來致動動態(tài)排程,其可使用于超純數(shù)(superscalar)機(jī)之中。此概念可延伸至數(shù)個線程及數(shù)個微線程,其為要在圖形數(shù)據(jù)對象上執(zhí)行的碎形碼。如本文所述,該動態(tài)排程方式會映像至邏輯圖形管線,其中每個部份均會處理一特定類型的圖形數(shù)據(jù)對象并且執(zhí)行含有數(shù)個微線程的線程。更明確地說,該圖形管線的粗粒級可匹配某一層對象種類(例如頂點、幾何形狀、以及像素)上的線程,其中細(xì)粒級則相當(dāng)于微線程。對象導(dǎo)向架構(gòu)模型10包含一全域排程器(globalscheduler)及任務(wù)分散器(taskdistributor),下文中稱為全域散布器(globalspreader)12。全域散布器12具有數(shù)個附屬的頂點與索引流緩沖器、一頂點對象表、以及一基礎(chǔ)對象表,下文將更詳細(xì)的說明(圖3)。全域散布器12會通過一數(shù)據(jù)傳輸通信系統(tǒng)13被耦合至對象導(dǎo)向架構(gòu)模型10的各個組件,正如熟悉本技術(shù)的人士了解的。該數(shù)據(jù)傳輸通信系統(tǒng)13會耦合該架構(gòu)的所有組件,如圖1所示。執(zhí)行單元15、17、19會提供區(qū)域排程、數(shù)據(jù)交換、以及本體處理,由全域散布器12來分配。下文將更詳細(xì)地討論執(zhí)行單元15、17、19的邏輯構(gòu)造及運(yùn)行。固定功能硬件與快取單元存儲器21包含用于實行圖形處理的固定功能級(例如網(wǎng)格化、紋理處理、以及輸出像素處理部份)的專屬圖形資源。此外,圖1的對象導(dǎo)向架構(gòu)模型10中內(nèi)含一共享輸入輸出服務(wù)與大量快取存儲器23,其可被配置成包括一命令流處理器、存儲器與總線存取、數(shù)個大量快取、以及一顯示單元,以上均為非限制性范例。雖然如下文,全域散布器12可運(yùn)用數(shù)據(jù)傳輸通信系統(tǒng)13與一或多個執(zhí)行單元15、17、19進(jìn)行溝通,不過,該執(zhí)行單元15、17、19也可根據(jù)全域散布器12分配給該些執(zhí)行單元執(zhí)行的各項任務(wù)與處理通過數(shù)據(jù)傳輸13來彼此溝通。全域散布器12可與對象導(dǎo)向架構(gòu)模型10中所有的執(zhí)行單元進(jìn)行互動,并且利用頻率分辨率來追蹤該些執(zhí)行單元15、17、19中可用的資源。全域散布器12的任務(wù)分散組態(tài)可完全地程序化并且可依據(jù)每個執(zhí)行單元的設(shè)定文件的逐個訊框監(jiān)視結(jié)果來進(jìn)行調(diào)適。圖2為圖1的對象導(dǎo)向架構(gòu)模型10中的三層動態(tài)排程示意圖。在全域排程層處,全域散布器12可配合各表格運(yùn)行并且還涉及新本體產(chǎn)生與邏輯訊框分配,以及涉及分散至各個執(zhí)行單元15、17、19及物理存儲器分派(在全域排程層中)。因此,如以上討論,全域散布器12會與圖1的所有執(zhí)行單元15、17、19進(jìn)行互動,其涉及到區(qū)域排程層,如圖2所示。在區(qū)域排程層處,一區(qū)域任務(wù)排程器包含一區(qū)域記分板(localscoreboard)。該區(qū)域記分板包括一具有一級剖析器(stageparser)的隊列與快取控制器,該級剖析器可經(jīng)該些處理管線(見圖5至圖9)逐級地推動各本體,在各處理的整個執(zhí)行期間針對已更新的狀態(tài)本體進(jìn)行物理存儲器分派。在該指令執(zhí)行排程層處,該些執(zhí)行單元含有一數(shù)值流管線線程控制器32,其會控制級剖析器82所定義的線程的數(shù)值處理。該指令執(zhí)行層還包含一數(shù)據(jù)移動控制器34,其可致動執(zhí)行多重執(zhí)行單元中的多重線程,并且實行多重通道輸入輸出控制。換言之,數(shù)據(jù)移動控制器34會將數(shù)據(jù)傳送給其它執(zhí)行單元與全域散布器12及/或從其它執(zhí)行單元與全域散布器12中接收數(shù)據(jù)。包含全域排程層、區(qū)域排程層、以及指令執(zhí)行層在內(nèi)的所有層均包含硬件控制器來提供具有頻率分辨率的動態(tài)排程。再有,該些全域與區(qū)域排程控制器可在計算資源分派中共同合作。圖3為利用和全域散布器12、執(zhí)行單元15、固定功能硬件與快取單元存儲器21、以及共享輸入輸出服務(wù)與大量快取存儲器23相關(guān)的額外操作單元來顯示圖1的對象導(dǎo)向架構(gòu)模型10的示意圖。如圖3所示,全域散布器12包含一基礎(chǔ)對象表41(一含有基礎(chǔ)元素的對照值的表)、一頂點描述符表43(所有執(zhí)行單元中的頂點分派)、以及一輸入頂點緩沖器與索引緩沖器46。如上討論,全域散布器12是主要的上層排程單元,其可利用該些執(zhí)行單元的狀態(tài)信息及接收該些固定功能硬件與快取單元存儲器21的數(shù)據(jù)將工作量分散給所有的執(zhí)行單元15、17、19。如圖4所示,全域散布器12可與該些執(zhí)行單元的區(qū)域隊列與隊列快取控制器51進(jìn)行互動以產(chǎn)生新本體,進(jìn)而送入一邏輯管線中。全域散布器12會控制所有執(zhí)行單元間的數(shù)據(jù)分散操作,并且運(yùn)用“生產(chǎn)者-消費者”數(shù)據(jù)參考的區(qū)域性原理。以一非限制性范例為例,全域散布器12會試圖利用數(shù)個相關(guān)的三角形本體來分派數(shù)個頂點本體,并且從一特殊的三角形將數(shù)個像素封包分配給一具有三角形本體數(shù)據(jù)的執(zhí)行單元。假使此特定的執(zhí)行單元不具有足夠資源供分派的話,便可將頂點或三角形數(shù)據(jù)復(fù)制至另一執(zhí)行單元,三角形或像素本體可能已經(jīng)在該處被傳送。在至少一非限制性范例中,全域散布器12可接收至少四種輸入要求,用來在該些執(zhí)行單元中安排處理。首先,全域散布器12可接收一頂點封包,由輸入頂點緩沖器與索引緩沖器46產(chǎn)生。其次,全域散布器12可接收一三角形封包,由三角形組合硬件產(chǎn)生。全域散布器12還可接收由像素封包器50產(chǎn)生的一像素封包(在至少一非限制性范例中可高達(dá)16個像素),像素封包器50可為固定功能硬件與快取單元存儲器21的一邏輯組件。以一非限制性范例為例,全域散布器12可接收貝塞爾曲線(BEZIER)貼片(在至少一非限制性范例中為16個頂點),由輸入頂點緩沖器與索引緩沖器46產(chǎn)生。對全域散布器12可接收的每種數(shù)據(jù)來說,全域散布器12可維持及監(jiān)督該對象導(dǎo)向架構(gòu)模型10中每個執(zhí)行單元的各種控制信息。在此非限制性范例中,如圖3所示,該對象導(dǎo)向架構(gòu)模型10包含執(zhí)行單元15、17、19、48以及49。不過,熟悉本技術(shù)的人士知道,可依照預(yù)期的應(yīng)用而含有更多或較少的執(zhí)行單元。不過,如上所述,全域散布器12會保留至少和任何特定時刻中可用執(zhí)行單元數(shù)量有關(guān)的信息。此外,全域散布器12還會保留必須為某種特殊類型的新本體釋放的最小資源量有關(guān)的信息,其可由一外部驅(qū)動器來設(shè)定。全域散布器12還會在接收某項特殊資源方面建立每個執(zhí)行單元的優(yōu)先權(quán)。在至少一非限制性范例中,可針對特定類型的數(shù)據(jù)及/或本體以專屬的執(zhí)行單元來配置對象導(dǎo)向架構(gòu)模型10。因此,在此實例中,全域散布器12可獲知該些專屬性,以便將特殊數(shù)據(jù)分配給該些專屬本體來進(jìn)行處理。全域散布器12還保有和欲被處理及欲被復(fù)制至該執(zhí)行單元中的數(shù)據(jù)大小有關(guān)的數(shù)據(jù),以及保有和該數(shù)據(jù)或本體有關(guān)的優(yōu)先權(quán)信息。全域散布器12可能還保有數(shù)據(jù)布置偏好。以一非限制性范例為例,雖然頂點對象并無任何數(shù)據(jù)布置偏好,不過,三角形則可能以它們的頂點來建構(gòu)為宜,而像素則以該些三角形來建構(gòu)為宜,所以便構(gòu)成數(shù)據(jù)布置偏好。因此,在此情況中,全域散布器12保有此信息來進(jìn)行更有效的處理。全域散布器12包含一基礎(chǔ)對象表41。每個三角形均會取得其基礎(chǔ)ID(身份),當(dāng)分派該三角形本體時,其便會被儲存于該基礎(chǔ)對象表41之中。在此非限制性范例中,該基礎(chǔ)對象表41有兩欄基礎(chǔ)ID(PrID)與執(zhí)行單元#,執(zhí)行單元#對應(yīng)的為分派該三角形本體處的執(zhí)行單元編號。傳送自固定功能硬件與快取單元存儲器21的像素封包載有一三角形ID,其可用來在該基礎(chǔ)對象表41中進(jìn)行查找,以便決定原始的三角形本體的邏輯位置。全域散布器12還包含一頂點描述符表43,該表是一供所有執(zhí)行單元15、17、19、48及49使用的全域頂點登記表(參考圖3)。頂點描述符表43含有和每個八(或是由一執(zhí)行單元的單指令多數(shù)據(jù)系數(shù)所定義的任意數(shù))頂點群的位置有關(guān)的記錄或信息,其可能內(nèi)含于正要進(jìn)行處理的頂點封包之中。在至少一非限制性范例中,該頂點描述符表43可能含有約256筆記錄,其包含字段名稱、字段長度、字段來源,以非限制性范例為例,其來源可能是全域散布器12、頂點描述符表43控制、或是某個特定執(zhí)行單元中的隊列快取控制器51。頂點描述符表43也保有該些特殊記錄的目的地信息以及和該特殊數(shù)據(jù)域位有關(guān)的描述信息。當(dāng)收到一頂點封包時,該頂點描述符表43可配合輸入頂點緩沖器與索引緩沖器46來運(yùn)行。全域散布器12會產(chǎn)生一頂點本體,并且在該輸入頂點緩沖器與索引緩沖器46及所分派的執(zhí)行單元存儲器之間開始進(jìn)行傳輸,更詳細(xì)的說明如下。以一非限制性范例為例,假使進(jìn)入的封包并不適合執(zhí)行單元群(其包含圖3所示的執(zhí)行單元15、17、19、48及49),那么全域散布器12就可能不會承認(rèn)有收到此數(shù)據(jù),直到全域散布器12能夠正確地分派具有足夠資源(例如存儲器空間)的特定執(zhí)行單元為止。在此實例中,對一特定的頂點封包來說,全域散布器12可被配置成用來實施各種操作。首先,全域散布器12可利用其資源需求/分派信息來尋找一合適的執(zhí)行單元(例如執(zhí)行單元17),如上所述?;蛘?,全域散布器12可將一要求傳送給一特定的執(zhí)行單元(例如執(zhí)行單元49),用來分派一本體給所收到的頂點封包。假使所收到的頂點封包并未經(jīng)過索引編排,那么全域散布器12便可在輸入頂點緩沖器與索引緩沖器46中為它產(chǎn)生一個索引。此外,全域散布器12還可在頂點描述符表43中由一特定執(zhí)行單元來分派一登錄項,并且在該登錄項中填入該本體的索引與編號。最后,全域散布器12可指示執(zhí)行單元數(shù)據(jù)管理移動機(jī)制52將數(shù)據(jù)移到該執(zhí)行單元中的預(yù)期位置處進(jìn)行處理。假使全域散布器12接收到一不適于某個特定執(zhí)行單元群的三角形封包而不是一頂點封包的話,那么該全域散布器12便可利用該資源需求/分派信息來尋找一合適的執(zhí)行單元,如同上面針對頂點封包所述的?;蛘撸蛏⒉计?2可在利用該三角形的頂點的索引時,檢索該些本體編號并且抽出該些垂直元素編號。全域散布器12可將一要求傳送給一執(zhí)行單元(例如執(zhí)行單元19),用來分派一本體給該三角形封包。而后,全域散布器12便可將該些頂點的本體編號與該些元素編號(1至8)傳送給該特定的執(zhí)行單元,例如此非限制性范例中的執(zhí)行單元19。對被全域散布器12所收到的一特定像素封包來說,全域散布器12可利用該資源需求/分派信息來尋找一合適的執(zhí)行單元,如同上面針對三角形封包及頂點封包所述的。或者,全域散布器12可將一要求傳送給一特定的執(zhí)行單元,用來分派一本體給該像素封包。在此實例中,全域散布器12可將該些像素所屬的三角形的本體編號及它們的元素編號傳送給該執(zhí)行單元以作進(jìn)一步的處理。到目前為止,本文的重點均放在全域散布器12及其功能上面;不過,現(xiàn)在會將重點放在該群執(zhí)行單元以及它們與該全域散布器12的通信方式及彼此平行運(yùn)行方式上面。每個執(zhí)行單元都含有一隊列快取控制器(QCC)51。隊列快取控制器51可在數(shù)據(jù)流處理中提供分級,并且將數(shù)據(jù)鏈路至數(shù)值與邏輯處理器,例如以供進(jìn)行浮點及整數(shù)計算。隊列快取控制器51可幫助管理一邏輯圖形管線,其中在每一級的處理中均會產(chǎn)生或轉(zhuǎn)換數(shù)據(jù)本體。如本文所述,隊列快取控制器51包括一本體描述符、一級剖析器、以及一地址更名邏輯窗體單元。(下面將說明并圖解額外的隊列快取控制器組件)對執(zhí)行單元15來說,雖然圖中所示的隊列快取控制器的組件符號為51,不過圖3中所示的其余執(zhí)行單元也相同。隊列快取控制器51具有專屬的硬件針對各數(shù)據(jù)處理級來管理邏輯先進(jìn)先出(FIFO),并且用來將各級連結(jié)在一起,更詳細(xì)的討論如下。隊列快取控制器51為執(zhí)行單元15的區(qū)域組件,圖3中所示的其它隊列快取控制器則是其個別執(zhí)行單元的區(qū)域組件。依此方式,每個隊列快取控制器均具有和其它執(zhí)行單元的隊列有關(guān)的全域參考值,以便在由全域散布器12進(jìn)行配置時來支持全域排序。隊列快取控制器51中的邏輯電路可促使數(shù)據(jù)管理移動機(jī)制52經(jīng)過其各級在該執(zhí)行單元間移動數(shù)據(jù)及/或?qū)?shù)據(jù)移動至其它的組件,如圖3中所示的其它執(zhí)行單元17、19、48或49。隊列快取控制器51包含一區(qū)域快取存儲器54。在至少一非限制性范例中,區(qū)域快取存儲器54中的數(shù)據(jù)并不會被傳送至任何的實體先進(jìn)先出。取而代之的是,所有的先進(jìn)先出是具有和各對象相關(guān)的存儲器參考值的邏輯組件。以一非限制性范例為例,和頂點封包有關(guān)的頂點數(shù)據(jù)可保留在該區(qū)域快取存儲器之中直到該頂點數(shù)據(jù)被處理為止;或是可刪除或被復(fù)制至相關(guān)的三角形本體以供進(jìn)一步處理,不過,該頂點數(shù)據(jù)則不會保留在區(qū)域快取存儲器54之中。隊列快取控制器51還包含一線程控制器56,其可支持多重線程處理并且能夠執(zhí)行四或更多個現(xiàn)役線程,所以可于執(zhí)行單元層中在單指令多數(shù)據(jù)流類型執(zhí)行上提供多指令多數(shù)據(jù)。雖然下文將作額外詳細(xì)說明,不過,隊列快取控制器51可與一流動數(shù)值管線及相關(guān)的緩存器單元57進(jìn)行通信,該流動數(shù)值管線及相關(guān)的緩存器單元57可同時執(zhí)行浮點及整數(shù)指令,其可在該單指令多數(shù)據(jù)流中處理多個數(shù)據(jù)項。如圖3所示,在此非限制性范例中,固定功能硬件與快取單元存儲器21包括具有良好定義功能的大部份專屬固定功能單元。在至少一非限制性范例中,固定功能硬件與快取單元存儲器21包含一像素封包器50;一微片旁通式隊列61;以及一重排序緩沖器63,其具有一輸出微片產(chǎn)生器64(像素解封包器)。像素封包器50可被配置成用來在該執(zhí)行單元中減低稀疏微片處理中的粒度損失。微片旁通式隊列61可被配置成用來保有所有的微片像素屏蔽(tilepixelsmaks),同時可在該執(zhí)行單元群中處理其它微片上的像素。另外,輸出微片產(chǎn)生器64可被配置成用來使用該微片像素屏蔽來對該執(zhí)行單元群中被收到的像素信息進(jìn)行解封包。重排序緩沖器63會還原被傳送至該執(zhí)行單元群的該些像素封包的原來順序,因為其也可以亂序方式來處理。圖4為圖3的執(zhí)行單元15(或是圖3的任何其它執(zhí)行單元)的隊列快取控制器51的示意圖,圖中還顯示了額外的組件。在此非限制性范例中,隊列快取控制器51包含一通信單元71,該通信單元71具有一輸入73部份及一輸出75部份,其中可從其它執(zhí)行單元中接收數(shù)據(jù)及其它信息及/或?qū)?shù)據(jù)及其它信息輸出至一不同的執(zhí)行單元及/或全域散布器12。通信單元71包含一通信控制器77,其可通過CTRL(控制)總線79與數(shù)據(jù)管理移動機(jī)制52來交換數(shù)據(jù)。數(shù)據(jù)也可由CTRL總線79傳送至本體描述符表78,該本體描述符表78會被配置成用來含有和已分配封包的數(shù)據(jù)關(guān)系、分派情形、就緒情形以及目前處理級有關(guān)的信息。本體描述符表78包含數(shù)個實體描述器(descriptors),用來儲存和每個本體相關(guān)的數(shù)據(jù)及各種常數(shù)。在至少一非限制性范例中,本體描述符表78可能含有由至少兩種類型組成的高達(dá)256筆記錄,其包含一實體緩沖器登錄項及一本體登錄項。一虛擬圖形管線所使用的所有邏輯先進(jìn)先出均可利用該本體描述符表78及具有一級指標(biāo)表83的級剖析器82來設(shè)計。在至少一非限制性范例中,本體描述符表78可依據(jù)一內(nèi)容尋址式存儲器(CAM)并且使用二至三個字段來進(jìn)行關(guān)聯(lián)性查找。以一非限制性范例為例,該些字段可能包含一由八位字節(jié)成的本體編號字段以及一由四位字節(jié)成的邏輯訊框編號字段。依此方式,本體描述符表78可視為是一完整的關(guān)聯(lián)性快取存儲器,其具有額外的控制狀態(tài)機(jī)用來在每個頻率循環(huán)處依照該些執(zhí)行單元中的狀態(tài)來更新部份字段。級剖析器82包含一級剖析器表,在一圖形處理非限制性范例的邏輯管線中,該表含有每個處理級的指標(biāo),如圖5至圖9所示,在下文將作討論。級指標(biāo)實際上會指向每一級中下一次要處理的本體。在至少一非限制性范例中,和每一級相關(guān)的處理有兩種數(shù)值處理,以及輸入輸出或數(shù)據(jù)移動處理。級剖析器82的級剖析器表中內(nèi)含的該些指標(biāo)可用來選擇具有一線程微程序的數(shù)個用戶描述符。當(dāng)級剖析器82的級剖析器表產(chǎn)生一指向某個特殊本體的動態(tài)指針時,本體描述符表78中內(nèi)含的用戶描述符表信息便會被加載線程控制器56之中以供進(jìn)行數(shù)值級處理,如上所述,其可能包含浮點指令與整數(shù)指令。級指標(biāo)表中的每一級均具有一指向描述符表中某項記錄的靜態(tài)指針,其定義著該線程微碼開始地址及數(shù)個線程參數(shù)?;蛘?,在輸入輸出處理的情況中,級剖析器82的級指標(biāo)表83可產(chǎn)生一指針給輸入輸出和數(shù)據(jù)移動程序描述符表供數(shù)據(jù)管理移動機(jī)制52來運(yùn)用。雖然圖4中未顯示,不過,級剖析器82實際上包含一控制器,其可在每個頻率循環(huán)處檢查本體描述符表78中該些本體的狀態(tài),并使之可逐級處理該些本體。當(dāng)隊列快取控制器51運(yùn)行來將數(shù)據(jù)傳送給另一執(zhí)行單元(例如執(zhí)行單元19)時,該級剖析器表便可產(chǎn)生一和變動數(shù)據(jù)移動處理相關(guān)的指針值,該值會被傳送至輸入輸出及移動描述符緩存器表85。變動數(shù)據(jù)傳輸要求會從輸入輸出及移動描述符緩存器表85被傳送至數(shù)據(jù)管理微程序存儲器87,該數(shù)據(jù)管理微程序存儲器87會發(fā)出一指令給數(shù)據(jù)管理移動機(jī)制52用來存取快取存儲器88中的該特殊數(shù)據(jù)并且將該數(shù)據(jù)傳送至指定的存儲器位置。在級剖析器82的級剖析器表涉入某個本體的數(shù)值處理過程的情況中,該級剖析器82的級剖析器表便會產(chǎn)生一指標(biāo)值用于執(zhí)行數(shù)值處理,該指標(biāo)值則會被傳送至該數(shù)值處理描述符緩存器表91。該數(shù)值處理描述符緩存器表91會與線程控制器56進(jìn)行通信,用來執(zhí)行和該數(shù)值處理相關(guān)的浮點或整數(shù)指令序列。地址更名邏輯窗體單元94含有地址更名信息,該信息可用于提供該些實體緩沖器至該些快取存儲器線88的彈性映像,其說明同上。該邏輯更名表具有一或多個控制器,用來操作及更新該表。該地址更名邏輯窗體單元可對區(qū)域快取存儲器提供虛擬類型存取。更明確地說,該地址更名邏輯窗體單元94會將一實體緩沖器編號轉(zhuǎn)換成一快取地址。熟悉本技術(shù)的人士應(yīng)該了解,該邏輯表可被配置成以和虛擬存儲器系統(tǒng)中的轉(zhuǎn)換后備緩沖器(translationlook-asidebuffer,TLB)相似的方式來運(yùn)行。數(shù)據(jù)管理移動機(jī)制52負(fù)責(zé)加載所有的數(shù)據(jù)且移進(jìn)該執(zhí)行單元之中并且負(fù)責(zé)與全域散布器12以及所有其它執(zhí)行單元及固定功能硬件與快取單元存儲器21進(jìn)行互動,如圖1所示。在至少一非限制性范例中,假使數(shù)據(jù)未被儲存于該執(zhí)行單元的快取存儲器88之中及/或未被加載該些緩存器(例如本體描述符表78)之中的話將不會處理一線程。就此而言,數(shù)據(jù)管理移動機(jī)制52會與本體描述符表78互動以獲取該表中的本體的狀態(tài),以便提供外部要求的數(shù)據(jù)給執(zhí)行單元15,例如供全域參考之用。以一非限制性范例為例,假使在第一執(zhí)行單元中處理一三角形的其中一個頂點的話,對三角形處理用途而言,該特定的執(zhí)行單元可能會試圖將此頂點信息復(fù)制至正在處理該三角形的其余頂點或是該三角形的其余頂點所在的一或多個其它執(zhí)行單元。依此方式,數(shù)據(jù)管理移動機(jī)制52便可讓該特定執(zhí)行單元與全域資源進(jìn)行所有的互動,如圖1所示。圖5為在一頂點處理序列中圖1的對象導(dǎo)向架構(gòu)模型10的執(zhí)行示意圖。對該些頂點對象來說,會參考一可能相同的“本體”。邏輯電路先進(jìn)先出并不必實體均等,因為本體一旦產(chǎn)生之后,就不會改變它們在該存儲器中的位置。取而代之的是,級剖析器82會使用指標(biāo)來確認(rèn)某個本體,以便將該本體從其中一種狀態(tài)推入另一種狀態(tài)。如圖5的非限制性范例所示,全域散布器12會通過圖3的輸入頂點緩沖器與索引緩沖器46將一頂點處理序列的幾何流傳送給數(shù)據(jù)管理移動機(jī)制52。該全域散布器12的頂點描述符表43會傳送一本體分派要求,并且在該頂點描述符表43中登記該本體。繼續(xù)停留在級0中,該執(zhí)行單元的隊列與隊列快取控制器51會在快取存儲器88中分派該本體,并且在本體描述符表78中建立一本體描述符表項。雖然已經(jīng)分派此本體,不過如級0中所示,也可在快取存儲器88之中為該本體建立數(shù)條快取線。在此操作期間,該執(zhí)行單元的線程控制器與數(shù)值管可能正在執(zhí)行其它的線程,如級0中所示。級1中,在級剖析器82找到欲儲存在快取存儲器88之中的頂點本體時,便可進(jìn)行頂點幾何批次數(shù)據(jù)加載。在此操作中,級剖析器82會指示數(shù)據(jù)管理移動機(jī)制52為快取存儲器88取得該頂點幾何數(shù)據(jù)。級2中,如圖5所示,可依照級剖析器82來存取被加載快取存儲器88之中的幾何數(shù)據(jù),以便讓線程控制器56及數(shù)值管可在此非限制性范例中依照轉(zhuǎn)換描影程序來實施運(yùn)算。級2中所生成的數(shù)據(jù)可在進(jìn)行級3中的操作以前再次被儲存在快取存儲器88之中。級3中,由級剖析器82指示數(shù)據(jù)管理移動機(jī)制52將頂點屬性批次數(shù)據(jù)置入快取存儲器88之中便可加載該數(shù)據(jù),如級3所示。此時,級3中,該執(zhí)行單元的線程控制器56及數(shù)值管可能正在執(zhí)行其它的線程。級4中,該隊列與快取控制器的級剖析器82可指示傳輸該些已轉(zhuǎn)換的幾何與未經(jīng)處理的屬性,并使之可實施屬性轉(zhuǎn)換與照明描影運(yùn)算。所生成的數(shù)據(jù)可再次被儲存于快取存儲器88之中,如級4至級5所示。級5中,在從級剖析器82中收到該頂點本體的指標(biāo)時,線程控制器56及數(shù)值管便可對快取存儲器88中已經(jīng)過轉(zhuǎn)換的數(shù)據(jù)進(jìn)行額外的后描影運(yùn)算。在離開該后端描影器時,如圖6的級5中所示,所生成的頂點數(shù)據(jù)會再次被置放在快取存儲器88之中,接著便會由數(shù)據(jù)管理移動機(jī)制52將其傳送給任一其它的執(zhí)行單元或全域散布器12可指揮的已分配存儲器位置。級5的結(jié)果為級剖析器82會發(fā)出一“刪除本體”命令給該本體描述符表,以便刪除此次操作的頂點本體ID。也就是說,可從頂點隊列中刪除該本體參考值,不過,該頂點數(shù)據(jù)仍然留在快取存儲器88之中,以便供三角形本體用來進(jìn)行其它的處理,其說明如下。視要被執(zhí)行的微指令及欲被移動的數(shù)據(jù)大小而定,上述的六級中的每一級均可能發(fā)生在數(shù)個循環(huán)中。圖6與圖7為圖1對象導(dǎo)向架構(gòu)模型10的三角形處理序列的對象導(dǎo)向架構(gòu)互動示意圖。級0中,全域散布器12可通過數(shù)據(jù)傳輸通信系統(tǒng)13總線來與數(shù)據(jù)管理移動機(jī)制52進(jìn)行通信,同時還會分派該三角形本體要求并且在該頂點描述符表43中登記該項要求。該項三角形本體產(chǎn)生處理會在執(zhí)行單元隊列快取控制器51中繼續(xù)執(zhí)行,其方式是在本體描述符表78中分派該本體并且在快取存儲器88中為該些三角形頂點索引及幾何數(shù)據(jù)分派一存儲器空間。此時,級0中,線程控制器56及數(shù)值管可能正在執(zhí)行其它的線程。級1中,級剖析器82可能會指向級0中所分派的三角形本體,并且會指示數(shù)據(jù)管理移動機(jī)制52接收該三角形幾何數(shù)據(jù),該數(shù)據(jù)可被復(fù)制至快取存儲器88并且在本體描述符表78中進(jìn)行參考,如級1所示。然而,此時,線程控制器56及數(shù)值管可能仍正在執(zhí)行其它的線程。級2中,級剖析器82可將快取存儲器88中已加載的三角形幾何數(shù)據(jù)傳送至具有線程控制器56的數(shù)值管之中,用來在此非限制性范例中進(jìn)行隱面消除(backfaceculling)。所生成的數(shù)據(jù)可被儲存于快取存儲器88之中,如級2所示,而經(jīng)過更名的三角形本體ID則會保留在本體描述符表78之中。級3中,具有線程控制器56的數(shù)值管可對該些頂點數(shù)據(jù)本體進(jìn)行處理,如上述,其可能是起因于該級剖析器82參考該本體描述符表78的結(jié)果,并使該數(shù)據(jù)管理移動機(jī)制52將該地址信息傳送給可能正在處理該些頂點本體的另一個執(zhí)行單元。級4中(如圖7所示),目前被儲存在快取存儲器88之中的該些三角形頂點屬性會通過線程控制器56在數(shù)值管中被執(zhí)行以便實施三角形修剪試驗/分割操作。同樣地,所生成的數(shù)據(jù)可被儲存在快取存儲器88之中,而已被隊列的登錄項則仍然保留在本體描述符表78之中。繼續(xù)此非限制性范例,級5操作包含級剖析器82將該本體描述符表78與線程控制器56及數(shù)值管中的某項小型三角形操作以及某個單像素三角形設(shè)定操作產(chǎn)生關(guān)聯(lián)??烊〈鎯ζ?8會儲存和單像素三角形及少于一個像素的三角形有關(guān)的數(shù)據(jù)。如級6所示,和該些三角形有關(guān)的生成數(shù)據(jù)會在本體描述符表78中被參考,因而可由級剖析器82將一角落傳送至數(shù)據(jù)管理移動機(jī)制52。也就是說,可由總線將該生成的三角形幾何數(shù)據(jù)轉(zhuǎn)送至該全域散布器12或是轉(zhuǎn)送至另一執(zhí)行單元以供進(jìn)一步處理。如上所述,視要被執(zhí)行的微指令的數(shù)量及欲移動的數(shù)據(jù)大小而定,每一級可能會耗用數(shù)個頻率循環(huán)。圖8與圖9為像素處理序列中該對象導(dǎo)向架構(gòu)模型10的互動示意圖。如圖8所示,圖1的對象導(dǎo)向架構(gòu)模型10的全域資源可在級0中在全域散布器12的輸入頂點緩沖器與索引緩沖器46中建立一輸入像素本體。此本體產(chǎn)生操作也會發(fā)生在隊列快取控制器51之中,以便在本體描述符表78中產(chǎn)生一像素本體ID以及在快取存儲器88中分派像素存儲器,如級0所示。此時,線程控制器56及數(shù)值管可能正在執(zhí)行其它的線程。不過,級1中,級剖析器82會通過其級剖析器表在該本體描述符表中檢索該像素本體ID,以便將快取存儲器88中的該像素數(shù)據(jù)傳送至線程控制器56及該數(shù)值管,用來在此非限制性范例中進(jìn)行像素內(nèi)插設(shè)定運(yùn)算。所生成的數(shù)據(jù)會被送回快取存儲器88之中,作為像素內(nèi)插參數(shù)。另外,級剖析器82會在級1中提示該和此經(jīng)更改數(shù)據(jù)有關(guān)的像素本體ID。級2中,級剖析器82會在本體描述符表78中檢索該像素本體ID,以便將快取存儲器88中的該些像素內(nèi)插參數(shù)傳送至數(shù)值管中的線程控制器56,用來進(jìn)行Z內(nèi)插運(yùn)算。所生成的經(jīng)更改數(shù)據(jù)會被送回快取存儲器88之中,而級剖析器82則會將該像素本體ID隊列排列在本體描述符表78之中。不過,在一非限制性的替代具體實施例中,假使利用固定功能硬件與快取單元存儲器21來進(jìn)行Z內(nèi)插的話,那么便可省略級2。在此非限制性范例中,像素封包器50接著就可直接從該Z內(nèi)插單元(圖中未示)中接收數(shù)據(jù)。繼續(xù)參考此非限制性范例,可利用該數(shù)據(jù)傳輸系統(tǒng)來傳送該像素本體ID,用來依照該級剖析器與該數(shù)據(jù)管理移動機(jī)制的指示來接收像素XYZ及經(jīng)屏蔽數(shù)據(jù)。此時,線程控制器56可能正在執(zhí)行其它的線程。級4中(如圖9所示),級剖析器82可獲取該像素本體ID,以便對快取存儲器88中的數(shù)據(jù)實施紋理內(nèi)插運(yùn)算,其可能包括X、Y、Z的再包裝內(nèi)插參數(shù)及屏蔽數(shù)據(jù)信息。經(jīng)此操作之后,級4便可將像素封包數(shù)據(jù)儲存于快取存儲器88之中。在將經(jīng)處理信息轉(zhuǎn)送至其它執(zhí)行單元以在級5中進(jìn)行處理時可由數(shù)據(jù)傳輸系統(tǒng)13來接收紋理地址數(shù)據(jù)。視紋理的數(shù)量及像素描影器的復(fù)雜度而定,可以任意順序來復(fù)制級4、5、6。但是,如級6所示,可在紋理過濾及/或像素描影運(yùn)算中的顏色內(nèi)插中來變更快取存儲器88中的像素封包數(shù)據(jù),其方式如上所述。在最后一級中,如圖9所示,級剖析器82會將該像素本體ID導(dǎo)向數(shù)據(jù)管理移動機(jī)制52,以便從該執(zhí)行單元中轉(zhuǎn)送最后的像素數(shù)據(jù)以供進(jìn)一步處理及/或顯示。如上所述,該全域散布器12可分派一頂點、三角形和/或像素本體到一個或多個執(zhí)行單元中進(jìn)行處理,然而當(dāng)上述的該全域散布器12分派一頂點、三角形和/或像素本體到一個或多個執(zhí)行單元時,至少有另一種實施例為該全域散布器12根據(jù)預(yù)先決定的偏好來分派。圖10為一非限制性范例示意圖101,圖中描繪的是在該全域散布器12及圖1的執(zhí)行單元之間分派一三角形本體。圖10中,在步驟S104處會在全域散布器12中收到一描繪(draw)命令,其會促使該全域散布器12去檢查該三角形輸入封包。假使該三角形輸入封包含有索引的話,便可在全域散布器12中執(zhí)行步驟S106,以便針對所收到的三角形封包來存取頂點描述符表43。假使全域散布器12判斷出該些和該三角形封包相關(guān)的頂點位于其中一執(zhí)行單元中的話,全域散布器12便可產(chǎn)生一區(qū)域參考值(步驟S108);不過,假使全域散布器12判斷出該些和該三角形封包相關(guān)的頂點位于多個執(zhí)行單元中的話,全域散布器12便可產(chǎn)生一全域參考值(步驟S109),以便能夠平行安排該些多個執(zhí)行單元中的數(shù)據(jù)處理。接著,視該些頂點究竟是位于其中一個或是數(shù)個執(zhí)行單元中而定,全域散布器12會從步驟S108或步驟S109前進(jìn)至步驟S115,該步驟可運(yùn)行用來定義執(zhí)行該三角形封包所需要的最小資源數(shù)量。除了源自步驟S104的該些索引以外,步驟S115中還會考慮到數(shù)據(jù),并使之可為該三角形封包分派正確的資源數(shù)量。另外,步驟S115中還會考慮到數(shù)據(jù)和用于執(zhí)行該三角形封包的邏輯訊框結(jié)構(gòu)有關(guān)的數(shù)據(jù)。如步驟S115所示,在確定供執(zhí)行用的最小資源數(shù)量后,該全域散布器12便會在步驟S118處產(chǎn)生一本體分派要求。此本體分派要求包含步驟S115處所產(chǎn)生的要被復(fù)制的數(shù)據(jù)量,以及同樣源自步驟S115的存儲器覆蓋范圍。本體分派要求步驟S115還可接收一份經(jīng)定義的候選執(zhí)行單元清單,用于接收該本體分派要求,以及要被執(zhí)行的本體類型的優(yōu)先權(quán)索引。如步驟S120所示,全域散布器12會檢查第一候選執(zhí)行單元的狀態(tài),其可依照步驟S111中定義的候選執(zhí)行單元清單及/或和要被執(zhí)行的本體類型有關(guān)的優(yōu)先權(quán)。假使該第一候選執(zhí)行單元為該經(jīng)分派本體的可用資源相配者的話,全域散布器12便會傳送一本體分派要求給該第一執(zhí)行單元,如步驟S126所示,而后便會等待在完成之后接收該執(zhí)行單元的結(jié)果。在該本體被分派之后,全域散布器12便會返回步驟S104,用來接收一下一個三角形描繪命令。不過,假使該第一候選執(zhí)行單元并非步驟S118中所分派的本體的可用資源相配者的話,那么全域散布器12便會尋求第二候選執(zhí)行單元,如步驟S122所示。假使此第二候選執(zhí)行單元為可用資源相配者的話,便會執(zhí)行步驟S126,如上所述。不過,假使該第二候選執(zhí)行單元并非相配者的話,那么全域散布器12便會尋求第三候選執(zhí)行單元,如步驟S124所示。視此單元是否為相配者而定,全域散布器12可能會尋求一或多個額外的候選執(zhí)行單元,直到發(fā)現(xiàn)適當(dāng)?shù)暮蜻x相配者以便分派要進(jìn)行處理的本體為止。熟悉本技術(shù)的人士應(yīng)該了解,圖10中所述的過程不僅適用于三角形封包,也適用于頂點封包及像素封包。不過,在每種實例中,全域散布器12均會如上述般地選擇一候選執(zhí)行單元。當(dāng)然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。權(quán)利要求1.一種動態(tài)排程平行圖形處理器,其特征在于,包括一散布器,被配置成用來產(chǎn)生要被處理的數(shù)個圖形對象,以及分配與分散該些經(jīng)產(chǎn)生的圖形對象來進(jìn)行處理;數(shù)個執(zhí)行單元,被耦合至該散布器,且被配置成用來從該散布器中接收一指令來處理一圖形對象,用來推動本體經(jīng)過一或多個處理級,其中,每個執(zhí)行單元均會排程該些經(jīng)分配圖形對象的處理,產(chǎn)生和一或多個其它執(zhí)行單元可用的經(jīng)分配數(shù)據(jù)對象有關(guān)的信息,以及在該經(jīng)分配對象上執(zhí)行一或多個指令操作;一或多個固定功能單元,被耦合至該散布器與該些數(shù)個執(zhí)行單元,且被配置成用來在一圖形對象上執(zhí)行一或多個預(yù)設(shè)的操作;以及一輸入/輸出單元,被耦合至該散布器、該些一或多個固定功能單元以及該些數(shù)個執(zhí)行單元,被配置成用來存取該動態(tài)排程單元外面的存儲器。2.根據(jù)權(quán)利要求1所述的動態(tài)排程平行圖形處理器,其特征在于,該些一或多個固定功能單元會實施格柵化處理、紋理處理以及像素輸出處理。3.根據(jù)權(quán)利要求1所述的動態(tài)排程平行圖形處理器,其特征在于,該散布器會分派和一三角圖形對象本體相關(guān)聯(lián)的數(shù)個頂點圖形對象本體給一執(zhí)行單元,而且還被分配用來處理該三角圖形對象本體。4.根據(jù)權(quán)利要求1所述的動態(tài)排程平行圖形處理器,其特征在于,進(jìn)一步包括該散布器中的邏輯電路,被配置成用來在每個頻率循環(huán)處針對每個執(zhí)行單元來保有及更新、可用資源的數(shù)量、該些要被處理的本體、每個本體的實體緩沖數(shù)據(jù)以及可用的快取存儲器。5.根據(jù)權(quán)利要求1所述的動態(tài)排程平行圖形處理器,其特征在于,進(jìn)一步包括該散布器中的邏輯電路,被配置成用來對要被分配于一特定圖形物的該些數(shù)個執(zhí)行單元中每一個執(zhí)行單元優(yōu)先化。6.根據(jù)權(quán)利要求1所述的動態(tài)排程平行圖形處理器,其特征在于,進(jìn)一步包括該散布器可執(zhí)行的邏輯電路,被配置成用來建立與保有和對應(yīng)的頂點與像素相關(guān)聯(lián)的三角圖形對象的數(shù)據(jù)布置偏好。7.根據(jù)權(quán)利要求1所述的動態(tài)排程平行圖形處理器,其特征在于,每個該些數(shù)個執(zhí)行單元包括一級剖析器,含有數(shù)個指針,被配置成用來指向要被移動或處理的對象;一控制器,被配置成用來管理浮點與整數(shù)指令的執(zhí)行;一描述符表,被配置成用來暫存要被該執(zhí)行單元處理的圖形對象;以及一數(shù)據(jù)移動器,被配置成用來將圖形對象加載與移入該執(zhí)行單元中,且進(jìn)一步被配置成用來和該散布器與其它執(zhí)行單元進(jìn)行通信。8.根據(jù)權(quán)利要求7所述的動態(tài)排程平行圖形處理器,其特征在于,進(jìn)一步包括一更名邏輯窗體單元,被配置成用來在快取存儲器中提供實體緩沖器的彈性地址映像。9.根據(jù)權(quán)利要求7所述的動態(tài)排程平行圖形處理器,其特征在于,該描述符表含有和一圖形對象處理相關(guān)聯(lián)的數(shù)據(jù)關(guān)系、分派情形、就緒情形以及目前處理級有關(guān)的信息。10.根據(jù)權(quán)利要求7所述的動態(tài)排程平行圖形處理器,其特征在于,該級剖析器表中內(nèi)含的該些指針指向一邏輯圖形管線每一級中要被處理的圖形對象。11.根據(jù)權(quán)利要求10所述的動態(tài)排程平行圖形處理器,其特征在于,和某一級相關(guān)聯(lián)的處理包含數(shù)值處理,其涉及執(zhí)行浮點與整數(shù)指令。12.根據(jù)權(quán)利要求1所述的動態(tài)排程平行圖形處理器,其特征在于,和某一級相關(guān)聯(lián)的處理包含將該執(zhí)行單元內(nèi)的圖形對象數(shù)據(jù)移至另一執(zhí)行單元或移至該固定功能單元。13.根據(jù)權(quán)利要求7所述的動態(tài)排程平行圖形處理器,其特征在于,該描述符表為一內(nèi)容尋址式存儲器。14.根據(jù)權(quán)利要求1所述的動態(tài)排程平行圖形處理器,其特征在于,進(jìn)一步包括有該散布器中的邏輯電路,被配置成用來保有一基本表,其含有當(dāng)分派一三角本體時的基本ID信息。15.根據(jù)權(quán)利要求14所述的動態(tài)排程平行圖形處理器,其特征在于,該基本表具有一基本ID欄及一執(zhí)行單元欄,對應(yīng)于分派一三角本體處的特定執(zhí)行單元。16.一種動態(tài)排程方法,用來在一邏輯圖形管線中排程圖形數(shù)據(jù)的處理,其特征在于,包含以下步驟產(chǎn)生和一圖形數(shù)據(jù)封包相關(guān)聯(lián)的本體;依據(jù)預(yù)設(shè)的資源需求及分派信息來選擇一執(zhí)行單元;分配該本體給一選定的執(zhí)行單元;在該選定執(zhí)行單元中分派該本體,用來將和該本體有關(guān)的圖形數(shù)據(jù)傳送至該選定執(zhí)行單元;以及推動該本體經(jīng)過數(shù)個處理級。17.根據(jù)權(quán)利要求16所述的動態(tài)排程方法,其特征在于,可選擇二或多個執(zhí)行單元來對和該本體有關(guān)的圖形數(shù)據(jù)平行實施指令。18.根據(jù)權(quán)利要求16所述的方法,其特征在于,進(jìn)一步包括下面步驟之一或至少下面步驟之一在一索引緩沖器中索引編排該圖形數(shù)據(jù);將該經(jīng)分配的本體暫存于一本體表之中,其中當(dāng)對該本體表作分配時便會更名該經(jīng)暫存的本體;以及倘若該經(jīng)處理的圖形數(shù)據(jù)和被分配給一或多個額外執(zhí)行單元的本體有關(guān)的話,便將和該本體有關(guān)的該經(jīng)處理的圖形數(shù)據(jù)直接傳送至該些一或多個額外執(zhí)行單元。19.根據(jù)權(quán)利要求18所述的動態(tài)排程方法,其特征在于,和該經(jīng)更名的暫存本體相關(guān)聯(lián)的數(shù)據(jù)可用于該本體表中的本體的后續(xù)數(shù)據(jù)讀取。20.根據(jù)權(quán)利要求18所述的動態(tài)排程方法,其特征在于,進(jìn)一步包括下面步驟指向該本體表中在下一處理級要被該執(zhí)行單元處理的本體;倘若該本體指定用于數(shù)值處理的話,便依照一或多個浮點或整數(shù)指令來處理該被指向的本體;以及由一數(shù)據(jù)移動單元將該被指向的本體傳送至一預(yù)設(shè)的邏輯位置。21.根據(jù)權(quán)利要求20所述的動態(tài)排程方法,其特征在于,該被指向的本體會被傳送至一固定功能單元,用于一預(yù)設(shè)圖形處理操作。22.根據(jù)權(quán)利要求16所述的動態(tài)排程方法,其特征在于,會依照一或多個浮點與整數(shù)指令來處理和該本體相關(guān)聯(lián)的圖形數(shù)據(jù)。全文摘要本發(fā)明公開了一種動態(tài)排程平行圖形處理器,包括一散布器,用來產(chǎn)生要被處理的數(shù)個圖形對象,以及分配與分散這些產(chǎn)生的圖形對象給一或多個執(zhí)行單元來進(jìn)行處理。每個執(zhí)行單元會被耦合至該散布器分散器,且接收一指令來處理一圖形對象。該執(zhí)行單元會借助排程該圖形對象的處理以及在該圖形對象上執(zhí)行指令操作來推動該對象本體經(jīng)過一或多個處理級。該動態(tài)排程平行圖形處理器包含一或多個固定功能單元,被耦合至該散布器,被配置成用來在一圖形對象上執(zhí)行一或多個預(yù)設(shè)的操作。一輸入/輸出單元,被耦合至該散布器、該些一或多個固定功能單元、以及該數(shù)個執(zhí)行單元,且被配置成用來存取該動態(tài)排程平行圖形處理器外面的存儲器。文檔編號G06F9/38GK1912922SQ20061005792公開日2007年2月14日申請日期2006年2月27日優(yōu)先權(quán)日2005年8月8日發(fā)明者伯瑞斯·波羅克潘克,貼木耳·培特基夫申請人:威盛電子股份有限公司