説明

専用機能ハードウェア間の切り替えおよび結果データを生成するソフトウェアルーチンの使用

【課題】一連のプログラム命令に応じて、命令デコーダによって制御される処理回路を含む、データを処理するための装置を提供する。
【解決手段】処理回路から出力データを受信し、専用処理作業を実行するように構成される専用機能ハードウェア12も提供する。命令デコーダは、終了命令およびソフトウェア処理フラグに応じて、現在のソフトウェアルーチンを終了するように処理回路を制御して、出力データを生成し、ソフトウェア処理フラグに従って、専用機能ハードウェアにより出力データの処理をトリガするか、または専用ハードウェア回路で生成されるハードウェア生成結果データの代わりにソフトウェア生成結果データを生成するために、出力データにさらなるソフトウェアルーチンを実行するように処理回路をトリガするかのいずれかを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理システムの分野に関する。より具体的には、本発明は、プログラム命令を実行するための処理回路とともに、専用処理作業を実行するためにその処理回路に結合された専用機能ハードウェアを含む、データ処理システムに関する。
【背景技術】
【0002】
専用機能ハードウェアとともに、一連のプログラム命令を実行するための汎用プロセッサの両方を含むデータ処理システムを提供することが知られている。専用機能ハードウェアは、例えば、大量のメディアデータの圧縮または復元等、特定の処理機能を実行するために設計および提供されたアクセラレータハードウェアであり得る。別の例は、特定の作業を実行するためのコプロセッサとともに提供される汎用プロセッサであろう。この場合では、コプロセッサが実装中に存在していない場合、そのコプロセッサを利用しようとするソフトウェアは、通常は例外をトリガし、コプロセッサ(専用機能ハードウェア)によって実行されるはずであった処理を、代わりに汎用プロセッサ上で稼動するエミュレーションソフトウェアにより実行させる。それ故に、コプロセッサの使用は、コプロセッサが存在しているかどうかに依存する。
【発明の概要】
【課題を解決するための手段】
【0003】
一態様から見ると、本発明は、データ処理作業を実行するよう構成される処理回路と、前記処理回路に結合され、かつ、一連のプログラム命令に応じて前記データ処理作業を実行するように前記処理回路を制御する制御信号を生成する命令デコーダ回路と、前記処理回路に結合され、かつ、前記処理回路から出力データを受信し、前記出力データに専用処理作業を実行してハードウェア生成結果データを生成するように構成される専用機能ハードウェアと、を備え、前記命令デコーダ回路が、終了命令およびソフトウェア処理フラグに応じて、現在のソフトウェアルーチンを終了するように前記処理回路を制御する制御信号を生成し、前記出力データを生成し、(i)前記ソフトウェア処理フラグが第1の値を有している場合、前記処理回路から前記出力データを受信し、前記ハードウェア生成結果データを生成するために前記専用処理作業を実行するように、前記専用機能ハードウェアをトリガし、または、(ii)前記ソフトウェア処理フラグが第2の値を有している場合、前記ハードウェア生成結果データの代わりにソフトウェア生成結果データを生成するために、前記出力データにさらなるソフトウェアルーチンを実行するように前記処理回路をトリガする、データを処理するための装置を提供する。
【0004】
本技術は、専用機能ハードウェアが常に提供される実施形態においてさえ、専用機能ハードウェアを使用せず、代わりにソフトウェアルーチンを使用して、いくつかの所望の処理を実行することが望ましい状況があり得ることを認識する。さらに、本技術は、切り替えの制御に関連するハードウェアおよび性能の低オーバーヘッドで専用機能ハードウェアの代わりにソフトウェアルーチンを使用する、かかる切り替えを許可する機構を提供することを模索する。現在のソフトウェアルーチンは、終了命令で終了し、その終了命令のデコードに関与する命令デコーダは、ソフトウェアルーチンがそのソフトウェアルーチンの実行をトリガするのに使用されるべきであることを示すフラグに応じるよう修正される。そうでない場合、デフォルトの動作は常に存在する専用機能ハードウェアを使用するだろう。このようにして、さらなる柔軟性が達成され、それにより専用機能ハードウェアによって容易には提供されない特定の特性を有する処理が、代わりにソフトウェアルーチンによって実行され得る。
【0005】
本処理回路が、一連のプログラム命令に応じる単一のプロセッサを備え得ることが理解されよう。代替として、処理回路は複数のプロセッサを備えてもよく、命令デコーダ回路は、複数の命令デコーダを備えて、各プロセッサを対応する命令デコーダに結合させることができる。そして、これらのプロセッサと命令デコーダとのそれぞれの組み合わせが、それら自体の一連のプログラム命令に応じることができる。これによって、並行実行環境が提供される。
【0006】
現在のソフトウェアルーチンおよびさらなるソフトウェアルーチンは異なるプロセッサによって実行可能である。しかし、共通のプロセッサが現在のソフトウェアルーチンを実行し、そしてその後に、続いてさらなるソフトウェアルーチンを実行することは都合がよい、というのも、このことがさらなるソフトウェアルーチンの使用によって利用可能な現在のソフトウェアルーチンによって生成されたそのデータを確保するだけでなく、プロセッサを切り替えなければならないオーバーヘッドおよび複雑さを回避するためである。
【0007】
システムで実行される該処理は、複数スレッドであってもよい。複数プロセッサにわたる複数スレッドだけでなく、単一プロセッサで実行する複数スレッドがあってもよい。
【0008】
本技術に一般的な適用性がある間は、該装置が専用グラフィックス処理回路である場合の使用に非常に好適である。かかる専用グラフィックス処理回路は、複数セクションに分解されたタスクで通常高度にコンピュータ的に集約しているが、このセクションのいくつかは専用機能ハードウェアによって実行されるのに非常に好適な一方、プログラムされた汎用プロセッサによってより良好に実行されるものがある。
【0009】
グラフィックス処理回路がこのコンテキストの間、現在のソフトウェアルーチンは出力ピクセル明度である出力データを生成するフラグメントシェーダであってもよい。この場合、専用機能ハードウェアは、出力されたピクセル明度および少なくともフレームバッファーメモリ内に格納されている現在のピクセル明度に応じて、現在のピクセル明度の代わりにフレームバッファーメモリに格納される結果ピクセル明度を生成する、混合機能ハードウェアであってもよい。かかるフラグメント処理に続く混合処理は、グラフィックス処理環境の典型である。本技術は、提供されている混合機能ハードウェアが、所望の処理特性を提供することができない場合、トリガされる可能性のあるさらなるソフトウェアルーチンが、出力されたピクセル明度および少なくともフレームバッファーメモリ内に格納されている現在のピクセル明度に応じて、現在のピクセル明度の代わりにフレームバッファーメモリに格納される結果ピクセル明度を生成する、混合シェーダになり得ることを容易する。
【0010】
専用機能ハードウェアは、専用機能ハードウェアによって実行される専用処理作業を修正する1つもしくは複数の構成パラメータに応じてもよい。それ故に、専用機能ハードウェアは実行する処理でいくらかの変形が実施可能であるが、さらなるソフトウェアルーチン等の一連のプログラム命令を実行する汎用プロセッサほどの柔軟性はない。
【0011】
専用機能ハードウェアがその専用処理作業を開始するようトリガできる方法は、ハードウェアで検出されたかかる格納制御で出力データをメモリに格納し、そしてその後に専用処理ハードウェアの制御をトリガする。
【0012】
現在のソフトウェアルーチンを終了させる終了命令は、さらなるソフトウェアルーチンも終了させてもよい。これは、命令エンコードの観点から効率的である。この状況では、ルーチンフラグは処理回路が現在のところ現在のソフトウェアルーチンを実行しているかどうかを示すよう提供されていてもよい。それ故に、ルーチンフラグが、処理回路が現在のソフトウェアルーチンを実行しているかどうかを示さない場合、さらなるソフトウェアルーチンの実行トリガは抑制されることになる。
【0013】
プログラム可能な分岐アドレスは、さらなるソフトウェアルーチンの開始アドレスを指定する構成パラメータとして格納されてもよい。
【0014】
終了命令は、1つもしくは複数の所定の依存条件が満たされるまで、終了命令それ自体によって指定された宛先アドレスへ分岐するようトリガするように設定されてもよい。それ故に、専用機能ハードウェアによる処理の開始、またはさらなるソフトウェアルーチンは、専用機能ハードウェアまたはソフトウェアルーチンによって、処理をトリガする代わりに分岐機能を実行する終了命令を有することで、1つもしくは複数の所定の依存条件をゲートでコントロールしてもよい。
【0015】
さらなる態様から見ると、本発明は、データ処理作業を実行する処理手段と、一連のプログラム命令に応じて前記データ処理作業を実行するように前記処理回路を制御する制御信号を生成する、命令デコード手段と、前記処理手段から出力データを受信し、およびハードウェア生成結果データを生成するために前記出力データに専用処理作業を実行する、専用機能ハードウェア手段と、を備え、前記命令デコード手段が終了命令およびソフトウェア処理フラグに応じて、現在のソフトウェアルーチンを終了するように前記処理回路を制御する制御信号を生成し、前記出力データを生成し、(i)前記ソフトウェア処理フラグが第1の値を有している場合、前記処理手段から前記出力データを受信し、前記ハードウェア生成結果データを生成するために前記専用処理作業を実行するように、前記専用機能ハードウェアをトリガし、または、(ii)前記ソフトウェア処理フラグが第2の値を有している場合、前記ハードウェア生成結果データの代わりにソフトウェア生成結果データを生成するために、前記出力データにさらなるソフトウェアルーチンを実行するように前記処理手段をトリガする、データを処理するための装置を提供する。
【0016】
さらなる態様から見ると、本発明は、処理回路を使用するデータ処理作業を実行するステップと、前記データ処理作業を実行するための前記処理回路を制御する制御信号を生成する一連のプログラム命令をデコードするステップと、前記処理回路から出力データを受信し、専用機能ハードウェアを使用してハードウェア生成結果データを生成するために前記出力データに前記専用処理作業を実行するステップと、を含み、前記デコードステップが、終了命令およびソフトウェア処理フラグに応じて、現在のソフトウェアルーチンを終了するように前記処理手段を制御する制御信号を生成し、前記出力データを生成し、(i)前記ソフトウェア処理フラグが第1の値を有している場合、前記処理手段から前記出力データを受信し、前記ハードウェア生成結果データを生成するために前記専用処理作業を実行するように、前記専用機能ハードウェアをトリガし、または、(ii)前記ソフトウェア処理フラグが第2の値を有している場合、前記ハードウェア生成結果データの代わりにソフトウェア生成結果データを生成するために、前記出力データにさらなるソフトウェアルーチンを実行するように前記処理手段をトリガする、データを処理する方法を提供する。
【0017】
本発明の上述および他の目的、特徴、および利点は、関連する添付の図に関連して読み取られる、以下の例示的実施形態の詳細な説明記述から明らかとなろう。
【図面の簡単な説明】
【0018】
【図1】専用機能ハードウェアおよび専用機能ハードウェアに代わって使用されるさらなるソフトウェアルーチンの両方を含むグラフィックス処理システムの一部を図的に説明する。
【図2】一連のプログラム命令に応じる汎用プロセッサを図的に説明する。
【図3】プロセッサのアレイ、および、グラフィックスコンテキスト状態およびグラフィックス処理に関連付けられた他のデータを格納するメモリを含む、グラフィックス処理装置を図的に説明する。
【図4】終了命令をデコードする時の命令デコーダの制御を図的に説明するフローチャートである。
【図5】本技術の一実施形態に従った終了命令の機能性を説明する擬似コードである。
【発明を実施するための形態】
【0019】
図1は図的にグラフィックス処理システム2を説明する。ラスタライザーハードウェア4は、描かれるグラフィックスプリミティブ(例えば、プリミティブトライアングル)を指定するグラフィックスコンテキスト状態6を読み込み、そして、これらから、ラスタライズされたグラフィックスプリミティブの表現の一部として、描かれる1ピクセルに一般的に相当する一連のグラフィックスフラグメントを生成することに関与する。さらなるグラフィックス処理作業が、システム空間変換、頂点およびプリミティブソート等のラスタライザーハードウェア4の動作より先に実行され得ることが理解されよう。
【0020】
ラスタライザーハードウェア4は、描かれる一連のデータ識別フラグメント(ピクセル)を生成する。これらは、フラグメントそれぞれに関連するピクセル明度の決定のためフラグメントシェーダソフトウェア8に渡される。フラグメントシェーダ8は、グラフィックス処理システム2の汎用プロセッサ上で実行するソフトウェアルーチンの形態で提供される。一般的に、多くの汎用プロセッサは、グラフィックス処理システム内で並行して提供されるので、複数ピクセルは並行して処理されてもよく、他の処理作業と並行して処理されてもよい。
【0021】
フラグメントシェーダ8(現在のソフトウェアルーチン)は、終了命令で終了する。この終了命令は、所定の依存条件に合致するまで、それ自体に分岐して戻る。このようにして、フラグメントシェーダ8によって生成されたピクセル明度のさらなる処理は、処理シーケンス内の適切な場所に到達するまで(全ての依存関係が合致することに相当する)遅延してよく、そして、ピクセル明度が混合処理の方に渡され得る。
【0022】
フラグメントシェーダを実行している汎用プロセッサ内で、命令デコーダによってデコードされる終了命令である。命令デコーダ実行は、混合処理をどう実行するかを制御する制御信号を生成する。そのピクセル値の処理(個別処理スレッド)に関連付けられた、グラフィックスコンテキスト状態6は、in_fragment_shaderフラグだけでなく、blend_shader_enabledフラグも含む。終了命令がデコードされる時、blend_shader_enabledフラグが真の場合、これは混合処理が、専用混合機能ハードウェア12よりも、混合シェーダ10(さらなるソフトウェアルーチン)によって実行されるべきであることを示す。専用混合機能ハードウェア12および混合シェーダ10の両方ともシステム内で提供される。それ故に、blend_shader_enabledフラグが真の場合、混合シェーダ10は、フレームバッファーメモリ14内の相当する位置にライトバックされる、ソフトウェア生成結果ピクセル明度を生成するために、フレームバッファーメモリ14内の相当する位置にある現在のピクセル明度で混合作業を実行するピクセル明度を処理することになる。代替として、blend_shader_enabledフラグが偽の場合、ピクセル明度は、フレームバッファーメモリ14に再度書き込まれるハードウェア生成結果ピクセル明度をデフォルトで生成するために存在する、専用混合機能ハードウェア12によって処理される。それ故に、フラグメントシェーダ8(現在のソフトウェアルーチン)内の同一終了命令は、blend_shader_enabledフラグに基づいて、専用混合機能ハードウェア12または混合シェーダ10(さらなるソフトウェアルーチン)のいずれかの使用をトリガするのに使用されてもよい。
【0023】
さらなる特徴は、in_fragment_shaderフラグの使用である。これは、フラグメントシェーダ8および混合シェーダ10の両方を終了するのに使用され得る同一終了命令として提供される。混合シェーダ10を終了する時、さらなる混合シェーダ10によって混合シェーダ10からの出力の処理をトリガすることは不適切である。それ故に、その終了命令に遭遇し、デコードされた時、in_fragment_shaderフラグが、汎用プロセッサがフラグメントシェーダ8を実行していたことを示す場合、終了命令は混合シェーダ10のみを呼び出すであろう。
【0024】
図2は、フラグメントシェーダ8および/または混合シェーダ10を実行するのに使用されてもよいタイプのグラフィックス処理ユニット内の、汎用プロセッサ16を説明する。フラグメントシェーダ8または混合シェーダ10を構成するプログラム命令は、命令パイプライン18に供給されている。命令デコーダ20は、これらのプログラム命令に応じて、レジスタ26内に格納されるデータ値を処理中のデータパス24によって実行される処理作業を制御する制御信号22を生成する。命令デコーダ20は、別個のメモリにデータを格納し、その別個のメモリからデータを読み取るためのプロセッサ16もまた制御することができる。レジスタ26は、異なる実行スレッド(異なる一連のプログラム命令)間で切り替える時、異なるレジスタバンク間での切り替えの使用によって促進されるプロセッサ16の複数スレッド機能を示すバンクフォームで説明する。
【0025】
図3は、プロセッサ16のアレイ28を含むグラフィックス処理ユニットを説明する。かかるアレイ28は、グラフィックス処理作業に非常に好適なタイプの高度な並行処理を促進する。メモリ30は、プロセッサ16の個別のインスタンスで実行される、フラグメントシェーダプログラム32および混合シェーダプログラム34を格納する。メモリ30は、結果ピクセル明度が混合処理によってアセンブルされる、フレームバッファー14も含む。メモリ30は、終了命令がさらなるソフトウェアルーチン(混合シェーダ10)の使用をトリガする時、実行されるべき混合シェーダプログラム34の開始アドレスを示すプログラム可能な分岐宛先アドレス36とともに、グラフィックスコンテキスト状態6をさらに格納する。
【0026】
図4は終了命令のデコードを図的に説明するフローチャートである。終了命令はニーモニックBRNDEND(依存関係の無い終了への分岐)を有する。ステップ38は、終了命令が受信されるまで待機する。終了命令が受信される時、ステップ40が処理スレッドに関連する全ての依存関係(およびそれ故に終了命令とも関連する)が満たされているかどうかを決定する。全ての依存関係が満たされない時、処理はステップ38に戻る。
【0027】
全ての依存関係がステップ40で満たされる場合、処理は、blend_shader_enabledフラグが真かどうかについての決定が行われるステップ42に進む。blend_shader_enabledフラグが偽の時、処理は、フラグメントシェーダ8からのピクセル明度が、出力(例えば、メモリ30に書き込まれる)であり、そのピクセル明度を計算するためのフラグメントシェーダスレッド8が終了する、ステップ44に進む。メモリ30へのピクセル明度の書き込みは、メモリ30からそのピクセル明度を読み込み、それに関して専用処理作業を開始するために専用混合機能ハードウェア12をトリガする。
【0028】
ステップ42の決定が、blend_shader_enabledフラグが真の場合、処理はin_fragment_shaderフラグが真か否かに関して決定するステップ46に進む。in_fragment_shaderフラグが偽である場合、処理は再度ステップ44に進む。この場合、ピクセル明度が再度出力され、スレッドを終了することになるだろう。しかし、終了したスレッドはフラグメントシェーダ8ではないので、専用混合機能ハードウェア12によって処理を呼び出すのは不適切である。他の状況データだけでなく、ピクセル明度が格納される位置は、ステップ44においてピクセル明度の出力時に、専用混合機能ハードウェア12が呼び出されるべきかどうかを示すのに役立つ。
【0029】
決定ステップ46が、in_fragment_shaderフラグが真である場合、処理は、in_fragment_shaderフラグが偽に設定されるステップ48に進む。これは、混合シェーダ10が呼び出されようとしていて、それに応じてin_fragment_shaderフラグが、実行しようとしているプログラム命令制御プロセスがフラグメントシェーダ処理ではないことを示すべきであるからである。ステップ50は、メモリ30内に格納され、混合シェーダプログラム34の開始アドレスに相当するblend_shader_addressによって示される宛先アドレスに分岐する。ステップ52は、混合シェーダ10を実行し、フレームバッファーメモリ14に再度書き込まれる結果ピクセル明度を生成する。
【0030】
図5は、終了命令54がデコードされるときに実行される処理作業を図的に説明する擬似コードである。これらの処理作業は、図4で説明される。
【0031】
本発明の例示的実施形態を、本明細書で添付の図面を参照しながら詳細に説明したが、本発明はその正確な実施形態に限られるものではなく、当業者により、添付の特許請求の範囲により定義される本発明の範囲および趣旨から逸脱することなく、種々の変更および修正を生じ得ることが理解されよう。
【符号の説明】
【0032】
2 グラフィックス処理システム
4 ラスタライザーハードウェア
6 グラフィックスコンテキスト状況
8 フラグメントシェーダ
10 混合シェーダ
12 混合機能ハードウェア
14 フレームバッファーメモリ

【特許請求の範囲】
【請求項1】
データ処理作業を実行するように構成される処理回路と、
前記処理回路に結合され、かつ、一連のプログラム命令に応じて前記データ処理作業を実行するように前記処理回路を制御する制御信号を生成する、命令デコーダ回路と、
前記処理回路に結合され、かつ、前記処理回路から出力データを受信し、前記出力データに専用処理作業を実行してハードウェア生成結果データを生成するように構成される、専用機能ハードウェアと、を備え、
前記命令デコーダ回路が、終了命令およびソフトウェア処理フラグに応じて、現在のソフトウェアルーチンを終了するように前記処理回路を制御する制御信号を生成し、前記出力データを生成し、
(i)前記ソフトウェア処理フラグが第1の値を有している場合、前記処理回路から前記出力データを受信し、前記ハードウェア生成結果データを生成するために前記専用処理作業を実行するように、前記専用機能ハードウェアをトリガし、または、
(ii)前記ソフトウェア処理フラグが第2の値を有している場合、前記ハードウェア生成結果データの代わりにソフトウェア生成結果データを生成するために、前記出力データにさらなるソフトウェアルーチンを実行するように前記処理回路をトリガする、データを処理するための装置。
【請求項2】
前記処理回路が複数のプロセッサを備え、前記命令デコーダ回路は複数の命令デコーダを備え、前記複数のプロセッサのうちの各プロセッサが前記複数の命令デコーダのうちの1つに結合され、前記命令デコーダが一連のプログラム命令に応じて、前記プロセッサを制御する制御信号を生成する、請求項1に記載の装置。
【請求項3】
前記現在のソフトウェアルーチンおよび前記さらなるソフトウェアルーチンが、前記複数のプロセッサの共通の1つによって実行される、請求項2に記載の装置。
【請求項4】
前記プロセッサのそれぞれが、複数の一連のプログラム命令に応じて、複数の処理スレッドを実行する、請求項2に記載の装置。
【請求項5】
前記処理回路が、複数の一連のプログラム命令に応じて、複数の処理スレッドを実行する、請求項1に記載の装置。
【請求項6】
前記装置が専用グラフィックス処理回路である、請求項1に記載の装置。
【請求項7】
前記現在のソフトウェアルーチンがフラグメントシェーダであり、前記出力データが出力ピクセル明度である、請求項6に記載の装置。
【請求項8】
前記専用機能ハードウェアが、前記出力されたピクセル明度および少なくともフレームバッファーメモリ内に現在格納されている現在のピクセル明度に応じて、前記現在のピクセル明度の代わりに前記フレームバッファーメモリに格納される結果ピクセル明度を生成する、混合機能ハードウェアである、請求項7に記載の装置。
【請求項9】
前記さらなるソフトウェアルーチンが、前記出力されたピクセル明度および少なくともフレームバッファーメモリ内に現在格納されている前記現在のピクセル明度に応じて、前記現在のピクセル明度の代わりに前記フレームバッファーメモリに格納される前記結果ピクセル明度を生成する、混合シェーダである、請求項8に記載の装置。
【請求項10】
前記専用機能ハードウェアが、1つもしくは複数の構成パラメータに応じて、前記専用機能ハードウェアによって実行される前記専用処理作業を変更する、請求項1に記載の装置。
【請求項11】
前記ソフトウェア処理フラグが前記第1の値を有している場合、前記終了命令が前記出力データをメモリに格納するよう前記処理回路をトリガし、それによって、前記メモリから前記出力データを読み込み、前記専用処理作業を実行するように前記専用機能ハードウェアをトリガする、請求項1に記載の装置。
【請求項12】
前記終了命令が、前記現在のソフトウェアルーチンおよび前記さらなるソフトウェアルーチンを終了させ、かつ、前記命令デコーダ回路が前記終了命令のデコード時に、前記処理回路が前記現在のソフトウェアルーチンを現在実行しているかどうかを示すルーチンフラグに応じて、前記ルーチンフラグが、前記処理回路が前記現在のソフトウェアルーチンを実行していることを示さない場合、前記さらなるソフトウェアルーチンの実行トリガを抑制する、請求項1に記載の装置。
【請求項13】
前記命令デコーダが、前記装置の構成パラメータとして格納され、前記さらなるソフトウェアルーチンの開始アドレスを指定する、プログラム可能な分岐アドレスに応じる、請求項1に記載の装置。
【請求項14】
前記終了命令が、1つもしくは複数の所定の依存条件が満たされるまで、前記終了命令によって指定にされた宛先アドレスへ分岐する、請求項1に記載の装置。
【請求項15】
データ処理作業を実行するための処理手段と、
一連のプログラム命令に応じて、前記データ処理作業を実行するように前記処理回路を制御する制御信号を生成するための命令デコード手段と、
前記処理手段から出力データを受信し、ハードウェア生成結果データを生成するために前記出力データに専用処理作業を実行する、専用機能ハードウェア手段と、を備え
前記命令デコード手段が、終了命令およびソフトウェア処理フラグに応じて、現在のソフトウェアルーチンを終了するように前記処理手段を制御する制御信号を生成し、前記出力データを生成し、
(i)前記ソフトウェア処理フラグが第1の値を有している場合、前記処理手段から前記出力データを受信し、前記ハードウェア生成結果データを生成するために前記専用処理作業を実行するように、前記専用機能ハードウェア手段をトリガし、または、
(ii)前記ソフトウェア処理フラグが第2の値を有している場合、前記ハードウェア生成結果データの代わりにソフトウェア生成結果データを生成するために、前記出力データにさらなるソフトウェアルーチンを実行するように、前記処理手段をトリガする、データを処理するための装置。
【請求項16】
処理回路を使用したデータ処理作業を実行するステップと、
前記データ処理作業を実行するように前記処理回路を制御する制御信号を生成するために、一連のプログラム命令をデコードするステップと、
前記処理回路から出力データを受信し、そして専用機能ハードウェアを使用してハードウェア生成結果データを生成するために、前記出力データに専用処理作業を実行するステップと、を含み、
前記デコードステップが、終了命令およびソフトウェア処理フラグに応じて、現在のソフトウェアルーチンを終了するように前記処理手段を制御する制御信号を生成して、前記出力データを生成し、
(i)前記ソフトウェア処理フラグが第1の値を有している場合、前記処理手段から前記出力データを受信し、前記ハードウェア生成結果データを生成するために前記専用処理作業を実行するように、前記専用機能ハードウェアをトリガし、または、
(ii)前記ソフトウェア処理フラグが第2の値を有している場合、前記ハードウェア生成結果データの代わりにソフトウェア生成結果データを生成するために、前記出力データにさらなるソフトウェアルーチンを実行するように、前記処理手段をトリガする、データ処理方法。
【請求項17】
前記処理回路が複数のプロセッサを備え、前記デコードが複数の命令デコーダによって実行され、前記複数のプロセッサのうちの各プロセッサが前記複数の命令デコーダのうちの1つに結合され、前記命令デコーダが一連のプログラム命令に応じて前記プロセッサを制御する制御信号を生成する、請求項16に記載の方法。
【請求項18】
前記現在のソフトウェアルーチンおよび前記さらなるソフトウェアルーチンが前記複数のプロセッサの共通の1つによって実行される、請求項17に記載の方法。
【請求項19】
前記プロセッサのそれぞれが、複数の一連のプログラム命令に応じて、複数の処理スレッドを実行する、請求項17に記載の方法。
【請求項20】
前記処理回路が、複数の一連のプログラム命令に応じて、複数の処理スレッドを実行する、請求項16に記載の方法。
【請求項21】
前記方法が専用グラフィックス処理方法である、請求項16に記載の方法。
【請求項22】
前記現在のソフトウェアルーチンがフラグメントシェーダであり、前記出力データが出力ピクセル明度である、請求項21に記載の方法。
【請求項23】
前記専用機能ハードウェアが、前記出力されたピクセル明度および少なくともフレームバッファーメモリ内に現在格納されている現在のピクセル明度に応じて、前記現在のピクセル明度の代わりに前記フレームバッファーメモリに格納される結果ピクセル明度を生成する、混合機能ハードウェアである、請求項22に記載の方法。
【請求項24】
前記さらなるソフトウェアルーチンが、前記出力ピクセル明度および少なくともフレームバッファーメモリ内に現在格納されている現在のピクセル明度に応じて、前記現在のピクセル明度の代わりに前記フレームバッファーメモリに格納される結果ピクセル明度を生成する、混合シェーダである、請求項23に記載の方法。
【請求項25】
前記専用機能ハードウェアが、1つもしくは複数の構成パラメータに応じて、前記専用機能ハードウェアによって実行される前記専用処理作業を変更する、請求項16に記載の方法。
【請求項26】
前記ソフトウェア処理フラグが前記第1の値を有している場合、前記終了命令が前記出力データをメモリに格納するよう前記処理回路をトリガし、それによって、前記メモリから前記出力データを読み込み、前記専用処理作業を実行するように前記専用機能ハードウェアをトリガする、請求項16に記載の方法。
【請求項27】
前記終了命令が、前記現在のソフトウェアルーチンおよび前記さらなるソフトウェアルーチンを終了させ、前記命令デコーダ回路が前記終了命令のデコード時、前記処理回路が前記現在のソフトウェアルーチンを現在実行しているかどうかを示すルーチンフラグに応じて、前記ルーチンフラグが、前記処理回路が前記現在のソフトウェアルーチンを実行していることを示さない場合、前記さらなるソフトウェアルーチンの実行のトリガを抑制する、請求項16に記載の方法。
【請求項28】
前記命令デコーダが、前記さらなるソフトウェアルーチンの開始アドレスを指定する構成パラメータとして格納される、プログラム可能な分岐アドレスに応じる、請求項16に記載の方法。
【請求項29】
前記終了命令が、1つもしくは複数の所定の依存条件が満たされるまで、前記終了命令によって指定された宛先アドレスへ分岐する、請求項16に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−18668(P2012−18668A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−123344(P2011−123344)
【出願日】平成23年6月1日(2011.6.1)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】