JPH09128252A - 優先度付きタスク実行制御方法及びデータ処理装置 - Google Patents
優先度付きタスク実行制御方法及びデータ処理装置Info
- Publication number
- JPH09128252A JPH09128252A JP8235000A JP23500096A JPH09128252A JP H09128252 A JPH09128252 A JP H09128252A JP 8235000 A JP8235000 A JP 8235000A JP 23500096 A JP23500096 A JP 23500096A JP H09128252 A JPH09128252 A JP H09128252A
- Authority
- JP
- Japan
- Prior art keywords
- task
- queue
- execution
- priority
- subtask
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 51
- 238000012545 processing Methods 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 9
- 238000012790 confirmation Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims 1
- 239000000725 suspension Substances 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 28
- 230000006870 function Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 210000005098 blood-cerebrospinal fluid barrier Anatomy 0.000 description 5
- 102100026110 Protein THEMIS2 Human genes 0.000 description 2
- 101150104376 Themis2 gene Proteins 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming 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)
- Multi Processors (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 マルチノードのデータ処理装置において、優
先度が付けられたタスクの実行をソフトウェアの介入を
極力少なく行なう。 【解決手段】 データ処理装置は、ハードウェアで構成
されたキュー・コントローラを有するノードを含み、そ
れはキューに割当てられた優先度に等しい優先度を割当
てられたタスクを列挙する複数のキューを含み、第1タ
スクをキュー登録するにあたり、以下のステップを実行
する。前記第1タスクの優先度に等しい優先度が割当て
られた第1キューに前記第1タスクを列挙するステップ
と、高い優先度が割当てられたキューに第2タスクが列
挙されている場合には、第1タスクの実行前に第2タス
クの実行を試行するステップと、列挙されていない場合
には、第1キュー手段に列挙された第1タスクの実行を
試行するステップと、及びタスクの実行完了時高い優先
度のキューにタスクをセットする動作がない場合にの
み、第1キューの他のタスクの実行を試行するステップ
である。
先度が付けられたタスクの実行をソフトウェアの介入を
極力少なく行なう。 【解決手段】 データ処理装置は、ハードウェアで構成
されたキュー・コントローラを有するノードを含み、そ
れはキューに割当てられた優先度に等しい優先度を割当
てられたタスクを列挙する複数のキューを含み、第1タ
スクをキュー登録するにあたり、以下のステップを実行
する。前記第1タスクの優先度に等しい優先度が割当て
られた第1キューに前記第1タスクを列挙するステップ
と、高い優先度が割当てられたキューに第2タスクが列
挙されている場合には、第1タスクの実行前に第2タス
クの実行を試行するステップと、列挙されていない場合
には、第1キュー手段に列挙された第1タスクの実行を
試行するステップと、及びタスクの実行完了時高い優先
度のキューにタスクをセットする動作がない場合にの
み、第1キューの他のタスクの実行を試行するステップ
である。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータを制
御して実行可能なタスクをディスパッチする方法及び装
置に関し、特にソフトウェアの介在を最小限にしてコン
ピュータのレディ・キューからのタスクのディスパッチ
を処理する方法及び装置に関する。
御して実行可能なタスクをディスパッチする方法及び装
置に関し、特にソフトウェアの介在を最小限にしてコン
ピュータのレディ・キューからのタスクのディスパッチ
を処理する方法及び装置に関する。
【0002】
【従来の技術】コンピュータで同時に処理するタスクが
増えているため、タスク処理のオーバヘッドも増加して
いる。現在コンピュータは、ソフトウェア・プロセスに
より、どのタスクが実行されるか、またいつ実行される
かを決定する。あるタスクが終了する(或いはエラー、
またはリソース不足で完了しないことがわかる)と、割
込み手続きによりソフトウェアが通知を受け、そこでソ
フトウェアは次に取るべき処置を決定しなければならな
い。割込みがコンピュータによって処理されている間、
システムは、新たな仕事が割当てられるのを待って休止
状態にあることがある。新たなタスクが割当てられる
と、タスクが実行のためいつリリースされるかを決定す
るのは、タスク・ディスパッチ機構の役割である。この
ようなタスク・ディスパッチ装置の多くは、優先度が変
わるタスクを処理し、上位優先度のタスクは下位優先度
タスクより前に実行されるようにする必要がある。この
機能は通常は、ソフトウェアがアクティブ・タスクを終
了させ、新たな上位優先度タスクを起動することによっ
て行われる。その場合、ソフトウェアは現在のタスクに
割込みをかけ、上位優先度タスクを起動し、最終的に
は、中断されたタスクを再起動する必要がある。この操
作では、プロセッサに複数の割込みをかけてソフトウェ
アがタスク・スイッチングを処理できるようにする必要
がある。これら割込みの処理に必要な時間は、システム
全体のパフォーマンスに対してボトルネックを生み、リ
アルタイム・システムでは重大な問題になることがあ
る。
増えているため、タスク処理のオーバヘッドも増加して
いる。現在コンピュータは、ソフトウェア・プロセスに
より、どのタスクが実行されるか、またいつ実行される
かを決定する。あるタスクが終了する(或いはエラー、
またはリソース不足で完了しないことがわかる)と、割
込み手続きによりソフトウェアが通知を受け、そこでソ
フトウェアは次に取るべき処置を決定しなければならな
い。割込みがコンピュータによって処理されている間、
システムは、新たな仕事が割当てられるのを待って休止
状態にあることがある。新たなタスクが割当てられる
と、タスクが実行のためいつリリースされるかを決定す
るのは、タスク・ディスパッチ機構の役割である。この
ようなタスク・ディスパッチ装置の多くは、優先度が変
わるタスクを処理し、上位優先度のタスクは下位優先度
タスクより前に実行されるようにする必要がある。この
機能は通常は、ソフトウェアがアクティブ・タスクを終
了させ、新たな上位優先度タスクを起動することによっ
て行われる。その場合、ソフトウェアは現在のタスクに
割込みをかけ、上位優先度タスクを起動し、最終的に
は、中断されたタスクを再起動する必要がある。この操
作では、プロセッサに複数の割込みをかけてソフトウェ
アがタスク・スイッチングを処理できるようにする必要
がある。これら割込みの処理に必要な時間は、システム
全体のパフォーマンスに対してボトルネックを生み、リ
アルタイム・システムでは重大な問題になることがあ
る。
【0003】タスク・ディスパッチ装置はまた、タスク
が実行されていて、実行中のタスクに追加する必要のあ
る別のタスクが生じる状況を処理する必要がある。この
ようなタスクの追加を実現するために通常は2つの方法
のいずれかが用いられる。最初の方法では、タスクを完
全にアセンブルされるまでは起動せず、タスクが1度実
行を開始したら他のタスクは追加できない。もう1つの
方法では、新たなタスクが追加できるようにタスクの実
行が一時的に保留される。いずれの方法でも、タスクの
実行は起動時にか動作時に遅らせられ、タスクが次のタ
スクで更新できるようにされる。
が実行されていて、実行中のタスクに追加する必要のあ
る別のタスクが生じる状況を処理する必要がある。この
ようなタスクの追加を実現するために通常は2つの方法
のいずれかが用いられる。最初の方法では、タスクを完
全にアセンブルされるまでは起動せず、タスクが1度実
行を開始したら他のタスクは追加できない。もう1つの
方法では、新たなタスクが追加できるようにタスクの実
行が一時的に保留される。いずれの方法でも、タスクの
実行は起動時にか動作時に遅らせられ、タスクが次のタ
スクで更新できるようにされる。
【0004】従来の技術は、タスク・ディスパッチ機構
が効率よく動作できるようにするため、実行するタスク
を実行リストにキュー待機する。タスクは割当てられた
優先度をもとに実行される。IBM System 370は、ソフト
ウェアの介入を避けるため、タスク・ディスパッチ機構
に"1深さ(1 deep)"キューを採用している。基本的に
は、タスク・ディスパッチ操作を開始するために用いら
れる論理制御ブロックが、前のタスクの制御ブロックが
ディスパッチされた直後にステージ処理される。このよ
うな条件下で、ステージ処理されたタスク制御ブロック
は、ディスパッチされた前のタスクの完了または中止に
よりすぐに利用できるようになる。
が効率よく動作できるようにするため、実行するタスク
を実行リストにキュー待機する。タスクは割当てられた
優先度をもとに実行される。IBM System 370は、ソフト
ウェアの介入を避けるため、タスク・ディスパッチ機構
に"1深さ(1 deep)"キューを採用している。基本的に
は、タスク・ディスパッチ操作を開始するために用いら
れる論理制御ブロックが、前のタスクの制御ブロックが
ディスパッチされた直後にステージ処理される。このよ
うな条件下で、ステージ処理されたタスク制御ブロック
は、ディスパッチされた前のタスクの完了または中止に
よりすぐに利用できるようになる。
【0005】ノードが独立したプロセッサであり、パラ
レルに動作してデータ処理操作を実行するマルチノード
のデータ処理装置が登場してから、タスク・ディスパッ
チ操作を、ソフトウェアの介入を出来るだけ少なくして
実行可能にすることがますます重要になっている。この
ようなマルチノードのデータ処理装置が効率よく動作す
るには、システム・アーキテクチャにより、どのノード
に障害が発生してもシステムが"クラッシュ"しないよう
に全体の制御機能が分散されるようにしなければならな
い。このような分散アーキテクチャでは当然、ノード間
にかなりのデータ通信レベルが必要になる。そのような
データ通信がノード・プロセッサの不要なロード操作を
避けるように処理されなければ、マルチノード・システ
ム全体のデータ処理効率が影響を受ける。
レルに動作してデータ処理操作を実行するマルチノード
のデータ処理装置が登場してから、タスク・ディスパッ
チ操作を、ソフトウェアの介入を出来るだけ少なくして
実行可能にすることがますます重要になっている。この
ようなマルチノードのデータ処理装置が効率よく動作す
るには、システム・アーキテクチャにより、どのノード
に障害が発生してもシステムが"クラッシュ"しないよう
に全体の制御機能が分散されるようにしなければならな
い。このような分散アーキテクチャでは当然、ノード間
にかなりのデータ通信レベルが必要になる。そのような
データ通信がノード・プロセッサの不要なロード操作を
避けるように処理されなければ、マルチノード・システ
ム全体のデータ処理効率が影響を受ける。
【0006】
【発明が解決しようとする課題】本発明の目的は、デー
タ処理装置のための改良されたタスク・ディスパッチの
方法及び装置を提供することである。
タ処理装置のための改良されたタスク・ディスパッチの
方法及び装置を提供することである。
【0007】本発明の他の目的は、タスク・ディスパッ
チの手続きにソフトウェア及び中央プロセッサがなるべ
く介入しない改良されたタスク・ディスパッチの方法及
び装置を提供することである。
チの手続きにソフトウェア及び中央プロセッサがなるべ
く介入しない改良されたタスク・ディスパッチの方法及
び装置を提供することである。
【0008】本発明の他の目的は、実行遅延を実現する
必要なく、実行中のタスクに作業単位を追加できる改良
されたタスク・ディスパッチの方法及び装置を提供する
ことである。
必要なく、実行中のタスクに作業単位を追加できる改良
されたタスク・ディスパッチの方法及び装置を提供する
ことである。
【0009】本発明の他の目的は、優先度が最大でキュ
ー待機されたタスクが最初に実行されるようにする改良
されたタスク・ディスパッチの方法及び装置を提供する
ことである。
ー待機されたタスクが最初に実行されるようにする改良
されたタスク・ディスパッチの方法及び装置を提供する
ことである。
【0010】
【課題を解決するための手段】マルチノードのデータ処
理装置で優先度が付けられたタスクの実行は、ある手続
きによって制御される。データ処理装置は、ソフトウェ
アによって制御されるプロセッサと、ハードウェアで構
成されるキュー・コントローラを有するノードを含む。
キュー・コントローラは優先度が付けられた複数のキュ
ーを含み、各キューは、キューに割当てられた優先度に
等しい優先度が割当てられたタスクを列挙する。キュー
・コントローラは、プロセッサによって生成された命令
に応答して、実行する最初のタスクをキュー待機するた
め、次のステップを含む方法を実行する。前記第1のタ
スクを、前記第1のタスクの優先度に等しい優先度が割
当てられた第1のキューに列挙するステップ、高い優先
度が割当てられたキューに第2のタスクが列挙されてい
る場合には、第1のタスクの実行前に第2のタスクの実
行を試行するステップ、前記第1のキューより高い優先
度が割当てられたキューにタスクが列挙されていない場
合には、第1のキュー手段に列挙された第1のタスクの
実行を試行するステップ、及び、タスクの実行完了また
は実行中止により、高い優先度が割当てられたキューに
タスクをセットするために別の命令が発行されているの
でない場合にのみ、第1のキューの他のタスクの実行を
試行するステップである。この方法は更に、チェインを
なすサブタスクを処理するため、プロセッサによって生
成された命令に応答してタスクの各サブタスクの実行を
試行し、サブタスクの実行が完了しない場合、完了しな
かったサブタスクに連結したサブタスクの代わりに別の
タスクの実行を試行する。
理装置で優先度が付けられたタスクの実行は、ある手続
きによって制御される。データ処理装置は、ソフトウェ
アによって制御されるプロセッサと、ハードウェアで構
成されるキュー・コントローラを有するノードを含む。
キュー・コントローラは優先度が付けられた複数のキュ
ーを含み、各キューは、キューに割当てられた優先度に
等しい優先度が割当てられたタスクを列挙する。キュー
・コントローラは、プロセッサによって生成された命令
に応答して、実行する最初のタスクをキュー待機するた
め、次のステップを含む方法を実行する。前記第1のタ
スクを、前記第1のタスクの優先度に等しい優先度が割
当てられた第1のキューに列挙するステップ、高い優先
度が割当てられたキューに第2のタスクが列挙されてい
る場合には、第1のタスクの実行前に第2のタスクの実
行を試行するステップ、前記第1のキューより高い優先
度が割当てられたキューにタスクが列挙されていない場
合には、第1のキュー手段に列挙された第1のタスクの
実行を試行するステップ、及び、タスクの実行完了また
は実行中止により、高い優先度が割当てられたキューに
タスクをセットするために別の命令が発行されているの
でない場合にのみ、第1のキューの他のタスクの実行を
試行するステップである。この方法は更に、チェインを
なすサブタスクを処理するため、プロセッサによって生
成された命令に応答してタスクの各サブタスクの実行を
試行し、サブタスクの実行が完了しない場合、完了しな
かったサブタスクに連結したサブタスクの代わりに別の
タスクの実行を試行する。
【0011】
【発明の実施の形態】図1のブロック図は、ディスク・
ドライブ・コントローラ・アレイとして構成されたマル
チノードのネットワーク10を示す。ノードA及びDは
データ格納ノードで、それぞれ、接続されたディスク・
ドライブ12、14及び16、18に接続する。対にな
った通信インターフェイス・ノードB及びCは、接続さ
れたホスト・プロセッサに入力/出力機能を提供する。
ホスト・プロセッサはマルチノード・ネットワークのデ
ータ格納機構を利用する。キャッシュ・ノードEは、ネ
ットワーク10とホスト・プロセッサの間のデータ転送
機能の入力及び出力の両方に一時的な格納機構を提供す
る。マルチノード・ネットワーク10は、ノードを追加
することによって拡張可能である。ノードはすべて内部
通信ネットワーク20によって相互接続される。
ドライブ・コントローラ・アレイとして構成されたマル
チノードのネットワーク10を示す。ノードA及びDは
データ格納ノードで、それぞれ、接続されたディスク・
ドライブ12、14及び16、18に接続する。対にな
った通信インターフェイス・ノードB及びCは、接続さ
れたホスト・プロセッサに入力/出力機能を提供する。
ホスト・プロセッサはマルチノード・ネットワークのデ
ータ格納機構を利用する。キャッシュ・ノードEは、ネ
ットワーク10とホスト・プロセッサの間のデータ転送
機能の入力及び出力の両方に一時的な格納機構を提供す
る。マルチノード・ネットワーク10は、ノードを追加
することによって拡張可能である。ノードはすべて内部
通信ネットワーク20によって相互接続される。
【0012】ノードA乃至Eはそれぞれ図2に示した共
通ノード構成をもとに構成される。各ノードに、ノード
全体の機能を制御するノード・プロセッサ22が含まれ
る。更に各ノードに、制御メッセージの受信、格納、及
びディスパッチを行う制御メッセージ・"ライン"24
と、データ・メッセージの受信、格納、及びディスパッ
チを行うデータ・メッセージ・"ライン"26が含まれ
る。制御メッセージ・ライン24は、制御メモリ・イン
ターフェイス・モジュール27と、制御メッセージ・メ
モリとして機能するDRAM(ダイナミック・ランダム
・アクセス・メモリ)28で構成される。データ・メッ
セージ・ライン26はそれぞれデータ・メッセージ用の
データ・バッファ・インターフェイス・モジュール30
とDRAM32を含む。データ・バッファ・インターフ
ェイス・モジュール30は複数のデバイス・インターフ
ェイス34、36等に接続し、これにより関連ディスク
・ドライブ38、40等に通信内容が伝えられる。制御
メモリ・インターフェイス26、プロセッサ22等から
の制御メッセージにより各種ノード操作の制御が有効に
なる。
通ノード構成をもとに構成される。各ノードに、ノード
全体の機能を制御するノード・プロセッサ22が含まれ
る。更に各ノードに、制御メッセージの受信、格納、及
びディスパッチを行う制御メッセージ・"ライン"24
と、データ・メッセージの受信、格納、及びディスパッ
チを行うデータ・メッセージ・"ライン"26が含まれ
る。制御メッセージ・ライン24は、制御メモリ・イン
ターフェイス・モジュール27と、制御メッセージ・メ
モリとして機能するDRAM(ダイナミック・ランダム
・アクセス・メモリ)28で構成される。データ・メッ
セージ・ライン26はそれぞれデータ・メッセージ用の
データ・バッファ・インターフェイス・モジュール30
とDRAM32を含む。データ・バッファ・インターフ
ェイス・モジュール30は複数のデバイス・インターフ
ェイス34、36等に接続し、これにより関連ディスク
・ドライブ38、40等に通信内容が伝えられる。制御
メモリ・インターフェイス26、プロセッサ22等から
の制御メッセージにより各種ノード操作の制御が有効に
なる。
【0013】以下の説明から明らかになるが、マルチノ
ード・ネットワーク10のアーキテクチャは、特性上、
ディスク・ドライブとの間で生じる長いデータ・メッセ
ージと、ネットワーク及び個々のノードの両方の動作を
有効にするのに必要な複数の小さな制御メッセージのい
ずれも効率よく処理するように構成される。各ノード内
で、制御及びデータのメッセージ・ラインにより、制御
及びデータのメッセージの分離が可能になり、その独立
処理、及び各ノードに置かれる入力/出力(I/O)ス
イッチ42への転送が可能になる。I/Oスイッチ42
は、それが入力リンク44に届き、別のノードに向けら
れたメッセージを独立に切り換えられるようにする装置
を含む。各ノードは、好適にはラインの少なくとも2倍
の通信リンク44を備える。これによりノード内にある
通信帯域幅の少なくとも2倍の帯域幅が各ノードに得ら
れる。
ード・ネットワーク10のアーキテクチャは、特性上、
ディスク・ドライブとの間で生じる長いデータ・メッセ
ージと、ネットワーク及び個々のノードの両方の動作を
有効にするのに必要な複数の小さな制御メッセージのい
ずれも効率よく処理するように構成される。各ノード内
で、制御及びデータのメッセージ・ラインにより、制御
及びデータのメッセージの分離が可能になり、その独立
処理、及び各ノードに置かれる入力/出力(I/O)ス
イッチ42への転送が可能になる。I/Oスイッチ42
は、それが入力リンク44に届き、別のノードに向けら
れたメッセージを独立に切り換えられるようにする装置
を含む。各ノードは、好適にはラインの少なくとも2倍
の通信リンク44を備える。これによりノード内にある
通信帯域幅の少なくとも2倍の帯域幅が各ノードに得ら
れる。
【0014】通信リンク44はそれぞれ別のノードに接
続され、これによりメッセージを接続ノードに直接に、
または接続ノードを通して別のノードにルーティングで
きる。I/Oスイッチ42は、どの通信リンク44から
も、どの通信リンク44へもメッセージを送ることがで
きる。I/Oスイッチ42は更に、各種リンクの現在状
態がわかれば、最適通信リンク46を動的に選択するこ
とができる。通信リンク44はそれぞれ独立しており、
データ・メッセージまたは制御メッセージに使用でき
る。
続され、これによりメッセージを接続ノードに直接に、
または接続ノードを通して別のノードにルーティングで
きる。I/Oスイッチ42は、どの通信リンク44から
も、どの通信リンク44へもメッセージを送ることがで
きる。I/Oスイッチ42は更に、各種リンクの現在状
態がわかれば、最適通信リンク46を動的に選択するこ
とができる。通信リンク44はそれぞれ独立しており、
データ・メッセージまたは制御メッセージに使用でき
る。
【0015】ノード構造により、メッセージ・スイッチ
ング機能がすべてデータ処理装置全体に分散し、スイッ
チングの集中制御機能の必要がなくなった分散ネットワ
ークを構成できる。制御及びデータのメッセージが分離
され、実質的に独立に処理されるのはノード内だけであ
る。I/Oスイッチ42は制御及びデータのメッセージ
を同じように処理する。またノード間の複数のリンクに
より、ノードが1つ2つ障害を起こした場合、システム
の安定性と冗長性が高くなる。I/Oスイッチ42の詳
細については1995年5月24日出願の米国特許出願
番号第448901号(SA994117)を参照され
たい。この対応日本国特許出願は、特願平8−7917
7号であり、平成8年4月1日に出願されている。
ング機能がすべてデータ処理装置全体に分散し、スイッ
チングの集中制御機能の必要がなくなった分散ネットワ
ークを構成できる。制御及びデータのメッセージが分離
され、実質的に独立に処理されるのはノード内だけであ
る。I/Oスイッチ42は制御及びデータのメッセージ
を同じように処理する。またノード間の複数のリンクに
より、ノードが1つ2つ障害を起こした場合、システム
の安定性と冗長性が高くなる。I/Oスイッチ42の詳
細については1995年5月24日出願の米国特許出願
番号第448901号(SA994117)を参照され
たい。この対応日本国特許出願は、特願平8−7917
7号であり、平成8年4月1日に出願されている。
【0016】図3は、制御メモリ・インターフェイス・
モジュール27の詳細を示す。スイッチ50により制御
メモリ・インターフェイス・モジュール27内の各種機
能間の通信が可能になる。これらはプロセッサ・バス・
インターフェイス52、命令実行ユニット54、DRA
Mコントローラ56、ローカル制御バス・インターフェ
イス58、出力ポート状態論理60、及び入力ポート状
態論理62である。DRAMコントローラ56により、
オペランド・メモリ・バス64を通してRAM28の接
続が可能になる。
モジュール27の詳細を示す。スイッチ50により制御
メモリ・インターフェイス・モジュール27内の各種機
能間の通信が可能になる。これらはプロセッサ・バス・
インターフェイス52、命令実行ユニット54、DRA
Mコントローラ56、ローカル制御バス・インターフェ
イス58、出力ポート状態論理60、及び入力ポート状
態論理62である。DRAMコントローラ56により、
オペランド・メモリ・バス64を通してRAM28の接
続が可能になる。
【0017】プロセッサ・バス・インターフェイス52
は、ノード・プロセッサ22とのインターフェイスであ
り、メモリのフェッチ及び格納を有効にするパスを提供
する。命令実行ユニット54は、データを解釈、フェッ
チし、実行される命令として、あるメモリ・レジスタに
格納する。このユニットで実行される命令は全部ではな
く一部であり、ノード・プロセッサ22が介入せずに、
ある特定の命令のスピーディな処理が可能になる。
は、ノード・プロセッサ22とのインターフェイスであ
り、メモリのフェッチ及び格納を有効にするパスを提供
する。命令実行ユニット54は、データを解釈、フェッ
チし、実行される命令として、あるメモリ・レジスタに
格納する。このユニットで実行される命令は全部ではな
く一部であり、ノード・プロセッサ22が介入せずに、
ある特定の命令のスピーディな処理が可能になる。
【0018】ローカル制御バス・インターフェイス58
は、ノード・プロセッサ22とデータ・バッファ・イン
ターフェイス・モジュール30(図2)及びデータ・バ
ッファ・インターフェイス・モジュール30に接続され
た各種デバイス・インターフェイス34、36等の間の
アクセスを可能にする。ノード・プロセッサ22は、ロ
ーカル制御バス・インターフェイス58を通して、複数
の機能、すなわち、フェッチ及びデータ・メモリ32へ
の格納、デバイス・インターフェイス34、36への命
令の発行、制御メッセージ・ライン24からデータ・メ
ッセージ・ライン26へ、またその逆へのデータの転送
等を行うことができる。
は、ノード・プロセッサ22とデータ・バッファ・イン
ターフェイス・モジュール30(図2)及びデータ・バ
ッファ・インターフェイス・モジュール30に接続され
た各種デバイス・インターフェイス34、36等の間の
アクセスを可能にする。ノード・プロセッサ22は、ロ
ーカル制御バス・インターフェイス58を通して、複数
の機能、すなわち、フェッチ及びデータ・メモリ32へ
の格納、デバイス・インターフェイス34、36への命
令の発行、制御メッセージ・ライン24からデータ・メ
ッセージ・ライン26へ、またその逆へのデータの転送
等を行うことができる。
【0019】出力ポート状態論理60は複数のレディ・
キュー70を含む。そこではさまざまな優先度のメッセ
ージが転送を待ってキュー待機される。図4には優先度
1のレディ・キュー72及び優先度2のレディ・キュー
74が示してある。レディ・キューはそれぞれFIFO
(ファーストイン・ファーストアウト)キューであり、
ディスパッチ予定で、共通の優先度が割当てられたタス
クが列挙された複数のレジスタ76と、キューの最初に
列挙されたタスクと、最後に列挙されたタスクの識別子
が格納される対になったレジスタ78及び80とで構成
される。各タスクはOPTE(出力ポート・テーブル・
エントリ)によって示される。OPTEはテーブル(す
なわち出力ポート・テーブル(OPT))に格納される
論理データ構造である。論理データ構造はそれぞれ以
下"制御ブロック"と呼ぶ。各OPTEは更にここから連
結された制御ブロックを有し、これがある特定のタスク
の具体的な側面を定義する。
キュー70を含む。そこではさまざまな優先度のメッセ
ージが転送を待ってキュー待機される。図4には優先度
1のレディ・キュー72及び優先度2のレディ・キュー
74が示してある。レディ・キューはそれぞれFIFO
(ファーストイン・ファーストアウト)キューであり、
ディスパッチ予定で、共通の優先度が割当てられたタス
クが列挙された複数のレジスタ76と、キューの最初に
列挙されたタスクと、最後に列挙されたタスクの識別子
が格納される対になったレジスタ78及び80とで構成
される。各タスクはOPTE(出力ポート・テーブル・
エントリ)によって示される。OPTEはテーブル(す
なわち出力ポート・テーブル(OPT))に格納される
論理データ構造である。論理データ構造はそれぞれ以
下"制御ブロック"と呼ぶ。各OPTEは更にここから連
結された制御ブロックを有し、これがある特定のタスク
の具体的な側面を定義する。
【0020】本発明を実現するために用いられる各制御
ブロックについて以下に詳しく説明する。また実行可能
なOPTEをレディ・キュー70にキュー待機する手続
き、並びにOPTEのサブタスクを、ディスパッチのプ
ロセスにあるときに動的に連結する手続きについて説明
する。後で明らかになるが、出力ポート状態論理60
は、優先度が最大のレディ・キューにある各メッセージ
を、次に低い優先度のレディ・キューに進む前に転送し
ようとする。
ブロックについて以下に詳しく説明する。また実行可能
なOPTEをレディ・キュー70にキュー待機する手続
き、並びにOPTEのサブタスクを、ディスパッチのプ
ロセスにあるときに動的に連結する手続きについて説明
する。後で明らかになるが、出力ポート状態論理60
は、優先度が最大のレディ・キューにある各メッセージ
を、次に低い優先度のレディ・キューに進む前に転送し
ようとする。
【0021】入力ポート状態論理62は、制御メッセー
ジ・ライン・インターフェイス80から制御メッセージ
を受信して一時的にバッファに格納する。制御メッセー
ジをクラス(すなわちハードウェア実行またはプロセッ
サ実行)に従ってデコードし、ハードウェア実行メッセ
ージは、その実行場所であるメッセージ実行ユニット8
2に転送される。プロセッサ実行メッセージは、受信さ
れた制御メッセージ・ヘッダ内のコードによって必要と
される機能に対応した論理入力データ構造内のDRAM
28内のメモリ・アドレスに受信される。この機能は後
で実行される。
ジ・ライン・インターフェイス80から制御メッセージ
を受信して一時的にバッファに格納する。制御メッセー
ジをクラス(すなわちハードウェア実行またはプロセッ
サ実行)に従ってデコードし、ハードウェア実行メッセ
ージは、その実行場所であるメッセージ実行ユニット8
2に転送される。プロセッサ実行メッセージは、受信さ
れた制御メッセージ・ヘッダ内のコードによって必要と
される機能に対応した論理入力データ構造内のDRAM
28内のメモリ・アドレスに受信される。この機能は後
で実行される。
【0022】図5を参照して、データ・バッファ・イン
ターフェイス・モジュール30の詳細について説明す
る。これは構造的には制御メモリ・インターフェイス・
モジュール27と類似である。データ・バッファ・イン
ターフェイス・モジュール30は、接続された各種機能
間の通信を可能にするスイッチ90の回りに構成され
る。DRAMコントローラ92によりデータ・メモリ3
2へのアクセスが可能になる。ローカル制御バス・イン
ターフェイス94は制御メモリ・インターフェイス・モ
ジュール27と相互接続され、制御メッセージの受信及
び転送を可能にする。データ・バス・インターフェイス
96は、デバイス・インターフェイス・モジュール3
4、36及びそれぞれに接続されたディスク・ドライブ
との間のアクセスを可能にする。出力ポート状態論理モ
ジュール98及び入力ポート状態論理モジュール100
は、制御メモリ・インターフェイス・モジュール27の
入出力ポート状態論理モジュールと同じように構成され
るが、そこで処理されるデータ構造はより複雑である。
命令実行ユニット102は、データ・メッセージ・ライ
ンの機能に関連したハードウェア実行メッセージを実行
する。データ・ライン・インターフェイス104はI/
Oスイッチ42との通信を可能にする。
ターフェイス・モジュール30の詳細について説明す
る。これは構造的には制御メモリ・インターフェイス・
モジュール27と類似である。データ・バッファ・イン
ターフェイス・モジュール30は、接続された各種機能
間の通信を可能にするスイッチ90の回りに構成され
る。DRAMコントローラ92によりデータ・メモリ3
2へのアクセスが可能になる。ローカル制御バス・イン
ターフェイス94は制御メモリ・インターフェイス・モ
ジュール27と相互接続され、制御メッセージの受信及
び転送を可能にする。データ・バス・インターフェイス
96は、デバイス・インターフェイス・モジュール3
4、36及びそれぞれに接続されたディスク・ドライブ
との間のアクセスを可能にする。出力ポート状態論理モ
ジュール98及び入力ポート状態論理モジュール100
は、制御メモリ・インターフェイス・モジュール27の
入出力ポート状態論理モジュールと同じように構成され
るが、そこで処理されるデータ構造はより複雑である。
命令実行ユニット102は、データ・メッセージ・ライ
ンの機能に関連したハードウェア実行メッセージを実行
する。データ・ライン・インターフェイス104はI/
Oスイッチ42との通信を可能にする。
【0023】上述の制御及びデータのメッセージ・ライ
ン構造により、制御メッセージ及びデータ・メッセージ
を実質的に独立して処理できる。これにより制御メッセ
ージが処理され転送可能にされるときに平行して長いデ
ータ・メッセージをキュー待機して転送できる。その結
果、長いデータ・メッセージの処理を制御メッセージの
ために先取りする必要はない。
ン構造により、制御メッセージ及びデータ・メッセージ
を実質的に独立して処理できる。これにより制御メッセ
ージが処理され転送可能にされるときに平行して長いデ
ータ・メッセージをキュー待機して転送できる。その結
果、長いデータ・メッセージの処理を制御メッセージの
ために先取りする必要はない。
【0024】図2のノード内の操作は、ソフトウェアに
よって生成される制御ブロックによって制御される。読
出しまたは書込みの操作はどのようであれ、ノード・プ
ロセッサ22と共に動作するソフトウェアによって複数
の制御ブロックが割当てられ、必要な操作に従ったノー
ド内のハードウェアのセットアップが可能になる。1回
の読出しまたは書込みはどのようなものであれ、ソフト
ウェアは複数の制御ブロックを割当てる。制御ブロック
はそれぞれ、読出しまたは書込みの操作に対するハード
ウェアによるセットアップ操作を可能にするのに必要な
パラメータを少なくとも1つ含む。
よって生成される制御ブロックによって制御される。読
出しまたは書込みの操作はどのようであれ、ノード・プ
ロセッサ22と共に動作するソフトウェアによって複数
の制御ブロックが割当てられ、必要な操作に従ったノー
ド内のハードウェアのセットアップが可能になる。1回
の読出しまたは書込みはどのようなものであれ、ソフト
ウェアは複数の制御ブロックを割当てる。制御ブロック
はそれぞれ、読出しまたは書込みの操作に対するハード
ウェアによるセットアップ操作を可能にするのに必要な
パラメータを少なくとも1つ含む。
【0025】制御ブロックのデータ構造により、ノード
は、別のノード、ディスク・ドライブ、またはホスト・
プロセッサのいずれかに転送されるメッセージをアセン
ブルできる。メッセージは、ある制御ブロックが次の制
御ブロックへのポインタを含むように"連結"された複数
の制御ブロックを使ってアセンブルできる。制御ブロッ
クは更に、メッセージ用のデータをアセンブルできるよ
うにするデータ処理操作が起こること、データがどこに
あるか、その構造の指定、メッセージを含むデータを保
持するバッファ格納領域のID(ディスパッチ保留)、
並びにデータがどこにディスパッチされるかを示すデー
タを示す。本発明は、入力制御ブロック(ICB)及び
出力制御ブロック(OCB)を利用する。ICB及びO
CBはそれぞれメッセージを含む。OCB(及びIC
B)は"連結"でき、その場合、連結されたブロックのシ
ーケンスを管理するシーケンス依存性を有する一連のメ
ッセージを定義できる。
は、別のノード、ディスク・ドライブ、またはホスト・
プロセッサのいずれかに転送されるメッセージをアセン
ブルできる。メッセージは、ある制御ブロックが次の制
御ブロックへのポインタを含むように"連結"された複数
の制御ブロックを使ってアセンブルできる。制御ブロッ
クは更に、メッセージ用のデータをアセンブルできるよ
うにするデータ処理操作が起こること、データがどこに
あるか、その構造の指定、メッセージを含むデータを保
持するバッファ格納領域のID(ディスパッチ保留)、
並びにデータがどこにディスパッチされるかを示すデー
タを示す。本発明は、入力制御ブロック(ICB)及び
出力制御ブロック(OCB)を利用する。ICB及びO
CBはそれぞれメッセージを含む。OCB(及びIC
B)は"連結"でき、その場合、連結されたブロックのシ
ーケンスを管理するシーケンス依存性を有する一連のメ
ッセージを定義できる。
【0026】ソフトウェア制御ブロックのデータ構造:
ここで、図2のノードの動作を制御するために用いられ
る制御ブロックについて説明する。図6乃至図9で、ハ
ードウェアとソフトウェアを組み合わせたブロック図
に、データ・メッセージ及び制御メッセージ両方をディ
スパッチし、受信できるようにする制御ブロックを示
す。
ここで、図2のノードの動作を制御するために用いられ
る制御ブロックについて説明する。図6乃至図9で、ハ
ードウェアとソフトウェアを組み合わせたブロック図
に、データ・メッセージ及び制御メッセージ両方をディ
スパッチし、受信できるようにする制御ブロックを示
す。
【0027】図6及び図8を参照する。各ノードは、制
御ブロックのデータ出力"ライン"とデータ入力"ライン"
を含み、それぞれ出力及び入力のデータ・メッセージを
処理する。図7及び図9は、それぞれ制御メッセージを
処理する制御出力ラインと制御入力ラインを示す。
御ブロックのデータ出力"ライン"とデータ入力"ライン"
を含み、それぞれ出力及び入力のデータ・メッセージを
処理する。図7及び図9は、それぞれ制御メッセージを
処理する制御出力ラインと制御入力ラインを示す。
【0028】出力ライン制御ブロック(制御及びデータ
のメッセージ):図6のデータ出力ラインは、ハードウ
ェア出力ポート114によって提供される出力回路11
0を含む。これと同等なハードウェア入力ポート116
(図8参照)は、入力回路112を通してデータ・メッ
セージを受信する。ハードウェア出力ポート114は、
バッファ・インターフェイス30(図2参照)内の物理
的エンティティであり、出力されるデータ・メッセージ
の処理及び格納を管理する。ハードウェア出力ポート1
14は一連の関連付けられたハードウェア・レジスタ
(図6及び図8には図示なし)を含み、複数の優先度レ
ディ・キューを設定し、制御ブロック・データ構造から
制御データを受信する(後述)。必要な制御データがレ
ディ・キューに追加されると、レジスタに存在する制御
データを使って、ある特別なデータ処理操作を実行でき
る(メッセージのアセンブリ及び転送等)。
のメッセージ):図6のデータ出力ラインは、ハードウ
ェア出力ポート114によって提供される出力回路11
0を含む。これと同等なハードウェア入力ポート116
(図8参照)は、入力回路112を通してデータ・メッ
セージを受信する。ハードウェア出力ポート114は、
バッファ・インターフェイス30(図2参照)内の物理
的エンティティであり、出力されるデータ・メッセージ
の処理及び格納を管理する。ハードウェア出力ポート1
14は一連の関連付けられたハードウェア・レジスタ
(図6及び図8には図示なし)を含み、複数の優先度レ
ディ・キューを設定し、制御ブロック・データ構造から
制御データを受信する(後述)。必要な制御データがレ
ディ・キューに追加されると、レジスタに存在する制御
データを使って、ある特別なデータ処理操作を実行でき
る(メッセージのアセンブリ及び転送等)。
【0029】ハードウェア出力ポート114は、ハード
ウェア出力ポート114に割当てられた"論理ポート"を
列挙する出力ポート・テーブル(OPT)118に関連
付けられる。論理ポートはそれぞれ、出力ポート・テー
ブル・エントリ(OPTE)120によって定義され
る。そのデータ構造の一部を下記の表1に示す。
ウェア出力ポート114に割当てられた"論理ポート"を
列挙する出力ポート・テーブル(OPT)118に関連
付けられる。論理ポートはそれぞれ、出力ポート・テー
ブル・エントリ(OPTE)120によって定義され
る。そのデータ構造の一部を下記の表1に示す。
【表1】出力ポート・テーブル・エントリ(OPTE) −チェインの先頭OCB −チェインの最終OCB −フラグ(ステータス・セーブ、レディ) −次のOPTE −入力物理ポート −入力論理ポート
【0030】OPTE120は、データ処理操作を開始
するのに必要な第1の出力制御ブロック(OCB)の指
定と、データ処理操作を終了する最後の出力制御ブロッ
ク(OCB)の指定を含む。中間のOCBは、個々のO
CB制御ブロック内に含まれる値を連結することによっ
て確認される。OCBにより、データの検出をデータ処
理操作に委ねることができる。
するのに必要な第1の出力制御ブロック(OCB)の指
定と、データ処理操作を終了する最後の出力制御ブロッ
ク(OCB)の指定を含む。中間のOCBは、個々のO
CB制御ブロック内に含まれる値を連結することによっ
て確認される。OCBにより、データの検出をデータ処
理操作に委ねることができる。
【0031】OPTE120はまた、割込み条件、ステ
ータス状態、応答状態等を定義するフラグを含む。この
種のフラグにレディ・フラグがある。これは、セットさ
れると、OPTEがディスパッチのためレディ・キュー
に置かれたことを示す。ステータス・セーブ・フラグ
は、セットされると、OPTEのディスパッチに割込み
がかかったことと、最後のディスパッチ操作が終了した
ところでディスパッチ操作を後で再開できるように、そ
のステータスがセーブされたことを示す。OPTE12
0はまた、ハードウェア入力データ・ポート116(図
8)及び入力論理ポートの両方に対するポインタを含
む。当業者には明らかなように、ソフトウェアによって
生成される制御メッセージにより、ノードがOPTE1
20の各種エントリ、及びそこから連結されたすべての
OCBをセットアップできる。
ータス状態、応答状態等を定義するフラグを含む。この
種のフラグにレディ・フラグがある。これは、セットさ
れると、OPTEがディスパッチのためレディ・キュー
に置かれたことを示す。ステータス・セーブ・フラグ
は、セットされると、OPTEのディスパッチに割込み
がかかったことと、最後のディスパッチ操作が終了した
ところでディスパッチ操作を後で再開できるように、そ
のステータスがセーブされたことを示す。OPTE12
0はまた、ハードウェア入力データ・ポート116(図
8)及び入力論理ポートの両方に対するポインタを含
む。当業者には明らかなように、ソフトウェアによって
生成される制御メッセージにより、ノードがOPTE1
20の各種エントリ、及びそこから連結されたすべての
OCBをセットアップできる。
【0032】ソフトウェアにより、ノード・プロセッサ
22が出力ラインをタスクのために設定する、例えば、
メッセージをコンパイルして他のノードに転送すると
き、このタスクは、タスクのOPTE制御ブロックをテ
ーブルに追加することによって出力ポート・テーブル1
18(図6)に入力される。OPTEは先に示したよう
に、タスク全体がコンパイルされ、OPTEがレディ・
キューに列挙されるまで0に等しくセットされ、OPT
Eがレディ・キューに列挙された時点で1にセットされ
るレディ・フラグを含む。その時までタスクはディスパ
ッチが可能ではない。従ってOPT118は、アセンブ
リのさまざまな段階にある多くのタスクを含む可能性が
あり、あるタスクはディスパッチ可能で、あるタスクは
割込み可能、またあるタスクはコンパイル中という状態
になる。
22が出力ラインをタスクのために設定する、例えば、
メッセージをコンパイルして他のノードに転送すると
き、このタスクは、タスクのOPTE制御ブロックをテ
ーブルに追加することによって出力ポート・テーブル1
18(図6)に入力される。OPTEは先に示したよう
に、タスク全体がコンパイルされ、OPTEがレディ・
キューに列挙されるまで0に等しくセットされ、OPT
Eがレディ・キューに列挙された時点で1にセットされ
るレディ・フラグを含む。その時までタスクはディスパ
ッチが可能ではない。従ってOPT118は、アセンブ
リのさまざまな段階にある多くのタスクを含む可能性が
あり、あるタスクはディスパッチ可能で、あるタスクは
割込み可能、またあるタスクはコンパイル中という状態
になる。
【0033】各OPTE120から連結されるのは、他
の連結済み制御ブロックと共に、ディスパッチ予定のデ
ータがどこにあるかを定義する出力制御ブロック(OC
B)122である。OCB122(図6参照)は他にも
情報を含み、そのデータ構造は下記の表2に示す通りで
ある。
の連結済み制御ブロックと共に、ディスパッチ予定のデ
ータがどこにあるかを定義する出力制御ブロック(OC
B)122である。OCB122(図6参照)は他にも
情報を含み、そのデータ構造は下記の表2に示す通りで
ある。
【表2】出力制御ブロック(OCB) −次のOCBポインタ −先頭TDVE −最終TDVE −フラグ −目的アドレス −宛先の入力論理ポート・アドレス −メッセージ・データ −TDV/BCB
【0034】OCB122のデータ構造は、OPTEを
構成する作業単位またはタスクの連結を実現する次のO
CBへのポインタを含む。OCB122はまたトラック
記述子ベクトル(TDV)・テーブル124へのポイン
タを含む。これらポインタは、先頭トラック記述子ベク
トル・エントリ(TDVE)126及び最終TDVE1
28(いずれもTDV124内)を示す。以下に説明す
るが、列挙されたTDVEは、データ・レコードが見つ
けられ、また指示されたバッファ領域で他のデータが見
つけられる、ディスク・ドライブ・メモリ領域の識別を
可能にする制御ブロックである。TDVE制御ブロック
の詳細については後述する。
構成する作業単位またはタスクの連結を実現する次のO
CBへのポインタを含む。OCB122はまたトラック
記述子ベクトル(TDV)・テーブル124へのポイン
タを含む。これらポインタは、先頭トラック記述子ベク
トル・エントリ(TDVE)126及び最終TDVE1
28(いずれもTDV124内)を示す。以下に説明す
るが、列挙されたTDVEは、データ・レコードが見つ
けられ、また指示されたバッファ領域で他のデータが見
つけられる、ディスク・ドライブ・メモリ領域の識別を
可能にする制御ブロックである。TDVE制御ブロック
の詳細については後述する。
【0035】OCB122はまた、データの宛先アドレ
スと、データが送られる宛先の入力論理ポート番号を含
む。OCB122には更に、連結済みデータを必要とせ
ずに、制御メッセージ・データを追加して、制御情報を
宛先アドレスに転送することができる。最後にOCB
は、タスクの一部を含むデータがバッファ・メモリに格
納されている場合は、データのバッファ制御ブロック
(BCB)130のアドレスを含む。
スと、データが送られる宛先の入力論理ポート番号を含
む。OCB122には更に、連結済みデータを必要とせ
ずに、制御メッセージ・データを追加して、制御情報を
宛先アドレスに転送することができる。最後にOCB
は、タスクの一部を含むデータがバッファ・メモリに格
納されている場合は、データのバッファ制御ブロック
(BCB)130のアドレスを含む。
【0036】OCBは先に示したように、ディスク・ド
ライブ・トラック内のデータの検出を可能にする情報を
含む。この情報は、複数のトラック記述子ベクトル・エ
ントリ126乃至128を含むトラック記述子ベクトル
(TDV)・テーブル124を指定する。従ってTDV
テーブル124は、複数の物理ディスク・トラックで構
成可能な論理ディスク・トラックを定義する。TDVE
126、128は、ディスク・ドライブ上の物理ディス
ク・レコードのフォーマットを記述した制御ブロックで
ある。OCB122は先頭TDVEポインタ126の他
に、OCB操作の全記録が、OCB122内、またはそ
こからアクセス可能なデータによって識別されるよう
に、最終TDVEポインタ128を含む。
ライブ・トラック内のデータの検出を可能にする情報を
含む。この情報は、複数のトラック記述子ベクトル・エ
ントリ126乃至128を含むトラック記述子ベクトル
(TDV)・テーブル124を指定する。従ってTDV
テーブル124は、複数の物理ディスク・トラックで構
成可能な論理ディスク・トラックを定義する。TDVE
126、128は、ディスク・ドライブ上の物理ディス
ク・レコードのフォーマットを記述した制御ブロックで
ある。OCB122は先頭TDVEポインタ126の他
に、OCB操作の全記録が、OCB122内、またはそ
こからアクセス可能なデータによって識別されるよう
に、最終TDVEポインタ128を含む。
【0037】TDVEデータ構造を下記の表3に示す。
【表3】トラック記述子ベクトル要素(TDVE) −フィールド1データID(カウント等) −フィールド2長(キー等) −フィールド3長(データ等) −フラグ −先頭BCB −レコード番号
【0038】あるディスク・トラック上のレコードが、
これまでの"カウント、キー、データ"構造を使って配置
されているとすると、TDVEは、カウント、キー、及
びデータの各フィールドのフィールド記述子を含むこと
になる。カウント・キー・フィールドは、レコードのフ
ィールド1にあるレコード・カウント番号を含む。フィ
ールド2の値はレコード名の長さ(すなわちキー)を含
む。フィールド3の値は、ディスク・レコードのデータ
部にあるデータの長さを示す。
これまでの"カウント、キー、データ"構造を使って配置
されているとすると、TDVEは、カウント、キー、及
びデータの各フィールドのフィールド記述子を含むこと
になる。カウント・キー・フィールドは、レコードのフ
ィールド1にあるレコード・カウント番号を含む。フィ
ールド2の値はレコード名の長さ(すなわちキー)を含
む。フィールド3の値は、ディスク・レコードのデータ
部にあるデータの長さを示す。
【0039】他の制御ブロックと同様(各TDVE12
6、128等は制御ブロックである)、割込み状態、制
御状態等を定義するフラグが追加される。TDVEは更
に先頭バッファ制御ブロック(BCB)130へのポイ
ンタを含む。BCB130は、タスク全体の一部として
ディスパッチされるメッセージの部分であるデータを保
持した物理バッファ空間の識別を可能にするデータを含
む。図6に示す通り、BCBは連結できる。従って各T
DVEに先頭BCB130へのポインタを追加できる。
BCBデータ構造を下記の表4に示す。
6、128等は制御ブロックである)、割込み状態、制
御状態等を定義するフラグが追加される。TDVEは更
に先頭バッファ制御ブロック(BCB)130へのポイ
ンタを含む。BCB130は、タスク全体の一部として
ディスパッチされるメッセージの部分であるデータを保
持した物理バッファ空間の識別を可能にするデータを含
む。図6に示す通り、BCBは連結できる。従って各T
DVEに先頭BCB130へのポインタを追加できる。
BCBデータ構造を下記の表4に示す。
【表4】バッファ制御ブロック −次のBCBのポインタ −バッファのデータ・バイト数 −バッファ・サイズ −フラグ −バッファ・アドレス
【0040】BCB130のデータ構造は、次のBCB
へのポインタで始まり(存在する場合)、タスク関連デ
ータに複数のバッファ位置が割当てられることが示され
る。BCB制御ブロックの次のエントリは、物理バッフ
ァ空間に格納されるデータ・バイト数、及び実バッファ
サイズを定義する。またフラグは、BCBに追加される
各種制御情報及びデータが存在するバッファ(バッファ
132等)の物理アドレスを示す。
へのポインタで始まり(存在する場合)、タスク関連デ
ータに複数のバッファ位置が割当てられることが示され
る。BCB制御ブロックの次のエントリは、物理バッフ
ァ空間に格納されるデータ・バイト数、及び実バッファ
サイズを定義する。またフラグは、BCBに追加される
各種制御情報及びデータが存在するバッファ(バッファ
132等)の物理アドレスを示す。
【0041】制御メッセージの場合は(図7参照)それ
が比較的シンプルなので、TDVテーブル及びそれに含
まれるTDVEは使用する必要がない。その結果、OC
B122は、バッファ領域132に格納された制御メッ
セージの最初の部分を定義するBCB130へのポイン
タを含む。他のBCB134、136はBCB130か
ら連結できる。
が比較的シンプルなので、TDVテーブル及びそれに含
まれるTDVEは使用する必要がない。その結果、OC
B122は、バッファ領域132に格納された制御メッ
セージの最初の部分を定義するBCB130へのポイン
タを含む。他のBCB134、136はBCB130か
ら連結できる。
【0042】入力ライン制御ブロック(データ及び制御
のメッセージ):ノードに用いられる制御ブロック・デ
ータ構造はまた、入力ポート・テーブル(IPT)、入
力ポート・テーブル・エントリ(IPTE)、及び入力
制御ブロック(ICB)を含む。これらの制御ブロック
は他のノードから受信された入力タスクの処理に用いら
れる。図8でIPT140は、各種入力タスクを定義し
た複数のIPTE142を含む。各IPTEは、実行さ
れる作業単位を定義したICB144へのポインタを含
む。各ICB144はトラック記述子ベクトル(TD
V)・テーブル146へのポインタを含む。TDVテー
ブル146は上述のように、ICB144によって定義
された作業単位の実行に用いられるディスク・メモリの
領域を定義する。ICB144はまた、最初のトラック
記述子ベクトル要素(TDVE)148及び最後のTD
VE150の指標を有する。前記のように、TDVEは
そこからBCBを連結できる。
のメッセージ):ノードに用いられる制御ブロック・デ
ータ構造はまた、入力ポート・テーブル(IPT)、入
力ポート・テーブル・エントリ(IPTE)、及び入力
制御ブロック(ICB)を含む。これらの制御ブロック
は他のノードから受信された入力タスクの処理に用いら
れる。図8でIPT140は、各種入力タスクを定義し
た複数のIPTE142を含む。各IPTEは、実行さ
れる作業単位を定義したICB144へのポインタを含
む。各ICB144はトラック記述子ベクトル(TD
V)・テーブル146へのポインタを含む。TDVテー
ブル146は上述のように、ICB144によって定義
された作業単位の実行に用いられるディスク・メモリの
領域を定義する。ICB144はまた、最初のトラック
記述子ベクトル要素(TDVE)148及び最後のTD
VE150の指標を有する。前記のように、TDVEは
そこからBCBを連結できる。
【0043】IPTEはそれぞれ下記の表5に示すよう
なデータ構造を含む。
なデータ構造を含む。
【表5】入力ポート・テーブル・エントリ(IPTE) −先頭ICB −最終ICB −フラグ −出力ハードウェア・ポートへのポインタ −出力論理ポートへのポインタ
【0044】IPTEは、データ処理操作を開始するの
に必要な先頭入力制御ブロック(ICB)の指標と、操
作を完了する最終ICBの指標を含む。中間ICBは、
ICB制御ブロック内に含まれるポインタを連結するこ
とによって確認される。
に必要な先頭入力制御ブロック(ICB)の指標と、操
作を完了する最終ICBの指標を含む。中間ICBは、
ICB制御ブロック内に含まれるポインタを連結するこ
とによって確認される。
【0045】入力データ・メッセージがハードウェア入
力ポート116によって受信されると、一連のICB1
44が割当てられ、要求されたタスクの実行が可能にな
る。ICBの関連部分のデータ構造を下記の表6に示
す。
力ポート116によって受信されると、一連のICB1
44が割当てられ、要求されたタスクの実行が可能にな
る。ICBの関連部分のデータ構造を下記の表6に示
す。
【表6】入力制御ブロック(ICB) −次のICBポインタ −フラグ −セクタ長 −セクタ・カウント −先頭TDVE −最終TDVE −TDV/BCBポインタ
【0046】各ICB144は、次のICB制御ブロッ
クのアドレス値である次のICBポインタを含む(後続
のICB間の連結操作を有効にする)。最初のICB1
44へのポインタはIPTE142に置かれ、このポイ
ンタを使うことにより、IPTE142に関連したすべ
てのICBが確認可能になる(ICB/ICBポインタ
と組み合わせて)。TDVEポインタ・データにより、
入力されるタスクに必要なデータ処理操作からの入力デ
ータが格納されるか、データがそこから導かれるディス
ク・ドライブ・トラックの識別が可能になる。
クのアドレス値である次のICBポインタを含む(後続
のICB間の連結操作を有効にする)。最初のICB1
44へのポインタはIPTE142に置かれ、このポイ
ンタを使うことにより、IPTE142に関連したすべ
てのICBが確認可能になる(ICB/ICBポインタ
と組み合わせて)。TDVEポインタ・データにより、
入力されるタスクに必要なデータ処理操作からの入力デ
ータが格納されるか、データがそこから導かれるディス
ク・ドライブ・トラックの識別が可能になる。
【0047】図9には、制御メッセージに用いられる論
理制御ブロックが示してある。OPTE及びOCBに関
連した制御メッセージと同様、制御メッセージはシンプ
ルなので、TDVE制御ブロックは必要なく、各ICB
は、関連するBCB152、154及び156を直接指
し示せるようにされる。
理制御ブロックが示してある。OPTE及びOCBに関
連した制御メッセージと同様、制御メッセージはシンプ
ルなので、TDVE制御ブロックは必要なく、各ICB
は、関連するBCB152、154及び156を直接指
し示せるようにされる。
【0048】命令:先に述べた通り、ノード・プロセッ
サ22(図2)はソフトウェア制御であり、またノード
全体の動作を制御する。あるハードウェア機能がノード
内にあって実質的に独立に動作し、ノード・プロセッサ
22を補助的な制御機能から開放する。図3に示すよう
に、出力ポート状態論理60及び入力ポート状態論理6
2は両方とも状態機械であり、それぞれ出力機能及び入
力機能を制御する。
サ22(図2)はソフトウェア制御であり、またノード
全体の動作を制御する。あるハードウェア機能がノード
内にあって実質的に独立に動作し、ノード・プロセッサ
22を補助的な制御機能から開放する。図3に示すよう
に、出力ポート状態論理60及び入力ポート状態論理6
2は両方とも状態機械であり、それぞれ出力機能及び入
力機能を制御する。
【0049】出力ポート状態論理60は、優先度が付け
られた複数のキュー70を制御し、データ処理装置全体
の動作に必要なときにタスクを優先度の順に出力できる
ようにする。出力ポート状態論理60の動作では、完了
するまで複数のマシン・サイクルを要することがあり、
ノード内で実行中の他のアクティブなプロセスとリソー
スを競う結果になることがある。競合を避けるため、ノ
ード・プロセッサ22はハードウェア構造内の機構のア
トミック操作を開始する"命令"を発行し、基本的には"
命令を受けた"手続きが進行中はそのハードウェア機構
へのアクセスをロックアウトできるようにされる。
られた複数のキュー70を制御し、データ処理装置全体
の動作に必要なときにタスクを優先度の順に出力できる
ようにする。出力ポート状態論理60の動作では、完了
するまで複数のマシン・サイクルを要することがあり、
ノード内で実行中の他のアクティブなプロセスとリソー
スを競う結果になることがある。競合を避けるため、ノ
ード・プロセッサ22はハードウェア構造内の機構のア
トミック操作を開始する"命令"を発行し、基本的には"
命令を受けた"手続きが進行中はそのハードウェア機構
へのアクセスをロックアウトできるようにされる。
【0050】ソフトウェアが"出力ポート・レディ"命令
を出すとOPTEがキュー待機され、そのディスパッチ
(または他のOPTEのディスパッチ)が試行されるま
でソフトウェアは出力ポート状態論理60へのアクセス
を禁止される。同様にソフトウェアは"ICB/OCB
をチェインに追加"命令を出せる。この命令により、例
えばディスパッチ可能なOCBがディスパッチされてい
ないOCBに連結される。ここでもソフトウェアは、連
結されるOCBに関連したデータを変更することは禁止
される。
を出すとOPTEがキュー待機され、そのディスパッチ
(または他のOPTEのディスパッチ)が試行されるま
でソフトウェアは出力ポート状態論理60へのアクセス
を禁止される。同様にソフトウェアは"ICB/OCB
をチェインに追加"命令を出せる。この命令により、例
えばディスパッチ可能なOCBがディスパッチされてい
ないOCBに連結される。ここでもソフトウェアは、連
結されるOCBに関連したデータを変更することは禁止
される。
【0051】レディ・キューへのタスクの追加:ここで
図10乃至図12とその論理フローチャートを参照し、
出力ポートのレディ・キューにタスクを追加する手続き
について説明する。最初(ボックス200)、ソフトウ
ェアによりノード・プロセッサ22が、あるタスク、例
えばOPTE Aに"出力ポート・レディ"命令を出す。
出力ポート状態論理60(図3)はこの命令の受信に応
答して、そのレディ・キューにOPTEが列挙されてい
るか確認する(判断ボックス202)。NOであれば、O
PTE Aのタスクはすぐ実行される(ボックス20
4)。レディ・キューにOPTEが列挙されているな
ら、OPTE Aはすぐに実行できない可能性のあるこ
とがわかる。
図10乃至図12とその論理フローチャートを参照し、
出力ポートのレディ・キューにタスクを追加する手続き
について説明する。最初(ボックス200)、ソフトウ
ェアによりノード・プロセッサ22が、あるタスク、例
えばOPTE Aに"出力ポート・レディ"命令を出す。
出力ポート状態論理60(図3)はこの命令の受信に応
答して、そのレディ・キューにOPTEが列挙されてい
るか確認する(判断ボックス202)。NOであれば、O
PTE Aのタスクはすぐ実行される(ボックス20
4)。レディ・キューにOPTEが列挙されているな
ら、OPTE Aはすぐに実行できない可能性のあるこ
とがわかる。
【0052】最初、出力ポート状態論理60は、OPT
E A制御ブロックのレディ・フラグが1にセットされ
ているか確認する。YESであれば、これはOPTE A
がすでにレディ・キューにセットされていることを意味
し、手続きは終了する(楕円208)。OPTE Aの
レディ・フラグが1にセットされていない場合、出力ポ
ート状態論理60は、OPTE Aの優先度に等しい割
当て優先度を示すレディ・キューの最初/最後のレジス
タをチェックする(ボックス210)。このチェック・
プロセスでまず、最初のレジスタ値が0に等しいかどう
か確認される(判断ボックス212)。YESであれば、
これはそのレディ・キューに登録されたOPTEは他に
ないことを意味し、OPTE Aはそこに列挙される最
初のタスクになる。その場合、OPTE Aのアドレス
がそのレディ・キューの最初及び最後のレジスタに書込
まれる(ボックス214)。またOPTE A制御ブロ
ックの次のOPTEフィールドに"0"が書込まれる(ボ
ックス216)。これは、他のOPTEはOPTE A
制御ブロックから連結されていないことを示す。
E A制御ブロックのレディ・フラグが1にセットされ
ているか確認する。YESであれば、これはOPTE A
がすでにレディ・キューにセットされていることを意味
し、手続きは終了する(楕円208)。OPTE Aの
レディ・フラグが1にセットされていない場合、出力ポ
ート状態論理60は、OPTE Aの優先度に等しい割
当て優先度を示すレディ・キューの最初/最後のレジス
タをチェックする(ボックス210)。このチェック・
プロセスでまず、最初のレジスタ値が0に等しいかどう
か確認される(判断ボックス212)。YESであれば、
これはそのレディ・キューに登録されたOPTEは他に
ないことを意味し、OPTE Aはそこに列挙される最
初のタスクになる。その場合、OPTE Aのアドレス
がそのレディ・キューの最初及び最後のレジスタに書込
まれる(ボックス214)。またOPTE A制御ブロ
ックの次のOPTEフィールドに"0"が書込まれる(ボ
ックス216)。これは、他のOPTEはOPTE A
制御ブロックから連結されていないことを示す。
【0053】判断ボックス212に示してあるように、
レディ・キューの最初のレジスタの値が0以外なら、O
PTEが他に少なくとも1つはレディ・キューに位置し
ている。その場合、OPTE Aアドレスがキューの最
後のレジスタに書込まれ(ボックス218)、OPTE
A制御ブロックのアドレスが、レディ・キューに列挙
された最後のOPTEの次のOPTEフィールドに書込
まれる(ボックス220)。OPTE Aはこれでレデ
ィ・キューに列挙されるので、このことが、OPTE
Aのレディ・フラグを1に等しくセットすることによっ
て示される(図11のボックス222)。
レディ・キューの最初のレジスタの値が0以外なら、O
PTEが他に少なくとも1つはレディ・キューに位置し
ている。その場合、OPTE Aアドレスがキューの最
後のレジスタに書込まれ(ボックス218)、OPTE
A制御ブロックのアドレスが、レディ・キューに列挙
された最後のOPTEの次のOPTEフィールドに書込
まれる(ボックス220)。OPTE Aはこれでレデ
ィ・キューに列挙されるので、このことが、OPTE
Aのレディ・フラグを1に等しくセットすることによっ
て示される(図11のボックス222)。
【0054】この段階で、出力ポート状態論理60は、
OPTEが現在実行中かどうかの確認に進む(判断ボッ
クス224)。NOであれば、出力ポート状態論理60
は、優先度が最大のレディ・キューの先頭にあるOPT
Eの実行を試行する(ボックス226)。このOPTE
はOPTE Aではないことも考えられ、OPTE A
が列挙されたレディ・キューより優先度が高いレディ・
キューの先頭に達した他のOPTEとも考えられる。こ
れにより、優先権は常に優先度の高いタスクに与えら
れ、優先度の低いタスクは犠牲になる。図1のシステム
の場合、このように優先度の高いタスクは、一般にはメ
ッセージは短いがネットワークの正常動作には欠かせな
い制御機能を含む。従って、このような制御機能は高い
優先度でディスパッチされ、優先度の低いOPTEのキ
ュー待機により遅れることはない。
OPTEが現在実行中かどうかの確認に進む(判断ボッ
クス224)。NOであれば、出力ポート状態論理60
は、優先度が最大のレディ・キューの先頭にあるOPT
Eの実行を試行する(ボックス226)。このOPTE
はOPTE Aではないことも考えられ、OPTE A
が列挙されたレディ・キューより優先度が高いレディ・
キューの先頭に達した他のOPTEとも考えられる。こ
れにより、優先権は常に優先度の高いタスクに与えら
れ、優先度の低いタスクは犠牲になる。図1のシステム
の場合、このように優先度の高いタスクは、一般にはメ
ッセージは短いがネットワークの正常動作には欠かせな
い制御機能を含む。従って、このような制御機能は高い
優先度でディスパッチされ、優先度の低いOPTEのキ
ュー待機により遅れることはない。
【0055】現在実行中のOPTEが、新たにキュー待
機されたOPTEより優先度が低い場合、現在実行中の
OPTEの実行は中断される。従って、OPTEが現在
実行中であることを判断ブロック224が示す場合、出
力ポート状態論理60は、現在実行中のOPTEの優先
度が、OPTE Aの優先度より高いか、等しいか、ま
たは低いか確認する。現在実行されているOPTEが、
OPTE Aより優先度の高いOPTE Bとすると
(判断ボックス228)、手続きは終了する(楕円23
0)。OPTE A及びOPTE Bの両方が同じ優先
度とわかった場合、"フェアネス"手続き(ボックス23
2)が実行され、ある優先度のタスクはどれも、同じ優
先度の他のタスクの実行を長く遅らせることのないよう
にされる。
機されたOPTEより優先度が低い場合、現在実行中の
OPTEの実行は中断される。従って、OPTEが現在
実行中であることを判断ブロック224が示す場合、出
力ポート状態論理60は、現在実行中のOPTEの優先
度が、OPTE Aの優先度より高いか、等しいか、ま
たは低いか確認する。現在実行されているOPTEが、
OPTE Aより優先度の高いOPTE Bとすると
(判断ボックス228)、手続きは終了する(楕円23
0)。OPTE A及びOPTE Bの両方が同じ優先
度とわかった場合、"フェアネス"手続き(ボックス23
2)が実行され、ある優先度のタスクはどれも、同じ優
先度の他のタスクの実行を長く遅らせることのないよう
にされる。
【0056】簡単には、フェアネス手続きにより、出力
ポート状態論理60が、優先度が共通のタスクを多重化
することができる。従って、最初のタスクで転送される
データの量がしきい値に達したとき、そのタスクは切断
され、同じキューにある別のタスクが実行を開始する
が、両方が完了するまで両方とも多重化されている。フ
ェアネス手続きの詳細についてはBradyらによる米国特
許出願番号第176042号を参照されたい。
ポート状態論理60が、優先度が共通のタスクを多重化
することができる。従って、最初のタスクで転送される
データの量がしきい値に達したとき、そのタスクは切断
され、同じキューにある別のタスクが実行を開始する
が、両方が完了するまで両方とも多重化されている。フ
ェアネス手続きの詳細についてはBradyらによる米国特
許出願番号第176042号を参照されたい。
【0057】判断ボックス228に示してあるように、
現在実行中のOPTE Bの優先度がOPTE Aに割
当てられた優先度より低いことがわかった場合、"優先
度切断命令"が出され(ボックス234)、現在実行さ
れているOPTE Bが切断される(ボックス23
6)。このような切断時には、実行が完了したOPTE
Bから連結されている最後の制御ブロックを記録するこ
とによって、OPTEBの実行のステータスがセーブさ
れる。その後、OPTE Bが再び実行可能な状態にな
ったとき、実行ステータスが復元され、実行が完了した
制御ブロックの直後の制御ブロックから実行が継続す
る。この手続きにより、OPTEから連結されたBCB
がすべて連結の順序で実行される。BCBは連続して実
行できないことがあるが、受信側ノードは全BCBが連
結順序で受信されることが保証される。ただしこれは、
優先度、アセットの可用性等に応じて任意の順序で実行
できるOPTEには当てはまらない。
現在実行中のOPTE Bの優先度がOPTE Aに割
当てられた優先度より低いことがわかった場合、"優先
度切断命令"が出され(ボックス234)、現在実行さ
れているOPTE Bが切断される(ボックス23
6)。このような切断時には、実行が完了したOPTE
Bから連結されている最後の制御ブロックを記録するこ
とによって、OPTEBの実行のステータスがセーブさ
れる。その後、OPTE Bが再び実行可能な状態にな
ったとき、実行ステータスが復元され、実行が完了した
制御ブロックの直後の制御ブロックから実行が継続す
る。この手続きにより、OPTEから連結されたBCB
がすべて連結の順序で実行される。BCBは連続して実
行できないことがあるが、受信側ノードは全BCBが連
結順序で受信されることが保証される。ただしこれは、
優先度、アセットの可用性等に応じて任意の順序で実行
できるOPTEには当てはまらない。
【0058】切断されたOPTE Bの実行ステータス
がセーブされれば、OPTE B制御ブロックのステー
タス・セーブ・フラグが1にセットされる。OPTE
BはまだOPTに列挙されているので、OPTE Bが
再び実行可能になると、そのステータスを検索して切断
点から実行を開始する必要のあることをステータス・セ
ーブ・フラグがシステムに知らせる。
がセーブされれば、OPTE B制御ブロックのステー
タス・セーブ・フラグが1にセットされる。OPTE
BはまだOPTに列挙されているので、OPTE Bが
再び実行可能になると、そのステータスを検索して切断
点から実行を開始する必要のあることをステータス・セ
ーブ・フラグがシステムに知らせる。
【0059】OPTE Bは切断されるが、完了はして
いないのでそのレディ・キューには列挙されたまま残る
(ボックス238)。出力ポート状態論理60はここで
OPTEを実行できる状態になるが、キュー待機され、
実行中のOPTE Bより優先度が高いことがわかった
ばかりのOPTE Aとは限らない。先に示した通り、
出力ポート状態論理60は、優先度が最大のレディ・キ
ューの先頭にあるOPTEの実行に進む(ボックス22
6)。この操作を行うため(図12参照)、最初に、こ
の操作を可能にするためリソースが利用できるかどうか
確認される(判断ボックス240)。例えば、必要なデ
ータ・リンクが使えない場合、優先度が最大のOPTE
を実行するのに必要なリソースは利用できず、その場
合、そのOPTEはそのレディ・キューの下に移される
(ボックス242)。逆に優先度が最大のOPTEを実
行するためにリソースが利用できるなら、その実行が開
始される(ボックス244)。タスクが完了すると、完
了したOPTEはそのレディ・キューから削除される
(判断ボックス246及びボックス248)。タスクが
例えば不具合のため中断すると中断したタスクは切断さ
れ、そのセーブされたステータス及びステータス・セー
ブ・フラグがセットされる(ボックス250)。中断し
たタスク(すなわちOPTE)は次にそのレディ・キュ
ーから削除され、後で中断の理由がなくなったとき再び
キュー待機できるようになる。
いないのでそのレディ・キューには列挙されたまま残る
(ボックス238)。出力ポート状態論理60はここで
OPTEを実行できる状態になるが、キュー待機され、
実行中のOPTE Bより優先度が高いことがわかった
ばかりのOPTE Aとは限らない。先に示した通り、
出力ポート状態論理60は、優先度が最大のレディ・キ
ューの先頭にあるOPTEの実行に進む(ボックス22
6)。この操作を行うため(図12参照)、最初に、こ
の操作を可能にするためリソースが利用できるかどうか
確認される(判断ボックス240)。例えば、必要なデ
ータ・リンクが使えない場合、優先度が最大のOPTE
を実行するのに必要なリソースは利用できず、その場
合、そのOPTEはそのレディ・キューの下に移される
(ボックス242)。逆に優先度が最大のOPTEを実
行するためにリソースが利用できるなら、その実行が開
始される(ボックス244)。タスクが完了すると、完
了したOPTEはそのレディ・キューから削除される
(判断ボックス246及びボックス248)。タスクが
例えば不具合のため中断すると中断したタスクは切断さ
れ、そのセーブされたステータス及びステータス・セー
ブ・フラグがセットされる(ボックス250)。中断し
たタスク(すなわちOPTE)は次にそのレディ・キュ
ーから削除され、後で中断の理由がなくなったとき再び
キュー待機できるようになる。
【0060】この段階で出力ポート状態論理60により
次のOPTEを処理できる。従って判断ボックス252
に示してある通り、OPTE Aを保持したレディ・キ
ューより優先度が高いOPTEがレディ・キューに存在
する場合、優先度が最大のレディ・キューの先頭にある
そのOPTEがアクセスされる(ボックス254)。ア
クセスされたOPTEが切断されたものである場合、そ
のステータスが検索され、完了した最後のBCBに連結
された割込み点(例えば次のBCB)から実行が開始さ
れる。そこで手続きは判断ボックス240に戻って繰り
返される。
次のOPTEを処理できる。従って判断ボックス252
に示してある通り、OPTE Aを保持したレディ・キ
ューより優先度が高いOPTEがレディ・キューに存在
する場合、優先度が最大のレディ・キューの先頭にある
そのOPTEがアクセスされる(ボックス254)。ア
クセスされたOPTEが切断されたものである場合、そ
のステータスが検索され、完了した最後のBCBに連結
された割込み点(例えば次のBCB)から実行が開始さ
れる。そこで手続きは判断ボックス240に戻って繰り
返される。
【0061】優先度が高いレディ・キューにOPTEが
存在しない場合は、OPTE Aを保持したレディ・キ
ューがアクセスされ、その先頭のOPTEが実行される
(判断ボックス256)。後に、現在の優先度のレディ
・キューに列挙されたOPTEが見つからない場合、手
続きは優先度の低いレディ・キューに移り(判断ボック
ス258)、そこに列挙されたOPTEが前記のように
実行される。優先度の低いレディ・キューにOPTEが
見つからない場合、プロセスは終了する(楕円26
0)。
存在しない場合は、OPTE Aを保持したレディ・キ
ューがアクセスされ、その先頭のOPTEが実行される
(判断ボックス256)。後に、現在の優先度のレディ
・キューに列挙されたOPTEが見つからない場合、手
続きは優先度の低いレディ・キューに移り(判断ボック
ス258)、そこに列挙されたOPTEが前記のように
実行される。優先度の低いレディ・キューにOPTEが
見つからない場合、プロセスは終了する(楕円26
0)。
【0062】実行中のタスクへのタスクの追加:先に示
した通り、OPTEから"ポート・レディ命令"が出され
ると、ソフトウェアはOPTEの変更を禁止される。し
かしOPTEはポート・レディ命令に従うが、そのタス
クは、別の連結されたBCBを追加することによって補
助できる。この手続きにより、図13に示したその機能
が有効になり、初めにソフトウェアが"OCBをチェイ
ンに追加"命令を出す。この命令は、新たなOCB及び
新たなOCBが追加されるOPTEへのポインタを含む
(ボックス270)。出力ポート状態論理60は命令に
応答して、OPTEの最後のOCBポインタの値を新た
なOCBのアドレスに変更する。またOPTEから連結
された最後のOCBの次のOCBポインタは変更され、
新たなOCBのアドレスが示される(ボックス27
2)。OPTEから連結されたOCBがない場合は、O
PTEの最初のOCB及び最後のOCBのポインタが新
たなOCBアドレスと等しくセットされる(ボックス2
74)。このようにして、実行中のタスクは連結された
他のOCBという手段を通して補助され、実行中のタス
クを中断、或いはこれに割込みをかける必要はない。O
CBがチェインに追加されるとソフトウェアは再びレデ
ィ命令を出して、命令が出される前にOCBが完了する
場合に備える。
した通り、OPTEから"ポート・レディ命令"が出され
ると、ソフトウェアはOPTEの変更を禁止される。し
かしOPTEはポート・レディ命令に従うが、そのタス
クは、別の連結されたBCBを追加することによって補
助できる。この手続きにより、図13に示したその機能
が有効になり、初めにソフトウェアが"OCBをチェイ
ンに追加"命令を出す。この命令は、新たなOCB及び
新たなOCBが追加されるOPTEへのポインタを含む
(ボックス270)。出力ポート状態論理60は命令に
応答して、OPTEの最後のOCBポインタの値を新た
なOCBのアドレスに変更する。またOPTEから連結
された最後のOCBの次のOCBポインタは変更され、
新たなOCBのアドレスが示される(ボックス27
2)。OPTEから連結されたOCBがない場合は、O
PTEの最初のOCB及び最後のOCBのポインタが新
たなOCBアドレスと等しくセットされる(ボックス2
74)。このようにして、実行中のタスクは連結された
他のOCBという手段を通して補助され、実行中のタス
クを中断、或いはこれに割込みをかける必要はない。O
CBがチェインに追加されるとソフトウェアは再びレデ
ィ命令を出して、命令が出される前にOCBが完了する
場合に備える。
【0063】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0064】(1)データ処理装置において優先度が付
けられたタスクの実行を制御する方法であって、前記デ
ータ処理装置は、ソフトウェアによって制御されるプロ
セッサとハードウェアで構成されるキュー・コントロー
ラを含み、前記キュー・コントローラは優先度が付けら
れた複数のキュー手段を含み、前記キュー手段はそれぞ
れ、割当てられた優先度が前記キュー手段に割当てられ
た優先度に等しいタスクを列挙し、前記キュー・コント
ローラはプロセッサによって生成された命令に応答し
て、第1のタスクを、実行を目的にキュー待機するため
に、前記第1のタスクを、割当てられた優先度が前記第
1のタスクの優先度に等しい第1のキュー手段に列挙す
るステップと、割当てられた優先度が高いキュー手段に
第2のタスクが列挙されている場合には、前記第1のタ
スクの実行前に前記第2のタスクの実行を試行するステ
ップとを含む方法を実行する、方法。 (2)割当てられた優先度が前記第1のキュー手段より
も高いキュー手段にタスクが列挙されていない場合は、
前記第1のキュー手段に列挙された第1のタスクの実行
を試行するステップと、前記タスクの実行完了時に、ま
たは前記タスクの実行中断時には、割当てられた優先度
の高いキュー手段にタスクをセットする他の命令が発行
されていない場合にのみ前記第1のキュー手段上の他の
タスクの実行を試行するステップと、を含む、前記
(1)記載の方法。 (3)タスクは、連結された複数のサブタスクを含み、
前記方法が、前記プロセッサによって生成された命令に
応答してタスクの各サブタスクの実行を試行するステッ
プと、前記サブタスクの実行が完了しない場合は、完了
しなかった前記サブタスクに連結されたサブタスクの代
わりに他のタスクの実行を試行するステップと、を含
む、前記(1)記載の方法。 (4)サブタスクの実行が完了していないとき、正常に
実行された前記タスクの最後のサブタスクを後で確認で
きるようにするレコードを格納するステップと、サブタ
スクが完了しなかった前記タスクの実行を次に試行する
とき、前記レコードを用い、正常に実行された前記サブ
タスクから連結されたサブタスクの実行を開始すること
によって、たとえ実行のシーケンスが中断されても前記
タスクの全サブタスクが連結順序で実行されるステップ
と、を含む、前記(3)記載の方法。 (5)全キュー手段上の全タスクが実行されるまで、前
記キュー手段に列挙されたタスクの実行試行を継続する
ステップを含む、前記(1)記載の方法。 (6)優先度が付けられたタスクの実行を制御するデー
タ処理装置であって、ソフトウェア制御下で、優先度が
付けられたタスクを優先度が付けられたキュー手段にセ
ットするレディ命令を発行するプロセッサ手段と、優先
度が付けられ、それぞれ実行可能な状態の共通優先度の
タスク名を記録する複数のレジスタを含み、共通の優先
度を有するタスクの名前だけを記録する複数のキュー手
段を含み、i)第1のタスク名に割当てられた優先度に
等しい優先度が指定された第1のキュー手段に、レディ
命令によって指定された前記第1のタスク名を列挙し、
ii)前記第1のタスクの優先度よりも高い優先度が割
当てられたキュー手段に他のタスク名が列挙されている
場合は、前記第1のタスクの前に前記他のタスクを実行
する、前記レディ命令に応答し、前記プロセッサのソフ
トウェア制御動作によって割込みをかけられない少なく
とも1つのタスクの実行をアトミック・ベースで試行す
るレディ命令に応答する、キュー・コントローラ・ハー
ドウェア手段と、を含む、データ処理装置。 (7)前記第1のキュー手段よりも高い優先度が割当て
られたキュー手段にタスク名が列挙されていない場合
は、前記キュー・コントローラ・ハードウェア手段が、
前記第1のキュー手段に列挙された第1のタスクの実行
を試行し、列挙された前記第1のタスクの実行の完了時
または列挙された前記第1のタスクの実行中断時に、前
記キュー・コントローラ・ハードウェア手段が、高い優
先度が割当てられたキュー手段にタスクをセットする他
の命令が発行されていない場合にのみ、前記第1のキュ
ー手段上の他のタスクの実行を試行する、前記(6)記
載のデータ処理装置。 (8)タスクは連結された複数のサブタスクを含み、前
記キュー・コントローラ・ハードウェア手段は、前記プ
ロセッサによって生成された命令に応答してタスクの各
サブタスクの実行を試行し、前記サブタスクの実行が完
了しない場合は、完了しなかった前記サブタスクに連結
された前記サブタスクの代わりに別のタスクの実行を試
行する、前記(1)記載のデータ処理装置。 (9)サブタスクの実行が完了しないとき、前記キュー
・コントローラ・ハードウェア手段により、正常に実行
された前記タスクの最後のサブタスクを後に確認できる
ようにするレコードが格納され、サブタスクが完了しな
かった前記タスクの実行を次に試行するとき、前記レコ
ードを用い、正常に実行された前記サブタスクから連結
されたサブタスクの実行を開始することによって、たと
え実行のシーケンスが中断されても前記タスクの全サブ
タスクが連結順序で実行される、前記(8)記載のデー
タ処理装置。
けられたタスクの実行を制御する方法であって、前記デ
ータ処理装置は、ソフトウェアによって制御されるプロ
セッサとハードウェアで構成されるキュー・コントロー
ラを含み、前記キュー・コントローラは優先度が付けら
れた複数のキュー手段を含み、前記キュー手段はそれぞ
れ、割当てられた優先度が前記キュー手段に割当てられ
た優先度に等しいタスクを列挙し、前記キュー・コント
ローラはプロセッサによって生成された命令に応答し
て、第1のタスクを、実行を目的にキュー待機するため
に、前記第1のタスクを、割当てられた優先度が前記第
1のタスクの優先度に等しい第1のキュー手段に列挙す
るステップと、割当てられた優先度が高いキュー手段に
第2のタスクが列挙されている場合には、前記第1のタ
スクの実行前に前記第2のタスクの実行を試行するステ
ップとを含む方法を実行する、方法。 (2)割当てられた優先度が前記第1のキュー手段より
も高いキュー手段にタスクが列挙されていない場合は、
前記第1のキュー手段に列挙された第1のタスクの実行
を試行するステップと、前記タスクの実行完了時に、ま
たは前記タスクの実行中断時には、割当てられた優先度
の高いキュー手段にタスクをセットする他の命令が発行
されていない場合にのみ前記第1のキュー手段上の他の
タスクの実行を試行するステップと、を含む、前記
(1)記載の方法。 (3)タスクは、連結された複数のサブタスクを含み、
前記方法が、前記プロセッサによって生成された命令に
応答してタスクの各サブタスクの実行を試行するステッ
プと、前記サブタスクの実行が完了しない場合は、完了
しなかった前記サブタスクに連結されたサブタスクの代
わりに他のタスクの実行を試行するステップと、を含
む、前記(1)記載の方法。 (4)サブタスクの実行が完了していないとき、正常に
実行された前記タスクの最後のサブタスクを後で確認で
きるようにするレコードを格納するステップと、サブタ
スクが完了しなかった前記タスクの実行を次に試行する
とき、前記レコードを用い、正常に実行された前記サブ
タスクから連結されたサブタスクの実行を開始すること
によって、たとえ実行のシーケンスが中断されても前記
タスクの全サブタスクが連結順序で実行されるステップ
と、を含む、前記(3)記載の方法。 (5)全キュー手段上の全タスクが実行されるまで、前
記キュー手段に列挙されたタスクの実行試行を継続する
ステップを含む、前記(1)記載の方法。 (6)優先度が付けられたタスクの実行を制御するデー
タ処理装置であって、ソフトウェア制御下で、優先度が
付けられたタスクを優先度が付けられたキュー手段にセ
ットするレディ命令を発行するプロセッサ手段と、優先
度が付けられ、それぞれ実行可能な状態の共通優先度の
タスク名を記録する複数のレジスタを含み、共通の優先
度を有するタスクの名前だけを記録する複数のキュー手
段を含み、i)第1のタスク名に割当てられた優先度に
等しい優先度が指定された第1のキュー手段に、レディ
命令によって指定された前記第1のタスク名を列挙し、
ii)前記第1のタスクの優先度よりも高い優先度が割
当てられたキュー手段に他のタスク名が列挙されている
場合は、前記第1のタスクの前に前記他のタスクを実行
する、前記レディ命令に応答し、前記プロセッサのソフ
トウェア制御動作によって割込みをかけられない少なく
とも1つのタスクの実行をアトミック・ベースで試行す
るレディ命令に応答する、キュー・コントローラ・ハー
ドウェア手段と、を含む、データ処理装置。 (7)前記第1のキュー手段よりも高い優先度が割当て
られたキュー手段にタスク名が列挙されていない場合
は、前記キュー・コントローラ・ハードウェア手段が、
前記第1のキュー手段に列挙された第1のタスクの実行
を試行し、列挙された前記第1のタスクの実行の完了時
または列挙された前記第1のタスクの実行中断時に、前
記キュー・コントローラ・ハードウェア手段が、高い優
先度が割当てられたキュー手段にタスクをセットする他
の命令が発行されていない場合にのみ、前記第1のキュ
ー手段上の他のタスクの実行を試行する、前記(6)記
載のデータ処理装置。 (8)タスクは連結された複数のサブタスクを含み、前
記キュー・コントローラ・ハードウェア手段は、前記プ
ロセッサによって生成された命令に応答してタスクの各
サブタスクの実行を試行し、前記サブタスクの実行が完
了しない場合は、完了しなかった前記サブタスクに連結
された前記サブタスクの代わりに別のタスクの実行を試
行する、前記(1)記載のデータ処理装置。 (9)サブタスクの実行が完了しないとき、前記キュー
・コントローラ・ハードウェア手段により、正常に実行
された前記タスクの最後のサブタスクを後に確認できる
ようにするレコードが格納され、サブタスクが完了しな
かった前記タスクの実行を次に試行するとき、前記レコ
ードを用い、正常に実行された前記サブタスクから連結
されたサブタスクの実行を開始することによって、たと
え実行のシーケンスが中断されても前記タスクの全サブ
タスクが連結順序で実行される、前記(8)記載のデー
タ処理装置。
【図1】ノードのデータ処理アレイを示すブロック図で
ある。
ある。
【図2】図1のシステムに用いられる代表的ノードの構
成要素を示すブロック図である。
成要素を示すブロック図である。
【図3】図2のノードに含まれる制御メモリ・インター
フェイス・ブロックのブロック図である。
フェイス・ブロックのブロック図である。
【図4】図3に示した出力ポート状態論理ブロックに含
まれる複数の優先度キュー・レジスタ構造を示す図であ
る。
まれる複数の優先度キュー・レジスタ構造を示す図であ
る。
【図5】図2のノードのデータ・バッファ・インターフ
ェイス・ブロックの詳細なブロック図である。
ェイス・ブロックの詳細なブロック図である。
【図6】データ・メッセージのコンパイルとディスパッ
チを可能にするハードウェア及びソフトウェアの制御ブ
ロックを示す図である。
チを可能にするハードウェア及びソフトウェアの制御ブ
ロックを示す図である。
【図7】制御メッセージのコンパイルとディスパッチを
可能にするハードウェア及びソフトウェアの制御ブロッ
クを示す図である。
可能にするハードウェア及びソフトウェアの制御ブロッ
クを示す図である。
【図8】データ・メッセージの受信と格納を可能にする
ハードウェア及びソフトウェアの制御ブロックを示す図
である。
ハードウェア及びソフトウェアの制御ブロックを示す図
である。
【図9】制御メッセージの受信と格納を可能にするハー
ドウェア及びソフトウェアの制御ブロックを示す図であ
る。
ドウェア及びソフトウェアの制御ブロックを示す図であ
る。
【図10】図2の制御メモリ・インターフェイス・ブロ
ックまたはデータ・バッファ・インターフェイス・ブロ
ック内のタスク処理の論理フローチャートを示す図であ
る。(図11と図12を合わせて参照されたい。)
ックまたはデータ・バッファ・インターフェイス・ブロ
ック内のタスク処理の論理フローチャートを示す図であ
る。(図11と図12を合わせて参照されたい。)
【図11】図2の制御メモリ・インターフェイス・ブロ
ックまたはデータ・バッファ・インターフェイス・ブロ
ック内のタスク処理の論理フローチャートを示す図であ
る。(図10と図12を合わせて参照されたい。)
ックまたはデータ・バッファ・インターフェイス・ブロ
ック内のタスク処理の論理フローチャートを示す図であ
る。(図10と図12を合わせて参照されたい。)
【図12】図2の制御メモリ・インターフェイス・ブロ
ックまたはデータ・バッファ・インターフェイス・ブロ
ック内のタスク処理の論理フローチャートを示す図であ
る。(図10と図11を合わせて参照されたい。)
ックまたはデータ・バッファ・インターフェイス・ブロ
ック内のタスク処理の論理フローチャートを示す図であ
る。(図10と図11を合わせて参照されたい。)
【図13】タスクが実行中のプロセスであるときにその
タスクのサブタスクを追加する手続きの論理フローチャ
ートを示す図である。
タスクのサブタスクを追加する手続きの論理フローチャ
ートを示す図である。
12、14、16、18 ディスク・ドライブ 27 制御メモリ・インターフェイス・モジュール 30 データ・バッファ・インターフェイス・モジュー
ル 38、40 関連ディスク・ドライブ 44 通信リンク 64 オペランド・メモリ・バス 118 出力ポート・デーブル 140 入力ポート・テーブル
ル 38、40 関連ディスク・ドライブ 44 通信リンク 64 オペランド・メモリ・バス 118 出力ポート・デーブル 140 入力ポート・テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デイモン・ダブリュ・フィンニィ アメリカ合衆国95133、カリフォルニア州 サンホセ、ストーンクレスト・ウェイ 2830 (72)発明者 マイケル・ハワード・ハータング アメリカ合衆国85750−2848、アリゾナ州 ツーソン、アルテザ・ビスタ 8040
Claims (9)
- 【請求項1】データ処理装置において優先度が付けられ
たタスクの実行を制御する方法であって、前記データ処
理装置は、ソフトウェアによって制御されるプロセッサ
とハードウェアで構成されるキュー・コントローラを含
み、前記キュー・コントローラは優先度が付けられた複
数のキュー手段を含み、前記キュー手段はそれぞれ、割
当てられた優先度が前記キュー手段に割当てられた優先
度に等しいタスクを列挙し、前記キュー・コントローラ
はプロセッサによって生成された命令に応答して、第1
のタスクを、実行を目的にキュー待機するために、 前記第1のタスクを、割当てられた優先度が前記第1の
タスクの優先度に等しい第1のキュー手段に列挙するス
テップと、 割当てられた優先度が高いキュー手段に第2のタスクが
列挙されている場合には、前記第1のタスクの実行前に
前記第2のタスクの実行を試行するステップとを含む方
法を実行する、 方法。 - 【請求項2】割当てられた優先度が前記第1のキュー手
段よりも高いキュー手段にタスクが列挙されていない場
合は、前記第1のキュー手段に列挙された第1のタスク
の実行を試行するステップと、 前記タスクの実行完了時に、または前記タスクの実行中
断時には、割当てられた優先度の高いキュー手段にタス
クをセットする他の命令が発行されていない場合にのみ
前記第1のキュー手段上の他のタスクの実行を試行する
ステップと、 を含む、請求項1記載の方法。 - 【請求項3】タスクは、連結された複数のサブタスクを
含み、前記方法が、 前記プロセッサによって生成された命令に応答してタス
クの各サブタスクの実行を試行するステップと、 前記サブタスクの実行が完了しない場合は、完了しなか
った前記サブタスクに連結されたサブタスクの代わりに
他のタスクの実行を試行するステップと、 を含む、請求項1記載の方法。 - 【請求項4】サブタスクの実行が完了していないとき、
正常に実行された前記タスクの最後のサブタスクを後で
確認できるようにするレコードを格納するステップと、 サブタスクが完了しなかった前記タスクの実行を次に試
行するとき、前記レコードを用い、正常に実行された前
記サブタスクから連結されたサブタスクの実行を開始す
ることによって、たとえ実行のシーケンスが中断されて
も前記タスクの全サブタスクが連結順序で実行されるス
テップと、 を含む、請求項3記載の方法。 - 【請求項5】全キュー手段上の全タスクが実行されるま
で、前記キュー手段に列挙されたタスクの実行試行を継
続するステップを含む、請求項1記載の方法。 - 【請求項6】優先度が付けられたタスクの実行を制御す
るデータ処理装置であって、 ソフトウェア制御下で、優先度が付けられたタスクを優
先度が付けられたキュー手段にセットするレディ命令を
発行するプロセッサ手段と、 優先度が付けられ、それぞれ実行可能な状態の共通優先
度のタスク名を記録する複数のレジスタを含み、共通の
優先度を有するタスクの名前だけを記録する複数のキュ
ー手段を含み、i)第1のタスク名に割当てられた優先
度に等しい優先度が指定された第1のキュー手段に、レ
ディ命令によって指定された前記第1のタスク名を列挙
し、ii)前記第1のタスクの優先度よりも高い優先度
が割当てられたキュー手段に他のタスク名が列挙されて
いる場合は、前記第1のタスクの前に前記他のタスクを
実行する、前記レディ命令に応答し、前記プロセッサの
ソフトウェア制御動作によって割込みをかけられない少
なくとも1つのタスクの実行をアトミック・ベースで試
行するレディ命令に応答する、キュー・コントローラ・
ハードウェア手段と、 を含む、データ処理装置。 - 【請求項7】前記第1のキュー手段よりも高い優先度が
割当てられたキュー手段にタスク名が列挙されていない
場合は、前記キュー・コントローラ・ハードウェア手段
が、前記第1のキュー手段に列挙された第1のタスクの
実行を試行し、列挙された前記第1のタスクの実行の完
了時または列挙された前記第1のタスクの実行中断時
に、前記キュー・コントローラ・ハードウェア手段が、
高い優先度が割当てられたキュー手段にタスクをセット
する他の命令が発行されていない場合にのみ、前記第1
のキュー手段上の他のタスクの実行を試行する、請求項
6記載のデータ処理装置。 - 【請求項8】タスクは連結された複数のサブタスクを含
み、前記キュー・コントローラ・ハードウェア手段は、
前記プロセッサによって生成された命令に応答してタス
クの各サブタスクの実行を試行し、前記サブタスクの実
行が完了しない場合は、完了しなかった前記サブタスク
に連結された前記サブタスクの代わりに別のタスクの実
行を試行する、請求項1記載のデータ処理装置。 - 【請求項9】サブタスクの実行が完了しないとき、前記
キュー・コントローラ・ハードウェア手段により、正常
に実行された前記タスクの最後のサブタスクを後に確認
できるようにするレコードが格納され、サブタスクが完
了しなかった前記タスクの実行を次に試行するとき、前
記レコードを用い、正常に実行された前記サブタスクか
ら連結されたサブタスクの実行を開始することによっ
て、たとえ実行のシーケンスが中断されても前記タスク
の全サブタスクが連結順序で実行される、請求項8記載
のデータ処理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US534585 | 1990-06-06 | ||
US08/534,585 US5940612A (en) | 1995-09-27 | 1995-09-27 | System and method for queuing of tasks in a multiprocessing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09128252A true JPH09128252A (ja) | 1997-05-16 |
JP3549081B2 JP3549081B2 (ja) | 2004-08-04 |
Family
ID=24130689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23500096A Expired - Fee Related JP3549081B2 (ja) | 1995-09-27 | 1996-09-05 | 優先度付きタスク実行制御方法及びデータ処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5940612A (ja) |
JP (1) | JP3549081B2 (ja) |
KR (1) | KR100268565B1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0961204A2 (en) * | 1998-05-28 | 1999-12-01 | Hewlett-Packard Company | Thread based governor for time scheduled process execution |
KR100526213B1 (ko) * | 1997-09-01 | 2005-12-21 | 마츠시타 덴끼 산교 가부시키가이샤 | 마이크로 컨트롤러, 데이터처리 시스템 및 태스크 스위칭의제어방법 |
KR100705955B1 (ko) * | 2004-12-30 | 2007-04-11 | 지멘스 오토모티브 주식회사 | 자동차의 엔진 제어 방법 |
JP2017090961A (ja) * | 2015-11-02 | 2017-05-25 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6338074B1 (en) * | 1997-07-23 | 2002-01-08 | Filenet Corporation | System for enterprise-wide work flow automation |
US6219741B1 (en) * | 1997-12-10 | 2001-04-17 | Intel Corporation | Transactions supporting interrupt destination redirection and level triggered interrupt semantics |
GB2334116A (en) * | 1998-02-04 | 1999-08-11 | Ibm | Scheduling and dispatching queued client requests within a server computer |
US6438595B1 (en) | 1998-06-24 | 2002-08-20 | Emc Corporation | Load balancing using directory services in a data processing system |
US6195703B1 (en) | 1998-06-24 | 2001-02-27 | Emc Corporation | Dynamic routing for performance partitioning in a data processing network |
US6295575B1 (en) | 1998-06-29 | 2001-09-25 | Emc Corporation | Configuring vectors of logical storage units for data storage partitioning and sharing |
US6421711B1 (en) * | 1998-06-29 | 2002-07-16 | Emc Corporation | Virtual ports for data transferring of a data storage system |
US6260120B1 (en) | 1998-06-29 | 2001-07-10 | Emc Corporation | Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement |
US6253260B1 (en) * | 1998-10-22 | 2001-06-26 | International Business Machines Corporation | Input/output data access request with assigned priority handling |
KR100617228B1 (ko) * | 1999-03-19 | 2006-08-31 | 엘지전자 주식회사 | 실시간 운영체계 커널의 이벤트 전달 체계 구현방법 |
US6427196B1 (en) | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
KR100678930B1 (ko) * | 1999-10-11 | 2007-02-07 | 삼성전자주식회사 | 디지털 시그널 프로세서를 위한 실시간 제어 시스템 |
US6532509B1 (en) | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6307789B1 (en) * | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6560667B1 (en) * | 1999-12-28 | 2003-05-06 | Intel Corporation | Handling contiguous memory references in a multi-queue system |
US6625654B1 (en) | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6631430B1 (en) * | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6976095B1 (en) | 1999-12-30 | 2005-12-13 | Intel Corporation | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch |
US7099855B1 (en) | 2000-01-13 | 2006-08-29 | International Business Machines Corporation | System and method for electronic communication management |
US8290768B1 (en) | 2000-06-21 | 2012-10-16 | International Business Machines Corporation | System and method for determining a set of attributes based on content of communications |
US9699129B1 (en) | 2000-06-21 | 2017-07-04 | International Business Machines Corporation | System and method for increasing email productivity |
US6408277B1 (en) | 2000-06-21 | 2002-06-18 | Banter Limited | System and method for automatic task prioritization |
US6658478B1 (en) * | 2000-08-04 | 2003-12-02 | 3Pardata, Inc. | Data storage system |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US7836329B1 (en) | 2000-12-29 | 2010-11-16 | 3Par, Inc. | Communication link protocol optimized for storage architectures |
US7644057B2 (en) | 2001-01-03 | 2010-01-05 | International Business Machines Corporation | System and method for electronic communication management |
US20020126673A1 (en) * | 2001-01-12 | 2002-09-12 | Nirav Dagli | Shared memory |
US7225242B2 (en) | 2001-01-26 | 2007-05-29 | Dell Products L.P. | System and method for matching storage device queue depth to server command queue depth |
US6964049B2 (en) * | 2001-07-18 | 2005-11-08 | Smartmatic Corporation | Smart internetworking operating system for low computational power microprocessors |
US6868476B2 (en) * | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US7158964B2 (en) * | 2001-12-12 | 2007-01-02 | Intel Corporation | Queue management |
US7107413B2 (en) | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
US7269179B2 (en) | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US7895239B2 (en) | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US7181573B2 (en) | 2002-01-07 | 2007-02-20 | Intel Corporation | Queue array caching in network devices |
US6934951B2 (en) | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US7181594B2 (en) * | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
US7149226B2 (en) | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
US8108656B2 (en) * | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
US6941438B2 (en) * | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
US7380218B2 (en) * | 2003-03-27 | 2008-05-27 | International Business Machines Corporation | Method and apparatus for managing windows |
US7389230B1 (en) | 2003-04-22 | 2008-06-17 | International Business Machines Corporation | System and method for classification of voice signals |
US8495002B2 (en) | 2003-05-06 | 2013-07-23 | International Business Machines Corporation | Software tool for training and testing a knowledge base |
US20050187913A1 (en) | 2003-05-06 | 2005-08-25 | Yoram Nelken | Web-based customer service interface |
US7650601B2 (en) | 2003-12-04 | 2010-01-19 | International Business Machines Corporation | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment |
US20050198361A1 (en) * | 2003-12-29 | 2005-09-08 | Chandra Prashant R. | Method and apparatus for meeting a given content throughput using at least one memory channel |
US7213099B2 (en) | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
US7657889B2 (en) * | 2004-04-06 | 2010-02-02 | International Business Machines Corporation | Method, system, and storage medium for searching multiple queues for prioritized work elements |
JP4622474B2 (ja) * | 2004-11-17 | 2011-02-02 | 横河電機株式会社 | フィールド機器及びこれを用いたシステム |
US7743372B2 (en) * | 2005-06-28 | 2010-06-22 | Internatinal Business Machines Corporation | Dynamic cluster code updating in logical partitions |
US7937616B2 (en) | 2005-06-28 | 2011-05-03 | International Business Machines Corporation | Cluster availability management |
US7774785B2 (en) * | 2005-06-28 | 2010-08-10 | International Business Machines Corporation | Cluster code management |
US8156493B2 (en) * | 2006-04-12 | 2012-04-10 | The Mathworks, Inc. | Exception handling in a concurrent computing process |
US20130276109A1 (en) * | 2006-07-11 | 2013-10-17 | Mcafee, Inc. | System, method and computer program product for detecting activity in association with program resources that has at least a potential of an unwanted effect on the program |
CN101714099B (zh) * | 2009-12-16 | 2012-12-05 | 金蝶软件(中国)有限公司 | 一种行集数据的处理方法、装置及数据处理系统 |
CN102253860A (zh) * | 2011-07-13 | 2011-11-23 | 深圳市万兴软件有限公司 | 一种异步操作方法及异步操作管理装置 |
CN111666148A (zh) * | 2014-04-30 | 2020-09-15 | 华为技术有限公司 | 计算机,控制设备和数据处理方法 |
KR101612105B1 (ko) * | 2014-11-27 | 2016-04-11 | 한국과학기술정보연구원 | 사용자 계정에 따른 작업우선순위가 적용된 작업관리 시스템 및 그 방법 |
US10095442B2 (en) | 2015-08-04 | 2018-10-09 | Toshiba Memory Corporation | Memory device that changes execution order of commands |
US11210134B2 (en) * | 2016-12-27 | 2021-12-28 | Western Digital Technologies, Inc. | Atomic execution unit for object storage |
WO2019063065A1 (en) * | 2017-09-26 | 2019-04-04 | Trimble Ab | DATA COLLECTION TASK WAITING FILE FOR SURVEY INSTRUMENT |
US11157004B2 (en) * | 2019-04-01 | 2021-10-26 | GM Global Technology Operations LLC | Real-time control system for a vehicle and a method of executing control of the vehicle via the real-time control system |
CN110780976B (zh) * | 2019-10-24 | 2022-03-15 | 上海华讯网络系统有限公司 | 自动化操作编排与执行方法及系统 |
CN113010286A (zh) * | 2021-03-12 | 2021-06-22 | 京东数字科技控股股份有限公司 | 并行任务调度方法、装置、计算机设备和存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4177513A (en) * | 1977-07-08 | 1979-12-04 | International Business Machines Corporation | Task handling apparatus for a computer system |
US4286322A (en) * | 1979-07-03 | 1981-08-25 | International Business Machines Corporation | Task handling apparatus |
US4358829A (en) * | 1980-04-14 | 1982-11-09 | Sperry Corporation | Dynamic rank ordered scheduling mechanism |
US4539637A (en) * | 1982-08-26 | 1985-09-03 | At&T Bell Laboratories | Method and apparatus for handling interprocessor calls in a multiprocessor system |
US4660168A (en) * | 1984-03-14 | 1987-04-21 | Grant Elwyn E | Apparatus for completing a customer initiated ATM transaction |
US4658351A (en) * | 1984-10-09 | 1987-04-14 | Wang Laboratories, Inc. | Task control means for a multi-tasking data processing system |
US4682284A (en) * | 1984-12-06 | 1987-07-21 | American Telephone & Telegraph Co., At&T Bell Lab. | Queue administration method and apparatus |
US4868744A (en) * | 1986-03-03 | 1989-09-19 | International Business Machines Corporation | Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log |
US4914570A (en) * | 1986-09-15 | 1990-04-03 | Counterpoint Computers, Inc. | Process distribution and sharing system for multiple processor computer system |
US4980824A (en) * | 1986-10-29 | 1990-12-25 | United Technologies Corporation | Event driven executive |
US5012409A (en) * | 1988-03-10 | 1991-04-30 | Fletcher Mitchell S | Operating system for a multi-tasking operating environment |
US5202988A (en) * | 1990-06-11 | 1993-04-13 | Supercomputer Systems Limited Partnership | System for communicating among processors having different speeds |
US5220653A (en) * | 1990-10-26 | 1993-06-15 | International Business Machines Corporation | Scheduling input/output operations in multitasking systems |
US5247675A (en) * | 1991-08-09 | 1993-09-21 | International Business Machines Corporation | Preemptive and non-preemptive scheduling and execution of program threads in a multitasking operating system |
-
1995
- 1995-09-27 US US08/534,585 patent/US5940612A/en not_active Expired - Fee Related
-
1996
- 1996-08-12 KR KR1019960033402A patent/KR100268565B1/ko not_active IP Right Cessation
- 1996-09-05 JP JP23500096A patent/JP3549081B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100526213B1 (ko) * | 1997-09-01 | 2005-12-21 | 마츠시타 덴끼 산교 가부시키가이샤 | 마이크로 컨트롤러, 데이터처리 시스템 및 태스크 스위칭의제어방법 |
EP0961204A2 (en) * | 1998-05-28 | 1999-12-01 | Hewlett-Packard Company | Thread based governor for time scheduled process execution |
EP0961204A3 (en) * | 1998-05-28 | 2004-01-21 | Hewlett-Packard Company, A Delaware Corporation | Thread based governor for time scheduled process execution |
KR100705955B1 (ko) * | 2004-12-30 | 2007-04-11 | 지멘스 오토모티브 주식회사 | 자동차의 엔진 제어 방법 |
JP2017090961A (ja) * | 2015-11-02 | 2017-05-25 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
Also Published As
Publication number | Publication date |
---|---|
US5940612A (en) | 1999-08-17 |
KR970016979A (ko) | 1997-04-28 |
KR100268565B1 (ko) | 2000-10-16 |
JP3549081B2 (ja) | 2004-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3549081B2 (ja) | 優先度付きタスク実行制御方法及びデータ処理装置 | |
US5606703A (en) | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures | |
US5924097A (en) | Balanced input/output task management for use in multiprocessor transaction processing system | |
US7328277B2 (en) | High-speed data processing using internal processor memory space | |
JP3165022B2 (ja) | コンピュータ・システム及びメッセージ転送方法 | |
US20070019636A1 (en) | Multi-threaded transmit transport engine for storage devices | |
JP2000330807A (ja) | 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体 | |
JPH03126158A (ja) | スケジユーリング方法及び装置 | |
JPH04215158A (ja) | データ転送制御方法及びインタフェース・システム | |
US6874040B2 (en) | Employing a data mover to communicate between dynamically selected zones of a central processing complex | |
US5070477A (en) | Port adapter system including a controller for switching channels upon encountering a wait period of data transfer | |
JPH10283304A (ja) | 割り込み要求を処理する方法及びシステム | |
WO2021179222A1 (zh) | 一种调度装置、调度方法、加速系统及无人机 | |
JP2001067298A (ja) | ハブ及びポート・アーキテクチャーを有する転送制御装置における低速ポートについての障害を防止するための書込み要求キューの使用 | |
JPH07325779A (ja) | 入出力制御装置 | |
JPH1196108A (ja) | 計算機システム及びバス制御装置 | |
JPH07114518A (ja) | マルチプロセッサシステムにおけるタスクスケジューリング方式 | |
JP3982077B2 (ja) | マルチプロセッサシステム | |
JPS59146346A (ja) | プロセス間通信方式 | |
JPH0836553A (ja) | マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法 | |
JPS59146347A (ja) | プロセス間通信方式 | |
JP2594557B2 (ja) | マルチタスク処理装置 | |
JPH056333A (ja) | マルチプロセサシステム | |
JPH05324571A (ja) | システムバス接続ユニット | |
KR960006472B1 (ko) | TICOM IOP 환경에서 FDDI펌웨어(firmware) 구동방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040128 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040406 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20040408 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040415 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |