TW201001328A - Programmable streaming processor with mixed precision instruction execution - Google Patents

Programmable streaming processor with mixed precision instruction execution Download PDF

Info

Publication number
TW201001328A
TW201001328A TW098113264A TW98113264A TW201001328A TW 201001328 A TW201001328 A TW 201001328A TW 098113264 A TW098113264 A TW 098113264A TW 98113264 A TW98113264 A TW 98113264A TW 201001328 A TW201001328 A TW 201001328A
Authority
TW
Taiwan
Prior art keywords
data
instruction
precision
graphics
execution
Prior art date
Application number
TW098113264A
Other languages
English (en)
Inventor
Yun Du
Chun Yu
guo-fang Jiao
Stephen Molloy
Original Assignee
Qualcomm 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=41001956&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=TW201001328(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201001328A publication Critical patent/TW201001328A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)
  • Executing Machine-Instructions (AREA)

Description

201001328 六、發明說明: 【發明所屬之技術領域】 本揭示案係關於圖形處理,且更料言之,係關於圖形 處理器架構。 【先前技術】 圖形器件廣泛心再現心諸如視訊遊戲、圖形程式、 電腦輔助設計(CAD)應用程式、模擬及視覺化工具、成像 及其類似者之各種應用的二維(2_D)及三維(μ)影像。圖 可執行各種圖形操作以再現影像。該㈣形操作可 及其類似者。3·象可,由二映射、遮影(—Μ ⑽ 表面來模仿,且可藉由多邊 形(诸如,二角形)來近似每— 遌 於表干3D1 . 矛面為達成再現目的而用 二 == 的數目視該等表面之複雜性以及 。褒衫像之所要解析度而定。 久 母一個三角形可藉由三個頂點來界定, 種屬性(諸如,空間座产 一頂點與各 形器件在再現過程期二用理座標)相關聯1圖 器可處理該等各1:::頂點處理器時,該頂點處理 元素(像素)構成。當爷靥开,哭批 —角形亦由圖像 m n m '"圖心益件亦(或獨立地)在再 使用-像素處判時,該像素處理 ^現過程 二角形内之每—像素 旦 由4疋母一個 在許多情況下,圖;可:用再現:三角形。 雜某些圊形操作,諸如遮影,為涉器來執行 雜之圖形操作。當執行再 二、及陰影之高複 …處理器可能需要 I39969.doc 201001328 執:多種不同指令,且通常包括一或多個執 :等令之執行。舉例而言,該遮影器處理器可包括曾助 ^輯早π (ALU)及/或初等函數單元(EFU)作為執行:術 吊常,此等執行單元能夠使用全資料精 几。 令 '然而,此電路可常常要求更多功率,且:等:行指 可佔據由兮ϋΐ η 千亥等執行單元 尿由忒圖形益件所使用之遮影器處理 之更多實體空間。 '電路内 r\
L 【發明内容】 理:體:,本揭示案係關於一圖形器件之可程式化串流處 …乂可程式化串流處理器能夠使用不同執行單 仃混合精度(例如’全精度、半精度)指令。舉例而+,1 可程式化處理器可包括一或多個全精度執行單元連;一: :個半精度執行單元。在接收到二進位指令及對該指令之 j的貧料精度的指示後,該處理器即能夠選擇—適當執 —單元X用於在所指示之資料精度下執行接收人。 δ亥處理器可包含—詩行動圖形應用程式之基於指令之適 應性串流處理器。 藉由進行此’該處理ϋ可避免使用—彳味行單元來執行 具有各種不同資料精度之指令。結果,可減少或消除不必 ,之精度提昇。另夕卜’應用程式程式師在寫入應用程式碼 1可料增大m m切以巾可為不同應用 w指令指定不同資料精度級別,該等不同資料精度級別 接者經編譯成藉由該處理器處理之—或多個二進位指令。 在—態樣中,本揭示案係針對一種方法,其包括接收一 139969.doc 201001328 仏在一可私式化串流處理器 — ^ ^ ^ ^ j, 執仃之圖形指令;接收對該 圖形^々之執行的資料精度 . 該轉換指令在由該處 、θ下,及接收一轉換指令, 圖”料韓J 時將與該圖形指令相關聯之 =:Γ 示之資料精度,其中該轉換指令不同 了开y曰令。该方法進-步包括基於該所指示之資料精 祕該ί理11内之複數個執行單元中之—者,及使用 S亥選定執行單元以使用金坊固 -、Μ圖形指令相關聯之圖形資料來 在該所指示之資料精声下舳、 ^ 丁十精度下執行該圖形指令。 在一態樣中,本揭示岽後 案係針對—種電腦可讀媒體,其包 括用於使一可程式/fh电、,& + 串机處理器進行以下操作的指令:接 收一供在該處理器内勃# — m 之圖形指令;接收對該圖形指令 之執行的資料精度的指示.R > ,及接收一轉換指令,該轉換指 令在由該處理器執杆日年脸彳 现仃時將與该圖形指令相關聯之圖形資料 轉換至所指示之資料籍许 X,/、中該轉換指令不同於該圖形 指令。該電腦可讀媒體進— 步包括用於使該處理器進行以 下細作的指令:基於該所_ 、所心不之資料精度來選擇該處理器 内之複數個執行單元中之一 有,及使用該選定執行單元以 使用與該圖形指令相關M + m 相關聯之圖形資料來在該所指示之資料 精度下執行該圖形指令。 ' 在1樣中,本揭示案係針對一種可程式化串流處理 器,其包括-控制器及多個執行單元。該控制器經組態以 接收供執行之圖形指令及接收對該圖形指令之執行的資料 精度的㈣。該控制器亦經組態以接收一轉換指令,今轉 換指令在由該處理器執行時將與該圖形指令相關聯之圖形 139969.doc 201001328 資料轉換至所指示資料精度,其中該轉換指令不同於該圖 形指令。當可操作時,該控制器基於所指示之資料精度來 選擇該等執行單元巾之—者。該控制器接著使該選定執行 單元使用與該目形指令相關聯之圖开身料在所指示資料精 度下執行該圖形指令。 月 在另一態樣中,本揭示案係針對一種電腦可讀媒體,其 包括用於使-處理器進行以下操作的指令:分析—圖形應
用程式之複數個應隸式指令;及對於指定執行之第一資 :精j級別的每一應用程式指令,產生各自指示執行之二 弟一資料精度級別的-或多個相應經編譯指令1電腦可 讀媒體包括用於使該處理器進行以下操作的其他指A.產 生一或多個轉換指令以在該—或多個經編譯指令經執行時 將圖形貧料自一第二不同資料精度級別轉換至該第—資料 精度級別。 貝才斗 在心樣中,本揭示案係針對一猶雷J志-处1丨 體,並且t… 卞對種電恥可讀貧料儲存媒 胺具具有—或多個第一可舳t+t/v 乐了執仃指令,該一或多個第一π 執行指令在由一可程放仆电τ 串-處理器執行時支援一圖形應 用=之-或多個功能’其中該等第一可執行指令中之每 :存二Γ:Γ第一嶋度級別。該電腦可讀資科 =媒體進_步包括一或多個第二可執行指令, 個第二可執行指令在由哕 4夕 < X处里态執行時支援該圖形應用程 式之一或多個功能,其 程 指干ϋ〜 弟一可執行指令中之每—者 才曰不其執仃之不同於該第— 考 0貝枓精度級別的第二資料精戶 級別°该電腦可讀資料儲存 月度 十烯體進一步包括一或多個第三 139969.doc 201001328 可執行指令,該一或多個第三可執行指令在由該處理器執 行時支援該圖形應用程式之一或多個功能,其甲該等第三 可執行指令中之每一者在該一或多個第一可執行指令經執 行時將圖形資料自該第二資料精度級別轉換至該第一資料 精度級別。 在隨附圖式及以下描述中闡述本揭示案之一或多個態樣 的細節。其他特徵、目標及優點將自描述及圖式以及自申 請專利範圍而顯而易見。 【實施方式】 圖1為根據本揭示案之一態樣說明可包括於一圖形處理 系統内之各種組件的方塊圖。此圖形處理系統可為獨立系 統或可為諸如計算系統或無線通信器件(諸如,無線通信 器件手機)之較大系統的部分,或數位相機或其他視訊器 件之部分。圖1中所示之例示性系統可包括一或多個圖形 應用程式102A至102N、一圖形器件10〇,及外部記憶體 1〇4。圖形器件100可通信地耦接至外部記憶體ι〇4及圖形 應用程式102八至10抓中之每一者。在一態樣巾,圖形器 件100可包括於一或多個積體電路或晶片上。 圖形應用程式i 02A至i 02N可包括各種不同應用程式, 諸如視訊遊戲、視訊、相機’或其他圖形或串流應用程 式。此等圖形應用程式102A至102N可同時執行且各自能 夠產生執行線緒以達成所要結果。線緒指示可用一或多個 圖形指令之序列來執行的特定任務。線緒允許圖形應用程 式102 A至1 〇2N具有同時執行之多個任務且共用資源。 139969.doc 201001328
圖形器件100自圖形應用程式102人至1〇2N接收線緒且執 订由此等線緒指示之任務。在圖丨中所示之態樣中,圖形 器件10 0包括一可程式化串流處理器丨0 6、一或多個圖形引 擎10SA至i〇8N,及一或多個記憶體模組11〇A至u⑽。處 理器106可執行各種圖形操作(諸如,遮影),且可計算某些 應用程式之超越初等函數。在—態樣中,處理器ι〇6可包 含一用於行動圖形應用程式之基於指令之適隸串流處理 器。圖形弓丨擎H)8A至108N可執行其他圖形操作(諸如,紋 理映射)。記憶體模組可包括-或多個快取記 憶體以儲存用於處理器⑽及圖形引擎!〇8A至⑽N 及圖形指令。 、 一圖形引擎1G8A至1G8N可包括執行各種圖形操作(諸如, 三角形設立、光栅化、模板及深度測試、屬性設立及/或 插)的一或多個引擎。外部記憶體1〇4可相對於記憶 體模组至110N為大、較緩慢之記憶體。在'態樣 中,外部記憶體104位於距圖形器件1〇〇較遠處(例如,晶 二二。外部記憶體⑽健存可載入至記憶體模組心 中之一或多者中的資料及圖形指令。 π在―態樣中’處理器1G6能夠使用不同執行單 此合精度(例如,全精度、半精度)圖形订 形應用程式⑻一可具有關於則精度= 二輸出格W要求。作為—實例,處理輪 元精度執行單元連同-或多個部分精度執行Ϊ 精度執行單元可為(例如)半精度執行單元。 139969.doc 201001328 益〇6可使用其執行單元來執行圖形應用程式Mu至 卿中之-或多者的圖形指令。在接收到:進位指令(諸 如,來自外部記憶體104或記憶體模組u〇MU〇财之一 者)且亦接收到對該圖形指令之執行的資料精度的指示 後’處理器1〇6即可選擇一適當執行單元以用於使用圖形 貧料來在所指示之資料精度下執行所接收到之指令。處理 =6亦可接收-獨立轉換指令,該獨立轉換指令在經執 m將與該圖形指令相關聯之圖形資料轉換至所指示之資 料精度。在一態樣令,該轉換指令為不同於 之 獨立指令。 @ 7 < 圖形資料可由圖形應用程式1〇2AL〇2n提供,或可自 外部記憶體1G4或記憶體模組11GA至11GN中之—者擷取, 或可由圖形引擎嶋至刪中之—或多者提供。藉由基 =所指Ό料精度在不同執行單元中選擇性地執行指 々’處理裔1〇6可避免传用盟 X, 之免使用早一執行單元來執行全精度指 々及半精度指令兩者。另外,圖形應用程式102八至刪 之=式師在寫入應用程式碼時可具有增大之靈活性。舉例 .而5 ’ 一應用程式程式師可真庵田立。 八巾Γ為應用程式指令指定資料精度 級別’該等資料精度級別接著經編譯成藉由處理器106處 理之-或多個二進位指令。處理器106基於與執行翠元及 二進位指令相關聯之資料精度來選擇適當執行單元來執行 s亥等二進位指令。另外, 要蚪,處理器可執行所接 收到之轉換指令以將與該指令相關聯之圖形資料轉換至所 指不之資料精度。舉例而言,若所提供之圖形資料具有不 139969.doc -10- 201001328 同於所指示之資料精度的資料精度,則處理器ι〇6可執行 該轉換指令以將該圖形資料轉換至所指示之資料精& 4 得圖形指令可藉由所選定之執行單元執行。
圖2A為根據一態樣說明包括—可程式化遮影器處理号 - 2〇6之例示性圖形處理系統的方塊圖。在此態樣中,圖2A . 巾所不之圖形處理系統為圖1中所示之更普通系統之例示 性例不。在一態樣中,遮影器處理器2〇6為串流處理器。 (:、 在圖2八中’該例示性系統包括各自通信地耦接至圖形器件 200的兩個圖形應用程式2〇2八及2〇23。在圖2a之實例中, 圖形應用程式202A為能夠處理及管理圖形成像像素資料的 像素應用程式。在圖2A之實例中’圖形應用程式2㈣為 旎夠處理及官理圖形成像頂點資料的頂點應用程式。在一 L樣中,圖形像素應用程式2〇2a包含一像素處理應用程 式,且圖形頂點應用程式2〇2B包含一頂點處理應用程式。 在許多情況下,圖形像素應用程式2〇2A實施使用較低精 C./ 度(諸如,半精度)資料格式的許多功能,但其可實施使用 車父南精度(諸如,全精度)資料格式的某些功能。圖形像素 . 應用程式202八亦可指定像素資料之指令的以四元組為基礎 的執行。通常’圖形頂點應用程式2〇2b實施使用較高精度 資料格式的功能’但可能不指定頂點資料之指令的以四元 組為基礎的執行。因此,不同應用程式(諸如,應用程式 2〇2A及202B)及至圖形器件200之相應API可指定不同資料 精度要求。且’在給定應用程式202A或2〇2B(及相應API) 内’可指定混合精度指令的執行。舉例而言,用於圖形像 139969.doc 201001328 素應用程式202A之遮影注丄叮丸4山由… δ可為存由遮影器處理器2〇6執 <亍之遮影|§指令提供—择;$: V* w 精度修改斋。因此,某些指令可指 定執行之—精度級別,而其他指令可指定另-精度級別。 圖形器件200内之遮影器處理器2〇6能夠以均一方式來執行 混合精度指令。 在-態樣中,遮影器處理器經由—或多個應用程式 介面或ΑΡΙ(未圖示)與圖形應用程式202Α及202Β相互作 用。舉例而'^,圖形像素應用程式202Α可經由第一 ΑΡΙ與 遮影器處理器湯相互作用,且圖形頂點應用程式2〇咖 經由第二API與遮影器處理器2〇6相互作用。在一態樣中, 第一 API及第二AH可包含—共同Αρι。該Αρι可^定由圖 形應用程式202A及202B用以使圖形器件2〇〇執行各種圖形 操作(包括可由遮影器處理器206執行的遮影操作)的一或多 個標準程式化規範。 圖形器件200包括遮影器處理器2〇6。遮影器處理器2〇6 能夠執行遮影操作。遮影器處理器206能夠與圖形像素應 用程式202A父換像素資料,且進—步能夠與圖形頂點應用 程式202B交換頂點資料。 在圖2A之實例中,遮影器處理器206亦與紋理引擎2〇8及 快取記憶體系統210通信。紋理引擎2〇8能夠執行紋理相關 操作’且亦通信地耦接至快取記憶體系統21〇。快取記憶 體系統210耦接至主記憶體204。在一態樣中,快取記憶體 系統2 1 〇包括指令快取記憶體及資料快取記憶體兩者。指 令及/或資料可自主記憶體204載入至快取記憶體系統2丄〇 139969.doc •12- 201001328 中,接著使指令及/或資料可用於紋理引擎2〇8及遮影器處 理器206。遮影器處理器裹可經由同步或非同步介面來: 外部器件或組件通信。 在一態樣中,遮影器處理器2〇6能夠使用不同執行單元 來執行混合精度圖形指令。在此態樣中,遮影器處理器 2〇6包括一或多個全精度執行單元連同一或多個半精度執 行單元。遮影器處理器206可調用其執行單元以執行^形 應用程式202A及202B中之一者或兩者的圖形指令。在接 收到二進位指令(諸如,來自快取記憶體系統2叫且亦接收 到對該指令之執行的資料精度的指示後,遮影器處理器 206即能夠選擇一適當執行單元以用於使用圖形資料來在 削旨示之資料精度下執行所接收狀指令。圖形像素應用 程式202Α可將(例如)像素資料提供至遮影器處王里器、綱, 且圖形頂點應用程式202Β可將頂點資料提供至遮影器處理 器 206。 遮影器處理H亦可接收_獨立轉換指令,該獨立轉換指 令在經執行時將與該圖形指令相關聯之圖形資料轉換至所 指示之資料精度。在-態樣中,該轉換指令為不同於該圖 形指令之獨立指令。 圖屯貝料亦可自主記憶體2〇4或快取記憶體系統21〇載 入’或可由紋理引擎208提供。圖形像素應用程式2〇2α及/ 或圖形頂點應用程式廳調用使遮影器處理器2〇6自快取 記憶體系統21〇載入供執行之_或多個二進位指令的執行 線緒。在-態樣中,每-經载入指令指示該指令之執行的 139969.doc 201001328 資料精度。另夕卜’必要時,遮影器處理器裏可執行所接 收到之轉換指令以將與該指令相關聯之圖形資料轉換至所 指不之育料精度。舉例而言,若所提供之圖形資料具有不 同於:指示之資料精度的資料精度,則遮影器處理器施 可執行該轉換指令以將該圖形資料轉換至所指示之資料精 度,使得圖形指令可藉由所選定之執行單元執行。藉由^ 於所指示之資料精度在不同執行單元中選擇性地^行= 令,遮影器處理器206可避免使用單一執行單元來 精度指令及半精度指令兩者。 王 圖2B為根據一態樣說明圖2A中所示之遮影器處理器2〇6 之其他細節的方塊圖。在遮影器處理器206内,—序列器 222自圖形應用程式202A及202B接收線緒,且將此等線緒 提供至線緒排程器&内容暫存器224。在一態樣中,序列器 222包含一多工器(Μυχ)。在一態樣中,序列器222判定應 接受哪些線緒,且亦可為每一所接受之線緒分配多重精度 暫存盗空間及/或其他資源。舉例而言,序列器222可為半 精度指令分配暫存器空間,且亦可為全精度指令分配暫存 器空間。 在一態樣中’自圖形像素應用程式202A接收到之像素資 料包括王像素以四元組為基礎之格式(亦即,每次四個像 素)的屬性資訊。在此態樣中,執行單元2 3 4每次可處理四 個像素。在一態樣中,執行單元234可每次一個頂點地處 理來自圖形頂點應用程式202B的資料。 線緒排程器224執行各種功能以對線緒之執行進行排程 139969.doc -14 - 201001328 以理’且可控制線緒之執行順序。根據一態樣,對於每 線、’者’線緒排程器224可判定彼線緒所需之資源是否準 子在用於該線緒之任何資源(例如,指令、暫存器檔 案或紋理讀取)未準備好時將該線緒推至一休眠仔列令, j在該等資源全部準備好時將該線緒自該休㈣列移動至 y活動仵列。線緒排程器224與載入控制單元咖介面連接
22:更::用於㈣線緒之資源。在一態樣中,線緒排程器 以為控制器225之部分。圖2β展示控制器奶之—實例。 工^ 225可控制與遮影器處理器2〇6内之指令及資料的處 理有關的各種功能。在圖2β之實例中,控制器m包括線 者排程盗224、載入控制單元226及主引擎22g。在某些能 樣中,㈣器225包括主引擎22〇、線緒排程器224及載;; 控制單元226中之至少一者。 線緒排程器224亦管理線緒之執行。線緒排程器224自指 2取„己fe體23〇取得每_線緒之指令、在必要時對每一 如令行解碼’及執行對該線緒之流控制。線緒排程器 ^擇執行之活動線緒、檢查該等選定線緒當中之讀 、、寫入璋衝突且在不存在衝突時將用於—線緒之指令發 、、t行單元234,及將用於另"線緒之指令發送至載入 早兀226。線緒排程器224維持用於每一線緒之程式/ 哭7十數$,且隨著執行指令或更改程式流而更新此計數 :°線緒排程11 224亦發出自指令快取記憶體230取得缺失 才曰令且移除所完成之線緒的請求。 也樣中,線緒排程器224與主引擎220相互作用。在 139969.doc -15- 201001328 此態樣中,線緒排程器224可將某些職責委託給主引擎 22〇°在-態樣中’線緒排程器以可對供執行之指令進行 解碼’或可維持用於每—線緒之程式/指令計數器且隨著 執行指令而更新此計數器。在一態樣中…丨擎22〇設立 心令執仃之狀態’ 1亦可在指令執行期間控制狀態更新序 列0 指令快取記憶體230儲存用於該等線緒之指令。此等指 令指示待騎—線緒執行之特定操作。每-操作可為(例 算術運算、初等函數、記憶體存取操作或另一形式之 指令。在需要時,指令快取記憶體230可經由載入控制單 元226 ^載人有來自快取記憶體系統21G或主記憶體204(圖 )之扣7。根據一態樣,此等指令為已自圖形應用程式 碼料之二進位指令。每—個二進位指令指示用於其在遮 影器處理器206内之執行的資料精度。舉例而$,與該指 7相關如之扣令類型可指示該指令是全精度指令還是半精 度指令。或,根據一例示性態樣,該指令内之一特定旗標 或欄位可指示其是全精度指令還是半精度指令。線緒排程 器224可能能夠對指令進行解碼且判定每一指令之資料精 度(渚如,全精度或半精度)。線緒排程器224可接著將每一 指令投送至一能夠在所指示資料精度下執行指令的執行單 元。此執行單元自常數緩衝器232或暫存器組242載入指令 執行所而之任何圖形資料,在下文對常數緩衝器232或暫 存器組242進行更詳細描述。 在圖2B中所示之態樣中,執行單元234包括一或多個全 139969.doc 16 201001328 精度ALU(算術邏輯單元)236、一或多個半精度ALU 240, 及一執行超越初等運算的初等函數單元238。ALU 236及 240可包括一或多個浮點單元(其致能浮點計算)及/或一或 多個整數邏輯單元(其致能整數及邏輯運算)。在必要時, 執行單元234在指令執行期間自常數緩衝器232或自暫存器 組242載入資料(諸如,圖形資料)。全精度ALU 236及半精 度ALU 240兩者能夠執行算術運算(諸如,加法、減法、乘 法、倍增及累積等)且亦能夠執行邏輯運算(諸如,AND、 OR、XOR等)。根據一態樣,每一 ALU單元可包含一單一 四元組ALU或四個純量ALU。當使用四個純量ALU時,可 藉由ALU並行地處理四個像素之屬性。可使用一四元組 ALU來並行地處理一像素或一頂點之四個屬性。然而,全 精度ALU 236使用全精度計算來執行指令,而半精度ALU 240使用半精度計算來執行指令。 初等函數單元238可計算超越初等函數(諸如,正弦、餘 弦、倒數、對數、指數、平方根或反平方根),其廣泛用 於遮影器指令中。初等函數單元238可藉由在比使用簡單 指令來執行對初等函數之多項式近似所需之時間少得多的 時間中計算該等初等函數來改良遮影器效能。根據本揭示 案之一態樣,初等函數單元238可能能夠在全精度下執行 指令,但亦可能能夠將計算結果轉換至半精度格式。 載入控制單元226(在圖2B中所示之例示性態樣中,其為 控制器225之部分)控制遮影器處理器206内之各種組件的 資料及指令之流。在一態樣中,載入控制單元226可將遮 139969.doc -17- 201001328 影器處理器206之過多内部資料逐出至外部記憶體(例如, 快取記憶體系統21〇),且可自紋理引擎2〇8及/或快取記憶 體系統210取得外部資源(諸士α,指令、緩衝器或紋理資 料)。載入控制單元226與快取記憶體系統21〇介面連接且 使指令快取記憶體230、常數緩衝器232(其可儲存在圖形 應用程式202Α及/或202Β之指令執行期間所使用之均一資 料)及暫存器組242載入有來自快取記憶體系統21〇的資料 及指令。載入控制單元226亦可將來自暫存器組242之輸出 資料提供至快取記憶體系統2丨〇。暫存器組2 4 2可接收來自 —或多個執行單元234之輸出資料,1可在執行單元以當 中共用。載入控制單元226亦與紋理引擎2〇8介面連接。2 某些情況下’紋理引擎·可經由載入控制單元226將資料 (諸如,紋理資料)提供至遮影器處理器2〇6,且在某些情況 下,載入控制單元226可將資料(諸如,紋理座標資料… 或指令(諸如,取樣器10指令)提供至紋理引擎2〇8。 在圖2Β之實例中,載入控制單元咖亦包括精度轉換器 228。因為寫入至載入控制單元以中或讀取出載入控制單 兀226的資料可具有不同資料精度(例如,全精度、半精 度),所以載入控制單元226可能需要在將某些資料投送至 不同級件(諸b ’至暫存器組242或至快取記憶體系統叫 之前將其轉換至不同資料精度㈣。精度轉換器咖管理 在載入控制單元226内之此資料轉換。 在'態樣中,精度轉換器228操作以在由遮影器處理琴 2 0 6執仃所接收到之轉換指令後即將圖形資料自—精度級 I39969.doc -】8 · 201001328 別轉換至另—精度級別。當經執行時,轉換指令將與一接 收到之圖形指令相關聯的圖形資料轉換至一所指示 精度。舉例而言,該轉換指令可 、厂 $肘牛精度格式之資料轉換 至王精度格式,或將全精度格式之資料轉換至半精度格 式。 α
㊉數緩衝器232可儲存在指令執行期間由執行單元234使 用之常數值。暫存器組242儲存經執行線緒之來自執行單 凡234的臨時結果以及最終結果。暫存器組242包括一或多 個全精度暫存器組244及—❹個半精度暫存器組⑽。可 藉由載入控制單元226來自暫存器組242讀取最終執行結 果另外’ -分發器248亦可自暫存器組242接收經執行線 緒之最終結果將此等結果分發至圖形頂點應用程式搬Β 及圖形像素應用程式202A中之至少一者。 圖形應用耘式(諸如,應用程式2〇2A及2〇2β)可能需要使 用不同精度級別來處理資料。舉例而言,在—態樣中,圖 =頂點應用程式2G2B使用全精度資料格式來處理頂點資 料二而圖形像素應用矛呈式2〇2A使用半精度格式來處理像素 資料在—悲樣中,圖形像素應用程式2〇2A使用半精度格 式來處理某些資訊,而使用全精度格式來處理其他資訊。 在來自圖形頂點應用程式2〇2B及圖形像素應用程式a 之線緒的執打期間,遮影器處理器206接收及處理來自指 7陕取5己憶體230的使用不同執行資料精度級別的指令。 因此’在圖2B中所示之態樣中,線緒排程器224識別所 才曰不之或與在指令快取記憶體230外載入之給定指令相關 139969.doc -19- 201001328 聯的資料精度,且將該指令投送至一適當執行單元。舉例 而言,若將該指令作為全精度指令(諸如,經由該指令内 所含有之指令類型或欄位/標頭來指示)來解碼,則線緒排 程器224能夠將該指令投送至全精度ALU 236中之一者以供 執行。來自全精度ALU 236之執行結果可儲存於全精度暫 存器組244中之一或多者中且經由分發器248而提供回至圖 形應用程式(諸如,圖形頂點應用程式202B)。然而,若來 自指令快取記憶體230之指令作為半精度指令藉由線緒排 程器224來解碼,則線緒排程器224能夠將該指令投送至半 精度ALU 240中之一者以供執行。來自半精度ALU 240之 執行結果可儲存於半精度暫存器組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中之一或多者内。 139969.doc -20- 201001328 類似地,每-半精度ALU 2微至2_能夠使用 : 吏用半精度計算來執行指令。在指令執行期間使用之輸入 貪料可自半精度暫存器組246八至246N令之一或多者榻 取。另外,在由半精度ALU 2佩至2麵執行指令期間所 產生之#异結果可儲存於半精度暫存器組2心至2侧令 之一或多者内。
如先前所描述,初等函數單元238能夠執行全精声 ^但以半精度格式來儲存結果。在—態樣卜初等= 早兀2 3 8能夠以全精度格式或半精度格式來儲存結果資 料。結果,初等函數單元238通信地輕接至全精度暫存器 組244A至244N,且亦通信地搞接至半精度暫存器組驗 至246N。根據一態樣’初等函數單元咖可自暫存器组⑷ 内之暫存S中之任-者㈣中間資料^將最終結果資料儲 存至該等暫存器中之任一者。 另外,初等函數單元238包括-精度轉換器239。在初等 函數單元238在全精度資料格式與半精度資料格式之間轉 換的彼等情況下’其可使用精度轉換器239來執行該轉 換舉例而s,單兀238可自半精度暫存器組2似載入輸 入圖形資料且使㈣資料來執行—全精度指令。精度轉換 =9可將該輸入資料自半精度格式轉換至全精度格式。 早兀238可接著使用經轉換之資料來執行全精度指令。若 結果資料將儲存回至半精度暫存器組246A中,則精度轉換 器239可將結果資料自全精度格式轉換至半精度格式,使 得其可儲存於半精度暫存器組246种。或者,若結果資料 139969.doc -21 - 201001328 將儲存於全精度暫存器組244A至 244N中之一者中,則呈 全精度格式之結果資料可直接儲存於此等暫存器中之—者 中 〇 線緒排程器224(圖2B)能夠使二進位指令自指令快取記 憶體230載入且基於與該指令相關聯之資料精度來在執行 單元234中之一者中執行。舉例而言,線緒排程器224可將 全精度指令投送至全精度Alu 236A至236N中之一或多 者’且可將半精度指令投送至半精度ALU 240A至240N中 之一或多者。線緒排程器224亦可將初等指令投送至初等 函數單兀238以供執行。結果資料可儲存於暫存器組242内 之相應暫存器中。在一態樣中,全精度Alu 236a至 236N、初等函數單元238與半精度ALU 240A至24〇N之間 的資料過渡經過暫存器組242。 在一態樣中’與每一全精度暫存器組244A至244N相 比’每一半精度暫存器組246八至246>^含有較小暫存器餘 存空間’且在積體電路上佔據較小實體空間。因此,舉例 而言’與全精度暫存器組244A相比,半精度暫存器組 246A含有較小暫存器儲存空間且佔據較小實體空間。在一 態樣中,一全精度暫存器組(諸如,組244A)可含有與兩個 半精度暫存器組(諸如,組合之組246A與246B)大體上相同 量之暫存器空間,且佔據與其大體上相同量之實體空間。 類似地’每一全精度ALU 236A至236N可比每一半精度 ALU 240A至240N佔據積體電路内之更多實體空間。另 外,每一全精度ALU 23 6A至23 6N通常可使用比每一半精 139969.doc •22· 201001328 度ALU 240A至240N多之操作功率。因此,在某些態樣 中,可能需要限制所使用之全精度ALU及全精度暫存器組 的數目,且增大所使用之半精度ALU及半精度暫存器組的 數目,以便最小化積體電路大小且減少功率消耗要求。當 遮影器處理器206為諸如行動或無線通信器件(例如,諸如 行動無線電電話或無線通信器件手機)或數位相機或視訊 器件之具有某些功率約束的較小計算器件的部分時,此等 態樣可尤其適當或有益。 因此,在一態樣中,執行單元234可僅包括一全精度 ALU 236A,且暫存器組242可僅包括一全精度暫存器組 244A。在此態樣中,執行單元234可進一步包括四個半精 度ALU 240A至240D,而暫存器組242可包括四個半精度暫 存器組246A至246D。結果,執行單元234可能能夠並行地 執行至少一半精度指令及一全精度指令。舉例而言,該四 個半精度ALU 240A至240D可每次執行關於四個像素之屬 性的指令。根據一態樣,因為僅使用一全精度ALU 236A,所以ALU 236A能夠每次執行關於一頂點的指令。 結果,根據一態樣,遮影器處理器206不需要利用頂點裝 填緩衝器以裝填多個頂點之資料。在此情況下,可直接處 理頂點之基於向量之屬性資料,而無需將資料轉換至純量 格式。 在另一態樣中,執行單元234可包括四個全精度ALU 236A至236D,且暫存器組242可包括四個全精度暫存器組 244A至244D。在此態樣中,執行單元234可進一步包括八 139969.doc -23- 201001328 個半精度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以對全精度ALU 23 6A至23 6N中之一或多者及全精度 暫存器組244 A至244N中之一或多者選擇性地斷電或去 能。在此‘%樣中’儘管遮影器處理器206包括一或多個積 體電路内之各種全精度組件(諸如,全精度ALU 236A至 23 6N及全精度暫存器組244A至244N),但其可藉由在不使 用此等全精度組件中之一或多者時對此等全精度組件中之 一或多者選擇性地斷電或去能來節省或減少功率消耗。舉 例而言,在某些情形下,遮影器處理器2〇6可判定不使用 此等組件中之一或多者,假定所載入之各種二進位指令將 由半精度ALU 240A至240N中之—或多者執行。因此’在 此等類型之情形下,遮影器處理器2〇6可對該等全精度組 139969.doc -24- 201001328 件中之一或多者選擇性地斷電或去能以用於功率節省。以 此方式,遮影器處理器206可隨給定時間處所處理之指令 的類型及數目而以動態為基礎對一或多個全精度組件選擇 性地斷電或去能。 在一態樣中,遮影器處理器206亦可能能夠使用線緒排 程器224以對半精度ALU 240A至240N中之一或多者及半精 度暫存器組246 A至246N中之一或多者選擇性地斷電或去 能。在此態樣中,遮影器處理器206可藉由在不使用或不 需要此等半精度組件中之一或多者時對此等半精度組件中 之一或多者選擇性地斷電或去能來節省或減少功率消耗。 遮影器處理器206可提供各種益處及優點。舉例而言, 遮影器處理器206可提供高靈活及適應性介面以滿足混合 精度指令(諸如,全精度指令及半精度指令)之執行的不同 要求。遮影器處理器206可藉由在混合精度指令之執行期 間避免不必要之精度提昇來顯著地減少功率消耗。(當遮 影器處理器206將資料自諸如半精度格式之較低精度格式 動態地轉換至諸如全精度格式的較高精度格式時,精度提 昇可發生。精度提昇可能在遮影器處理器206内需要額外 電路,且亦可使遮影器核心處理花費額外時脈循環。)因 為線緒排程器224能夠辨識與自指令快取記憶體230載入之 二進位指令相關聯的資料精度,所以線緒排程器224能夠 將該指令投送至執行單元234内之一適當執行單元(諸如, 全精度ALU 236A或半精度ALU 240A)以供執行。 遮影器處理器206亦可藉由利用較少全精度組件及藉由 139969.doc -25- 201001328 利用更多半精度組件(例如,ALu及暫存器幻來減 組242中之總暫存器檔案大小及執行單元2财之 =大小。另夕卜,遮影器處理器206可藉由增大處理能力 來增大總系統效能。 餐於與較低功率消耗及增大之效能有關的各種潛在益 遮影ϋ處理器鳩可用於各種不同類型之线或器件 。。’诸如無線通信器件、數位相機器件、視訊記錄或顯示 益件、視訊遊戲器件’或其他圖形及多媒體器,。此等器 件可包括-顯示器以使用遮影器處理器咖來呈現所產生 之圖形内纟。在—態樣中,由遮影器處理器206提供之精 度里活性允許其與各種器件(包括多媒體器件)一起使用, 此可提供比某些其他圖形應用程式低之精度計算或具有比 某些其他圖形應用程式低之功率要求。 圖3為根據一態樣說明可藉由圖2 Α至圖2 β中所示之遮影 器處理器206執行之例示性方法的流程圖。在此態樣中, 該例示性方法包括動作3〇〇、3〇2、3〇3、3〇6、3〇8、31〇及 3 12 ’且亦包括決策點304。 在動作300中,遮影器處理器2〇6接收二進位圖形指令及 對該指令之執行的資料精度的指示。舉例而言,如先前所 描述,線緒排程器224可自指令快取記憶體23〇(圖2b)載入 指令。在一態樣中,藉由線緒排程器224對指令進行解碼 提供關於該指令之執行的資料精度的資訊。舉例而言,該 指令可為全精度指令或半精度指令。 在動作302中,遮影器處理器2〇6接收與該二進位指令相 139969.doc -26- 201001328 關聯之圖形資料。舉例而言,序列器222可自圖形頂點應 用私式202B接收頂點資料及/或自圖形像素應用程式2〇2a 接收像素資料。在某些情形下,载入控制單元226亦可自 快取記憶體系統210載入與該指令相關聯之圖形資料。在 動作303中,遮影益處理器2〇6進一步接收一轉換指令,該 #換指令在經執行時將與該二進位指令相關聯之圖形資料 轉換至所指示之資料精度。 () 在決策點304處,遮影器處理器206判定該指令是全精度 指令還是半精度指令。如上所提,在一態樣中,線緒排程 器224可對該指令進行解碼且判定其是全精度指令還是半 精度指令。 若該指令為全精度指令,則在動作3〇6中,在必要時, 遮衫益處理器206將任何接收到之圖形資料自半精度格式 轉換至王精度格式。在某些情況下,所接收到之圖形資料 (如儲存於快取s己憶體系統2 j 〇中或如自圖形應用程式A 〇 ,202B處理)可具有半精度格式。在此情況下,將該圖形 資料轉換至全精度格式,使得其可在全精度指令之執行期 -間使用。在一態樣中’當接收到之轉換指令藉由遮影器處 理器206執行時,載入控制單元226之精度轉換器可管 理貝料格式轉換。在動作3〇8中,遮影器處理器2〇6選擇一 全精度單元(諸如,單元236A(圖2C))以使用該圖形資料來 執行該二進位指令二 然而,若該指令為半精度指令,則在動作31〇巾,在必 要時,遮影器處理器將任何資料自全精度格式轉換至半精 139969.doc -27- 201001328 度格式。在-態樣,,當接收到之轉換指令藉由遮 理器206執行時,精度轉換器、228可管理資料格式轉換。^ 動作二2中’遮影器處理器接著選擇—半精度單元(諸 如單兀240A(圖2〇)以使用該圖形資料來執行該二付 指令。 圖4為根據-態樣說明可用以產生待由,中所示之串济 處理器1〇6或由圖2A至圖2B中所示之遮影器處理器 執行之指令的編譯器術的方塊圖。在—實例態樣中,編 譯器402用以產生待由遮影器處理器執行之指令。在此 態樣中,應用程式開發者可使用編譯器術來產生供遮影 器處理器206執行的二進位指令(程式碼)。遮影器處理: 206為圖形器件20〇(圖2A)之部分。應用程式開發者可能能 夠存取供與圖形器件一起使用之應用程式開發平台 ^可產生用於圖形像素應用程式2似及/或圖形頂㈣用 %式202B的應用級軟體。此應用級軟體包括圖4中所示之 圖形應用程式指令4GG。圖形應用程式指令彻可包括藉由 符合或可轉譯成Directx®、〇penGL®、〇penVGTM或其:語 言的高級遮影語言所寫之指♦。在一態樣中,此等遮影語 言界定可用於開發程式化碼以執行圖形操作的__或多4固標 準 API。 、’爲睪器402可至少部分藉由處理器所執行之編譯器軟體 支援以接收及處理原始程式碼指令且編譯此等指令以產生 經編譯指令(例如,呈二進位、可執行機器指令之形式)。 因此,編譯器402可藉由執行與該編譯器軟體相關聯之電 139969.doc -28- 201001328 腦可讀指令的一或多個處理器形成。在一態樣中,此等一 或夕個處理益可為應用程式開發者所使用之應用程式開發 平台之部分或實施於該應用程式開發平台中。該等經編譯 指令可儲存於-電腦可讀資料儲存媒體上以供一或多個處 理器(諸如,串流處理器106或遮影器處理器206)擷取及執 灯舉例而5,本揭不案涵蓋—種電腦可讀資料儲存媒 體,其包括-或多個第一可執行指令、一或多個第二可執 行指令及一或多個第三可執行指令。 該等第-可執行指令在由處理器執行時可錢—圖形應 用程式之-或多個功能。料,該等第—可執行指令令之 每一者可指示詩其執行之第―資料精度級別。該等第二 可執行指令在由處理器執行時可錢該圖形應用程式之一 或多個功能。另外,該等第二可執行指令中之每一者可指 不用於其執行之不同於該第-資料精度級別的第二資料精 纽別。該等第三可執行指令在由該處理器執行時亦可支 ^玄圖形應用程式之-或多個功能,&中該等第三可執行 指令中之每一者在該一或多個第一可執行指令經執行時將 圖形育料自該第二資料精度級別轉換至該第—資料精度級 別。 編譯器術可能能夠將圖形應用程式指令彻編譯成 令404’二進位圖形指令-接著能夠由遮影器處 里益咖執行。遮影器處理器施可自—資料儲存媒體(諸 =記憶體或資料儲存器件)操取此等指令,且執行此等 曰π以執仃計异及其他操作來支援圖形應用程式。圖形應 139969.doc -29- 201001328 用程式指令4 0 0中之若干可指定特定之執行資料精度級 另J '舉例而5,某些指令可指定其使用全精度或半精度操 作或計算。編譯器402可經組態以應用規則4〇6來在編譯過 程期間分析及剖析圖形應用程式指令400且產生指示指令 404之執行的資料精度級別的相應二進位指令圖形*⑽。 因此,若圖形應用程式指令400中之一者指定一全精度 操作或計算,則編譯器4〇2之規則4〇6可產生二進位指令 404中之為全精度指令的一或多者。若圖形應用程式指令 400中之另一者指定一半精度操作或計算,則規則產生 二進位指令404中之為半精度指令的一或多者。在一態樣 中,一進位指令404各自可包括一指示該指令為全精度指 令還疋半精度指令的‘作業碼,。在一態樣中,二進位指令 404各自可使用可藉由遮影器處理器2〇6進行解碼之指令的 另一預定欄位、旗標或標頭内所含有之資訊來指示該指令 之執订的貧料精度。在一態樣中,可基於待執行之指令的 類型來推斷資料精度。 編譯器402亦包括能夠產生在不同資料精度級別之間轉 換之一進位轉換指令41 〇的規則4〇8。在編譯期間,編譯器 402之此等規則408可判定此轉換在二進位指令4〇4之執行 期間可為必要的。舉例而言,規則4〇8可產生轉換指令41〇 内之將資料自全精度格式轉換至半精度格式的一或多個指 7。當遮影處理器206執行圖形指令4〇4内之半精度指令 時,可能需要此轉換。規則4〇8亦可產生轉換指令4丨0内之 將資料自半精度格式轉換至全精度格式的一或多個指令, 139969.doc -30- 201001328 當遮影器處理器206執行圖形指令404内之全精度指令時, 可能需要此轉換。 根據—態樣,當編譯器402之規則408產生轉換指令410
時’遮影器處理器2〇6可執行此等轉換指令41 0以在相應圖 形指令404之執行期間管理資料精度轉換。在此態樣中, 轉換指令410之執行管理此精度轉換,使得遮影器處理器 206未必需要使用某些硬體轉換機制來將資料自一精度級 別轉換至另一精度級別。轉換指令41〇亦可允許更有效地 將貧料傳送至使用不同精度級別的ALU(諸如,至全精度 ALU 236及至半精度240)。 本文中所描述之組件及技術可以硬體、軟體、韌體或其 任何組合來實施。描述為模組或組件之任何特徵可一起實 施於整合邏輯器件中或獨立地實施為離散但可共同操作之 L輯器件在各種態樣中,此等組件可至少部分形成為一 或多個積體電路器件(其可共同地稱作-積體電路器件), 諸如積體電路曰曰片或晶片組。此積體電路器件可用於多種 圖形應用程式及器件中之任-者中。在-些態樣中,舉例 而言,此等組件可形成諸如無料Μ件手機之行動号件 之部分。 若以軟體來實施,則可i纟、1八^ μ 至乂邛刀错由電腦可讀媒體來實 現!寺技術,該電腦可讀媒體包含在由-或多個處理器執 仃%執仃上文所描述之方法中之一 ^ ^ ^ ^ a夕者的指令。電腦可 β貝媒體可形成可包括封裝材 电胸私式產品之部分。雷 腦可讀媒體可包含諸如同步 電 ^機存取記憶體(SDRAM) 139969.doc 201001328 之隨機存取記憶體(RAM)、唯讀記憶體(R〇M)、非揮發性 隨機存取記憶體(NVRAM)、電可擦除可程式化唯讀記憶體 (EEPROM)、快閃記憶體、磁性或光學資料儲存媒體。 另外或其他,該等技術可至少部分藉由電腦可讀通信媒 體來實現,該電腦可讀通信媒體載運或傳達呈指令或資料 結構之形式且可由一或多個處理器存取、讀取及/或執行 的程式碼。可將任何連接恰當地稱為電腦可讀媒體。舉例 而言,若使用同軸電纜、光纖電纜、雙絞線、數位用戶線 (DSL) ’或諸如紅外、無線電及微波之無線技術自網站' 伺服器或其他遠端源傳輸軟體,則同軸電纜、光纖電纜、 雙絞線、DSL ’或諸如紅外、無線電及微波之無線技術包 括於媒體之定義中。以上各物之組合亦應包括在電腦可讀 媒體之範疇内。 所利用之任何軟體可由一或多個處理器來執行,諸如 或多個數位信號處理器(DSP)、通用微處理器、特殊應 積體電路(ASIC)、場可程式化閘陣列(FpGA),或其他等 積體或離散邏輯電路。因此,如本文中所使用之術語「 理器」或「控制器」可指代上述結構或適於實施本文中 描述之技術的任何其他結構中之任一者。因此,本揭示 亦涵蓋包括實施本揭示案中所描述之技術中之一或多者1 電路的多種積體電路器件中之任一者。此電路可提供於: -積體電路晶片器件中或多個可共同操作之積體 器件令。 > 已描述本揭示案之各種態樣 此等及其他態樣係在以下 139969.doc •32· 201001328 申清專利範圍之範_内。 【圖式簡單說明】 圖1為根據本揭示案之一態樣說明可包括於一圖形處理 系統内之各種組件的方塊圖; 圖2A為根據本揭示案之一態樣說明包括一可程式化遮影 器處理器之例示性圖形處理系統的方塊圖;
圖2B為根據本揭示案之一態樣說明圖2A中所示之遮影 器處理器之其他細節的方塊圖; 圖2C為根據本揭示案之一態樣說明圖2B中所示之執行 單元及暫存器組之其他細節的方塊圖; 圖3為根據本揭示案之一態樣說明可藉由圖2八至圖⑶中 所示之遮影器處理器執行之例示性方法的流程圖;及 圖4為根據本揭示案之一態樣說明可用以產生待由圖工中 所示之串流處理器或由圖2A至圖2B中所示之遮影器處理 器執行的圖形指令之編譯器的方塊圖。 【主要元件符號說明】
100 102A-102N 104 106 108A-108N 110A-110N 200 202A 圖形器件 圖形應用程式 外部記憶體 可程式化串流處理器 圖形引擎 記憶體模組 圖形器件 圖形應用程式/圖形像素應用程式 139969.doc -33- 201001328 202B 圖形應用程式/圖形頂點應用程式 204 主記憶體 206 遮影器處理器 208 紋理引擎 210 快取記憶體系統 220 主引擎 222 序列器 224 線緒排程器&内容暫存器 225 控制器 226 載入控制單元 228 精度轉換器 230 指令快取記憶體 232 常數缓衝器 234 執行單元 236 全精度ALU(算術邏輯單元) 236A-236N 全精度ALU 238 初等函數單元 239 精度轉換器 240 半精度ALU 240A-240N 半精度ALU 242 暫存器組 244 全精度暫存器組 244A-244N 全精度暫存器組 246 半精度暫存器組 139969.doc -34- 201001328 246A-246N 248 400 402 404 406 408 410 半精度暫存器組 分發器 圖形應用程式指令 編譯器 二進位圖形指令/二進位指令圖形 規則 規則 二進位轉換指令
139969.doc 35·

Claims (1)

  1. 201001328 七、申請專利範園 1. 一 方法,其包含 接收一供在一可程式 令; 式化串流處理器内執行之圖形指 接收對該圖形指令之執行的-資料精度的—指 接收一轉換指令,該轅 不’ 與該圖形指令相關於+ θ 盗執仃時將 圆…相關如之圖形資料轉換至該所 度’該轉換指令不同於該圖形指令; ’,精 基於該所指示資料精度來選擇該處 行單元中之一者;及 門之複數個執 使用該選定執行單元來使 再U + 一 1文用一亥圖形指令相關聯之該 圖开/貝料來在§亥所指示資料精度下執行該圖形指令。 2·如請求項1之方法,其進一步包含: 接收與該圖形指令相關聯之該圖形資料·, 在精由該選定執行單元執行該圖形指令期間產生一具 有遠所指示資料精度之計算結果;及 將該計算結果作為輸出來提供。 3.如請求項1之方法,其中選擇該複數個執行單元中之一 者包含: 選擇該處理器内之-第一組一或多個執行單元中之一 者’該第-組-或多個執行單元在該所指示資料精度為 一第一資料精度時各自使用該圖形資料在該第一資料精 度下執行指令;及 選擇該處理器内之-第二組一或多個執行單元中之一 139969.doc 201001328 者’該第二組一或多個執行單元在該所指示資料精度為 一第二資料精度時各自使用該圖形資料在該第二資料精 度下執仃指令,該第二資料精度不同於該第一資料精 度。 4.如請求項3之方法,其中該第一資料精度包含一 精度,且其中該第二資料精度包含-半資料精度。 月求員1之方法’其中該等執行單元包括該處理器内 組一或多個執行單元,該第-組-或多個執行 :兀各自使㈣圖形資料來在—第—資料精度下執 :元且::步包括該處理器内之-第二組-或多個執行 早凡 該第二組一哎客彻机y οσ - 個執仃早元各自使用該圖形資料 在一不同於該第一資料 、打 令。 精度之苐二資料精度下執行指 6. 如請求項5之方法,其中: 基於該所指示資料精度 # ^ ^ 又來選擇该處理器内之該複數個 執仃早7L中之一者包含 中之—者·且 擇§亥弟一組中之該等執行單元 使用該選定執行單元 -組中之該選定執行單元:仃該圖形指令包含使用該第 該圖形資料來在該鮮2❹與該圖形指令相關聯之 7. 如請求項6之方法,其曰:貝料精度下執行該圖形指令。 1Α. 丹進一步包含: 接收一供在該處理器 接收對該第二圖形指Α狀第二圖形指令; 指示; 曰7之執行的該第二資料精度的一 139969.doc *2« 201001328 接收一第二轉換指令,5亥弟二轉換指令在由該處理器 執行時將與該第二圖形指令相關聯之圖形資料轉換至該 所指示之第二資料精度,該第二轉換指令不同於該第二 圖形指令; 基於該所指示之第二資料精度來選擇該第二組中之該 等執行單元中之一者;及
    使用該第二組中之該選定執行單元來使用與該第二圖 形指令相關聯之該圖形資料來在該所指示之第二資料精 度下執行該第二圖形指令。 8.如請求項1之方法’其甲接收對該圖形指令之執行的該 資料精度之該指示包含對該圖形指令進行解碼以判定該 資料精度。 ~ 9·如請求項1之方法,其中使用該選定執行單元來使用該 圖形資料在該所指示資料精度下執行該圖形指令包含. 將該圖形資料轉換至該所指示資料精度;及 使用該選定執行單元來使用該經轉換圖形資料 所指示資料精度下執行該圖形指令。 ^ 10·::睛求項1之方法,其中與該圖形指令相關聯之 資料包含頂點圖形資料及像素圖形資料中之至小—^ / 11· 一種電腦可讀媒體,其包含用於使—可程式化二。 器進行以下操作的指令: 抓處理 接收一供在該處理器内執行之圖形指令; 接收對該圖形指令之執行的一資料精度的一卜 接收一轉換指令,該轉換指令在由該處理器=,時將 139969.doc 201001328 與該圖形指令相關聯之圖形資料轉換至該所指示資料精 度,該轉換指令不同於該圖形指令; 基於該所指示資料精度來選擇該處理器内之複數個執 行單元中之一者;及 使用該選定執行單元來使用與該圖形指令相關聯之該 圖形貧料來在該所指示資料精度下執行該圖形指令。 •如請求項u之電腦可讀媒體,其進一步包含用於使該處 理器進行以下操作的指令: 接收與該圖形指令相關聯之該圖形資料; 在藉由該選定執行單元執行該圖形指令期間產生—具 有該所指示資料精度之計算結果;及 將該計算結果作為輸出來提供。 13·如請求項11之電腦可讀媒體,其中該等用於使該處判 選擇該複數個執行單元中之一者 e . _ 有的扎令包含用於使該處 理益進行以下操作的指令: 選擇該處理器内之-第一組—或多個執行單元中之一 者:該第一組一或多個執行單元在該所指示資料精度為 -"料精度時各自使用該圖形資料 度下執行指令;及 请 選擇該處理器内之一第-細 弟一組—或多個執行單元中之一 者第該第執行單元在該所指示資料精度為 =貢料精度時各自使用該圖形資料在該 度下執行指令’該第二資料精锖 度。 r j Α忑弟—貧料精 139969.doc 4- 201001328 •如叫求項13之電腦可讀媒體, + 一人咨”中°亥弟—育料精度包含 王身料精度,且其中該第-資 度。 弟一貝枓精度包含一半資料精 15_如請求仙之電腦可讀媒體,其中該 處理器内之一第一组 早兀匕括§亥 内之《組—或多個執行單元,該第一組一或 = 元各自使用該圖形資料來在_第_資料精度 ^ ’且進—步包括該處理器内之_第二組一或 p, 次夕個執仃早凡各自使用該 圖形資料在一不同於該第一資 執行指令。 貝枓精度之弟二資料精度下 16.如請求項15之電腦可讀媒體,其中: 該等用於使該處理器基於該所沪 茨所私不貧料精度來選擇該 處理器内之該複數個執行單元中之—者的指令包含用於 使该處理器選擇該第-組中之該等執行單元中之一 指令;且 該等用於使該處理器使用該選定執行單元來執行該指 令的指令包含用於使該處理器使 〇 川邊弟一組中之該選定 執行單元來使用與該圖形指令相關 相關聯之該圖形資料來在 該所指示資料精度下執行該圖形指令的产八。 1 7.如請求項16之電腦可讀媒體,复推 運一步包含用於使該處 理器進行以下操作的指令: 接收-供在該處理器内執行之第二圖形指令; 接收對該第二圖形指令之執行的 1丁的遠第二資料精度的一 指示; 139969.doc 201001328 接收一第二轉換指令,該第二轉換指令在由該處理器 執订時將與該第二圖形指令相關聯之圖形資料轉換至該 所指示之第二資料精度,該第二轉換指令不同於該第二 圖形指令; 基於》亥所私示之第二資料精度來選擇該第二組中之該 等執行單元中之一者;及 使用5玄第二組中之該選定執行單元來使用與該第二圖 形扣·?相關聯之該圖形資料來在該所指示之第二資料精 度下執行該第二圖形指令。 1 8 明求項1丨之電腦可讀媒體,其中該等用於使該處理器 接收對該圖形指令之執行的該資料精度的該指示的指令 包έ用於使忒處理器對該圖形指令進行解碼以判定該資 料精度的指令。 19. 如味求項丨丨之電腦可讀媒體,其中該等用於使該處理器 使用該選定執行單元來使用該圖形資料在該所指示資料 精度下執行該圖形指令的指令包含用於使該處理器進行 以下操作的指令: 將該圖形資料轉換至該所指示資料精度;及 使用該選定執行單元來使用該經轉換圖形資料來在該 所指示資料精度下執行該圖形指令。 20. 如請求項“之電腦可讀媒體,其中與該圖形指令相關聯 之該圖形資料包含頂點圖形資料及像素圖形資料中之至 少一者。 2 1 · —種器件,其包含: 139969.doc 201001328 理器二’其經組態以接收一供在-可程式化串流處 資料於声仃:圖形指令;接收對該圖形指令之執行的-^的—指示;及接收-轉換指令,該轉㈣令在 ==執行時將與該圆形指令相關聯之圖形資料轉 指令了及日不貧料精度,其中該轉換指令不同於該圖形 該處理器内之複數個執行單元, 擇=控!1器經組態以基於該所指示之資料精度來選 圖形扑人y中之—者且使該料執行單元使用與該 執行該圖形指^ 在㈣^>料精度下 2mr之11件,其中該複數個執行單元包括一經組 二=示資料精度下執行指令的第—執行單元及 、’’、、以在一不同於該所指示資 度下執行指令的第〜執扞I_ 罘一貝枓精 以選… ,且其中該控制器經组態 μ弟一執仃早70來使用該圖形資料在該次 料精度下執行該圖形指令。 /曰不貝 23. 如請求項21之器件’其中該複數個執行 個全精度執行單元及至少四個半精度執行單元。夕 24. 如請求項23之器件,其中當該圖形指令 示資料精度包含-全精度時,該π 亥所指 等全精度執行單元中之-者來使以選擇該 形指令。 ㈣使㈣圖形資料執行該圖 25. 如請求項23之器件’其中當該圖形指令之執行的該所指 139969.doc 201001328 不貝枓精度包含一半精度時,該控 篝本夢庠勒—仰-山 °、、工組態以選擇該 4+精又執订早兀中之一者來使用 形指令。 圖开乂貝科執行該圖 26·如請求項23之器件,其進一步包含: 至少一全精度暫存器組,其用以在、 - Jtl- 至夕—全精度執 仃早疋執行指令時儲存計算結果,·及 至少四個半精度暫存器組,其用以在該 度執行單元執行指令時儲存計算結果。" 固半精 27·=Γ之器件,其中該複數個執行單元包括至少-王精度執行單元及至少—半精度執行單元 圖形指令之執行的該所指示資料精度包含—半;該 忒控制器經組態以切斷對該至 h時’ 電且使嗲5,丨、王精度執行單元的供 亥至J 一丰精度執行 該圖形指令。 使W圖形資料來執行 28·如凊求項21之器件,其中該處理 器。 ^ 3 遮影态處理 士口月求項21之器件,其中該器一 機。 匕3 一無線通信器件手 30.如請求項21之器件,其 器件。 件包含一或多個積體電路 31·-種器件,其包含: 用於接收一供在一可裎式 口。 指令的構件; 々’L处理器内執行之圖形 不 用於接收對該圖形指令之執行的一資料精度的1 139969.doc 201001328 的構件; 用於接收-轉換指令的構件,該轉換指令在由該處理 器執=時將與該圖形指令相關聯之圖形資料轉換至該所 才曰不貝料精度,該轉換指令不同於該圖形指令; 用於基於該所指示資料精度來選擇該處理器内之複數 個執行單元中之一者的構件;及 用於使=δ亥選定執打單元來使用與該圖形指令相關聯 之韻n料來在該所指示f料精度下執行該圖形指令 32.如請求項31之器件’其進一步包含: 用於接收與a亥圖形指令相關聯之該圖形資料的構件丨 —用於在錯由該選定執行單元執行該圖形指令期間產生 一具有該所指示資料精度之計算結果的構件;及 用於將邊計算結果作為輸出來提供的構件。 33·如#求項31之器件,其中該用於選擇該複數個執行單元 中之一者的構件包含: 早凡 π π进擇該處 η ^ 組一驭夕個執行單元中 t者的構件,該第—組—或多個執行單元在該所指示 貝料精度為—第-資料精度時各自使㈣圖形資料在兮 第—資料精度下執行指令;及 〆 料選擇該處理器内之一第二組一或多個執行單元中 :者的構件,該第二組—或多個執行單元在該所指示 ^度為—第二資料精度時各自使用該圖形資料在咳 弟二資料精度下執行指令,該第二資料精度不同於該第 J39969.doc 201001328 一資料精度。 34.如明求項33之器件’其中該第一資料精度包含一全資料 又且其中„亥第二資料精度包含一半資料精度。 3 5.如請求項3丨;^ | ^ 、 D件’其中該等執行單元包括該處理器内 〇α第組或多個執行單元,該第一組一或多個執行 =兀各自使用麵形資料來在一第—資料精度下執行指 :_且進—步包括該處理器内之-第二組-或多個執行 〇α °亥第一組—或多個執行單元各自使用該圖形資料 在不同於該第一資料精度之第二資料精度下執行指 36. 如請求項35之器件,其中·· 用於基於搞指不資料精度來選擇該處理器内之該 ^個執行單%中之—者的構件包含用於選擇該第一組 中之該等執行單元中之—者的構件;且 X用於使用該選疋執打單元來執行該圖形指令的構件 匕含用於使用該第-組中之該選定執行單元來使用與該 :形指令相關聯之該圖形資料來在該所指示資料精度下 執行s亥圖形指令的構件。 37. 如請求項36之器件,其進一步包含: 用於接收一供在該處理器内執行之第二圖形指令的構 件; 用於接收對該 的一指示的構件 用於接收一第 第二圖形指合 > 丸/ 相ν之執行的該第二資料精度 9 二轉換指令的構件,該第二轉換指令在 139969.doc •10- 201001328 由該處理器執行日年肱命—& # μ .. 5 .. ' /、〜弟二圖形指令相關聯之圖形f ㈣換至錢指示之第二資料精/ 同於該第二圖形指令; 轉換如令不 用於基於該所指示之第二資料精度 之該等執行單元中之一者的構件;及擇/弟一、.且中 用於使用該第二組中之該選定執行單 :圖形指令相關聯之該圖形資料來在該所指示之第2 料精度下執打該第二圖形指令的構件。 貝 之^件,其中該用於接收對該圖形指令之執 =二::貝㈣度之該指㈣構件包含用於對該圖形指令 進订解碼以判定該資料精度的構件。 9:吏二Γ:31“件,其中該用於使用該選定執行單元來 使用_形資料在該所指示㈣精度τ執行 的構件包含: 7 C> 用於將該圖形資料轉換至該所指示資料 件;及 a 用於使用該選定執打單元來使用該經轉換圖形資料來 在該所指示資料精度下執行該圖形指令的構件。 役如請求項31之器件,其中與該圖形指令相關聯之該圖形 資料包含頂點圖形資料及像素圖形資料中之至少一者。 41 · 一種器件,其包含: 一可程式化串流處理器;及 至少一 δ己憶體模組,其耗接至該處理器; 其中該處理器包含: 139969.doc -11 - 201001328 一控制器,复 ^、、,莖組態以自該至少一記憶體模組接收 一供執行之圖形扣 /才曰令;接收對該圖形指令之執行的一 資料精度的一指+. 、,及接收一轉換指令,該轉換指令 在由該處理考勃、 D 丁 ¥將與該圖形指令相關聯之圖形資 料轉換至該所指;_欠 〆貝 才曰不-貝料精度,其中該轉換指令不同於 該圖形指令;及 + u & 複數個執行單元,其經組態以執行指令, 其中該控制器經組態以基於該所指 選擇該等執行單 丁寸前度不 凡中之一者且使該選定執行單元使用 與該圖形指令相關胳——门 干u1之用 相關如之该圖形資料來在該所指示資料 精度下執行該圖形指令。 、 42·如請求項4 1之考株,甘、A . ° /、進一步包含耦接至該處理哭之? 少一圖形引擎。 。。之至 43.如請求項41之器件’其中該複數個執行單元包括" 能ιΛί A兮π at _ ^ 匕枯—經組 靖精度下執行指令的第-執行單元及 一經組態以在一不同於# _ 个N於a亥所扣不資料精度之第二 度下執订#曰令的弟二執行單元,且其中該控制組:: 以選擇該第-執行h來使用該圖^ 料精度下執行該圖形指令。 所扣不貧 44·如請求項41之器件’其中該複數個執行單元包括 個全精度執行單元及至少四個半精度執行單元。或夕 45.如請求項44之器件,其中當該圖形指令 示資料精度包含一全精度時,該控 :的§亥所指 等全精度執行單元中之— 139969.doc •12- 201001328 形指令。 认如::項44之器件,其中當該圖形指令之執行的該所指 丁貝,精度包含-半精度時,該控制器經組態 =料執行單元中之—者來使錢_資料執行_ 形扣令。 全精度執 四個半精 47.如請求項44之器件’其中該處理器進一步包含 至少一全精度暫存器組,其用以在該至少— 订單兀執行指令時儲存計算結果;及 至夕四個半精度暫存器組,其用以在該至少 度執行單元執行指令時儲存計算結果。 48.如明求項41之器件,其中該複數個執行單元包括至少一 單元及至少—半精度執行單元,且其中當該 ㈣所“諸精度包含-半精度時, mam刀斷對該至少_全精度執行單元的供 半精度執行單元使用該圖形資料來執行 器處理 49.如請求項41之器件 器。 其中該處理器包含一遮影 50.如請求項41之器件 機。 51_如請求項41之器件 器件。 其中该器件包含一無線通信器件手 ”中5亥器件包含一或多個積體電路 J L 裡万法,其包含 分析一圖形應用程或 '之複數個應用裎式指令 139969.doc •13- 201001328 對於指定執行之—第一眘姐i 4t人 弟貝枓精度級別的每一應用程式 曰々,產生各自指示執行之 钒仃之該弟一資料精度級別的一或 夕個相應經編譯指令;及 產生-或多個轉換指令以在該一或多個經編譯指令經 ,行時將圖形資料自H同資料精度級別轉換至該 第一資料精度級別。 53.如清求項52之方法,盆φ诗势 ^ 八中該弟一賢料精度級別包含一全 資料精度級別,且复Φ兮笙_ -欠,, 匕人 中5亥第貝料精度级別包含一半資 料精度級別。 54_如5青求項52之方法,其中產生該__或多個經編譯指令包 έ產生在一相應應用程式指令指定其執行之一全資料精 度級別時各自指示該全資料精度級別的一或多個經編譯 指令。 5 5.如請求項5 2之方法’其中產生該一或多個經編譯指令包 含產生在一相應應用程式指令指定其執行之一半資料精 度級別時各自指示該半資料精度級別的/或多個經編譯 指令。 56.如請求項52之方法,其中該一或多個經編譯指令各自包 括一預定欄位’該預定欄位包括在該相應應用程式指令 指定其執行之該第一資料精度級別時指系該第一資料精 度級別的資訊。 5 7.如請求項52之方法’其進一步包含將該〆或多個經編譯 指令儲存於記憶體中以供後續執行。 5 8 · —種電腦可讀媒體,其包含用於使一處理器進行以下操 139969.doc -14· 201001328 作的指令: 分析一圖形應用程式之複數個應用程式指令; 對於指定執行之一第一資料精度級別的每一應用程式 指令’產生各自指示執行之該第一資料精度級別的一或 多個相應經編譯指令;及 產生一或多個轉換指令以在該一或多個經編譯指令經 執行時將圖形資料自一第二不同資料精度級別轉換至該 第一資料精度級別。 59_如請求項58之電腦可讀媒體,其中該第一資料精度級別 包含一全資料精度級別,且其中該第二資料精度級別包 含一半資料精度級別。 60. 如請求項58之電腦可讀媒體,其中該等用於使該處理器 產生該一或多個經編譯指令的指令包含用於使該處理器 產生在一相應應用程式指令指定其執行之一全資料精度 級別時各自指示該全資料精度級別的該一或多個經編譯 指令的指令。 61. 如請求項58之電腦可讀媒體,其中該等用於使該處理器 產生該一或多個經編譯指令的指令包含用於使該處理器 產生在一相應應用程式指令指定其執行之一半資料精度 級別時各自指示該半資料精度級別的該一或多個經編譯 指令的指令。 62. 如請求項58之電腦可讀媒體,其中該一或多個經編譯指 令各自包括一預定欄位,該預定欄位包括在該相應應用 程式指令指定其執行之該第一資料精度級別時指示該第 139969.doc •15- 201001328 一資料精度級別的資訊。 63·如請求項58之電腦可讀媒體 體其進一步包含用於使該處 理益將該一或多個經編譯指 ±L 7储存於圯憶體中以供後續 執行的指令。 64· —種裝置,其包含: 用於分析複數個圖形應用程式指令的構件; 對於指定執行之一第一資料样疮σ I 、 貝寸斗精度級別的母一圖形應用 程式指令,用於產; 各自心不執仃之該第一資料精度級 別的一或多個相應經編譯指令的構件;及 用於產生-或多個轉換指令以在該一或多個經編譯指 Α執仃時將圖形資料自—第二不同資料精度級別轉換 至該第一資料精度級別的構件。 65·:凊求項64之裝置,其中該第一資料精度級別包含一全 資料精度級別,且其中該第二資料精度級別包含一半資 料精度級別。 女明求項64之裝置,其中該用於產生該一或多個經編譯 才曰·?的構件包含用於產生在一相應圖形應用程式指令指 疋其執行之一全資料精度級別時各自指示該全資料精度 級別的該一或多個經編譯指令的構件。 67. 如明求項64之裝置’其中該用於產生該一或多個經編譯 才曰令的構件包含用於產生在一相應圖形應用程式指令指 疋其執行之一半資料精度級別時各自指示該半資料精度 級別的該一或多個經編譯指令的構件。 68. 如清求項64之裝置,其中該一或多個經編譯指令各自包 139969.doc -16· 201001328 括一預定欄位’該預定欄位包括在該相應圖形應用程式 指令指定其執行之該第一資料精度級別時指示該第一資 料精度級別的資訊。 69·如請求項64之裝置’其進一步包含用於將該一或多個經 編譯指令儲存於記憶體令以供後續執行的構件。 7〇· —種電腦可讀資料儲存媒體,其包含: 一或多個第一可執行指令,其在由一可程式化串流處 , 理器執行時支援一圖形應用程式之一或多個功能,其中 該等第一可執行指令中之每一者指示其執行之一第一資 料精度級別; 一或多個第二可執行指令,其在由該處理器執行時支 —或多個功能’其中該等第二可執
    援該圖形應用程式之 行指令t之每一者指
    5貝貝料儲存媒體,其中該第一資料 一全貨料精度級別,且其中該第二資料精 半資料精度級別。 139969.doc -17-
TW098113264A 2008-04-21 2009-04-21 Programmable streaming processor with mixed precision instruction execution TW201001328A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/106,654 US8633936B2 (en) 2008-04-21 2008-04-21 Programmable streaming processor with mixed precision instruction execution

Publications (1)

Publication Number Publication Date
TW201001328A true TW201001328A (en) 2010-01-01

Family

ID=41001956

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098113264A TW201001328A (en) 2008-04-21 2009-04-21 Programmable streaming processor with mixed precision instruction execution

Country Status (8)

Country Link
US (1) US8633936B2 (zh)
EP (1) EP2281277A1 (zh)
JP (1) JP5242771B2 (zh)
KR (1) KR101321655B1 (zh)
CN (1) CN102016926B (zh)
CA (1) CA2721396A1 (zh)
TW (1) TW201001328A (zh)
WO (1) WO2009132013A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8487450B2 (en) 2007-05-01 2013-07-16 Micron Technology, Inc. Semiconductor constructions comprising vertically-stacked memory units that include diodes utilizing at least two different dielectric materials, and electronic systems
US8553040B2 (en) * 2009-06-30 2013-10-08 Apple Inc. Fingerprinting of fragment shaders and use of same to perform shader concatenation
US8771064B2 (en) 2010-05-26 2014-07-08 Aristocrat Technologies Australia Pty Limited Gaming system and a method of gaming
US9330430B2 (en) 2011-03-21 2016-05-03 Apple Inc. Fast queries in a multithreaded queue of a graphics system
US9195501B2 (en) 2011-07-12 2015-11-24 Qualcomm Incorporated Instruction culling in graphics processing unit
KR101926570B1 (ko) 2011-09-14 2018-12-10 삼성전자주식회사 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US9465620B2 (en) 2012-12-20 2016-10-11 Intel Corporation Scalable compute fabric
US9760966B2 (en) * 2013-01-08 2017-09-12 Nvidia Corporation Parallel processor with integrated correlation and convolution engine
US9280845B2 (en) * 2013-12-27 2016-03-08 Qualcomm Incorporated Optimized multi-pass rendering on tiled base architectures
US9389863B2 (en) * 2014-02-10 2016-07-12 Via Alliance Semiconductor Co., Ltd. Processor that performs approximate computing instructions
US9588845B2 (en) * 2014-02-10 2017-03-07 Via Alliance Semiconductor Co., Ltd. Processor that recovers from excessive approximate computing error
US9471305B2 (en) * 2014-05-09 2016-10-18 Samsung Electronics Co., Ltd. Micro-coded transcendental instruction execution
KR20160061701A (ko) * 2014-11-24 2016-06-01 삼성전자주식회사 서로 다른 정확도를 갖는 연산기들을 이용하여 데이터를 처리하는 방법 및 장치
WO2016090641A1 (zh) 2014-12-12 2016-06-16 上海兆芯集成电路有限公司 绘图处理系统及其电源门控方法
US10489197B2 (en) * 2015-06-01 2019-11-26 Samsung Electronics Co., Ltd. Highly efficient inexact computing storage device
KR102444240B1 (ko) 2015-07-29 2022-09-16 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US9652235B1 (en) 2015-11-24 2017-05-16 International Business Machines Corporation Method of synchronizing independent functional unit
US20170315807A1 (en) * 2016-05-02 2017-11-02 Oracle International Corporation Hardware support for dynamic data types and operators
US10460513B2 (en) * 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
CN107977227A (zh) * 2016-10-21 2018-05-01 超威半导体公司 包括不同指令类型的独立硬件数据路径的管线
CN108268940B (zh) * 2017-01-04 2022-02-18 意法半导体股份有限公司 用于创建可重新配置的互连框架的工具
US10489877B2 (en) * 2017-04-24 2019-11-26 Intel Corporation Compute optimization mechanism
US10417734B2 (en) * 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10409614B2 (en) 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10417731B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10474458B2 (en) 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
CN107315710B (zh) 2017-06-27 2020-09-11 上海兆芯集成电路有限公司 全精度及部分精度数值的计算方法及装置
CN107291420B (zh) 2017-06-27 2020-06-05 上海兆芯集成电路有限公司 整合算术及逻辑处理的装置
US11704125B2 (en) * 2018-02-13 2023-07-18 Cambricon (Xi'an) Semiconductor Co., Ltd. Computing device and method
US11455766B2 (en) * 2018-09-18 2022-09-27 Advanced Micro Devices, Inc. Variable precision computing system
CN111488176B (zh) * 2019-01-25 2023-04-18 阿里巴巴集团控股有限公司 一种指令调度方法、装置、设备及存储介质
US20220121421A1 (en) 2019-03-15 2022-04-21 Intel Corporation Multi-tile memory management
US11823052B2 (en) * 2019-10-11 2023-11-21 Qualcomm Incorporated Configurable MAC for neural network applications
US11935175B2 (en) * 2022-04-07 2024-03-19 Huawei Technologies Co., Ltd. Apparatus, method, and computer-readable medium for image processing using variable-precision shading

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6297031A (ja) * 1985-10-23 1987-05-06 Nec Corp 仮数部のビツト数整合方式
JP2665392B2 (ja) 1990-09-27 1997-10-22 富士通株式会社 コンパイル処理方式
JP3295853B2 (ja) 1992-04-27 2002-06-24 富士通株式会社 コンパイル処理装置
JPH06297031A (ja) 1993-04-12 1994-10-25 Nippon Steel Corp 伸線方法
US5734874A (en) * 1994-04-29 1998-03-31 Sun Microsystems, Inc. Central processing unit with integrated graphics functions
US6044216A (en) * 1996-06-24 2000-03-28 Oracle Corporation Method and apparatus for implementing cursor variables for accessing data from database
US5953237A (en) * 1996-11-25 1999-09-14 Hewlett-Packard Company Power balancing to reduce step load
US5784588A (en) * 1997-06-20 1998-07-21 Sun Microsystems, Inc. Dependency checking apparatus employing a scoreboard for a pair of register sets having different precisions
GB0315844D0 (en) * 2003-07-04 2003-08-13 Transitive Ltd Method and apparatus for performing adjustable precision exception handling
US7418606B2 (en) 2003-09-18 2008-08-26 Nvidia Corporation High quality and high performance three-dimensional graphics architecture for portable handheld devices
JP4129981B2 (ja) 2004-04-02 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置
US7079156B1 (en) * 2004-05-14 2006-07-18 Nvidia Corporation Method and system for implementing multiple high precision and low precision interpolators for a graphics pipeline
JP4786268B2 (ja) * 2005-09-13 2011-10-05 株式会社東芝 コンパイル装置
CN101615173B (zh) * 2006-02-06 2011-11-30 威盛电子股份有限公司 处理任何数个不同格式数据的串流处理器及其方法及模块
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
US9070213B2 (en) 2006-07-26 2015-06-30 Nvidia Corporation Tile based precision rasterization in a graphics pipeline
US8421794B2 (en) * 2007-03-23 2013-04-16 Qualcomm Incorporated Processor with adaptive multi-shader
US8106914B2 (en) 2007-12-07 2012-01-31 Nvidia Corporation Fused multiply-add functional unit

Also Published As

Publication number Publication date
JP2011518398A (ja) 2011-06-23
KR101321655B1 (ko) 2013-10-30
CN102016926A (zh) 2011-04-13
US8633936B2 (en) 2014-01-21
CA2721396A1 (en) 2009-10-29
KR20110002098A (ko) 2011-01-06
JP5242771B2 (ja) 2013-07-24
EP2281277A1 (en) 2011-02-09
CN102016926B (zh) 2014-01-08
WO2009132013A1 (en) 2009-10-29
US20090265528A1 (en) 2009-10-22

Similar Documents

Publication Publication Date Title
TW201001328A (en) Programmable streaming processor with mixed precision instruction execution
US10068306B2 (en) Facilitating dynamic pipelining of workload executions on graphics processing units on computing devices
CN105518741B (zh) 用于管理虚拟图形处理器单元的装置和方法
US11004258B2 (en) Combined world-space pipeline shader stages
US10360654B1 (en) Software scoreboard information and synchronization
US9477482B2 (en) System, method, and computer program product for implementing multi-cycle register file bypass
US20210241418A1 (en) Workload scheduling and distribution on a distributed graphics device
US10255075B2 (en) System, method, and computer program product for managing out-of-order execution of program instructions
US9471307B2 (en) System and processor that include an implementation of decoupled pipelines
US11776195B2 (en) Techniques to manage execution of divergent shaders
US9244683B2 (en) System, method, and computer program product for implementing large integer operations on a graphics processing unit
US10748323B2 (en) GPU based shader constant folding
JP2021082262A (ja) ベクトル正規化のための単一の命令セットアーキテクチャ(isa)命令の使用
US10853989B2 (en) Coarse compute shading
US20150145871A1 (en) System, method, and computer program product to enable the yielding of threads in a graphics processing unit to transfer control to a host processor
US20170256019A1 (en) Method and Apparatus for Efficient Submission of Workload to a High Performance Graphics Sub-System
CN109791684A (zh) 将内核执行转移到图形装置
US20140240337A1 (en) Graphics processing unit with a texture return buffer and a texture queue
US9477480B2 (en) System and processor for implementing interruptible batches of instructions
US9165396B2 (en) Graphics processing unit with a texture return buffer and a texture queue
TW201810026A (zh) 用於在計算環境中資料之邏輯處理的暫存器檔案之延伸
CN116339739A (zh) 用于在图形处理单元上执行的内核源适配
CN114078079A (zh) 使用重要性重采样来减少光采样的内存不一致性
CN115511692A (zh) 图形处理单元和用于其的方法
CN113129201A (zh) 用于图形处理命令的压缩的方法和装置