JP2005536791A - 動的多重レベルタスク管理方法及び装置 - Google Patents

動的多重レベルタスク管理方法及び装置 Download PDF

Info

Publication number
JP2005536791A
JP2005536791A JP2004529896A JP2004529896A JP2005536791A JP 2005536791 A JP2005536791 A JP 2005536791A JP 2004529896 A JP2004529896 A JP 2004529896A JP 2004529896 A JP2004529896 A JP 2004529896A JP 2005536791 A JP2005536791 A JP 2005536791A
Authority
JP
Japan
Prior art keywords
task
priority
code
bid
circuit
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
JP2004529896A
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 JP2005536791A publication Critical patent/JP2005536791A/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

データ処理システムにおいて複数タスクを順番に実行する方法及びその方法を実行するための回路が、タスク及びその優先度の指示に基づいたビット(103a,…,103n)を構成する複数のタスクモジュール(101a,…,101n)を具える。システムは、動的に変化する優先度の環境においてラウンドロビンタスクセットを順番に実行することができる。ラウンドロビンタスクセットが割り込まれる場合、システムは、割り込みが生じた正確なポイントで高い優先度タスクの実行後、ラウンドロビンタスクセットに戻すことができる。

Description

[関連出願の相互参照]
適用なし
[研究又は開発を連邦政府によって資金援助されることに関する記載]
適用なし
[シーケンスリスニング、表、又はコンピュータ・プログラム・リスニング・コンパクトディスク添付の参照]
適用なし
本発明は、優先度(priorities)が動的に変化するシステムリソースの対立する複数タスク間で、データ処理システムの実行リソースを割り当てる装置及び方法に関する。それと同時に、装置は、ラウンド・ロビンセット又は複数セットのグループで出くわすような関連付けられたタスクの順序を維持する。
多重に相互作用するラウンド・ロビンセットの一式のように優先度が動的に変化するタスクの管理は、典型的に、オペレーティングシステムによってソフトウエアで達成される。ソフトウエアは、関連付けられたリストの動的な変化を維持する。そのようなリストは、典型的にはメモリに保存されるとともに、それらのアクセス及び管理は、必然的に複数のCPUサイクルを費やす。この複雑な問題を扱うアプローチとして、特に優先度管理に供される汎用プロセッサを採用するものがある。他の方法は、単に、優先度管理を専用オペレーティングシステムタスクに割り当てる。どちらの場合でも、複雑なコードが書き込まれるとともに維持され、かつ、他の場所で有利に利用されるCPUサイクルは、タスク管理に費やされる。タスクの数が増加するにつれて、それらの潜在的相互関係、それに従う管理ソフトウエアの機能的な複雑性、及びソフトウエア命令を実行するために要する時間は、関連付けられたデータ構造がタスク数の二乗で増加する間に階乗的に(factorially)増加する可能性がある。したがって、8タスクのシステムのCPUサイクルの複雑さ及びコストは、極端な場合、4タスクのシステムのそれらのほぼ1600倍になり得る。優先度構造でのタスク管理の一般的に用いられる方法は、タスク数が増加するにつれて現在利用可能なコンピューティングシステムの容量を直ぐに超えるのは明らかである。
米国特許5,564,062号は、予め選択されたタスクを特許外の機構によってタスクからタスクへと渡される優先度トークンに基づいて幾つかの任意のリソースに割り当てる手段及び方法を開示する。
米国特許5,625,846号は、メッセージの優先度に従いメッセージをキューから取り出す手段を教示する。
Meaneyらによる、米国特許5,774,734号、5,710,936号、5,715,472号、5,774,735号及び5,862,360号は、電力節約に関してシステムリソースを分け合う方法を教示する。
米国特許5,088,024号は、リソース割り当てアービトレーションプロトコル、特に、通信バス要求アービトレーションの手段を開示する。
米国特許3,947,824号は、更に高い優先度要素が優先的サービスを与えられるサービス又はアクセスに関する優先度選択の手段を教示するが、更に低い優先度要素に対するサービスを除外するものではない。
本発明は、特にタスク管理用に設計された特別な回路構成手段によってソフトウエア監視及び低CPUサイクルの困難を克服する。好適な例において、タスク優先度をソフトウエアタスクモジュール及び適切なセットアクティブフラグにロードする簡単な初期化処理とは別に、CPUサイクル損失なく、かつ、ソフトウエアの割り込みに関係なくハードウエア回路機能がある。
以下の検討は、「次のタスク(next task)」が、実行するため又は何らかのシステムリソースに対してアクセスを達成するためにスケジュールされた次のタスクのことに言及するとともに、「待機タスク(waiting task)」は、「next task」のように理解されるものとする。
本発明は、割り当てられた優先度によってタスクセットを管理することに関する。任意のタスクの優先度は、セット内の他のタスクと同様、そのタスク自身によって動的な基準で割り当てられるとともに変更される。このような動的に変化する優先度の関係の結果、同じ優先度レベルのとき全タスクの部分集合になり、そのような部分集合は、「ラウンド・ロビン(round-robin)」セットと呼ばれる。ラウンド・ロビンセットの優先度が複数タスクのセットにおいて最も高い優先度レベルである場合、ラウンド・ロビンセットの各タスクは、理想的には同時に、実行リソースに対して等しいアクセスをすることが必要である。しかしながら、典型的には、実行ユニットの数はタスク数よりもかなり少なく、大抵の場合、単一の実行ユニットだけがある。限られたリソースの場合にタスクのラウンド・ロビンセットの正当な実行を確実にするために、ラウンド・ロビンセットの各タスクは、次に利用できるリソースに順次アクセスされて、ラウンド・ロビンセットの各タスクが実行され、ラウンド・ロビンセットの全てのタスクが実行されるまで、ラウンド・ロビンセットのタスクを再び実行するのを許容されない。
当然、優先度が次のタスクの優先度を超えて動的に増大する任意のタスクは、任意のラウンド・ロビンセットに属するか否かに関係なく次のタスクの割り込み及びそれ自体の実行の開始の適時に許容される必要がある。これが起こると、ラウンド・ロビンセットの次のタスク及びその位置の状態を、システムリソースに対するラウンド・ロビンアクセスがoffのままであるポイントで再開(resume)できるよう注意深く観察する必要がある。ラウンド・ロビンセットがラウンド・ロビンセットに属する次のタスクよりも更に高い優先度を達成する事態も生じる。すなわち、一般的な場合、複数タスクのセットは、各セットのタスク数が一つ以上であるような想定される次のタスクのセットよりも優位になる。
各タスクが異なるレートの優先度増加を有するようにタスク優先度を動的に増加するシステムにおいて、与えられたラウンド・ロビンセットは、優先度増加コマンド間で期間内だけ特定タスクのセットとしての同一性(identity)を維持する。さらに、タスクの優先度は、ラウンド・ロビンセット内の一以上のタスクによって動的に上昇又は低下されて、循環的なタスク管理構造に導く自己指示のラウンド・ロビンセットを効果的に作成する。したがって、ラウンド・ロビンセットの管理は、タスクの使用及び不使用と同様に素早くセットに出入りできるのでタイムクリティカルな機能である。
上記技術に対して、本発明は、動的に変化する優先度のセットを管理する方法及び装置を開示する。システムは、ラウンド・ロビン状態の明示的な「知識」を有さず、さらに、ラウンド・ロビンセットが、実行するセットより高い優先度レベルに動的に達する場合でもラウンド・ロビン状態を仲裁(arbitrate)することができる。
図1を参照すると、タスク選択処理は、タスクモジュール101a〜101nで開始され、それらのモジュールが、それらの個々の優先度ビッドを、優先度ビッドライン103a〜103n経由で、次の利用できる実行ユニットにアクセスする対立タスクから優先度セレクター105へ提供する。好適な実施の形態において、優先度セレクター105を、二分木構造で実施するが、他の手段として例えば、正確な情報も提供する一時的なビッド勝者(momentary bid winner)を含むレジスタの内容で順次各ビットの二つ一組の比較がある。好適な実施の形態において、各優先度ビッドライン103a〜103nは、単一ビットから構成される分数部分(fractional portion)に隣接される各々の対立タスク優先度を表す複数ビットから構成される。タスク優先度はビットが分数部分であると考察される間、ビッドの整数部分(integral portion)と考察される。タスクは、有効であるとき、タスク優先度によって表された値を1の半分を超えるようにビッド値を有効に増大する、すなわち、セット時に分数部ビット(fractional part bit)を1/2の分数バイナリ部の値と解釈することによって、1にセットされた分数部ビットを有する。
勝利する優先度は、優先度セレクタ105によって、ライン107を経由してタスクモジュールコントローラ109に提供される。タスクモジュール101a〜101nのリストのタスクの順序を表す識別表示(ID)タグも、ライン107を経由してタスクコントローラ109に提供される。タスクコントローラ109は、個々のタスクモジュール101aから101nにタスクモジュールコントロールライン113a及び113bを経由してフィードバックされる優先度ビッド情報を作成する。優先度ビッド又はタスク−モジュール−コントロール情報は、勝利ビッド及びタスクIDタグ、さらに、ソートリソースにアクセスをするため、次のタスクとしての勝利タスクを提供することを通じた制御を提供するスイッチコントロールライン111を経由して渡される情報を具える。
図2は、割り当てられたシステムタスクに対して一つ存在する、タスクモジュールを描写するブロック図を示す。タスクを初期設定する際、開始優先度コードが開始優先度レジスタ201にロードされ、増加率がレートレジスタ203にロードされ、制限又は高優先度コードが制限優先度レジスタ205にロードされる。ライン209上のアクティブフラグがハイになると、開始優先度201が優先度インペイシャンスカウンタ211にロードされるとともに、レートジェネレータ207が有効にされる。さらに、ビッド構成器221は、ビッド223を図1の優先度セレクタに渡すことを許可される。
レートジェネレータ207は、レートレジスタ203の内容に従って優先度インペイシャンスカウンタ211を増加させ、これによって、タスク優先度ライン213に提供されるタスクの優先度コードを動的に増加させる。ソフトウエアシステム、例えば、他のタスクは、必要に応じてこれらレジスタ値を変化させることができ、タスクの動的な変化を生じさせる。優先度コンパレータ215は、タスク優先度ライン213に存在するタスクの現在の優先度と、上限優先度205とを比較する。これらの優先度レベルが等しい場合、優先度インペイシャンスカウンタ211はタスク優先度ライン213のタスク優先度を上限優先度205に維持する。タスクは、ビッド構成器221によってブロックされた場合にビッドを防止することができ、アクティブフラグ209がローのときにブロッキングが生じ、ビッド構成器221用の残りの制御情報がライン113a及び113bに供給され、ビッド構成器221がビッドライン223で命令を作成する場合、命令することができないようにされる。
ビッド構成器211の好適な実施の形態は、図3を参照することによって理解することができ、ここでは、太い接続がビッド又はIDデータバスを示し、細線が制御及び論理情報を表す。当該リソース又は実行ユニットが現在タスクを提供しているとともに、提供される次のタスクが、図1のタスクモジュール101a〜101nに存在する複数の対立タスクの一つであると仮定する。アクティブフラグライン209によって決定されるように、各有効な対立タスクは、図1の優先度セレクタ105に向かうビッドライン223上にビッドを提供することを許可される。
ビッドは、アクティブフラグライン209が高くなるときに構成され、立ち上がりは、ワンショットラッチ305によって、ORゲート307を経由してラッチ309に渡されるパルスに変換される。ライン113aに存在するnext-task IDはカレントの対立タスクのIDに等しくないと仮定すると、ラッチ309はコンパレータ315による現在のタスクID313とライン113aに存在する次のタスクIDとの比較によって決定されるように、リセット状態ではない。
真(True)すなわち「1」状態のときのビッドの分数部分は、タスク有効状態の1/2を表す1、それ以外のときにはゼロを表し、この分数部分は、ラッチ309によってラッチされるとともに分数部ライン319を経由してラッチ325に提供される。
next-task IDライン113aに存在するようなタスクIDは、ゼロとなる最低整数タスクIDであってタスクモジュール101aと呼ばれるとともに、タスクモジュール101nと呼ばれるnとなる最高整数タスクIDを持った、図1に示されるようなタスクモジュールの順序によって決定される。タスクID整数は、図1及び図3のタスクID313として示される各タスクモジュール内の固定レジスタ内部に存在し、レジスタコンテンツは以下で説明するように、タスク管理構造に対して利用できる。
図2の優先度インペイシャンスカウンタ211からのタスク優先度213と結合される際に、分数部分は、整数優先度部分(integral priority portion)及び分数ラウンド・ロビン制御部分から構成されるライン323を形成する。タスクが有効である限り、ラッチ325は、インバータ327によって決定されるように、リセットされず、したがって、ビッドはビッドライン223上で図1の優先度セレクタ105に渡される。
優先度セレクタ105は、有効に命令している対立タスク全体中で最高ビッドを選択するとともに、勝利タスク情報をタスクコントローラ109に提供し、その勝利タスクは、システムリソース又は実行ユニットにアクセスを得る次のタスクとして指定される。次のタスク優先ビッド情報は、上記のようにライン113a及び113bで、全タスクモジュール101a〜101nに戻される。勝利ビッドに複数のタスクがある場合、そのようなタスクの最後が、優先度セレクタ105の回路構成によって達成される順序付けを使って勝利タスクと宣言される。タスクは、システムリソース又は実行ユニットにアクセスを得るための次のタスクになる。管理プロセスの点で、複数タスクの一つは、ライン113aに存在するネクストタスクIDと等しいタスクID313を有する。その後コンパレータ315の出力によってラッチ309をリセットし、整数部分だけそのままにして、ライン319上のビッドの分数部分をゼロに変える。その結果、図2の優先度インペイシャンスカウンタ211又は他のソフトウエア介在が、次に命令される前にタスクの優先度の増加を引き起こさない限り、タスクモジュールによって次に提供されるビッドは、そのカレントビッド未満になる。その後、次のビッドは、当該タスク優先度のときのありうる任意の複数の勝利ビッド未満である。
サービスされる次のタスクは、その次のタスクをサービスするリソースに提供する前に次のタスクよりも高い優先度を受け取る他のタスクに先取される。先取が起きると、次にビットする順番が完成する際に、新たな勝利タスクに置き換えられる。置き換えられたタスクは、次にビッドが回ってくるまで勝利ビッドを維持するために、ライン319の分数部分が上記のように強制的にライン319で「1」を示すようにされる。この動作は、他の全ての優先度が変わらないままであると仮定すると、置き換えられたタスクをビッドする元の場所に有効に再挿入する。
一旦、次のタスクが終了すると、その動作は無効にされる。無効の際、インバータ327はライン329を通じてラッチ325をリセットするようにし、したがって、ビッドライン223のタスクビッドとして論理「0」を表す。
一旦所望のシステムリソースに対するアクセスを取得した次のタスクが、そのアクセス時間又はサイクル数に設定されたありうる制限に起因して完了しない場合、タスクは無効にされない。タスクがその作業を完了していないので、タスクは、次のリソースアクセスに対する指示を許可しなければならない。しかしながら、そのビッド値は、同じ優先度レベルのときの他のタスクより少ない1/2ユニットである。このことは、それらのタスクが公平なやり方でシステムリソースに対するアクセスを認めることを可能とする。この方法において、ラウンド・ロビンセットのタスクは、順次に希望するリソースへのアクセスを行う。
ラウンド・ロビンセットは、1/2の分数部分をプラスする優先度レベルで命令できるラウンド・ロビンセットのタスクがなくなるように使い果たされると、ビッドに勝利するラウンド・ロビンセットの次のタスクは、タスクがタスクモジュールのリストの全体に亘る位置を保持するので、以前のビッディングラウンドの最初のタスクである。この勝利タスクは上記のアクセスを取得する次のタスクになる。しかしながら、タスクの分数部分は、上記検討(discussion)に従いゼロとなり、かつ、ゼロに維持する必要がある。しかしながら、ラウンド・ロビンセットのその後に続く全タスクは、上記のビッディングが再開できるから、分数部分を1/2にリセットしなければならない。
上記目的を達成する回路構成は、再度参照する図3によって説明される。次のタスクのビッド値は、ライン113b上に存在する。ライン113b上に存在する次のタスクの優先度は、それがライン213に与えられるタスク優先度と比較されるコンパレータ335に与えられる。比較結果は、ANDゲート337に与えられる。その間コンパレータ339でネクストタスクIDTask ID313と比較されるライン113aに存在するネクストタスクIDは、ライン113a上のネクストタスクIDが現在のTask ID313の値よりも低い値を有する場合、真すなわち論理レベル「1」の値をANDゲート337に出力する。それ以外の場合には、論理レベル「0」が与えられる。論理ANDゲートにおいて、コンパレータ335の出力とコンパレータ337の出力との合計の結果は、ORゲート307を介してラッチ309に与えられ、その結果が、タスク優先度213と結合される分数部分であってラッチ325に入力を与える。この動作は、次のタスクのID値より低いID値を有するとともに次のタスクの優先度レベルと等しい優先度レベルを有する任意のタスクが分数部分に起因して1/2増加する優先度レベルでその後のビッドラウンド(bidding round)でビッドするという全体的な結果を伴って、図1の各タスクモジュール101a〜101nについて生じる。これは、事実上、元のラウンド・ロビンコンフィギュレーションのラウンド・ロビンセット内部の次のタスク以外の全タスクを設定する。
本発明は、各々が動的に変化する優先度レベルを有する複数のタスクを管理し、その複数のタスクが複数のラウンド・ロビンセットに分割可能であって、各タスクが、タスク選択のときにその優先度に従って、要求されるシステムリソースへのアクセスを取得することを許可することによって公正かつ衡平である管理する。
公正なラウンド・ロビン管理プロセスを達成する他の方法は、タスクの二つの階層を規定する;ラウンド・ロビン管理を必要とするタスクは「ブロック化可能(blackable)」タスクと呼ばれ、固有の優先度レベルを有するこれらのタスクはそれぞれ「非ブロック化(non-blocked)」又は「ノーマル(normal)」タスクと呼ばれる。他の方法は、上記のようなタスクモジュールの構造における順次的な位置によって決定されるタスクID及び勝利優先度と同様に、多重フラグ(Multiplicity Flag)を作るそれぞれ同一のツリー構造として優先的に行われる二つの優先度比較を必要とする。一方の優先度比較のメカニズムは、ブロック化されないタスクのセット用に準備され、他方の優先度比較のメカニズムは、ブロック化されたタスクのセットのために等価な情報を返す。その二つの結果が比較される。二つの勝者の優先度が等しい場合、ブロック化されないタスクが常に選択され、そうでない場合、高い方の優先度タスクが選択される。この他の方法の論理は、特定の実施が異なるとしても、好適な方法の論理と一致する。
さらに、優先度比較と並行して勝利優先度レベルのときの多重度を識別する他のメカニズムは、レジスタに多重を割り当てるとともに、他のレジスタに勝利優先度を割り当てる。各優先度比較ステップで、調べられる優先度は、優先度レジスタのコンテンツと比較される。調べられる優先度が優先度レジスタのコンテンツよりも小さいならば、動作は起こらない。もし調べられる優先度が優先度レジスタのコンテンツよりも大きいならば、優先度レジスタのコンテンツは、さらに大きい値に置き換えられるとともに、多重レジスタのコンテンツは、ゼロによって区切られる。このメカニズムを以下で詳細に説明する。
図4の他のビッド構成器を参照すると、多重フラグ401が真であり、かつ、タスクID403がコンパレータ407によって決定されたNext TaskID 113aと等しいとき、タスクは、ブロックされないカテゴリーからブロックされたカテゴリーに移動される。比較の結果は、ANDゲート409の多重フラグ401と結合される。ANDゲート409の出力はラッチ411にラッチされ、ブロッキングフラグ413の値を「1」にラッチする。ブロッキングフラグの「1」すなわち真の値は、対立タスクが非ブロック化タスク比較の際に無視されるとともに、ブロック化されたタスク比較に加わるということを示す。高優先度のときの単一勝利タスクの場合、多重フラグ(Multiplicity Flag)は、レベル「0」のとき、当該タスクに関するブロッキングフラグを状態「0」のままにする。
ブロッキングフラグ413は、勝利優先度で一タスクだけが存在するとともに、そのタスクがリソースアクセスを得るための次のタスクと同じ優先度レベルであるとき、「0」状態にリセットされる。これは、ライン113b上のネクストタスク優先度と現在のタスク優先度213とをコンパレータ419で比較することで生じる。この結果は、ANDゲートで多重フラグ401の取り消された値をゲートでコントロールして、ラッチ411をリセットするとともにブロッキングフラグ413の値を「0」にする。
前節で説明したタスク管理方法は、多重フラグを管理するハードウエアを追加することを除いて、上記で論じた(discuss)好適な方法と等価の結果をもたらすと理解でき、そのハードウエアは、必然的に、優先度比較を行う回路に統合される。
本発明の回路のブロック略図である。 図1のタスクモジュールのブロック略図である。 図2のビッド構成のブロック略図である。 他のビッド構成回路のブロック略図である。

Claims (26)

  1. タスクを実行する一以上の実行ユニットを有するデータ処理システムにおいて、前記実行ユニットによって実行用にタスクを選択するタスク選択回路であって、
    a.ロードされる対立タスク用の符号化ビッドデータを生成する複数のタスクモジュールと、
    b.前記符号化ビットに基づき実行用の前記対立タスクの一つを選択するために前記タスクモジュールの各々に結び付けられる優先度選択回路と、
    c.実行ユニットに対して実行用に選択されたタスクをルーチングするタスク制御回路と、
    d.前記対立タスクと比較するために、実行用に選択された次のタスクの符号化ビッドデータを、前記タスクモジュールの各々に結び付けるフィードバック回路とを具えることを特徴とするタスク選択回路。
  2. 前記タスクモジュールの各々が、前記次のタスクの前記符号化ビッドデータを前記対立タスクの優先度コードと比較するためのコンパレータネットワークを有することを特徴とする、請求項1記載の回路。
  3. 前記符号化ビッドデータがタスク識別コードを有し、前記タスクモジュールの各々が、前記タスク識別コードを前記タスクモジュールの各々の識別コード代表と比較する比較回路を有することを特徴とする、請求項2記載の回路。
  4. 前記符号化ビッドデータが、整数優先度部分及び分数部分を有し、前記符号化ビッドデータの整数優先度部分が、各対立タスク用相対優先度コードを示し、かつ、前記分数部分が、各対立タスクと実行用に選択された次のタスクの符号化ビッドデータとを前記タスクモジュール内で比較した結果として生成されることを特徴とする、請求項1記載の回路。
  5. 前記タスクモジュールの各々が、開始優先度コードを各対立タスクに割り当てる手段と、所定の期間に亘る優先度コードの値を、予め設定された最大優先度コード制限まで増加するレートジェネレータ手段とを有することを特徴とする、請求項1記載の回路。
  6. 前記各タスクモジュールが、実行ユニットに対するアクセス用の符号化ビッドを作るためのビッド構成回路を具え、前記符号化ビッドが、整数優先度コード部分及び分数コード部分を有し、前記分数コード部分が、対応タスクの優先度データと実行ユニットによって実行用に予め選択されたタスクの優先度データとの間の比較によって決定されることを特徴とする、請求項1記載の回路。
  7. データ処理システムにおいて、一以上のリソースによって実行するためのタスクを選択する方法であって、
    a.優先度選択回路によって選択された次のタスクを、システム実行ユニットに従ってタスク制御回路に送るステップと、
    b.複数の対立タスクを、対応する複数のタスクモジュールに取り込み、各タスクモジュールがタスクIDコードを持つステップと、
    c.前記各対立タスク用に優先度コードを維持するステップと、
    d.前記次のタスクの優先度データと前記各対立タスクの対応する優先度データとを比較するステップと、
    e.少なくとも前記優先度コード及び前記ステップ(d)の比較ステップの結果に基づく前記各対立タスク用の前記優先度選択回路に対して、プレゼンテーション用の符号化ビッドを構成するステップとを具えることを特徴とする方法。
  8. 前記ステップ(d)が、
    i.次のタスクのタスクIDコードを各対立タスクのタスクIDコードと比較するステップと、
    ii.各対立タスクのタスク優先度コードを次のタスクのタスク優先度コードと比較するステップとを具えることを特徴とする、請求項7記載の方法。
  9. 前記ステップ(e)が、ビッド優先度コードを構成するステップを具え、前記ビッド優先度コードが、対立タスクの優先度コードに基づく整数部分を有するとともに、前記ステップ(d)の比較ステップに基づく分数部分を有することを特徴とする、請求項8記載の方法。
  10. 対立タスクの優先度コードが時間上で動的に変化することを特徴とする、請求項7記載の方法。
  11. 前記ステップ(c)が、開始優先度コードを前記各対立タスクに割り当てるステップと、優先度コードの値を、所定の時間に亘って最大優先度コード値まで増加させるステップを具えることを特徴とする、請求項7記載の方法。
  12. データ処理システムにおいて、一以上のシステムリソースによって実行用のタスクを選択する方法であって、
    (a) タスクセットを、タスクIDコードによって決められた所定の順序に整列された回路モジュールに設定するステップと、
    (b) タスクセットの各タスク用単一優先度コードを前記各回路モジュールに設定し、これによって、前記タスクセットをラウンド・ロビンタスクセットとしてレンダリングするステップと、
    (c) 前記ラウンド・ロビンタスクセットの実行を、前記タスクIDコードによって設定される順序で開始するステップと、
    (d) ラウンド・ロビンタスクセット用に設定された優先度コードより高い優先度コードを有する新しいタスク用のラウンド・ロビンタスクセットの実行を中断するステップと、
    (e) 新しいタスクの実行後、ステップ(a)で設定された前記タスクセットの順序を維持しながらラウンド・ロビンタスクセットの実行をレジュームするステップと、
    を具えることを特徴とする方法。
  13. 前記優先度コードが時間上で動的に変化することを特徴とする、請求項12記載の方法。
  14. 前記新しいタスクが第2のラウンド・ロビンタスクセットを具えることを特徴とする、請求項13記載の方法。
  15. 前記ステップ(d)が、前記回路モジュールに保存されたタスクの優先度コードを比較回路で互いに比較するとともに、最高優先度コードを有するタスクを実行するよう選択することによって達成されることを特徴とする、請求項12記載の方法。
  16. 前記各回路モジュールが、各タスク用ビッドを構成するビッド構成回路を具え、前記ビッドが、少なくとも優先度コード及びタスクIDコードを具えることを特徴とする、請求項15記載の方法。
  17. 前記ビッドは整数部分及び分数部分とを具え、前記整数部分が優先度コードによって決定されるとともに、前記分数部分がステップ(c)の実行中にタスクが実行されているか否かを示すことを特徴とする、請求項16記載の方法。
  18. 同じ優先度コードを有するタスクは前記タスクIDコードによって表される順序で実行されることを特徴とする、請求項16記載の方法。
  19. 前記ビッドは整数部分及び分数部分を具え、前記整数部分が前記優先度コードによって決定されるとともに、前記分数部分が前記タスクIDコードによって少なくとも部分的に決定されることを特徴とする、請求項16記載の方法。
  20. 前記ビット構成回路の動作は多重フラグによって制御され、前記フラグが、複数タスクのそれぞれが同じ優先度コードを持つことを示し、前記同じ優先度コードを有する前記タスクの全てが単一優先度比較回路のタスクと比較されることを特徴とする、請求項16記載の方法。
  21. 前記ビッド構成回路の動作は、ビットフラグをブロックすることによって制御され、前記ビッド構成回路からの全てのビッドが二重優先度比較回路で比較され、第一の比較が、ビットフラグのブロッキングが有効なビッドに対して行われ、第二の比較が、ビットフラグのブロッキングが無効なビッドに対して行われ、これによって、二つの比較ステップの更に大きな結果が、実行の際に選択されることを特徴とする、請求項16記載の方法。
  22. データ処理システムにおいて、一以上のシステムリソースによる実行用のタスクを選択する方法であって、
    (a) 回路モジュールにタスクセットを設定し、前記回路モジュールがタスクIDコードによって決定される所定の順序で整列されるステップと、
    (b) 前記タスクセットの各タスク用優先度コードを前記各回路モジュールに設定するステップと、
    (c) 前記タスクセットの各タスク用ビッドを作成し、前記ビッドが優先度コード及びタスクIDコードを有するステップと、
    (d) システムリソースによる実行用に最高値のビッドを選択するとともに、実行する次のタスクを前記タスクに指定するステップと、
    (e) 実行用の前記次のタスクを実行するとともに、前記タスクの実行後、前記タスクの前記優先度コード及び前記タスクIDコードを、前記タスクセットの前記各タのタスクと比較するステップとを具えることを特徴とする方法。
  23. 前記ステップ(c)が、
    (i) 実行用の前記次のタスクの前記タスクIDコードが、適合するか又は前記タスクセットの任意のタスクのタスクIDコードより大きいかを決定するステップと、
    (ii) 実行用の前記次のタスクの優先度コードが、前記タスクセットの任意のタスクの優先度コードに適合するか否かを決定するステップとを更に具えることを特徴とする、請求項22記載の方法。
  24. 前記ステップ(c)のビッドが、整数部分及び分数部分を有し、前記整数部分が前記優先度コードによって決定されるとともに、前記分数部分が少なくとも前記ステップ(i)及び(ii)の結果によって少なくとも部分的に決定されることを特徴とする、請求項23記載の方法。
  25. 前記ビッドはニ値数であり、前記数の前記分数部分はその最下位ビットであることを特徴とする、請求項24記載の方法。
  26. 前記優先度コードが、時間上で動的に変化するのを許可されることを特徴とする、請求項24記載の方法。
JP2004529896A 2002-08-23 2003-08-22 動的多重レベルタスク管理方法及び装置 Pending JP2005536791A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/227,050 US6920632B2 (en) 2002-08-23 2002-08-23 Dynamic multilevel task management method and apparatus
PCT/US2003/026421 WO2004019206A1 (en) 2002-08-23 2003-08-22 Dynamic multilevel task management method and apparatus

Publications (1)

Publication Number Publication Date
JP2005536791A true JP2005536791A (ja) 2005-12-02

Family

ID=31887383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004529896A Pending JP2005536791A (ja) 2002-08-23 2003-08-22 動的多重レベルタスク管理方法及び装置

Country Status (5)

Country Link
US (1) US6920632B2 (ja)
EP (1) EP1540463A4 (ja)
JP (1) JP2005536791A (ja)
AU (1) AU2003265616A1 (ja)
WO (1) WO2004019206A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009277041A (ja) * 2008-05-15 2009-11-26 Fujitsu Ltd 優先度制御プログラム、優先度制御装置、及び優先度制御方法

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US20030037091A1 (en) * 2001-08-09 2003-02-20 Kozo Nishimura Task scheduling device
JP2003099272A (ja) * 2001-09-20 2003-04-04 Ricoh Co Ltd タスク切替システムと方法およびdspとモデム
US7193527B2 (en) * 2002-12-10 2007-03-20 Intelliserv, Inc. Swivel assembly
DE10350388A1 (de) * 2003-10-28 2005-06-02 Micronas Gmbh Bussystem mit wenigen Steuerleitungen
US7945914B2 (en) * 2003-12-10 2011-05-17 X1 Technologies, Inc. Methods and systems for performing operations in response to detecting a computer idle condition
DE102004013635B4 (de) * 2004-03-19 2006-04-20 Infineon Technologies Ag Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens
US8533716B2 (en) 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture
US9038070B2 (en) 2004-09-14 2015-05-19 Synopsys, Inc. Debug in a multicore architecture
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
US8510737B2 (en) * 2005-01-07 2013-08-13 Samsung Electronics Co., Ltd. Method and system for prioritizing tasks made available by devices in a network
US7802259B2 (en) * 2005-08-08 2010-09-21 Freescale Semiconductor, Inc. System and method for wireless broadband context switching
US8140110B2 (en) * 2005-08-08 2012-03-20 Freescale Semiconductor, Inc. Controlling input and output in a multi-mode wireless processing system
JP2007058541A (ja) * 2005-08-24 2007-03-08 Matsushita Electric Ind Co Ltd プロセッサ、処理方法及び処理プログラム
US7934216B2 (en) * 2005-10-03 2011-04-26 International Business Machines Corporation Method and system for load balancing of computing resources
US8238327B2 (en) * 2005-10-19 2012-08-07 At&T Intellectual Property I, L.P. Apparatus and methods for subscriber and enterprise assignments and resource sharing
US20070086433A1 (en) * 2005-10-19 2007-04-19 Cunetto Philip C Methods and apparatus for allocating shared communication resources to outdial communication services
US7924987B2 (en) * 2005-10-19 2011-04-12 At&T Intellectual Property I., L.P. Methods, apparatus and data structures for managing distributed communication systems
US7839988B2 (en) * 2005-10-19 2010-11-23 At&T Intellectual Property I, L.P. Methods and apparatus for data structure driven authorization and/or routing of outdial communication services
US7643472B2 (en) * 2005-10-19 2010-01-05 At&T Intellectual Property I, Lp Methods and apparatus for authorizing and allocating outdial communication services
US20070086432A1 (en) * 2005-10-19 2007-04-19 Marco Schneider Methods and apparatus for automated provisioning of voice over internet protocol gateways
US20070116234A1 (en) * 2005-10-19 2007-05-24 Marco Schneider Methods and apparatus for preserving access information during call transfers
US8438572B2 (en) * 2006-03-15 2013-05-07 Freescale Semiconductor, Inc. Task scheduling method and apparatus
US20090083115A1 (en) * 2007-09-24 2009-03-26 Pearson Gregory A Interactive networking systems
US9275247B2 (en) 2007-09-24 2016-03-01 Gregory A. Pearson, Inc. Interactive networking systems with user classes
US20090083745A1 (en) * 2007-09-25 2009-03-26 Jinmei Shen Techniques for Maintaining Task Sequencing in a Distributed Computer System
US8387066B1 (en) * 2007-09-28 2013-02-26 Emc Corporation Dependency-based task management using set of preconditions to generate scheduling data structure in storage area network
RU2453917C1 (ru) 2010-12-30 2012-06-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для оптимизации выполнения антивирусных задач в локальной сети
US10992494B2 (en) * 2012-09-15 2021-04-27 Ademco Inc. Gateway round-robin system
US9122255B2 (en) 2012-09-15 2015-09-01 Honeywell International Inc. Remote access gateway configurable control system
US9705962B2 (en) 2012-09-15 2017-07-11 Honeywell International Inc. Asynchronous reporting system
US10514713B2 (en) 2012-09-15 2019-12-24 Ademco Inc. Mailbox data storage system
US9164793B2 (en) * 2012-12-21 2015-10-20 Microsoft Technology Licensing, Llc Prioritized lock requests to reduce blocking
US9423943B2 (en) 2014-03-07 2016-08-23 Oracle International Corporation Automatic variable zooming system for a project plan timeline
US9710571B2 (en) 2014-03-07 2017-07-18 Oracle International Corporation Graphical top-down planning system
US9418348B2 (en) 2014-05-05 2016-08-16 Oracle International Corporation Automatic task assignment system
US10104405B1 (en) * 2014-12-08 2018-10-16 Harmonic, Inc. Dynamic allocation of CPU cycles in video stream processing
US10897616B2 (en) * 2014-12-08 2021-01-19 Harmonic, Inc. Dynamic allocation of CPU cycles vis-a-vis virtual machines in video stream processing
US10643157B2 (en) 2015-02-03 2020-05-05 Oracle International Corporation Task progress update history visualization system
US10496943B2 (en) 2015-03-30 2019-12-03 Oracle International Corporation Visual task assignment system
US10135686B2 (en) * 2017-01-12 2018-11-20 Dialog Semiconductor, Inc. Communication interface
US11237968B2 (en) 2018-10-15 2022-02-01 Texas Instruments Incorporated Multicore shared cache operation engine

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4216528A (en) * 1972-08-03 1980-08-05 Westinghouse Electric Corp. Digital computer implementation of a logic director or sequencer
GB1442078A (en) 1973-07-21 1976-07-07 Ibm Data handling system
US4481583A (en) * 1981-10-30 1984-11-06 At&T Bell Laboratories Method for distributing resources in a time-shared system
US4642756A (en) * 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
US5088024A (en) 1989-01-31 1992-02-11 Wisconsin Alumni Research Foundation Round-robin protocol method for arbitrating access to a shared bus arbitration providing preference to lower priority units after bus access by a higher priority unit
EP0403229A1 (en) * 1989-06-13 1990-12-19 Digital Equipment Corporation Method and apparatus for scheduling tasks in repeated iterations in a digital data processing system having multiple processors
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
JPH06187302A (ja) 1992-12-18 1994-07-08 Fujitsu Ltd 転送要求キュー制御方式
US5487170A (en) * 1993-12-16 1996-01-23 International Business Machines Corporation Data processing system having dynamic priority task scheduling capabilities
US5905898A (en) * 1994-05-31 1999-05-18 Advanced Micro Devices, Inc. Apparatus and method for storing interrupt source information in an interrupt controller based upon interrupt priority
WO1996011431A1 (en) 1994-10-07 1996-04-18 Elonex Technologies, Inc. An improved variable-voltage cpu voltage regulator
US5564062A (en) 1995-03-31 1996-10-08 International Business Machines Corporation Resource arbitration system with resource checking and lockout avoidance
US5710933A (en) 1995-03-31 1998-01-20 International Business Machines Corporation System resource enable apparatus
DE19530483A1 (de) * 1995-08-18 1997-02-20 Siemens Ag Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
US6003060A (en) * 1996-12-20 1999-12-14 International Business Machines Corporation Method and apparatus to share resources while processing multiple priority data flows
US5987601A (en) 1997-02-14 1999-11-16 Xyron Corporation Zero overhead computer interrupts with task switching
US6587865B1 (en) * 1998-09-21 2003-07-01 International Business Machines Corporation Locally made, globally coordinated resource allocation decisions based on information provided by the second-price auction model
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
US6757897B1 (en) * 2000-02-29 2004-06-29 Cisco Technology, Inc. Apparatus and methods for scheduling and performing tasks
DE10065419B4 (de) * 2000-12-27 2011-01-20 Siemens Ag Industrielle Steuerung mit taktsynchronem Ablaufebenenmodell

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009277041A (ja) * 2008-05-15 2009-11-26 Fujitsu Ltd 優先度制御プログラム、優先度制御装置、及び優先度制御方法
US8832703B2 (en) 2008-05-15 2014-09-09 Fujitsu Limited Dynamically changing job allocation priority based on a restoration rate for each user and time frame

Also Published As

Publication number Publication date
WO2004019206A1 (en) 2004-03-04
EP1540463A4 (en) 2008-03-12
AU2003265616A1 (en) 2004-03-11
EP1540463A1 (en) 2005-06-15
US20040039455A1 (en) 2004-02-26
US6920632B2 (en) 2005-07-19

Similar Documents

Publication Publication Date Title
JP2005536791A (ja) 動的多重レベルタスク管理方法及び装置
US20190324819A1 (en) Distributed-system task assignment method and apparatus
JP6294586B2 (ja) 命令スレッドを組み合わせた実行の管理システムおよび管理方法
US7962913B2 (en) Scheduling threads in a multiprocessor computer
US20060130062A1 (en) Scheduling threads in a multi-threaded computer
US8364874B1 (en) Prioritized polling for virtual network interfaces
RU2530345C2 (ru) Экземпляры планировщика в процессе
US5586318A (en) Method and system for managing ownership of a released synchronization mechanism
US20060179196A1 (en) Priority registers for biasing access to shared resources
US20070255835A1 (en) Resource reservation for massively parallel processing systems
US6473780B1 (en) Scheduling of direct memory access
US20090271794A1 (en) Global avoidance of hang states in multi-node computing system
JPH04328665A (ja) マルチプロセッサ・システム
WO2010097331A2 (en) Microprocessor with software control over allocation of shared resources among multiple virtual servers
CN109917705B (zh) 一种多任务调度方法
JP2010044784A (ja) システムにおける要求のスケジューリング
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
US20190272196A1 (en) Dispatching jobs for execution in parallel by multiple processors
AU603876B2 (en) Multiple i/o bus virtual broadcast of programmed i/o instructions
CN111459622B (zh) 调度虚拟cpu的方法、装置、计算机设备和存储介质
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
US6598105B1 (en) Interrupt arbiter for a computing system
US6757679B1 (en) System for building electronic queue(s) utilizing self organizing units in parallel to permit concurrent queue add and remove operations
JP2003517681A (ja) 共用資源アービトレーション方法及び装置
CN114691376A (zh) 一种线程执行方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20061019

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090804