新四季網

具有混合精度指令執行的可編程串流處理器的製作方法

2023-11-04 01:52:47 1

專利名稱:具有混合精度指令執行的可編程串流處理器的製作方法
技術領域:
本發明涉及圖形處理,且更特定來說,涉及圖形處理器架構。
背景技術:
圖形裝置廣泛用於渲染用於例如視頻遊戲、圖形程序、計算機輔助設計(CAD) 應用程式、模擬及視覺化工具、成像及其類似者等各種應用的二維(2-D)及三維(3-D) 圖像。圖形裝置可執行各種圖形操作以渲染圖像。所述圖形操作可包括光柵化、模板及 深度測試、紋理映射、著色(shading)及其類似者。3-D圖像可用若干表面來建模,且可 用多邊形(例如,三角形)來近似每一表面。為渲染目的而用於表示3-D圖像的三角形 的數目視所述表面的複雜性以及所述圖像的所要解析度而定。每一三角形可由三個頂點來界定,且每一頂點與各種屬性(例如,空間坐標、 色值及紋理坐標)相關聯。當圖形裝置在渲染過程期間使用頂點處理器時,所述頂點處 理器可處理所述各個三角形的頂點。每一三角形還由圖片元素(像素)構成。當所述圖 形裝置還(或單獨地)在渲染過程期間使用像素處理器時,所述像素處理器通過確定每 一三角形內的每一像素的分量的值來渲染所述三角形。在許多情況下,圖形裝置可利用著色器處理器來執行某些圖形操作,例如著 色。著色為涉及照明及陰影的高複雜的圖形操作。當執行渲染時,所述著色器處理器 可能需要執行多種不同指令,且通常包括一個或一個以上執行單元以輔助這些指令的執 行。舉例來說,所述著色器處理器可包括算術邏輯單元(ALU)和/或初等函數單元 (EFU)作為執行單元。常常,這些執行單元能夠使用全數據精度電路來執行指令。然 而,此電路可常常要求更多功率,且所述執行單元可佔據由所述圖形裝置所使用的著色 器處理器集成電路內的更多物理空間。

發明內容
大體上,本發明涉及圖形裝置的可編程串流處理器,所述可編程串流處理器能 夠使用不同執行單元來執行混合精度(例如,全精度、半精度)指令。舉例來說,所述 可編程處理器可包括一個或一個以上全精度執行單元以及一個或一個以上半精度執行單 元。在接收到二進位指令及對所述指令的執行的數據精度的指示後,所述處理器即能夠 選擇適當執行單元以用於在所指示的數據精度下執行接收到的指令。所述處理器可包含 用於移動圖形應用程式的基於指令的適應性串流處理器。通過此做法,所述處理器可避免使用一個執行單元來執行具有各種不同數據精 度的指令。結果,可減少或消除不必要的精度提升。另外,應用程式程式設計師在編寫應用 程序代碼時可具有增大的靈活性。應用程式程式設計師可為不同應用程式指令指定不同數據 精度級別,所述不同數據精度級別接著經編譯成由所述處理器處理的一個或一個以上二 進位指令。在一個方面中,本發明是針對一種方法,其包括接收供在可編程串流處理器內
10執行的圖形指令;接收對所述圖形指令的執行的數據精度的指示;以及接收轉換指令, 所述轉換指令在由所述處理器執行時將與所述圖形指令相關聯的圖形數據轉換到所指示 的數據精度,其中所述轉換指令不同於所述圖形指令。所述方法進一步包括基於所述所 指示的數據精度來選擇所述處理器內的多個執行單元中的一者,以及使用所述選定執行 單元以使用與所述圖形指令相關聯的圖形數據來在所述所指示的數據精度下執行所述圖 形指令。在一個方面中,本發明是針對一種計算機可讀媒體,其包括用於使可編程串流 處理器進行以下操作的指令接收供在所述處理器內執行的圖形指令;接收對所述圖形 指令的執行的數據精度的指示;以及接收轉換指令,所述轉換指令在由所述處理器執行 時將與所述圖形指令相關聯的圖形數據轉換到所指示的數據精度,其中所述轉換指令不 同於所述圖形指令。所述計算機可讀媒體進一步包括用於使所述處理器進行以下操作的 指令基於所述所指示的數據精度來選擇所述處理器內的多個執行單元中的一者,以及 使用所述選定執行單元以使用與所述圖形指令相關聯的圖形數據來在所述所指示的數據 精度下執行所述圖形指令。在一個方面中,本發明是針對一種可編程串流處理器,其包括一控制器及多個 執行單元。所述控制器經配置以接收供執行的圖形指令及接收對所述圖形指令的執行的 數據精度的指示。所述控制器還經配置以接收轉換指令,所述轉換指令在由所述處理器 執行時將與所述圖形指令相關聯的圖形數據轉換到所指示數據精度,其中所述轉換指令 不同於所述圖形指令。當可操作時,所述控制器基於所指示的數據精度來選擇所述執行 單元中的一者。所述控制器接著使所述選定執行單元使用與所述圖形指令相關聯的圖形 數據在所指示數據精度下執行所述圖形指令。在另一方面中,本發明是針對一種計算機可讀媒體,其包括用於使處理器進行 以下操作的指令分析圖形應用程式的多個應用程式指令;以及對於指定執行的第一數 據精度級別的每一應用程式指令,產生各自指示執行的所述第一數據精度級別的一個或 一個以上對應經編譯指令。所述計算機可讀媒體包括用於使所述處理器進行以下操作的 其它指令產生一個或一個以上轉換指令以在所述一個或一個以上經編譯指令經執行時 將圖形數據從第二不同數據精度級別轉換到所述第一數據精度級別。在一個方面中,本發明是針對一種計算機可讀數據存儲媒體,其具有一個或一 個以上第一可執行指令,所述一個或一個以上第一可執行指令在由可編程串流處理器執 行時支持圖形應用程式的一個或一個以上功能,其中所述第一可執行指令中的每一者指 示其執行的第一數據精度級別。所述計算機可讀數據存儲媒體進一步包括一個或一個以 上第二可執行指令,所述一個或一個以上第二可執行指令在由所述處理器執行時支持所 述圖形應用程式的一個或一個以上功能,其中所述第二可執行指令中的每一者指示其執 行的不同於所述第一數據精度級別的第二數據精度級別。所述計算機可讀數據存儲媒體 進一步包括一個或一個以上第三可執行指令,所述一個或一個以上第三可執行指令在由 所述處理器執行時支持所述圖形應用程式的一個或一個以上功能,其中所述第三可執行 指令中的每一者在所述一個或一個以上第一可執行指令經執行時將圖形數據從所述第二 數據精度級別轉換到所述第一數據精度級別。在隨附圖式及以下描述中闡述本發明的一個或一個以上方面的細節。其它特
11徵、目標及優點將從描述及圖式以及從權利要求書而顯而易見。


圖1為根據本發明的一方面說明可包括於圖形處理系統內的各種組件的框圖。圖2A為根據本發明的一方面說明包括可編程著色器處理器的示範性圖形處理系 統的框圖。圖2B為根據本發明的一方面說明圖2A中所示的著色器處理器的其它細節的框 圖。圖2C為根據本發明的一方面說明圖2B中所示的執行單元及寄存器組的其它細 節的框圖。圖3為根據本發明的一方面說明可由圖2A到圖2B中所示的著色器處理器執行 的示範性方法的流程圖。圖4為根據本發明的一方面說明可用以產生待由圖1中所示的串流處理器或由圖 2A到圖2B中所示的著色器處理器執行的圖形指令的編譯器的框圖。
具體實施例方式圖1為根據本發明的一個方面說明可包括於圖形處理系統內的各種組件的框 圖。此圖形處理系統可為獨立系統或可為例如計算系統或無線通信裝置(例如,無線通 信裝置手持機)等較大系統的部分,或數位相機或其它視頻裝置的部分。圖1中所示的示 範性系統可包括一個或一個以上圖形應用程式102A到102N、圖形裝置100,及外部存儲 器104。圖形裝置100可通信地耦合到外部存儲器104及圖形應用程式102A到102N中 的每一者。在一個方面中,圖形裝置100可包括於一個或一個以上集成電路或晶片上。圖形應用程式102A到102N可包括各種不同應用程式,例如視頻遊戲、視頻、 相機,或其它圖形或串流應用程式。這些圖形應用程式102A到102N可同時運行且各自 能夠產生執行線程以實現所要結果。線程指示可用一個或一個以上圖形指令的序列來執 行的特定任務。線程允許圖形應用程式102A到102N具有同時執行的多個任務且共享資 源。圖形裝置100從圖形應用程式102A到102N接收線程且執行由這些線程指示的 任務。在圖1中所示的方面中,圖形裝置100包括可編程串流處理器106、一個或一個以 上圖形引擎108A到108N,及一個或一個以上存儲器模塊IlOA到110N。處理器106可 執行各種圖形操作(例如,著色),且可計算某些應用程式的超越初等函數。在一個方面 中,處理器106可包含用於移動圖形應用程式的基於指令的適應性串流處理器。圖形引 擎108A到108N可執行其它圖形操作(例如,紋理映射)。存儲器模塊IlOA到IlON可 包括一個或一個以上高速緩衝存儲器以存儲用於處理器106及圖形引擎108A到108N的 數據及圖形指令。圖形引擎108A到108N可包括執行各種圖形操作(例如,三角形設置、光柵化、 模板及深度測試、屬性設置和/或像素內插)的一個或一個以上引擎。外部存儲器104 可相對於存儲器模塊IlOA到IlON為大、較緩慢的存儲器。在一個方面中,外部存儲器 104位於距圖形裝置100較遠處(例如,晶片外)。外部存儲器104存儲可加載到存儲器
12模塊1IOA到1ION中的一者或一者以上中的數據及圖形指令。在一個方面中,處理器106能夠使用不同執行單元來執行混合精度(例如,全精 度、半精度)圖形指令,假定不同圖形應用程式102A到102N可具有關於ALU精度、性 能及輸入/輸出格式的不同要求。作為一實例,處理器106可包括一個或一個以上全精 度執行單元以及一個或一個以上部分精度執行單元。所述部分精度執行單元可為(例如) 半精度執行單元。處理器106可使用其執行單元來執行圖形應用程式102A到102N中的 一者或一者以上的圖形指令。在接收到二進位指令(例如,來自外部存儲器104或存儲 器模塊IlOA到IlON中的一者)且還接收到對所述圖形指令的執行的數據精度的指示後, 處理器106即可選擇適當執行單元以用於使用圖形數據來在所指示的數據精度下執行所 接收到的指令。處理器106也可接收一單獨轉換指令,所述單獨轉換指令在經執行時將 與所述圖形指令相關聯的圖形數據轉換到所指示的數據精度。在一個方面中,所述轉換 指令為不同於所述圖形指令的單獨指令。圖形數據可由圖形應用程式102A到102N提供,或可從外部存儲器104或存儲器 模塊IlOA到IlON中的一者檢索,或可由圖形引擎108A到108N中的一者或一者以上提 供。通過基於所指示的數據精度在不同執行單元中選擇性地執行指令,處理器106可避 免使用單一執行單元來執行全精度指令及半精度指令兩者。另外,圖形應用程式102A到 102N的程式設計師在編寫應用程式代碼時可具有增大的靈活性。舉例來說,一應用程式程序 員可為應用程式指令指定數據精度級別,所述數據精度級別接著經編譯成通過處理器106 處理的一個或一個以上二進位指令。處理器106基於與執行單元及二進位指令相關聯的 數據精度來選擇適當執行單元來執行所述二進位指令。另外,必要時,處理器106可執 行所接收到的轉換指令以將與所述指令相關聯的圖形數據轉換到所指示的數據精度。舉 例來說,如果所提供的圖形數據具有不同於所指示的數據精度的數據精度,則處理器106 可執行所述轉換指令以將所述圖形數據轉換到所指示的數據精度,使得圖形指令可通過 所選定的執行單元執行。圖2A為根據一個方面說明包括可編程著色器處理器206的示範性圖形處理系統 的框圖。在此方面中,圖2A中所示的圖形處理系統為圖1中所示的更普通系統的示範 性例示。在一個方面中,著色器處理器206為串流處理器。在圖2A中,所述示範性系 統包括各自通信地耦合到圖形裝置200的兩個圖形應用程式202A及202B。在圖2A的 實例中,圖形應用程式202A為能夠處理及管理圖形成像像素數據的像素應用程式。在 圖2A的實例中,圖形應用程式202B為能夠處理及管理圖形成像頂點數據的頂點應用程 序。在一個方面中,圖形像素應用程式202A包含像素處理應用程式,且圖形頂點應用程 序202B包含頂點處理應用程式。在許多情況下,圖形像素應用程式202A實施使用較低精度(例如,半精度)數 據格式的許多功能,但其可實施使用較高精度(例如,全精度)數據格式的某些功能。圖 形像素應用程式202A也可指定像素數據的指令的以四元組為基礎的執行。通常,圖形頂 點應用程式202B實施使用較高精度數據格式的功能,但可能不指定頂點數據的指令的以 四元組為基礎的執行。因此,不同應用程式(例如,應用程式202A及202B)及到圖形 裝置200的對應API可指定不同數據精度要求。且,在給定應用程式202A或202B (及 對應API)內,可指定混合精度指令的執行。舉例來說,用於圖形像素應用程式202A的著色語言可為待由著色器處理器206執行的著色器指令提供精度修改器。因此,某些指 令可指定執行的一個精度級別,而其它指令可指定另一精度級別。圖形裝置200內的著 色器處理器206能夠以均勻方式來執行混合精度指令。在一個方面中,著色器處理器206經由一個或一個以上應用程式接口或API(未 圖示)與圖形應用程式202A及202B相互作用。舉例來說,圖形像素應用程式202A可 經由第一 API與著色器處理器206相互作用,且圖形頂點應用程式202B可經由第二 API 與著色器處理器206相互作用。在一個方面中,第一 API及第二 API可包含一共同API。 所述API可界定由圖形應用程式202A及202B用以使圖形裝置200執行各種圖形操作(包 括可由著色器處理器206執行的著色操作)的一個或一個以上標準編程規範。圖形裝置200包括著色器處理器206。著色器處理器206能夠執行著色操作。 著色器處理器206能夠與圖形像素應用程式202A交換像素數據,且進一步能夠與圖形頂 點應用程式202B交換頂點數據。在圖2A的實例中,著色器處理器206還與紋理引擎208及高速緩存存儲器系統 210通信。紋理引擎208能夠執行紋理相關操作,且還通信地耦合到高速緩存存儲器系統 210。高速緩存存儲器系統210耦合到主存儲器204。在一方面中,高速緩存存儲器系統 210包括指令高速緩衝存儲器及數據高速緩衝存儲器兩者。指令和/或數據可從主存儲器 204加載到高速緩存存儲器系統210中,接著使指令和/或數據可用於紋理引擎208及著 色器處理器206。著色器處理器206可經由同步或非同步接口與外部裝置或組件通信。在一個方面中,著色器處理器206能夠使用不同執行單元來執行混合精度圖形 指令。在此方面中,著色器處理器206包括一個或一個以上全精度執行單元以及一個 或一個以上半精度執行單元。著色器處理器206可調用其執行單元以執行圖形應用程式 202A及202B中的一者或兩者的圖形指令。在接收到二進位指令(例如,來自高速緩存 存儲器系統210)且還接收到對所述指令的執行的數據精度的指示後,著色器處理器206 即能夠選擇一適當執行單元以用於使用圖形數據來在所指示的數據精度下執行所接收到 的指令。圖形像素應用程式202A可將(例如)像素數據提供到著色器處理器206,且圖 形頂點應用程式202B可將頂點數據提供到著色器處理器206。著色器處理器也可接收一單獨轉換指令,所述單獨轉換指令在經執行時將與所 述圖形指令相關聯的圖形數據轉換到所指示的數據精度。在一個方面中,所述轉換指令 為不同於所述圖形指令的單獨指令。圖形數據也可從主存儲器204或高速緩存存儲器系統210加載,或可由紋理引擎 208提供。圖形像素應用程式202A和/或圖形頂點應用程式202B調用使著色器處理器 206從高速緩存存儲器系統210加載供執行的一個或一個以上二進位指令的執行線程。在 一個方面中,每一經加載指令指示所述指令的執行的數據精度。另外,必要時,著色器 處理器206可執行所接收到的轉換指令以將與所述指令相關聯的圖形數據轉換到所指示 的數據精度。舉例來說,如果所提供的圖形數據具有不同於所指示的數據精度的數據精 度,則著色器處理器206可執行所述轉換指令以將所述圖形數據轉換到所指示的數據精 度,使得圖形指令可通過所選定的執行單元執行。通過基於所指示的數據精度在不同執 行單元中選擇性地執行指令,著色器處理器206可避免使用單一執行單元來執行全精度 指令及半精度指令兩者。
14
圖2B為根據一個方面說明圖2A中所示的著色器處理器206的其它細節的框圖。 在著色器處理器206內,定序器222從圖形應用程式202A及202B接收線程,且將這些 線程提供到線程調度器與現場寄存器224。在一個方面中,定序器222包含一多路復用器 (MUX)。在一個方面中,定序器222確定應接受哪些線程,且也可為每一所接受的線程 分配多重精度寄存器空間和/或其它資源。舉例來說,定序器222可為半精度指令分配 寄存器空間,且也可為全精度指令分配寄存器空間。在一個方面中,從圖形像素應用程式202A接收到的像素數據包括呈以像素四元 組為基礎的格式(即,每次四個像素)的屬性信息。在此方面中,執行單元234每次可 處理四個像素。在一個方面中,執行單元234可每次一個頂點地處理來自圖形頂點應用 程序202B的數據。線程調度器224執行各種功能以對線程的執行進行調度及管理,且可控制線程 的執行順序。根據一個方面,對於每一線程,線程調度器224可確定所述線程所需的資 源是否準備好,在用於所述線程的任何資源(例如,指令、寄存器堆或紋理讀取)未準 備好時將所述線程推到一休眠隊列中,及在所述資源全部準備好時將所述線程從所述休 眠隊列移動到一活動隊列。線程調度器224與加載控制單元226介接以便同步用於所述 線程的資源。在一個方面中,線程調度器224為控制器225的部分。圖2B展示控制器 225的一實例。控制器225可控制與著色器處理器206內的指令及數據的處理有關的各種 功能。在圖2B的實例中,控制器225包括線程調度器224、加載控制單元226及主引擎 220。在某些方面中,控制器225包括主引擎220、線程調度器224及加載控制單元226 中的至少一者。線程調度器224還管理線程的執行。線程調度器224從指令高速緩衝存儲器230 取得每一線程的指令、在必要時對每一指令進行解碼,及執行對所述線程的流控制。線 程調度器224選擇供執行的活動線程、檢查所述選定線程當中的讀取/寫入埠衝突,且 在不存在衝突時將用於一個線程的指令發送到執行單元234,及將用於另一線程的指令發 送到加載控制單元226。線程調度器224維持用於每一線程的程序/指令計數器,且隨著 執行指令或更改程序流而更新此計數器。線程調度器224還發出從指令高速緩衝存儲器 230取得缺失指令且移除所完成的線程的請求。在一個方面中,線程調度器224與主引擎220相互作用。在此方面中,線程調 度器224可將某些職責委託給主引擎220。在一個方面中,線程調度器224可對供執行的 指令進行解碼,或可維持用於每一線程的程序/指令計數器且隨著執行指令而更新此計 數器。在一個方面中,主引擎220設置指令執行的狀態,且也可在指令執行期間控制狀 態更新序列。指令高速緩衝存儲器230存儲用於所述線程的指令。這些指令指示待為每一線 程執行的特定操作。每一操作可為(例如)算術運算、初等函數、存儲器存取操作或另 一形式的指令。在需要時,指令高速緩衝存儲器230可經由加載控制單元226來加載有 來自高速緩存存儲器系統210或主存儲器204 (圖2A)的指令。根據一個方面,這些指令 為已從圖形應用程式代碼編譯的二進位指令。每一二進位指令指示用於其在著色器處理 器206內的執行的數據精度。舉例來說,與所述指令相關聯的指令類型可指示所述指令 是全精度指令還是半精度指令。或,根據一個示範性方面,所述指令內的一特定旗標或欄位可指示其是全精度指令還是半精度指令。線程調度器224可能能夠對指令進行解碼 且確定每一指令的數據精度(例如,全精度或半精度)。線程調度器224可接著將每一 指令路由到一能夠在所指示數據精度下執行指令的執行單元。此執行單元從常數緩衝器 232或寄存器組242加載指令執行所需的任何圖形數據,在下文對常數緩衝器232或寄存 器組242進行更詳細描述。在圖2B中所示的方面中,執行單元234包括一個或一個以上全精度ALU(算術 邏輯單元)236、一個或一個以上半精度ALU 240,及一執行超越初等運算的初等函數單 元238。ALU 236及240可包括一個或一個以上浮點單元(其實現浮點計算)和/或一 個或一個以上整數邏輯單元(其實現整數及邏輯運算)。在必要時,執行單元234在指 令執行期間從常數緩衝器232或從寄存器組242載入數據(例如,圖形數據)。全精度 ALU236及半精度ALU 240兩者能夠執行算術運算(例如,加法、減法、乘法、倍增及 累積等)且還能夠執行邏輯運算(例如,AND、OR、XOR等)。根據一個方面,每一 ALU單元可包含單一四元組ALU或四個標量ALU。當使用四個標量ALU時,可通過 ALU並行地處理四個像素的屬性。可使用一四元組ALU來並行地處理一像素或一頂點 的四個屬性。然而,全精度ALU 236使用全精度計算來執行指令,而半精度ALU 240使 用半精度計算來執行指令。初等函數單元238可計算超越初等函數(例如,正弦、餘弦、倒數、對數、指 數、平方根或反平方根),其廣泛用於著色器指令中。初等函數單元238可通過在比使用 簡單指令來執行對初等函數的多項式近似所需的時間少得多的時間中計算所述初等函數 來改善著色器性能。根據本發明的一個方面,初等函數單元238可能能夠在全精度下執 行指令,但也可能能夠將計算結果轉換到半精度格式。加載控制單元226(在圖2B中所示的示範性方面中,其為控制器225的部分)控 制著色器處理器206內的各種組件的數據及指令的流。在一個方面中,加載控制單元226 可將著色器處理器206的過多內部數據逐出到外部存儲器(例如,高速緩存存儲器系統 210),且可從紋理引擎208和/或高速緩存存儲器系統210取得外部資源(例如,指令、 緩衝器或紋理數據)。加載控制單元226與高速緩存存儲器系統210介接且使指令高速緩 衝存儲器230、常數緩衝器232 (其可存儲在圖形應用程式202A和/或202B的指令執行 期間所使用的均勻數據)及寄存器組242加載有來自高速緩存存儲器系統210的數據及指 令。加載控制單元226也可將來自寄存器組242的輸出數據提供到高速緩存存儲器系統 210。寄存器組242可接收來自一個或一個以上執行單元234的輸出數據,且可在執行單 元234當中共享。加載控制單元226還與紋理引擎208介接。在某些情況下,紋理引擎 208可經由加載控制單元226將數據(例如,紋理數據)提供到著色器處理器206,且在 某些情況下,加載控制單元226可將數據(例如,紋理坐標數據)和/或指令(例如,取 樣器ID指令)提供到紋理引擎208。在圖2B的實例中,加載控制單元226還包括精度轉換器228。因為寫入到加載 控制單元226中或讀取出加載控制單元226的數據可具有不同數據精度(例如,全精度、 半精度),所以加載控制單元226可能需要在將某些數據路由到不同組件(例如,到寄存 器組242或到高速緩存存儲器系統210)之前將其轉換到不同數據精度級別。精度轉換器 228管理在加載控制單元226內的此數據轉換。
16
在一個方面中,精度轉換器228操作以在由著色器處理器206執行所接收到的轉 換指令後即將圖形數據從一個精度級別轉換到另一精度級別。當經執行時,轉換指令將 與一接收到的圖形指令相關聯的圖形數據轉換到所指示的數據精度。舉例來說,所述轉 換指令可將半精度格式的數據轉換到全精度格式,或將全精度格式的數據轉換到半精度 格式。常數緩衝器232可存儲在指令執行期間由執行單元234使用的常數值。寄存器 組242存儲來自執行單元234的所執行線程的臨時結果以及最終結果。寄存器組242包 括一個或一個以上全精度寄存器組244及一個或一個以上半精度寄存器組246。可通過 加載控制單元226從寄存器組242讀取最終執行結果。另外,分配器248也可從寄存器 組242接收所執行線程的最終結果且將這些結果分配到圖形頂點應用程式202B及圖形像 素應用程式202A中的至少一者。圖形應用程式(例如,應用程式202A及202B)可能需要使用不同精度級別來處 理數據。舉例來說,在一個方面中,圖形頂點應用程式202B使用全精度數據格式來處理 頂點數據,而圖形像素應用程式202A使用半精度格式來處理像素數據。在一個方面中, 圖形像素應用程式202A使用半精度格式來處理某些信息,而使用全精度格式來處理其它 信息。在來自圖形頂點應用程式202B及圖形像素應用程式202A的線程的執行期間,著 色器處理器206接收及處理來自指令高速緩衝存儲器230的針對執行使用不同數據精度級 別的指令。因此,在圖2B中所示的方面中,線程調度器224識別所指示的或與從指令高速 緩衝存儲器230加載出的給定指令相關聯的數據精度,且將所述指令路由到一適當執行 單元。舉例來說,如果將所述指令作為全精度指令(例如,經由指令類型或所述指令內 所含有的欄位/標頭來指示)來解碼,則線程調度器224能夠將所述指令路由到全精度 ALU236中的一者以供執行。來自全精度ALU 236的執行結果可存儲於全精度寄存器組 244中的一者或一者以上中且經由分配器248而提供回到圖形應用程式(例如,圖形頂點 應用程式202B)。然而,如果來自指令高速緩衝存儲器230的指令作為半精度指令由線 程調度器224來解碼,則線程調度器224能夠將所述指令路由到半精度ALU 240中的一者 以供執行。來自半精度ALU240的執行結果可存儲於半精度寄存器組246中的一者或一 者以上中且經由分配器248而提供回到圖形應用程式(例如,圖形像素應用程式202A)。圖2C為根據一個方面說明圖2B中所示的執行單元234及寄存器組242的其它細 節的框圖。如先前所描述,執行單元234包括各種不同類型的執行單元。在圖2C的實 例中,執行單元234包括一個或一個以上全精度ALU 236A到236N、一個或一個以上半 精度ALU 240A到240N,及一個或一個以上初等函數單元238。每一全精度ALU 236A 到236N能夠使用數據來使用全精度計算來執行指令。在指令執行期間使用的輸入數據 可從全精度寄存器組244A到244N(在寄存器組242內)中的一者或一者以上檢索。另 外,在由全精度ALU 236A到236N執行指令期間所產生的計算結果可存儲於全精度寄存 器組244A到244N中的一者或一者以上內。類似地,每一半精度ALU 240A到240N能夠使用數據來使用半精度計算來執行 指令。在指令執行期間使用的輸入數據可從半精度寄存器組246A到246N中的一者或一 者以上檢索。另外,在由半精度ALU 240A到240N執行指令期間所產生的計算結果可存儲於半精度寄存器組246A到246N中的一者或一者以上內。如先前所描述,初等函數單元238能夠執行全精度指令,但以半精度格式來存 儲結果。在一個方面中,初等函數單元238能夠以全精度格式或半精度格式來存儲結果 數據。結果,初等函數單元238通信地耦合到全精度寄存器組244A到244N,且還通信 地耦合到半精度寄存器組246A到246N。根據一個方面,初等函數單元238可從寄存器 組242內的寄存器中的任一者檢索中間數據且將最終結果數據存儲到所述寄存器中的任 「"者 ο另外,初等函數單元238包括精度轉換器239。在初等函數單元238在全精度 數據格式與半精度數據格式之間轉換的那些情況下,其可使用精度轉換器239來執行所 述轉換。舉例來說,單元238可從半精度寄存器組246A加載輸入圖形數據且使用所述 數據來執行全精度指令。精度轉換器239可將所述輸入數據從半精度格式轉換到全精度 格式。單元238可接著使用經轉換的數據來執行全精度指令。如果結果數據將存儲回到 半精度寄存器組246A中,則精度轉換器239可將結果數據從全精度格式轉換到半精度格 式,使得其可存儲於半精度寄存器組246A中。或者,如果結果數據將存儲於全精度寄存 器組244A到244N中的一者中,則呈全精度格式的結果數據可直接存儲於這些寄存器中 的一者中。 線程調度器224 (圖2B)能夠使二進位指令從指令高速緩衝存儲器230加載且基 於與所述指令相關聯的數據精度來在執行單元234中的一者中執行。舉例來說,線程調 度器224可將全精度指令路由到全精度ALU 236A到236N中的一者或一者以上,且可將 半精度指令路由到半精度ALU 240A到240N中的一者或一者以上。線程調度器224也 可將初等指令路由到初等函數單元238以供執行。結果數據可存儲於寄存器組242內的 對應寄存器中。在一個方面中,全精度ALU 236A到236N、初等函數單元238與半精度 ALU 240A到240N之間的數據轉變經過寄存器組242。在一個方面中,與每一全精度寄存器組244A到244N相比,每一半精度寄存器 組246A到246N含有較小寄存器存儲空間,且在集成電路上佔據較小物理空間。因此, 舉例來說,與全精度寄存器組244A相比,半精度寄存器組246A含有較小寄存器存儲空 間且佔據較小物理空間。在一個方面中,一個全精度寄存器組(例如,組244A)可含有 與兩個半精度寄存器組(例如,組合的組246A與246B)大體上相同量的寄存器空間,且 佔據與其大體上相同量的物理空間。類似地,每一全精度ALU 236A到236N可比每一半精度ALU 240A到240N佔 據集成電路內的更多物理空間。另外,每一全精度ALU 236A到236N通常可使用比每一 半精度ALU240A到240N多的操作功率。因此,在某些方面中,可能需要限制所使用的 全精度ALU及全精度寄存器組的數目,且增大所使用的半精度ALU及半精度寄存器組的 數目,以便最小化集成電路大小且減少功率消耗要求。當著色器處理器206為例如移動 或無線通信裝置(例如,例如移動無線電電話或無線通信裝置手持機)或數位相機或視頻 裝置等具有某些功率約束的較小計算裝置的部分時,這些方面可尤其適當或有益。因此,在一個方面中,執行單元234可僅包括一個全精度ALU 236A,且寄存器 組242可僅包括一個全精度寄存器組244A。在此方面中,執行單元234可進一步包括四 個半精度ALU 240A到240D,而寄存器組242可包括四個半精度寄存器組246A到246D。
18結果,執行單元234可能能夠並行地執行至少一個半精度指令及一個全精度指令。舉例 來說,所述四個半精度ALU 240A到240D可每次執行關於四個像素的屬性的指令。根據 一個方面,因為僅使用一個全精度ALU 236A,所以ALU 236A能夠每次執行關於一個頂 點的指令。結果,根據一個方面,著色器處理器206不需要利用頂點裝填緩衝器以裝填 多個頂點的數據。在此情況下,可直接處理頂點的基於向量的屬性數據,而無需將數據 轉換到標量格式。在另一方面中,執行單元234可包括四個全精度ALU 236A到236D,且寄存器 組242可包括四個全精度寄存器組244A到244D。在此方面中,執行單元234可進一步 包括八個半精度ALU 240A到240H,而寄存器組242可包括八個半精度寄存器組246A到 246H。結果,執行單元234能夠並行地執行(例如)兩個四元組上的兩個半精度指令及 一個四元組上的一個全精度指令。每一四元組或線程為四個像素或四個頂點的群組。在另一方面中,執行單元234可包括四個全精度ALU 236A到236D,且寄存器 組242可包括四個全精度寄存器組244A到244D。在此方面中,執行單元234進一步包括 四個半精度ALU 240A到240H,而寄存器組242包括四個半精度寄存器組246A到246H。 可使用全精度ALU 236A到236N、全精度寄存器組244A到244N、半精度ALU 240A到 240N及半精度寄存器組246A到246N的各種其它組合。在一個方面中,著色器處理器206可能能夠使用線程調度器224以對全精度 ALU236A到236N中的一者或一者以上及全精度寄存器組244A到244N中的一者或一者 以上選擇性地斷電或停用。在此方面中,儘管著色器處理器206包括一個或一個以上集 成電路內的各種全精度組件(例如,全精度ALU236A到236N及全精度寄存器組244A到 244N),但其可通過在不使用這些全精度組件中的一者或一者以上時對這些全精度組件中 的一者或一者以上選擇性地斷電或停用來節省或減少功率消耗。舉例來說,在某些情形 下,著色器處理器206可確定這些組件中的一者或一者以上未被使用,假定所加載的各 種二進位指令將由半精度ALU240A到240N中的一者或一者以上執行。因此,在這些類 型的情形下,著色器處理器206可對所述全精度組件中的一者或一者以上選擇性地斷電 或停用以用於功率節省。以此方式,著色器處理器206可依據給定時間處所處理的指令 的類型及數目而以動態為基礎對一個或一個以上全精度組件選擇性地斷電或停用。在一個方面中,著色器處理器206也可能能夠使用線程調度器224以對半精度 ALU240A到240N中的一者或一者以上及半精度寄存器組246A到246N中的一者或一者 以上選擇性地斷電或停用。在此方面中,著色器處理器206可通過在不使用或不需要這 些半精度組件中的一者或一者以上時對這些半精度組件中的一者或一者以上選擇性地斷 電或停用來節省或減少功率消耗。著色器處理器206可提供各種益處及優點。舉例來說,著色器處理器206可提 供高靈活及適應性接口以滿足混合精度指令(例如,全精度指令及半精度指令)的執行的 不同要求。著色器處理器206可通過在混合精度指令的執行期間避免不必要的精度提升 來顯著地減少功率消耗。(當著色器處理器206將數據從例如半精度格式等較低精度格式 動態地轉換到例如全精度格式等較高精度格式時,精度提升可發生。精度提升可能在著 色器處理器206內需要額外電路,且也可使著色器核心處理花費額外時鐘循環。)因為 線程調度器224能夠辨識與從指令高速緩衝存儲器230加載的二進位指令相關聯的數據精度,所以線程調度器224能夠將所述指令路由到執行單元234內的適當執行單元(例如, 全精度ALU 236A或半精度ALU 240A)以供執行。著色器處理器206也可通過利用較少全精度組件及通過替代地利用更多半精度 組件(例如,ALU及寄存器組)來減小寄存器組242中的總寄存器堆大小及執行單元234 中的ALU大小。另外,著色器處理器206可通過增大處理能力來增大總系統性能。鑑於與較低功率消耗及增大的性能有關的各種潛在益處,著色器處理器206可 用於各種不同類型的系統或裝置中,例如無線通信裝置、數位相機裝置、視頻記錄或顯 示裝置、視頻遊戲裝置,或其它圖形及多媒體裝置。這些裝置可包括一顯示器以使用著 色器處理器206來呈現所產生的圖形內容。在一個方面中,由著色器處理器206提供的 精度靈活性允許其與各種裝置(包括多媒體裝置)一起使用,此可提供比某些其它圖形應 用程序低的精度計算或具有比某些其它圖形應用程式低的功率要求。圖3為根據一個方面說明可通過圖2A到圖2B中所示的著色器處理器206執行 的示範性方法的流程圖。在此方面中,所述示範性方法包括動作300、302、303、306、 308、310及312,且還包括決策點304。在動作300中,著色器處理器206接收二進位圖形指令及對所述指令的執行的 數據精度的指示。舉例來說,如先前所描述,線程調度器224可從指令高速緩衝存儲器 230(圖2B)加載指令。在一個方面中,通過線程調度器224對指令進行解碼提供關於所 述指令的執行的數據精度的信息。舉例來說,所述指令可為全精度指令或半精度指令。在動作302中,著色器處理器206接收與所述二進位指令相關聯的圖形數據。舉 例來說,定序器222可從圖形頂點應用程式202B接收頂點數據和/或可從圖形像素應用 程序202A接收像素數據。在某些情形下,加載控制單元226也可從高速緩存存儲器系 統210加載與所述指令相關聯的圖形數據。在動作303中,著色器處理器206進一步接 收一轉換指令,所述轉換指令在經執行時將與所述二進位指令相關聯的圖形數據轉換到 所指示的數據精度。在決策點304處,著色器處理器206確定所述指令是全精度指令還是半精度指 令。如上所述,在一個方面中,線程調度器224可對所述指令進行解碼且確定其是全精 度指令還是半精度指令。如果所述指令為全精度指令,則在動作306中,在必要時,著色器處理器206將 任何接收到的圖形數據從半精度格式轉換到全精度格式。在某些情況下,所接收到的圖 形數據(如存儲於高速緩存存儲器系統210中或如從圖形應用程式202A或202B處理) 可具有半精度格式。在此情況下,將所述圖形數據轉換到全精度格式,使得其可在全精 度指令的執行期間使用。在一個方面中,當接收到的轉換指令由著色器處理器206執行 時,加載控制單元226的精度轉換器228可管理數據格式轉換。在動作308中,著色器 處理器206選擇一全精度單元(例如,單元236A(圖2C))以使用所述圖形數據來執行所 述二進位指令。然而,如果所述指令為半精度指令,則在動作310中,在必要時,著色器處理 器將任何數據從全精度格式轉換到半精度格式。在一個方面中,當接收到的轉換指令由 著色器處理器206執行時,精度轉換器228可管理數據格式轉換。在動作312中,著色 器處理器206接著選擇一半精度單元(例如,單元240A(圖2C))以使用所述圖形數據來
20執行所述二進位指令。圖4為根據一個方面說明可用以產生待由圖1中所示的串流處理器106或由圖 2A到圖2B中所示的著色器處理器206執行的指令的編譯器402的框圖。在一個實例方 面中,編譯器402用以產生待由著色器處理器206執行的指令。在此方面中,應用程式 開發者可使用編譯器402來產生供著色器處理器206執行的二進位指令(代碼)。著色器 處理器206為圖形裝置200 (圖2A)的部分。應用程式開發者可存取供與圖形裝置200 — 起使用的應用程式開發平臺,且可產生用於圖形像素應用程式202A和/或圖形頂點應用 程序202B的應用級軟體。此應用級軟體包括圖4中所示的圖形應用程式指令400。圖 形應用程式指令400可包括通過符合或可轉譯成DirectX 、OpenGL 、OpenVG 或其它 語言的高級著色語言所寫的指令。在一個方面中,這些著色語言界定可用於開發編程代 碼以執行圖形操作的一個或一個以上標準API。編譯器402可至少部分由處理器所執行的編譯器軟體支持以接收及處理原始碼 指令且編譯這些指令以產生經編譯指令(例如,呈二進位、可執行機器指令的形式)。因 此,編譯器402可由執行與所述編譯器軟體相關聯的計算機可讀指令的一個或一個以上 處理器形成。在一個方面中,這些一個或一個以上處理器可為應用程式開發者所使用的 應用程式開發平臺的部分或實施於所述應用程式開發平臺中。所述經編譯指令可存儲於 一計算機可讀數據存儲媒體上以供一個或一個以上處理器(例如,串流處理器106或著色 器處理器206)檢索及執行。舉例來說,本發明涵蓋一種計算機可讀數據存儲媒體,其包 括一個或一個以上第一可執行指令、一個或一個以上第二可執行指令及一個或一個以上 第三可執行指令。所述第一可執行指令在由處理器執行時可支持一圖形應用程式的一個或一個以 上功能。另外,所述第一可執行指令中的每一者可指示用於其執行的第一數據精度級 別。所述第二可執行指令在由處理器執行時可支持所述圖形應用程式的一個或一個以上 功能。另外,所述第二可執行指令中的每一者可指示用於其執行的不同於所述第一數據 精度級別的第二數據精度級別。所述第三可執行指令在由所述處理器執行時也可支持所 述圖形應用程式的一個或一個以上功能,其中所述第三可執行指令中的每一者在所述一 個或一個以上第一可執行指令經執行時將圖形數據從所述第二數據精度級別轉換到所述 第一數據精度級別編譯器402可能能夠將圖形應用程式指令400編譯成二進位圖形指令404,二進 製圖形指令404接著能夠由著色器處理器206執行。著色器處理器206可從一數據存儲 媒體(例如,存儲器或數據存儲裝置)檢索這些指令,且執行這些指令以執行計算及其它 操作來支持圖形應用程式。圖形應用程式指令400中的若干者可指定執行的特定數據精 度級別。舉例來說,某些指令可指定其使用全精度或半精度操作或計算。編譯器402可 經配置以應用規則406來在編譯過程期間分析及剖析圖形應用程式指令400且產生指示指 令404的執行的數據精度級別的對應二進位指令圖形404。因此,如果圖形應用程式指令400中的一者指定全精度操作或計算,則編譯器 402的規則406可產生二進位指令404中的為全精度指令的一者或一者以上。如果圖形應 用程序指令400中的另一者指定半精度操作或計算,則規則406產生二進位指令404中的 為半精度指令的一者或一者以上。在一個方面中,二進位指令404各自可包括一指示所述指令為全精度指令還是半精度指令的『操作碼』。在一個方面中,二進位指令404各 自可使用可由著色器處理器206進行解碼的指令的另一預定義欄位、旗標或標頭內所含 有的信息來指示所述指令的執行的數據精度。在一個方面中,可基於待執行的指令的類 型來推斷數據精度。編譯器402還包括能夠產生在不同數據精度級別之間轉換的二進位轉換指令410 的規則408。在編譯期間,編譯器402的這些規則408可確定此轉換在二進位指令404的 執行期間可為必要的。舉例來說,規則408可產生轉換指令410內的將數據從全精度格 式轉換到半精度格式的一個或一個以上指令。當著色器處理器206執行圖形指令404內 的半精度指令時,可能需要此轉換。規則408也可產生轉換指令410內的將數據從半精 度格式轉換到全精度格式的一個或一個以上指令,當著色器處理器206執行圖形指令404 內的全精度指令時,可能需要此轉換。根據一個方面,當編譯器402的規則408產生轉換指令410時,著色器處理器 206可執行這些轉換指令410以在對應圖形指令404的執行期間管理數據精度轉換。在 此方面中,轉換指令410的執行管理此精度轉換,使得著色器處理器206未必需要使用某 些硬體轉換機制來將數據從一個精度級別轉換到另一精度級別。轉換指令410也可允許 更有效地將數據傳送到使用不同精度級別的ALU(例如,到全精度ALU 236及到半精度 ALU 240)。本文中所描述的組件及技術可以硬體、軟體、固件或其任何組合來實施。描述 為模塊或組件的任何特徵可一起實施於集成邏輯裝置中或單獨地實施為離散但可共同操 作的邏輯裝置。在各種方面中,這些組件可至少部分形成為一個或一個以上集成電路裝 置(其可共同地稱作集成電路裝置),例如集成電路晶片或晶片組。此集成電路裝置可用 於多種圖形應用程式及裝置中的任一者中。在一些方面中,舉例來說,這些組件可形成 例如無線通信裝置手持機等移動裝置的部分。如果以軟體來實施,則可至少部分通過計算機可讀媒體來實現所述技術,所述 計算機可讀媒體包含在由一個或一個以上處理器執行時執行上文所描述的方法中的一 者或一者以上的指令。計算機可讀媒體可形成可包括封裝材料的電腦程式產品的部 分。計算機可讀媒體可包含例如同步動態隨機存取存儲器(SDRAM)等隨機存取存儲器 (RAM)、只讀存儲器(ROM)、非易失性隨機存取存儲器(NVRAM)、電可擦除可編程只 讀存儲器(EEPROM)、快閃記憶體、磁性或光學數據存儲媒體。另外或其它,所述技術可至少部分通過計算機可讀通信媒體來實現,所述計算 機可讀通信媒體載運或傳達呈指令或數據結構的形式且可由一個或一個以上處理器存 取、讀取和/或執行的代碼。可將任何連接恰當地稱為計算機可讀媒體。舉例來說,如 果使用同軸電纜、光纖電纜、雙絞線、數字訂戶線(DSL),或例如紅外、無線電及微波 等無線技術從網站、伺服器或其它遠程源傳輸軟體,則同軸電纜、光纖電纜、雙絞線、 DSL,或例如紅外、無線電及微波等無線技術包括於媒體的定義中。以上各物的組合也 應包括在計算機可讀媒體的範圍內。所利用的任何軟體可由一個或一個以上處理器來執行,例如一個或一個以上 數位訊號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現場可編程門陣列 (FPGA),或其它等效集成或離散邏輯電路。因此,如本文中所使用的術語「處理器」或「控制器」可指代上述結構中的任一者或適於實施本文中所描述的技術的任何其它結 構。因此,本發明還涵蓋包括實施本發明中所描述的技術中的一者或一者以上的電路的 多種集成電路裝置中的任一者。此電路可提供於單一集成電路晶片裝置中或多個可共同 操作的集成電路晶片裝置中。 已描述本發明的各種方面。這些及其它方面在所附權利要求書的範圍內。
權利要求
1.一種方法,其包含接收供在可編程串流處理器內執行的圖形指令; 接收對所述圖形指令的執行的數據精度的指示;接收轉換指令,所述轉換指令在由所述處理器執行時將與所述圖形指令相關聯的圖 形數據轉換到所述所指示數據精度,所述轉換指令不同於所述圖形指令;基於所述所指示數據精度來選擇所述處理器內的多個執行單元中的一者;以及 使用所述選定執行單元來使用與所述圖形指令相關聯的所述圖形數據以所述所指示 數據精度執行所述圖形指令。
2.根據權利要求1所述的方法,其進一步包含 接收與所述圖形指令相關聯的所述圖形數據;在所述選定執行單元執行所述圖形指令期間產生具有所述所指示數據精度的計算結 果;以及將所述計算結果作為輸出來提供。
3.根據權利要求1所述的方法,其中選擇所述多個執行單元中的一者包含選擇所述處理器內的第一組一個或一個以上執行單元中的一者,所述第一組一個或 一個以上執行單元在所述所指示數據精度為第一數據精度時各自使用所述圖形數據以所 述第一數據精度執行指令;以及選擇所述處理器內的第二組一個或一個以上執行單元中的一者,所述第二組一個或 一個以上執行單元在所述所指示數據精度為第二數據精度時各自使用所述圖形數據以所 述第二數據精度執行指令,所述第二數據精度不同於所述第一數據精度。
4.根據權利要求3所述的方法,其中所述第一數據精度包含全數據精度,且其中所述 第二數據精度包含半數據精度。
5.根據權利要求1所述的方法,其中所述執行單元包括所述處理器內的第一組一個或 一個以上執行單元,所述第一組一個或一個以上執行單元各自使用所述圖形數據以第一 數據精度執行指令,且所述執行單元進一步包括所述處理器內的第二組一個或一個以上 執行單元,所述第二組一個或一個以上執行單元各自使用所述圖形數據以不同於所述第 一數據精度的第二數據精度執行指令。
6.根據權利要求5所述的方法,其中基於所述所指示數據精度來選擇所述處理器內的所述多個執行單元中的一者包含選 擇所述第一組中的所述執行單元中的一者;且使用所述選定執行單元來執行所述圖形指令包含使用所述第一組中的所述選定執行 單元來使用與所述圖形指令相關聯的所述圖形數據以所述所指示數據精度執行所述圖形 指令。
7.根據權利要求6所述的方法,其進一步包含 接收供在所述處理器內執行的第二圖形指令;接收對所述第二圖形指令的執行的所述第二數據精度的指示; 接收第二轉換指令,所述第二轉換指令在由所述處理器執行時將與所述第二圖形指 令相關聯的圖形數據轉換到所述所指示的第二數據精度,所述第二轉換指令不同於所述 第二圖形指令;基於所述所指示的第二數據精度來選擇所述第二組中的所述執行單元中的一者;以及使用所述第二組中的所述選定執行單元來使用與所述第二圖形指令相關聯的所述圖 形數據以所述所指示的第二數據精度執行所述第二圖形指令。
8.根據權利要求1所述的方法,其中接收對所述圖形指令的執行的所述數據精度的所 述指示包含對所述圖形指令進行解碼以確定所述數據精度。
9.根據權利要求1所述的方法,其中使用所述選定執行單元來使用所述圖形數據以所 述所指示數據精度執行所述圖形指令包含將所述圖形數據轉換到所述所指示數據精度;以及使用所述選定執行單元來使用所述經轉換圖形數據以所述所指示數據精度執行所述 圖形指令。
10.根據權利要求1所述的方法,其中與所述圖形指令相關聯的所述圖形數據包含頂 點圖形數據及像素圖形數據中的至少一者。
11.一種計算機可讀媒體,其包含用於使可編程串流處理器進行以下操作的指令接收供在所述處理器內執行的圖形指令;接收對所述圖形指令的執行的數據精度的指示;接收轉換指令,所述轉換指令在由所述處理器執行時將與所述圖形指令相關聯的圖 形數據轉換到所述所指示數據精度,所述轉換指令不同於所述圖形指令;基於所述所指示數據精度來選擇所述處理器內的多個執行單元中的一者;以及使用所述選定執行單元來使用與所述圖形指令相關聯的所述圖形數據以所述所指示 數據精度執行所述圖形指令。
12.根據權利要求11所述的計算機可讀媒體,其進一步包含用於使所述處理器進行以 下操作的指令接收與所述圖形指令相關聯的所述圖形數據;在所述選定執行單元執行所述圖形指令期間產生具有所述所指示數據精度的計算結 果;以及將所述計算結果作為輸出來提供。
13.根據權利要求11所述的計算機可讀媒體,其中所述用於使所述處理器選擇所述多 個執行單元中的一者的指令包含用於使所述處理器進行以下操作的指令選擇所述處理器內的第一組一個或一個以上執行單元中的一者,所述第一組一個或 一個以上執行單元在所述所指示數據精度為第一數據精度時各自使用所述圖形數據以所 述第一數據精度執行指令;以及選擇所述處理器內的第二組一個或一個以上執行單元中的一者,所述第二組一個或 一個以上執行單元在所述所指示數據精度為第二數據精度時各自使用所述圖形數據以所 述第二數據精度執行指令,所述第二數據精度不同於所述第一數據精度。
14.根據權利要求13所述的計算機可讀媒體,其中所述第一數據精度包含全數據精 度,且其中所述第二數據精度包含半數據精度。
15.根據權利要求11所述的計算機可讀媒體,其中所述執行單元包括所述處理器內的第一組一個或一個以上執行單元,所述第一組一個或一個以上執行單元各自使用所述圖形數據以第一數據精度執行指令,且所述執行單元進一步包括所述處理器內的第二 組一個或一個以上執行單元,所述第二組一個或一個以上執行單元各自使用所述圖形數 據以不同於所述第一數據精度的第二數據精度執行指令。
16.根據權利要求15所述的計算機可讀媒體,其中所述用於使所述處理器基於所述所指示數據精度來選擇所述處理器內的所述多個執 行單元中的一者的指令包含用於使所述處理器選擇所述第一組中的所述執行單元中的一 者的指令;且所述用於使所述處理器使用所述選定執行單元來執行所述指令的指令包含用於使所 述處理器使用所述第一組中的所述選定執行單元來使用與所述圖形指令相關聯的所述圖 形數據以所述所指示數據精度執行所述圖形指令的指令。
17.根據權利要求16所述的計算機可讀媒體,其進一步包含用於使所述處理器進行以 下操作的指令接收供在所述處理器內執行的第二圖形指令;接收對所述第二圖形指令的執行的所述第二數據精度的指示;接收第二轉換指令,所述第二轉換指令在由所述處理器執行時將與所述第二圖形指 令相關聯的圖形數據轉換到所述所指示的第二數據精度,所述第二轉換指令不同於所述 第二圖形指令;基於所述所指示的第二數據精度來選擇所述第二組中的所述執行單元中的一者;以及使用所述第二組中的所述選定執行單元來使用與所述第二圖形指令相關聯的所述圖 形數據以所述所指示的第二數據精度執行所述第二圖形指令。
18.根據權利要求11所述的計算機可讀媒體,其中所述用於使所述處理器接收對所述 圖形指令的執行的所述數據精度的所述指示的指令包含用於使所述處理器對所述圖形指 令進行解碼以確定所述數據精度的指令。
19.根據權利要求11所述的計算機可讀媒體,其中所述用於使所述處理器使用所述選 定執行單元來使用所述圖形數據以所述所指示數據精度執行所述圖形指令的指令包含用於使所述處理器進行以下操作的指令將所述圖形數據轉換到所述所指示數據精度;以及使用所述選定執行單元來使用所述經轉換圖形數據以所述所指示數據精度執行所述 圖形指令。
20.根據權利要求11所述的計算機可讀媒體,其中與所述圖形指令相關聯的所述圖形 數據包含頂點圖形數據及像素圖形數據中的至少一者。
21.—種裝置,其包含控制器,其經配置以接收供在可編程串流處理器內執行的圖形指令;接收對所述 圖形指令的執行的數據精度的指示;以及接收轉換指令,所述轉換指令在由所述處理器 執行時將與所述圖形指令相關聯的圖形數據轉換到所述所指示數據精度,其中所述轉換 指令不同於所述圖形指令;以及所述處理器內的多個執行單元,其中所述控制器經配置以基於所述所指示的數據精度來選擇所述執行單元中的一者且使所述選定執行單元使用與所述圖形指令相關聯的所述圖形數據以所述所指示數據精 度執行所述圖形指令。
22.根據權利要求21所述的裝置,其中所述多個執行單元包括經配置而以在所述所指 示數據精度執行指令的第一執行單元及經配置而以不同於所述所指示數據精度的第二數 據精度執行指令的第二執行單元,且其中所述控制器經配置以選擇所述第一執行單元來 使用所述圖形數據以所述所指示數據精度執行所述圖形指令。
23.根據權利要求21所述的裝置,其中所述多個執行單元包括一個或一個以上全精度 執行單元及至少四個半精度執行單元。
24.根據權利要求23所述的裝置,其中當所述圖形指令的執行的所述所指示數據精度 包含全精度時,所述控制器經配置以選擇所述全精度執行單元中的一者來使用所述圖形 數據執行所述圖形指令。
25.根據權利要求23所述的裝置,其中當所述圖形指令的執行的所述所指示數據精度 包含半精度時,所述控制器經配置以選擇所述半精度執行單元中的一者來使用所述圖形 數據執行所述圖形指令。
26.根據權利要求23所述的裝置,其進一步包含至少一個全精度寄存器組,其用以在所述至少一個全精度執行單元執行指令時存儲 計算結果;以及至少四個半精度寄存器組,其用以在所述至少四個半精度執行單元執行指令時存儲計算結果。
27.根據權利要求21所述的裝置,其中所述多個執行單元包括至少一個全精度執行單 元及至少一個半精度執行單元,且其中當所述圖形指令的執行的所述所指示數據精度包 含半精度時,所述控制器經配置以切斷對所述至少一個全精度執行單元的供電且使所述 至少一個半精度執行單元使用所述圖形數據來執行所述圖形指令。
28.根據權利要求21所述的裝置,其中所述處理器包含著色器處理器。
29.根據權利要求21所述的裝置,其中所述裝置包含無線通信裝置手持機。
30.根據權利要求21所述的裝置,其中所述裝置包含一個或一個以上集成電路裝置。
31.—種裝置,其包含用於接收供在可編程串流處理器內執行的圖形指令的裝置;用於接收對所述圖形指令的執行的數據精度的指示的裝置;用於接收轉換指令的裝置,所述轉換指令在由所述處理器執行時將與所述圖形指令 相關聯的圖形數據轉換到所述所指示數據精度,所述轉換指令不同於所述圖形指令;用於基於所述所指示數據精度來選擇所述處理器內的多個執行單元中的一者的裝 置;以及用於使用所述選定執行單元來使用與所述圖形指令相關聯的所述圖形數據以所述所 指示數據精度執行所述圖形指令的裝置。
32.根據權利要求31所述的裝置,其進一步包含用於接收與所述圖形指令相關聯的所述圖形數據的裝置;用於在所述選定執行單元執行所述圖形指令期間產生具有所述所指示數據精度的計 算結果的裝置;以及用於將所述計算結果作為輸出來提供的裝置。
33.根據權利要求31所述的裝置,其中所述用於選擇所述多個執行單元中的一者的裝 置包含用於選擇所述處理器內的第一組一個或一個以上執行單元中的一者的裝置,所述第 一組一個或一個以上執行單元在所述所指示數據精度為第一數據精度時各自使用所述圖 形數據以所述第一數據精度執行指令;以及用於選擇所述處理器內的第二組一個或一個以上執行單元中的一者的裝置,所述第 二組一個或一個以上執行單元在所述所指示數據精度為第二數據精度時各自使用所述圖 形數據以所述第二數據精度執行指令,所述第二數據精度不同於所述第一數據精度。
34.根據權利要求33所述的裝置,其中所述第一數據精度包含全數據精度,且其中所 述第二數據精度包含半數據精度。
35.根據權利要求31所述的裝置,其中所述執行單元包括所述處理器內的第一組一個 或一個以上執行單元,所述第一組一個或一個以上執行單元各自使用所述圖形數據以第 一數據精度執行指令,且所述執行單元進一步包括所述處理器內的第二組一個或一個以 上執行單元,所述第二組一個或一個以上執行單元各自使用所述圖形數據以不同於所述 第一數據精度的第二數據精度執行指令。
36.根據權利要求35所述的裝置,其中所述用於基於所述所指示數據精度來選擇所述處理器內的所述多個執行單元中的一 者的裝置包含用於選擇所述第一組中的所述執行單元中的一者的裝置;且所述用於使用所述選定執行單元來執行所述圖形指令的裝置包含用於使用所述第一 組中的所述選定執行單元來使用與所述圖形指令相關聯的所述圖形數據以所述所指示數 據精度執行所述圖形指令的裝置。
37.根據權利要求36所述的裝置,其進一步包含用於接收供在所述處理器內執行的第二圖形指令的裝置;用於接收對所述第二圖形指令的執行的所述第二數據精度的指示的裝置;用於接收第二轉換指令的裝置,所述第二轉換指令在由所述處理器執行時將與所述 第二圖形指令相關聯的圖形數據轉換到所述所指示的第二數據精度,所述第二轉換指令 不同於所述第二圖形指令;用於基於所述所指示的第二數據精度來選擇所述第二組中的所述執行單元中的一者 的裝置;以及用於使用所述第二組中的所述選定執行單元來使用與所述第二圖形指令相關聯的所 述圖形數據以所述所指示的第二數據精度執行所述第二圖形指令的裝置。
38.根據權利要求31所述的裝置,其中所述用於接收對所述圖形指令的執行的所述 數據精度的所述指示的裝置包含用於對所述圖形指令進行解碼以確定所述數據精度的裝置。
39.根據權利要求31所述的裝置,其中所述用於使用所述選定執行單元來使用所述圖 形數據以所述所指示數據精度執行所述圖形指令的裝置包含用於將所述圖形數據轉換到所述所指示數據精度的裝置;以及用於使用所述選定執行單元來使用所述經轉換圖形數據以所述所指示數據精度執行所述圖形指令的裝置。
40.根據權利要求31所述的裝置,其中與所述圖形指令相關聯的所述圖形數據包含頂 點圖形數據及像素圖形數據中的至少一者。
41.一種裝置,其包含 可編程串流處理器;以及至少一個存儲器模塊,其耦合到所述處理器, 其中所述處理器包含控制器,其經配置以從所述至少一個存儲器模塊接收供執行的圖形指令;接收對 所述圖形指令的執行的數據精度的指示;以及接收轉換指令,所述轉換指令在由所述處 理器執行時將與所述圖形指令相關聯的圖形數據轉換到所述所指示數據精度,其中所述 轉換指令不同於所述圖形指令;以及 多個執行單元,其經配置以執行指令,其中所述控制器經配置以基於所述所指示的數據精度來選擇所述執行單元中的一 者,且使所述選定執行單元使用與所述圖形指令相關聯的所述圖形數據以所述所指示數 據精度執行所述圖形指令。
42.根據權利要求41所述的裝置,其進一步包含耦合到所述處理器的至少一個圖形引擎。
43.根據權利要求41所述的裝置,其中所述多個執行單元包括經配置而以所述所指示 數據精度執行指令的第一執行單元及經配置而以不同於所述所指示數據精度的第二數據 精度執行指令的第二執行單元,且其中所述控制器經配置以選擇所述第一執行單元來使 用所述圖形數據以所述所指示數據精度執行所述圖形指令。
44.根據權利要求41所述的裝置,其中所述多個執行單元包括一個或一個以上全精度 執行單元及至少四個半精度執行單元。
45.根據權利要求44所述的裝置,其中當所述圖形指令的執行的所述所指示數據精度 包含全精度時,所述控制器經配置以選擇所述全精度執行單元中的一者來使用所述圖形 數據執行所述圖形指令。
46.根據權利要求44所述的裝置,其中當所述圖形指令的執行的所述所指示數據精度 包含半精度時,所述控制器經配置以選擇所述半精度執行單元中的一者來使用所述圖形 數據執行所述圖形指令。
47.根據權利要求44所述的裝置,其中所述處理器進一步包含至少一個全精度寄存器組,其用以在所述至少一個全精度執行單元執行指令時存儲 計算結果;以及至少四個半精度寄存器組,其用以在所述至少四個半精度執行單元執行指令時存儲計算結果。
48.根據權利要求41所述的裝置,其中所述多個執行單元包括至少一個全精度執行單 元及至少一個半精度執行單元,且其中當所述圖形指令的執行的所述所指示數據精度包 含半精度時,所述控制器經配置以切斷對所述至少一個全精度執行單元的供電且使所述 至少一個半精度執行單元使用所述圖形數據來執行所述圖形指令。
49.根據權利要求41所述的裝置,其中所述處理器包含著色器處理器。
50.根據權利要求41所述的裝置,其中所述裝置包含無線通信裝置手持機。
51.根據權利要求41所述的裝置,其中所述裝置包含一個或一個以上集成電路裝置。
52.—種方法,其包含分析圖形應用程式的多個應用程式指令;對於指定其執行的第一數據精度級別的每一應用程式指令,產生各自指示其執行的 所述第一數據精度級別的一個或一個以上對應經編譯指令;以及產生一個或一個以上轉換指令以在所述一個或一個以上經編譯指令被執行時將圖形 數據從第二不同數據精度級別轉換到所述第一數據精度級別。
53.根據權利要求52所述的方法,其中所述第一數據精度級別包含全數據精度級別, 且其中所述第二數據精度級別包含半數據精度級別。
54.根據權利要求52所述的方法,其中產生所述一個或一個以上經編譯指令包含產生 在對應應用程式指令指定其執行的全數據精度級別時各自指示所述全數據精度級別的一 個或一個以上經編譯指令。
55.根據權利要求52所述的方法,其中產生所述一個或一個以上經編譯指令包含產生 在對應應用程式指令指定其執行的半數據精度級別時各自指示所述半數據精度級別的一 個或一個以上經編譯指令。
56.根據權利要求52所述的方法,其中所述一個或一個以上經編譯指令各自包括預定 義欄位,所述預定義欄位包括在所述對應應用程式指令指定其執行的所述第一數據精度 級別時指示所述第一數據精度級別的信息。
57.根據權利要求52所述的方法,其進一步包含將所述一個或一個以上經編譯指令存 儲於存儲器中以供後續執行。
58.一種計算機可讀媒體,其包含用於使處理器進行以下操作的指令分析圖形應用程式的多個應用程式指令;對於指定其執行的第一數據精度級別的每一應用程式指令,產生各自指示其執行的 所述第一數據精度級別的一個或一個以上對應經編譯指令;以及產生一個或一個以上轉換指令以在所述一個或一個以上經編譯指令被執行時將圖形 數據從第二不同數據精度級別轉換到所述第一數據精度級別。
59.根據權利要求58所述的計算機可讀媒體,其中所述第一數據精度級別包含全數據 精度級別,且其中所述第二數據精度級別包含半數據精度級別。
60.根據權利要求58所述的計算機可讀媒體,其中所述用於使所述處理器產生所述一 個或一個以上經編譯指令的指令包含用於使所述處理器產生在對應應用程式指令指定其 執行的全數據精度級別時各自指示所述全數據精度級別的所述一個或一個以上經編譯指 令的指令。
61.根據權利要求58所述的計算機可讀媒體,其中所述用於使所述處理器產生所述一 個或一個以上經編譯指令的指令包含用於使所述處理器產生在對應應用程式指令指定其 執行的半數據精度級別時各自指示所述半數據精度級別的所述一個或一個以上經編譯指 令的指令。
62.根據權利要求58所述的計算機可讀媒體,其中所述一個或一個以上經編譯指令各 自包括預定義欄位,所述預定義欄位包括在所述對應應用程式指令指定其執行的所述第一數據精度級別時指示所述第一數據精度級別的信息。
63.根據權利要求58所述的計算機可讀媒體,其進一步包含用於使所述處理器將所述 一個或一個以上經編譯指令存儲於存儲器中以供後續執行的指令。
64.—種設備,其包含用於分析多個圖形應用程式指令的裝置;對於指定其執行的第一數據精度級別的每一圖形應用程式指令,用於產生各自指示 其執行的所述第一數據精度級別的一個或一個以上對應經編譯指令的裝置;以及用於產生一個或一個以上轉換指令以在所述一個或一個以上經編譯指令被執行時將 圖形數據從第二不同數據精度級別轉換到所述第一數據精度級別的裝置。
65.根據權利要求64所述的設備,其中所述第一數據精度級別包含全數據精度級別, 且其中所述第二數據精度級別包含半數據精度級別。
66.根據權利要求64所述的設備,其中所述用於產生所述一個或一個以上經編譯指令 的裝置包含用於產生在對應圖形應用程式指令指定其執行的全數據精度級別時各自指示 所述全數據精度級別的所述一個或一個以上經編譯指令的裝置。
67.根據權利要求64所述的設備,其中所述用於產生所述一個或一個以上經編譯指令 的裝置包含用於產生在對應圖形應用程式指令指定其執行的半數據精度級別時各自指示 所述半數據精度級別的所述一個或一個以上經編譯指令的裝置。
68.根據權利要求64所述的設備,其中所述一個或一個以上經編譯指令各自包括預定 義欄位,所述預定義欄位包括在所述對應圖形應用程式指令指定其執行的所述第一數據 精度級別時指示所述第一數據精度級別的信息。
69.根據權利要求64所述的設備,其進一步包含用於將所述一個或一個以上經編譯指 令存儲於存儲器中以供後續執行的裝置。
70.一種計算機可讀數據存儲媒體,其包含一個或一個以上第一可執行指令,其在由可編程串流處理器執行時支持圖形應用程 序的一個或一個以上功能,其中所述第一可執行指令中的每一者指示其執行的第一數據 精度級別;一個或一個以上第二可執行指令,其在由所述處理器執行時支持所述圖形應用程式 的一個或一個以上功能,其中所述第二可執行指令中的每一者指示其執行的不同於所述 第一數據精度級別的第二數據精度級別;以及一個或一個以上第三可執行指令,其在由所述處理器執行時支持所述圖形應用程式 的一個或一個以上功能,其中所述第三可執行指令中的每一者在所述一個或一個以上第 一可執行指令被執行時將圖形數據從所述第二數據精度級別轉換到所述第一數據精度級 別。
71.根據權利要求70所述的計算機可讀數據存儲媒體,其中所述第一數據精度級別包 含全數據精度級別,且其中所述第二數據精度級別包含半數據精度級別。
全文摘要
本發明涉及一種可編程串流處理器,其能夠使用不同執行單元來執行混合精度(例如,全精度、半精度)指令。所述各種執行單元各自能夠使用圖形數據來在特定精度級別下執行指令。示範性可編程著色器處理器包括一控制器及多個執行單元。所述控制器經配置以接收供執行的指令及接收對所述指令的執行的數據精度的指示。所述控制器還經配置以接收單獨轉換指令,所述單獨轉換指令在經執行時將與所述指令相關聯的圖形數據轉換到所述所指示的數據精度。當可操作時,所述控制器基於所述所指示的數據精度來選擇所述執行單元中的一者。所述控制器接著使所述選定執行單元使用與所述指令相關聯的所述圖形數據以所述所指示數據精度執行所述指令。
文檔編號G06T15/00GK102016926SQ200980114125
公開日2011年4月13日 申請日期2009年4月21日 優先權日2008年4月21日
發明者於春, 史蒂芬·莫洛伊, 杜雲, 焦國方 申請人:高通股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀