亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于寄存器的對紋理請求的排隊的制作方法

文檔序號:6368523閱讀:159來源:國知局
專利名稱:基于寄存器的對紋理請求的排隊的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機圖形領(lǐng)域。
背景技術(shù)
許多計算機圖形圖像是通過自給定視點對光與三維景物的相互作用進(jìn)行數(shù)學(xué)建模而產(chǎn)生。此過程稱作再現(xiàn)自所述給定視點產(chǎn)生所述景物的二維圖像,且類似于拍攝一張現(xiàn)實景物照片。隨著對計算機圖形且特別是對實時計算機圖形的需求的增加,具有適于使再現(xiàn)過程加速的圖形處理子系統(tǒng)的計算機系統(tǒng)已變得很普遍。在這些計算機系統(tǒng)中,是在一計算機的通用中央處理器(CPU)與圖形處理子系統(tǒng)之間劃分再現(xiàn)過程。通常,CPU執(zhí)行高級操作,例如確定一給定景物中物體的位置、運動及沖突。通過這些高級操作,CPU產(chǎn)生一組用 于界定所期望再現(xiàn)的圖像的再現(xiàn)命令及數(shù)據(jù)。例如,再現(xiàn)命令及數(shù)據(jù)可界定景物幾何形狀、照明度、著色、紋理、運動、及/或一景物的照相參數(shù)。圖形處理子系統(tǒng)根據(jù)該組再現(xiàn)命令及數(shù)據(jù)產(chǎn)生一個或多個再現(xiàn)圖像。典型的圖形處理子系統(tǒng)包括一具有一個或多個執(zhí)行單元及一個或多個紋理單元的圖形處理單元。除其它任務(wù)外,,執(zhí)行單元尤其負(fù)責(zé)處理幾何形狀及照明度信息。紋理單元通過從存儲于存儲器中的紋理映射圖中檢索紋素數(shù)據(jù)來實施對景物幾何形狀的紋理映射。將紋素數(shù)據(jù)與由執(zhí)行單元所產(chǎn)生的像素數(shù)據(jù)相組合以確定所再現(xiàn)圖像的像素的顏色值。為使性能達(dá)到最佳,執(zhí)行單元及紋理單元通常要克服不同的障礙。執(zhí)行單元通常具有一深的基本固定的處理管線,從而使典型執(zhí)行單元的管線中斷在性能方面的代價非常高昂。為了減少管線中斷,常將再現(xiàn)應(yīng)用程序劃分成許多獨立的執(zhí)行線程,以使執(zhí)行單元的利用率最大化。與此相反,紋理單元的主要性能瓶頸是因檢索紋素數(shù)據(jù)而引起的存儲器等待時間。此瓶頸因執(zhí)行單元傾向于同時發(fā)出成批的紋理命令而不是隨著時間分發(fā)紋理命令而加劇。因在多個執(zhí)行單元上運行多個線程,紋理命令的不規(guī)則定時可使紋理單元的性能嚴(yán)重劣化。為了使紋理命令的猝發(fā)(bursts)變得平滑,可使用一緩沖器(例如一先進(jìn)先出緩沖器(FIFO))來對發(fā)送至紋理單元的紋理命令進(jìn)行排隊。然而,紋理命令常常包括大量的相關(guān)聯(lián)數(shù)據(jù)。例如,一典型的紋理命令及其關(guān)聯(lián)數(shù)據(jù)可遠(yuǎn)遠(yuǎn)超過100位數(shù)據(jù)。一具有此寬度的FIFO會消耗一圖形處理單元中的大量電路面積,從而減少可供用于其它器件的面積量。因此,需要一種有效地對紋理命令進(jìn)行排隊而不必使用大的FIFO的圖形處理系統(tǒng)。進(jìn)一步,需要在與多個執(zhí)行單元一起使用時可有效地進(jìn)行按比例縮放的紋理排隊機構(gòu)。

發(fā)明內(nèi)容
本發(fā)明使一圖形處理單元能夠?qū)Υ罅考y理請求進(jìn)行排隊以抵消紋理請求的可變性而無需使用大的紋理請求緩沖器。在一實施例中,一專用紋理請求緩沖器對相對小的紋理命令及參數(shù)進(jìn)行排隊。另外,對于每一排隊的紋理命令,均在一通用寄存器中存儲相關(guān)聯(lián)的一組紋理自變量,所述紋理自變量通常遠(yuǎn)遠(yuǎn)大于所述紋理命令。所述紋理單元從所述紋理請求緩沖器中檢索紋理命令并隨后從適當(dāng)?shù)耐ㄓ眉拇嫫髦刑崛∷鱿嚓P(guān)聯(lián)的紋理自變量。在另一實施例中,將所述紋理自變量存儲于被指定作為所述紋理單元所計算出的最終紋理值的目的地的通用寄存器中。由于在對紋理命令進(jìn)行排隊時必須為所述最終紋理值分配目的寄存器,因此將所述紋理自變量存儲于此寄存器中并不耗用任何額外的寄存器。在一實施例中,一圖形處理子系統(tǒng)包括一執(zhí)行單元,所述執(zhí)行單元包含一紋理請求緩沖器及一寄存器隊列。所述寄存器隊列包括復(fù)數(shù)個通用寄存器。所述執(zhí)行單元適于向所述紋理請求緩沖器發(fā)出一紋理命令并將一紋理自變量存儲于所述寄存器隊列中。一紋理單元適于從所述紋理請求緩沖器中讀取所述紋理命令并從所述寄存器隊列中檢索所述紋理自變量。所述紋理單元進(jìn)一步適于響應(yīng)于所述紋理命令而檢索一紋理映射圖的一部分。所述紋理單元根據(jù)所述紋理映射圖的所述部分計算出一最終紋理值并將所述最終紋理值存儲于所述寄存器隊列的一目的寄存器中。
在另一實施例中,所述執(zhí)行單元適于將所述紋理自變量存儲于所述復(fù)數(shù)個寄存器中的所述目的寄存器中,以使所述紋理單元適于在存儲所述最終紋理值時覆蓋所述紋理自變量。在一替代實施例中,所述執(zhí)行單元將所述紋理自變量存儲于一與所述目的寄存器相分離的源寄存器中。在另一實施例中,所述紋理命令包括一紋理參數(shù)。所述紋理命令也可指定一紋理映射類型及/或一紋理映射圖。在再一實施例中,所述紋理單元根據(jù)所述紋理參數(shù)確定存儲所述紋理自變量的源寄存器。所述紋理參數(shù)還指定所述復(fù)數(shù)個寄存器的所述目的寄存器也為所述復(fù)數(shù)個寄存器的所述源寄存器。在再一實施例中,所述執(zhí)行單元進(jìn)一步適于響應(yīng)于發(fā)出一紋理命令而鎖定所述目的寄存器以防止改動所述紋理自變量。所述執(zhí)行單元適于響應(yīng)于所述紋理單元將所述最終紋理值存儲于所述目的寄存器中而將所述目的寄存器解鎖。在另一實施例中,一第二執(zhí)行單元包括一第二紋理請求緩沖器及一第二寄存器隊列。所述第二寄存器隊列包括復(fù)數(shù)個通用寄存器。所述第二執(zhí)行單元適于向所述第二紋理請求緩沖器發(fā)出一第二紋理命令并將一第二紋理自變量存儲于所述第二寄存器隊列中。所述紋理單元進(jìn)一步適于從所述第二紋理請求緩沖器中讀取所述第二紋理命令、從所述第二寄存器隊列中檢索所述第二紋理自變量、響應(yīng)于所述第二紋理命令而從所述紋理存儲器中檢索一第二紋理映射圖的一部分、根據(jù)所述紋理映射圖的所述部分計算出一第二最終紋理值、并將所述第二最終紋理值存儲于所述第二寄存器隊列中所述復(fù)數(shù)個寄存器的一目的寄存器中。


下文將參照圖式來闡述本發(fā)明,在圖式中圖I圖解說明一適于實施本發(fā)明一實施例的計算機系統(tǒng);圖2圖解說明一根據(jù)本發(fā)明一實施例的圖形處理單元的一紋理排隊機構(gòu);圖3圖解說明一根據(jù)本發(fā)明一實施例具有多個執(zhí)行單元的圖形處理單元的一紋理排隊機構(gòu) '及圖4圖解說明一根據(jù)本發(fā)明一實施例的圖形處理單元的一加載及存儲命令排隊機構(gòu)。
具體實施例方式圖I為一計算機系統(tǒng)100(例如個人計算機、視頻游戲控制臺、個人數(shù)字助理、移動電話或適于實施本發(fā)明一實施例的其它數(shù)字裝置)的一方塊圖。計算機系統(tǒng)100包括一用于運行軟件應(yīng)用程序及視需要一操作系統(tǒng)的中央處理器(CPU) 105。在一實施例中,CPU105實際上為數(shù)個并行操作的獨立的中央處理器。存儲器110存儲供0 仍05使用的應(yīng)用程序及數(shù)據(jù)。存儲器115為應(yīng)用程序及數(shù)據(jù)提供非易失性存儲并可包括固定式磁盤驅(qū)動器、可抽換式磁盤驅(qū)動器、閃存存儲器或其它固態(tài)裝置、及CD-R0M、DVD_R0M、或其它光學(xué)存儲裝置。用戶輸入裝置120將來自一個或多個用戶的用戶輸入傳送至計算機系統(tǒng)100并可包括鍵盤、鼠標(biāo)、操縱桿、觸摸屏、及/或麥克風(fēng)。網(wǎng)絡(luò)接口 125使計算機系統(tǒng)100能夠通過一電子通信網(wǎng)絡(luò)與其它計算機系統(tǒng)進(jìn)行通信,并可包括通過局域網(wǎng)及廣域網(wǎng)(例如因特網(wǎng))進(jìn)行的有線或無線通信。計算機系統(tǒng)100的組件-包括CPU 105、存儲器110、數(shù)據(jù)存儲裝置105、用戶輸入裝置120及網(wǎng)絡(luò)接口 125-經(jīng)由一個或多個數(shù)據(jù)總線160相連接。數(shù)據(jù)總線的實例包括 ISA、PCI、AGP、PCI、PCI-X(也稱作 3GI0)及 HyperTransport 數(shù)據(jù)總線。一圖形子系統(tǒng)130進(jìn)一步與數(shù)據(jù)總線160及計算機系統(tǒng)100的組件連接。圖形子系統(tǒng)130包括一圖形處理單元(GPU) 135及圖形存儲器。所述圖形存儲器包括一用于存儲一輸出圖像中每一像素的像素數(shù)據(jù)的顯示存儲器140 (例如一幀緩沖器)。像素數(shù)據(jù)可直接自CPU 105提供至顯示存儲器140?;蛘撸珻PU 105為GPU 135提供用于界定所需輸出圖像 的數(shù)據(jù)及/或命令,然后GPU 135根據(jù)所述數(shù)據(jù)及/或命令產(chǎn)生一個或多個輸出圖像的像素數(shù)據(jù)。用于界定所需輸出圖像的數(shù)據(jù)及/或命令存儲于附加存儲器145中。在一實施例中,GPU 135根據(jù)用于界定一景物的幾何形狀、照明度、著色、紋理、運動、及/或照相參數(shù)的再現(xiàn)命令及數(shù)據(jù)來產(chǎn)生輸出圖像的像素數(shù)據(jù)。在另一實施例中,顯示存儲器140及/或附加存儲器145為存儲器110的一部分并與CPU 105共享?;蛘撸@示存儲器140及/或附加存儲器145為一個或多個專門供用于圖形子系統(tǒng)130的分立存儲器。圖形子系統(tǒng)130周期性地自顯示存儲器218輸出一圖像的像素數(shù)據(jù)并顯示于顯示裝置150上。顯示裝置150為任一能夠響應(yīng)于一來自計算機系統(tǒng)100的信號而顯示可視信息的裝置,包括CRT、LCD、等離子體及OLED顯示器、及其它發(fā)光及光調(diào)制技術(shù)。計算機系統(tǒng)100可為顯示裝置150提供一模擬或數(shù)字信號。在另一實施例中,圖形處理子系統(tǒng)130包括一個或多個類似于GPU 135的附加GPU155。在再一實施例中,圖形處理子系統(tǒng)130包括一圖形協(xié)處理器165。圖形處理協(xié)處理器165及附加GPU 155適于與GPU 135并行操作。類似于GPU 135,附加GPU155根據(jù)再現(xiàn)命令來產(chǎn)生輸出圖像的像素數(shù)據(jù)。附加GPU 155可與GPU 135 —起運行以同時產(chǎn)生一輸出圖像的不同部分的像素數(shù)據(jù),或同時產(chǎn)生不同輸出圖像的像素數(shù)據(jù)。在一實施例中,圖形處理器165為GPU 135及/或附加GPU 155執(zhí)行與再現(xiàn)相關(guān)的任務(wù),例如幾何形狀變換、著色器計算、及背面剔除(backface culling)操作。附加GPU 155可與GPU 135位于同一集成電路、模塊、芯片封裝、或電路板上并與GPU 135共享一通至數(shù)據(jù)總線160的連接,或者可位于單獨與數(shù)據(jù)總線160連接的附加電路板上。附加GPU 155可具有其自身的類似于顯示存儲器140及附加存儲器145的顯示器及附加存儲器,或者可與GPU 135共享存儲器140及145。在一實施例中,圖形處理器165與計算機系統(tǒng)芯片組(未顯示)集成在一起,例如與Northbridge或Southbridge芯片、或其他用于控制數(shù)據(jù)總線160的裝置集成在一起。圖2圖解說明一根據(jù)本發(fā)明一實施例的圖形處理單元的一紋理排隊機構(gòu)200。一控制單元與圖形處理單元的其余部分協(xié)調(diào)紋理單元210的操作。紋理單元210負(fù)責(zé)確定紋理值,例如一幾何圖元上一給定點的顏色值或a值。在一實施例中,紋理單元210自控制單元205接收紋理命令。紋理命令指定要應(yīng)用的紋理映射類型、要映射的紋理及為進(jìn)行紋理化所需的其它參數(shù)。另外,紋理命令通常需要相關(guān)聯(lián)的一組指定對應(yīng)于一幾何圖元上所給定點的紋理坐標(biāo)的紋理自變量。一旦自控制單元205接收到一紋理命令,紋理單元210便實施一紋理映射操作。在一實施例中,紋理映射操作包括進(jìn)行一詳細(xì)程度確定,以選擇一個或多個要使用的紋理分級細(xì)化映射級。一采樣確定可計算一紋理采樣腳印及樣本權(quán)重以用于各向同性或各向異性紋理過濾。紋理映射操作根據(jù)所選分級細(xì)化映射級、紋理采樣腳印及紋理坐標(biāo)來確定一個或多個紋素存儲地址。紋理映射單元從紋理存儲器215中檢索紋素存儲地址處的紋理值。紋理存儲器215可包括圖形處理單元內(nèi)部的一級或多級紋理高速緩沖存儲器以及圖形處理單元外部的用于存儲紋理的存儲器。一旦從紋理存儲器215接收到所需紋理值,紋理單元210便根據(jù)采樣權(quán)重及分級細(xì)化映射權(quán)重將各紋理值相組合以產(chǎn)生一最終紋理值。所述最終紋理值自紋理單元210輸出并由圖形處理單元的其它部分用來確定一輸出圖像的一個或多個像素 的顏色值。在紋理排隊機構(gòu)200中,控制單元205將紋理命令(例如命令225)寫入至請求緩沖器220。在一實施例中,請求緩沖器220為一 FIFO。紋理命令225指定紋理參數(shù),包括要應(yīng)用的紋理映射類型、要映射的紋理及要自紋理單元210輸出的最終紋理值的一目的地。在一實施例中,紋理命令為32位長;因此,請求緩沖器220僅需為32位寬。除紋理命令225中所包含的紋理參數(shù)外,紋理單元210還需要一組紋理自變量,此包括要由紋理單元210使用的紋理坐標(biāo)。通常,紋理自變量包括四個紋理坐標(biāo)值。如果每一紋理坐標(biāo)均表示成一 32位的浮點數(shù),則紋理自變量將需要128位。假如該組紋理自變量要與紋理命令一起包括于請求緩沖器220中,則對請求緩沖器220的寬度要求將顯著增大。例如,假如存儲在一起,則一 32位紋理命令及一 128位紋理自變量將需要160位寬的請求緩沖器。本發(fā)明的一實施例并非創(chuàng)建一大到足以容納紋理命令及其關(guān)聯(lián)紋理自變量二者的請求緩沖器,而是將紋理自變量存儲于由一執(zhí)行單元所使用的該組通用寄存器中的一個中。所述執(zhí)行單元將該組通用寄存器-稱作一寄存器隊列230-用作一用于其所有計算(包括不與紋理相關(guān)的運算)的通用臨時工作區(qū)。通過將紋理自變量存儲于寄存器隊列230中,請求緩沖器220的尺寸會大大減小。此外,如下文所述,在本發(fā)明的一實施例中,紋理自變量在寄存器隊列中的存儲基本上是自由的。對應(yīng)于紋理命令225的紋理自變量235存儲于寄存器隊列230中。紋理單元210依次從請求緩沖器220中檢索并處理紋理命令。一旦從請求緩沖器220中檢索到紋理命令225,紋理單元210便也從寄存器隊列230中的一寄存器中檢索紋理自變量235。紋理單元210根據(jù)與紋理命令225包含在一起的紋理參數(shù)來確定對應(yīng)的一組紋理自變量的位置。紋理命令225在寄存器隊列230中指定一目的寄存器來存儲最終紋理值。在一實施例中,紋理自變量235位于要用來存儲所述最終紋理值的同一寄存器中。在此實施例中,將紋理自變量235存儲于紋理目的寄存器中不會耗用任何額外的寄存器,因為目的寄存器無論如何均必須預(yù)留供最終紋理值使用。另外,未完成的紋理命令數(shù)量只受寄存器隊列中寄存器數(shù)量的限制。一旦紋理映射操作完成,紋理單元210便將最終紋理值240輸出至寄存器隊列230并覆蓋245紋理自變量235。在另一實施例中,紋理自變量235及/或最終紋理值240能會可大于單個寄存器。在此實施例中,寄存器隊列230中的一組多個寄存器組合用于存儲紋理自變量235及/或 最終紋理值240。在另一實施例中,寄存器隊列230中被指定為最終紋理值240的目的地的該組寄存器也用來存儲紋理自變量235,從而減少紋理命令225所需的寄存器數(shù)量。由于一實施例以最終紋理值240覆蓋紋理自變量235,因此如果紋理自變量235需要保存,則控制單元205可在發(fā)出一紋理命令前將紋理自變量拷貝至寄存器隊列230中的另一寄存器(或數(shù)個寄存器)中。在一替代實施例中,紋理命令225指定單獨源寄存器及目的寄存器,且紋理單元210從所指定的源寄存器中檢索紋理自變量235并將最終紋理值240存儲于寄存器隊列230中的目的寄存器中。在另一實施例中,使用一記分板機構(gòu)將鎖定寄存器隊列230中與紋理命令225相關(guān)聯(lián)的寄存器以防止執(zhí)行單元改變寄存器內(nèi)容,直至紋理操作完成為止。執(zhí)行單元無法對被鎖定的寄存器進(jìn)行寫入;然而,紋理單元210卻仍可存取被鎖定的寄存器。倘若紋理自變量存儲于目的寄存器中,則控制單元205在紋理命令225被放入請求緩沖器220中時會鎖定目的寄存器。目的寄存器保持鎖定狀態(tài)直至最終紋理值已寫入至目的寄存器為止。如上所述,由于目的寄存器自紋理命令發(fā)出時起被鎖定,因此將紋理自變量存儲于目的寄存器中并未使執(zhí)行單元失去一額外寄存器。在源寄存器與目的寄存器分立的情形中,這兩個寄存器均在紋理命令225發(fā)出時由控制單元205鎖定。在紋理單元從源寄存器中檢索到紋理自變量后,源寄存器被解鎖。在最終紋理值存儲于目的寄存器中后,目的寄存器也可被解鎖。在一實施例中,紋理單元210被管線化并能夠同時在不同的紋理管線級中處理不同的紋理命令。為了確保將每一紋理命令的結(jié)果均存儲于正確的寄存器中,紋理單元210的一實施例包括一標(biāo)記存儲器或緩沖器250。緩沖器250具有一對應(yīng)于紋理管線的每一級的部分。緩沖器250的每一部分均存儲一目的寄存器位置值,所述目的寄存器位置值為由對應(yīng)的紋理管線級所處理的數(shù)據(jù)指定目的寄存器。當(dāng)數(shù)據(jù)自一個管線級前進(jìn)至另一管線級時,對應(yīng)的目的寄存器位置值會移至緩沖器250中的對應(yīng)部分。圖3圖解說明一根據(jù)本發(fā)明一實施例具有多個執(zhí)行單元的圖形處理單元300的一紋理排隊機構(gòu)。圖形處理單元包括至少一在功能上類似于上述紋理單元210的紋理單元305。紋理單元305與紋理存儲器310連接,除外部紋理存儲器以外,紋理存儲器310還可包括一級或多級內(nèi)部紋理高速緩沖存儲器。紋理單元305與多個獨立的執(zhí)行單元連接。在此實施例中,四個執(zhí)行單元315、320,325及330與紋理單元305連接;然而,圖形處理單元300的替代實施例可具有與一紋理單元連接的任一數(shù)量的執(zhí)行單元。每一執(zhí)行單元均可執(zhí)行多個與再現(xiàn)相關(guān)的不同任務(wù),包括處理幾何形狀數(shù)據(jù)、照明度計算及著色器程序。一典型的執(zhí)行單元(例如執(zhí)行單元315)包括一用于執(zhí)行與再現(xiàn)相關(guān)的任務(wù)的執(zhí)行單元核心335。執(zhí)行單元315還可包括一用于存儲被頻繁存取的指令及數(shù)據(jù)的高速緩沖存儲器340。對于較不頻繁存取的數(shù)據(jù)而言,一寄存器隊列345為執(zhí)行單元315提供一用于其所有計算的通用臨時工作區(qū)。請求緩沖器350-其在一實施例中為一 FIFO-存儲由執(zhí)行單元核心335發(fā)出的紋理命令,直至這些紋理命令準(zhǔn)備好由紋理單元305執(zhí)行為止。如在實施例200中一樣,紋理命令,包括紋理參數(shù),存儲于請求緩沖器350中。紋理自變量(例如與紋理命令相關(guān)聯(lián)的紋理坐標(biāo))存儲于寄存器隊列345中的一寄存器中。紋理單元305通過多路復(fù)用器370分別與執(zhí)行單元315、320、325及330的請求緩沖器350、355、360及365連接。借助多路復(fù)用器370,紋理單元交替地從每一執(zhí)行單元的請 求緩沖器中檢索一個或多個待決的紋理命令。在一實施例中,根據(jù)一“循環(huán)”調(diào)度表從各執(zhí)行單元檢索紋理請求。在一替代實施例中,一仲裁塊單元按照一使總體性能優(yōu)點最大化的順序從各執(zhí)行單元中選擇待決的紋理請求。與從一給定執(zhí)行單元的請求緩沖器中檢索一紋理命令相結(jié)合,紋理單元305還從該執(zhí)行單元的寄存器隊列中檢索對應(yīng)的一組紋理自變量。例如,紋理單元305從執(zhí)行單元315的請求緩沖器350中檢索一紋理命令并從寄存器隊列345的一寄存器中檢索對應(yīng)的紋理自變量。為了便于在執(zhí)行單元315的寄存器隊列350與紋理單元305之間進(jìn)行通信,圖形處理單元300的一實施例在寄存器隊列350與一數(shù)據(jù)總線380之間包括一數(shù)據(jù)總線連接385,數(shù)據(jù)總線連接385又通過數(shù)據(jù)總線連接390與紋理單元305連接。執(zhí)行單元320、325及330包括類似的數(shù)據(jù)總線連接,但為清楚起見在圖3中省略了這些數(shù)據(jù)總線連接。在另一實施例中,紋理單元輸出375與數(shù)據(jù)總線380連接以與執(zhí)行單元的寄存器隊列交流最終紋理值。由于每一紋理命令均發(fā)源于諸多獨立的執(zhí)行單元中的一個且每一個執(zhí)行單元均可具有諸多獨立的線程,因此圖形處理單元300的另一實施例在每一紋理命令中均包括線程狀態(tài)信息,如紋理命令參數(shù)。線程狀態(tài)信息的實例包括一線程類型及一線程標(biāo)識。所述線程狀態(tài)信息由紋理單元305用來識別由紋理命令所提及的紋理并確定最終紋理值的目的地。圖4圖解說明一根據(jù)本發(fā)明一實施例的圖形處理單元的一加載及存儲命令排隊機構(gòu)400。加載及存儲命令指令該圖形處理單元存取外部存儲器來加載或存儲數(shù)據(jù)。加載及存儲命令排隊機構(gòu)400以一類似于紋理排隊機構(gòu)200的方式操作。一控制單元400與圖形處理單元的其余部分協(xié)調(diào)加載/存取單元410的操作。加載/存儲單元410負(fù)責(zé)從外部存儲器檢索數(shù)據(jù)或?qū)?shù)據(jù)存儲于外部存儲器415中。在一實施例中,加載/存儲單元410自控制單元205接收加載/存儲命令。所述加載/存儲命令指定要執(zhí)行的操作的類型(例如加載或存儲)及所述操作所需的其它參數(shù)(例如存儲地址)。另外,加載/存儲命令通常需要將數(shù)據(jù)存儲于存儲器中或自存儲器加載一數(shù)據(jù)目的地。在加載/存儲命令排隊機構(gòu)400中,控制單元405將加載/存儲命令(例如命令425)寫入至請求緩沖器420。在一實施例中,請求緩沖器420為一 FIFO。加載/存儲命令425指定所述加載/存儲操作的參數(shù)。在一實施例中,加載/存儲命令為32位長;因此,請求緩沖器420僅需為32位寬。除加載/存儲命令425中所包括的參數(shù)外,加載/存儲單元410還需要一數(shù)據(jù)(在為一存儲命令的情況下)或一目的寄存器(在為一加載命令的情況下)。本發(fā)明的一實施例并非創(chuàng)建一大到足以容納加載/存儲命令及相關(guān)聯(lián)數(shù)據(jù)二者的請求緩沖器,而是將一存儲命令的數(shù)據(jù)存儲于寄存器隊列430的一寄存器435中。通過將紋理自變量存儲于寄存器隊列430中,請求緩沖器420的尺寸會大大減小。同樣地,寄存器435充當(dāng)通過一加載操作所檢索的數(shù)據(jù)的一目的寄存器。加載/存儲單元410依次從請求緩沖器420中檢索并處理加載/存儲命令。一旦從請求緩沖器420中檢索到一存儲命令425,加載/存儲單元410便還從寄存器隊列430中的寄存器435中檢索450數(shù)據(jù)。一加載命令在寄存器隊列430中指定一寄存器(例如寄存器435)來存儲所加載的數(shù)據(jù)。一旦所述加載操作完成,加載/存儲單元410便將所加載數(shù) 據(jù)455輸出至寄存器隊列430,在此處將加載數(shù)據(jù)455寫入至寄存器435。在另一實施例中,使用一記分板機構(gòu)來鎖定寄存器隊列430中與加載/存儲命令425相關(guān)聯(lián)的寄存器以防止執(zhí)行單元改變寄存器內(nèi)容,直到加載/存儲操作完成為止。執(zhí)行單元無法對被鎖定的寄存器進(jìn)行寫入;然而,加載/存儲單元410卻仍可存取被鎖定的寄存器。對于一儲存操作而言,控制單元405是在存儲命令被置于請求緩沖器420中時被鎖定。此寄存器保持鎖定狀態(tài)直至加載/存儲單元從寄存器435中檢索到所述數(shù)據(jù)為止。對于一加載操作而言,寄存器435-其充當(dāng)所加載數(shù)據(jù)的一目的寄存器-是在加載命令被置于請求緩沖器420中時被鎖定。此寄存器保持鎖定狀態(tài)直至加載/存儲單元完成加載操作且所加載數(shù)據(jù)445存儲于寄存器435中為止。在一實施例中,加載/存儲單元410被管線化并能夠同時在不同的紋理管線級中處理不同的加載/存儲命令。為了確保每一加載命令的結(jié)果均存儲于正確的寄存器中,力口載/存儲單兀410的一實施例包括一標(biāo)記存儲器或緩沖器465。本發(fā)明使一圖形處理單元能夠?qū)Υ罅考y理請求進(jìn)行排隊以抵消紋理請求的可變性而無需一大的紋理請求緩沖器。在一實施例中,將紋理自變量存儲于被指定為由紋理單元所計算出的最終紋理值的目的地的通用寄存器中。由于在對紋理命令進(jìn)行排隊時必須為最終紋理值分配目的寄存器,因此將紋理自變量存儲于此寄存器中并不耗用任何額外的寄存器。雖然上文是參照具體實例及其實施例來闡述本發(fā)明,但這些實例及實施例僅例示而非限定本發(fā)明。因此,本發(fā)明的范圍將僅由權(quán)利要求書來確定。
權(quán)利要求
1.一種處理數(shù)據(jù)訪問命令的方法,所述方法包括 將數(shù)據(jù)命令自變量存儲于寄存器文件的通用寄存器中; 向請求緩沖器發(fā)出數(shù)據(jù)命令,其中所述數(shù)據(jù)命令與所述數(shù)據(jù)命令自變量相關(guān)聯(lián),并且其中所述請求緩沖器包括與所述寄存器文件分開的數(shù)據(jù)存儲位置; 自所述請求緩沖器取回所述數(shù)據(jù)命令; 從所述通用寄存器中取回所述數(shù)據(jù)命令自變量; 執(zhí)行所述數(shù)據(jù)命令以將數(shù)據(jù)從外部存儲器加載到寄存器文件的目的寄存器,或?qū)碜约拇嫫魑募脑醇拇嫫髦械臄?shù)據(jù)存儲到外部存儲器中。
2.如權(quán)利要求I的方法,其中所述數(shù)據(jù)命令包括存儲數(shù)據(jù)命令,所述數(shù)據(jù)命令自變量 包括將要存儲在外部存儲器中的數(shù)據(jù),且其中執(zhí)行所述數(shù)據(jù)命令還包括將要存儲在外部存儲器的數(shù)據(jù)寫入到所述外部存儲器中。
3.如權(quán)利要求I的方法,其中所述數(shù)據(jù)命令包括加載數(shù)據(jù)命令,所述數(shù)據(jù)命令自變量包括目的寄存器地址,所述目的寄存器地址用于識別將要用于存儲從外部存儲器加載的數(shù)據(jù)的寄存器文件中的寄存器。
4.如權(quán)利要求3的方法,其中所述源和目的寄存器是相同的寄存器,使得執(zhí)行數(shù)據(jù)命令導(dǎo)致從外部存儲器中加載的數(shù)據(jù)覆蓋所述數(shù)據(jù)命令自變量。
5.如權(quán)利要求3的方法,其中所述源寄存器與目的寄存器分開,使得數(shù)據(jù)命令自變量不被覆蓋,由此執(zhí)行所述數(shù)據(jù)命令以從外部存儲器加載數(shù)據(jù)。
6.如權(quán)利要求I的方法,還包括 響應(yīng)于發(fā)出數(shù)據(jù)命令而鎖定源寄存器,以防止對數(shù)據(jù)命令自變量的改動,以及響應(yīng)于執(zhí)行數(shù)據(jù)命令從而解鎖所述源寄存器。
7.如權(quán)利要求6的方法,其中數(shù)據(jù)命令包括存儲數(shù)據(jù)命令,且其中源寄存器被鎖定直到將從所述源寄存器存儲的數(shù)據(jù)從源寄存器中取回為止。
8.如權(quán)利要求6的方法,其中數(shù)據(jù)命令包括存儲數(shù)據(jù)命令,且其中源寄存器被鎖定直到將所述外部存儲器中的數(shù)據(jù)加載到目的寄存器中為止。
9.一種圖形處理子系統(tǒng),其包括 執(zhí)行單元,其包括請求緩沖器及寄存器文件,所述寄存器文件包括復(fù)數(shù)個通用寄存器,其中所述請求緩沖器包括不同于所述寄存器文件的數(shù)據(jù)存儲位置,且其中執(zhí)行單元適于向所述請求緩沖器發(fā)出數(shù)據(jù)命令,并將數(shù)據(jù)命令自變量存儲于所述寄存器文件的源寄存器中; 加載和存儲單元,其配置為從所述請求緩沖器中讀取所述數(shù)據(jù)命令,并從所述寄存器文件的源寄存器中取回所述數(shù)據(jù)命令自變量;及 其中所述加載和存儲單元進(jìn)一步配置為將數(shù)據(jù)從外部存儲器加載到所述寄存器文件的復(fù)數(shù)個寄存器中的目的寄存器中,并將數(shù)據(jù)從所述寄存器文件存儲到外部存儲器中。
10.如權(quán)利要求9的圖形處理子系統(tǒng),其中所述數(shù)據(jù)命令包括存儲數(shù)據(jù)命令,所述數(shù)據(jù)命令自變量包括將要存儲在外部存儲器中的數(shù)據(jù)。
11.如權(quán)利要求9的圖形處理子系統(tǒng),其中所述數(shù)據(jù)命令包括加載數(shù)據(jù)命令,所述數(shù)據(jù)命令自變量包括目的寄存器地址,所述目的寄存器地址用于識別將要用于存儲從外部存儲器加載的數(shù)據(jù)的寄存器文件中的寄存器。
12.如權(quán)利要求11的圖形處理子系統(tǒng),其中所述源和目的寄存器是相同的寄存器,使得所述加載和存儲單元配置為當(dāng)存儲從外部存儲器中加載的數(shù)據(jù)時,覆蓋所述數(shù)據(jù)命令自變量。
13.如權(quán)利要求11的圖形處理子系統(tǒng),其中所述源寄存器與目的寄存器分開,使得當(dāng)將從外部存儲器加載的數(shù)據(jù)存儲到目的寄存器中時,數(shù)據(jù)命令自變量不被覆蓋。
14.如權(quán)利要求9的圖形處理子系統(tǒng),其中所述執(zhí)行單元配置為響應(yīng)于發(fā)出數(shù)據(jù)命令而鎖定源寄存器從而防止對數(shù)據(jù)命令自變量的改動,以及響應(yīng)于執(zhí)行數(shù)據(jù)命令而解鎖所述源寄存器。
15.如權(quán)利要求14的圖形處理子系統(tǒng),其中所述執(zhí)行單元配置為當(dāng)所述數(shù)據(jù)命令包括存儲數(shù)據(jù)命令時,將源寄存器鎖定,直到所述加載和存儲單元從所述源寄存器中取回將要存儲的數(shù)據(jù)為止。
16.如權(quán)利要求14的圖形處理子系統(tǒng),其中所述執(zhí)行單元配置為當(dāng)所述數(shù)據(jù)命令包括加載數(shù)據(jù)命令時,將源寄存器鎖定,直到所述加載和存儲單元將要加載的數(shù)據(jù)放置到目的寄存器中為止。
全文摘要
一圖形處理單元可對大量紋理請求進(jìn)行排隊以抵消紋理請求的可變性而無需使用一大的紋理請求緩沖器。一專用紋理請求緩沖器對相對小的紋理命令及參數(shù)進(jìn)行排隊。另外,對于每一排隊的紋理命令而言,相關(guān)聯(lián)的一組紋理自變量通常遠(yuǎn)遠(yuǎn)大于存儲于一通用寄存器中的所述紋理命令。所述紋理單元從所述紋理請求緩沖器中檢索紋理命令并隨后從適當(dāng)?shù)耐ㄓ眉拇嫫髦刑崛∠嚓P(guān)聯(lián)的紋理自變量。所述紋理自變量可存儲于被指定為由所述紋理單元所計算出的最終紋理值的目的地的通用寄存器中。由于在對紋理命令進(jìn)行排隊時必須為所述最終紋理值分配所述目的寄存器,因此將所述紋理自變量存儲于此寄存器中并不耗用任何額外的寄存器。
文檔編號G06T11/60GK102750664SQ20121012046
公開日2012年10月24日 申請日期2005年2月9日 優(yōu)先權(quán)日2004年2月27日
發(fā)明者布雷特·W·庫恩, 約翰·R·尼克科爾斯, 約翰·埃里克·林霍爾姆, 西蒙·S·莫伊 申請人:輝達(dá)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1