JP5829684B2 - ヘテロジニアスグラフィックスプロセッサおよびその構成方法 - Google Patents

ヘテロジニアスグラフィックスプロセッサおよびその構成方法 Download PDF

Info

Publication number
JP5829684B2
JP5829684B2 JP2013524179A JP2013524179A JP5829684B2 JP 5829684 B2 JP5829684 B2 JP 5829684B2 JP 2013524179 A JP2013524179 A JP 2013524179A JP 2013524179 A JP2013524179 A JP 2013524179A JP 5829684 B2 JP5829684 B2 JP 5829684B2
Authority
JP
Japan
Prior art keywords
unit
programmable
fixed function
processing
fragment
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2013524179A
Other languages
English (en)
Other versions
JP2014513329A (ja
Inventor
カザコフ マキシム
カザコフ マキシム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Media Professionals Inc
Original Assignee
Digital Media Professionals Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Media Professionals Inc filed Critical Digital Media Professionals Inc
Priority to JP2013524179A priority Critical patent/JP5829684B2/ja
Publication of JP2014513329A publication Critical patent/JP2014513329A/ja
Application granted granted Critical
Publication of JP5829684B2 publication Critical patent/JP5829684B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

本発明はヘテロジニアス3Dグラフィックスプロセッサのアーキテクチャに関し,詳細には,ヘテロジニアス3Dグラフィックスプロセッサの同じグラフィックスパイプラインステージ内のプログラマブルパイプラインと固定機能パイプラインの両方の組み合わせおよび相互運用の方法に関する。本発明の別の応用は,そのようなヘテロジニアスグラフィックスパイプラインを,3Dグラフィックスアプリケーションプログラムの視点から構成する方法に関する。
ハードウェア3Dグラフィックスプロセッサは,各ステージが,最終画像の,頂点,幾何プリミティブ,画素(またはフラグメント)といったある特定の種類の図形要素の処理を行い,あるステージの出力を次ステージの入力とする,相互につなぎ合わされた複数のステージで構成されたパイプラインを表す。3Dハードウェアパイプライン実装の改良は,固定機能、構成可能な実装から,様々なパイプラインステージにおいて異なる度合いのプログラム可能性を備えた柔軟でプログラム可能な実装へと進んだ。例えばある設計では,株式会社ディジタルメディアプロフェッショナルのPICA200シリーズの3Dグラフィックスアクセラレータの場合のように,プログラマブル頂点ステージの後に完全に固定機能の構成可能なフラグメントステージが続いた。その動作をより一般的にいうと,プログラマブルパイプラインステージは固定機能パイプライン実装と比べて,性能およびゲートサイズの点で効率が劣るが,プログラマブルパイプラインのより大きい柔軟性という利点のために,固定機能実装はデスクトップ3Dグラフィックスプロセッサの市場から結局は排除された。一方,組み込みアプリケーションは依然として利用可能なゲートサイズおよび電力消費の制限を強いるものであり,よって,それが原因で組み込みにおける市販の3Dハードウェア実装の大部分がせいぜい部分的にしかプログラマブルにならず(頂点/幾何変換およびフラグメントラスタ化部分のプログラム可能性に関してヘテロジニアス設計を有し),または,特定の動作に関して固定機能の設計と比べて完全にプログラマブルな設計では著しく低い性能を有する。よって,組み込みでは,固定機能3Dハードウェアパイプラインの性能および低電力消費を,プログラマブルパイプラインの柔軟性と組み合わせた設計の必要が存在し,(デスクトップ市場でのアプリケーションとは異なり)電力消費の制限を満たすことができなければ,3Dハードウェアパイプラインの組み込み製品における使用が妨げられる可能性が高いため,そのような必要は決定的なものである。
米国特許第7865894号明細書には,プロセッサ内で処理タスクを分散させることが開示されている。
米国特許第7852346号明細書には,汎用テクスチャリングのためのプログラマブルグラフィックプロセッサが開示されている。
米国特許第7623132号明細書には,レジスタファイル帯域幅消費を低減させるためのレジスタフォワーディングを有するプログラマブルシェーダが開示されている。
米国特許第7706633号明細書には,位置合わせアプリケーションのためのGPUベースの画像操作方法が開示されている。
米国特許第7777748号明細書には,グラフィックアプリケーションの実行時に収集される性能データに応答して自動モードコントローラを用いるマルチモード並列グラフィックレンダリングサブシステムを備えるPCレベルのコンピューティングシステムが開示されている。
米国特許第7911480号明細書には,グラフィックパイプラインにおける複数サンプル・アンチエイリアシング・タイル・データの圧縮が開示されている。
米国特許出願公開第2006/0082578号明細書には,画像プロセッサ,画像処理方法および画像処理プログラム製品が開示されている。これらの参照文献の内容はすべて,本願明細書の内容を理解するための参考とすることができる。
米国特許第7865894号明細書 米国特許第7852346号明細書 米国特許第7623132号明細書 米国特許第7706633号明細書 米国特許第7777748号明細書 米国特許第7911480号明細書 米国特許出願公開第2006/0082578号明細書
柔軟性と高性能の両方のメリットをゲート効率のよいやり方で達成する従来の方法は,処理パイプラインを,固定機能ステージ(例えば,ラスタ化/画素処理の)とプログラマブルステージ(頂点および幾何変換)の両方から組み合わせるものである。それでもなお,この手法は,設計において,特定のパイプライン部分の柔軟性を制限する。よって,3Dグラフィックスプロセッサのプログラマブルパイプライン部分および固定機能パイプライン部分を,ステージごとのプログラマブルパイプラインの柔軟性と,固定機能パイプラインのゲートサイズの小規模化ゲートサイズの小規模化および速度とを組み合わせたより効率のよいやり方で,アセンブルする必要が存在する。
固定パイプラインと完全にプログラマブルなパイプラインとでは,グラフィックスアプリケーションが用いるアプリケーションプログラミングインターフェースで反映される構成の方法が大きく異なる。固定機能パイプラインでは,ある固定機能パイプライン部分と別の固定機能パイプライン部分とで構成パラメータが大きく異なるため,パイプライン機能の特定の部分を構成するのに専用のAPI関数または関数のセットが使用される。プログラマブルパイプラインは,そうではなく,パイプラインによって実行される実際のシェーダプログラムおよびその実際上の機能にかかわらず,同じAPIを使用して構成される。よって,ヘテロジニアスパイプラインでは,構成は,グラフィックスアプリケーションについても,アプリケーションのためのデータを供給するコンテンツ作成ツールについてもどちらも困難である。これは,構成の方法がグラフィックスパイプラインの様々な部分で大きく異なるからである。しかも,今日の3Dグラフィックスアプリケーションで広範に使用されるOpenGL ES 2.0のようなある特定のAPIは,ヘテロジニアスグラフィックスパイプラインをサポートせず,これらの設計者らはAPIから固定機能パイプライン部分のためのAPI関数を意図的に除外してある。よって,プログラマブルパイプライン部分の構成方法と統一された,ヘテロジニアス3Dグラフィックスプロセッサにおいて固定機能パイプライン部分を構成する方法を提供する必要が存在する。
本発明の第1の態様は,図8に示すようなアービタ部18を有するグラフィックプロセッサを対象とする。アービタ部18はプログラマブル部を,テクスチャサンプリング部16および固定機能部17と並列に結合する。アービタ部18とテクスチャサンプリング部16とは直接接続されており,アービタ部18と固定機能部17ともやはり直接接続されている。アービタ部18は,テクスチャサンプリング部16または専用固定機能部17へ処理要求を渡す。処理要求は,1つもしくは複数のプログラマブル部12によって行われたプログラム実行の結果である。アービタ部18は,テクスチャサンプリング部16または専用固定機能部17からの処理結果を,1つもしくは複数のプログラマブル部12へ渡す。
本発明の第1の態様のグラフィックプロセッサ1は,3Dシーンをレンダリングするグラフィックプロセッサである。プロセッサ1は,コマンドインターフェース部11と,1つもしくは複数のプログラマブル部12と,ラスタライザ部13と,カラーアップデータ部14と,テクスチャサンプリング部16と,1つもしくは複数の専用固定機能部17と,アービタ部18とを備える。
コマンドインターフェース部11は,グラフィックプロセッサの各部分を構成するためにホストコンピュータからコマンドおよび頂点データをフェッチする。コマンドインターフェース部11はシーンの頂点データをフェッチし,それらのデータを残りのグラフィックプロセッサの各部分へ渡す。コマンドインターフェース部11はフェッチした情報をプログラマブル部12へ向けて転送してもよい。
1つもしくは複数のプログラマブル部12は,コマンドインターフェース部11からのコマンドおよび頂点データを使用してシーンジオメトリ処理を行って幾何プリミティブおよびフラグメントごとの処理結果を得る。プログラマブル部12はジオメトリ処理を行い,ラスタ化シーン要素のための処理を実行する。
ラスタライザ部13は,1つもしくは複数のプログラマブル部12から幾何プリミティブを受け取り,幾何プリミティブをフラグメントへ変換する。フラグメントはプログラマブル部12によって処理される。
カラーアップデータ部14は,フラグメントごとの処理結果をフラグメントフレームバッファ15で記憶されたコンテンツにマージするために,1つもしくは複数のプログラマブル部12からのフラグメントごとの処理結果と,フラグメントフレームバッファ15で記憶されたコンテンツを受け取る。フラグメントフレームバッファ15はフラグメントごとのコンテンツを記憶する。カラーアップデータ部14は,フラグメントごとのコンテンツを更新するように,フラグメントごとの処理結果を,そのフラグメント前のコンテンツにマージする。
テクスチャサンプリング部16は,1つもしくは複数のプログラマブル部12から要求を受け取ると,フィルタリングされたテクスチャサンプルをフェッチする。テクスチャサンプリング部16は,テクスチャ情報を記憶しているデータベースにアクセスし,テクスチャデータを得ることができる。
1つもしくは複数の専用固定機能部17は,フラグメントごとの処理演算の特定の部分を実行する。専用固定機能部17は,フラグメントごとの処理演算の特定の部分をハードウェアによって実行してもよい。フラグメントごとの処理演算の例は,フラグメントシェーディング演算,カラーブレンディング演算,手続型テクスチャサンプリング演算である。プログラマブル部12は,専用固定機能部17にフラグメントごとの処理演算の特定の部分を実行させる1つまたは複数のプログラムをインストールしてもよい。プログラマブル部12はそのようなプログラムをホストまたはプログラムを記憶しているデータベースから獲得してもよい。プログラマブル部12は,コマンドインターフェース部11がフェッチするホストからのコマンドに基づいてプログラムを記憶してもよい。
アービタ部18はプログラマブル部12を,テクスチャサンプリング部16および固定機能部17と並列に結合する。すなわち,アービタ部18は,プログラマブル部12の一部であり,テクスチャサンプリング部16と直接接続されている。さらに,アービタ部18は固定機能部17とも直接接続されている。
アービタ部18は,テクスチャサンプリング部16または専用固定機能部17へ,処理要求を渡す。処理要求は,1つもしくは複数のプログラマブル部12によって行われたプログラム実行の結果である。アービタ部18は,テクスチャサンプリング部16または専用固定機能部17からの処理結果を1つもしくは複数のプログラマブル部12へ渡す。
本発明の好ましい実施形態は,専用固定機能部17の1つが,別の種類のテクスチャサンプリング部としてアービタ部18と対話するものである。別の種類のテクスチャサンプリング部として働く専用固定機能部17は,テクスチャサンプリング部16が有するのと同数の入力および出力を有していてもよい。別の種類のテクスチャサンプリング部として働く専用固定機能部17は,テクスチャサンプリング部16が有するのと異なる数の入力および出力を有していてもよい。
本発明の実施形態は,ヘテロジニアス3Dグラフィックスプロセッサアーキテクチャにおける固定機能パイプライン部分のゲートサイズの小規模化および速度とプログラマブルパイプライン部分の柔軟性との達成を,これらの部分を従来の順次方式ではなく並列に組み合わせることによって容易にする。このようにしたプログラマブルパイプライン部分は,固定機能パイプラインと対話し,シェーダプログラムの実行中に固定機能パイプライン部分の処理結果を1回または複数回消費することができる。一実施形態では,固定機能パイプライン部分は,固定機能フラグメントシェーディング演算器,プロシージャルテクスチャ処理部,テクスチャブレンディング部などを含み,各部分はプログラマブルパイプラインによって独立にアクセスされ,プログラマブルパイプラインおよび固定機能パイプライン部分相互と並列に動作する。
本発明の別の実施形態では,各固定機能パイプライン部分は,おそらくは異なる数の入力および出力を有し,結果を得る際の待ち時間が異なる,別の種類のテクスチャ部としてやりとりの対象とされる。したがって,プログラマブルパイプラインからのアクセスリクエスト時の,テクスチャ部において発生するテクスチャアクセスの待ち時間を,既存の機構により隠蔽する。
本発明の別の態様の実施形態は,プログラマブルパイプライン部分に使用される構成の方法を固定機能パイプライン部分の構成に拡張適用することによって,ヘテロジニアスグラフィックスプロセッサの構成を容易にする。
本発明の第2の態様はコンピュータプログラムを対象とする。コンピュータプログラムは3Dコンピュータグラフィックスをレンダリングする方法を実行するためのコンピュータによって実行される。コンピュータは,前述のグラフィックプロセッサ1またはプロセッサ1の各部分を備える。
プロセッサは,コマンドおよび頂点データをフェッチするコマンドインターフェース部11と,コマンドインターフェース部11からのコマンドおよび頂点データを使用してシーンジオメトリ処理を行って幾何プリミティブおよびフラグメントごとの処理結果を得る1つもしくは複数のプログラマブル部12と,1つもしくは複数のプログラマブル部12から要求があり次第,フィルタリングされたテクスチャサンプルをフェッチするテクスチャサンプリング部16と,フラグメントごとの処理演算の特定の部分を実行する1つもしくは複数の専用固定機能部17と,プログラマブル部を,テクスチャサンプリング部16および1つもしくは複数の専用固定機能部17に並列に結合するアービタ部18とを備え,アービタ部18は,処理要求,1つもしくは複数のプログラマブル部12に従って,テクスチャサンプリング部16または1つもしくは複数の専用固定機能部17へ,1つもしくは複数のプログラマブル部12によって行われたシェーダプログラム実行の結果である処理要求を渡し,またアービタ部18は,テクスチャサンプリング部16または1つもしくは複数の専用固定機能部17からの処理結果を1つもしくは複数のプログラマブル部12へ渡す。
コンピュータによって実行された3Dグラフィックスアプリケーションプログラムは,グラフィックプロセッサ1によって実行されるシェーダプログラムを1つもしくは複数のプログラマブル部12へインストールする。
コンピュータによって実行された3Dグラフィックスアプリケーションプログラムは,コンピュータプロセッサによって実行されたAPI関数を呼び出すことによってシェーダプログラムの第1のパラメータセットを発見する。シェーダプログラムはシェーダプログラムデベロッパによって導入されてもよい。第1のパラメータセットは,グラフィックプロセッサ1がシェーダプログラムを実行する間は一定のままである。
コンピュータによって実行された3Dグラフィックスアプリケーションプログラムは,1つもしくは複数の専用固定機能部17の動作を制御するための第2のパラメータセットを発見する。第2のパラメータセットは,グラフィックプロセッサ1がシェーダプログラムを実行する間は一定のままである。コンピュータによって実行された3Dグラフィックスアプリケーションプログラムは,API関数を1回または複数回呼び出すことによって第1のパラメータセットの発見されたパラメータの値を設定する。コンピュータによって実行された3Dグラフィックスアプリケーションプログラムは,API関数を1回または複数回呼び出すことによって第2のパラメータセットの発見されたパラメータの値を設定する。
本発明の好ましい実施形態は,呼び出されるAPI関数が第1のパラメータセットの種類に特有のものである実施形態である。
本発明の好ましい実施形態は,コンピュータで読み取り可能なプログラム記憶装置である。プログラム記憶装置の例は,CD,CD−ROM,DVD,USBメモリ,SDカード,データベースおよびハードディスクである。プログラム記憶装置は上記の3Dグラフィックスアプリケーションプログラムを記憶する。
本発明の実施形態の1つでは,固定機能パイプライン部分の構成パラメータの種類,名前およびサイズの情報は,プログラマブルパイプライン部分によって実行されるシェーダプログラムのパラメータのものと同じAPI関数によって公開される。固定機能パイプライン部分の構成パラメータ値の設定にも,シェーダプログラムパラメータのものと同じAPI関数が用いられる。したがって本発明は,固定機能パイプライン部分を構成する方法がプログラマブルパイプライン部分を構成する方法と同じである,3Dグラフィックスアプリケーションの視点から見たヘテロジニアスグラフィックスパイプラインを構成するための統一されたAPIを提供する。
本発明の一実施形態では,そのような構成方法が,プログラマブルパイプライン部分と固定機能パイプライン部分の両方が同時に並列に使用されるヘテロジニアスパイプラインを構成するために適用される。
本発明の別の実施形態では,そのような構成方法が,(頂点,ジオメトリまたはフラグメント処理ステージである)1つまたは複数のグラフィックスパイプラインステージがプログラマブルではないヘテロジニアスグラフィックスパイプラインの構成に適用される。この場合,パイプラインを構成する方法は,固定機能パイプラインステージについてのシェーダプログラムソースを特定するという存在しないステップを除いて,完全にプログラマブルなパイプラインを構成する方法と同じである。
本発明は,プログラマブルパイプライン部分および固定機能パイプライン部分を,ステージごとのプログラマブルパイプラインの柔軟性と,固定機能パイプラインのゲートサイズの小規模化および速度とを組み合わせたより効率のよいやり方でアセンブルすることができる,プロセッサまたはシステムを提供することができる。
プログラマブル頂点処理を固定機能フラグメント処理と組み合わせる先行技術のヘテロジニアスグラフィックスプロセッサを示すブロック図である。 頂点およびフラグメントのシェーダ処理を実現するために頂点とフラグメント両方のシェーダプログラムを実行する統一されたシェーダプロセッサ部を有する先行技術のプログラマブルグラフィックスプロセッサを示すブロック図である。 本発明の実施形態によるヘテロジニアスグラフィックスプロセッサを示すブロック図である。 拡張を伴うOpenGL ES 1.X APIを示すブロック図である。 OpenGL ES 2.0 APIと,これによって管理されるシェーダプログラムオブジェクトとを示すブロック図である。 シェーダプログラムオブジェクトが,図3の本発明の実施形態の固定機能パイプライン部分の状態をカプセル化する本発明の実施形態のためのOpenGL ES 2.0 APIを示すブロック図である。 シェーダプログラムオブジェクトが,図1のヘテロジニアスグラフィックスプロセッサのプログラマブルフラグメントシェーダ状態の不在時に固定機能パイプライン部分の状態をカプセル化する本発明の別の実施形態についてのOpenGL ES 2.0 APIを示すブロック図である。 本発明を示すブロック図である。
本発明の実施形態は,ヘテロジニアスグラフィックスプロセッサアーキテクチャにおける固定機能パイプライン部分のゲートサイズの小規模化および速度とプログラマブルパイプライン部分の柔軟性との達成を容易にし,ヘテロジニアスグラフィックスプロセッサの構成を容易にする。図1は,プログラマブル頂点処理ステージが固定機能フラグメント処理ステージと順次に組み合わされる先行技術のヘテロジニアスグラフィックスプロセッサについてのブロック図である。
図1のプロセッサは,コマンドインターフェース部1100と,プログラマブルシェーダ処理部1200と,固定機能フラグメント処理部1400と,ラスタライザ部1300と,テクスチャ部1500と,カラーアップデータ部1600とを備える。固定機能フラグメント処理部1400は,固定機能シェーディング部1401と,固定機能プロシージャルテクスチャ処理部1402と,固定機能テクスチャブレンディング部1403とを備える。固定機能フラグメント処理部1400は,テクスチャ部1500と接続されるように構成されている。よって,図1のプロセッサは,フラグメントシェーディング演算を行う高速で,ゲート効率のよい方法を実現することができるが,その動作に柔軟性を欠く。
図2に,同じプログラマブル処理部のセット上で実行されるシェーダプログラムによって実現され,例えば図1のようなフラグメント処理のための専用固定機能パイプライン部分を全く使用しない完全にプログラマブルな処理ステージを有するグラフィックスプロセッサの別の例を示す。
図2のプロセッサは,コマンドインターフェース部2100と,プログラマブルシェーダ処理部2200と,ラスタライザ部2300と,テクスチャ部2500と,カラーアップデータ部2600とを備える。プログラマブルシェーダ処理部2200は,頂点シェーダタスク待ち行列2201と,テクスチャ保留中タスク待ち行列2202と,1つまたは複数のプログラマブルシェーダプロセッサ部2203と,テクスチャ要求待ち行列2204と,フラグメントシェーダタスク待ち行列2205とを備える。図2のプロセッサは,プログラマブルシェーダ処理部2200とテクスチャ部2500とを,テクスチャ要求待ち行列2204を介して接続する。よってこのプロセッサは,プロセッサの処理速度は図1のプロセッサほど高速ではないが,柔軟性を有する。これは,このプロセッサは専用固定機能パイプライン部分を持たず,組み込み実装のゲートサイズ制限のために少数のプログラマブルシェーダ処理部2200しか備えることができないからである。
図3は,本発明の一実施形態のヘテロジニアスグラフィックスプロセッサのブロック図である。先行技術のグラフィックスプロセッサとは異なり,このプロセッサは,固定機能パイプライン部分を完全にプログラマブルなグラフィックスプロセッサと組み合わせたものであり,固定機能パイプラインは図1のグラフィックスプロセッサの場合のようにプログラマブルパイプラインステージを置き換えるのではなく,プログラマブルパイプライン状態と並列に動作して,その要求時に動作を行う。
図2の完全にプログラマブルなグラフィックスプロセッサと同様に,図3の実施形態のグラフィックスプロセッサは,コマンドインターフェース部3100と,プログラマブルシェーダ処理部3200と,ラスタライザ部3300と,テクスチャ部3500と,カラーアップデータ部3600とを含む。
コマンドインターフェース部3100は,ホストから実行コマンドを受け取り,ホストメモリからジオメトリデータをフェッチするシステムの部分である。コマンドインターフェース部3100は,ハードウェアリソースによって実行されてもよい。ハードウェアも,ソフトウェアと同様に,コマンドインターフェース部3100として機能してもよい。本発明の各部または手段のすべては,ハードウェアリソースによっても,ハードウェアリソースとソフトウェアの両方によっても,実行されてもよい。
ラスタライザ部3300は,頂点シェーダプログラムによって変形された頂点で構成される,点,線および三角形の単純な幾何プリミティブを,画面上でプリミティブによってカバーされるフラグメントのセットへ変換する部分である。ラスタライザは当分野ですでに公知であり,よって本発明のプロセッサは,任意の種類のラスタライザを備えていればよい。
テクスチャ部3500は,テクスチャアクセス要求を処理する部分である。テクスチャ部3500は,テクスチャ情報を記憶するデータベースにアクセスすることができ,データベースに記憶されたテクスチャ情報を得ることができる。
カラーアップデータ部3600は,プログラマブルシェーダ処理部3200によるフラグメント処理結果を,フレームバッファのコンテンツにマージする部分である。
プログラマブルシェーダプロセッサ部3200は,プログラマブル頂点およびフラグメントパイプライン処理ステージを実現する部分である。プログラマブルシェーダプロセッサ部3200は,頂点シェーダタスク待ち行列3201と,1つまたは複数のプログラマブルシェーダプロセッサ部3203と,外部装置アクセス待ち行列3204と,フラグメントシェーダタスク待ち行列3205とを備える。プログラマブルシェーダプロセッサ部3200は,外部装置アクセス保留中待ち行列3202をさらに含んでいてもよい。プログラマブルシェーダプロセッサ部3200は,他のタスクを実行するための他の部分を備えていてもよい。
頂点シェーダタスク待ち行列3201は,頂点シェーダステージが処理すべきタスクのシーケンスを記憶する部分である。
外部装置アクセス保留中待ち行列3202は,テクスチャ部や固定機能パイプライン部分を含む外部装置のためのアクセス保留中タスクのシーケンスを記憶する部分である。待ち行列3202は,保留中外部装置アクセス要求完了時にストールされ,よって,シェーダプロセッサ3203上でのアクティブな実行と入れ替えられたタスクを記憶してもよい。
1つまたは複数のプログラマブルシェーダプロセッサ部3203は,待ち行列3201,3205から利用可能な頂点およびフラグメントシェーダタスクをフェッチし,対応するタスクの処理のための頂点およびフラグメントシェーダプログラムを実行する部分である。プログラマブルシェーダプロセッサ部3203は,外部装置アクセス保留中待ち行列3202および外部装置アクセス待ち行列3204と接続されるように構成されている。
外部装置アクセス待ち行列3204は,テクスチャ部および固定機能シェーディング部および固定機能手続型部のような固定機能パイプライン部分を含む,外部装置のためのアクセス要求のシーケンスを記憶する部分であり,類似の待ち行列2204がテクスチャ部アクセス要求のみを記憶するのに使用される図2の完全にプログラマブルなグラフィックスプロセッサに対して違いを生む部分である。
フラグメントシェーダタスク待ち行列3205は,ラスタライザ部3300によって生成されたフラグメントに対応するフラグメントシェーダ処理タスクを記憶する部分である。
図2のプログラマブルグラフィックスプロセッサとは異なり,図3の本発明の実施形態は,アービタ部3206と,固定機能シェーディング部3401と,固定機能プロシージャルテクスチャ処理部3402とをさらに含む。
前述のように,図3のプログラマブルシェーダプロセッサ部3200はアービタ部3206をさらに備える。アービタ部3206は,外部装置アクセス要求待ち行列3204から要求を受け取り,それらの要求を,待ち行列の宛先装置に従って,テクスチャ部3500を含む2つ以上の外部装置に発行する部分である。アービタ部3206は,返される要求完了結果を受け取り,要求完了イベントを外部装置アクセス要求待ち行列3204へ送る。アービタ部3206は,ハードウェアリソースによって,固定機能シェーディング部3401および固定機能プロシージャルテクスチャ処理部3402と接続されるように構成されている。テクスチャ部3500,固定機能シェーディング部3401および固定機能プロシージャルテクスチャ処理部3402は,アービタ部3206と並列に接続されている。
固定機能シェーディング部3401は,構成選択可能光反射モデルのうちの1つに従ってフラグメントの色を決定するための,いくつかの光反射演算を行う部分である。
固定機能プロシージャルテクスチャ処理部3402は,テクスチャを定義する手続きをこの部の構成に従って選択することができる,手続的に定義されたテクスチャ画像のためのテクセル色を演算する部分である。
本明細書で示す実施形態は例示であり,変形および改変が可能であることを理解すべきである。待ち行列3202,3204,3205は,コレクション内の各項目が特定の種類のタスク専用である待ち行列のコレクションとして実現することができる。プログラマブルパイプラインステージの数は,頂点およびフラグメント処理ステージによって制限されない。プログラマブルパイプラインステージの数は,数段のプログラマブル幾何プリミティブ処理を含むことができる。待ち行列3201,3205と同様に,追加のプログラマブルパイプラインステージと関連付けられた他の種類のタスクを保持するために,追加の待ち行列が存在していてもよい。
図3の本発明の実施形態において,コマンドインターフェース部3100は,ホストシステムメモリに位置するコマンドバッファを読み取り,実行することによって,ホストシステムコマンドを処理する。コマンドバッファは構成レジスタコマンドを含み,構成レジスタコマンドを実行すると,グラフィックスプロセッサが構成され,ホストシステム上で,1つまたは複数のジオメトリデータ処理要求の完了を表示する割り込みが生成されると共に,ホストシステムメモリ内にあるジオメトリデータの処理がトリガされることになる。ジオメトリデータは,コマンドインターフェース部3100によってフェッチされ,処理のためにプログラマブルシェーダ処理部3200へ渡されたインデックスおよび頂点バッファのコンテンツを含む。プログラマブルシェーダ処理部3200は,フェッチされた頂点データについての頂点データ処理要求を,シェーダプロセッサ3203のコレクションのための入力タスク待ち行列の1つとして使用される頂点シェーダタスク待ち行列3201に入れる。
シェーダプロセッサ3203は,頂点シェーダタスク待ち行列3201から利用可能なタスクをフェッチし,頂点シェーダプログラムを実行することにより関連付けられた頂点データの処理を開始する。待ち行列3201の特定のタスクについての処理が完了すると,そのタスクは待ち行列から取り除かれ,頂点処理の結果は,コマンドインターフェース部3100によってフェッチされたインデックスバッファのコンテンツによって定義される頂点のシーケンスから,または,インデックスバッファの存在がホストによって構成されなかった場合には,コマンドインターフェース部3100によってフェッチされた頂点バッファ内の頂点のシーケンスから,点,線または三角形のような単純なプリミティブをアセンブルするためにラスタライザ部3300へ送られる。
ラスタライザ部3300は,アセンブルされたプリミティブの画面空間への投影を行い,プリミティブをフラグメントのセットへ展開する。各フラグメントの属性は,画面上のフラグメント位置に従ってラスタライザへ入力された頂点データの属性値間の補間の結果である。フラグメントデータを処理するために,タスクが近傍フラグメントのグループについて作成され,フラグメントシェーダタスク待ち行列3205へ追加される。この待ち行列3205は,頂点シェーダタスク待ち行列3201と共に,シェーダプロセッサ3203のための入力として使用される。待ち行列3205の項目と関連付けられたフラグメントデータは,シェーダプロセッサ3203によってフェッチされ,これらがフラグメントシェーダプログラムを実行することによって処理される。フラグメント処理が終了すると,対応するタスク項目が待ち行列3205から取り除かれ,フラグメント処理結果が,宛先フレームバッファのコンテンツとブレンドするようにカラーアップデータ部3600へ送られる。
シェーダ部3203による頂点またはフラグメントシェーダプログラムの実行中に,シェーダプログラムは,テクスチャ座標,サンプリングされるべきテクスチャ画像を特定するテクスチャ画像識別子,LODレベル(詳細レベル)までのオフセットなどを含む特定のパラメータセットについてのテクスチャサンプリング結果を,シェーダ部が要求するよう求めてもよい。テクスチャアクセスは,その完了のための何十クロックから数百クロックもの長い待ち時間を特徴とする。これは,長いアクセス待ち時間を伴うメモリが,多くの場合,テクスチャ画像データを記憶するために用いられるからである。テクスチャアクセス結果を待つことと関連付けられる性能低下を防ぐために,図2のプログラマブルグラフィックスプロセッサと類似の,図3の本発明の実施形態では,テクスチャアクセス結果の待機時にストールされたタスクは,外部装置アクセス保留中待ち行列3202へ入れられ,そのためのシェーダプロセッサ3203内の実行リソースが解放される。このときに,待ち行列3201,3205から,または,それらのテクスチャアクセス要求を完了させるタスクのための待ち行列3202からも,別のタスクがフェッチされ,その実行が開始され,または続行される。待ち行列3201,3205内の利用可能なタスク,および/または待ち行列3202からの完了された要求を伴うタスクの数が十分にあれば,シェーダプロセッサ3203の動作中にさらなるストールサイクルを導入することなく,テクスチャアクセスの待ち時間を隠すことが可能である。待ち行列3202のタスクは,待ち行列3204が,テクスチャ部3500から対応する表示を受け取るアービタ部3206によってこのイベントを通知され次第,関連付けられたテクスチャ要求を完了したものとしてマークされる。
テクスチャアクセス待ち時間は相当な長さであるため,各待ち行列3201,3202,3204,3205のサイズは,顕著なゲートコストをもたらす何十,何百ものタスク項目に関する情報を保持するのに十分なものとしてもよい。ただし,この代価は,グラフィックスプロセッサの全般的性能を定義するシェーダプロセッサ3203の効率的動作を達成するのに必要である。
グラフィックスプロセッサのデスクトップ実装では,シェーダプロセッサ部3203の数は,何十個から何百個,何千個にまでさえ及ぶ。これらのプロセッサの大きなグループが同時に複数のデータ項目に対して同じ命令を実行し,よって,プロセッサの実際の性能を定義する1クロックあたりの高い実行命令数(IPC)を達成する。組み込みの場合には,ゲートサイズ制限によりシェーダプロセッサの数が数個単位,おそらくは数十個単位に制限される。このようにして実効IPCが低下し,よって,すでにパワー不足の組み込みプログラマブル3Dグラフィックスプロセッサの性能低下がもたらされる。
複雑な物理ベースの光反射モデルは,その評価のために数十ものプログラムステップを必要とし,よって,組み込みグラフィックスプロセッサの低IPC率が原因で少数のフラグメントについての結果を取得するのに多数のサイクルが費やされる結果になる。固定機能パイプラインでは,これらの複雑な光反射モデルは,これらをシェーダプログラム内で実行する場合よりも1オーダ高い実効IPCを有する結果を得る際の数十から数百クロックの待ち時間を犠牲にして,1サイクルにつき1フラグメントが処理されるという性能で実行することができる。プロシージャルテクスチャ処理などのように,固定機能パイプライン実装から利益を得ることができる種類の演算が他にもいくつかある。
そのような演算についての固定機能パイプライン実装の大きな待ち時間および高スループットの特性は,そのようなパイプライン部分が相互につなぎ合わされたときに,また,図1の先行技術のヘテロジニアスグラフィックスプロセッサで行われるようにプログラマブルパイプラインステージの前または後の位置で動作するときにさえも,ほとんど問題を生じない。しかし,この手法は,固定機能パイプライン部分についての処理結果をさらに別の処理のために同じパイプラインステージ内のプログラマブルパイプライン部分へフィードバックすることができないために,グラフィックスパイプラインの柔軟性を制限することになる。本発明では,そうではなく,固定機能パイプライン部分はプログラマブルステージと並列に配置され,シェーダプログラムの実行と並行して,そのシェーダプログラムによって生成される要求に対して作用し,演算結果が要求側プログラムインスタンスに返され,その演算結果をプログラム自体によって生成される結果と組み合わせることができる。このようにしてプログラマブルパイプラインの柔軟性が保持されると同時に,固定機能パイプライン部分の高い実効IPC数も,グラフィックスプロセッサの全般的性能を高める。
固定機能パイプライン部分とプログラマブルシェーダプロセッサとを組み合わせることの最大の課題は,固定機能パイプライン部分の大きな待ち時間の扱いにある。しかし,その待ち時間および高スループットは,固定機能パイプライン部分を,その特性においてテクスチャ部に類似したものにする。本発明はこの類似性を利用することに基づくものであり,固定機能パイプライン部分との通信における待ち時間を隠すために,利用可能なタスクおよび要求保留中タスクのための大きなタスク待ち行列の同じ方法を用いる。図3の本発明の実施形態では,外部装置要求待ち行列は,テクスチャ部についてのみならず,固定機能シェーディング部3401および固定機能プロシージャルテクスチャ処理部3402といった固定機能パイプライン部分についての要求データも記憶することができる。アービタ部3206は待ち行列3204に記憶された要求の宛先装置情報をパースし,要求を適切な装置へ宛先指定する。テクスチャアクセス結果を保留にするタスクと同様に,固定機能パイプラインアクセス結果を保留にするタスクも,関連付けられた要求が完了され,シェーダプロセッサ3203に次のタスクの実行のための利用可能なリソースが生じるまで,外部装置アクセス保留中待ち行列3202に入れられる。待ち行列3201,3205内のタスクおよび待ち行列3202内の完了された要求を有するタスクが十分にあれば,固定機能パイプライン部分3401,3402にアクセスする際の待ち時間を隠すという目的が,プログラマブルシェーダ処理部3200の最小限の変更で達成され,よって,埋め込み空間アプリケーションでは決定的に重要なゲートコスト増加が最小限しか生じないことになる。
構成方法
本発明の別の態様は,図1の先行技術のものと,図3に示す本発明の実施形態の両方のヘテロジニアスパイプラインの構成を容易にする。図4は,拡張を伴うOpenGL ES 1.X APIのブロック図である。図4に示すように,OpenGL ES 1.X APIの一部は,テクスチャブレンディング部動作の特定の態様を構成するためのAPI関数4101,4102を有する固定機能テクスチャブレンディング部構成API4100を備える。さらにAPIは,固定機能プロシージャルテクスチャ処理部動作の特定の態様を構成するためのAPI関数4201,4202を有する固定機能プロシージャルテクスチャ処理部構成API拡張4200を備える。
パイプラインの各部分についての構成に特有のAPI関数を公開することによって特定の固定機能パイプライン部分の構成をサポートする図4のOpenGL ES 1.X APIの先行技術の手法,ならびに頂点およびフラグメントパイプライン処理ステージについての固定機能パイプライン部分構成を全くサポートしないOpenGL ES 2.0の先行技術の手法とは異なり,図6の本発明の実施形態は,その内部のプログラマブルパイプラインステージと固定機能パイプライン部分両方の構成のための統一されたAPIを提供し,よって,先行技術の,または提案されるヘテロジニアス3Dグラフィックスプロセッサ上で動作する3Dグラフィックスアプリケーションの開発,およびそのようなアプリケーションのコンテンツを作成するのに必要とされるコンテンツ作成ツールの開発を,大幅に円滑化する。
図5の先行技術のOpenGL ES 2.0 APIの場合,API関数は,プログラムオブジェクト5100を作成し,操作し,削除するのに使用される。プログラムオブジェクト5100が一度作成されると,プログラムオブジェクト5100は頂点シェーダオブジェクト5200およびフラグメントシェーダオブジェクト5300を用いて構成することができる。作成時には,シェーダオブジェクト5200およびシェーダオブジェクト5300は,どの実際のシェーダプログラムとも関連付けられていない。しかし,最終的には,テキスト形式またはコンパイルされたバイナリ形式のシェーダプログラムソースを特定することができ,頂点シェーダソースもしくはバイナリオブジェクト5201を含む頂点シェーダオブジェクト5200およびフラグメントシェーダソースもしくはバイナリオブジェクト5301を含むフラグメントシェーダオブジェクト5300が得られる。シェーダソースまたはバイナリオブジェクトを処理した結果として,その名前および種類がシェーダプログラムにおいて特定された構成パラメータセットが発見され,構成パラメータのための構成記憶空間が,頂点シェーダユニフォーム状態オブジェクト5300およびフラグメントシェーダユニフォーム状態オブジェクト5500の形で,プログラムオブジェクト5100において,それらのために利用可能になる。「ユニフォーム」という語は,OpenGL ES 2.0 API用語における構成パラメータの同義語である。状態オブジェクト5300,5500はプログラムオブジェクト5100の状態を形成し,頂点シェーダパラメータグループとフラグメントシェーダパラメータグループとがAPIの視点から共にマージされてプログラム状態を形成する。プログラムオブジェクト5100の特定のインスタンスについて利用可能なパラメータに関する情報は,それについてのリンク操作が完了した後で利用可能になり,問題となる実際のプログラムオブジェクトおよびその内部のシェーダプログラムソースにかかわらず,ユニフォームの数,その名前,種類を提供すること,および,その値を統一されたやり方で特定し,問い合わせることを可能にするAPI関数のセットによって発見することができる。OpenGL ES 2.0 APIによって定義される標準に従うグラフィックスプロセッサでは,その頂点およびフラグメント処理パイプラインステージは,アプリケーション指定のジオメトリデータを処理する要求を実行する瞬間において有効な,プログラムオブジェクト5100を特定することによって完全に構成される。よって,図1の先行技術のヘテロジニアスグラフィックスプロセッサ上では,OpenGL ES 2.0プログラムオブジェクト5100によって必要とされるフラグメントシェーダプログラムの実行のための機能がないために,そのような形でOpenGL ES 2.0 APIを実現することができない。加えて,図3の3Dグラフィックスプロセッサの形の本発明の実施形態を,OpenGL ES 2.0 APIによってサポートすることもできない。これは,プログラムオブジェクトが,本発明で導入される固定機能パイプライン部分の構成パラメータの値を保持するための状態を含まないからである。
そのような限界を克服し,図3のヘテロジニアスグラフィックスプロセッサについての統一された構成方法を提供するために,図6の本発明の一実施形態では,OpenGL ES APIのプログラムオブジェクト6100が,固定機能ユニフォーム状態オブジェクト6600,頂点シェーダソース/バイナリオブジェクト6201を含む頂点シェーダオブジェクト6200,頂点シェーダユニフォーム状態オブジェクト6300,フラグメントシェーダソース/バイナリオブジェクト6401を含むフラグメントシェーダオブジェクト6400,およびフラグメントシェーダユニフォーム状態オブジェクト6500を含むように拡張される。
固定機能パイプライン部分の構成パラメータのリストがプログラムオブジェクト6100のユニフォームリストに追加され,glGetActiveUniformやglGetUniformLocationといったOpenGL ES 2.0 APIの既存のプログラムユニフォーム列挙関数によって公開される。ユニフォーム列挙API関数は頂点シェーダユニフォームとフラグメントシェーダユニフォームとを区別しないため,ユニフォーム列挙関数への変更は不要である。同様に,OpenGL ES 2.0 APIの既存のユニフォーム問い合わせ/指定関数も,固定機能パイプライン部分の状態を発見し,操作するためのいかなる変更もなしで使用することができ,よって,図3のヘテロジニアス3Dグラフィックスプロセッサの構成が大幅に簡略化される。
図7に示す本発明の構成態様の別の実施形態では,OpenGL ES 2.0 API関数によって制御されるプログラムオブジェクト7100が,固定機能ユニフォーム状態オブジェクト7600,頂点シェーダソース/バイナリオブジェクト7201を含む頂点シェーダオブジェクト7200,および頂点シェーダユニフォーム状態オブジェクト7300を含むように変更される場合に,図1の先行技術のヘテロジニアスグラフィックスプロセッサを,OpenGL ES 2.0プログラムオブジェクト構成API関数を使用して構成することができる。
そのような実施形態では,固定機能ユニフォーム状態オブジェクト7600は,フラグメント処理パイプラインステージ全体の状態を完全に記述する。プログラムオブジェクト7600のためのシェーダオブジェクトを特定するステップは,フラグメントシェーダオブジェクトを特定するステップを省き,またはフラグメントシェーダオブジェクトの識別子としてある既定の値を取り,よって,OpenGL ES 2.0 APIの視点から,プログラムオブジェクト指定ステップを模倣する。このようにしてOpenGL ES 2.0グラフィックスアプリケーションを,図1のヘテロジニアスグラフィックスプロセッサを配備するようにわずかに変更することができる。
本発明はコンピュータ産業および娯楽産業において使用される。

Claims (5)

  1. 3Dシーンをレンダリングするグラフィックプロセッサ(1)であって,
    コマンドおよび頂点データをフェッチするコマンドインターフェース部(11)と,
    前記コマンドインターフェース部(11)からの前記コマンドおよび前記頂点データを使用してシーンジオメトリ処理を行って幾何プリミティブおよびフラグメントごとの処理結果を得る1つもしくは複数のプログラマブル部(12)と,
    前記1つもしくは複数のプログラマブル部(12)から前記幾何プリミティブを受け取り,前記幾何プリミティブをフラグメントへ変換するラスタライザ部(13)と,
    前記1つもしくは複数のプログラマブル部(12)からの前記フラグメントごとの処理結果と,フラグメントフレームバッファ(15)で記憶されたコンテンツとを受け取り,前記フラグメントごとの処理結果と前記コンテンツをマージするカラーアップデータ部(14)と,
    前記1つもしくは複数のプログラマブル部(12)から要求があり次第,フィルタリングされたテクスチャサンプルをフェッチするテクスチャサンプリング部(16)と,
    フラグメントごとの処理演算の特定の部分を実行する1つもしくは複数の専用固定機能部(17)と,
    前記プログラマブル部を,前記テクスチャサンプリング部(16)および1つもしくは複数の専用固定機能部(17)と並列に結合するアービタ部(18)とを備え,
    前記アービタ部(18)が,前記テクスチャサンプリング部(16)または前記1つもしくは複数の専用固定機能部(17)へ処理要求を渡し,前記処理要求が,前記1つもしくは複数のプログラマブル部(12)によって行われたプログラム実行の結果であり,前記アービタ部(18)が,前記テクスチャサンプリング部(16)または前記1つもしくは複数の専用固定機能部(17)からの処理結果を,前記1つもしくは複数のプログラマブル部(12)へ渡す,
    グラフィックプロセッサ。
  2. 請求項1に記載のグラフィックプロセッサであって,
    前記1つもしくは複数の専用固定機能部(17)が第2のテクスチャサンプリング部として前記アービタ部(18)と対話し,その入力および出力の数が前記テクスチャサンプリング部(16)の入力および出力の数と異なる,
    グラフィックプロセッサ。
  3. 3Dコンピュータグラフィックスをレンダリングする方法を実行するためのコンピュータによって実行されるコンピュータプログラムであって,
    前記コンピュータがグラフィックプロセッサ(1)を備え,前記グラフィックプロセッサ(1)が,
    コマンドおよび頂点データをフェッチするコマンドインターフェース部(11)と,
    前記コマンドインターフェース部(11)からの前記コマンドおよび前記頂点データを使用してシーンジオメトリ処理を行って幾何プリミティブおよびフラグメントごとの処理結果を得る1つもしくは複数のプログラマブル部(12)と,
    前記1つもしくは複数のプログラマブル部(12)から要求があり次第,フィルタリングされたテクスチャサンプルをフェッチするテクスチャサンプリング部(16)と,
    フラグメント前の処理演算の特定の部分を実行する1つもしくは複数の専用固定機能部(17)と,
    前記プログラマブル部を,前記テクスチャサンプリング部(16)および1つもしくは複数の専用固定機能部(17)と並列に結合するアービタ部(18)であって,前記テクスチャサンプリング部(16)または前記1つもしくは複数の専用固定機能部(17)へ,前記1つもしくは複数のプログラマブル部(12)によって行われたプログラム実行の結果である処理要求を渡すように構成されており,および,前記テクスチャサンプリング部(16)または前記1つもしくは複数の専用固定機能部(17)からの処理結果を前記1つもしくは複数のプログラマブル部(12)へ渡すように構成されているアービタ部(18)とを備え,
    前記方法が,
    前記グラフィックプロセッサ(1)によって実行されるシェーダプログラムを,1つもしくは複数のプログラマブル部(12)へインストールするステップと,
    前記シェーダプログラムの第1のパラメータセットを発見するステップであって,前記第1のパラメータセットは,前記グラフィックプロセッサ(1)がAPI関数を呼び出すことによって前記シェーダプログラムを実行する間は一定のままであるステップと,
    前記1つもしくは複数の専用固定機能部(17)の動作を制御するための第2のパラメータセットを発見するステップであって,前記第2のパラメータセットは,前記グラフィックプロセッサ(1)がAPI関数を呼び出すことによって前記シェーダプログラムを実行する間は一定のままであるステップと,
    API関数を1回または複数回呼び出すことによって前記第1のセットの発見されたパラメータの値を設定するステップと,
    API関数を1回または複数回呼び出すことによって前記第2のセットの発見されたパラメータの値を設定するステップとを含む,
    コンピュータプログラム。
  4. 請求項3に記載のコンピュータプログラムであって,
    前記呼び出されるAPI関数が前記第1のパラメータセットの種類に特有のものである,
    コンピュータプログラム。
  5. コンピュータで読み取り可能なプログラム記憶装置であって,
    請求項3に記載のコンピュータプログラムを記憶している,
    プログラム記憶装置。
JP2013524179A 2011-04-28 2012-04-27 ヘテロジニアスグラフィックスプロセッサおよびその構成方法 Expired - Fee Related JP5829684B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013524179A JP5829684B2 (ja) 2011-04-28 2012-04-27 ヘテロジニアスグラフィックスプロセッサおよびその構成方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011102051 2011-04-28
JP2011102051 2011-04-28
PCT/JP2012/002907 WO2012147364A1 (en) 2011-04-28 2012-04-27 Heterogeneous graphics processor and configuration method thereof
JP2013524179A JP5829684B2 (ja) 2011-04-28 2012-04-27 ヘテロジニアスグラフィックスプロセッサおよびその構成方法

Publications (2)

Publication Number Publication Date
JP2014513329A JP2014513329A (ja) 2014-05-29
JP5829684B2 true JP5829684B2 (ja) 2015-12-09

Family

ID=47071894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013524179A Expired - Fee Related JP5829684B2 (ja) 2011-04-28 2012-04-27 ヘテロジニアスグラフィックスプロセッサおよびその構成方法

Country Status (3)

Country Link
US (1) US9619918B2 (ja)
JP (1) JP5829684B2 (ja)
WO (1) WO2012147364A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9019284B2 (en) * 2012-12-20 2015-04-28 Nvidia Corporation Input output connector for accessing graphics fixed function units in a software-defined pipeline and a method of operating a pipeline
US9123128B2 (en) 2012-12-21 2015-09-01 Nvidia Corporation Graphics processing unit employing a standard processing unit and a method of constructing a graphics processing unit
JP5864474B2 (ja) * 2013-05-01 2016-02-17 株式会社ディジタルメディアプロフェッショナル 空間を分割してグラフィックスを処理する画像処理装置及び画像処理方法
US9437172B2 (en) 2014-08-19 2016-09-06 Apple Inc. High-speed low-power access to register files
US10402308B2 (en) * 2015-12-09 2019-09-03 Sap Se Sandboxing for custom logic
US20170262291A1 (en) * 2016-03-09 2017-09-14 Mediatek Inc. Heterogeneous computing system with a shared computing unit and separate memory controls
US10235811B2 (en) 2016-12-29 2019-03-19 Intel Corporation Replicating primitives across multiple viewports
US10628910B2 (en) 2018-09-24 2020-04-21 Intel Corporation Vertex shader with primitive replication
CN110223214B (zh) * 2019-06-10 2023-04-11 西安芯瞳半导体技术有限公司 一种降低纹理单元访问量的方法、装置及计算机存储介质
US10964086B2 (en) * 2019-08-27 2021-03-30 Apical Limited Graphics processing

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6847370B2 (en) * 2001-02-20 2005-01-25 3D Labs, Inc., Ltd. Planar byte memory organization with linear access
US7274365B1 (en) * 2003-01-31 2007-09-25 Microsoft Corporation Graphical processing of object perimeter information
US20080094404A1 (en) 2003-11-19 2008-04-24 Reuven Bakalash Computing system having multi-mode parallel graphics rendering subsystem including multiple graphics processing pipelines (GPPLS) and supporting automated division of graphics commands and data during automatic mode control
US6987517B1 (en) 2004-01-06 2006-01-17 Nvidia Corporation Programmable graphics processor for generalized texturing
US7706633B2 (en) 2004-04-21 2010-04-27 Siemens Corporation GPU-based image manipulation method for registration applications
US7505036B1 (en) * 2004-07-30 2009-03-17 3Dlabs Inc. Ltd. Order-independent 3D graphics binning architecture
US7388588B2 (en) * 2004-09-09 2008-06-17 International Business Machines Corporation Programmable graphics processing engine
JP2006113909A (ja) 2004-10-15 2006-04-27 Nec Electronics Corp 画像処理装置、画像処理方法及び画像処理プログラム
US7623132B1 (en) 2004-12-20 2009-11-24 Nvidia Corporation Programmable shader having register forwarding for reduced register-file bandwidth consumption
JP4255449B2 (ja) 2005-03-01 2009-04-15 株式会社ソニー・コンピュータエンタテインメント 描画処理装置、テクスチャ処理装置、およびテセレーション方法
US7865894B1 (en) 2005-12-19 2011-01-04 Nvidia Corporation Distributing processing tasks within a processor
US7986325B1 (en) * 2006-12-12 2011-07-26 Nvidia Corporation Loading integer-based data into a graphics processing system
JP4900051B2 (ja) 2007-05-31 2012-03-21 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7911480B2 (en) 2007-10-08 2011-03-22 Via Technologies, Inc. Compression of multiple-sample-anti-aliasing tile data in a graphics pipeline
US8174534B2 (en) * 2007-12-06 2012-05-08 Via Technologies, Inc. Shader processing systems and methods
US8698818B2 (en) * 2008-05-15 2014-04-15 Microsoft Corporation Software rasterization optimization
US8558836B2 (en) * 2008-05-30 2013-10-15 Advanced Micro Devices, Inc. Scalable and unified compute system
US8289341B2 (en) * 2009-06-29 2012-10-16 Intel Corporation Texture sampling

Also Published As

Publication number Publication date
JP2014513329A (ja) 2014-05-29
US9619918B2 (en) 2017-04-11
US20140055453A1 (en) 2014-02-27
WO2012147364A1 (en) 2012-11-01

Similar Documents

Publication Publication Date Title
JP5829684B2 (ja) ヘテロジニアスグラフィックスプロセッサおよびその構成方法
US20210311707A1 (en) Method and system of command buffer between a cpu and gpu
Fatahalian et al. A closer look at GPUs
KR101134241B1 (ko) 그래픽 처리 유닛에서 프레그먼트 셰이더 바이패스, 및 이를 위한 장치 및 방법
JP5054203B2 (ja) グラフィックス処理の命令レイテンシ減少のためのシステムおよび方法
JP7253507B2 (ja) 仮想化アクセラレーテッド処理デバイスの早期仮想化コンテキストスイッチ
EP3137985B1 (en) Method and system to create a rendering pipeline
JP7282675B2 (ja) アウトオブオーダキャッシュリターン
Fatahalian et al. GPUs: A Closer Look: As the line between GPUs and CPUs begins to blur, it’s important to understand what makes GPUs tick.
US20140351826A1 (en) Application programming interface to enable the construction of pipeline parallel programs
TW201435581A (zh) 透過管線狀態繫結觸發的效能事件擷取
JP7121019B2 (ja) アウトオブオーダのピクセルシェーダのエクスポート
US10593093B2 (en) Data processing systems
US20220058048A1 (en) Varying firmware for virtualized device
JP2023532433A (ja) マルチサンプルアンチエイリアシングのためのロード命令
JP2023518715A (ja) 部分的に常駐するテクスチャのサンプリング
Angel et al. An introduction to WebGL programming
KR20090075530A (ko) 쉐이더 프로세서 및 듀얼 페이즈 명령 처리 방법
KR20090075521A (ko) 쉐이더 프로세서 및 연산 수행 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150814

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151022

R150 Certificate of patent or registration of utility model

Ref document number: 5829684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees