JP2008508584A - タスク処理のスケジューリング方法及びこの方法を適用するための装置 - Google Patents

タスク処理のスケジューリング方法及びこの方法を適用するための装置 Download PDF

Info

Publication number
JP2008508584A
JP2008508584A JP2007523134A JP2007523134A JP2008508584A JP 2008508584 A JP2008508584 A JP 2008508584A JP 2007523134 A JP2007523134 A JP 2007523134A JP 2007523134 A JP2007523134 A JP 2007523134A JP 2008508584 A JP2008508584 A JP 2008508584A
Authority
JP
Japan
Prior art keywords
task
tasks
processing
priority
time
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.)
Pending
Application number
JP2007523134A
Other languages
English (en)
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 JP2008508584A publication Critical patent/JP2008508584A/ja
Pending legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本発明は、タスクの処理をスケジューリングする方法及びこの方法に関連する装置に関する。本方法及び本装置においては、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、設定されたリソース上でタスクを実行するステップとを含む。本発明の方法は、少なくとも1つの処理すべきタスクレベルを選択する(1)ことからなるステップと、優先順位に従って処理すべきタスクレベルに基づいてタスクをソートすることにより、(i)タスクの処理に必要なリソースの数、及び(ii)タスクの特性時間に応じたタスクの処理の優先順位を決定するステップ(2)とを含む。本発明は、特にオンボードエレクトロニクスの分野に使用するのに適している。

Description

技術分野及び従来技術
本発明は、タスクの処理をスケジューリングする方法、及びその方法を適用するための装置に関する。本発明はまた、タスクの処理方法及びそれに関連する装置に関する。
本発明は、極めて多くの分野、例えばオンボードエレクトロニクス(携帯電話、自動車産業、航空産業等)の分野、場合によってはスーパーコンピュータのような集約的演算用の複雑な分散電子システムの分野に応用される。
今日のオンボードエレクトロニクスは、フレキシビリティ及び性能の面でますます大きな要求に応えなくてはならなくなっている。例えば、マルチメディアの利用分野(携帯電話、可搬式コンピュータ等)では、非専用プロセッサだけではもはや新たな制約に対応するには十分でない。
そのため、再設定可能なブロック、メモリなどを有する複数の専用プロセッサからなるシステムが登場し、一般的にはシステムオンチップ(SoC)技術と呼ばれるオンチップ集積技術が生まれた。SoC技術の性能及びフレキシビリティを向上させるため、コミュニケーションネットワークをチップに集積することにより、チップ上に集積された異なるコンポーネントが相互接続された。一般にネットワークオンチップ(NoC)と呼ばれるこのようなチップ上のネットワークシステムにより、今日、将来の技術を集積するのに適したソリューションが提供される。それでもなお、タスクの並列性の取り扱い及びアプリケーションの最適な実行は、このようなネットワークにおいて解決すべき大きな問題である。
タスクスケジューリングアルゴリズムは広く文献に記載されている。非ダイナミックに並列化可能なタスクを処理するアルゴリズム(プロセッサの数がコンパイル前に判明している)及びソートされたタスクのリストに基づくスケジューリングが、本発明の目的である。別のソリューション、例えば遺伝的アルゴリズムは更に有効であり、これにより結果を改善することができる。しかし、この有効性の高いソリューションは複雑過ぎてシリコンに適用することができず、本発明の範囲ではその利益には限界がある。
Blazewicz等は、全てのタスクが同じ実行時間を有する場合の厳密解を決定する興味深いソリューションを提供している(参考文献[BLAZ86]参照)。しかし、本文献が要求するアルゴリズムは、膨大な計算時間とデータ変換を要する。
Jansen等は、単一のプロセッサ上でのみ実行できる独立のタスクのスケジューリングを考案した(参考文献リスト[JANS99]参照)。彼らは、多項式の複雑性を有し、よって数学的複雑性の小さいソリューションを提供している。このような記載はあったものの、その物理的な実施についての研究により、良い性能を得るにはアプリケーションの複雑性が大きすぎることが明らかになっている。
同様の結果が、本発明の課題に近い研究において証明されている(参考文献リスト[BAER73、BAKE81]参照)。他のソリューションは、タスクを実行するために残された時間を評価する手段を必要とする(参考文献[TOPC02]及び米国特許第6567840号明細書参照)。しかし、これは非同期システムを意図したものではなく、ダイナミックなスケジューリングは連続的なアップデートを必要とするので大量の電力を消費する。
他の結果にも、有用なリソースの数に従ってタスクをソートすることが、複雑性及び結果として得られる実行時間の面から特に興味深いことが示されている(参考文献[LI00]及び[IBAR88]参照)。リソースにタスクを割り当てるための文献に記載されている主な改良は、タスク実行のために有用なリソースの数をダイナミックに変化させることである。しかしながら、タスクのコンパイルは必要なリソースの数に依存するため、物理的なソリューションの範囲内でこれを利用することはできない。
本発明の説明
本発明によるタスク処理スケジューリングアルゴリズムは、上述の欠点を有さない。
本発明は、タスクを処理するためのスケジューリング方法に関し、優先順位に従ってタスクを実行するものであり、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含む。本方法は、
− 処理すべきタスクの少なくとも1つのレベルを選択すること、
− 優先順位に従って処理すべきタスクレベルにあるタスクをソートすることにより、タスクの処理に必要なリソースの数とタスクの特性量とに基づいてタスク処理の優先順位を決定するステップ
− 前記タスクのレベルで、タスクの処理に利用可能なリソースの数を評価すること、及び
− 優先順位に従って利用可能なリソースに前記タスクレベルのタスクを割り当てること
を含むことを特徴としている。
本発明の更なる特徴によれば、ソートするステップは、タスクの実行に必要なリソースの数によってソーティングを行ってタスクの処理に必要なリソースの数が大きい順にタスクを処理するための第1のソーティングと、タスクの特性量によってソーティングを行ってタスクの特性量の小さい順又は大きい順にタスクを処理するための第2のソーティングを含む。
本発明の第1の変形例によれば、第1のソーティングを第2のソーティングの前に行い、第2のソーティングは、複数のタスクの処理に必要なリソースの数が、それらタスクの全てで同じである場合に直ぐに適用される。
本発明の第2の変形例によれば、第2のソーティングを第1のソーティングの前に行い、第1のソーティングは、複数のタスクに対するタスクの特性量が、それらタスクの全てで同じである場合に直ぐに適用される。
本発明の更に別の特徴によれば、タスクの特性量は、タスクの処理時間、タスクの実行に必要なリソースを設定する時間、タスクの実行時間、タスクに関する実行時間の制約に応じてタスクの実行に残された時間、優先度の順番において上位に位置する1つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する1つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、1つ又は複数のタスクに対する周期性に基づく時間、或いは上記特性量の全部又は一部に基づく時間である。
本発明の更なる特徴によれば、タスクの特性量は、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータのソーティング又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する1つの情報、タスクの実行に関するアルゴリズムの規則性を判定する1つの情報、タスクの実行の並列性を判定する1つの情報、タスクの独立した優先度であって、マルチユーザで使用される場合に1人のユーザによって与えられた優先度を判定する1つの情報、或いは上記特性量の全部又は一部の関数である。
本発明の更に別の特徴によれば、タスクの特性量は、アプリケーションチャート上でのタスクの位置に関する1つの情報である。
本発明の更に別の特徴によれば、前記アプリケーションチャート上でのタスクの位置に関する1つの情報は、アプリケーションチャートの処理時間に課された時間的制約の終了までにタスクの実行に残された時間、アプリケーションチャートの終了前に未処理で残っているタスクの最大数、タスクの優先度の順番において上位に位置するタスクの最大数、タスクの優先度の順番において上位に位置するタスクの実行時間の合計、或いは上記量の全部又は一部の関数である。
本発明の更に別の特徴によれば、タスクレベルは、このタスクレベルにあるタスクの優先度の制約を検証することによって定義される。
本発明の更に別の特徴によれば、優先順位に応じた利用可能なリソースの割り当ては、前記タスクレベルの全てのタスクが処理されるまでダイナミックに繰り返される。
本発明の更に別の特徴によれば、ランクGのタスクレベルの処理は、ランクGのタスクレベルに先行するランクG−1のタスクレベルの全てのタスクが設定されると直ぐに開始される。
本発明はタスクの処理方法にも関し、タスクを優先順位に従って実行するものであって、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含む。この処理方法は、本発明の方法によるタスクの処理のスケジューリングを含むことと、リソースの設定及びタスクの実行が、設定トークン及び実行トークンによってそれぞれ始動されることとを特徴としている。
本発明は、タスクの処理をスケジューリングする装置にも関し、タスクは優先順位に従って実行され、タスクの処理は、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含む。この装置は、
− 処理すべき1組のタスクを含むコンポーネント、
− コンポーネントに含まれるタスクの組から、処理すべきタスクの少なくとも1つのレベルを選択するための選択ブロック、
− 優先順位に従って選択されたタスクレベルにあるタスクをソートすることにより、タスクの処理に必要なリソースの数とタスクの特性量とに基づいてタスクを処理する手段、並びに
− 優先順位に従って利用可能なリソースをタスクの処理に割り当てる手段
を備えることを特徴としている。
本発明の更なる特徴によれば、選択されたタスクレベルにあるタスクをソートする手段は、
− 各タスクの処理に必要なリソースの数を表す情報を含む第1のメモリブロック、
− タスクの特性量を表す情報を含む第2のメモリブロック、
− 前記タスクレベルにおけるタスクの特性量を表す情報を互いに比較するための第1の比較手段、
− 利用可能なリソースの数と、前記タスクレベルにあるタスクの処理に必要なリソースの数とを比較する第2の比較手段、並びに
− 第1及び第2の比較手段によって送達される比較結果に基づいて優先順位を確立する手段
を含む。
本発明の更なる特徴によれば、比較結果に基づいて優先順位を確立する前記手段は、バイナリデータを含む1組のシフトレジスタを含む。
本発明の更なる特徴によれば、処理すべき1組のタスクを含むコンポーネントは、制御に適した再設定可能なコンポーネントであって、実行すべきタスクに適用されるチャートのN+1個の状態を表すN+1個のセルを含み、各セルは実行すべきタスクと、チャートの異なる状態を繋ぐ再設定可能な相互接続ネットワークとを含む。
本発明の更なる特徴によれば、タスクを選択するブロックは、処理すべきタスクレベルにある1つ又は複数のタスクの処理を拒否することによりシステムの縮退運用を可能にする手段を含み、これにより、利用可能な最大エネルギー又は電力、タスクレベルに課された時間の制約、演算、保存又は通信リソースの利用可能性の制約、外部媒体との電磁的な互換性の制約、或いは上記状態の全部又は一部等の環境状態が遵守される。
本発明はタスクを処理する装置にも関し、本装置は、制御に適した再設定可能なコンポーネントを含む本発明によるタスクをスケジューリングする装置と、相互接続ネットワーク内を移動することにより、それぞれタスクの設定及びタスクの実行を作動する設定トークン及び実行トークンとを含むことを特徴としている。
本発明によるタスク処理のスケジューリング方法によって、独立するタスクのスケジューリングの性能を有意に増大させることが可能となる。本発明の方法を利用する装置は、複数のエンティティから構成される。実行されるタスクは、既知の実行時間及び特性量を有する、ノンプリエンプティブ(つまり割り込みされない)で非展開性の(つまり、実行に有用なリソースの数が前もって判明している)タスクである。
本発明によるスケジューリング方法は、同じタスクを処理するためのリソースの連続的な割り当てを促進する。この方法は、タスクの総実行時間を最小化し、リソースの利用を促進する。
本発明によるスケジューリング方法は、演算リソースの割当て及び解放をダイナミックに扱い、必要に応じてリソースの自己適応を可能にする。この方法は、優先度の制約を考慮に入れながら、実行前にリソースを設定することを可能にし、任意の数の同種又は異種のリソースから構成されるシステムに適用できる。異種のリソースとは、異なる性質(メモリ、マイクロプロセッサ、再設定可能なブロック、IP(知的所有権)、インターフェース、バス等)のリソースを意味する。
本発明の別の特徴及び利点は、添付図面を参照して説明される好適な実施形態により明らかにする。
全図面において、同じ記号は同じコンポーネントを指す。
発明の実施形態の詳細な説明
図1は、実行すべきタスクの例示的なアプリケーションチャートである。ノードはタスクを表し、ノードを繋ぐ矢印は、タスクが実行されるべき順番又は優先順位を表している。
本方法を実行する前に、以下の情報が既知である。
− タスクが実行されるべき優先順位(以下参照)、
− タスクを処理するために利用可能な演算リソースの総数、
− 各タスクの処理に必要な時間
「タスクの処理に必要な時間」とは、タスクの実行に寄与すべきリソースを設定するための時間と、それにより設定されたリソースでタスクを実行する時間との合計に等しい時間を意味する。リソースを設定するための時間とは、タスクの実行に必要な操作がリソース上で設定される時間である。
タスクはレベルごとに実行される。優先度の制約は、タスクのレベルの定義、並びに同じレベル内でのタスク実行のアプリケーションを条件付けるものである。
処理すべき12個のタスクT0〜T11の優先順位は、ここでは次の通りである。
− タスクT0は、タスクT1、T2及びT3の前に実行しなければならない。
− タスクT1は、タスクT4、T5及びT6の前に実行しなければならない。
− タスクT2は、タスクT5及びT6の前に実行しなければならない。
− タスクT3は、タスクT7及びT8の前に実行しなければならない。
− タスクT4、T5及びT6はそれぞれ、タスクT9の前に実行しなければならない。
− タスクT7及びT8はそれぞれ、タスクT10の前に実行しなければならない。
− タスクT9及びT10は、タスクT11の前に実行しなければならない。
一般的には、いずれのアプリケーションチャートについても、ランクGのタスクのレベルには、ランクG−1という1つ前のタスクレベルにあるタスクの実行の終了に直接的に依存して実行が開始される全てのタスクが含まれる。
よって、図1の選択された実施例では、5つの一連のタスクレベルが存在する。つまり、
− タスクT0を含むレベルN0、
− タスクT1、T2、T3を含むレベルN1、
− タスクT4、T5、T6、T7、T8を含むレベルN2、
− タスクT9及びT10を含むレベルN3、及び
− タスクT11を含むレベルN4。
後述では、説明を簡単にするために、1つ又は複数のいわゆる「子タスク」に対して1つのタスクを「親タスク」と呼ぶことがあり、それは、子タスクの実行開始が親タスクの実行完了に直接的に依存する場合である。よって、非限定的な例として、タスクT1は、3つの子タスクT4、T5、T6の親タスクであり、タスクT2も、2つの子タスクT5及びT6の親タスクである。
図2に、本発明によるタスクのレベルのスケジューリング方法の原理を表すフローチャートを示す。
本方法の第1のステップは、タスクの優先順位に従って処理すべきタスクのレベルを選択することからなる(ステップ1)。タスクレベルを選択したら、そのタスクレベルのタスクをソートしてタスクを処理するための優先順位を確立する(ステップ2)。
本発明の好適な実施形態によれば、ソーティングステップの間に、まず実行に必要なリソースの数の大きい順にタスクをソートし、リソースの数が複数のタスク間で同一である場合には、それらを処理時間の大きい順にソートする(上述のように、タスクの処理時間は、タスクに作用するリソースを設定するための時間と、設定されたリソース上でのタスクの実行時間との合計である)。このようにして定義された優先順位によって、最も多くのリソースを使用する1つ又は複数のタスクの処理が優先され、リソースの数が同じ場合は最も長い処理時間を要するタスクの処理が優先される。
本発明の別の実施形態も可能である。よって、タスクの処理時間によるソーティングを、リソースの数によるソーティングに先行させてもよい。その場合、最も長い時間で処理されるタスクの処理が優先され、時間が同じ場合は最も多いリソースを使用するタスクの処理が優先される。
処理すべきタスクの別の特性量による他のソーティング基準も本発明の範囲内で使用することができる。
タスクを処理するための時間以外に、タスクの特性量は、タスクの実行に必要なリソースを設定する時間、タスクの実行時間、タスクに関する実行時間の制約に応じてタスクの実行に残された時間、タスクの優先度の順番において上位に位置する1つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する1つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、1つ又は複数のタスクに対する周期性に基づく時間、或いは上記の特性量の全部又は一部に基づく時間とすることができる。
タスクの特性量は、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータの保存又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する1つの情報、タスクの実行に関するアルゴリズムの規則性を判定する1つの情報、タスクの実行の並列性を判定する1つの情報、タスクの独立した優先度であって、マルチユーザで使用される場合に1人のユーザによって与えられた優先度を判定する1つの情報、或いは上記の特性量の全部又は一部の関数とすることができる。
タスクの特性量は、アプリケーションチャートにおけるタスクの位置に関連する1つの情報でもよい。このアプリケーションチャートにおけるタスクの位置に関連する1つの情報は、アプリケーションチャートの処理時間に課された時間的制約の終了までにタスクを実行するために残された時間、アプリケーションチャートの終了前に未処理で残っているタスクの最大数、タスクの優先度の順番において上位に位置するタスクの最大数、タスクの優先度の順番において上位に位置するタスクの実行時間の合計、或いは上記の量の全部又は一部の関数でよい。
優先順位によってタスクをソートしたら、利用可能なリソースの数を評価する(ステップ3)。次に、先立って確立された優先順位に従って、タスクの処理のために、タスクを利用可能なリソースに割り当てる(ステップ4)。続いてタスクの処理を実行する(ステップ5)。利用可能なリソースの数を評価するステップ、利用可能なリソースにタスクを割り当てるステップ及びタスクを処理するステップを、処理されていないタスクがある限り繰り返す(ステップ6)。タスクをダイナミックに割り当てる機構はまた、そのレベルの全てのタスクが処理されるまで繰り返す(ステップ5からステップ4へ戻る)。
図1に示すグラフのようなタスクアプリケーションチャートの本発明による実施について以下に説明する。
本発明の範囲内では、タスクを処理するためのリソースの総数が制限されている。非限定的な例では、タスクTi(i=0、1、2、…、11)の実行に必要なリソースの数Riは、以下の表の通りである。
Figure 2008508584
後述では、「configTi」という表記は、タスクTiを実行するリソースを設定する時間を表し、表記「execTi」は、設定されたリソース上でタスクTiを実行する時間を表す。よって、「execTi」という時間は、「configTi」時間の後に来る。
図3に、タスクを処理するためのリソースの数が制限されていない場合の、例示的なタスクのスケジューリングを示す。従って、図3の実施例によるタスクのスケジューリングは、本発明の範囲に含まれない。この実施例は、設定ステップとタスクを実行するステップとの間に存在する理想的な構造を単に教示的に説明するものである。
タスクT0は、実行すべき第1のタスクであり、タスクの第1のレベルN0を表す。この時、タスクT0を実行するためのリソースは、「configT0」時間で設定され、設定が完了したら、タスクはそのリソース上で「execT0」時間で実行される。
「configT0」時間が終了したら、タスクの第2のレベルN1を形成するタスクT1、T2、T3の優先度の制約が検証される。リソースの数は無限であるので、タスクT1、T2及びT3の実行に必要なリソースは、必要な数のリソースを用いて、「configT1」、「configT2」、「configT3」の各時間で同時に設定される。「execT0」時間が終了すると直ぐに、設定操作によってリソースが支配されていないタスクの実行が開始される。この場合、選択された実施例によれば、「execT1」及び「execT3」時間は同時に開始され、「execT2」時間は「configT2」時間が終了した時にのみ開始される。
タスクT2(レベルN1の最後のタスク)の設定時間の終了と同時に、タスクの第3のレベルN2を形成するタスクT4、T5、T6、T7及びT8の優先度の制約が検証される。続いて、タスクT4、T5、T6、T7及びT8の実行に必要なリソースが設定される。「configT4」、「configT5」、「configT6」、「configT7」、「configT8」時間が、必要な数のリソースを用いて同時に開始される。続いて、タスクT4、T5、T6、T7及びT8が実行され、その一方で優先度の制約の検証が監視される。
この方法は、このようにレベルごとに続けられ、前のレベルの全てのタスクが設定されたら直ぐに新しいタスクレベルの処理が開始される。
本発明の範囲内では、リソースの数が制限されており、タスクの処理をリソースへ割り当てるために優先順位を確立しなければならない。図4に、リソースの数が4個に制限されている場合の本発明のスケジューリング方法を、非限定的な実施例として示す。
任意のレベルのタスクは、前のレベルの全てのタスクが設定されると直ぐに開始される。従って、レベルN1のタスクの設定は、タスクT0の設定が完了した時、つまりタスクT0の実行が開始された時に開始される。タスクT0が単一のリソース上で実行されており、利用可能なリソースの総数が4に等しいので、利用可能なリソースは3に等しい。よって、3つという利用可能なリソースの制限内で最多(3つ)のリソースを使用するタスクはタスクT3であるので、開始されるのはタスクT3の設定である。次いで、タスクT3の設定後にタスクT3が実行され、タスクT0の実行が完了した時、利用可能となるリソースがタスクT2の設定に使用され、その後タスクT2が実行される。タスクT2が実行されている間は、3個のリソースしか利用できない。よって、4個のリソースを必要とするタスクT1の設定は実施できない。タスクT2の実行が完了すると直ぐ、タスクT1の設定を開始することができる。タスクT1の設定の終了時には、レベルN1の全てのタスクが設定されており、タスクT4、T5、T6、T7及びT8で構成されたレベルN2が形成される。
この方法は、このようにしてレベルごとに続けられ、処理すべき新しいタスクレベルが、前のレベルの全てのタスクが設定されると直ぐに開始される。
図5に、本発明の好適な実施形態によるタスクスケジューリング方法を実行するための装置を示す。
この装置は、実行すべきタスクの組を含む制御に適した再設定可能なコンポーネントCR、所与の瞬間に同じレベルの全てのタスクを選択することができるレベル選択ブロックBS、各タスクの実行に必要なリソースの数を表す情報を含む第1のメモリブロックBM1及び第1の比較手段、各タスクの特性量を表す情報(好適にはタスク処理時間)を含む第2のメモリブロックBM2及び第2の比較手段、タスクが処理されるべき優先順位をダイナミックに示す優先度テーブルTP、各タスクに関連するリソースを設定するのに必要な設定データを含む設定ブロックBC、タスクを設定する機能を有するタスク割り当てブロックBA、優先度テーブルTPにおいて優先度を有するタスクの位置を示す優先度評価ブロックBp、リソースハンドリングブロックBG、並びにタスク実行ブロックBEを含む。
制御に適した再設定可能なコンポーネントCRは、例えば、2001年8月31日に公開された仏国特許第2795840号に記載のものである。それは、アプリケーションチャートのN+1個の状態を表すN+1個のセルCi(i=0、1、2、…、N)と、異なる状態を接続する再設定可能な相互接続ネットワークとからなる。各セルCiは、タスクTiを含む。2つのトークンは、タスクの優先度の制約の検証に基づいてアプリケーションチャート内を移動する。設定及び優先度の制約が時間と共に変化すると、「設定トークン」と呼ばれる第1のトークンが相互接続ネットワーク内を移動してタスクの設定を作動させる。実行及び優先度の制約が時間と共に変化すると、「実行トークン」と呼ばれる第2のトークンが相互接続ネットワーク内を移動してタスクの実行を作動させる。トークンは、優先度の制約及びこのような制約の検証に従って、セル間における検証信号の伝搬を表す。優先度の制約が検証されたら、セルはそのトークンを子セルに伝搬する。このような機構はグラフ理論の範囲内で、具体的にはペトリ(Petri)のグラフ理論(参考文献[PETE81]参照)の範囲内で既知である。
概して、親タスクは、実行トークンを受信すると直ぐに、設定トークンを子タスクに送る。この構成は、いずれの親タスクにも依存せず、したがって設定が始まると直ぐに子タスクに設定トークンを送ることができるアプリケーションチャートのソースタスクには無関係である。アプリケーションチャートの実行が開始されるとき、ソースタスク(選択された実施例ではタスクT0)は設定トークン及び実行トークンを含む。
ブロックBM1、BM2、TP及びBCに含まれるデータは、データのN+1個のラインとして構成され、各データラインは異なるタスクに対応する。その結果、
− 各タスクの実行に必要なリソースの数を表すデータRi(i=0、1、2、…、N)が、メモリブロックBM1にN+1個のデータラインとして構成され、
− メモリブロックBM2に含まれるタスクの処理時間を表すデータDi(i=0、1、2、…、N)が、N+1個のデータラインとして構成され、
− 優先度テーブルTPが、シフトレジスタのN+1個のラインから構成され、ランクi(i=0、1、2、…、N)のラインのシフトレジスタが、タスクTiの優先度ランクを表す1組のバイナリデータを含み、
− リソースRiの設定に必要な設定データCFGi(i=0、1、2、…、N)が、N+1個のデータラインとして構成される。
次に、図5に示す装置の操作を、図1のアプリケーションチャートを参照して説明する。
初期状態において、タスクの処理を開始する前には、優先度テーブルの全てのラインのシフトレジスタが同じ状態にある。よって、例えば、同じラインの、一番端をのぞく全てのレジスタのバイナリ値が「0」であり、例えば右端(図面を参照)に位置するシフトレジスタのバイナリ値が「1」(高論理レベル)である。
アプリケーションチャートの処理の開始時には、タスクT0を含むチャートのセルC0は、設定トークン及び実行トークンを含む。この時、タスクT0は、実行すべきタスクレベルを形成する唯一のタスクであるので、処理の優先権を持つタスクである。次に、タスクT0に対応するメモリラインにおいて、右端の高論理レベルは、ブロックBSによって送達された信号bs0の作用により左にシフトする。続いて、タスクT0の実行に必要なリソースが、割り当てブロックBAによって設定される。この目的のために、タスクT0に対するリソースの設定に必要なCFG0データが、設定ブロックBCから信号Scrを介して割り当てブロックBAへと送られる。タスクT0に関連するリソースの設定が開始することを示す信号Sc0も、設定ブロックBCから、ブロックTP、BM2、BM1、BSを介してタスクT0を含むセルC0へと送られる。信号Sc0を受信すると、C0は実行トークンを含むので、セルC0に含まれる設定トークンが、次のレベルのタスクを含む全てのセル、つまりタスクT1、T2、T3を含むセルC1、C2、C3に伝搬することができる。すると、セルC1、C2、C3はそれぞれ、選択ブロックBSにタスク検証信号(それぞれS(T1)、S(T2)、S(T3)信号)を送る。
タスクT0に関連するリソースの設定が完了すると、割り当てブロックBAは、リソース設定終了信号Sfを優先度評価ブロックBPへと送る。次いでブロックBPは、タスクT0に対応するメモリライン上の右端の高論理レベルのシフティングを制御する信号Spを、優先度テーブルTPに送る。
これにより、優先度テーブルTPのシフトレジスタは初期状態と同じ状態になる(全ての高論理レベルが優先度テーブルTPの右に見られる)。次に、優先度評価ブロックBPは、優先度テーブルTPが初期状態に戻ったことを示す信号S1を、リソースハンドリングブロックBGへ送る。信号S1の作用により、リソースハンドリングブロックBGは、制御信号S2を選択ブロックBSに送り、続いてこの選択ブロックBSは、以前に検証された信号S(T1)、S(T2)、S(T3)に対応するタスクを保存する。これにより、タスクT1、T2、T3のレベルが、実行すべきタスクの新たなレベルとして形成される。更に、対応するbsi信号により、ブロックBSによって検証された各ラインの左シフトが優先度テーブルTPで起こる。
次に、初期化段階が始まる。初期化段階は、優先度テーブルTPを初期化することからなる。初期化の始めにおいて、右端のシフトレジスタのメモリセルは高論理レベルにある。但し、選択ブロックBSによって検証されたタスクに対応するメモリセルは除く。ここで、実行すべきタスクのレベルは、タスクT1、T2、T3からなる。選択ブロックBSによって生成された信号Scpiにより、比較すべきタスクに関してメモリブロックBM1に通知を行うことができる。次に、タスクT1、T2、T3の各処理時間を表すデータD1、D2、D3を、BM2ブロックに組み込まれた第2の比較手段MC2によって互いに比較する。これにより、優先度テーブルTPのシフトレジスタに含まれる高論理レベルは、それらに対応するタスクの時間の方が長いので、更に左にシフトする。シフトは、Ski信号によって実行される。
処理時間の比較及びこれにより生じる高論理レベルのシフトの終了時に、比較終了信号Sdが、BM2ブロックによってハンドリングブロックBGに送達される。ハンドリングブロックBGは、Sd信号を受信すると、利用可能な演算リソースの数を表す信号SRを送達する。次いで、利用可能な演算リソースの数を表す信号SRは、信号Scpiによって選択されたデータRiと比較され、第1の比較手段MC1によって第1のメモリブロックBM1に含められる。BM1ブロックのメモリラインが、信号SRによって表される値と同じ値を含む場合、Svi信号が優先度テーブルTPへ送信される。同じ値を表すデータを含むメモリラインがない場合、信号SRによって表される値は、1つ又は複数のRiデータが信号SRによって表される値と同じになるまで減らさられる。
よって、Svi信号によって選択され、左端の高論理レベルを含むシフトレジスタに対応するランクiのラインは優先ラインであり、このラインに対応する設定検証信号S(CFGi)が、設定ブロックBCに送達される。優先ラインの検出は、優先度評価ブロックBPによって、優先度信号Spの作用下で実施される。これにより、信号S(CFGi)によって検証された設定ブロックBCのラインのコンテンツが、信号Scrによってタスク割り当てブロックBAに送られる。信号SdciもCRコンポーネントに送られ、これにより設定トークンの伝搬が可能となる。しかしながら、設定トークンは、セルが実行トークンを有する場合にのみ伝搬される。タスクT1が、リソースの最大数又は最長の実行時間を有するタスクである場合(図1のアプリケーションチャートの場合、タスクT1がリソースの最大数を利用する)、設定CFG1は、タスク割り当てブロックBAに送られる。BAブロックは、ブロックBCによって送達された信号Scrを介して設定CFG1を受信すると、タスクT1を利用可能なリソースに割り当てる。タスクの設定が完了すると、タスク設定終了信号Sfが、割り当てブロックBAによって優先度評価ブロックBPへ送達される。信号Sfは、以前に選択された優先ラインのコンテンツの右端のシフティングを、優先度テーブルTPにおいて信号SPを介して制御する。更に、リソース上における設定されたタスクの位置は、信号S3を介して実行ブロックBEに提供される。利用可能なリソースの数のアップデートを要求する信号Smは、割り当てブロックBAによって送達され、リソースハンドリングブロックBGへと送信される。
よって、実行すべきタスクレベルの全てのタスクの処理は、そのタスクレベルの最後のタスクまで行われる。全ての高論理レベルが優先度テーブルTPの右にのみ見出されるようになったとき、これはこのタスクレベルの処理が完了したことを意味し、信号S1が、ハンドリングブロックBGへと送られることにより、信号S2によって新たな実行レベルを定義することができる。このタスクスケジューリング方法は、このように、レベルごとに続けられる。
初期化の際にタスクレベルが実行すべき第1のタスクは、設定トークン及び実行トークンを含む。よって、その実行は、設定が完了すると直ぐに開始される。制御に適した再設定可能なコンポーネントCRにおける対応するセルは、タスク実行ブロックBEに信号celiを送ることによってその実行を開始する。次に、演算リソース上で前もって設定された実行すべきタスクの位置を認識しているタスク実行ブロックBEが、タスクを実行する。タスクの実行の終了時には、信号beiが、制御に適した再設定可能なコンポーネントCRにおける対応するセルへ送られる。この信号は、優先度の制約に従って、実行トークンを子セルの全てへ伝搬する作用を有している。ここに説明する実施例では、タスクT0に対応するセルが、そのトークンをタスクT1、T2、T3に関連するセルへ伝搬する。実行トークンを受信すると、セルT1、T2、T3は、その設定トークンを、子セルT4、T5、T6、T7、T8へ伝搬することができ、設定が完了すると直ぐにタスクの実行が開始される。次いでタスクT4、T5、T6、T7、T8が設定を要求し、実行される。
不均一なシステムにおいてタスクのスケジューリングを実行するためには、ハードウェアソリューションに、存在するリソースの種類と同じ数のBM1を組み込むだけでよい。この場合、タスク割り当ては、システムに存在するリソースの全ての種類について自由なリソースの数を考慮することによって行われる。
上述の本発明の好適な実施形態によれば、タスクは、制御に適した再設定可能なコンポーネントに含まれ、優先順位を確立する手段は、バイナリデータを含む1組のシフトレジスタを含む。本発明の別の実施形態によれば、コンポーネントは、制御に適したコンポーネントではなく、処理すべきタスクを含む単純なコンポーネントである。また、優先順位を確立する手段は、いかなるシフトレジスタも含まず、比較の結果に基づいてそのコンテンツを増加させることができる加算器を含み、この場合、加算器による増分は、シフトレジスタのシフトと等価である。
図6A〜6Cは、本発明によるタスク処理スケジューリング装置の使用例を示す。スケジューリング装置によって扱われる演算リソースの性質は、同じでも異なっていても(不均一なリソース)よい。これらのコンポーネントによって、オンボード用途に関する性能及びフレキシビリティに対する大きな必要を満たすことができる。本発明は、同じプラットホームで又はより分散した方式で、相補的又は反対の特性を有するコンポーネントをリンクさせることができ、よって、用途の必要に応じた性能、消費、フレキシビリティ及び表面積レベルを提供できる。
図6Aは、本発明によるタスク処理スケジューリング装置を組み込んだSoC技術を備えたコンポーネントの第1の実施例を示す。
スケジューリング装置7に加え、コンポーネント8は、マイクロプロセッサ9、CDMA(符号分割多重アクセス方式)用演算ブロック10、IP(知的財産)と呼ばれる専用且つ独占ブロック11、再設定可能な演算ブロック12、再設定可能な独占演算ブロック13、及びMPEG(エムペグ)用演算ブロック14を含む。
図6Bは、本発明によるスケジューリング装置を組み込んだSoC技術を備えたコンポーネントの第2の実施例を示す。コンポーネント15は、異なる不均一なエンティティ、並びに1組のセンサDを含む。本発明の装置は、コンポーネントの外部に位置し、適切なインターフェース16によってコンポーネントに接続されたセンサDも扱う。不均一なリソースとは、ここではマイクロプロセッサ9及び専用の独占ブロック11である。
図6Cは、本発明によるスケジューリング装置を組み込んだSoC技術を備えたコンポーネントの第3の実施例を示す。本発明の装置によって扱われる1組のエンティティは、ここでは、コンポーネント17の外側にあり、適切なインターフェース16を介して本発明の装置によって制御される。
参考文献
[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)
タスクアプリケーションチャートの一実施例を示す。 本発明による1つのタスクレベルを処理するためのスケジューリングの原則をフローチャートに示す。 タスクを処理するためのリソースの数が無限である場合の、タスクを処理するためのスケジューリングの一実施例を示す。 本発明によるタスクを処理するためのスケジューリングの実施例を示す。 本発明によるタスクを処理するためのスケジューリング装置を示す。 本発明によるタスク処理スケジューリング装置の使用例を示す。 本発明によるタスク処理スケジューリング装置の別の使用例を示す。 本発明によるタスク処理スケジューリング装置の別の使用例を示す。

Claims (23)

  1. タスク処理のためのスケジューリング方法であって、タスクを優先順位に従って実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上で当タスクを実行するステップとを含み、
    − 優先順位に従って、処理すべき個別のタスクの少なくとも1つのレベルを選択すること(1)、
    − 処理すべきタスクレベルにあるタスクを、各タスクの処理に必要なリソースの数と、タスクの特性量とに基づいてソートすることによりタスクの処理における優先順位を規定するステップ(2)、
    − タスクレベルにあるタスクを処理するために利用可能なリソースの数を評価すること(3)、
    − 優先順位に従って、タスクレベルにあるタスクを利用可能なリソースへ割り当てること(4)
    を含むことを特徴とする方法。
  2. ソートティングステップ(2)が、タスクの実行に必要なリソースの数によってソーティングを行って処理に必要なリソースの数が大きい順にタスクを処理するための第1のソーティングと、タスクの特性量によりソーティングを行って特性量が小さい順又は大きい順にタスクを処理するための第2のソーティングとを含むことを特徴とする、請求項1に記載のタスク処理のためのスケジューリング方法。
  3. 第1のソーティングが第2のソーティングに先行し、第2のソーティングは、複数のタスクの処理に必要なリソースの数が前記複数のタスクについて同じになったら直ぐに適用されることを特徴とする、請求項2に記載のタスク処理のためのスケジューリング方法。
  4. 第2のソーティングが第1のソーティングに先行し、第1のソーティングは、複数のタスクに対するタスクの特性量が前記複数のタスクについて等しくなったら直ぐに適用されることを特徴とする、請求項2に記載のタスク処理のためのスケジューリング方法。
  5. タスクの特性量が、タスクの処理時間、タスクの実行に必要なリソースの設定時間、タスクの実行時間、タスクに関連する実行時間の制約に応じてタスクの実行に残された時間、タスクの優先度の順番において上位に位置する1つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する1つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、1つ又は複数のタスクに対する周期性に基づく時間、或いは、上記に列挙した特性量の全部又は一部に基づく時間であることを特徴とする、請求項1ないし4のいずれか1項に記載のタスク処理のためのスケジューリング方法。
  6. タスクの特性量が、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータのソーティング又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する1つの情報、タスクの実行に関するアルゴリズムの規則性を判定する1つの情報、タスク実行の並列性を判定する1つの情報、タスクの独立した優先度であって、マルチユーザ間で使用される場合に1人のユーザによって与えられる優先度を判定する1つの情報、或いは、上記に列挙した特性量の全部又は一部の関数であることを特徴とする、請求項1ないし4のいずれか1項に記載のタスク処理のためのスケジューリング方法。
  7. タスクの特性量が、アプリケーションチャートにおけるタスクの位置に関する1つの情報であることを特徴とする、請求項1ないし4のいずれか1項に記載のタスク処理のためのスケジューリング方法。
  8. アプリケーションチャートにおけるタスクの位置に関する1つの情報が、アプリケーションチャートの処理時間に課された時間的制約の終了前にタスクを実行するために残された時間、アプリケーションチャートの終了前に未処理で残っているタスクの最大数、タスクの優先度の順番において上位に位置するタスクの最大数、タスクの優先度の順番において上位に位置するタスクの実行時間の合計、或いは、上記に列挙した量の全部又は一部の関数であることを特徴とする、請求項7に記載のタスク処理のためのスケジューリング方法。
  9. 独立のタスクのレベルが、このタスクレベルにあるタスクの優先度の制約を検証することによって規定されることを特徴とする、請求項1ないし8のいずれか1項に記載のタスク処理のためのスケジューリング方法。
  10. 優先順位に基づく利用可能なリソースの割り当てが、タスクレベルの全てのタスクが処理されるまでダイナミックに繰り返されることを特徴とする、請求項1ないし9のいずれか1項に記載のタスク処理のためのスケジューリング方法。
  11. ランクGのタスクレベルの処理が、ランクGのタスクレベルに先行するランクG−1のタスクレベルにある全てのタスクの設定が完了すると直ぐに開始されることを特徴とする、請求項1ないし10のいずれか1項に記載のタスク処理のためのスケジューリング方法。
  12. 処理すべきタスクレベルの1つ又は複数のタスクの処理を拒否することにより縮退運用を可能にするステップを含むことを特徴とする、請求項1ないし11のいずれか1項に記載のタスク処理のためのスケジューリング方法。
  13. タスクを処理する方法であって、タスクを優先順位に従って実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含み、請求項1ないし12のいずれか1項に記載の方法によるタスク処理のスケジューリングを含むことと、リソースの設定及びタスクの実行が、それぞれ設定トークン及び実行トークンによって作動されることとを特徴とする方法。
  14. タスクを処理するためのスケジューリング装置であって、優先順位に従ってタスクを実行し、タスクの処理が、タスクの実行に必要なリソースを設定するステップと、これにより設定されたリソース上でタスクを実行するステップとを含み、
    − 処理すべき1組のタスクを含むコンポーネント(CR)、
    − 優先順位に従って、コンポーネント(CR)に含まれるタスクの組から、処理される独立のタスクの少なくとも1つのレベルを選択する選択ブロック(BS)、
    − 優先順位に従って選択されたタスクレベルのタスクをソートすることにより、各タスクを処理するために必要なリソースの数と、タスクの特性量とに基づいてタスクを処理する手段(BM1、BM2、TP)、及び
    − 優先順位に基づいて、タスクの処理に利用可能なリソースを割り当てる手段(BG)
    を含むことを特徴とする装置。
  15. 選択されたタスクレベルのタスクをソートする手段(BM1、BM2、TP)が、
    − 各タスクの処理に必要なリソースの数を表す情報(R0、R1、…、RN)を含む第1のメモリブロック(BM1)、
    − タスクの特性量を表す複数の情報(D0、D1、…、DN)を含む第2のメモリブロック(BM2)、
    − このタスクレベルのタスクの特性量を表す複数の情報を互いに比較する第1の比較手段(MC1)、
    − 利用可能なリソースの数をこのタスクレベルのタスクの処理に必要なリソースの数と比較する第2の比較手段(MC2)、及び
    − 第1及び第2の比較手段によって送達された比較結果に基づいて優先順位を確立する手段(TP)
    を含むことを特徴とする、請求項14に記載のタスクを処理するためのスケジューリング装置。
  16. 比較結果に基づいて優先順位を確立する手段(TP)が、バイナリデータを含む1組のシフトレジスタを含むことを特徴とする、請求項15に記載の装置。
  17. タスクの特性量が、タスクの処理時間、タスクの実行に必要なリソースの設定時間、タスクの実行時間、タスクに関連する実行時間の制約に応じてタスクの実行に残された時間、タスクの優先度の順番において上位に位置する1つ又は複数のタスクを処理、設定又は実行する時間、タスクの設定又はタスクの実行の最終期限、タスクの優先度の順番において上位に位置する1つ又は複数のタスクを設定又は実行するための一番早い開始時期又は一番遅い開始時期、1つ又は複数のタスクに対する周期性に基づく時間、或いは、上記に列挙した特性量の全部又は一部に基づく時間であることを特徴とする、請求項14ないし16のいずれか1項に記載の装置。
  18. タスクの特性量が、タスクの実行に有用な通過帯域幅、タスクによって処理されるデータの到着速度、タスクによって処理されるデータのソーティング又は通信に有用なリソースの数、他のタスクとの通信又はタスク間で共有されるリソースとの通信のためのコスト、タスクの処理によって生じる電力消費量、タスクの実行に関する操作の複雑性を判定する1つの情報、タスクの実行に関するアルゴリズムの規則性を判定する1つの情報、タスク実行の並列性を判定する1つの情報、タスクの独立の優先度であって、マルチユーザ間で使用される場合に1人のユーザから与えられる優先度を判定する1つの情報、或いは、上記に列挙した特性量の全部又は一部の関数であることを特徴とする、請求項14ないし16のいずれか1項に記載の装置。
  19. タスクの特性量が、アプリケーションチャートにおけるタスクの位置に関連する1つの情報であることを特徴とする、請求項14ないし16のいずれか1項に記載の装置。
  20. アプリケーションチャートにおけるタスクの位置に関連する1つの情報が、アプリケーションチャートの処理時間に課された時間的制約の終了前にタスクを実行するために残された時間、アプリケーションチャートの終了前に未処理で残っているタスクの最大数、タスクの優先度の順番において上位に位置するタスクの最大数、タスクの優先度の順番において上位に位置するタスクの実行時間の合計、或いは、上記に列挙した量の全部又は一部の関数であることを特徴とする、請求項19に記載の装置。
  21. 処理すべきタスクの組を含むコンポーネント(CR)が、制御に適した再設定可能なコンポーネントであって、実行すべきタスクに適用されるチャートのN+1個の状態を表すN+1個のセル(Ci)を含み、各セルが、実行すべきタスクと、チャートの異なる状態を繋ぐ再設定可能な相互接続ネットワークとを含むことを特徴とする、請求項14ないし20のいずれか1項に記載のスケジューリング装置。
  22. タスクを処理する装置であって、請求項21に記載のタスクを処理するためのスケジューリング装置を含み、設定トークン及び実行トークンが相互接続ネットワーク内を移動することにより、それぞれタスクの設定及びタスクの実行が作動されることを特徴とする装置。
  23. 選択ブロック(BS)が、実行すべきタスクレベルの1つ又は複数のタスクの処理を拒否することにより縮退運用を可能にする手段を含む、請求項14ないし22のいずれか1項に記載の装置。
JP2007523134A 2004-07-30 2005-07-28 タスク処理のスケジューリング方法及びこの方法を適用するための装置 Pending JP2008508584A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0451743A FR2873830B1 (fr) 2004-07-30 2004-07-30 Procede d'ordonnancement de traitement de taches et dispositif pour mettre en oeuvre le procede
PCT/FR2005/050626 WO2006021713A1 (fr) 2004-07-30 2005-07-28 Procede d'ordonnancement de traitement de tâches et dispositif pour mettre en œuvre le procede

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012096850A Division JP2012181852A (ja) 2004-07-30 2012-04-20 タスク処理のスケジューリング方法及びこの方法を適用するための装置

Publications (1)

Publication Number Publication Date
JP2008508584A true JP2008508584A (ja) 2008-03-21

Family

ID=34951328

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007523134A Pending JP2008508584A (ja) 2004-07-30 2005-07-28 タスク処理のスケジューリング方法及びこの方法を適用するための装置
JP2012096850A Pending JP2012181852A (ja) 2004-07-30 2012-04-20 タスク処理のスケジューリング方法及びこの方法を適用するための装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012096850A Pending JP2012181852A (ja) 2004-07-30 2012-04-20 タスク処理のスケジューリング方法及びこの方法を適用するための装置

Country Status (6)

Country Link
US (1) US8522243B2 (ja)
EP (1) EP1805611B1 (ja)
JP (2) JP2008508584A (ja)
CN (1) CN1993677B (ja)
FR (1) FR2873830B1 (ja)
WO (1) WO2006021713A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120127694A (ko) * 2011-05-13 2012-11-23 삼성전자주식회사 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치
KR20150030563A (ko) * 2013-09-12 2015-03-20 한국전자통신연구원 태스크 우선순위 조정 장치 및 방법
JP2016541053A (ja) * 2013-11-11 2016-12-28 深▲セン▼市中▲興▼微▲電▼子技▲術▼有限公司 マルチパスサーチを実現するタスク処理方法及び装置
KR101770191B1 (ko) * 2013-01-30 2017-08-23 한국전자통신연구원 자원 할당 방법 및 그 장치
KR101924466B1 (ko) * 2017-08-17 2018-12-04 고려대학교 산학협력단 하둡 기반 시스템을 위한 캐시 인지 작업 스케줄링 장치 및 방법
WO2022103181A1 (ko) * 2020-11-12 2022-05-19 삼성전자 주식회사 소프트웨어 패키지에 gpu를 할당하는 방법 및 장치
US12028878B2 (en) 2020-11-12 2024-07-02 Samsung Electronics Co., Ltd. Method and apparatus for allocating GPU to software package

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4168281B2 (ja) * 2004-09-16 2008-10-22 日本電気株式会社 並列処理システム、インタコネクションネットワーク、ノード及びネットワーク制御プログラム
JP2007237913A (ja) * 2006-03-08 2007-09-20 Toyota Infotechnology Center Co Ltd 車載装置制御システムおよび車両
US20070282476A1 (en) * 2006-06-06 2007-12-06 Siemens Corporate Research, Inc Dynamic Workflow Scheduling
JP2008225809A (ja) * 2007-03-13 2008-09-25 Secom Co Ltd 日程作成装置
US20090138311A1 (en) * 2007-11-28 2009-05-28 Michael Anthony Iacovone System and method for computer aided work order scheduling
KR100948597B1 (ko) * 2007-12-17 2010-03-24 한국전자통신연구원 다중 복호기 시스템에서의 리소스 공유 스케줄 제어 장치및 그 장치에서의 리소스 공유 스케줄 제어 방법
US8112758B2 (en) * 2008-01-08 2012-02-07 International Business Machines Corporation Methods and apparatus for resource allocation in partial fault tolerant applications
WO2009157136A1 (ja) * 2008-06-24 2009-12-30 パナソニック株式会社 アクセス制御装置、アクセス制御プログラム、及びアクセス制御方法
US8819688B2 (en) * 2008-08-28 2014-08-26 Nec Europe Ltd. Method and system for scheduling periodic processes
US9015723B2 (en) * 2009-09-23 2015-04-21 International Business Machines Corporation Resource optimization for real-time task assignment in multi-process environments
CN101710292B (zh) * 2009-12-21 2013-03-27 中国人民解放军信息工程大学 一种可重构任务处理系统、调度器及任务调度方法
JP5099188B2 (ja) * 2010-08-18 2012-12-12 コニカミノルタビジネステクノロジーズ株式会社 処理順決定装置、処理順決定方法および処理順決定プログラム
US8549527B2 (en) * 2010-08-25 2013-10-01 International Business Machines Corporation Work plan prioritization for application development and maintenance using pooled resources in a factory
KR101710910B1 (ko) * 2010-09-27 2017-03-13 삼성전자 주식회사 프로세싱 유닛의 동적 자원 할당을 위한 방법 및 장치
US20130247051A1 (en) * 2010-12-07 2013-09-19 Fan Sun Implementation of a process based on a user-defined sub-task sequence
US8918791B1 (en) 2011-03-10 2014-12-23 Applied Micro Circuits Corporation Method and system for queuing a request by a processor to access a shared resource and granting access in accordance with an embedded lock ID
GB2493194A (en) * 2011-07-28 2013-01-30 St Microelectronics Res & Dev Alerting transaction initiators in an electronic circuit in the event of a power failure or circuit error
US20130061233A1 (en) * 2011-09-02 2013-03-07 Exludus Inc. Efficient method for the scheduling of work loads in a multi-core computing environment
US8904451B2 (en) * 2012-04-13 2014-12-02 Theplatform, Llc Systems for prioritizing video processing events based on availability of media file and agent to process the event type
CN104035747B (zh) * 2013-03-07 2017-12-19 伊姆西公司 用于并行计算的方法和装置
US9256460B2 (en) 2013-03-15 2016-02-09 International Business Machines Corporation Selective checkpointing of links in a data flow based on a set of predefined criteria
US9401835B2 (en) 2013-03-15 2016-07-26 International Business Machines Corporation Data integration on retargetable engines in a networked environment
US9323619B2 (en) 2013-03-15 2016-04-26 International Business Machines Corporation Deploying parallel data integration applications to distributed computing environments
JP5962560B2 (ja) * 2013-03-22 2016-08-03 トヨタ自動車株式会社 経路探索装置、移動体、経路探索方法及びプログラム
FR3004274A1 (fr) * 2013-04-09 2014-10-10 Krono Safe Procede d'execution de taches dans un systeme temps-reel critique
US9282051B2 (en) * 2013-06-26 2016-03-08 Netronome Systems, Inc. Credit-based resource allocator circuit
CN103309750B (zh) * 2013-07-10 2016-09-14 国睿集团有限公司 面向硬实时服务的主机资源可满足性检测方法
US9477511B2 (en) 2013-08-14 2016-10-25 International Business Machines Corporation Task-based modeling for parallel data integration
CN104750690B (zh) * 2013-12-25 2018-03-23 中国移动通信集团公司 一种查询处理方法、装置及系统
CN104520815B (zh) * 2014-03-17 2019-03-01 华为技术有限公司 一种任务调度的方法及装置
US9740472B1 (en) * 2014-05-15 2017-08-22 Nutanix, Inc. Mechanism for performing rolling upgrades in a networked virtualization environment
US9733958B2 (en) * 2014-05-15 2017-08-15 Nutanix, Inc. Mechanism for performing rolling updates with data unavailability check in a networked virtualization environment for storage management
JP6214469B2 (ja) * 2014-05-26 2017-10-18 日立オートモティブシステムズ株式会社 車両制御装置
US9495656B2 (en) * 2014-10-13 2016-11-15 Sap Se Material handling method
CN106325981A (zh) * 2015-06-19 2017-01-11 阿里巴巴集团控股有限公司 一种任务调度方法及装置
JP6700552B2 (ja) * 2016-02-12 2020-05-27 富士通株式会社 処理制御プログラム、処理制御装置及び処理制御方法
CN105975334A (zh) * 2016-04-25 2016-09-28 深圳市永兴元科技有限公司 任务分布式调度方法及系统
FR3054902B1 (fr) * 2016-08-04 2019-06-21 Thales Procede et dispositif de distribution de partitions sur un processeur multi-coeurs
WO2018050242A1 (en) * 2016-09-16 2018-03-22 Huawei Technologies Co., Ltd. Efficient scheduler for short periodic tasks
CN108052384B (zh) * 2017-12-27 2022-01-18 联想(北京)有限公司 一种任务处理方法、服务平台及电子设备
CN108647082A (zh) * 2018-04-13 2018-10-12 中国民航信息网络股份有限公司 基于令牌机制的任务处理方法、装置、设备及介质
JP7016583B2 (ja) * 2018-04-19 2022-02-07 東芝情報システム株式会社 ソフトウェアのテスト方法、システムおよびプログラム
CN109901929B (zh) * 2019-03-04 2023-04-18 云南大学 服务器等级约束下的云计算任务份额公平分配方法
CN110347512B (zh) * 2019-07-12 2023-05-12 北京天云融创软件技术有限公司 一种多组件异构资源需求的资源调度方法
CN111597037B (zh) * 2020-04-15 2023-06-16 中电金信软件有限公司 作业分配方法、装置、电子设备及可读存储介质
CN111832894B (zh) * 2020-06-08 2024-06-18 上海汽车集团股份有限公司 车辆调度方式生成方法、装置及计算机存储介质
KR20220064665A (ko) * 2020-11-12 2022-05-19 삼성전자주식회사 인공지능 모델을 분산 처리하는 전자 장치 및 그 동작 방법
WO2023088950A1 (en) * 2021-11-18 2023-05-25 F. Hoffmann-La Roche Ag Method for optimizing handlers operation in a laboratory system or device
CN113886053B (zh) * 2021-12-01 2022-03-04 华控清交信息科技(北京)有限公司 一种任务调度方法、装置和用于任务调度的装置
US20230205602A1 (en) * 2021-12-28 2023-06-29 Advanced Micro Devices, Inc. Priority inversion mitigation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63184841A (ja) * 1986-10-29 1988-07-30 ユナイテッド テクノロジーズ コーポレーション 相互に関連したタスクの実行を制御する方法
JPH0380337A (ja) * 1989-04-28 1991-04-05 Hitachi Ltd 並列化装置
JPH03116334A (ja) * 1989-09-29 1991-05-17 Nec Corp タスクディスパッチ方式
JPH07141305A (ja) * 1993-11-16 1995-06-02 Hitachi Ltd 並列計算機の実行制御方法
JPH0869384A (ja) * 1994-08-11 1996-03-12 Cegelec 連続タスクをスケジューリングする方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506987A (en) * 1991-02-01 1996-04-09 Digital Equipment Corporation Affinity scheduling of processes on symmetric multiprocessing systems
JPH0675786A (ja) * 1992-08-26 1994-03-18 Hitachi Ltd タスクスケジュリング方法
US6571215B1 (en) * 1997-01-21 2003-05-27 Microsoft Corporation System and method for generating a schedule based on resource assignments
US6240502B1 (en) * 1997-06-25 2001-05-29 Sun Microsystems, Inc. Apparatus for dynamically reconfiguring a processor
AU7129800A (en) * 1999-09-09 2001-04-10 Accenture Llp Resource-based task scheduling system and method
FI20012044A (fi) * 2001-10-22 2003-04-23 Portalify Oy Menetelmä ja tietoliikenneverkko palvelujen tarjoamiseksi ja laskuttamiseksi
US7203943B2 (en) * 2001-10-31 2007-04-10 Avaya Technology Corp. Dynamic allocation of processing tasks using variable performance hardware platforms
US8108656B2 (en) * 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7430557B1 (en) * 2003-03-19 2008-09-30 Unisys Corporation System and method for improving database reorganization time
ATE550715T1 (de) * 2003-08-08 2012-04-15 Sap Ag Verfahren zur zuteilung von objekten an recheneinheiten

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63184841A (ja) * 1986-10-29 1988-07-30 ユナイテッド テクノロジーズ コーポレーション 相互に関連したタスクの実行を制御する方法
JPH0380337A (ja) * 1989-04-28 1991-04-05 Hitachi Ltd 並列化装置
JPH03116334A (ja) * 1989-09-29 1991-05-17 Nec Corp タスクディスパッチ方式
JPH07141305A (ja) * 1993-11-16 1995-06-02 Hitachi Ltd 並列計算機の実行制御方法
JPH0869384A (ja) * 1994-08-11 1996-03-12 Cegelec 連続タスクをスケジューリングする方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120127694A (ko) * 2011-05-13 2012-11-23 삼성전자주식회사 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치
KR101897598B1 (ko) 2011-05-13 2018-09-13 삼성전자 주식회사 디지털 디바이스의 어플리케이션 처리 속도 향상 방법 및 장치
KR101770191B1 (ko) * 2013-01-30 2017-08-23 한국전자통신연구원 자원 할당 방법 및 그 장치
KR20150030563A (ko) * 2013-09-12 2015-03-20 한국전자통신연구원 태스크 우선순위 조정 장치 및 방법
KR101709314B1 (ko) 2013-09-12 2017-02-23 한국전자통신연구원 태스크 우선순위 조정 장치 및 방법
JP2016541053A (ja) * 2013-11-11 2016-12-28 深▲セン▼市中▲興▼微▲電▼子技▲術▼有限公司 マルチパスサーチを実現するタスク処理方法及び装置
KR101924466B1 (ko) * 2017-08-17 2018-12-04 고려대학교 산학협력단 하둡 기반 시스템을 위한 캐시 인지 작업 스케줄링 장치 및 방법
WO2022103181A1 (ko) * 2020-11-12 2022-05-19 삼성전자 주식회사 소프트웨어 패키지에 gpu를 할당하는 방법 및 장치
US12028878B2 (en) 2020-11-12 2024-07-02 Samsung Electronics Co., Ltd. Method and apparatus for allocating GPU to software package

Also Published As

Publication number Publication date
WO2006021713A1 (fr) 2006-03-02
FR2873830A1 (fr) 2006-02-03
CN1993677B (zh) 2010-08-11
US8522243B2 (en) 2013-08-27
CN1993677A (zh) 2007-07-04
US20080263555A1 (en) 2008-10-23
EP1805611B1 (fr) 2017-11-29
EP1805611A1 (fr) 2007-07-11
FR2873830B1 (fr) 2008-02-22
JP2012181852A (ja) 2012-09-20

Similar Documents

Publication Publication Date Title
JP2008508584A (ja) タスク処理のスケジューリング方法及びこの方法を適用するための装置
Le et al. Allox: compute allocation in hybrid clusters
Moreira et al. Scheduling multiple independent hard-real-time jobs on a heterogeneous multiprocessor
Woodside et al. Fast allocation of processes in distributed and parallel systems
Chen et al. Joint scheduling of processing and shuffle phases in mapreduce systems
Tariq et al. Energy-efficient static task scheduling on VFI-based NoC-HMPSoCs for intelligent edge devices in cyber-physical systems
KR101814221B1 (ko) 스트림 기반 계산을 구현하기 위한 범용 다중 코어 시스템을 위한 방법 및 장치
Koole et al. Resource allocation in grid computing
Beaumont et al. A realistic model and an efficient heuristic for scheduling with heterogeneous processors
JP2004171234A (ja) マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
Bozdag et al. Compaction of schedules and a two-stage approach for duplication-based DAG scheduling
Ali et al. A cost and energy efficient task scheduling technique to offload microservices based applications in mobile cloud computing
Choudhury et al. Online scheduling of dynamic task graphs with communication and contention for multiprocessors
Wang et al. Component allocation with multiple resource constraints for large embedded real-time software design
Kermia et al. A rapid heuristic for scheduling non-preemptive dependent periodic tasks onto multiprocessor
Singer Parallel resolution of the satisfiability problem: A survey
Chakrabarti et al. Resource scheduling for parallel database and scientific applications
Kang et al. Scheduling multiple divisible loads in a multi-cloud system
Lin et al. Joint deadline-constrained and influence-aware design for allocating MapReduce jobs in cloud computing systems
CN109614214B (zh) 面向分布式ima架构基于milp的分区映射调度方法
Kumar et al. Global analysis of resource arbitration for MPSoC
Kohútka et al. A novel on-chip task scheduler for mixed-criticality real-time systems
Bleuse Apprehending heterogeneity at (very) large scale
Berenbrink et al. Randomized and adversarial load balancing
Khan et al. CAD tool for hardware software co-synthesis of heterogeneous multiple processor embedded architectures

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080702

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120420

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120426

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130121

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130124