TWI427552B - 圖形處理器管線內之共享可讀取與可寫入全域值 - Google Patents

圖形處理器管線內之共享可讀取與可寫入全域值 Download PDF

Info

Publication number
TWI427552B
TWI427552B TW097130920A TW97130920A TWI427552B TW I427552 B TWI427552 B TW I427552B TW 097130920 A TW097130920 A TW 097130920A TW 97130920 A TW97130920 A TW 97130920A TW I427552 B TWI427552 B TW I427552B
Authority
TW
Taiwan
Prior art keywords
pixel
register
pixels
registers
instruction
Prior art date
Application number
TW097130920A
Other languages
English (en)
Other versions
TW200915219A (en
Inventor
J Bergland Tyson
M Okruhlica Craig
A Hutchins Edward
J M Toksvig Michael
M Mahan Justin
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of TW200915219A publication Critical patent/TW200915219A/zh
Application granted granted Critical
Publication of TWI427552B publication Critical patent/TWI427552B/zh

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Description

圖形處理器管線內之共享可讀取與可寫入全域值
本發明的具體實施例係與電腦圖學領域相關。
近來在電腦效能方面的進步強化了圖形系統,讓使用個人電腦、家庭視訊遊戲電腦、手持式裝置等等能夠提供更可靠的圖形影像。在這種圖形系統內,執行許多程序來彩現或繪製原始圖形至系統螢幕。原始圖形為圖形的基本組件,像是點、線、多邊形等等。利用這些原始圖形組合之後就形成彩現影像。許多程序都可用來執行三維(3-D,“three-dimensional”)圖形彩現。
特殊化的圖形處理單元(GPU,“Graphics Processing Unit”)被發展來增加圖形彩現程序的執行速度。GPU通常合併一或多個彩現管線,每一個管線都包含設計用於圖形指令/資料高速執行之許多硬體功能單元。一般而言,指令/資料饋送入管線前端,並且計算出來的結果出現在管線末端。GPU的硬體式功能單元、快取記憶體、韌體等等都設計成在基本原始圖形上操作,並產生即時彩現的3D影像。
即便在可攜式或手持式裝置,像是行動電話、個人數位助理(PDA)以及其他裝置內彩現3D圖形影像的興趣日漸增加,可攜式或手持式裝置一般相對於像是桌上型電腦這類裝置都有其指令/資料處理上的限制。例如:因為可攜式裝置一般都為電池驅動,所以要考慮到耗電量。另外,因為可攜式裝置尺寸更小,所以內部可用空間就會受限。因此如何能在手持式裝置的限制下快速執行寫實3D圖形彩現便成為一個重要的課題。
本發明的具體實施例提供在圖形處理器單元管線內迅速 並有效處理資料之方法及系統。
在一個具體實施例內,本發明揭示一種在圖形處理單元內包含許多算術邏輯單元(ALU)和全域暫存器的算術邏輯。暫存器包含用於像素群組的全域值。全域值可從任何暫存器當中讀取,而不管哪個像素是否已經由ALU所操作。因為每一全域暫存器都可讀取,所以當其依賴像素的不同列、像素或群組的像素資料進行算術運算的執行時就更具有彈性。
不過,當寫入ALU運算結果時,只有某些全域暫存器會被選擇來寫入結果。也就是,只有特別與退出ALU的像素相關聯之全域暫存器才會被選擇來寫入結果。
像素群組的像素資料從圖形管線共同往下進行。在一個具體實施例內,群組內每一像素的像素資料可分成像素資料子集或像素資料列。在ALU內,相同的指令套用至群組內所有像素。每一像素的結果於連續時脈週期上由ALU呈現。因為在連續時脈週期上執行相同指令,所以除非目的地已化名,否則指定相同的目的地給這些結果。
本發明的具體實施例自動將結果目的地化名,這樣一來所產生的結果將根據與其相關聯的像素而引導至不同目的地。因為每一時脈週期都以管線方式產生新全域值,所以候選寫入的暫存器只包含全域暫存器的某些子集。在一個具體實施例內,退出ALU的像素之像素號碼用於選擇可以寫入結果的一或多個暫存器。利用控制當對像素進行時處理結果要寫入到哪個全域暫存器,則後續運算可能需要的全域值會受到保護避免遭到覆寫。
以此方式使用全域暫存器可促進程式編輯彈性,而不用相當程度增加暫存器數量。因此,本發明的具體實施例幫助在與手持式與其他可攜式、電池供電裝置相關聯的尺寸與電源限制之內迅速並有效進行圖形處理(雖然本發明不受限在使用這些裝置類型)。
精通此技術的人士在閱讀下列在許多附圖所例示之具體實施例之實施方式之後就可瞭解本發明許多具體實施例的這些與其他目的與優點。
在此將詳細參考本發明的具體實施例,附圖內將說明其範例。雖然本發明將結合這些具體實施例來說明,吾人將瞭解這並不用於將本發明限制在這些具體實施例上。相反地,本發明用於涵蓋後附申請專利範圍之精神與範疇內所包含之變化、修改與同等配置。更進一步,在下列本發明具體實施例的詳細說明中,將公佈許多特定細節以提供對本發明有通盤瞭解。不過,精通此技術的人士將會了解到,不用這些特定細節也可實施本發明。在其他實例中,已知的方法、程序、組件和電路並未詳述,因此就不會非必要地模糊本發明具體實施例的態樣。
某些詳細說明部分都以可在電腦記憶體執行的資料位元上操作之程序、步驟、邏輯區塊、處理以及其他符號表示之方式來呈現。這些說明與代表為精通資料處理技術的人士用來將其工作內容傳遞給其他精通此技術人士的最有效方式。此處的程序、電腦可執行步驟、邏輯區塊、處理等等一般係認為是導致所要結果的自洽步驟或指令順序。這些步驟為所需的物理量之物理操作。通常,雖然非必要,不過這些量採用可以儲存、傳輸、結合、比較以及其他在電腦系統內操縱的電或磁性信號形式。為了時間上方便起見,原則上因為常用,所以這些信號代表位元、數值、元件、符號、字元、詞彙、數字等等。
不過,吾人應該瞭解,所有這些與類似詞彙都與適當的物理量相關連,並且僅為套用這些量的便利標示。除非特別說明,否則從下列討論中可瞭解,在整個本發明中的討論運用像是「執行」、「產生」、「儲存」、「讀取」、「寫入」、「識別」、「選擇」、「處理」、「載入」、「存取」或「路由」等詞表示電腦系統 (例如第一圖的電腦系統100)或類似電子計算裝置的動作以及處理,其操縱以及轉換代表電腦系統的暫存器以及記憶體內物理(電子)量的資料成為類似代表電腦系統記憶體、暫存器或其他這種資訊儲存、傳輸或顯示裝置內物理量的其他資料。
第一圖顯示根據本發明之一具體實施例的電腦系統100。電腦系統包含根據本發明具體實施例的基本電腦系統組件,提供特定硬體式與軟體式功能的執行平台。一般而言,電腦系統包含至少一個中央處理單元(CPU)101、系統記憶體115以及至少一個圖形處理單元(GPU)110。CPU101可透過橋接器組件/記憶體控制器(未顯示)耦合至系統記憶體115,或可透過CPU101內部的記憶體控制器(未顯示)直接耦合至系統記憶體115。GPU110係耦合至顯示器112。一或多個額外GPU110可選擇性地耦合至系統100,以便進一步增加其計算能力。GPU110同時耦合至CPU101以及系統記憶體115。電腦系統100可實施成例如桌上型電腦系統或伺服器電腦系統,具有耦合至專屬圖形彩現GPU110的強大用途CPU101。在這種具體實施例內,組件內可額外包含週邊匯流排、特殊圖形記憶體、輸入/輸出(I/O)裝置等等。同時,電腦系統100可實施成為手持式裝置(例如行動電話等等)或機上視訊遊戲主機裝置。
GPU110可實施成為分散式組件、設計來透過連接器(例如圖形加速埠(AGP,“Accelerated Graphics Port”)插槽、周邊組件互連快速(PCI-E,“Peripheral Component Interconnect-Express”)插槽等等)耦合至電腦系統100的分散式繪圖卡、分散式積體電路晶粒(例如直接固定在主機板上)或包含在電腦系統晶片組件(未顯示)的積體電路晶粒內或PSOC(晶片上可程式系統(Programmable System-on-a-chip))的積體電路晶粒內之整合式GPU110。此外,電腦系統100可包含用於GPU110的本地圖形記憶體114用於高頻寬圖形資料儲存。
第二圖為顯示說明根據本發明之一具體實施例的GPU 110之內部組件以及本地圖形記憶體114之圖式。如第二圖內所說明,GPU包含一個圖形管線210以及如所示耦合至本地圖形記憶體114的一個片斷資料快取250。
在第二圖的範例內,圖形管線210包含許多功能模組。三個這種圖形管線的功能模組,例如程式序列器220、算術邏輯單元(ALU)230以及資料寫入組件240,利用彩現接收自圖形應用(例如圖形驅動器等等)的原始圖形來作用。.功能模組220-240透過片斷資料快取250存取用於將與原始圖形相關的像素彩現之資訊。片斷資料快取250當成用於圖形記憶體(例如訊框緩衝器記憶體)內所儲存資訊的高速快取。
程式序列器220用來控制圖形管線的功能模組之操作,程式序列器220可與圖形驅動程式(例如在第一圖的CPU 101上執行的圖形驅動程式),來控制圖形管線的功能模組接收資訊、設置本身進行操作以及處理原始圖形之方式。例如在第二圖的具體實施例內,圖形管線透過共用輸入260從上游功能模組(例如從上游光柵模組、設定模組或圖形驅動程式),接收圖形彩現資料(例如原始圖形、三角帶等等)、管線組態資訊(例如模式設定、彩現描述檔等等)以及彩現程式(例如像素陰影程式、頂點陰影程式等等)。輸入260當成圖形管線的功能模組間之主要片斷資料通道或管線。一般在管線前端上接收原始圖形,並且在從一個模組延著管線前往下個模組前進時逐漸彩現成為結果彩現像素資料。
在一個具體實施例內,資料以封包式格式在功能模組220-240之間前進。例如:圖形驅動程式以資料封包或像素封包形式將資料傳輸至GPU,這些封包都特別配置成介接並且延著管線的片斷管路通訊通道傳輸。像素封包一般包含有關像素的群組或拼貼(例如四像素、八像素、十六像素等等)之資訊,並且涵蓋用於與像素有關的一或多個原始圖形資訊。像素封包也包含旁帶資訊,讓管線的功能模組能設置用於彩現操作 時使用。例如:像素封包包含組態位元、指令、功能模組位址等等,其可由管線的一或多功能模組用來設置本身用於目前的彩現模式等等。除了像素彩現資訊以及功能模組組態資訊,像素封包可包含陰影程式指令,該等指令可程式化管線的功能模組,來執行像素上的陰影處理。例如:包含陰影程式的指令可往下傳輸至圖形管線,並且可由一或多個指定的功能模組所載入。一旦載入,在彩現操作期間,功能模組可執行像素資料上的陰影程式,來達成所要的彩現效果。
在此方式中,由圖形管線的功能模組所實施的高度最佳化並且有效之片斷管路通訊通道不僅可用在功能模組之間傳輸像素資料(例如模組220-240),也可在功能模組之間傳輸組態資訊與陰影程式指令。
第三圖為顯示根據本發明之一具體實施例的圖形管線210內所選階段之方塊圖。圖形管線可包含額外階段,或其可配置成與第三圖的範例不同。換言之,雖然將以第三圖管線範例討論本發明,不過本發明並不因此而受限制。
在第三圖的範例中,光柵器310使用內插法將三角形轉換成像素。在其許多功能之間,光柵器310接收頂點資料、決定哪個像素對應至哪個三角形以及決定需要在像素上執行當成彩現一部分的陰影處理操作,像是顏色、紋理以及霧狀操作。
光柵器產生要處理的三角形每一像素之像素封包。一般而言,像素封包是一組用於計算圖形顯示訊框內像素的像素值之敘述。像素封包與每一訊框內每一像素都有關聯。每一像素都與螢幕座標內特定(x,y)位置相關聯。在一個具體實施例內,圖形系統彩現一個兩像素乘兩像素的顯示畫面區域,稱之為方形。
每一像素封包都包含處理所需的像素屬性酬載(例如顏色、紋理、深度、霧、x和y位置等等)以及旁帶資訊(如資料擷取階段330所提供的像素屬性資料)。像素封包可包含一列 資料,或可包含多列資料。每一列通常為管線匯流排資料部分的寬度。
資料擷取階段擷取用於像素封包的資料。這種資料可包含用於每一像素封包的顏色資訊、任何深度資訊以及任何紋理資訊。在傳送像素封包至下一處理階段之前,擷取的資料會被放入像素資料列內的適當欄位內,在此可稱之為暫存器。
從資料擷取階段出發,像素資料列係被輸入至算術邏輯階段230。在本具體實施例內,每一時脈週期有一像素資料列被輸入算術邏輯階段230。在一具體實施例內,算術邏輯階段包含四個ALU 0、1、2和3(第五圖),其設置成執行與三維圖形操作相關的陰影程式,像是紋理結合(紋理環境)、鏤空、霧、阿爾發混合、阿爾發測試以及深度測試。每一ALU在每一時脈週期內都執行一個指令,每一指令都用於執行運算元上對應至像素封包內容的算術運算。在一個具體實施例內,一列資料在ALU內運算要耗費四個時脈週期,則每一ALU都具有四個時脈週期的深度。
算術邏輯階段的輸出會前往資料寫入階段。資料寫入階段即將管線結果儲存在寫入緩衝器內,或記憶體(例如第一圖和第二圖的本地圖形記憶體114或系統記憶體115)內的訊框緩衝器內。視需要,若需要進一步處理資料,則像素封包/資料可從資料寫入階段重複循環回算術邏輯階段。
第四圖說明根據本發明之具體實施例的像素群組中像素資料,也就是一系列像素資料列的像素資料連續性。在第四圖的範例中,像素群組包含四個像素的方形:P0、P1、P2和P3。如上述,像素的像素資料可分成像素子集或像素資料列。例如:列0包含像素資料的四個欄位或暫存器P0r0、P0r1、P0r2和P0r3(「r」表示列內的欄位或暫存器,「R」表示列)。每一列都可代表像素資料的一或多個屬性。這些屬性包含有但不受限於z深度值、紋理座標、細節等級、顏色以及阿爾發。暫存 器值可用來當成算術邏輯階段內ALU所執行運算內的運算元。
旁帶資訊420關聯於每一列像素資料。除此以外,旁帶資訊包含識別或指向一個指令的資訊,該指令使用由指令識別的像素資料,利用ALU來執行。除此以外,與列0關聯的旁帶資訊至少用來識別指令I0。指令可指定例如要執行的算術運算種類,以及哪個暫存器存有要在運算當中用來當成運算元的資料。
旁帶資訊也可識別像素資料列內含的資料類型。例如:一列可包含本地像素資料或全域像素資料。本地像素資料指定給與該列相關聯的像素。全域像素資料則用於超過一個像素的陰影程式所使用之像素資料,而非單屬於一像素。全域像素值可由多個像素列、多個像素或是多個像素群組所共享。就某種意義來說,全域值為常數,雖然全域值之值可修改成為ALU所執行運算的結果。
在每一新時脈週期之中,每一列像素資料在從資料擷取階段至算術邏輯階段內連續前進。例如:列0在第一時脈上往下至管線,在下一個時脈上則接著列1,以此類推。一旦與特定像素群組(例如方形)關聯的所有列都載入管線內,與下個方形相關聯的列可開始載入管線。
在一個具體實施例內,用於像素群組(例如方形)內每一像素的列會與群組內其他像素的像素資料列交織。例如:有關四個像素的群組,每個像素具有四列,則像素資料會以下列順序降至管線:第一像素的第一列(P0r0至P0r3)、第二像素的第一列(P1r0至P1r3)、第三像素的第一列(P2r0至P2r3)、第四像素的第一列(P3r0至P3r3)、第一像素的第二列(P0r4至P0r7)、第二像素的第二列(P1r4至P1r7)、第三像素的第二列(P2r4至P2r7)、第四像素的第二列(P3r4至P3r7)以此類推至第十五列,包含P3r12至P3r15。需注意的是,每個像素可以少於四列。 藉上述方式交織像素封包的列,可避免管線內的延遲,並且可增加資料通量。
第五圖為根據本發明之一具體實施例的算術邏輯階段230之方塊圖。第五圖內只顯示特定元件,算術邏輯階段可包含第五圖內所示以外的元件,底下將做說明。
每個時脈週期內都會將包含旁帶資訊420的一列像素資料(例如列0)遞送至解序列化器510。在第五圖的範例中,解序列化器將像素資料的列解序列化。如上述,像素群組(例如方形)的像素資料可逐列交織。另外,像素資料逐列抵達算數邏輯階段。因此,解序列化並不是逐位元執行,而是逐列執行。若圖形管線為四個暫存器寬,並且每個像素有四列,則解序列化器將像素資料解序列化至每像素有16個暫存器內。
如上述,某些像素資料可識別成為本地像素資料,並且其他像素資料可識別成為全域像素資料。在第五圖的範例中,解序列化器將像素群組的本地像素資料傳送至緩衝器0、1或2之一。
一般來說,本地像素資料會傳送至緩衝器之一,而其他緩衝器之一內的像素資料則在ALU上操作,而當在剩餘緩衝器內的像素資料已經由ALU操作時,本地像素資料則由序列化器550序列化,並且逐列送至圖形管線的下一個階段。一旦緩衝器已被清空,則緩衝器準備好會填充(覆寫)用於下一個像素群組的像素資料;一旦緩衝器被載入,則其包含的像素資料可以說已經準備好進行操作;並且一旦緩衝器內的像素資料已經被操作,則可以準備緩衝器的清空(或覆寫)。
在第五圖的範例中,解序列化器將全域值傳送至全域暫存器520。在一個具體實施例內,共有32個全域暫存器,每一都可保留全域值。因此,在任何時候上,最多有32個全域值可用於ALU運算。如此一來,在ALU運算期間都可讀取與利用32個全域值之任一個。
一旦與特定像素相關聯的所有像素資料列都已經解序列完成,則用於該像素的像素資料可由ALU操作。ALU為有效率的管線處理器,該處理器以SIMD(相同指令,多重資料)方式操作像素群組。
在本具體實施例內,一列像素資料的運算耗費四個時脈週期,尤其是用於與要執行的一列像素資料相關聯之指令時。在第一時脈週期期間,將包含第一像素的像素資料之運算元讀入ALU。運算元可為本地或全域值。在第二和第三時脈週期期間,在像素資料上執行計算,例如在第二時脈週期內,可用乘數乘上運算元,在第三時脈週期內,乘數結果可加入加數。在第四時脈週期期間,像素資料寫回緩衝器或全域暫存器。另外在第二時脈週期期間,第二像素的像素資料會讀入ALU,該資料跟在第一像素的像素資料之後通過每一個ALU所剩下來的操作階段。另外在第三時脈週期期間,第三像素的像素資料會讀入ALU,該資料跟在第二像素的像素資料列之後通過每一個ALU所剩下來的操作階段。一旦ALU為「準備完成」,則與一個像素相關聯的像素資料接著與其他像素相關聯的像素資料如剛剛所說明通過ALU。
第六圖顯示根據本發明之一具體實施例在算術邏輯階段內從全域暫存器讀取全域值以及將全域值寫入至全域暫存器。儘管在第六圖的範例中,總共有32個全域暫存器,不過本發明沒有在全域暫存器的數目上有所限制。
如上述,像素資料在每一時脈週期內進入ALU,一旦ALU為準備完成,則像素資料在每一時脈週期內退出ALU。當在ALU內處理像素資料,則可使用一或多個全域值當成處理期間的運算元。根據本發明的具體實施例,在處理任何像素的像素資料時都可讀取並使用任何全域暫存器內的全域值。
尤其是,每一時脈週期中,ALU執行指令。該指令除了指定了ALU所需每一運算元的來源,並且也指定ALU運算結 果的目的地。輸入運算元可從緩衝器0-2(第五圖)、全域暫存器G0-G31或緩衝器與全域暫存器的組合當中讀取。在本具體實施例當中,本地像素資料從緩衝器當中讀取,而全域像素資料則從全域暫存器當中讀取。對於讀取動作而言,指令可將任何全域暫存器識別為全域值的來源,而不管全域值係與哪一列、像素或像素群組相關連。
一旦ALU為準備完成,則每一時脈週期的輸出都可寫入至緩衝器或全域暫存器。每一結果都關聯於特定像素,就是與已經退出ALU的像素資料相關聯之像素。本地像素資料結果可以被寫回緩衝器,而全域值可被寫回全域暫存器。
在一個具體實施例內,相同指令與相同的ALU運算結果目的地,會被應用至像素群組內每一像素。例如:指令可指定運算結果被寫入全域暫存器G2,此指令可應用至方形內每一像素P0-P3。因此,結果關聯於像素P0(在通過ALU的其他像素之前)的處理將被寫入暫存器G2。類似地,結果關聯於像素P1(接在通過ALU的像素P0之後)的處理結果將覆寫暫存器G2的現有值(該值就是上述關聯於像素P0的運算結果),除非適當控制已就位。
尤其是,在一具體實施例內,ALU對每一像素執行一個指令(每個像素群組四個指令),並且耗費四個時脈週期來執行一個指令。第七圖顯示透過任意選取的時脈週期0-15退出ALU的像素結果。在時脈週期0-3內,關聯於第一指令I0的執行的像素結果(該執行係使用像素P0-P3的像素資料),退出ALU,雖然是針對不同的像素,這些結果將具有相同由指令I0指定的目的地。類似地,關聯於第二指令I1的執行的像素結果(該執行係使用像素P0-P3的像素資料),退出ALU,且雖然是針對不同的像素,這些結果將具有由指令I1指定的相同目的地。以此類推。在無適當控制之下,在時脈週期1內,例如:與像素P1相關聯的結果將覆寫與像素P0相關聯的結 果;在時脈週期2內,與像素P2相關聯的結果將覆寫與像素P1相關聯的結果;以此類推。本發明的具體實施例提供防止全域值遭到覆寫之控制。
在一個具體實施例內,針對寫入,全域暫存器的組合在邏輯上分成分離的子集,每一子集都關聯於像素群組內的像素之一,並且屬於一子集成員的全域暫存器並非任何其他子集的成員。在這種具體實施例內,每一子集的暫存器數量為算術邏輯階段內全域暫存器的數量N除以像素群組內像素的數量M。例如:若有32個全域暫存器並且群組內有四個像素,則每一子集應該有八個全域暫存器。如此,對於寫入而言,在一個具體實施例內,全域暫存器G0-G7只關聯於像素P0、全域暫存器G8-G15只關聯於像素P1、全域暫存器G16-G23只關聯於像素P2並且全域暫存器G24-G31只關聯於像素P3。因此,在一個具體實施例內,源自於ALU在像素P0資料上運算的全域值只寫入包含暫存器G0-G7的子集內之全域暫存器、源自於ALU在像素P1資料上運算的全域值只寫入包含暫存器G8-G15的子集內之全域暫存器,以此類推。
在一個具體實施例內,針對寫入,ALU運算的結果自動繞送至一全域暫存器(該全域暫存器的選擇係根據與結果關聯之像素)。在這種具體實施例內,要寫入結果的暫存器係由下列方式計算得出:(r# mod(N/M))+N/M*P#,其中r#為在指令內識別的目的地暫存器號碼,N為全域暫存器的數量,M為群組內像素的數量並且P#為與結果相關聯的像素號碼(例如對於方形像素而言,P#可為0、1、2或3)。如此,在同一像素群組內的每一像素的不同目的地可以被計算出來。
例如:指令可指定運算結果應該寫至全域暫存器G1。指令對於像素群組內之每一像素應該都一樣。不過,根據本發明的具體實施例,只有與像素P0相關聯的結果將寫入暫存器G1。像素P1結果的目的地將重新命名或化名為暫存器G9、 像素P2結果的目的地將重新命名或化名為為暫存器G17並且像素P3結果的目的地將重新命名或化名成為暫存器G25。如上述,在一個具體實施例內,利用計算群組內每一像素的新目的地暫存器號碼來重新命名硬體內的目的地。依賴這些結果的後續讀取操作可被指引至適當全域暫存器,也就是當後續操作進行(像是讀取)時,目的地的化名可被辨識並且考慮到,致使可依照全域值需求存取適當全域暫存器。
在其他具體實施例內,ALU運算的結果自動繞送至多個目的地暫存器。在這種具體實施例內,結果要寫入的暫存器計算如下:(r#+(P#)*(N/M))mod N。因此例如:寫入至暫存器G21應該轉換成寫入至暫存器G5、G13、G21和G29。
總結來說,根據本發明的具體實施例,像素陰影可將全域值寫入記憶體(例如寫入至全域暫存器G0-G31)。在處理已知像素時利用控制哪個全域暫存器已有全域值寫入可防止後續運算所需的全域值遭到覆寫(當然,仍舊允許適當覆寫全域暫存器內某些資料,本發明的具體實施例並不避免這種覆寫的發生)。以此處說明的方式使用全域暫存器可促進程式編輯彈性,而不用相當程度增加暫存器數量。因此,本發明的具體實施例幫助在與手持式裝置與其他可攜式、電池供電裝置相關聯的尺寸與電源限制之內迅速並有效進行圖形處理。
第八圖為根據本發明之一具體實施例用於在圖形處理器單元管線內處理像素資料的電腦實施方法範例之流程圖800。雖然在流程圖內說明特定步驟,不過這種步驟僅為示範。也就是,本發明的具體實施例適合執行流程圖內許多其他步驟或步驟變化。流程圖內的步驟可用和所呈現者不同的順序來執行。
在方塊810內,在圖形管線的算術邏輯階段內,第一複數個像素的全域值已載入ALU可存取的全域暫存器內。在方塊820內,從全域暫存器中讀取全域值。任何全域暫存器都可成為從中讀取的候選暫存器。在方塊830內,第一像素群組內第 一像素的像素資料(例如像素資料的第一列)可由ALU使用選取的全域值來處理。
在方塊840內,像素資料處理結果寫入所選取的一或多個全域暫存器。可寫入的全域暫存器係為與方塊830內所處理的像素相關聯的全域暫存器。也就是,雖然可從任何全域暫存器讀取全域值,全域值只能根據像素號碼寫入至特定全域暫存器。
在一個具體實施例內,識別處理結果目的地之指令可被存取。在這種具體實施例內,指令針對第一像素群組內每一像素係識別相同的目的地。無論如何,結果會自動繞送至選取的一或多個全域暫存器。如上所述,在一個具體實施例內,可以利用根據像素號碼自動計算用於結果的一或多個新目的地。
由於全域暫存器內的全域值可能不需要被覆寫,因此該全域值可後續使用來針對像素資料的第二列、第二像素以及/或第二像素群組進行處理。
上述本發明特定具體實施例的說明係為了引例以及說明之用,在此並未要徹底或要將本發明限制到所公佈的精確型態,並且在上述教導之中可進行許多修改以及變化。例如:本發明具體實施例可在外型與功能與第二圖的GPU 110不同之GPU上實施。具體實施例經過選擇與說明來最佳闡述本發明原理,並且以許多實施應用讓其他精通此技術的人士對本發明有最佳利用,並且期待這些具有不同修改的不同具體實施例都適合特定使用,而本發明範疇意欲由後附申請專利範圍及其同等項所定義。
100‧‧‧電腦系統
240‧‧‧資料寫入組件
101‧‧‧中央處理單元
260‧‧‧共用輸入
110‧‧‧圖形處理單元
310‧‧‧光柵器
112‧‧‧顯示器
330‧‧‧資料擷取階段
115‧‧‧系統記憶體
420‧‧‧旁帶資訊
114‧‧‧本地圖形記憶體
510‧‧‧解序列化器
210‧‧‧圖形管線
520‧‧‧全域暫存器
250‧‧‧片斷資料快取
550‧‧‧序列化器
220‧‧‧程式序列器
800‧‧‧流程圖
230‧‧‧算術邏輯階段
本發明藉由範例進行說明並且不受其限制,在附圖中的數據以及其中相似的參考編號指示類似的元件。
第一圖為顯示根據本發明之一具體實施例的電腦系統組 件之方塊圖。
第二圖為顯示根據本發明之一具體實施例的圖形處理單元(GPU)組件之方塊圖。
第三圖說明根據本發明之一具體實施例的GPU管線內之階段。
第四圖說明根據本發明之具體實施例的一系列像素資料列。
第五圖為根據本發明之一具體實施例的GPU內算術邏輯階段之方塊圖。
第六圖為顯示根據本發明具體實施例在算術邏輯階段內讀取與寫入全域值之資料流程圖。
第七圖說明根據本發明之具體實施例退出算術邏輯單元的像素資料。
第八圖為根據本發明之一具體實施例用於處理像素資料的電腦實施方法之流程圖。
230‧‧‧算術邏輯階段
510‧‧‧解序列化器
520‧‧‧全域暫存器
550‧‧‧序列化器

Claims (17)

  1. 一種在一圖形處理器單元內的算術邏輯階段,該階段包含:複數個算術邏輯單元(ALU)使用一組輸入運算元對於複數個像素執行複數個運算,該複數個像素中的每個像素皆具有一獨特的像素號碼,其中,該複數個算術邏輯單元(ALU)可由一施用於該複數個像素中的每個像素之指令編輯;以及複數個暫存器耦合至該複數個ALU,並用來儲存複數個全域值,其中包含在該組輸入運算元內的全域值可從該複數個暫存器內任何暫存器中讀取,並且其中,當指令為複數個全域值指向同一目的地時,該些運算的結果會寫入不同的目的地,而不是在該指令中被識別的同一目的地,該不同的目的地選自該些複數個暫存器的一指定子集,其中該指定子集中的一暫存器被選當成一用於接收一該複數個像素中的一個像素的一結果之目的地,該目的地不同於在指令中被指定的,而用來接收該結果的目的地藉計算與該暫存器單一相關的一暫存器號碼而被選為一目的地,該暫存器號碼被計算為與該像素相關的該獨特像素號碼與在該指令中被指定的目的地的函數,該函數如此被定義因此只有對於該像素的該結果可以寫入該暫存器。
  2. 如申請專利範圍第1項之算術邏輯階段,進一步包含耦合至該複數個ALU的一緩衝器,其中該緩衝器除了該全域值以外還儲存像素資料。
  3. 如申請專利範圍第2項之算術邏輯階段,其中該指令識別該輸入運算元的來源,其中該來源選自於:該複數個暫存器、該緩衝器以及該複數個暫存器與該緩衝器的組合。
  4. 如申請專利範圍第2項之算術邏輯階段,其中該指令識別對於該運算的結果的該目的地,其中該目的地選自於:該指定 子集以及該緩衝器。
  5. 如申請專利範圍第1項之算術邏輯階段,其中該複數個暫存器包含32個暫存器。
  6. 如申請專利範圍第1項之算術邏輯階段,其中該複數個像素包含四像素,其中該指定的子集為該複數個暫存器的複數個分離子集之一,每一該分離子集包含該複數個暫存器的四分之一。
  7. 如申請專利範圍第1項之算術邏輯階段,其中該指令識別一暫存器號碼當成該相同目的地,其中該指定子集包含有N個暫存器,且其中該用於接收該結果的暫存器號碼藉由計算(於該指令中識別的該暫存器號碼模數N)加(該像素中的獨特像素號碼N倍)而被計算。
  8. 一種在一圖形處理器單元內的圖形管線,該管線包含:一資料擷取階段,其擷取複數個像素的像素資料,其包含超過一個像素,該些複數個像素中之每個像素具有一相關的獨特像素號碼;以及一算術邏輯階段,其耦合至該資料擷取階段並包含:複數個算術邏輯單元(ALU),其用於執行一陰影程式;其中,該複數個算術邏輯單元(ALU)可由一施用於該複數個像素中的每個像素之指令編輯,該指令並識別一運算相關於該複數個像素中的每個像素結果之相同目的地,該相同目的地包含一個暫存器;以及複數個暫存器,其耦合至該複數個ALU來儲存該陰影程式所使用的複數個全域值,其中每個該全域值包含在該陰影程式處理超過一像素的期間時所使用的像素資料;其中當處理一第一像素的像素資料時,該複數個暫存器內任何暫存器可由該陰影程式讀取,並且其中被該陰影程式 製造的多個全域值包含該第一像素的一全域值,且該些全域值被寫入不同的目的地,而不是該指令中被識別的相同目的地,該不同的目的地是從該些複數個暫存器的一指定子集內選取,其中該指定子集中的一暫存器被選擇以接收由該陰影程式產生的對於該第一像素的該全域值,該暫存器與該指令中指定的暫存器不同,該暫存器是從計算單獨與該暫存器相關的一暫存器號碼所選取,該暫存器號碼被計算為與該第一像素相關的該獨特像素號碼與在該指令中被指定的目的地的函數,該函數如此被定義因此只有由該第一像素產生的該全域值可以寫入該暫存器。
  9. 如申請專利範圍第8項之圖形管線,進一步包含耦合至該些ALU的一緩衝器,其中該緩衝器除了該全域值以外還儲存該複數個像素的像素資料。
  10. 如申請專利範圍第8項之圖形管線,其中該指令識別一暫存器號碼為該相同的目的地,其中接收對於該第一像素的該全域值的該暫存器由計算於該指令中識別的該暫存器號碼模數N加上該第一像素的該獨特像素號碼N倍來選擇,其中N為該暫存器子集內暫存器的數量。
  11. 如申請專利範圍第8項之圖形管線,其中該複數個暫存器包含32個暫存器。
  12. 如申請專利範圍第8項之圖形管線,其中該複數個像素包含四個像素。
  13. 一種在一圖形處理器單元管線內處理像素資料之電腦實施方法,該方法包含:將一第一複數個像素的複數個全域值載入至可由複數個算術邏輯單元(ALU)所存取的複數個暫存器,該第一複數個像素包含超過一個像素,而每個第一複數個像素內的像素具 有一獨特的相關像素號碼,其中,該複數個算術邏輯單元(ALU)可由一施用於該第一複數個像素中的所有像素之指令編輯,該指令並識別該第一複數個像素中的所有像素的相關運算結果之一相同目的地,該相同目的地包含一個暫存器;從該複數個暫存器內一暫存器讀取一全域值,其中該些暫存器中任一個皆能被從中讀取該全域值;使用選取的該全域值來處理該第一複數個像素之一第一像素;以及將該處理的一全域值結果寫入該複數個暫存器的一暫存器,其中該結果被寫入至不同的目的地來替代被寫入在該指令中被識別的該相同目的地,該不同的目的地是從一包含該複數個暫存器的一指定子集被選出,其中該指定子集中的一暫存器藉計算與該暫存器單一相關的一暫存器號碼而被選為該一目的地來接收對於該第一像素的結果,該結果的該目的地不同於在指令中被指定的目的地,該暫存器是從計算一關連於該暫存器之一獨特暫存器號碼被選出,該暫存器號碼被計算為與該第一像素相關的該獨特像素號碼的函數,該函數如此被定義因此只有對於該第一像素的該結果可以寫入該暫存器。
  14. 如申請專利範圍第13項之方法,其中該複數個暫存器包含32個暫存器。
  15. 如申請專利範圍第13項之方法,其中該第一複數個像素包含四個像素,其中該指定的子集為該複數個暫存器的複數個分離子集之一,每一該分離子集包含該複數個暫存器的四分之一。
  16. 如申請專利範圍第13項之方法,進一步包含:選擇接收對於該第一像素的該結果之該暫存器,其該暫 存器係由計算於該指令中識別的該暫存器號碼模數N加對於該第一像素之該獨特像素號碼N倍後所選擇,其中該複數個暫存器中的子集包含N個暫存器。
  17. 如申請專利範圍第13項之方法,進一步包含使用儲存在該複數個暫存器內的該全域值來處理一第二複數個像素內之像素。
TW097130920A 2007-08-15 2008-08-14 圖形處理器管線內之共享可讀取與可寫入全域值 TWI427552B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/893,622 US8599208B2 (en) 2007-08-15 2007-08-15 Shared readable and writeable global values in a graphics processor unit pipeline

Publications (2)

Publication Number Publication Date
TW200915219A TW200915219A (en) 2009-04-01
TWI427552B true TWI427552B (zh) 2014-02-21

Family

ID=40362622

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097130920A TWI427552B (zh) 2007-08-15 2008-08-14 圖形處理器管線內之共享可讀取與可寫入全域值

Country Status (3)

Country Link
US (1) US8599208B2 (zh)
JP (1) JP4765126B2 (zh)
TW (1) TWI427552B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8786618B2 (en) * 2009-10-08 2014-07-22 Nvidia Corporation Shader program headers
US9756268B2 (en) * 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581721A (en) * 1992-12-07 1996-12-03 Hitachi, Ltd. Data processing unit which can access more registers than the registers indicated by the register fields in an instruction
US5655132A (en) * 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support
US5850572A (en) * 1996-03-08 1998-12-15 Lsi Logic Corporation Error-tolerant video display subsystem
US20060028469A1 (en) * 2004-08-09 2006-02-09 Engel Klaus D High performance shading of large volumetric data using screen-space partial derivatives
US20060152519A1 (en) * 2004-05-14 2006-07-13 Nvidia Corporation Method for operating low power programmable processor

Family Cites Families (64)

* Cited by examiner, † Cited by third party
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
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 表示制御装置
JP3004108B2 (ja) 1991-11-27 2000-01-31 株式会社東芝 情報処理装置
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
JPH0668053A (ja) * 1992-08-20 1994-03-11 Toshiba Corp 並列計算機
US5600584A (en) * 1992-09-15 1997-02-04 Schlafly; Roger Interactive formula compiler and range estimator
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
IE80854B1 (en) 1993-08-26 1999-04-07 Intel Corp Processor ordering consistency for a processor performing out-of-order instruction execution
US5577213A (en) * 1994-06-03 1996-11-19 At&T Global Information Solutions Company Multi-device adapter card for computer
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
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
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
JP3414209B2 (ja) 1997-07-30 2003-06-09 松下電器産業株式会社 プロセッサ
US6118452A (en) * 1997-08-05 2000-09-12 Hewlett-Packard Company Fragment visibility pretest system and methodology for improved performance of a graphics system
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
JP2000047872A (ja) 1998-08-03 2000-02-18 Hitachi Ltd 低消費電力動作機能を備えたマイクロプロセッサ
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
JP4660863B2 (ja) * 1998-11-13 2011-03-30 ソニー株式会社 並列プロセッサ
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)
WO2001025900A1 (en) * 1999-10-06 2001-04-12 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
JP2002073330A (ja) 2000-08-28 2002-03-12 Mitsubishi Electric Corp データ処理装置
JP3779540B2 (ja) * 2000-11-08 2006-05-31 株式会社ルネサステクノロジ 複数レジスタ指定が可能なsimd演算方式
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
JP3837386B2 (ja) * 2003-02-18 2006-10-25 誠 小川 情報処理装置
JP3752493B2 (ja) 2003-03-31 2006-03-08 東芝マイクロエレクトロニクス株式会社 レジスタ・リネーミング機能を有するプロセッサ
US8274517B2 (en) * 2003-11-14 2012-09-25 Microsoft Corporation Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
US6897871B1 (en) * 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US7298375B1 (en) * 2004-05-14 2007-11-20 Nvidia Corporation Arithmetic logic units in series in a graphics pipeline
ATE534114T1 (de) 2004-05-14 2011-12-15 Nvidia Corp Programmierbarer prozessor mit geringem stromverbrauch
US7710427B1 (en) * 2004-05-14 2010-05-04 Nvidia Corporation Arithmetic logic unit and method for processing data in a graphics pipeline
US7280112B1 (en) * 2004-05-14 2007-10-09 Nvidia Corporation Arithmetic logic unit temporary registers
US7941645B1 (en) * 2004-07-28 2011-05-10 Nvidia Corporation Isochronous pipelined processor with deterministic control
KR100628573B1 (ko) * 2004-09-08 2006-09-26 삼성전자주식회사 조건부실행명령어의 비순차적 수행이 가능한 하드웨어장치 및 그 수행방법
US7644255B2 (en) * 2005-01-13 2010-01-05 Sony Computer Entertainment Inc. Method and apparatus for enable/disable control of SIMD processor slices
US20060177122A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US7412591B2 (en) * 2005-06-18 2008-08-12 Industrial Technology Research Institute Apparatus and method for switchable conditional execution in a VLIW processor
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581721A (en) * 1992-12-07 1996-12-03 Hitachi, Ltd. Data processing unit which can access more registers than the registers indicated by the register fields in an instruction
US5655132A (en) * 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support
US5850572A (en) * 1996-03-08 1998-12-15 Lsi Logic Corporation Error-tolerant video display subsystem
US20060152519A1 (en) * 2004-05-14 2006-07-13 Nvidia Corporation Method for operating low power programmable processor
US20060028469A1 (en) * 2004-08-09 2006-02-09 Engel Klaus D High performance shading of large volumetric data using screen-space partial derivatives

Also Published As

Publication number Publication date
US8599208B2 (en) 2013-12-03
JP4765126B2 (ja) 2011-09-07
US20090046103A1 (en) 2009-02-19
TW200915219A (en) 2009-04-01
JP2009048637A (ja) 2009-03-05

Similar Documents

Publication Publication Date Title
US7659909B1 (en) Arithmetic logic unit temporary registers
US8063903B2 (en) Edge evaluation techniques for graphics hardware
US6807620B1 (en) Game system with graphics processor
US7969446B2 (en) Method for operating low power programmable processor
US7298375B1 (en) Arithmetic logic units in series in a graphics pipeline
US6624819B1 (en) Method and system for providing a flexible and efficient processor for use in a graphics processing system
US7710427B1 (en) Arithmetic logic unit and method for processing data in a graphics pipeline
JP5096470B2 (ja) 相対アドレス生成
JP4914829B2 (ja) 低電力プログラマブルプロセッサ
US8521800B1 (en) Interconnected arithmetic logic units
US20160292812A1 (en) Hybrid 2d/3d graphics rendering
US7821521B2 (en) Methods and systems for legacy graphics emulation
TWI484441B (zh) 算術邏輯單元管路階段、圖形處理器單元管線和在其中處理資料的方法
US7199799B2 (en) Interleaving of pixels for low power programmable processor
US5966142A (en) Optimized FIFO memory
TWI427552B (zh) 圖形處理器管線內之共享可讀取與可寫入全域值
US8314803B2 (en) Buffering deserialized pixel data in a graphics processor unit pipeline
CN107003934B (zh) 改进共享本地存储器和系统全局存储器之间的存储器访问性能的装置和方法
US8427490B1 (en) Validating a graphics pipeline using pre-determined schedules
US7142214B2 (en) Data format for low power programmable processor
US20080055307A1 (en) Graphics rendering pipeline
EP0485833A2 (en) A method for executing graphics color saturating arithmetic instructions in a data processor
WO2005101225A1 (ja) 描画処理装置および描画処理方法、ならびに情報処理装置および情報処理方法
US8856499B1 (en) Reducing instruction execution passes of data groups through a data operation unit