(57)【要約】  本発明は、タスクの処理をスケジューリングする方法及びこの方法に関連する装置に関する。本方法及び本装置においては、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、設定されたリソース上でタスクを実行するステップとを含む。本発明の方法は、少なくとも１つの処理すべきタスクレベルを選択する（１）ことからなるステップと、優先順位に従って処理すべきタスクレベルに基づいてタスクをソートすることにより、（ｉ）タスクの処理に必要なリソースの数、及び（ｉｉ）タスクの特性時間に応じたタスクの処理の優先順位を決定するステップ（２）とを含む。本発明は、特にオンボードエレクトロニクスの分野に使用するのに適している。
2008508584.tif 000002
【特許請求の範囲】
【請求項１】
タスク処理のためのスケジューリング方法であって、タスクを優先順位に従って実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上で当タスクを実行するステップとを含み、
−  優先順位に従って、処理すべき個別のタスクの少なくとも１つのレベルを選択すること（１）、
−  処理すべきタスクレベルにあるタスクを、各タスクの処理に必要なリソースの数と、タスクの特性量とに基づいてソートすることによりタスクの処理における優先順位を規定するステップ（２）、
−  タスクレベルにあるタスクを処理するために利用可能なリソースの数を評価すること（３）、
−  優先順位に従って、タスクレベルにあるタスクを利用可能なリソースへ割り当てること（４）
を含むことを特徴とする方法。
【請求項２】
ソートティングステップ（２）が、タスクの実行に必要なリソースの数によってソーティングを行って処理に必要なリソースの数が大きい順にタスクを処理するための第１のソーティングと、タスクの特性量によりソーティングを行って特性量が小さい順又は大きい順にタスクを処理するための第２のソーティングとを含むことを特徴とする、請求項１に記載のタスク処理のためのスケジューリング方法。
【請求項３】
第１のソーティングが第２のソーティングに先行し、第２のソーティングは、複数のタスクの処理に必要なリソースの数が前記複数のタスクについて同じになったら直ぐに適用されることを特徴とする、請求項２に記載のタスク処理のためのスケジューリング方法。
【請求項４】
第２のソーティングが第１のソーティングに先行し、第１のソーティングは、複数のタスクに対するタスクの特性量が前記複数のタスクについて等しくなったら直ぐに適用されることを特徴とする、請求項２に記載のタスク処理のためのスケジューリング方法。
【請求項５】
タスクの特性量が、タスクの処理時間、タスクの実行に必要なリソースの設定時間、タスクの実行時間、タスクに関連する実行時間の制約に応じてタスクの実行に残された時間、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、１つ又は複数のタスクに対する周期性に基づく時間、或いは、上記に列挙した特性量の全部又は一部に基づく時間であることを特徴とする、請求項１ないし４のいずれか１項に記載のタスク処理のためのスケジューリング方法。
【請求項６】
タスクの特性量が、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータのソーティング又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する１つの情報、タスクの実行に関するアルゴリズムの規則性を判定する１つの情報、タスク実行の並列性を判定する１つの情報、タスクの独立した優先度であって、マルチユーザ間で使用される場合に１人のユーザによって与えられる優先度を判定する１つの情報、或いは、上記に列挙した特性量の全部又は一部の関数であることを特徴とする、請求項１ないし４のいずれか１項に記載のタスク処理のためのスケジューリング方法。
【請求項７】
タスクの特性量が、アプリケーションチャートにおけるタスクの位置に関する１つの情報であることを特徴とする、請求項１ないし４のいずれか１項に記載のタスク処理のためのスケジューリング方法。
【請求項８】
アプリケーションチャートにおけるタスクの位置に関する１つの情報が、アプリケーションチャートの処理時間に課された時間的制約の終了前にタスクを実行するために残された時間、アプリケーションチャートの終了前に未処理で残っているタスクの最大数、タスクの優先度の順番において上位に位置するタスクの最大数、タスクの優先度の順番において上位に位置するタスクの実行時間の合計、或いは、上記に列挙した量の全部又は一部の関数であることを特徴とする、請求項７に記載のタスク処理のためのスケジューリング方法。
【請求項９】
独立のタスクのレベルが、このタスクレベルにあるタスクの優先度の制約を検証することによって規定されることを特徴とする、請求項１ないし８のいずれか１項に記載のタスク処理のためのスケジューリング方法。
【請求項１０】
優先順位に基づく利用可能なリソースの割り当てが、タスクレベルの全てのタスクが処理されるまでダイナミックに繰り返されることを特徴とする、請求項１ないし９のいずれか１項に記載のタスク処理のためのスケジューリング方法。
【請求項１１】
ランクＧのタスクレベルの処理が、ランクＧのタスクレベルに先行するランクＧ−１のタスクレベルにある全てのタスクの設定が完了すると直ぐに開始されることを特徴とする、請求項１ないし１０のいずれか１項に記載のタスク処理のためのスケジューリング方法。
【請求項１２】
処理すべきタスクレベルの１つ又は複数のタスクの処理を拒否することにより縮退運用を可能にするステップを含むことを特徴とする、請求項１ないし１１のいずれか１項に記載のタスク処理のためのスケジューリング方法。
【請求項１３】
タスクを処理する方法であって、タスクを優先順位に従って実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含み、請求項１ないし１２のいずれか１項に記載の方法によるタスク処理のスケジューリングを含むことと、リソースの設定及びタスクの実行が、それぞれ設定トークン及び実行トークンによって作動されることとを特徴とする方法。
【請求項１４】
タスクを処理するためのスケジューリング装置であって、優先順位に従ってタスクを実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含み、
−  処理すべき１組のタスクを含むコンポーネント（ＣＲ）、
−  優先順位に従って、コンポーネント（ＣＲ）に含まれるタスクの組から、処理される独立のタスクの少なくとも１つのレベルを選択する選択ブロック（ＢＳ）、
−  優先順位に従って選択されたタスクレベルのタスクをソートすることにより、各タスクを処理するために必要なリソースの数と、タスクの特性量とに基づいてタスクを処理する手段（ＢＭ１、ＢＭ２、ＴＰ）、及び
−  優先順位に基づいて、タスクの処理に利用可能なリソースを割り当てる手段（ＢＧ）
を含むことを特徴とする装置。
【請求項１５】
選択されたタスクレベルのタスクをソートする手段（ＢＭ１、ＢＭ２、ＴＰ）が、
−  各タスクの処理に必要なリソースの数を表す情報（Ｒ０、Ｒ１、…、ＲＮ）を含む第１のメモリブロック（ＢＭ１）、
−  タスクの特性量を表す複数の情報（Ｄ０、Ｄ１、…、ＤＮ）を含む第２のメモリブロック（ＢＭ２）、
−  このタスクレベルのタスクの特性量を表す複数の情報を互いに比較する第１の比較手段（ＭＣ１）、
−  利用可能なリソースの数をこのタスクレベルのタスクの処理に必要なリソースの数と比較する第２の比較手段（ＭＣ２）、及び
−  第１及び第２の比較手段によって送達された比較結果に基づいて優先順位を確立する手段（ＴＰ）
を含むことを特徴とする、請求項１４に記載のタスクを処理するためのスケジューリング装置。
【請求項１６】
比較結果に基づいて優先順位を確立する手段（ＴＰ）が、バイナリデータを含む１組のシフトレジスタを含むことを特徴とする、請求項１５に記載の装置。
【請求項１７】
タスクの特性量が、タスクの処理時間、タスクの実行に必要なリソースの設定時間、タスクの実行時間、タスクに関連する実行時間の制約に応じてタスクの実行に残された時間、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、１つ又は複数のタスクに対する周期性に基づく時間、或いは、上記に列挙した特性量の全部又は一部に基づく時間であることを特徴とする、請求項１４ないし１６のいずれか１項に記載の装置。
【請求項１８】
タスクの特性量が、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータのソーティング又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する１つの情報、タスクの実行に関するアルゴリズムの規則性を判定する１つの情報、タスク実行の並列性を判定する１つの情報、タスクの独立の優先度であって、マルチユーザ間で使用される場合に１人のユーザから与えられる優先度を判定する１つの情報、或いは、上記に列挙した特性量の全部又は一部の関数であることを特徴とする、請求項１４ないし１６のいずれか１項に記載の装置。
【請求項１９】
タスクの特性量が、アプリケーションチャートにおけるタスクの位置に関連する１つの情報であることを特徴とする、請求項１４ないし１６のいずれか１項に記載の装置。
【請求項２０】
アプリケーションチャートにおけるタスクの位置に関連する１つの情報が、アプリケーションチャートの処理時間に課された時間的制約の終了前にタスクを実行するために残された時間、アプリケーションチャートの終了前に未処理で残っているタスクの最大数、タスクの優先度の順番において上位に位置するタスクの最大数、タスクの優先度の順番において上位に位置するタスクの実行時間の合計、或いは、上記に列挙した量の全部又は一部の関数であることを特徴とする、請求項１９に記載の装置。
【請求項２１】
処理すべきタスクの組を含むコンポーネント（ＣＲ）が、制御に適した再設定可能なコンポーネントであって、実行すべきタスクに適用されるチャートのＮ＋１個の状態を表すＮ＋１個のセル（Ｃｉ）を含み、各セルが、実行すべきタスクと、チャートの異なる状態を繋ぐ再設定可能な相互接続ネットワークとを含むことを特徴とする、請求項１４ないし２０のいずれか１項に記載のスケジューリング装置。
【請求項２２】
タスクを処理する装置であって、請求項２１に記載のタスクを処理するためのスケジューリング装置を含み、設定トークン及び実行トークンが相互接続ネットワーク内を移動することにより、それぞれタスクの設定及びタスクの実行が作動されることを特徴とする装置。
【請求項２３】
選択ブロック（ＢＳ）が、実行すべきタスクレベルの１つ又は複数のタスクの処理を拒否することにより縮退運用を可能にする手段を含む、請求項１４ないし２２のいずれか１項に記載の装置。
【発明の詳細な説明】
【発明の開示】
【０００１】
技術分野及び従来技術
本発明は、タスクの処理をスケジューリングする方法、及びその方法を適用するための装置に関する。本発明はまた、タスクの処理方法及びそれに関連する装置に関する。
本発明は、極めて多くの分野、例えばオンボードエレクトロニクス（携帯電話、自動車産業、航空産業等）の分野、場合によってはスーパーコンピュータのような集約的演算用の複雑な分散電子システムの分野に応用される。
【０００２】
今日のオンボードエレクトロニクスは、フレキシビリティ及び性能の面でますます大きな要求に応えなくてはならなくなっている。例えば、マルチメディアの利用分野（携帯電話、可搬式コンピュータ等）では、非専用プロセッサだけではもはや新たな制約に対応するには十分でない。
そのため、再設定可能なブロック、メモリなどを有する複数の専用プロセッサからなるシステムが登場し、一般的にはシステムオンチップ（ＳｏＣ）技術と呼ばれるオンチップ集積技術が生まれた。ＳｏＣ技術の性能及びフレキシビリティを向上させるため、コミュニケーションネットワークをチップに集積することにより、チップ上に集積された異なるコンポーネントが相互接続された。一般にネットワークオンチップ（ＮｏＣ）と呼ばれるこのようなチップ上のネットワークシステムにより、今日、将来の技術を集積するのに適したソリューションが提供される。それでもなお、タスクの並列性の取り扱い及びアプリケーションの最適な実行は、このようなネットワークにおいて解決すべき大きな問題である。
【０００３】
タスクスケジューリングアルゴリズムは広く文献に記載されている。非ダイナミックに並列化可能なタスクを処理するアルゴリズム（プロセッサの数がコンパイル前に判明している）及びソートされたタスクのリストに基づくスケジューリングが、本発明の目的である。別のソリューション、例えば遺伝的アルゴリズムは更に有効であり、これにより結果を改善することができる。しかし、この有効性の高いソリューションは複雑過ぎてシリコンに適用することができず、本発明の範囲ではその利益には限界がある。
Blazewicz等は、全てのタスクが同じ実行時間を有する場合の厳密解を決定する興味深いソリューションを提供している（参考文献［BLAZ86］参照）。しかし、本文献が要求するアルゴリズムは、膨大な計算時間とデータ変換を要する。
【０００４】
Jansen等は、単一のプロセッサ上でのみ実行できる独立のタスクのスケジューリングを考案した（参考文献リスト［JANS99］参照）。彼らは、多項式の複雑性を有し、よって数学的複雑性の小さいソリューションを提供している。このような記載はあったものの、その物理的な実施についての研究により、良い性能を得るにはアプリケーションの複雑性が大きすぎることが明らかになっている。
同様の結果が、本発明の課題に近い研究において証明されている（参考文献リスト［BAER73、BAKE81］参照）。他のソリューションは、タスクを実行するために残された時間を評価する手段を必要とする（参考文献［TOPC02］及び米国特許第６５６７８４０号明細書参照）。しかし、これは非同期システムを意図したものではなく、ダイナミックなスケジューリングは連続的なアップデートを必要とするので大量の電力を消費する。
【０００５】
他の結果にも、有用なリソースの数に従ってタスクをソートすることが、複雑性及び結果として得られる実行時間の面から特に興味深いことが示されている（参考文献［LI00］及び［IBAR88］参照）。リソースにタスクを割り当てるための文献に記載されている主な改良は、タスク実行のために有用なリソースの数をダイナミックに変化させることである。しかしながら、タスクのコンパイルは必要なリソースの数に依存するため、物理的なソリューションの範囲内でこれを利用することはできない。
【０００６】
本発明の説明
本発明によるタスク処理スケジューリングアルゴリズムは、上述の欠点を有さない。
本発明は、タスクを処理するためのスケジューリング方法に関し、優先順位に従ってタスクを実行するものであり、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含む。本方法は、
−  処理すべきタスクの少なくとも１つのレベルを選択すること、
−  優先順位に従って処理すべきタスクレベルにあるタスクをソートすることにより、タスクの処理に必要なリソースの数とタスクの特性量とに基づいてタスク処理の優先順位を決定するステップ
−  前記タスクのレベルで、タスクの処理に利用可能なリソースの数を評価すること、及び
−  優先順位に従って利用可能なリソースに前記タスクレベルのタスクを割り当てること
を含むことを特徴としている。
【０００７】
本発明の更なる特徴によれば、ソートするステップは、タスクの実行に必要なリソースの数によってソーティングを行ってタスクの処理に必要なリソースの数が大きい順にタスクを処理するための第１のソーティングと、タスクの特性量によってソーティングを行ってタスクの特性量の小さい順又は大きい順にタスクを処理するための第２のソーティングを含む。
本発明の第１の変形例によれば、第１のソーティングを第２のソーティングの前に行い、第２のソーティングは、複数のタスクの処理に必要なリソースの数が、それらタスクの全てで同じである場合に直ぐに適用される。
本発明の第２の変形例によれば、第２のソーティングを第１のソーティングの前に行い、第１のソーティングは、複数のタスクに対するタスクの特性量が、それらタスクの全てで同じである場合に直ぐに適用される。
【０００８】
本発明の更に別の特徴によれば、タスクの特性量は、タスクの処理時間、タスクの実行に必要なリソースを設定する時間、タスクの実行時間、タスクに関する実行時間の制約に応じてタスクの実行に残された時間、優先度の順番において上位に位置する１つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、１つ又は複数のタスクに対する周期性に基づく時間、或いは上記特性量の全部又は一部に基づく時間である。
本発明の更なる特徴によれば、タスクの特性量は、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータのソーティング又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する１つの情報、タスクの実行に関するアルゴリズムの規則性を判定する１つの情報、タスクの実行の並列性を判定する１つの情報、タスクの独立した優先度であって、マルチユーザで使用される場合に１人のユーザによって与えられた優先度を判定する１つの情報、或いは上記特性量の全部又は一部の関数である。
【０００９】
本発明の更に別の特徴によれば、タスクの特性量は、アプリケーションチャート上でのタスクの位置に関する１つの情報である。
本発明の更に別の特徴によれば、前記アプリケーションチャート上でのタスクの位置に関する１つの情報は、アプリケーションチャートの処理時間に課された時間的制約の終了までにタスクの実行に残された時間、アプリケーションチャートの終了前に未処理で残っているタスクの最大数、タスクの優先度の順番において上位に位置するタスクの最大数、タスクの優先度の順番において上位に位置するタスクの実行時間の合計、或いは上記量の全部又は一部の関数である。
【００１０】
本発明の更に別の特徴によれば、タスクレベルは、このタスクレベルにあるタスクの優先度の制約を検証することによって定義される。
本発明の更に別の特徴によれば、優先順位に応じた利用可能なリソースの割り当ては、前記タスクレベルの全てのタスクが処理されるまでダイナミックに繰り返される。
【００１１】
本発明の更に別の特徴によれば、ランクＧのタスクレベルの処理は、ランクＧのタスクレベルに先行するランクＧ−１のタスクレベルの全てのタスクが設定されると直ぐに開始される。
本発明はタスクの処理方法にも関し、タスクを優先順位に従って実行するものであって、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含む。この処理方法は、本発明の方法によるタスクの処理のスケジューリングを含むことと、リソースの設定及びタスクの実行が、設定トークン及び実行トークンによってそれぞれ始動されることとを特徴としている。
【００１２】
本発明は、タスクの処理をスケジューリングする装置にも関し、タスクは優先順位に従って実行され、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含む。この装置は、
−  処理すべき１組のタスクを含むコンポーネント、
−  コンポーネントに含まれるタスクの組から、処理すべきタスクの少なくとも１つのレベルを選択するための選択ブロック、
−  優先順位に従って選択されたタスクレベルにあるタスクをソートすることにより、タスクの処理に必要なリソースの数とタスクの特性量とに基づいてタスクを処理する手段、並びに
−  優先順位に従って利用可能なリソースをタスクの処理に割り当てる手段
を備えることを特徴としている。
【００１３】
本発明の更なる特徴によれば、選択されたタスクレベルにあるタスクをソートする手段は、
−  各タスクの処理に必要なリソースの数を表す情報を含む第１のメモリブロック、
−  タスクの特性量を表す情報を含む第２のメモリブロック、
−  前記タスクレベルにおけるタスクの特性量を表す情報を互いに比較するための第１の比較手段、
−  利用可能なリソースの数と、前記タスクレベルにあるタスクの処理に必要なリソースの数とを比較する第２の比較手段、並びに
−  第１及び第２の比較手段によって送達される比較結果に基づいて優先順位を確立する手段
を含む。
【００１４】
本発明の更なる特徴によれば、比較結果に基づいて優先順位を確立する前記手段は、バイナリデータを含む１組のシフトレジスタを含む。
本発明の更なる特徴によれば、処理すべき１組のタスクを含むコンポーネントは、制御に適した再設定可能なコンポーネントであって、実行すべきタスクに適用されるチャートのＮ＋１個の状態を表すＮ＋１個のセルを含み、各セルは実行すべきタスクと、チャートの異なる状態を繋ぐ再設定可能な相互接続ネットワークとを含む。
本発明の更なる特徴によれば、タスクを選択するブロックは、処理すべきタスクレベルにある１つ又は複数のタスクの処理を拒否することによりシステムの縮退運用を可能にする手段を含み、これにより、利用可能な最大エネルギー又は電力、タスクレベルに課された時間の制約、演算、保存又は通信リソースの利用可能性の制約、外部媒体との電磁的な互換性の制約、或いは上記状態の全部又は一部等の環境状態が遵守される。
【００１５】
本発明はタスクを処理する装置にも関し、本装置は、制御に適した再設定可能なコンポーネントを含む本発明によるタスクをスケジューリングする装置と、相互接続ネットワーク内を移動することにより、それぞれタスクの設定及びタスクの実行を作動する設定トークン及び実行トークンとを含むことを特徴としている。
本発明によるタスク処理のスケジューリング方法によって、独立するタスクのスケジューリングの性能を有意に増大させることが可能となる。本発明の方法を利用する装置は、複数のエンティティから構成される。実行されるタスクは、既知の実行時間及び特性量を有する、ノンプリエンプティブ（つまり割り込みされない）で非展開性の（つまり、実行に有用なリソースの数が前もって判明している）タスクである。
【００１６】
本発明によるスケジューリング方法は、同じタスクを処理するためのリソースの連続的な割り当てを促進する。この方法は、タスクの総実行時間を最小化し、リソースの利用を促進する。
本発明によるスケジューリング方法は、演算リソースの割当て及び解放をダイナミックに扱い、必要に応じてリソースの自己適応を可能にする。この方法は、優先度の制約を考慮に入れながら、実行前にリソースを設定することを可能にし、任意の数の同種又は異種のリソースから構成されるシステムに適用できる。異種のリソースとは、異なる性質（メモリ、マイクロプロセッサ、再設定可能なブロック、ＩＰ（知的所有権）、インターフェース、バス等）のリソースを意味する。
【００１７】
本発明の別の特徴及び利点は、添付図面を参照して説明される好適な実施形態により明らかにする。
全図面において、同じ記号は同じコンポーネントを指す。
【実施例】
【００１８】
発明の実施形態の詳細な説明
図１は、実行すべきタスクの例示的なアプリケーションチャートである。ノードはタスクを表し、ノードを繋ぐ矢印は、タスクが実行されるべき順番又は優先順位を表している。
本方法を実行する前に、以下の情報が既知である。
−  タスクが実行されるべき優先順位（以下参照）、
−  タスクを処理するために利用可能な演算リソースの総数、
−  各タスクの処理に必要な時間
【００１９】
「タスクの処理に必要な時間」とは、タスクの実行に寄与すべきリソースを設定するための時間と、それにより設定されたリソースでタスクを実行する時間との合計に等しい時間を意味する。リソースを設定するための時間とは、タスクの実行に必要な操作がリソース上で設定される時間である。
タスクはレベルごとに実行される。優先度の制約は、タスクのレベルの定義、並びに同じレベル内でのタスク実行のアプリケーションを条件付けるものである。
【００２０】
処理すべき１２個のタスクＴ０〜Ｔ１１の優先順位は、ここでは次の通りである。
−  タスクＴ０は、タスクＴ１、Ｔ２及びＴ３の前に実行しなければならない。
−  タスクＴ１は、タスクＴ４、Ｔ５及びＴ６の前に実行しなければならない。
−  タスクＴ２は、タスクＴ５及びＴ６の前に実行しなければならない。
−  タスクＴ３は、タスクＴ７及びＴ８の前に実行しなければならない。
−  タスクＴ４、Ｔ５及びＴ６はそれぞれ、タスクＴ９の前に実行しなければならない。
−  タスクＴ７及びＴ８はそれぞれ、タスクＴ１０の前に実行しなければならない。
−  タスクＴ９及びＴ１０は、タスクＴ１１の前に実行しなければならない。
一般的には、いずれのアプリケーションチャートについても、ランクＧのタスクのレベルには、ランクＧ−１という１つ前のタスクレベルにあるタスクの実行の終了に直接的に依存して実行が開始される全てのタスクが含まれる。
【００２１】
よって、図１の選択された実施例では、５つの一連のタスクレベルが存在する。つまり、
−  タスクＴ０を含むレベルＮ０、
−  タスクＴ１、Ｔ２、Ｔ３を含むレベルＮ１、
−  タスクＴ４、Ｔ５、Ｔ６、Ｔ７、Ｔ８を含むレベルＮ２、
−  タスクＴ９及びＴ１０を含むレベルＮ３、及び
−  タスクＴ１１を含むレベルＮ４。
後述では、説明を簡単にするために、１つ又は複数のいわゆる「子タスク」に対して１つのタスクを「親タスク」と呼ぶことがあり、それは、子タスクの実行開始が親タスクの実行完了に直接的に依存する場合である。よって、非限定的な例として、タスクＴ１は、３つの子タスクＴ４、Ｔ５、Ｔ６の親タスクであり、タスクＴ２も、２つの子タスクＴ５及びＴ６の親タスクである。
【００２２】
図２に、本発明によるタスクのレベルのスケジューリング方法の原理を表すフローチャートを示す。
本方法の第１のステップは、タスクの優先順位に従って処理すべきタスクのレベルを選択することからなる（ステップ１）。タスクレベルを選択したら、そのタスクレベルのタスクをソートしてタスクを処理するための優先順位を確立する（ステップ２）。
【００２３】
本発明の好適な実施形態によれば、ソーティングステップの間に、まず実行に必要なリソースの数の大きい順にタスクをソートし、リソースの数が複数のタスク間で同一である場合には、それらを処理時間の大きい順にソートする（上述のように、タスクの処理時間は、タスクに作用するリソースを設定するための時間と、設定されたリソース上でのタスクの実行時間との合計である）。このようにして定義された優先順位によって、最も多くのリソースを使用する１つ又は複数のタスクの処理が優先され、リソースの数が同じ場合は最も長い処理時間を要するタスクの処理が優先される。
本発明の別の実施形態も可能である。よって、タスクの処理時間によるソーティングを、リソースの数によるソーティングに先行させてもよい。その場合、最も長い時間で処理されるタスクの処理が優先され、時間が同じ場合は最も多いリソースを使用するタスクの処理が優先される。
【００２４】
処理すべきタスクの別の特性量による他のソーティング基準も本発明の範囲内で使用することができる。
タスクを処理するための時間以外に、タスクの特性量は、タスクの実行に必要なリソースを設定する時間、タスクの実行時間、タスクに関する実行時間の制約に応じてタスクの実行に残された時間、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、１つ又は複数のタスクに対する周期性に基づく時間、或いは上記の特性量の全部又は一部に基づく時間とすることができる。
【００２５】
タスクの特性量は、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータの保存又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する１つの情報、タスクの実行に関するアルゴリズムの規則性を判定する１つの情報、タスクの実行の並列性を判定する１つの情報、タスクの独立した優先度であって、マルチユーザで使用される場合に１人のユーザによって与えられた優先度を判定する１つの情報、或いは上記の特性量の全部又は一部の関数とすることができる。
タスクの特性量は、アプリケーションチャートにおけるタスクの位置に関連する１つの情報でもよい。このアプリケーションチャートにおけるタスクの位置に関連する１つの情報は、アプリケーションチャートの処理時間に課された時間的制約の終了までにタスクを実行するために残された時間、アプリケーションチャートの終了前に未処理で残っているタスクの最大数、タスクの優先度の順番において上位に位置するタスクの最大数、タスクの優先度の順番において上位に位置するタスクの実行時間の合計、或いは上記の量の全部又は一部の関数でよい。
【００２６】
優先順位によってタスクをソートしたら、利用可能なリソースの数を評価する（ステップ３）。次に、先立って確立された優先順位に従って、タスクの処理のために、タスクを利用可能なリソースに割り当てる（ステップ４）。続いてタスクの処理を実行する（ステップ５）。利用可能なリソースの数を評価するステップ、利用可能なリソースにタスクを割り当てるステップ及びタスクを処理するステップを、処理されていないタスクがある限り繰り返す（ステップ６）。タスクをダイナミックに割り当てる機構はまた、そのレベルの全てのタスクが処理されるまで繰り返す（ステップ５からステップ４へ戻る）。
【００２７】
図１に示すグラフのようなタスクアプリケーションチャートの本発明による実施について以下に説明する。
本発明の範囲内では、タスクを処理するためのリソースの総数が制限されている。非限定的な例では、タスクＴｉ（ｉ＝０、１、２、…、１１）の実行に必要なリソースの数Ｒｉは、以下の表の通りである。
【表１】
2008508584.tif 000003
【００２８】
後述では、「configTi」という表記は、タスクＴｉを実行するリソースを設定する時間を表し、表記「execTi」は、設定されたリソース上でタスクＴｉを実行する時間を表す。よって、「execTi」という時間は、「configTi」時間の後に来る。
図３に、タスクを処理するためのリソースの数が制限されていない場合の、例示的なタスクのスケジューリングを示す。従って、図３の実施例によるタスクのスケジューリングは、本発明の範囲に含まれない。この実施例は、設定ステップとタスクを実行するステップとの間に存在する理想的な構造を単に教示的に説明するものである。
【００２９】
タスクＴ０は、実行すべき第１のタスクであり、タスクの第１のレベルＮ０を表す。この時、タスクＴ０を実行するためのリソースは、「configT0」時間で設定され、設定が完了したら、タスクはそのリソース上で「execT0」時間で実行される。
「configT0」時間が終了したら、タスクの第２のレベルＮ１を形成するタスクＴ１、Ｔ２、Ｔ３の優先度の制約が検証される。リソースの数は無限であるので、タスクＴ１、Ｔ２及びＴ３の実行に必要なリソースは、必要な数のリソースを用いて、「configT1」、「configT2」、「configT3」の各時間で同時に設定される。「execT0」時間が終了すると直ぐに、設定操作によってリソースが支配されていないタスクの実行が開始される。この場合、選択された実施例によれば、「execT1」及び「execT3」時間は同時に開始され、「execT2」時間は「configT2」時間が終了した時にのみ開始される。
【００３０】
タスクＴ２（レベルＮ１の最後のタスク）の設定時間の終了と同時に、タスクの第３のレベルＮ２を形成するタスクＴ４、Ｔ５、Ｔ６、Ｔ７及びＴ８の優先度の制約が検証される。続いて、タスクＴ４、Ｔ５、Ｔ６、Ｔ７及びＴ８の実行に必要なリソースが設定される。「configT4」、「configT5」、「configT6」、「configT7」、「configT8」時間が、必要な数のリソースを用いて同時に開始される。続いて、タスクＴ４、Ｔ５、Ｔ６、Ｔ７及びＴ８が実行され、その一方で優先度の制約の検証が監視される。
この方法は、このようにレベルごとに続けられ、前のレベルの全てのタスクが設定されたら直ぐに新しいタスクレベルの処理が開始される。
【００３１】
本発明の範囲内では、リソースの数が制限されており、タスクの処理をリソースへ割り当てるために優先順位を確立しなければならない。図４に、リソースの数が４個に制限されている場合の本発明のスケジューリング方法を、非限定的な実施例として示す。
任意のレベルのタスクは、前のレベルの全てのタスクが設定されると直ぐに開始される。従って、レベルＮ１のタスクの設定は、タスクＴ０の設定が完了した時、つまりタスクＴ０の実行が開始された時に開始される。タスクＴ０が単一のリソース上で実行されており、利用可能なリソースの総数が４に等しいので、利用可能なリソースは３に等しい。よって、３つという利用可能なリソースの制限内で最多（３つ）のリソースを使用するタスクはタスクＴ３であるので、開始されるのはタスクＴ３の設定である。次いで、タスクＴ３の設定後にタスクＴ３が実行され、タスクＴ０の実行が完了した時、利用可能となるリソースがタスクＴ２の設定に使用され、その後タスクＴ２が実行される。タスクＴ２が実行されている間は、３個のリソースしか利用できない。よって、４個のリソースを必要とするタスクＴ１の設定は実施できない。タスクＴ２の実行が完了すると直ぐ、タスクＴ１の設定を開始することができる。タスクＴ１の設定の終了時には、レベルＮ１の全てのタスクが設定されており、タスクＴ４、Ｔ５、Ｔ６、Ｔ７及びＴ８で構成されたレベルＮ２が形成される。
この方法は、このようにしてレベルごとに続けられ、処理すべき新しいタスクレベルが、前のレベルの全てのタスクが設定されると直ぐに開始される。
【００３２】
図５に、本発明の好適な実施形態によるタスクスケジューリング方法を実行するための装置を示す。
この装置は、実行すべきタスクの組を含む制御に適した再設定可能なコンポーネントＣＲ、所与の瞬間に同じレベルの全てのタスクを選択することができるレベル選択ブロックＢＳ、各タスクの実行に必要なリソースの数を表す情報を含む第１のメモリブロックＢＭ１及び第１の比較手段、各タスクの特性量を表す情報（好適にはタスク処理時間）を含む第２のメモリブロックＢＭ２及び第２の比較手段、タスクが処理されるべき優先順位をダイナミックに示す優先度テーブルＴＰ、各タスクに関連するリソースを設定するのに必要な設定データを含む設定ブロックＢＣ、タスクを設定する機能を有するタスク割り当てブロックＢＡ、優先度テーブルＴＰにおいて優先度を有するタスクの位置を示す優先度評価ブロックＢｐ、リソースハンドリングブロックＢＧ、並びにタスク実行ブロックＢＥを含む。
【００３３】
制御に適した再設定可能なコンポーネントＣＲは、例えば、２００１年８月３１日に公開された仏国特許第２７９５８４０号に記載のものである。それは、アプリケーションチャートのＮ＋１個の状態を表すＮ＋１個のセルＣｉ（ｉ＝０、１、２、…、Ｎ）と、異なる状態を接続する再設定可能な相互接続ネットワークとからなる。各セルＣｉは、タスクＴｉを含む。２つのトークンは、タスクの優先度の制約の検証に基づいてアプリケーションチャート内を移動する。設定及び優先度の制約が時間と共に変化すると、「設定トークン」と呼ばれる第１のトークンが相互接続ネットワーク内を移動してタスクの設定を作動させる。実行及び優先度の制約が時間と共に変化すると、「実行トークン」と呼ばれる第２のトークンが相互接続ネットワーク内を移動してタスクの実行を作動させる。トークンは、優先度の制約及びこのような制約の検証に従って、セル間における検証信号の伝搬を表す。優先度の制約が検証されたら、セルはそのトークンを子セルに伝搬する。このような機構はグラフ理論の範囲内で、具体的にはペトリ（Petri）のグラフ理論（参考文献［PETE81］参照）の範囲内で既知である。
概して、親タスクは、実行トークンを受信すると直ぐに、設定トークンを子タスクに送る。この構成は、いずれの親タスクにも依存せず、したがって設定が始まると直ぐに子タスクに設定トークンを送ることができるアプリケーションチャートのソースタスクには無関係である。アプリケーションチャートの実行が開始されるとき、ソースタスク（選択された実施例ではタスクＴ０）は設定トークン及び実行トークンを含む。
【００３４】
ブロックＢＭ１、ＢＭ２、ＴＰ及びＢＣに含まれるデータは、データのＮ＋１個のラインとして構成され、各データラインは異なるタスクに対応する。その結果、
−  各タスクの実行に必要なリソースの数を表すデータＲｉ（ｉ＝０、１、２、…、Ｎ）が、メモリブロックＢＭ１にＮ＋１個のデータラインとして構成され、
−  メモリブロックＢＭ２に含まれるタスクの処理時間を表すデータＤｉ（ｉ＝０、１、２、…、Ｎ）が、Ｎ＋１個のデータラインとして構成され、
−  優先度テーブルＴＰが、シフトレジスタのＮ＋１個のラインから構成され、ランクｉ（ｉ＝０、１、２、…、Ｎ）のラインのシフトレジスタが、タスクＴｉの優先度ランクを表す１組のバイナリデータを含み、
−  リソースＲｉの設定に必要な設定データＣＦＧｉ（ｉ＝０、１、２、…、Ｎ）が、Ｎ＋１個のデータラインとして構成される。
【００３５】
次に、図５に示す装置の操作を、図１のアプリケーションチャートを参照して説明する。
初期状態において、タスクの処理を開始する前には、優先度テーブルの全てのラインのシフトレジスタが同じ状態にある。よって、例えば、同じラインの、一番端をのぞく全てのレジスタのバイナリ値が「０」であり、例えば右端（図面を参照）に位置するシフトレジスタのバイナリ値が「１」（高論理レベル）である。
【００３６】
アプリケーションチャートの処理の開始時には、タスクＴ０を含むチャートのセルＣ０は、設定トークン及び実行トークンを含む。この時、タスクＴ０は、実行すべきタスクレベルを形成する唯一のタスクであるので、処理の優先権を持つタスクである。次に、タスクＴ０に対応するメモリラインにおいて、右端の高論理レベルは、ブロックＢＳによって送達された信号ｂｓ０の作用により左にシフトする。続いて、タスクＴ０の実行に必要なリソースが、割り当てブロックＢＡによって設定される。この目的のために、タスクＴ０に対するリソースの設定に必要なＣＦＧ０データが、設定ブロックＢＣから信号Ｓｃｒを介して割り当てブロックＢＡへと送られる。タスクＴ０に関連するリソースの設定が開始することを示す信号Ｓｃ０も、設定ブロックＢＣから、ブロックＴＰ、ＢＭ２、ＢＭ１、ＢＳを介してタスクＴ０を含むセルＣ０へと送られる。信号Ｓｃ０を受信すると、Ｃ０は実行トークンを含むので、セルＣ０に含まれる設定トークンが、次のレベルのタスクを含む全てのセル、つまりタスクＴ１、Ｔ２、Ｔ３を含むセルＣ１、Ｃ２、Ｃ３に伝搬することができる。すると、セルＣ１、Ｃ２、Ｃ３はそれぞれ、選択ブロックＢＳにタスク検証信号（それぞれＳ（Ｔ１）、Ｓ（Ｔ２）、Ｓ（Ｔ３）信号）を送る。
タスクＴ０に関連するリソースの設定が完了すると、割り当てブロックＢＡは、リソース設定終了信号Ｓｆを優先度評価ブロックＢＰへと送る。次いでブロックＢＰは、タスクＴ０に対応するメモリライン上の右端の高論理レベルのシフティングを制御する信号Ｓｐを、優先度テーブルＴＰに送る。
【００３７】
これにより、優先度テーブルＴＰのシフトレジスタは初期状態と同じ状態になる（全ての高論理レベルが優先度テーブルＴＰの右に見られる）。次に、優先度評価ブロックＢＰは、優先度テーブルＴＰが初期状態に戻ったことを示す信号Ｓ１を、リソースハンドリングブロックＢＧへ送る。信号Ｓ１の作用により、リソースハンドリングブロックＢＧは、制御信号Ｓ２を選択ブロックＢＳに送り、続いてこの選択ブロックＢＳは、以前に検証された信号Ｓ（Ｔ１）、Ｓ（Ｔ２）、Ｓ（Ｔ３）に対応するタスクを保存する。これにより、タスクＴ１、Ｔ２、Ｔ３のレベルが、実行すべきタスクの新たなレベルとして形成される。更に、対応するｂｓｉ信号により、ブロックＢＳによって検証された各ラインの左シフトが優先度テーブルＴＰで起こる。
次に、初期化段階が始まる。初期化段階は、優先度テーブルＴＰを初期化することからなる。初期化の始めにおいて、右端のシフトレジスタのメモリセルは高論理レベルにある。但し、選択ブロックＢＳによって検証されたタスクに対応するメモリセルは除く。ここで、実行すべきタスクのレベルは、タスクＴ１、Ｔ２、Ｔ３からなる。選択ブロックＢＳによって生成された信号Ｓｃｐｉにより、比較すべきタスクに関してメモリブロックＢＭ１に通知を行うことができる。次に、タスクＴ１、Ｔ２、Ｔ３の各処理時間を表すデータＤ１、Ｄ２、Ｄ３を、ＢＭ２ブロックに組み込まれた第２の比較手段ＭＣ２によって互いに比較する。これにより、優先度テーブルＴＰのシフトレジスタに含まれる高論理レベルは、それらに対応するタスクの時間の方が長いので、更に左にシフトする。シフトは、Ｓｋｉ信号によって実行される。
【００３８】
処理時間の比較及びこれにより生じる高論理レベルのシフトの終了時に、比較終了信号Ｓｄが、ＢＭ２ブロックによってハンドリングブロックＢＧに送達される。ハンドリングブロックＢＧは、Ｓｄ信号を受信すると、利用可能な演算リソースの数を表す信号ＳＲを送達する。次いで、利用可能な演算リソースの数を表す信号ＳＲは、信号Ｓｃｐｉによって選択されたデータＲｉと比較され、第１の比較手段ＭＣ１によって第１のメモリブロックＢＭ１に含められる。ＢＭ１ブロックのメモリラインが、信号ＳＲによって表される値と同じ値を含む場合、Ｓｖｉ信号が優先度テーブルＴＰへ送信される。同じ値を表すデータを含むメモリラインがない場合、信号ＳＲによって表される値は、１つ又は複数のＲｉデータが信号ＳＲによって表される値と同じになるまで減らさられる。
よって、Ｓｖｉ信号によって選択され、左端の高論理レベルを含むシフトレジスタに対応するランクｉのラインは優先ラインであり、このラインに対応する設定検証信号Ｓ（ＣＦＧｉ）が、設定ブロックＢＣに送達される。優先ラインの検出は、優先度評価ブロックＢＰによって、優先度信号Ｓｐの作用下で実施される。これにより、信号Ｓ（ＣＦＧｉ）によって検証された設定ブロックＢＣのラインのコンテンツが、信号Ｓｃｒによってタスク割り当てブロックＢＡに送られる。信号ＳｄｃｉもＣＲコンポーネントに送られ、これにより設定トークンの伝搬が可能となる。しかしながら、設定トークンは、セルが実行トークンを有する場合にのみ伝搬される。タスクＴ１が、リソースの最大数又は最長の実行時間を有するタスクである場合（図１のアプリケーションチャートの場合、タスクＴ１がリソースの最大数を利用する）、設定ＣＦＧ１は、タスク割り当てブロックＢＡに送られる。ＢＡブロックは、ブロックＢＣによって送達された信号Ｓｃｒを介して設定ＣＦＧ１を受信すると、タスクＴ１を利用可能なリソースに割り当てる。タスクの設定が完了すると、タスク設定終了信号Ｓｆが、割り当てブロックＢＡによって優先度評価ブロックＢＰへ送達される。信号Ｓｆは、以前に選択された優先ラインのコンテンツの右端のシフティングを、優先度テーブルＴＰにおいて信号ＳＰを介して制御する。更に、リソース上における設定されたタスクの位置は、信号Ｓ３を介して実行ブロックＢＥに提供される。利用可能なリソースの数のアップデートを要求する信号Ｓｍは、割り当てブロックＢＡによって送達され、リソースハンドリングブロックＢＧへと送信される。
【００３９】
よって、実行すべきタスクレベルの全てのタスクの処理は、そのタスクレベルの最後のタスクまで行われる。全ての高論理レベルが優先度テーブルＴＰの右にのみ見出されるようになったとき、これはこのタスクレベルの処理が完了したことを意味し、信号Ｓ１が、ハンドリングブロックＢＧへと送られることにより、信号Ｓ２によって新たな実行レベルを定義することができる。このタスクスケジューリング方法は、このように、レベルごとに続けられる。
初期化の際にタスクレベルが実行すべき第１のタスクは、設定トークン及び実行トークンを含む。よって、その実行は、設定が完了すると直ぐに開始される。制御に適した再設定可能なコンポーネントＣＲにおける対応するセルは、タスク実行ブロックＢＥに信号ｃｅｌｉを送ることによってその実行を開始する。次に、演算リソース上で前もって設定された実行すべきタスクの位置を認識しているタスク実行ブロックＢＥが、タスクを実行する。タスクの実行の終了時には、信号ｂｅｉが、制御に適した再設定可能なコンポーネントＣＲにおける対応するセルへ送られる。この信号は、優先度の制約に従って、実行トークンを子セルの全てへ伝搬する作用を有している。ここに説明する実施例では、タスクＴ０に対応するセルが、そのトークンをタスクＴ１、Ｔ２、Ｔ３に関連するセルへ伝搬する。実行トークンを受信すると、セルＴ１、Ｔ２、Ｔ３は、その設定トークンを、子セルＴ４、Ｔ５、Ｔ６、Ｔ７、Ｔ８へ伝搬することができ、設定が完了すると直ぐにタスクの実行が開始される。次いでタスクＴ４、Ｔ５、Ｔ６、Ｔ７、Ｔ８が設定を要求し、実行される。
【００４０】
不均一なシステムにおいてタスクのスケジューリングを実行するためには、ハードウェアソリューションに、存在するリソースの種類と同じ数のＢＭ１を組み込むだけでよい。この場合、タスク割り当ては、システムに存在するリソースの全ての種類について自由なリソースの数を考慮することによって行われる。
上述の本発明の好適な実施形態によれば、タスクは、制御に適した再設定可能なコンポーネントに含まれ、優先順位を確立する手段は、バイナリデータを含む１組のシフトレジスタを含む。本発明の別の実施形態によれば、コンポーネントは、制御に適したコンポーネントではなく、処理すべきタスクを含む単純なコンポーネントである。また、優先順位を確立する手段は、いかなるシフトレジスタも含まず、比較の結果に基づいてそのコンテンツを増加させることができる加算器を含み、この場合、加算器による増分は、シフトレジスタのシフトと等価である。
【００４１】
図６Ａ〜６Ｃは、本発明によるタスク処理スケジューリング装置の使用例を示す。スケジューリング装置によって扱われる演算リソースの性質は、同じでも異なっていても（不均一なリソース）よい。これらのコンポーネントによって、オンボード用途に関する性能及びフレキシビリティに対する大きな必要を満たすことができる。本発明は、同じプラットホームで又はより分散した方式で、相補的又は反対の特性を有するコンポーネントをリンクさせることができ、よって、用途の必要に応じた性能、消費、フレキシビリティ及び表面積レベルを提供できる。
【００４２】
図６Ａは、本発明によるタスク処理スケジューリング装置を組み込んだＳｏＣ技術を備えたコンポーネントの第１の実施例を示す。
スケジューリング装置７に加え、コンポーネント８は、マイクロプロセッサ９、ＣＤＭＡ（符号分割多重アクセス方式）用演算ブロック１０、ＩＰ（知的財産）と呼ばれる専用且つ独占ブロック１１、再設定可能な演算ブロック１２、再設定可能な独占演算ブロック１３、及びＭＰＥＧ（エムペグ）用演算ブロック１４を含む。
【００４３】
図６Ｂは、本発明によるスケジューリング装置を組み込んだＳｏＣ技術を備えたコンポーネントの第２の実施例を示す。コンポーネント１５は、異なる不均一なエンティティ、並びに１組のセンサＤを含む。本発明の装置は、コンポーネントの外部に位置し、適切なインターフェース１６によってコンポーネントに接続されたセンサＤも扱う。不均一なリソースとは、ここではマイクロプロセッサ９及び専用の独占ブロック１１である。
図６Ｃは、本発明によるスケジューリング装置を組み込んだＳｏＣ技術を備えたコンポーネントの第３の実施例を示す。本発明の装置によって扱われる１組のエンティティは、ここでは、コンポーネント１７の外側にあり、適切なインターフェース１６を介して本発明の装置によって制御される。
【００４４】
参考文献
[BLAZ86]：  J. Blazewicz、M. Drabowski、及びWeglarzによる「Scheduling Multiprocessor Tasks to Minimize Schedule Length」（IEEE 機械翻訳、35(5):389-393、1989年5月）
[JANS99]：  K. Jansen及びL. Porkolabによる「Improved Approximation Schemes for Scheduling Unrelated Parallel Machines」（In Annual ACM Symposium on Theory of Computing (STOC)、1999年5月）
[BAER73]：  J.L. Baerによる「A Survey of Some Theoretical Aspects of Multiprocessing」（ACM Computing Surveys、5(1):31-80、1973年3月）
[BAKE81]：  B.S. Baker、D.J. Brown、及びH.P. Katseffによる「A 5/4 Algorithm for Two-Dimensional Packing」（Journal of Algorithms、2(4):348-368、1981年6月）
[TOPC02]：  H. Topcuoglu、S. Hariri、及びM-Y. Wuによる「Performance and Low-Complexity Task Scheduling for Heterogeneous Computing」（IEEE Transactions on Parallel and Distributed Systems、13(3):26O-274、2002年3月）
[BELK90]：  K. Belkhale及び. Banerjeeによる「Approximate Scheduling A1gorithms for the Partitionable Independent Task Scheduling Problem」（In the 1990 International Conference of Parallel Processing (ICPP)、1990年8月）
[LI00]:  K. Li及びY. Panによる「Probabilistic Analysis of Scheduling Precedence Constrained Parallel Tasks on Multicomputers with Contiguous Processor Allocation」（IEEE Transactions on Computer、49(10):1021-1030、2000年10月）
[IBAR88]：  T. Ibaraki及びN. Katohによる「Resource Allocation Problems: Algorithmic Approaches」（The MIT Press, Cambridge, USA、1988年）
[PETE81]：  James L. Petersonによる「Petri net theory and the modelling of systems」（Practice Hall, ISBN: 0136619835）
【図面の簡単な説明】
【００４５】
【図１】タスクアプリケーションチャートの一実施例を示す。
【図２】本発明による１つのタスクレベルを処理するためのスケジューリングの原則をフローチャートに示す。
【図３】タスクを処理するためのリソースの数が無限である場合の、タスクを処理するためのスケジューリングの一実施例を示す。
【図４】本発明によるタスクを処理するためのスケジューリングの実施例を示す。
【図５】本発明によるタスクを処理するためのスケジューリング装置を示す。
【図６Ａ】本発明によるタスク処理スケジューリング装置の使用例を示す。
【図６Ｂ】本発明によるタスク処理スケジューリング装置の別の使用例を示す。
【図６Ｃ】本発明によるタスク処理スケジューリング装置の別の使用例を示す。
【図１】
2008508584.tif 000004
【図２】
2008508584.tif 000005
【図３】
2008508584.tif 000006
【図４】
2008508584.tif 000007
【図５】
2008508584.tif 000008
【図６Ａ】
2008508584.tif 000009
【図６Ｂ】
2008508584.tif 000010
【図６Ｃ】
2008508584.tif 000011
【手続補正書】
【提出日】平成19年4月9日(2007.4.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
タスク処理のためのスケジューリング方法であって、タスクを優先順位に従って実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上で当タスクを実行するステップとを含み、
−  優先順位に従って、処理すべき個別のタスクの少なくとも１つのレベルを選択すること（１）、
−  処理すべきタスクレベルにあるタスクを、各タスクの処理に必要なリソースの数と、タスクの特性量とに基づいてソートすることによりタスクの処理における優先順位を規定するステップ（２）、
−  タスクレベルにあるタスクを処理するために利用可能なリソースの数を評価すること（３）、
−  優先順位に従って、タスクレベルにあるタスクを利用可能なリソースへ割り当てること（４）
を含むことを特徴とする方法。
【請求項２】
ソートティングステップ（２）が、タスクの実行に必要なリソースの数によってソーティングを行って処理に必要なリソースの数が大きい順にタスクを処理するための第１のソーティングと、タスクの特性量によりソーティングを行って特性量が小さい順又は大きい順にタスクを処理するための第２のソーティングとを含むことを特徴とする、請求項１に記載のタスク処理のためのスケジューリング方法。
【請求項３】
タスクの特性量が、タスクの処理時間、タスクの実行に必要なリソースの設定時間、タスクの実行時間、タスクに関連する実行時間の制約に応じてタスクの実行に残された時間、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、１つ又は複数のタスクに対する周期性に基づく時間、或いは、上記に列挙した特性量の全部又は一部に基づく時間であることを特徴とする、請求項１または２に記載のタスク処理のためのスケジューリング方法。
【請求項４】
タスクの特性量が、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータのソーティング又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する１つの情報、タスクの実行に関するアルゴリズムの規則性を判定する１つの情報、タスク実行の並列性を判定する１つの情報、タスクの独立した優先度であって、マルチユーザ間で使用される場合に１人のユーザによって与えられる優先度を判定する１つの情報、或いは、上記に列挙した特性量の全部又は一部の関数であることを特徴とする、請求項１または２に記載のタスク処理のためのスケジューリング方法。
【請求項５】
タスクの特性量が、アプリケーションチャートにおけるタスクの位置に関する１つの情報であることを特徴とする、請求項１または２に記載のタスク処理のためのスケジューリング方法。
【請求項６】
タスクを処理する方法であって、タスクを優先順位に従って実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含み、請求項１ないし５のいずれか１項に記載の方法によるタスク処理のスケジューリングを含むことと、リソースの設定及びタスクの実行が、それぞれ設定トークン及び実行トークンによって作動されることとを特徴とする方法。
【請求項７】
タスクを処理するためのスケジューリング装置であって、優先順位に従ってタスクを実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含み、
−  処理すべき１組のタスクを含むコンポーネント（ＣＲ）、
−  優先順位に従って、コンポーネント（ＣＲ）に含まれるタスクの組から、処理される独立のタスクの少なくとも１つのレベルを選択する選択ブロック（ＢＳ）、
−  優先順位に従って選択されたタスクレベルのタスクをソートすることにより、各タスクを処理するために必要なリソースの数と、タスクの特性量とに基づいてタスクを処理する手段（ＢＭ１、ＢＭ２、ＴＰ）、及び
−  優先順位に基づいて、タスクの処理に利用可能なリソースを割り当てる手段（ＢＧ）
を含むことを特徴とする装置。
【請求項８】
選択されたタスクレベルのタスクをソートする手段（ＢＭ１、ＢＭ２、ＴＰ）が、
−  各タスクの処理に必要なリソースの数を表す情報（Ｒ０、Ｒ１、…、ＲＮ）を含む第１のメモリブロック（ＢＭ１）、
−  タスクの特性量を表す複数の情報（Ｄ０、Ｄ１、…、ＤＮ）を含む第２のメモリブロック（ＢＭ２）、
−  このタスクレベルのタスクの特性量を表す複数の情報を互いに比較する第１の比較手段（ＭＣ１）、
−  利用可能なリソースの数をこのタスクレベルのタスクの処理に必要なリソースの数と比較する第２の比較手段（ＭＣ２）、及び
−  第１及び第２の比較手段によって送達された比較結果に基づいて優先順位を確立する手段（ＴＰ）
を含むことを特徴とする、請求項７に記載のタスクを処理するためのスケジューリング装置。
【請求項９】
タスクの特性量が、タスクの処理時間、タスクの実行に必要なリソースの設定時間、タスクの実行時間、タスクに関連する実行時間の制約に応じてタスクの実行に残された時間、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する１つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、１つ又は複数のタスクに対する周期性に基づく時間、或いは、上記に列挙した特性量の全部又は一部に基づく時間であることを特徴とする、請求項７または８に記載の装置。
【請求項１０】
タスクの特性量が、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータのソーティング又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する１つの情報、タスクの実行に関するアルゴリズムの規則性を判定する１つの情報、タスク実行の並列性を判定する１つの情報、タスクの独立の優先度であって、マルチユーザ間で使用される場合に１人のユーザから与えられる優先度を判定する１つの情報、或いは、上記に列挙した特性量の全部又は一部の関数であることを特徴とする、請求項７または８に記載の装置。
【請求項１１】
タスクの特性量が、アプリケーションチャートにおけるタスクの位置に関連する１つの情報であることを特徴とする、請求項７または８に記載の装置。
【国際調査報告】
2008508584.tif 000012
2008508584.tif 000013
2008508584.tif 000014
2008508584.tif 000015
2008508584.tif 000016
2008508584.tif 000017