專利名稱:繪圖處理系統(tǒng)、快取系統(tǒng)以及數(shù)據(jù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種三維的計(jì)算機(jī)繪圖系統(tǒng),特別是有關(guān)于一種繪圖處 理核心系統(tǒng)內(nèi)的高速緩存和控制系統(tǒng)。
背景技術(shù):
用來將三維世界(真實(shí)或假想)的對象呈現(xiàn)于二維顯示屏幕之上的三維計(jì) 算機(jī)繪圖系統(tǒng)目前正被廣泛地使用于各種的應(yīng)用類型之中。例如,三維計(jì)算 機(jī)繪圖可以用于實(shí)時(shí)互動(dòng)的應(yīng)用程序,像是計(jì)算機(jī)游戲、虛擬實(shí)境、科學(xué)研 究等等,以及離線應(yīng)用程序,像是高分辨率電影的制作、繪圖設(shè)計(jì)等。由于 對三維計(jì)算機(jī)繪圖的需求與日倶增,此技術(shù)領(lǐng)域于過去幾年間有了長足的發(fā) 展和進(jìn)步。
為了將三維的對象以二維方式呈現(xiàn),使用了空間坐標(biāo)和色彩特征將欲顯 示的對象定義于一個(gè)三維世界空間中。先決定一個(gè)對象表面的點(diǎn)的坐標(biāo),并 且用這些點(diǎn)(或頂點(diǎn))來建立連接這些點(diǎn)的線框以定義此對象的大致形狀。在 某些情況,這些對象可具有骨干和接合點(diǎn),其可繞轉(zhuǎn)、旋轉(zhuǎn)等,或者具有使 對象彎曲、壓縮和變形等特性。 一個(gè)繪圖處理系統(tǒng)可集結(jié)對象線框的頂點(diǎn)來 建立三角形或多邊形。舉例來說,對于一個(gè)具有簡單結(jié)構(gòu)的對象,例如一面 墻或一大樓的一個(gè)面,可簡單地以一個(gè)平面上形成一矩形多邊形或兩個(gè)三角 形的四個(gè)頂點(diǎn)所定義。更復(fù)雜的對象,像是樹或球體,可能需要上百個(gè)頂點(diǎn) 形成上百個(gè)三角形來定義此對象。
除了定義對象的頂點(diǎn),繪圖處理器亦可執(zhí)行其它的工作,像是決定三維 的對象將如何出現(xiàn)在一個(gè)二維的屏幕上。此過程包括由朝向特定方向的單一 相機(jī)景象決定一個(gè)三維世界的窗口框架景象。從此景象,繪圖處理器可剪輯 一對象其可能在鏡頭外面的部分、被其它對象遮蔽的部分或是偏離相機(jī)且被 此對象其它部分所遮蔽的部分。此繪圖處理器也可決定三角形或多邊形的頂 點(diǎn)的顏色,并且依照光線效應(yīng)、反射特性和透明特性等等來做適當(dāng)?shù)恼{(diào)整。
使用紋理貼圖可將平面圖片的紋理或顏色顯示于三維對象的表面之上,就好 像覆蓋表皮層于對象之上。在某些情況,對于位于兩頂點(diǎn)之間的像素,或位 于由三個(gè)或更多個(gè)頂點(diǎn)所形成的多邊形的表面之上的像素,如果頂點(diǎn)的顏色 值已知的話,其像素顏色值是可以被插值的。其它的繪圖處理技術(shù)可用來將 這些對象呈現(xiàn)于平面屏幕之上。
如本領(lǐng)域技術(shù)人員所知,繪圖處理器包括了被稱為著色器的核心數(shù)據(jù)處 理元件,軟件開發(fā)者或本領(lǐng)域技術(shù)人員可以利用這些著色器來建立圖像且隨 意控制連續(xù)影格的視頻。舉例來說,頂點(diǎn)著色器、幾何著色器和像素著色器 通常包含于繪圖處理器之內(nèi)以執(zhí)行上述的諸多工作。有些工作也由像是光柵 化器、像素插補(bǔ)器和三角設(shè)置單元等的固定功能單元所執(zhí)行。借著建構(gòu)具有 上述個(gè)別元件的繪圖處理器,制造商可以提供建構(gòu)逼真三維圖像或視頻的基 本工具。
繪圖處理器于很多的處理階段使用到高速緩存,著色裝置的輸出通常# 送到高速緩存裝置,此高速緩存裝置隨后提供這些數(shù)據(jù)值給下一級的著色裝 置,此下一級的著色裝置又輸出它的結(jié)果給另一個(gè)高速緩存裝置等等。當(dāng)特 定的場景或?qū)ο笮韪R阅骋惶囟ǖ闹b置來處理時(shí),也會(huì)同樣地更常使 用到與此著色裝置的相關(guān)高速緩存。因?yàn)椴煌能浖_發(fā)者或本領(lǐng)域技術(shù)人 員基于他們的特殊應(yīng)用類型而有不同的需求,因此不容易一開始就能決定每 一種高速緩存用來儲(chǔ)存處理核心中著色器所處理的數(shù)據(jù)的可能需求量。因此, 對于此繪圖處理領(lǐng)域,有需要指出不同類型和大小的高速緩存裝置于比例上 的問題,因而需要提供一種有能力于三維繪圖技術(shù)中克服這些和其它缺失的 繪圖處理系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明揭露在高速緩存系統(tǒng)中處理和儲(chǔ)存繪圖數(shù)據(jù)的系統(tǒng)和方法。其中 一個(gè)繪圖處理系統(tǒng)的實(shí)施例包括了互相溝通的處理管線和高速緩存系統(tǒng),處 理管線包括多個(gè)繪圖著色器階段,處理管線內(nèi)的每一繪圖著色器階段用來執(zhí) 行一或多個(gè)的著色運(yùn)算。高速緩存系統(tǒng)包括多個(gè)儲(chǔ)存單元,其中每一個(gè)儲(chǔ)存 單元用來儲(chǔ)存關(guān)于處理管線的多個(gè)繪圖著色器階段的數(shù)據(jù)。高速緩存系統(tǒng)包 括控制裝置,其建構(gòu)來管理上述數(shù)據(jù)于高速緩存系統(tǒng)的儲(chǔ)存單元的配置。
在另 一 實(shí)施例揭露了 一種繪圖處理單元的高速緩存系統(tǒng),此實(shí)施例的高
速緩存系統(tǒng)包括數(shù)據(jù)儲(chǔ)存裝置以及儲(chǔ)存裝置控制器。儲(chǔ)存裝置用來儲(chǔ)存一或 多個(gè)著色器單元所處理(或要處理)的繪圖數(shù)據(jù)。儲(chǔ)存裝置控制器連接到數(shù)據(jù) 儲(chǔ)存裝置,用來于數(shù)據(jù)儲(chǔ)存裝置內(nèi)動(dòng)態(tài)地控制繪圖翁:據(jù)的儲(chǔ)存配置。
另外,本發(fā)明揭露了繪圖處理裝置內(nèi)的數(shù)據(jù)處理方法。此方法包括分析
多個(gè)繪圖處理著色器的活動(dòng)級別(activity level)。此方法亦包括根據(jù)每一 繪圖處理著色器的個(gè)別活動(dòng)級別來決定多個(gè)繪圖處理著色器的數(shù)據(jù)儲(chǔ)存需 求,此方法還包括分配一部分的存儲(chǔ)裝置。
經(jīng)過閱讀以下所述的圖示和詳細(xì)解釋,對本領(lǐng)域技術(shù)人員而言,本發(fā)明 其它的系統(tǒng)、方法、特征和優(yōu)點(diǎn)將會(huì)是顯而易見的。本發(fā)明的保護(hù)范圍當(dāng)視 所附的申請專利范圍所界定者為準(zhǔn)。
通過以下的圖示可更了解本發(fā)明所揭露的所有實(shí)施例的各個(gè)觀點(diǎn)。同一 個(gè)標(biāo)號(hào)于全文代表同一個(gè)元件。
圖1顯示根據(jù)本發(fā)明的 一 實(shí)施例的 一 繪圖處理系統(tǒng)的方塊圖2顯示圖1中所示的繪圖處理單元的一實(shí)施例的方塊圖3A顯示圖1中所示的繪圖處理單元的另一實(shí)施例的方塊圖3B顯示圖1中所示的繪圖處理單元的另一實(shí)施例的方塊圖3C還是顯示圖1中所示的繪圖處理單元的另一實(shí)施例的方塊圖;
圖4顯示根據(jù)本發(fā)明的教述的高速緩存系統(tǒng)的一實(shí)施例的方塊圖5顯示根據(jù)本發(fā)明的教述的高速緩存系統(tǒng)的另一實(shí)施例的方塊圖6還是顯示根據(jù)本發(fā)明的教述的高速緩存系統(tǒng)的另一實(shí)施例的方塊
圖7還是顯示根據(jù)本發(fā)明的教述的高速緩存系統(tǒng)的另一實(shí)施例的方塊
圖8顯示圖6和圖7中所示的第二級高速緩存的一實(shí)施例的方塊圖; 圖9顯示說明用來管理繪圖處理器的高速緩存系統(tǒng)的方法的一實(shí)施例的 流程圖。
12~運(yùn)算系統(tǒng) 14-繪圖軟件模塊 16 ~顯示裝置 18 ~繪圖處理單元
22-軟件應(yīng)用程序
20-應(yīng)用程序接口 24-繪圖處理管線
26、 102、 108、 122、 154-高速緩存系統(tǒng)
頂點(diǎn)著色器 光柵化器
28~總線接口 30 32~幾何著色器 34 36-像素著色器
4 0 ~頂點(diǎn)串流高速緩存 4 2 ~第 一 級高速緩存
44、 90、 146~第二級高速緩存 46 ~Z高速緩存
48、 184~紋理高速緩存 50-統(tǒng)一著色器單元
52、 56、 82-執(zhí)行單元
54、 60、 92~高速緩存/控制裝置
58 ~故理單元
64-數(shù)據(jù)高速緩存
66-頂點(diǎn)著色器控制裝置
70、 100-命令串流處理器
72、 96-存儲(chǔ)器存取單元
74~光柵裝置
78~包裝器
84~輸出閂
94、 150~存儲(chǔ)器接口
104-儲(chǔ)存裝置控制器
110~要求接收器
114~數(shù)據(jù)接收器
118~數(shù)據(jù)接口
12 4 ~頂點(diǎn)數(shù)據(jù)串流高速緩存
126-垂直水平轉(zhuǎn)換器
128-第一級頂點(diǎn)高速緩存
132-頂點(diǎn)著色器識(shí)別表
134-幾何著色器識(shí)別表
136 ~幾何著色器基元建構(gòu)器
62-只讀高速緩存
68~光柵接口
76、 86、 182~回寫單元
80~輸入閂
88-紋理尋址產(chǎn)生器
98、 152 三角設(shè)定單元
106-數(shù)據(jù)儲(chǔ)存裝置
112~控制裝置
116-數(shù)據(jù)發(fā)送器
120~儲(chǔ)存單元
130-頂點(diǎn)著色器前端
138 ~串流輸出裝置
140--串流輸出索引緩沖器142 ~幾何著色器前端
144 ~'串流輸出前端148、174~常數(shù)載入器
156 --串流高速緩存格式器158 ~頂點(diǎn)著色器控制
160~'頂點(diǎn)著色器識(shí)別表
162 ~-串流輸出索引緩沖器
164 ~-串流輸出緩存器控制裝置
166~-串流輸出裝置168-存儲(chǔ)器存取單元
170~-第二級紋理高速緩存
172 ~-第二級數(shù)據(jù)高速緩存176--光柵方塊
178--小區(qū)塊屏蔽
180~-像素著色器控制裝置
186、188-執(zhí)行單元輸入裝置
190 -串流高速緩存
192、194-要求合并裝置196'-集合仲裁器
198~-第一尋到測試裝置
200 --第二尋到測試裝置
202、206 -暫停要求裝置204、208 -誤失要求表
210~-存儲(chǔ)器存取單元接口212 '-回歸數(shù)據(jù)緩沖器
214 ~-回歸要求控制裝置216'-讀/寫仲裁器
218~-第一區(qū)塊220'-第二區(qū)塊
222 ~-輸出仲裁器226、228、 230 ~方塊
具體實(shí)施例方式
傳統(tǒng)上,繪圖處理器或繪圖處理單元(Graphics Processing Units, GPUs) 是合并于計(jì)算機(jī)系統(tǒng)內(nèi)以專門地執(zhí)行計(jì)算機(jī)的繪圖。隨著三維計(jì)算機(jī)繪圖的 普遍使用,繪圖處理單元變得更加進(jìn)步且功能強(qiáng)大, 一些一向由中央處理單 元(Central Processing Unit, CPU)所處理的工作現(xiàn)在都交由繪圖處理單元 處理,以達(dá)成具有高度復(fù)雜性的繪圖處理任務(wù)。 一般來說,繪圖處理單元可 嵌入于附接到計(jì)算機(jī)處理系統(tǒng)的主機(jī)板,或與主機(jī)板溝通的繪圖卡之內(nèi)。
繪圖處理單元包括許多獨(dú)立的單元來執(zhí)行不同的工作以最終呈現(xiàn)三維的 景象于二維的顯示屏幕之上。例如電視、計(jì)算機(jī)屏幕、視頻屏幕或其它適當(dāng)?shù)娘@示裝置。這些獨(dú)立的處理單元就是一般所稱的著色器,其可包括頂點(diǎn)著 色器、幾何著色器以及像素著色器等等。繪圖處理單元亦包含了其它被稱為 固定功能單元的處理單元,像是像素插補(bǔ)器和光柵化器等。在設(shè)計(jì)繪圖處理 單元的時(shí)候,上述元件的每一種組合都會(huì)被考慮進(jìn)去以便能執(zhí)行各種工作。 基于這些組合,繪圖處理單元在無法全力執(zhí)行另外的工作時(shí)可具有較大的能 力處理單一件工作。因此,硬件開發(fā)者始終嘗試將一些著色器單元放進(jìn)一個(gè) 元件中。然而,獨(dú)立單元結(jié)合在一起的程度卻是有限的。
另外,每一著色器單元的輸入和輸出都儲(chǔ)存于不同的高速緩存裝置,每 一個(gè)高速緩存裝置皆被指定來處理特定著色器單元的數(shù)據(jù)。因此,每一個(gè)高 速緩存裝置皆依照其對應(yīng)的著色器單元的使用方式來利用。
本發(fā)明的相關(guān)美國專利說明書,公開編號(hào)_(案號(hào)S3U06-0030;
252209-1810),討論了將這些著色器單元和固定功能單元結(jié)合成單一單元(又 稱為統(tǒng)一著色器)的相關(guān)機(jī)制。此統(tǒng)一著色器除了具備執(zhí)行頂點(diǎn)著色、幾何著 色和像素著色的能力,同時(shí)亦能執(zhí)行光柵化和像素插值等的功能。
本發(fā)明揭露了一種高速緩存系統(tǒng),其運(yùn)算于上述的統(tǒng)一著色器、或運(yùn)算 于著色裝置其它形式的架構(gòu)之上。此高速緩存系統(tǒng)可將傳統(tǒng)技術(shù)中各個(gè)分離 的高速緩存集中起來。與傳統(tǒng)技術(shù)中以分散于處理器各處的高速緩存裝置來 設(shè)計(jì)繪圖處理器的方法有所不同,本發(fā)明可將統(tǒng)一高速緩存裝置局限于單一 位置,因此于硅芯片或處理器基板上占據(jù)較少的空間。
本發(fā)明也將先前技術(shù)的高速緩存系統(tǒng)做了改進(jìn),其方式是借著容許依照 需求來配置該高速緩存系統(tǒng)。因此,當(dāng)有可能較常使用到某一著色器單元和 其對應(yīng)的高速緩存時(shí),可配置其它的可用資源來更佳符合使用需求。基于當(dāng) 時(shí)的特定需求,高速緩存資源的配置是可以動(dòng)態(tài)調(diào)整的,如此一來便可以更 有效率地運(yùn)用高速緩存。傳統(tǒng)技術(shù)的處理器設(shè)計(jì)了對每一種高速援存裝置具 備了最大的儲(chǔ)存量,但是這些儲(chǔ)存量不能更改。依照本發(fā)明的教述調(diào)整高速 緩存的配置,就不再需要針對各種高速緩存裝置皆設(shè)計(jì)了最大的高速緩存數(shù) 量。反而,全部的高速緩存與繪圖處理單元設(shè)計(jì)在一起以供著色器單元共同 使用。如此一來,與傳統(tǒng)技術(shù)的處理器相比,高速緩存的總儲(chǔ)存數(shù)量可維持 不變,或著實(shí)際上是可以減少的。然而,當(dāng)有需要的時(shí)候可以配置更大量的 高速緩存,因此為軟件開發(fā)者提供了較大的彈性。本技術(shù)另一個(gè)優(yōu)勢是此重 新配置的機(jī)制可以減少于處理器管線中可能會(huì)發(fā)生的瓶頸情況。
圖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中至少一部分的繪圖數(shù) 據(jù)。在某些實(shí)施例中,繪圖處理單元18可設(shè)計(jì)于運(yùn)算系統(tǒng)12內(nèi)的繪圖卡之 上。繪圖處理單元18處理這些圖形數(shù)據(jù)以產(chǎn)生圖框的每一像素的顏色值及亮 度值,并顯示于顯示裝置16之上, 一般來說是以每秒30個(gè)圖框的比率來處 理。繪圖軟件模塊14包括應(yīng)用程序接口 (Application Programming Interface, API) 20和軟件應(yīng)用程序22。在本實(shí)施例中,應(yīng)用程序接口 20支 持最新的OpenGL和(或)DirectX規(guī)格。
在最近幾年,對具有大量可編程邏輯的繪圖處理單元的使用需求漸增。 在此實(shí)施例中,繪圖處理單元18設(shè)計(jì)了具有較高的可編程性,使用者可以借 著繪圖軟件模塊14控制許多的輸入/輸出裝置來互動(dòng)地輸入數(shù)據(jù)和(或)命 令。應(yīng)用程序接口 20根據(jù)軟件應(yīng)用程序22內(nèi)的邏輯來控制繪圖處理單元18 的硬件以建立繪圖處理單元18有用的繪圖功能。在本實(shí)施例中,使用者可以 不需要了解繪圖處理單元18與其功能,特別是如果此繪圖軟件模塊14是電 動(dòng)游戲操縱器且該使用者純粹是一個(gè)玩家。如果該繪圖軟件模塊14是用來建 立三維繪圖視頻、計(jì)算機(jī)游戲或是其它實(shí)時(shí)或離線成像的裝置,并且該使用 者是軟件開發(fā)者或該領(lǐng)域之人士,則此使用者一般比較了解繪圖處理單元l8 的功能。要了解的是,繪圖處理單元18可使用于諸多不同的應(yīng)用類型中。然 而為了簡化敘述,本發(fā)明特別著重圖像于二維顯示裝置16上的實(shí)時(shí)成像。
圖2顯示圖1所示的繪圖處理單元18的一實(shí)施例的方塊圖。在此實(shí)施例 中,繪圖處理單元18包括繪圖處理管線24,其與高速緩存系統(tǒng)"之間被總 線接口 28所分離。管線24包括頂點(diǎn)著色器30、幾何著色器32、光柵化器 34和像素著色器36。管線24的輸出可被送到回寫單元(圖未顯示)。高速緩 存系統(tǒng)26包括頂點(diǎn)串流高速緩存40、第一級高速緩存42、第二級高速緩存 44、 Z高速緩存46和紋理高速緩存48。
頂點(diǎn)串流高速緩存40接收命令和圖形數(shù)據(jù),并且傳送這些命令和數(shù)據(jù)給 頂點(diǎn)著色器30,其用以對這些數(shù)據(jù)執(zhí)行頂點(diǎn)著色的運(yùn)算。頂點(diǎn)著色器30使 用頂點(diǎn)信息建立欲顯示的對象的三角形和多邊形。頂點(diǎn)數(shù)據(jù)從頂點(diǎn)著色器30 傳送到幾何著色器32和第一級高速緩存42。如果有需要的話,某些數(shù)據(jù)可 被第一級高速緩存42和第二級高速緩存44所共享。第一級高速緩存也可傳
送數(shù)據(jù)給幾何著色器32,其用以執(zhí)行某些像是鑲嵌、陰影計(jì)算、點(diǎn)精靈的建 立等等的功能。幾何著色器32也可借著從單一頂點(diǎn)建立三角形,或從單一三 角形建立多個(gè)三角形來提供流暢的運(yùn)算。
在此階段以后,管線24所包括的光柵化器34對幾何著色器32和第二級 高速緩存44的數(shù)據(jù)進(jìn)行運(yùn)算。光柵化器34亦可利用Z高速緩存46做深度分 析,以及紋理高速緩存48做有關(guān)顏色特性的處理。光柵化器34可包括固定 功能的運(yùn)算,像是三角設(shè)定、跨磚運(yùn)算(span tile operations)、深度測試 (Z測試)、預(yù)包裝、像素插值、包裝等等。光柵化器34亦可包括用來將世界 空間中一個(gè)對象的頂點(diǎn)轉(zhuǎn)換至屏幕空間上的坐標(biāo)體系的轉(zhuǎn)換矩陣。
光柵化之后,光柵化器34將數(shù)據(jù)傳送給像素著色器36來決定最后的像 素值,像素著色器36的功能包括根據(jù)各種顏色特性處理每一個(gè)個(gè)別的像素以 及改變顏色值。舉例來說,像素著色器36可包括根據(jù)光源的位置及頂點(diǎn)的法 線來決定反射或高光色值和透明值的功能,然后從管線24輸出所完成的視頻 圖框。誠如圖中所示,著色器單元和固定功能單元于許多階段使用到高速緩 存系統(tǒng)26。假如總線接口 28是異步的接口,則于管線24和高速緩存系統(tǒng)26 之間的通訊可包括另外的緩沖機(jī)制。
在此實(shí)施例中,管線24的元件設(shè)計(jì)成分離的單元,這些單元在有需要的 時(shí)候存取不同的高速緩存元件。然而,著色器元件可被集中于統(tǒng)一著色器之 內(nèi),使得管線24可以較簡單的形式設(shè)計(jì)且仍提供相同的功能。數(shù)據(jù)流可被映 像在實(shí)體裝置之上,在此稱為執(zhí)行單元,其是用于執(zhí)行一部分的著色器功能。 如此一來,管線24結(jié)合成至少一個(gè)有能力執(zhí)行管線24的功能的執(zhí)行單元。 同樣的,高速緩存系統(tǒng)26的某些高速緩存單元也可并入這些執(zhí)行單元。借著 將這些元件合并成單一的單元可簡化繪圖處理的流量,并且可包括與異步接 口的切換。因此,可在局限的范圍(local)內(nèi)進(jìn)行數(shù)據(jù)的處理,因而允許較快 速度的執(zhí)行。同理,高速緩存系統(tǒng)26也可合并在一起建立統(tǒng)一高速緩存系統(tǒng)。
圖3A顯示圖1中所示的繪圖處理單元18的一實(shí)施例的方塊圖(或其它繪 圖處理裝置的方塊圖)。繪圖處理單元18包括統(tǒng)一著色器單元50,其具有多 個(gè)執(zhí)行單元52和高速緩存/控制裝置54。執(zhí)行單元52平行地連接設(shè)置并通 過高速緩存/控制裝置"來存取,統(tǒng)一著色器單元50可包括無數(shù)的執(zhí)行單元 52以適當(dāng)?shù)馗鶕?jù)各種規(guī)格執(zhí)行所要的繪圖處理量。當(dāng)設(shè)計(jì)情況需要處理到更 多的繪圖任務(wù)時(shí)可以加入更多的執(zhí)行單元,如此一來,統(tǒng)一著色器單元50具
有可擴(kuò)充性的特色。
在此實(shí)施例中,統(tǒng)一著色器單元50具有比傳統(tǒng)繪圖管線更具彈性的簡化
設(shè)計(jì)。在其它實(shí)施例中,每一著色器單元可能需要較大量的資源以因應(yīng)運(yùn)作 之需(例如高速緩存和控制裝置)。在此實(shí)施例中的資源是可以共享的,每一
個(gè)執(zhí)行單元52也可以類似的方法制造,并且依照當(dāng)前的工作負(fù)載量來做存 取。根據(jù)此工作負(fù)載量,可以視需求來配置執(zhí)行單元52以執(zhí)行一或多個(gè)繪圖 處理管線24的功能。因此,統(tǒng)一著色器單元50于繪圖處理中提供一個(gè)成本 效能比更佳的解決方案。
此外,當(dāng)應(yīng)用程序接口 20的設(shè)計(jì)和規(guī)格改變的時(shí)候(此屬常見現(xiàn)象),統(tǒng) 一著色器單元50不需要為了配合應(yīng)用程序接口的改變而重新_沒計(jì)。反而,統(tǒng) 一著色器單元50可動(dòng)態(tài)調(diào)整以便依照需求提供特定的著色功能。高速緩存/ 控制裝置54包括動(dòng)態(tài)規(guī)劃裝置,其依照當(dāng)前正在處理的對象或場景來平衡所 處理的負(fù)載量。高速緩存/控制裝置54也可包括配置系統(tǒng)以平衡數(shù)據(jù)的儲(chǔ)存 需求,此規(guī)劃裝置和配置系統(tǒng)可一起互相運(yùn)作或獨(dú)立運(yùn)算。
依照規(guī)劃裝置的決定,可分配更多的執(zhí)行單元52來提供較大的處理能力 于特定的繪圖處理之上,例如著色功能或固定功能,如此一來就可以減少延 遲。執(zhí)行單元52也可運(yùn)算于所有著色器功能的指令之上,進(jìn)而簡化處理過程。
圖3B顯示繪圖處理單元18的另一實(shí)施例的方塊圖,成對的執(zhí)行單元56 和紋理單元58平行并列,并且連接到高速緩存/控制裝置60。在此實(shí)施例中, 紋理單元58為執(zhí)行單元集的一部分,執(zhí)行單元56和紋理單元58可因此共享 高速緩存/控制裝置60內(nèi)的高速緩存,使得紋理單元58可比傳統(tǒng)紋理單元更 快速地存取指令。此實(shí)施例中的高速緩存/控制裝置60包括指令/紋理高速緩 存62(只讀),數(shù)據(jù)高速緩存64,頂點(diǎn)著色器控制裝置66和光柵接口 68。繪 圖處理單元18亦包括命令串流處理器70、存儲(chǔ)器存取單元72、光柵裝置74 以及回寫單元76。
因?yàn)閿?shù)據(jù)高速緩存64為讀/寫高速緩存,并且比只讀高速緩存62貴,所
以這兩個(gè)高速緩存是分開的。然而,不同的高速緩存裝置是可以如下所述的 方式結(jié)合的。只讀高速緩存62可包括約32個(gè)快取列,但這個(gè)數(shù)目是可以減 少的,并且每一個(gè)快取列的大小是可以增加的,這樣的做法主要是為了減少 所需的數(shù)目比較。只讀高速緩存62的尋到/誤失測試可與一般CPU的尋到/ 誤失測試不同,主要是因?yàn)槔L圖數(shù)據(jù)持續(xù)地被串流化。對于誤失的情況,高
速緩存純粹更新數(shù)據(jù)并且繼續(xù)操作,而不需要將數(shù)據(jù)儲(chǔ)存于外部的存儲(chǔ)器。 對于尋到的情況,則稍微延遲讀取的操作以接收高速緩存的數(shù)據(jù)。只讀高速
緩存62和數(shù)據(jù)高速緩存64可以是第一級高速緩存裝置以減少延遲,其對使
用第二級高速緩存的傳統(tǒng)繪圖處理單元高速援存系統(tǒng)來說是更進(jìn)步的。借著 結(jié)合更多的高速緩存資源,更多的高速緩存可以當(dāng)成本地或第一級高速緩存
以減少數(shù)據(jù)讀取時(shí)間。
頂點(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連接。光柵接口 68和頂點(diǎn)著色器控制裝置66提供信號(hào)給執(zhí)行 單元56以及從執(zhí)行單元56接收回處理過的信號(hào)。光柵接口 68與光柵裝置 74連接,執(zhí)行單元56的輸出也接到回寫單元76。
圖3C顯示此繪圖處理單元18的另一實(shí)施例的方塊圖。在此實(shí)施例中, 繪圖處理單元18包括包裝器(packer) 78、輸入閂80、多對的執(zhí)行單元裝置 82、輸出閂84、回寫單元86、紋理尋址產(chǎn)生器88、第二級高速緩存90、高 速緩存/控制裝置92、存儲(chǔ)器接口 94、存儲(chǔ)器存取單元96、三角設(shè)定單元98 以及命令串流處理器100。
命令串流器處理器100提供一串的索引給高速緩存/控制裝置92,這些 索引是關(guān)于頂點(diǎn)的身分標(biāo)簽。舉例來說,高速緩存/控制裝置92可設(shè)計(jì)于先 進(jìn)先出機(jī)制內(nèi)一次辨識(shí)256個(gè)索引。包裝器78以固定功能單元為佳,其送出 要求給高速緩存/控制裝置92要求取得相關(guān)的信息來執(zhí)行像素著色的功能。 高速緩存/控制裝置92送回像素著色器信息以及某一執(zhí)行單元號(hào)碼和線程號(hào) 碼的配置消息。該執(zhí)行單元號(hào)碼是指執(zhí)行單元裝置82中的其中一個(gè)執(zhí)行單 元,而線程號(hào)碼是指每一個(gè)執(zhí)行單元中用來處理數(shù)據(jù)的許多平行線程的其中 一個(gè)線程。之后,包裝器78傳送像素著色運(yùn)算所需的相關(guān)紋理像素和顏色信 息給輸入閂80。舉例來說,可把連接至輸入閂80的兩個(gè)輸入指定給紋理像 素信息,另外兩個(gè)輸入指定給顏色信息。每一個(gè)輸入具有傳送特定位數(shù)的能 力,例如512 ^立。
輸入閂80可為總線接口 ,其依照高速緩存/控制裝置92所規(guī)定的分配任 務(wù)將像素著色器數(shù)據(jù)安排給特定的執(zhí)行單元和線程。此分配的任務(wù)可根據(jù)執(zhí)
行單元和線程的可用性、或是其它的因素來決定,且可依需求改變。在多個(gè)
執(zhí)行單元82平行連接的架構(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)著色和幾何著色的功 能來處理數(shù)據(jù)。另外,執(zhí)行單元82可根據(jù)包裝器78的紋理像素信息和顏色 信息來執(zhí)行像素著色的功能。如同本實(shí)施例包括了五個(gè)執(zhí)行單元,且每一個(gè) 執(zhí)行單元分成兩個(gè)部分,每一個(gè)部分代表許多的線程。每一部分可以圖4-6 來表示,執(zhí)行單元裝置82的輸出是傳送到輸出閂84。
當(dāng)繪圖數(shù)據(jù)完成的時(shí)候,這些數(shù)據(jù)從輸出閂84傳送到回寫單元86,其 連接至用來將圖框顯示在顯示裝置16之上的圖框緩沖器。在一或多個(gè)執(zhí)行單 元裝置82以像素著色功能將數(shù)據(jù)處理完畢之后,回寫單元86會(huì)接收完成的 圖框,此是繪圖處理的最后階段。然而,數(shù)據(jù)處理流可一或多次地通過高速 緩存/控制裝置92回繞以防主從紋理讀取。在中間處理的期間,紋理尋址產(chǎn) 生器88從輸出閂84接收紋理坐標(biāo)以決定要取樣的地址。紋理尋址產(chǎn)生器88 傳送紋理號(hào)碼(texture number)加載要求給第二級高速緩存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作為響應(yīng)。同樣地,讀取要求也從輸出閂84送到第二級 高速緩存90,第二級高速緩存90也可傳送數(shù)據(jù)給輸入閂80作為響應(yīng)。第二 級高速緩存90執(zhí)行尋到/誤失測試確定數(shù)據(jù)是否儲(chǔ)存于高速緩存之內(nèi)。如果 不是儲(chǔ)存于高速緩存之內(nèi),存儲(chǔ)器接口 94可通過存儲(chǔ)器存取單元96存取存 儲(chǔ)器以讀取所需的數(shù)據(jù)。第二級高速緩存90依其需求以讀取的數(shù)據(jù)更新其存 儲(chǔ)器,并且把舊的數(shù)據(jù)丟給存儲(chǔ)器或是丟棄只讀數(shù)據(jù)。高速緩存/控制裝置 92也包括輸出,用來傳送頂點(diǎn)著色和幾何著色數(shù)據(jù)至三角設(shè)定單元98以執(zhí) 行三角設(shè)定處理。
圖4顯示依照本發(fā)明的技術(shù)的高速緩存系統(tǒng)102的一實(shí)施例的方塊圖。 除了之前所提到的元件,高速緩存系統(tǒng)102還包括儲(chǔ)存裝置控制器104和數(shù) 據(jù)儲(chǔ)存裝置106。儲(chǔ)存裝置控制器104用來連接多重著色器單元,例如頂點(diǎn)
著色器、幾何著色器和像素著色器,以及繪圖處理單元的固定功能單元。同
樣地,儲(chǔ)存裝置控制器104也用來連接本發(fā)明所述的統(tǒng)一著色器單元或執(zhí)行 單元。然而,為了簡化本發(fā)明的描述,在此所述的高速緩存系統(tǒng)是與著色器 單元相連接。但必須知道的是,此高速緩存系統(tǒng)也可與固定功能單元、統(tǒng)一 著色器單元和執(zhí)行單元等連接。
儲(chǔ)存裝置控制器104可接收著色器所發(fā)出的數(shù)據(jù)讀取或?qū)懭氲囊?。?了響應(yīng)這些要求,儲(chǔ)存裝置控制器104可于著色器單元和數(shù)據(jù)儲(chǔ)存裝置106 之間傳送數(shù)據(jù)。儲(chǔ)存裝置控制器104視數(shù)據(jù)儲(chǔ)存裝置106中存儲(chǔ)空間的可用 性而相對應(yīng)地分配數(shù)據(jù),像是繪圖數(shù)據(jù)。如此一來,儲(chǔ)存裝置控制器104可 根據(jù)目前的需求動(dòng)態(tài)地調(diào)整所需的數(shù)據(jù)分配。當(dāng)頂點(diǎn)著色功能的運(yùn)算加重時(shí), 儲(chǔ)存裝置控制器104可分配更多的存儲(chǔ)單元于數(shù)據(jù)儲(chǔ)存裝置106之內(nèi)以儲(chǔ)存 相關(guān)的頂點(diǎn)數(shù)據(jù)。儲(chǔ)存裝置控制器104也可依需求協(xié)調(diào)讀取和寫入的運(yùn)算。
圖5顯示高速緩存系統(tǒng)108的另一實(shí)施例的方塊圖。高速緩存系統(tǒng)108 包括要求接收器110、控制裝置112、數(shù)據(jù)接收器114、數(shù)據(jù)發(fā)送器116、數(shù) 據(jù)接口 118和許多的儲(chǔ)存單元120。在此實(shí)施例中,高速緩存系統(tǒng)108可包 括適當(dāng)數(shù)目的儲(chǔ)存單元120,這些儲(chǔ)存單元120集合起來可建構(gòu)成具備適當(dāng) 架構(gòu)高速緩存信道,且被分成許多快取列的高速緩存。同樣地,儲(chǔ)存單元120 也可包括分離的可尋址緩存器或存儲(chǔ)元件。另一種選項(xiàng)就是,儲(chǔ)存單元120 可代表不同形式,且放置于不同位置的高速緩存。舉例來說,儲(chǔ)存單元UO 可包括第一級和第二級高速緩存。
要求接收器110接收諸多著色器單元的要求,具在一時(shí)間點(diǎn)可接收超過 一個(gè)的需求。如果要求接收器110接收到多個(gè)要求,則這些要求會(huì)以預(yù)定的 優(yōu)先級處理。控制裝置112用來處理這些要求以決定和管理數(shù)據(jù)的傳送。對 于寫入指令,控制裝置112致能數(shù)據(jù)接收器114以接收個(gè)別著色器單元的數(shù) 據(jù),控制裝置112也控制數(shù)據(jù)接口 118以儲(chǔ)存數(shù)據(jù)于一或多個(gè)適當(dāng)?shù)膬?chǔ)存單 元120中。對于讀取指令,控制裝置ll2控制數(shù)據(jù)接口 ll8以擷取可尋址# 存單元120的數(shù)據(jù),然后數(shù)據(jù)發(fā)送器116發(fā)送數(shù)據(jù)給發(fā)出該要求的著色器單 元。控制裝置112視目前運(yùn)算中的處理功能來管理數(shù)據(jù)的分配。與傳統(tǒng)技術(shù) 中對應(yīng)至特定著色器單元的每一個(gè)高速緩存裝置具備固定的儲(chǔ)存容量不同, 高速緩存系統(tǒng)108所具備的儲(chǔ)存單元120可依照每一著色器單元的需求來分 割其儲(chǔ)存容量。同樣地,由于處理不同類型的繪圖對象和(或)場景而產(chǎn)生處
理需求的改變,此分配機(jī)制亦可根據(jù)上述情況來做調(diào)整。
圖6顯示高速緩存系統(tǒng)122的一實(shí)施例的方塊圖,其可用于或取代圖2 所示的高速緩存系統(tǒng)26或圖3A至3C所示的高速緩存/控制裝置54。在此實(shí) 施例中,高速緩存系統(tǒng)122包括頂點(diǎn)數(shù)據(jù)串流高速緩存124、垂直水平轉(zhuǎn)換 器126、第一級頂點(diǎn)高速緩存128、頂點(diǎn)著色器前端130、頂點(diǎn)著色器識(shí)別表 132、幾何著色器識(shí)別表134、幾何著色器基元建構(gòu)器136、串流輸出裝置138、 串流輸出索引緩沖器140、幾何著色器前端142、串流輸出前端144、第二級 高速緩存146、常數(shù)加載器148、存儲(chǔ)器接口 150以及三角設(shè)定單元152。如 本領(lǐng)域技術(shù)人員將會(huì)了解的,其它的實(shí)施例亦可用上述部分或全部的元件, 并以上述或其它的形式來設(shè)計(jì)。上述高速緩存系統(tǒng)122具備處理多重著色器 單元的功能。
頂點(diǎn)著色器前端130從源頭接收索引基元,例如從命令串流處理器。頂 點(diǎn)著色器前端130也可接收狀態(tài)消息、命令以及幾何基元信息。頂點(diǎn)著色器 前端130傳送索引信息給頂點(diǎn)著色器識(shí)別表132,其是尋到測試裝置,可對 第一級頂點(diǎn)高速緩存128中的數(shù)據(jù)執(zhí)行尋到/誤失測試。尋到/誤失的結(jié)果和 頂點(diǎn)高速緩存識(shí)別信息會(huì)回傳給頂點(diǎn)著色器前端130,頂點(diǎn)著色器前端130 也發(fā)送狀態(tài)、命令和誤失(頂點(diǎn)高速緩存識(shí)別)消息給頂點(diǎn)數(shù)據(jù)串流高速緩存 124。頂點(diǎn)數(shù)據(jù)串流高速緩存124用來傳送任務(wù)要求給外部頂點(diǎn)著色器規(guī)劃器 (圖未顯示),以及接收關(guān)于圖3A中的執(zhí)行單元數(shù)目和線程數(shù)目等信息。頂點(diǎn) 數(shù)據(jù)串流高速緩存124也傳送頂點(diǎn)著色器的輸入給輸入閂80(圖3C)。
頂點(diǎn)數(shù)據(jù)串流高速緩存124也傳送頂點(diǎn)著色器旁路消息給垂直水平轉(zhuǎn)換 器126。垂直水平轉(zhuǎn)換器126接收頂點(diǎn)著色器和幾何著色器信息,并回送樣 本給頂點(diǎn)數(shù)據(jù)串流高速緩存124以作為響應(yīng),然后將這些信息儲(chǔ)存于第一級 頂點(diǎn)高速緩存128中。垂直水平轉(zhuǎn)換器126也可傳送發(fā)出(emit)、剪輯(cut) 和完成(done)的信息給幾何著色器識(shí)別表134 。
頂點(diǎn)著色器前端130也傳送狀態(tài)、命令和頂點(diǎn)著色器的頂點(diǎn)高速緩存識(shí) 別給串流輸出索引緩沖器140,其傳遞這些信息給幾何著色器前端142,接著 幾何著色器前端142又傳送這些信息給串流輸出前端144,并且傳送頂點(diǎn)著 色器的頂點(diǎn)高速緩存識(shí)別信息給幾何著色器基元建構(gòu)器136。串流輸出前端 144傳送頂點(diǎn)著色器和幾何著色器的頂點(diǎn)高速緩存識(shí)別信息給串流輸出裝置 138。頂點(diǎn)著色器識(shí)別表132、幾何著色器識(shí)別表134、幾何著色器基元建構(gòu) 器136和串流輸出裝置138分別傳送頂點(diǎn)著色器無效信息、幾何著色器無效 信息、頂點(diǎn)著色器的頂點(diǎn)高速緩存識(shí)別和頂點(diǎn)著色器/幾何著色器的頂點(diǎn)高速 緩存識(shí)別給第一級頂點(diǎn)高速緩存128。第一級頂點(diǎn)高速緩存128傳送頂點(diǎn)數(shù) 據(jù)給幾何著色器基元建構(gòu)器136和串流輸出裝置138。
幾何著色器基元建構(gòu)器136也傳送幾何著色信息給輸入閂80。同樣地, 幾何著色器基元建構(gòu)器136傳送任務(wù)要求給外部幾何著色器規(guī)劃器(圖未顯 示)以及從其接收執(zhí)行單元數(shù)目和線程數(shù)目等信息。
第二級高速緩存146在有需要的時(shí)候儲(chǔ)存第一級頂點(diǎn)高速緩存128的過 量數(shù)據(jù),并且在適當(dāng)?shù)臅r(shí)機(jī)提供預(yù)取機(jī)制。頂點(diǎn)著色器前端130和幾何著色 器前端142傳送常數(shù)擷取消息給常數(shù)加載器148,其將常數(shù)傳送至第二級高 速緩存146。第二級高速緩存146通過輸入閂80傳送信息給執(zhí)行單元,并且 通過輸出閂84從執(zhí)行單元接收回信息。同樣地,串流輸出裝置138傳送頂點(diǎn) 數(shù)據(jù)給存儲(chǔ)器接口 150和三角設(shè)定單元152。第二級高速緩存146和存儲(chǔ)器 接口 150之間可交換工作負(fù)載以及儲(chǔ)存信息。
圖7顯示高速緩存系統(tǒng)154的另一實(shí)施例的方塊圖,其可有關(guān)于圖3A至 3C中的高速緩存/控制裝置。依照本實(shí)施例,高速緩存系統(tǒng)154包括串流高 速緩存格式器156、頂點(diǎn)著色器控制158、頂點(diǎn)著色器識(shí)別表160、串流輸出 索引緩沖器162、串流輸出緩存器控制裝置164、串流輸出裝置166、存儲(chǔ)器 存取單元168、第二級紋理高速緩存170、第二級數(shù)據(jù)高速緩存1"、常數(shù)加 載器174、光柵方塊176、小區(qū)塊屏蔽178、像素著色器控制裝置180以及回 寫單元182。在某些實(shí)施例中,頂點(diǎn)著色器控制"8可以是頂點(diǎn)著色器前端 裝置。舉例來說,此實(shí)施例可與具有幾何著色功能的統(tǒng)一著色器一起使用。 如此一來,如圖6的實(shí)施例中所述的幾何著色元件在此實(shí)施例中是被省略且 被執(zhí)行單元的元件所控制的。圖7的高速緩存系統(tǒng)154的運(yùn)算原理與圖6中 所述的實(shí)施例是很類似的。
關(guān)于頂點(diǎn)著色器控制158和頂點(diǎn)著色器識(shí)別表160,頂點(diǎn)著色器識(shí)別表 160在頂點(diǎn)著色運(yùn)算之后執(zhí)行頂點(diǎn)尋到/誤失測試,并且將后頂點(diǎn) (pos t-ver tex)著色器的頂點(diǎn)高速緩存識(shí)別分配給每一個(gè)接收到的頂點(diǎn),這些 頂點(diǎn)是由源頭的VertexID和InstanceID所指定,例如從命令串流處理器到 頂點(diǎn)著色器控制158。頂點(diǎn)著色器識(shí)別表160大約每一周期從頂點(diǎn)著色器控 制158接收頂點(diǎn),并且于VertexID巻標(biāo)隨機(jī)存取存儲(chǔ)器內(nèi)(圖未顯示)執(zhí)行
VertexID和快取登錄項(xiàng)目之間的完整集合相聯(lián)(ful ly set-associated)尋到 /誤失比較,VertexID巻標(biāo)隨機(jī)存取存儲(chǔ)器的大小可以是32K字節(jié),且每一 個(gè)項(xiàng)目(Entry)可具有寬度為32位的VertexID。
如果發(fā)現(xiàn)一相合情況,相關(guān)的8位頂點(diǎn)高速緩存識(shí)別會(huì)被分配給頂點(diǎn), 并且頂點(diǎn)著色器識(shí)別表160內(nèi)的頂點(diǎn)高速緩存識(shí)別的參考計(jì)數(shù)會(huì)增加1。否 則,當(dāng)參考計(jì)數(shù)等于零的時(shí)候,頂點(diǎn)著色器識(shí)別表160內(nèi)下個(gè)頂點(diǎn)高速緩存 識(shí)別的位置(根據(jù)頂點(diǎn)的大小,位置的數(shù)目可為1 、 2、 3或4)會(huì)分配給頂點(diǎn), 并且起始的頂點(diǎn)高速緩存識(shí)別將被儲(chǔ)存于VertexID巻標(biāo)隨機(jī)存取存儲(chǔ)器內(nèi)。 VertexID巻標(biāo)隨機(jī)存取存儲(chǔ)器的取代法則可以是先進(jìn)先出,舉例來說。如果 下個(gè)頂點(diǎn)高速緩存識(shí)別位置的參考計(jì)數(shù)不等于零,頂點(diǎn)著色器識(shí)別表160將 停止運(yùn)作,并且停止從頂點(diǎn)著色器控制15 8接收頂點(diǎn)。
下個(gè)頂點(diǎn)高速緩存識(shí)別的參考計(jì)數(shù)的查閱是借著比較頂點(diǎn)著色器識(shí)別表 160上的兩個(gè)指標(biāo)來實(shí)現(xiàn)。 一配置指針指向頂點(diǎn)著色器識(shí)別表160中下個(gè)要 被失效的頂點(diǎn)高速緩存識(shí)別。在尋到/誤失測試之后,分配到頂點(diǎn)的起始頂點(diǎn) 高速緩存識(shí)別回歸到頂點(diǎn)著色器控制158,其儲(chǔ)存頂點(diǎn)高速緩存識(shí)別為針對 于執(zhí)行單元(通過串流高速緩存格式器156)和串流輸出索引緩沖器162的頂 點(diǎn)快取登錄項(xiàng)目。
頂點(diǎn)著色器識(shí)別表160可設(shè)計(jì)來包括256個(gè)快取登錄項(xiàng)目。當(dāng)頂點(diǎn)高速 緩存識(shí)別在VertexID巻標(biāo)隨機(jī)存取存儲(chǔ)器內(nèi)是尋到的情況時(shí),參考計(jì)數(shù)會(huì)增 加,不然它會(huì)根據(jù)誤失的情況而被分配。當(dāng)幾何著色器基元建構(gòu)器(圖6)或 串流輸出裝置166讀取頂點(diǎn)時(shí),參考計(jì)數(shù)會(huì)減少。頂點(diǎn)著色器識(shí)別表1"可 根據(jù)預(yù)先設(shè)定的額度分配一定數(shù)目的誤失頂點(diǎn)給執(zhí)行單元。舉例來說,假定 每個(gè)執(zhí)行單元有16個(gè)誤失的額度,則前16個(gè)誤失可被分配至執(zhí)行單元0, 下16個(gè)誤失可被分配至執(zhí)行單元1等等。用來建構(gòu)基元的索引也被送到執(zhí)行 單元,每一個(gè)基元跟隨其頂點(diǎn)并且移動(dòng)到相同的執(zhí)行單元。如果頂點(diǎn)儲(chǔ)存于 一個(gè)以上的執(zhí)行單元,這些基元將被分配至其中 一個(gè)包含其最多頂點(diǎn)的執(zhí)行 單元。如果誤失的頂點(diǎn)稍后被分配到不同執(zhí)行單元的基元所尋到,頂點(diǎn)著色 器識(shí)別表160將傳送通知給包括此頂點(diǎn)的執(zhí)行單元,并要求此執(zhí)行單元提供 數(shù)據(jù)給第二級數(shù)據(jù)高速緩存172。因此,頂點(diǎn)著色器識(shí)別表160保有關(guān)于每 一頂點(diǎn)高速緩存識(shí)別分配到哪個(gè)執(zhí)行單元的信息,以及數(shù)據(jù)備妥旗標(biāo)信息。
圖8顯示紋理高速緩存184的一實(shí)施例的方塊圖,其可代表圖7中顯示
的第二級紋理高速緩存170。紋理高速緩存184可設(shè)計(jì)來接收及儲(chǔ)存紋理信 息、常數(shù)和指令的串流。在此實(shí)施例中,紋理高速緩存184包括執(zhí)行單元輸 入裝置186和188、串流高速緩存190、要求合并裝置192和194、集合仲裁 器196、第一尋到測試裝置(集合0)198、第二尋到測試裝置(集合1) 200、暫 停要求裝置2G2、誤失要求表204、暫停要求裝置206、誤失要求表208、存 儲(chǔ)器存取單元接口 210、回歸數(shù)據(jù)緩沖器212、回歸要求控制214、讀/寫仲 裁器216、第一區(qū)塊(區(qū)塊0)218、第二區(qū)塊(區(qū)塊1) 220和輸出仲裁器 222-0 (GT)。
紋理高速緩存184設(shè)計(jì)來以第二級高速緩存的形式地運(yùn)作,以讓執(zhí)行單 元集和紋理單元使用。紋理高速緩存184包括對于頂點(diǎn)著色運(yùn)算、幾何著色 運(yùn)算和像素著色運(yùn)算的常數(shù)和指令。紋理高速緩存184也包括頂點(diǎn)串流數(shù)據(jù)、 紋理數(shù)據(jù)以及被紋理單元所使用的緩存器的辨識(shí)號(hào)碼。
紋理高速緩存184的儲(chǔ)存容量可以是64K到288K字節(jié),舉例來說。紋理 高速緩存184可包括256個(gè)2K位的快取列,所以此快取列的尺寸是2048位。 其中每個(gè)快取列包括四個(gè)字符,所以每個(gè)快取列可分成四個(gè)512位的字符, 每個(gè)字符位于不同的區(qū)塊,并且26位-512位的位[1: 0]所選到的字符與其虛 擬存儲(chǔ)器地址對齊。此高速緩存也可是128路(way)的集合相聯(lián),對高速緩存 的存儲(chǔ)器要求可以是512位的字符要求。紋理高速緩存184可建構(gòu)成一個(gè)兩 區(qū)塊的可讀取和可寫入的512x512高速緩存,其總尺寸為64K字節(jié)。高速緩 存中數(shù)據(jù)的替代機(jī)制可根據(jù)虛擬最近最少使用算法(Pseudo Least Recently Used, PLRU),以每一周期每一集合一次尋到測試的條件下執(zhí)行。高速緩存讀 /寫吞吐量可以是每周期兩個(gè)512位的讀取/寫入,以及2x512位的回歸數(shù)插 緩沖器。
于運(yùn)作中,紋理高速緩存184可使用兩個(gè)區(qū)塊的儲(chǔ)存單元。為了于每個(gè) 周期執(zhí)行兩次的尋到測試,這256個(gè)快取列可被分成偶數(shù)和奇數(shù)區(qū)塊,每一 偶數(shù)或奇數(shù)標(biāo)簽可具有128個(gè)快取列,而且地址位[2]可以;陂使用來區(qū)分偶數(shù) 或奇數(shù)區(qū)塊。 一巨型格子的物理大小可以是256個(gè)區(qū)塊。高速緩存巻標(biāo)可以 是地址位中的17個(gè)最重要的位。紋理高速緩存184可以是第二級四路集合相 聯(lián)高速緩存,且此集合被512位對齊地址的位[8: 3]所選擇。每一區(qū)塊可具有 一 1讀寫(RW)的512位端口 ,全部四個(gè)區(qū)塊可于每一周期提供四個(gè)讀/取存取。 存儲(chǔ)器存取單元168的外部寫入可比要求裝置的讀/寫更具更高的優(yōu)先級。替
代的方式可根據(jù)虛擬最近最少使用算法來執(zhí)行。
地址可依照如下所述來決定
對于每一偶數(shù)或奇數(shù)區(qū)塊,集合地址等于512位的對齊地址[8: 3];
對于每一快取列,高速緩存地址為512位的對齊地址[8: 0]。
執(zhí)行單元的常數(shù)負(fù)載的指令可包括加載128/512位數(shù)據(jù),此數(shù)據(jù)個(gè)別對 齊128/512位的存儲(chǔ)器地址。對于加載指令,回歸的128位數(shù)據(jù)可被復(fù)制成 512位,且當(dāng)被寫入執(zhí)行單元共同緩存器文件(圖未顯示)時(shí)會(huì)被有效像素/頂 點(diǎn)屏蔽和通道屏蔽所屏蔽。執(zhí)行單元所有對于指令和常數(shù)的讀取要求以及紋 理尋址產(chǎn)生器的T并緩存器皆與512位的存儲(chǔ)器地址對齊。
第一和第二尋到測試裝置198和200包括很多的測試階段以執(zhí)行讀取或 寫入操作的尋到測試。在第一階段中會(huì)執(zhí)行地址比較和要求合并。要求合并 裝置192和194嘗試將一接收到的要求與此要求的最接近的前一個(gè)或后一個(gè) 要求合并在一起,依此來達(dá)到改善效能的目的。合并的操作有兩個(gè)目的,第 一就是減少尋到測試的流量。如果流量可以減少,不需要兩倍的尋到測試邏 輯就可以維持巨型格子的效能。另一個(gè)目的是此要求地址傾向是路線要求 (course request),其提供一要求于此地址的鄰近地址。此合并操作一般于 一快取列內(nèi)執(zhí)行,例如2048位的快取列。為了于之后更順利地進(jìn)行仲裁,要 求合并裝置192和194在這些區(qū)塊彼此不沖突的時(shí)候可以進(jìn)行合并。 一快取 登錄項(xiàng)目,其包括了一要求或合并要求,在尋到測試裝置198和200的認(rèn)可 下從要求合并裝置192和194送到集合仲裁器196。
關(guān)于尋到測試的第一階段,為了在單一個(gè)周期內(nèi)執(zhí)行兩次尋到測試,快 取列可從256個(gè)區(qū)塊分成兩組128區(qū)塊。集合仲裁器196傳送尋到測試信息 至個(gè)別的尋到測試裝置198和200。第一尋到測試裝置198用于偶數(shù)區(qū)塊而 第二尋到測試裝置200用于奇數(shù)區(qū)塊。集合仲裁器196可用循環(huán)的方式從執(zhí) 行單元輸入裝置186、 188和串流高速緩存19G的輸入間發(fā)送要求。在仲裁之 后,仲裁的要求進(jìn)入一要求先進(jìn)先出,舉例來說,其可深達(dá)四個(gè)或更多的快 取登錄項(xiàng)目。
在尋到測試的第二階段中確認(rèn)了此要求是尋到或誤失。因?yàn)槊恳?個(gè)尋到 測試裝置198和200只有一個(gè)要求,所以不需要使用到最近最少-使用算法或 其它復(fù)雜的機(jī)制。512位對齊地址(集合地址)的位[8: 3]被當(dāng)成索引以查閱第 二級快取巻標(biāo)隨機(jī)存取存儲(chǔ)器的四個(gè)巻標(biāo)。此地址最重要的17個(gè)位與這四個(gè)
巻標(biāo)做比較以尋找匹配。
如果第一尋到測試裝置198確認(rèn)在第二級高速緩存內(nèi)是尋到的情況,第 一尋到測試裝置198傳送列地址至?xí)和R蟊?06,并伴隨著附屬于尋到測 試快取登錄項(xiàng)目的字符選擇、偏移、回歸目的識(shí)別以及多達(dá)四個(gè)的要求的地 址一起傳送。如果第一尋到測試裝置198確認(rèn)在第二級高速緩存內(nèi)是誤失或 誤失尋到(hit-on-miss)的情況,第一尋到測試裝置198將列地址和其它要求 信息寫入誤失要求表208內(nèi)。
在一些實(shí)施例中,尋到測試裝置198和200包括特定的元件以執(zhí)行尋到/ 誤失測試。舉例來說,這些裝置可包括執(zhí)行巻標(biāo)尋到測試和巻標(biāo)更新的 TAG-COL、借著使用虛擬最近最少使用算法來找尋下個(gè)可使用的快取列的 LRU-TABLE,以及保持每個(gè)快取列狀態(tài)的L0CK—TABLE。對于LOCK—TABLE而言, 當(dāng)數(shù)據(jù)從存儲(chǔ)器存取單元接口 210回來的時(shí)候,使用了有效的快取登錄項(xiàng)目 (An entry of valid)。如果不是誤失要求表204和208中的所有要求都被清 除時(shí),則使用鎖定快取登錄項(xiàng)目(An entry of locked)。另外,使用已使用 快取登錄項(xiàng)目(An entry of dirty)來表示此快取列已被執(zhí)行單元的輸出所寫 入。如果有堵塞情況,可停止管線的運(yùn)作并且可將循到結(jié)果先寫入一兩快取 登錄項(xiàng)目的尋到結(jié)果先進(jìn)先出。
在第三階段的尋到測試中執(zhí)行了讀/寫的仲裁。誤失要求表204和208的 讀取要求被回歸要求控制裝置214所控制。存儲(chǔ)器存取單元接口 210的寫入 要求被送到回歸數(shù)據(jù)緩沖器212。寫入要求被讀/寫仲裁器216所仲裁,并且 這些要求被送到第二級隨機(jī)存取存儲(chǔ)器,其包括第一區(qū)塊218和第二區(qū)塊 220。如果不同來源的要求皆于同一周期送到同一個(gè)區(qū)塊,存儲(chǔ)器存取單元接 口 210的寫入會(huì)取得最高的優(yōu)先權(quán)。在這些寫入之后,接著處理誤失要求表 204和208的誤失結(jié)果,而尋到測試結(jié)果則于最后處理。優(yōu)先級可包括循環(huán) 的機(jī)制。為了將吞吐量最大化,同一來源的要求的優(yōu)先級是可被打亂的,只 要讀/寫仲裁器216傳送它們至不同的區(qū)塊218和220。
要最佳使用巨型格子的頻寬,控制邏輯單元將會(huì)試著于單一周期內(nèi)將要 求填入?yún)^(qū)塊內(nèi)。舉例來說,執(zhí)行單元總線信道0可具有可用的區(qū)塊0和1、 執(zhí)行單元總線信道1可具有可用的區(qū)塊2和3、誤失要求暫??删哂锌捎玫?區(qū)塊2,以及存儲(chǔ)器存取單元可具有可用的區(qū)塊l。此周期內(nèi)最后的要求包括 選擇存儲(chǔ)器存取單元接口 210來填補(bǔ)區(qū)塊1 、選擇誤失要求暫停來填補(bǔ)區(qū)塊2 、
選擇執(zhí)行單元總線信道0(186)來填補(bǔ)區(qū)塊G以及選擇執(zhí)行單元總線信道 1(188)來填補(bǔ)區(qū)塊3。
在尋到測試的第四階段執(zhí)行了輸出的仲裁。巨型格子的讀取數(shù)據(jù)被放入 每一區(qū)塊中單快取登錄項(xiàng)目或雙快取登錄項(xiàng)目的數(shù)據(jù)先進(jìn)先出。紋理高速緩 存184 —般無法停止回歸數(shù)據(jù),對其的輸出將會(huì)立刻被送出。傳送到執(zhí)行單 元和紋理單元的回歸數(shù)據(jù)可能會(huì)經(jīng)歷囤積的情況。
再次參照圖6和圖7,第一級數(shù)據(jù)高速緩存可設(shè)計(jì)來包含標(biāo)簽表和數(shù)據(jù) 段。每一快取列中可具有四個(gè)512位(或2048位),其中快取列的總數(shù)是512。 單一快取列內(nèi)四個(gè)512位的快取登錄項(xiàng)目共享相同的巻標(biāo)。除了巻標(biāo)地址, 還有四個(gè)一位的狀態(tài)位以區(qū)分快取列的狀態(tài)。對于有效狀態(tài),代表快取列是 被分配且?guī)啒?biāo)地址是有效的。此狀態(tài)在重新開機(jī)后可被清除,而任何的配置 操作將會(huì)設(shè)定此位。
對于已使用的狀態(tài),表示此快取列已經(jīng)被數(shù)據(jù)所寫入,但不包括存儲(chǔ)器 存取單元接口 210的存儲(chǔ)器存取數(shù)據(jù)。如果要進(jìn)行此快取列的任何取代操作, 則這些數(shù)據(jù)將寫入到存儲(chǔ)器。配置每一快取列后,其可被清除或失效。如果 進(jìn)行任何寫入操作的話其可被設(shè)定,除了存儲(chǔ)器存取單元的寫入操作。
當(dāng)此狀態(tài)就緒的時(shí)候,會(huì)分配快取列并且設(shè)定存儲(chǔ)器存取單元的讀取要 求。備妥位將于分配快取列之后被清除,并且于將于存儲(chǔ)器存取單元的數(shù)據(jù) 送達(dá)之后被設(shè)定,這將避免更進(jìn)一 步的誤失尋到情況。
對于鎖定的狀態(tài),就此快取列來說,在誤失要求表204和208中可以有 超過一個(gè)的快取登錄項(xiàng)目,其是誤失或誤失尋到的情況。此鎖定將于高速緩 存分配后被設(shè)定,此位將會(huì)被清除如果屬于此快取列的所有快取登錄項(xiàng)目都 從誤失要求表204和208中移除的話。它將允許此高速緩存被分配以進(jìn)行取 代。
再次參照圖8,如果于第二級高速緩存中有讀取誤失或誤失尋到,則對 誤失要求表204和208做搜尋的操作。選擇一快取登錄項(xiàng)目來儲(chǔ)存快取列地 址以及此要求的其它信息(回歸目的單元識(shí)別、快取登錄項(xiàng)目類型、線程識(shí)別、 公用緩存器文件索引、任務(wù)順序識(shí)別等)。存儲(chǔ)器存取單元接口 210的數(shù)據(jù)傳 送到高速緩存內(nèi)的一快取列號(hào)碼。因?yàn)橛袃蓚€(gè)表,每個(gè)表可包含U8列。區(qū) 塊有效信號(hào)指定哪個(gè)快取登錄項(xiàng)目是有效的。
如果第二級高速緩存內(nèi)有寫入誤失,則對誤失要求表204和208做搜尋
的操作,并且選擇可用的快取登錄項(xiàng)目儲(chǔ)存于快取列地址??烊×袑⑷缱x取 誤失般地分配,并且寫入數(shù)據(jù)可直接寫入高速緩存內(nèi)。為了不要覆寫快取列 中的現(xiàn)有數(shù)據(jù),故保有一寫入屏蔽緩沖器以暫停由寫入誤失所引起的誤失要
求。當(dāng)數(shù)據(jù)從存儲(chǔ)器存取單元接口 210送回的時(shí)候,讀/寫仲裁器216將檢查 寫入屏蔽,并且更新至對應(yīng)的快取列。
在高速緩存誤失之上, 一個(gè)針對存儲(chǔ)器存取單元接口 210的讀取要求是 送到誤失要求表204和208。有兩個(gè)要求表連接到每一尋到測試單元198和 200,每一個(gè)要求表包括多達(dá)32個(gè)的暫停讀取要求快取登錄項(xiàng)目。對于讀取 要求,回歸第二級快取列地址(9位)與虛擬存儲(chǔ)器地址一起傳送,并且于稍 后當(dāng)數(shù)據(jù)從存儲(chǔ)器存取單元接口 210回來時(shí),可用來于誤失要求表中搜尋要 求快取登錄項(xiàng)目。每一讀取要求預(yù)計(jì)可取回一快取列(2048位或4x512位)。
暫停要求先進(jìn)先出(pending request FIFO) 202和206大致具有與誤失 要求表204和208相同的大小。誤失要求表204和208中的快取登錄項(xiàng)目在 數(shù)據(jù)從存儲(chǔ)器存取單元接口 210回來前通常不會(huì)被清除。因此可忽略此先進(jìn) 先出的整體情況,因?yàn)槿绻m當(dāng)管理誤失要求表204和208的話其是不會(huì)被 覆寫的。
可使用4x512位的4R1W存儲(chǔ)器,將回歸要求控制裝置214建構(gòu)成數(shù)據(jù)緩 沖器。為了得到存取巨型格子的最高效率,回歸要求控制裝置214將屬于高 速緩存地址的四個(gè)連續(xù)群組的數(shù)據(jù)分組。 一旦所有四組數(shù)據(jù)群組都準(zhǔn)備妥當(dāng), 回歸要求控制裝置214將這些數(shù)據(jù)傳送給讀/寫仲裁器216以回寫數(shù)據(jù)?;貧w 要求控制裝置214設(shè)計(jì)來確保從存儲(chǔ)器存取單元接口 210來的數(shù)據(jù)不會(huì)與指 定給一個(gè)不同高速緩存地址的數(shù)據(jù)混合。也就是說,屬于相同讀取要求(一個(gè) 讀取要求和四個(gè)數(shù)據(jù)回歸)的數(shù)據(jù)會(huì)分成同一組。當(dāng)讀/寫仲裁器216收到數(shù) 據(jù)時(shí),它可檢查寫入屏蔽緩沖器中的寫入屏蔽信息。同樣地,它也可以產(chǎn)生 一快取登錄項(xiàng)目于一回歸要求隊(duì)列中以通知誤失要求表204和208快取列已 經(jīng)備妥。當(dāng)此快取列于備妥時(shí),讀/寫仲裁器216通知高速緩存巻標(biāo)以防止另 外的誤失尋到測試結(jié)果。
回歸要求控制裝置214可包括64快取登錄項(xiàng)目的回歸要求隊(duì)列,其包括 9位的快取列地址。當(dāng)一個(gè)數(shù)據(jù)快取登錄項(xiàng)目從回歸數(shù)據(jù)緩沖器212讀取出 來,被并且送到快取隨機(jī)存取存儲(chǔ)器時(shí),會(huì)新增一個(gè)新的快取登錄項(xiàng)目到回 歸要求隊(duì)列以儲(chǔ)存新的快取列地址?;貧w要求控制裝置214從底部讀取第一
個(gè)隊(duì)列快取登錄項(xiàng)目,并且使用快取列地址于誤失要求表204和208中搜尋 一個(gè)匹配。每一周期處理一個(gè)匹配的快取登錄項(xiàng)目,并且把此要求送到讀/ 寫仲裁器216。此要求的優(yōu)先級可比回歸數(shù)據(jù)緩沖器212的寫入要求更低, 但比尋到測試單元198和200的要求更高,在讀/寫仲裁器216藉此要求允許 這些區(qū)塊對快取隨機(jī)存取存儲(chǔ)器的讀取之后,此快取登錄項(xiàng)目被釋放出來且 標(biāo)記成無效。
對于列地址的既定區(qū)塊而言,在誤失要求表204和208中所有的匹配快 取登錄項(xiàng)目都處理之后,回歸要求控制裝置214的回歸要求隊(duì)列內(nèi)的快取登 錄項(xiàng)目會(huì)移除掉。在這期間,將傳送信號(hào)到高速緩存巻標(biāo)表以解鎖高速緩存 巻標(biāo)中的此快取列。
紋理高速緩存184也可執(zhí)行連續(xù)檢查運(yùn)算。由于釆用了寫入能力,此快 取列可以是已使用的,如果分配新的誤失列的話。輸出仲裁器222將此已使 用的列移動(dòng)到寫入緩沖器(圖未顯示),并且等待存儲(chǔ)器接口讀取此列。舉例 來說,假設(shè)一快取列于某一快取列位置的物理地址為A,并且假設(shè)此快取列 已使用過,輸出仲裁器222可嘗試以新的誤失高速緩存地址取代此使用過的 快取列。讀取巨型格子已使用的數(shù)據(jù)、傳送這些數(shù)據(jù)至寫入緩沖器以及允許 存儲(chǔ)器接口讀取這些數(shù)據(jù)等操作的執(zhí)行可能要上花幾個(gè)周期。如果有關(guān)于地 址A的要求于其間傳送進(jìn)來,輸出仲裁器222可于已使用數(shù)據(jù)送達(dá)之前傳送 這些數(shù)據(jù)至存儲(chǔ)器接口 ,因?yàn)榛刈x的數(shù)據(jù)可能是不正確的。
要維持?jǐn)?shù)據(jù)的連續(xù)性,在每一個(gè)尋到測試裝置198和200中皆有計(jì)數(shù)器。 每次執(zhí)行已使用替換(dirty replacement)的操作時(shí)計(jì)數(shù)器增加。誤失讀取要 求和已使用快取列替換等操作皆假定(assume)此計(jì)數(shù)器的值。在執(zhí)行單元集 的存儲(chǔ)器接口單元的第二級高速緩存中,第二級高速緩存保留一個(gè)位置來儲(chǔ) 存計(jì)數(shù)器的值。第二級高速緩存中的復(fù)制可從寫入要求更新。紋理高速緩存 184可供那些讀取要求所使用,如果這些讀取要求的計(jì)數(shù)值與目前存儲(chǔ)器接 口中所保有的值相等的話。
執(zhí)行單元集的數(shù)據(jù)高速緩存以第二級高速緩存的形式供執(zhí)行單元使用。 它設(shè)計(jì)來容納多出的輸入、輸出和臨時(shí)數(shù)組緩存器的數(shù)據(jù),這些數(shù)據(jù)是屬于 頂點(diǎn)著色器、幾何著色器和像素著色器的數(shù)據(jù)。它亦容納頂點(diǎn)屬性緩沖器(圖 未顯示)多出的內(nèi)容。舉例來說,快取隨機(jī)存取存儲(chǔ)器的大小可以是32K字節(jié), 并且包括128個(gè)2K位的快取列,其中每一快取列有四個(gè)字符并且為全相聯(lián)的
形式。存儲(chǔ)器要求以字符的形式接收,每一字符為512位。此高速緩存架構(gòu) 是1RW 256X512位,以及每周期一個(gè)讀取或?qū)懭霚y試。讀/寫吞吐量可以是每 周期512位的讀/寫,并且回歸數(shù)據(jù)緩沖器可以是2X512位。
第二級數(shù)據(jù)高速緩存的功能描述包含使用兩個(gè)區(qū)塊的1RW 512X512位的 存儲(chǔ)器,并且總大小是32K字節(jié)。紋理高速緩存184可具有256個(gè)快取列, 每個(gè)快取列是2048位。此快取列可分成四個(gè)512位的字符,每一個(gè)字符在不 同的區(qū)塊上,而且以字符的位[l: O]來選擇操作,此字符是對齊虛擬存儲(chǔ)器地 址。替代機(jī)制可根據(jù)最近最少使用算法。
關(guān)于針對紋理高速緩存184的加載和儲(chǔ)存,執(zhí)行單元加載/儲(chǔ)存指令 LD4/8/16/64可加載128/512位的數(shù)據(jù),LD4/8/16/64分別與32/64/128/512 位的存儲(chǔ)器地址對齊。對于加載指令,回歸的32/64/128位的數(shù)據(jù)被復(fù)制成 512位,并且當(dāng)它被寫入執(zhí)行單元共同緩存器文件時(shí)被有效的像素-頂點(diǎn)屏蔽 和通道屏蔽所屏蔽。其它所有針對多出緩存器的讀取要求以及執(zhí)行單元的VAB 內(nèi)容系對齊至512位的存儲(chǔ)器地址。
本發(fā)明所述的統(tǒng)一高速緩存系統(tǒng)可以硬件、軟件、固件或其組合等方式 實(shí)現(xiàn)。在所揭露的實(shí)施例中,部分以軟件或固件實(shí)現(xiàn)的統(tǒng)一著色和執(zhí)行單元 可儲(chǔ)存于存儲(chǔ)器之中,并且可以適當(dāng)?shù)闹噶顖?zhí)行單元執(zhí)行。部分以硬件實(shí)現(xiàn) 的統(tǒng)一著色和執(zhí)行單元,可以任何具有邏輯門、專用集成電路(Application Specific Integrated Circuit, ASIC)、可編禾呈門陣列(Programmable Gate Array, PGA)、場可編程門陣列(Field Programmable Gate Array, FPGA)等 等的離散邏輯電路,或上述任何組合的離散邏輯電路所實(shí)現(xiàn)。。
圖9顯示用于處理繪圖數(shù)據(jù)的方法224的一實(shí)施例的流程圖。根據(jù)本發(fā) 明,如方塊圖226所示,方法224包括分析眾多著色器的活動(dòng)。著色器單元 可包括頂點(diǎn)著色器、幾何著色器和像素著色器等的任何組合。同樣地,著色 器單元也可形成于統(tǒng)一著色器中,或建構(gòu)于執(zhí)行單元中。方塊圖"6中所分 析的活動(dòng)可以是處理級別或處理數(shù)量,其可以是正在處理中的圖像或場景的 要素。
在方塊228中,著色單元的數(shù)據(jù)儲(chǔ)存需求是根據(jù)著色單元的個(gè)別活動(dòng)級 別來決定。關(guān)于數(shù)據(jù)的儲(chǔ)存,舉例來說,數(shù)據(jù)可儲(chǔ)存于高速緩存中,其可為 單一高速緩存元件,于每一階段的著色器處理提供儲(chǔ)功能。此高速緩存可供 應(yīng)數(shù)據(jù)給著色器單元,以及(或)接收著色器單元所處理的數(shù)據(jù)。此儲(chǔ)存需求
可以每一著色器單元的處理活動(dòng)的百分比表示。
在方塊230中,方法224還包括根據(jù)數(shù)據(jù)儲(chǔ)存需求動(dòng)態(tài)地分配部分的高 速緩存資源。此配置處理可包括分配到每一特定著色器單元的高速緩存的一 個(gè)部分或一個(gè)百分比。此高速緩存可以是用來提供數(shù)據(jù)給個(gè)別著色器單元的 高速緩存的部分,以及(或)用來接收個(gè)別著色器單元的數(shù)據(jù)的高速緩存的部 分。方塊230可另外包括將高速緩存分割成分離的可尋址部分并且依需求分 配,當(dāng)對象或場景改變的時(shí)候也可依需求改變或調(diào)整快取的配置。
在此所描述的統(tǒng)一高速緩存系統(tǒng)的功能可包括用來實(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ī)械或裝置所使用的任何媒體。舉例來說,此計(jì)算機(jī) 可讀取媒體可以是電子、磁力、光學(xué)、電磁、紅外線或半導(dǎo)體的系統(tǒng)、機(jī)械、 裝置或傳播媒體。
本發(fā)明雖以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明的范圍,任 何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動(dòng)與 潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求范圍所界定者為準(zhǔn)。
權(quán)利要求
1. 一種繪圖處理系統(tǒng),包括處理管線,具有多個(gè)繪圖著色器階段,上述處理管線的每一繪圖著色階段用以執(zhí)行一或多個(gè)著色運(yùn)算;以及統(tǒng)一高速緩存系統(tǒng),耦接至上述處理管線,上述統(tǒng)一高速緩存系統(tǒng)包括多個(gè)儲(chǔ)存單元,每一儲(chǔ)存單元用以儲(chǔ)存關(guān)于上述處理管線的上述多個(gè)繪圖著色器階段的數(shù)據(jù),其中上述統(tǒng)一高速緩存系統(tǒng)包括控制裝置,用以管理與上述多個(gè)繪圖著色器階段的要求以及與上述高速緩存系統(tǒng)的上述儲(chǔ)存單元的可用性有關(guān)的上述數(shù)據(jù)的分配。
2. 根據(jù)權(quán)利要求1所述的繪圖處理系統(tǒng),其中上述控制裝置根據(jù)上述多 個(gè)繪圖著色器階段的活動(dòng)動(dòng)態(tài)地調(diào)整上述數(shù)據(jù)的分配。
3. 根據(jù)權(quán)利要求1所述的繪圖處理系統(tǒng),其中上述處理管線是嵌入于執(zhí) 行單元中。
4. 根據(jù)權(quán)利要求3所述的繪圖處理系統(tǒng),其中上述執(zhí)行單元包括頂點(diǎn)著 色器階段、幾何著色器階段和像素著色器階段。
5. 根據(jù)權(quán)利要求1所述的繪圖處理系統(tǒng),其中上述統(tǒng)一高速緩存系統(tǒng)還 包括尋到測試裝置,用以對接收到的頂點(diǎn)數(shù)據(jù)執(zhí)行尋到/誤失測試。
6. 根據(jù)權(quán)利要求5所述的繪圖處理系統(tǒng),其中上述尋到測試裝置包括頂點(diǎn)著色器識(shí)別表。
7. 根據(jù)權(quán)利要求6所述的繪圖處理系統(tǒng),其中上述頂點(diǎn)著色器識(shí)別表用 以儲(chǔ)存多達(dá)256個(gè)頂點(diǎn)的相關(guān)信息。
8. —種高速緩存系統(tǒng),適用于繪圖處理系統(tǒng),包括 數(shù)據(jù)儲(chǔ)存裝置,用來儲(chǔ)存被或?qū)⒈灰换蚨鄠€(gè)著色器單元所處理的繪圖數(shù)據(jù);以及儲(chǔ)存裝置控制器,耦接到上述數(shù)據(jù)儲(chǔ)存裝置,上述儲(chǔ)存裝置控制器用以 動(dòng)態(tài)地控制上述繪圖數(shù)據(jù)于上述數(shù)據(jù)儲(chǔ)存裝置內(nèi)的儲(chǔ)存配置。
9. 根據(jù)權(quán)利要求8所述的高速緩存系統(tǒng),其中上述儲(chǔ)存裝置控制器包括頂點(diǎn)著色器識(shí)別表。
10. 根據(jù)權(quán)利要求9所述的高速緩存系統(tǒng),其中上述儲(chǔ)存裝置控制器還包括幾何著色器識(shí)別表。
11. 根據(jù)權(quán)利要求IO所述的高速緩存系統(tǒng),其中上述儲(chǔ)存裝置控制器包 括第 一級頂點(diǎn)高速緩存,上述第 一級頂點(diǎn)高速緩存是耦接到上述頂點(diǎn)著色器 識(shí)別表和上述幾何著色器識(shí)別表。
12. 根據(jù)權(quán)利要求8所述的高速緩存系統(tǒng),其中上述一或多個(gè)著色器單 元是嵌入于統(tǒng)一著色器單元內(nèi)。
13. 根據(jù)權(quán)利要求8所述的高速緩存系統(tǒng),其中上述儲(chǔ)存裝置控制器包 括第二級紋理高速緩存,用來執(zhí)行尋到/誤失測試。
14. 根據(jù)權(quán)利要求13所述的高速緩存系統(tǒng),其中上述第二級紋理高速緩 存于二或多個(gè)快取列集合內(nèi)大致同時(shí)地執(zhí)行平行尋到/誤失測試。
15. —種數(shù)據(jù)處理方法,適用于處理繪圖處理裝置內(nèi)的數(shù)據(jù),包括 分析多個(gè)繪圖處理著色器的活動(dòng)級別;根據(jù)每一繪圖處理著色器所對應(yīng)的上述活動(dòng)級別決定上述繪圖處理著色 器的數(shù)據(jù)儲(chǔ)存需求;以及根據(jù)每一繪圖處理著色器的數(shù)據(jù)儲(chǔ)存需求分配部分的存儲(chǔ)裝置。
16. 根據(jù)權(quán)利要求15所述的數(shù)據(jù)處理方法,其中上述活動(dòng)級別根據(jù)目前 正 ^皮處理的目前圖像或場景對應(yīng)至處理需求級別。
17. 根據(jù)權(quán)利要求15所述的數(shù)據(jù)處理方法,還包括 提供具有既定數(shù)目的多個(gè)儲(chǔ)存單位的上述存儲(chǔ)裝置,上述儲(chǔ)存單位具有既定大小,其中上述存儲(chǔ)裝置的分配還包括分配上述儲(chǔ)存單位的第一數(shù)目給 第一繪圖處理著色器,并且分配上述儲(chǔ)存單位的第二數(shù)目給第二繪圖處理著 色器。
18. 根據(jù)權(quán)利要求15所述的數(shù)據(jù)處理方法,其中上述存儲(chǔ)器裝置是第一 級高速緩存,用以提供數(shù)據(jù)給每一繪圖處理著色器,以及從每一繪圖處理著 色器接收數(shù)據(jù)。
19. 根據(jù)權(quán)利要求15所述的數(shù)據(jù)處理方法,其中上述活動(dòng)級別的分析還 包括分析每一繪圖處理著色器的活動(dòng)級別對于上述繪圖處理著色器的總活動(dòng) 級別的百分比。
20. 根據(jù)權(quán)利要求15所述的數(shù)據(jù)處理方法,還包括執(zhí)行尋到/誤失測試。
全文摘要
本發(fā)明提供一個(gè)繪圖處理單元用來處理關(guān)于三維對象或場景的數(shù)據(jù),并且將三維的數(shù)據(jù)成像于二維的顯示屏幕之上。本發(fā)明一實(shí)施例是使用于繪圖處理單元中的統(tǒng)一高速緩存系統(tǒng),包括了數(shù)據(jù)儲(chǔ)存裝置和儲(chǔ)存裝置控制器。儲(chǔ)存裝置用來儲(chǔ)存一或多個(gè)著色器單元所處理(或要處理)的繪圖數(shù)據(jù)。儲(chǔ)存裝置控制器連接到數(shù)據(jù)儲(chǔ)存裝置。儲(chǔ)存裝置控制器于數(shù)據(jù)儲(chǔ)存裝置內(nèi)動(dòng)態(tài)地控制繪圖數(shù)據(jù)的儲(chǔ)存配置。
文檔編號(hào)G06T15/00GK101388109SQ20081017041
公開日2009年3月18日 申請日期2008年11月3日 優(yōu)先權(quán)日2008年1月25日
發(fā)明者提莫·佩塔西, 陽 焦 申請人:威盛電子股份有限公司