[go: up one dir, main page]

TWI328197B - Multi-thread vertex shader, graphics processing unit, and control method thereof - Google Patents

Multi-thread vertex shader, graphics processing unit, and control method thereof Download PDF

Info

Publication number
TWI328197B
TWI328197B TW095144690A TW95144690A TWI328197B TW I328197 B TWI328197 B TW I328197B TW 095144690 A TW095144690 A TW 095144690A TW 95144690 A TW95144690 A TW 95144690A TW I328197 B TWI328197 B TW I328197B
Authority
TW
Taiwan
Prior art keywords
macroblock
flow control
instruction
called
instructions
Prior art date
Application number
TW095144690A
Other languages
English (en)
Other versions
TW200807329A (en
Inventor
Hsine Chu Chung
Ko Fang Wang
Chit Keng Huang
Original Assignee
Via Tech Inc
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 Via Tech Inc filed Critical Via Tech Inc
Publication of TW200807329A publication Critical patent/TW200807329A/zh
Application granted granted Critical
Publication of TWI328197B publication Critical patent/TWI328197B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/3802Instruction prefetching
    • 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

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)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Description

1328197
* :九、發明說明: 【發明所屬之技術領域】 本發明係有關於一種頂點著色器,特別是有關於一種 在單一頂點資料上同時執行複數緒的頂點著色器。 * 【先前技術】 當圖形應用的複雜度增加’主機平台的能力(包含處理 • 速度、系統記憶體容量與頻寬、以及多處理器)也不停地增 加。為了滿足圖形需求的增加’圖形處理器(graphics processing units, GPUs),有時也稱作圖形加速器(graphic accelerator),成為電腦系統中的一個組成元件。在過去的 揭露中,圖形控制器(graphics controller)—詞關連到圖形處 理器或圖形加速器(graphic accelerator)兩者其一。在電腦系 統中’圖形處理器控制電腦的顯示子系統,例如個人電腦 (personal computer)、工作站、個人數位助理(perS0I1al digital # assistant,PDA)、或任何具有顯示螢幕的裝置。 第1圖係顯示一個傳統的圖形處理器10,由頂點著色 器12、設置引擎14、以及像素著色器16所組成。頂點著 色器12接收影像的頂點資料並執行頂點處理,其可能包含 轉換(transforming)、光照(lighting)以及裁取(dipping)等步 驟。設置引擎14接收來自頂點著色器π的頂點資料並執 行幾何組合,所接收到的頂點資料會被重組成三角形。— 旦安排好每一個用於創造三維(3D)景象的三角形,像素著 色器16開始將其填滿個別的像素並且執行一個打底的程
Client’s Docket No.: VIT05-0223 TT*s Docket No.: 〇608-A40595-TWi7Alice/2006-l 1-30 6 1328197 序’其包括決定每個像素的顏色、深度數值以及在螢幕上 的位置與紋理°像素著色器16的輸出可以顯示於顯示裝置 上。 第2圖係顯示第1圖所示之頂點著色器12的詳細方塊 圖。頂點著色器12是一個可編程的頂點處理單元,在收到 的頂點資料上執行使用者定義的運算。頂點著色器12由指 々暫存器(instruction register)22、流程控制器(flow controller)24、算術邏輯單元(arithmetic logic unit,ALU)管 線26以及輸入暫存器(input register)28所組成。基本的指 令可被結合成一使用者定義的程式,針對儲存於輸入暫存 器28中的頂點資料執行運算。這些指令儲存在指令暫存器 22中。從指令暫存器22中依序讀出指令的同時,流程控 制器24從輸入暫存器28中取出頂點資料並且決定從指令 暫存器22中取得的指令之間的相依性。在相依性檢查之 後,流程控制器24分派已做好準備給算術邏輯單元管線 26的指令執行3D圖形計算,包括來源選擇(s〇urce selection)、調西己(swizzie)、乘法(multiplication)、力口法 (addition)、以及目地分佈(destination distribution),在此算 術邏輯單元管線26必須從輸入暫存器28讀取頂點資料。 儲存於指令暫存器22中的指令由指令1〇、L··,等所組 成。若在這些指令之間都不存在相依性,流程控制器24 就從指令10開始輪流分派指令到邏輯單元管線26。第3A 圖係顯示在四個時槽T〇到A的週期中,每個時槽分派到 邏輯早元管線26的指令順序’這些指令之間並沒有相依
Client’s Docket No·: VIT05-0223 TT's Docket No.: 0608-A40595-TWf/Alice/2006-ll-30 7 1328197 :性。 然而,若指令Ii與指令ι〇相依如下所示: I〇 : Mov TRO C0; h : Mad ORO TRO IRO Cl; 指令Ii的來源TRO是指令I〇的目的TRO。當必須等到 指令I〇完成,指令Ii才能執行時,邏輯單元管線26會開 始產生「氣泡」,導致執行效率降低。假設每個指令的執 行時間持續四個時槽,第3B圖係顯示在每個時槽分派給 邏輯單元管線26的指令,其中指令1〇與指令1之間具有 相依性。顯然地當指令1〇與指令h之間具有相依性時,氣 泡會出現在時間Ti〜T3。 因此’需要一種能解決上述問題之設計’以改進傳統 頂點著色器12之執行效率。 【發明内容】 本發明係有關於一種在頂點資料上同時執行複數緒的 一頂點著色器。在本發明一實施例中,一邏輯單元適用於 在頂點資料上同時執行複數緒,包括一巨集指令暫存器 檔,用以儲存複數巨集塊,每個巨集塊包括複數指令;一 流程控制指令暫存器檔,用以儲存複數流程控制指令,每 個流程控制指令包括至少一被呼叫的巨集塊以及該被呼叫 的巨集塊之相依性資訊;以及一流程控制器,用以從該流 程控制指令暫存器檔中依序檢索流程控制指令,依照該檢 索到的流程控制指令及其相依性資訊決定至少一該巨集指 令暫存器檔中要執行的巨集塊,用既定的緒排班策略
Client's Docket No.: VIT05-0223 TT's Docket No.: 0608-A40595-TW^Alice/2006-ll-30 8 (schedule policy)選擇該等 塊,以及存取被選擇的兮 的一緒執行該既定的巨集 再者,本發明之另需的頂點資料。 (GPU),此圖形處理器勺 施例提出一種圖形處理器 分影像資料上,同時執7二頂點著色器,適用於在一部 塊的緒,其中每個巨:給複數由指令所組成的巨集 置引擎,用於將從會破每個相對應的緒執行;一設 成三角形;以及-像m ^接收到的該影像資料組合 的該影像㈣,並^ ^於純來自該設置引擎 資料。 ^讀#料進行打絲序以產生像素 ,用:再一實施例提出-種流程控制方法, 二二…料上以及複數巨集塊與複數流程控 =:=:=’其中每個巨集塊包括複數指令,每個 塊:::丨u 一該巨集塊,並包括該被呼叫巨集 該流程控制方法包括檢索-該流程控制 彳的隸㈣指令與該相依性資訊決定 集塊’以及根據既定的緒排班策略為該被 =疋的巨集塊要被執行的緒,並 存取該頂點資料。 【實施方式】 為使本發明之上述目的、特徵和優點能更明顯易懂,下文特舉一 較佳實施例,並配合所附圖式,作詳細說明如下. 實施例:
Client’s Docket No.: VIT05-0223 TT's Docket No.: 0608-A40595-TWf/Alice/2006-11-30 著辛=圖係顯不根據本發明一實施例所述之一頂點著色器40。頂點 40由—巨集指令暫存器檔4卜-流程控制指令暫存器擋42'、、 存器48所组 包括複1暫=指令暫伽41與流程控制指令暫存器檔42可分別 子°。巨集指令暫存器檔41儲存複數指令巨集塊,麵巨 Μ,至個指令所組成。由頂點著色器4G對頂點資料執行的轉換 ”光照運异可被分__娃錄函财_#術指令巨集 塊二例如’―他集塊可能包括執浦換運算触令,另—個巨集塊 可月b包括執行光照運算的指令。轉換與光照的運算可以分類為其它函 數’例如光的數量、光的方向、點光源等。此外,巨純可由非先佔 式與先佔式峰纽成,其㈣先佔式巨集_旨令彼赵相獨立, 而祕式巨集塊具有與同一巨集塊的其它指令相依之至少一指令。 ,流程控制指令暫存ϋ檔42儲存複數由継著色器40執行雛與 光照運算的流程控制指令。流程控制指令運作如同子程式糾,制固 流程控制齡呼叫-個子程式,其中子程式相當於巨集指令暫存器槽 41中的巨集塊。此外’流程控制指令由被呼叫的巨集塊之相雛資訊 所組成,其中被呼叫的巨集塊之她性魏由被呼叫的巨集塊與其他 巨集塊之間的塊相讎資訊,以及被呼叫触集塊中的指令之間的指 令相依性所組成。第5圖係顯示一流程控制指令的格式範例。流 程控制指令包括數個欄位,如呼叫相依性(Call DEp_ 52 (Macro DEP)欄54、呼叫麵(Call _攔56、指標㈣㈣搁58錢 參數攔59。呼叫相依性攔52在流程控制指令的格式中被用於指出被啤 叫巨集塊與其它巨集塊之間的相依性資訊。巨集相依侧54在流程控
Client's Docket No.: VIT05-0223 TT*s Docket No.: 0608-A40595-TWC,Alice/2006-l 1-30 H雜射獅於糾在射他㈣與目触射的她巨集 塊的被=叫指令相依。因此呼叫類型獅指出被流程控制指令呼叫的 集塊疋先佔式的或非先佔式的。指標攔%指出被啤叫巨集塊的纪憶 體位址。參數攔59指出流程控制指令的係數數值。輸入暫存器^ 存頂點資料。 流程控制H 44在-單—繼資料上料執簡數緒。另外,流程 控制器44從流程控制指令暫存器檔42餅接收流程控制指令。接著 流程控制g 44娜接收__^彳齡傭標卿蚁要執行的 巨集^ ’並且根觀定的_班策略為巨舰選擇—纖行的緒。例 如’若在頂點著色器4〇中有六個執行緒.加,流程控制器料依 序k擇緒ThO、Th卜Th2、Th3、Th4、挪執行巨集塊。在選過緒加 之後,流程控制器44會選擇緒剔。流程控制器舛從流程控制指令 中的呼叫相依性欄52、巨集相依性攔54與呼叫類翻%檢查被流程 控制指令,,巨集塊的她_訊。算術邏輯單元管線*接收並儲 存從輸人暫絲48來的獅轉,執行驗雜繼#娜用來做 3D圖形計算的緒的指令,其包括來源選擇(s_e 、調配 (swizzle) > ^^(multiplication) ^ ^^r(addition) ^ ^ g ^^(destination distribution) ° 在本發明-實施例中’第6圖係顯示由流程控制器μ提供的六個 緒.™以及相當於巨集指令暫存器触分別對頂點資料執行轉換 及光照運算的巨魏。制崎在_的娜#料上% 執行運算。由於在頂點資料上的轉換與光照運算根據巨集指令暫存器 檔41的巨集塊μΒν~ΜΒν+5分割成數個算術運算,流程控制器私中的
Client’s Docket No·: VIT05-0223 IT's Docket No.: 0608-A40595-TWf/AUce/2006-ll-3〇 11 1328197 •务[固、.者相田於個巨集塊在相同的頂點資料上執行轉換及光照運算直 到轉換及光照運算完成為止。 此外’流程控制器44根據既定的緒排班策略為巨集塊選擇緒 TWMM ’例如’一循環策雜〇und_R〇bin p〇Ucy)如以下所示:彻^ —游第7圖係顯示一流程控制指令暫存 器檔42與轉指令暫存_ μ之娜躺範例。如圖麻,流程控 制指令暫存器檔42由流程控制指代、C々Q所組成,其中流程控 • 輸令Cl、C2與C3分別呼叫賴旨令暫存H擋41他集塊mb0、 _與_。巨集塊_0、卿與_分別包括指令w以 及Iu〜I〗4。若指令h與指令L相依且指令知與指令Is她,在算術邏 輯單元管線46中制固時槽中,緒、巨集塊以及指令的執行順序係顯示 於第8A圖到第8D圖。如第8A圖所示,流程控制器μ根據流程控制 指令C!的位址資訊決定要執行巨集塊娜。流程控制器私更選擇緒 ThO去執行巨集塊ΜΒ0。因此流程控制器44在時間τ〇分派巨集塊励〇 的指令1〇給緒ThO。在下-個時槽Τι,流程控制器私分派緒彻中巨 集塊MB〇的指令h到算術邏輯單元管線46,然而,由於指令域指令 1〇相依’流程控制器44.接收下-個來自流程控制指令暫存器槽汜的 程控—+ C2 〇 &程_|| 44更鐵流健她令&的位址資訊 決定執行巨集塊MBi ’並且根據既定的緒排班策略選擇加執行巨集 塊MB!。在本實施例中,既定的緒排班策略可採用循環策略 (Round-Robinpolicy) ’其為一個眾所皆知的緒排班機制。因此如第犯 圖所示,流程控制器44在時間Tl分派巨集塊的指令l8給緒瓜卜 同樣地,在隨後的時槽A,流程控制器44分派緒Thj中巨集塊娜!
Client's Docket No.: VIT05-0223 TT’s Docket No.: 0608-Α40595-Ήν£Ά1^/2006-11-30 12 的扣令I9到算術邏輯單元管線46。然而,由於指令L與指令L相依, =程控制器44接收下一個來自流程控制指令暫存器檔42的流程控制 指令Q。流程控制器44更根據流程控制指令Q的位址資訊決定^行 巨集塊MB2,並且根據既定的緒排班策略選擇Th2執行巨集塊mbJ 因此如第8C圖所示’流程控制器44在時間A分派巨集塊_2的2指 令V給緒Th2。由於在巨集塊MB2巾的指令之間不具有她性,因: 如第8D圖所示’流程控制器44在時間A分派巨集塊_2的第二個 指令Iu給緒1113。第8D圖係顯示在時間A有關於算術邏輯單元管線 46的緒、巨集塊以及指令的執行序列。比較第3B圖與第圖,可以 發現第3B圖中的氣泡不再出麟本發明的頂點著色器4〇實施例中, 意味著改善了頂點著色器40的效能。 第9圖係顯示依照本發明另—實施例所述之圖形處理器%。除了 頂點著色⑽似卜,_處理H 90 _猶· 1G是她的。在第 9圖中使賴樣的參考元件符號於與第丨圖共同的元件,其具有相同的 功能,因此不再於此錄敘述。圖形處理器9〇利用依照第4圖中所示 本發明之継著色器40,其運作已於先前介紹過,故不在此多做闡述。 第10圖係顯示根據本發明之-頂點著色器實施例的流程控制法 麵的流程目。頂點著色器在頂點資料上㈤時執行複數緒並且由一巨 集指令暫存器檔錢一流程控制指令暫存器檔所組成。巨集指令暫存 器檔儲存複數巨集塊,侧巨集塊由複數指令所組成。流程控制指令 暫存器檔儲存複數流程控制指令,每個流程控制指令呼叫其中一個巨 集塊且包括被呼叫巨集塊的相錄資訊。一流程控制指令碰程控制 指令暫存器檔中檢索出來(_2)。接下來,根據檢索出來的流程指令以
Clients Docket No.: VIT05-0223 TT*s Docket No.: 0608-A40595-TWf7Alice/2006-11-30 1328197 ,及其相錄資訊決定要被執行的巨集塊(s 1〇4)。伴隨著檢索出來的流 織钟佩胃mx贼被呼叫的找塊,並根據緒排班 擇要執行巨集塊的緒(S 106)。頂點資料由被選擇的緒存取。此外,根 據檢索出來的流程指令中巨集塊的相錄:身訊,當被決定的 相依的,方*腦會持續等到相依性、消失後,再返回步_2去檢索 下-個流程控制指令並且照著步驟104決定要執行的巨集塊。要給下 -個流程控制齡中巨集塊的緒進一步由步驟1〇6中既定的緒触策 • 略選擇出來。一旦步驟106中的選擇完成,被選擇出來的緒的指令就 會被分派。 第11圖係顯示依照本發明之另一頂點著色器實施例的流程控制 法2000的流程圖。首先,檢索一流程控制指令(S2〇1)。接著根據呼 叫相依性(Call DEP)欄52中的塊相依性資訊,檢查被呼叫巨集塊與其 它巨集塊之間的塊相依性(S202)。若被呼叫巨集塊與其它巨集塊相依, 根據巨集相依性(Macro DEP)攔54中的指令相紐資訊檢查目前被呼 叫指令與被呼叫巨集塊中的指令之間的指令相依性(S2〇3)。若被呼叫的 才曰令與相同被呼叫巨集塊中的指令有相依,程序會回到步驟S2〇2再檢 查一-人塊相依性。在步驟S202的判斷中’若被呼叫巨集塊與其它巨集 塊之間被發現沒有相依性,會選擇一個緒去執行新的巨集塊(S2〇4)。除 此之外,在另一實施例中,步驟S2〇2判斷出被呼叫巨集塊與其它巨集 塊之間被發現沒有相依性時,會再繼續檢索一流程控制指令(S2〇1)。換 言之,本發明並不限制步驟S201與S204的先後順序,它們可以同步 進行。在步驟S203的判斷中’若目前被呼叫的指令與在被呼叫巨集塊 中的其它指令之間被發現沒有相依性,流程會進入步驟;§204去選擇一
Client's Docket No.: VIT05-0223 TT's Docket No.: 〇608-A40595-TW£^Alice/2006-ll-30 1328197 個緒去執行新的巨集塊,並且回到步驟咖去檢索盆 令。在她204選擇-個要執行新_塊的緒之後被== 塊的細_檢_5)。如上撕示,料赋的齡 彼此之間细目獨立’而先佔紅集塊具有朗—巨集制並它指八 相依之至少-齡。若被呼叫驗紛咖摘,則^的巨魏 會被選麵職行(S2G6)。料是,辦會鮮—下並且持續自己 檢查步驟205。直到有相依的指令被執行完成,流程才會繼續到步驟 2〇7。最後,流程會檢查是否所有巨集塊中的指令都被執行過_)。 若不是,流程會回到步驟纖去選·一個緒去執行一個新的巨集 塊。若是,流程控制法2000的程序就完成了。 在本發明中’頂點著色器在頂點資料上同時執行複數緒,制固緒 對應到巨集齡暫存條氣。__財的算術邏輯單 το管線效能因此被改進’尤其是當頂點著色器要執行的指令之間有相 錄時。於是t發現巨集塊的指令之間有相錄時,圖形處理器會執 行對應於其他巨集塊的其它緒的指令。 θ 本發明雖以較佳實施例揭露如上’然其並非用以限定本發明的範 圍,任何熟習此項技藝者,在不脫離本發明之精神和範圍内,當可做 些許的更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍 所界定者為準。 【圖式簡單說明】 第1圖係顯示傳統的圖形處理器的方塊圖
Client's Docket No.: VTT05-0223 TT's Docket No.: 〇608-A40595-TWf/Alice/2006-ll-30 15 1328197 ; 第2圖係顯示第1圖中之頂點著色器的方塊圖。 第3A圖係顯示當指令之間沒有相依性時,分派到第1圖中算術 邏輯單元管線的指令順序概念圖。 第3B圖係顯示當指令之間有相依性時,分派到第1圖中算術邏 輯單元管線的指令順序概念圖。 第4圖係顯示根據本發明一實施例所述之一頂點著色器的方塊 圖。 • 第5圖係顯示第4圖中流程控制指令暫存器的流程控制指令格式 概念圖。 第6圖係顯示第4圖中頂點著色器的方塊圖,其由6個緒所組成。 第7圖係顯示第4圖中巨集塊與流程控制指令暫存器之範例。 第8A〜8D圖係顯示分派到第4圖中算術邏輯單元管線的指令順序 與巨集塊以及流程控制指令暫存器的概念圖。 第9圖係顯示依照本發明另一實施例所述之圖形處理器的方塊 圖0 第10圖係顯示依照本發明之另一継著色器實施例之流程控制 法的流程圖,其賴著⑼在觀龍上同輒行複數緒。 第11圖細示依照本發明之另一賴著色器實施例的流雜制 法的詳細流程圖。 【主要元件符號說明】 10、90〜圖形處理器; 12、40〜頂點著色器;
Client's Docket No.: VIT05-0223 TT*s Docket No.: 0608-A40595-TWf/Alice/2〇〇6 n 3〇 1328197 14〜設置引擎; 16〜像素著色器; 22〜指令暫存器; 24、44〜流程控制器; 26、46〜算術邏輯單元管線; 28、48〜輸入暫存器; 41〜巨集指令暫存器檔; 42〜流程控制指令暫存器檔; 52〜呼叫相依性攔; 54〜巨集相依性欄; 56〜呼叫類型欄; 58〜指標欄; 59〜參數撒 1000、2000〜流程圖; ALU〜算術邏輯單元; q、C2、C3〜流程控制指令; I〇、II、工2、工3、14、工5、Ιό、工7、工8、I9、IlO、111、Il2、Il3、工14〜指令; MBn ' MBjsf+i ' MBn+2 ' M®n+3 ' MBjnj+4 ' MBn+5 λ MB〇 ' ' MB2〜巨集塊;
To、、T2、T3〜時間;
ThO、Thl、Th2、Th3、Th4、Th5〜緒; VTX〜頂點資料。
Client^ Docket No.: VIT05-0223 TT's Docket No.: 0608-A40595-TWf^Alice/2006-l 1-30 17

Claims (1)

1328197 案號095144690 99年4月9日 修正本 十、申請專利範圍 =:日^ 1. -種邏輯早(’ 1¾¾¾¾ ㈣執行複數 緒,包括: 一巨集指令暫存輯1賴存複魅錢,每個巨 集塊包括複數指令; "IL程控制^ 7暫存II槽,用以儲存複數流程 令,每個流程㈣指令包括被呼叫之至少—巨集塊以及被 呼叫之該巨集塊之相依性資訊;以及 -流程控制器’用以從該流程控制指令暫存器稽中依 序檢索該等絲控㈣旨令,根據檢㈣_流程控制指人 及該流程控制指令之相依性資訊蚊該巨集彳旨令 中要執打的該巨集塊之—者,用既定的緒排班策略二 等緒之-者猜既祕,錢存取被 2 之頂點資料。 评叼舔緒 2. 如申凊專利$|圍第丨項所述之邏輯單元 算術邏輯單元管線’用以接收在被選擇的該緒中= 該流程控㈣所決定之Μ錢内之指令時 ^執行破 資料,以進行三維圖形計算。 之邊頂點 3. 如申請專利範圍第丨項所述之邏輯單元,、、 叫之該巨集塊之相依性資訊包括選自以下群纟且之〜=被呼 被呼叫之虹钱料它巨錢^ =性次 訊;以及 丨㈡抵f生貝 被呼叫之該巨集塊内指令之間之該相依性資 4·如申請專利範圍帛1項所述之邏輯單元::。 其中該巨 VIT05-0223/〇608-A40595-TWfl 1328197 集塊包括非先佔式以及先佔式巨集塊,且其中非先佔式之 該巨集塊之指令彼此互相獨立,而先佔式之該巨集塊具有 與同一巨集塊之其它指令相依之至少一指令。 5·如申請專利範圍第1項所述之邏輯單元,其中該流 程控制器更從該流健㈣令暫存H檔檢索—次—個該= 程控制指令,並且當被檢索到的該流程控制指令中被該流 程控制器所決定之被呼叫之該巨集塊與其它巨集塊相依 時根據既疋的緒排班朿略為被次一個該流程控制指令呼 叫之該巨集塊選擇一另一該緒。 6. 如申請專利範圍第5項所述之邏輯單元,其中該流 程控制器更根據檢索到的該流程控制指令之相依性資訊決 疋被檢索到的該流程控制指令呼叫之該巨集塊是否與其它 巨集塊相依。 7. 如申請專利範圍第2項所述之邏輯單元,更包括一 輸入暫存器,耦接於該流程控制器以及該算術邏輯單元管 線’用以儲存該頂點資料。 8. 如申請專利範圍第1項所述之邏輯單元,其中在該 等緒中執行的運算根據其功能切分成複數巨集塊。 9. 一種圖形處理器,包括: ,一頂點著色斋,適用於在一影像資料區段上,同時執 仃包括指令之複數巨集塊之複數緒,其+每個巨集塊會被 對應的緒執行’其中該頂點著色器包括: 一巨集指令暫存器槽,用以儲存該等巨集塊; 抓程控術日令暫存器播,用以儲存複數流程控 VIT05-0223/0608-A40595-TWfl 19 1328197 制指令,每個流程控制指令包括被呼叫之至少一該巨 集塊以及被呼叫之該巨集塊之相依性資訊;以及 一流程控制器,用以從該流程控制指令暫存器檔 中依序檢索該等流程控制指令,依照檢索到的該流程 控制指令及該相依性資訊決定至少一該巨集指令暫 存器檔中要執行的該巨集塊,用既定的緒排班策略選 擇該等緒中的一緒執行既定之該巨集塊,以及存取該 緒所需之頂點資料, # 一設置引擎,用以將從該頂點著色器接收到的該影像 資料組合成三角形;以及 一像素著色器,用以接收來自該設置引擎的該影像資 料,並對該影像資料進行打底程序以產生一像素資料。 10. 如申請專利範圍第9項所述之圖形處理器(GPU), 其中該頂點著色器更包括: 一算術邏輯單元管線,用以接收在被選擇之該緒中, 執行被該流程控制器所決定之該巨集塊内之該指令時所需 鲁 之該頂點資料,以進行三維圖形計算。 11. 如申請專利範圍第10項所述之圖形處理器,其中 被呼叫之該巨集塊之該相依性資訊包括選自以下群組之資 訊: 被呼叫之該巨集塊與其它巨集塊之間之該相依性資 訊;以及 被呼叫之該巨集塊内指令之間之該相依性資訊。 12. 如申請專利範圍第10項所述之圖形處理器,其中 VIT05-0223/0608-A40595-TWfl 1328197 該巨集塊由非先佔式以及先佔敍集塊所組成,又其中非 先佔式巨集塊之指令彼此互相獨立,而先佔式巨集塊具有 與同一巨集塊中其它指令相依之至少一指令。 ” 13.如申請專利範圍第1〇項所述之圖形處理器,其中 該流程控制器更用於從該流程控制指令暫存器播檢索 個該流程控制指令,並且當被檢索到的該流程控制指令中 被該流程控制器所決定之被呼叫之該巨集塊與其它巨集塊 相依時,根據既定的緒排班策略為被次一個該流程控制护 • 令呼叫之該巨集塊選擇一另一該緒。 曰 14·如申請專利範圍第丨3項所述之圖形處理器,其中 該流程控制器更用於根據檢索到的該流程控制指令之該相 依性資訊決定被檢索到的該流程控制指令呼叫之該巨集塊 是否與其它巨集塊相依。 ~ 15. 如申請專利範圍第項所述之圖形處理器,其中 該頂點著色器更包括一輸入暫存器,與該流程控制器以及 該算術邏輯單元管線耦接在一起,用於儲存該頂點資料。 16. 如申請專利範圍第10項所述之圖形處理器,其中 在該等緒中執行的運算根據其功能切分成該等巨集塊。 17. —種流程控制方法,適用於同時在頂點資料上,以 及複數巨集塊與複數流程控制指令執行複數緒,其中每個 巨集塊包括複數指令’每個流程控制指令呼叫至少一該巨 集塊,並包括被呼叫巨集塊之該相依性資訊,該流程控制 方法包括: 檢索一該流程控制指令; VIT05-0223/〇608-A40595-TWn 21 1328197 根據檢索到的該流程控制指令與該相依性資訊決定一 要被執行之該巨集塊;以及 根據既定的緒排班策略為被決定之該巨集塊選擇要被 執行的該緒。 18. 如申請專利範圍第17項所述之流程控制方法,更 包括: 決定要被執行之被檢索到的該流程控制指令所呼叫之 該巨集塊,並且根據既定的緒排班策略為該巨集塊選擇一 • 該緒。 19. 如申請專利範圍第17項所述之流程控制方法,其 中決定要被執行之該巨集塊更包括: 根據檢索到的該流程控制指令之該相依性資訊決定被 檢索到的該流程控制指令呼叫之該巨集塊是否與其它巨集 塊相依。 20. 如申請專利範圍第19項所述之流程控制方法,其 中決定要被執行之該巨集塊更包括決定一被呼叫之指令是 ® 否包括與被呼叫之該巨集塊中指令之相依性。 21. 如申請專利範圍第20項所述之流程控制方法,更 包括當在選自以下群組之條件組合情況下,檢索次一個該 流程控制指令: 被呼叫之該巨集塊與其它巨集塊相依;以及 一目前被呼叫之指令與被呼叫之該巨集塊中的指令相 依。 22. 如申請專利範圍第17項所述之流程控制方法,其 VIT05-0223/0608-A40595-TWfl 22 1328197 中被流程控制器呼叫之該巨集塊中該流程控制指令之該相 依性資訊包括選自以下群組之資訊: 被呼叫之該巨集塊與其它巨集塊之間之該相依性資 訊;以及 被呼叫之該巨集塊内指令之間之該相依性資訊。 23. 如申請專利範圍第17項所述之流程控制方法,其 中該巨集塊由非先佔式以及先佔式巨集塊所組成,又其中 非先佔式巨集塊之指令彼此互相獨立,而先佔式巨集塊具 • 有與同一巨集塊中其它指令相依之至少一指令。 24. 如申請專利範圍第17項所述之流程控制方法,其 中該等緒在該頂點資料上進行運算,並且在該等緒中執行 的運算根據其功能切分成該等巨集塊。
VIT05-0223/〇608-A40595-TWn 23
TW095144690A 2006-07-20 2006-12-01 Multi-thread vertex shader, graphics processing unit, and control method thereof TWI328197B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/458,706 US20080122843A1 (en) 2006-07-20 2006-07-20 Multi-thread vertex shader, graphics processing unit and flow control method

Publications (2)

Publication Number Publication Date
TW200807329A TW200807329A (en) 2008-02-01
TWI328197B true TWI328197B (en) 2010-08-01

Family

ID=38700999

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095144690A TWI328197B (en) 2006-07-20 2006-12-01 Multi-thread vertex shader, graphics processing unit, and control method thereof

Country Status (3)

Country Link
US (1) US20080122843A1 (zh)
CN (1) CN101013500B (zh)
TW (1) TWI328197B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513912B2 (en) * 2012-07-27 2016-12-06 Micron Technology, Inc. Memory controllers
CN105446704B (zh) * 2014-06-10 2018-10-19 北京畅游天下网络技术有限公司 一种着色器的解析方法和装置
US10467796B2 (en) * 2017-04-17 2019-11-05 Intel Corporation Graphics system with additional context
US10546399B2 (en) * 2017-11-21 2020-01-28 Microsoft Technology Licensing, Llc Pencil ink render using high priority queues
CN113345067B (zh) * 2021-06-25 2023-03-31 深圳中微电科技有限公司 一种统一渲染方法、装置、设备和引擎

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995022102A1 (en) * 1994-02-08 1995-08-17 Meridian Semiconductor, Inc. Method and apparatus for simultaneously executing instructions in a pipelined microprocessor
GB9412439D0 (en) * 1994-06-21 1994-08-10 Inmos Ltd Computer instruction pipelining
US5619667A (en) * 1996-03-29 1997-04-08 Integrated Device Technology, Inc. Method and apparatus for fast fill of translator instruction queue
US7548238B2 (en) * 1997-07-02 2009-06-16 Nvidia Corporation Computer graphics shader systems and methods
US6573900B1 (en) * 1999-12-06 2003-06-03 Nvidia Corporation Method, apparatus and article of manufacture for a sequencer in a transform/lighting module capable of processing multiple independent execution threads
US6198488B1 (en) * 1999-12-06 2001-03-06 Nvidia Transform, lighting and rasterization system embodied on a single semiconductor platform
US7818356B2 (en) * 2001-10-29 2010-10-19 Intel Corporation Bitstream buffer manipulation with a SIMD merge instruction
US8274517B2 (en) * 2003-11-14 2012-09-25 Microsoft Corporation Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
US7502029B2 (en) * 2006-01-17 2009-03-10 Silicon Integrated Systems Corp. Instruction folding mechanism, method for performing the same and pixel processing system employing the same
US8884972B2 (en) * 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units

Also Published As

Publication number Publication date
TW200807329A (en) 2008-02-01
CN101013500A (zh) 2007-08-08
US20080122843A1 (en) 2008-05-29
CN101013500B (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
US11605149B2 (en) Graphics processing architecture employing a unified shader
TWI282518B (en) Graphic processing apparatus, graphic processing system, graphic processing method and graphic processing program
EP2671206B1 (en) Rasterizer packet generator for use in graphics processor
TWI381328B (zh) 用於三維圖像管線之自動負載平衡之方法、器件、裝置、處理器及非暫時性電腦可讀儲存媒體
CN102135916B (zh) 同步方法以及图形处理系统
KR101071073B1 (ko) 퀵 픽셀 렌더링 프로세싱
US20030151608A1 (en) Programmable 3D graphics pipeline for multimedia applications
US20060119607A1 (en) Register based queuing for texture requests
CN105809728A (zh) 在图形处理单元中渲染场景的视图
CN108305313A (zh) 用于细分绘制空间的一个或多个图块的集合的、用于绘制的图形处理单元和方法
WO2016200558A1 (en) Graphics engine and environment for efficient real time rendering of graphics that are not pre-known
JP2007514230A5 (zh)
CN110738593B (zh) 图形处理器及其操作方法、图形处理系统、编译器
JP4430678B2 (ja) 3次元グラフィック・サブシステムにおけるテクスチャマップデータのプログラム可能なフィルタ処理方法及び装置
TW201812694A (zh) 分群調色板壓縮技術(二)
TWI328197B (en) Multi-thread vertex shader, graphics processing unit, and control method thereof
JPWO2003009125A1 (ja) 演算装置および画像処理装置
US20240070961A1 (en) Vertex index routing for two level primitive batch binning
US20080313434A1 (en) Rendering Processing Apparatus, Parallel Processing Apparatus, and Exclusive Control Method
US20110037769A1 (en) Reducing the Bandwidth of Sampler Loads in Shaders
US7508396B2 (en) Register-collecting mechanism, method for performing the same and pixel processing system employing the same
CN109643441A (zh) 图像处理装置、图像处理方法、图像处理程序、图像处理系统
JP2023015654A (ja) 画像処理システム、方法、及びプログラム
JP2000149054A (ja) ボリュ―ムデ―タ集合の処理方法及びボリュ―ムレンダリングプロセッサ
TW200828177A (en) Early retiring instruction mechanism, method for performing the same and pixel processing system thereof