TW200917156A - Techniques for sourcing immediate values from a VLIW - Google Patents

Techniques for sourcing immediate values from a VLIW Download PDF

Info

Publication number
TW200917156A
TW200917156A TW097130921A TW97130921A TW200917156A TW 200917156 A TW200917156 A TW 200917156A TW 097130921 A TW097130921 A TW 097130921A TW 97130921 A TW97130921 A TW 97130921A TW 200917156 A TW200917156 A TW 200917156A
Authority
TW
Taiwan
Prior art keywords
alu
alus
sub
logic unit
arithmetic logic
Prior art date
Application number
TW097130921A
Other languages
English (en)
Inventor
Tyson J Bergland
Craig M Okruhlica
Edward A Hutchins
Michael J M Toksvig
Justin M Mahan
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 TW200917156A publication Critical patent/TW200917156A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Description

200917156 九、發明說明: 【先前技術】 對應邏輯圖像元素(像素)之光柵(陣列)。 /應j衫像的某些表面屬性的像素資料(例如 ΐίΐΓί定^每素,且該像素資料決定在關聯於ί邏 ϊίΐίίί縣域上該投影的性質。習用三轉圖處理器 二ί上匕3廣泛及大量連續階段或,,管線,,式處理,該處理可讲 點參數數值及指令操作該像素資料,以映ίί-影像在乂 源來實施一傳統管 loeicunif^i ui , «Arithmetic piMi實施—多次通過處理階段,該多次通過處理 ί iii 的多縛術麵子單元。此外,朗的湯 土本ΐΐί有 的暫存器’用於儲存變數及常數。 線通訊戲主機、可攜式無 ί=ΐί^考量。許μ些裝置皆足夠小而可握在使用 ίίΐ ί*它們料方便,裝置_讀力成為更佳 他活動(例如通信、_應用、網際網路應用等) 基增加。但是’-些裝置及系統之資源_ 貝源等)通常都相當有限。這些限制使得取得、 訊於在一顯不器上呈現或提供之最終影像的資 =難或甚至不可能。此外,傳統繪圖資訊處理可消 ^里,率’ 為有限電力功應之顯著的消耗源, 例如電池。 鉍/〜ΐ統繪圖系統中浮點數計算時常使用許多資源’且消 耗相虽大置的功率。 實施方式】 第一圖所不為根據本發明一具體實施例之範例性繪圖管 200917156 賴管線可達到處理資源之有效率及有效的利用。 二3貫ίί种,該類管線以—有組織及協調的方式處理 5亥’圖官線可實施成多種不同組件中一繪圖處理核 中、'―士 j會圖處理晶片或單元中、在一特定應用積體電路 圖管k 、整合在—主機處理單元中等等)。該繪 可初方便騎制方式。其可_到本發明 ^即調整’且亦可多種其它幾何树來實施。 門昌線包括一設定階段105、一光栅階段n〇、一守 及ϊ^2^ρ:;程式序列階段^、一算術邏輯單元階段Μ0 線右Tf s:二极/奴150。在一種實施中,一主機提供該繪圖管 頂空間中的點)’用於給定該 只吖叨佃、·日符疋二角形之命令,以及該管線的 齡到柳細管線階段之暫存11寫人)。繪圖 吕線的卩白奴共同地運作來處理繪圖資訊。 的次接收頂點資料’並預備要在該繪圖管線中處理 換貝“階”可執行座標的幾何轉換’執行觀視點轉 括失憾丄並預備透視修正參數來用於該光柵階段中,包 ^數係數。在-具體實_中,該設定階段施加—使用 算)到頂點資訊(例如X,y,ζ,顏色及/或紋路屬性 專)’並決疋母個三角形之螢幕空間座標。該設 援=帶修圖,挑出面向後的三角形(例如面向遠離g $ 定内插紋路的細節程度(例如細節程度基於ί角 圖處理方卜,該細射由其它緣 該設定階段可包括-頂賴魅(例如頂 換的頂點資料可被追縱,並儲存在該頂點緩衝器中做為後續= 200917156 用,其不需要再次對相同的頂點執行轉換作業。在 該設定階段設定光柵的質心係數。在一種 ^ ^ A - ^ # t ^ ^ ^ ^ ^ (VLIW, ^ery f〇;g iMmction word”)機器,該非常長指令字元支援32位元iee^ 浮點數、S15.16固定點及封包的·8固定點格式。 ㈣ΪίΪ階t定那ί像素對應於一特定三角形,並内插來 自關聯於I㈣之奴階段的參數,以提 ^令指標’或關聯於(如描述)每個像素的序=二數 該^階段可提供- ”轉譯,,(translati〇n)或光拇化由一 ^像的 一 ϊ素觀視。在一種實施中,光柵階段掃描或遞 里〜疋二角形之像素,並決定那些處理作筆適合於 j素描緣(例如關於色彩、紋路、深度及模糊化等的作業)。該 有衛帶(如+/_ 1Κ)座標,以提供螢幕上像素的 ^率€财光栅化,並便於減少修_業。在— 施中,該光柵階段相容於0pen GL_ES及D3 只 達職少功率,該功 =的特徵所祕,以及更快速地描繪簡單_卫作, t ^硬編碼光栅H單元’硬編碼光柵器單元的特鮮會^用 間或功率(或兩者)’不論特徵是否被使用。 θ 、 傻夸i二種?施中,該光拇階段亦產生在該緣圖管線中利用的 ;。母個像素封包包括一或多列,且每列包括一 及一側帶部份。一有效負載部份包括多個數值的^負 ^中包括内插的參數值(例如為光栅内插運算的結 色^1如’鱗獅可被產生來鋪關於像素表面屬性(如 ♦=、、、文f、深度、模糊化、(x,y)位置等)之數值。關聯於像 份號ΐ狀到該等像素封包’並放置在該侧帶部 襴i)令序删位巾。絲包括—狀_位(如刪去 8 200917156 標。段,算像素封包的質心座 用比心座標可降低所需要的動態範圍,其允^ 栅階段亦可交錯偶歸素n,先 段之多重時脈彳練獅。城像賴“成下游纽Ρ皆 像顯ΐίίίίί,方法可藉由限制對於並無貢獻於—影 呈現時決定在該緣圖管線中為相對地,,早”。例t於 =:==㈢訊並無貢獻於該 色光柵作業。貝认衫色光拇階段112執行彩 在一種實施中,Z光栅係以比彩色光栅要 在-種耗例性實施中,Z光栅作業係一次對四個 t成。 :,等。過二色,光柵化的像素要更’完 ί到該管:的:二,;在會===; 重新循環一像素通過管線階段多次通過。 碭/、了已括 該守門員Ρ桃罐像素棘崎目# 種範,實射,守門員亦自其讀圖管線階t #實施中’該守門員階段實施資料取出 200917156 的資料相干性維護。例如,該守門員階段可藉由協調重合像素 的進入到具有目前正在進行之預備·修改_寫入作業之繪圖管 線的後續階段當中來防止讀取-修改-寫入傷害。 在-具體實施例巾’該守Η員階段糊計分板技術來追蹤 及辨識重合的像素問題。該守門員階段亦可利用該計分板來追 縱完成經_管狀處_像素(例如藉由被寫人到記恨 。該計分板進行在—管線中像素的協調,以維 1處理&程(例如-應用程績製—三角形的順序)。例如, :應用程式有可能導5卜三角形被描繪在另—個三角形上 _ if ^該第二三角形的像素有可能重合於(例如具有相 同螢幕位置)來自該第一三角形的像素。 該計分板追蹤像素的螢幕位置,該像辛「正在# 在一角形中的一像素重合於(“在上方, 行但尚未收回的另—個像素=_) us ’且在飛 階段處接收時,該像专射勺莖/田像素封包在該守門員 位置如,圖管線正有一特定(x,y) 在處理之該料與目前正 素傳遞到下游階段光柵階段來延滯該新像 應於收到該訊息,料八 代表5亥像素已經完成處理。回 位置現在為間置該^理^對^^表闕聯於該像素之f幕 被清除。 例中在一位元遮罩中相對應位元 200917156 o亥私式序列器藉由控制該緣圖管線 ^運^在-種實施中,程式序列器 業以實化用於載入及執行一可程式化险影器 玉式乍 =器可她㈣麟程式㈣CPUI執彳5 們太身以控繼賴管線之功賴組接㈣軸方式,…ΐ二 ^ 理繪圖元件。例如,緣圖描1 會資;元 且描貨訊(例如模式奴、描綠輪廓等), J「上游光柵模組、來自一設定模組、或來自該_(= 事實上由GPU執行的該陰影器程式不會^一予^ 度所任意地限制。因此例如,可被執行之陰影 ίΐί ί 16 f,J 32
i;· V 式的執行藉由%=執 ==引不確定長度陰影器程 該程式序列器亦負責自在一單一階段中的記憶體中取 m面貧訊亦可關聯於要對該等像素執行之複數瓣圖功 係儲存在關聯於該等像素之像素資訊 映射。在-種賴性實施中’該程式相器導引像素資訊重 200917156 新循環通過陰影及紋 該算術邏輯階μ 來用於夕重通路或迴路。 像素封包财效負;自該/料取出階段接收的 調作業。該算術邏輯表面屬性資訊)進行陰影協 階段本^在以算術邏輯單元 結果等)貝離開記:果、Ζ-深度 送該等結果到該片段資粗二1也例中/該貝料寫入階段轉 人ρ皆段轉送—指示到二~二在一輸例性實施中,資料寫 笛^ 十分板該像素不再是在飛行中。 ^饰―圖斤不為根據本發明—具體實施例之處猶段20f) 该處理階段另參照根據本發明一 ⑻。 個暫存哭:末、二°ΪΓ圖所示。處理階段200包括複數 二:選-220、-算術邏輯單元_挪及 在310中’該選擇器及ALU決定是否存在有一 n 才曰令擴充條件。在320中,如果存在有一次指令伊 ALU最小化-第—ALU組件之—部份的運作件如 ,存在有-次齡擴紐件,該選擇肢^^糊―非常長 指令字元(VLIW) 250的區塊擴充一第二組件的部份,^ 區塊通常由第-ALU組件所_給第二ALU組#。在一種實 施中,該選擇器及ALU對第二ALU組件之擴充作業藉由取得 该VLIW的一區塊,該區塊通常用於設置及控制該第一 AUJ 組件,做為立即輸入到該第一 ALU組件。 VLIW包括複數個區塊’其中每個區塊通常關聯於一相對 應ALU組件。該VLIW的每個區塊為預定數目的位元寬度。 每個ALU組件被設置成實施一或多個數學或邏輯作業。 在VLIW内的次指令藉由使用在VLIW中一或多個其它 次指令而有效地擴充成一或多個額外的立即者(immediate)。特 別是該VL1W的部份以不同方式被解碼,使得一或多個立即者 12 200917156 充 f
_第四圖所示為根據本發明一具體實施例中一處理階段的 範例性部份。該選擇器可包括複數個解多工器41〇、42〇及 4—30,該ALU可包括複數個次ALU 44〇,且該解選擇器可 ,數個解多工器視。在-種範例性實施中,該ALU包括四 個次ALU,其中每個次ALU包括一乘法器及一加法器。在一 種範例性^施中,該選擇器包括每個次ALU之每個輸入的一 個別夕工器。類似地,該解選擇器包括每個次ALu之每個輸 ^個萌多Jill。在-種實射,該yLIW的每艇塊為一 二人指令。在一種實施中,該VLIW之一或多個區塊之每一區塊 包括最^三個立即者,且該VLIW的其它區塊為次指令。 該複數個暫存器包括一組暫存器,用於儲存變數(R〇_R15) =組暫存益來用於儲存通用常數(G〇_G31)。在一種範例性 實施中,每個暫存器為20位元寬。在一種範例性實施中,有 16個暫存器用於儲存變數丨⑽也5)及32個暫存器用於儲存通 用常數(GO-G31)。每個多工器可耦合該等複數個暫存器中任 一暫存器到一相對應次ALU之給定輸入。此外,每個多工器 了耦合該VLIW的一區塊,該區塊通常用於設置及控制另一個 -入ALU,做為一或多個立即者來輸入到一相對應次alu。 該VLIW設置及控制在一給定通過期間每一個次ALU要 做什麼。在一種範例性實施中,該VLIW為256位元寬。該 VLIW的相對應64位元區塊設置及控制一個別次ALU。在一 種範例性實施中,在一相對應64位元區塊中ό位元造成一個 別多工器來傳送一給定暫存器或立即者到一給定次ALU之個 別輪入(Α)。因此該個別多工器可選擇最多64個暫存器或立即 者之一做為一個別次ALU之相對應輸入。 第五Α圖為根據本發明一具體實施例中一非常長指令字 13 200917156 τ包括四個區塊(bl〇ck〇-bl〇ck3)。每個 :鬼土本上0括一操作碼(OP, “opcode”)攔位,第一、第 二來源攔位(S0_S2),及-目的地攔位(D)。_給定:^ 碼欄位(SUB-INSTR 〇)做為控制信號輸人46〇來 ^ ALU :如第四圖所示。該第一綱位(s J② =2第-多工攀υχι) ’崎擇該等暫存器中 卜第二多工器(MUX2),以選擇該等暫存器二: 輸入466到-第三多工器(MUX3) ’以選擇該等暫存器中特 的一個或一特定立即者。該目的地欄位(D)可做為控 卢 入468到一解多工器(DEMUX1),以選擇該等暫存器 一個來儲存該次ALU資訊之結果。 。 、、
第五B圖為根據本發明一具體實施例中一範例性非常長 指令字元。該VLIW包括四個次指令。每個次指令在該操作^ 欄位中包括一位元樣式(如00101110),該位元樣式指定一給定 操作碼(如0P1)。該給定次指令在每個來源及目的地搁位中包 括位元樣式’該位元樣式指定一給定暫存器來輕合至一給定次 ALU之個別輸入。例如,位元樣式〇〇〇〇〇〇_〇〇1111可指定個別 變數暫存器R0-R15 ’及位元樣式OlOOOO-looooo可指定個別 通用常數暫存器G0-G31。如所示,在第一次指令 中位元樣式OP 1可設置第四圖中的次ALU來執行一特定算術 或邏輯功能。該第一來源攔位(S0)包含一位元樣式,該位^樣 式造成第四圖中第一多工器(MUX1)耦合暫存器R3於1 欠ALU 的第一輸入(A)。該第二來源攔位(S1)包令"一位元樣式,該位元 樣式造成第四圖中第二多工器(MUX2)耦合暫存器於次 ALU的第二輸入(B)。該第三來源攔位(S2)包含一位元樣式, 該位元樣式造成第四圖中第三多工器(MUX3)耦合暫存器G1 於次ALU的第三輸入(C)。目的地爛位(D)包令—位元樣式, 14 200917156 该位兀樣式造成第四圖中的解多工器(DEMUX)耦合次ALu 輸出(D)到暫存器R3。 第五C圖為根據本發明一具體實施例中一範例性非常長 指令字元。一給定次指令(SUB_INSTR〇)在指定一給定操作碼 OP1)之操作碼欄位中包括一位元樣式(如〇〇1〇111〇)。該給 定次指令在每個來源及目的地攔位中包括位元樣式,該位元樣 式才曰疋一給定暫存器來耦合至一給定次ALU之個別輸入。例 如’位元樣式〇〇〇〇〇〇-〇〇11U可指定個別變數暫存器R〇_R15, 及位兀樣式010000-100000可指定個別通用常數暫存器 GO G31再者,在一或多個§亥次指令中一或多個來源攔位可 包含一位元樣式’該位元樣式指出另一次指令包含一立即者來 耦合至一給定次ALU之個別輸入。例如,位元樣式 111101-111111可指定個別立即值IMM0_IMM2。如所示在第 一次指令(SUB-INSTR0)中位元樣式op i可設置第四圖中的次 ALU來執行一特定算術或邏輯功能。該第一來源攔位(s〇)包含 一位元樣式,該位元樣式造成第四圖中第一多工器(Μυχι)耗 & VLIW 470之农後區塊(IMM0-2)中的ΪΜΜ0至該次ALU之 第一輸入(A)。該第二來源攔位(S1)包含一位元樣式,該位元樣 式,成第四圖中第二多工器(MUX2)耦合暫存器G8於次ALU 的第二輸入(B)。該第三來源欄位(S2)包含一位元樣式,該位元 樣式造成第四圖中第三多工器(MUX3)耦合暫存器G1於次 ALU的第三輸入(〇。目的地欄位(D)包含一位元樣式,該位元 樣式造成第四圖中的解多工器(DEMUX)耦合次alu的耠屮 _暫存器R3。因此,該醫的部份以不同方式 =出 使得一或多個立即者於VLIW中替換來代替一給定次指令,且 剩餘的次指令擴充來使用額外的立即者。再者,在任何來源棚 位中指定一立即值的位元樣式之存在造成對應於要用於指定 該立即值之區塊的次ALU被關閉。 ' 第六圖所示為根據本發明一具體實施例中控制一處理階 15 200917156 段之作業的範例性方法。對於每次通過,其決定如果該VLIW 包括一編碼(如運算子及/或操作碼),代表該VLIW包^一或多 個士即者,在610中。在另一種實施中,該VLIw之一或多個 預定位元(如旗標)代表該VLIW是否包括一或多個立即者。 在620中,如果該VLIW包括一立即者,一或多個給定次 ALU被失效。在一種實施中,該複數個次ALU中任何一個可 被失效。在另一種實施中,該VLIW之預定位元代表那一個次 ALU被失效。在另一種實施中,一特定次可比其它次 AUJ更為容易地失效。因此,較容易失效之次ALU為&次被
( 失,的次ALU。在另一種實施中,一次ALU可比其它次ALU 的能力較差,或一次ALU可比其它次ALU更有能力。例如, 二,定次ALU能夠存取在該vliw之其它次ALU部份的每 一部=中一立即者,而其它次ALU則不能。在另一範例中, 特疋次ALU能狗存取一或多個次alu之一或多個加法器或 ,法器之輸出,而其它次ALU不能。在又另一範例中,一特 定^ ALU能夠執行往返作業,而其它次ALU不能。因此,最 無能力的次ALU可被失效,而讓所有作業仍可進行。或者, ^有成力的次ALU可能消耗更多功率,而更有能力的次ALu 能夠執行的額外的作業可能不被需要,因此可被失效來節省更 ( 多的功率。 在一種實施中,該一或多個給定的次ALU可藉由忽略或 丟棄該給定次ALU之輸出來失效。在另一種實施中,該一或 多個給定次ALU可藉由不要時脈化資料通過該給定次ALU來 失,,並藉此節省電力。在又另一種實施中,該一或多個給定 的次ALU可藉由關閉電源到該一或多個給定次ALU來失效。 在630中’對應於被失效之一或多個給定次ALU的VLIW 之一或多個區塊可使其可用於一或多個其它次ALU做為一或 多個^即者。因此’該VLIW被耦合至該一或多個多工器及解 多工器,用於控制多工化及解多工化。此外,該VL1W亦耦合 16 200917156 在_ ΐ,為立即者來取得該等二欠ALU之輪入。 置及柝制ί動次ALU根據該VLIW被設置及控制。該設 包取得對應於該—或多個失效的次ALU之 ALUd^?Pf!f為—或多個立即者到—或多個啟動次 勃杆你^ 即者較佳地是立即可用於該啟動次ALU來對苴 到一暫g器^非必須先將它們於能夠使用該等立即者之前放置 統。據本發明之具體實細的電腦系 如第七A ^系敲供用於實施本發明某些功能的執行平台。 其經由-主ί 7〇0 包括—CPU 705 ’ 該 CPU 705 轉嗶在兮riT \ 耦合至一 3-D處理器710。該主機介面 們個‘二送的龍與命令成為它 725輕合至記憶r72〇j巧處f器皆透過一記憶體控制器 享2严辦·在一具體實施例中,該記憶體為一共 記憶體參照到特性使得該記憶體同時儲存該 過該記情體控mi及資料。存取到該共享記憶體係透 -視訊像框i衝器,’該資料包含 730。琴m w見像框緩衝器驅動一竊合的顯示器 由- ‘w取立即取得模組735。該立即取得模組 田取仵立即者,如上所述。 第七B圖所示為根據本發明另一具體 類似於第七A圖之電腦系統Si ί糸、·用處理15 755,該電齡統處理H 755且有一專 Ϊ糸及3_D處理器765,該3_D處理器765具 介面775鮮在該CPU與該 ㈣1體實施例:^貝:料及〒令成為它們個別的格式。在該 於在5亥3-D處理盗上執行的那些程序/執行緒。該緣圖記憶體 17 200917156 料*視5亿像框緩衝器,該視訊像框緩衝器驅動顯示器 °亥3-D核心包括一立即取得模組785。該立即取組 由一 VLIW取得立即者,如上所述。 、、' 该運算系統可為例如可攜式電話、pDA、掌上 ^似者。在這些具體實施例中,組件將可被包含,而^計 成加入周邊匯流排、特殊化通訊組件、特殊化裝置1〇之 ϋΪί。再者’其必須瞭解到任一電腦系統之-或多個组件 可被正合到一單一積體電路晶片。 别述本發明之特定具體實施例的說明係為了例示及 ,目,提出。它們麟要窮盡或關本伽於所揭*的精確型 ^在以上的教示之下亦卿地有可能有其它的修正 该荨具體實補係被選擇及描絲最佳地解釋本 *
,用的原理’藉此使得本技藝中其它專業人士可在 G 貝施例及多種修正中最佳地_本發明,使其可翻於^ 本發明之練系要由附屬之申請專利範圍及其^ 【圖式簡單說明】 本發明的具體實施例藉由範例來例示,但 屬圖面的_中類㈣參考編號代表類似的元件.在附 方塊縣根據本伽—频實施例之勤圖管線的 圖第二圖為根據本發明一具體實施例中一處理階段的方塊 算之ϊίϊϋΓ發明—具體實施射執㈣術及邏輯運 部份據本發明—具體實施例中—處理階段的範例 第五Α圖為根據本發明一具體實施例中一非常長指令字 200917156 元格式的方塊圖。 指令絲本㈣—具财施射—細性非常長 長指ί —具__巾—範例性非常 作業具體實施例中控制—處理階段之 第七Α圖為根據本發明一具體實施例之電腦系統的方塊 第七B圖為根據本發明另一具體實施例之運算系統的方 圖 塊圖 【主要元件符號說明】 100 繪圖管線 105 設定階段 110 光柵階段 111 z光栅 112 色彩光柵 120 守門員 121 s十分板 130 程式序列器階段 140 算術及邏輯單元 150 資料寫入階段 170 片段資料快取 200 處理階段 210 暫存器 220 選擇器 230 算術及邏輯單元 240 解選擇器 250 非常長指令字元 410 多工器1 420 多工器2 430 多工器3 440 次算術及邏輯單元 450 解多工器1 460 控制信號輸入 462 控制信號輸入 464 控制信號輸入 466 控制信號輸入 468 控制信號輸入 470 VLIW 700 電腦系統 705 處理器 710 三維核心 715 主機介面 19 記憶體 765 三維核心 記憶體控制器 770 繪圖記憶體 顯示器 775 主機介面 立即取得模組 780 顯示器 電腦糸統 785 立即取得模組 處理器 糸統記憶體 20

Claims (1)

  1. 200917156 十、申請專利範圍: .決定是否存在-非常長指令字元指令次指令 1. 一種執行算術及邏輯運算之方法,其包含· 擴充條 件 如果存在有該次指令擴充條件,則最 邏輯單元組件之-部份的運算;及成H匕弟一异術 \ 2. 4.
    *如果存在有該次指令擴絲件,則_—非常八 予το的-區塊U二算術邏輯單元組件擴充該 ^ 亡邏輯單元組件的-部份,該區塊通f由該第— 早元組件利用。 乂干斗 如申請專利細第1項所述之方法,其中擴充該第二算術 邏輯單元之部份包含取得該非常長指令字元的一區塊,做 為一或多個立即者來輸入到該第二算術邏輯單元組件,該 區塊通常用於設置及控制該第一算術邏輯單元組件。Λ 如申請專利範圍第1項所述之方法,其中決定是否存在該 次指令擴充條件包含決定該非常長指令字元是否包括一編 碼來表示該VLIW包括一或多個立即者。 如申請專利範圍第3項所述之方法,其中最小化該第一算 術邏輯單元組件之該部份的運算包括如果該非常長指令字 元包括一立即者即失效一給定次ALU。 如申請專利範圍第4項所述之方法,其中擴充一第二算術 邏輯單元組件之一部份包含: 使得對應於被失效之該給定次ALU的該非常長指令 字元的一區塊可用於一或多個其它次ALU做為一或多個 立即者;及 根據該非常長指令字元設置及控制每個啟動的次 ALU ° —種處理階段,其包含: 一算術邏輯單元; 21 6. 200917156 r 8. 9.
    10. 複數個暫存器; 定的:ίίΐΐ用f選擇性地耦合該算術邏輯單元之指 稷i暫存器之指定暫存器成為-非常長指 的ΐ 3 _擇性地叙合該複數個暫存器中指定 邏輯單該非常長指令字元中一立即者到該算術 元的一功&複數個輸人巾指定的輸人做為該非常長指令字 如申請專利範圍第6項所述之處理階段,立中: 該算術邏輯單元包括複數個次ALU ;1 纲敕Ϊΐ擇11包括複數個解多工11,其巾每個解多工器被 二!' ^擇性_合該複數個暫存H之-S在該非常長指令 即者到—相對應次ALU之'給定輸入做為該 非吊長才曰令字元的一功能。 m專利範圍第7項所述之處理階段,其中該複數個次 〜此中一或多個alu被調整來選擇性地被無效做為該非 吊長指令字元的一功能。 ^申凊專利範圍第7項所述之處理階段,其巾每個次 包括一乘法器及一加法器。 一種設$及控制一算術邏輯單元(ALU)之方法,其包含: 决疋是否一非常長指令字元包括一或多個立即者; 如果該非常長指令字元包括一或多個立即者即失效一 或多個給定的次ALU ; 使得該非常長指令字元的一區塊可被一或多個其它次 ALU使用做為該一或多個立即者,該區塊對應於被失效之 該給定次ALU ;及 根據该非常長指令字元設置及控制在每個啟動次ALU 中的計算。 如申請專利範圍第10項所述之方法,其中決定該非常長指 22 11. 200917156 令字元是否包括:或乡個iL即者包括決錢非常長指令字 元是否包括-運算子或操㈣,該運算子或操作碼代表該 非常長指令字元包括該等一或多個立即者。 X 12_如申請專利範圍f 10項所述之方法,其中決定該非常 令字元是否包括-或多個立即者包括決定—或多個預定位 元是否被設定成-給定狀態,該給定狀態代表該 令字元包括該等一或多個立即者。 f \
    13.如申請專利範圍» 10項所述之方法,其中如果該非常長指 令字元包括一或多個立即者時,複數個次ALU中任 ALU即被失效。 14. 如申凊專利範圍第1〇項所述之方法,其中如果一特定次 ALU比其它次ALU更容易失效,該特定次ALU即被失效。 15. 如申明專利範圍第1〇項所述之方法,其中如果一特定次 ALU比其它次ALU的能力要低,該特定次ALU即被失效。 16. 如申請專利範圍第10項所述之方法,其中如果一特定次 ALU比其它次Alu更有能力,且不需要該特定次ALU之 額外處理能力時即失效該特定次ALU。 Π.如申請專利範圍第10項所述之方法,其中該等一或多個次 ALU。藉由忽略或丟棄該等一或多個次ALU之輸出來失效。 18.如申讀^專利範圍第1〇項所述之方法,其中該等一或多個次 ALU藉由不時脈化通過該等一或多個次alu的資料來失 效。 、 19.如申,+專利範圍第1〇項所述之方法,其中該等一或多個次 ALL^藉由關閉該等該等一或多個次ALU之電源來失效。 2〇.如=專利範圍帛1〇柄述之方法,其中對應於被失效的 或夕個給定次ALU之非常長指令字元的區塊其每一個 可包括最多三個立即者。 /、 23
TW097130921A 2007-08-15 2008-08-14 Techniques for sourcing immediate values from a VLIW TW200917156A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/893,584 US8775777B2 (en) 2007-08-15 2007-08-15 Techniques for sourcing immediate values from a VLIW

Publications (1)

Publication Number Publication Date
TW200917156A true TW200917156A (en) 2009-04-16

Family

ID=40363905

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097130921A TW200917156A (en) 2007-08-15 2008-08-14 Techniques for sourcing immediate values from a VLIW

Country Status (3)

Country Link
US (1) US8775777B2 (zh)
JP (1) JP5317573B2 (zh)
TW (1) TW200917156A (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190669B1 (en) 2004-10-20 2012-05-29 Nvidia Corporation Multipurpose arithmetic functional unit
US8037119B1 (en) 2006-02-21 2011-10-11 Nvidia Corporation Multipurpose functional unit with single-precision and double-precision operations
US8051123B1 (en) 2006-12-15 2011-11-01 Nvidia Corporation Multipurpose functional unit with double-precision and filtering operations
US8106914B2 (en) * 2007-12-07 2012-01-31 Nvidia Corporation Fused multiply-add functional unit
US9678754B2 (en) * 2010-03-03 2017-06-13 Qualcomm Incorporated System and method of processing hierarchical very long instruction packets
TWI432953B (zh) * 2010-12-09 2014-04-01 Ind Tech Res Inst 具電源管理之超長指令處理器以及其電源管理裝置與方法
US9665370B2 (en) * 2014-08-19 2017-05-30 Qualcomm Incorporated Skipping of data storage
US20170105010A1 (en) * 2015-10-09 2017-04-13 Microsoft Technology Licensing, Llc Receiver-side modifications for reduced video latency
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US10719325B2 (en) 2017-11-07 2020-07-21 Qualcomm Incorporated System and method of VLIW instruction processing using reduced-width VLIW processor
US10699366B1 (en) 2018-08-07 2020-06-30 Apple Inc. Techniques for ALU sharing between threads

Family Cites Families (69)

* 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 表示制御装置
JP2848727B2 (ja) * 1991-11-18 1999-01-20 株式会社東芝 並列演算処理装置
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
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
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
US5655132A (en) * 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support
JPH08161169A (ja) * 1994-12-09 1996-06-21 Toshiba Corp Vliw方式の計算機システム及びvliwの解釈・実行方法
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
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
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
JP2002073330A (ja) 2000-08-28 2002-03-12 Mitsubishi Electric Corp データ処理装置
JP2002171401A (ja) 2000-11-29 2002-06-14 Canon Inc 間引き演算命令を備えた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
JP4288461B2 (ja) 2002-12-17 2009-07-01 日本電気株式会社 対称型画像フィルタ処理装置、プログラム、及びその方法
JP3752493B2 (ja) 2003-03-31 2006-03-08 東芝マイクロエレクトロニクス株式会社 レジスタ・リネーミング機能を有するプロセッサ
US8823718B2 (en) * 2003-11-14 2014-09-02 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
US7710427B1 (en) * 2004-05-14 2010-05-04 Nvidia Corporation Arithmetic logic unit and method for processing data in a graphics pipeline
KR100865811B1 (ko) 2004-05-14 2008-10-28 엔비디아 코포레이션 저전력 프로그램가능 프로세서
US7280112B1 (en) * 2004-05-14 2007-10-09 Nvidia Corporation Arithmetic logic unit temporary registers
US7091982B2 (en) * 2004-05-14 2006-08-15 Nvidia Corporation Low power programmable processor
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
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
JP2008161169A (ja) 2006-12-28 2008-07-17 Yoshiyuki Goto 釣り用クッションゴム

Also Published As

Publication number Publication date
JP5317573B2 (ja) 2013-10-16
JP2009059354A (ja) 2009-03-19
US8775777B2 (en) 2014-07-08
US20090049276A1 (en) 2009-02-19

Similar Documents

Publication Publication Date Title
TW200917156A (en) Techniques for sourcing immediate values from a VLIW
CN1947156B (zh) 使用统一着色器的图形处理结构
US6807620B1 (en) Game system with graphics processor
EP2024819B1 (en) Graphics processor with arithmetic and elementary function units
US7969446B2 (en) Method for operating low power programmable processor
US6624819B1 (en) Method and system for providing a flexible and efficient processor for use in a graphics processing system
US9448766B2 (en) Interconnected arithmetic logic units
US11004258B2 (en) Combined world-space pipeline shader stages
US7710427B1 (en) Arithmetic logic unit and method for processing data in a graphics pipeline
US7280112B1 (en) Arithmetic logic unit temporary registers
WO2017095478A1 (en) Triple buffered constant buffers for efficient processing of graphics data at computing devices
US7616211B2 (en) Rendering processor, rasterizer and rendering method
AU2012216432A1 (en) Method, system and apparatus for rendering a graphical object
US8860722B2 (en) Early Z scoreboard tracking system and method
CN101441761B (zh) 图形处理器单元管线中的条件执行位
US8314803B2 (en) Buffering deserialized pixel data in a graphics processor unit pipeline
US8599208B2 (en) Shared readable and writeable global values in a graphics processor unit pipeline
US8427490B1 (en) Validating a graphics pipeline using pre-determined schedules
US8687010B1 (en) Arbitrary size texture palettes for use in graphics systems
JP5311491B2 (ja) グラフィクス頂点処理装置およびグラフィクス頂点処理方法
US8736628B1 (en) Single thread graphics processing system and method
US8856499B1 (en) Reducing instruction execution passes of data groups through a data operation unit
JP2004336661A (ja) 画像復号方法、画像復号装置