JP2009080797A - グラフィックスプロセッサユニットパイプラインにおける条件付き実行ビット - Google Patents

グラフィックスプロセッサユニットパイプラインにおける条件付き実行ビット Download PDF

Info

Publication number
JP2009080797A
JP2009080797A JP2008209007A JP2008209007A JP2009080797A JP 2009080797 A JP2009080797 A JP 2009080797A JP 2008209007 A JP2008209007 A JP 2008209007A JP 2008209007 A JP2008209007 A JP 2008209007A JP 2009080797 A JP2009080797 A JP 2009080797A
Authority
JP
Japan
Prior art keywords
pixel
alu
operands
conditional execution
pixels
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.)
Granted
Application number
JP2008209007A
Other languages
English (en)
Other versions
JP5435253B2 (ja
Inventor
Tyson J Bergland
ジェー. バーグランド タイソン
Craig M Okruhlica
エム. オクルーリカ クレイグ
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of JP2009080797A publication Critical patent/JP2009080797A/ja
Application granted granted Critical
Publication of JP5435253B2 publication Critical patent/JP5435253B2/ja
Active 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
    • G06T15/005General purpose rendering architectures
    • 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
    • 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

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)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

【課題】ハンドヘルド型装置において現実的な3−Dグラフィックスレンダリングを迅速に実行すること。
【解決手段】グラフィックスプロセッサユニットにおける算術論理ステージはある程度の台数の算術論理ユニット(ALU)を含む。命令は異なるピクセルと関連付けられているピクセルデータを備えるオペランドの組に適用される。条件付き実行ビットの値はオペランドの組の中のピクセルデータがALUによってどのように処理されるかを決定する。
【選択図】 図7A

Description

[0001]本出願は、T.Bergland等により出願され、発明の名称が“Buffering Deserialized Pixel Data in a Graphics Processor Unit Pipeline”であり、代理人書類番号がNVID−P003219であり、本発明の譲受人に譲渡され、参照によって全体が本明細書に組み込まれている米国特許出願に関連している。
[0002]本出願は、T.Bergland等により出願され、発明の名称が“Shared Readable and Writeable Global Values in a Graphics Processor Unit Pipeline”であり、代理人書類番号がNVID−P003476であり、本発明の譲受人に譲渡され、参照によって全体がそのまま本明細書に組み込まれている米国特許出願関連している。
[0003]本発明の実施形態は一般的にコンピュータグラフィックスに関係する。
[0004]近年のコンピュータ性能における進歩は、グラフィックスシステムがパーソナルコンピュータ、ホームビデオゲームコンピュータ、ハンドヘルド型装置などを使用してより現実的なグラフィカルイメージを提供することを可能にさせている。このようなグラフィックスシステムでは、複数のプロシージャがグラフィックスプリミティブをシステムのスクリーンにレンダリングまたは描画するために実行される。グラフィックスプリミティブは、点、線、多角形などのようなグラフィックの基本コンポーネントである。レンダリングされたイメージは、これらのグラフィックスプリミティブの組み合わせを用いて形成される。多数のプロシージャが3次元(3−D)グラフィックスレンダリングを実行するために利用されてもよい。
[0005]専用グラフィックスプロセッシングユニット(GPU)はグラフィックスレンダリングプロシージャが実行される速度を増加させるために開発されている。GPUは典型的に1個以上のレンダリングパイプラインを組み込む。各パイプラインは、グラフィックス命令/データの高速実行のため設計された複数のハードウェアに基づく機能ユニットを含む。一般に、命令/データはパイプラインのフロントエンドに供給され、計算結果がパイプラインのバックエンドに現れる。GPUのハードウェアに基づく機能ユニット、キャッシュメモリ、ファームウェアなどは、基本グラフィックスプリミティブに演算を行い、リアルタイムレンダリングされた3−Dイメージを生成するように設計される。
[0006]電話機、個人情報端末(PDA)、および、その他の装置のような携帯型またはハンドヘルド型装置における3−Dグラフィカルイメージのレンダリングへの関心が高まっている。しかし、携帯型またはハンドヘルド型装置は、一般に、デスクトップコンピュータのようなフルサイズ型装置と比べて制限がある。たとえば、携帯型装置は典型的にバッテリー給電方式であるので、電力消費が懸案事項である。さらに、携帯型装置のサイズはより小さいので、携帯型装置の内部で利用可能な空間が制限される。要望は、このような装置の制限の範囲内で、ハンドヘルド型装置において現実的な3−Dグラフィックスレンダリングを迅速に実行することである。
[0007]本発明の実施形態はグラフィックスプロセッサユニットパイプラインにおいてデータを迅速かつ効率的に処理する方法およびシステムを提供する。
[0008]ピクセルのグループに対するピクセルデータは、算術論理ユニット(ALU)までグラフィックスパイプラインの下方へ集団で進む。ALUでは、同じ命令は、SIMD(単一命令多重データ)形式でグループ内の全ピクセルに適用される。たとえば、所与のクロックサイクルで、命令は、ピクセルのグループ内の1番目のピクセルのためのピクセルデータから選択されたオペランドの組を指定する。次のクロックサイクルで、命令はグループ内の2番目のピクセルのためのピクセルデータから選択された別のオペランドの組を指定し、以下同様に続く。本発明の実施形態によれば、条件付き実行ビットは、オペランドの各組と関連付けられている。条件付き実行ビットの値は、それぞれのオペランドの組がALUによって処理される方法(処理されるかどうか)を決定する。
[0009]一般に、条件付き実行ビットが非実行にセットされるならば、その条件付き実行ビットと関連付けられたピクセルデータはALUによって演算されない。具体的には、一実施形態では、条件付き実行ビットが非実行にセットされるならば、ピクセルデータはALUによってラッチされず、このことは、フリップフロップがピクセルデータをクロックインしないようにALUへの入力フリップフロップをゲートすることにより達成され得る。したがって、ALUは、状態を変化させず、ALU内のラッチ(フリップフロップ)は前のクロックサイクルのときの状態と同じ状態のままである。電力はフリップフロップにクロックを入力しないことにより節約され、電力はさらに、組み合わせロジックへの入力がそのまま保持され、したがって、トランジスタが状態を変化させないので節約される(フリップフロップはある状態から別の状態へ遷移せず、条件付きビットが非実行にセットされるならば、オペランドはあるクロックから次のクロックまでそのまま保持される)。
[0010]要約すると、命令はピクセルのグループの全体に供給されるが、必ずしもグループ内の各画素で命令を実行しなくてもよい。パイプラインの中で適切な順序を維持するため、命令はグループ内の各画素に供給され、オペランドの組がグループ内の画素毎に選択される。しかし、オペランドの組と関連付けられた条件付き実行ビットが非実行にセットされるならば、これらのオペランドはALUによって演算されず、関連付けられた命令はオペランドに関して実行されず、その代わりに、下流のオペランドが複製される。その結果として、フリップフロップは必ずしもクロック入力されず、組み合わせロジックは必ずしも切り替えられないので、電力を節約する。したがって、本発明の実施形態はハンドヘルド型およびその他の携帯型のバッテリー作動型装置におけるグラフィックス処理に好適である(ただし、本発明はこれらの種類の装置での使用に制限されない)。
[0011]本発明の種々の実施形態の上記の目的および利点とその他の目的および利点とは、種々の図面に例示されている以下の実施形態の詳細な説明を読んだ後に、当業者によって理解されるであろう。
[0012]本発明は、類似した参照番号が類似した要素を参照する添付図面中の図に一例として、かつ、非限定的に示されている。
[0022]今度は、その実施例が添付図面に示されている本発明の実施形態が詳細に参照される。本発明はこれらの実施形態と併せて説明されているが、これらの実施形態が発明をこれらの実施形態に限定することは意図されていないことが理解されるであろう。これに反して、本発明は、特許請求の範囲によって定義されるような発明の精神および範囲に含まれ得る代替物、変型例、および、均等物を対象とすることが意図されている。さらに、以下の本発明の実施形態の詳細な説明では、多数の特定の詳細が本発明の完全な理解を与えるために記載されている。しかし、本発明がこれらの特定の詳細を用いることなく実施され得ることが当業者によって認められる。他の例では、周知の方法、プロシージャ、コンポーネント、および、回路は、本発明の実施形態の態様を不必要に分かり難くすることがないように詳細には記載されていない。
[0023]後続の詳細な説明の一部分は、コンピュータメモリ内のデータビットへの演算のプロシージャ、ステップ、論理ブロック、処理、および、その他の記号表現の観点から提示されている。これらの記載および表現は、データ処理技術における当業者が自分の業績の要旨を他の当業者へ最も効率的に伝達するためこの当業者によって使用される手段である。プロシージャ、コンピュータで実行されるステップ、論理ブロック、プロセスなどは、本明細書において、かつ、一般的に、所望の結果をもたらすステップまたは命令の首尾一貫した系列であると考えられる。ステップは、物理量の物理的な操作を要求するステップである。通常、不可欠ではないが、これらの量は、コンピュータシステムにおいて記憶され、転送され、合成され、比較され、および、そうでなければ、操作される能力をもつ電気信号または磁気信号の形をしている。主に一般的な用法上の理由のため、これらの信号をビット、値、要素、記号、文字、項、数などとして参照すると都合のよいときがあることが分かっている。
[0024]しかし、これらの用語および類似した用語のすべては適切な物理量と関連付けられるべきであり、これらの量に当てはめられた便宜的なラベルに過ぎないことに注意を要する。以下の説明から明らかであるように、特に断らない限り、本発明の全体を通じて、「決定する」、「使用する」、「セットする」、「ラッチする」、「クロック入力する」、「特定する」、「選択する」、「処理する」、「制御する」などの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量によって表現されたデータを操作し、コンピュータシステムメモリ若しくはレジスタ、または、その他のこのような情報記憶装置、伝送装置若しくは表示装置内で物理量として同様に表現されている他のデータへ変換する、コンピュータシステム(たとえば、図1のコンピュータシステム100)または類似した電子コンピューティング装置のアクションまたはプロセスに言及する。
[0025]図1は本発明の一実施形態によるコンピュータシステム100を表している。コンピュータシステムは、ある種のハードウェアに基づく機能性およびソフトウェアに基づく機能性の実行プラットフォームを提供する本発明の実施形態による基本コンピュータシステムのコンポーネントを含む。一般に、コンピュータシステムは、少なくとも1台の中央プロセッシングユニット(CPU)101と、システムメモリ115と、少なくとも1台のグラフィックスプロセッサユニット(GPU)110とを備える。CPUはブリッジコンポーネント/メモリコントローラ(図示せず)を介してシステムメモリに連結されてもよく、または、CPUの内部にあるメモリコントローラ(図示せず)を介してシステムメモリに直結されてもよい。GPUはディスプレイ112に連結されている。1台以上の付加的なGPUが場合によっては計算能力をさらに高めるためにシステム100に連結されることがある。GPUがCPUおよびシステムメモリに連結されている。コンピュータシステムは、たとえば、専用グラフィックスレンダリングGPUに連結されている強力な汎用CPUを保有するデスクトップコンピュータシステムまたはサーバーコンピュータシステムとして実施されることがある。このような実施形態では、周辺バス、特殊用途グラフィックスメモリ、入力/出力(I/O)装置などを付加するコンポーネントが含まれることがある。同様に、コンピュータシステムは、ハンドヘルド型装置(たとえば、携帯電話機など)またはセットトップ型ビデオゲームコンソール装置として実施されることができる。
[0026]GPUは、別個のコンポーネント、コネクタ(たとえば、アクセラレーテッド・グラフィックス・ポートスロット、ペリフェラル・コンポーネント・インターコネクト・エクスプレススロットなど)を介してコンピュータシステムに連結されるように設計された別個のグラフィックスカード、(たとえば、マザーボードに直接実装された)別個の集積回路ダイ、または、コンピュータシステムチップセットコンポーネント(図示せず)の集積回路ダイ若しくはPSOC(プログラマブルシステムオンチップ)の集積回路ダイに含まれている集積化されたGPUとして実施されることがある。付加的に、ローカルグラフィックスメモリ114が高帯域幅グラフィックスデータ記憶のためGPUのために含まれることがある。
[0027]図2は本発明の一実施形態によるGPU110の内部コンポーネントとグラフィックスメモリ114とを示す図である。図2に描かれているように、GPUは、グラフィックスパイプライン210と、図示されているようにグラフィックスメモリ250に連結するフラグメントデータキャッシュ250とを含む。
[0028]図2の実施例では、グラフィックスパイプライン210は複数の機能モジュールを含む。グラフィックスパイプラインの3個の機能モジュール、たとえば、プログラムシーケンサ220、算術論理ステージ(ALU)230、および、データ書き込みコンポーネント240が、グラフィックスアプリケーション(たとえば、グラフィックスドライバなど)から受信されたグラフィックスプリミティブをレンダリングすることにより機能する。機能モジュール220〜240は、フラグメントデータキャッシュ250を介してグラフィックスプリミティブに関連したピクセルをレンダリングする情報にアクセスする。フラグメントデータキャッシュは、グラフィックスメモリ(たとえば、フレームバッファメモリ)に記憶された情報のための高速キャッシュとして機能する。
[0029]プログラムシーケンサはグラフィックスパイプラインの機能モジュールの演算を制御することによって機能する。プログラムシーケンサは、グラフィックスパイプラインの機能モジュールが情報を受信し、演算のため機能モジュール自体を設定し、グラフィックスプリミティブを処理する方法を制御するためにグラフィックスドライバ(たとえば、図1のCPU101上で動くグラフィックスドライバ)と相互作用可能である。たとえば、図2の実施形態では、グラフィックスレンダリングデータ(たとえば、プリミティブ、三角形片など)、パイプラインコンフィギュレーション情報(たとえば、モードセッティング、レンダリングプロファイルなど)、および、レンダリングプログラム(たとえば、ピクセルシェーダプログラム、頂点シェーダプログラムなど)が上流の機能モジュールから(たとえば、上流のラスタモジュールから、セットアップモジュールから、または、グラフィックスドライバから)共通入力260を介してグラフィックスパイプラインによって受信される。入力260は、グラフィックスパイプラインの機能モジュールの間で、主フラグメントデータ経路またはパイプラインとして機能する。プリミティブは一般にパイプラインのフロントエンドで受信され、パイプラインに沿って一方のモジュールから次のモジュールへ進むのにつれて、徐々にレンダリングされ、その結果としてレンダリングされたピクセルデータを生じる。
[0030]一実施形態では、データはパケットベースのフォーマットで機能モジュール220〜240間を進む。たとえば、グラフィックスドライバは、パイプラインのフラグメントパイプ通信経路とインターフェイスをとり、かつ、フラグメントパイプ通信経路に沿って送信されるように特に設定されたデータパケットまたはピクセルパケットの形式でデータをGPUへ送信する。ピクセルパケットは、一般に、ピクセルのグループまたはタイル(たとえば、4個のピクセル、8個のピクセル、16個のピクセルなど)に関する情報と、ピクセルに関係する1個以上のプリミティブのためのカバレッジ情報とを含む。ピクセルパケットは、パイプラインの機能モジュールがその機能モジュール自体をレンダリング演算のため設定することを可能にさせるサイドバンド情報を含む可能性もある。たとえば、ピクセルパケットは、パイプラインの1個以上の機能モジュールによって使用され、かつ現在のレンダリングモードのため機能モジュール自体を設定することが可能であるコンフィギュレーションビット、命令、機能モジュールアドレスなどを含むことがある。ピクセルレンダリング情報および機能モジュールコンフィギュレーション情報に加えて、ピクセルパケットは、ピクセルに陰影処理を実行するようにパイプライン内の機能モジュールをプログラムするシェーダプログラム命令を含むことがある。たとえば、シェーダプログラムを構成する命令は、下方のグラフィックスパイプラインへ送信され、1個以上の指定された機能モジュールによってロードされることがある。一旦ロードされると、レンダリング演算中に、機能モジュールは所望のレンダリング効果を得るためピクセルデータにシェーダプログラムを実行可能である。
[0031]このようにして、グラフィックスパイプライン内の機能モジュールによって実施される高度に最適化され、効果的なフラグメントパイプ通信経路は、機能モジュール(たとえば、モジュール220〜240)の間でピクセルデータを送信するためだけでなく、機能モジュール間でコンフィギュレーション情報およびシェーダプログラム命令もまた送信するために使用され得る。
[0032]図3は本発明の一実施形態によるグラフィックスパイプライン210において選択されたステージを表すブロック図である。グラフィックスパイプラインは付加的なステージを含んでもよく、または、図3の実施例とは違って配置されてもよい。すなわち、本発明は図3のパイプラインとの関連で説明されているが、本発明は図3のパイプラインのように限定されるものではない。
[0033]図3の実施例では、ラスタライザ310は、補間を使用して三角形をピクセルに変換する。ラスタライザは、様々な機能の中でも特に、頂点データを受信し、どのピクセルがどの三角形に対応しているかを決定し、カラー演算、テクスチャ演算、または、フォグ演算のようなレンダリングの一部としてピクセルに実行されるべきシェーダ処理演算を決定する。
[0034]ラスタライザは処理されるべき三角形のピクセル毎にピクセルパケットを生成する。ピクセルパケットは、一般に、グラフィカルディスプレイのフレーム中のピクセルに対するピクセル値のインスタンスを計算に使用される記述の組である。ピクセルパケットは各フレーム中の各ピクセルと関連付けられる。各ピクセルはスクリーン座標の特定の場所(x,y)と関連付けられる。一実施形態では、グラフィックスシステムは、クワッドと呼ばれるディスプレイスクリーンの2ピクセル×2ピクセルの領域をレンダリングする。
[0035]各ピクセルパケットは、処理(たとえば、カラー、テクスチャ、奥行き、フォグ、xおよびyロケーションなど)のため要求されるピクセル属性のペイロードと、サイドバンド情報とを含む(ピクセル属性データはデータフェッチステージ330によって供給される)。ピクセルパケットは1行のデータを格納することがあり、または、複数行のデータを格納することがある。行は、一般に、パイプラインバスのデータ部の幅である。
[0036]データフェッチステージはピクセルパケットのためのデータをフェッチする。このようなデータは、ピクセルパケット毎のカラー情報、任意の奥行き情報、および、テクスチャ情報を含むことがある。フェッチされたデータは、ピクセルパケットを次のステージへ送信する前にピクセルデータの行内の、本明細書中ではレジスタと呼ばれることもある適切なフィールドに収容される。
[0037]データフェッチステージから、ピクセルデータの行は算術論理ステージ230に入る。本実施形態では、1行のピクセルデータが各クロックサイクルで算術論理ステージに入る。一実施形態では、算術論理ステージは、たとえば、テクスチャ合成(テクスチャ環境)、ステンシル、フォグ、アルファブレンド、アルファテスト、および、奥行きテストのような、これらに限定されることのない、3次元グラフィックス演算に関係したシェーダプログラムを実行するように設定された4台のALU0、1、2および3(図5)を含む。各ALUはクロックサイクル毎に命令を実行し、各命令がピクセルパケットの内容に対応するオペランドに算術演算を実行する。一実施形態では、各ALUが4サイクルの奥行きを有するならば、1行のデータがALUで演算されるために4クロックサイクルを要する。
[0038]算術論理ステージの出力はデータ書き込みステージへ進む。データ書き込みステージは、パイプライン結果をメモリ中(たとえば、図1および2のグラフィックスメモリ114またはメモリ115)の書き込みバッファまたはフレームバッファに格納する。場合によっては、ピクセルパケット/データは、データのさらなる処理が必要であるならば、データ書き込みステージから算術論理ステージへ再循環させられ得る。
[0039]図4は、本発明の実施形態によるピクセルのグループに対するピクセルデータの連続、すなわち、ピクセルデータの一連の行を示している。図4の実施例では、ピクセルのグループは、4個のピクセル:P0、P1、P2およびP3のクワッドからなる。上述されているように、ピクセルに対するピクセルデータは、データの行またはサブセットに分離され得る。一実施形態では、1ピクセル当たり最大で4行のデータが存在する。たとえば、行0は、画素データの4個のフィールドまたはレジスタP0r0、P0r1、P0r2およびP0r3を含む(「r」は行内のフィールドまたはレジスタを指定し、「R」は行を指定する)。各行はピクセルデータの1個以上の属性を表現してもよい。これらの属性は、z奥行き値、テクスチャ座標、詳細のレベル、カラー、および、アルファを含むが、これらに限定されない。レジスタ値は、算術論理ステージ内のALUによって実行される演算におけるオペランドとして使用され得る。
[0040]サイドバンド情報420はピクセルデータの各行と関連付けられる。サイドバンド情報は、特に、命令によって特定されたピクセルデータを使用してALUによって実行されるべき命令を特定または指摘する情報を含む。すなわち、行0と関連付けられたサイドバンド情報は、特に、命令I0を特定する。命令は、たとえば、実行されるべき算術演算の種類と、演算中でオペランドとして使用されるデータを格納しているレジスタとを指定する。
[0041]一実施形態では、サイドバンド情報はピクセルデータの1行当たりの条件付き実行ビットを含む。条件付き実行ビットの値は、行が同じピクセルと関連付けられているとしても、ピクセルデータの行毎に異なってもよい。ピクセルデータの行と関連付けられた条件付き実行ビットは、関連付けられたピクセルのオペランドに関する命令の実行を阻止するためにセットされることがある。たとえば、P0R0と関連付けられた条件付き実行ビットが非実行にセットされるならば、命令I0はピクセルP0に対し実行されないであろう(しかし、依然として、グループ内の他のピクセルに対し実行される可能性がある)。条件付き実行ビットの機能は、図7Aと併せて、さらに後述されている。一実施形態では、条件付き実行ビットは長さが単一ビットである。
[0042]図5は本発明の一実施形態による算術論理ステージ230のブロック図である。ある特定の要素だけが図5に表されているが、算術論理ステージは、図5に明らかにされ、後述されている要素以外に要素を含んでもよい。
[0043]新しいクロックサイクル毎に、ピクセルデータの行はパイプラインのデータフェッチステージから算術論理ステージへ連続的に進む。たとえば、行0は第1のクロック時にパイプラインの下方へ進み、次のクロック時に行1が後に続き、以下同様である。特有のピクセルのグループ(たとえば、クワッド)と関連付けられた行の全部がパイプランにロードされると、次のクワッドと関連付けられた行をパイプラインにロードし始めることが可能である。
[0044]一実施形態では、ピクセルのグループ内(たとえば、クワッド内)の各ピクセルのピクセルデータの行は、グループ内の他のピクセルのピクセルデータの行とインターリーブされる。たとえば、1ピクセル当たり4行を含む4ピクセルのグループの場合、ピクセルデータは、以下の順序、すなわち、1番目のピクセルの1行目(P0r0からP0r3)、2番目のピクセルの1行目(P1r0からP1r3)、3番目のピクセルの1行目(P2r0からP2r3)、4番目のピクセルの1行目(P3r0からP3r3)、1番目のピクセルの2行目(P0r4からP0r7)、2番目のピクセルの2行目(P1r4からP1r7)、3番目のピクセルの2行目(P2r4からP2r7)、4番目のピクセルの2行目(P3r4からP3r7)、以下同様に、P3r12からP3r15を含む15行目までの順序でパイプラインの下方へ進む。上述されているように、1ピクセル当たりの行数は4行未満でもよい。この形式でピクセルパケットの行をインターリーブすることにより、パイプラインの中でストールを回避することが可能であり、データスループットが増加され得る。
[0045]したがって、本実施形態では、サイドバンド情報420を含むピクセルデータの行(たとえば、行0)が各クロックサイクルでデシリアライザ510へ供給される。図5の実施例では、デシリアライザはピクセルデータの行を非直列化する。上述されているように、ピクセルのグループ(たとえば、クワッド)のためのピクセルデータは行単位でインターリーブされてもよい。さらに、ピクセルデータは行単位で算術論理ステージに達する。このようにして、本明細書中で呼ばれているような非直列化はビット単位で実行されるのではなく、その代わりに、非直列化は行単位で実行される。グラフィックスパイプラインが4レジスタ幅であり、1ピクセル当たりに4行が存在するならば、デシリアライザはピクセルデータを1ピクセル当たり16個のレジスタに非直列化する。
[0046]図5の実施例では、デシリアライザはピクセルのグループのピクセルデータをバッファ0、1または2のうちの1台に送信する。ピクセルデータはバッファのうちの1台に送信され、その間に他のバッファのうちの1台におけるピクセルデータはALUによって演算され、ALUによって既に演算されている残りのバッファ中のピクセルデータは、シリアライザ550によって直列化され、グラフィックスパイプラインの次のステージへ行単位で供給される。バッファが空になると、バッファは次のピクセルのグループのピクセルデータで充填される(上書きされる)状態にあり、バッファにロードされると、バッファが格納しているピクセルデータは演算される状態にあり、バッファ中のピクセルデータが演算されると、バッファは空にされる(上書きされる)状態にある。
[0047]ピクセルのグループ(たとえば、クワッド0)のためのサイドバンド情報を含むピクセルデータは算術論理ステージに達し、その後に次のピクセルのグループ(たとえば、クワッド1)のためのサイドバンド情報を含むピクセルデータが続き、その後に次のピクセルのグループ(たとえば、クワッド2)のためのサイドバンド情報を含むピクセルデータが続く。
[0048]特定のピクセルと関連付けられたピクセルデータの行のすべてが非直列化されると、そのピクセルのためのピクセルデータがALUによって演算され得る。一実施形態では、同じ命令がグループ(たとえば、クワッド)内の全ピクセルに適用される。ALUは、ピクセルのグループの全体にSIMD(単一命令、多重データ)形式で演算する効率的にパイプライン化されたプロセッサである。
[0049]図6は任意に選択されたクロックサイクル0〜15の間にALUから出るピクセル結果を表している。クロック0〜3において、ピクセルP0〜P3のためのピクセルデータを使用する1番目の命令I0の実行と関連付けられたピクセル結果がALUから出る。同様に、ピクセルP0〜P3のためのピクセルデータを使用する2番目の命令I1の実行と関連付けられたピクセル結果がALUから出て行き、以下同様である。図4をもう一度参照すると、命令I0はピクセルP0〜P3のためのピクセルデータの行0と関連付けられ、命令I1はピクセルP0〜P3のためのピクセルデータの行1と関連付けられ、以下同様である。同じ命令がピクセルP0〜P3を通じて適用されるので、ALUはSIMD形式で動作する。
[0050]図7Aは本発明の一実施形態によるALUのステージを流れるピクセルデータを表している。本実施形態では、ピクセルデータのオペランドを演算するため、具体的には、命令を実行するため4クロックサイクルを要する。本質的に、各ALUのパイプラインステージの奥行きは4段である。図7Bを同様に参照すると、1番目のクロックサイクル中に、1番目のピクセルのためのピクセルデータがALU(ALUのステージ1)に読み込まれる。2番目および3番目のクロックサイクル中に、計算がピクセルデータに関して実行され、たとえば、2番目のクロックサイクルでは、オペランドが乗算器において乗算され、3番目のクロックサイクルでは、乗算器結果が加算器(ALUのステージ2および3)において加算されてもよい。4番目のクロックサイクル中に(ALUのステージ4で)、ピクセルデータはバッファまたはグローバルレジスタに書き戻される。さらに2番目のクロックサイクル中に、2番目のピクセルのためのピクセルデータがALUに読み込まれ、そのピクセルデータはALUの残りのステージを通して1番目のピクセルのためのピクセルデータの行の後に続く。さらに3番目のクロックサイクル中に、3番目のピクセルのためのピクセルデータがALUに読み込まれ、そのピクセルデータはALUの残りのステージを通して2番目のピクセルのためのピクセルデータの後に続く。ALUが「準備」されると、まさに上述されているように、あるピクセルのためのピクセルデータがALUを通して別のピクセルのためのピクセルデータの後に続く。
[0051]上述されているように、一実施形態では、1行当たりのサイドバンド情報から発生する同じ命令がグループ(たとえば、クワッド)内の全ピクセルに適用される。たとえば、所与のクロックサイクルで、命令はピクセルのグループ内の1番目のピクセルのためのピクセルデータから選択されたオペランドの組を指定する。次のクロックサイクルでは、命令はグループ内の2番目のピクセルのためのピクセルデータから選択された別のオペランドの組を指定し、以下同様である。本発明の実施形態によれば、1行当たりのサイドバンド情報から発生する条件付き実行ビットはオペランドの1つずつの組と関連付けられる。一般に、条件付き実行ビットは非実行にセットされ、その条件付き実行ビットと関連付けられているオペランドはALUによって演算されない。
[0052]図7Aは本発明の一実施形態によるALUの各ステージにおけるオペランドの組を表している。たとえば、図7Bもまた参照すると、クロックサイクルN−1で、ALUのステージ1におけるオペランドの組は、命令I2(図中、P1.I2として示されている)によって指定されるようなピクセルP1のためのピクセルデータを含み、ステージ2はピクセル0のためのピクセルデータから選択されたオペランドの組に、命令I2(P0.I2)に応じて指定されている演算を行い、以下同様である。次の連続したクロックサイクルNにおいて、オペランドの各組は次のALUステージへ移り、ALUにロードされるべき次のオペランドの組はP2.I2である。
[0053]図7Aの実施例では、オペランドP2.I2と関連付けられている条件付き実行ビットは、「非実行」にセットされる。条件付き実行ビットは、グラフィックスパイプラインの先頭(フロントエンド)でシェーダプログラムによってセットされることがある。代替的に、条件付き実行ビットは前に実行された命令の結果としてセット(またはリセット)されることがある。
[0054]したがって、オペランドP2.I2はALUによって演算されない。具体的には、一実施形態では、条件付き実行ビットが非実行にセットされているならば、オペランドP2.I2はALUによってラッチされない。その結果として、これらのオペランドを演算することになっていたALUのパイプステージは状態を変えない。よって、クロックサイクルNで、ALUの両方のステージ1および2は、フリップフロップがラッチ状態ではなく、したがって、前のクロックサイクルN−1と同じ状態のままであるので、同じデータ(P1.I2)を格納している。したがって、ALUの下流のパイプステージにおける組み合わせロジックは遷移せず、電力は不必要に消費されない。
[0055]クロックサイクルN+1では、オペランドが前のクロックサイクルにおけるオペランドと同じであるので、ALUのステージ2における組み合わせロジックは切り替えられない。同様に、クロックサイクルN+2では、ALUのステージ3における組み合わせロジックは切り替えられない。クロックサイクルN+3では、オペランドの組が前のクロックサイクルにおけるオペランドの組と同じであるので、ステージ4と関連付けられているフリップフロップは状態を変えない。
[0056]条件付き実行ビットがオペランドP2.I2のため非実行にセットされているとしても、「不用な」オペランドが所定の位置でALUの中を効率的に伝播する。このようにして、グラフィックスパイプラインの中を通るデータの順序が維持され、ALU全体に亘るタイミングもまた維持される。
[0057]一般に、条件付き実行ビットが非実行にセットされるとき、ALUは条件付き実行ビットと関連付けられたピクセルデータに基づいて少しも動作しない。実際において、条件付き実行ビットは許可ビットとしての役目を果たし、ビットが非実行にセットされているならば、データフリップフロップは有効にされず、新しい入力オペランドを捕捉しない。その代わりに、フリップフロップの出力は、それらの現在状態(データが前のクロックサイクルで捕捉されたときにもたらされた状態)を保持する。一実施形態では、これはフリップフロップのクロックをゲートすることによって達成される。条件付き実行ビットが非実行にセットされるならば、入力オペランドを捕捉するフリップフロップはクロック入力されず、すなわち、クロック信号が遷移しないので、新しいデータがフリップフロップによって捕捉されない。一実施形態では、条件付き実行ビットが非実行にセットされているならば、ALUの1段目のステージにおけるフリップフロップ(たとえば、図7Bのラッチ710)だけがクロック入力されないが、本発明はそのように限定されるものではない。すなわち、クロックはALUの1段以上のステージでゲートされてもよい。代替的に、クロックをゲートする代わりに、フリップフロップへのデータ入力が条件付き実行ビットの制御下でゲートされ得る。
[0058]電力は、必要ではないときにALU内のフリップフロップにクロックを入力しないことによって節約される。オペランドはクロックとクロックの間で同じであるため、電力は、ALUの組み合わせロジックにおいて、スイッチング動作が組み合わせロジックで行われないので、同様に節約される。
[0059]図8は本発明の一実施形態によるグラフィックスプロセッサユニットパイプラインにおいてピクセルデータを処理するコンピュータで実施される方法の実施例のフローチャート800である。特定のステップがフローチャートに開示されているが、このようなステップは例示的である。すなわち、本発明の実施形態は、種々のその他のステップ、または、フローチャートに列挙されたステップの変形を実行するために好適である。フローチャート中のステップは提示されている順序と異なる順序で実行されてもよい。
[0060]ブロック810では、算術演算が命令に応じて実行される。同じ命令がピクセルデータの異なるオペランドの組に適用される。オペランドの各組はピクセルのグループ(たとえば、クワッド)内のそれぞれのピクセルと関連付けられている。条件付き実行ビットもまたオペランドの各組と関連付けられている。
[0061]ブロック820では、オペランドの組と関連付けられた条件付き実行ビットの値は、これらのオペランドがALUにロードされるべきであるかどうかを決定するために使用される。具体的には、条件付き実行ビットが第1の値(たとえば、0または1)にセットされるならば、オペランドはALUにロードされ、ALUによって演算されるが、条件付き実行ビットが第2の値(それぞれ、たとえば、1または0)にセットされるならば、ALUにロードされるか、ALUによって演算されることがない。
[0062]要約すると、命令はピクセルのグループの全体に適用されるが、必ずしもグループ内の各ピクセルのためのピクセルデータに命令を実行しなくてもよい。パイプラインの中で適切な順序を維持するため、命令はグループ内の各ピクセルに適用され、オペランドの組がグループ内の各ピクセルのためのピクセルデータから選択される。しかし、ピクセルのためのオペランドの組と関連付けられている条件付き実行ビットが非実行にセットされているならば、そのピクセルのためのオペランドはALUによって演算されない。その結果として、ALUのフリップフロップは必ずしもクロック入力および切り替えが行われないので、電力を節約する。したがって、本発明の実施形態はハンドヘルド型およびその他の携帯型のバッテリー作動型装置、ならびに、その他の種類の装置におけるグラフィックス処理のため好適である。
[0063]本発明の特定の実施形態の上記の記載は、例示と説明の目的のため提示されている。これらの記載は、網羅的であること、または、発明を開示された形式と全く同一のものに限定することが意図されず、多数の変形例および変更が上記の教示内容の観点から可能である。たとえば、本発明の実施形態は、図2のGPU110と形式または機能が相違するGPU上で実施され得る。実施形態は、発明の原理および発明の実際的なアプリケーションを最もよく説明するために選択され、記載されているので、当業者が発明と、考慮されている特有の用途に適するように様々な変形を伴う様々な実施形態とを最もよく利用することが可能である。本発明の範囲は特許請求の範囲に記載された事項およびそれらの均等物によって定義されることが意図されている。
本発明の一実施形態によるコンピュータシステムのコンポーネントを表すブロック図である。 本発明の一実施形態によるグラフィックスプロセッシングユニット(GPU)のコンポーネントを表すブロック図である。 本発明の一実施形態によるGPUパイプラインにおけるステージを示す図である。 本発明の一実施形態によるピクセルデータの一連の行を示す図である。 本発明の一実施形態によるGPU内の算術論理ユニットのブロック図である。 本発明の一実施形態による算術論理ユニットを出るピクセルデータを示す図である。 本発明の一実施形態によるALUの種々のステージにおけるピクセルデータを示す図である。 本発明の実施形態によるALUの種々のステージを示す図である。 本発明の一実施形態によるピクセルデータを処理するコンピュータで実施される方法のフローチャートである。
符号の説明
100…コンピュータシステム、101…中央プロセッシングユニット、110…グラフィックスプロセッサユニット、114…グラフィックスメモリ、115…システムメモリ、210…グラフィックスパイプライン、220…プログラムシーケンサ、230…算術論理ユニット、240…データ書き込みコンポーネント、330…データフェッチコンポーネント、420…サイドバンド情報、510…デシリアライザ、550…シリアライザ

Claims (23)

  1. 命令に応じて算術演算を実行するため動作可能である複数台の算術論理ユニット(ALU)を備え、
    前記命令がピクセルデータを含む複数組のオペランドの組に適用され、前記複数組のオペランドの組中のオペランドの組が複数個のピクセルのうちの1個ずつのピクセルおよび1個ずつの条件付き実行ビットと関連付けられ、
    前記複数組のオペランドの組中の第1のオペランドの組と関連付けられた条件付き実行ビットの値が前記第1のオペランド中の前記ピクセルデータが前記ALUによってどのように処理されるかを決定する、
    グラフィックスプロセッサユニットパイプライン。
  2. 前記第1のオペランドの組と関連付けられた前記条件付き実行ビットが第1の値にセットされるならば、前記第1のオペランドの組が前記ALUによって演算され、前記条件付き実行ビットが第2の値にセットされるならば、前記第1のオペランドの組が前記ALUによって演算されることがない、請求項1に記載のグラフィックスプロセッサユニットパイプライン。
  3. 前記複数個のピクセルが前記ピクセルのためのピクセルデータの複数のサブセットを含むピクセルを含み、
    前記ピクセルのためのピクセルデータのあるサブセットと関連付けられた第1の条件付き実行ビットと前記ピクセルのためのピクセルデータの別のサブセットと関連付けられた第2の条件付き実行ビットとが異なる値を保有する、
    請求項1に記載のグラフィックスプロセッサユニットパイプライン。
  4. 前記ALUが複数個のラッチを含む複数段のステージを備え、
    前記条件付き実行ビットの前記値が前記第1のオペランドの組が前記ALUによってラッチされるかどうかを決定する、
    請求項1に記載のグラフィックスプロセッサユニットパイプライン。
  5. 前記ラッチがゲート化されたクロックを備え、
    前記ゲート化されたクロックが前記条件付き実行ビットの制御下で有効化状態と無効化状態にされる、
    請求項4に記載のグラフィックスプロセッサユニットパイプライン。
  6. 前記条件付き実行ビットが前記パイプラインの中で前記第1のオペランドの組に先行した第2のオペランドの組に関する演算の結果に応じてセットされる、請求項1に記載のグラフィックスプロセッサユニットパイプライン。
  7. 前記複数個のピクセルが4個のピクセルを含む、請求項1に記載のグラフィックスプロセッサユニットパイプライン。
  8. データフェッチステージと、
    前記データフェッチステージに連結された複数台の算術論理ユニット(ALU)と、
    を備え、
    連続したクロックサイクル中で第1の命令が前記ALUのための第1のオペランドおよび前記ALUのための第2のオペランドを特定し、
    前記第1のオペランドが第1のピクセルおよび第1の条件付き実行ビットと関連付けられ、前記第2のオペランドが第2のピクセルおよび第2の条件付き実行ビットと関連付けられ、
    前記第1の条件付き実行ビットの値が前記第1のオペランドが前記ALUによって演算されるかどうかを決定し、
    前記第2の条件付き実行ビットの値が前記第2のオペランドが前記ALUによって演算されるかどうかを決定する、
    グラフィックスプロセッサユニットにおけるグラフィックスパイプライン。
  9. 前記第1のピクセルが前記第1のピクセルのためのピクセルデータの複数のサブセットを含み、
    前記第1のピクセルのためのピクセルデータのあるサブセットと関連付けられた条件付き実行ビットと前記第1のピクセルのためのピクセルデータの別のサブセットと関連付けられた条件付き実行ビットとが異なる値を保有する、
    請求項8に記載のグラフィックスパイプライン。
  10. 前記第1のピクセルのための前記複数のサブセットが最大で4組のピクセルデータのサブセットを含む、請求項9に記載のグラフィックスパイプライン。
  11. 前記ALUが複数個のフリップフロップを備え、
    前記第1の条件付き実行ビットの前記値が前記第1のオペランドが前記ALUによってラッチされるかどうかを決定し、
    前記第2の条件付き実行ビットの前記値が前記第2のオペランドが前記ALUによってラッチされるかどうかを決定する、
    請求項8に記載のグラフィックスパイプライン。
  12. 前記フリップフロップがゲート化されたクロックを備え、
    前記ゲート化されたクロックが前記第1の条件付き実行ビットおよび前記第2の条件付き実行ビットによって順番に制御される、
    請求項11に記載のグラフィックスパイプライン。
  13. 前記第1の条件付き実行ビットの前記値が前記第1の命令より時間的に先行した第2の命令に応じて実行された演算の結果に応じてセットされる、請求項8に記載のグラフィックスパイプライン。
  14. 前記第1のピクセルおよび前記第2のピクセルが前記グラフィックスパイプラインの中を集団で進むピクセルのクワッドの一部である、請求項8に記載のグラフィックスパイプライン。
  15. グラフィックスプロセッサユニットパイプラインにおいてデータを処理するコンピュータで実施される方法であって、
    複数組のオペランドの各組が複数個のピクセルのうちの1個ずつのピクセルおよび1個ずつの条件付き実行ビットと関連付けられ、ピクセルデータの複数組のオペランドの組に適用される命令に応じて算術論理ユニット(ALU)において算術演算を実行するステップと、
    第1のオペランドの組と関連付けられている条件付き実行ビットの値を使用して、前記第1のオペランドの組中の前記ピクセルデータが前記ALUにロードされるべきであるかどうかを決定するステップと、
    を備える方法。
  16. 前記第1のオペランドの組と関連付けられている前記条件付き実行ビットが第1の値にセットされているならば、前記第1のオペランドの組を演算するステップをさらに備え、前記第1の実行ビットが第2の値にセットされているならば、前記第1のオペランドの組が前記ALUにロードされない、請求項15に記載の方法。
  17. 前記複数個のピクセルが前記ピクセルのためのピクセルデータの複数組のサブセットを含むピクセルを含み、
    前記ピクセルのためのピクセルデータのあるサブセットと関連付けられた第1の条件付き実行ビットと前記ピクセルのためのピクセルデータの別のサブセットと関連付けられた第2の条件付き実行ビットとが異なる値を保有する、
    請求項15に記載の方法。
  18. 前記条件付き実行ビットの値に基づいて前記第1のオペランドの組をラッチするかどうかを決定するステップをさらに備える、請求項15に記載の方法。
  19. 前記条件付き実行ビットを使用して前記ALUにおいてゲート化されたクロックを制御するステップをさらに備える、請求項15に記載の方法。
  20. 前記パイプラインの中で前記第1のオペランドの組より先行した第2のオペランドの組に関する演算の結果に応じて前記条件付き実行ビットをセットするステップをさらに備える、請求項15に記載の方法。
  21. グラフィックスプロセッサユニットにおける算術論理ユニット(ALU)パイプステージであって、
    複数個のピクセルと関連付けられている複数個のオペランドを記憶するメモリと、
    前記メモリに連結され、前記複数個のピクセルの1個ずつのオペランドに関して命令を実行する複数段のパイプ段を備え、前記複数個のピクセルと関連付けられているオペランドが各クロックサイクル時に1ピクセルずつALUに入り、オペランドの各組が複数個のピクセルのうちのそれぞれのピクセルと関連付けられ、前記メモリが前記複数個のピクセルの各ピクセルのためのそれぞれのフラグビットをさらに記憶する、パイプライン化されたALUと、
    前記ALUに連結され、前記複数個のピクセルのうちの第1のピクセルに関連付けられているフラグビットがセットされているならば、前記複数第1のピクセルと関連付けられているオペランドが第1のクロックサイクル時に前記ALUに入ることを阻止するゲーティングロジックと、
    を備えるALUパイプラインステージ。
  22. 前記フラグビットが前記第1のピクセルと関連付けられている前記オペランドが前記ALUの前記複数段のパイプステージによって処理されることを阻止する、請求項21に記載のALUパイプラインステージ。
  23. 前記フラグビットがセットされている時、前記第1のピクセルと関連付けられている前記オペランドが前記ALUの第1のパイプステージに入るのではなく、前記第1のパイプステージが前記第1のクロックサイクルの直前のクロックサイクル時に前記第1のパイプステージに入った第2のピクセルと関連付けられているオペランドの値を維持する、請求項22に記載のALUパイプラインステージ。
JP2008209007A 2007-08-15 2008-08-14 グラフィックスプロセッサユニットパイプラインにおける条件付き実行ビット Active JP5435253B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/893,620 2007-08-15
US11/893,620 US20090046105A1 (en) 2007-08-15 2007-08-15 Conditional execute bit in a graphics processor unit pipeline

Publications (2)

Publication Number Publication Date
JP2009080797A true JP2009080797A (ja) 2009-04-16
JP5435253B2 JP5435253B2 (ja) 2014-03-05

Family

ID=40362623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008209007A Active JP5435253B2 (ja) 2007-08-15 2008-08-14 グラフィックスプロセッサユニットパイプラインにおける条件付き実行ビット

Country Status (5)

Country Link
US (1) US20090046105A1 (ja)
JP (1) JP5435253B2 (ja)
KR (1) KR100980148B1 (ja)
CN (1) CN101441761B (ja)
TW (1) TWI484441B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US11430141B2 (en) * 2019-11-04 2022-08-30 Facebook Technologies, Llc Artificial reality system using a multisurface display protocol to communicate surface data
US11145107B2 (en) 2019-11-04 2021-10-12 Facebook Technologies, Llc Artificial reality system using superframes to communicate surface data
IT202100026552A1 (it) * 2021-10-18 2023-04-18 Durst Group Ag "Metodo e prodotto per la sintesi di dati di stampa e per la fornitura degli stessi ad una stampante"

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6280785A (ja) * 1985-10-04 1987-04-14 Toshiba Corp 画像記憶装置
JPS649574A (en) * 1987-07-02 1989-01-12 Fujitsu Ltd Video rate picture processor
JP2001338287A (ja) * 2000-05-25 2001-12-07 Nec Microsystems Ltd バッファ制御回路
JP2002171401A (ja) * 2000-11-29 2002-06-14 Canon Inc 間引き演算命令を備えたsimd型演算装置
JP2004199222A (ja) * 2002-12-17 2004-07-15 Nec Corp 対称型画像フィルタ処理装置、プログラム、及びその方法
WO2005114646A2 (en) * 2004-05-14 2005-12-01 Nvidia Corporation Low power programmable processor
JP2006196004A (ja) * 2005-01-13 2006-07-27 Sony Computer Entertainment Inc Simdプロセッサスライスの有効/無効の制御のための方法ならびに装置

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620217A (en) * 1983-09-22 1986-10-28 High Resolution Television, Inc. Standard transmission and recording of high resolution television
US4648045A (en) * 1984-05-23 1987-03-03 The Board Of Trustees Of The Leland Standford Jr. University High speed memory and processor system for raster display
US4901224A (en) * 1985-02-25 1990-02-13 Ewert Alfred P Parallel digital processor
US4700319A (en) * 1985-06-06 1987-10-13 The United States Of America As Represented By The Secretary Of The Air Force Arithmetic pipeline for image processing
US4862392A (en) * 1986-03-07 1989-08-29 Star Technologies, Inc. Geometry processor for graphics display system
US5185856A (en) * 1990-03-16 1993-02-09 Hewlett-Packard Company Arithmetic and logic processing unit for computer graphics system
JPH06318060A (ja) * 1991-07-31 1994-11-15 Toshiba Corp 表示制御装置
US5357604A (en) * 1992-01-30 1994-10-18 A/N, Inc. Graphics processor with enhanced memory control circuitry for use in a video game system or the like
US5600584A (en) * 1992-09-15 1997-02-04 Schlafly; Roger Interactive formula compiler and range estimator
JP2725546B2 (ja) * 1992-12-07 1998-03-11 株式会社日立製作所 デ−タ処理装置
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
US5577213A (en) * 1994-06-03 1996-11-19 At&T Global Information Solutions Company Multi-device adapter card for computer
US5655132A (en) * 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support
US5977977A (en) * 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
US5850572A (en) * 1996-03-08 1998-12-15 Lsi Logic Corporation Error-tolerant video display subsystem
US6173366B1 (en) * 1996-12-02 2001-01-09 Compaq Computer Corp. Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage
US6496537B1 (en) * 1996-12-18 2002-12-17 Thomson Licensing S.A. Video decoder with interleaved data processing
US6374346B1 (en) 1997-01-24 2002-04-16 Texas Instruments Incorporated Processor with conditional execution of every instruction
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US5941940A (en) * 1997-06-30 1999-08-24 Lucent Technologies Inc. Digital signal processor architecture optimized for performing fast Fourier Transforms
US6118452A (en) * 1997-08-05 2000-09-12 Hewlett-Packard Company Fragment visibility pretest system and methodology for improved performance of a graphics system
US6366999B1 (en) 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
JP3541669B2 (ja) * 1998-03-30 2004-07-14 松下電器産業株式会社 演算処理装置
US6862278B1 (en) * 1998-06-18 2005-03-01 Microsoft Corporation System and method using a packetized encoded bitstream for parallel compression and decompression
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6333744B1 (en) * 1999-03-22 2001-12-25 Nvidia Corporation Graphics pipeline including combiner stages
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
US6351806B1 (en) * 1999-10-06 2002-02-26 Cradle Technologies Risc processor using register codes for expanded instruction set
US6466222B1 (en) * 1999-10-08 2002-10-15 Silicon Integrated Systems Corp. Apparatus and method for computing graphics attributes in a graphics display system
US6353439B1 (en) * 1999-12-06 2002-03-05 Nvidia Corporation System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline
US6557022B1 (en) * 2000-02-26 2003-04-29 Qualcomm, Incorporated Digital signal processor with coupled multiply-accumulate units
US6624818B1 (en) * 2000-04-21 2003-09-23 Ati International, Srl Method and apparatus for shared microcode in a multi-thread computation engine
US6806886B1 (en) * 2000-05-31 2004-10-19 Nvidia Corporation System, method and article of manufacture for converting color data into floating point numbers in a computer graphics pipeline
US6636221B1 (en) * 2000-08-02 2003-10-21 Ati International, Srl Graphics processing system with enhanced bus bandwidth utilization and method therefore
US6636223B1 (en) * 2000-08-02 2003-10-21 Ati International. Srl Graphics processing system with logic enhanced memory and method therefore
US6999100B1 (en) * 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US6778181B1 (en) * 2000-12-07 2004-08-17 Nvidia Corporation Graphics processing system having a virtual texturing array
JP2002333978A (ja) * 2001-05-08 2002-11-22 Nec Corp Vliw型プロセッサ
US6839828B2 (en) * 2001-08-14 2005-01-04 International Business Machines Corporation SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode
US6947053B2 (en) * 2001-09-27 2005-09-20 Intel Corporation Texture engine state variable synchronizer
US7127482B2 (en) * 2001-11-19 2006-10-24 Intel Corporation Performance optimized approach for efficient downsampling operations
US6924808B2 (en) * 2002-03-12 2005-08-02 Sun Microsystems, Inc. Area pattern processing of pixels
US6980209B1 (en) * 2002-06-14 2005-12-27 Nvidia Corporation Method and system for scalable, dataflow-based, programmable processing of graphics data
US8036475B2 (en) * 2002-12-13 2011-10-11 Ricoh Co., Ltd. Compression for segmented images and other types of sideband information
US8823718B2 (en) * 2003-11-14 2014-09-02 Microsoft Corporation Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
US6897871B1 (en) * 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US7030878B2 (en) * 2004-03-19 2006-04-18 Via Technologies, Inc. Method and apparatus for generating a shadow effect using shadow volumes
US7710427B1 (en) * 2004-05-14 2010-05-04 Nvidia Corporation Arithmetic logic unit and method for processing data in a graphics pipeline
US7280112B1 (en) * 2004-05-14 2007-10-09 Nvidia Corporation Arithmetic logic unit temporary registers
US7298375B1 (en) * 2004-05-14 2007-11-20 Nvidia Corporation Arithmetic logic units in series in a graphics pipeline
US7091982B2 (en) * 2004-05-14 2006-08-15 Nvidia Corporation Low power programmable processor
US7941645B1 (en) * 2004-07-28 2011-05-10 Nvidia Corporation Isochronous pipelined processor with deterministic control
US7525543B2 (en) * 2004-08-09 2009-04-28 Siemens Medical Solutions Usa, Inc. High performance shading of large volumetric data using screen-space partial derivatives
US20060177122A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
US7412591B2 (en) * 2005-06-18 2008-08-12 Industrial Technology Research Institute Apparatus and method for switchable conditional execution in a VLIW processor
TWI289808B (en) * 2005-11-11 2007-11-11 Silicon Integrated Sys Corp Register-collecting mechanism, method for performing the same and pixel processing system employing the same
US7477260B1 (en) * 2006-02-01 2009-01-13 Nvidia Corporation On-the-fly reordering of multi-cycle data transfers
US20070279408A1 (en) * 2006-06-01 2007-12-06 Intersil Corporation Method and system for data transmission and recovery
US7928990B2 (en) * 2006-09-27 2011-04-19 Qualcomm Incorporated Graphics processing unit with unified vertex cache and shader register file

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6280785A (ja) * 1985-10-04 1987-04-14 Toshiba Corp 画像記憶装置
JPS649574A (en) * 1987-07-02 1989-01-12 Fujitsu Ltd Video rate picture processor
JP2001338287A (ja) * 2000-05-25 2001-12-07 Nec Microsystems Ltd バッファ制御回路
JP2002171401A (ja) * 2000-11-29 2002-06-14 Canon Inc 間引き演算命令を備えたsimd型演算装置
JP2004199222A (ja) * 2002-12-17 2004-07-15 Nec Corp 対称型画像フィルタ処理装置、プログラム、及びその方法
WO2005114646A2 (en) * 2004-05-14 2005-12-01 Nvidia Corporation Low power programmable processor
JP2007538319A (ja) * 2004-05-14 2007-12-27 エヌヴィディア コーポレイション 低電力プログラマブルプロセッサ
JP2006196004A (ja) * 2005-01-13 2006-07-27 Sony Computer Entertainment Inc Simdプロセッサスライスの有効/無効の制御のための方法ならびに装置

Also Published As

Publication number Publication date
KR20090017980A (ko) 2009-02-19
TWI484441B (zh) 2015-05-11
TW200917157A (en) 2009-04-16
KR100980148B1 (ko) 2010-09-03
JP5435253B2 (ja) 2014-03-05
US20090046105A1 (en) 2009-02-19
CN101441761A (zh) 2009-05-27
CN101441761B (zh) 2012-09-19

Similar Documents

Publication Publication Date Title
US7728841B1 (en) Coherent shader output for multiple targets
US7659909B1 (en) Arithmetic logic unit temporary registers
US8063903B2 (en) Edge evaluation techniques for graphics hardware
US7805589B2 (en) Relative address generation
US8077174B2 (en) Hierarchical processor array
EP1745434B1 (en) A kill bit graphics processing system and method
US9448766B2 (en) Interconnected arithmetic logic units
US7724263B2 (en) System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories
US7710427B1 (en) Arithmetic logic unit and method for processing data in a graphics pipeline
US8775777B2 (en) Techniques for sourcing immediate values from a VLIW
US20080117221A1 (en) Early kill removal graphics processing system and method
US11935151B2 (en) Switchable image source in a hybrid graphics systems
US20160292812A1 (en) Hybrid 2d/3d graphics rendering
WO2018009277A1 (en) Graphics command parsing mechanism
US7484076B1 (en) Executing an SIMD instruction requiring P operations on an execution unit that performs Q operations at a time (Q<P)
JP5435253B2 (ja) グラフィックスプロセッサユニットパイプラインにおける条件付き実行ビット
US10114755B2 (en) System, method, and computer program product for warming a cache for a task launch
US5966142A (en) Optimized FIFO memory
US8314803B2 (en) Buffering deserialized pixel data in a graphics processor unit pipeline
TWI533672B (zh) 使用取樣子集的多取樣表面處理
JP4765126B2 (ja) グラフィックスプロセッサユニットパイプラインにおける読み出し及び書き込み可能な共有のグローバル値
US8687010B1 (en) Arbitrary size texture palettes for use in graphics systems
US7868902B1 (en) System and method for pixel data row forwarding in a 3-D graphics pipeline
US8856499B1 (en) Reducing instruction execution passes of data groups through a data operation unit

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110622

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121204

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121213

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131127

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5435253

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250