專利名稱:繪圖處理單元、執(zhí)行單元以及工作管理方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)于一種三維計(jì)算機(jī)繪圖系統(tǒng),特別是有關(guān)于如何動(dòng)態(tài)地調(diào)度繪圖處理 核心系統(tǒng)內(nèi)的平行著色器單元。
背景技術(shù):
用來(lái)將三維世界(真實(shí)或假想)的對(duì)象呈現(xiàn)于二維顯示屏幕之上的三維計(jì)算機(jī)繪 圖系統(tǒng)目前正被廣泛地使用于各種的應(yīng)用類(lèi)型之中。例如,三維計(jì)算機(jī)繪圖可以用于實(shí)時(shí) 互動(dòng)的應(yīng)用程序,像是計(jì)算機(jī)游戲、虛擬實(shí)境、科學(xué)研究等等,以及離線應(yīng)用程序,像是高分 辨率電影的制作、繪圖設(shè)計(jì)等。由于對(duì)三維計(jì)算機(jī)繪圖的需求與日俱增,此技術(shù)領(lǐng)域于過(guò)去 幾年間有了長(zhǎng)足的發(fā)展和進(jìn)步。為了將三維的對(duì)象以二維方式呈現(xiàn),使用了空間坐標(biāo)和色彩特征將欲顯示的對(duì)象 定義于一個(gè)三維世界空間中。先決定一個(gè)對(duì)象表面的點(diǎn)的坐標(biāo),并且用這些點(diǎn)(或頂點(diǎn)) 來(lái)建立連接這些點(diǎn)的線框以定義此對(duì)象的大致形狀。在某些情況,這些對(duì)象可具有骨干和 接合點(diǎn),其可繞轉(zhuǎn)、旋轉(zhuǎn)等,或者具有使對(duì)象彎曲、壓縮和變形等特性。繪圖處理系統(tǒng)可集結(jié) 對(duì)象線框的頂點(diǎn)來(lái)建立三角形或多邊形。舉例來(lái)說(shuō),對(duì)于一個(gè)具有簡(jiǎn)單結(jié)構(gòu)的對(duì)象,例如一 面墻或大樓的一個(gè)面,可簡(jiǎn)單地以一個(gè)平面上形成一矩形多邊形或兩個(gè)三角形的四個(gè)頂點(diǎn) 所定義。對(duì)于更復(fù)雜的對(duì)象,像是樹(shù)或球體,可能需要上百個(gè)頂點(diǎn)形成上百個(gè)三角形來(lái)定義 此對(duì)象。除了定義一對(duì)象的頂點(diǎn),繪圖處理器亦可執(zhí)行其它的工作,像是決定三維的對(duì)象 將如何出現(xiàn)在一個(gè)二維的屏幕上。此過(guò)程包括由朝向一特定方向的單一相機(jī)景像決定一個(gè) 三維世界的窗口框架景象。從此景象,繪圖處理器可剪裁一對(duì)象其可能在框架外面的部分、 被其它對(duì)象遮蔽的部分、或是偏離相機(jī)且被此對(duì)象其它部分所遮蔽的部分。此外,繪圖處理 器也可決定三角形或多邊形的頂點(diǎn)的顏色,并且依照光線效果、反射特性和透明特性等等 來(lái)做適當(dāng)?shù)恼{(diào)整。使用紋理貼圖可將平面圖片的紋理或顏色顯示于三維對(duì)象的表面之上, 就好像覆蓋表皮層于對(duì)象之上。在某些情況,對(duì)于位于兩頂點(diǎn)之間的像素,或位于由三個(gè)或 更多個(gè)頂點(diǎn)所形成的一多邊形的表面之上的像素,其像素顏色值是可以被插值的,如果頂 點(diǎn)的顏色值已知的話。其它的繪圖處理技術(shù)可用來(lái)將這些對(duì)象呈現(xiàn)于一平面屏幕之上。如本領(lǐng)域技術(shù)人員所知,繪圖處理器包括了被稱為著色器的核心數(shù)據(jù)處理組件, 軟件開(kāi)發(fā)者或本領(lǐng)域技術(shù)人員可以利用這些著色器來(lái)建立影像且隨意控制連續(xù)影格的視 頻。舉例來(lái)說(shuō),頂點(diǎn)著色器、幾何著色器和像素著色器通常包含于繪圖處理器之內(nèi)以執(zhí)行 上述的諸多工作。有些工作也由像是掃描場(chǎng)解析器(rasterizer)、像素插補(bǔ)器(pixel interpolators)和三角設(shè)定單元等的固定功能單元所執(zhí)行。借著建構(gòu)具有上述個(gè)別組件的 繪圖處理器,制造商可以提供建構(gòu)逼真三維影像或視頻的基本工具。因?yàn)椴煌能浖_(kāi)發(fā)者或本領(lǐng)域技術(shù)人員基于他們的特殊應(yīng)用而有不同的需求, 因此不容易一開(kāi)始就能決定整個(gè)處理核心內(nèi)每一著色器單元或固定功能單元應(yīng)該要包含 于繪圖處理器的部分。因此,有需要于繪圖處理器此領(lǐng)域提出基于不同的應(yīng)用類(lèi)別,而將分
4離的著色器和固定功能單元作結(jié)合和比例分配等調(diào)度的方法或系統(tǒng)。因而需要提供有能力 于三維繪圖技術(shù)中克服這些和其它缺失的繪圖處理系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明揭露處理和儲(chǔ)存繪圖數(shù)據(jù)的系統(tǒng)和方法。其中一個(gè)實(shí)施例揭露一個(gè)繪圖處 理單元(Graphics Processing Unit, GPU)包括用以執(zhí)行多個(gè)著色功能的著色裝置。此著 色裝置包含可平行操作的多個(gè)執(zhí)行單元,每一執(zhí)行單元有多個(gè)可平行操作的線程。每一線 程用以執(zhí)行多個(gè)繪圖著色功能。繪圖處理單元還包括與著色裝置連接的控制裝置,此控制 裝置用來(lái)接收繪圖數(shù)據(jù),并將繪圖數(shù)據(jù)分配給至少一個(gè)執(zhí)行單元中至少一個(gè)的線程。此控 制裝置還用以動(dòng)態(tài)地將繪圖數(shù)據(jù)從被認(rèn)定為較繁忙的線程重新分配到被認(rèn)定為較不繁忙 的線程。在另一實(shí)施例中,一執(zhí)行單元具有多個(gè)線程處理路徑、一存儲(chǔ)器裝置以及一線程 控制裝置。線程處理路徑用以處理繪圖數(shù)據(jù),每一線程處理路徑具有用以執(zhí)行頂點(diǎn)著色功 能的邏輯單元、用以執(zhí)行幾何著色功能的邏輯單元和用以執(zhí)行像素著色功能的邏輯單元。 存儲(chǔ)裝置用來(lái)儲(chǔ)存正在處理的繪圖數(shù)據(jù)。線程控制裝置用來(lái)根據(jù)初始配置分配繪圖數(shù)據(jù)到 線程處理路徑,線程控制裝置還根據(jù)線程處理路徑的可用性控制繪圖數(shù)據(jù)到線程處理路徑 的重新配置。經(jīng)過(guò)閱讀以下所述的圖示和詳細(xì)解釋,對(duì)本領(lǐng)域技術(shù)人員而言,本發(fā)明其它的系 統(tǒng)、方法、特征和優(yōu)點(diǎn)將會(huì)是顯而易見(jiàn)的。本發(fā)明的保護(hù)范圍當(dāng)視所附的申請(qǐng)專利范圍所界 定者為準(zhǔn)。
通過(guò)以下的圖示可更了解本發(fā)明所揭露的所有實(shí)施例的各個(gè)觀點(diǎn)。同一個(gè)標(biāo)號(hào)于 全文代表同一個(gè)組件。圖1顯示本發(fā)明一實(shí)施例的繪圖處理系統(tǒng)的方塊圖;圖2顯示圖1的繪圖處理單元的一實(shí)施例的方塊圖;圖3A顯示圖1的繪圖處理單元的另一實(shí)施例的方塊圖;圖3B顯示圖1的繪圖處理單元的另一實(shí)施例的方塊圖;圖3C還是顯示圖1的繪圖處理單元的另一實(shí)施例的方塊圖;圖4顯示根據(jù)圖3A至3C的執(zhí)行單元的一實(shí)施例的方塊圖;圖5顯示根據(jù)圖3A至3C的執(zhí)行單元的另一實(shí)施例的方塊圖;圖6還是顯示根據(jù)圖3A至3C的執(zhí)行單元的另一實(shí)施例的方塊圖;圖7顯示線程控制器和相關(guān)的信號(hào)流的一實(shí)施例的方塊圖;圖8顯示線程控制器的另一實(shí)施例的方塊圖;圖9顯示線程隊(duì)列的一實(shí)施例的方塊圖;圖10顯示用來(lái)管理繪圖處理單元內(nèi)的工作的一實(shí)施例的方法流程圖。[主要組件標(biāo)號(hào)說(shuō)明]12 運(yùn)算系統(tǒng)14 繪圖軟件模塊16 顯示裝置18 繪圖處理單元
20 應(yīng)用程序接口24 繪圖處理管線26、106 高速緩存系統(tǒng)28-30 頂點(diǎn)著色器3234 掃描場(chǎng)解析器3640 頂點(diǎn)串流高速緩存42、196 第一級(jí)高速緩存44,90 第二級(jí)高速緩存46 -48 紋理高速緩存5052、56、82、102 執(zhí)#亍單元54,60,92 高速緩存/控制裝置55 調(diào)度器62 只讀高速緩存64、132 數(shù)據(jù)高速緩存66 頂點(diǎn)著色器控制裝置70、100 命令串流處理器72、96 存儲(chǔ)器存取單元74 掃描場(chǎng)解析裝置78 包裝器84、112 輸出閂94 存儲(chǔ)器接口104 線程控制裝置114、146 指令高速緩存117 頂點(diǎn)和屬性高速緩存118、152 公用緩存器文件120、154 執(zhí)行單元數(shù)據(jù)路徑122 算數(shù)邏輯單元126、134 執(zhí)行單元集區(qū)控制單元128、136 高速緩存130 紋理緩沖器140 索引輸入擷取單元142、158 斷言緩存器文件 144-148 線程高速緩存150156 請(qǐng)求先進(jìn)先出緩沖器160162 數(shù)據(jù)輸出控制單元
164 Xout接口邏輯單元166 線程工作接口170、186 線程控制器172 ^174 時(shí)間階段比較裝置176-
22 軟件應(yīng)用程序
O^M O^M
色色
紅著著 _何素
£ J
Z高速緩存 -統(tǒng)一著色器單元
58 紋理單元
68 掃描場(chǎng)接口
76,86 回寫(xiě)單元 80、110 輸入閂 88 紋理尋址產(chǎn)生器 98 三角設(shè)定單元 108 線程處理路徑 116 常數(shù)高速緩存
124 插補(bǔ)器
138 輸出緩沖器
Xin接口邏輯單元 -常數(shù)緩沖器 -純量緩存器文件
-線程狀態(tài)裝置 -有效選擇裝置
178 -、線程指令隊(duì)列180 -、多工器
182 -、沖突檢查裝置184 -、仲裁器
188 -、執(zhí)行單元集區(qū)負(fù)載線程裝置
190 - 1m程緩沖器192,206 線程隊(duì)列
194,210 ‘ 第一級(jí)高速緩存接口
198 -數(shù)線程仲裁裝置
200 -數(shù)線程仲裁裝置
202 -數(shù)執(zhí)行單元數(shù)據(jù)路徑
204 -數(shù)執(zhí)行單元數(shù)據(jù)路徑
208 - m程緩沖器212 -、指令擷取裝置
214 -、解壓縮隊(duì)列裝置216 -、線程控制裝置
218 -、計(jì)分裝置220 -、線程仲裁器
222、224、225、227、228 步驟
具體實(shí)施例方式傳統(tǒng)上,繪圖處理器或繪圖處理單元(Graphics Processing Units,GPUs)是合并 于計(jì)算機(jī)系統(tǒng)內(nèi)以專門(mén)地執(zhí)行計(jì)算機(jī)繪圖。隨著三維計(jì)算機(jī)繪圖的普遍使用,繪圖處理單 元變得更加進(jìn)步且功能強(qiáng)大,某些一般由中央處理單元(Central Processing Unit, CPU) 所處理的工作現(xiàn)在都交由繪圖處理單元處理,以達(dá)成具有高度復(fù)雜性的繪圖處理任務(wù)。一 般來(lái)說(shuō),繪圖處理單元可嵌入于附接到計(jì)算機(jī)處理系統(tǒng)的主機(jī)板,或與主機(jī)板溝通的繪圖 卡之內(nèi)。繪圖處理單元包括許多獨(dú)立的單元來(lái)執(zhí)行不同的工作以最終呈現(xiàn)三維的景象于 二維的顯示屏幕之上。例如電視、計(jì)算機(jī)屏幕、視頻屏幕或其它適當(dāng)?shù)娘@示裝置。這些獨(dú)立 的處理單元一般稱為著色器,其可包括頂點(diǎn)著色器、幾何著色器以及像素著色器等等。繪圖 處理單元亦包含了其它被稱為固定功能單元的處理單元,像是像素插補(bǔ)器和掃描場(chǎng)解析器 等。在設(shè)計(jì)繪圖處理單元的時(shí)候,上述組件的每一種組合都會(huì)被考慮進(jìn)去以便能執(zhí)行各種 工作。根據(jù)這些組合,繪圖處理單元可能具有較大的能力處理某一件工作,但缺乏完整執(zhí)行 另一項(xiàng)工作的能力。因此,硬件開(kāi)發(fā)者始終嘗試將一些著色器單元放進(jìn)一個(gè)組件中。然而, 獨(dú)立單元結(jié)合在一起的程度卻是有限的。本發(fā)明揭露了將著色器單元和固定功能單元結(jié)合成一單一單元的機(jī)制,在此稱為 統(tǒng)一著色器。統(tǒng)一著色器具有執(zhí)行頂點(diǎn)著色、幾何著色和像素著色等功能的能力,同時(shí)亦能 執(zhí)行掃描場(chǎng)解析和像素插補(bǔ)等功能。同樣地,借著包括用來(lái)決定配置處理的裝置,三維繪圖 的成像可基于當(dāng)下的特殊需求來(lái)動(dòng)態(tài)調(diào)整。借著觀察個(gè)別功能目前和先前的需求,此配置 機(jī)制可適當(dāng)?shù)卣{(diào)整處理設(shè)備的分配以有效率及快速地處理繪圖數(shù)據(jù)。舉例來(lái)說(shuō),當(dāng)統(tǒng)一著色器確定定義于三維世界空間之內(nèi)的諸多對(duì)象具有簡(jiǎn)單的結(jié) 構(gòu),例如一房間里面所看到的諸多平面墻壁、地版、天花板和門(mén)等場(chǎng)景等等,這個(gè)時(shí)候,將不 會(huì)太過(guò)頻繁使用頂點(diǎn)著色器。因此,可以把更多的處理能力分配給可能需要處理復(fù)雜紋理 的像素著色器。相對(duì)地,如果一場(chǎng)景包含許多復(fù)雜的形狀,例如森林的場(chǎng)景,頂點(diǎn)著色器可 能需要更多的處理能力,而像素著色器只需要較少的處理能力。即使一場(chǎng)景改變了,例如從戶外場(chǎng)景移到戶內(nèi)場(chǎng)景或相反,統(tǒng)一著色器可動(dòng)態(tài)地調(diào)整著色器的分配以符合特殊的需 求。此外,統(tǒng)一著色器可設(shè)計(jì)成具有多個(gè)平行處理單元,例如執(zhí)行單元,其中每一個(gè)執(zhí) 行單元皆有能力執(zhí)行完全的繪圖處理著色任務(wù)和固定功能任務(wù)。如此一來(lái),此配置機(jī)制可 動(dòng)態(tài)地架構(gòu)每一個(gè)或部分的執(zhí)行單元以處理特定的繪圖功能。此具有許多相似的功能執(zhí)行 單元的統(tǒng)一著色器,可有足夠的彈性以允許軟件開(kāi)發(fā)者根據(jù)特定的場(chǎng)景或?qū)ο髞?lái)做資源的 分配。如此一來(lái),可借著資源的分配使得繪圖處理單元更有效率地運(yùn)算。此基于需求的資 源分配機(jī)制可提供較快速的處理速度,并且允許更復(fù)雜的對(duì)象成像。本發(fā)明的統(tǒng)一著色器的另一個(gè)優(yōu)點(diǎn)就是每一個(gè)執(zhí)行單元的功能和大小可相對(duì)地 簡(jiǎn)單。借著平行地結(jié)合執(zhí)行單元,可借著增加或減少執(zhí)行單元的數(shù)目來(lái)輕易地改變繪圖處 理單元的效能。因?yàn)閳?zhí)行單元的數(shù)目是可以改變的,具有較低的執(zhí)行能力的繪圖處理單元 可用于簡(jiǎn)單的繪圖處理。同樣地,執(zhí)行單元的數(shù)目也可以增加以符合需求較高的使用者的 需求。由于執(zhí)行單元具有執(zhí)行廣泛繪圖處理功能的多用性,繪圖處理單元的效能可單純地 以其所包含的執(zhí)行單元的數(shù)目來(lái)決定。執(zhí)行單元的增加或減少可相對(duì)簡(jiǎn)單,且不需復(fù)雜的 重新設(shè)計(jì)來(lái)滿足低階或高階范圍的使用者。如同這里所定義的,每一個(gè)平行執(zhí)行單元可包括許多的線程。在此線程是指執(zhí)行 單元內(nèi)的一工作或基本工作單元。由此來(lái)看,許多個(gè)平行的工作或線程可同時(shí)于相同的周 期內(nèi)執(zhí)行。在本發(fā)明中,不只執(zhí)行單元本身可經(jīng)過(guò)仲裁以決定哪些執(zhí)行單元用于不同的著 色功能,個(gè)別的線程也可經(jīng)過(guò)仲裁以對(duì)執(zhí)行單元集區(qū)提供較精密的調(diào)度。因此,本發(fā)明的動(dòng) 態(tài)調(diào)度機(jī)制執(zhí)行于線程層級(jí)而非執(zhí)行單元層級(jí),進(jìn)而提供了較大的彈性。本發(fā)明中所述的繪圖處理單元、統(tǒng)一著色器和執(zhí)行單元設(shè)計(jì)成符合OpenGL和 (或)DirectX的規(guī)格。以下將會(huì)討論這些組件的實(shí)施例的詳細(xì)說(shuō)明。圖1顯示計(jì)算機(jī)繪圖系統(tǒng)10的一實(shí)施例的方塊圖,此計(jì)算機(jī)繪圖系統(tǒng)10包括運(yùn) 算系統(tǒng)12、繪圖模塊14和顯示裝置16。除了上述的組件,運(yùn)算系統(tǒng)12還包括繪圖處理單 元18以至少處理運(yùn)算系統(tǒng)12所負(fù)責(zé)的一部分繪圖數(shù)據(jù)。在某些實(shí)施例中,繪圖處理單元 18可設(shè)計(jì)為運(yùn)算系統(tǒng)12內(nèi)的繪圖卡之上。繪圖處理單元18處理圖形數(shù)據(jù)以產(chǎn)生圖框的 每一像素的顏色值及亮度值,并顯示于顯示裝置16之上,一般來(lái)說(shuō)是以每秒30個(gè)圖框的比 率來(lái)處理。繪圖軟件模塊14包括應(yīng)用程序接口(Application Programming Interface, API) 20和軟件應(yīng)用程序22。在本實(shí)施例中,應(yīng)用程序接口 20支持最新的OpenGL和(或) DirectX 規(guī)格。在最近幾年,對(duì)具有大量可程序邏輯的繪圖處理單元的使用需求漸增。在此實(shí)施 例中,繪圖處理單元18具有較高的可程序性,使用者可以借著繪圖軟件模塊14控制許多的 輸入/輸出裝置來(lái)互動(dòng)地輸入數(shù)據(jù)和(或)命令。應(yīng)用程序接口 20根據(jù)軟件應(yīng)用程序22 內(nèi)的邏輯單元來(lái)控制繪圖處理單元18的硬件以建立繪圖處理單元18可用的繪圖功能。在 本實(shí)施例中,使用者可以不需要了解繪圖處理單元18與其功能,特別是如果此繪圖軟件模 塊14是電動(dòng)游戲操縱器,且該使用者純粹是一個(gè)玩家。如果該繪圖軟件模塊14是用來(lái)建 立三維繪圖視頻、計(jì)算機(jī)游戲或是其它實(shí)時(shí)或離線成像的裝置,并且該使用者是軟件開(kāi)發(fā) 者或本領(lǐng)域技術(shù)人員,則此使用者一般比較了解繪圖處理單元18的功能。要了解的是,繪 圖處理單元18可使用于諸多不同的應(yīng)用類(lèi)型中。然而為了簡(jiǎn)化敘述,本發(fā)明特別著重影像于二維顯示裝置16上的實(shí)時(shí)成像。圖2顯示圖1所示的繪圖處理單元18的一實(shí)施例的方塊圖。在此實(shí)施例中,繪圖 處理單元18包括繪圖處理管線24,其與高速緩存系統(tǒng)26之間被總線接口 28所分離。繪圖 處理管線24包括頂點(diǎn)著色器30、幾何著色器32、掃描場(chǎng)解析器34和像素著色器36。繪圖 處理管線24的輸出可被送到一回寫(xiě)單元(圖未顯示)。高速緩存系統(tǒng)26包括頂點(diǎn)串流高 速緩存40、第一級(jí)高速緩存42、第二級(jí)高速緩存44、Z高速緩存46和紋理高速緩存48。頂點(diǎn)串流高速緩存40接收命令和圖形數(shù)據(jù),并且傳送這些命令和數(shù)據(jù)給頂點(diǎn)著 色器30,其用以對(duì)這些數(shù)據(jù)執(zhí)行頂點(diǎn)著色的運(yùn)算。頂點(diǎn)著色器30使用頂點(diǎn)信息建立欲顯 示的對(duì)象的三角形和多邊形。頂點(diǎn)數(shù)據(jù)從頂點(diǎn)著色器30傳送到幾何著色器32和第一級(jí)高 速緩存42。如果有需要的話,某些數(shù)據(jù)可被第一級(jí)高速緩存42和第二級(jí)高速緩存44所共 享。第一級(jí)高速緩存也可傳送數(shù)據(jù)給幾何著色器32,其用以執(zhí)行某些像是鑲嵌、陰影計(jì)算、 單點(diǎn)子畫(huà)面(point sprite)的建立等等的功能。幾何著色器32也可借著從單一頂點(diǎn)建立 三角形,或從單一三角形建立多個(gè)三角形來(lái)提供流暢的運(yùn)算。在此階段以后,繪圖處理管線24所包括的掃描場(chǎng)解析器34對(duì)幾何著色器32和第 二級(jí)高速緩存44的數(shù)據(jù)進(jìn)行運(yùn)算。掃描場(chǎng)解析器34亦可利用Z高速緩存46做深度分析, 以及紋理高速緩存48做有關(guān)顏色特性的處理。掃描場(chǎng)解析器34可包括固定功能的運(yùn)算, 像是三角設(shè)定、跨磚運(yùn)算(span tileoperations)(或跨磚產(chǎn)生功能)、深度測(cè)試(Z測(cè)試)、 預(yù)包裝、像素插值、包裝等等。掃描場(chǎng)解析器34亦可包括用來(lái)將一個(gè)對(duì)象的頂點(diǎn)從世界空 間轉(zhuǎn)換至屏幕空間上的坐標(biāo)體系的轉(zhuǎn)換矩陣。完成掃描場(chǎng)解析之后,掃描場(chǎng)解析器34將數(shù)據(jù)傳送給像素著色器36來(lái)決定最后 的像素值,像素著色器36的功能包括根據(jù)各種顏色特性處理每一個(gè)個(gè)別的像素以及改變 顏色值。舉例來(lái)說(shuō),像素著色器36可包括根據(jù)光源的位置及頂點(diǎn)的法線來(lái)決定反射或鏡像 色值和透明值的功能,然后從繪圖處理管線24輸出所完成的視頻圖框。誠(chéng)如圖中所示,著 色器單元和固定功能單元于許多階段使用到高速緩存系統(tǒng)26。假如總線接口 28是一異步 的接口,則于管線24和高速緩存系統(tǒng)26之間的通訊可包括另外的緩沖機(jī)制。在此實(shí)施例中,繪圖處理管線24的組件設(shè)計(jì)成分離的單元,這些單元在根據(jù)需要 存取不同的高速緩存組件。然而,著色器組件可被集中于統(tǒng)一著色器之內(nèi),使得繪圖處理管 線24可以較簡(jiǎn)單的形式設(shè)計(jì),且仍提供相同的功能。數(shù)據(jù)流可被映像在實(shí)體裝置之上,在 此稱為執(zhí)行單元,其用于執(zhí)行一部分的著色器功能。如此一來(lái),繪圖處理管線24結(jié)合成有 能力執(zhí)行繪圖處理管線24的功能的至少一個(gè)執(zhí)行單元。同樣的,高速緩存系統(tǒng)26的某些高 速緩存單元也可并入這些執(zhí)行單元。借著將這些組件合并成單一的單元可簡(jiǎn)化繪圖處理的 流量,并且可包括與異步接口的切換。因此,可在小區(qū)域范圍(local)內(nèi)進(jìn)行數(shù)據(jù)的處理, 因而允許較快速度的執(zhí)行。圖3A顯示圖1中所示的繪圖處理單元18實(shí)施例的方塊圖(或其它繪圖處理裝置 的方塊圖)。繪圖處理單元18包括統(tǒng)一著色器單元50和高速緩存/控制裝置54,其中統(tǒng) 一著色器單元50具有多個(gè)執(zhí)行單元52。執(zhí)行單元52平行地連接設(shè)置并通過(guò)高速緩存/控 制裝置54來(lái)存取,統(tǒng)一著色器單元50可包括任意數(shù)量的執(zhí)行單元52以適當(dāng)?shù)馗鶕?jù)各種規(guī) 格執(zhí)行所要的繪圖處理量。當(dāng)設(shè)計(jì)情況需要處理到更多的繪圖任務(wù)時(shí)可以加入更多的執(zhí)行 單元,如此一來(lái),統(tǒng)一著色器單元50具有可擴(kuò)充性的特色。
在此實(shí)施例中,統(tǒng)一著色器單元50具有比傳統(tǒng)繪圖管線更具彈性的簡(jiǎn)化設(shè)計(jì)。在 其它實(shí)施例中,每一著色器單元可能需要較大量的資源以因應(yīng)運(yùn)作之需(例如高速緩存和 控制裝置)。在此實(shí)施例中資源是可以共享的,每一個(gè)執(zhí)行單元52也可以以類(lèi)似的方法制 造,并且依照當(dāng)前的工作負(fù)載量來(lái)做存取。根據(jù)此工作負(fù)載量,可以視需求來(lái)配置執(zhí)行單元 52以執(zhí)行一或多個(gè)繪圖處理管線24的功能。因此,統(tǒng)一著色器單元50于繪圖處理中提供 一個(gè)成本效能比更佳的解決方案。此外,當(dāng)應(yīng)用程序接口 20的設(shè)計(jì)和規(guī)格改變的時(shí)候(此屬常見(jiàn)現(xiàn)象),統(tǒng)一著色 器單元50不需要為了配合應(yīng)用程序接口的改變而重新設(shè)計(jì)。如同非限定的實(shí)施例,其它的 著色器可以加到此繪圖管線,此即為應(yīng)用程序接口 20規(guī)格的改變。相反地,統(tǒng)一著色器單 元50可動(dòng)態(tài)調(diào)整以便依照需求提供特定的著色功能。高速緩存/控制裝置54包括一動(dòng)態(tài) 調(diào)度裝置,以依照當(dāng)前正在處理的對(duì)象或場(chǎng)景來(lái)平衡所處理的負(fù)載量。依照調(diào)度裝置的決 定,可分配更多的執(zhí)行單元52來(lái)提供較大的處理能力于特殊的繪圖處理,例如著色器功能 或固定功能,如此一來(lái)就可以減少延遲。執(zhí)行單元52也可以操作于所有著色器功能的指令 之上,進(jìn)而簡(jiǎn)化處理的過(guò)程。高速緩存/控制裝置54可包括調(diào)度器55,用來(lái)依照需求分配執(zhí)行單元52,調(diào)度器 55儲(chǔ)存執(zhí)行單元根據(jù)預(yù)先分配的初始配置。當(dāng)某些著色功能對(duì)于處理某一類(lèi)型的著色運(yùn)算 遇到瓶頸時(shí),調(diào)度器55確認(rèn)此瓶頸的情況,同時(shí)也確認(rèn)目前哪些資源是處于閑置狀態(tài)且可 用于其它工作。閑置的執(zhí)行單元資源被重新分配到此瓶頸功能以舒緩其情況,此重新分配 機(jī)制是由調(diào)度器55根據(jù)目前的需求而動(dòng)態(tài)執(zhí)行。處理需求隨著時(shí)間改變,調(diào)度器55持續(xù) 適當(dāng)?shù)胤峙滟Y源以適時(shí)地平衡處理的負(fù)載量。此方式可被視為執(zhí)行單元52的資源的粗糙 等級(jí)調(diào)度。另外,執(zhí)行單元52可分成許多的線程,其代表可于執(zhí)行單元52中所平行處理的工 作。在某些實(shí)施例中,執(zhí)行單元52的資源分成32個(gè)線程。調(diào)度器55可以儲(chǔ)存執(zhí)行單元52 的線程的初始配置,并且以較細(xì)膩的方式)調(diào)整資源的配置。再次強(qiáng)調(diào),此分配機(jī)制為動(dòng)態(tài) 且根據(jù)調(diào)度器55所決定的當(dāng)下需求而定的。此第二方法可被稱為精密細(xì)等級(jí)調(diào)度。一般來(lái)說(shuō),調(diào)度器55是操作于線程層級(jí)之上的動(dòng)態(tài)調(diào)度裝置,但亦可操作于執(zhí)行 單元層級(jí)之上。當(dāng)需要較高的精密度時(shí),調(diào)度器55于分配一個(gè)執(zhí)行單元的一或多個(gè)線程給 某一著色階段時(shí),亦分配此執(zhí)行單元的一或多個(gè)線程給另一著色階段。此配置機(jī)制包括根 據(jù)需求來(lái)切換線程。對(duì)于具有較少執(zhí)行單元52的較低階處理器來(lái)說(shuō),高分辨率的分配機(jī)制 或切換尤其實(shí)用。否則,如果一具有少數(shù)執(zhí)行單元的裝置無(wú)法具備線程層級(jí)調(diào)度控制的能 力,于一執(zhí)行單元從一階段切換到另一階段時(shí),可能會(huì)發(fā)生乒乓效應(yīng)而無(wú)法于多個(gè)著色階 段中減少瓶頸的現(xiàn)象。調(diào)度器55可用來(lái)根據(jù)過(guò)去和先前的需求以計(jì)算預(yù)估的指令流通量 (throughput)。根據(jù)此預(yù)估的指令流通量,調(diào)度器55借著切換線程資源執(zhí)行所需的著色功 能來(lái)嘗試最佳化、或至少降低此瓶頸情況。因此,調(diào)度器55分析出遇到瓶頸的線程和閑置 的線程。借著比較預(yù)估的流通量和目前的情況,如果確定切換后可改善流通量的話,調(diào)度器 55可動(dòng)態(tài)地切換線程的功能。圖3B顯示繪圖處理單元18的另一實(shí)施例的方塊圖,成對(duì)的執(zhí)行單元56和紋理單 元58平行并列,并且連接到高速緩存/控制裝置60。在此實(shí)施例中,紋理單元58為執(zhí)行單元集區(qū)的一部分,執(zhí)行單元56和紋理單元58可因此共享高速緩存/控制裝置60內(nèi)的高速 緩存,使得紋理單元58可比傳統(tǒng)紋理單元更快速地存取指令。此實(shí)施例中的高速緩存/控 制裝置60包括只讀高速緩存62,數(shù)據(jù)高速緩存64,頂點(diǎn)著色器控制裝置66和掃描場(chǎng)接口 68。繪圖處理單元18亦包括命令串流處理器70、存儲(chǔ)器存取單元72、掃描場(chǎng)解析單元74 以及回寫(xiě)單元76。因?yàn)閿?shù)據(jù)高速緩存64為讀/寫(xiě)高速緩存,并且成本比只讀高速緩存62高,所以這 兩個(gè)高速緩存是分開(kāi)的。只讀高速緩存62可包括約32個(gè)快取列,但這個(gè)數(shù)目是可以增減 的,并且每一個(gè)快取列的大小是可以增減的,這樣的做法主要是為了減少所需的數(shù)目比較。 只讀高速緩存62的命中/失誤測(cè)試與一般CPU的命中/失誤測(cè)試不同,主要是因?yàn)槔L圖數(shù) 據(jù)是持續(xù)地串流。對(duì)于失誤的情況,高速緩存僅更新數(shù)據(jù)并且繼續(xù)動(dòng)作而不需要將數(shù)據(jù)儲(chǔ) 存于外部的存儲(chǔ)器。對(duì)于命中的情況,則稍微延遲讀取的動(dòng)作以接收高速緩存的數(shù)據(jù)。只 讀高速緩存62和數(shù)據(jù)高速緩存64可以是第一級(jí)高速緩存裝置以減少延遲,其對(duì)使用第二 級(jí)高速緩存的傳統(tǒng)繪圖處理單元高速緩存系統(tǒng)來(lái)說(shuō)是更進(jìn)步的。頂點(diǎn)著色器控制裝置66從命令串流處理器70接收命令和數(shù)據(jù),執(zhí)行單元56和紋 理單元58接收只讀高速緩存62的紋理信息、指令和常數(shù)的串流。執(zhí)行單元56和紋理單元 58也接收數(shù)據(jù)高速緩存64的數(shù)據(jù),以及將處理后的數(shù)據(jù)提供回?cái)?shù)據(jù)高速緩存64。只讀高 速緩存62和數(shù)據(jù)高速緩存64是與存儲(chǔ)器存取單元72連接。掃描場(chǎng)接口 68和頂點(diǎn)著色器 控制裝置66提供信號(hào)給執(zhí)行單元56并從執(zhí)行單元56接收回處理過(guò)的信號(hào)。掃描場(chǎng)接口 68與掃描場(chǎng)解析單元74連接,執(zhí)行單元56的輸出也接到回寫(xiě)單元76。高速緩存/控制裝置60還包括用來(lái)調(diào)度執(zhí)行單元56的工作的調(diào)度器(圖未顯 示),其與圖3A中所示的調(diào)度器55類(lèi)似。此實(shí)施例中的調(diào)度器也將工作分配給不同的執(zhí)行 單元56以及執(zhí)行單元56中的個(gè)別線程。當(dāng)工作完成時(shí),調(diào)度器移除或丟棄只讀高速緩存 62中的工作,并且送出某些線程位置處于未使用狀態(tài)的指示。當(dāng)閑置的線程位置可用的時(shí) 候,調(diào)度器會(huì)安排另外的工作給這些線程。圖3C顯示此繪圖處理單元18的另一實(shí)施例的方塊圖。在此實(shí)施例中,繪圖處理 單元18包括包裝器(packer) 78、輸入閂80 (又稱為異步輸入接口)、多對(duì)的執(zhí)行單元裝置 82、輸出閂84(又稱為異步輸出接口)、回寫(xiě)單元86、紋理尋址產(chǎn)生器88、第二級(jí)高速緩存 90、高速緩存/控制裝置92、存儲(chǔ)器接口 94、存儲(chǔ)器存取單元96、三角設(shè)定單元98以及命令 串流處理器100。命令串流處理器100提供一串流的索引給高速緩存/控制裝置92,這些索引是關(guān) 于頂點(diǎn)的身份標(biāo)記。舉例來(lái)說(shuō),高速緩存/控制裝置92可一次識(shí)別一先進(jìn)先出緩沖器內(nèi)的 256個(gè)索引。包裝器78,通常為一固定功能單元,其送出一請(qǐng)求給高速緩存/控制裝置92請(qǐng) 求以取得相關(guān)的信息來(lái)執(zhí)行像素著色的功能。高速緩存/控制裝置92送回像素著色器信息 以及關(guān)于一特定執(zhí)行單元號(hào)碼和線程號(hào)碼的配置消息。該執(zhí)行單元號(hào)碼是指執(zhí)行單元裝置 82中的其中一個(gè)執(zhí)行單元,而線程號(hào)碼是指每一個(gè)執(zhí)行單元中用來(lái)處理數(shù)據(jù)的許多平行線 程的其中一個(gè)線程。之后,包裝器78傳送像素著色運(yùn)算所需的相關(guān)紋理像素和顏色信息給 輸入閂80。舉例來(lái)說(shuō),可把連接至輸入閂80的兩個(gè)輸入指定給紋理像素信息,另外兩個(gè)輸 入指定給顏色信息。每一個(gè)輸入具有傳送一特定位數(shù)的能力,例如512位。輸入閂80可為總線接口,其依照高速緩存/控制裝置92所定義的分配任務(wù)將像素著色器數(shù)據(jù)安排給特定的執(zhí)行單元和線程。此分配的任務(wù)可根據(jù)執(zhí)行單元和線程的可用 性、或是其它的因素來(lái)決定,且可依需求改變。在多個(gè)執(zhí)行單元82平行連接,且每個(gè)執(zhí)行單 元有能力平行處理數(shù)個(gè)工作(或線程)的架構(gòu)下,可同時(shí)執(zhí)行更大量的繪圖處理任務(wù)。由 于高速緩存存取的便利性,數(shù)據(jù)流可維持在局部區(qū)域而不需要從較不易存取的高速緩存獲 取數(shù)據(jù)。另外,與傳統(tǒng)繪圖系統(tǒng)相比,流經(jīng)輸入閂80和輸出閂84的數(shù)據(jù)流可以被減少,因 而降低處理時(shí)間。每一個(gè)執(zhí)行單元82依照其被指派的方式使用頂點(diǎn)著色和幾何著色的功能來(lái)處理 數(shù)據(jù)。另外,執(zhí)行單元82可根據(jù)包裝器78的紋理像素信息和顏色信息來(lái)執(zhí)行像素著色的 功能。如所繪示,本實(shí)施例包括了五個(gè)執(zhí)行單元,且每一個(gè)執(zhí)行單元分成兩個(gè)部分,每一個(gè) 部分代表數(shù)個(gè)線程。每一部分可以第4-6圖來(lái)表示,執(zhí)行單元裝置82的輸出是傳送到輸出 閂84。當(dāng)繪圖數(shù)據(jù)完成后,這些數(shù)據(jù)從輸出閂84傳送到回寫(xiě)單元86,其連接至用來(lái)將圖 框顯示在顯示裝置16之上的圖框緩沖器。在一或多個(gè)執(zhí)行單元裝置82以像素著色功能將 數(shù)據(jù)處理完畢之后,回寫(xiě)單元86會(huì)接收完成的圖框,此系繪圖處理的最后階段。然而,在每 一個(gè)圖框的處理完成之前,數(shù)據(jù)處理流可一或多次地通過(guò)高速緩存/控制裝置92回繞。在 中間處理的期間,紋理尋址產(chǎn)生器88從輸出閂84接收紋理坐標(biāo)以決定要取樣的地址。紋 理尋址產(chǎn)生器88可運(yùn)算于一預(yù)取模式或一相依讀取模式。紋理尋址產(chǎn)生器88傳送一紋理 號(hào)碼(texture number)加載請(qǐng)求給第二級(jí)高速緩存90,所加載的數(shù)據(jù)可傳回至紋理尋址 產(chǎn)生器88。輸出閂84還可輸出頂點(diǎn)數(shù)據(jù),這些頂點(diǎn)數(shù)據(jù)被傳送至高速緩存/控制裝置92。高 速緩存/控制裝置92可傳送關(guān)于頂點(diǎn)著色器或幾何著色器運(yùn)算的數(shù)據(jù)輸入給輸入閂80。 同樣地,讀取請(qǐng)求也從輸出閂84送到第二級(jí)高速緩存90,第二級(jí)高速緩存90也可傳送數(shù)據(jù) 給輸入閂80作為響應(yīng)。第二級(jí)高速緩存90執(zhí)行命中/失誤測(cè)試確認(rèn)數(shù)據(jù)是否儲(chǔ)存于高速 緩存之內(nèi)。如果不是儲(chǔ)存于高速緩存之內(nèi),存儲(chǔ)器接口 94可通過(guò)存儲(chǔ)器存取單元96存取 存儲(chǔ)器以讀取所需的數(shù)據(jù)。第二級(jí)高速緩存90依所讀取的數(shù)據(jù)更新其存儲(chǔ)器并且根據(jù)需 要把舊的數(shù)據(jù)丟棄。高速緩存/控制裝置92也包括一輸出,用來(lái)傳送頂點(diǎn)著色器和幾何著 色器數(shù)據(jù)至三角設(shè)定單元98以執(zhí)行三角設(shè)定處理。高速緩存/控制裝置92可包括用來(lái)調(diào)度執(zhí)行單元56的多個(gè)著色器階段的調(diào)度裝 置(圖未顯示),其與圖3A中所示的調(diào)度器55類(lèi)似。此調(diào)度裝置可根據(jù)當(dāng)下的特定處理需 求將工作分配給不同的執(zhí)行單元56,甚至可分配不同類(lèi)型的著色工作給執(zhí)行單元56中的 個(gè)別線程。如此一來(lái)即可動(dòng)態(tài)地執(zhí)行資源的配置和分配以大致平衡處理的負(fù)載。借著平衡 處理的負(fù)載,可最小化執(zhí)行單元和(或)線程過(guò)度繁忙的瓶頸情況。隨著工作的完成,調(diào)度器自只讀高速緩存62中的資源表移除此項(xiàng)工作,并且送出 關(guān)于某些線程位置處于未使用狀態(tài)的指示。當(dāng)閑置的線程位置可用的時(shí)候,調(diào)度器會(huì)安排 另外的工作給這些線程。圖4顯示一常見(jiàn)執(zhí)行單元102的一實(shí)施例的方塊圖。執(zhí)行單元102實(shí)現(xiàn)的方式可 如圖3A中的執(zhí)行單元52、圖3B中的執(zhí)行單元56、圖3C中執(zhí)行單元裝置82其中一半等,或 其它具有多重著色器和固定功能運(yùn)算的平行處理能力的適當(dāng)執(zhí)行單元。在此實(shí)施例中,執(zhí) 行單元102包括線程控制裝置104、高速緩存系統(tǒng)106以及線程處理路徑108。這些組件都經(jīng)由輸入閂110和輸出閂112連接到繪圖處理單元18的其它部分,輸入閂110和輸出閂 112可個(gè)別對(duì)應(yīng)到圖3C中所示的輸入閂80和輸出閂84。線程控制裝置104包括控制硬件以決定執(zhí)行單元數(shù)據(jù)路徑的資源的適當(dāng)分配,例 如線程處理路徑108。線程處理路徑108所定義的精簡(jiǎn)處理管線的優(yōu)點(diǎn)是減少數(shù)據(jù)流,故 可需求較少的頻率周期和高速緩存失誤。同樣地,減少數(shù)據(jù)流帶給異步接口較少的壓力,因 而潛在地減少這些組件的瓶頸情況。借著使用本發(fā)明所述的執(zhí)行單元102或其它的執(zhí)行單 元,與傳統(tǒng)繪圖處理器相比可減少處理時(shí)間。線程控制裝置104控制執(zhí)行單元內(nèi)的數(shù)據(jù)流。借著管理每一線程的狀態(tài),線程控 制裝置104可決定將如何執(zhí)行每一線程。同樣地,線程控制裝置104決定配置的機(jī)制以利用 可用的執(zhí)行單元和線程,并減少可能處于過(guò)度繁忙或瓶頸情況的處理裝置上的負(fù)載量。借 著動(dòng)態(tài)地重新分配資源,線程控制裝置104可最大化數(shù)據(jù)流通量以允許執(zhí)行更多的著色功 能及提升的速度。線程處理路徑108是繪圖處理管線的核心,并且可以是可編程的。由于線程處理 路徑108的彈性,使用者可以編程這些執(zhí)行單元以執(zhí)行比傳統(tǒng)實(shí)時(shí)繪圖處理器更大量的繪 圖運(yùn)算。線程處理路徑108包括頂點(diǎn)著色處理、幾何著色處理、三角設(shè)定、插值、像素著色處 理等等。由于執(zhí)行單元102的精簡(jiǎn)設(shè)計(jì),減少了把數(shù)據(jù)傳送出去給存儲(chǔ)器并且于稍后讀取 的需求。舉例來(lái)說(shuō),如果線程處理路徑108正在處理一三角帶,此三角帶的其中幾個(gè)頂點(diǎn)可 由一執(zhí)行單元處理,而另一執(zhí)行單元?jiǎng)t同時(shí)處理其它的頂點(diǎn)。同樣地,對(duì)于三角形剔拒絕 (triangle rejection)的情況,線程處理路徑108可更快地確認(rèn)一三角形是否被拒絕,因 而減少延遲的時(shí)間和不必要的計(jì)算處理。在一些實(shí)施例中,輸入閂110和輸出閂112為允許執(zhí)行單元操作于與繪圖處理單 元其它部分不同頻率速度的異步接口。舉例來(lái)說(shuō),執(zhí)行單元可操作于比繪圖處理單元快兩 倍的頻率速度之上。同樣地,線程處理路徑108可操作于比線程控制裝置104和高速緩存 系統(tǒng)106快兩倍的頻率速度之上。由于頻率速度的不同,閂110和112的設(shè)計(jì)可包含緩沖 器以同步介于內(nèi)部執(zhí)行單元組件和外部組件之間的處理。這些或其它類(lèi)似的緩沖器于圖5 中顯示。圖5顯示圖4所述的執(zhí)行單元102的一實(shí)施例的細(xì)部方塊圖。在此實(shí)施例中,高速 緩存系統(tǒng)106包括指令高速緩存114、常數(shù)高速緩存116以及頂點(diǎn)和屬性高速緩存117。線 程處理路徑108包括公用緩存器文件118和執(zhí)行單元數(shù)據(jù)路徑120。公用緩存器文件118 包括奇數(shù)和偶數(shù)路徑。執(zhí)行單元數(shù)據(jù)路徑120包括算數(shù)邏輯單元122、123和插補(bǔ)器124。 輸入閂110包括執(zhí)行單元集區(qū)控制單元126、高速緩存128、紋理緩沖器130和數(shù)據(jù)高速緩 存132。輸出閂112包括執(zhí)行單元集區(qū)控制單元134、高速緩存136、輸出緩沖器138。圖5 的實(shí)施例也包括索引輸入擷取單元140和斷言緩存器文件142。由于輸入閂110和輸出閂112的異步性質(zhì),異步接口包含了緩沖器以與繪圖處理 單元的外部組件做協(xié)調(diào)。執(zhí)行單元集區(qū)控制單元126的信號(hào)被送到線程控制裝置104以維 持線程處理路徑108的多重線程。高速緩存128分別傳送指令和常數(shù)給指令高速緩存114 和常數(shù)高速緩存116。紋理坐標(biāo)從紋理緩沖器130傳送到公用緩存器文件118,數(shù)據(jù)從數(shù)據(jù) 高速緩存132傳送到公用緩存器文件118以及頂點(diǎn)和屬性高速緩存117。指令高速緩存114傳送指令擷取給線程控制裝置104。在此實(shí)施例中,大部分的擷取將會(huì)是命中的情況,小部分的失誤從指令高速緩存114送到高速緩存136以便從存儲(chǔ)器讀取。同樣地,常數(shù)高速緩存116傳送失誤給高速緩存136以便讀取數(shù)據(jù)。線程處理路徑 108的處理包括根據(jù)偶數(shù)或奇數(shù)指定加載公用緩存器文件118的數(shù)據(jù)。偶數(shù)邊的數(shù)據(jù)傳送 到算數(shù)邏輯單元0 (122),而奇數(shù)邊的數(shù)據(jù)傳送到算數(shù)邏輯單元1 (123)。算數(shù)邏輯單元122 和123可包括著色器處理硬件以根據(jù)線程控制裝置104的配置視需求處理數(shù)據(jù)。在執(zhí)行單 元數(shù)據(jù)路徑120中,數(shù)據(jù)也送到插補(bǔ)器124。圖6顯示圖4的執(zhí)行單元102的另一實(shí)施例的細(xì)部方塊圖。在此實(shí)施例中,執(zhí)行 單元102可包括圖3C中所述的執(zhí)行單元裝置82的其中一半。此半個(gè)執(zhí)行單元102 (執(zhí)行 單元0或執(zhí)行單元1)包括Xin接口邏輯單元144、指令高速緩存146、線程高速緩存148、 常數(shù)緩沖器150以及公用緩存器文件152。此半個(gè)執(zhí)行單元102還包括執(zhí)行單元數(shù)據(jù)路徑 154、請(qǐng)求先進(jìn)先出緩沖器156、斷言緩存器文件158、純量緩存器文件160、數(shù)據(jù)輸出控制單 元162、Xout接口邏輯單元164和線程工作接口 166。指令高速緩存146可以是第一級(jí)高速緩存,并且可包括大約8K字節(jié)的靜態(tài)隨機(jī)存 取存儲(chǔ)器。指令高速緩存146從Xin接口邏輯單元144接收指令,指令失誤以請(qǐng)求的形式 被送到Xout接口邏輯單元164。線程高速緩存148接收指定的線程并且發(fā)出指令給執(zhí)行單 元數(shù)據(jù)路徑154。在某些實(shí)施例中,線程高速緩存148包括32個(gè)線程。常數(shù)緩沖器150從 Xin接口邏輯單元144接收常數(shù),并且將常數(shù)數(shù)據(jù)加載執(zhí)行單元數(shù)據(jù)路徑154。在某些實(shí)施 例中,常數(shù)緩沖器包括4K字節(jié)的存儲(chǔ)器。公用緩存器文件152接收紋理像素?cái)?shù)據(jù),其被傳 送到執(zhí)行單元數(shù)據(jù)路徑154。公用緩存器文件152可包括16K字節(jié)的存儲(chǔ)器,舉例來(lái)說(shuō)。執(zhí)行單元數(shù)據(jù)路徑154解碼指令、擷取操作數(shù)以及執(zhí)行分支計(jì)算。執(zhí)行單元數(shù)據(jù) 路徑154還執(zhí)行數(shù)據(jù)的浮點(diǎn)或整數(shù)計(jì)算,以及位移/邏輯、發(fā)牌/洗牌和載入/儲(chǔ)存的運(yùn)算。 紋理像素?cái)?shù)據(jù)和失誤從執(zhí)行單元數(shù)據(jù)路徑154經(jīng)由請(qǐng)求先進(jìn)先出緩沖器156送到Xout接 口邏輯單元164。斷言緩存器文件158和純量緩存器文件160可以各是IK字節(jié),并且視需 求提供數(shù)據(jù)給執(zhí)行單元數(shù)據(jù)路徑154??刂菩盘?hào)從執(zhí)行單元102外部輸入至數(shù)據(jù)輸出控制單元162。數(shù)據(jù)輸出控制單元 162也接收?qǐng)?zhí)行單元數(shù)據(jù)路徑154的信號(hào)和Xin接口邏輯單元144的數(shù)據(jù)。數(shù)據(jù)輸出控制 單元162也可視需求向公用緩存器文件152請(qǐng)求取得數(shù)據(jù)。數(shù)據(jù)輸出控制單元162輸出數(shù) 據(jù)給Xout接口邏輯單元164和線程工作接口 166以根據(jù)已經(jīng)完成或正在進(jìn)行的數(shù)據(jù)決定 線程未來(lái)的工作分配。流經(jīng)執(zhí)行單元數(shù)據(jù)路徑154的數(shù)據(jù)流可被分成三個(gè)層級(jí),包括本文層級(jí)、線程層 級(jí)和指令(執(zhí)行)層級(jí)。在任何給定的時(shí)間,每個(gè)執(zhí)行單元內(nèi)有兩個(gè)本文。本文信息于此本 文的工作開(kāi)始之前發(fā)送到執(zhí)行單元數(shù)據(jù)路徑154。本文層級(jí)信息包括例如著色器類(lèi)型、輸入 /輸出緩存器的數(shù)目、指令起始地址、輸出映像表、水平重組表、頂點(diǎn)識(shí)別和常數(shù)緩沖器150 內(nèi)的常數(shù)。每一個(gè)執(zhí)行單元于線程高速緩存148中可包括多達(dá)32個(gè)線程,舉例來(lái)說(shuō)。線程對(duì) 應(yīng)至類(lèi)似頂點(diǎn)著色器、幾何著色器或像素著色器等的功能。一個(gè)位用來(lái)識(shí)別于線程中所使 用到的兩個(gè)本文,線程被分配到尚未額滿的執(zhí)行單元數(shù)據(jù)路徑中的其中一個(gè)線程位置。此 線程位置可以是空的或部分使用。線程被分成偶數(shù)和奇數(shù)群組,每一群組包括16個(gè)線程的 隊(duì)列,舉例來(lái)說(shuō)。在線程開(kāi)始之后,此線程將被放入一個(gè)八線程的緩沖器。線程根據(jù)一程序計(jì)數(shù)器于每一周期中擷取指令,例如多達(dá)256位的指令數(shù)據(jù)。在等待一些數(shù)據(jù)進(jìn)來(lái)的時(shí),線程將保持非作用的狀態(tài)。反之,此線程將處于作用模式。線程執(zhí)行的仲裁視線程的時(shí)間階段和其它的資源沖突(例如算數(shù)邏輯單元或公 用緩存器文件沖突)從八線程的緩沖器配對(duì)兩個(gè)作用的線程在一起。因?yàn)槟承┚€程于執(zhí)行 期間可能進(jìn)入非作用模式,故可達(dá)成此八個(gè)線程的較佳配對(duì)。在執(zhí)行末期時(shí),線程從工作緩 沖器移開(kāi),并且一程序結(jié)束的標(biāo)記被發(fā)出。此標(biāo)記進(jìn)入數(shù)據(jù)輸出控制單元162以將數(shù)據(jù)移 出至Xout接口邏輯單元164。一旦所有的數(shù)據(jù)都被移出,線程將從線程位置移除并且通知 執(zhí)行單元數(shù)據(jù)路徑154。數(shù)據(jù)輸出控制單元162也根據(jù)一映像表移動(dòng)公用緩存器文件152 的數(shù)據(jù)。一旦這些緩存器被清空,執(zhí)行單元數(shù)據(jù)路徑154可加載公用緩存器文件152以為 下個(gè)線程準(zhǔn)備。關(guān)于指令數(shù)據(jù)流,線程執(zhí)行產(chǎn)生指令擷取。舉例來(lái)說(shuō),每一壓縮的指令中可有64 位的數(shù)據(jù)。如果需要的話,線程控制可解壓縮指令,并且執(zhí)行計(jì)分板測(cè)試然后進(jìn)入仲裁階 段。為了提高效率,硬件可將屬于不同線程的指令配對(duì)在一起。介于線程控制和指令高速緩存之間的指令擷取機(jī)制可包括失誤的情況,其會(huì)送回 四位的集合地址(set address)外加兩位的信道地址(way address)。從Xin接口邏輯單 元144所進(jìn)來(lái)的數(shù)據(jù)的廣播信號(hào)可被接收。指令擷取也包括命中的情況,其于下個(gè)頻率周 期接收數(shù)據(jù)。命中失誤(hit-on-miss)與失誤的結(jié)果相似,雙重失誤(miss-on-miss)的情 況會(huì)回傳四位的集合地址,并且Xin接口邏輯單元144的廣播信號(hào)可于第二請(qǐng)求之上接收。 為了使線程保持運(yùn)作,計(jì)分板維持回傳的請(qǐng)求數(shù)據(jù)。如果進(jìn)來(lái)的指令需要這些數(shù)據(jù)來(lái)繼續(xù) 處理的話,可以停止線程的運(yùn)作。圖7顯示執(zhí)行單元的線程控制器170的一實(shí)施例的方塊圖。在此實(shí)施例中,線程 控制器170包括線程狀態(tài)裝置172、時(shí)間階段比較裝置174、多個(gè)有效選擇裝置176、線程指 令隊(duì)列178、多工器180、沖突檢查裝置182和仲裁器184。此實(shí)施例包括四個(gè)有效選擇裝 置176和28組的多工器180對(duì)和沖突檢查裝置182,此實(shí)施例特別是針對(duì)執(zhí)行單元中包括 了 32個(gè)線程的系統(tǒng)。在其它的實(shí)施例中,若執(zhí)行單元包括了不同數(shù)目的線程,本領(lǐng)域技術(shù) 人員可了解線程控制器170中的組件數(shù)目可依此改變。在執(zhí)行單元內(nèi)有32個(gè)線程的情況下,這些線程可被分成兩個(gè)相等的偶數(shù)和奇數(shù) 群組,每個(gè)群組包括16個(gè)線程。每個(gè)群組中的線程時(shí)間階段、可用性和仲裁皆個(gè)別分開(kāi)管 理。線程的控制于兩個(gè)階段中提供,在第一階段中,此16個(gè)線程被分成四個(gè)組,每個(gè)組有四 個(gè)線程。每一組的四個(gè)線程被提供至一個(gè)對(duì)應(yīng)的有效選擇裝置176。在偶數(shù)群組的范例中, 第一有效選擇裝置176的線程號(hào)碼為0、2、4和6,舉例來(lái)說(shuō)。在每一周期中,會(huì)選擇出每一 組中多達(dá)兩個(gè)的有效線程,且將其送到有效選擇裝置176的輸出。這些輸出在此亦稱為“位 置”或“指令選擇位置”,其中第一有效選擇裝置176輸出位置0和1(S0,Si)。所選定的線 程的指令被儲(chǔ)存于線程指令隊(duì)列178以便稍后使用(將于以下說(shuō)明)。在同一周期中,時(shí)間 階段比較裝置174比較此16個(gè)線程的時(shí)間階段來(lái)決定最久的可用線程,此最久的線程被選 定且傳送至仲裁器184以于下個(gè)周期處理。在下個(gè)周期中會(huì)執(zhí)行第二階段的線程控制,此八個(gè)選定的線程的下個(gè)指令從線程 指令隊(duì)列178輸出到多工器180。這些指令以如下的方式提供給多工器180,以實(shí)現(xiàn)此八個(gè) 選定線程之間所有可能配對(duì)的指令比較。舉例來(lái)說(shuō),在位置O(SO)和位置I(Sl)的指令提供給第一多工器180對(duì)的情況下,第一沖突檢查裝置182將位置0和位置1的指令與每個(gè) 位置中對(duì)應(yīng)的指令作比較。因此,每個(gè)位置需與其它的七個(gè)位置比較。如此一來(lái),共有28 個(gè)配對(duì)組合需要比較,其中每一種組合可以多重沖突檢查裝置182平行執(zhí)行。每一個(gè)沖突檢查裝置182比較個(gè)別位置的指令,并且以多個(gè)不同的標(biāo)準(zhǔn)決定任何 沖突。首先,沖突檢查裝置182檢查任何源頭、目的存儲(chǔ)器和算數(shù)邏輯單元存取沖突,例如 公用緩存器文件庫(kù)(bank)讀/寫(xiě)沖突、常數(shù)緩沖器讀取沖突、純量緩存器文件和斷言緩存 器文件沖突。沖突檢查裝置182也可檢查浮點(diǎn)、整數(shù)、邏輯或L/S算數(shù)邏輯單元存取沖突。仲裁器184將此28個(gè)組合的沖突檢查結(jié)果與前一周期中選定的最久線程做多任 務(wù)處理。如果發(fā)現(xiàn)某一包括最久線程的配對(duì)是符合的(沒(méi)有沖突),這兩個(gè)指令被同時(shí)于仲 裁器184的輸出發(fā)送出去到執(zhí)行單元數(shù)據(jù)路徑以作執(zhí)行。如果所有包括最久線程的配對(duì)都 不是符合的,則其它相合的配對(duì)(如果有的話)可從仲裁器184發(fā)出。如果這些配對(duì)都不 符合,則發(fā)送此最久線程。以偶數(shù)和奇數(shù)群組線程的組合,可于同一周期中送出多達(dá)四個(gè)的 指令以做執(zhí)行。因此如所述,線程的控制包括從執(zhí)行單元集區(qū)接收線程。在此范例中每一執(zhí)行單 元包括32個(gè)線程,線程的信息被緩沖,并且32個(gè)作用線程中的16個(gè)被分配。然后這些線 程被管理以決定每一個(gè)狀態(tài),舉例來(lái)說(shuō),包括空閑(empty)、備妥(ready)、休眠(sle印)、喚 醒(wakeup)或非作用狀態(tài)(inactive)。線程控制還包括仲裁隊(duì)列中的線程以選擇出要被 發(fā)送且具有最高優(yōu)先級(jí)的線程,亦即最久的線程,如果已作用線程單元中有一空位置可供 使用的話。圖8顯示線程控制器186的另一實(shí)施例的方塊圖,其可設(shè)計(jì)成相似于圖4和5中 所示的線程控制裝置104,以及(或)圖7所示的線程控制170。在圖8的實(shí)施例中,線程 控制器186包括執(zhí)行單元集區(qū)負(fù)載線程裝置188、線程緩沖器190、多個(gè)線程隊(duì)列192、第一 級(jí)高速緩存接口 194、第一級(jí)高速緩存196、線程仲裁裝置198和200以及執(zhí)行單元數(shù)據(jù)路 徑 202 和 204。在運(yùn)算中,執(zhí)行單元集區(qū)負(fù)載線程裝置188從執(zhí)行單元集區(qū)接收要被處理的新線 程,并且將其加載線程緩沖器190。當(dāng)線程緩沖器190加載32個(gè)新的線程時(shí),其中的16個(gè) 線程通過(guò)偶數(shù)信道分配到線程隊(duì)列192的第一集合,而另外16個(gè)線程通過(guò)奇數(shù)信道分配到 線程隊(duì)列192的第二集合。偶數(shù)線程從線程隊(duì)列192的第一集合傳送到第一級(jí)高速緩存接 口 194,也傳送到偶數(shù)線程仲裁裝置198。奇數(shù)線程從線程隊(duì)列192的第二集合傳送到第一 級(jí)高速緩存接口 194,也傳送到奇數(shù)線程仲裁裝置200。第一級(jí)高速緩存接口 194提供線程 數(shù)據(jù)給第一級(jí)高速緩存196,并且可根據(jù)儲(chǔ)存于第一級(jí)高速緩存196內(nèi)的數(shù)據(jù)確認(rèn)于第一 級(jí)高速緩存196內(nèi)的數(shù)據(jù)請(qǐng)求造成命中或失誤的結(jié)果。偶數(shù)線程仲裁裝置198執(zhí)行仲裁算法以從這16個(gè)偶數(shù)線程中選擇一或二個(gè)線程 來(lái)進(jìn)行處理。選定的線程繼續(xù)傳送到偶數(shù)執(zhí)行單元數(shù)據(jù)路徑202以執(zhí)行指派給該線程的特 定著色處理功能。此外,奇數(shù)線程仲裁裝置200于16個(gè)奇數(shù)線程中進(jìn)行仲裁以選擇一或二 個(gè)要被處理的線程。選定的奇數(shù)線程傳送到奇數(shù)執(zhí)行單元數(shù)據(jù)路徑204以執(zhí)行指派給該線 程的特定著色處理功能。線程仲裁裝置198和200所使用的仲裁算法可包括用來(lái)仲裁線程的任何適當(dāng)技 術(shù)。在某些實(shí)施例中,仲裁算法可包括掌控線程的狀態(tài)。舉例來(lái)說(shuō),每一線程可被決定包括一個(gè)狀態(tài),像是空閑、備妥、睡眠、喚醒、作用或非作用等的狀態(tài)。在某些實(shí)施例中,仲裁算法 包括選擇對(duì)于某一特性具有最高優(yōu)先級(jí)的線程。此優(yōu)先級(jí)的決定可根據(jù)線程的時(shí)間階段, 其中最久的線程具有最高的優(yōu)先級(jí)。當(dāng)線程單元內(nèi)一個(gè)空的位置可供使用的時(shí)候,所選定 的線程被設(shè)定為作用狀態(tài)。圖9顯示線程隊(duì)列206的一實(shí)施例的方塊圖。在某些實(shí)施例中,圖9的線程隊(duì)列 206可代表圖8所示的一或多個(gè)的線程隊(duì)列192。根據(jù)圖9所述的實(shí)施方法,線程隊(duì)列206 包括線程緩沖器208、第一級(jí)高速緩存接口 210、指令擷取裝置212、解壓縮隊(duì)列裝置214、線 程控制裝置216、計(jì)分裝置218以及線程仲裁器220。為了說(shuō)明之用,圖9中某些的組件的 功能和設(shè)計(jì)可與圖8中的對(duì)應(yīng)組件相同。舉例來(lái)說(shuō),線程緩沖器208可類(lèi)似于線程緩沖器 190、第一級(jí)高速緩存接口 210可類(lèi)似于第一級(jí)高速緩存接口 194、線程仲裁器220可類(lèi)似于 偶數(shù)和奇數(shù)線程仲裁裝置198和200。儲(chǔ)存于線程緩沖器208內(nèi)的線程被加載隊(duì)列等待處理。線程控制裝置216接收一 個(gè)請(qǐng)求以對(duì)選定的線程執(zhí)行特定的功能。特別來(lái)說(shuō),線程控制裝置216接收?qǐng)?zhí)行單元數(shù)據(jù) 路徑的程序計(jì)數(shù),并且提供此程序計(jì)數(shù)給指令擷取裝置212?;旧希€程控制裝置216命 令指令擷取裝置212擷取要于線程上執(zhí)行的處理指令,如果這個(gè)指令當(dāng)時(shí)有儲(chǔ)存于高速緩 存內(nèi)的話。此指令于命中情形下通過(guò)第一級(jí)高速緩存接口 210被讀取,但也可能接收到有 關(guān)未于高速緩存內(nèi)找到指令的指示消息。同時(shí),計(jì)分裝置218執(zhí)行本發(fā)明所揭露的調(diào)度裝置的功能。同樣地,計(jì)分裝置218 從圖6的公用緩存器文件152接收地址。計(jì)分裝置218提供計(jì)分或數(shù)據(jù)相依測(cè)試給解壓縮 隊(duì)列裝置214,其亦通過(guò)第一級(jí)高速緩存接口 210接收高速緩存的指令數(shù)據(jù)。然后符合的指 令數(shù)據(jù)被提供給線程仲裁器220。如此一來(lái),正確的指令可與個(gè)別的線程相合以進(jìn)行處理。圖10顯示繪圖處理單元內(nèi)用來(lái)管理工作的方法或程序的一實(shí)施例的流程圖。如 步驟222所示,圖10的方法包括緩沖要被處理的新線程(工作或工作單元)。在步驟224 中,線程被分成兩個(gè)相等的偶數(shù)和奇數(shù)群組。舉例來(lái)說(shuō),在步驟222中當(dāng)線程被緩沖的期 間,步驟224的分割程序包括分割線程成兩個(gè)分別具有16個(gè)線程的群組。在步驟225中,如 以上圖9所述可完成一計(jì)分測(cè)試。在步驟226中包括指令的擷取,例如從高速緩存或其它 適當(dāng)?shù)拇鎯?chǔ)器擷取。指令的擷取是根據(jù)當(dāng)前的程序計(jì)數(shù)器來(lái)執(zhí)行,以便將指令數(shù)據(jù)和要被 執(zhí)行的個(gè)別工作做同步。每一個(gè)指令可以是256位,舉例來(lái)說(shuō)。然而,指令可于儲(chǔ)存于存儲(chǔ) 器之前被壓縮。如此一來(lái),如步驟226中所示,指令的擷取還包括解壓縮任何壓縮的指令。在步驟227中,線程或是指令層級(jí)仲裁可被完成。然后于步驟228中,借著將兩個(gè) 線程配對(duì)在一起以改善效率,其方式是借著允許同時(shí)處理兩個(gè)具有相同指令的線程。如此 一來(lái),此配對(duì)機(jī)制包括了將具有相同工作要執(zhí)行的線程配對(duì)起來(lái),因而減少對(duì)存儲(chǔ)器的指 令擷取動(dòng)作。此線程的配對(duì)亦可根據(jù)線程的時(shí)間階段以及任何可能存在的沖突,例如算數(shù) 邏輯單元存取沖突、公用緩存器文件庫(kù)讀/寫(xiě)沖突、常數(shù)緩沖器讀取沖突、向量緩存器文件 和斷言緩存器文件沖突,以及浮點(diǎn)/整數(shù)/邏輯/算數(shù)邏輯單元存取沖突。線程的配對(duì)可 還包括分配每一線程或工作單元給執(zhí)行單元內(nèi)一個(gè)空的位置。本發(fā)明所述的統(tǒng)一著色器和執(zhí)行單元可以硬件、軟件、固件或其組合等方式實(shí) 現(xiàn)。在所揭露的實(shí)施例中,部分以例如軟件或固件實(shí)現(xiàn)的統(tǒng)一著色器和執(zhí)行單元可被儲(chǔ)存 于一存儲(chǔ)器,并且可被一適當(dāng)?shù)闹噶顖?zhí)行單元執(zhí)行。部分以例如硬件實(shí)現(xiàn)的統(tǒng)一著色器和執(zhí)行單元,可以被任何具有邏輯門(mén)、專用集成電路(Application Specific Integrated Circuit,ASIC)、一可編程門(mén)陣列(Programmable Gate Array,PGA)、場(chǎng)可編程門(mén)陣列 (Field ProgrammableGate Array, FPGA)等等的離散邏輯電路,或上述任何組合的離散邏 輯電路所實(shí)現(xiàn)。在此所描述的統(tǒng)一著色器和執(zhí)行單元的功能,以及圖10的方法,可包括用來(lái)實(shí)現(xiàn) 邏輯功能的可執(zhí)行指令的順序列表。這些可執(zhí)行指令可嵌入于任何計(jì)算機(jī)可讀取的媒體 以讓指令執(zhí)行系統(tǒng)、機(jī)械或裝置使用,像是基于計(jì)算機(jī)的系統(tǒng)、處理器控制的系統(tǒng)或其它系 統(tǒng)。計(jì)算機(jī)可讀取媒體可以是能容納、儲(chǔ)存、通訊、傳播或傳輸程序以讓指令執(zhí)行系統(tǒng)、機(jī)械 或裝置所使用的任何媒體。舉例來(lái)說(shuō),此計(jì)算機(jī)可讀取媒體可以是一電子、磁力、光學(xué)、電 磁、紅外線或半體導(dǎo)的系統(tǒng)、機(jī)械、裝置或傳播媒體。本發(fā)明雖以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明的范圍,任何本領(lǐng)域 技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù) 范圍當(dāng)視所附的權(quán)利要求范圍所界定者為準(zhǔn)。
權(quán)利要求
一種繪圖處理單元,包括一統(tǒng)一著色器裝置,用以執(zhí)行多重繪圖著色功能,上述統(tǒng)一著色器裝置具有平行操作的多個(gè)執(zhí)行單元,每一個(gè)上述執(zhí)行單元具有平行操作的多個(gè)線程,上述線程用來(lái)執(zhí)行多個(gè)繪圖著色功能;以及一控制裝置,耦接于上述統(tǒng)一著色器裝置,上述控制裝置用以接收繪圖數(shù)據(jù)以及分配上述繪圖數(shù)據(jù)的一部分給至少一個(gè)上述執(zhí)行單元的至少一個(gè)上述線程;其中上述繪圖數(shù)據(jù)包括接頂點(diǎn)數(shù)據(jù)、幾何數(shù)據(jù)或像素,其中上述控制裝置還用以動(dòng)態(tài)地將上述繪圖數(shù)據(jù)從被認(rèn)定為較繁忙的上述執(zhí)行單元或上述線程,重新分配到被認(rèn)定為較不繁忙的上述執(zhí)行單元或上述線程。
2.根據(jù)權(quán)利要求1所述的繪圖處理單元,其中上述繪圖著色功能包括頂點(diǎn)著色功能、 幾何著色功能和像素著色功能。
3.根據(jù)權(quán)利要求2所述的繪圖處理單元,其中上述繪圖著色功能還包括掃描場(chǎng)解析功能。
4.根據(jù)權(quán)利要求3所述的繪圖處理單元,其中上述掃描場(chǎng)解析功能包括選自一三角設(shè) 定功能、一跨磚產(chǎn)生功能、一 Z測(cè)試功能和一像素顏色插補(bǔ)功能中的至少一個(gè)功能。
5.根據(jù)權(quán)利要求1所述的繪圖處理單元,還包括一異步輸入接口和一異步輸出接口, 其中上述執(zhí)行單元平行耦接于上述異步輸入接口和上述異步輸出接口之間,上述控制裝置 經(jīng)由上述異步輸入接口控制上述繪圖數(shù)據(jù)至上述執(zhí)行單元的分配。
6.根據(jù)權(quán)利要求5所述的繪圖處理單元,其中上述控制裝置還包括耦接到上述異步輸 入接口的一包裝器。
7.根據(jù)權(quán)利要求5所述的繪圖處理單元,其中上述控制裝置還包括耦接到上述異步輸 出接口的一回寫(xiě)單元和一紋理尋址產(chǎn)生器。
8.根據(jù)權(quán)利要求1所述的繪圖處理單元,其中上述執(zhí)行單元操作于與上述繪圖處理單 元其它部分的不同的一頻率速度之上。
9.一種執(zhí)行單元,包括多個(gè)線程處理路徑,用以處理繪圖數(shù)據(jù),每一個(gè)上述線程處理路徑具有執(zhí)行一頂點(diǎn)著 色功能的邏輯單元、執(zhí)行一幾何著色功能的邏輯單元以及執(zhí)行一像素著色功能的邏輯單 元;一存儲(chǔ)器裝置,用以儲(chǔ)存正被處理的上述頂繪圖數(shù)據(jù);以及一線程控制裝置,用以根據(jù)一初始配置分配上述繪圖數(shù)據(jù)至上述線程處理路徑;其中上述繪圖數(shù)據(jù)包括頂點(diǎn)數(shù)據(jù)、幾何數(shù)據(jù)與像素?cái)?shù)據(jù),上述線程控制裝置根據(jù)上述 線程處理路徑的可用性控制上述繪圖數(shù)據(jù)至上述線程處理路徑的重新分配。
10.根據(jù)權(quán)利要求9所述的執(zhí)行單元,其中上述線程處理路徑還包括一公用緩存器文 件和一執(zhí)行數(shù)據(jù)路徑。
11.根據(jù)權(quán)利要求10所述的執(zhí)行單元,其中上述公用緩存器文件包括指定給偶數(shù)的上 述線程的一第一通道,以及指定給奇數(shù)的上述線程的一第二通道。
12.根據(jù)權(quán)利要求10所述的執(zhí)行單元,其中上述執(zhí)行數(shù)據(jù)路徑包括多個(gè)算數(shù)邏輯單元 和一插補(bǔ)器。
13.根據(jù)權(quán)利要求9所述的執(zhí)行單元,其中上述線程處理路徑耦接于一異步輸入接口和一異步輸出接口之間。
14.根據(jù)權(quán)利要求9所述的執(zhí)行單元,其中上述線程處理路徑操作于與一外部頻率速 度不同的一頻率速度之上。
15.根據(jù)權(quán)利要求13所述的執(zhí)行單元,還包括一數(shù)據(jù)輸出控制裝置,用以控制與上述 異步輸入接口的相關(guān)的輸入邏輯單元和與上述異步輸出接口相關(guān)的輸出邏輯單元。
16.一種工作管理方法,適用于管理一繪圖處理單元內(nèi)執(zhí)行的多個(gè)工作,包括 于存儲(chǔ)器中緩沖多個(gè)線程;擷取對(duì)應(yīng)至上述線程的指令;以及分配每一個(gè)上述線程至一執(zhí)行單元的一空線程位置,其中上述繪圖處理單元包括用以 執(zhí)行多個(gè)繪圖著色功能的多個(gè)執(zhí)行單元。
17.根據(jù)權(quán)利要求16所述的工作管理方法,還包括將上述線程分成兩個(gè)群組。
18.根據(jù)權(quán)利要求16所述的工作管理方法,其中指令的擷取是根據(jù)一程序計(jì)數(shù)。
19.根據(jù)權(quán)利要求16所述的工作管理方法,還包括 執(zhí)行一計(jì)分測(cè)試;以及執(zhí)行一指令或線程層級(jí)仲裁。
20.根據(jù)權(quán)利要求16所述的工作管理方法,還包括根據(jù)上述線程的時(shí)間階段以及上述 線程之間的沖突將兩個(gè)上述線程配對(duì)在一起。
全文摘要
本發(fā)明揭露關(guān)于繪圖處理的系統(tǒng)和方法,繪圖處理單元包括一統(tǒng)一著色器裝置和一控制裝置。統(tǒng)一著色器裝置用來(lái)執(zhí)行多個(gè)繪圖著色功能,并且包括多個(gè)執(zhí)行單元。執(zhí)行單元間為平行操作,而每一個(gè)執(zhí)行單元本身具有同樣平行操作的多個(gè)線程,每一個(gè)線程用來(lái)執(zhí)行多重繪圖著色功能。繪圖處理單元的控制裝置與著色器裝置連接,用來(lái)接收繪圖數(shù)據(jù),并且分配繪圖數(shù)據(jù)的一部分給至少一個(gè)執(zhí)行單元中的至少一個(gè)線程??刂破餮b置用來(lái)將繪圖數(shù)據(jù)從被判定為較繁忙的線程動(dòng)態(tài)地重新分配到被判定為較不繁忙的線程。
文檔編號(hào)G06T1/00GK101877116SQ20091022644
公開(kāi)日2010年11月3日 申請(qǐng)日期2009年11月20日 優(yōu)先權(quán)日2008年11月20日
發(fā)明者焦陽(yáng) 申請(qǐng)人:威盛電子股份有限公司