TWI484441B - 算術邏輯單元管路階段、圖形處理器單元管線和在其中處理資料的方法 - Google Patents
算術邏輯單元管路階段、圖形處理器單元管線和在其中處理資料的方法 Download PDFInfo
- Publication number
- TWI484441B TWI484441B TW097130918A TW97130918A TWI484441B TW I484441 B TWI484441 B TW I484441B TW 097130918 A TW097130918 A TW 097130918A TW 97130918 A TW97130918 A TW 97130918A TW I484441 B TWI484441 B TW I484441B
- Authority
- TW
- Taiwan
- Prior art keywords
- operands
- pixel
- conditional execution
- pipeline
- alu
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Description
本發明的具體實施例一般係關於電腦圖形。
近來在電腦效能方面的進步強化了圖形系統,讓使用個人電腦、家庭視訊遊戲電腦、手持式裝置等等能夠提供更可靠的圖形影像。在這種圖形系統內,許多程序需被執行以彩現或繪製圖形圖元至系統螢幕。圖形圖元為圖形的基本組件,像是點、線、多邊形等等。利用這些圖形圖元組合就形成彩現影像。
許多程序都可用來執行三維(3-D, "three-dimensional")圖形彩現。
特殊化的圖形處理單元(GPU, "Graphics Processing Unit")已經過發展來增加圖形彩現程序的執行速度。GPU通常合併一或多個彩現管線,每一個管線都包含設計用於圖形指令/資料高速執行之許多硬體式功能單元。一般而言,指令/資料饋送入管線前端,並且計算出來的結果出現在管線末端。GPU的硬體式功能單元、快取記憶體、韌體等等都設計成在基本圖形圖元上操作,並產生即時彩現的3D影像。
目前對於在可攜式或手持式裝置,像是行動電話、個人數位助理(PDA)以及其他裝置內彩現3D圖形影像的興趣日漸增加。不過,可攜式或手持式裝置一般相對於像是桌上型電腦這類全尺寸裝置都有所限制。例如:因為可攜式裝置一般都為電池驅動,所以要考慮到耗電量。另外,因為可攜式裝置尺寸更小,所以內部可用空間就會受限。所要的是在手持式裝置中,在這種裝置的限制之下快速執行寫實3D圖形彩現。
本發明的具體實施例提供在圖形處理器單元管線內迅速
並有效處理資料之方法及系統。
像素群組的像素資料從圖形管線共同往下繼續進行至算術邏輯單元(ALU)。在ALU內,以SIMD(單指令,多資料(Single Instruction, multiple Data))方式將相同指令套用至群組內所有像素。例如:在已知的時脈週期上,指令將指定一組選自於像素群組內第一像素的像素資料之運算元。在下一個時脈週期上,指令將指定另一組選自於像素群組內第二像素的像素資料之運算元,以此類推。根據本發明的具體實施例,有條件執行位元關聯於每一組運算元。有條件執行位元之值決定ALU如何(是否)處理個別組運算元。
一般而言,若有條件執行位元設定成不執行,則ALU不會操作與有條件執行位元相關聯之像素資料。尤其是,在一個具體實施例內,若有條件執行位元設定成不操作時,ALU不會鎖定像素資料,這可利用將輸入正反器閘控至ALU,因此正反器不會在像素資料內計時來達成。因此,ALU不改變狀態,ALU內的鎖(正反器)仍舊處於之前時脈週期上之狀態。不針對正反器計時可省電,並且因為至組合邏輯的輸入仍舊相同,因此無電晶體改變狀態也可省電(正反器不從一個狀態轉換成另一狀態,因為若設定成不執行有條件位元,則運算元從一個時脈週期至另一個時脈週期時都維持相同)。
總而言之,該指令係套用於一像素群組,但這對於在群組內每一像素上執行指令卻並非必須。若要保持管線內正確順序,則指令將被套用至群組內每一像素-一組運算元係被選擇並用於群組內之每一像素。不過,若與一組運算元有關聯的有條件執行位元設定成不執行,則ALU上不會運算這些運算元-運算元上不會執行相關聯的指令,取而代之是複製下游運算元。因此,正反器不需要非必要的計時並且組合邏輯不需要非必要的切換,藉此節省電源。因此,本發明的具體實施例最適合用在手持式與其他可攜式、電池供電裝置內的圖形處理
(雖然本發明不受限在使用這些裝置類型)。
精通此技術的人士在閱讀下列在各種圖示中所說明的具體實施例之詳細說明之後就可瞭解本發明許多具體實施例的這些與其他目的與優點。
在此將詳細參考本發明的具體實施例,附圖內將說明其範例。雖然本發明將結合這些具體實施例來說明,吾人將瞭解這並不用於將本發明限制在這些具體實施例上。相反地,本發明用於涵蓋後附申請專利範圍之精神與範疇內所包含之變化、修改與同等配置。更進一步,在下列本發明具體實施例的詳細說明中,將公佈許多特定細節以提供對本發明有通盤瞭解。不過,精通此技術的人士將會了解到,不用這些特定細節也可實施本發明。在其他實例中,已知的方法、程序、組件和電路並未詳述,因此就不會非必要地模糊本發明具體實施例的態樣。
某些詳細說明部分都以可在電腦記憶體執行的資料位元上操作之程序、步驟、邏輯區塊、處理以及其他符號表示之方式來呈現。這些說明與代表為精通資料處理技術的人士用來將其工作內容傳遞給其他精通此技術人士的最有效方式。此處的程序、電腦可執行步驟、邏輯區塊、處理等等一般係認為是導致所要結果的自洽步驟或指令順序。這些步驟為所需的物理量之物理操作。通常,雖然非必要,不過這些量採用可以儲存、傳輸、結合、比較以及其他在電腦系統內操縱的電或磁性信號形式。為了時間上方便起見,原則上因為常用,所以這些信號代表位元、數值、元件、符號、字元、詞彙、數字等等。
不過,吾人應該瞭解,所有這些與類似詞彙都與適當的物理量相關連,並且僅為套用這些量的便利標示。除非特別說明,否則從下列討論中可瞭解,在整個本發明中的討論運用像是「決定」、「使用」、「設定」、「鎖定」、「計時」、「識別」、「選
擇」、「處理」或「控制」等詞表示電腦系統(例如第一圖的電腦系統100)或類似電子計算裝置的動作以及處理,其操縱以及轉換代表電腦系統暫存器以及記憶體內物理(電子)量的資料成為類似代表電腦系統記憶體、暫存器或其他這種資訊儲存、傳輸或顯示裝置內物理量的其他資料。
第一圖顯示根據本發明之一具體實施例的電腦系統100。
電腦系統包含根據本發明具體實施例的基本電腦系統組件,提供特定硬體式與軟體式功能的執行平台。一般而言,電腦系統包含至少一個中央處理單元(CPU)101、系統記憶體115以及至少一個圖形處理單元(GPU)110。該CPU可透過橋接器組件/記憶體控制器(未顯示)耦合至系統記憶體,或可透過CPU內部的記憶體控制器(未顯示)直接耦合至系統記憶體。該GPU係耦合至一顯示器112。一或多個額外GPU可選擇性耦合至系統100,以便進一步增加其計算能力。該GPU係與CPU以及系統記憶體耦合。該電腦系統之具體實施例,例如,桌上型電腦系統或伺服器電腦系統,耦合至專屬圖形彩現GPU之一具強大一般用途之CPU。在這種具體實施例內,組件內可額外包含週邊匯流排、特殊圖形記憶體、輸入/輸出(I/O)裝置等等。類似地,電腦系統可實施成為手持式裝置(例如行動電話等等)或機上視訊遊戲主機裝置。
GPU可實施成為分散式組件、設計來透過連接器(例如圖形加速埠(AGP, "Accelerated Graphics Port")插槽、周邊組件互連快速(PCI-E, "Peripheral Component Interconnect-Express")插槽等等)耦合至電腦系統的分散式圖形卡、分散式積體電路晶粒(例如直接固定在主機板上)或包含在電腦系統晶片組組件(未顯示)的積體電路晶粒內或PSOC(晶片上可程式系統(Programmable System-on-a-chip))的積體電路晶粒內之整合式GPU。此外,可包含用於GPU的本機圖形記憶體114用於高頻寬圖形資料儲存。
第二圖為顯示說明根據本發明之一具體實施例的GPU 110之內部組件以及圖形記憶體114之圖式。如第二圖所顯示,GPU包含一個圖形管線210以及如所示耦合至圖形記憶體的一個片斷資料快取250。
在第二圖的範例內,圖形管線210包含許多功能模組。三個這種圖形管線的功能模組,例如程式序列器220、算術邏輯階段(ALU)230以及資料寫入組件240,利用彩現接收自圖形套用(例如接收自圖形驅動器等等)的圖形圖元來作用。功能模組220-240透過片斷資料快取250存取用於將與圖形圖元相關的像素彩現之資訊。片斷資料快取當成用於圖形記憶體(例如訊框緩衝器記憶體)內所儲存資訊的高速快取。
程式序列器用來控制圖形管線的功能模組之操作。程式序列器可與圖形驅動程式(例如在第一圖的CPU 101上執行的圖形驅動程式),來控制圖形管線的功能模組接收資訊、設置本身進行操作以及處理圖形圖元之方式。例如在第二圖的具體實施例內,圖形管線透過共用輸入260從上游功能模組(例如從上油光柵模組、從設定模組或從圖形驅動程式),接收圖形彩現資料(例如圖元、三角帶等等)、管線組態資訊(例如模式設定、彩現描述檔等等)以及彩現程式(例如像素陰影程式、頂點陰影程式等等)。輸入260當成圖形管線的功能模組間之主要片斷資料通道或管線。一般在管線前端上接收圖元,並且在從一個模組延著管線前往下個模組前進時逐漸彩現成為結果彩現像素資料。
在一個具體實施例內,資料以封包式格式在功能模組220-240之間前進。例如:圖形驅動程式以資料封包或像素封包形式將資料傳輸至GPU,這些封包都特別配置成介接並且延著管線的片斷管路通訊通道傳輸。像素封包一般包含有關像素的群組或拼貼(例如四像素、八像素、十六像素等等)之資訊,並且涵蓋用於與像素有關的一或多個圖元資訊。像素封包
也包含旁帶資訊,讓管線的功能模組設置本身用於彩現操作。
例如:像素封包包含組態位元、指令、功能模組位址等等,其可由管線的一或多功能模組用來設置本身用於目前彩現模式等等。除了像素彩現資訊以及功能模組組態資訊,像素封包可包含陰影程式指令,該等指令程式編輯管線的功能模組,來執行像素上的陰影處理。例如:包含陰影程式的指令可往下傳輸至圖形管線,並且可由一或多個指定的功能模組所載入。一旦載入,在彩現操作期間,功能模組可執行像素資料上的陰影程式,來達成所要的彩現效果。
在此方式中,由圖形管線的功能模組所實施的高度最佳化並且有效之片斷管路通訊通道不僅可用在功能模組之間傳輸像素資料(例如模組220-240),也可在功能模組之間傳輸組態資訊與陰影程式指令。
第三圖為顯示根據本發明之一具體實施例的圖形管線210內所選階段之方塊圖。圖形管線可包含額外階段,或其可配置成與第三圖的範例不同。換言之,雖然本發明係在第三圖管線的範圍內討論本發明,不過本發明並不受此限制。
在第三圖的範例中,光柵器310使用內插法將三角形轉換成像素。在其許多功能之間,光柵器接收頂點資料、決定哪個像素對應至哪個三角形以及決定需要在像素上執行當成彩現一部分的陰影處理操作,像是顏色、紋理以及霧狀操作。
光柵器產生要處理的三角形每一像素之像素封包。一般而言,像素封包是一組用於計算圖形顯示訊框內像素的像素值之實例。像素封包與每一訊框內每一像素都有關聯。每一像素都與螢幕座標內特定(x,y)位置相關聯。在一個具體實施例內,圖形系統彩現一個2像素乘2像素的顯示畫面區域,稱之為方形。
每一像素封包都包含處理所需的像素屬性酬載(例如顏色、紋理、深度、霧、x和y位置等等)以及旁帶資訊(資料擷取階段330所提供的像素屬性資料)。像素封包可包含一列資
料,或可包含多列資料。列通常為管線匯流排資料部分的寬度。
資料擷取階段擷取用於像素封包的資料。這種資料可包含用於每一像素封包的顏色資訊、任何深度資訊以及任何紋理資訊。在傳送像素封包至下一階段之前,擷取的資料放入像素資料列內的適當欄位內,在此可稱之為暫存器。
從資料擷取階段開始,像素資料列輸入算術邏輯階段230。在本具體實施例內,一像素資料列輸入算術邏輯階段每一時脈週期。在一具體實施例內,算術邏輯階段包含四個ALU0、1、2和3(第五圖),其設置成執行與三維圖形操作相關的陰影程式,像是但不受限於紋理結合(紋理環境)、鏤空、霧、阿爾發混合、阿爾發測試以及深度測試。每一ALU在每一時脈週期上都執行一個指令,每一指令都用於執行運算元上對應至像素封包內容的算術運算。在一個具體實施例內,一列資料在ALU內運算要耗費四個時脈週期,其中每一ALU都具有四個週期的深度。
算術邏輯階段的輸出前往資料寫入階段。資料寫入階段即將管線結果儲存在寫入緩衝器內,或記憶體(例如第一圖和第二圖的圖形記憶體114或記憶體115)內的訊框緩衝器內。如有需求,若需要進一步處理資料,則像素封包/資料可從資料寫入階段重複循環回算術邏輯階段。
第四圖說明根據本發明之具體實施例的像素群組中像素資料,也就是一系列像素資料列的像素資料連續性。在第四圖的範例中,像素群組包含四個像素的方形:P0、P1、P2和P3。
如上述,像素的像素資料可分成子集或資料列。在一個具體實施例內,每個像素最多可有四列資料。例如:列0包含像素資料的四個欄位或暫存器P0r0、P0r1、P0r2和P0r3(「r」表示列內的欄位或暫存器,「R」表示列)。每一列都可代表像素資料的一或多個屬性。這些屬性包含,但不受限於z深度值、紋理座標、細節等級、顏色以及阿爾發。暫存器值可用來當成算
術邏輯階段內ALU所執行運算內的運算元。
旁帶資訊420關聯於每一列像素資料。除此以外,旁帶資訊包含識別或指向一個指令的資訊,該指令使用由指令識別的像素資料,利用ALU來執行。換言之,除此以外,旁帶資訊關聯於識別指令I0的列0。指令可指定例如要執行的算術運算種類,以及哪個暫存器內含要在運算當中用來當成運算元的資料。
在一個具體實施例內,旁帶資訊中每一列像素資料都包含一個有條件執行位元。用於每一列像素資料的有條件執行位元之值都可不同,即使該列關聯於相同像素也一樣。在此可設定與一列像素資料相關聯的有條件執行位元,以避免在相關聯像素的運算元上執行指令。例如:若關聯於P0R0的有條件執行位元設定成不執行,則將不會針對像素P0執行指令I0(但是仍舊可針對群組內其他像素來執行)。底下與第七A圖結合,進一步說明有條件執行位元的功能。在一個具體實施例內,有條件執行位元在長度內為單一位元。
第五圖為根據本發明之一具體實施例的算術邏輯階段230之方塊圖。第五圖內只顯示特定元件,算術邏輯階段可包含第五圖內所示以外的元件,底下將做說明。
在每一新時脈週期之中,一列像素資料在從管線的資料擷取階段至算術邏輯階段內連續前進。例如:列0在第一時脈上往下至管線,在下一個時脈上則接著列1,以此類推。一旦與特定像素群組(例如方形)關聯的所有列都載入管線內,與下個方形相關聯的列可開始載入管線。
在一個具體實施例內,用於像素群組(例如方形)內每一像素的像素資料列會與群組內其他像素的像素資料列交織。例如:有關四個像素的群組,每個像素具有四列,則像素資料會以下列順序降至管線:第一像素的第一列(P0r0至P0r3)、第二像素的第一列(P1r0至P1r3)、第三像素的第一列(P2r0至
P2r3)、第四像素的第一列(P3r0至P3r3)、第一像素的第二列(P0r4至P0r7)、第二像素的第二列(P1r4至P1r7)、第三像素的第二列(P2r4至P2r7)、第四像素的第二列(P3r4至P3r7)以此類推至第十五列,包含P3r12至P3r15。如上述,每個像素可少於四列。藉由以此方式交織像素封包的列,因此可避免停留在管線內,並且可增加資料通量。
因此再本具體實施例內,每個時脈週期上都會將包含旁帶資訊420的一列像素資料(例如列0)遞送至解序列化器510。
在第五圖的範例中,解序列化器將像素資料列解序列化。如上述,像素群組(例如方形)的像素資料可逐列交織。另外,像素資料逐列抵達算數邏輯階段。因此,參閱此處,解序列化並不是逐位元執行,而是將解序列化逐列執行。若圖形管線為四個暫存器寬,並且每個像素有四列,則解序列化器將像素資料解序列化成每像素有16個暫存器。
在第五圖的範例中,解序列化器將像素群組的像素資料傳送至緩衝器0、1或2之一。像素資料傳送至緩衝器之一,而其他緩衝器之一內的像素資料則在ALU上操作,而當像素資料在剩餘緩衝器內,並且已經由ALU操作時,則由序列化器550序列化,並且逐列送至圖形管線的下一個階段。一旦已排放緩衝器,則準備好填充(覆寫)像素資料用於下一個像素群組;一旦已經載入緩衝器,則其包含的像素資料已經準備進行操作;並且一旦緩衝器內的像素資料已經操作,則已準備好排放(覆寫)。
包含旁帶資訊用於像素群組(即是方形0)的像素資料到達算數邏輯階段,緊接著為包含旁帶資訊用於下一個像素群組(即是方形1)的像素資料,然後接著為包含旁帶資訊用於下一個像素群組(即是方形2)的像素資料。
一旦與特定像素相關聯的所有像素資料列都已經解序列化,則用於該像素的像素資料可由ALU操作。在一個具體實
施例內,相同的指令套用至群組(例如方形)內所有像素。ALU為有效率的管線處理器,該處理器以SIMD(相同指令,多重資料)方式操作通過像素群組。
第六圖顯示透過任意選取的時脈週期0-15退出ALU的像素結果。在時脈週期0-3內,像素結果伴隨於第一指令I0的執行,運用像素P0-P3的像素資料,退出ALU。類似地,像素結果伴隨於第二指令I1的執行,運用像素P0-P3的像素資料,退出ALU,以此類推。請回頭參閱第四圖,指令I0關聯於像素P0-P3的像素資料之列0,指令I1關聯於像素P0-P3的像素資料之列1,以此類推。因為將相同指令套用通過像素P0-P3,所以ALU以SIMD方式操作。
第七A圖顯示根據本發明具體實施例流過ALU階段的像素資料。在本具體實施例內,像素資料運算元的操作耗費四個時脈週期,尤其是用於要執行的指令時。一開始,每一ALU都為四個管路階段深。請同時參閱第七B圖,在第一時脈週期期間,第一像素的像素資料讀入ALU(ALU的階段1)。在第二和第三時脈週期期間,在像素資料上執行計算,例如在第二時脈週期上,可用乘數乘上運算元,在第三時脈週期上,乘數結果可加入加數(ALU的階段2和3)。在第四時脈週期期間(ALU的階段4),像素資料寫回緩衝器或全域暫存器。另外在第二時脈週期期間,第二像素的像素資料會讀入ALU,該資料跟在第一像素的像素資料之後通過ALU剩餘階段。另外在第三時脈週期期間,第三像素的像素資料會讀入ALU,該資料跟在第二像素的像素資料之後通過ALU剩餘階段。一旦ALU為「基本」,則一個像素的像素資料允許其他像素的像素資料如剛剛所說明通過ALU。
如上面所提及,在一個具體實施例內,源自於每列旁帶資訊的相同指令套用至群組(例如方形)內所有像素。例如:在已知的時脈週期上,指令將指定一組選自於像素群組內第一像素
的像素資料之運算元。在下一個時脈週期上,指令將指定另一組選自於群組內第二像素的像素資料之運算元,以此類推。根據本發明的具體實施例,源自於每列旁帶資訊的有條件執行位元關聯於每一組運算元。一般而言,若有條件執行位元設定成不執行,則ALU不會操作與有條件執行位元相關聯之運算元。
第七A圖顯示根據本發明之一具體實施例每一ALU階段內的運算元組合。例如:同時參閱第七B圖,在時脈週期N-1上,ALU階段1內的運算元組合包含像素P1的像素資料,如指令I2(圖式內指定為P1.I2)之指示,階段2在選自於像素0的像素資料之運算元組合上運算,但是根據指令I2 (P0.I2)指示,以此類推。在下一個連續時脈週期N內,每一個運算元組合都移至下一個ALU階段,下一個載入ALU的運算元組合則為P2.I2。
在第七A圖的範例中,與運算元P2.I2相關聯的有條件執行位元設定為「不執行」。有條件執行位元可由圖形管線頂端(前端)上的陰影程式來設定。另外,有條件執行位元可設定為(或重設為)之前執行指令的結果。
因此,運算元P2.I2並不會在ALU上運作。尤其是,在一個具體實施例內,若有條件執行位元設定為不執行,則ALU不鎖定運算元P2.I2。結果,在這些運算元上運算的ALU管路階段不改變狀態。因此,在時脈週期N上,ALU的階段1和階段2內含相同資料(P1.I2),因為正反器並未鎖定,因此仍在先前時脈週期N-1上之狀態。因此,ALU下游管路階段內之組合邏輯並不轉換,並且功率不為不需要的擴張。
在時脈週期N+1內,ALU內階段2的組合邏輯並未切換,因為運算元與之前時脈週期所用的相同。類似地,在時脈週期N+2內,ALU階段3內的組合邏輯並未切換。在時脈週期N+3內,與階段4相關聯的正反器並未改變狀態,因為運算元組合與之前時脈週期所用的相同。
即使對於運算元P2.I2,條件執行位元設定為不執行,「無用的」運算元組合則有效率傳播通過此位置內的ALU。在此方式中,通過圖形管線的資料順序維持不變,並且通過ALU的時機也維持不變。
一般來說,當有條件執行位元設定成不執行,則ALU不會執行與有條件執行位元相關聯的像素資料上之任何工作。在效用方面,有條件執行位元當成啟用位元,若該位元設定為不執行,則資料正反器不會啟用並且將不會擷取新輸入的運算元。取而代之,正反器的輸出保留目前的狀態(當在之前時脈週期上擷取資料時採取的狀態)。在一個具體實施例內,利用閘控正反器的時脈可達成。若有條件執行位元設定成不執行,則擷取輸入運算元的正反器不會計時,時脈訊號不會轉換,所以正反器不會擷取新資料。在一個具體實施例內,若有條件執行位元設定成不執行,則只有ALU第一階段內的正反器(例如第七B圖的鎖710)不計時;不過本發明並不受限於此。也就是,時脈可在ALU的一或多個階段上閘控。另外,取代閘控時脈,輸入至正反器的資料可在有條件執行位元的控制之下閘控。
當不需要時,利用ALU內的正反器不計時來省電。在ALU的組合邏輯內也可省電,因為邏輯內未發生切換活動、因為每個時脈內的運算元都相同。
第八圖為根據本發明之一具體實施例用於在圖形處理器單元管線內處理像素資料的電腦實施方法範例之流程圖800。
雖然在流程圖內說明特定步驟,不過這種步驟僅為示範。也就是,本發明的具體實施例適合執行流程圖內許多其他步驟或步驟變化。流程圖內的步驟可用和所呈現者不同的順序來執行。
在方塊810內,根據指令執行算術運算。相同的指令套用至不同的像素資料運算元組合。每一組運算元都關聯於像素群組(例如方形)內個別像素。有條件執行位元也關聯於每一組運
算元。
在方塊820內,與一組運算元相關聯的有條件執行位元之值用於決定這些運算元是否載入ALU。尤其是,若有條件執行位元設定為第一值(例如0或1)時載入運算元並由ALU運算,若有條件執行位元設定為第二值(例如分別為1或0)時則未載入運算元或由ALU運算。
總而言之,指令套用通過像素群組,但這對於在群組內每一像素的像素資料上執行指令卻並非必須。若要保持管線內正確順序,則將指令套用至群組內每一像素-從群組內每一像素的像素資料中選擇一組運算元。不過,若與像素的一組運算元有關聯之有條件執行位元設定成不執行,則ALU不會操作該像素之運算元。因此,ALU正反器不需要非必要的計時與切換,藉此節省電源。因此,本發明的具體實施例最適合用在手持式與其他可攜式、電池供電裝置內以及其他種裝置的圖形處理。
上述本發明特定具體實施例的說明係為了引例以及說明之用,在此並未要徹底或要將本發明限制到所公佈的精確型態,並且在上述教導之中可進行許多修改以及變化。例如:本發明具體實施例可在外型與功能與第二圖的GPU 110不同之GPU上實施。具體實施例經過選擇與說明來最佳闡述本發明原理,並且以許多實施應用讓其他精通此技術的人士對本發明有最佳利用,並且期待這些具有不同修改的不同具體實施例都適合特定使用。而本發明範疇意欲由後附申請專利範圍及其同等項所定義。
100‧‧‧電腦系統
101‧‧‧中央處理單元
110‧‧‧圖形處理單元
112‧‧‧顯示器
115‧‧‧系統記憶體
114‧‧‧本機圖形記憶體
210‧‧‧圖形管線
250‧‧‧片斷資料快取
220‧‧‧程式序列器
230‧‧‧算術邏輯單元
240‧‧‧資料寫入組件
260‧‧‧共用輸入
310‧‧‧光柵器
330‧‧‧資料擷取階段
420‧‧‧旁帶資訊
510‧‧‧解序列化器
550‧‧‧序列化器
710‧‧‧鎖
800‧‧‧流程圖
本發明藉由範例進行說明並且不受其限制,在附圖中的數據以及其中相似的參考編號指示類似的元件。
第一圖為顯示根據本發明之一具體實施例的電腦系統組
件之方塊圖。
第二圖為顯示根據本發明之一具體實施例的圖形處理單元(GPU)組件之方塊圖。
第三圖說明根據本發明之一具體實施例的GPU管線內之階段。
第四圖說明根據本發明之具體實施例的一系列像素資料列。
第五圖為根據本發明之一具體實施例的GPU內算術邏輯階段之方塊圖。
第六圖說明根據本發明具體實施例退出算術邏輯單元的像素資料。
第七A圖說明根據本發明之一具體實施例的許多ALU階段內之像素資料。
第七B圖說明根據本發明具體實施例的許多ALU階段。
第八圖為根據本發明之一具體實施例用於處理像素資料的電腦實施方法之流程圖。
240‧‧‧資料寫入組件
330‧‧‧資料擷取階段
510‧‧‧解序列化器
550‧‧‧序列化器
Claims (21)
- 一種圖形處理器單元(GPU)管線,包含:複數個算術邏輯單元(ALU),其可根據複數指令操作來執行複數算術運算,其中該些指令套用至對複數像素的複數組包含像素資料的運算元,該複數組運算元內之每一組運算元都關聯於該些像素的一個別像素以及一個別有條件執行位元,該些像素包括一像素(其具有與其相關連的一像素封包),該像素封包包括一第一組運算元、一第二組運算元、與該第一組運算元相關連的一第一有條件執行位元和與該第二組運算元相關連的一第二有條件執行位元,其中該第一有條件執行位元的一值決定該第一組運算元內之該像素資料是否被該些ALU處理,其中該第二有條件執行位元的一值決定該第二組運算元內之該像素資料是否被該些ALU處理。
- 如申請專利範圍第1項之GPU管線,其中若該第一有條件執行位元設定為一第一值時由該些ALU運算該第一組運算元,若該第一有條件執行位元設定為一第二值時則不由該些ALU運算。
- 如申請專利範圍第1項之GPU管線,其中該第一有條件執行位元與該第二有條件執行位元具有不同值。
- 如申請專利範圍第1項之GPU管線,其中該些ALU包含複數個階段,其包含複數個鎖,其中該第一有條件執行位元的該值決定該第一組運算元是否由該些ALU鎖定。
- 如申請專利範圍第4項之GPU管線,其中該些鎖包含複數閘控時脈,其中該些閘控時脈可在該第一有條件執行位元和該第二有條件執行位元的控制之下啟用或停用。
- 如申請專利範圍第1項之GPU管線,其中根據該第二組運算元上進行一運算之一結果,來設定該第一有條件執行位元。
- 一種在一圖形處理器單元內的圖形管線,該管線包含:一資料擷取階段;以及複數個算術邏輯單元(ALU),其耦合至該資料擷取階段,其中一第一指令識別對該ALU的第一組運算元,一第二指令識別對該ALU的第二組運算元,其中該第一組運算元、一第一有條件執行位元、該第二組運算元、與一第二有條件執行位元被包括於一第一像素的一像素封包中,其中該第一有條件執行位元的一值決定該第一組運算元是否於該些ALU上被運算,該第二有條件執行位元的一值決定該第二組運算元是否於該些ALU上被運算。
- 如申請專利範圍第7項之圖形管線,其中該第一有條件執行位元與該第二有條件執行位元具有不同值。
- 如申請專利範圍第7項之圖形管線,其中該些ALU包含複數個正反器,其中該第一有條件執行位元的該值決定該些第一運算元是否由該些ALU鎖定,並且其中該第二有條件執行位元的該值決定該些第二運算元是否由該些ALU鎖定。
- 如申請專利範圍第9項之圖形管線,其中該些正反器包含複數閘控時脈,其中該些閘控時脈由該第一和第二有條件執行位元輪流控制。
- 如申請專利範圍第7項之圖形管線,其中根據該第一指令執行一運算之一結果,來設定該第二有條件執行位元的該值。
- 如申請專利範圍第7項之圖形管線,其中該第一像素為複數像素的方形的成員,該些像素透過該圖形管線共同處理。
- 一種在該圖形處理器單元管線內處理資料之電腦實施方法,該方法包含:根據複數指令在一算術邏輯單元(ALU)內執行複數算術運算,其中該些指令套用至像素資料的對複數像素的複 數組運算元,該複數組運算元的每一組運算元都關聯於該些像素的一個別像素以及一個別有條件執行位元,該些像素包括一像素(其具有與其相關連的一像素封包),該像素封包包括一第一組運算元、一第二組運算元、與該第一組運算元相關連的一第一有條件執行位元和與該第二組運算元相關連的一第二有條件執行位元;運用僅與該第一組運算元相關聯的該第一有條件執行位元之一值,決定是否將該第一組運算元內之該像素資料載入該ALU;以及運用僅與該第二組運算元相關聯的該第二有條件執行位元之一值,決定是否將該第二組運算元內之該像素資料載入該ALU。
- 如申請專利範圍第13項之方法,進一步包含若該第一有條件執行位元設定為一第一值,則在該第一組運算元上運算,其中若該第一有條件執行位元設定為一第二值時,則該第一組運算元不載入該ALU。
- 如申請專利範圍第13項之方法,其中該第一有條件執行位元與該第二有條件執行位元具有不同值。
- 如申請專利範圍第13項之方法,進一步包含決定是否根據該第一和第二有條件執行位元的該些值來鎖定該第一組運算元。
- 如申請專利範圍第13項之方法,其中該方法進一步包含在該ALU內使用該第一和第二有條件執行位元來控制複數閘控時脈。
- 如申請專利範圍第13項之方法,進一步包含根據該第一組運算元上一運算之一結果,來設定該第二有條件執行位元。
- 一種圖形處理器單元中的一算術邏輯單元(ALU)管路階段包含:一記憶體,其用於儲存與複數個像素有關聯的複數個 運算元;一管線ALU,其耦合至該記憶體並且包含複數個管路階段以用於在該複數個像素之每一個像素的該些運算元上執行複數指令,其中與該複數個像素相關聯的該些運算元依照每一時脈週期之一像素的方式輸入該ALU,其中每一組運算元關聯於複數個像素的一個別像素,並且其中該記憶體也用於儲存該複數個像素的每一像素之複數個別旗標位元,其中該些像素包括一第一像素(其具有與其相關連的一像素封包),該像素封包包括一第一組運算元、一第二組運算元、與該第一組運算元相關連的一第一旗標位元和與該第二組運算元相關連的一第二旗標位元;以及閘控邏輯,其耦合至該ALU並且用於避免該第一組運算元在一第一時脈週期上進入該ALU,該第一像素的該些旗標位元的該第一旗標位元被設定為一值,同時允許該第二組運算元在一第二時脈週期上進入該ALU,該第一像素的該些旗標位元的該第二旗標位元被設定為另一值,其中該第一旗標位元的該值只影響該第一組運算元,該第二旗標位元的該值只影響該第二組運算元。
- 如申請專利範圍第19項之ALU管路階段,其中該第一旗標位元避免該第一組運算元被該ALU的該些管路階段所處理。
- 如申請專利範圍第20項之ALU管路階段,其中在該第一旗標位元已經設定之後,該第一管路階段保留運算元(非進入該ALU的一第一管路階段的該第一像素相關聯的該第一組運算元)之值,該運算元關聯於在該第一時脈週期之前一時脈週期上進入該第一管路階段的一第二像素。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/893,620 US20090046105A1 (en) | 2007-08-15 | 2007-08-15 | Conditional execute bit in a graphics processor unit pipeline |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200917157A TW200917157A (en) | 2009-04-16 |
| TWI484441B true TWI484441B (zh) | 2015-05-11 |
Family
ID=40362623
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW097130918A TWI484441B (zh) | 2007-08-15 | 2008-08-14 | 算術邏輯單元管路階段、圖形處理器單元管線和在其中處理資料的方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20090046105A1 (zh) |
| JP (1) | JP5435253B2 (zh) |
| KR (1) | KR100980148B1 (zh) |
| CN (1) | CN101441761B (zh) |
| TW (1) | TWI484441B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9769356B2 (en) | 2015-04-23 | 2017-09-19 | Google Inc. | Two dimensional shift array for image processor |
| US11430141B2 (en) * | 2019-11-04 | 2022-08-30 | Facebook Technologies, Llc | Artificial reality system using a multisurface display protocol to communicate surface data |
| US11145107B2 (en) | 2019-11-04 | 2021-10-12 | Facebook Technologies, Llc | Artificial reality system using superframes to communicate surface data |
| IT202100026552A1 (it) * | 2021-10-18 | 2023-04-18 | Durst Group Ag | "Metodo e prodotto per la sintesi di dati di stampa e per la fornitura degli stessi ad una stampante" |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001338287A (ja) * | 2000-05-25 | 2001-12-07 | Nec Microsystems Ltd | バッファ制御回路 |
| JP2002171401A (ja) * | 2000-11-29 | 2002-06-14 | Canon Inc | 間引き演算命令を備えたsimd型演算装置 |
| JP2004199222A (ja) * | 2002-12-17 | 2004-07-15 | Nec Corp | 対称型画像フィルタ処理装置、プログラム、及びその方法 |
| WO2005114646A2 (en) * | 2004-05-14 | 2005-12-01 | Nvidia Corporation | Low power programmable processor |
| US20060152519A1 (en) * | 2004-05-14 | 2006-07-13 | Nvidia Corporation | Method for operating low power programmable processor |
| JP2006196004A (ja) * | 2005-01-13 | 2006-07-27 | Sony Computer Entertainment Inc | Simdプロセッサスライスの有効/無効の制御のための方法ならびに装置 |
| US20060288195A1 (en) * | 2005-06-18 | 2006-12-21 | Yung-Cheng Ma | Apparatus and method for switchable conditional execution in a VLIW processor |
| TWI275039B (en) * | 2004-03-19 | 2007-03-01 | Via Tech Inc | Method and apparatus for generating a shadow effect using shadow volumes |
| CN1947156A (zh) * | 2003-11-20 | 2007-04-11 | Ati技术公司 | 使用统一着色器的图形处理结构 |
| TW200719274A (en) * | 2005-11-11 | 2007-05-16 | Silicon Integrated Sys Corp | Register-collecting mechanism, method for performing the same and pixel processing system employing the same |
Family Cites Families (56)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4620217A (en) * | 1983-09-22 | 1986-10-28 | High Resolution Television, Inc. | Standard transmission and recording of high resolution television |
| US4648045A (en) * | 1984-05-23 | 1987-03-03 | The Board Of Trustees Of The Leland Standford Jr. University | High speed memory and processor system for raster display |
| US4901224A (en) * | 1985-02-25 | 1990-02-13 | Ewert Alfred P | Parallel digital processor |
| US4700319A (en) * | 1985-06-06 | 1987-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Arithmetic pipeline for image processing |
| JPS6280785A (ja) * | 1985-10-04 | 1987-04-14 | Toshiba Corp | 画像記憶装置 |
| US4862392A (en) * | 1986-03-07 | 1989-08-29 | Star Technologies, Inc. | Geometry processor for graphics display system |
| JPH0823883B2 (ja) * | 1987-07-02 | 1996-03-06 | 富士通株式会社 | ビデオレート画像プロセッサ |
| US5185856A (en) * | 1990-03-16 | 1993-02-09 | Hewlett-Packard Company | Arithmetic and logic processing unit for computer graphics system |
| JPH06318060A (ja) * | 1991-07-31 | 1994-11-15 | Toshiba Corp | 表示制御装置 |
| US5357604A (en) * | 1992-01-30 | 1994-10-18 | A/N, Inc. | Graphics processor with enhanced memory control circuitry for use in a video game system or the like |
| US5600584A (en) * | 1992-09-15 | 1997-02-04 | Schlafly; Roger | Interactive formula compiler and range estimator |
| JP2725546B2 (ja) * | 1992-12-07 | 1998-03-11 | 株式会社日立製作所 | デ−タ処理装置 |
| US5392393A (en) * | 1993-06-04 | 1995-02-21 | Sun Microsystems, Inc. | Architecture for a high performance three dimensional graphics accelerator |
| US5577213A (en) * | 1994-06-03 | 1996-11-19 | At&T Global Information Solutions Company | Multi-device adapter card for computer |
| US5655132A (en) * | 1994-08-08 | 1997-08-05 | Rockwell International Corporation | Register file with multi-tasking support |
| US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
| US5850572A (en) * | 1996-03-08 | 1998-12-15 | Lsi Logic Corporation | Error-tolerant video display subsystem |
| US6173366B1 (en) * | 1996-12-02 | 2001-01-09 | Compaq Computer Corp. | Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage |
| US6496537B1 (en) * | 1996-12-18 | 2002-12-17 | Thomson Licensing S.A. | Video decoder with interleaved data processing |
| US6374346B1 (en) | 1997-01-24 | 2002-04-16 | Texas Instruments Incorporated | Processor with conditional execution of every instruction |
| JP3790607B2 (ja) * | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
| US5941940A (en) * | 1997-06-30 | 1999-08-24 | Lucent Technologies Inc. | Digital signal processor architecture optimized for performing fast Fourier Transforms |
| US6118452A (en) * | 1997-08-05 | 2000-09-12 | Hewlett-Packard Company | Fragment visibility pretest system and methodology for improved performance of a graphics system |
| US6366999B1 (en) | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
| JP3541669B2 (ja) * | 1998-03-30 | 2004-07-14 | 松下電器産業株式会社 | 演算処理装置 |
| US6862278B1 (en) * | 1998-06-18 | 2005-03-01 | Microsoft Corporation | System and method using a packetized encoded bitstream for parallel compression and decompression |
| US6771264B1 (en) * | 1998-08-20 | 2004-08-03 | Apple Computer, Inc. | Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor |
| US6333744B1 (en) * | 1999-03-22 | 2001-12-25 | Nvidia Corporation | Graphics pipeline including combiner stages |
| US6526430B1 (en) * | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
| US6351806B1 (en) * | 1999-10-06 | 2002-02-26 | Cradle Technologies | Risc processor using register codes for expanded instruction set |
| US6466222B1 (en) * | 1999-10-08 | 2002-10-15 | Silicon Integrated Systems Corp. | Apparatus and method for computing graphics attributes in a graphics display system |
| US6353439B1 (en) * | 1999-12-06 | 2002-03-05 | Nvidia Corporation | System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline |
| US6557022B1 (en) * | 2000-02-26 | 2003-04-29 | Qualcomm, Incorporated | Digital signal processor with coupled multiply-accumulate units |
| US6624818B1 (en) * | 2000-04-21 | 2003-09-23 | Ati International, Srl | Method and apparatus for shared microcode in a multi-thread computation engine |
| US6806886B1 (en) * | 2000-05-31 | 2004-10-19 | Nvidia Corporation | System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline |
| US6636223B1 (en) * | 2000-08-02 | 2003-10-21 | Ati International. Srl | Graphics processing system with logic enhanced memory and method therefore |
| US6636221B1 (en) * | 2000-08-02 | 2003-10-21 | Ati International, Srl | Graphics processing system with enhanced bus bandwidth utilization and method therefore |
| US6999100B1 (en) * | 2000-08-23 | 2006-02-14 | Nintendo Co., Ltd. | Method and apparatus for anti-aliasing in a graphics system |
| US6778181B1 (en) * | 2000-12-07 | 2004-08-17 | Nvidia Corporation | Graphics processing system having a virtual texturing array |
| JP2002333978A (ja) * | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
| US6839828B2 (en) * | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
| US6947053B2 (en) * | 2001-09-27 | 2005-09-20 | Intel Corporation | Texture engine state variable synchronizer |
| US7127482B2 (en) * | 2001-11-19 | 2006-10-24 | Intel Corporation | Performance optimized approach for efficient downsampling operations |
| US6924808B2 (en) * | 2002-03-12 | 2005-08-02 | Sun Microsystems, Inc. | Area pattern processing of pixels |
| US6980209B1 (en) * | 2002-06-14 | 2005-12-27 | Nvidia Corporation | Method and system for scalable, dataflow-based, programmable processing of graphics data |
| US8036475B2 (en) * | 2002-12-13 | 2011-10-11 | Ricoh Co., Ltd. | Compression for segmented images and other types of sideband information |
| US8274517B2 (en) * | 2003-11-14 | 2012-09-25 | Microsoft Corporation | Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques |
| US7280112B1 (en) * | 2004-05-14 | 2007-10-09 | Nvidia Corporation | Arithmetic logic unit temporary registers |
| US7710427B1 (en) * | 2004-05-14 | 2010-05-04 | Nvidia Corporation | Arithmetic logic unit and method for processing data in a graphics pipeline |
| US7298375B1 (en) * | 2004-05-14 | 2007-11-20 | Nvidia Corporation | Arithmetic logic units in series in a graphics pipeline |
| US7941645B1 (en) * | 2004-07-28 | 2011-05-10 | Nvidia Corporation | Isochronous pipelined processor with deterministic control |
| US7525543B2 (en) * | 2004-08-09 | 2009-04-28 | Siemens Medical Solutions Usa, Inc. | High performance shading of large volumetric data using screen-space partial derivatives |
| US20060177122A1 (en) * | 2005-02-07 | 2006-08-10 | Sony Computer Entertainment Inc. | Method and apparatus for particle manipulation using graphics processing |
| US7477260B1 (en) * | 2006-02-01 | 2009-01-13 | Nvidia Corporation | On-the-fly reordering of multi-cycle data transfers |
| US20070279408A1 (en) * | 2006-06-01 | 2007-12-06 | Intersil Corporation | Method and system for data transmission and recovery |
| US7928990B2 (en) * | 2006-09-27 | 2011-04-19 | Qualcomm Incorporated | Graphics processing unit with unified vertex cache and shader register file |
-
2007
- 2007-08-15 US US11/893,620 patent/US20090046105A1/en not_active Abandoned
-
2008
- 2008-08-11 KR KR1020080078436A patent/KR100980148B1/ko active Active
- 2008-08-14 TW TW097130918A patent/TWI484441B/zh active
- 2008-08-14 JP JP2008209007A patent/JP5435253B2/ja active Active
- 2008-08-15 CN CN2008101351974A patent/CN101441761B/zh not_active Expired - Fee Related
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001338287A (ja) * | 2000-05-25 | 2001-12-07 | Nec Microsystems Ltd | バッファ制御回路 |
| JP2002171401A (ja) * | 2000-11-29 | 2002-06-14 | Canon Inc | 間引き演算命令を備えたsimd型演算装置 |
| JP2004199222A (ja) * | 2002-12-17 | 2004-07-15 | Nec Corp | 対称型画像フィルタ処理装置、プログラム、及びその方法 |
| CN1947156A (zh) * | 2003-11-20 | 2007-04-11 | Ati技术公司 | 使用统一着色器的图形处理结构 |
| TWI275039B (en) * | 2004-03-19 | 2007-03-01 | Via Tech Inc | Method and apparatus for generating a shadow effect using shadow volumes |
| WO2005114646A2 (en) * | 2004-05-14 | 2005-12-01 | Nvidia Corporation | Low power programmable processor |
| US20060152519A1 (en) * | 2004-05-14 | 2006-07-13 | Nvidia Corporation | Method for operating low power programmable processor |
| JP2006196004A (ja) * | 2005-01-13 | 2006-07-27 | Sony Computer Entertainment Inc | Simdプロセッサスライスの有効/無効の制御のための方法ならびに装置 |
| US20060288195A1 (en) * | 2005-06-18 | 2006-12-21 | Yung-Cheng Ma | Apparatus and method for switchable conditional execution in a VLIW processor |
| TW200719274A (en) * | 2005-11-11 | 2007-05-16 | Silicon Integrated Sys Corp | Register-collecting mechanism, method for performing the same and pixel processing system employing the same |
Also Published As
| Publication number | Publication date |
|---|---|
| CN101441761A (zh) | 2009-05-27 |
| JP5435253B2 (ja) | 2014-03-05 |
| KR20090017980A (ko) | 2009-02-19 |
| CN101441761B (zh) | 2012-09-19 |
| KR100980148B1 (ko) | 2010-09-03 |
| JP2009080797A (ja) | 2009-04-16 |
| US20090046105A1 (en) | 2009-02-19 |
| TW200917157A (en) | 2009-04-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6624819B1 (en) | Method and system for providing a flexible and efficient processor for use in a graphics processing system | |
| US10692170B2 (en) | Software scoreboard information and synchronization | |
| KR101076245B1 (ko) | 상대 주소 발생 | |
| US7969446B2 (en) | Method for operating low power programmable processor | |
| US6807620B1 (en) | Game system with graphics processor | |
| US7634637B1 (en) | Execution of parallel groups of threads with per-instruction serialization | |
| EP1759380B1 (en) | Low power programmable processor | |
| US8521800B1 (en) | Interconnected arithmetic logic units | |
| US9477482B2 (en) | System, method, and computer program product for implementing multi-cycle register file bypass | |
| US8775777B2 (en) | Techniques for sourcing immediate values from a VLIW | |
| US10255075B2 (en) | System, method, and computer program product for managing out-of-order execution of program instructions | |
| TWI484441B (zh) | 算術邏輯單元管路階段、圖形處理器單元管線和在其中處理資料的方法 | |
| US20140372703A1 (en) | System, method, and computer program product for warming a cache for a task launch | |
| US7199799B2 (en) | Interleaving of pixels for low power programmable processor | |
| US11281463B2 (en) | Conversion of unorm integer values to floating-point values in low power | |
| CN109791527B (zh) | 延迟丢弃 | |
| TWI427552B (zh) | 圖形處理器管線內之共享可讀取與可寫入全域值 | |
| US7484076B1 (en) | Executing an SIMD instruction requiring P operations on an execution unit that performs Q operations at a time (Q<P) | |
| US20050253857A1 (en) | Reconfigurable pipeline for low power programmable processor | |
| US7142214B2 (en) | Data format for low power programmable processor | |
| KR101863483B1 (ko) | 중간 스토리지로서 파이프라인 레지스터들의 활용 | |
| US20080055307A1 (en) | Graphics rendering pipeline |