欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

可編程圖形處理單元計(jì)算核心的常量緩沖的方法和系統(tǒng)的制作方法

文檔序號(hào):6462210閱讀:139來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):可編程圖形處理單元計(jì)算核心的常量緩沖的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明是關(guān)于數(shù)據(jù)處理系統(tǒng)(data processing systerns),且特別是關(guān)于 可編程圖形處玉里(programmable graphics process ing)的方法與系統(tǒng)。'背景技術(shù)計(jì)算機(jī)圖形(computer graphics)是利用計(jì)算機(jī)技術(shù)生成畫(huà)面、圖像或者 其它繪畫(huà)的、圖示信息的工藝和科學(xué)。畫(huà)面或圖像的產(chǎn)生一般被稱(chēng)為渲染 (rendering)。通常而言,在三維(3D)計(jì)算機(jī)圖形中, 一個(gè)場(chǎng)景(scene)中代 表物體表面的圖元(geometry)會(huì)被轉(zhuǎn)化為若干像素(圖像的基本元素),儲(chǔ)存 于一幀緩沖器,然后被顯示在顯示裝置中。一些不同的坐標(biāo)空間會(huì)被用于將一個(gè)場(chǎng)景中的物體轉(zhuǎn)換成可以顯示在顯 示屏上的圖像。例如,物體開(kāi)始處于一個(gè)沒(méi)有進(jìn)行任何轉(zhuǎn)換的模型空間。從 該才莫型空間,該物體的頂點(diǎn)(vertices)和標(biāo)準(zhǔn)量(normal s)可以通過(guò)j吏用 一個(gè) 或者多個(gè)模型轉(zhuǎn)換器(model transform)來(lái)定位或定向以轉(zhuǎn)換到世界空間或 世界坐標(biāo)。進(jìn)而,對(duì)具有世界坐標(biāo)的模型做視野轉(zhuǎn)換,來(lái)定義該模型相對(duì)于 相機(jī)的位置和方向。在該結(jié)果空間中,經(jīng)常是指視覺(jué)空間或相機(jī)空間,以便 利各種操作,比如映射和剪切功能,以及進(jìn)一步的轉(zhuǎn)換。這些來(lái)自于視覺(jué)空間的進(jìn)一步轉(zhuǎn)換可以包含可編程著色程序的使用,比 如頂點(diǎn)著色、像素著色,和圖元著色,這些轉(zhuǎn)換可以在平行、多線程執(zhí)行單 元池中被執(zhí)行,以形成圖形處理單元(GPU)的計(jì)算核心。著色器通常是指應(yīng)用 于三維計(jì)算機(jī)圖形中的程序,該著色器用于決定一個(gè)物體或者圖像的最終表 面性質(zhì)(surface properties)。每個(gè)物體或者一組物體可能具有與表面外觀 相關(guān)的特定視覺(jué)屬性(比如,材質(zhì)、反射系數(shù)、形狀、紋理等),以及與之相 關(guān)的操作;這些全部可稱(chēng)為該個(gè)物體或者一組物體的渲染內(nèi)文。當(dāng)對(duì)一個(gè)給 定的渲染內(nèi)文的一個(gè)物體或者一組物體進(jìn)行渲染時(shí),著色器需利用常量數(shù)據(jù) 池(例如,存儲(chǔ)于常量緩沖器中的特定內(nèi)文常量)。舉例而言,頂點(diǎn)著色器通常被應(yīng)用于每個(gè)頂點(diǎn),運(yùn)行在可編程的頂點(diǎn)處 理器。該頂點(diǎn)著色器可以定義一個(gè)方法去計(jì)算向量空間的轉(zhuǎn)換,并執(zhí)行其它
計(jì)算。在計(jì)算向量空間的轉(zhuǎn)換時(shí),會(huì)用到各種常量。比如,頂點(diǎn)(x, y, z, w) 可通過(guò)使用一個(gè)常量(例如,COO, C01, C02, C03,…C33)矩陣(例如,4 x 4 矩陣)被轉(zhuǎn)換成新的頂點(diǎn)(x, , y, , z, , w,)。這些常量通常存儲(chǔ)在相應(yīng)于 一個(gè)別執(zhí)行單元的一個(gè)常量緩沖器中,該常量與一個(gè)或者更多三維物體的渲 染內(nèi)文關(guān)聯(lián)。
現(xiàn)有系統(tǒng)目前存在一個(gè)新的挑戰(zhàn),由于為了渲染定義在適當(dāng)?shù)匿秩緝?nèi)文 中帶有不同視覺(jué)屬性的物體隊(duì)列,該常量緩沖器的至少一部分需要頻繁的更 新。通常而言,常量的更新需要"沖洗"整個(gè)包含與"舊"內(nèi)文關(guān)聯(lián)的數(shù)據(jù) 的常量緩沖器,然后載入與新內(nèi)文關(guān)聯(lián)的"新"常量。
而且,相應(yīng)于該常量緩沖器的該執(zhí)行單元,可能運(yùn)轉(zhuǎn)多線程,可能會(huì)在 沖洗該常量緩沖器的時(shí)候被延遲。即,該執(zhí)行單元可能會(huì)在開(kāi)始利用一組新 常量之前沖洗該多線程(例如,允許利用先前的常量完成處理)。因此,在運(yùn) 行于多線程計(jì)算核心的著色器中做這種渲染內(nèi)文轉(zhuǎn)換(例如,從第 一 內(nèi)文至第 二內(nèi)文),可能會(huì)引起顯著的表現(xiàn)力減低。

發(fā)明內(nèi)容
本發(fā)明揭露了 一種用于可編程圖形處理單元計(jì)算核心的常量緩沖的方 法,其特征在于包含以下步驟響應(yīng)第一著色器操作,在常量緩沖器中接收 第一常量組,該第一常量組相應(yīng)于第一渲染內(nèi)文;響應(yīng)第二著色器操作,在 該常量緩沖器中接收第二常量組,該第二常量組相應(yīng)于第二渲染內(nèi)文,而且 該第一常量組未被沖刷;更新內(nèi)文地址轉(zhuǎn)換表格,該內(nèi)文地址轉(zhuǎn)換表格將該 第一著色器操作或者該第二著色器操作的參考值匹配至該常量緩沖器的物理 地址,該第 一著色器操作或者該第二著色器操作用來(lái)執(zhí)行該第 一常量組或該 第二常量組中的常量。
本發(fā)明還提供 一 種用于可編程圖形處理單元計(jì)算核心的常量緩沖的系 統(tǒng),其特征在于包含執(zhí)行單元池控制邏輯單元;常量緩沖器;該常量緩沖 器和該執(zhí)行單元池控制邏輯單元可以響應(yīng)第 一著色器操作,接收相應(yīng)于第一 渲染內(nèi)文的第一常量組,和響應(yīng)第二著色器操作,接收相應(yīng)于第二渲染內(nèi)文 的第二常量組,而且該第一常量組未被沖刷;以及常量緩沖控制器和內(nèi)文地址轉(zhuǎn)換表格,其中該常量緩沖控制器使用該內(nèi)文地址轉(zhuǎn)換表格將應(yīng)用程序界 面空間中的常量的參考值,匹配至該常量緩沖器中的物理地址,該參考值是 由 一個(gè)或者多個(gè)該第 一著色器操作和該第二著色器操作所提供的。對(duì)于本領(lǐng)域技術(shù)人員而言,其它未包含在本發(fā)明下迷所揭露的內(nèi)容與圖 示中的系統(tǒng)、方法、特征或者優(yōu)勢(shì)為顯而易見(jiàn)的,因此凡其它未脫離本發(fā)明 所揭示的精神下所完成的等效改變或修飾,均應(yīng)包含在本發(fā)明的權(quán)利要求范 圍內(nèi)。


本發(fā)明的一些實(shí)施例會(huì)詳細(xì)描述如下。然而,除了詳細(xì)描述外,本發(fā)明 還可以廣泛地在其它的實(shí)施例中施行,且本發(fā)明的范圍不受限定,其以權(quán)利 要求的范圍為準(zhǔn)。再者,在本說(shuō)明書(shū)中,各元件的不同部分并沒(méi)有依照尺寸 繪圖。某些尺度與其它相關(guān)尺度相比已經(jīng)被夸張,以提供更清楚的描述宜對(duì) 發(fā)明的理解。圖1繪示了一運(yùn)行常量緩沖系統(tǒng)和方法的圖形處理器系統(tǒng)的實(shí)施例的 模塊圖。圖2繪示了一常量緩沖系統(tǒng)的處理環(huán)境的實(shí)施例的模塊圖。圖3繪示了圖2所顯示的處理環(huán)境的邏輯圖形管線的一部分的模塊圖。圖4繪示了圖2所顯示的處理環(huán)境的部分組成的模塊圖。圖5繪示了一程序的實(shí)施例,該程序揭示了圖形處理單元編譯器的方法,用于從應(yīng)用程序界面(API)空間映射常量至圖形處理單元(GPU)存儲(chǔ)器空間和 i內(nèi)部(芯片上)常量緩沖器。圖6A-6B繪示了一常量緩沖系統(tǒng)實(shí)施例的部分組成的模塊圖。圖7繪示了一常量緩沖方法的實(shí)施例的流程圖。圖8進(jìn)一步繪示了如圖6B所示的常量?jī)?nèi)文表格模塊圖。圖9A-9B繪示了如圖6A-6B所示的常量緩沖系統(tǒng)所利用的各種表格的模塊圖。
具體實(shí)施方式
本發(fā)明揭示應(yīng)用于圖形處理單元中多線程、平行計(jì)算核心的每一個(gè)執(zhí)行 單元的常量緩沖系統(tǒng)和方法。該常量緩沖系統(tǒng)能夠在著色程序線程利用目前或現(xiàn)存于該緩沖器的內(nèi)文數(shù)據(jù)渲染在先物體的同時(shí),更新常量緩沖器為與新 的被渲染物體相關(guān)的新內(nèi)文數(shù)據(jù)。該常量緩沖器能夠在不因重新下載常量而 延遲計(jì)算核心執(zhí)行單元的情況下進(jìn)行更新。即,相較于現(xiàn)有系統(tǒng)隨著每個(gè)渲 染內(nèi)文的改變而沖洗常量緩沖器(從該緩沖器中完全沖洗掉該"舊"的常量, 由此可以有空間去下載新的常量),該常量系統(tǒng)能夠使用來(lái)自于超過(guò)一個(gè)渲染 內(nèi)文的相同的或者不同的著色器同步進(jìn)行常量處理。
因此不同于傳統(tǒng)系統(tǒng),在本發(fā)明實(shí)施例中常量的改變不會(huì)給速度和效率 施加負(fù)擔(dān)。尤其,如下描述的常量緩沖系統(tǒng)在更新或者改變常量的同時(shí),也 能夠執(zhí)行在先的常量。即,執(zhí)行不同內(nèi)文常量的多個(gè)著色程序是在同步處理 通道中進(jìn)行, 一個(gè)通道相應(yīng)于在先內(nèi)文常量而至少一個(gè)其它通道相應(yīng)于新的 內(nèi)文常量。通過(guò)常量緩沖系統(tǒng)來(lái)完成常量的更新或者替換可以使著色執(zhí)行模 塊流暢的進(jìn)行常量替換程序,以提升計(jì)算的效率。
渲.染內(nèi)文通常是指一個(gè)或多個(gè)物體的特定視覺(jué)屬性,例如,表面的外觀 (材質(zhì)、反射系數(shù)、外型、紋理等等),或者與之相關(guān)的操作。渲染內(nèi)文的處 理包括利用一組常量的著色器著色操作。渲染內(nèi)文的改變可能牽涉執(zhí)行另一 組常量的同一著色器,或者執(zhí)行另一組常量的其它著色器。這些常量可以被 各種著色程序用于執(zhí)行計(jì)算,例如,轉(zhuǎn)換、加亮或者其它計(jì)算。每個(gè)常量由 一相應(yīng)的渲染內(nèi)文識(shí)別子來(lái)被著色器識(shí)別,使得常量緩沖器能夠維持多個(gè)內(nèi) 文的常量,并且被運(yùn)行于各個(gè)執(zhí)行單元的著色器程序所利用。
在一個(gè)實(shí)施例中,常量緩沖系統(tǒng)包含常量緩沖器、常量緩沖控制器、和 內(nèi)文地址轉(zhuǎn)換表格。如下的進(jìn)一步解釋中,常量緩沖器包含相應(yīng)于一個(gè)或多 個(gè)渲染內(nèi)文的常量的預(yù)定大小的數(shù)據(jù)槽,包含現(xiàn)有常量和更新后或新的常量。 對(duì)使用內(nèi)文地址轉(zhuǎn)換表格中的每一個(gè)渲染內(nèi)文,該常量緩沖器控制器維持這 些常量的邏輯索引。即,常量緩沖控制器比對(duì)給定渲染內(nèi)文的常量的著色器 參考值(例如內(nèi)文識(shí)別子)與常量緩沖器的物理地址。如此構(gòu)造避免了覆寫(xiě)地 址空間的需要或者當(dāng)常量緩沖器中存在多個(gè)內(nèi)文時(shí)執(zhí)行的延遲。
本發(fā)明實(shí)施例的另外的特征還包含,在把與新的被渲染物體相關(guān)的內(nèi)文 數(shù)據(jù)更新至著色器常量緩沖器的同時(shí),在該常量緩沖器中的現(xiàn)存內(nèi)文數(shù)據(jù)可 用于渲染在先物體的著色程序線程,而不必為常量的重新載入而延遲計(jì)算核
心執(zhí)行單元;映射與來(lái)自不同應(yīng)用程序界面(API)的不同內(nèi)文相關(guān)的常量至圖 形處理單元(GPU)存儲(chǔ)器和內(nèi)部的(在芯片上的)常量緩沖器;管理第一內(nèi)文對(duì)該常量緩沖器的常量存取;在該內(nèi)部常量緩沖器中有足夠的空間(可用的常量模塊)時(shí),管理第二內(nèi)文對(duì)該常量緩沖器的常量存?。槐O(jiān)控常量的使用狀態(tài)并 生成一個(gè)可分配給新的即將來(lái)到的內(nèi)文常量的可用常量緩沖器區(qū)塊的列表; 以及常量緩沖器槽中新的常量的分配和對(duì)內(nèi)文地址轉(zhuǎn)換表格的更新,該內(nèi)文 地址轉(zhuǎn)換表格提供從位于GPU的計(jì)算核心的一個(gè)或者多個(gè)著色器程序中使用 常量的通路。以下將簡(jiǎn)單描述一實(shí)施例的圖形計(jì)算器系統(tǒng)的環(huán)境和相應(yīng)的組件,本領(lǐng) 域技術(shù)人員應(yīng)可以知道所揭露的系統(tǒng)和方法也可以擴(kuò)展到其它處理環(huán)境中。圖1繪示了運(yùn)行常量緩沖系統(tǒng)200和方法的圖形處理器系統(tǒng)100的實(shí)施 例的模塊圖。如圖所示,常量緩沖器系統(tǒng)200被集成于計(jì)算核心中的每一個(gè) 執(zhí)行單元。在一些實(shí)施例中,圖形處理器系統(tǒng)100可以為計(jì)算機(jī)系統(tǒng)。圖形 處理器系統(tǒng)100可以包含顯示裝置102,其被顯示介面單元(以下簡(jiǎn)稱(chēng)DIU) 104 所驅(qū)動(dòng),本地存儲(chǔ)器106(例如,可以包含顯示緩沖器、幀緩沖器、紋理緩沖 器、命令緩沖器等等)。本地存儲(chǔ)器106也可以稱(chēng)為幀緩沖器或者存儲(chǔ)單元。 本地存儲(chǔ)器106經(jīng)過(guò)一個(gè)或者多個(gè)存儲(chǔ)界面單元(以下簡(jiǎn)稱(chēng)MIU) 110耦接至圖 形處理單元(以下簡(jiǎn)稱(chēng)GPU) 114, MIUllO、 GPU114以及DIU104是耦接至外圍 裝置互連高速(per ipheral component interconnect express,以下簡(jiǎn)稱(chēng)PCIE) 總線協(xié)議兼容的總線接口單元(bus interface unit,以下簡(jiǎn)稱(chēng)BIU)118。在 一個(gè)實(shí)施例中,BIU118可以應(yīng)用圖形地址對(duì)照表(Graphics Address Remapping Table, GART),盡管也可以應(yīng)用其它存儲(chǔ)器映射機(jī)制。GPU114包 括如下所述的常量緩沖系統(tǒng)200。在一些實(shí)施例中,盡管常量緩沖系統(tǒng)200 顯示為GPU114的一個(gè)組件,常量緩沖系統(tǒng)200包含圖形處理器系統(tǒng)100的一個(gè)或者多個(gè)額外的組件。BIU118耦接至芯片組122(例如,北橋芯片組)或者開(kāi)關(guān)。芯片組122包 含界面電子元器件以加強(qiáng)來(lái)自中心處理單元(以下簡(jiǎn)稱(chēng)CPU) 126 (也指這里的 主處理器)的信號(hào),以及從這些信號(hào)中分離出來(lái)自于系統(tǒng)存儲(chǔ)器124的信號(hào)和 來(lái)自于輸入/輸出裝置的信號(hào)(此處未繪出)。盡管PCIE總線協(xié)議已經(jīng)描述了 , 在CPU126和GPL'114之間的其它連接方式或者交換方式也會(huì)被應(yīng)用于一些實(shí) 施例中(例如,PCI、外圍高速總線)。系統(tǒng)存儲(chǔ)器124也包含驅(qū)動(dòng)軟件128, 其利用CPU126與GPU114的緩存器交流指令組或者命令,以及應(yīng)用程序界面 空間130,在此常量是被存儲(chǔ)器映射或者常量緩沖器映射,該常量由在GPU114上的編譯器115所映射,以下會(huì)做進(jìn)一步的說(shuō)明。額外的圖形處理單元可以被用于一些實(shí)施例中,例如通過(guò)芯片組122耦 接至如圖l所示的組件上,其中芯片組122是通過(guò)PCIE總線協(xié)議。在某個(gè)實(shí) 施例中,圖形處理器系統(tǒng)100可以包含圖1中所示的所有元件,或者在一些 實(shí)施例中包含較圖1而言更少的或者不同的元件,甚且,在一些實(shí)施例中, 額外的組件可以被利用,例如耦接至芯片組122的南橋芯片組。請(qǐng)參考圖2,其描繪了一實(shí)施例的常量緩沖系統(tǒng)200的模塊圖。尤其, 如圖所示的GPU114包含了圖形處理器202。圖形處理器202包含編譯器115、 多重執(zhí)行單元(multiple execution unit,EU)、計(jì)算核心204 (也稱(chēng)為軟件可 編程核心處理單元)。在一個(gè)實(shí)施例中,計(jì)算核心2(H包含分布于一個(gè)或者多 個(gè)執(zhí)行單元的常量緩沖系統(tǒng)200 。圖形處理器202也包含執(zhí)行單元池 (execution unit pool, EUP)和頂點(diǎn)/碼流緩沖單元206 (也可稱(chēng)為EU池控制 單元206)和具有固定功能邏輯的圖形管線208(例如,包含三角形設(shè)立單元 (triangle set-up unit, TSU)、跨距—像磚生成器(span-tile generator, STG)) 的圖形管線,以下詳述。計(jì)算核心204包含多重執(zhí)行單元池,以滿足與各種著 色器程序相關(guān)的著色器任務(wù)的計(jì)算要求,包含頂點(diǎn)著色器、幾何著色器、或 者像素著色器,為該圖形管線208處理數(shù)據(jù)。在一個(gè)實(shí)施例中,通過(guò)與計(jì)算 核心204中的一個(gè)或者多個(gè)著色器合作可以實(shí)現(xiàn)常量緩沖系統(tǒng)200的功能。 關(guān)于實(shí)施例中圖形處理器202的通常描述已經(jīng)完成,下面將描述該常量緩沖 系統(tǒng)200的某些特別的實(shí)施例。常量緩沖系統(tǒng)200可以被用于硬件、軟件、固件或者其以上的一個(gè)結(jié)合。 在一個(gè)實(shí)施例中,常量緩沖系統(tǒng)200是在硬件加固件系統(tǒng)中執(zhí)行的,也包括 在此技術(shù)領(lǐng)域中所眾所周知的技術(shù)及以下所述技術(shù)的任意結(jié)合 一具有邏輯 門(mén)的離散邏輯電路,可以依照數(shù)據(jù)信號(hào)來(lái)完成邏輯功能, 一個(gè)具有適當(dāng)集成 的邏輯門(mén)的特定應(yīng)用集成電路(ASIC), —可編程邏輯門(mén)陣列(PGA), —場(chǎng)域可 編程邏輯門(mén)陣列(FPGA)等等。請(qǐng)參考圖3,其描述了邏輯圖形管線208的實(shí)施例的模塊圖。在一些實(shí) 施例中可以包含在圖3中額外的或者較少的組件。例如,以下描述的每個(gè)模 型可以包含它們自己內(nèi)部的一個(gè)或者多個(gè)寄存器(沒(méi)有顯示在圖3),由與該 寄存器共同定位的一模型或者與其它不同的模型共享。除此之外,各種緩沖 (例如,深度高速緩沖存儲(chǔ)器,又稱(chēng)Z-高速緩沖存儲(chǔ)器;顏色高速緩沖存儲(chǔ)器,又稱(chēng)D-高速緩沖存儲(chǔ)器;紋理高速緩沖存儲(chǔ)器,又稱(chēng)T-高速緩沖存儲(chǔ)器 等等)可以根據(jù)熟知的管線工藝被實(shí)現(xiàn)。尤其,在圖3中顯示的組件包含一個(gè) 圖形管線208的基本組件,圖形管線208整體或者部分與常量緩沖系統(tǒng)200 合作。第一組件是輸入合成器302,其利用索引緩沖器,主要抓取來(lái)自存儲(chǔ) 器300的所有的頂點(diǎn)數(shù)據(jù),并且集合圖元以在計(jì)算核心204中做進(jìn)一步的處 理。存儲(chǔ)器300在其它的子存儲(chǔ)器之外還包含本地存儲(chǔ)器106,其它的子存 儲(chǔ)器可以是例如EU池控制單元206的碼流和頂點(diǎn)高速緩沖存儲(chǔ)器(后者一般 被用做為了合成幾何圖元的頂點(diǎn)數(shù)據(jù)的來(lái)源)。該圖元一旦被合成,就會(huì)被傳 送至頂點(diǎn)著色器304。頂點(diǎn)著色器304通過(guò)執(zhí)行例如轉(zhuǎn)換、表面處理(skinning) 和亮度(lighting)操作來(lái)處理頂點(diǎn)數(shù)據(jù)。用來(lái)執(zhí)行上述一個(gè)或多個(gè)計(jì)算的常 量由常量緩沖系統(tǒng)200中的一個(gè)常量緩沖器所提供,由編譯器115在編輯期 間生成的特殊指令執(zhí)行預(yù)載。這之后,頂點(diǎn)著色器304傳送數(shù)據(jù)至幾何著色 器306中。幾何著色器306接收一個(gè)完整圖元的頂點(diǎn)作為輸入,并輸出形成 一個(gè)單獨(dú)的拓樸的多個(gè)頂點(diǎn),比如一個(gè)三角形的條帶、 一個(gè)線性條帶或者一 個(gè)點(diǎn)列表等等。幾何著色器306也該常量緩沖系統(tǒng)200的常量緩沖器中接收 常量,并可以被用于進(jìn)一步的執(zhí)行各種演算法,比如鑲嵌圖形、陰影生成等。 幾何著色器306然后把信息輸出至光柵器(rasterizer) 308,其用于進(jìn)行剪 裁、圖元建立和決定何時(shí)及如何激發(fā)像素著色器310。像素著色器310被每 一個(gè)被該圖元覆蓋的像素所激發(fā)。像素著色器310也接收來(lái)自于常量緩沖系 統(tǒng)200中常量緩沖器的常量,并執(zhí)行插補(bǔ)和其它操作以共同確定將要輸出至 存儲(chǔ)器300中的回復(fù)單元的像素的顏色。如圖3所示的各種組件的機(jī)能操作 通過(guò) 一 系列的狀態(tài)寄存器進(jìn)行組織或控制,該狀態(tài)寄存器用于設(shè)定固定圖形 硬件單元和計(jì)算核心204的功能,如下所述。在描述完畢計(jì)算核心204中為執(zhí)行單元生成任務(wù)的組件之后,請(qǐng)參考圖 4。圖4繪示了圖形處理器202的實(shí)施例的模塊圖。圖4中并未顯示用于圖形 處理的所有組件,但對(duì)于一個(gè)本領(lǐng)域技術(shù)人員來(lái)說(shuō)是足夠充分的去理解與圖 形處理器相關(guān)的功能和工藝。在該可編程化處理環(huán)境的中心是計(jì)算核心204, 其處理各種指令,當(dāng)然也包含常量緩沖系統(tǒng)200。各種類(lèi)型的著色器程序可 以被執(zhí)行或者映射至計(jì)算核心204,包括頂點(diǎn)著色器304,幾何著色器306以 及像素著色器310。計(jì)算核心204,為多重處理器,能夠在單一時(shí)鐘周期內(nèi)處 理多種指令。如圖4所示,與圖形處理器202相關(guān)的組件包含計(jì)算核心204 、紋理過(guò) 濾單元402、像素打包器404、命令碼流處理器406、回復(fù)單元408、和紋理 地址生成器410,還有EU池控制單元206, EU池控制單元206中也包含頂點(diǎn) 高速緩沖存儲(chǔ)器和碼流高速緩沖存儲(chǔ)器。如圖4所示,紋理過(guò)濾單元402提 供紋理元素?cái)?shù)據(jù)至計(jì)算核心204 (輸入A和B)。在一些實(shí)施例中,紋理元素?cái)?shù) 據(jù)是512位的數(shù)據(jù)。像素打包器404提供像素著色器輸入至計(jì)算核心204 (輸 入C和D),也以512位的數(shù)據(jù)格式。另外,像素打包器404向EU池控制單 元2 06要求像素著色任務(wù),EU池控制單元206提供像素打包器404的指定的 EU編號(hào)和線程編號(hào)。因?yàn)橄袼卮虬骱图y理過(guò)濾單元均為本領(lǐng)域已知技術(shù), 這里略過(guò)不做進(jìn)一步討論。同時(shí)圖4顯示了像素和紋理元素信息包,該些數(shù) 據(jù)包都是512位的數(shù)據(jù)信息包,在一些實(shí)施例中,根據(jù)圖形處理器202的表 現(xiàn)屬性,信息包的尺寸可以變化。命令碼流處理器406提供三角形頂點(diǎn)索引至EU池控制單元206,在圖4 所示的實(shí)施例中,該索引是256位的。EU池控制單元206從碼流高速緩沖存 儲(chǔ)器中合成頂點(diǎn)著色器輸入并發(fā)送數(shù)據(jù)至計(jì)算核心204 (輸入E)。 EU池控制 單元206也合成幾何著色器輸入和提供這些輸入信息至計(jì)算核心204 (輸入 F)。 一般來(lái)說(shuō),EU池控制單元206控制計(jì)算核心204對(duì)應(yīng)的輸入流和輸出流。在處理過(guò)程中,計(jì)算核心204提供像素著色器輸出(輸出Jl和J2)至回 復(fù)單元408。像素著色器輸出包括顏色信息,例如紅/綠/藍(lán)/alpha(RGBA)信 息,其為本領(lǐng)域已知技術(shù)。該像素著色器輸出被提供為兩個(gè)512位的數(shù)據(jù)碼流。其它寬度位也可以在一些實(shí)施例中應(yīng)用。與像素著色器輸出的方式類(lèi)似,計(jì)算核心2 04輸出包含UVRQ信息的紋理 坐標(biāo)(輸出Kl和K2)至紋理地址生成器410。紋理地址生成器410發(fā)出紋理描 述符請(qǐng)求C^ Re.q)至計(jì)算核心204 (輸入為X)的L2高速緩沖存儲(chǔ)器422,該 L2高速緩沖存儲(chǔ)器422輸出(輸出W)紋理描述符數(shù)據(jù)(T# data)至紋理地址生 成器410。 L2高速緩沖存儲(chǔ)器422和EU池控制單元206也互相轉(zhuǎn)移512位的 頂點(diǎn)高速緩沖存儲(chǔ)器溢出數(shù)據(jù)。兩個(gè)512位頂點(diǎn)高速緩沖存儲(chǔ)器的書(shū)寫(xiě)均是 計(jì)算核心204的輸出(輸出Ml和M2)至EU池控制單元206做進(jìn)一步的處理。 因?yàn)楦鞣N關(guān)于紋理地址生成器410的例子和回復(fù)單元408均為本領(lǐng)域中的已 知技術(shù),所以這里不做贅述。同時(shí)如同所示的UVRQ和RGBA信息均為512位, 但在一些實(shí)施例中這個(gè)參數(shù)也是可以變化的。在圖4所示的實(shí)施例中,總線是被分為兩個(gè)512位的通道,每個(gè)通道都有128位的RGBA顏色和128位對(duì)應(yīng) 這四個(gè)像素的UVRQ的紋理坐標(biāo)。圖形管線208包含固定功能的圖形處理。為了響應(yīng)來(lái)自于驅(qū)動(dòng)軟件128 的命令,例如繪示三角形,頂點(diǎn)信息會(huì)被傳送至計(jì)算核心204的頂點(diǎn)著色器 304進(jìn)行頂點(diǎn)轉(zhuǎn)換。尤其,把物體從物體空間轉(zhuǎn)換至工作空間或者屏幕空間 成為若干三角形。這些三角形被從計(jì)算核心204傳送至在圖形管線208中的 三角形建立單元(以下筒稱(chēng)TSU)412,該圖形管線208用于合成圖元,也執(zhí)行 已知的任務(wù),例如邊界框生成、揀選、邊界功能生成等其它已知功能。TSU412 傳送數(shù)據(jù)至圖形管線208的跨距(span)和像磚(tile)生成器單元,其提供了 像磚生成功能,這里的物體被分割成若干像磚(例如,8*8, 16*16等)。接著 這些像磚被傳送至另一個(gè)固定功能單元來(lái)執(zhí)行深度處理(例如Z值處理),例 如高水平的Z值拒絕,在高水平處理中使用較低水平處理更少的位?;诮?收的紋理和管線數(shù)據(jù)的像素著色器功能性表現(xiàn),該Z值又被傳回至計(jì)算核心 204的像素著色器310。計(jì)算核心204再將處理過(guò)的數(shù)據(jù)傳送至圖形管線的目 的單元。該目的單元用于在多個(gè)高速緩沖存儲(chǔ)器中的值需要更新之前,執(zhí)行 alpha測(cè)試和紙模測(cè)試。計(jì)算核心204包含一個(gè)執(zhí)行單元池(execution unit pool, EUP) 414,其 在一實(shí)施例中包含一個(gè)或者多個(gè)執(zhí)行單元(以下簡(jiǎn)稱(chēng)EU) 42 0a至420h (這里共 同稱(chēng)為EU420)。每個(gè)EU420包含控制邏輯單元和本地存儲(chǔ)器,如下所述。而 且每個(gè)EU420能夠在單一的時(shí)鐘周期內(nèi)處理多個(gè)指令。因此,EU池414,在 它的峰值時(shí),可以同時(shí)或者基本上同時(shí)處理多個(gè)線程。雖然在這個(gè)實(shí)施例同 時(shí)應(yīng)用8個(gè)EU420,如圖4所示(標(biāo)示為EU0-EU7),在一些其它的實(shí)施例中, EU的數(shù)量不必限制為8個(gè),可多可少。每個(gè)執(zhí)行單元420包含常量緩沖系統(tǒng) 200的一個(gè)實(shí)施例,以下詳述。在一些實(shí)施例中,少于全部執(zhí)行單元420的 執(zhí)行單元可以與常量緩沖系統(tǒng)200合并。進(jìn)而,在一些實(shí)施例中,常量緩沖 系統(tǒng)200的組件可以被分配在一個(gè)或多個(gè)圖形處理器202的組件中,包括在 EU池控制單元206中的邏輯單元。L2高速緩沖存儲(chǔ)器422從EU池控制單元206接收頂點(diǎn)高速緩沖存儲(chǔ)器 溢出(輸入G),并提供頂點(diǎn)高速緩沖存儲(chǔ)器溢出(輸出H)至EU池控制單元206。 另夕卜,L2高速緩沖存儲(chǔ)器422從鄉(xiāng)文理地址生成器410接收紋理描述符請(qǐng)求T并 Req(輸入X),并提供紋理描述符數(shù)據(jù)T并data(輸出W)至紋理地址生成器410,以響應(yīng)接收到的請(qǐng)求。計(jì)算核心204也包含存儲(chǔ)器存取單元(MXU) 426,其通過(guò)存儲(chǔ)器界面仲裁 器424耦接至L2高速緩沖存儲(chǔ)器422。該存儲(chǔ)器界面仲裁器424提供控制界 面至本地存儲(chǔ)器(例如,幀緩沖器和本地存儲(chǔ)器106) 。 BIU118通過(guò),例如PCIE 總線,提供界面至圖形處理系統(tǒng)。存儲(chǔ)器界面仲裁器424和BIU118提供存儲(chǔ) 器和L2高速緩沖存儲(chǔ)器422之間的界面。在一些實(shí)施例中,L2高速緩沖存 儲(chǔ)器422.通過(guò)存儲(chǔ)器存取單元426連接至存儲(chǔ)器界面仲裁器424和BIU118。 存儲(chǔ)器存取單元426將來(lái)自L2高速緩沖存儲(chǔ)器422和其它模塊的虛擬存儲(chǔ)器 地址轉(zhuǎn)換至物理存儲(chǔ)器地址。存儲(chǔ)器界面仲裁器424為L(zhǎng)2高速緩沖存儲(chǔ)器422提供存儲(chǔ)器存取(例如 讀取或者寫(xiě)入),抓取指令、常量、數(shù)據(jù)、紋理,引導(dǎo)存儲(chǔ)器存取(例如,下 載、存儲(chǔ)),暫時(shí)存儲(chǔ)器存取的索引,寄存器溢出,頂點(diǎn)高速高速緩沖存儲(chǔ)器 內(nèi)文溢出等。其它沒(méi)有顯示但是可以被本領(lǐng)域技術(shù)人員理解的組件,包含縱橫器 (crossbars)或者總線,用于輸入和輸出數(shù)據(jù)的轉(zhuǎn)移,寄存器,及可供EU420 處理的其它組件。EU池414中的執(zhí)行單元流通常包含幾個(gè)等級(jí), 一個(gè)是渲染內(nèi)文等級(jí),線 程或任務(wù)等級(jí),以及一指令或者執(zhí)行等級(jí)。在任意給定時(shí)間,在每個(gè)執(zhí)行單 元420中會(huì)有多個(gè)渲染內(nèi)文,該內(nèi)文由一個(gè)位標(biāo)記或其它機(jī)制所辨識(shí)。渲染 內(nèi)文(或者說(shuō)是渲染內(nèi)文信息)在屬于該內(nèi)文的任務(wù)開(kāi)始前,從EU池控制單元 206被傳送。渲染內(nèi)文信息包含著色類(lèi)型、輸入/輸出寄存器的數(shù)量、指令開(kāi) 始地址、輸出映射表、頂點(diǎn)辨識(shí)子,以及對(duì)應(yīng)的常量緩沖器中的常量。EU池 414中的每個(gè)執(zhí)行單元420同時(shí)存儲(chǔ)多個(gè)任務(wù)或者線程(例如在一些實(shí)施例 中,32個(gè)線程)。在一實(shí)施例中,每個(gè)線程根據(jù)程序計(jì)數(shù)器抓取一個(gè)指令。EU池控制單元206為任務(wù)的整體調(diào)度器,并在執(zhí)行單元420中使用數(shù)據(jù) 驅(qū)動(dòng)方法而分配合適的線程(例如,頂點(diǎn)、像素、幾何信息包)。例如,EU池 控制單元206分配一個(gè)線程至EU池414中對(duì)應(yīng)的執(zhí)行單元420空線程槽中的 一個(gè)。來(lái)自頂點(diǎn)高速緩沖存儲(chǔ)器或者其它組件或模型的數(shù)據(jù)被放置于普通寄 存器緩沖器,在線程執(zhí)行開(kāi)始后。通常而言,圖形處理器202的一個(gè)實(shí)施例利用了可編程頂點(diǎn)著色器304、 幾何圖元著色器306和像素著色器310。相較于將這些組件的功能或者操作分別實(shí)現(xiàn)為具有不同設(shè)計(jì)和指令集的固定功能單元,這些搡作可以由包含執(zhí)行單元420a、 420b…420n的EU池414以統(tǒng)一的指令集來(lái)執(zhí)行。這些執(zhí)行單 元420中的每一個(gè)為相同的設(shè)計(jì)而且可編程操作。在一個(gè)實(shí)施例中,每個(gè)執(zhí) 行單元420能夠進(jìn)行同時(shí)多線程操作。頂點(diǎn)著色器304,幾何著色器306,和 像素著色器310產(chǎn)生的多個(gè)著色器任務(wù)均被傳送至分別的執(zhí)行單元420來(lái)執(zhí) 行。當(dāng)個(gè)別任務(wù)產(chǎn)生時(shí),EU池控制單元206處理任務(wù)的分配至多個(gè)執(zhí)行單元 中的可用的線程。當(dāng)任務(wù)完成時(shí),EU池控制單元206進(jìn)一步管理相關(guān)線程的 釋放。在這點(diǎn)上,EU池控制單元206負(fù)責(zé)分配頂點(diǎn)著色器,幾何著色器和像 素著色器任務(wù)至多個(gè)執(zhí)行單元420的線程,而且,執(zhí)行任務(wù)和線程的相關(guān)"薄 記"(bookkeeping)。尤其,EU池控制單元206為所有的執(zhí)行單元420維持 一個(gè)關(guān)于線程和存儲(chǔ)器的資源表。EU池控制單元206尤其知道哪一個(gè)線程已 經(jīng)被分配了任務(wù)和被占用,哪一個(gè)線程已經(jīng)在線程終止后被釋放,多少個(gè)共 同登記文檔存儲(chǔ)寄存器被占用,和對(duì)于每個(gè)執(zhí)行單元,有多少個(gè)自由空間可 用。除此之外,當(dāng)一個(gè)任務(wù)被分配至一個(gè)執(zhí)行單元(例如,420a), EU池控制 單元206將會(huì)標(biāo)注該線程為忙碌,以及將可用的普通寄存器文件存儲(chǔ)器的總 數(shù)減去每個(gè)線程恰當(dāng)?shù)募拇嫫魑募阚E(f oot pr i n t)的總數(shù)。該足跡由頂點(diǎn)著 色器3(M、幾何著色器306以及像素著色器310的狀態(tài)所設(shè)置和決定。而且, 每個(gè)著色器階段都有不同的足跡尺寸。例如,頂點(diǎn)著色器線程可以要求10個(gè) 普通寄存器文件登記,而像素著色器線程可能只要求5個(gè)普通寄存器文件寄 存器。當(dāng)一個(gè)線程完成了它的指定任務(wù),運(yùn)行該線程的執(zhí)行單元420發(fā)送恰當(dāng) 的信號(hào)至EU池控制單元206。 EU池控制單元206相對(duì)地,更新它的資源列表 以標(biāo)示該線程為自由,并增加總線程普通寄存器文件空間的數(shù)量至可用空間。 當(dāng)所有的線程都忙或者所有的普通寄存器文件存儲(chǔ)器已經(jīng)被分配(或者寄存 器空間太小以至于不能維持一個(gè)額外的線程),則執(zhí)行單元4 2 0被認(rèn)為已滿, EU池控制單元206將不再分配任何額外的或者新的線程至那個(gè)執(zhí)行單元。在每個(gè)執(zhí)行單元的內(nèi)部也提供了 一線程控制器,該線程控制器負(fù)責(zé)管理 或者標(biāo)示線程為可用或者不可用。在描述完圖形處理器202的體系后,下面將描述從API空間130至常量緩沖系統(tǒng)200的常量供應(yīng),如何由常量緩沖系統(tǒng)200管理用于多個(gè)渲染內(nèi)文 的常量。如圖5所示,其描述了從API空間130映射常量至常量緩沖系統(tǒng)200 可存取的存儲(chǔ)器的一個(gè)實(shí)施例方法200a的模塊圖。該API空間130包含多個(gè) 常量模塊502a至502n(例如,在一個(gè)實(shí)施例中是16個(gè)),每個(gè)模塊都包含 4000(4k)個(gè)常量。在一個(gè)實(shí)施例中,每個(gè)模塊502都由一個(gè)常量模塊數(shù)來(lái)識(shí) 別(例如C并0、 C#l,等等),包含優(yōu)先級(jí)504,其隨著數(shù)字的降低而增加(例如, C#0有最高的優(yōu)先級(jí))。優(yōu)先級(jí)504可被用于決定常量模塊將被下載(例如, C#0可以被下載至快速常量通路506)的路徑(快速通道506或者是慢速通道 508)。快速通道506實(shí)現(xiàn)在計(jì)算核心EUs420上(例如,通過(guò)EU數(shù)據(jù)通路EUDP 514),并提供快速通道給常量(一個(gè)周期的延遲)??焖偻ǖ?06包含與常量 緩沖器510和內(nèi)文地址轉(zhuǎn)換表格512同時(shí)運(yùn)行多個(gè)內(nèi)文相關(guān)的操作。慢速通道5 08利用芯片外部存儲(chǔ)器(例如,本地存儲(chǔ)器106)和L2高速緩 沖存儲(chǔ)器422來(lái)實(shí)現(xiàn),常量通過(guò)存儲(chǔ)器階層被下載至寄存器文件。通過(guò)慢速 通道508存取常量會(huì)花費(fèi)幾個(gè)周期。GPU編譯器115根據(jù)一個(gè)或多個(gè)規(guī)則映射常量至快速通道5 06和慢速通 道508。例如,對(duì)于在芯片常量緩沖器510中一擁有足夠空間的限制數(shù)量的 非索引常量,編譯器115通過(guò)快速通道506映射此種常量。對(duì)于可索引常量, 編譯器115通過(guò)慢速通道508映射此常量。對(duì)于大量的非索引常量模塊,編 譯器115可以在快速通道506和慢速通道508間分裂路徑。以下是常量緩沖系統(tǒng)200的一個(gè)實(shí)施例,如圖6A-6B所共同繪示。在一 個(gè)實(shí)施例中,常量緩沖系統(tǒng)200包含執(zhí)行單元數(shù)據(jù)路徑(execution unit data path,以下簡(jiǎn)稱(chēng)EUDP) 514、常量緩沖控制器602、常量緩沖器510、兩個(gè)內(nèi)文 地址轉(zhuǎn)換表格512a、 512b、 一輸入界面(crossbar或xbar) 604、和EU池控 制邏輯單元605。盡管這里繪示了利用兩個(gè)內(nèi)文地址轉(zhuǎn)換表格512a, 512b顯 示相應(yīng)的兩個(gè)渲染內(nèi)文,常量緩沖系統(tǒng)200的某些實(shí)施例可以有不同數(shù)量的 內(nèi)文地址轉(zhuǎn)換表格512,以相應(yīng)于相同或者不同的渲染內(nèi)文數(shù)量。輸入界面 604可以被用作一個(gè)縱橫器或者總線或者本領(lǐng)域技術(shù)人員所能想到的等同物。EUDP514包含算數(shù)邏輯單元和其它用于指令解碼,操作數(shù)讀取,分支計(jì) 算,指令計(jì)算,開(kāi)關(guān)/邏輯,下載/存儲(chǔ),及其它處理功能的邏輯單元。常量 緩沖器510通過(guò)兩個(gè)端口 (例如兩個(gè)128位的讀取端口)耦接至EUDP514并且通過(guò)一個(gè)端口 (例如,512位的寫(xiě)入端口)耦接至輸入界面604。常量緩沖系統(tǒng) 控制器602耦接至EUDP514,內(nèi)文地址轉(zhuǎn)換表格512a, 512b,常量緩沖器510, 和輸入界面604。在一個(gè)實(shí)施例中,常量緩沖器510被分為多個(gè)模塊(例如,圖6B中數(shù)據(jù) 模塊6Q6,每個(gè)都被標(biāo)示為常量數(shù)據(jù)模塊0、常量數(shù)據(jù)模塊1,等等)每個(gè)模 塊606包含多個(gè)用于存儲(chǔ)常量的槽。例如,在一個(gè)實(shí)施例中,常量緩沖器510 可以作為被分為16個(gè)模塊606的256*128 2R1W緩沖器,每個(gè)模塊606都包 含個(gè)128位水平向量常量的槽。在一個(gè)實(shí)施例中,在常量緩沖510中的"自 由,,或者可用(例如,可寫(xiě)入)數(shù)據(jù)槽被分配用于下載新的常量。通常而言, 用于處理特定渲染紋理的著色程序所使用的槽比所指定的要少,因此該自由 空間可以被用于下載與其它渲染內(nèi)文相關(guān)的新的常量。內(nèi)文地址轉(zhuǎn)換表格 512a, 512b被更新為新常量的地址,通過(guò)新的內(nèi)文著色程序(EU池或者著色 ID614)識(shí)別或者索引。換言之,內(nèi)文地址轉(zhuǎn)換表格512a、 512b,維持由著色 程序內(nèi)文識(shí)別子所尋址的常量的物理索引。內(nèi)文地址轉(zhuǎn)換表格512a、 512b轉(zhuǎn) 換邏輯索引至常量緩沖器510的物理地址。每個(gè)渲染內(nèi)文有它們自己的地址 轉(zhuǎn)換表格(例如,第一渲染內(nèi)文的內(nèi)文0地址轉(zhuǎn)換表格512a和第二渲染內(nèi)文 的內(nèi)文1地址轉(zhuǎn)換表格512b),其為常量將邏輯著色器常量空間(例如,API 空間130)映射至常量緩沖器510的物理定位。在一個(gè)實(shí)施例中,內(nèi)文地址轉(zhuǎn) 換表格512a、 512b,包含了 一常量緩沖器物理地址的16個(gè)條目和四個(gè)最大位 (MSBs)。任何實(shí)際的內(nèi)文可以利用專(zhuān)門(mén)的有效遮蔽標(biāo)簽608在兩個(gè)或者更多 的內(nèi)文之間分享。如上所述,常量緩沖器510中的每個(gè)模塊606中存在多個(gè)槽(例如,16 個(gè)),可以在每個(gè)著色器管線階段(例如,頂點(diǎn)著色器304、幾何著色器306、 或像素著色器310)被激活。在一個(gè)實(shí)施例中,對(duì)于映射至常量緩沖器510的 常量,跨越多個(gè)常量緩沖器槽的索引是不被允許的,如果索引范圍不超出槽 的尺寸,則在槽的內(nèi)部作索引是可能的。如果給定常量緩沖器槽的數(shù)量,可 索引常量c并可以作為任意著色器操作的一個(gè)操作數(shù),如同著色器中一個(gè)可索 引的只可讀取寄存器。在著色編碼中,c并寄存器通常被宣告為語(yǔ)義名字,而 且這些在著色器中的名字與在著色器外的常量緩沖器槽的名字相匹配。 一個(gè) c弁寄存器是一個(gè)常量緩沖器槽的占位符。在一實(shí)施例中,常量緩沖槽可以利 用下面的句法在著色器中被存取c# [index]以作為著色器指令的操作數(shù) (1)這里的"index"可以包含暫時(shí)寄存器,該暫時(shí)寄存器包含一 32位無(wú)符 號(hào)的整數(shù), 一直接的32位無(wú)符號(hào)整^lt常量,例如,在下面的虛擬編碼"mov rO, c3[6]"中,該運(yùn)算包含從常量緩沖器槽3移動(dòng)元素6至r0。著色器中的常量緩沖器槽(c并register)的宣告包含以下信息或者處理 過(guò)程(a)宣告常量緩沖器510的尺寸(例如,用一個(gè)特別的標(biāo)志標(biāo)示允許未 知長(zhǎng)度);(b)著色器指示常量緩沖器510是僅通過(guò)字面的偏移量或者著色器 所計(jì)算的偏移量值被存取;和(c)著色器中cf與其它相關(guān)cf的宣告出現(xiàn)的順 序定義常量緩沖器槽的優(yōu)先級(jí),從最高優(yōu)先級(jí)開(kāi)始。在一實(shí)施例中,超出常 量緩沖器510邊界的存取會(huì)導(dǎo)致返回0值。分配至常量緩沖槽的優(yōu)先級(jí)可協(xié)助硬件最大化的利用任何存在的常量數(shù) 據(jù)存取通道或機(jī)制。在一些實(shí)施例中,不擔(dān)保帶有高優(yōu)先級(jí)的常量緩沖槽總 是比帶有低優(yōu)先級(jí)的常量緩沖槽快。例如,依據(jù)相關(guān)的緩沖器被宣告的性質(zhì), 一個(gè)高優(yōu)先級(jí)的常量緩沖器槽也可能產(chǎn)生相比較于一個(gè)較低優(yōu)先級(jí)的常量緩 沖器槽較低的表現(xiàn)。例如,在某一實(shí)施例中某些任意尺寸的快速常量隨機(jī)存 取存儲(chǔ)器(RAM)對(duì)于被著色器宣告為高優(yōu)先級(jí)的常量緩沖器槽可能會(huì)不夠大, 但對(duì)于被宣稱(chēng)為低優(yōu)先級(jí)的常量緩沖器槽卻足夠大。類(lèi)似的實(shí)施例可能沒(méi)有 選擇只能為大量的、高優(yōu)先級(jí)的常量存儲(chǔ)器槽使用標(biāo)準(zhǔn)的紋理或者存儲(chǔ)下載 通道(可能恰好相反的高速緩沖器的行為),同時(shí)將最低優(yōu)先級(jí)的常量緩沖器 槽放置在常量隨機(jī)存取存儲(chǔ)器。在常量緩沖系統(tǒng)200的一個(gè)實(shí)施例中,每個(gè)著色器管線階段可能下載總 共256個(gè)常量至常量緩沖器510中。假設(shè)每16個(gè)模塊中有16個(gè)槽,常量可 以被分割為16組。因此,在從一個(gè)內(nèi)文轉(zhuǎn)移至另一個(gè)內(nèi)文時(shí),可以有兩個(gè)內(nèi) 文同時(shí)運(yùn)行在一個(gè)執(zhí)行單元420上。在一個(gè)實(shí)施例中,兩個(gè)內(nèi)文的常量總數(shù) 不超過(guò)256個(gè)。如果兩個(gè)內(nèi)文的常量超過(guò)256個(gè)(或者無(wú)論對(duì)于一個(gè)給定的常 量緩沖器所預(yù)設(shè)的槽的最大數(shù)量),EU池控制邏輯單元605不會(huì)下載第二個(gè) 內(nèi)文直到在先的一個(gè)內(nèi)文已經(jīng)完成(根據(jù)著色器編碼中的指示,編譯器115安 排EU池控制邏輯單元6 05硬件以提供必要的下載功能)。請(qǐng)注意在一些實(shí)施 例中,編譯器115不需要知道所有狀況,盡管編譯器115可能在常量緩沖器 510中分配較少的常量給某一個(gè)著色器,如果編譯器115已經(jīng)知道了在特定 的應(yīng)用程序中 一起運(yùn)行的著色器的組合。編譯器115宣告哪些常量要預(yù)載至常量緩沖器510中。例如, 一個(gè)宣告 可以提供常量緩沖器510中的模塊4(常量64-79)使用API空間130的C#10 偏移量16-31。此宣告也可以被解釋為要求常量64-79是來(lái)自C#10常量 16-31。在一個(gè)實(shí)施例中,著色器常量槽(C的中所有的模塊都被基本上同時(shí)預(yù) 載至常量緩沖器510,以確保合適的間接的尋址操作。在執(zhí)行單元420開(kāi)始內(nèi)文處理之前,EU池控制邏輯單元605根據(jù)著色器 宣告預(yù)載常量緩沖器510。 EU池控制邏輯單元605也解析在何處放置來(lái)自?xún)?個(gè)不同內(nèi)文的常量和下載內(nèi)文地址轉(zhuǎn)換表格512a、 512b。 EU池控制邏輯單元 605也通過(guò)有效屏蔽位608追蹤16個(gè)常量槽中的哪一個(gè)在使用中。在一個(gè)實(shí) 施例中,如果常量緩沖器510不能為一個(gè)新的內(nèi)文完成下載,則EU池控制邏 輯單元605將不會(huì)開(kāi)始新的內(nèi)文直到舊的內(nèi)文完成為止。為了在常量緩沖器510中定位一個(gè)常量,常量緩沖控制器602使用內(nèi)文 地址轉(zhuǎn)換表格512a、 512b。在一個(gè)實(shí)施例中,當(dāng)常量緩沖控制器602接收到 一個(gè)常量索引(例如, 一個(gè)8位常量索引),常量緩沖控制器602使用該請(qǐng)求 線程中的內(nèi)文ID610(例如,1位)去選擇兩個(gè)16*4位內(nèi)文地址轉(zhuǎn)換表格512&、 512b中的一個(gè),并利用常量索引C井中4個(gè)最高位(MSB)去尋找一常量物理緩 沖器索引的最上面的4個(gè)位,并增加至該常量數(shù)字中最低的4個(gè)位(LSB)。如果每個(gè)指令中的兩個(gè)讀.取已被執(zhí)行,例如,兩個(gè)常量被用于指令中的兩個(gè)來(lái) 源(例如,ADD dst、 CMindexl]、 C并[index2])。如前所述,如果兩個(gè)內(nèi)文均可以被供給至常量緩沖器510,則常量緩沖 系統(tǒng)200能夠使兩個(gè)或者更多個(gè)常量?jī)?nèi)文同時(shí)運(yùn)行。例如,常量可被在同一 個(gè)著色器管線階段的兩個(gè)連續(xù)的內(nèi)文分享,因此,在不重新載入整個(gè)常量緩 沖器510的情況下,就可以使得小量的常量改變被更新。在某一執(zhí)行單元420 中,當(dāng)主要常量?jī)?nèi)文被完成處理,次要內(nèi)文被交換至主要的槽,并且EU池控 制邏輯單元605開(kāi)始將下一個(gè)可用內(nèi)文的常量推動(dòng)更新至已經(jīng)釋放了的次要 內(nèi)文槽內(nèi)。于上描述了常量緩沖系統(tǒng)200的各種特征,以下描述相應(yīng)的常量緩沖系 統(tǒng)方法200b,如圖7所示。EU池控制邏輯605單元發(fā)送一個(gè)命令用主要內(nèi)文 的內(nèi)文地址轉(zhuǎn)換表格(512a、 512b)中的地址位來(lái)初始化第二內(nèi)文的內(nèi)文地址 轉(zhuǎn)換表格(512a、 512b)(步驟702)。 EU池控制邏輯單元605發(fā)送更新后的常 量和模塊索引(步驟704)。常量緩沖控制器602在常量緩沖器510中搜索一個(gè)自由(無(wú)效)的模塊606 (步驟7 06),并將緩沖器地址的4位MSBs填入模塊 索引所指定的對(duì)應(yīng)的內(nèi)文地址轉(zhuǎn)換表格512a、 512b中的條目(步驟708)。受 影響的條目的有效屏蔽位608被更新至常量?jī)?nèi)文表612中(步驟710)。有效 屏蔽位608為一個(gè)位代表一個(gè)內(nèi)文,因此,每個(gè)常量數(shù)據(jù)模塊606包含2個(gè) 或者更多的有效屏蔽608位,被置于常量?jī)?nèi)文表612 (包含EU常量存儲(chǔ)器隊(duì) 列),并且被當(dāng)作標(biāo)簽附在每個(gè)常量數(shù)據(jù)模塊606上。例如,對(duì)于在常量緩沖 器510中16個(gè)數(shù)據(jù)模塊606,存在一個(gè)16*2位的標(biāo)簽。然后,執(zhí)行單元420 準(zhǔn)備接收使用新常量?jī)?nèi)文的任務(wù)(步驟712)。圖8繪示了常量?jī)?nèi)文表612的一個(gè)實(shí)施例。常量?jī)?nèi)文表612包含兩個(gè)條 目822和824,每個(gè)條目都包含一個(gè)1位內(nèi)文ID 610、 一個(gè)3位EU池著色器 內(nèi)文ID614、和一個(gè)16位常量緩沖器有效屏蔽位608。該3位EU池著色器 內(nèi)文ID 614確定在EU池414中著色器管線階段和常量?jī)?nèi)文。16位有效屏蔽 位608指示當(dāng)前內(nèi)文中有效的常量模塊條目。當(dāng)一個(gè)新內(nèi)文在執(zhí)行單元420中產(chǎn)生,EU池控制邏輯單元605利用常量 內(nèi)文表612發(fā)送一個(gè)命令來(lái)初始化內(nèi)文地址轉(zhuǎn)換表512a、 512b,并且提供次 要內(nèi)文的有效屏蔽位608到常量?jī)?nèi)文表612的主要內(nèi)文槽。在更新的常量模 塊到達(dá)執(zhí)行單元42Q時(shí),常量緩沖控制器602利用伴隨而來(lái)的索引去查找內(nèi) 文地址轉(zhuǎn)換表512a、 512b中緩沖器地址的4MSBs,并使用該地址去定位在常 量?jī)?nèi)文表612中的有效屏蔽位608并標(biāo)示為無(wú)效。之后,在常量緩沖器510 中選擇可用的模塊槽,以及將該緩沖器地址的4MSBs記錄在上述常量索引所 指示的內(nèi)文地址轉(zhuǎn)換表512a、 512b中的位置。根據(jù)這4各MSBs,當(dāng)前內(nèi)文 的有效屏蔽位6 Q 8中的對(duì)應(yīng)位被標(biāo)示為有效。圖9A-9B包含EU池控制邏輯單元605所使用或者集成的表。圖9A中所 示的EUP常量地址表900為位于存儲(chǔ)器中的常量模塊對(duì)應(yīng)的12位存儲(chǔ)地址 902,并且EUP常量地址表900為從本地存儲(chǔ)器106下至芯片上常量緩沖器 510的常量數(shù)據(jù)載入提供地址,該常量緩沖器510位于計(jì)算核心204的EU420。 當(dāng)從命令碼流處理器(CSP) 406或者像素打包器404接收到一個(gè)新的常量更新 時(shí),EU池控制邏輯單元605檢查相應(yīng)的著色器階段的第二內(nèi)文是否可獲得以 對(duì)常量作更新。請(qǐng)參考圖9B,其繪示了常量參考表910,包含參考計(jì)數(shù)器904用于內(nèi)文 的著色器程序事件對(duì)常數(shù)的使用。當(dāng)一個(gè)新的事件被載入至EU420時(shí),此參考計(jì)數(shù)器904增加,當(dāng)該著色器事件終止時(shí),此參考計(jì)數(shù)器904減少。尤其, 常量參考表910中的計(jì)數(shù)器904追蹤著色器常量?jī)?nèi)文等待處理的任務(wù)數(shù)量。 當(dāng)一個(gè)新的任務(wù)增加時(shí),常量參考表910中的計(jì)數(shù)器904增加,當(dāng)任務(wù)完成 后,計(jì)數(shù)器904減少。當(dāng)計(jì)數(shù)器904為0時(shí),EU池控制邏輯單元605被告知 該內(nèi)文的所有任務(wù)已經(jīng)完成,并且EU池414^fe沖刷。當(dāng)主要常量?jī)?nèi)文被沖刷 出EU池414,次要內(nèi)文被交換至主要槽,而次要槽可以接收命令碼流處理器 406或者像素打包器404的下一個(gè)更新。當(dāng)一個(gè)任務(wù)被安排至執(zhí)行單元420, 此任務(wù)相應(yīng)的著色器常量?jī)?nèi)文ID61Q與目標(biāo)執(zhí)行單元4 2 0現(xiàn)存的內(nèi)文ID作比 對(duì)。如果匹配,此任務(wù)被發(fā)送至該目標(biāo)執(zhí)行單元420,否則, 一個(gè)常量下載 程序被觸發(fā)以預(yù)載常量至目標(biāo)執(zhí)行單元。這里描述的流程圖表中任何處理描述符或者模塊應(yīng)該理解為范例模型、 片段,或編碼部分,在這個(gè)處理流程中可以包含一個(gè)或者更多的為執(zhí)行特別 邏輯功能或步驟的可執(zhí)行的指令,并且任何可替代的執(zhí)行也被包含在本發(fā)明 揭露系統(tǒng)或方法的范圍內(nèi),也包含依賴(lài)于其所具有的功能是本領(lǐng)域技術(shù)人員 可以理解的實(shí)質(zhì)的并發(fā)或者相反的指令。應(yīng)該強(qiáng)調(diào),上面提到的實(shí)施例僅僅是可能執(zhí)行中的一些例子。在不脫離 本發(fā)明原則的基礎(chǔ)上,還會(huì)有更多的變形和修改。本發(fā)明范圍內(nèi)的所有類(lèi)似 的修改和變形將由本發(fā)明的權(quán)利要求所限定。
權(quán)利要求
1. 一種用于可編程圖形處理單元計(jì)算核心的常量緩沖的方法,其特征在于包含以下步驟響應(yīng)第一著色器操作,在常量緩沖器中接收第一常量組,該第一常量組相應(yīng)于第一渲染內(nèi)文;響應(yīng)第二著色器操作,在該常量緩沖器中接收第二常量組,該第二常量組相應(yīng)于第二渲染內(nèi)文,而且該第一常量組未被沖刷;以及更新內(nèi)文地址轉(zhuǎn)換表格,該內(nèi)文地址轉(zhuǎn)換表格將該第一著色器操作或者該第二著色器操作的參考值匹配至該常量緩沖器的物理地址,該第一著色器操作或者該第二著色器操作用來(lái)執(zhí)行該第一常量組或該第二常量組中的常量。
2、 根據(jù)權(quán)利要求1所述的一種用于可編程圖形處理單元計(jì)算核心的常量 ,緩沖的方法,其中該第 一著色器操作和該第二著色器操作可以被該計(jì)算核心中可執(zhí)行多線程的一個(gè)著色器所執(zhí)行,或者被多個(gè)可執(zhí)行多線程的著色器分 別執(zhí)行。
3、 根據(jù)權(quán)利要求2所述的一種用于可編程圖形處理單元計(jì)算核心的常量 緩沖的方法,其中接收該第二常量組的同時(shí)也包含未停止執(zhí)行該第 一著色器 操作的接收。
4、 根據(jù)權(quán)利要求1所述的一種用于可編程圖形處理單元計(jì)算核心的常量 緩沖的方法,其進(jìn)一步包含,決定是否將該第一常量組和該第二常量組中的 常量映射至存儲(chǔ)器或緩沖器。
5、 根據(jù)權(quán)利要求4所述的一種用于可編程圖形處理單元計(jì)算核心的常量 緩沖的方法,其中接收該第一常量組和該第二常量組包含響應(yīng)該決定,選擇 通過(guò)存儲(chǔ)器映射、緩沖器映射或者存儲(chǔ)器和緩沖器映射的結(jié)合來(lái)接收。
6、 根據(jù)權(quán)利要求5所述的一種用于可編程圖形處理單元計(jì)算核心的常量 緩沖的方法,其中存儲(chǔ)器映射和緩沖器映射進(jìn)一步包含,對(duì)于緩沖器映射, 從應(yīng)用程序界面空間映射該些常量至該常量緩沖器,或者對(duì)于存儲(chǔ)器映射, 從應(yīng)用程序界面空間映射該些常量至圖形處理單元存儲(chǔ)器。
7、 根據(jù)權(quán)利要求1所述的一種用于可編程圖形處理單元計(jì)算核心的常量 緩沖的方法,其進(jìn)一步包含,決定是否該常量緩沖器有足夠的空間去接收該第二常量組。
8、 根據(jù)權(quán)利要求7所述的一種用于可編程圖形處理單元計(jì)算核心的常量 緩沖的方法,其中決定該常量緩沖器是否有足夠的空間去接收該第二常量組 的步驟還包括,決定是否有可用的常量緩沖器模塊。
9、 根據(jù)權(quán)利要求1所述的一種用于可編程圖形處理單元計(jì)算核心的常量 緩沖的方法,其進(jìn)一步包含監(jiān)視常量使用。
10、 根據(jù)權(quán)利要求9所述的一種用于可編程圖形處理單元計(jì)算核心的常 量緩沖的方法,其中監(jiān)視常量使用的步驟還包括.產(chǎn)生和維持自由常量緩沖 器模塊的一個(gè)表,該表用于分配該第二常量組。
11、根據(jù)權(quán)利要求IO所述的一種用于可編程圖形處理單元計(jì)算核心的常 量緩沖的方法,其進(jìn)一步包含為該第二常量組分配該常量緩沖器中的多個(gè)槽。
12、 一種用于可編程圖形處理單元計(jì)算核心的常量緩沖的系統(tǒng),其特征 在于包含執(zhí)行單元池控制邏輯單元;常量緩沖器,該常量緩沖器和該執(zhí)行單元池控制邏輯單元可以響應(yīng)第一 著色器操作,接收相應(yīng)于第一渲染內(nèi)文的第一常量組,和響應(yīng)第二著色器操 作,接收相應(yīng)于第二渲染內(nèi)文的第二常量組,而且該第一常量組未被沖刷; 以及常量緩沖控制器和內(nèi)文地址轉(zhuǎn)換表格,其中該常量緩沖控制器使用該內(nèi) 丈地址轉(zhuǎn)換表格將應(yīng)用程序界面空間中的常量的參考值,匹配至該常量緩沖 器中的物理地址,該參考值是由一個(gè)或者多個(gè)該第一著色器操作和該第二著 色器橾作所提供的。
13、 根據(jù)權(quán)利要求12所述的用于可編程圖形處理單元計(jì)算核心的常量緩 沖系統(tǒng),其中該第 一著色器操作和該第二著色器操作經(jīng)由在該計(jì)算核心中可 執(zhí)行多線程的頂點(diǎn)著色器、幾何著色器和像素著色器其中的一個(gè)被執(zhí)行,或 者分別被其中的兩個(gè)所執(zhí)行。
14、 根據(jù)權(quán)利要求12所述的用于可編程圖形處理單元計(jì)算核心的常量緩 沖系統(tǒng),其進(jìn)一步包含編譯器,該編譯器與該執(zhí)行單元池控制邏輯單元合作, 決定是否將該第一常量組和該第二常量組中的這些常量從應(yīng)用程序界面空間 映射至圖形處理單元存儲(chǔ)器、該常量緩沖器,或映射至圖形處理單元存儲(chǔ)器 與該常量緩沖器兩者的結(jié)合。
15、 根據(jù)權(quán)利要求12所述的用于可編程圖形處理單元計(jì)算核心的常量緩沖系統(tǒng),其中該常量緩沖控制器用于檢索和分配在該常量緩沖器中的自由模 塊,使得為該常量緩沖器可以存儲(chǔ)該第二常量組的常量,同時(shí)保持該常量緩 沖器中該第一常量組中的常量。
16、 根據(jù)權(quán)利要求12所述的用于可編程圖形處理單元計(jì)算核心的常量緩 沖系統(tǒng),其進(jìn)一步包含一個(gè)常量?jī)?nèi)文表,該常量?jī)?nèi)文表包含多個(gè)有效屏蔽, 其中該執(zhí)行單元池控制邏輯單元通過(guò)使用該有效屏蔽來(lái)確定該常量緩沖器中 哪些槽處于使用中,其中該常量?jī)?nèi)文表經(jīng)由該執(zhí)行單元池控制邏輯單元被更新。
全文摘要
本發(fā)明揭露了一種用于可編程圖形處理單元計(jì)算核心的常量緩沖的方法,其特征在于包含以下步驟響應(yīng)第一著色器操作,在常量緩沖器中接收第一常量組,該第一常量組相應(yīng)于第一渲染內(nèi)文;響應(yīng)第二著色器操作,在該常量緩沖器中接收第二常量組,該第二常量組相應(yīng)于第二渲染內(nèi)文,而且該第一常量組未被沖刷;更新內(nèi)文地址轉(zhuǎn)換表格,該內(nèi)文地址轉(zhuǎn)換表格將該第一著色器操作或者該第二著色器操作的參考值匹配至該常量緩沖器的物理地址,該第一著色器操作或者該第二著色器操作用來(lái)執(zhí)行該第一常量組或該第二常量組中的常量。與現(xiàn)有系統(tǒng)相比較,本發(fā)明能夠同步進(jìn)行常量處理,該常量可以是使用來(lái)自于超過(guò)一個(gè)渲染內(nèi)文的相同的或者不同的著色器。
文檔編號(hào)G06T15/00GK101271584SQ20081009166
公開(kāi)日2008年9月24日 申請(qǐng)日期2008年4月11日 優(yōu)先權(quán)日2008年4月11日
發(fā)明者陽(yáng) 焦, 約翰·柏拉勒斯, 蘇奕榮 申請(qǐng)人:威盛電子股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
丰宁| 定襄县| 浦北县| 星子县| 凭祥市| 临洮县| 谢通门县| 滦南县| 菏泽市| 馆陶县| 剑川县| 武冈市| 囊谦县| 温宿县| 伊吾县| 卓资县| 汉沽区| 枝江市| 望江县| 汉川市| 晋中市| 五大连池市| 渭南市| 正镶白旗| 朝阳县| 定西市| 广州市| 呼和浩特市| 新龙县| 信丰县| 洛宁县| 潍坊市| 潞西市| 泾阳县| 新营市| 青海省| 安义县| 阿勒泰市| 施甸县| 广水市| 太白县|