TWI310527B - Method for processing vertex, triangle, and pixel graphics data packets - Google Patents
Method for processing vertex, triangle, and pixel graphics data packets Download PDFInfo
- Publication number
- TWI310527B TWI310527B TW095104665A TW95104665A TWI310527B TW I310527 B TWI310527 B TW I310527B TW 095104665 A TW095104665 A TW 095104665A TW 95104665 A TW95104665 A TW 95104665A TW I310527 B TWI310527 B TW I310527B
- Authority
- TW
- Taiwan
- Prior art keywords
- processing
- data
- ontology
- vertex
- data packet
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor 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)
Description
1310527 案號095104665 97年11月26曰 修正頁 九、發明說明: 叱傲替換頁 【相關申請案交互參考】 本申請案和下面共同待審的美國專利申請案有關:(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,459號,其標題為「GLOBAL SPREADER AND METHOD FOR A PARALLEL GRAPHICS PROCESSOR j 〇 本文以引用的方式將上面每一申請案完整併入。 【發明所屬之技術領域】 本發明係關於一種電腦處理器及電腦網路的架構,更明確 地說,係關於一種用於產生及動態排程多重流動資料處理任務 的系統與方法,用以於一平行處理器中來執行。 【先前技術】 微處理器設計人員與廠商不斷地專注在改良微處理器效 能,以便執行愈加複雜的軟體’進而提高功效。雖然改良製程 1310527 可藉由縮小矽幾何大小而有助於提高微處理器的迷产,不過, 處理器的設計方式,尤其是指令執行核心’仍然關係到處理器 效能。 列技術(instruction 有許多微處理器皆使用指令管線排 pipelining)來提高指令總處理量 一指令管線可利用一種組合 線(assembiy line)方式經由複數個不同的指令執行相來同時處 理數項指令。以非限制範例為例,可以將複數個個別的功能單 元’例如解解元,進一步管線排列成數個硬體級,每一級均 會在-分離的指令中實施該指令解碼過財的某道步驟。因 此,利用多個不同的管線級便可深化處理器硬體管線。 用於改良指令執行速度的另一種方法稱為「亂序 (〇f 〇rder)」執行法。亂序執行法執行指令的順序不同於編 潭裔發送該等指令的順序,以便縮短含有該等指令之程式的整 體執行等待時間。亂序指令執行法的其中一種方式係使用被稱 為 Γ暫口。 子器把分板(register scoreboarding)」的技術,其中,指 令會被依序發送,但是卻以亂序的方式來執行。亂序排程的另 一種形式為運用被稱為「動態排程」的技術。對提供動態排程 的處理器來說’甚至會對發送指令給執行硬體的順序進行重新 排私’使其異於原來的程式順序。雖然該等指令執行結果可能 亂序’不過謗等指令實則已退出程式順序。尚且,亂序技術中 1310527
被分開使用或一起使用。 動恶排程平行指令執行可能包含特殊的關聯表,用以登記 指令與功能單元的狀態以及某項特殊指令結果作為所規定指 令之輸入運算元的可用性。排程硬體會使用該些表來發送、執 行、以及完成個別的指令。 動態排程平行指令執行的範#為指令層平行度(instructi〇n level parallelism,ILP),該項技術已經延伸至多重執行緒(超執 行緒處理或是同步超執行緒處理…multane〇us multithreading,SMT))。此項技術提供硬體辅助的多重執行緒 派發及執行,從而於一平行功能單元中可在每個時脈中處理多 重指令。動態排程硬體可從該等多重現役執行緒中提供同步指 令發送。 排程硬體可利用記分板來登記執行緒與指令狀態,以便追 縱指令發送與執行的相依性並且定義指令發送與執行的時 間。此外,執行緒可能會因為冗長的等待時間快取錯失或是其 方反 rti ife itt 能、l/i 台留·iJ 1,你 以一非限制性範例為例,該記
環中更新它們的欄位來進行互動。為傳钱 為傳送某道指令的級與變化 它的I/O原因而被暫止。不過,以一非阳 所組成 1310527 ,月2 Θ修正替換頁 狀‘%,應該滿足特定的條件實行特定的動作 暫存器更名係在已經預設架構暫存器名稱空間 (architecture registei· namespaee)咖來克服名稱相依性問題的 另-項技術’其允許複數個指令被並行執行。根據暫存器更名 技術,每當某—暫存器分配到魏值時,便可分派—新的针 器。當解碼某道指令時’硬體便會檢查目的地·,並I 命名該架構暫存器名稱空間。以―非限制範例為例针 ㈣分配到某數值的話,便可分派-新的暫存器複製體t :在後面指令中對暫㈣R3所進行的所有讀取作業則均會被 ―向複製體R3’(以複製名稱取代架構名稱)。 繼續此非限制性範例,當暫存器R3新分配到某數值的 話,便可分派另—暫存器複製體R3”,而後面的 被導向新的福值則均會 、。魏體R3。此過程會針對所有輸入指令來進行。 此過私不僅會消除名稱相依性,還可讓該處理ϋ看似具有更夕 =暫存器並且可提高指令層平行度’進而可操作更多的平行單 重排序緩衝器(reorder buffer)亦可能會使用暫存器更名技 以便擴充架構暫翻空間並域生和不同命令相關聯之同 暫存盗的多重拷貝。如此便能夠讓札序執行具有有序的結 果。 、、口 1310527 月,邊修正替換頁
U 的重I::某蝴,功能單元相關聯 ' : 緩衝窃登錄項。該被解碼指令的目的地暫存器可处與 •該破分派的重排序緩衝器登錄項有關,其會導致更改該暫存器 的名稱。該處理器硬體可產生一標籤以唯一識別此結。 籤可儲存於該重排序緩衝器登錄項之中。當後續的指Q令來= 該更名目的地暫存器時,其便可接收該重排序緩衝器登錄項中 斤儲存的數值或標籤,端視是否收到該資料而定。 重排序緩衝器可被組態成一内容定址式記憶體㈣細 jd腦able memory,cAM),其中可利用該標籤進行資料搜 尋。應用中,後續指令的目的地暫存器編號可被套用至一重排 序缓衝器’並且亦可確認含有此暫存器編號的登錄項。確認之 後,便可傳回已算出的數值。假使該數值尚未算出,便可傳回 上述的標籤來取代。假使有多個登錄項含有此暫存器編號的 話’那麼便可蜂認最新的登錄項。假使沒有登錄項含有該必要 的暫存器編號的話,那麼便可❹㈣暫存器槽。當結果產生 時,則可將該結果與標籤散佈給所有的功能單元。 另-種處理方式包含即時排程及多重處理器系統。此組態 包含複數個鬆散耦合的MIMD微處理器,每個處㈣均具有自 己的記憶體與卯通道。於該些系統上可同時執㈣項歸及 子任務(執行緒)。不過,該等任務可能包含特定排序_的同 9 1310527 步化,以保持預期的處理處 不同的同步化。 各種處理型樣可能需要 .二指令層平行度處理器不同的係於執 =〜行處理器分配(資源分派)。利用指令二t 著,為分散所專屬的功能單元中其中—部份可能重複,其意謂
的數旦及"行的指令分配非常簡單’其相依於可㈣㈣ 的數里及指令類型。 J 常係^的對MIMD型的多重處理器系統來說,所有處理器通 ,、且具有比較複㈣任務分配t略。至少1中 種非限制方式係將該MIMD结構_ h 至八中一 將處理器看_ 11群,其意謂著, 可用性來將Γ並且相依於記憶體與計算資源的 性來將處理分配給處理ϋ。 一種為靜離I ^有兩種方法可用來分散任務與執行緒。第 殊處理哭:刀配法’虽母種任務或執行緒被預先分配給某個特 配:I某群處理器時便會進行此法。第二種組態為動態分 來脾4述者雷同,本法需要相依於可用魏及任務優先權 ::務刀配給該處理器群中的任何處理器。於此組態中,該 重處理裔群可能具有特殊的派發線索,其中多項任務及多項 於此t等待刀配及執行’並且供完成1 /0事件使用。另外, Ί ,執行緒係任務的—部份,而某些任務可分割成數 1310527 年月曰修正替換頁 個執行緒,以便利用特定序來平行執行。因 此,該等執行緒通常可與該處理的其餘部份分開執行。另外, 應用軟體可能係一組執行緒,該等執行緒會在相同的位址空間 旦使用不同的處理器來同時合作及執行。因此,於不同處理器 上同時執行的執行緒可產生動態的效能增益。 於一多重處理器組態中,可依照負載共享技術來達成執行 緒排程。負載共享可能需要將負載均勻地分散於該微處理器群 中的各個微處理器之上。如此方可確保沒有任何微處理器係閒 置的。 多重處理器執行緒排程可能會使用上述某些靜態排程技 術,例如當將某個執行緒分配給某個特定處理器時。不過,於 將數個特定的執行緒分配給某個特定處理器時,其它的處理器 可能會閒置,而該被分配的處理器則相當忙碌,從而導致該已 分配的執行緒必須閒置等待其所分配到的處理器有空為止。因 此,靜態排程經常會造成處理器效率不彰。 處理器的動態排程可以物件導向的圖形管線來實行。物件 係一種結構性資料項,代表沿著一邏輯管線往下移動的事物, 例如三角形的頂點、貼片(patch)、像素、或是視訊資料。於邏 輯層處,數值資料與控制資料均可為該物件的一部份,不過實 際的實行方式則可分開處理兩者。 11 1310527 97. ft *哽正替換頁 於一圖形模型中,有數種物件可於該資料流中進行處理。 第一種為狀態物件,其含有硬體控制資訊及描影碼(shader ' code)。第二,可處理頂點物件,其含有和該數值控制資料相關 的數組頂點。第三,於該資料流模型中可處理基本物件 (primitive obj ect),其含有和基本物件有關的數組數值資料與控 制資料。更明確地說,一基礎物件可能含有貼片物件、三角形 物件、直線物件、及/或點物件。第四,碎形物件可為該資料 流模型的一部份,其含有和像素有關的數組數值資料與控制資 料。最後,於資料流模型中亦可處理其它類型的物件,例如視 訊資料。 每種物件均可具有可於其上實行的一組可能作業以及一 (邏輯電路上)固定的資料佈置。物件可能具有不同的大小與狀 態,其亦可能被稱為複數層或複數級,用以代表該等物件於管 線處理中所抵達的位置。 以一非限制範例為例,可將某物件的各層例示在一三角形 物件上,此物件剛開始具有三個頂點,指向頂點幾何與屬性資 料的實際位置。當解出該等參考值時(檢查快取以及於必要時 從API緩衝器中擷取資料),便可更新該物件層,俾使經由其 它級來傳送該物件。經更新的層通常可反映該物件結構中特定 資料的可用性,以便進行立即處理。大部份情況中,一經更新 12 1310527 的層會包含前面的層。 々熱習本技術的人士便會瞭解,一物件通常會有兩種佈置。 A '、、輯佈置,其包含所有的資料結構。從物件產生時刻起 束為止,該邏輯佈置可能會保持不變。第二種物件佈置為 實體佈置,立3 _ -、.>、員不的係可供立即處理使用的資料結構,其可運 作用以匹配最上層中的邏輯佈置。 布置與實體佈置兩者均可以訊框及缓衝器-邏輯訊框 及貝體緩衝器來表示。邏輯訊框可被映射至實體緩衝器,以便 讓資料結構可供立即處理使用。每個物件—開始均含有數個邏 輯訊框’而其中—個訊框可被映射至—實體緩衝器。用於後級 中的所有其它訊_可雜映射,以便節省晶片上的記憶體資 ,。尚且,訊框與緩衝器兩者均可具有可變的大小,彼此間可 彈性映射。 ~物件可能會參考系統巾其它物件㈣保有的資料。管線 尽惰評估技術(Pipeline lazy evaluation scheme)會追蹤該些相依 11 ’並且使用該些相依性來計算隨選物件(〇bject〇nde_d)内 所儲存的數值。相同類型的物件可於平行獨立的線索中來處 理。或者,可產生一種複合物件,其含有數個頂點物件、碎形 物件、或是基礎物件,以便於SIMD模式中進行處理。 對圖形處理應用而言,上述的特點具有歷史内含固定函數 13 1310527 % fi $ if修正替換頁 u硬體型官線解決方式。不過’該些線性解決方式經常 .會因該圖形管線的靜態組態而導致效率不彰。當如上述般某個 特殊級的頻寬於訊框產生的執行時間期間沒有改變時,便會造 成該處理益效率不彰且出現閒置時間,從而降低整體的效率。 於涉及多個平行處理器的應时,效率不彰的情形會越加惡 化0 因此’目刖為止,必須要解決由複數個平行多重執行緒處 理:所、、a成的MIMD結射動態產生及多重邏輯圖形管線執 仃g理的問題。吾人還進一步於平行處理中需要有改良的資源 利用率,以達更局的效能,此問題先前可能係肇因於不良分派 及不良排程協定分辨率。 【發明内容】 本發明係關於-種於—邏輯管線中處理複數個圖形資料 封包的方法,其包含頂點本體、三角本體、以及像素本體。本 發明提供和頂點、三角形、以及像素有關的多重資料串處理任 務的動態齡。财之,—平行處理ϋ會㈣平行處理該也本 體。 該處理頂點、三角形、以及像素本體的方法包括於一或多 個執行車元中為頂點、三角形、或像到視作業而定)的圖形資 料封包分派一本體。兮·私/_ 一人 執仃早7L會從一全域散佈單元中接收— 14 1310527 年月日修正替換頁 分配以處理該等(頂點、三角形、或像素的)圖形資料封包。一 級剖析器會保有由複數個指標參考值所組成的指標表,其中一 特定指標會指向一已分派的本體。當要移動資料進行處理時, 該級剖析器便會將一指標傳送至一資料移動器,且該資料移動 器會將部份圖形資料封包載入一記憶體之中。後面可能有數個 處理級,俾使可對該等圖形資料封包執行一或多個浮點或整數 指令,由一執行緒控制器來控制。於完成該等圖形資料封包的 計算後,便可刪除該經分派的本體,而且該等圖形資料封包可 被送至另一執行單元或該全域散佈器中。 熟習本技術的人士於檢視下面圖式與詳細說明時便可明 白本發明的其它系統、方法、特點、以及優點。吾人希望所有 此等額外系統、方法、特點、以及優點涵蓋於本說明之中,涵 蓋於本發明内容之中,並且受到隨附申請專利 範圍的保護。 【實施方式】 不同於靜態排程的係如上述,於執行緒執行期間可運用動 態排程,致使可由該應用軟體來動態變更某處理中的執行緒數 量。動態排程還可促成閒置處理器分配以執行特定的執行緒。 此方式可改善可用處理器的運用情形,所以便可改善系統的效 率。 15 1310527 hii 第1圖為本發明的物件導g架構模型抽象硬 體示意 圖。第1圖的物件導向架構模型1〇包含—具有一群執行單元 的通用處理部份’其可提供區域排程、f料交換、以及本體或 是物件處理。 第1圖的物件導向架構模型10可為以動態排程指令執行 概念為主的平行圖形處理來致動動態排程,其可使用於超純數 (superscalar)機之中。此概念可延伸至數個執行緒及數個微執 行緒’其為欲於圖形資料物件上執行的碎形碼。如本文所述, 該動態排程方式會映射至邏輯_管線,其巾每個部份均會處 理-特定類型的圖形資·件並且執行含有數個微執行緒的 執行緒。更明確地說,該圖形管線的粗粒級可匹配某—層物件 種類(例如頂點、幾何形狀、以及像素)上的執行緒,其中細粒 級則相當於微執行緒。 物件導向架構模型10包含一全域排程 裔(global scheduler) distributor) . T X t ^ n (gl〇bal spreader^。全域散佈g 12具有複數個附屬的頂點與索引流 緩衝器 一頂點物件表、以及一基礎物件表, 明(第3圖)。全域散佈器 耦合至物件導向架構模型 下文將更詳細說 士所知悉者。該資料傳輸通信系統 12會透過一貢料傳輸通信系統13被 10的各個組件,如熟f本技術的人 13會耦合該架構的所有組 16 1310527 士 ·年M 2¾资正替類 件,如第1圖所例示般。 — 執行單元15、17、19會提供區域排程、資料交換、以及 本體處理,由全域散佈器12來分配。下文將更詳細地討論執 行單元15、17、19的邏輯構造及作業。 固定功能硬體與快取單元記憶體21包含用於實行圖形處 理之固定功能級(例如網格化、紋理處理、以及輸出像素處理 部份)的專屬圖形資源。此外,第1圖的物件導向架構模型10 中内含一共用I/O服務與大量快取記憶體23,其可被配置成包 括一命令流處理器、記憶體與匯流排存取、複數個大量快取、 以及一顯示單元,以上均為非限制性範例。 雖然如下文更詳細討論般,全域散佈器12可運用資料傳 輸通信系統13與一或多個執行單元15、17、19進行溝通;不 過,該等執行單元15、17、19亦可根據全域散佈器12分配給 該等執行單元執行的各項任務與處理透過資料傳輸13來彼此 溝通。 全域散佈器12可與物件導向架構模型10中所有的執行單 元進行互動,並且利用時脈分辨率來追蹤該等執行單元15、 17、19中可用的資源。全域散佈器12的任務分散組態可完全 地程式化並且可依據每個執行單元之設定檔的逐個訊框監視 結果來進行調適。 17 1310527 f 止*換頁 第2圖為第1圖的物件導構模型^ 一士 丹保I 中的三層動態排 .程示思圖。於全域排程層處,全域散佈器12可配合各表格運 ·=!涉=體產生與邏輯訊框分配,以及涉及分散至各 執订早%5、17、19及實體記憶體分派⑽全域排程層中)。 因此,如上討論般,全域散佈器12會與第w的所有執行單 70 15、17、19進仃互動,其涉及到區域排程層,如第2圖所 示。於區域排程層處,—區域任務排程器包含—區域記分板 GoWeboa♦該區域記分板包括—具有一級剖析器㈣e P_)的仔列與快取控制器,該級剖析器可經由該等處理管線 (見圖5_9)逐級地推動各本體,於各處理的整個執行期間針對 已更新的狀態本體進行實體記憶體分派。 _於該指令執行馳層處,料執行單元含有—數值流管線 執行緒控制ϋ 32,其會控做崎器82所定義之執行緒的數 值處理。該指令執行層還包含一資料移動控制器^,其可致動 執行多錄行單元中的多重執行緒,並且實行多重通道卯控 制換.之’貝料移動控制器34會將資料傳送給其它執行單 7C’、王域散佈益I2及/或從其它執行單元與全域散佈器】2中 接收資料。 匕3王域排程層、區域排程層、以及指令執行層在内的所 有層均包S硬體控制器來提供具有時脈分辨率的動態排程。再 18 1310527 者,該等全域與區域排程控制器可於計算資源分派中共同合 作。 第3圖為利用和全域散佈器12、執行單元15、固定功能 硬體與快取單元記憶體21、以及共用I/O服務與大量快取記憶 體23相關的額外作業單元來顯示第1圖的物件導向架構模型 10的示意圖。如第3圖所示,全域散佈器12包含一基礎物件 表41(一含有基礎元素之對照值的表)、一頂點描述符表43(所 有執行單元中的頂點分派)、以及一輸入頂點緩衝器與索引緩 衝器46。如上討論般,全域散佈器12係主要的上層排程單元, 其可利用該等執行單元的狀態資訊及接收自該等固定功能硬 體與快取單元記憶體21的資料將工作量分散給所有的執行單 元15、17、19。如第4圖所示,全域散佈器12可與該等執行 單元的區域佇列-佇列快取控制器51進行互動以產生新本體, 進而送入一邏輯管線中。 全域散佈器12會控制所有執行單元間的資料分散作業, 並且運用「生產者-消費者」資料參考的區域性原理。以一非 限制性範例為例,全域散佈器12會試圖利用複數個相關的三 角形本體來分派複數個頂點本體,並且從一特殊的三角形將複 數個像素封包分配給一具有三角形本體資料的執行單元。假使 此特殊的執行單元不具有足夠資源供分派的話,便可將頂點或 19 1310527 r--—ί 年月日修正替換頁 三角形資料拷貝至另一 執魏免 形或像素本體可能已經 於該處被傳送。 " 於至少一非限制性範例中,全域散佈器12可’接收至少四 種輸入要求,用以於該等執行單元中安排處理。首先,全域散 佈器12可接收一頂點封包,由輸入頂點緩衝器與索引緩衝器 46產生。其次,全域散佈器12可接收一三角形封包,由三角 形組合硬體產生。全域散佈器12還可接收由像素封包器49產 生的一像素封包(於至少一非限制性範例中可高達16個像 素),像素封包器49可為固定功能硬體與快取單元記憶體21 的一邏輯組件。以一非限制性範例為例,全域散佈器12可接 收BEZIER貼片(於至少一非限制性範例中為16個頂點),由輸 入頂點缓衝器與索引緩衝器46產生。 對全域散佈器12可接收的每種資料來說,全域散佈器12 可維持及監督該物件導向架構模型10中每個執行單元的各種 控制資訊。於此非限制性範例中,如第3圖所示,該物件導向 架構模型10包含執行單元15、17、19、48以及49。不過,熟 習本技術的人士將知悉,可依照預期的應用而含有更多或較少 的執行單元。不過,如上述,全域散佈器12會保留至少和任 何特定時刻中可用執行單元數量有關的資訊。此外,全域散佈 器12還會保留必須為某種特殊類型之新本體釋放之最小資源 20 131〇527 Γ----------η 年i i月$^、正替換頁 量有關的資訊,其可由一外部驅動器來設定。全域散佈器i2 •還會在接收某項特殊資源方面建立每個執行單元的優先權。於 .至少一非限制性範例中,可針對特定類型的資料及/或本體以 專屬的執行單元來配置物件導向架構模型1G。因此,於此實例 中,全域散佈器12可知悉該些專屬性,以便將特殊資料分配 給該些專屬本體以進行處理。 _ . 土久紙饥朽只1琢執行單 疋中的資料大小有關的資料’以及保有和該資料或本體有關的 優先權資訊。全域散佈器12可能還保有資料佈置偏好。以— 非限制性範例為例,雖_點物件並無任何資料佈置偏好 過,三角形則可能以它們的頂點來建構為宜,而像素則以該等 二角形來建構為宜,所以便構成轉佈置偏好。因此, 況中,全域散佈器12保有此資訊以進行更有效的處理。、月 全域散佈器12包含-基礎物件表41。每個三角形均會取 基礎,當分賴三角形本體時,其便會被儲存於 礎物件表41之中。於此非限制性範例中,該基礎、 兩攔.基礎轉_與執行單元#,執行單元靖應的 三角形本體處的執行單元編缺德、、, 、刀派該 元記憶體21的像素封包載有:送;固定功能硬體與快取單 物件表41中進行錢,以便 其可用來於該基礎 便决疋原始的三角形本體的邏輯位 1310527 年月日修正替換頁 置。 -~ 全域散佈器12還包含一頂點描述符表43,該表係一供所 有執行單元15、17、19、48及49使用的全域頂點登記表(第3 圖)。頂點描述符表43含有和每個八(或是由一執行單元之 SIMD係數所定義的任意數)頂點群的位置有關的記錄或資 訊,其可能内含於正欲進行處理的頂點封包之中。於至少一非 限制性範例中,該頂點描述符表43可能含有約256筆記錄, 其包含欄位名稱、欄位長度、攔位來源,以非限制性範例為例, 其來源可能係全域散佈器12、頂點描述符表43控制、或是某 個特殊執行單元中的佇列快取控制器51。頂點描述符表43亦 保有該等特殊記錄的目的地資訊以及和該特殊貧料棚位有關 的描述資訊。當收到一頂點封包時,該頂點描述符表43可配 合輸入頂點緩衝器及索引緩衝器46來運作。全域散佈器12會 產生一頂點本體,並且於該輸入頂點緩衝器與索引緩衝器46 及所分派的執行單元記憶體之間開始進行傳輸,更詳細的說明 如下。 以一非限制性範例為例,假使進入的封包並不適於執行單 元群(其包含第3圖的執行單元15、17、19、48及49)的話, 那麼全域散佈器12便可能不會承認有收到此資料,直到全域 散佈器12能夠正確地分派具有足夠資源(例如記憶體空間)的 22 1310527 特殊執行單元為μ g修正雜頁 止。於此實例中,對一特定的頂點封包來說, 全域散佈器12 ΰρ Μ _ J破配置成用以實施各種動作。首先,全域散 佈器12可利用意次 ,、貝源需求/分派資訊來尋找一合宜的執行単兀 (例如執行單元办^ 、 ),如上述。或者,全域散佈器12可將一要 ,"、β 特殊的執行單元(例如執行單元49),用以分派一本 體給所收到的了員% 只點封包。假使所收到的頂點封包並未經過索引 15麼王域政佈器12便可於輪入頂點緩衝器與索引緩衝 器46中為它產峰 王一個索引。此外,全域散佈器12還可於頂點 描述符表43中A # —特殊執行單元來分派一登錄項,並且於該 登錄項中填入誃λ μ+體的索引與編號。最後,全域散佈器12可 指示執行單元資粗技m /叶g理移動單元52將資料移到該執行單元中 的預期位置處進行處理。 的一角》'域散佈器12接收到-不適於某個特殊執行單元群 、 '而非一頂點封包的話,那麼該全域散你g】 可利用該資源雲八/ 窃12便 茗求/分派資訊來尋找一合宜的執行單元 上面針對頂點封台 ’如同 可a所述者。或者,全域散佈|§ 12可於 ^ 角幵y的頂點的索引時’#貞取該等本體編號並且抽出該等垂直 兀素、扁唬全域散佈器12可將一要求傳送給一 、: ),用以分派一本體給該三角形封包。而後,八^ 政佈盗12便可將該等頂點的本體編號與該等元素編號(1至^ 23 1310527
α ξ 7r\-L 傳送給該特殊的執行單元’例如此非限制1_ 19。 粍例中的執行單元 對被全域散佈器12所收到的一特定像素、 散佈器12可利用該資源需求/分派資訊來尋找封匕來說,全域 元,如同上面針對三角形封包及頂點封包所逃者0且的執仃單 散佈器12可將一要求傳送給一特殊的執行單_或者,全域 本體給該像素封包。於此實例中,全域散佈。。,用以分派一 素所屬的三角形的本體編號及它們的元° 可將該些像 單元以作進-步的處理。 傳送給該執行 雖然到目前為止’本文的重關放在全域 功能上面;不過,現在會將重點放在該群 及其 丁單7L以及它們盘 該全域散饰器12的通信方式及彼此平行運作方式上面。。 每個執打早7L皆含有一件列快取控制器(QCC)51。行列快 取控制器51可於資料流處理中提供分級,並且將資料連結至 數值與邏輯處理器’例如以供進行浮點及整數計算^宁列快取 控制器51可幫助管理一邏輯圖形管線,其中於每一級的處理 中均會產生或轉換資料本體。如本文所述,佇列快取控制器5ι 包括一本體描述符表、一級剖析器、以及一位址更名邏輯表單 元。(下文將說明且圖解額外的Qcc組件。) 對執行單元15來說,雖然圖中所示之仔列快取控制器的 24 1310527 年月局修正替換i 元件符號為51,不過第3圖中所示的其餘執行單元亦相同。佇 列快取控制器51具有專屬的硬體針對各資料處理級來管理邏 輯電路FIFO,並且用以將各級連結在一起,更詳細的討論如 下。佇列快取控制器51為執行單元15的區域元件,第3圖 中所示的其它QCC則係其個別執行單元的區域元件。依此方 式,每個QCC均具有和其它執行單元之佇列有關的全域參考 值,以便於由全域散佈器12進行配置時來支援全域排序。佇 列快取控制器51中的邏輯電路可促使資料管理移動單元52經 由其各級在該執行單元間移動資料及/或將資料移動至其它的 組件,如第3圖中所示的其它執行單元17、19、48或49。 佇列快取控制器51包含一區域快取記憶體54。於至少一 非限制性範例中,區域快取記憶體54中的資料並不會被傳送 至任何的實體FIFO。取而代之的係,所有的FIFO係具有和各 物件相關的記憶體參考值的邏輯元件。以一非限制性範例為 例,和頂點封包有關的頂點資料可保留在該區域快取記憶體之 中直到該頂點資料被處理為止;或是可刪除或被拷貝至相關的 三角形本體以供進一步處理,不過,該頂點資料則不會保留在 區域快取記憶體54之中。 佇列快取控制器51還包含一執行緒控制器56,其可支援 多重執行緒處理並且能夠執行四或更多個現役執行緒,所以可 25 1310527 年3日修正替換頁 Q7.1 ΐ 1. 2 B ______ 於執行單元層中在SIMD流類型k行上ά供MIMD。雖然下文 將額外詳細說明,不過,佇列快取控制器51可與一流動數值 管線及相關的暫存器單元57進行通信,該等相關的暫存器單 元57可同時執行浮點及整數指令,其可於該SIMD流中處理 多個資料項。 如第3圖所示,於此非限制性範例中,固定功能硬體與快 取單元記憶體21包括具有良好定義功能的大部份專屬固定功 能單元。於至少一非限制性範例中,固定功能硬體與快取單元 記憶體21包含一像素封包器50 ; —微磚旁通式佇列61 ;以及 一重排序缓衝器63,其具有一輸出微磚產生器64(像素解封包 器)。像素封包器50可被配置成用以於該執行單元中減低稀疏 微磚處理中的粒度損失。微磚旁通式佇列61可被配置成用以 保有所有的微磚像素遮罩(tile pixels maks),同時可於該執行單 元群中處理其它微磚上的像素。另外,輸出微磚產生器64可 被配置成用以使用該微磚像素遮罩來對於該執行單元群中被 收到的像素資訊進行解封包。重排序缓衝器63會還原被傳送 至該執行單元群的該等像素封包的原來順序,因為其亦可以亂 序方式來處理。 第4圖為第3圖的執行單元15(或是第3圖的任何其它執 行單元)的佇列快取控制器51的示意圖,圖中還顯示額外的組 26 1310527 年月呢爹正替換頁
Φ^ΛΧΐ2Λ--J 件。於此非限制性範例中,佇列快取控制器51包含一通信單 元71,該通信單元71具有一輸入73部份及一輸出75部份, ‘ 其中可從其它執行單元中接收資料及其它資訊及/或將資料及 其它資訊輸出至一不同的執行單元及/或全域散佈器12。通信 單元71包含一通信控制器77,其可透過CTRL匯流排79與資 料管理移動單元52來交換資料。 資料亦可由CTRL匯流排79傳送至本體描述符表78,該 本體描述符表78會被配置成用以含有和已分配封包的資料關 係、分派情形、就緒情形、以及目前處理級有關的資訊。本體 描述符表78包含複數個本體描述符以及相關的實體描述器 (descriptors)以儲存和每個本體相關的資料及各種常數。於至少 一非限制性範例中,本體描述符表78可能含有由至少兩種類 型組成之高達256筆記錄,其包含一實體緩衝器登錄項及一本 體登錄項。一虛擬圖形管線所使用的所有邏輯電路FIFO均可 利用該本體描述符表78及具有一級指標表83的級剖析器82 來設計。 於至少一非限制性範例中,本體描述符表78可依據一 CAM(内容定址式記憶體)並且使用二至三個欄位來進行關聯 性查找。以一非限制性範例為例,該等攔位可能包含一由八位 位元組成的本體編號欄位以及一由四位位元組成的邏輯訊框 27 1310527 年月、旧修正替換頁 97l “- 2b —」 編號欄位。依此方式,本體描述符表78可視為係一完整的關 聯性快取記憶體,其具有額外的控制狀態機用以於每個時脈循 環處依照該等執行單元中的狀態來更新每筆記錄的部份攔位。 級剖析器82包含一級剖析器表,於一圖形處理非限制性 範例的邏輯管線中,該表含有每個處理級的指標,如第5圖至 第9圖所示且下文將作討論。級指標實際上會指向每一級中下 一次欲處理的本體。於至少一非限制性範例中,和每一級相關 的處理有兩種:數值處理,以及I/O或資料移動處理。級剖析 器82的級剖析器表中内含的該等指標可用來選擇具有一執行 緒微程式的複數個用戶描述符。 當級剖析器82的級剖析器表產生一指向某個特殊本體的 動態指標時,本體描述符表78中内含的用戶描述符記錄便會 被載入執行緒控制器56之中以供進行數值級處理,如上述, 其可能包含浮點指令與整數指令。級指標表中的每一級均具有 一指向描述符表中某項記錄的靜態指標,其定義著該執行緒微 碼開始位址及複數個執行緒參數。邏輯管線功能係由指向用於 數值資料處理的指令記憶體中不同微碼區段的該些記錄來配 置。
或者,於I/O處理的情況中,級剖析器82的級指標表83 可能含有一指標,指向供資料管理移動單元52來運用的I/O 28
1310527 與資料移動處理描述符。雖然第4圖中未顯示,不過,級剖析 器82實際上包含一控制器,其可於每個時脈循環處檢查本體 描述符表78中該等本體的狀態,俾使可逐級處理該等本體。 當佇列快取控制器51運作以將資料傳送給另一執行單元 (例如執行單元19)時,該級剖析器表便可產生一和變動資料移 動處理相關的指標值,該值會被傳送至I/O及移動描述符暫存 器表85。變動資料傳輸要求會從I/O及移動描述符暫存器表 85被傳送至資料管理微程式記憶體87,該資料管理微程式記 憶體87會發出一指令給資料管理移動單元52用以存取快取記 憶體88中的該特殊資料並且將該資料傳送至指定的記憶體位 置。 於級剖析器82的級剖析器表涉入某個本體之數值處理過 程的情況中,該級剖析器82的級剖析器表便會產生一指標值 用於執行數值處理,該指標值則會被傳送至該數值處理描述符 暫存器表91。該數值處理描述符暫存器表91會與執行緒控制 器56進行通信,用以實行和該數值處理相關的浮點或整數指 令。 位址更名邏輯表單元94含有位址更名資訊,該資訊可用 於提供該等實體緩衝器至該等快取記憶體線88的彈性映射, 其說明同上。該邏輯更名表具有一或多個控制器,用以操作及 29 1310527 ~-一_ ...乎'月用修正替換頁 更新該表。該位址更名邏輯表單元可對區域快取記憶體提供虛 擬類型存取。更明確地說,該位址更名邏輯表單元94會將— 實體緩衝器編號轉換成一快取位址。熟習本技術的人士將會明 * 白’該邏輯表可被配置成以和虛擬記憶體系統中的轉換後備緩 衝器(translation l〇〇k-aside buffer,TLB)雷同的方式來運作。 資料管理移動單元52負責載入所有的資料且移進該執行 單元之中並且負責與全域散佈器12進行互動,而對固定功能 硬體與快取單元記憶體21中的所有其它執行單元亦同,如第i 圖所示。於至少一非限制性範例中,假使資料未被儲存於該執 行單元的快取記憶體88之中及/或未被載入該等暫存器(例如 本體描述符表78)之中的話便將不會處理一執行緒。就此而 舌’貢料管理移動單元52會與本體描述符表78互動以獲取該 表中的本體的狀態,以便提供外部要求的資料給執行單元15, 例如供全域參考之用。以一非限制性範例為例,假使於第一執 行單元中處理一三角形的其中一個頂點的話,對三角形處理用 途而s,該特殊的執行單元可能會試圖將此頂點資訊拷貝至正 在處理該三角形的其餘頂點或是該三角形的其餘頂點所在的 —或多個其它執行單元 。依此方式,資料管理移動單元52便 可讓該特殊執行單元與全域資源進行所有的互動,如第1圖所 7JT 〇 30 1310527 y 修正替換頁 圖為於了頁點處理序列中第】圖的物件導向架構模型 1〇的執行流程圖。對該等頂點物件來說,會參考-可能相同的 「本體」。邏輯電路FIF0並不必實體均等,因為本體一旦產生 之後’便不會該改變它們在該記憶體中的位置。取而代之的 二°】析$ 82會使則旨向描述符表的指標來確認某個本體, 以便將該本體從其中—種狀態推人另―種狀態。 如第5圖的非限制性範例所示,全域散佈器η會透過第3 圖的輪入頂點緩衝器與索引緩衝器46將-頂點處理序列的幾 ㈣傳送給資料管理移動單元52。該全域散佈器_頂點描 V符表43會傳送—本體分派要求,並且於該頂點描述符表Μ 中登記該本體。繼續停留在級〇巾,錄行單元的糾與件列 、二制②51會於快取記憶體88中分派記憶體資源供該本體 的或夕個邏輯訊框使用,並且於本體描述符表78中建立一 ㈣描述符表項。_已經分派此本體,不過如級0中所示, '、σ ;丨緣Z㈣88之巾為該本體建立複數條快 作業期間,該勃耔留- 钒仃早7L的執行緒控制器與數值管線可能正 行其它的執行緒,如級。中所示。 、 於級σ彳析器82找到欲儲存在快取記憶體88之中 的頂點本體時,便可進行頂點幾何批次資料載人。於此作章 、及口J析$ 82會指示資料管理移動單元52為快取記憶體88 31 1310527
取得該頂點幾何資料。 級2中’如第5圖 .入快取記㈣之,的幾何二:析器幻來存取被戟 數值管線可於此非限制性範例:=執行, 异。級〇所生成的資科可於進行们、插影程式來實施運 存於快取記憶體8§之尹。 的作業以前再次被錯 級3中’由級剖析 屬性批次m置理軸單元52將_ _ 八陕取錢體88之中 貝點 所示。此時,級3 _,該裁入該資料,如級3 管線可能正在執行其它的執^^的執行绪控制器56及數值 、及4令,該仔列與快取控制器的級剖析器82 該等已轉換的幾何與未經處理的屬 w 0不傳輪 照明描影運算。所生成的資 ^冑可實施屬性轉換與 之中,如級4至級5所示。-人破健存於快取記憶體88 執於從級剖析器82中收到該㈣本體的指標時, = 及數歸線便可對快取記憶體财已經過轉 Γ資料進行額外的後描影運算。於離開該後端描影器時,如 第6圖的級5中所示’所生成的了頁點資料會再次被置放於快取 記憶體88之中’接著便會由資料管理移動單元52將其傳送給 任一其它的執行單元或全域散佈器12可指揮的已分配記憶體 32 1310527 位置。 級5的結果為級剖析器82會發出一刪除本體命令給該本 體描述符表,以便刪除此次作業的頂點本體ID。換言之,可 從頂點佇列中刪除該本體參考值,不過,該頂點資料仍然留在 快取記憶體88之中,以便供三角形本體用於進行其它的處理 作業,其說明如下。視欲被執行的微指令及欲被移動的資料大 小而定,上述的六級中的每一級均可能係發生在數個循環中。 第6圖與第7圖為第1圖物件導向架構模型10的三角形 處理序列的物件導向架構互動示意圖。級0中,全域散佈器12 可透過資料傳輸通信系統13匯流排來與資料管理移動單元52 進行通信,同時還會分派該三角形本體要求並且於該頂點描述 符表43中登記該項要求。該項三角形本體產生處理會在執行 單元佇列快取控制器51中繼續執行,其方式係在本體描述符 表78中分派該本體並且於快取記憶體88中為該等三角形頂點 索引及幾何資料分派一記憶體空間。此時,級0中,執行緒控 制器56及數值管線可能正在執行其它的執行緒。 級1中,級剖析器82可能會指向級0中所分派的三角形 本體,並且會指示資料管理移動單元52接收該三角形幾何資 料,該資料可被拷貝至快取記憶體88並且於本體描述符表78 中進行參考,如級1所示。然而,此時,執行緒控制器56及 33 .1310527 s 月正替換頁丨 4; 、w1彡.力悦 數值管線可能仍然正在執 .,級2中,級剖析_ 82可將快取記憶體88 t已载入的 .形幾何資料傳送至具有執行緒控制器56的數值管線之中,用 以於此非限制性範财進行隱面消除細⑽_叫)。所生 成的資料可被儲存於快取記憶體88之中,如級2所示,而經 過更名的三角形本體則會保留在本體描述符表^之中。,、’ 級3中,具有執行緒控制器56的數值管線可對該等頂點 資料本體進行處理,如上述,其可能係起因於該級剖析器82 參考該本體描述符表78的結果,俾使該資料管理移動單元52 將,位址資訊傳送給可能正在處理該等頂點本體的另一個執 订早級4中(第7圖),目前被儲存在快取記憶體⑵之十的 該等三角形頂點屬性會透過執行緒控制器56在數值管線中被 2灯以便貫施三角形修剪試驗/分割作業。同樣地,所生成的 資料可被儲存於快取記憶體88之中,而已被仵列的登錄項則 仍然保留在本體描述符表78之中。 繼續此非限制性範例’級5作業包含級剖析器82將該本 體#田述付表78與執行緒控制器%及數值管線中的某項小型三 /乍業乂及某個早像素三角形設定作業產生關。快取記憶 ^88會儲存和單像素三角形及少於一個像素的三角形有關的 ;及6所不’和該等三角形有關的生成資料會於本體描 34 1310527 年月日修 —-- 述符表78中被參考,因而可由級剖析器82將一角落傳送至資 料管理移動單元52。換言之,可由匯流排將該生成的三角形幾 何資料轉送至該全域散佈器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中擷取該像素 35 1310527 年月日修正替換頁 47· I'ii»——— 本體ID,以便將快取記憶體88中的該等像素内插參數傳送至 數值管線中的執行緒控制器56,用以進行Z内插運算。所生 成的經更改資料會被送回快取記憶體88之中,而級剖析器82 則會將該像素本體ID佇列排列於本體描述符表78之中。不 過,於一非限制性的替代具體實施例中,假使利用固定功能硬 體與快取單元記憶體21來進行Z内插的話,那麼便可省略級 2。於此非限制性範例中,像素封包器49接著便可直接從該Z 内插單元(圖中未顯示)中接收資料。 繼續參考此非限制性範例,可利用該資料傳輸系統來傳送 該像素本體ID,用以依照該級剖析器與該資料管理移動單元 的指示來接收像素XYZ及經遮罩資料。此時,執行緒控制器 56可能正在執行其它的執行緒。 級4中(第9圖),級剖析器82可獲取該像素本體ID,以 便對快取記憶體88中的資料實施紋理内插運算,其可能包括 X、Y、Z的再包裝内插參數及遮罩資料資訊。經此作業之後, 級4便可將像素封包資料儲存於快取記憶體88之中。在將經 處理資訊轉送至其它執行單元以於級5中進行處理時可由資料 傳輸系統13來接收紋理位址資料。視紋理的數量及像素描影 器的複雜度而定,可以任意順序來複製級4、5、6。然而,如 級6所示,可於紋理過濾及/或像素描影運算中的顏色内插中 36 年月正替換頁 1310527 來變更快取記憶體88中的像素封包資料,其方式如上述。於 最後一級中,如第9圖料,級剖析㈣會將該像素本體m 導向資料管理移動單元52,以便從該執行單元中轉送最後的像 素資料以供進一步處理及/或顯示。 如上所述’該全域散佈器12可分派〜頂點、三角形和/ 或像素本體到-個或多個執行單元中進行處理,,當上述的 該全域散佈器12分派-頂點、三角形和&㈣本體到1_ 多個執行單元時’至少有另-種實_ 一全域散翻12根 據先前決定之偏好來做分派。 第10圖為一非限制性範例流程圖1〇1,圖中減的係於該 全域散佈器12及第i圖的執行單元之間分派一三角形本體: 第10圖中,於步驟1G4處會在全域散佈器12中收到一描繪 (draw)命令,其會促使該全域散佈器12去撿查該三角形輸入= 包。假使該三㈣輸人封包含有㈣的話,便可於全域散佈器 中執行步驟S1G6,以便針對所收到的三角形封包來存取頂 點描述符表43。 假使全域散佈器12判斷出該等和該三角形封包相關的頂 點位於其中—師單元㈣話,全域散佈H 12便可產生一區 域參考值(步驟SlG8) ’·不過,假使全域散佈H 12判斷出該等 和該三角形封包相_頂點位於多個執行單元中的話,全域散 37 1310527 佈器12便可吝4入 修正替換頁 、二著:=:,,是複_行單 步驟L 步驟S108或步驟_前進至 步驟S115,該步騾可運作用以定義 遵至 最小資源數量。除了源自牛㈣ Μ肖形封包所需要的 双里除了源自步驟S104的兮笙各Ρ,, 中還會考;魅& ㈣讀心外,步驟sm β 讀’俾使可為該三角形封包分派正確的資源數 = 步輝S115中還會考慮到資料和用於執行該三角形 封包的邏輯訊框結構有關的資料。 如步驟sm所示,於較供執行用的最小資源數量後, 該全域散佈H 12便會財驟㈣處產生―本體分派要求。此 本體分派要求包含步驟S115處所產生之欲被拷貝的資料量, 以及同樣源自步驟S115的記憶體覆蓋範圍。本體分派要求步 驟S115還可接收一份經定義的候選執行單元清單,用於接收 該本體分派要求,以及欲被執行之本體類型的優先權索引。 如步驟S120所示,全域散佈器12會檢查第一候選執行單 元的狀態,其可依照步驟S111中定義的候選執行單元清單及/ 或和欲被執行之本體類型有關的優先權。假使該第一候選執行 單元為該經分派本體的可用資源相配者的話,全域散佈器12 便會傳送一本體分派要求給該第一執行單元,如步驟S126所 38 1310527 k曰修正替換ΐ 示,而後便會等待於完成之後接收該執行單元的結果。於該本 體被分派之後,全域散佈器12便會返回步驟104,用以接收一 下一個三角形描繪命令。 不過,假使該第一候選執行單元並非步驟S118中所分派 的本體的可用資源相配者的話,那麼全域散佈器12便會尋求 第二候選執行單元,如步驟S122所示。假使此第二候選執行 單元為可用資源相配者的話,便會執行步驟S126,如上述。 不過,假使該第二候選執行單元並非相配者的話,那麼全域散 佈器12便會尋求第三候選執行單元,如步驟S124所示。視此 單元是否為相配者而定,全域散佈器12可能會尋求一或多個 額外的候選執行單元,直到發現適當的候選相配者以便分派欲 進行處理的本體為止。 熟習本技術的人士將會暸解,第10圖中所述的過程不僅 適用於三角形封包,亦適用於頂點封包及像素封包。不過,於 每種實例中,全域散佈器12均會如上述般地選擇一候選執行 口 σ —· 早兀。 前面說明僅供解釋與說明之用。其並無意包攬無遺、或將 本發明限制於所揭示的刻板形式。依照上面教授内容即可進行 大幅修改或變更。不過,本文所討論的具體實施例係經過選擇 且其說明係為解釋本文所揭示的原理,俾使熟習本技術的人士 39 1310527 (Lf, ^ 可藉由各具體實施例中的揭示内容以〜 亦適用於本發明所涵蓋之特殊用途 ^丁而各種修正例 負此等修正例盘
在隨附申請專利範圍所決定之本發明的公正合法範:内1 參考下面圓式便可更瞭解本發明的許多W 【圓式簡單說明】 意圖。 第1圖為本發明的物件導向架構的抽象硬體模型示意圖 第2圖為第_物件導向架構模型中的三層動態排程 第和第旧的單元相_辦健料來顯示 第Ϊ圖的物件導向架構模型的示意圖。 第4圖為第3圖的仵列與快取控制器示意圖。 第5圖為由第1圖的物件導向架構來執行 中該物件導向架構互動的執行流程圖。 "處理序列 第6圖與第7圖為第丨圖模型的三角形處理序列的物件 向架構互動示意圖。 第8圖與第9圖為第⑽模型的像素處理序列的物件導向 木耩互動示意圖。 第10圖為一非限制性範例流程圖,圖中描綠的係於該全
年月月修正替換頁 1310527 域散佈器及第1圖的執行單元之間分派一三角形本體 【主要元件符號說明】 10 物件導向架構模型 12 全域散佈器(全域排程及任務及含表的分配器) 13 資料傳輸通信糸統 15 執行單元(執行方塊佇列及快取控制器) 17 執行單元 19 執行單元 21 固定功能硬體與快取單元記憶體 23 共同I/O服務與大量快取記憶體 32 流管線執行緒控制器 34 資料移動控制器 41 基礎物件表 43 頂點描述符表 46 輸入頂點緩衝器與索引緩衝器 48 執行單元 49 執行單元 50 像素封包器 51 佇列快取控制器 52 資料管理移動單元 54 區域快取記憶體 56 執行緒控制器 57 流動數值管線及相關的暫存器單元 61 微磚旁通式佇列 41 1310527 ^年月/¾修正替換頁 i* il* ^ V 63 重排序緩衝器 64 輸出微磚產生器 • 71 通信單元 • 73 輸入 75 輸出 77 控制器 78 本體描述符表(具有控制氣PB) 79 CTRL匯流排 82 級剖析器 83 級指標表 85 I/O及移動描述符暫存器表 87 資料管理微程式記憶體 88 快取記憶體 91 數值處理描述符暫存器表 94 位址更名邏輯表單元 101 非限制性範例流程圖 步驟S104 檢查輸入三角形封包 步驟S106 檢查頂點描述符表 步驟S108 產生區域參考值 步驟S109 產生全域參考值 步驟Sill 定義候選執行單元以供分派 步驟S115 定義最小資源量 步驟S118產生本體分派要求 步驟S120檢查第一候選執行單元的狀態 步驟S122檢查第二候選執行單元的狀態 42 1310527 步驟S124 步驟S126 年月日修正替換頁^ 97144^24— 檢查第三候選執行單元的狀態 傳送本體分派要求給執行單元 43
Claims (1)
1310527 案號 095104665 申請專利範圍: 1. 一種處理一 97年11月26曰 年月日修正 ———-J 修正本 圖形資料封包的方法,其步驟如下: 或多個執行單元本體描述符表中分派—和該頂 形資料封包相關聯的頂點本體記錄; ‘,' 图 將-指標傳送至一資料管理移動單元 派的頂點本體記錄; 於 ’該指標指向該經分 將該頂點圖形資料封包中一部份或全部載入該經分 本體記錄所參考的記憶體之中; 、執仃和被载人該記憶體中的頂點圖形f料封包相關聯的 一或多個m整數齡,俾使所生成的龍可被送回該記憶 體中已更名的記龍參考值暫存^ ;以及 於完成該頂點圖形資料封包的計算後刪除該本體描述符 中丄刀派的頂點本體記錄,其中,偏若該頂點圖形資料封包 要被傳运至另—執行單元或被相同執行單元中的三角本體參 老66 士车 ° ,則可不從該記憶體令刪除該頂點圖形資料封包。 2’如申睛專利範圍第1項所述之處理一頂點圖形資料封 匕的方法,其進一步包括下面步驟: 執仃和被载入記憶體中的頂點圖形資料封包有關的一或 名外處理級,其中,會配合該頂點圖形資料封包來實行一 或夕個額相浮闕整數指令。 44 1310527 3.如申請專利範圍第2項所述之處理一頂點圖形資料封 包的方法,其中執行該等—❹侧外處理級時會將和該頂點 圖形資料封包相_的已更新資料值暫存於具有該頂點圖形 資料封包之更新狀態的本體描述符表之中,俾使後續的處理級 可配合和該更新狀態相關聯的已更新資料值來運作。 4.如申凊專利範圍第j項所述之處理一頂點圖形資料 包的方法,其進一步包括下面步驟: 將-指標傳送至-執行緒控制器單元,該指標指向該經分 本辰==體記錄,俾使該執行緒控制器單元可存取和該頂點 本體目關的資料’以進行數值處理。 & %申請專利範圍第】項所述之處理一 包的方法,1中於声柿^ 國办貝科封 八中於處理-伽_資 述符表、資斜銘毹+ 具有一本體插 表讀移動早凡、執行緒控制器、快取 指標的執行單元會平㈣時進行 〜、以及級 封包處理。 —固一角形的圖形資料 如令請專利第〗項所述之處理 貝點圖形資料封 匕的方法,其進—步包括下面步驟: 從一全域散佈單元中接收— 包分派-本體,其中該全域 / ’’、、該頂點圖形資料封 科封包且^布早几會索弓丨編排該項 匕且該頂點圓形資科封包會於具有亨執卜圖形貝 有^執仃早元本體描述 45 1310527 頂點描述符表中 符表所分派的索引編號的全域散佈單元的 被參考。 下: 種處理-二角本體圖形資料封包的方法, 其步驟如 和該三角本 於—或多個執行單元本體描述符表中分派 體圖形資料封包相關聯的三角本體記錄; 將-指標傳送至-資料移料元,該指標指向該經分派的 =本體記錄,其中該移動單元會將該三角本_形資料封包 錄所參考的記憶 部份或全部載入該經分派的三角本體記 體之中; 執行和該三角本體圖形資料封包相關聯的複數個處理 2俾使可對被載入該記憶體中的三角本體圖形資料封包執行 一或多個浮點或整數指令,其中每個處理級所生成的資料會被 錯存於該三角本體記錄所參考的該記憶體中已更名的記憶體 參考值暫存器;以及 〜 於完成該三角本體w形資料封包的計算後刪除該本體描 逃符表中經分派的三角本體記錄,其中,該三角本體圖形資料 、匕會被傳送至另—執行單元或―全域散佈器中。 ;、勺士口申凊專利範圍第}項所述之處理一三角本體圖形資 ;斗化的方法’其中執行該等複數個處理級時會將和該三角本 46 1310527 體圖形資料封包相關聯的已更新資料值暫存於具有該三角本 .I圖形資料封包的·名稱的本體描述符表之中,俾使後續的 ,處理級可配合和該更新名稱相關聯的已更新資料值來運作^ 9·:請專利範圍第?項所述之處理—三角本體圖形資 钭封包的方法,其進一步包括下面步驟: 將I储傳駐-執行緒控㈣單元,雜標⑽該經分 本:^本Γ己錄’俾使該執行緒控制器單元可存取和該三角 錄相關的記憶體(暫存器)資料,以進行數值處理。 10. >申請專利範圍第7項所述之處理一三角本體圖 料封包的方法,其中於處 、 -本财f 、翁—二角本體_:轉封包時,具有 «及級=Γ料移動單元'執行緒控制器、快取_、 及級Μ的執行單元會平行 處理,且進H 和丁圖形貝料封包頂點 料一 圖形資料封包頂點會被傳送至-用於户 以二角本體圖形資料封包的執行 、处 角本體圖形資料封包。 用以進一步處理該三 角本體圖形資 U.如申請專利範圍第7項所述之處理_ 料封⑽方法,其進—步包括下面步驟·· 角本體封包分 角本體封包且 該三角本體圖丑/次 ㈢斤、y跼排該三角本體封包且 月不篮圖形資料封包合 曰被刀派於具有該執行單元本體描 從一全域散佈單元t接收—要求以為該 派一本體’其令該全域散佈單元會索f丨編拼該 角太體HI m =欠. 47 1310527 =符表所分派的㈣編號的全域散佈單元的—頂點描述符表 中0 12. -種處理—像素圖形資料封包的方法,其步驟如下: 於一或多個執行單元本體描述符表中為該像素圖形資料 封包分派一本體; :4傳送至讀移動器,該指標指向該經分派的本 ’其中該資料移動器會將該像素_f料封包中—部份或全 部載入一記憶體之中; 一 ♦執行和該像素圖形資料封包相關聯的複數個處理級,俾使 4心將該像素gj形資料封包指向—控制料可對該像素 圖形貝料封包執行_或多個浮點或整數指令;以及 於完成該像錢形資料封包的計算後刪除該本體描述符 j中經分派的本體’其中,該像素圖形資料封包會被傳送至另 —執行單元或一全域散佈器中。 次13.如申請專利範圍第12項所述之處理處理一像素圖形 =;斗封包的方法,其進—步包括下面步驟: 接收和該經分派的像素圖形資料封包相關聯的-或多個 三角形的本義。 ^ y欠14.如申請專利範圍第12項所述之處理處理—像素圖 A貝料封包的方法’其中該等—或多個三角形會於—分離執行 48 1310527 單元中被同時處理。 15· 如申請專利範圍第12項所述之處理處理一像素圖 形資料封包的方法,其中每個處理級所生成㈣料會被儲存於 該纪憶體令該經分派的本體的更名記憶體參考值。 16.如申請專利範圍第12項所述之處理處理—像素圖 形資料封㈣方法,其中可相依於紐計算數及像素描影作業 計算的複雜度來重複數個處理級。 11 ·如申請專利範圍第12項所述之處理處理一像素圖 形資料封包的方法’其中像素描影作業計算的高複雜度會造成 重複較多的處理級。 18. 如申請專利範圍第12項所述之處理處理一像素圖形 資料封〇的n其中執行該等複數個處理級時會將和該像素 =形資料封包相關聯的已更新資料值暫存於具有該像素圖形 =广' i匕之更新名稱的本體描述符表之中,俾使後續的處理級 可配合和該更新名稱相關聯的已更新資料值來運作。 19. 如申請專利範圍$12項所述之處理處理一像素圖形 貝料封包的方法,其進—步包括下面步驟: f扣‘傳送至一執行緒控制器單元,該指標指向該經分 ;的本體俾使該執行緒控制器單元可存取和該經分派本體相 關的資料,以進行數值處理。 49 1310527 〃 G·如’讀專利範園第項所述之處理處理-像素圖形 貧料封包的方法, 具中於處理一像素圖形資料封包時,且有一 本體描述符表、 _ 、 、 貝η移動早疋'執行緒控制器、快取記憶體、 形資指標的執行單元會平行同時進行-三角本體圖 κ理,且進—步其中該像素圓形資料封包會被傳送 :用於處理該三角本體圖形資料封包的執行單元,用以進一 步處理該三角本體ϋ形資料封包。 21.如申請專利範圍第12 眘粗心Α 處理處理—像素圖形 貝科封包的方法,其進—步包括下面步驟: 從一全域散佈單元中接收一要求 包分派-本體。 要^為該像素圖形資 50 1310527 £553 圖式 0
1310527 式 圖
接-Mt 踩iM-Mtl ♦jdt 逛 II ί
^^R> it^I/oHi童 #h摩萍雜EL^^^-lts. 1310527 式 圖 萍讲論(¾薺蹢韋衅 Hi3i^鄭 ii‘ ^
lA-fv- 61 63 珅· (3· : 1¾ 3 重排序缓衝器 輸出微磚產生器 画M忽誥淘鎭靼宗钾 1310527 式 圖 ^iIllEB 77J7f 7Γ 0yr T!画 EB 雜Er· 菡窆|| 79 79 於雜^(^^ >(和姊箱室 s) 78 75 ▲ait2.acTRr52, r 3 83 82 "Π 5 級剖析器 \ LGTH SRCE DESI DESC 穿背食kt# 94 -I-n〆 宗背 12/1¾¾ lui^is 88 87 \r\s :i1 '56 51 1310527 式 圖
1310527 k 圖
1310527 •式 圖
1310527
.1310527 式 -圖
1310527
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/199,353 US20070030277A1 (en) | 2005-08-08 | 2005-08-08 | Method for processing vertex, triangle, and pixel graphics data packets |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200707334A TW200707334A (en) | 2007-02-16 |
TWI310527B true TWI310527B (en) | 2009-06-01 |
Family
ID=37717224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095104665A TWI310527B (en) | 2005-08-08 | 2006-02-10 | Method for processing vertex, triangle, and pixel graphics data packets |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070030277A1 (zh) |
CN (1) | CN1912921A (zh) |
TW (1) | TWI310527B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9659339B2 (en) * | 2003-10-29 | 2017-05-23 | Nvidia Corporation | Programmable graphics processor for multithreaded execution of programs |
US20070083735A1 (en) | 2005-08-29 | 2007-04-12 | Glew Andrew F | Hierarchical processor |
US8296550B2 (en) | 2005-08-29 | 2012-10-23 | The Invention Science Fund I, Llc | Hierarchical register file with operand capture ports |
US9176741B2 (en) | 2005-08-29 | 2015-11-03 | Invention Science Fund I, Llc | Method and apparatus for segmented sequential storage |
US8275976B2 (en) | 2005-08-29 | 2012-09-25 | The Invention Science Fund I, Llc | Hierarchical instruction scheduler facilitating instruction replay |
US7644258B2 (en) * | 2005-08-29 | 2010-01-05 | Searete, Llc | Hybrid branch predictor using component predictors each having confidence and override signals |
US7508396B2 (en) * | 2005-09-28 | 2009-03-24 | Silicon Integrated Systems Corp. | Register-collecting mechanism, method for performing the same and pixel processing system employing the same |
WO2012174334A1 (en) | 2011-06-16 | 2012-12-20 | Caustic Graphics, Inc. | Graphics processor with non-blocking concurrent architecture |
US9465620B2 (en) * | 2012-12-20 | 2016-10-11 | Intel Corporation | Scalable compute fabric |
US20170178384A1 (en) * | 2015-12-21 | 2017-06-22 | Jayashree Venkatesh | Increasing Thread Payload for 3D Pipeline with Wider SIMD Execution Width |
US10409614B2 (en) * | 2017-04-24 | 2019-09-10 | Intel Corporation | Instructions having support for floating point and integer data types in the same register |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US10559056B2 (en) * | 2017-06-12 | 2020-02-11 | Arm Limited | Graphics processing |
EP4024223A1 (en) | 2019-03-15 | 2022-07-06 | Intel Corporation | Systems and methods for cache optimization |
AU2020241262A1 (en) | 2019-03-15 | 2021-11-04 | Intel Corporation | Sparse optimizations for a matrix accelerator architecture |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
US12013808B2 (en) | 2019-03-15 | 2024-06-18 | Intel Corporation | Multi-tile architecture for graphics operations |
US11288765B2 (en) * | 2020-04-28 | 2022-03-29 | Sony Interactive Entertainment LLC | System and method for efficient multi-GPU execution of kernels by region based dependencies |
Family Cites Families (13)
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 |
US6345287B1 (en) * | 1997-11-26 | 2002-02-05 | International Business Machines Corporation | Gang scheduling for resource allocation in a cluster computing environment |
US6560629B1 (en) * | 1998-10-30 | 2003-05-06 | Sun Microsystems, Inc. | Multi-thread processing |
US6286027B1 (en) * | 1998-11-30 | 2001-09-04 | Lucent Technologies Inc. | Two step thread creation with register renaming |
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 |
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells 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 |
US7015913B1 (en) * | 2003-06-27 | 2006-03-21 | Nvidia Corporation | Method and apparatus for multithreaded processing of data in a programmable graphics processor |
US7890734B2 (en) * | 2004-06-30 | 2011-02-15 | Open Computing Trust I & II | Mechanism for selecting instructions for execution in a multithreaded processor |
-
2005
- 2005-08-08 US US11/199,353 patent/US20070030277A1/en not_active Abandoned
-
2006
- 2006-02-10 TW TW095104665A patent/TWI310527B/zh active
- 2006-02-27 CN CNA2006100579236A patent/CN1912921A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20070030277A1 (en) | 2007-02-08 |
CN1912921A (zh) | 2007-02-14 |
TW200707334A (en) | 2007-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI310527B (en) | Method for processing vertex, triangle, and pixel graphics data packets | |
US7659898B2 (en) | Multi-execution resource graphics processor | |
TWI311729B (en) | Global spreader and method for a parallel graphics processor | |
US7659899B2 (en) | System and method to manage data processing stages of a logical graphics pipeline | |
JP6381734B2 (ja) | グラフィックス計算プロセススケジューリング | |
US7447873B1 (en) | Multithreaded SIMD parallel processor with loading of groups of threads | |
US7594095B1 (en) | Multithreaded SIMD parallel processor with launching of groups of threads | |
US11416282B2 (en) | Configurable scheduler in a graph streaming processing system | |
US10963300B2 (en) | Accelerating dataflow signal processing applications across heterogeneous CPU/GPU systems | |
US11755368B2 (en) | Configurable scheduler for graph processing on multi-processor computing systems | |
KR101786767B1 (ko) | 유저 모드로부터 그래픽 처리 디스패치 | |
KR20140001972A (ko) | 그래픽 처리 연산 자원의 액세스 가능성 | |
KR20120054027A (ko) | 프로세서들에 걸쳐 데이터-병렬 쓰레드들을 지닌 프로세싱 로직을 매핑하는 방법 | |
US20170068571A1 (en) | Fine-Grained Heterogeneous Computing | |
WO2007038456A1 (en) | Cell processor task and data management | |
CN104025185A (zh) | 用于使用gpu控制器来预加载缓存的机制 | |
US20070294510A1 (en) | Parallel data processing apparatus | |
CN103197918B (zh) | 多通道时间片组 | |
KR20140004654A (ko) | 처리 디바이스의 동기 동작을 위한 방법 및 시스템 | |
US20080028184A1 (en) | Parallel data processing apparatus | |
Zheng et al. | HiWayLib: A software framework for enabling high performance communications for heterogeneous pipeline computations | |
US8174530B2 (en) | Parallel date processing apparatus | |
CN116775265A (zh) | 协作组阵列 | |
CN116774914A (zh) | 分布式共享存储器 | |
Kao et al. | A pipeline-based runtime technique for improving ray-tracing on HSA-compliant systems |