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

低功率可編程處理器的制作方法

文檔序號:2610400閱讀:221來源:國知局
專利名稱:低功率可編程處理器的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般來說涉及可編程處理器。更特定來說,本發(fā)明是針對用于圖形應(yīng)用的低功率可編程處理器。
背景技術(shù)
在多種電子游戲和其他應(yīng)用中所關(guān)注的是三維圖形圖像的生成。常規(guī)上,用于產(chǎn)生場景的三維圖象的步驟中的某些步驟包括產(chǎn)生將要顯示的物體的三維模型。形成幾何圖元(例如三角形),所述幾何圖元和深度信息一起被映射到二維投影。呈現(xiàn)(繪圖)圖元包括對一圖元的每個二維投影的插值參數(shù),例如深度和色彩。
圖形處理單元(GPU)在圖形系統(tǒng)中常用于響應(yīng)來自中央處理器的指令而產(chǎn)生三維圖形。現(xiàn)代GPU通常利用圖形管線來處理數(shù)據(jù)。圖1是傳統(tǒng)管線結(jié)構(gòu)的現(xiàn)有技術(shù)圖,所述管線結(jié)構(gòu)是具有專用于執(zhí)行特定功能的級的“深”管線。變換級105執(zhí)行圖元的幾何計算,且還可執(zhí)行剪輯操作。設(shè)置/光柵級110對圖元光柵化。紋理尋址級115和紋理獲取120級用于紋理映射。霧化級130建構(gòu)一霧化算法(fog algorithm)。α測試級135執(zhí)行α測試。深度測試級140執(zhí)行深度測試以挑選遮擋像素。α混合級145執(zhí)行α混色組合算法。存儲器寫入級150寫入管線的輸出。
圖1所示的傳統(tǒng)GPU管線結(jié)構(gòu)通常經(jīng)最優(yōu)化以用于使用OpenGL圖形語言進行快速紋理化。深管線結(jié)構(gòu)的好處在于其允許非常復(fù)雜的場景的快速高質(zhì)量呈現(xiàn)。
人們越來越有興趣在無線電話、個人數(shù)字助理(PDA)和其他設(shè)備中利用三維圖形,這些設(shè)備中成本和功耗是重要的設(shè)計要求。然而,傳統(tǒng)的深管線結(jié)構(gòu)要求很大的芯片面積,從而導(dǎo)致超過預(yù)期的較多成本。另外,即使各個級執(zhí)行相對很少的處理,深管線仍消耗很多功率。這是因為各級中的許多級無論其是否處理像素,都會消耗大約相同量的功率。
出于成本和功率考慮,圖1所示的常規(guī)深管線結(jié)構(gòu)不適合許多圖形應(yīng)用,例如在無線電話和PDA上建構(gòu)三維游戲。
因此,需要的是一種適于圖形處理應(yīng)用而且具有降低的功率和尺寸要求的處理器結(jié)構(gòu)。

發(fā)明內(nèi)容
一種圖形處理器包括一用于處理像素包的可編程算術(shù)邏輯單元(ALU)級。在ALU級中對像素包執(zhí)行標量算術(shù)操作以建構(gòu)圖形功能。
一種對一像素執(zhí)行一圖形處理操作的方法的一個實施例包括識別將要對像素包執(zhí)行以建構(gòu)圖形功能的標量算術(shù)操作的一序列;針對所述像素產(chǎn)生復(fù)數(shù)個像素包,每一像素包包括將要作為標量算術(shù)操作序列中的操作數(shù)進行處理的像素屬性的一子集;在至少一個ALU中,從所述像素包讀取操作數(shù);和根據(jù)用于執(zhí)行標量算術(shù)操作序列的指令序列來執(zhí)行標量算術(shù)操作。
一種圖形處理器的一個實施例包括一可編程ALU級,其具有用于處理像素包的至少一個ALU,每一ALU經(jīng)編程以具有至少一個可能的標量算術(shù)操作的一集合,對一具有一相應(yīng)當前指令的引入像素包執(zhí)行所述標量算術(shù)操作的集合,其中對像素包執(zhí)行一序列的算術(shù)操作以執(zhí)行一圖形處理功能。


聯(lián)系下文結(jié)合附圖進行的詳細描述可更完全地了解本發(fā)明,其中圖1是三維圖形的現(xiàn)有技術(shù)管線的圖;圖2是根據(jù)本發(fā)明一個實施例的包括可編程圖形處理器的集成電路的方框圖;圖3是根據(jù)本發(fā)明一個實施例的可編程圖形處理器的方框圖;圖4說明根據(jù)本發(fā)明一個實施例的示范性像素包;圖5說明根據(jù)本發(fā)明一個實施例的像素包群組的成行像素包的示范性排列;圖6是根據(jù)本發(fā)明一個實施例的單個算術(shù)邏輯單元的方框圖;圖7是根據(jù)本發(fā)明一個實施例的兩個算術(shù)邏輯單元的序列的方框圖;圖8是根據(jù)本發(fā)明一個實施例的可配置可編程圖形處理器的方框圖;圖9說明根據(jù)本發(fā)明一個實施例的像素包的行的交錯;圖10是說明根據(jù)本發(fā)明一個實施例的具有配置寄存器的算術(shù)邏輯單元的方框圖;和圖11是說明根據(jù)本發(fā)明一個實施例的可配置測試點選擇器的方框圖。
在附圖的所有幾張圖中,類似參考數(shù)字表示對應(yīng)的部件。
具體實施例方式
圖2是本發(fā)明一個實施例的方框圖??删幊虉D形處理器205耦合到寄存器接口210、主機接口220和存儲器接口,例如具有一圖形存儲器(未圖示)(例如幀緩沖器)的用于存儲器讀/寫操作的直接存儲器存取(DMA)引擎230。主機接口220允許可編程圖形處理器205從一主機接收用于產(chǎn)生圖形圖像的命令。舉例來說,主機可將頂點數(shù)據(jù)、命令和程序指令發(fā)送到可編程圖形處理器205。存儲器接口(例如DMA引擎230)允許用圖形存儲器(未圖示)執(zhí)行讀/寫操作。寄存器接口210提供一接口用來與可編程圖形處理器205的寄存器建立連接。
可編程圖形處理器205可建構(gòu)為系統(tǒng)290的一部分,系統(tǒng)290包括執(zhí)行軟件應(yīng)用程序270的至少一個其他的中央處理單元260,其用作可編程圖形處理器205的主機。示范性系統(tǒng)290(例如)可包含一手持單元,例如手機或個人數(shù)字助理(PDA)。舉例來說,軟件應(yīng)用程序270可包括一用于在顯示器295上產(chǎn)生圖形圖像的圖形應(yīng)用程序275。另外,如下文更詳細描述,在某些實施例中軟件應(yīng)用程序270可包括圖形處理器管理軟件應(yīng)用程序280,其用于執(zhí)行與可編程圖形處理器205相關(guān)聯(lián)的管理功能,例如管線重新配置、寄存器配置以及測試。
在一個實施例中,可編程圖形處理器205、寄存器接口210、主機接口220和DMA引擎230是形成于包括一主機的單個集成電路200上的嵌入式圖形處理核心250的部分,所述單個集成電路200例如為形成于一包括使軟件270駐存在存儲器中的中央處理單元260的芯片上的集成電路200。或者,圖形處理核心250可安置在第一集成電路上且CPU260安置在第二集成電路上。
圖3是更詳細說明根據(jù)本發(fā)明一個實施例的可編程圖形處理器205的方框圖。其包括設(shè)置級305、光柵級310、門監(jiān)320、數(shù)據(jù)獲取級330、算術(shù)邏輯單元(ALU)級340、數(shù)據(jù)寫入級355和再循環(huán)路徑360。在一個實施例中,可編程圖形處理器205包括ALU350,ALU 350經(jīng)配置以執(zhí)行著色器程序來建構(gòu)三維圖形操作,例如紋理組合、霧化、α混合(例如色彩混合)、α測試(例如色彩測試)、Z深度測試,或其他著色算法。然而,在以下整個討論中將了解,可編程圖形處理器205也可經(jīng)配置以執(zhí)行其他類型的處理操作。
設(shè)置級305從一主機接收指令,例如運行于集成電路200上的軟件應(yīng)用程序。在一個實施例中,設(shè)置級305執(zhí)行坐標(X形式)幾何變換、剪輯和設(shè)置的功能。設(shè)置單元獲取頂點信息(例如x、y、z、色彩和/或紋理屬性)并應(yīng)用用戶定義的視圖變換來計算每一幾何圖元(下文中描述為三角形,因為圖元通常建構(gòu)為三角形)的屏幕空間坐標,接著將所述坐標發(fā)送到光柵級310以描繪給定三角形??砂旤c緩沖器308以提供由設(shè)置級305使用的頂點數(shù)據(jù)的緩沖。在一個實施例中,設(shè)置級305設(shè)置重心系數(shù)。在一個建構(gòu)方案中,設(shè)置級305是支持32位IEEE浮點、S15.16定點和封裝的.8格式的浮點超大指令字(VLIW)機。
光柵級310從設(shè)置級205接收關(guān)于將要呈現(xiàn)(例如轉(zhuǎn)換為像素)的三角形。在某些實施例中,指令RAM(未圖示)可(例如)包括在光柵級310中以用于編程用于光柵級310的指令。光柵級310處理給定三角形的每一像素并確定作為呈現(xiàn)的部分的需要為像素計算的參數(shù),例如計算色彩、紋理、α測試、α混合、z深度測試和霧化參數(shù)。在一個實施例中,光柵級310計算像素包的重心系數(shù)。在重心坐標系中,三角形中的距離是相對于其頂點來測量的。重心系數(shù)的使用減小了所需的動態(tài)范圍,其允許使用比浮點計算需要更少功率的定點計算。
光柵級310針對將要處理的三角形的每一像素產(chǎn)生至少一個像素包。每一像素包包括處理所需的像素屬性(例如色彩、紋理、深度、霧化、(x,y)位置)的有效負載的字段。另外,每一像素包具有相關(guān)的包括將對像素包執(zhí)行的操作的指令序列的邊頻帶信息。光柵級210中的指令區(qū)域(未圖示)將指令分配到像素包。
圖4說明一個像素的示范性像素包430和460。在一個實施例中,光柵級210將像素屬性分割為兩個或兩個以上不同類型的像素包430和460,其中每一類型的像素包需要僅一特定類型指令起作用的像素屬性數(shù)據(jù)的字段。如果(例如)對于特定處理操作僅需要對一像素的屬性的子集進行操作,那么將像素數(shù)據(jù)分割為較小的工作單元減少了帶寬要求,且還減少了處理要求。
每一像素包具有相關(guān)的邊頻帶信息410和有效負載信息420。示范性邊頻帶信息包括有效字段412、取消字段414、標記字段,和包括當前指令的指令字段416。示范性像素包430包括第一組(s,t)紋理坐標422和424字段以及霧化字段426。示范性像素包460包括色彩字段462,和第二組紋理坐標(s,t)464和466。在一個實施例中,每一像素包以定點表示法表示有效負載信息420。一具有用于像素屬性的20位像素包尺寸的像素包中可包括的像素屬性的實例包括一個Z.16十六位Z深度值;一個16位S/T紋理坐標和4位細節(jié)等級;一對色彩值,每一個色彩值具有8位精度;或具有五位的封裝的5555 ARGB色彩,其中每一ARGB變量中各有一位。
像素包的邊頻帶信息可包括像素的(x,y)位置。然而,在一個實施例中,光柵級310在其開始沿著掃描線走過一三角形的(x,y)原點產(chǎn)生一起始取值范圍命令。起始取值范圍命令的使用允許從像素包中省略(x,y)位置。起始取值范圍命令將掃描線開始處的初始(x,y)位置通知其他實體(例如數(shù)據(jù)寫入級355和數(shù)據(jù)獲取級330)??赏ㄟ^給定像素遠離原點的像素數(shù)目來推斷沿著掃描線的其他像素的(x,y)位置。在一個實施例中,數(shù)據(jù)寫入級355和數(shù)據(jù)獲取級330包括適于增加局部計數(shù)器的局部高速緩沖存儲器,并基于其在取值范圍起始命令之后對遇到的像素數(shù)目的計算來更新(x,y)位置。
參看圖5,在一個實施例中,對于將要處理的每一像素,光柵級310產(chǎn)生像素包的至少一行510。在某些實施例中,每一行510具有界定所述行510的指令序列的共同邊頻帶信息410。如果像素需要多于一行510,就將若干行510組織成隨每一新的時鐘周期連續(xù)處理的行的群組520。在一個實施例中,將80位像素數(shù)據(jù)分割為四個20位像素屬性寄存器值,其中所述四個像素寄存器值針對像素界定像素包的一“行”510(R0、R1、R2和R3)。
光柵級310的迭代程序寄存器集區(qū)(未圖示)具有對應(yīng)的寄存器以支持像素包的行510。在一種建構(gòu)方案中,光柵級310包括一支持多達4行像素包的寄存器集區(qū)。某些類型的像素包屬性(例如紋理)可能需要高精度。相反,某些類型的像素包屬性可能需要較低精度,例如色彩。寄存器集區(qū)可經(jīng)配置以支持行510中每一像素包的高精度和低精度值。在一個實施例中,寄存器集區(qū)包括每行4個高精度和4個低精度透視校正迭代值,加上Z深度值。這允許(例如)軟件指定迭代程序的精度以用于處理特定像素包屬性。在一個實施例中,光柵級310包括一適于追蹤紋理的整數(shù)部分的寄存器集區(qū),從而作為數(shù)據(jù)包發(fā)送允許紋理的分數(shù)位。
光柵級310可(例如)從主機接收需要將對像素執(zhí)行的操作的指令。作為響應(yīng),光柵級310產(chǎn)生具有相關(guān)指令序列的像素包的一個或一個以上行510,其中所述像素包行和指令經(jīng)配置以執(zhí)行所需的處理操作。如下文更詳細地描述,在一個實施例中,ALU級340允許執(zhí)行標量算術(shù)操作,其中操作數(shù)包括像素包的行510中像素屬性的預(yù)先選擇的子集、常數(shù)值,和對像素包的先前計算臨時存儲的結(jié)果。
可將多種圖形操作公式化為一個或一個以上標量算術(shù)操作。另外,可將多種向量圖形操作公式化為復(fù)數(shù)個標量算術(shù)操作。因此將了解,本發(fā)明的可編程圖形處理器205可經(jīng)編程以對像素執(zhí)行可表示為標量算術(shù)操作的序列的任何圖形操作,例如霧化操作、色彩(α)混合、紋理組合、α測試或深度測試,例如Open GLGraphics SystemA Specification(Version 1.2)中描述的操作,其內(nèi)容以引用的方式并入本文。舉例來說,響應(yīng)于光柵級310檢測將對像素執(zhí)行的所需的圖形處理功能(例如霧化操作),光柵級310可使用可編程映射表或映射算法來確定像素包和相關(guān)指令的分配以用于執(zhí)行對像素建構(gòu)圖形功能所需的標量算術(shù)操作。例如可由圖形處理器管理應(yīng)用程序280編程所述映射。
再次返回到圖3,在光柵級310穿過三角形的每一像素時,光柵級310產(chǎn)生用于進一步處理的像素包,所述像素包由門監(jiān)320接收。門監(jiān)320執(zhí)行數(shù)據(jù)流控制功能。在一個實施例中,門監(jiān)320具有相關(guān)的記分板325,其用于像素包的調(diào)度、負載平衡、資源分配和危險避免。記分板325追蹤像素的進入和退出。進入門監(jiān)320的像素包設(shè)置記分板,且在處理完成之后,在像素包排出可編程處理器205時記分板復(fù)位。作為說明性實例,如果緊湊顯示器295具有128乘32像素的區(qū)域,那么記分板325可維持針對顯示器的每一像素的表,以監(jiān)視像素。
記分板325提供若干好處。舉例來說,記分板325防止了三角形中的一個像素位于正在處理且在行進路線中的另一像素上方的危險。在一個實施例中,記分板325監(jiān)視空閑狀態(tài)并使用記分板信息來時鐘關(guān)閉空閑單元。舉例來說,如果沒有有效像素,記分板325可關(guān)閉ALU以節(jié)省功率。如下文更詳細描述,記分板325追蹤能夠由ALU 350處理的像素包以及具有取消位設(shè)置的像素包,使得像素包在沒有有效處理的情況下流過ALU350。在一個實施例中,如果像素包再循環(huán),那么記分板325就在到達用于所述像素包的下一指令的隨后一輪中增加像素包的指令序列,例如,如果指令是用于第1輪上的霧化操作,就將指令迭代到第2輪上的α混合操作。
數(shù)據(jù)獲取級330獲取由門監(jiān)320傳遞的像素包的數(shù)據(jù)。這可包括(例如)通過對像素包的每一行執(zhí)行適當?shù)纳?、深度或紋理數(shù)據(jù)讀取來獲取色彩、深度和紋理數(shù)據(jù)。數(shù)據(jù)獲取級330可(例如)通過請求從存儲器接口的讀取(例如使用DMA引擎230讀取幀緩沖器(未圖示))來獲取像素或紋元(texel)數(shù)據(jù)。在一個實施例中,數(shù)據(jù)獲取級330還可管理一局部高速緩沖存儲器,例如紋理/霧化高速緩沖存儲器332、色彩/深度高速緩沖存儲器334,和用于深度數(shù)據(jù)的Z高速緩沖存儲器(未圖示)。在將像素包發(fā)送到下一級之前,將獲取的數(shù)據(jù)置于對應(yīng)的像素包字段上。在一個實施例中,數(shù)據(jù)獲取級330包括指令隨機存取存儲器(RAM),其具有用于存取像素包屬性字段所需數(shù)據(jù)的指令。在某些實施例中,數(shù)據(jù)獲取級330還執(zhí)行Z深度測試。在此實施例中,數(shù)據(jù)獲取級330使用一個或一個以上深度比較測試來比較像素包的Z深度值與存儲的Z值。如果像素的Z深度值指示所述像素為遮擋的,就設(shè)置取消位。
像素包的行進入算術(shù)邏輯單元(ALU)級340用于處理。ALU級340具有包括至少一個ALU 350的一組ALU 350,例如ALU 350-0、350-1、350-2和350-3。雖然說明四個ALU 350,但視應(yīng)用在ALU級340中可使用更多或更少的ALU 350。個別ALU 350讀取用于像素包的至少一行510的當前指令,并建構(gòu)任一指令來執(zhí)行經(jīng)編程以進行支持的標量算術(shù)操作。指令包括在每一ALU 350中,且可(例如)存儲在局部指令RAM(圖3中未圖示)上。
每一ALU 350包括用于對第一操作數(shù)乘積(a*b)和第二操作數(shù)乘積(b*c)執(zhí)行至少一個算術(shù)操作的指令,其中a、b、c和d為操作數(shù)且*為乘法運算。所述操作數(shù)中的某些或全部可對應(yīng)于(例如)像素包的行510中的寄存器值屬性。ALU 350還可具有作為常數(shù)或可軟件載入的一個或一個以上操作數(shù)值。在某些實施例中,ALU可支持使用由對像素包的先前操作臨時存儲的結(jié)果。
在一個實施例中,每一ALU 350是可編程的。交叉開關(guān)(crossbar)(未圖示)或其他可編程選擇器可包括在ALU 350中以允許響應(yīng)于來自軟件(例如軟件應(yīng)用程序270)的指令來選擇操作數(shù)和結(jié)果的目的地。舉例來說,在一個實施例中,操作命令碼可用于從像素包的行510中的任一寄存器值、臨時值和常數(shù)值的屬性中選擇每一操作數(shù)(a、b、c、d)的來源。在此實施例中,操作命令還指示ALU 350將算術(shù)操作的結(jié)果發(fā)送到何處,例如用結(jié)果更新像素包,將結(jié)果保存為臨時值,或用結(jié)果更新像素包并將結(jié)果保存為臨時值。因此,舉例來說,ALU可經(jīng)編程以讀取像素包中的特定屬性作為操作數(shù),并應(yīng)用當前指令所指示的標量算術(shù)操作。操作命令碼還可包括對操作數(shù)求補(例如計算1-x,其中x為讀取值)、對操作數(shù)求反(例如計算-x,其中x為讀取值)或?qū)Σ僮鲾?shù)或結(jié)果進行箝位的命令。操作命令碼的其他實例可包括(例如)用于選擇數(shù)據(jù)格式的命令。
由ALU 350執(zhí)行的算術(shù)操作的實例是對像素包中的至少一個變量的(a*b)+(c*d)形式的標量算術(shù)操作,其中a、b、c和d是操作數(shù)且*操作為乘法運算。每一ALU 350優(yōu)選還可經(jīng)編程以執(zhí)行其他數(shù)學操作,例如對操作數(shù)求補和對操作數(shù)求反。另外,在某些實施例中,每一ALU 350可計算(a*b,c*d)的最小和最大值,并執(zhí)行邏輯比較(例如a*b等于、不等于、小于、或小于等于c*d時的邏輯結(jié)果)。
在某些實施例中,每一ALU 350還可包括基于測試(例如a*b與c*d的比較)來確定是否在取消字段414中產(chǎn)生一取消位的指令(例如,在a*b不等于c*d時取消,在a*b等于c*d時取消,在a*b小于c*d時取消,或在a*b大于等于c*d時取消)。可產(chǎn)生取消位的ALU操作的實例包括α測試,其中將一色彩值與一測試色彩值進行比較,例如表示式IF(alpha>alpha reference),then kill the pixel,其中alpha為色彩值,且alpha reference為參考色彩值??僧a(chǎn)生取消位的ALU操作的另一實例為Z深度測試,其中將像素的Z值與具有同一位置的先前像素的至少一個Z值進行比較,如果深度測試指示所述像素是遮擋的,就取消所述像素。
在一個實施例中,如果像素包中設(shè)置了取消位,那么關(guān)于處理所述像素包,個別ALU350是被停用的。在一個實施例中,時鐘選通機制用于在邊頻帶信息中檢測到取消位時停用ALU 350。因此,當針對像素包產(chǎn)生取消位時,在像素包傳播通過ALU級340時,ALU 350不會在所述像素包上浪費功率。然而請注意,具有取消位設(shè)置的像素包仍向前傳播,從而允許其被數(shù)據(jù)寫入級355和記分板325考慮。這允許所有的像素包被記分板325考慮,即使是由取消位標記為不需要進一步ALU處理的那些像素包。在一個實施例中,如果像素的任一行510由取消位標記,同一像素的其他行510也被取消。這可(例如)通過在各級之間轉(zhuǎn)發(fā)取消信息或通過一個或一個以上級追蹤其中行510由取消位標記的像素來完成。在某些實施例中,一旦設(shè)置了取消位,那么僅像素包的行510的邊頻帶信息410(包括所述取消位)傳播到下一級。
ALU級340的輸出到達數(shù)據(jù)寫入級355。數(shù)據(jù)寫入級355將經(jīng)處理的像素包轉(zhuǎn)換為像素數(shù)據(jù),并將結(jié)果寫到存儲器接口(例如,經(jīng)由DMA引擎230)。在一個實施例中,像素的寫入值積累在寫入緩沖器352中,且像素的積累的寫入是成批寫到存儲器的。數(shù)據(jù)寫入級355可執(zhí)行的功能的實例包括色彩和深度回寫(writeback)和格式轉(zhuǎn)換。在某些實施例中,數(shù)據(jù)寫入級355還可識別將取消的像素并設(shè)置取消位。
包括再循環(huán)路徑360以將像素包再循環(huán)回到門監(jiān)320。再循環(huán)路徑360允許(例如)需要使用通過ALU級340一遍或一遍以上來執(zhí)行的算術(shù)操作的序列的處理。數(shù)據(jù)寫入級355指示對門監(jiān)320退出的寫入以用于記分板記分。
圖6是示范性個別ALU 350的方框圖。ALU 350具有輸入總線605,其具有用于將像素包的行510接收到對應(yīng)寄存器R0、R1、R2和R3中的數(shù)據(jù)總線。在方框620中說明一組示范性指令。在一個實施例中,ALU 350可經(jīng)編程以從行510中讀取四個20位寄存器值中的任一個,并從行510中選擇一組操作數(shù)。另外,ALU 350可經(jīng)編程以從寄存器(T)630中選擇臨時值作為操作數(shù),例如每個ALU 350兩個20位臨時值,所述臨時值是由先前結(jié)果保存的,如路徑640所指示。ALU 350還可選擇常數(shù)值(未圖示)作為操作數(shù),其也可由軟件編程。在一個實施例中,多工器(MUX)645的第一級從像素包的行、任何臨時值630和任何常數(shù)值(未圖示)中選擇操作數(shù)。可包括格式轉(zhuǎn)換模塊650以將操作數(shù)轉(zhuǎn)換為適于算術(shù)計算單元670中ALU 350計算精度的所需數(shù)據(jù)格式。ALU 350包括用于允許在MUX 660的第二級中選擇每一操作數(shù)或其補數(shù)的元件。將所得的四個操作數(shù)輸入到標量算術(shù)計算單元670,其可執(zhí)行兩個乘法運算和一個加法運算??墒褂皿槲黄?80視需要將所得值箝位在所需范圍(例如0到1.0)。像素包的行510通過總線690退出。
在一個實施例中,選定的像素包屬性可為一個記號1.8(S1.8)格式。S1.8格式是具有8位分數(shù)的以2為基的數(shù),其處于[-2到+2)的范圍中。S1.8格式允許計算的較高的動態(tài)范圍。舉例來說,在處理照明的計算中,S1.8格式允許增加的動態(tài)范圍,從而導(dǎo)致改進的實現(xiàn)。如果S1.8中執(zhí)行的標量算術(shù)操作的結(jié)果必須在
的范圍中,那么可對所述結(jié)果進行箝位以迫使所述結(jié)果處于范圍
中。作為說明性實例,可以S1.8格式執(zhí)行色彩數(shù)據(jù)的著色計算,并接著對結(jié)果進行箝位。請注意,在本發(fā)明的實施例中,不同類型的像素包可具有以不同格式表示的數(shù)據(jù)屬性。舉例來說,色彩數(shù)據(jù)可在第一類型的像素包中以S1.8格式表示,而(s,t)紋理數(shù)據(jù)可在第二類型的像素包中以高精度16位格式表示。在某些實施例中,由最高精度像素屬性的位尺寸要求來設(shè)置像素包位尺寸。舉例來說,因為紋理屬性通常比色彩需要更高的精度,所以可設(shè)置像素包尺寸以表示具有高等級精度的紋理數(shù)據(jù),例如16位紋理數(shù)據(jù)。S1.8格式的改進動態(tài)范圍允許(例如)將一個以上色彩成分的數(shù)據(jù)有效封裝為經(jīng)選擇以用于較高精度數(shù)據(jù)紋理數(shù)據(jù)的20位像素包尺寸,其需要(例如)16位用于紋理數(shù)據(jù)和4位細節(jié)等級(LOD)。舉例來說,因為每一S1.8色彩成分需要10位,所以可將兩個色彩成分封裝為20位像素包。
圖7說明示范性ALU級340,其包括配置為管線的一個以上ALU 350,其中兩個或兩個以上ALU 350鏈接在一起。如先前描述,個別ALU 350可經(jīng)編程以從像素包中讀取一個或一個以上操作數(shù),從而產(chǎn)生算術(shù)操作的結(jié)果,并用所述結(jié)果更新像素包或臨時寄存器。每一ALU可經(jīng)分配以在將像素包的一行傳遞到下一ALU之前讀取操作數(shù),產(chǎn)生算術(shù)結(jié)果,并更新一個或一個以上像素包或臨時值。
依照執(zhí)行的處理操作、ALU等待時間和效率考慮,可以多種方式配置ALU級340中ALU 350之間的數(shù)據(jù)流。如先前描述,本發(fā)明允許每一ALU經(jīng)編程以讀取像素包的行中的選定操作數(shù),并用結(jié)果更新選定的像素包寄存器。在一個實施例中,對于每一色彩通道(例如紅、綠、藍和α),ALU級340包括至少一個ALU 350。這允許(例如)負載平衡,其中ALU經(jīng)配置以對像素包的行510并行操作(盡管由于管線操作而在不同的時間點操作)以執(zhí)行類似或不同的處理任務(wù)。作為可如何編程ALU 350的一個實例,第一ALU 350-0可經(jīng)編程以執(zhí)行針對第一色彩成分的計算,第二ALU 350-1可經(jīng)編程以執(zhí)行針對第二色彩成分的操作,第三ALU 350-2可經(jīng)編程以執(zhí)行針對第三色彩成分的操作,且第四ALU 350-3可經(jīng)編程以執(zhí)行霧化操作。因此,在某些實施例中,對于像素包的行510,可對每一ALU 350分配不同的處理任務(wù)。另外,如下文更詳細的描述,在某些實施例中,軟件可配置ALU 350以選擇ALU級340中ALU 350的數(shù)據(jù)流,包括ALU 350的執(zhí)行次序。然而,因為數(shù)據(jù)流可配置,所以將了解,在某些實施例中,沿著ALU的鏈的數(shù)據(jù)流可經(jīng)配置以使得一個ALU 350-0的結(jié)果更新一個或一個以上像素包寄存器,所述結(jié)果由隨后的ALU 350-1讀取作為操作數(shù)。
圖8是具有可重新配置管線的可編程圖形處理器205的一部分的實施例的方框圖,其中通過各級的像素包的處理流可響應(yīng)于軟件命令來配置,例如來自圖形處理器管理應(yīng)用程序280的軟件命令。耦合到各級的元件的個別輸入和輸出的分配器890和895允許重新配置像素包的處理流。所述級可包括(例如)數(shù)據(jù)拾取級830、數(shù)據(jù)寫入級855和個別ALU 850,盡管將了解其他類型也可使用分配器890和895來重新配置。在某些實施例中,軟件可動態(tài)重新配置通過所述級的像素包的處理流。因此優(yōu)選利用同步技術(shù)來協(xié)調(diào)在從一個配置轉(zhuǎn)換為另一配置期間處在行進路線中的像素包的數(shù)據(jù)流,即,執(zhí)行一同步以使得在第一配置中希望處理的在行進路線中的像素包在配置改變?yōu)榈诙渲弥巴瓿善涮幚怼?br> 在一個實施例中,數(shù)據(jù)獲取級830、數(shù)據(jù)寫入級855和個別ALU 850具有每一者連接到第一分配器890的個別輸入,和每一者連接到第二分配器895的個別輸出。每一分配器890和895可(例如)包含開關(guān)、交叉開關(guān)、路由器或MUX電路以選擇到達數(shù)據(jù)獲取級830、ALU 850和數(shù)據(jù)寫入級855的引入像素包的分配流。分配器890和895確定通過數(shù)據(jù)獲取級830、數(shù)據(jù)寫入級855和個別ALU 850的引入像素包810的數(shù)據(jù)路徑。信號輸入892和894允許分配器890和895接收軟件命令(例如來自運行于一CPU上的軟件應(yīng)用程序),以重新配置數(shù)據(jù)獲取級830、數(shù)據(jù)寫入級855和ALU 850之間的像素包的分配。重新配置的一個實例是分配ALU 850的執(zhí)行次序。重新配置的另一實例是,如果確定數(shù)據(jù)獲取級對于某一時間處理任務(wù)來說是不需要的,就對數(shù)據(jù)獲取級830設(shè)旁路。作為重新配置的又一實例,可能需要改變數(shù)據(jù)獲取級830耦合到ALU的次序。作為另一實例,可能需要對數(shù)據(jù)寫入級855再排序。作為說明性實例,可能存在在數(shù)據(jù)獲取之前對紋理坐標進行操作是更有效的情況,在此情況下,數(shù)據(jù)流經(jīng)配置以使數(shù)據(jù)獲取級830在ALU 850執(zhí)行紋理操作之后接收像素包。因此,可重新配置管線的一個好處在于,軟件應(yīng)用程序可重新配置可編程圖形處理器205以增加效率。
再次參看圖5,如先前論述,光柵級310產(chǎn)生像素包的行510用于處理??蓪⑿?10進一步配置為行的群組520,例如四個行510的序列,所述行經(jīng)傳遞以用于連續(xù)時鐘周期中的處理。然而,可對像素包的行510執(zhí)行的某些操作可能需要像素包的另一行的算術(shù)操作的結(jié)果。因此,在一個實施例中,光柵級310將像素包配置在行的群組520中以考慮數(shù)據(jù)依賴性。作為說明性實例,如果對一個像素包的紋理操作需要一個行中另一像素包的結(jié)果,就配置群組520以使得具有依賴性紋理操作的像素包被置于后行中。
參看圖9,在一個實施例中,光柵級310將像素交替分配為奇數(shù)或偶數(shù)。將像素的每一行的對應(yīng)寄存器(R0、R1、R2和R3)對應(yīng)分配為偶數(shù)或奇數(shù)。接著利用一個或一個以上規(guī)則使偶數(shù)像素的像素包的偶數(shù)行905和奇數(shù)像素的奇數(shù)行910交錯,以避免數(shù)據(jù)依賴性。隔行交錯提供一額外的時鐘周期以考慮ALU等待時間。因此,如果偶數(shù)像素的第0行需要兩個時鐘周期來產(chǎn)生偶數(shù)像素的第1行所需的結(jié)果,奇數(shù)像素的第0行的交錯提供ALU等待時間所需的時間的額外時鐘周期。作為說明性實例,考慮一多紋理操作,其中偶數(shù)像素的第0行為混合操作,且同一像素的第1行對應(yīng)于需要第一混合操作的結(jié)果與第二紋理的混合。如果第一操作的ALU等待時間為兩個時鐘周期,那么交錯允許混合操作的結(jié)果可用于具有混合操作的紋理。
在交錯的實施例中,優(yōu)選包括邊頻帶信息以協(xié)調(diào)交錯的數(shù)據(jù)流。舉例來說,在一個實施例,每一像素包中的邊頻帶信息包括一偶數(shù)/奇數(shù)字段以區(qū)別偶數(shù)與奇數(shù)行。每一ALU 350還可包括對應(yīng)于用于偶數(shù)像素和奇數(shù)像素的臨時寄存器的兩組臨時寄存器,以為偶數(shù)/奇數(shù)像素包提供適當?shù)呐R時值。偶數(shù)/奇數(shù)字段用于選擇適當組的臨時寄存器,例如,為奇數(shù)像素選擇偶數(shù)臨時寄存器,而為偶數(shù)像素選擇一組奇數(shù)臨時寄存器。在一個實施例中,偶數(shù)與奇數(shù)像素共享常數(shù)寄存器以減少用于偶數(shù)與奇數(shù)像素的常數(shù)值的存儲需要總量。在一個實施例中,軟件主機可將臨時寄存器設(shè)置在常數(shù)值持續(xù)一延長的時間段以模擬常數(shù)寄存器。雖然兩個像素的交錯是一種建構(gòu)方案,但將了解,如果(例如)ALU等待時間相當于兩個以上時鐘周期,那么交錯可進一步延長以使兩個以上像素交錯。使光柵級310交錯像素包的一個好處在于,硬件考慮了ALU等待時間,從而減少了軟件考慮假如(例如)光柵級310未交錯像素那么將會發(fā)生的ALU等待時間的負擔。
如先前討論,在可配置管線中,可配置ALU 350中的數(shù)據(jù)流。舉例來說,在硬件中,每一ALU 350可大體上相同。然而,特定ALU可經(jīng)配置以在數(shù)據(jù)流中具有多于一個位置,例如一不同的執(zhí)行次序。因此,在每一ALU 350中需要提供一識別符以指示其在數(shù)據(jù)流中的位置??赏ㄟ^每一ALU 350的直接寄存器寫入技術(shù)將識別符(例如)提供到每一ALU 350。然而,此方法具有需要顯著的軟件開銷的缺點。因此,在一個實施例中,利用包技術(shù)觸發(fā)需要配置信息的元件以發(fā)現(xiàn)所述元件在處理流中的相對位置并將對應(yīng)的識別符寫入局部寄存器中。
參看圖10,在一個實施例中,ALU 350的寄存器地址空間可使用包初始化技術(shù)進行軟件配置以將一識別(ID)發(fā)送到使用數(shù)據(jù)包的每一ALU 350。每一ALU 350可(例如)包括用于接收和轉(zhuǎn)發(fā)數(shù)據(jù)包的常規(guī)網(wǎng)絡(luò)模塊。在一個實施例中,由軟件應(yīng)用程序起始ID包1010。ID包1010含有一初始ID碼,例如一數(shù)字。將ID包1010注入圖形管線中需要ID碼的元件之前的一點處,接著將其傳遞到由當前管線配置界定的處理流的隨后元件。在一個實施例中,第一ALU 350中的配置寄存器1020接收ID包,將ID碼的當前值寫入配置寄存器,并接著在將所述ID包傳遞到下一ALU之前增加所述ID包的ID碼。繼續(xù)此過程,其中每一隨后的ALU 350將ID碼的當前值寫入其配置寄存器,并接著將具有遞增的ID碼的ID包傳遞到下一ALU。將了解,沿著數(shù)據(jù)流路徑的其他級也可具有以類似方式設(shè)置的配置寄存器。舉例來說,配置流中的元件也可包括數(shù)據(jù)獲取級或數(shù)據(jù)寫入級,所述級也具有通過讀取ID包而設(shè)置的配置寄存器,且在將具有增加ID的ID包傳遞到配置流中的下一元件之前增加ID碼。此形式的寄存器配置的一個好處在于,其要求在ALU 350單元之間沒有硬件差異,從而允許對通過管線的數(shù)據(jù)流進行軟件重新配置。因此舉例來說,在一個實施例中,圖形處理器管理應(yīng)用程序280僅需要(例如)通過經(jīng)由主機接口220發(fā)出一由ID包產(chǎn)生器1030接收的產(chǎn)生ID包1010的命令來產(chǎn)生初始ID包1010。
在替代實施例中,使用廣播包技術(shù)將ID碼寫入配置寄存器以觸發(fā)需要被寫入配置寄存器以發(fā)現(xiàn)其ID的元件。在此實施例中,元件(例如ALU 350)可使用網(wǎng)絡(luò)協(xié)議來發(fā)現(xiàn)其ID。廣播包技術(shù)可用于(例如)其中管線被分支以允許管線的分支并行處理像素的實施例。
圖11說明包括診斷監(jiān)視能力的實施例。在一個實施例中,沿著圖形處理器205的元件存在分接的序列,例如關(guān)于每一ALU 350和數(shù)據(jù)獲取級330的分接。其他級同樣也可包括分接??膳渲脺y試點選擇器1105適于允許響應(yīng)于軟件命令(例如來自圖形處理器管理應(yīng)用程序280的軟件命令)來監(jiān)視選定的分接,例如兩個分接1120和1130。可(例如)使用多工器來建構(gòu)可配置測試點選擇器1105。在一個實施例中,包括至少一個路由器1110以用于每一選定的測試點的統(tǒng)計數(shù)字收集。在一個實施例中,由軟件產(chǎn)生的儀表數(shù)據(jù)包提供關(guān)于要監(jiān)視的分接的信息,并實現(xiàn)選定測試點的計數(shù)。另外,可包括儀器寄存器以基于管線的操作模式以選通統(tǒng)計數(shù)字收集的開和關(guān)(例如,可提供儀表寄存器以允許軟件可實現(xiàn)特定類型圖形操作的計數(shù),例如當α混合操作發(fā)生時實現(xiàn)統(tǒng)計計數(shù))。可配置測試點選擇器1105的一個好處在于,其允許軟件(例如圖形處理器管理應(yīng)用程序280)具有僅針對關(guān)注的測試點而收集的統(tǒng)計數(shù)據(jù),從而降低了硬件復(fù)雜性和成本,同時仍允許軟件分析可編程處理器205的特性的任何部分???例如)選擇關(guān)注的測試點以收集與處理特定種類數(shù)據(jù)相關(guān)聯(lián)的那些ALU 350(例如處理紋理數(shù)據(jù)的ALU 350)的統(tǒng)計數(shù)字。另外,對于例如α混合的特定圖形操作,可實現(xiàn)統(tǒng)計數(shù)字收集。
在一個實施例中,可配置測試點選擇器1105利用三線(three-wire)協(xié)議。具有有效的有效負載數(shù)據(jù)的每一元件(例如ALU 350-0)產(chǎn)生一有效信號,所述有效信號可(例如)向下流到下一元件(例如ALU 350-1)。準備接收有效負載的元件產(chǎn)生一就緒信號,所述就緒信號可(例如)向上流到前一元件。然而,如果一元件沒有準備接收有效負載,所述元件就產(chǎn)生未就緒信號,所述未就緒信號可(例如)對應(yīng)于未聲明就緒信號。啟用信號對應(yīng)于為了(例如)通過經(jīng)由對鄰近正被監(jiān)視的點而存儲的監(jiān)視啟用控制位的管線式寄存器寫入的軟件控制進行監(jiān)視而啟用的元件。信號可經(jīng)直接分接而遠離產(chǎn)生所述信號的元件或接收這些信號的元件。
選定的分接點處的有效、就緒和未就緒信號可用于確定操作狀態(tài)。轉(zhuǎn)移狀態(tài)對應(yīng)于具有用于流向下游的數(shù)據(jù)的有效的有效負載(即,有效位設(shè)置)的時鐘報時信號,和來自接收數(shù)據(jù)的下游區(qū)塊中的一下游區(qū)塊的就緒信號(例如在分接點1120處來自ALU-0的有效信號和在分接點1130處來自ALU-1的就緒信號)。等待狀態(tài)對應(yīng)于具有一有效的有效負載的時鐘報時信號,因為下方的區(qū)塊未準備接收數(shù)據(jù),所以所述有效的有效負載被阻斷(例如在分接點1120處來自ALU-0的有效信號和在分接點1130處來自ALU-1的未就緒信號)。在此實施例中,例如可通過對檢測到轉(zhuǎn)移狀態(tài)和等待狀態(tài)的時鐘周期的數(shù)目進行計數(shù)來收集與選定的分接點相關(guān)的統(tǒng)計數(shù)字。
本發(fā)明的實施例提供有用于嵌入式圖形處理器核心250的多種好處。在緊湊的低功率手持系統(tǒng)290的系統(tǒng)中,功率、空間和CPU能力可能相對有限。在一個實施例中,當不需要處理時,對ALU 350進行時鐘選通(例如通過檢測取消位),從而減少處理功率要求。另外,光柵級310僅需要產(chǎn)生進行處理的像素數(shù)據(jù)的子集的像素包,從而也減少了功率要求。可編程ALU級340比具有用于執(zhí)行專用圖形功能的專用級的常規(guī)管線需要更小的芯片面積,從而降低了成本??蓪⒖删幊烫幚砥?05建構(gòu)為可由軟件配置的區(qū)塊,從而提供改進的效率。測試監(jiān)視可經(jīng)配置以測試測試點的子集,從而減少軟件的帶寬和分析要求。這些和其他先前描述的特征使得關(guān)注的可編程圖形處理器205可用于嵌入式圖形處理器核心250。
出于解釋的目的,上述描述使用特定術(shù)語來提供本發(fā)明的徹底理解。然而所屬領(lǐng)域的技術(shù)人員將了解,為實踐本發(fā)明,特定細節(jié)是不需要的。因此,出于說明和描述的目的而提出本發(fā)明的特定實施例的上述描述。不希望它們是詳盡的或?qū)⒈景l(fā)明限于所揭示的精確形式;顯然,根據(jù)以上教示,許多修改和變化是可能的。為最好地解釋本發(fā)明的原理及其實踐應(yīng)用而選擇和描述實施例,因而它們使所屬領(lǐng)域的其他技術(shù)人員可最好地利用本發(fā)明和具有適于預(yù)期特定用途的各種修改的各種實施例。希望隨附權(quán)利要求書及其等效物界定本發(fā)明的范圍。
權(quán)利要求
1.一種圖形處理器,其包含一光柵級,其接收關(guān)于將被光柵化的圖元的數(shù)據(jù),所述光柵級針對將要處理的每一像素產(chǎn)生復(fù)數(shù)個像素包,每一像素包包括識別將要處理的至少一個像素屬性的有效負載信息,且具有識別將要對所述像素包執(zhí)行的至少一個指令的一序列的相關(guān)邊頻帶信息;和一可編程算術(shù)邏輯單元(ALU)級,其用于處理所述像素包,所述ALU級包括至少一個ALU,每一ALU經(jīng)編程以具有至少一個對一具有一相應(yīng)當前指令的引入像素包執(zhí)行的可能的標量算術(shù)操作的一集合;其中對所述復(fù)數(shù)個像素包執(zhí)行一序列的算術(shù)操作以執(zhí)行一圖形處理功能。
2.一種圖形處理器,其包含至少一個級,其用于變換和設(shè)置將被光柵化的圖元的頂點;一光柵級,其接收關(guān)于將被光柵化的圖元的數(shù)據(jù),所述光柵級針對將要用一圖形操作進行處理的每一像素產(chǎn)生至少一行像素包,所述圖形操作可表示為一序列的標量算術(shù)操作;一門監(jiān),其包括一用于追蹤像素包的所述處理的記分板;一數(shù)據(jù)獲取級,其用于獲取每一行像素包的數(shù)據(jù);一ALU級,其包含復(fù)數(shù)個用于處理每一所述行像素包的可編程算術(shù)邏輯單元(ALU),每一ALU接收一輸入行像素包并輸出一輸出行像素包,每一ALU從一接收的行像素包中讀取至少一個操作數(shù),使用所述至少一個操作數(shù)執(zhí)行一標量算術(shù)操作,產(chǎn)生一結(jié)果,并執(zhí)行將所述結(jié)果寫入一臨時值和用所述結(jié)果更新所述輸出行的一像素屬性寄存器這兩個操作中的至少一個操作;和一數(shù)據(jù)寫入級,其用于執(zhí)行從所述復(fù)數(shù)個ALU接收的經(jīng)處理像素包的像素數(shù)據(jù)的一存儲器寫入;其中對所述復(fù)數(shù)個像素包執(zhí)行一序列的算術(shù)操作以執(zhí)行所述圖形處理功能。
3.一種圖形系統(tǒng),其包含一中央處理器,其具有一圖形軟件模塊;一可編程圖形處理器,其從所述圖形軟件模塊接收頂點信息并對指令編程以用于對所述可編程圖形處理器的級進行編程,所述可編程圖形處理器包含一光柵級,其響應(yīng)于來自所述圖形軟件模塊的指令而針對將要處理的每一像素產(chǎn)生復(fù)數(shù)個像素包,每一像素包包括識別將要處理的至少一個像素屬性的有效負載信息,且具有識別將要對每一所述像素包執(zhí)行的至少一個指令的相關(guān)邊頻帶信息;和一可編程算術(shù)邏輯單元(ALU)級,其包括復(fù)數(shù)個經(jīng)配置以用于處理所述像素包的ALU,所述圖形軟件模塊分配每一ALU以從所接收的像素包中讀取選定的操作數(shù),響應(yīng)于一當前指令而執(zhí)行一標量算術(shù)操作以產(chǎn)生一結(jié)果,并執(zhí)行用所述結(jié)果更新一像素屬性寄存器和將所述結(jié)果存儲為一臨時值這兩個操作中的至少一個;其中對所述復(fù)數(shù)個像素包執(zhí)行一序列的標量算術(shù)操作以對每一所述像素執(zhí)行一圖形處理功能。
4.一種嵌入式處理器,其包含一寄存器接口,其供一主機編程一圖形核心的寄存器;一主機接口,其供一主機與所述圖形核心進行通信;一存儲器接口,其供所述圖形核心讀取和寫入數(shù)據(jù);一可編程圖形處理器,其安置在所述圖形核心中,所述可編程圖形處理器包含至少一個級,其用于設(shè)置和變換將被光柵化的圖元的頂點;一光柵級,其接收關(guān)于將被光柵化的圖元的數(shù)據(jù),所述光柵單元針對將用一圖形操作進行處理的每一像素產(chǎn)生一至少一行像素包,所述圖形操作可表示為一序列的標量算術(shù)操作,每一像素包包括識別將要處理的至少一個像素屬性的有效負載信息,且每一行具有識別將要對所述行的每一所述像素包執(zhí)行的至少一個指令的相關(guān)信息;一門監(jiān),其包括一用于追蹤像素包的所述處理的記分板;一數(shù)據(jù)獲取級,其用于獲取每一行像素包的數(shù)據(jù);一ALU級,其包含復(fù)數(shù)個用于處理每一所述行像素包的可編程算術(shù)邏輯單元(ALU),每一ALU接收一輸入行像素包并輸出一輸出行像素包,每一ALU從一接收的行像素包中讀取至少一個操作數(shù),使用所述至少一個操作數(shù)執(zhí)行一標量算術(shù)操作,產(chǎn)生一結(jié)果,并執(zhí)行將所述結(jié)果寫入一臨時值和用所述結(jié)果更新所述輸出行的一屬性寄存器這兩個操作中的至少一個操作;和一數(shù)據(jù)寫入級,其用于執(zhí)行從所述復(fù)數(shù)個ALU接收的經(jīng)處理像素包的像素數(shù)據(jù)的一存儲器寫入;其中對所述復(fù)數(shù)個像素包執(zhí)行一序列的算術(shù)操作以執(zhí)行所述圖形處理功能。
5.一種對一像素執(zhí)行一圖形處理操作的方法,其包含對于將要對一像素執(zhí)行的至少一個圖形功能,識別可對像素包執(zhí)行以建構(gòu)所述至少一個圖形功能的一序列的標量算術(shù)操作;針對所述像素產(chǎn)生復(fù)數(shù)個像素包,每一像素包包括將被作為所述序列的標量算術(shù)操作中的操作數(shù)來處理的像素屬性的一子集,所述復(fù)數(shù)個像素包具有一相關(guān)指令序列;在至少一個算術(shù)邏輯單元(ALU)中,從所述像素包中讀取操作數(shù);在所述至少一個ALU中,根據(jù)執(zhí)行所述序列的標量算術(shù)操作的所述指令序列執(zhí)行標量算術(shù)操作以用于建構(gòu)所述至少一個圖形功能。
6.一種對一像素執(zhí)行一圖形處理操作的方法,其包含對于將要對一像素執(zhí)行的一圖形功能,識別可對像素包執(zhí)行以建構(gòu)所述圖形功能的一序列的標量算術(shù)操作;針對將要在連續(xù)時鐘周期中處理的所述像素產(chǎn)生至少一行像素包,每一像素包包括至少一個用于將被作為所述序列的標量算術(shù)操作中的操作數(shù)來處理的像素屬性的一子集的字段,所述至少一行具有一相關(guān)指令序列;在復(fù)數(shù)個算術(shù)邏輯單元(ALU)的每一者中,讀取分配的操作數(shù),所述操作數(shù)中的至少一者對應(yīng)于從一行像素包中的一像素包讀取的一操作數(shù);在每一所述ALU中,根據(jù)執(zhí)行所述序列的標量算術(shù)操作的所述指令序列來對所述分配的操作數(shù)執(zhí)行一標量算術(shù)計算以用于建構(gòu)所述圖形功能。
7.一種執(zhí)行一圖形處理操作的方法,其包含對復(fù)數(shù)個算術(shù)邏輯單元(ALU)進行編程,以從一行像素包中讀取選定的操作數(shù),和響應(yīng)于與所述行像素包相關(guān)聯(lián)的一選定的當前指令來執(zhí)行一選定的標量算術(shù)操作;對于將要對一像素執(zhí)行的至少一個圖形操作,識別將要對所述像素的屬性的一子集執(zhí)行的至少一個對應(yīng)的標量算術(shù)操作;針對所述像素產(chǎn)生一行像素包,每一像素包包括多個用于與將被作為至少一個操作數(shù)來處理的所述像素相關(guān)聯(lián)的至少一個屬性的字段,所述像素包具有一指示將要執(zhí)行的一序列的標量算術(shù)操作的相關(guān)當前指令;在所述ALU中,讀取所述行像素包中的所述選定的操作數(shù),并執(zhí)行對應(yīng)于所述相關(guān)當前指令的所述選定的標量算術(shù)操作。
8.一種對一像素執(zhí)行圖形處理操作的方法,其包含對于將要對一像素執(zhí)行的至少一個圖形功能,識別可對像素包執(zhí)行以建構(gòu)所述至少一個圖形功能的標量算術(shù)操作;針對將要處理的所述像素產(chǎn)生至少一行像素包,每一像素包包括至少一個用于將被作為操作數(shù)來處理的像素屬性的一子集的字段,所述至少一行具有一相關(guān)指令序列;在復(fù)數(shù)個算術(shù)邏輯單元(ALU)的每一者中,讀取分配的操作數(shù),所述操作數(shù)的至少一者對應(yīng)于從一行像素包中的一像素包讀取的一操作數(shù);在每一所述ALU中,根據(jù)所述指令序列來對所述分配的操作數(shù)執(zhí)行一標量算術(shù)計算;其中對于需要范圍
中一結(jié)果的一選定的標量算術(shù)操作,以對應(yīng)于具有一8位分數(shù)成分的范圍[-2,+2)中的操作數(shù)的一基于二的表示法的一S1.8格式來格式化像素包的對應(yīng)操作數(shù),并將所述選定的標量算術(shù)操作的一結(jié)果箝位在所述范圍
中;和對于至少一個其他標量算術(shù)操作,以一不同的數(shù)據(jù)格式格式化對應(yīng)的像素包。
9.一種對一像素執(zhí)行一圖形處理操作的方法,其包含對于將要對一像素的色彩成分執(zhí)行的一第一圖形功能,識別一用于建構(gòu)所述第一圖形功能的第一序列的標量算術(shù)操作,所述第一圖形功能要求一標量算術(shù)操作具有一被箝位在所述范圍
中的結(jié)果;對于將要對與一像素相關(guān)聯(lián)的紋理執(zhí)行的一第二圖形功能,識別一用于建構(gòu)所述第二圖形功能的第二序列的標量算術(shù)操作;針對所述像素產(chǎn)生至少一行像素包,每一像素包具有長度為至少16位的一固定位尺寸,且包括至少一個用于將被作為操作數(shù)來處理的像素屬性的一子集的字段,所述至少一行具有一相關(guān)指令序列;對于與所述第一圖形功能相關(guān)聯(lián)的每一像素包,以一S1.8格式封裝至少兩個色彩成分,所述S1.8格式對應(yīng)于具有一8位分數(shù)成分的范圍[-2,+2)中的操作數(shù)的一基于二的表示法;對于與所述第二圖形功能相關(guān)聯(lián)的每一像素包,封裝一需要多于8位的單個高精度紋理;在復(fù)數(shù)個算術(shù)邏輯單元(ALU)的每一者中,讀取分配的操作數(shù)并根據(jù)所述指令序列對所述分配的操作數(shù)執(zhí)行一標量算術(shù)計算;其中對于所述第一圖形功能,以所述S1.8格式選擇色彩成分作為操作數(shù)并將一結(jié)果箝位在所述范圍
中,而對于所述第二圖形功能,以一精度高于8位的格式選擇所述紋理作為一操作數(shù)。
10.一種圖形處理器,其包含至少一個級,其用于設(shè)置和變換將被光柵化的圖元的頂點;一光柵級,其接收關(guān)于將被光柵化的圖元的數(shù)據(jù),所述光柵單元對于將要針對每一圖形操作進行處理的每一像素產(chǎn)生至少一行像素包,所述圖形操作可表示為一序列的標量算術(shù)操作;一門監(jiān),其包括一用于追蹤像素包的所述處理的記分板;一數(shù)據(jù)獲取級,其用于獲取每一行像素包的數(shù)據(jù);一ALU級,其包含復(fù)數(shù)個用于處理每一所述行像素包的可編程算術(shù)邏輯單元(ALU),每一ALU接收一輸入行像素包并輸出一輸出行像素包,每一ALU從一接收行像素包中讀取至少一個操作數(shù),使用所述至少一個操作數(shù)執(zhí)行一標量算術(shù)操作,產(chǎn)生一結(jié)果,并執(zhí)行將所述結(jié)果寫入一臨時值或用所述結(jié)果更新所述輸出行的一像素包這兩個操作中的至少一個操作;和一數(shù)據(jù)寫入級,其用于執(zhí)行從所述復(fù)數(shù)個ALU接收的經(jīng)處理像素包的像素數(shù)據(jù)的一存儲器寫入;其中對所述復(fù)數(shù)個像素包執(zhí)行一序列的算術(shù)操作以執(zhí)行所述圖形處理功能;所述光柵級以一對應(yīng)于具有一8位分數(shù)成分的一范圍[-2,+2)中的操作數(shù)的一基于二的表示法的S1.8格式來格式化用于一第一類型的標量算術(shù)操作的像素包,且每一ALU通過將一結(jié)果箝位在所述范圍
中來處理所述第一類型的標量操作;所述光柵級以一精度需要高于8位的格式來格式化用于一第二類型的標量算術(shù)操作的像素包。
11.一種圖形處理器,其包含一光柵級,其接收關(guān)于將被光柵化的圖元的數(shù)據(jù),所述光柵級針對將要處理的每一像素產(chǎn)生復(fù)數(shù)個像素包,每一像素包包括識別將要處理的至少一個像素屬性的有效負載信息,且具有識別將要對每一所述像素包執(zhí)行的至少一個指令的相關(guān)邊頻帶信息;一可編程算術(shù)邏輯單元(ALU)級,其用于處理所述像素包,所述ALU級包括復(fù)數(shù)個ALU,每一ALU具有至少一個對一具有一相應(yīng)當前指令命令的引入像素包執(zhí)行的可能的算術(shù)操作的一集合;一數(shù)據(jù)獲取級,其用于獲取所述像素包的數(shù)據(jù);一數(shù)據(jù)寫入級,其用于執(zhí)行從所述ALU級接收的經(jīng)處理像素包的像素數(shù)據(jù)的一存儲器寫入;一第一分配器,其耦合到所述ALU級、所述數(shù)據(jù)獲取級和所述數(shù)據(jù)寫入級的各自輸入;和一第二分配器,其耦合到所述ALU級、所述數(shù)據(jù)獲取級和所述數(shù)據(jù)寫入級的各自輸出;所述第一分配器和所述第二分配器適于響應(yīng)于來自一主機的一命令而重新配置通過所述數(shù)據(jù)獲取級、所述ALU級和所述ALU寫入級的像素包的一處理流。
12.一種操作一圖形管線的方法,所述圖形管線具有一用于產(chǎn)生像素包的光柵處理器、一用于獲取像素包的數(shù)據(jù)的數(shù)據(jù)獲取級、一具有至少一個用于對像素包執(zhí)行標量算術(shù)操作的ALU的ALU級、一用于寫入像素數(shù)據(jù)的數(shù)據(jù)寫入級和耦合所述數(shù)據(jù)獲取級、所述數(shù)據(jù)寫入級和所述ALU級的分配器,所述方法包含響應(yīng)于第一命令,編程所述分配器以界定通過所述數(shù)據(jù)獲取級、所述ALU級和所述數(shù)據(jù)寫入級的像素包的一第一處理流;和響應(yīng)于一第二命令,編程所述分配器以界定通過所述數(shù)據(jù)獲取級、所述ALU級和所述數(shù)據(jù)寫入級的像素包的一第二流;其中一軟件主機可在復(fù)數(shù)個處理流的任一者中配置所述管線。
13.一種操作一圖形管線的方法,所述圖形管線具有一用于產(chǎn)生像素包的光柵處理器、一用于獲取像素包的數(shù)據(jù)的數(shù)據(jù)獲取級、一具有至少一個用于對像素包執(zhí)行標量算術(shù)操作的ALU的ALU級、一用于寫入像素數(shù)據(jù)的數(shù)據(jù)寫入級和耦合所述數(shù)據(jù)獲取級、所述數(shù)據(jù)寫入級和所述ALU級的分配器,所述方法包含從一軟件主機接收一命令以重新配置從通過所述數(shù)據(jù)獲取級、所述ALU級和所述數(shù)據(jù)寫入級的像素包的一第一處理流到通過所述數(shù)據(jù)獲取級、所述ALU級和所述數(shù)據(jù)寫入級的像素包的一第二流的所述管線;和調(diào)整所述分配器以重新配置從所述第一處理流到所述第二處理流的所述管線。
14.一種圖形處理器,其包含復(fù)數(shù)個級,其用于處理像素包;一第一分配器,其耦合到所述復(fù)數(shù)個元件的各自輸入;和一第二分配器,其耦合到所述復(fù)數(shù)個元件的各自輸出;所述第一分配器和所述第二分配器適于響應(yīng)于來自一主機的一命令而重新配置通過所述復(fù)數(shù)個元件的像素包的一處理流。
15.一種操作一圖形管線的方法,所述圖形管線具有一具有復(fù)數(shù)個用于處理像素包的元件的圖形管線,所述方法包含響應(yīng)于第一命令,編程分配器以界定通過所述復(fù)數(shù)個元件的像素包的一第一處理流;和響應(yīng)于一第二命令,編程所述分配器以界定通過所述復(fù)數(shù)個元件的像素包的一第二流;其中一軟件主機可在復(fù)數(shù)個處理流的任一者中配置所述管線。
16.一種對一像素執(zhí)行一圖形處理操作的方法,其包含對于將要對復(fù)數(shù)個像素執(zhí)行的圖形功能,識別可對像素包執(zhí)行以建構(gòu)所述圖形功能的一序列標量算術(shù)操作;將像素分配為偶數(shù)像素或奇數(shù)像素;針對每一所述像素產(chǎn)生至少兩行像素包,每一像素包包括至少一個用于將被作為所述序列的標量算術(shù)操作中的操作數(shù)來處理的像素屬性的一子集的字段,所述至少兩行具有一相關(guān)指令序列和一用于指示所述像素包是用于一奇數(shù)像素還是一偶數(shù)像素的識別符;使像素包行的一群組中的一偶數(shù)像素和一奇數(shù)像素的像素包的行交錯,其中所述群組中的每一行經(jīng)分配以用于在連續(xù)時鐘周期中進行處理;在一ALU級中的復(fù)數(shù)個算術(shù)邏輯單元(ALU)的每一者中,接收一當前時鐘周期的一行像素包,并根據(jù)所述指令序列執(zhí)行對從所述行像素包中讀取的至少一個操作數(shù)的一標量算術(shù)計算;其中在所述ALU中交錯像素包的處理。
17.一種對一可配置圖形管線的元件中的一識別符執(zhí)行一寄存器寫入的方法,所述圖形管線具有一個以上通過所述圖形管線的元件的像素包的可能的處理流,所述方法包含接收一數(shù)據(jù)包,所述數(shù)據(jù)包觸發(fā)所述圖形管線的所述元件以發(fā)現(xiàn)一用于每一元件的指示所述元件在所述處理流中的位置的識別符;和每一元件在一配置寄存器中寫入一指示在所述處理流中的一相對位置的識別符。
18.一種圖形處理器,其包含一光柵級,其接收關(guān)于將被光柵化的圖元的數(shù)據(jù),所述光柵級針對將要處理的每一像素產(chǎn)生復(fù)數(shù)個像素包,每一像素包包括識別將要處理的至少一個像素屬性的有效負載信息,且具有識別將要對每一所述像素包執(zhí)行的至少一個指令的相關(guān)邊頻帶信息;一可編程算術(shù)邏輯單元(ALU)級,其用于處理所述像素包,所述ALU級包括復(fù)數(shù)個ALU,每一ALU具有至少一個對一具有一相應(yīng)當前指令命令的引入像素包執(zhí)行的可能的算術(shù)操作的一集合;一數(shù)據(jù)獲取級,其用于獲取所述像素包的數(shù)據(jù);一數(shù)據(jù)寫入級,其用于執(zhí)行從所述ALU級接收的經(jīng)處理像素包的像素數(shù)據(jù)的一存儲器寫入;一第一分配器,其耦合到所述ALU級、所述數(shù)據(jù)獲取級和所述數(shù)據(jù)寫入級的各自輸入;和一第二分配器,其耦合到所述ALU級、所述數(shù)據(jù)獲取級和所述數(shù)據(jù)寫入級的各自輸出;所述第一分配器和所述第二分配器適于響應(yīng)于來自一主機的一命令而重新配置通過所述數(shù)據(jù)獲取級、所述ALU級和所述ALU寫入級的像素包的一處理流;其中所述ALU級的每一ALU適于接收由一軟件識別起始的一識別包,每一ALU將所述識別包的一識別符的一當前值寫入一配置寄存器,使所述識別符遞增,并將所述識別包轉(zhuǎn)送到下一ALU。
19.一種圖形處理器,其包含一圖形管線,其具有與所述圖形管線的元件相關(guān)聯(lián)的分接點的一集合;一可配置測試點選擇器,其從一軟件主機接收命令,所述可配置測試點選擇器適于監(jiān)視由一軟件命令選擇的分接點的一子集,并對與分接點的所述子集的每一所述分接點相關(guān)聯(lián)的至少一個狀態(tài)的統(tǒng)計數(shù)字進行計數(shù);其中分接點的一子集的統(tǒng)計數(shù)字被收集用于所述軟件主機。
20.一種監(jiān)視一圖形處理器的方法,其包含接收一選擇與一能夠?qū)⒁挥行ж撦d發(fā)送到一第二元件的第一元件相關(guān)聯(lián)的兩個測試點的命令;監(jiān)視所述兩個測試點;和收集與所述第一元件和所述第二元件相關(guān)聯(lián)的至少兩個狀態(tài)的統(tǒng)計數(shù)字。
全文摘要
一種圖形處理器具有一可編程算術(shù)邏輯單元(ALU)級,所述可編程算術(shù)邏輯單元(ALU)級能夠?qū)μ幚硐袼匕M行標量算術(shù)操作??刹捎酶倪M動態(tài)范圍的S1.8格式或一不同的數(shù)據(jù)格式格式化像素包中的操作數(shù)。可將所述圖形處理器建構(gòu)為可配置圖形管線。在一種建構(gòu)方案中,分配器耦合一圖形管線的元件以允許響應(yīng)于來自主機的命令而重新配置通過所述管線的像素包的處理流??膳渲脺y試點選擇器可用于監(jiān)視所述圖形管線的分接點的一選定子集,并對與分接點的所述子集的每一分接點相關(guān)聯(lián)的至少一個狀態(tài)的統(tǒng)計數(shù)字進行計數(shù)??蓪⑾袼胤峙錇榕紨?shù)像素或奇數(shù)像素,且接著使奇數(shù)和偶數(shù)像素的像素包交錯以考慮ALU等待時間。在一種建構(gòu)方案中,數(shù)據(jù)包觸發(fā)所述圖形管線的一元件以發(fā)現(xiàn)一識別符。
文檔編號G09G5/37GK101053013SQ200580014787
公開日2007年10月10日 申請日期2005年5月13日 優(yōu)先權(quán)日2004年5月14日
發(fā)明者愛德華·A·哈欽斯, 布賴恩·K·安杰爾, 保羅·金 申請人:輝達公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1