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

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

Info

Publication number
JP5723679B2
JP5723679B2 JP2011123344A JP2011123344A JP5723679B2 JP 5723679 B2 JP5723679 B2 JP 5723679B2 JP 2011123344 A JP2011123344 A JP 2011123344A JP 2011123344 A JP2011123344 A JP 2011123344A JP 5723679 B2 JP5723679 B2 JP 5723679B2
Authority
JP
Japan
Prior art keywords
processing
instruction
dedicated
data
software
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.)
Active
Application number
JP2011123344A
Other languages
English (en)
Other versions
JP2012018668A (ja
Inventor
サイモン・ジョーンズ
アンドレアス・エンク−ハルストヴェ
アスケ・シモン・クリステンセン
Original Assignee
アーム・リミテッド
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 アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2012018668A publication Critical patent/JP2012018668A/ja
Application granted granted Critical
Publication of JP5723679B2 publication Critical patent/JP5723679B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Description

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

Claims (27)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1011419.7A GB2481819B (en) 2010-07-07 2010-07-07 Switching between dedicated function hardware and use of a software routine to generate result data
GB1011419.7 2010-07-07

Publications (2)

Publication Number Publication Date
JP2012018668A JP2012018668A (ja) 2012-01-26
JP5723679B2 true JP5723679B2 (ja) 2015-05-27

Family

ID=42669300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011123344A Active JP5723679B2 (ja) 2010-07-07 2011-06-01 専用機能ハードウェア間の切り替えおよび結果データを生成するソフトウェアルーチンの使用

Country Status (4)

Country Link
US (2) US8922568B2 (ja)
JP (1) JP5723679B2 (ja)
CN (1) CN102314345B (ja)
GB (1) GB2481819B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9349209B2 (en) 2011-05-27 2016-05-24 Arm Limited Graphics processing systems
US9880844B2 (en) * 2013-12-30 2018-01-30 Cavium, Inc. Method and apparatus for parallel and conditional data manipulation in a software-defined network processing engine

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3522023A (en) 1967-09-13 1970-07-28 Marathon Oil Co Phosphorous additive-lead extender formulation with positive synergistic octane appeciation
JPS63157238A (ja) * 1986-12-22 1988-06-30 Fuji Electric Co Ltd コンピユ−タ
US5197138A (en) * 1989-12-26 1993-03-23 Digital Equipment Corporation Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching
JPH05204669A (ja) * 1992-01-23 1993-08-13 Mitsubishi Electric Corp スケジュール方法
JP2000207202A (ja) * 1998-10-29 2000-07-28 Pacific Design Kk 制御装置およびデ―タ処理装置
US6898692B1 (en) * 1999-06-28 2005-05-24 Clearspeed Technology Plc Method and apparatus for SIMD processing using multiple queues
JP3946393B2 (ja) * 1999-10-19 2007-07-18 株式会社東芝 階層構造をもつ並列計算機
EP1182548A3 (en) * 2000-08-21 2003-10-15 Texas Instruments France Dynamic hardware control for energy management systems using task attributes
JP2003108989A (ja) * 2001-09-26 2003-04-11 Toshiba Corp 画像処理プロセッサ及び情報処理システム
US8174531B1 (en) * 2003-10-29 2012-05-08 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US20050140692A1 (en) * 2003-12-30 2005-06-30 Microsoft Corporation Interoperability between immediate-mode and compositional mode windows
US7590823B1 (en) * 2004-08-06 2009-09-15 Xilinx, Inc. Method and system for handling an instruction not supported in a coprocessor formed using configurable logic
US7830390B2 (en) * 2005-07-19 2010-11-09 Graphics Properties Holdings, Inc. Color computation of pixels using a plurality of vertex or fragment shader programs
GB0516454D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Coprocessor support in a computing device
GB0605383D0 (en) * 2006-03-17 2006-04-26 Williams Paul N Processing system
US8384728B2 (en) * 2007-09-14 2013-02-26 Qualcomm Incorporated Supplemental cache in a graphics processing unit, and apparatus and method thereof
JP2009122925A (ja) * 2007-11-14 2009-06-04 Toshiba Corp データ処理プログラム、データ処理方法およびデータ処理システム
CN101453296B (zh) * 2007-11-29 2012-06-13 中兴通讯股份有限公司 卷积Turbo码译码器的等待队列控制方法及装置
JP5379122B2 (ja) * 2008-06-19 2013-12-25 パナソニック株式会社 マルチプロセッサ
US8432405B2 (en) * 2008-06-26 2013-04-30 Microsoft Corporation Dynamically transitioning between hardware-accelerated and software rendering
JP5458697B2 (ja) * 2009-06-30 2014-04-02 富士通モバイルコミュニケーションズ株式会社 情報処理装置

Also Published As

Publication number Publication date
US9417877B2 (en) 2016-08-16
US20120007878A1 (en) 2012-01-12
JP2012018668A (ja) 2012-01-26
GB2481819B (en) 2018-03-07
CN102314345A (zh) 2012-01-11
CN102314345B (zh) 2016-08-10
GB201011419D0 (en) 2010-08-18
US20140289499A1 (en) 2014-09-25
US8922568B2 (en) 2014-12-30
GB2481819A (en) 2012-01-11

Similar Documents

Publication Publication Date Title
US6842895B2 (en) Single instruction for multiple loops
US8589664B2 (en) Program flow control
US10430192B2 (en) Vector processing using loops of dynamic vector length
US8564604B2 (en) Systems and methods for improving throughput of a graphics processing unit
US20060071933A1 (en) Application binary interface for multi-pass shaders
KR20170009780A (ko) 데이터 처리 시스템
US20150286484A1 (en) Processor subroutine cache
KR20150019349A (ko) 다중 쓰레드 실행 프로세서 및 이의 동작 방법
US20230273797A1 (en) Processor with adaptive pipeline length
JP5723679B2 (ja) 専用機能ハードウェア間の切り替えおよび結果データを生成するソフトウェアルーチンの使用
US11042378B2 (en) Propagation instruction to generate a set of predicate flags based on previous and current prediction data
EP1347374A2 (en) Method and apparatus for processing branch instructions in a pipilined processor
US9349209B2 (en) Graphics processing systems
EP3125109B1 (en) Vector length querying instruction
US20070011439A1 (en) Data processing systems and methods of operating the same in which memory blocks are selectively activated in fetching program instructions
KR900010552A (ko) 명령을 페치(fetch)하기 위한 제어 시스템
KR100329780B1 (ko) 인터럽트 응답 시간을 줄인 인터럽트 처리 장치
US20050160254A1 (en) Multithread processor architecture for triggered thread switching without any clock cycle loss, without any switching program instruction, and without extending the program instruction format
US20100153688A1 (en) Apparatus and method for data process
JP2010134891A (ja) 画像処理プロセッサ
CN108022281B (zh) 渲染三维图形的方法及装置
JP3057732B2 (ja) 情報処理装置
JPH0373022A (ja) 中央処理装置
WO2007048988A1 (en) A data processing apparatus and method for handling procedure call instructions
JPH07234786A (ja) マイクロプログラム制御型情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150203

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150212

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: 20150302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150330

R150 Certificate of patent or registration of utility model

Ref document number: 5723679

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