TWI311729B - Global spreader and method for a parallel graphics processor - Google Patents

Global spreader and method for a parallel graphics processor Download PDF

Info

Publication number
TWI311729B
TWI311729B TW095104660A TW95104660A TWI311729B TW I311729 B TWI311729 B TW I311729B TW 095104660 A TW095104660 A TW 095104660A TW 95104660 A TW95104660 A TW 95104660A TW I311729 B TWI311729 B TW I311729B
Authority
TW
Taiwan
Prior art keywords
spreader
processed
ontology
instruction execution
graphics
Prior art date
Application number
TW095104660A
Other languages
English (en)
Other versions
TW200707333A (en
Inventor
Paltashev Timour
Prokopenko Boris
Gladding Derek
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 TW200707333A publication Critical patent/TW200707333A/zh
Application granted granted Critical
Publication of TWI311729B publication Critical patent/TWI311729B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Multi Processors (AREA)

Description

1311729 心ff正麵 九、發明說明: 【相關申請案之交互參考】
本申請案和下面共同待審的美國專利申請案有關:(1) 2005年8月8曰提申的美國專利申請案第11/199,357號, 其標題為「MULTI-EXECUTION RESOURCE GRAPHICS PROCESSOR」;(2) 2005年8月8曰提申的美國專利申請 案第 11/199,458 號,其標題為「SYSTEM AND METHOD TO MANAGE DATA PROCESSING STAGES OF A LOGICAL GRAPHICS PIPELINE」;以及(3) 2005年8月8日提申的美 國專利申請案第11/199,353號,其標題為「METHOD FOR PROCESSING VERTEX, TRIANGLE, AND PIXEL GRAPHICS DATA PACKETS」。本文以引用的方式將上面每 一申請案完整併入。 【發明所屬之技術領域】 本發明係關於一種電腦處理器及電腦網路的架構,更 明確地說,係關於一種用於產生及動態排程多重流動資料 處理任務的系統與方法,用以於一平行處理器中來執行。 【先前技術】 微處理器設計人員與廠商不斷地專注在改良微處理器 政能,以便執行愈加複雜的軟體,進而提高功效。雖然改 良製程可藉由縮小矽幾何大小而有助於提高微處理器的速 度,不過,處理器的設計方式,尤其是指令執行核心,仍 然關係到處理器效能。 有許多微處理器皆使用指令管線排列技術(instructi〇n 1311729 擔γ深正替换頁 pipelining)來提高指令總處^:Γ|^ 合線(assembly line)方式經由 、、可利用—種組 同時處理數項指令。以非二,1不同的指令執行相來 別的功能方塊,例如解碼單 齐禝數個個 體級,每-級均會在—‘二官線排列成數個硬 中的某道步驟。g)此,_ q日貫W指令解碼過程 理器硬體管線。 用多個不同㈣線級便可深化處 用於改良指令執行逮度的另一種方法稱為「亂序 0U 〇 〇! ef)」執行法。亂序執行法執行指令的順序不同 於編譯器發送該等指令的順序,以便縮短含有該等指令之 程式的整體執行等待時間。亂序指令執行法的其中一種方 式係使用被稱為「暫存器記分板(register S議Wding)」 的技,’其中’指令會被依序發送,但是卻以亂序的方式 來執二。IL序排程的另_種形式為運用被稱為「動態排程」 的技術—對提供動_排程的處理器來說,甚至會對發送指 執^硬體的順序進行重新排程,使其異於原來的程式 順,^該等指令執行結果可能亂序,不過該等指令實 則已I出程柄序。尚且,亂序技射的指令管線排列處 理’動態排程,可於相同的微處理器中被分開使用或 仃指令執行可能包含特殊的關聯表,用以 ig 力犯單元的狀態以及某項特殊指令結果作為所 規定指令之輪入谐曾-^ 建异兀的可用性。排程硬體會使用該些表 來發送、執行、以及完成個別的指令。 7 1311729 辦正替叫 動態排程平行指令執令層平行度 • (instruction level parallelism,ILP),該項技術已經延伸至 •多重執行緒(超執行緒處理或是同步多重執行緒處理 (simultaneous multithreading,SMT))。此項技術提供硬體 輔助的多重執行緒派發及執行,從而於一平行功能單元中 可在每個時脈中處理多重指令。動態排程硬體可從該等多 重現役執行緒中提供同步指令發送。 排程硬體可利用記分板來登記執行緒與指令狀態,以 便追蹤指令發送與執行的相依性並且定義指令發送與執行 的時間。此外’執行緒可能會因為冗長的等待時間快取= 失或是其它的I/O原因而被暫止。不過,以一非限制性^ 例為例’該記分板可能係由指令狀態、功能單元狀態、二 及暫存器結果狀態所組成。此三份表格皆會在指令執行過 程中藉由於每個時脈循環巾更㈣們的齡來進行互動。 為傳送某道指令的級與變化狀態,應該滿足特定的條件 且於每一級中實行特定的動作。 w I存盗更名係在已經預設架構暫存器名稱空 (archnecture register namespace)時用來克服名稱相依性 = 其允許複數個指令被並行執行。根據暫 存為更名技術’母當某—暫存器分配到某數值時,便 it攔:的:存器。當解碼某道指令時,硬體便會檢查二 縦似觸命名該㈣暫存器名稱空間。以—非限 f例為^假使暫存器R3分配到某數值的話,便可 一新的暫存器複製體R3,,而在後面指令中對暫存器 1311729 — 進行的所有讀取作業則均 取代架構名稱)。 〇複衣體R3 (以複製名稱 繼續此非限制性範例 話,便可分派另一暫在…“暫存斋新刀配到某數值的 均會被導向新的複R3”’㈣,參考值則 來進行。此過程名=針!、^ 操作更多的平可提高指令層平行度,進而可 重排序緩衝器(reorder buff可 名技術’以便擴充架構暫存器空間並且產生 有有序的結果。輯貝%此便㈣讓亂序執行具 當解碼某道指令時,可能會分配和該適當功能單 」^重排序緩衝器登錄項。該被解碼指令的目的地暫存 為可能與該被分派的重排序緩衝器登錄項有關,1會導致 存器的名稱。該處理器硬體可產生―標籤以唯一 =別此結果。該標藏可储雜該重排序緩衝器登錄項之 。當後續的指令參考到該更名目的地暫存科,置便可 ί收該重排序緩衝器登錄項中所儲存的數值或標籤了端視 疋否收到該資料而定。 重排序緩衝器可被組態成一内容定址式記憶體 (:tem addressable memory ’ CAM),其中可利用該標籤進 =資料搜尋。應財,後續指令的目的地暫存器編號可被 用至-重排序緩衝器’並且亦可確認含有此暫存器編號 1311729 替換買 的登錄項。確認之後,便可[值。假使該數 值尚未算出,便可傳回上述的標籤來取代。假使有多個登 錄項含有此暫存器編號的話,那麼便可確認最新的登錄 項。假使沒有登錄項含有該必要的暫存器編號的話,那麼 便可使用架構暫存器檔。當結果產生時,則可將該結果與 標籤散佈給所有的功能單元。 另一種處理方式包含即時排程及多重處理器系統。此 組態包含複數個鬆散耦合的MIMD微處理器,每個處理器 均具有自己的記憶體與I/O通道。於該些系統上可同時執 行數項任務及子任務(執行緒)。不過,該等任務可能包含 特定排序類型的同步化,以保持預期的處理型樣。另外, 各種處理型樣可能需要不同的同步化。 和指令層平行度處理器不同的係於執行緒中,即時排 程處理器會針對任務進行處理器分配(資源分派)。利用指 令層平行度組態,於專屬的功能單元中其中一部份可能重 複,其意謂著,為分散所進行的指令分配非常簡單,其相 依於可用槽(slot)的數量及指令類型。 不過,對MIMD型的多重處理器系統來說,所有處理 器通常係雷同的,而且具有比較複雜的任務分配策略。至 少其中一種非限制方式係將該MIMD結構視為一處理器 群,其意謂著,將處理器看待成一結合資源,並且相依於 記憶體與計算資源的可用性來將處理分配給處理器。 此環境中,至少有兩種方法可用來分散任務與執行 緒。第一種為靜態分配法,當每種任務或執行緒被預先分 !311729 β§ΙΕ·ι :給某個特殊處理器或某群時 種,動態分配法,和上物同更 =及=優先權來將任務分配給該處理== 發中,該多重處理器群可能具有特殊的派 行,並且^ 任務及多顿行緒正在科分配及執 緒传任i成1/0事件使用。另外,於此組態中,執行 便二:!ΐ 一,’而某些任務可分割成數個執行緒,以 ,、疋的=貝料同步及順序來平行執行。因此,該等執 =通常可與财料其餘部份賴執行。料,應用軟 可旎係一組執行緒,該等執行緒會在相同的位址空間旦 ^用不同的處理II來同時合作及執行H於不同處理 器上同時執行的執行緒可產生動態的效能增益。 /於一多重處理器組態中,可依照負載共享技術來達成 執行緒排程。負載共享可能需要將負載均勻地分散於該微 處理器群中的各個微處理器之上。如此方可確保沒有任何 微處理器係閒置的。 多重處理器執行緒排程可能會使用上述某些靜態排程 技術,例如當將某個執行緒分配給某個特定處理器時。不 過,於將數個特定的執行緒分配給某個特定處理器時,其 匕的處理器可能會閒置,而該被分配的處理器則相當忙 碌,從而導致該已分配的執行緒必須閒置等待其所分配到 的處理器有空為止。因此,靜態排程經常會造成處理器岐 率不彰。 σ > 處理器的動態排程可以物件導向的圖形管線來實行。 11 1311729 ==一種結構性資料項’·代命::^ .的事物,例如三角形的頂點、貼片(叫像素、 .=資:二於邏輯:處,數值資料與控制資料均可為該:: 的一部份,不過實際的實行方式則可分開處理兩者。 圖賴财,有數㈣件可於料料流中進行處 '弟-種為狀態物件’其含有硬體控制資訊及描影碼 $ a er code)。第二,可處理頂點物件 =關的數組頂點。第三,於該資料流模型中= 基本物件(pnmitive 〇bject),其含有和基本物件 ^資料與控制資料。更明確地說,—基礎物件可能人有 ::件、三角形物件、直線物件、及/或點物件。第二 碎形物件可為該資料流模型的一部 ,的數組數值資料與控制資料。最後,於資關 處理其它類型的物件,例如視訊資料。貝科4型中亦可 -(邏t種電物 小與狀態,其亦可能被稱為複數】^具有不同的大 等物件於管線處理中所抵達的位^用以代表該 以一非限制範例為例, 角形物件上,此物件剛開的各層例示在-三 與屬性資料的實際位 术/、—個頂點,指向頂點幾何 及於必要時從Απ =出該等參考值時(檢查快取以 層,俾使經由其它級來㈣)’便可更新該物件 一構可反 12 98」 1311729 A部!7 f況中’―經更新的層會包含前面的層。 Η你^本Γ術的人士便會瞭解,一物件通f會有兩種大 小(佈置)。第1邏輯佈置,其包含所㈣ 物件產生時刻起至結束為止,該邏輯佈置可能 拷從 變。第二;物件佈置為實體佈置,其顯示的係可;= =使用的讀結構,其可運作用以匹配最上層中的邏輯ς L輯佈置與實體佈置兩者均可以訊框 訊框及實體緩衝器來表示。邏輯訊框可被映射輯 =讓資料結構可供立即處理使用。每個 =ΐΓ輯訊框,而其中一個訊框可被映射至4: r省Τ片上:後級中的所有其它訊框則可不被映射,以便 憶體資源。尚且,訊框與緩衝器兩者均可 /、有可變的大小’彼此間可彈性映射。 斤^物1牛可施會參考系統中其它物件内所保有的資料。 g 線心 h V平估技術(pipeline lazy evaluati仙 scheme)會追縱 該些相依&,並且使用該些相依絲計算隨選物件(object on demand)内所儲存的數值。相同類型的物件可於平行獨 iL的« +來處理。或者’可產生—種複合物件,其含有 數個頂點物件、碎形物件、紋频物件,以便於SEVID 模式中進行處理。 對圖形處理應用而言,上述的特點具有 歷史内含固定 函數及可程式硬體型;I;線解決方式。不過,該些線性解決 方式經常會因該圖形管線的靜態組態而導致效率不彰。當 13 1311729
9kV I修正替換頁j _______„1 如上述般某個特殊級的頻寬於訊框產生的執行時間期間沒 有改變時,便會造成該處理器效率不彰且出現閒置時間, 從而降低整體的效率。於涉及多個平行處理器的應用中, 效率不彰的情形會越加惡化。 因此,目前為止,必須要解決由複數個平行多重執行 緒處理器所組成的MIMD結構中動態產生及多重邏輯圖形 管線執行管理的問題。吾人還進一步於平行處理中需要有 改良的資源利用率,以達更高的效能,此問題先前可能係 肇因於不良分派及不良排程協定分辨率。 【發明内容】 本發明係關於一種平行圖形處理器,其可於一邏輯管 線中處理複數個圖形資料封包,其包含頂端本體、三角形 本體、以及像素本體。本發明讓該平行圖形處理器實行和 頂端、三角形、以及像素有關的動態排程多重流動資料處 理任務。換言之,平行圖形處理器可同時平行處理該些本 本發明揭示一種具有一散佈器的平行圖形處理器,該 散佈器會被耦合至複數個執行組件。該散佈器會保留該等 複數個執行組件中每一者的狀態資訊,並且建立該等複數 個執行單元中每一者接收欲被處理之圖形實體的優先權。 可依照所保留的狀態資訊以及預被處理的圖形實體來排列 該等優先權。該散佈器會將一要求傳送給一選定執行組 件,用以於其本體描述符表中分派該欲被處理的圖形本體 並且將圖形本體資料拷貝至該選定執行組件。該散佈器會 14 1311729 於其邏輯表中對該圖形本體的丨 著便會從,選定執行組件中接收指示符號,表示該圖 體已經過處理。而後便可於一顯示器上表現圖形影像。 熟習本技術的人士於檢視下面圖式與詳細說明時便可 -明白本發明的其它系統、方法、特點、以及優點。五 、望所有此專额外系統、方法、特點、以及優點 明之中=蓋於本發明内容之中,並且受到隨附申請= 範園的保5蔓。 【實施方式】 不同於靜態排程的係如上述,於執行緒執行期間可運 用動態排程,致使可由該應用軟體來動態變更某處理中的 執行緒數量。動態排程還可促成閒置處理器分配以執行特 定的執行緒。此方式可改善可用處理器的運用情形,I以 便巧改善系統的效率。 第1圖為本發明的物件導向架構模型1〇的抽象硬 意圖。第1圖的物件導向架構模型10包含一具有一二 單元的通用處理部份,其可提供區域排程、資料交換、仃 及本體戒是物件處理。 、以 ; 冑1圖的物件導向架構模型料為以動態排程指人執 行概念為主的平行圖形處理來致動動態排程,其可使:於 超純數(superscalar)機之中。此概念可延伸至數個執 , 數個微執行緒,其為欲於圖形資料物件上執行的碎形L 如本文所述,該動態排程方式會映射至邏輯圖形管=馬苴 中每個部份均會處理一特定類型的圖形資料物件並且執^ 15 1311729 丄年:月日修正替換頁 含有數個微執行緒的執行緒說厂“圖形管線的 粗粒級可匹配某一層物件種類(例如頂點、幾何形狀、以及 像素)上的執行緒,其中細粒級則相當於微執行緒。 物件導向架構模型10包含一全域排程器(global scheduler)及任務分散器(task distributor),下文中稱為全域 散佈器(global spreader) 12。全域散佈器12具有複數個附屬 的頂點與索引流緩衝器、一頂點物件表、以及一基礎物件 表’下文將更詳細說明(第3圖)。全域散佈器12會透過一 資料傳輸通信系統13被耦合至物件導向架構模型1〇的各 個級件,如熟習本技術的人士所知悉者。該資料傳輸通信 系統13會耦合該架構的所有組件,如第1圖所例示般。 、丄/ 、 會杈供區域排程、資料交換、以 執行單元15 =本體處理,由全域散佈器12來分配。下文將更詳細地討 論執行單元15、17、19的邏輯構造及作業。 、α 固定功能硬體與快取單元記憶體21包含用於實行曰 形處理之固定功能級(例如網格化、紋理處理、以及輸出二 素處理部份)的專制形資源。此外,第丨圖的物 構模型10中内含-共用I/O月良務與大量快取記情體^木 ^可被配置成包括—命令流處理器、記憶體與匯流排存 :範:數個大量快取、以及一顯示單元,以上均為非限制 傳輪 通; 雖然如下文更詳細討論般,全域散佈器12 通信系統13與-或多個執行單元15、17、丨貝枓 不過,該等執行單元15、17、19亦可根據全_= 16 1311729 10 ν 彳修正替換頁 :配:該等執行單元執行的各項任務— 輸通4吕糸統13來彼此溝通。 貝针得 —全域散佈器12作物件導向架構模型1Q中所有的執 ::广,仃互動’ϋ且利用時脈分辨率來追 組態可完全地程式化鮮可依據每域個務分散 逐個訊框料絲來績⑽。目執仃早较設定檔的 第2圖為第丄圖的物件導向架構 一 排程示意圖。於全域排程層處,全、 ❸三層動態 格運作並且還涉减本魏12可配合各表 分散至各個執行單元15、17、^框分配’以及涉及 域排程層中)。因此,如上討論般,八^體記憶體分派(於全 圖的所有執行單元15、17、19 =政佈器12會與第! 程層,如第2圖所示。於區域丁 J ’其涉及到區域排 f包含—區域記分板㈣咖=)處㈣_壬務排程 j有—級剖析器(stage parser)的仵軸^取=分板包括 各本體,於女▲ 昂y圖)逐級地推動 進行實體記==整個執針對已更新的狀態本趙 營線==排程層處:執行方塊含有-數值流 行諸的數值^ 2,其會 剖析器82所定義之執 34,其可執2含-資料_^^ 』双動執行多重執行方塊中的 订多重通道1/〇 夕重執仃绪,並且實 控制換吕之貝枓移動控制器34會將資 17 .1311729 4^):、背纖頁’ =得廷給其它執行方塊與全域散佈器12及/或從其它執行 單元與全域散佈器12中接收資料。 包含全域排程層、區域排程層、以及指令執行排程層 在=的所有層均包含硬體控制器來提供具有時脈分辨率的 動心排程。再者,該等全域與區域排程控制器可於計算資 源分派中共同合作。 第3圖為利用和全域散佈1 12、執行單元15、固定功 此硬體與快取單%記憶體21、以及共用⑹服務與大量快 取記憶體23相關的額外作業單元來顯示第丨圖的物件導向 :構:型1〇的示意圖。如第3圖所示,全域散佈器12包 3 土礎物件表41(-含有基礎元素之對照值的表)、一頂 點描述符表43(所有執行單元中的頂點分派)、以及一輸入 頂點緩衝器與索引緩衝 係主要的上声排程: 如上討論般,全域散佈器12 係主要的上層料早%,討彻 訊及接收自該等固定功能师⑸Α。平_狀匕貝 ^體與絲單元記憶體2】的資 抖將工作里刀散給所有的執行單元i5、i7、19。 所示,全域散佈器12可鱼今蓉勃—⑻— ° 快取控制器51進行互動以、j執仃早兀的區域仔列-符列 線中。 動乂產生新本體,進而送入一邏輯管 全域散佈器12會抑也丨& 士 μ 業,並且運用「生產者執行單元_資料分散作 以一非限制性犷彻丨盔/肩費者」貧料參考的區域性原理。 相關的三角形二來:派布器12會試圖利用複數個 的三角形將複數個像+封^個頂點本體,並且從一特殊 豕I封包分配給一具有三角形本體資料 18 1311729 9齡r爾1 ί 的執行單元。假使此特殊的執行單元不具有足夠資源供八 派的話,便可將頂點或三角形資料拷貝至另—執行單刀 三角形或像素本體可能已經於該處被傳送。 ^, 於至少一非限制性範例中,全域散佈器12可接收至小 四種輸入要求,用以於該等執行單元中安排處理。首 全域散佈器12可接收一頂點封包,由輸入頂點緩衝芎與索 引缓衝器46產生。其次’全域散佈器12可接收一二 封包,由三角形組合硬體產生。全域散佈器12還可接收V 像素封包器49產生的一像素封包(於至少一非限制性範由 中可高達16個像素),像素封包器5〇可為固定功能硬^ = 快取單元記憶體21的一邏輯組件。以一非限制性範你:、 例,全域散佈器12可接收BEZIER貼片(於至少一 為 性範例中為16個頂點)’由輸入頂點缓衝器與索 制 46產生。 衝器 對全域散佈器12可接收的每種資料來說,全域 12可維持及監督該物件導向架構模型1〇中每個執行:益 的各種控制資訊。於此非限制性範例中,如第3圖;=70 該物件導向架構模型ίο包含執行單元15、17、19、:以 = 49。不過,熟習本技術的人均知悉,可朗預期的應 用而含有更多或較少的執行單元。不過,如上述,全域散 佈器12會保留至少和任何特定時刻中可用執行單元數量 有關的資訊。此外’全域散佈器12還會保留必須為某種特 殊類型之新本體釋放之最小資源量有關的資訊,其^由一 外部驅動器來設定。全域散佈器12還會在接收某項特殊資 19 1311729
1¾多正替換頁I 源方面建立每個執行單元的優域二ϋ 例中,可針對特定類型的 、至少非限制性犯 .來配置物件導向架構模型 Α本體以專屬的執行單元 佈器12可知悉該些t生10、°因此,於此實例中,全域散 屬本體以進行處理。 M便將特殊㈣分配給該些專 全域散佈器12還伴古 行單元中的資料大小有關被處理及欲被拷貝至該執 體有關的優先權資訊。全域貝佈」:及保有和該資料或本 偏好。以-非限制性範例 枓佈置 宜,而像素則二I則可能以它們的頂點來建構為 、、以—角形來建構為宜,所以便構成資料 佈置偏好。因此,於此情況中,^ 文構成貝枓 以進行更有效的處理。王域散佈12保有此資訊 全域散佈器12包含一基礎物件表41 會取得其基礎ID,當分派該三角形 =—角㈣ :該基礎物件表…。於此非限=例:便:= 件表W有兩攔:基礎ID(MD)與執行單元#,執行土單元# f應的係分派該三角形本體處的執行單元編號。傳送自固 疋功能硬體與快取單元記憶體21的像素封包载有一二角 ,其可用來於該基礎物件表41中進行查找,以便決 定原始的三角形本體的邏輯位置。 、 全域散佈器12還包含一頂點描逑符表43,該表 ^斤有執行單元15、17、19、48及49使用的全域頂點登 吕己表(第3圖)。頂點描述符表43含有和每個八(或是由一執 20 1311729 9i ^**·**——**·—____.. _ j 行方塊之s IM D係數所定義的任意數)頂點群的位置有關的 記錄或資訊,其可能内含於正欲進行處理的頂點封包之 中。於至少一非限制性範例中,該頂點描述符表43可能含 有約256筆記錄,其包含攔位名稱、襴位長度、欄位來源, 以非限制性範例為例,其來源可能係全域散佈器12、頂點 描述符表43控制、或是某個特殊執行單元中的佇列快取控 制器51。頂點描述符表43亦保有該等特殊記錄的目的地 資訊以及和該特殊資料欄位有關的描述資訊。當收到一頂 點封包時,該頂點描述符表43可配合輸入頂點緩衝器與索 引緩衝器46來運作。全域散佈器12會產生一頂點本體, 並且於該輸入頂點緩衝器與索引緩衝器46及所分派的執 行單元記憶體之間開始進行傳輸,更詳細的說明如下。 以一非限制性範例為例,假使進入的封包並不適合執 行單元群(其包含第3圖的執行單元15、17、19、48及49), 那麼全域散佈器12便可能不會承認有收到此資料,直到全 域散佈器12能夠正確地分派具有足夠資源(例如記憶體空 間)的特殊執行單元為止。於此實例中,對一特定的頂點封 包來說,全域散佈器12可被配置成用以實施各種動作。首 先,全域散佈器12可利用其資源需求/分派資訊來尋找一 合宜的執行單元(例如執行單元17),如上述。或者,全域 散佈器12可將一要求傳送給一特殊的執行單元(例如執行 單元49),用以分派一本體給所收到的頂點封包。假使所收 到的頂點封包並未經過索引編排,那麼全域散佈器12便可 於輸入頂點缓衝器與索引緩衝器46中為它產生一個索 21 1311729
引。此外,全域散佈器12還可於頂點描述符表43中由一 特殊執行單元來分派一登錄項,並且於該登錄項中填入該 本體的索引與編號。最後,全域散佈器12可指示執行單元 資料管理移動機制52將資料移到該執行單元中的預期位 置處進行處理。 假使全域散佈器12接收到一不適於某個特殊執行單 元群的三角形封包而非一頂點封包的話,那麼該全域散佈 器12便可利用該資源需求/分派資訊來尋找一合宜的執行 單元,如同上面針對頂點封包所述者。或者,全域散佈器 12可於利用該三角形的頂點的索引時,擷取該等本體編號 並且抽出該等垂直元素編號。全域散佈器12可將一要求傳 送給一執行單元(例如執行單元19),用以分派一本體給該 三角形封包。而後,全域散佈器12便可將該等頂點的本體 編號與該等元素編號(1至8)傳送給該特殊的執行單元,例 如此非限制性範例中的執行單元19。 對被全域散佈器12所收到的一特定像素封包來說,全 域散佈器12可利用該資源需求/分派資訊來尋找一合宜的 執行單元,如同上面針對三角形封包及頂點封包所述者。 或者,全域散佈器12可將一要求傳送給一特殊的執行單 元,用以分派一本體給該像素封包。於此實例中,全域散 佈器12可將該些像素所屬的三角形的本體編號及它們的 元素編號傳送給該執行單元以作進一步的處理。 雖然到目前為止,本文的重點均放在全域散佈器12及 其功能上面;不過,現在會將重點放在該群執行單元以及 22 、1311729 逢-巧pS绛正替怪百 一 -—— 它們與該全域散佈器12的通信方式及彼此平行運作方式 上面。 母個執行單元皆含有一仔列快取控制器(QCC)5 1。件 列快取控制器51可於資料流處理中提供分級,並且將資料 連結至數值與邏輯處理n ’例如以供進行浮點及整數計 算。佇列快取控制器51可幫助管理一邏輯圖形管線,其中 於每一級的處理中均會產生或轉換資料本體。如本文所 述,佇列快取控制器51包括一本體描述符表、一級剖析 器、以及-位址更名邏輯表單元單元。(下文將說明且圖 額外的QCC組件。) —對執行單元丨5來說,雖㈣中所示之㈣快取控制器 的兀件符號為5卜*過第3圖中所示的其餘執行單元亦相 ^宁列快取控制器51具有專屬的硬體針對各資料處理級 邏輯FIF0,並且用以將各級連結在—起,更詳細 =下。仵列快取控制器51為執行單元15的區域元件, 每 =:其咖 考值,以便於由全域散佈器12進行 管理移動電路可促使資料 或將資料移動至其㈣組件,如移動資料及/ 單元17、19、48或49。如第3圖中所示的其它執行 佇列快取控制器包含—區域快 少-非限制性範例中’區域快取記憶體54中=並= 23 1311729 g修正替換頁 而代之的係所有的FIFO係 被傳送至任何的實體FIFO丨.,.N,,丨π…丄“ ^叶 具有和各物件相關的記憶體參考值的邏輯元件。以一非限 制性範例為例,和頂點封包有關的頂點資料可保留在該區 域快取記憶體之中直到該頂點資料被處理為止;或是可刪 除或被拷貝至相關的三角形本體以供進一步處理,不過, 該頂點資料則不會保留在區域快取記憶體54之中。 佇列快取控制器51還包含一執行緒控制器56,其可 支援多重執行緒處理並且能夠執行四或更多個現役執行 緒,所以可於執行單元層中在SIMD流類錄行上提供 MIMD。誠下文將麟詳細說明,不過,㈣快取控制 器5i可與-流動數值管線及相_暫存器單元π進行通 信,該流動數值管線及相關的暫存器單元5 點及整數指令,其可於哕U牙矾仃子 如第3 中處理多個資料項。 與快取記憶體單元21包二定功能硬體 通式仔列6!;以及—重排序素二包; 一微磚旁 產生器64(像素解封包器)。 ^其具有-輸出微磚 於^行單元中減低稀疏微磚處理vuir配置成用以 通式传歹,J 6!可被配置成用以里中的粒度損*。微磚旁 e pixels masks),同時可於 ”所有的微磚像素遮罩(till 像素。另外,輪出微碑:行單元群中處理其它微磚上的 碑像素遮罩來對於哕 益可破配置成用以使用該忾 、〜元群〜的像素二 24 1311729 ι -·—, 解封包。重排序缓衝器為 .該等像素封包的原來順岸’、被傳达至該執行單元群的 - 第4圖為笫3、圖从 口為其亦可以亂序方式來處理。 ^圖為第3圖的執行單开τ斗、β & 執行單列快取控制器(或3 _任何其它 外的組件。於此非限制:❸不忍圖’圖中還顯示額 -通信單元71,=t·仵列快取控制叫^ 邊通k早兀71且有一 出75部份,其中可從 輩、輸人73心及一輸 及/或將資料及其它資赠^早4接收㈣及其它資訊 域散佈器12。通列的執行單元及/或全 過cm匯流排79鱼資通信控制器77,其可透 資粗w / 移動機制52來交換資料。 今本體^ w TRL匯流排79傳送至本體描述符表78, 以本體描述符表78會被配 資料關係、分派情形、就緒μ a有和已刀配封包的 資訊。本'緒障形、以及目前處理級有關的 rJ. Λ “ 78包含複數個實體描述器 數。ΓΓΓ-’ Γ"續存和每個本體相_f料及各種常 由至非限制性範例中,本體描述符表78可能含有 ,少__組成之高達256筆 2 衝器登錄項及-本體登錄⑮貫體緩 ^ ^^φ^ 、彔項。一虛擬圖形管線所使用的所 均可利用該本體描述符表78及具有一級 才曰裇表83的級剖析器82來設計。 於至少一非限制性範例中,本體描述符表7 8可依據-址式記憶體)並且使用二至三個欄位來進ί關 2性查找H卜限制性範例為例,該等攔位可能包含一 八位位70組成的本體編號攔位以及—由四位位元組成的 25 1311729 r~~—--— 9i|^lt 邏輯訊框編號欄位。依此方78可視為係 • 一完整的關聯性快取記憶體,其具有額外的控制狀態機用 . 以於每個時脈循環處依照該等執行單元中的狀態來更新部 份欄位。 級剖析器82包含一級剖析器表,於一圖形處理非限制 性範例的邏輯管線中,該表含有每個處理級的指標,如第 5圖至第9圖所示且下文將作討論。級指標實際上會指向 每一級中下一次欲處理的本體。於至少一非限制性範例 中,和每一級相關的處理有兩種:數值處理,以及I/O或 資料移動處理。級剖析器82的級剖析器表中内含的該等指 標可用來選擇具有一執行緒微程式的複數個用戶描述符。 當級剖析器82的級剖析器表產生一指向某個特殊本 體的動態指標時,本體描述符表78中内含的用戶描述符表 資訊便會被載入執行緒控制器56之中以供進行數值級處 理,如上述,其可能包含浮點指令與整數指令。級指標表 中的每一級均具有一指向描述符表中某項記錄的靜態指 標,其定義著該執行緒微碼開始位址及複數個執行緒參數。 或者,於I/O處理的情況中,級剖析器82的級指標表 83可產生一指標給I/O和資料移動程序描述符表供資料管 理移動機制52來運用。雖然第4圖中未顯示,不過,級剖 析器82實際上包含一控制器,其可於每個時脈循環處檢查 本體描述符表78中該等本體的狀態,俾使可逐級處理該等 本體。 當佇列快取控制器51運作以將資料傳送給另一執行 26 、1311729
月正替換頁 «.丨,丨-»·,,丨 單元(例如執行單元19)時,該級剖析器表便可產生一和變 動資料移動處理相關的指標值,該值會被傳送至I/O及移 動描述符暫存器表85。變動資料傳輸要求會從I/O及移動 描述符暫存器表85被傳送至資料管理微程式記憶體87, 該資料管理微程式記憶體87會發出一指令給資料管理移 動機制52用以存取快取記憶體88中的該特殊資料並且將 該資料傳送至指定的記憶體位置。 於級剖析器82的級剖析器表涉入某個本體之數值處 理過程的情況中,該級剖析器82的級剖析器表便會產生一 指標值用於執行數值處理,該指標值則會被傳送至該數值 處理描述符暫存器表91。該數值處理描述符暫存器表91 會與執行緒控制器56進行通信,用以實行和該數值處理相 關的浮點或整數序列指令。 位址更名邏輯表單元94含有位址更名資訊,該資訊可 用於提供該等實體緩衝器至該等快取記憶體線88的彈性 映射,其說明同上。該邏輯更名表具有一或多個控制器, 用以操作及更新該表。該位址更名邏輯表單元94可對區域 快取記憶體提供虛擬類型存取。更明確地說,該位址更名 邏輯表單元94會將一實體緩衝器編號轉換成一快取位 址。熟習本技術的人士將會明白,該邏輯表可被配置成以 和虛擬記憶體系統中的轉換後備緩衝器(translation look-aside buffer,TLB)雷同的方式來運作。 資料管理移動機制52負責載入所有的資料且移進該 執行單元之中並且負責與全域散佈器12進行互動,而對固 27
‘1311729 定功能硬體與快取單元記憶體21中的所有其它執行單元 - 亦同,如第1圖所示。於至少一非限制性範例中,假使資 . 料未被儲存於該執行單元的快取記憶體88之中及/或未被 載入該等暫存器(例如本體描述符表78)之中的話便將不會 處理一執行緒。就此而言,資料管理移動機制52會與本體 描述符表78互動以獲取該表中的本體的狀態,以便提供外 部要求的資料給執行單元15,例如供全域參考之用。以一 非限制性範例為例,假使於第一執行單元中處理一三角形 的其中一個頂點的話,對三角形處理用途而言,該特殊的 執行單元可能會試圖將此頂點資訊拷貝至正在處理該三角 形的其餘頂點或是該三角形的其餘頂點所在的一或多個其 它執行單元。依此方式,資料管理移動機制52便可讓該特 殊執行單元與全域資源進行所有的互動,如第1圖所示。 第5圖為於一頂點處理序列中第1圖的物件導向架構 模型10的執行流程圖。對該等頂點物件來說,會參考一可 能相同的「本體」。邏輯電路FIFO並不必實體均等,因為 本體一旦產生之後,便不會該改變它們在該記憶體中的位 ; 置。取而代之的係,級剖析器82會使用指標來確認某個本 : 體,以便將該本體從其中一種狀態推入另一種狀態。 如第5圖的非限制性範例所示,全域散佈器12會透過 第3圖的輸入頂點緩衝器與索引缓衝器46將一頂點處理序 列的幾何流傳送給資料管理移動機制52。該全域散佈器12 的頂點描述符表43會傳送一本體分派要求,並且於該頂點 描述符表43中登記該本體。繼續停留在級0中,該執行單 28 '1311729 體,並且於本體描述符表=:派該本 然已經分派此本體,m 立本體爲述付表項。雖
體88之中為兮太辦級0中所示’亦可於快取記怜 之中為該本體建立複 U 執行單元的執行緒控制……取、線於此作業期間’該 執行緒,如級〇中戶^示y、 讀可能正在執行其它的 之中:丄:本3剖::2找『爾^ 此作業中, 取記憶體88取得該頂點幾何^ 移動機制52為快 級2中,如第s園沉一 币)圖所不,可依照級剖析器82 載入快取記憶體88之中 、 存取破 56及數值管線可於此非限 ^、;',以 便讓執行緒控制器 外此非限制性範例中依昭 二2中所生成的資料可於進行、:3 ;:= 刖再二人被儲存於快取記憶體88之中。 業以 級3中,由級剖析器82指示資粗其τ田必去 :點屬性批次資料置讀 料,如級3所示。此時,級3中,該執扞罝^該貝 制器%缝值管料能正麵行其㈣;;;的執行緒控 級4中’該制與快取控制㈣㈣㈣u 輸該等已轉換的幾何與未經處理的屬性,俾使可實』屬 轉=照明描影運算。所生成的資料可再次被儲存於快取 β己憶體88之中,如級4至級5所示。 、 級5中’於從級剖析器82中收到該頂點本體的指標 29 Γ311729 厂:―― 時,執行緒控制器56及 —~ .已經ϋ轉糾㈣ s歧謂快取記憶體88中 ,描影器時,如第後描影運算。於離開該後端 再次被置放於快取所生成的頂點資料會 動機制52將1值、^ _ 接者便會由資料管理移 ”指揮的:;:=r執行單元或— 本體==果;^剖析器82會發出—刪除本體命令給該 可"彡 1删除此次作業的頂點本體ID。換古之, 4::Γ”刪除該本體參考值,不過,該頂點資:仍 它供三角形本體用於進行其 移動的欲被執行的微指令及欲被 生在數疋,上述的六級中的每一級均可能係發 s第6圖與第7圖為第1圖物件導向架構模型10的三角 序。列的物件導向架構互動示意圖。級G中,全域散 移過資料傳輸通信系統13匯流排來與資料管理 1進仃相,目時還會分㈣三肖形本體要求並 =頂點描述符表43中登記該項要求。該項三角形本體 、地理會在執仃單元符列快取控制器51中繼續執行,其 方式係在本體,述符表78中分派該本體並且於快取記憶 和 為&專—角形頂點索引及幾何資料分派一記憶體 二間。此時,級0中,執行緒控制器56及數值管線可能正 在執行其它的執行緒。 級1中'、及。ij析器82可能會指向級〇中所分派的三角 30 η 1311729 i牛月日修正替換頁; 該三角形幾 形本體,並且會指示資料管理 何資料,該資料可被拷貝至快取記憶體88並且於本體描述 符表78中進行參考,如級1所示。然而,此時,執行緒控 制器56及數值管線可能仍然正在執行其它的執行緒。 級2中,級剖析器82可將快取記憶體88中已載入的 三角形幾何資料傳送至具有執行緒控制器56的數值管線 之中,用以於此非限制性範例中進行隱面消除(backface culling)。所生成的資料可被儲存於快取記憶體88之中, 如級2所示,而經過更名的三角形本體ID則會保留在本體 描述符表78之中。 級3中,具有執行緒控制器56的數值管線可對該等頂 點資料本體進行處理,如上述,其可能係起因於該級剖析 器82參考該本體描述符表78的結果,俾使該資料管理移 動機制52將該位址資訊傳送給可能正在處理該等頂點本 體的另一個執行單元。級4中(第7圖),目前被儲存在快 取記憶體88之中的該等三角形頂點屬性會透過執行緒控 制器56在數值管線中被執行以便實施三角形修剪試驗/分 割作業。同樣地,所生成的資料可被儲存於快取記憶體88 之中,而已被佇列的登錄項則仍然保留在本體描述符表78 之中。 繼續此非限制性範例,級5作業包含級剖析器82將該 本體描述符表78與執行緒控制器56及數值管線中的某項 小型三角形作業以及某個單像素三角形設定作業產生關 聯。快取記憶體88會儲存和單像素三角形及少於一個像素 31 ' 1311729 「一_____— I年月0修正替換頁 的三角形有關的資料。如三角形有關的 • 生成資料會於本體描述符表78中被參考,因而可由級剖析 . 器82將一角落傳送至資料管理移動機制52。換言之,可 由資料傳輸通信系統13匯流排將該生成的三角形幾何資 ‘ 料轉送至該全域散佈器12或是轉送至另一執行單元以供 • 進一步處理。如上述,視欲被執行的微指令的數量及欲移 動的資料大小而定,每一級可能會耗用數個時脈循環。 第8圖與第9圖為像素處理序列中該物件導向架構模 型10的互動示意圖。如第8圖所示,第1圖的物件導向架 構模型10的全域資源可於級0中在全域散佈器12的輸入 頂點缓衝器與索引緩衝器46中建立一輸入像素本體。此本 體產生作業亦會發生於佇列快取控制器51之中,以便於本 體描述符表78中產生一像素本體ID以及於快取記憶體88 中分派像素記憶體,如級0所示。此時,執行緒控制器56 及數值管線可能正在執行其它的執行緒。 不過,級1中,級剖析器82會透過其級剖析器表於該 本體描述符表中擷取該像素本體ID,以便將快取記憶體88 中的該像素資料傳送至執行緒控制器56及該數值管線,用 : 以於此非限制性範例中進行像素内插設定運算。所生成的 資料會被送回快取記憶體88之中,作為像素内插參數。另 外,級剖析器82會於級1中提示該和此經更改資料有關的 像素本體ID。 級2中,級剖析器82會於本體描述符表78中擷取該 像素本體ID,以便將快取記憶體88中的該等像素内插參 32 1311729 〜一 ________________ 丨 數傳送至數值管線中 ι!ίΐ!5 運算。所生^ '绪㈣1156 ’用以進行ζ内插 .ΐ㈣㈣=改資料會被送回快取記憶體88之中, 符表78之_财將該像素切ID㈣排顺本體描述 假使糊定體實嫌, 的話,那麼便可省=早元記憶體21來進行z内插 包器50接著便接。=非限制性範例中,像素封 資料。 了直接從该2内插單元(圖中未顯示)中接收 傳送此非限制性範例,可利用該資料傳輸系統來 動機二指示級剖析器與該資料管理移 級4中(第9圖),級剖析器82可獲取該像素本體ID, 以便對快取記憶體88中的資料實施紋理内插運算,其可能 包括X、Y、Z的再包裝内插參數及遮罩資料資訊。經此作 業之後’級4便可將像素封包資料儲存於快取記憶體狀之 中。在將經處理資訊轉送至其它執行單元以於級5中進行 處理時可由資料傳輸通信系統13來接收紋理位址資料。視 紋理的數量及像素描影器的複雜度而定,可以任意順序來 複裝級4、5、6然而’如級6所示’可於紋理過濾、及,或 像素描影運算中的顏色内插中來變更快取記憶體88中的 像素封包資料,其方式如上述。於最後一級中,如第9圖 所不’級剖析器82會將該像素本體m導向資料管理移動 機制52 ’以便從該執行單元中轉送最後的像素資料以供進 33 1311729 步處理及/或顯 油.·%/1 i S修正替換頁
^***丨 I Τ-ΠΙ II ι^ιι,ιιμιι— _ I 不 和/二~1所述’該全蜮散佈器12可分派-頂點、三角r ::的素本體到-個或多個執行單元中進行處理,缺而: =的該全域散佈胃點、三 ;: =個或多個執行單元時,至少有另 域散佈器12根據先前決定之偏好來做分派。 該王 =〇圖為—非限制性範例流程圖1〇1, 佈器12及第1圖的執行單元之間分派 ,體'第圖中’於步驟S104處會在全域散佈器孑2 至描、會(draw;)命令,其會促全域 入封包。假使該三角形輸入封包含有索= β』王域散佈11 12中執行步驟S1G6,以便針對所: 的三角形封包來存取伽描述符表43。 料所收到 假使全域散佈器12判斷出該等和該三 的頂點位於其中一執行單元中的 =:相關 生一區域參考值(步驟難);不過,假使全===產 斷出該等和该二角形封包相關的頂點位於多個執行列 的話=域散佈器12便可產生一全域參考值(步執驟·^中 以便能,平行絲料多個執行單元中的資料處理。)’ 視該等頂點究竟係位於其中—個或是複數 订早凡中而定,全域散佈器12會從步驟31〇8或步 執 前進至步驟S115 ’該步驟可運作用以定義執㈣109 包所需要的最小資源數量。除了源自步驟_4的;2封 以外,步驟s m中還會考慮到資料,俾使可為該^角形= 34 1311729 __, gLs月i I修正#換一 包分派正確的資源數量。另外,#藏還會考慮到資 -料和用於執行該三角形封包的邏輯訊框結構有關的資料。 . 如步驟S115所示,於確定供執行用的最小資源數量 後,該全域散佈器12便會於步驟S118處產生一本體分派 > 要求。此本體分派要求包含步驟S115處所產生之欲被拷貝 -的資料量,以及同樣源自步驟S115的記憶體覆蓋範圍。本 體分派要求步驟S115還可接收一份經定義的候選執行單 元清單,用於接收該本體分派要求,以及欲被執行之本體 類型的優先權索引。 如步驟S120所示,全域散佈器12會檢查第一候選執 行單元的狀態,其可依照步驟S111中定義的候選執行單元 清單及/或和欲被執行之本體類型有關的優先權。假使該第 一候選執行單元為該經分派本體的可用資源相配者的話, 全域散佈器12便會傳送一本體分派要求給該第一執行單 元,如步驟S126所示,而後便會等待於完成之後接收該執 行單元的結果。於該本體被分派之後,全域散佈器12便會 返回步驟S104,用以接收一下一個三角形描繪命令。 : 不過,假使該第一候選執行單元並非步驟S118中所分 : 派的本體的可用資源相配者的話,那麼全域散佈器12便會 尋求第二候選執行單元,如步驟S122所示。假使此第二候 選執行單元為可用資源相配者的話,便會執行步驟S126, 如上述。不過,假使該第二候選執行單元並非相配者的話, 那麼全域散佈器12便會尋求第三候選執行單元,如步驟 S124所示。視此單元是否為相配者而定,全域散佈器12 35 1311729 頁 可能會尋求一或多個額外的候選執行單元,直到發現適當 的候選相配者以便分派欲進行處理的本體為止。 熟習本技術的人士將會瞭解,第10圖中所述的過程不 僅適用於三角形封包,亦適用於頂點封包及像素封包。不 過,於每種實例中,全域散佈器12均會如上述般地選擇一 候選執行單元。 前面說明僅供解釋與說明之用。其並無意包攬無遺、 或將本發明限制於所揭示的刻板形式。依照上面教授内容 即可進行大幅修改或變更。不過,本文所討論的具體實施 例係經過選擇且其說明係為解釋本文所揭示的原理,俾使 熟習本技術的人士可藉由各具體實施例中的揭示内容以付 諸實行,而各種修正例亦適用於本發明所涵蓋之特殊用 途。所有此等修正例與變化例均在隨附申請專利範圍所決 定之本發明的公正合法範疇内。 參考下面圖式便可更瞭解本發明的許多態樣。該等圖 式中的組件並不必依比例縮放,其重點在於清楚地圖解本 發明的原理。 【圖式簡單說明】 第1圖為本發明的物件導向架構的抽象硬體模型示意圖。 第2圖為第1圖的物件導向架構模型中的三層動態排程示 意圖。 第3圖為利用和第1圖的單元相關的額外作業單元來顯示 第1圖的物件導向架構模型的示意圖。 第4圖為第3圖的佇列與快取控制器示意圖。 36 1311729 til------,I— Λ*~\ 第5圖為由第1圖的物件導向架構來執行的頂點處理序列 中該物件導向架構互動的執行流程圖。 第6圖、第7圖為第1圖模型的三角形處理序列的物件導 向架構互動示意圖。 第8圖、第9圖為第1圖模型的像素處理序列的物件導向 架構互動示意圖。 第10圖為一非限制性範例流程圖,圖中描繪的係於該全域 散佈器及第1圖的執行單元之間分派一三角形本 【主要元件符號說明】 10 物件導向架構模型 12 全域散佈器(全域排程及任務及含表的分配器) 13 資料傳輸通信系統 15 執行單元(執行方塊佇列及快取控制器) 17 執行單元 19 執行單元 21 固定功能硬體與快取單元記憶體 23 共同I/O服務與大量快取記憶體 32 流管線執行緒控制器 34 資料移動控制器 41 基礎物件表 43 頂點描述符表 46 輸入頂點緩衝器與索引緩衝器 48 執行單元 49 執行單元 37 1311729 g—-uu..., »..»1.. 98·|变1 β日修正麵頁丨 50 像素封包器 51 佇列快取控制器 52 資料管理移動機制 54 區域快取記憶體 56 執行緒控制器 57 流動數值管線及暫存器單元 61 微磚旁通式佇列 63 重排序緩衝器 64 輸出微磚產生器 71 通信單元 73 輸入 75 輸出 77 控制器 78 本體描述符表(具有控制氣ΡΒ) 79 CTRL匯流排 82 級剖析器 83 級指標表 . 85 I/O及移動描述符暫存器表 87 資料管理微程式記憶體 88 快取記憶體 91 數值處理描述符暫存器表 94 位址更名邏輯表 101 非限制性範例流程圖 步驟S104檢查輸入三角形封包 步驟S106檢查頂點描述符表 38 1311729 9δ1-1 月日修正替換頁 WMjjpmil;·,/.···—......—' —'* " " 步驟S108產生區域參考值 步驟S109產生全域參考值 步驟Sill定義候選執行單元以供分派 步驟S115定義最小資源量 步驟S118產生本體分派要求 步驟S120檢查第一候選執行單元的狀態 步驟S122檢查第二候選執行單元的狀態 步驟S124檢查第三候選執行單元的狀態 步驟S126傳送本體分派要求給執行單元 39

Claims (1)

13 Π 729 案號 095104660十、申請專利範圍: 98 年 3 月 16 曰_________) 修正本 1. 一種具有一散佈器的平行圖形處理器,該散佈器會 被耦合至複數個指令執行組件,該散佈器包括: 用於保有每個該等複數個指令執行組件中每一者之狀 態資訊的邏輯電路; 用於依照所保有的狀態資訊及欲被處理的圖形本體類 型來建立該等複數個指令執行組件中每一者之優先權的邏 輯電路,以便接收欲被處理的圖形本體; 用於將一要求傳送給該等複數個指令執行組件中其中 一選定指令執行組件的邏輯電路,以便於該選定指令執行 組件的本體描述符表中分派該欲被處理的圖形本體; 用於將和欲被處理的圖形本體相關連的資料拷貝至該 選定指令執行組件的邏輯電路; 用以於一邏輯表中對將欲被處理至邏輯表中的該選定 指令執行組件的圖形本體進行索引編排的邏輯電路;以及 用於從已經處理過該欲被處理之圖形本體的該選定指 令執行組件中接收指示符號的邏輯電路,其中接著便會於 一顯示器上表現圖形影像並且釋放和該圖形本體相關聯的 資源。 2. 如申請專利範圍第1項所述之具有一散佈器的平行 圖形處理器,其中該所保有的狀態資訊包含和為接受該散 佈器之分配之該指令執行組件之可用性相關聯的資料。 3. 如申請專利範圍第1項所述之具有一散佈器的平行 圖形處理器,其進一步包括: 40 13 Π 729 .源數量的邏輯電=理該仅被處理的圖形本體而要存取的資 ,具有—㈣器的平行 該散佈器進一步=欲被處理的圖形本體係一頂點封包, 電路用=該散佈器的頂點描述符表中分派一本體的邏輯 H利用和舰被處狀_本體㈣ 二:=:分派的本體填入該頂點描述符表之中的邏輯 電路,該編號係由該選定指令執行組件來分派。 =如申請專利範圍第4項所述之具有一散佈器的平行 ㈣’其中_點描述符表含有和該頂點封包中内 3之某群頂點的邏輯位置相M的記錄,該 ,來處理該頂點封包中該群頂點的—或多 = 件中的每一者。 ㈢订、、且 =如申睛專利範圍第4項所述之具有一散佈器的平行 圖f理11 ’其中該頂點描述符表保有和-頂點封包之目 的地貧§孔相對應的資料。 二如申請專利範圍第!項所述之具有一散佈器 圖形处理器’其中該欲被處理的圖形本體係— 包’該散佈器進一步包括: 、 的邏的複數―點的索引 用於擷取該等複數個頂點之本體編號的邏輯,; 41 1311729 •邏輯Ϊ:抽=該等複數個頂點相關聯的垂直元素編號的 _㈣用於將該等複數個頂點的該等本體編號及該等元辛编 號傳送給該選定指令執行組件的邏輯電路。及該“素編 圖形ir器請7項所述之具有-散佈器的平行 圖形器睛=圍第1項所述之具有-散佈器的平行 該散佈器欲被處理的圖形本體係-像素封包, 體二包相關聯的-或多個三角形的本 路。素編唬傳送給該選定指令執行組件的邏輯電 圖形圍第1項所述之具有—散佈器的平行 傳送給作佈盗會依照該預設的優先權將該要求 便會將該要长H行組件不接受該要求的話,該散佈器 行組件。傳达給作為接續候選執行組件的選定指令執 圖形:二申項:述之具有一散佈器的* 傳送給作Λΐ/、/ Υ盗會依照該預設的優先權將該要求 、♦為下-個候選執行組件的一或多個指令執行組 42 1311729 件,直到該等一或多個指令執行組件中至少其中一者接受 - 該要求為止。 . 12.—種用於具有一散佈器之平行圖形處理器的方 法,該散佈器會被耦合至複數個指令執行組件用以處理複 數個圖形本體,其步驟如下: 收集該等複數個指令執行組件中每一者的狀態資訊; 依照所保有的狀態資訊及欲被處理的圖形本體類型來 建立該等複數個執行單元中每一者的優先權,以便接收欲 被處理的圖形本體; 將一要求傳送給該等複數個執行單元中之一選定指令 執行組件,以便於該選定指令執行組件的本體描述符表中 分派該欲被處理的圖形本體; 將和欲被處理的圖形本體相關連的資料拷貝至該選定 指令執行組件; 於一邏輯表中對將欲被處理的圖形本體分配至該選定 指令執行組件進行索引編排;以及 從已經處理過該欲被處理之圖形本體的該選定指令執 :行組件中接收指示符號,其中接著便會於一顯示器上表現 :圖形影像。 13. 如申請專利範圍第12項所述之用於具有一散佈器 之平行圖形處理器的方法,其中該所收集的狀態資訊包含 和為接受該散佈器之分配之該指令執行組件之可用性相關 聯的貢料。 14. 如申請專利範圍第12項所述之用於具有一散佈器, 1311729 之平行,形處理器的方法,其進_步包括下面步驟: 量 、、疋為處理該欲被處理的圖形本體而要存取的資源數 之^專利範圍第12項所述之用於具有一散佈器 -頂理器的方法,其$該欲被處理關形本體係 頂點封包’财法進—步包括τ面步驟: 在該散佈器的頂點描述符表中分派-本體;以及 F將該欲被處理之_本體相Μ的-索引及-編 由該選定指令執行組件來=點描述符表之中,該編號係 之平圍第15項所述之用於具有一散佈器 頂法’其中該頂點描述符表含有和該 邏輯位Ϊ對廄I之某群頂點的邏輯位置相關聯的記錄,該 個於八、‘、J來處㈣頂關包巾該群了諸的-或多 個才曰令執行組件中的每一者。 夕 之平12項所述之用於具有-散佈器 -三角形封包,c其中該㈣處理的圖形本體係 該方法進一步包括下面步驟: 使用矛該一角形封包相關聯的複 , 擷取該等複數個頂點的本體編號; 的索引, 抽出和該等複數個頂點相_的 〜將該等複數個丁貝點的該等本體編號及該 达給該選定指令執彳地件。 寺兀素編旒傳 】8.如申請專利範圍第17項所述之用於具有—散佈器 44 1311729 j平行圖形處理器的方法,其中該散佈器會將位址資訊 -达給㈣分配絲處理·形本體的敎指 .該位址資訊對應於被分配用來處理和該等一或多個三角形 封包相關聯之頂點資料的一或多個其它指令執行址件。 之平= 开^\利=第12項所述之用於具有一散佈器 千仃處理㈣方法,其中該欲被處理 一像素封包,财法進-步包括τ时驟··料本體係 將^該等像素封包相關聯的—或多個三角形的本體編 號及7L素編號傳送給該選定指令執行組件。 20.如申請專利範圍第12項所述之用於具有 之平行圖形處理器的方法,其進一步包括下面步驟益 執行=斤,?優先權將該要求傳送給作為下-個候選 tit::或多個選定指令執行組件,直到該等-或多 7執行組件中至少其中一者接受該要求為止’ 45
TW095104660A 2005-08-08 2006-02-10 Global spreader and method for a parallel graphics processor TWI311729B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/199,459 US20070030280A1 (en) 2005-08-08 2005-08-08 Global spreader and method for a parallel graphics processor

Publications (2)

Publication Number Publication Date
TW200707333A TW200707333A (en) 2007-02-16
TWI311729B true TWI311729B (en) 2009-07-01

Family

ID=37717227

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095104660A TWI311729B (en) 2005-08-08 2006-02-10 Global spreader and method for a parallel graphics processor

Country Status (3)

Country Link
US (1) US20070030280A1 (zh)
CN (1) CN1912924A (zh)
TW (1) TWI311729B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569279B2 (en) 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310722B2 (en) * 2003-12-18 2007-12-18 Nvidia Corporation Across-thread out of order instruction dispatch in a multithreaded graphics processor
US8031208B2 (en) * 2005-12-26 2011-10-04 Kabushiki Kaisha Toshiba Drawing apparatus and method for processing plural pixels in parallel
US8766995B2 (en) * 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8884972B2 (en) * 2006-05-25 2014-11-11 Qualcomm Incorporated Graphics processor with arithmetic and elementary function units
US8869147B2 (en) * 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) * 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US8933953B2 (en) * 2008-06-30 2015-01-13 Intel Corporation Managing active thread dependencies in graphics processing
US20100123717A1 (en) * 2008-11-20 2010-05-20 Via Technologies, Inc. Dynamic Scheduling in a Graphics Processor
US8056080B2 (en) * 2009-08-31 2011-11-08 International Business Machines Corporation Multi-core/thread work-group computation scheduler
US8817031B2 (en) * 2009-10-02 2014-08-26 Nvidia Corporation Distributed stream output in a parallel processing unit
US8810592B2 (en) * 2009-10-09 2014-08-19 Nvidia Corporation Vertex attribute buffer for inline immediate attributes and constants
US9329893B2 (en) * 2011-12-14 2016-05-03 Advanced Micro Devices, Inc. Method for resuming an APD wavefront in which a subset of elements have faulted
US9317331B1 (en) * 2012-10-31 2016-04-19 The Mathworks, Inc. Interactive scheduling of an application on a multi-core target processor from a co-simulation design environment
GB2521155B (en) 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configuring thread scheduling on a multi-threaded data processing apparatus
GB2521151B (en) * 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configurable thread ordering for a data processing apparatus
US10114825B2 (en) * 2014-03-14 2018-10-30 Sap Se Dynamic resource-based parallelization in distributed query execution frameworks
DE102015115605A1 (de) * 2014-09-16 2016-03-17 Jeffrey A. Bolz Techniken zur Weiterleitung von Abhängigkeiten in einer API
KR20170025099A (ko) * 2015-08-27 2017-03-08 삼성전자주식회사 렌더링 방법 및 장치
US10185568B2 (en) 2016-04-22 2019-01-22 Microsoft Technology Licensing, Llc Annotation logic for dynamic instruction lookahead distance determination
US10664942B2 (en) * 2016-10-21 2020-05-26 Advanced Micro Devices, Inc. Reconfigurable virtual graphics and compute processor pipeline
US10559056B2 (en) * 2017-06-12 2020-02-11 Arm Limited Graphics processing
US10593094B1 (en) * 2018-09-26 2020-03-17 Apple Inc. Distributed compute work parser circuitry using communications fabric
CN118606034A (zh) * 2024-08-07 2024-09-06 北京壁仞科技开发有限公司 一种流调度方法、计算机设备、介质以及程序产品

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5627879A (en) * 1992-09-17 1997-05-06 Adc Telecommunications, Inc. Cellular communications system with centralized base stations and distributed antenna units
US5544161A (en) * 1995-03-28 1996-08-06 Bell Atlantic Network Services, Inc. ATM packet demultiplexer for use in full service network having distributed architecture
US5699537A (en) * 1995-12-22 1997-12-16 Intel Corporation Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions
US5963209A (en) * 1996-01-11 1999-10-05 Microsoft Corporation Encoding and progressive transmission of progressive meshes
US6345287B1 (en) * 1997-11-26 2002-02-05 International Business Machines Corporation Gang scheduling for resource allocation in a cluster computing environment
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6809734B2 (en) * 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6826662B2 (en) * 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US6985150B2 (en) * 2003-03-31 2006-01-10 Sun Microsystems, Inc. Accelerator control unit configured to manage multiple hardware contexts
US7233335B2 (en) * 2003-04-21 2007-06-19 Nividia Corporation System and method for reserving and managing memory spaces in a memory resource

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569279B2 (en) 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing

Also Published As

Publication number Publication date
TW200707333A (en) 2007-02-16
CN1912924A (zh) 2007-02-14
US20070030280A1 (en) 2007-02-08

Similar Documents

Publication Publication Date Title
TWI311729B (en) Global spreader and method for a parallel graphics processor
TWI310527B (en) Method for processing vertex, triangle, and pixel graphics data packets
US7659898B2 (en) Multi-execution resource graphics processor
US7659899B2 (en) System and method to manage data processing stages of a logical graphics pipeline
US11080051B2 (en) Techniques for efficiently transferring data to a processor
CN109978751A (zh) 多gpu帧渲染
US20230038061A1 (en) Convergence among concurrently executing threads
US11502867B2 (en) Injection limiting and wave synchronization for scalable in-network computation
CN108292239A (zh) 使用硬件队列设备的多核心通信加速
CN104025185B (zh) 用于使用gpu控制器来预加载缓存的机制
KR20120054027A (ko) 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법
DE102021102589A1 (de) Berechnungsgraph-optimierung
CN106104488A (zh) 用于支持任务间通信的基于硬件的原子操作
TW201308211A (zh) 虛擬繪圖處理單元
WO2017039865A1 (en) Facilitating efficient scheduling of graphics workloads at computing devices
TW201142740A (en) System and method for memory access of multi-thread execution units in a graphics processing apparatus
TW201439770A (zh) 透過貼圖硬體執行記憶體存取操作之技術
TWI525438B (zh) 透過貼圖硬體執行記憶體存取操作之技術
US20230289292A1 (en) Method and apparatus for efficient access to multidimensional data structures and/or other large data blocks
US11907717B2 (en) Techniques for efficiently transferring data to a processor
CN110100274A (zh) 具有降低功率渲染的混合现实系统
CN107180010A (zh) 异构计算系统和方法
CN112749120A (zh) 将数据有效地传输至处理器的技术
CN116339739A (zh) 用于在图形处理单元上执行的内核源适配
CN103197918B (zh) 多通道时间片组