(57)【要約】  データ処理システム（１０）は、複数のタスクをスケジュールするよう配置されるタスクスケジューリングデバイス（１２）と；複数の処理ユニット（１６、１８、２０）とを備え、少なくともその一部は、複数のタスクのうちの１以上の割当タスクを実行し、かつ割当タスクごとに、タスクスケジューリングデバイスに、割当タスクの実行が終了したことを示す少なくともタスク状態イベントを提供するよう構成され、タスクスケジューリングデバイスは、タスクスケジューラ制御器ユニット（２４）を備え、タスクスケジューラ制御器ユニット（２４）は、複数のタスクのうちの１以上を、それぞれ割当タスクを実行するよう構成される処理ユニットのうちの対応する１つに、１以上の以前に割当てられたタスクと関連付けられるタスク状態イベントのうちの１以上を受信することに応じて割当てるよう配置される。
2014525619.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システム（１０）であって、
複数のタスクをスケジュールするよう配置されるタスクスケジューリングデバイス（１２）と；
複数の処理ユニット（１６、１８、２０）と
を備え、前記複数の処理ユニット（１６、１８、２０）の少なくとも一部は、前記複数のタスクのうちの１以上の割当タスクを実行し、かつ割当タスクごとに、前記タスクスケジューリングデバイスへ前記割当タスクの実行が終了したことを示す少なくともタスク状態イベントを提供するよう構成され、
前記タスクスケジューリングデバイスは、タスクスケジューラ制御器ユニット（２４）を備え、
前記タスクスケジューラ制御器ユニット（２４）は、１以上の以前に割当てられたタスクと関連付けられる前記タスク状態イベントのうちの１以上を受信することに応じて、前記複数のタスクのうちの１つ以上を、それぞれ前記割当タスクを実行するよう構成される前記処理ユニットのうちの対応する１つに割当てるよう配置される、データ処理システム。
【請求項２】
前記データ処理システムは、フローチェーンバッファユニット（２２）を備え、
前記フローチェーンバッファユニット（２２）は、前記複数のタスクのうちの１以上のうちの１以上の処理フローおよび１以上の関連フローチェーンを定義する１以上のタスクパラメータテーブルを保存するよう配置され、
前記フローチェーンそれぞれは、前記複数の処理ユニットのうちの１以上を備え、
前記タスクスケジューリングデバイスは、前記複数のタスクを保存するよう配置されるタスクレジスタ（１４）を備え、
前記複数のタスクそれぞれは、前記１以上の処理フローと関連付けられ、
前記タスクスケジューラ制御器ユニットは、前記複数のタスクのうちの前記１以上を、前記１以上の処理フローのうちの対応する１つに応じて割当てるよう配置される、
請求項１に記載のデータ処理システム。
【請求項３】
前記データ処理システムは、映像処理システムである、
請求項１または２に記載のデータ処理システム。
【請求項４】
前記タスクスケジューリングデバイスは、１以上のリアルタイムタスクを受信しおよびスケジュールするよう配置される、
請求項１−３いずれか１項に記載のデータ処理システム。
【請求項５】
前記タスクスケジューラ制御器ユニットは、入力キューを備え、
前記タスクスケジューリングデバイスは、前記タスク状態イベントを受信し、
前記タスクスケジューリングデバイスは、調停ユニット（２８）を備え、
前記調停ユニット（２８）は、前記タスク状態イベントを前記入力キューに挿入するよう配置される、
請求項１−４いずれか１項に記載のデータ処理システム。
【請求項６】
前記タスクスケジューリングデバイスは、タスクを、前記タスクの少なくとも部分的に並列な実行のために前記複数の処理ユニットのうちの異なるものに割当てるよう配置される、
請求項１−５いずれか１項に記載のデータ処理システム。
【請求項７】
前記タスクスケジューリングデバイスは、複数のタスク出力キュー（３０、３２、３４）を備え、
前記複数のタスク出力キュー（３０、３２、３４）それぞれは、前記複数の処理ユニットのうちの対応する１つに接続可能であり、
前記タスクスケジューラ制御器ユニットは、前記複数のタスクのうちの１以上を、前記複数のタスクのうちの前記１以上を前記タスク出力キューのうちの１以上へ挿入することによって前記割当タスクを実行するよう構成される前記処理ユニットのうちの前記対応する１つに割当てるよう配置される、
請求項１−６いずれか１項に記載のデータ処理システム。
【請求項８】
前記タスクスケジューリングデバイスは、前記複数のタスク出力キューに接続される複数のキュー制御ユニット（３６、３８、４０）を備え、
前記複数のキュー制御ユニットそれぞれは、接続されるタスク出力キューからのタスクを、対応する処理ユニットに前記対応する処理ユニットの利用可能情報に応じて割当てるよう配置される、
請求項７に記載のデータ処理システム。
【請求項９】
前記複数のキュー制御ユニットのうちの少なくとも１つは、接続されるタスク出力キューからのタスクを対応する処理ユニットに前記タスクの優先度に応じて割当てるよう配置される、
請求項８に記載のデータ処理システム。
【請求項１０】
前記データ処理システムは、１以上の共用メモリバッファユニット（４２、４４、４６、４８）を備える、
請求項１−９いずれか１項に記載のデータ処理システム。
【請求項１１】
前記データ処理システムは、切り替えユニット（５０）を備え、
前記切り替えユニット（５０）は、前記複数の処理ユニットを前記１以上の共用メモリバッファユニットに接続するよう配置される、
請求項１０に記載のデータ処理システム。
【請求項１２】
前記タスクスケジューリングデバイスは、第２の制御器ユニット（１４２）を備え、
前記第２の制御器ユニット（１４２）は、前記１以上の処理フローを開始するよう配置される、
請求項１−１１いずれか１項に記載のデータ処理システム。
【請求項１３】
データ処理システムにおけるタスクスケジューリングの方法であって、
前記データ処理システムは、タスクスケジューラ制御器ユニットを有するタスクスケジューリングデバイスと；
少なくともその一部が複数のタスクのうちの１以上の割当タスクを実行するよう構成される複数の処理ユニットと
を備え、
前記方法は、
前記複数のタスクを前記タスクスケジューリングデバイスに提供すること（１６２）と；
前記複数のタスクのうちのタスクを前記複数の処理ユニットに割当てること（１６４）と；
割当タスクごとに、前記タスクスケジューリングデバイスに、前記割当タスクの実行が終了することを示す少なくともタスク状態イベントを提供すること（１６６）と；
前記タスクスケジューラ制御器ユニットによって、前記複数のタスクのうちの１以上を、前記割当タスクを実行するよう構成される前記処理ユニットのうちの対応する１つに、１以上の以前に割当てられたタスクに関連付けられる前記タスク状態イベントのうちの１以上を受信することに応じて、割当てること（１６８）と
を有する、方法。
【請求項１４】
プログラム可能装置上で実行するときに、請求項１３に記載の方法のステップを実行するコード部分を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム、データ処理システムにおけるタスクスケジューリングの方法、およびコンピュータプログラム製品に関する。
【背景技術】
【０００２】
最新データ処理アプリケーションを実行するデータ処理システムまたはデバイスは、複雑な処理アルゴリズムを使用して膨大な量のデータを処理する。例えば映像処理アプリケーションを実行する高度な映像処理システムまたはデバイスは、最高品質の映像体験を提供するために、映像符号化および復号化、動き補正フレームレート変換、立体映像処理など、例えば幅広い処理能力を提供してもよい。この点において、「データの処理」は、例えば圧縮された映像データストリームを映像フレームの非圧縮シーケンスに変換するなど、データを或る表現から異なる表現に変換することを備えてもよい。さらに、例えば、単にいくつか例を挙げると、音声情報をマルチメディアデータから抽出するか、または映像シーケンスにおいて対象を検出するなど、データに包含される情報の部分を抽出することを指してもよい。
【０００３】
データ処理システムは、必要な高性能処理能力を提供する１以上の処理デバイスを包含する。データ処理システムは、例えば、１以上の集積回路デバイスを包含する、例えば印刷回路基板（ＰＣＢ）に位置するシステムオンチップ（ＳｏＣ）または回路として提供されてもよい。例えば、ポータブルコンピュータ、スマートフォン、または同類のものなど、モバイルデバイスにおけるデータ処理システムは、または車両などの自力推進装置の部分であるデータ処理システムは、制限された処理能力を提供してもよく、効率的な使用が必要となる。
【０００４】
データ処理アプリケーションは、例えば映像またはマルチメディア伝送、インターネットトラフィック経路、またはプロトコル変換のアプリケーションなど、通信ネットワーク関連アプリケーションであってもよい。他のデータ処理アプリケーションは、例えば映像コンテンツを提供してもよく、または画像、映像、文字情報、音声、または立体動画グラフィックスなど、複数の媒体データを組み合わせるコンテンツを提供してもよい。これらのアプリケーションの実行のためのデータ処理システムは、例えば、単に一例を挙げると、圧縮データ形式で受信される映像シーケンスのエラーのない復号化および連続表示など、特定のアプリケーションと関連付けられる最小処理速度を超える処理速度で膨大な量のデータを処理するよう配置されてもよい。受信データは、連続した処理段階の所定のシーケンスにおいて処理されてもよい。
【０００５】
データ処理システムは、同一または異なるアプリケーションに属するデータを連続または同時に処理することが可能であってもよい。アプリケーションごとに、データはその特定のアプリケーションに適していると見なされるサービス品質（ＱｏＳ）で処理されてもよい。ＱｏＳパラメータは、例えば、単にいくつか挙げると、必要なビットレートまたは画像解像度、ジッター、遅延またはビットエラーレートであってもよい。
【０００６】
汎用プロセッサ上で専用データを処理する代わりに、特別なデータ処理システムを使用することができ、これは例えば、ハードウェア加速エンジン、すなわち専用タスクの加速実行に最適な処理デバイスを利用する。専用タスクを処理するために最適化された利用可能な処理デバイス上のデータセットの異なる処理段階を実行するために、複数段階の処理アルゴリズムおよび方法は複数のタスクに分割され、各タスクは全体のデータセットに必要な全体処理の一部分を提供する。タスクは、処理段階または処理段階の一部分と対応していてもよい。例えば、グラフィックス基板上に、またはＳｏＣとして実装される映像処理システムは、例えば、映像符号化および復号化、または動き補正フレームレート変換機能を実装するよう配置されるハードウェア加速エンジンを含んでもよく、削減されたハードウェアの複雑性および処理待ち時間を伴って高映像品質を達成するのに役立ってもよい。タスクを専用処理デバイスへ可能な限り効率的に割り振ることは、相互に依存するタスクの効率的なパイプライン処理を可能とするために、タスク間の依存性の全検索を行うことを一般的に包含する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２００９／０２８２４１３号明細書
【特許文献２】特開２０１０−０７９５０４号公報
【特許文献３】米国特許第５８９０１３４号明細書
【特許文献４】国際公開第２００７／１２６６５０号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ポータブルコンピュータ、スマートフォン、または同類のものなど、モバイルデバイスにおけるデータ処理システムは、または車両などの自力推進装置の部分であるデータ処理システムは、制限された処理能力を提供してもよく、効率的な使用が必要となる。
【課題を解決するための手段】
【０００９】
本発明は、付属の請求項に記載するようなデータ処理システム、データ処理システムにおけるタスクスケジューリングの方法、およびコンピュータプログラム製品を提供する。
【００１０】
本発明の具体的な実施形態は、従属請求項に記載されている。
【００１１】
本発明のこれらの態様および他の態様は、以下に記載される実施形態から明らかとなり、それらを参照することによって明瞭になろう。
【００１２】
本発明のさらなる詳細、態様、および実施形態を、例としてのみ、図面を参照して記載する。図面において、同様の参照符号は同様のまたは機能的に類似の要素を特定するために使用される。図面内の要素は簡潔かつ明瞭にするために示されており、必ずしも原寸に比例して描かれてはいない。
【図面の簡単な説明】
【００１３】
【図１】データ処理システムの第１実施形態の一例の図を概略的に示す。
【図２】第１のフローチェーンの一例の図を概略的に示す。
【図３】データ処理システムの第２実施形態の一例の図を概略的に示す。
【図４】データ処理システムの第３実施形態の一例の図を概略的に示す。
【図５】第２のフローチェーンの一例の図を概略的に示す。
【図６】映像データを処理するときの制御フロー階層を表す図を概略的に示す。
【図７】共用バッファの一例の図を概略的に示す。
【図８】第３のフローチェーンおよび関連バッファの一例の図を概略的に示す。
【図９】バッファ分類論理の一例の図を概略的に示す。
【図１０】タスクスケジューラ制御器ユニットの挙動の一例のフロー図を概略的に示す。
【図１１】タスクスケジューラ制御器ユニットのモジュールをチェックするための次のタスクの検索の一例の図を概略的に示す。
【図１２】データ処理システムにおけるタスクスケジューリングの方法の一実施形態の一例の図を概略的に示す。
【発明を実施するための形態】
【００１４】
本発明の例示されている実施形態は、大部分について、当業者に既知の電子コンポーネントおよび回路を使用して実装されてもよいため、本発明の基礎となる概念の理解および評価のために、ならびに本発明の教示を分かりにくくせず当該教示から注意を逸らさせないために、詳細は例示されているような必要と考えられる範囲を超えては説明されない。
【００１５】
図１を参照すると、データ処理システムの第１実施形態の一例の図が、概略的に示されている。データ処理システム１０は、複数のタスクをスケジュールするよう配置されるタスクスケジューリングデバイス１２と、複数の処理ユニット１６、１８、２０とを備え、少なくとも複数の処理ユニットの一部は、複数のタスクのうちの１以上の割当タスク（ａｓｓｉｇｎｅｄ  ｔａｓｋ）を実行し、かつ割当タスクごとに、タスクスケジューリングデバイス１２へ、割当タスクの実行が終了したことを表す少なくともタスク状態イベントを提供するよう構成される。タスクスケジューリングデバイス１２は、複数のタスクのうちの１以上を、それぞれ割当タスクを実行するよう構成される処理ユニット１６、１８、２０のうちの対応する１つへ、１以上の以前に割当てられたタスクと関連付けられるタスク状態イベントのうちの１以上を受信することに応じて割当てるよう配置されるタスクスケジューラ制御器ユニット２４を備える。
【００１６】
イベント駆動型タスクスケジューリング手法を使用するデータ処理システムは、高速で省資源のタスク検索および解除を提供してもよく、従来の全検索を回避してもよい。
【００１７】
示されるデータ処理システム１０のタスクスケジューリングデバイス１２は、タスクを処理ユニット１６、１８、２０に割当て、かつ処理ユニット１６、１８、２０間にタスク割当てを分散するよう配置されてもよい。タスクは、処理ユニットによってロードおよび実行され得る命令からなる処理アルゴリズムであってもよい。処理ユニット１６、１８、２０は、データ処理システム１０の処理デバイスであってもよい。処理ユニット１６、１８、２０は、例えばマイクロプロセッサ、マイクロ制御器ユニット（ＭＣＵ）、グラフィックス処理ユニット（ＧＰＵ）、または任意あるいは専用タスクのプログラム命令を実行するよう配置される任意の他の回路であってもよい。処理ユニットは、例えばハードウェア加速エンジンであってもよく、すなわち専用タスクの加速実行に最適化された処理デバイスであってもよい。タスクを処理ユニットに割当てることは、処理資源を、すなわち処理ユニットおよび入力および出力バッファを、割当タスクおよび処理されるデータに割り振ることを指してもよい。
【００１８】
スケジューリングは、タスクが利用可能な処理ユニットで起動するよう割当てされる方法を指してもよい。タスクスケジューリングデバイス１２は、タスクを受信し、処理ユニット１６、１８、２０の使用率を高め、データ処理システム１０の性能を向上させるために、どのタスクが、処理ユニット１６、１８、２０のうちのどのユニットへ、いつ割当てられるかを決定するよう配置されてもよい。データ処理システム１０の性能は、例えばタスク処理量を、すなわち単位時間に完了するタスクの数を増やすことによって、またはタスクごとの待ち時間および応答時間を削減することによって向上されてもよい。
【００１９】
タスクを受信することは、例えば特定のタスクのタスク記述子を受信することを指してもよい。タスク記述子は、例えばタスク識別子、タスクデータ、ならびに関連入力および出力バッファに対するアドレスまたはポインタを備える一連の情報であってもよい。タスクは、例えばタスクと関連付けられる処理ユニットの識別子番号、および次に処理されるデータを受信するための関連入力バッファまたは入力バッファリスト（ＩＢＬ）に対するポインタまたはアドレス、および処理データを受信するための関連出力バッファまたは出力バッファリスト（ＯＢＬ）に対するポインタまたはアドレスによって定義されてもよい。
【００２０】
さらに、タスクを受信することは、タスク識別子またはタスク記述子に対するポインタのみを受信することを指してもよく、または特定のタスクに関するすべてのデータを受信することを指してもよい。同様に、タスクを割当てることは、タスク識別子またはタスク記述子または選択される処理ユニットがタスクを実行または動作させることを可能とするための任意の他の情報を割当てることを指してもよい。複数のタスクを保存するよう配置されるタスクレジスタ１４は、例えばタスクデータ、タスク識別子、および／またはタスク記述子を保存するよう配置される、例えば任意のレジスタ、バッファ、または他のメモリデバイスであってもよい。新しいタスクは、タスクレジスタに動的に追加されてもよい。
【００２１】
示されるデータ処理システム１０は、複数のタスクうちの１以上の１以上の処理フロー、および１以上の関連フローチェーンを定義する１以上のタスクパラメータテーブルを保存するよう配置されるフローチェーンバッファユニット２２を備えてもよく、フローチェーンはそれぞれ複数の処理ユニットのうちの１以上を備えてもよい。タスクスケジューリングデバイス１２は、複数のタスクを保存するよう配置されるタスクレジスタ１４を備えてもよく、複数のタスクはそれぞれ１以上の処理フローと関連付けられる。タスクスケジューラ制御器ユニット２４は、１以上の処理フローのうちの対応する１つに応じて、複数のタスクのうちの１以上を割当てるよう配置されてもよい。
【００２２】
タスクパラメータテーブルに定義されるタスクの処理フローは、例えば一連のデータを処理するときのタスクの間の依存性および必要な連続性を定義する情報の連結リストまたは他のソースであってもよい。単に一例を挙げると、圧縮映像データは、最初に解凍されてもよく、その後、拡大（ｕｐｓｉｚｉｎｇ）、色空間変換、および表示強化（ｄｉｓｐｌａｙ  ｅｎｈａｎｃｅｍｅｎｔ）が、復号化された映像コンテンツを表示する前に映像データに適用されてもよい。タスクの処理フローは、１以上の関連フローチェーンと関連付けられるか、またはマップされてもよい。フローチェーンバッファユニット２２は、例えば連結リストを包含する共用メモリバッファであってもよい。タスクスケジューリングデバイスは、連結リストに応じて１つまたはいくつかの処理フローの実行を管理してもよい。フローチェーンは、複数の処理ユニット１６、１８、２０のうちの１以上を備えてもよく、すなわちフローチェーンは、データ処理システム１０の処理ユニットのうちの１以上を使用してタスクの処理フローを実行する方法の情報を備えてもよい。フローチェーンは、例えばフローチェーンが特定の処理ユニットのポインタまたは他の識別子を備えるとき、特定の処理ユニットを備えると見なされてもよい。これにより、処理フローのタスクは、タスク割当て時のタスクの間の依存性の全検索および任意の外部メモリに対する高いアクセスレートの必要なしに、割当タスクを実行するよう構成される処理ユニット１６、１８、２０とマップされることができ、データ処理システム１０の待ち時間が削減され、ＱｏＳが向上する。
【００２３】
処理ユニット１６、１８、２０は、タスクスケジューリングデバイス１２に接続されてもよく、処理するタスクを受信してタスクの実行が終了したことを示すタスク状態イベントを生成してもよい。タスク状態イベントは、タスクスケジューリングデバイス１２へ伝えられてもよく、タスクスケジューリングデバイス１２がさらなるタスクを特定の処理ユニットに割当て可能となってもよい。
【００２４】
タスクスケジューリングデバイス１２は、同じタスクの処理を繰り返すためのタスク状態条件を分析するよう配置されてもよく、例えば同じタスクを、同じまたは別の処理ユニット１６、１８、２０に割当ててもよい。追加的にまたは代替的に、タスクスケジューリングデバイス１２は、データバッファを終了タスクと共用するタスクを処理するためのタスク状態条件を分析するよう配置されてもよい。タスクスケジューリングデバイス１２は、別のタスクを同じ処理ユニットに割当てるよう配置されてもよい。
【００２５】
例えば、受信されたタスク状態イベントにより、タスクスケジューリングデバイス１２は、以前に終了したタスクによって処理されたデータのフロー処理を開始することが可能となってもよく、すなわち処理フローの後続のタスクを関連フローチェーンの適切な後続の処理ユニットに割当てることが可能となってもよく、これは複数の処理ユニット１６、１８、２０のうちの同じまたは異なる１つであってもよい。処理フローおよびフローチェーンは、イベント駆動型であってもよい。タスクスケジューリングデバイス１２は、あらかじめ定義された許可されたフローの間で選択する代わりに、完全なるモジュラーベースでタスクのフローを処理する処理ユニットフローチェーンを選択してもよい。
【００２６】
タスクスケジューリングは、例えば記載のデータ処理システム１０をホストしてもよいコンピュータの中央処理ユニットによる干渉なしに、タスクスケジューリングデバイス１２によって管理されてもよい。
【００２７】
タスクスケジューリングデバイス１２のタスクスケジューラ制御器ユニット２４は、例えばタスクを、処理フローに一致すること、および１つ以上の以前に割当てられたタスクと関連付けられるタスク状態イベントを受信することに応じて、割当タスクを実行するよう構成または設定される処理ユニット１６、１８、２０のうちの対応する１つに割当てるよう接続される処理デバイスまたは論理回路であってもよい。
【００２８】
図１に示されるデータ処理システム１０は、例えば映像処理システムであってもよい。それは、高度な映像処理システムまたはデバイスであってもよく、例えば幅広い処理能力およびハードウェア加速エンジンを、必要なタスクを実行する処理ユニット１６、１８、２０として提供してもよい。各タスクは、映像または画像フレームの一部分の処理専用であってもよい。示されるデータ処理システムは、タスクごとに最小の電力および複雑性および最大の処理量およびＱｏＳを生じる映像アプリケーションのタスク切り替えおよび多重送信の効率的な方法を提供してもよい。示されるシステム１０は、複数の映像アルゴリズムを処理することを可能にしてもよい。示されるシステムは非常に拡張性があると見なされてもよい一方で、さらなるハードウェア加速ユニットは、例えばより複雑な処理フローの実行を可能としてもよいが、同じタスクスケジューリングデバイス１２で管理されてもよいため、小領域のみ、例えばタスクスケジューリングデバイス１２の小さなダイ面積のみを必要としてもよい。
【００２９】
タスクスケジューリングデバイス１２は、データチャネルを介してタスクレジスタユニット２４に接続されてもよく、タスクを受信するよう配置されてもよい。タスクはオフラインタスクであってもよく、すなわち非リアルタイムタスクであってもよく、タスクスケジューリングデバイス１２のタスクスケジューラ制御器ユニット２４は、例えばタスクの処理量を最大化するか、またはタスク処理の待ち時間を最小化するよう配置されてもよく、または処理量と待ち時間との間の目指す妥協点に対してデータ処理システム１０のＱｏＳを最適化するよう構成されてもよい。データ処理システム１０はさらに、タスクデータを受信するよう接続可能な入力２６を備えてもよい。タスクデータはリアルタイムタスクデータを備えてもよく、タスクスケジューリングデバイス１２は１つ以上のリアルタイムタスクを受信およびスケジュールするよう配置されてもよい。例えば、映像処理システムは、通信ネットワークを通して映像ストリームを受信するか、またはライブ映像通信をサポートするよう配置されてもよい。他のリアルタイム環境は、例えばロボットにおける、例えば自動制御のモバイルデバイスであってもよい。リアルタイムタスクは、イベントからシステム応答までの運用期限によって特徴づけられてもよい。リアルタイムタスクは、データ処理ユニット１０の応答時間に対する厳しい制約（ｓｔｒｉｃｔ  ｃｏｎｓｔｒａｉｎｔｓ）内で実行されてもよい。タスクスケジューリングデバイス１２は、いくつかの処理ユニット１６、１８、２０を使用して、高出力データレートに適合するためにおよび高ＱｏＳを提供するために、最小のメモリ帯域、オーバーヘッド、および最大の効率で、効率的な方法において、入力データへの異なるオフラインおよびリアルタイムタスク動作を実行可能としてもよい。
【００３０】
タスクスケジューリングデバイス１２のタスクスケジューラ制御器ユニット２４は、入力キューを備えてもよく、タスクスケジューリングデバイス１２は、タスク状態イベントを受信し、タスク状態イベントを入力キューへ挿入するよう配置される調停ユニット２８を備えてもよい。調停ユニット２８または調停器は、例えば処理ユニット１６、１８、２０と調停ユニット２８との間の制御チャネルを介して、処理ユニット１６、１８、２０によって生成される少なくともタスク状態イベントを受信するよう接続されてもよい。調停ユニット２８または調停器はさらに、他のイベントを受信しても、またはしなくてもよい。調停ユニット２８は、タスクレジスタ１４からのタスク状態イベントまたは対応タスクまたは対応タスクを識別する他のデータを、タスクスケジューラ制御器ユニット２４の入力キューに挿入してもよい。調停ユニット２８はまた、タスクスケジューラ制御器ユニット２４の入力キューに挿入するためのリアルタイムタスクまたは他の新しいタスクを受信する入力２６に接続可能であってもよい。タスクスケジューラ制御器ユニット２４の入力キューにエントリを有する各タスクは優先識別子を割当てていてもよく、これは例えば、処理の優先度を反映する位置で入力キューにエントリを挿入する調停ユニット２８によって使用されてもよい。データ処理システム１０の別の実施形態において、優先度情報は、調停ユニット２８の代わりにタスクスケジューラ制御器ユニット２４によって評価されてもよい。入力キューは、タスクスケジューラ制御器ユニット２４に備えられてもよく、またはタスクスケジューラ制御器ユニット２４に接続される別個のユニットとして実装されてもよい。
【００３１】
タスクの処理デバイスへのパイプライン形式割当てにおいて、タスクスケジューリングデバイス１２は、タスクの少なくとも部分的に並列な実行のために複数の処理ユニット１６、１８、２０のうちの異なるものにタスクを割当てるように、配置されてもよい。タスクは、例えば１つ以上の処理フローに関連付けられてもよい。１以上の処理フローは、例えば同じ処理フローであってもよく、すなわち同じ処理フローを構成するタスクが利用可能な処理ユニット１６、１８、２０にわたって分散されてもよい。追加的にまたは代替的に、処理フローは、例えば異なる処理フローであってもよく、すなわち異なる処理フローと関連付けられるタスクは利用可能な処理ユニット１６、１８、２０に割当てられてもよい。換言すれば、異なる処理フローに属するタスクは、複数の処理ユニットで並列に実行されてもよい。
【００３２】
処理フローの一定のタスクの連続処理が必須ではない場合、同じ処理フローに属するタスクもまた、利用可能な処理ユニット１６、１８、２０で並列に実行されてもよい。処理ユニット１６、１８、２０のうちの１以上は、例えば時分割多重化モードにおいて単一および複数の処理フローのタスクを実行するように、配置されてもよい。処理ユニット１６、１８、２０は、同じ処理フローまたは異なる処理フローの異なるセグメント処理専用のタスクを並列または時分割多重化で動作してもよい。タスクの少なくとも部分的に並列な実行は、タスクの全体処理時間のうちの少なくとも一部で並列なタスクの実行であってもよい。一部の処理ユニット１６、１８、２０は、例えば同じ機能性を少なくとも部分的に提供してもよく、マルチスレッドサポートを提供するよう配置されてもよい。
【００３３】
タスクスケジューリングデバイス１２は、複数のタスク出力キュー３０、３２、３４を備えてもよく、それぞれが複数の処理ユニット１６、１８、２０のうちの対応する１つに接続可能である。タスクスケジューラ制御器ユニット２４は、タスク出力キュー３０、３２、３４のうちの１以上に複数のタスクのうちの１以上を挿入することによって割当タスクを実行するように配置される処理ユニット１６、１８、２０のうちの対応する１つに複数のタスクのうちの１以上を割当てるように、配置されてもよい。処理ユニット１６、１８、２０それぞれの専用タスク出力キューを提供することは、ボトルネックおよび性能劣化のヘッドオブラインブロッキングを回避するのに役立ってもよく、かつ高タスク処理量および応答時間を可能としてもよく、それによってＱｏＳが高まり、リアルタイムアプリケーションの適応性が向上する。処理ユニット１６、１８、２０それぞれのタスク出力キューを提供することは、タスクの並列なキュー化、処理ユニットのマルチスレッドおよび並列計算を可能としてもよい。
【００３４】
タスクスケジューリングデバイスは、複数のタスク出力キュー３０、３２、３４に接続される複数のキュー制御ユニット３６、３８、４０を備えてもよく、複数のキュー制御ユニットそれぞれは、接続されるタスク出力キュー３０、３２、３４からのタスクを対応する処理ユニット１６、１８、２０へ対応する処理ユニットの利用可能情報に応じて割当てるよう配置される。利用可能情報は、特定の処理ユニットによって伝えられるタスク状態イベントに備えられるか、またはタスク状態イベントから生じてもよく、または例えば、専用イベントに備えられてもよく、これは例えば、対応するキュー制御ユニットへ直接的に伝えられてもよい。新しいタスクは、例えば以前のタスクが終了した後に１つのクロックサイクルで割当てられてもよく、処理ユニットの完全利用が可能となる。
【００３５】
キュー制御ユニットまたはキュー投入機器（ＱＬＭ）は、例えば対応する接続タスク出力キューにおけるタスクを管理し、次の割当タスクを接続処理ユニットに割り振るよう配置されるキュー状態機器を実装する任意の論理回路または処理デバイスであってもよい。
【００３６】
データ処理システム１０の一実施形態において、複数のキュー制御ユニット３６、３８、４０のうちの少なくとも１つは、タスクの優先度に応じて対応する処理ユニット１６、１８、２０に接続されたタスク出力キュー３０、３２、３４からのタスクを割当てるよう配置されてもよく、すなわちタスクスケジューラ制御器ユニット２４および調停ユニット２８は、削減された複雑さを備えてもよく、例えば優先情報を使用してもよいタスクのタスク割り振りを管理するキュー制御ユニット３６、３８、４０のみが、優先情報を評価するために回路を備えてもよい。調停ユニット２８およびタスクスケジューリング制御器２４の削減された複雑さにより、非常に速い調停およびタスクスケジューリングがそれぞれ可能となってもよい。各タスク出力キュー３０、３２、３４内で、キュー制御ユニット３６、３８、４０は、接続された処理ユニット１６、１８、２０においてタスク優先度に対して起動される次のタスクを選択してもよい。タスクと関連付けられる優先度は、例えば共用メモリバッファの利用可能性、タスク出力キューにおける待ち時間、またはタスクが属する処理フローの静的優先度に応じて、動的に適応されてもよい。
【００３７】
データ処理システム１０は、１以上のメモリバッファユニットを備えてもよい。１以上のメモリバッファユニットは、例えば処理ユニット１６、１８、２０に割当てられるタスクごとに入力バッファおよび出力バッファを備えるよう設定可能であってもよい。１以上のメモリバッファユニットは、例えば共用メモリバッファユニットであってもよく、すなわちデータ処理システム１０は１以上の共用メモリバッファユニット４２、４４、４６、４８を備えてもよい。
【００３８】
共用メモリは、例えばそれらの間の通信を提供するか、または冗長コピーを回避するために、複数のタスクを実行する複数の処理ユニット１６、１８、２０によってアクセスされてもよいメモリであってもよい。例えば、第１の処理ユニット１６によって実行される第１のタスクの出力バッファは、データをコピーまたは移動することなく、第２の処理ユニット１８によって実行される第２のタスクの入力バッファに変更されてもよい。第２の処理ユニット１８は、第１の処理ユニット１６の処理結果をさらなる処理の入力として受信してもよい。異なるタスクの間の内部メモリ共用バッファは、メモリ負荷と、中間結果（ｉｎｔｅｒｍｅｄｉａｔｅ  ｒｅｓｕｌｔｓ）のために外部メモリデバイスにアクセスする必要性とを削減してもよい。示されるデータ処理システム１０は、メモリ負荷および電力消費を削減してもよく、一方で追加画像または映像処理加速器または他の処理ユニットを追加する拡張可能アーキテクチャを提供してもよい。
【００３９】
データ処理システム１０は、複数の処理ユニット１６、１８、２０を１以上の共用メモリバッファユニット４２、４４、４６、４８に接続するよう配置される切り替えユニット５０を備えてもよい。切り替えユニット５０は、例えば処理ユニット１６、１８、２０を共用メモリバッファユニット４２、４４、４６、４８のうちの１以上に接続するよう配置されるクロスバースイッチまたは任意の他の切り替えデバイス、または多重化装置であってもよい。
【００４０】
図２を参照すると、フローチェーンの第１の例の図が概略的に示されている。示されるフローチェーンは、例えば映像処理システムの処理ユニットを備えてもよい。フローチェーンは、例えば、映像直接メモリアクセスユニット５２（ＶＤＭＡ）、サイズ変更および強化フィルタユニット５４（ＲＥＦ）、ウェーブレット符号化／復号化ユニット（ＷＣＤ）、および圧縮データ直接メモリアクセスユニット５６（ＣＤＭＡ）を備えてもよい。例えば他の画像または映像符号化および復号化、動き補正フレームレート変換または立体映像処理など、他のタスクを実行する他の処理ユニットは、例えば画像直接メモリアクセスユニット（ＩＤＭＡＣ）またはリアルタイム直接メモリアクセスユニット（ＲＤＭＡ）などの映像処理システムのフローチェーンにおいて使用されてもよい。
【００４１】
図３を参照すると、データ処理システムの第２実施形態の一例の図が概略的に示されている。図１に示されるデータ処理システムと異なるブロックのみが、詳細に記載される。示されるデータ処理システム６０は、例えば図２に示されるフローチェーンを使用してタスクの処理フローを実行するよう配置されてもよい。タスクスケジューリングは、制御器ユニットによって、例えば縮小命令セット制御器ユニット（図示せず）によってイネーブルにされてもよい。タスク反復は、入力キュー６２を有するタスクスケジューラ制御器ユニットによってイネーブルにてもよい。
【００４２】
処理フローを実行するとき、図２に示されるフローチェーンを使用して、第１のタスクは、ＶＤＭＡ処理ユニット５２による実行のためタスク出力キュー６４に加えられてもよい。処理ユニット５２、５４、５６、５８、６１は、読み込みおよび書き込みアクセスのために切り替えユニット８０を介して、共用メモリバッファ７４、７６、８０に接続されてもよい。関連処理フローの第１のタスクが完了すると、タスク状態イベントは、調停ユニット６６へ送られてもよく、調停ユニット６６は、処理フローの次のタスクをタスクスケジューラ制御器入力キュー６２へ追加してもよい。タスクスケジューラ制御器ユニットは、処理ユニット５４によって処理するためにタスク出力キュー６８に次のタスクを割当ててもよい。タスクの完了および対応するタスク状態イベントの生成後、調停ユニット６６は、処理フローの次のタスクをタスクスケジューラ制御器入力キュー６２に反復して追加してもよく、その後、タスクスケジューラ制御器入力キュー６２は、タスク出力キュー７０に追加されてもよい。その後、タスクは、タスク出力キュー７０に接続される２つの処理ユニット５８、６１のうちの処理ユニット５８に割り振られてもよい。別のタスクの反復が、タスク出力キュー７２および処理ユニット５６を使用して、続いてもよい。他の処理フローに属する他のタスクは、記載されるタスクのスケジューリング後または合間の任意の時間にスケジュールされてもよい。
【００４３】
図４を参照すると、データ処理システムの第３実施形態の一例の図が概略的に示されている。図１に示されるデータ処理システムと異なるブロックのみが、詳細に記載される。図示されるデータ処理システム９０は、タスクスケジューリングデバイス９２と、共用メモリバッファユニットであってもよい複数の内部メモリバッファユニット９４、９６、９８、１００、１０２、１０４と、受信された入力映像データを符号化または復号化するか、または映像符号化アルゴリズムをタスクスケジューリングデバイス９２の処理ユニットに提供するよう配置されてもよい映像符号化ユニット１０６と、例えば映像フレームのグラフィックスオーバーレイを作成する専用グラフィックス処理を提供するよう配置されるグラフィックス処理ユニット１０８（ＧＰＵ）と、を備える映像処理システムであってもよい。タスクスケジューリングデバイス９２は、例えばタスクを複数の処理ユニット１１２、１１４、１１６、１１８、１２０、１２２、１２４に割当てるよう配置されるタスクスケジューラ制御器ユニット１１０または第１の制御器ユニットを備えてもよい。処理ユニットは、例えばＶＤＭＡユニット１１２、ＣＤＭＡユニット１２０、ＩＤＭＡＣユニット１２２およびＲＤＭＡユニット１２４を備えてもよい。入力映像データを受信するために、データ処理デバイス９０は、例えばカメラセンサに接続可能なカメラセンサインタフェースなどの入力データインタフェース１２６を備えてもよい。データ処理デバイス９０は、モニタまたは他の表示スクリーンなどの表示ユニットに接続可能な、表示制御器およびインタフェースなどのデータ出力制御器およびインタフェース１２８を備えてもよい。処理ユニット１１２、１１４、１１６、１１８、１２０、１２２、１２４は、データ処理システム９０の内部メモリバッファユニット９４、９６、９８、１００、１０２、１０４と切り替えユニット１３０を介して接続可能であってもよく、切り替えユニットは、例えばクロスバースイッチ（ＣＢＳ）であってもよい。データ処理システム９０は、外部メモリインタフェース１３４（ＥＭＩ）を介して外部メモリデバイス１３２に接続可能であってもよい。共用メモリユニットは、外部メモリデバイス１３２に、例えば処理ユニットのうちの１以上を介して接続されてもよい。
【００４４】
データ処理システム９０は、データ入力インタフェース１２６を介して受信される入力データにタスクの処理フローを適用するように、配置されてもよい。例えば、受信した入力映像データは、必要ならば小型化されてもよく、圧縮されてもよい。圧縮された映像フレームは、例えば外部メモリデバイス１３２に位置する圧縮映像フレームバッファ１３６に保存されてもよい。圧縮および解凍のために、映像コーデック１０６は外部メモリ１３２に位置する参照バッファ１３８を使用してもよい。ＧＰＵは、例えば映像コンテンツをオーバーレイされてもよいグラフィックスを提供するために共用メモリバッファ１０４を使用するように、接続されてもよい。外部メモリ１３２に位置するグラフィックスフレームバッファ１４０は、グラフィックスコンテンツを受信するよう接続されてもよい。圧縮された映像データは、時間的補間が課されてもよい。映像コンテンツの表示専用の処理フローは、ＣＤＭＡ処理ユニット１０２を使用し、かつ復号化および拡大化を適用して、メモリから圧縮された映像データにアクセスすることを備えてもよい。その後、表示する映像は、例えば色空間変換（ＣＳＣ）の影響を受けてもよく、例えばＧＰＵ１０８によって提供されてグラフィックスフレームバッファ１３６に保持されるグラフィックスオーバーレイと組み合わされてもよい。さらなる表示強化（ｄｉｓｐｌａｙ  ｅｎｈａｎｃｅｍｅｎｔ）を適用した後、コンテンツは、すなわち復号化された映像および組み合わされたグラフィックスは、表示制御器およびインタフェース１２８に配信されてもよい。
【００４５】
タスクスケジューリングは、例えばタスクスケジューラ制御器ユニット１１０または外部処理ユニットによって開始されてもよく、またはタスクスケジューリングデバイス９２は１以上の処理フローを開始するよう配置される第２の制御器ユニット１４２を備えてもよい。さらに、第２の制御器ユニットは、処理フローを終了するよう配置されてもよい。第２の制御器ユニット１４２は、例えば高性能および高速動作を提供する縮小命令セットコンピューティング（ＲＩＳＣ）デバイスであってもよく、または別の処理デバイスまたはマイクロ制御器デバイスであってもよい。
【００４６】
図５を参照すると、第２のフローチェーンの一例の図が概略的に示されている。フローチェーンは、例えば図４に示されるデータ処理システム９０によって実装されてもよい。太い矢印は、映像データなどの処理されるコンテンツデータを指してもよく、一方で細い矢印は、タスクスケジューラ制御器ユニット１１０によって受信および提供される信号およびイベントを指してもよい。例えばＲＩＳＣデバイスであってもよい第２の制御器ユニット１４２は、一定のタスク（ｃｅｒｔａｉｎ  ｔａｓｋ）のタスクパラメータを設定し、調停ユニット（図示せず）にタスクを解放するよう配置されてもよい。調停ユニットは、主要タスクと見なされてもよいタスクを、タスクスケジューラ制御器ユニット１１０（ＴＳＣ）に解放してもよい。タスクスケジューラ制御器ユニット１１０は、現在の主要タスクの入力および出力バッファ利用可能性をチェックするよう配置されてもよく、共通バッファを介して関連付けられる関連タスクを二次タスクとしてマーク付けしてもよい。バッファが利用可能な場合、タスクスケジューラ制御器ユニット１１０は、タスクを処理することが可能な処理ユニットと関連付けられるタスク出力キューに主要タスクを解放するよう配置されてもよい。タスクが既にキューにある場合、タスクは、その後の分類のためにｉｎ−ｑｕｅｕｅとしてマーク付けされてもよい。調停ユニットは、ネストタスクをタスクスケジューラ制御器ユニット１１０に解放してもよい。
【００４７】
示されるフローチェーンは、イベント駆動型（ｅｖｅｎｔ−ｄｒｉｖｅｎ）であってもよい。第２の制御器ユニット１４２による初期コマンドの受信後、ＴＳＣ１１０は、処理されるデータが外部メモリ１３２において利用可能である情報、および内部メモリバッファ９４からのバッファ利用可能情報を受信してもよい。データおよび処理ユニットが利用可能である場合、ＴＳＣ１１０は、タスクを処理ユニットに、例えばＶＤＭＡ１１２などの直接メモリアクセスユニットに、実行のために割当ててもよい。ＶＤＭＡ１１２は、タスクが終了した後、タスク状態イベントをＴＳＣ１１０に伝えるよう配置されてもよい。ＶＤＭＡタスク状態イベントの受信において、ＴＳＣ１１０は、入力および出力バッファの利用可能性をチェックするよう配置されてもよく、ＶＤＭＡ１１２の出力バッファとして機能するバッファ９４は、ここでフローチェーンにおいて次の処理ユニット１１４によって処理されるデータを保持する入力バッファであってもよい。処理ユニット１１４の出力バッファは、例えばバッファユニット９６であってもよい。入力および出力バッファ９４、９６が利用可能である場合、ＴＳＣ１１０は処理される処理フローにおける次の処理を処理ユニット１１４に割当ててもよい。処理ユニット１１４からタスク処理の完了を伝えるタスク状態イベントを受信した後、ＴＳＣ１１０は、ここでは処理デバイス１１６の入力バッファとして機能してもよいバッファ９６、およびバッファ９８のバッファ利用可能性を再びチェックしてもよく、その後、処理フローの次のタスクを処理ユニット１１６に割当てるよう配置されてもよい。割当タスクが順調に完了したことを伝える処理ユニットからのタスク状態イベントの受信において、ＴＳＣ１１０は、バッファ９８の利用可能性を再びチェックしてもよく、処理フローの次のタスクをフローチェーンにおける次の処理ユニット１２０に割当ててもよい。示される例において、処理ユニット１２０は、処理された出力データを外部メモリ１３２に提供するよう配置される直接メモリアクセスユニットであってもよい。処理フローの最後のタスクの順調な完了を示すタスク状態イベントの受信において、ＴＳＣ１１０は、指示（ｉｎｄｉｃａｔｉｏｎ）を第２の制御器ユニット１４２に提供してもよく、これは例えば、処理フローを終了するよう配置されてもよい。
【００４８】
記述される手法により、次のタスクを選択する手順に起因する処理オーバーヘッドは、低下されてもよい。バッファ間の処理データをコピーすることは、共用メモリバッファを使用することによって削減または回避されてもよい。外部メモリコピーは、フローチェーンの最初に処理されるデータをロードすること、およびフローチェーンの最後に処理結果を外部メモリ１３２へ出力することを除いて、フローチェーンを処理するときに必要ではなくてもよい。データ処理システムのタスク処理量は、増加されてもよい。示されるフローチェーンによって実行される処理フローは、多くのうちの１つであってもよく、少なくとも部分的に並列に実行されてもよい。処理フローはパイプライン化されてもよい。ＴＳＣ１１０は、異なるフローチェーンの処理ユニットからタスク状態イベントを受信してもよい。割当てる次のタスクの検索は、イベントに関連するタスクのみがチェックされてもよいため、ほんのわずかなオーバーヘッドのみで可能であってもよい。
【００４９】
データ処理システムの応答時間は、例えば高速のタスク調停およびマルチスレッドアーキテクチャに起因して、速くてもよい。これは、処理ボトルネックの削減、待ち時間の削減、およびヘッドオブラインブロッキングの回避に役立ってもよい。
【００５０】
図６を参照すると、映像データを処理するときの制御フロー階層を示す図が概略的に示されている。単に一例を挙げると、映像シーケンスの画像フレーム１４４の群が、示されている。フレームのスケジューリングは、すなわち次にデータ処理システムのタスクスケジューリングデバイスに割当てるフレームを決定することは、マイクロ制御器またはＲＩＳＣプロセッサなどの第２の制御器ユニットによって行われてもよい。フローパラメータは、フレーム間ベースで調整されてもよい。例えば、フレームの群または写真の群は、例えばＭＰＥＧ−１、ＭＰＥＧ−２、またはＭＰＥＧ−４などのＭＰＥＧ（移動写真専門家グループ）標準に応じた符号化または復号化を使用するとき、連続して符号化および復号化されなくてもよく、第２の制御器ユニットは、タスク処理デバイスへ送るために次のフレームを選択するよう配置されてもよい。
【００５１】
タスクスケジューリングデバイスによって行われるイントラフレームレベルスケジューリングは、例えば単一の映像または画像フレーム１４６に適用されてもよく、さらなる処理のブロックまたはページに分割されてもよい。ページは、１つのタスク実行によって処理される映像フレームの一部であってもよい。
【００５２】
イントラページレベルスケジューリングおよび処理は、フレームのページ１４８に適用されてもよく、データ処理システムの専用加速エンジンまたは他の処理ユニットによって行われてもよい。
【００５３】
図７を参照すると、共用バッファユニットの一例の図が概略的に示されている。フローチェーンにおいて、データは、共用バッファを介してフローチェーンの処理ユニットによって実行されるタスク間を通過してもよい。共用バッファユニットは、例えば第１の処理ユニットで実行されるタスクによってセットされる書き込みポインタＷＰと、例えばフローチェーンにおいて第１の処理ユニットに続く第２の処理ユニットによってセットされる読み込みポインタＲＰとを備える、例えばバレルシフタＢＳであってもよい。バッファアーキテクチャは、例えば単入力単出力（ＳＩＳＯ）バッファアーキテクチャであってもよい。読み込み閾値Ｒ＿ＴＨＲは、単一読み込みアクセス内で読み込まれるデータの量に依存してもよい。書き込み閾値Ｗ＿ＴＨＲは、単一書き込みアクセス内でバッファへ書き込まれるデータの量に依存してもよい。ＷＰ−ＲＰ＞Ｒ＿ＴＨＲが真である場合、バッファＢＳは自由に読み込み可能であると見なされてもよい。ＢＳ−（ＷＰ−ＲＰ）＞Ｗ＿ＴＨＲが真である場合、バッファＢＳは自由に書き込み可能であると見なされてもよい。他の可能なバッファアーキテクチャは、単入力多出力（ＳＩＭＯ）バッファアーキテクチャを備えてもよく、１つの書き込みポインタおよび複数の読み込みポインタが使用されてもよく、かつ異なるタスクが読み込みポインタをセット可能であってもよい。
【００５４】
図８を参照すると、第３のフローチェーン１５０および関連バッファの一例の図が概略的に示されている。示される例において、フローチェーンは、因果関係チェーンにおいて接続される処理ユニットＲＥＦ、ＷＣＤ、ＣＤＭＡ、およびＩＤＭＡＣによって構成されてもよく、フローは、第１の処理ユニットがＲＥＦであることと、後にＣＤＭＡおよびＩＤＭＡＣを供給するＷＣＤが続くことでフローチェーンを終結させることとを示してもよい。フローチェーンにおいて加速器番号ＡＮによって識別される各処理ユニットまたは加速器ユニットは、タスク番号ＴＮによって識別されるタスクを割当てていてもよく、各タスクは、入力バッファＩＢおよび出力バッファＯＢを互いに関連付けていてもよく、それぞれは、バッファ番号ＢＮ、関連読み込みポインタＲ＿Ｐ、書き込みポインタＷ＿Ｐ、読み込み閾値ＴＨＲ＿Ｒ、書き込み閾値ＴＨＲ＿Ｗ、およびバッファへの入力タスクＩＴおよびバッファへの出力タスクＯＴ識別子を有する。示される矢印は、示されるタスク記述子１５２のうちいずれが特定の処理ユニットによって実行されるタスクに対応してもよいことを示してもよく、バッファ記述子１５４のうちいずれが関連タスク記述子の入力および出力バッファを識別してもよいことを示してもよい。
【００５５】
図９を参照すると、バッファ分類論理の一例の図が概略的に示されている。バッファ分類論理は、タスクスケジューリングデバイスのキュー制御ユニットまたはタスクスケジューラ制御器ユニットの一部であってもよく、バッファ利用可能情報を提供するよう配置されてもよい。バッファが現時点で自由に読み込み可能であり、タスク入力バッファであってもよいか否かの情報、または自由に書き込み可能であり、タスク出力バッファとして機能してもよいか否かの情報をバッファ分類論理は提供してもよく、情報は、１つの読み込みポインタＲ＿Ｐを備えるＳＩＳＯまたは３つの読み込みポインタＲ＿Ｐを備えるＳＩＭＯのいずれかである、バッファ使用の種類に依存してもよい。示されるバッファ分類論理は、第１の出力バッファ１５６、第２の出力バッファ１５８、および第３の出力バッファ１６０の分類回路を備えてもよく、各分類回路は、対応する読み込みポインタＲ＿Ｐ、書き込みポインタＷ＿Ｐ、読み込み閾値ＴＨＲ＿Ｒ、書き込み閾値ＴＨＲ＿Ｗ、および全体バッファサイズＢＵＦＦ＿ＳＩＺＥ入力パラメータを受信してもよく、対応する読込可能バッファ（ｂｕｆｆｅｒ＿ｆｒｅｅ＿ｔｏ＿ｒｅａｄ）および書込可能バッファ（ｂｕｆｆｅｒ＿ｆｒｅｅ＿ｔｏ＿ｗｒｉｔｅ）情報を提供してもよい。
【００５６】
図１０を参照すると、タスクスケジューラ制御器ユニット（ＴＳＣ）の挙動の一例のフロー図が概略的に示されており、ＣＴは、ＴＳＣによって現時点でスケジュールされる現タスクであってもよく、ＥＯＦ（ファイルの終わり）は、処理フローの最後のタスクを指してもよく、ＴＰＢＮは、タスクパラメータバッファ番号を指してもよく、ＦＬＷ＿ＮＵＭは、フロー番号を指してもよく、ＤＢは、タスクパラメータのデータベースを指してもよく、ＢＤは、バッファ記述子を指してもよい。ＴＳＣは、チェックされる任意の主要または二次タスクがあるときに、すなわちスケジュールされるタスクがＯＮ＿ＣＨＥＣＫ状態にあるときに、起動されてもよい。この場合、ＴＳＣは、タスクで何を行うかをまだ決定していない。ＴＳＣは、ＴＳＣ入力キューが空であり、かつタスクがチェックされないとき、ＩＤＬＥ状態であってもよい。タスクがキューにあるとき、現タスクと関連付けられるバッファが利用可能であるか、タスクはチェックされてもよい。利用可能である場合、タスクは、それぞれのタスクの状態をＩＮ＿ＱＵＥＵＥとしてマーク付けすることによって、タスク出力キューに追加されてもよい。バッファ準備チェックの後、ＴＳＣは、共通バッファを共用する現タスクに関連付けられる他のタスクを更新してもよい。その後、ＴＳＣは、停止モードのタスクがあるか否かチェックするよう配置されてもよい。停止モード（Ｈａｌｔ  ｍｏｄｅ）は、内部処理の理由に起因して、タスク実行が処理ユニットによって一時停止されていることを意味する。タスクが停止モードであるとき、そのポインタの読み込み動作は、ＴＳＣによって実行され、対応する処理ユニットまたは加速器に更新される。そうでない場合、ＴＳＣはＩＤＬＥモードへ切り替えてもよい。
【００５７】
図１１を参照すると、タスクスケジューラ制御器ユニットのチェックする次のタスクの検索モジュールの一例が概略的に示されている。示されるモジュールは、例えば図１０の部分として示される「チェックする次のタスクを検索」ブロックと対応していてもよい。示されるＴＳＣのモジュールは、現時点の実行においてチェックされるタスクを選択する選択論理の例示的な実装を提供してもよい。対数検索が行われてもよい。ＢＳは、バレルシフタバッファメモリを指してもよく、ＲＴ＿ｔａｓｋは、各タスクと関連付けられるビットを指してもよく、タスクがリアルタイムタスクか否かを示す。リアルタイムタスクがＯＮ＿ＣＨＥＣＫモードで存在するとき、ＴＳＣは、最大ＱｏＳを提供してもよい。タスクがリアルタイムタスクである場合、他のタスクがスケジューリングサービスを受信する前に、最初に使用されてもよい。
【００５８】
図１２を参照すると、データ処理システムにおけるタスクスケジューリングの方法の一実施形態の一例の図が概略的に示されている。図１２に示される方法は、記載されるデータ処理システムの利点および特徴を、データ処理システムにおけるタスクスケジューリングの方法の部分として実装することを可能にする。本方法は、タスクスケジューリング制御器ユニットを有するタスクスケジューリングデバイス、および複数の処理ユニットを備えるデータ処理システムにおけるタスクスケジューリングの方法であり、複数の処理ユニットは、少なくともその一部が、複数のタスクのうちの１以上の割当タスクを実行するよう構成される。本方法は、複数のタスクをタスクスケジューリングデバイスに提供すること１６２と；複数のタスクのうちのタスクを複数の処理ユニットに割当てること１６４と；割当タスクごとに、タスクスケジューリングデバイスに割当タスクの実行が終了したことを示す少なくともタスク状態イベントを提供すること１６６と；タスクスケジューラ制御器ユニットによって、複数のタスクのうちの１以上を、割当タスクを実行するよう構成される処理ユニットのうちの対応する１つに、１以上の以前に割当てられたタスクに関連付けられるタスク状態イベントのうちの１以上を受信することに応じて割当てること１６８とを備える。
【００５９】
本方法は、フローチェーンバッファユニットにおいて、１以上の処理フローおよび１以上の関連フローチェーンを定義する１以上のタスクパラメータテーブルを保存することを備えてもよく、フローチェーンそれぞれは、複数の処理ユニットのうちの１以上を備える。本方法はさらに、タスクレジスタにおいて、複数のタスクを保存することを備えてもよく、複数のタスクそれぞれは、複数のタスクのうちの１以上の処理フローの１以上と関連付けられる。
【００６０】
プログラム可能装置（ｐｒｏｇｒａｍｍａｂｌｅ  ａｐｐａｒａｔｕｓ）は、示される方法のステップを少なくとも部分的に実行するために提供されてもよい。コンピュータプログラム製品は、プログラム可能装置上で実行されるときに上記に記載した方法のステップを実行するためのコード部分（ｃｏｄｅ  ｐｏｒｔｉｏｎｓ）を備えてもよい。
【００６１】
本発明は、少なくとも、コンピュータシステムのようなプログラム可能装置上で実行されるときに本発明による方法のステップを実行するか、または、プログラム可能装置が本発明によるデバイスもしくはシステムの機能を実行することを可能にするためのコード部分を含む、コンピュータシステムで作動させるためのコンピュータプログラムにおいて実装されてもよい。
【００６２】
コンピュータプログラムは、特定のアプリケーションプログラムおよび／またはオペレーティングシステムのような、命令のリストである。コンピュータプログラムは例えば、サブルーチン、関数、プロシージャ、オブジェクトメソッド、オブジェクトインプリメンテーション、実行可能アプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ／動的ロードライブラリ、および／または、コンピュータシステム上での実行のために設計される他の一連の命令のうちの１以上を含んでもよい。
【００６３】
コンピュータプログラムは、コンピュータ可読記憶媒体上に内部的に記憶されるか、またはコンピュータ可読伝送媒体を介してコンピュータシステムに送信されることができる。コンピュータプログラムのすべてまたはいくつかは、情報処理システムに永続的に、取り外し可能に、または遠隔的に結合される一過性または持続性コンピュータ可読媒体上で提供されることができる。コンピュータ可読媒体は例えば、限定されることなく、任意の数の、いくつか例を挙げると、ディスクおよびテープ記憶媒体を含む磁気記憶媒体、コンパクトディスク媒体（例えば、ＣＤＲＯＭ、ＣＤＲなど）およびデジタルビデオディスク記憶媒体を含む光記憶媒体、ＦＬＡＳＨメモリ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、ＲＯＭのような半導体ベースのメモリユニットを含む不揮発性メモリ記憶媒体、強磁性デジタルメモリ、ＭＲＡＭ、レジスタ、バッファまたはキャッシュ、メインメモリ、ＲＡＭなどを含む揮発性記憶媒体、ならびにコンピュータネットワーク、ポイントツーポイント遠隔通信機器、および搬送波伝送媒体を含むデータ伝送媒体を含んでもよい。
【００６４】
コンピュータプロセスは通常、実行している（作動している）プログラムまたはプログラムの一部、現在のプログラム値および状態情報、ならびにプロセスの実行を管理するためにオペレーティングシステムによって使用されるリソースを含む。オペレーティングシステム（ＯＳ）は、コンピュータのリソースの共有を管理するとともにプログラマにこれらのリソースにアクセスするために使用されるインタフェースを提供するソフトウェアである。オペレーティングシステムは、システムデータおよびユーザ入力を処理して、タスクおよび内部システムリソースをシステムのユーザおよびプログラムに対するサービスとして割り振りおよび管理することによって応答する。
【００６５】
コンピュータシステムは例えば、少なくとも１つの処理装置、関連付けられるメモリ、および多数の入出力（Ｉ／Ｏ）デバイスを含んでもよい。コンピュータプログラムを実行するとき、コンピュータシステムは、コンピュータプログラムに従って情報を処理して、結果としての出力情報をＩ／Ｏデバイスを介して生成する。
【００６６】
上記の明細書において、本発明が本発明の実施形態の具体例を参照して説明された。しかしながら、添付の特許請求の範囲に記載されている本発明のより広い趣旨および範囲から逸脱することなく、そこにさまざまな修正および変更を行うことができることは明らかであろう。
【００６７】
本明細書において説明されているような接続は、例えば介在するデバイスを介してそれぞれのノード、ユニットまたデバイスから、またはそれらへと信号を転送するのに適切な任意のタイプの接続であってもよい。従って、別途暗示または提示されていない限り、接続は例えば直接接続であってもよいし、間接接続であってもよい。接続は、単一の接続（ｓｉｎｇｌｅ  ｃｏｎｎｅｃｔｉｏｎ）、複数の接続（ａ  ｐｌｕｒａｌｉｔｙ  ｏｆ  ｃｏｎｎｅｃｔｉｏｎｓ）、一方向性接続（ｕｎｉｄｉｒｅｃｔｉｏｎａｌ  ｃｏｎｎｅｃｔｉｏｎｓ）、または双方向性接続（ｂｉｄｉｒｅｃｔｉｏｎａｌ  ｃｏｎｎｅｃｔｉｏｎｓ）であることに関連して例示または記載されてもよい。しかしながら、実施形態が異なれば、接続の実施態様は変化してもよい。例えば、双方向性接続ではなく別個の一方向性接続が使用されてもよく、その逆であってもよい。さらに、複数の接続が、連続してまたは時分割多重方式で複数の信号を伝送する単一の接続に置換されてもよい。同様に、複数の信号を搬送する単一の接続（ｓｉｎｇｌｅ  ｃｏｎｎｅｃｔｉｏｎｓ）は、これらの信号のサブセットを搬送するさまざまな異なる接続に分離されてもよい。それゆえ、信号の伝送には多くの選択肢が存在する。
【００６８】
本明細書において記載されている各信号は、正または負の論理として設計されてもよい。負論理信号の場合、信号は、論理的真状態が論理レベル０に対応するアクティブ・ローである。正論理信号の場合、信号は、論理的真状態が論理レベル１に対応するアクティブ・ハイである。本明細書に記載される信号はいずれも負または正論理信号のいずれかとして設計されることができることに留意されたい。それゆえ、代替の実施形態では、正論理信号として記載される信号は、負論理信号として実装されてもよく、負論理信号として記載される信号は、正論理信号として実装されてもよい。
【００６９】
論理ブロック間の境界が例示にすぎないこと、および、代替的な実施形態は、論理ブロックもしくは回路要素を融合し、またはさまざまな論理ブロックもしくは回路要素に対する代替的な機能の分解を課してもよいことを、当業者は認識しよう。従って、本明細書において描写したアーキテクチャは例示にすぎないこと、および、事実、同じ機能を達成する多くの他のアーキテクチャを実装することができることは理解されたい。例えば、タスクスケジューラ制御器ユニット２４、調停ユニット２８、およびタスク出力キュー制御器ユニット３６、３８、４０は、異なる回路またはデバイスとして提供されてもよく、単一デバイスにおいて統合されてもよい。または、フローチェーンバッファモジュール２２は、タスクスケジューリングデバイス１２に接続されるか、または統合されて提供されてもよい。
【００７０】
同じ機能を達成するための構成要素の任意の構成は、所望の機能が達成されるように効果的に「関連付けられる」。従って、本明細書における、特定の機能を達成するために結合される任意の２つの構成要素は互いに「関連付けられる」とみなすことができ、それによって、アーキテクチャまたは中間の構成要素にかかわりなく、所望の機能が達成される。同様に、そのように関連付けられる任意の２つの構成要素も、所望の機能を達成するために互いに「動作可能に接続されている」または「動作可能に結合されている」とみなすことができる。
【００７１】
さらに、上述の動作間の境界は例示にすぎないことを当業者は認識しよう。複数の動作を単一の動作に組み合わせ、単一の動作を追加の動作に分散させ、複数の動作を少なくとも部分的に時間的に重ね合わせて実行してもよい。その上、代替的な実施形態は、特定の動作の複数のインスタンスを含んでもよく、動作の順序は、さまざまな他の実施形態においては変更されてもよい。
【００７２】
さらに例として、１つの実施形態では、例示される実施例は、単一の集積回路上または同じデバイス内に位置する回路として実装されてもよい。例えば、データ処理システム１０は、単一の集積回路におけるシステムオンチップとして提供されてもよい。代替的には、実施例は、適切な様式で互いに相互接続される任意の数の別個の集積回路または別個のデバイスとして実装されてもよい。例えば、タスクスケジューリングデバイス１２および処理ユニット１６、１８、２０は、別個の集積回路として提供されてもよい。
【００７３】
さらに例として、実施例、またはその一部は、任意の適切なタイプのハードウェア記述言語などによって、物理回路（ｐｈｙｓｉｃａｌ  ｃｉｒｃｕｉｔｒｙ）または物理回路に転換可能な論理表現のソフトまたはコード表現として実装されてもよい。
【００７４】
さらに、本発明は、プログラム不能ハードウェアにおいて実装される物理デバイスまたはユニットに限定されるものではなく、本出願においては一般的に「コンピュータシステム」として示されている、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナルコンピュータ、ノートパッド、携帯情報端末、電子ゲーム、自動車および他の組込みシステム、携帯電話、ならびに、さまざまな他の無線デバイスのような、適切なプログラムコードに従って操作することによって所望のデバイス機能を実行することが可能なプログラム可能デバイスまたはユニット内に適用されることもできる。
【００７５】
しかしながら、他の修正形態、変更形態および代替形態も可能である。従って、明細書および図面は限定的な意味においてではなく例示的に考慮されるべきである。
【００７６】
特許請求の範囲において、括弧間に置かれる任意の参照符号は特許請求の範囲を限定するものとして解釈されるべきではない。「備える（ｃｏｍｐｒｉｓｉｎｇ）」という文言は、特許請求項内にリストされているもの以外の要素またはステップの存在を除外するものではない。さらに、本明細書において使用される場合、「１つ（“ａ”ｏｒ“ａｎ”）」という用語は、１つまたは２つ以上として定義される。さらに、特許請求の範囲における「少なくとも１つの」および「１以上の」のような前置きの語句の使用は、不定冠詞「１つの（“ａ”ｏｒ“ａｎ”）」による別の請求項要素の導入が、このように導入された請求項要素を含む任意の特定の請求項を、たとえ同じ請求項が前置きの語句「１以上の」または「少なくとも１つの」および「１つの（“ａ”ｏｒ“ａｎ”）」のような不定冠詞を含む場合であっても、１つだけのこのような要素を含む発明に限定することを暗示するように解釈されるべきではない。同じことが、定冠詞の使用についても当てはまる。別途記載されない限り、「第１の」および「第２の」のような用語は、そのような用語が説明する要素間で適宜区別するように使用される。従って、これらの用語は必ずしも、このような要素の時間的なまたは他の優先順位付けを示すようには意図されていない特定の手段が相互に異なる特許請求項において記載されているというだけの事実は、これらの手段の組み合わせを有利に使用することができないということを示すものではない。
【００７７】
本発明の原理が特定の装置に関連して上記で説明されてきたが、この説明は例示のみを目的として為されており、本発明の範囲に対する限定としてではないことは明瞭に理解されたい。
【図１】
2014525619.tif 000003
【図２】
2014525619.tif 000004
【図３】
2014525619.tif 000005
【図４】
2014525619.tif 000006
【図５】
2014525619.tif 000007
【図６】
2014525619.tif 000008
【図７】
2014525619.tif 000009
【図８】
2014525619.tif 000010
【図１２】
2014525619.tif 000011
【図９】
2014525619.tif 000012
【図１０】
2014525619.tif 000013
【図１１】
2014525619.tif 000014
【手続補正書】
【提出日】平成26年2月28日(2014.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理システム（１０）であって、
複数のタスクをスケジュールするよう配置されるタスクスケジューリングデバイス（１２）と；
複数の処理ユニット（１６、１８、２０）と
を備え、前記複数の処理ユニット（１６、１８、２０）の少なくとも一部は、前記複数のタスクのうちの１以上の割当タスクを実行し、かつ割当タスクごとに、前記タスクスケジューリングデバイスへ前記割当タスクの実行が終了したことを示す少なくともタスク状態イベントを提供するよう構成され、
前記タスクスケジューリングデバイスは、タスクスケジューラ制御器ユニット（２４）を備え、
前記タスクスケジューラ制御器ユニット（２４）は、１以上の以前に割当てられたタスクと関連付けられる前記タスク状態イベントのうちの１以上を受信することに応じて、前記複数のタスクのうちの１つ以上を、それぞれ前記割当タスクを実行するよう構成される前記処理ユニットのうちの対応する１つに割当てるよう配置される、データ処理システム。
【請求項２】
前記データ処理システムは、フローチェーンバッファユニット（２２）を備え、
前記フローチェーンバッファユニット（２２）は、前記複数のタスクのうちの１以上のうちの１以上の処理フローおよび１以上の関連フローチェーンを定義する１以上のタスクパラメータテーブルを保存するよう配置され、
前記フローチェーンそれぞれは、前記複数の処理ユニットのうちの１以上を備え、
前記タスクスケジューリングデバイスは、前記複数のタスクを保存するよう配置されるタスクレジスタ（１４）を備え、
前記複数のタスクそれぞれは、前記１以上の処理フローと関連付けられ、
前記タスクスケジューラ制御器ユニットは、前記複数のタスクのうちの前記１以上を、前記１以上の処理フローのうちの対応する１つに応じて割当てるよう配置される、
請求項１に記載のデータ処理システム。
【請求項３】
前記データ処理システムは、映像処理システムである、
請求項１または２に記載のデータ処理システム。
【請求項４】
前記タスクスケジューラ制御器ユニットは、入力キューを備え、
前記タスクスケジューリングデバイスは、前記タスク状態イベントを受信し、
前記タスクスケジューリングデバイスは、調停ユニット（２８）を備え、
前記調停ユニット（２８）は、前記タスク状態イベントを前記入力キューに挿入するよう配置される、
請求項１−３いずれか１項に記載のデータ処理システム。
【請求項５】
前記タスクスケジューリングデバイスは、タスクを、前記タスクの少なくとも部分的に並列な実行のために前記複数の処理ユニットのうちの異なるものに割当てるよう配置される、
請求項１−４いずれか１項に記載のデータ処理システム。
【請求項６】
前記タスクスケジューリングデバイスは、複数のタスク出力キュー（３０、３２、３４）を備え、
前記複数のタスク出力キュー（３０、３２、３４）それぞれは、前記複数の処理ユニットのうちの対応する１つに接続可能であり、
前記タスクスケジューラ制御器ユニットは、前記複数のタスクのうちの１以上を、前記複数のタスクのうちの前記１以上を前記タスク出力キューのうちの１以上へ挿入することによって前記割当タスクを実行するよう構成される前記処理ユニットのうちの前記対応する１つに割当てるよう配置される、
請求項１−５いずれか１項に記載のデータ処理システム。
【請求項７】
前記タスクスケジューリングデバイスは、前記複数のタスク出力キューに接続される複数のキュー制御ユニット（３６、３８、４０）を備え、
前記複数のキュー制御ユニットそれぞれは、接続されるタスク出力キューからのタスクを、対応する処理ユニットに前記対応する処理ユニットの利用可能情報に応じて割当てるよう配置される、
請求項６に記載のデータ処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
本発明の原理が特定の装置に関連して上記で説明されてきたが、この説明は例示のみを目的として為されており、本発明の範囲に対する限定としてではないことは明瞭に理解されたい。
［発明１］
データ処理システム（１０）であって、
複数のタスクをスケジュールするよう配置されるタスクスケジューリングデバイス（１２）と；
複数の処理ユニット（１６、１８、２０）と
を備え、前記複数の処理ユニット（１６、１８、２０）の少なくとも一部は、前記複数のタスクのうちの１以上の割当タスクを実行し、かつ割当タスクごとに、前記タスクスケジューリングデバイスへ前記割当タスクの実行が終了したことを示す少なくともタスク状態イベントを提供するよう構成され、
前記タスクスケジューリングデバイスは、タスクスケジューラ制御器ユニット（２４）を備え、
前記タスクスケジューラ制御器ユニット（２４）は、１以上の以前に割当てられたタスクと関連付けられる前記タスク状態イベントのうちの１以上を受信することに応じて、前記複数のタスクのうちの１つ以上を、それぞれ前記割当タスクを実行するよう構成される前記処理ユニットのうちの対応する１つに割当てるよう配置される、データ処理システム。
［発明２］
前記タスクスケジューリングデバイスは、１以上のリアルタイムタスクを受信しおよびスケジュールするよう配置される、
発明１に記載のデータ処理システム。
［発明３］
前記タスクスケジューリングデバイスは、複数のタスク出力キュー（３０、３２、３４）を備え、
前記複数のタスク出力キュー（３０、３２、３４）それぞれは、前記複数の処理ユニットのうちの対応する１つに接続可能であり、
前記タスクスケジューラ制御器ユニットは、前記複数のタスクのうちの１以上を、前記複数のタスクのうちの前記１以上を前記タスク出力キューのうちの１以上へ挿入することによって前記割当タスクを実行するよう構成される前記処理ユニットのうちの前記対応する１つに割当てるよう配置され、
前記タスクスケジューリングデバイスは、前記複数のタスク出力キューに接続される複数のキュー制御ユニット（３６、３８、４０）を備え、
前記複数のキュー制御ユニットそれぞれは、接続されるタスク出力キューからのタスクを、対応する処理ユニットに前記対応する処理ユニットの利用可能情報に応じて割当てるよう配置され、
前記複数のキュー制御ユニットのうちの少なくとも１つは、接続されるタスク出力キューからのタスクを対応する処理ユニットに前記タスクの優先度に応じて割当てるよう配置される、
発明１に記載のデータ処理システム。
［発明４］
前記データ処理システムは、１以上の共用メモリバッファユニット（４２、４４、４６、４８）を備える、
発明１に記載のデータ処理システム。
［発明５］
前記データ処理システムは、切り替えユニット（５０）を備え、
前記切り替えユニット（５０）は、前記複数の処理ユニットを前記１以上の共用メモリバッファユニットに接続するよう配置される、
発明１４に記載のデータ処理システム。
［発明６］
前記タスクスケジューリングデバイスは、第２の制御器ユニット（１４２）を備え、
前記第２の制御器ユニット（１４２）は、前記１以上の処理フローを開始するよう配置される、
発明１に記載のデータ処理システム。
［発明７］
データ処理システムにおけるタスクスケジューリングの方法であって、
前記データ処理システムは、タスクスケジューラ制御器ユニットを有するタスクスケジューリングデバイスと；
少なくともその一部が複数のタスクのうちの１以上の割当タスクを実行するよう構成される複数の処理ユニットと
を備え、
前記方法は、
前記複数のタスクを前記タスクスケジューリングデバイスに提供すること（１６２）と；
前記複数のタスクのうちのタスクを前記複数の処理ユニットに割当てること（１６４）と；
割当タスクごとに、前記タスクスケジューリングデバイスに、前記割当タスクの実行が終了することを示す少なくともタスク状態イベントを提供すること（１６６）と；
前記タスクスケジューラ制御器ユニットによって、前記複数のタスクのうちの１以上を、前記割当タスクを実行するよう構成される前記処理ユニットのうちの対応する１つに、１以上の以前に割当てられたタスクに関連付けられる前記タスク状態イベントのうちの１以上を受信することに応じて、割当てること（１６８）と
を有する、方法。
［発明８］
プログラム可能装置上で実行するときに、発明７に記載の方法のステップを実行するコード部分を備える、コンピュータプログラム製品。
【国際調査報告】
2014525619.tif 000015
2014525619.tif 000016
2014525619.tif 000017