JPH08506197A - 擬似待ち行列を形成するためにメモリ・レジスタを動的に割り振るシステム - Google Patents
擬似待ち行列を形成するためにメモリ・レジスタを動的に割り振るシステムInfo
- Publication number
- JPH08506197A JPH08506197A JP6517170A JP51717094A JPH08506197A JP H08506197 A JPH08506197 A JP H08506197A JP 6517170 A JP6517170 A JP 6517170A JP 51717094 A JP51717094 A JP 51717094A JP H08506197 A JPH08506197 A JP H08506197A
- Authority
- JP
- Japan
- Prior art keywords
- queue
- register
- task
- address
- header
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/78—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/064—Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
(57)【要約】
それぞれが1組の基準により規定されている複数の待ち行列(20−23)を具備する待ち行列システムにおいて、該待ち行列システムは複数のヘッダー・レジスタ(1−3)と複数のタスク・レジスタとを具備し、該ヘッダー・レジスタの各々は待ち行列システムにおける待ち行列を規定し、かつ該タスク・レジスタの各々は該待ち行列システムにおける各待ち行列(20−23)と関連接続され得るものである。各ヘッダー・レジスタは独特のアドレスを有し、かつ前のフィールドと次のフィールドとを含んでいる。夫々の前のフィールドと上記次のフィールドとは、それぞれの待ち行列が二重リンク構造で形成されるように、与えられた待ち行列において別のレジスタのアドレスを記憶する。各ヘッダとタスク・レジスタにおける前のフィールドと次のフィールドにおけるアドレスを、上記タスク・レジスタの各々が常に待ち行列システムの待ち行列に指定されるように制御することにより、タスク・レジスタを待ち行列(20−23)に動的に割り振るために制御手段が設けられている。
Description
【発明の詳細な説明】
擬似待ち行列を形成するためにメモリ・レジスタを動的に割り振るシステム
この特許文書の開示の部分は、著作権の保護に関する要件を含んでいる。著作
権の所有者は、特許文書または特許開示の何れかに依るファクシミリー再生に対
して、それがアメリカ特許商標庁の特許ファイルまたはレコードに記載してある
ので、異議を申し立てないが、そうでない場合に全ての著作権を保留する。
関連出願のクロス・リファレンス
次に示す同時係属アメリカ特許出願は、本出願の譲受人に譲渡され、本出願と
其の開示に関連していて、引例に依ってここに包含される。
(A)Ser.No.08/006,457はStephen R.Cornabyに依って1993年1月21日に、
単一ディスク・ドライブに於いて同じ磁気ディスク媒体を作動する2つのアクチ
ュエータ間でタスクを割り振するシステムという名称で出願された。
発明の背景
発明の分野
発明は、待ち行列を処理システム内部で構築し且つデータを構築された待ち行
列間で効果的に移動するためのシステムに関する。
関連技術の説明
多くのコンピュータ・システムは、タスクとデータをコンピュー
タ処理システムの内部で転送することを管理するために待ち行列を採用している
。待ち行列は、待ち行列に記憶されているエントリが、エントリが待ち行列に記
憶されていた順序で待ち行列から読み取られる、先入れ先出し(FIFO)待ち行列
のように、数多くのタイプになることができる。別のタイプの待ち行列は、待ち
行列に記憶されているエントリは待ち行列から読み取られる最初のエントリであ
る、後入れ先出し(LIFO)である。これは、待ち行列に記憶されている最新のデ
ータが待ち行列から読み取られる最初のデータになると言うことができる。
待ち行列は、ハードウェア・レジスタから且つメモリの専用部分から構成され
、ソフトウェア・レジスタとして作動し、そこでは、待ち行列はプロセッサのプ
ログラムの制御のもとで操作される。メモリから形成される待ち行列は、1982年
にEditor-In-Chief David F.Stout,McGraw-Hill Book Companyに依ってマイク ロプロセッサ・アプリケーション・ハンドブック
のテキストに説明されている。
著者は、17.6項で“タスク・スケジュールの遂行”という名称で、前方連結構造
を用いるタスク待ち行列の形成について述べている。前方連結構造は、次の待ち
行列エントリのアドレスに対するポインタを含んでいる各々待ち行列のエントリ
を備えて形成されている。前方連結プロセスに依って形成された待ち行列は、任
意の与えられた瞬間に待ち行列のレジスタの数と順序を定める。更に、多くの処
理システムの場合、各々待ち行列が其の待ち行列のエントリに関して行われる動
作のコースを指定するために用いられる、待ち行列の内部のエントリとして定め
られたタスクを或る待ち行列から別の待ち行列に移動することが望まれる。普通
、タスクは、待ち行列から取り出されて別の待ち行列に物理的に転送される。待
ち行列間のタスクの移動は、時間消費型のプロセスになり、且つタスクの転送中
に生成されるエラーをタスクに与えるので、エラー回復手順が呼び出されること
を要求したり、再転送動作を試みることを要求することになる。
発明の要約
発明の目的は、各々待ち行列が任意のタスク・レジスタをシステムに含むこと
ができる複数の待ち行列を生成する待ち行列システムを提供することにある。
発明の別の目的は、待ち行列システム内部の待ち行列が固定された長さに限定
されないことにある。
発明の別の目的は、システム内部の待ち行列が種々のタイプの待ち行列になる
ことを可能にする待ち行列システムを提供することにある。
発明の別の目的は、各々レジスタはレジスタが其の瞬間に位置する待ち行列の
前と次のフィールドに対するポインタを含んでいる、二重連結ポインタ構造を用
いて、待ち行列システムの待ち行列を構成することにある。
要するに、本発明は、ランダム・アクセス・メモリ・ユニットの内部で専用セ
ットのメモリ・レジスタから複数の待ち行列を形成することを意図されている。
メモリ・レジスタはヘッダー・レジスタまたはタスク・レジスタになる。各々待
ち行列は、指示されたヘッダー・レジスタと、その待ち行列に指定されたタスク
・レジスタを備えている。タスク・レジスタは待ち行列システム内部の待ち行列
に常に指定される。全てのレジスタは、少なくとも2つのフィールド、すなわち
前のフィールドと次のフィールドを含んでいる。待ち行列システム内部で用いら
れる任意のレジスタに対して、前のフィールドは其の待ち行列で先行するレジス
タのアドレスを含んでいて
、次のフィールドは待ち行列で後続するレジスタのアドレスを含んでいる。或る
待ち行列は、待ち行列システムに於いて作動状態の待ち行列の1つに今用いられ
ていないタスク・レジスタを含むことになる空の待ち行列として指示される。タ
スク・レジスタは、移動されるレジスタの次と前のフィールドと、待ち行列に挿
入される或いは其こから取り出されるタスク・レジスタの挿入または取り出しに
依って影響を受ける待ち行列の他のレジスタの次と前のフィールドの内容を変更
することに依って、待ち行列間を効果的に移動される。タスク・レジスタは、待
ち行列間を物理的に移動されないが、レジスタの前と次のフィールドを制御する
ことに依って効果的に移動されるので、各々疑似待ち行列の長さが任意の与えら
れた瞬間に其の待ち行列のためのヘッダー・レジスタに連結されるタスク・レジ
スタの数に依って定められる待ち行列システム内部の疑似待ち行列の形成を可能
にする。制御手段は、タスク・レジスタを待ち行列に挿入し且つ其こから取り出
す手順を実行するために与えられている。
最後に、異なるタイプの待ち行列が待ち行列システムに含まれることもできる
。例えば、或る待ち行列は先入れ先出し待ち行列になり、第2の待ち行列は後入
れ先出し待ち行列になり、第3の待ち行列はアドレスに依って順序設定される待
ち行列になり、第4の待ち行列はタスク・レジスタに関連する次と前のフィール
ド以外のタスク・レジスタの別のフィールドの内容に依って順序設定される待ち
行列になる。
本発明の長所は、待ち行列システムが、システムのハードウェアに対する変更
を要求せずに、汎用化できることにある。
発明の別の長所は、タスクは、タスク・データに転送エラーを露呈せずに、待
ち行列から待ち行列に瞬時に転送できることにある。
図面の簡単な説明
発明は其の特定の実施例を参照して説明されていて、参照数字が図面に付記さ
れている。
図1は発明の待ち行列システムを実施する処理システムを示すハイ・レベル図
であり、
図2は4つの待ち行列を採用する待ち行列システム構成を示し、
図3A〜3Lは待ち行列システムに従って図2に表される待ち行列間のタスク
の移動を示す図である。
図4はタスク・レジスタを待ち行列から取り出すルーチンAの流れ図である。
図5は、タスク・レジスタ・アドレスに依って指示される例を用いて順序設定
された順で待ち行列にタスク・レジスタを挿入するルーチンBの流れ図である。
図6は、タスク・レジスタが其の待ち行列の最後の位置になるように、タスク
・レジスタを待ち行列に挿入するルーチンCの流れ図である。
好まれる実施例の説明
図1を見ると、待ち行列システムは、プロセッサ10と読取専用メモリROM 11と
ランダム・アクセス・メモリRAM 12に依って部分的に構成される処理システムの
内部に実現されている。プロセッサ10は、ROM 11にライン13を介して連なり、RA
M 12にライン14を介して連なっている。このプロセッサと読取専用メモリとラン
ダム・アクセス・メモリの一般的な構成は、産業界の全体にわたって広く用いら
れている。処理システムは、大型コンピュータ計算システムの内部に一般的に含
まれていて、全体的なシステム内の特殊なタイプの機
能の取扱のために専用化されている。例えば、このような処理システムは、ディ
スク・ドライブ・ファイル制御ユニットやI/Oチャンネル制御ユニットだけで
なく、主要処理ユニット自体の内部にも含まれている。プロセッサは、プロセッ
サが其の設計された機能を実行できるように書き込まれたシステム・プログラム
の制御のもとで実行する。
本発明の待ち行列システムは、プロセッサ10に依って制御され、疑似待ち行列
の実際の形式に相応してRAM 12を使用する。RAM 12は、各々アドレスが数多くの
ビットまたはバイトのデータを含んでいる複数の記憶アドレスを含むように構成
されている。待ち行列システムは、そのアドレスをRAM内部の疑似待ち行列の形
式に相応する待ち行列システムに専用化されるランダム・アクセス・メモリの内
部で要求する。アドレスの各々はタスク・レジスタまたはヘッダー・レジスタと
考えられる。各々ヘッダーとタスク・レジスタは、少なくとも2つのフィールド
、すなわち前のフィールドと次のフィールドを含んでいる。レジスタの前のフィ
ールドは待ち行列の前のレジスタのアドレスを記憶し、次のフィールドは待ち行
列の次のレジスタのアドレスを記憶する。
各々待ち行列は少なくとも2つのヘッダー・レジスタから構成されている。待
ち行列が待ち行列に関連するタスク・レジスタを有していない時に、その待ち行
列のヘッダー・レジスタは、ヘッダー・レジスタを、待ち行列のヘッダー・レジ
スタの前と次のフィールドに記憶される自らのアドレスにする。従って、前と次
のフィールドは待ち行列に相応するヘッダー・レジスタの場所を指示するポイン
タを備えている。各々タスク・レジスタは待ち行列に常に指定される。待ち行列
システムに於いて、1つの待ち行列は、その機能としてオペレーティング・シス
テムに依って作動されるタスクに今指定
されていないタスク・レジスタを含んでいる空の待ち行列として指示される。待
ち行列システムは、数多くの異なる構成を備えているので、設計者のニーズに対
応できる。
図2は、待ち行列システムの好まれる実施例を説明するために、待ち行列シス
テムの内部に於いて4つの待ち行列20と21と22と23から成る構成を示す。この構
成は、空の待ち行列として作動し且つ待ち行列システムのタスク・レジスタの全
てを最初に含むことになる、待ち行列D23から構成されている。プロセッサ10が
待ち行列システムを用いて実施されるタスクを受け取ると、タスクは最下位のア
ドレスを待ち行列D23に有するタスク・レジスタに指定される。待ち行列は、待
ち行列D23から取り出されて、待ち行列A20に挿入される。タスクが待ち行列A
20に位置する間に、システムは、タスクの内容と、資源と動作が処理システムを
用いて其のタスクに関連して実施されなければならない内容を決定するために種
々の動作を実施する。処理システムは、タスクが待ち行列B21に関連する第1の
処理コースまたは待ち行列C22に関連する第2の処理コースに従って処理される
かどうかについての決定を行う。タスク・レジスタは、タスク・レジスタを待ち
行列A20から取り出し且つタスク・レジスタを待ち行列B21または待ち行列C22
に挿入することに依って、効果的に移動される。タスクが終了すると、タスク・
レジスタは、待ち行列B21または待ち行列C22から取り出されて、待ち行列D23
に挿入される。システムは、タスクが待ち行列B21または待ち行列C22に関連す
る処理コースに依って処理される必要がない場合に、終了したタスクに関連する
タスク・レジスタは、待ち行列A20から取り出されて、待ち行列D23に挿入され
る更なるオプションを備えている。
引用された同時係属出願“同じ磁気ディスク・ドライブを単一の
ディスク・ドライブで作動する2つのアクチュエータ間にタスクを割り振するシ
ステム”に、単一の磁気ディスク媒体を作動する二重アクチュエータ・システム
が説明されている。本発明の待ち行列システムは、そこに引用されているマイク
ロプロセッサとRAMユニットの内部に採用されている。本出願の付録Aとクロス
・リファレンス出願の場合、待ち行列A20はコマンド待ち行列であり、待ち行列
B21はデータを検索する或いは磁気媒体に記憶するタスクは1つ或いは2つだけ
のアクチュエータを採用する1チャンネル待ち行列であり、待ち行列C22は両方
のアクチュエータを単一の磁気媒体に関してシステムからのコマンドの実行に使
用する2チャンネル待ち行列であり、最後に待ち行列D23は空の待ち行列である
。
タスクを待ち行列B21、すなわち、1チャンネル待ち行列に挿入し且つ取り出
すためのルーチンは、クロス・リファレンス同時係属出願に詳細に説明されてい
るので、ここで繰り返し説明されない。本発明の待ち行列システムの説明を単純
にするために、待ち行列B21は順序設定されたアドレスである待ち行列として示
される。発明の待ち行列システムは図2に図示される構成に限定されず、待ち行
列システムの設計者は、本発明に従って、システム設計者が要望する待ち行列を
できるだけ数多く構成する待ち行列システムを具備できて、これらの待ち行列の
各々は設計者が指摘し管理する規準に従って順序設定できることが理解されるべ
きである。更に、ランダム・アクセス・メモリ内部のメモリ・レジスタのアドレ
スは、単一ブロックの専用アドレスまたは複数のブロックの専用アドレスまたは
連続しないアドレスになる。再び、アドレス、およびランダム・アクセス・メモ
リ内部のアドレスの配置は設計者の選択に依存し、メモリで用いられるアドレス
の場所は待ち行列システムの構造にとって重要な問題にならない。
ここで、発明の説明を単純にするために、待ち行列A20とB21とD23のタスク
・レジスタは待ち行列の内部で順序設定されるアドレスにあり、待ち行列C23の
タスク・レジスタは待ち行列に対する挿入の順で順序設定される。待ち行列C23
のタスクが待ち行列C23のヘッダー・レジスタの次のフィールドに記憶されてい
るタスク・レジスタ・アドレスを用いて作動される場合に、待ち行列C23は効果
的に先入れ先出し(FIFO)の待ち行列になる。待ち行列C23のタスクが待ち行列
C23のヘッダー・レジスタの前のフィールドに記憶されているタスク・レジスタ
・アドレスを用いて作動される場合、待ち行列C23は効果的に後入れ後出し(LI
FO)待ち行列になる。待ち行列の文字は、待ち行列を待ち行列システム内部で順
序設定する方式およびタスクを待ち行列から取り出す方式について、システム設
計者に依って決定されることが容易に分かる。再び、待ち行列の各々を待ち行列
のタイプに区分けすることは、待ち行列システムに関連して用いられる全てのタ
スク・レジスタが待ち行列システムの待ち行列の1つの内部に常に置かれること
を保証するために、1つの待ち行列が空の待ち行列として専用化されなければな
らないことを除けば、システム内部に於いて重要なことでない。
図4で、ルーチンAは、タスク・レジスタを待ち行列システム内部の任意の待
ち行列から取り出す手順を示す。タスク・レジスタを或る待ち行列から別の待ち
行列に移動する移動動作中に、移動動作は、最初にルーチンAを実行して、以降
、今のレジスタと呼ばれるタスク・レジスタを、待ち行列から取り出す。この取
り出し動作を実行するために、ルーチンAは次に示す順序のステップを実行する
。ステップ1は前のレジスタの次のフィールドに記憶されるアドレスを作成し、
そのアドレスは、今のレジスタの前のフィールドに記憶され、今のレジスタの次
のフィールドに記憶されたアドレスと等
しくなる。ステップ2は次のレジスタの前のフィールドに記憶されるアドレスを
作成し、そのアドレスは、今のレジスタの次のフィールドに記憶され、今のレジ
スタの前のフィールドに記憶されたアドレスと等しくなる。このように、待ち行
列のタスク・レジスタ間の連結は、今のレジスタが待ち行列から取り出された後
に再び構築される。これは別の待ち行列に取り出される今のレジスタの挿入ルー
チン中にアドレス設定されるので、取り出される今のレジスタの次のフィールド
と前のフィールドに関して、ここで何も行われないことに注目すべきである。
図5で、ルーチンB、タスク・レジスタが待ち行列のタスク・レジスタのアド
レスの昇順で順序設定される事例を用いて、順序設定された順序で待ち行列に取
り出される今のレジスタを挿入するプロセスを示す。これは、取り出される今の
レジスタは、図2に関連して説明されたような構成の待ち行列A,BまたはDに
挿入される時に準じるルーチンである。この動作に於いて、今のレジスタは、待
ち行列に挿入される今のレジスタのアドレスより、次の最下位のアドレスを有す
るレジスタと次の最上位のアドレスを有するレジスタの間で待ち行列に挿入され
ることが要求される。ヘッダー・レジスタは、その前または次のフィールドがこ
の手順に依って変更されるレジスタの1つになる周囲条件に注意しなければなら
ない。
ルーチンBは、次に示す順序のステップを実施して、この動作を実行する。ス
テップ1は、今のレジスタが挿入される希望された待ち行列のヘッダー・レジス
タを選択する。ステップ2は、最初の事例でヘッダー・レジスタになる、選択さ
れたレジスタの次のフィールドに記憶されているアドレスが、ヘッダー・レジス
タのアドレスと等しいかどうか決定する。選択されたアドレスの次のフィールド
に記憶されているアドレスがヘッダー・レジスタのアドレスである
場合、ルーチンはステップ5に分岐する。選択されたレジスタの次のフィールド
に記憶されているアドレスがヘッダー・レジスタのアドレスと等しくない場合、
ステップ3が実行されて、今のレジスタのアドレスが選択されたレジスタの次の
フィールドに記憶されているアドレスより大きいかどうかについて試験される。
この紹介が否定的である場合、ルーチンはステップ5に分岐する。ステップ3の
紹介が肯定的である場合、ステップ4が実行され、選択されたレジスタを、その
アドレスがいま選択されているレジスタの次のフィールドに記憶されるレジスタ
として、ステップ2に戻る。ステップ2とステップ3とステップ4のループは、
ループがステップ2またはステップ3が終了するまで繰り返される。ルーチンが
ステップ2またはステップ3を終了すると、ステップ5が処理される。ステップ
5は、取り出された今のレジスタの次のフィールドに記憶されるアドレスを、選
択されたレジスタの次のフィールドに記憶されたアドレスと等しくする。ステッ
プ6は、取り出された今のレジスタの前のフィールドに記憶されるアドレスを、
選択されたレジスタのアドレスと等しくする。ステップ7は、アドレスが選択さ
れたレジスタの次のフィールドに記憶されるレジスタの前のフィールドに記憶さ
れていたアドレスを、取り出された今のレジスタのアドレスと等しくする。最後
に、ステップ8は、選択されたレジスタの次のフィールドに記憶されるアドレス
を、取り出された今のレジスタのアドレスと等しくする。ステップ5と6と7と
8は、ステップ8が今のステップ5とステップ7の次に常に続くことを除けば、
入れ替えできることに注意すべきである。ルーチンBのステップ8が終了すると
、取り出された今のレジスタは待ち行列に挿入され、待ち行列内部の全てのタス
ク・レジスタは待ち行列に於いてタスク・レジスタの昇順するアドレスの順序に
なる。
ルーチンBは昇順するタスク・レジスタ・アドレスの順でタスク・レジスタの
順序設定のために説明されてきたが、順序設定は、待ち行列システムの各々ヘッ
ダーとタスク・レジスタの更なるフィールドのデータを用いて行われる。更なる
フィールドが待ち行列のタスク・レジスタの順序を決定するために用いられる時
に、ルーチンBは、ステップ1と2と3と4で、その目的のために用いられる其
の更なるフィールドに記憶されているデータに従って適切な選択されたレジスタ
を決定するために修正される。選択されたレジスタが決定されると、挿入される
今のタスク・レジスタはルーチンBのステップ5と6と7と8に挿入される。
図6で、ルーチンCは取り出された今のレジスタを待ち行列に挿入する手順を
示し、そこに取り出された今のレジスタが待ち行列の最後のタスク・レジスタと
して挿入される。効果的に、タスク・レジスタは、タスク・レジスタが待ち行列
に挿入された順序で待ち行列内部に順序設定される。ルーチンCは、次に示す順
のステップを実施して、この動作を実行する。ステップ1は希望された待ち行列
のヘッダー・レジスタを選択する。図の待ち行列構成の場合、ルーチンCは、取
り出された今のレジスタが待ち行列C23に挿入される時に必ず実行される。ステ
ップ2は、取り出された今のレジスタの次のフィールドに記憶されるアドレスを
、ヘッダー・レジスタのアドレスと等しくする。これは、取り出された今のレジ
スタが待ち行列の最後のレ スタとして待ち行列で挿入されることを保証する。
ステップ3は、取り出された今のレジスタの前のフィールドに記憶されているア
ドレスを、ヘッダー・レジスタの前のフィールドに記憶されているアドレスと等
しくする。ステップ4は、アドレスがヘッダー・レジスタの前のフィールドで指
示されたレジスタの次のフィールドに記憶されるアドレスを、取り出された今の
レジスタのア
ドレスと等しくする。最後に、ステップ5は、ヘッダー・レジスタの前のフィー
ルドに記憶されるアドレスを、取り出された今のレジスタのアドレスと等しくす
る。
待ち行列のレジスタは、レジスタの次のフィールドに依って前進ループで且つ
レジスタの前のフィールドに依って後退ループで連結される。待ち行列の各々の
内部のレジスタの各々の内部で次のフィールドと前のフィールドを使用すること
は、システムが順序通りに待ち行列を上下に進めることを可能にする。システム
は、待ち行列の内部の任意のレジスタに、待ち行列内部の其の位置に関係なしに
、システムに依って分類されるレジスタのアドレスに従ってアクセスできる。再
び、これは、システム設計者のニーズを満足するために待ち行列システムを設計
するシステム設計者に最大限度の柔軟性を与える。そのように希望される場合、
ルーチンAとBとCは、待ち行列間の移動動作がオペレーティング・システムに
依って指示される時に、必ず、プロセッサ10に依ってアクセスされるROM 11の内
部に恒久的に記憶できる。
待ち行列システムの動作について、図3A〜3Lに図示される事例を参照しな
がら説明される。図は、各々アドレスAとBとCとDを有する4つのヘッダー・
レジスタを各々示している。アドレスAは待ち行列A20のヘッダー・レジスタの
アドレスであり、アドレスBは待ち行列B21のヘッダー・レジスタのアドレスで
あり、アドレスCは待ち行列C22のヘッダー・レジスタのアドレスであり、アド
レスDは待ち行列D23のヘッダー・レジスタのアドレスである。9つのタスク・
レジスタは1〜9のアドレスを有して図示されている。再び、これらの事例で使
用するために選択されたアドレスに意味がなく、アドレスはシステム設計者に依
って指定されて用いられる規準に従うヘッダー・レジスタまたはタスク・レジス
タに相応して
選択される。ヘッダー・レジスタとタスク・レジスタの各々が其れに関連する前
のフィールドPFと次のフィールドNFを備えている。再び、前のフィールドPFは待
ち行列の内部に前のレジスタのアドレスを有していて、次のフィールドNFは待ち
行列の内部に次のレジスタのアドレスを有している。タスク・レジスタに関して
、2つの他のカラムが与えられていて、TNとラベル表示されたカラムはタスク・
レジスタに指定されたタスクを識別するために用いられ、Qとラベル表示された
カラムはタスク・レジスタがいま指定されている待ち行列を指示するために用い
られる。
図3は、タスク・レジスタの全てが待ち行列D23に指定される時に、タスク・
レジスタとヘッダー・レジスタの関係を示す。図から分かるように、アドレスA
とBとCの待ち行列AとBとCのヘッダー・レジスタは、それらに関連するレジ
スタの前のフィールドと次のフィールドに記憶されている其れら自体に関連する
ヘッダー・レジスタのアドレスの各々を有している。前のフィールドと次のフィ
ールドが共にヘッダー・レジスタのアドレスを含んでいる時に、その待ち行列は
空になる。従って、待ち行列AとBとCはこの時に空になり、全てのレジスタが
待ち行列D23に位置する。待ち行列D23のヘッダー・レジスタの次のフィールド
はアドレス1に待ち行列の最初のタスク・レジスタのアドレスを含んでいて、待
ち行列D23のヘッダー・レジスタの前のフィールドはアドレス9に待ち行列の最
後のタスク・レジスタのアドレスを含んでいる。これから、タスク・レジスタは
タスク・レジスタのアドレスに依って識別される。例えば、タスク・レジスタ1
はRAM 13のアドレス1に位置するタスク・レジスタである。タスク・レジスタ1
に於いて、前のフィールドは、アドレスD、ヘッダー・レジスタのアドレスを含
んでいて、次のフィールドは、アドレス2、待ち行列D23の次のタスク・レジス
タのアドレスを含んでいる。タスク・レジスタ9に於いて、前のフィールドは、
アドレス8、待ち行列で先行するタスク・レジスタのアドレスを含んでいて、次
のフィールドは、アドレスD、ヘッダー・レジスタのアドレスを含んでいる。確
認すると、タスク・レジスタ2と3と4と5と6と7と8は、各々、待ち行列に
於いて先行するタスク・レジスタのアドレスを含んでいる其れらの前のフィール
ドと、待ち行列に於いて後続するタスク・レジスタのアドレスを含んでいる其れ
らの次のフィールドを備えている。待ち行列D23のヘッダー・レジスタと、タス
ク・レジスタ1〜9は、従って、待ち行列D23から相互に連結される。
オペレーティング・システムは、タスクを受け取る時に、アドレスが空の待ち
行列の次のフィールドに記憶されるタスク・レジスタに其のタスクを記憶して、
そのレジスタを待ち行列D23から待ち行列A20に移動すると想定する。オペレー
ティング・システムはタスクA1を処理のために受け取ると想定する。前述の動
作を実行するために、オペレーティング・システムは、最初にタスクA1をタス
ク・レジスタ1に記憶し、次にタスク・レジスタ1を待ち行列D23から取り出す
ルーチンAを実施する。タスク・レジスタ1はルーチンAとBで引用される今の
レジスタになる。ルーチンBは、順にステップ1と2と5と6と7と8を実施す
ることに依って、タスク・レジスタ1を待ち行列A20に挿入するために次に実施
される。この手順の結果が図3Bに図示されていて、そこでは、タスクA1を含
んでいるタスク・レジスタ1が待ち行列A20に位置し、全ての他のタスク・レジ
スタは待ち行列D23に残されている。待ち行列D23の次のフィールドは、いま、
タスク・レジスタ1より、むしろタスク・レジスタ2を示していることに注目す
べきである。
図3Cを見ると、システムは、待ち行列A20に移動される待ち行
列D23のタスク・レジスタ2にここで記憶されるタスクA2を次に受け取ると想
定している。タスクA2がタスク・レジスタ2にロードされた後に、タスク・レ
ジスタ2は待ち行列DからルーチンAに依って取り出される。ルーチンBは、ス
テップ1と2と3と4と2と5と6と7と8を実施して、レジスタ2を待ち行列
A20に次に挿入する。この手順の結果が図3Cに図示されている。
図3Dを見ると、システムは、待ち行列D23のレジスタ3に記憶されているタ
スクA3を次に受け取り且つレジスタ3は待ち行列D23から待ち行列A20に移動
されることを想定している。ルーチンAはレジスタ3を待ち行列D23から取り出
すために実施される。ルーチンBは、ステップ1と2と3と4と2と3と4と2
と5と6と7と8を順に実施して、レジスタ3を待ち行列A20の内部に挿入する
。この手順の結果が図3Dに図示されている。
要約すると、ここで、待ち行列A20はヘッダー・レジスタAとタスク・レジス
タ1と2と3から構成し、待ち行列B21はヘッダー・レジスタBから構成し、待
ち行列C22はヘッダー・レジスタCから構成し、待ち行列D23はヘッダー・レジ
スタDとタスク・レジスタ4と5と6と7と8と9から構成している。
図3Eを見ると、システムは、タスクA1は更なる処理のために待ち行列A20
から待ち行列B21に移動されることを次に決定すると想定している。タスクA1
はタスク・レジスタ1に記憶されているので、ルーチンAはタスク・レジスタ1
を待ち行列A20から取り出すために実施される。ルーチンBは、順にステップ1
と2と5と6と7と8を実施して、タスク・レジスタ1を待ち行列B21に挿入す
るために実施される。
図3Fを見ると、オペレーティング・システムは、待ち行列A20に挿入される
待ち行列D23のタスク・レジスタ4に記憶されている
タスクA4を次に受け取ることを想定している。ルーチンAはタスク・レジスタ
4を待ち行列D23から取り出すために実施される。ルーチンBは、順にステップ
1と2と3と4と2と3と4と2と5と6と7と8を実施して、タスク・レジス
タ4を待ち行列A20に挿入するために実施される。この手順の結果が図3Fに図
示されている。
要約すると、待ち行列A20は、いま、ヘッダー・レジスタAとタスク・レジス
タ2と3と4を含んでいて、待ち行列B21はヘッダー・レジスタBとタスク・レ
ジスタ1を含んでいて、待ち行列C22はヘッダー・レジスタCを含んでいて、待
ち行列D23はヘッダー・レジスタDとタスク・レジスタ5と6と7と8と9から
構成している。
図3Gを見ると、オペレーティング・システムは、タスクA3が待ち行列A20
から待ち行列C22に移動されることを決定すると次に想定している。タスクA3
はタスク・レジスタ3に記憶されているので、ルーチンAはタスク・レジスタ3
を待ち行列A20から取り出すために実施される。ルーチンCは、順にステップ1
と2と3と4と5を実施して、タスク・レジスタ3を待ち行列C22に挿入するた
めに実施される。この手順の結果が図3Gに図示されている。
図3Hを見ると、タスクA5とA6とA7はシステムで処理されるシステムに
依る其の順序で受け取られることを次に想定している。これらのタスクはタスク
・レジスタ5と6と7で挿入される。タスク・レジスタ5と6と7は待ち行列D
23から待ち行列A20に移動される。これらの動作の各々が、これらのタスクの各
々に相応してルーチンAとルーチンBを実施する動作を含んでいる。これらの手
順の結果が図3Hに図示されている。
要約すると、この時に、待ち行列A20はヘッダー・レジスタAと
タスク・レジスタ2と4と5と6と7から構成し、待ち行列B21はヘッダー・レ
ジスタBとタスク・レジスタ1から構成し、待ち行列C22はヘッダー・レジスタ
Cとタスク・レジスタ3から構成し、待ち行列D23はヘッダー・レジスタDとタ
スク・レジスタ8と9から構成している。
図3Iを見ると、オペレーティング・システムは、タスクA5が待ち行列A20
から待ち行列C22に移動されることを決定すると想定している。タスクA5はタ
スク・レジスタ5にあるので、ルーチンAはタスク・レジスタ5を待ち行列A20
から取り出すために実施される。ルーチンCは、順にステップ1と2と3と4と
5を実施して、タスク・レジスタ5を待ち行列C22に挿入するために実施される
。この動作の結果が図3Iに図示されている。
図3Jを見ると、オペレーティング・システムは、タスクA2が処理のために
待ち行列A20から待ち行列C22に移動されることを決定すると次に想定している
。タスクA2はタスク・レジスタ2に位置しているので、ルーチンAはタスク・
レジスタ2を待ち行列A20から取り出すために実施される。ルーチンCは、順に
ステップ1と2と3と4と5を実施して、タスク・レジスタ5を待ち行列C22に
挿入するために実施される。この手順の結果が図3Jに図示されている。
この時に、待ち行列A20はヘッダー・レジスタAとタスク・レジスタ4と6と
7から構成し、待ち行列B21はヘッダー・レジスタBとタスク・レジスタ1から
構成し、待ち行列C22はヘッダー・レジスタCとタスク・レジスタ3と5と2か
ら構成し、待ち行列D23はヘッダー・レジスタDとタスク・レジスタ8と9から
構成している。
図3Kを見ると、タスクA1が終了したことを次に決定したシス
テムは、タスクA1を記憶している、タスク・レジスタA1を待ち行列A20から
待ち行列D23に戻す。ルーチンAはタスク・レジスタ1を待ち行列A20から取り
出すために実施される。ルーチンBは、順にステップ1と2と3と5と6と7と
8を実施して、タスク・レジスタを待ち行列D23に挿入するために実施される。
この手順の結果が図3Kに図示されている。
図3Lを見ると、オペレーティング・システムは、待ち行列A20に挿入される
待ち行列D23のタスク・レジスタ1に記憶されているタスク8を受け取ることを
想定している。タスクA8がタスク・レジスタ1に記憶された後に、ルーチンA
はタスク・レジスタ1を待ち行列D23から取り出すために実施される。ルーチン
Bは、順にステップ1と2と3と5と6と7と8を実施して、タスク・レジスタ
1を待ち行列A20に挿入するために実施される。この手順の結果が図3Lに図示
されている。
要約すると、この時に、待ち行列A20はヘッダー・レジスタAと、各々タスク
・レジスタ1と4と6と7に記憶されているタスクA8とA4とA6とA7を含
んでいて、待ち行列B21はヘッダー・レジスタBから構成し、待ち行列C22はヘ
ッダー・レジスタCと、各々タスク・レジスタ3と5と2に記憶されているタス
クA3とA5とA2を含んでいて、待ち行列D23はヘッダー・レジスタDとタス
ク・レジスタ8と9から構成している。
今までの論述では、待ち行列システムの動作と、待ち行列システムが設計者の
ニーズを満足するために設計者に依って汎用化できる方式について述べられてき
た。待ち行列システムはメモリ場所をランダム・アクセス・メモリの内部に用い
て説明されてきたが、専用ハードウェア・レジスタがランダム・アクセス・メモ
リの代わりに使用できることも理解されるべきである。
待ち行列間のタスクの移動は、タスク・レジスタを待ち行列から取り出し且つ
挿入することに依って影響を受けるレジスタの前と次のフィールドの修正だけ必
要としていたことが容易に認めることができる。タスクを含んでいるタスク・レ
ジスタが待ち行列間で効果的に移動された時に、タスク・レジスタ内部に記憶さ
れていたタスクに関連する実際のデータを移動する必要は常にない。前述のよう
に、待ち行列システムは、各々疑似待ち行列がヘッダー・レジスタと1つまたは
複数のタスク・レジスタから構成され且つ各々タスク・レジスタが待ち行列シス
テムの待ち行列に常に指定される、疑似待ち行列を形成するためにレジスタを割
り振りしていた。最終的な待ち行列システムは、設計者に依って汎用化されるの
で容易に使用できて、システムの要求が変わると簡単に変更できて修正できるも
のになる。
図4と5と6のルーチンは、周知のデジタル・ソフトウェア方式を用いてマイ
クロコードで具体的に作成され、Motorolla 68C11 Assembler,Series 5.0を用
いてアセンブルされていた。マイクロプログラムは、付録Aに詳細に説明されて
おり、且つ図4と5(タスク・レジスタ順序設定でないが更なるフィールド順序
設定に依って行われる)と6に図示される流れ図のルーチンの機能を実行する。
この方法は、他のプログラム設定可能言語を用いる他のマイクロプログラムで実
現できるが、またはコンピュータ・システム内部の読取専用メモリにも記憶でき
ることが理解されるべきである。プロセッサ10の機能は、ここで説明されたルー
チンを実行するために必要な機能を実施するために専用化されたハードウェア・
ステート・マシンを用いて実現できる。
発明は好まれる実施例を参照しながら特に図示され説明されてきたが、当業者
は、形式的で細部の変更は発明の精神と範囲を逸脱せ
ずに其こに実施できることを理解すると思われる。前述の一般的な概念と特殊な
実施例の開示が与えられたので、要求される保護の範囲は次に示す特許請求の範
囲に依って定められる。
【手続補正書】特許法第184条の7第1項
【提出日】1994年6月28日
【補正内容】
訂正された請求項
「1994年6月28日に国際局に依って受理された;原請求項4は削除された;原請
求項1と2と3と5と9が訂正された;原請求項6〜8は変更されない;請求項
は1〜8として再び番号が付記された(3頁)」
請求の範囲
1.待ち行列システムであって、
複数の待ち行列であって、
前記の複数の待ち行列の各々待ち行列は独自のヘッダー・レジスタ・アドレス
を有するヘッダー・レジスタをを有していて且つ前記のヘッダー・レジスタは前
のフィールドと次のフィールドを含んでいて、且つ前記の前のフィールドと前記
の次のフィールドは前記のヘッダー・レジスタの前記のヘッダー・レジスタ・ア
ドレスまたはタスク・レジスタ・アドレスの何れかを記憶する、前記の複数の待
ち行列と、
複数のタスク・レジスタであって、各々前記のタスク・レジスタは独自の前記
のタスク・レジスタ・アドレスを有していて且つ前のフィールドと次のフィール
ドを含んでいて、各々前記の前のフィールドと前記の次のフィールドは前記の複
数の前記の待ち行列の前記の待ち行列の1つに対して前記のヘッダー・レジスタ
・アドレスを或いは前記の複数のタスク・レジスタの前記のタスク・レジスタの
別の1つに対して前記のタスク・レジスタ・アドレスを記憶する、前記の複数の
タスク・レジスタと、
前記のタスク・レジスタの各々が前記の複数の待ち行列の1つに常に位置する
ように且つ前記のタスク・レジスタを物理的に移動せ
ずに待ち行列間で前記のタスク・レジスタを効果的に移動できるように、前記の
ヘッダー・レジスタの各々とタスク・レジスタの各々に於いて前記の前のフィー
ルドと次のフィールドに記憶されているアドレスを制御することに依って、各々
前記のタスク・レジスタを動的に指定し転送し維持する制御手段を搭載する、前
記の待ち行列システム。
2.前記の制御手段は、前記のヘッダー・レジスタを有する前記の複数の待ち
行列の前記の待ち行列が前記の制御手段に依って前記の待ち行列に指定された前
記のタスク・レジスタを有していない時に、前記のヘッダー・レジスタの前記の
次のフィールドと前記の前のフィールドに於ける前記のヘッダー・レジスタのた
めに前記のヘッダー・レジスタ・アドレスを記憶する、特許請求の範囲第1項に
記載の待ち行列システム。
3.前記の制御手段は、前記の待ち行列の他のタスク・レジスタが下位の前記
のタスク・レジスタ・アドレスを有していない場合に前記の待ち行列に対して前
記の待ち行列の前記のタスク・レジスタの次の下位のタスク・レジスタ・アドレ
スを有するタスク・レジスタのタスク・レジスタ・アドレスまたは前記のヘッダ
ー・レジスタ・アドレスを前記の待ち行列の前記のタスク・レジスタの各々の前
記の前のフィールドに記憶することに依って、および前記の待ち行列の他のタス
ク・レジスタが上位の前記のタスク・レジスタ・アドレスを有していない場合に
前記の待ち行列に対して前記の待ち行列の前記のタスク・レジスタの次の最上位
のタスク・レジスタ・アドレスを有するタスク・レジスタのタスク・レジスタ・
アドレスまたは前記のヘッダー・レジスタ・アドレスを前記の待ち行列の前記の
タスク・レジスタの各々の前記の次のフィールドに記憶するために、および前記
の待ち行列に対してヘッダー・レジスタの次のフィー
ルドに最下位のタスク・レジスタ・アドレスを有する前記の待ち行列の前記のタ
スク・レジスタのタスク・レジスタ・アドレスを記憶することに依って、および
前記の待ち行列に対して前記のヘッダー・レジスタの前のフィールドに前記の待
ち行列の最上位のタスク・レジスタ・アドレスを有する前記の待ち行列の前記の
タスク・レジスタのタスク・レジスタ・アドレスを記憶するために、前記の複数
の待ち行列の待ち行列の前記のタスク・レジスタを順序設定する、特許請求の範
囲第1項に記載の待ち行列システム。
4.前記の制御手段は、
前記のタスク・レジスタの1つを前記の複数の待ち行列の前記の待ち行列の1
つから取り出す削除手段と、
前記の削除手段に依って前記の待ち行列から取り除かれた前記のタスク・レジ
スタの前記の1つを前記の複数の待ち行列の別の1つに挿入する挿入手段を更に
搭載している、特許請求の範囲第3項に記載の待ち行列システム。
5.前記の挿入手段は、前記の待ち行列の前記のタスク・レジスタを、前記の
待ち行列の最後のタスク・レジスタとして挿入する第1の手段を含んでいる、特
許請求の範囲第4項に記載の待ち行列システム。
6.前記の挿入手段は、前記の待ち行列の前記のタスク・レジスタを、前記の
待ち行列に挿入される前記のタスク・レジスタのアドレスのファンクションとし
て挿入する第2の手段を含んでいる、特許請求の範囲第4項に記載の待ち行列シ
ステム。
7.前記の待ち行列システムの前記の待ち行列の1つは、空の待ち行列であり
、前記の待ち行列システムの内部で別の待ち行列に置かれないタスク・レジスタ
を含んでいるので、常に各々タスク・レジスタは前記の待ち行列システムの待ち
行列に置かれることを保証
する、特許請求の範囲第1項に記載の待ち行列システム。
8.前記の制御手段は、前記の待ち行列システムの内部に於いて第1の待ち行
列と第2の待ち行列の間でタスク・レジスタを、最初に前記の削除手段を作動し
て前記のタスク・レジスタを前記の第1の待ち行列から取り出し、次に前記の取
り出されたタスク・レジスタを前記の第2の待ち行列に挿入するために前記の挿
入手段の前記の第1または第2の手段を作動することに依って効果的に移動する
、特許請求の範囲第4項に記載の待ち行列システム。
【手続補正書】特許法第184条の8
【提出日】1995年1月17日
【補正内容】
請求の範囲
1.待ち行列システムであって、
複数の待ち行列であって、
前記の複数の待ち行列の各々待ち行列は独自のヘッダー・レジスタ・アドレス
を有するヘッダー・レジスタをを有していて且つ前記のヘッダー・レジスタは前
のフィールドと次のフィールドを含んでいて、且つ前記の前のフィールドと前記
の次のフィールドは前記のヘッダー・レジスタの前記のヘッダー・レジスタ・ア
ドレスまたはタスク・レジスタ・アドレスの何れかを記憶する、前記の複数の待
ち行列と、
複数のタスク・レジスタであって、各々前記のタスク・レジスタは独自の前記
のタスク・レジスタ・アドレスを有していて且つ前のフィールドと次のフィール
ドを含んでいて、各々前記の前のフィールドと前記の次のフィールドは前記の複
数の前記の待ち行列の前記の待ち行列の1つに対して前記のヘッダー・レジスタ
・アドレスを或いは前記の複数のタスク・レジスタの前記のタスク・レジスタの
別の1つに対して前記のタスク・レジスタ・アドレスを記憶する、前記の複数の
タスク・レジスタと、
前記のタスク・レジスタの各々が前記の複数の待ち行列の1つに常に位置する
ように且つ前記のタスク・レジスタを物理的に移動せずに待ち行列間で前記のタ
スク・レジスタを効果的に移動できるように、前記のヘッダー・レジスタの各々
とタスク・レジスタの各々に於いて前記の前のフィールドと次のフィールドに記
憶されているアドレスを制御することに依って、各々前記のタスク・レジスタを
動的に指定し転送し維持する制御手段を搭載し、
前記の制御手段は、前記の待ち行列の他のタスク・レジスタが下
位の前記のタスク・レジスタ・アドレスを有していない場合に前記の待ち行列に
対して前記の待ち行列の前記のタスク・レジスタの次の下位のタスク・レジスタ
・アドレスを有するタスク・レジスタのタスク・レジスタ・アドレスまたは前記
のヘッダー・レジスタ・アドレスを前記の待ち行列の前記のタスク・レジスタの
各々の前記の前のフィールドに記憶することに依って、および前記の待ち行列の
他のタスク・レジスタが上位の前記のタスク・レジスタ・アドレスを有していな
い場合に前記の待ち行列に対して前記の待ち行列の前記のタスク・レジスタの次
の最上位のタスク・レジスタ・アドレスを有するタスク・レジスタのタスク・レ
ジスタ・アドレスまたは前記のヘッダー・レジスタ・アドレスを前記の待ち行列
の前記のタスク・レジスタの各々の前記の次のフィールドに記憶するために、お
よび前記の待ち行列に対してヘッダー・レジスタの次のフィールドに最下位のタ
スク・レジスタ・アドレスを有する前記の待ち行列の前記のタスク・レジスタの
タスク・レジスタ・アドレスを記憶することに依って、および前記の待ち行列に
対して前記のへッダー・レジスタの前のフィールドに前記の待ち行列の最上位の
タスク・レジスタ・アドレスを有する前記の待ち行列の前記のタスク・レジスタ
のタスク・レジスタ・アドレスを記憶するために、前記の複数の待ち行列の待ち
行列の前記のタスク・レジスタを順序設定する、請求の範囲第1項に記載の待ち
行列システム。
2.前記のヘッダー・レジスタを有する前記の複数の待ち行列の前記の待ち行
列が、前記の制御手段によって前記の待ち行列に指定された前記のタスク・レジ
スタを有していない時に、前記の制御手段は、前記のヘッダー・レジスタの前記
の次のフィールドと前記の前のフィールドにおける該ヘッダー・レジスタ用の該
ヘッダー・レジスタのアドレスを記憶するものである、請求項1記載の待ち行列
システム。
3.前記の制御手段は、
前記のタスク・レジスタの1つを、前記の複数の待ち行列の中の該待ち行列の
1つから除去する削除手段;および
該削除手段により前記待ち行列から除去された前記タスク・レジスタの前記の
1つを、前記複数の待ち行列の別の1つに挿入する挿入手段;
とを更に具備するものである、請求項1記載の待ち行列システム。
4.前記挿入手段は、前記の待ち行列の前記のタスク・レジスタを、該待ち行
列の最後のタスク・レジスタとして挿入する第1の手段を具備するものである、
請求項3記載の待ち行列システム。
5.前記の挿入手段は、該待ち行列の前記タスク・レジスタを、該待ち行列に
挿入されている該タスク・レジスタのアドレスの関数として挿入する第2の手段
を具備するものである、請求項3記載の待ち行列システム。
6.前記待ち行列システムにおける該待ち行列の1つは、空の待ち行列であり
、かつ該待ち行列システムの内部で別の待ち行列に設置されない該タスク・レジ
スタを具備するので、それにより常に各々タスク・レジスタが該待ち行列システ
ムの待ち行列内に設置されることを保証するものである請求項3記載の待ち行列
システム。
7.前記の制御手段は、前記の待ち行列システムの内部において、第1の待ち
行列と第2の待ち行列の間でタスク・レジスタを、最初に前記除去手段を作動せ
しめて該タスク・レジスタを該第1の待ち行列から除去し、次に前記の除去され
たタスク・レジスタを該第2の待ち行列に挿入するために、前記の挿入手段の前
記の第1又は第2の手段を作動せしめることにより、効果的に移動せしめ、請求
項3記載の待ち行列システム。
Claims (1)
- 【特許請求の範囲】 1.待ち行列システムにおいて、 複数の待ち行列であって、該待ち行列は、 複数のヘッダー・レジスタであって、各々前記のヘッダー・レジスタは前記待 ち行列の1つに独自に関連していて、各々前記のヘッダー・レジスタは独自のア ドレスを有し、且つ前のフィールドと次のフィールドを備えているもの; 複数のタスク・レジスタであって、各々前記のタスク・レジスタは独自のアド レスを有し、且つ前のフィールドと次のフィールドを備えており、ここにおいて 前記の前のフィールドと前記の次のフィールドはヘッダー・レジスタ・アドレス またはタスク・レジスタ・アドレスを夫々記憶するもの; とから構成される複数の待ち行列;および 前記のタスク・レジスタの各々が、常に前記の待ち行列の1つに相応している ので、前記のタスク・レジスタを物理的に移動せずに待ち行列間で該タスク・レ ジスタを効果的に移動できるように、前記のヘッダー・レジスタとタスク・レジ スタの各々に於いて前記の前のフィールドと次のフィールドに記憶されているア ドレスを制御することに依って、該タスク・レジスタを該待ち行列に動的に指定 するための制御手段; とを具備することを特徴とする待ち行列システム。 2.前記の待ち行列のための前記のヘッダー・レジスタの前記の次のフィール ドと前記の前のフィールドは、前記のタスク・レジスタが前記の制御手段に依っ て前記の待ち行列に指定されていない時に、前記の待ち行列のための前記のヘッ ダー・レジスタのアドレスを記憶する、請求の範囲第1項に記載の待ち行列シス テム。 3.前記のタスク・レジスタの前記の前のフィールドは前記のタスク・レジス タを含んでいる前記の待ち行列に於いて前記のタスク・レジスタの直前のレジス タのアドレスを記憶し、前記のタスク・レジスタの前記の次のフィールドは前記 のタスク・レジスタを含んでいる前記の待ち行列に於いて前記のタスク・レジス タの直後のレジスタのアドレスを含んでいる、請求の範囲第1項に記載の待ち行 列システム。 4.各々前記の待ち行列のレジスタの次のフィールドに記憶されているアドレ スの順序は待ち行列に於いてヘッダー・レジスタから最後のタスク・レジスタに 向かう方向で連続するループを形成し、前記の待ち行列のレジスタの前のフィー ルドに記憶されているアドレスの順序は待ち行列に於いて最後のタスク・レジス タからヘッダー・レジスタに向かう方向で連続するループを形成する、請求の範 囲第3項に記載の待ち行列システム。 5.前記の制御手段は、 タスク・レジスタを待ち行列から取り出す削除手段と、 タスク・レジスタを待ち行列に挿入する挿入手段を更に搭載している、請求の 範囲第1項に記載の待ち行列システム。 6.前記の挿入手段は、前記の待ち行列の前記のタスクを、前記の待ち行列の 最後のタスク・レジスタとして挿入する第1の手段を含んでいる、請求の範囲第 5項に記載の待ち行列システム。 7.前記の挿入手段は、前記の待ち行列の前記のタスク・レジスタを、前記の 待ち行列に挿入される前記のタスク・レジスタのアドレスのファンクションとし て挿入する第2の手段を含んでいる、請求の範囲第5項に記載の待ち行列システ ム。 8.前記の待ち行列システムの前記の待ち行列の1つは、空の待ち行列であり 、前記の待ち行列システムの内部で別の待ち行列に置 かれないタスク・レジスタを含んでいるので、常に各々タスク・レジスタは前記 の待ち行列システムの待ち行列に置かれることを保証する、請求の範囲第1項に 記載の待ち行列システム。 9.前記の制御手段は、前記の待ち行列システムの内部に於いて第1の待ち行 列と第2の待ち行列の間でタスク・レジスタを、最初に前記の削除手段を作動し て前記のタスク・レジスタを前記の第1の待ち行列から取り出し、次に前記の取 り出されたタスク・レジスタを前記の第2の待ち行列に挿入するために前記の挿 入手段の前記の第1または第2の手段を作動することに依って効果的に移動する 、請求の範囲第1項に記載の待ち行列システム。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US007,199 | 1993-01-21 | ||
| US08/007,199 | 1993-01-21 | ||
| US08/007,199 US5410722A (en) | 1993-01-21 | 1993-01-21 | Queue system for dynamically allocating and moving memory registers between a plurality of pseudo queues |
| PCT/US1994/000699 WO1994017470A1 (en) | 1993-01-21 | 1994-01-18 | System for dynamically allocating memory registers for forming pseudo queues |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08506197A true JPH08506197A (ja) | 1996-07-02 |
| JP3271981B2 JP3271981B2 (ja) | 2002-04-08 |
Family
ID=21724778
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP51717094A Expired - Fee Related JP3271981B2 (ja) | 1993-01-21 | 1994-01-18 | 待ち行列システム |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US5410722A (ja) |
| EP (1) | EP0680633B1 (ja) |
| JP (1) | JP3271981B2 (ja) |
| AT (1) | ATE195594T1 (ja) |
| DE (1) | DE69425554T2 (ja) |
| WO (1) | WO1994017470A1 (ja) |
Families Citing this family (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6067613A (en) * | 1993-11-30 | 2000-05-23 | Texas Instruments Incorporated | Rotation register for orthogonal data transformation |
| GB9600336D0 (en) * | 1996-01-09 | 1996-03-13 | Int Computers Ltd | Arbitration method and apparatus |
| US5872938A (en) * | 1996-06-28 | 1999-02-16 | International Business Machines Corp. | Service priority queue implemented with ordered sub-queues and sub-queue pointers pointing to last entries in respective sub-queues |
| US5949994A (en) * | 1997-02-12 | 1999-09-07 | The Dow Chemical Company | Dedicated context-cycling computer with timed context |
| US6052738A (en) * | 1997-06-30 | 2000-04-18 | Sun Microsystems, Inc. | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory |
| US6081512A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | Spanning tree support in a high performance network device |
| US6094435A (en) * | 1997-06-30 | 2000-07-25 | Sun Microsystems, Inc. | System and method for a quality of service in a multi-layer network element |
| US6088356A (en) * | 1997-06-30 | 2000-07-11 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
| US5938736A (en) * | 1997-06-30 | 1999-08-17 | Sun Microsystems, Inc. | Search engine architecture for a high performance multi-layer switch element |
| US6081522A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
| US6246680B1 (en) | 1997-06-30 | 2001-06-12 | Sun Microsystems, Inc. | Highly integrated multi-layer switch element architecture |
| US6044087A (en) * | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Interface for a highly integrated ethernet network element |
| US6044418A (en) * | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Method and apparatus for dynamically resizing queues utilizing programmable partition pointers |
| US6119196A (en) * | 1997-06-30 | 2000-09-12 | Sun Microsystems, Inc. | System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates |
| US6016310A (en) * | 1997-06-30 | 2000-01-18 | Sun Microsystems, Inc. | Trunking support in a high performance network device |
| US6128666A (en) * | 1997-06-30 | 2000-10-03 | Sun Microsystems, Inc. | Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine |
| US5920566A (en) * | 1997-06-30 | 1999-07-06 | Sun Microsystems, Inc. | Routing in a multi-layer distributed network element |
| US6049528A (en) * | 1997-06-30 | 2000-04-11 | Sun Microsystems, Inc. | Trunking ethernet-compatible networks |
| US6014380A (en) * | 1997-06-30 | 2000-01-11 | Sun Microsystems, Inc. | Mechanism for packet field replacement in a multi-layer distributed network element |
| US6308167B1 (en) * | 1998-04-09 | 2001-10-23 | Compaq Computer Corporation | Computer system using a queuing system and method for managing a queue and heterogeneous data structures |
| US6842899B2 (en) | 1999-12-21 | 2005-01-11 | Lockheed Martin Corporation | Apparatus and method for resource negotiations among autonomous agents |
| US6892250B2 (en) * | 2000-02-09 | 2005-05-10 | Seagate Technology Llc | Command queue processor |
| US6823351B1 (en) * | 2000-05-15 | 2004-11-23 | Sun Microsystems, Inc. | Work-stealing queues for parallel garbage collection |
| US7103887B2 (en) * | 2001-06-27 | 2006-09-05 | Sun Microsystems, Inc. | Load-balancing queues employing LIFO/FIFO work stealing |
| US6845444B2 (en) | 2001-08-23 | 2005-01-18 | Silicon Integrated Systems Corp. | Method and apparatus for reducing strapping devices |
| US6987761B2 (en) | 2002-02-13 | 2006-01-17 | International Business Machines Corporation | Inbound data stream controller with pre-recognition of frame sequence |
| US20070074013A1 (en) * | 2003-08-25 | 2007-03-29 | Lonnie Goff | Dynamic retention of hardware register content in a computer system |
| US8776049B2 (en) | 2004-10-20 | 2014-07-08 | Seagate Technology Llc | Address aligned resource set allocation in a memory space |
| CN101796487B (zh) | 2007-08-10 | 2013-10-09 | 科尼龙硅公司 | 虚拟队列处理电路以及任务处理器 |
| US7971041B2 (en) * | 2008-05-29 | 2011-06-28 | Advanced Micro Devices, Inc. | Method and system for register management |
| US8904003B2 (en) * | 2008-06-30 | 2014-12-02 | Oracle America, Inc. | Method and system for delegated job control across a network |
| US10157060B2 (en) | 2011-12-29 | 2018-12-18 | Intel Corporation | Method, device and system for control signaling in a data path module of a data stream processing engine |
| US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
| US9536010B2 (en) * | 2014-08-11 | 2017-01-03 | Amadeus S.A.S. | Automated ticketing |
| US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
| US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
| US11200186B2 (en) * | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
| US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
| US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
| US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
| US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
| US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
| US12086080B2 (en) | 2020-09-26 | 2024-09-10 | Intel Corporation | Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4646231A (en) * | 1983-07-21 | 1987-02-24 | Burroughs Corporation | Method of synchronizing the sequence by which a variety of randomly called unrelated activities are executed in a digital processor |
| US5010482A (en) * | 1987-07-02 | 1991-04-23 | Unisys Corp. | Multi-event mechanism for queuing happened events for a large data processing system |
| JPH02178730A (ja) * | 1988-12-28 | 1990-07-11 | Toshiba Corp | 分割法を用いた内部ソート方式 |
| US5093912A (en) * | 1989-06-26 | 1992-03-03 | International Business Machines Corporation | Dynamic resource pool expansion and contraction in multiprocessing environments |
| US5129084A (en) * | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Object container transfer system and method in an object based computer operating system |
| US5263160A (en) * | 1991-01-31 | 1993-11-16 | Digital Equipment Corporation | Augmented doubly-linked list search and management method for a system having data stored in a list of data elements in memory |
-
1993
- 1993-01-21 US US08/007,199 patent/US5410722A/en not_active Expired - Fee Related
-
1994
- 1994-01-18 JP JP51717094A patent/JP3271981B2/ja not_active Expired - Fee Related
- 1994-01-18 DE DE69425554T patent/DE69425554T2/de not_active Expired - Fee Related
- 1994-01-18 WO PCT/US1994/000699 patent/WO1994017470A1/en not_active Ceased
- 1994-01-18 EP EP94906690A patent/EP0680633B1/en not_active Expired - Lifetime
- 1994-01-18 AT AT94906690T patent/ATE195594T1/de not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| WO1994017470A1 (en) | 1994-08-04 |
| JP3271981B2 (ja) | 2002-04-08 |
| US5410722A (en) | 1995-04-25 |
| EP0680633A4 (en) | 1996-03-13 |
| DE69425554T2 (de) | 2001-01-04 |
| ATE195594T1 (de) | 2000-09-15 |
| EP0680633A1 (en) | 1995-11-08 |
| EP0680633B1 (en) | 2000-08-16 |
| DE69425554D1 (de) | 2000-09-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH08506197A (ja) | 擬似待ち行列を形成するためにメモリ・レジスタを動的に割り振るシステム | |
| EP0750769B1 (en) | Method and apparatus for synchronization and scheduling of multiple data streams and real time tasks | |
| JP2596718B2 (ja) | ネットワーク通信バッファを管理する方法 | |
| EP1026594A2 (en) | Apparatus and method for handling memory access requests in a data processing system | |
| US20050138230A1 (en) | Method, apparatus and program product for low latency I/O adapter queuing in a computer system | |
| JPH09128252A (ja) | 優先度付きタスク実行制御方法及びデータ処理装置 | |
| JPH06243105A (ja) | 任意に変化するデータ・ストライドで情報を転送する方法及び装置 | |
| JPS59132044A (ja) | デ−タ処理システムにおいて複合デイスクリプタを発生する方法および装置 | |
| US5136718A (en) | Communications arrangement for digital data processing system employing heterogeneous multiple processing nodes | |
| JP2020502647A5 (ja) | ||
| EP0374338A1 (en) | Shared intelligent memory for the interconnection of distributed micro processors | |
| JPH07117934B2 (ja) | データ処理システムおよび方法 | |
| US6088757A (en) | Computer program means and device for conducting high performance locking facility in a loosely coupled environment | |
| JPH08241186A (ja) | バッファメモリ管理ユニット及びバッファメモリ管理方法 | |
| US6687905B1 (en) | Multiple port input/output job scheduling | |
| US6735677B1 (en) | Parameterizable queued memory access system | |
| US8170041B1 (en) | Message passing with parallel queue traversal | |
| JPS6148745B2 (ja) | ||
| JPH04288638A (ja) | コンピュータシステム | |
| JP3076303B2 (ja) | 情報処理装置 | |
| JPH052468A (ja) | バツフアメモリ管理方式 | |
| JP2594140B2 (ja) | データ駆動型データ処理装置 | |
| JPH03218524A (ja) | 命令処理装置 | |
| JP2527066B2 (ja) | 受信待ち行列処理装置 | |
| JPH0833869B2 (ja) | データ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |