JP3271981B2 - 待ち行列システム - Google Patents
待ち行列システムInfo
- Publication number
- JP3271981B2 JP3271981B2 JP51717094A JP51717094A JP3271981B2 JP 3271981 B2 JP3271981 B2 JP 3271981B2 JP 51717094 A JP51717094 A JP 51717094A JP 51717094 A JP51717094 A JP 51717094A JP 3271981 B2 JP3271981 B2 JP 3271981B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- task
- register
- registers
- address
- 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.)
- Expired - Fee Related
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)
Description
【発明の詳細な説明】 この特許文書の開示の部分は、著作権の保護に関する
要件を含んでいる。著作権の所有者は、特許文書または
特許開示の何れかに依るファクシミリー再生に対して、
それがアメリカ特許商標庁の特許ファイルまたはレコー
ドに記載してあるので、異議を申し立てないが、そうで
ない場合に全ての著作権を保留する。
要件を含んでいる。著作権の所有者は、特許文書または
特許開示の何れかに依るファクシミリー再生に対して、
それがアメリカ特許商標庁の特許ファイルまたはレコー
ドに記載してあるので、異議を申し立てないが、そうで
ない場合に全ての著作権を保留する。
関連出願のクロス・リファレンス 次に示す同時係属アメリカ特許出願は、本出願に譲受
人に譲渡され、本出願と其の開示に関連していて、引例
に依ってここに包含される。
人に譲渡され、本出願と其の開示に関連していて、引例
に依ってここに包含される。
(A)Ser.No.08/006,457はStephen R.Cornabyに依って
1993年1月21日に、単一ディスク・ドライブに於いて同
じ磁気ディスク媒体を作動する2つのアクチュエータ間
でタスクを割り振するシステムという名称で出願され
た。
1993年1月21日に、単一ディスク・ドライブに於いて同
じ磁気ディスク媒体を作動する2つのアクチュエータ間
でタスクを割り振するシステムという名称で出願され
た。
発明の背景 発明の分野 発明は、待ち行列を処理システム内部で構築し且つデ
ータを構築された待ち行列間で効果的に移動するための
システムに関する。
ータを構築された待ち行列間で効果的に移動するための
システムに関する。
関連技術の説明 多くのコンピュータ・システムは、タスクとデータを
コンピュータ処理システムの内部で転送することを管理
するために待ち行列を採用している。待ち行列は、待ち
行列に記憶されているエントリが、エントリが待ち行列
に記憶されていた順序で待ち行列から読み取られる、先
入れ先出し(FIFO)待ち行列のように、数多くのタイプ
になることができる。別のタイプの待ち行列は、待ち行
列に記憶されているエントリは待ち行列から読み取られ
る最初のエントリである、後入れ先出し(LIFO)であ
る。これは、待ち行列に記憶されている最新のデータが
待ち行列から読み取られる最初のデータになると言うこ
とができる。
コンピュータ処理システムの内部で転送することを管理
するために待ち行列を採用している。待ち行列は、待ち
行列に記憶されているエントリが、エントリが待ち行列
に記憶されていた順序で待ち行列から読み取られる、先
入れ先出し(FIFO)待ち行列のように、数多くのタイプ
になることができる。別のタイプの待ち行列は、待ち行
列に記憶されているエントリは待ち行列から読み取られ
る最初のエントリである、後入れ先出し(LIFO)であ
る。これは、待ち行列に記憶されている最新のデータが
待ち行列から読み取られる最初のデータになると言うこ
とができる。
待ち行列は、ハードウェア・レジスタから且つメモリ
の専用部分から構成され、ソフトウェア・レジスタとし
て作動し、そこでは、待ち行列はプロセッサのプログラ
ムの制御のもとで操作される。メモリから形成される待
ち行列は、1982年にEditor−In−Chief David F.Stout,
McGraw−Hill Book Companyに依ってマイクロプロセッ
サ・アプリケーション・ハンドブックのテキストに説明
されている。著者は、17.6項で“タスク・スケジュール
の遂行”という名称で、前方連結構造を用いるタスク待
ち行列の形成について述べている。前方連結構造は、次
の待ち行列エントリのアドレスに対するポインタを含ん
でいる各々待ち行列のエントリを備えて形成されてい
る。前方連結プロセスに依って形成された待ち行列は、
任意の与えられた瞬間に待ち行列のレジスタの数と順序
を定める。更に、多くの処理システムの場合、各々待ち
行列が其の待ち行列のエントリに関して行われる動作の
コースを指定するために用いられる、待ち行列の内部の
エントリとして定められたタスクを或る待ち行列から別
の待ち行列に移動することが望まれる。普通、タスク
は、待ち行列から取り出されて別の待ち行列に物理的に
転送される。待ち行列間のタスクの移動は、時間消費型
のプロセスになり、且つタスクの転送中に生成されるエ
ラーをタスクに与えるので、エラー回復手順が呼び出さ
れることを要求したり、再転送動作を試みることを要求
することになる。
の専用部分から構成され、ソフトウェア・レジスタとし
て作動し、そこでは、待ち行列はプロセッサのプログラ
ムの制御のもとで操作される。メモリから形成される待
ち行列は、1982年にEditor−In−Chief David F.Stout,
McGraw−Hill Book Companyに依ってマイクロプロセッ
サ・アプリケーション・ハンドブックのテキストに説明
されている。著者は、17.6項で“タスク・スケジュール
の遂行”という名称で、前方連結構造を用いるタスク待
ち行列の形成について述べている。前方連結構造は、次
の待ち行列エントリのアドレスに対するポインタを含ん
でいる各々待ち行列のエントリを備えて形成されてい
る。前方連結プロセスに依って形成された待ち行列は、
任意の与えられた瞬間に待ち行列のレジスタの数と順序
を定める。更に、多くの処理システムの場合、各々待ち
行列が其の待ち行列のエントリに関して行われる動作の
コースを指定するために用いられる、待ち行列の内部の
エントリとして定められたタスクを或る待ち行列から別
の待ち行列に移動することが望まれる。普通、タスク
は、待ち行列から取り出されて別の待ち行列に物理的に
転送される。待ち行列間のタスクの移動は、時間消費型
のプロセスになり、且つタスクの転送中に生成されるエ
ラーをタスクに与えるので、エラー回復手順が呼び出さ
れることを要求したり、再転送動作を試みることを要求
することになる。
発明の要約 発明の目的は、各々待ち行列が任意のタスク・レジス
タをシステムに含むことができる複数の待ち行列を生成
する待ち行列システムを提供することにある。
タをシステムに含むことができる複数の待ち行列を生成
する待ち行列システムを提供することにある。
発明の別の目的は、待ち行列システム内部の待ち行列
が固定された長さに限定されないことにある。
が固定された長さに限定されないことにある。
発明の別の目的は、システム内部の待ち行列が種々の
タイプの待ち行列になることを可能にする待ち行列シス
テムを提供することにある。
タイプの待ち行列になることを可能にする待ち行列シス
テムを提供することにある。
発明の別の目的は、各々レジスタはレジスタが其の瞬
間に位置する待ち行列の前と次のフィールドに対するポ
インタを含んでいる、二重連結ポインタ構造を用いて、
待ち行列システムの待ち行列を構成することにある。
間に位置する待ち行列の前と次のフィールドに対するポ
インタを含んでいる、二重連結ポインタ構造を用いて、
待ち行列システムの待ち行列を構成することにある。
要するに、本発明は、ランダム・アクセス・メモリ・
ユニットの内部で専用セットのメモリ・レジスタから複
数の待ち行列を形成することを意図されている。メモリ
・レジスタはヘッダー・レジスタまたはタスク・レジス
タになる。各々待ち行列は、指示されたヘッダー・レジ
スタと、その待ち行列に指定されたタスク・レジスタを
備えている。タスク・レジスタは待ち行列システム内部
の待ち行列に常に指定される。全てのレジスタは、少な
くとも2つのフィールド、すなわち前のフィールドと次
のフィールドを含んでいる。待ち行列システム内部で用
いられる任意のレジスタに対して、前のフィールドは其
の待ち行列で先行するレジスタのアドレスを含んでい
て、次のフィールドは待ち行列で後続するレジスタのア
ドレスを含んでいる。或る待ち行列は、待ち行列システ
ムに於いて作動状態の待ち行列の1つに今用いられてい
ないタスク・レジスタを含むことになる空の待ち行列と
して指示される。タスク・レジスタは、移動されるレジ
スタの次と前のフィールドと、待ち行列に挿入される或
いは其こから取り出されるタスク・レジスタの挿入また
は取り出しに依って影響を受ける待ち行列の他のレジス
タの次と前のフィールドの内容を変更することに依っ
て、待ち行列間を効果的に移動される。タスク・レジス
タは、待ち行列間を物理的に移動されないが、レジスタ
の前と次のフィールドを制御することに依って効果的に
移動されるので、各々疑似待ち行列の長さが任意の与え
られた瞬間に其の待ち行列のためのヘッダー・レジスタ
に連結されるタスク・レジスタの数に依って定められる
待ち行列システム内部の疑似待ち行列の形成を可能にす
る。制御手段は、タスク・レジスタを待ち行列に挿入し
且つ其こから取り出す手順を実行するために与えられて
いる。
ユニットの内部で専用セットのメモリ・レジスタから複
数の待ち行列を形成することを意図されている。メモリ
・レジスタはヘッダー・レジスタまたはタスク・レジス
タになる。各々待ち行列は、指示されたヘッダー・レジ
スタと、その待ち行列に指定されたタスク・レジスタを
備えている。タスク・レジスタは待ち行列システム内部
の待ち行列に常に指定される。全てのレジスタは、少な
くとも2つのフィールド、すなわち前のフィールドと次
のフィールドを含んでいる。待ち行列システム内部で用
いられる任意のレジスタに対して、前のフィールドは其
の待ち行列で先行するレジスタのアドレスを含んでい
て、次のフィールドは待ち行列で後続するレジスタのア
ドレスを含んでいる。或る待ち行列は、待ち行列システ
ムに於いて作動状態の待ち行列の1つに今用いられてい
ないタスク・レジスタを含むことになる空の待ち行列と
して指示される。タスク・レジスタは、移動されるレジ
スタの次と前のフィールドと、待ち行列に挿入される或
いは其こから取り出されるタスク・レジスタの挿入また
は取り出しに依って影響を受ける待ち行列の他のレジス
タの次と前のフィールドの内容を変更することに依っ
て、待ち行列間を効果的に移動される。タスク・レジス
タは、待ち行列間を物理的に移動されないが、レジスタ
の前と次のフィールドを制御することに依って効果的に
移動されるので、各々疑似待ち行列の長さが任意の与え
られた瞬間に其の待ち行列のためのヘッダー・レジスタ
に連結されるタスク・レジスタの数に依って定められる
待ち行列システム内部の疑似待ち行列の形成を可能にす
る。制御手段は、タスク・レジスタを待ち行列に挿入し
且つ其こから取り出す手順を実行するために与えられて
いる。
最後に、異なるタイプの待ち行列が待ち行列システム
に含まれることもできる。例えば、或る待ち行列は先入
れ先出し待ち行列になり、第2の待ち行列は後入れ先出
し待ち行列になり、第3の待ち行列はアドレスに依って
順序設定される待ち行列になり、第4の待ち行列はタス
ク・レジスタに関連する次と前のフィールド以外のタス
ク・レジスタの別のフィールドの内容に依って順序設定
される待ち行列になる。
に含まれることもできる。例えば、或る待ち行列は先入
れ先出し待ち行列になり、第2の待ち行列は後入れ先出
し待ち行列になり、第3の待ち行列はアドレスに依って
順序設定される待ち行列になり、第4の待ち行列はタス
ク・レジスタに関連する次と前のフィールド以外のタス
ク・レジスタの別のフィールドの内容に依って順序設定
される待ち行列になる。
本発明の長所は、待ち行列システムが、システムのハ
ードウェアに対する変更を要求せずに、汎用化できるこ
とになる。
ードウェアに対する変更を要求せずに、汎用化できるこ
とになる。
発明の別の長所は、タスクは、タスク・データに転送
エラーを露呈せずに、待ち行列から待ち行列に瞬時に転
送できることにある。
エラーを露呈せずに、待ち行列から待ち行列に瞬時に転
送できることにある。
図面の簡単な説明 発明は其の特定の実施例を参照して説明されていて、
参照数字が図面に付記されている。
参照数字が図面に付記されている。
図1は発明の待ち行列システムを実施する処理システ
ムを示すハイ・レベル図であり、 図2は4つの待ち行列を採用する待ち行列システム構
成を示し、 図3A〜3Lは待ち行列システムに従って図2に表される
待ち行列間のタスクの移動を示す図である。
ムを示すハイ・レベル図であり、 図2は4つの待ち行列を採用する待ち行列システム構
成を示し、 図3A〜3Lは待ち行列システムに従って図2に表される
待ち行列間のタスクの移動を示す図である。
図4はタスク・レジスタを待ち行列から取り出すルー
チンAの流れ図である。
チンAの流れ図である。
図5は、タスク・レジスタ・アドレスに依って指示さ
れる例を用いて順序設定された順で待ち行列にタスク・
レジスタを挿入するルーチンBの流れ図である。
れる例を用いて順序設定された順で待ち行列にタスク・
レジスタを挿入するルーチンBの流れ図である。
図6は、タスク・レジスタが其の待ち行列の最後の位
置になるように、タスク・レジスタを待ち行列に挿入す
るルーチンCの流れ図である。
置になるように、タスク・レジスタを待ち行列に挿入す
るルーチンCの流れ図である。
好まれる実施例の説明 図1を見ると、待ち行列システムは、プロセッサ10と
読取専用メモリROM11とランダム・アクセス・メモリRAM
12に依って部分的に構成される処理システムの内部に実
現されている。プロセッサ10は、ROM11にライン13を介
して連なり、RAM12にライン14を介して連なっている。
このプロセッサと読取専用メモリとランダム・アクセス
・メモリの一般的な構成は、産業界の全体にわたって広
く用いられている。処理システムは、大型コンピュータ
計算システムの内部に一般的に含まれていて、全体的な
システム内の特殊なタイプの機能の取扱のために専用化
されている。例えば、このような処理システムは、ディ
スク・ドライブ・ファイル制御ユニットやI/Oチャンネ
ル制御ユニットだけでなく、主要処理ユニット自体の内
部にも含まれている。プロセッサは、プロセッサが其の
設計された機能を実行できるように書き込まれたシステ
ム・プログラムの制御のもとで実行する。
読取専用メモリROM11とランダム・アクセス・メモリRAM
12に依って部分的に構成される処理システムの内部に実
現されている。プロセッサ10は、ROM11にライン13を介
して連なり、RAM12にライン14を介して連なっている。
このプロセッサと読取専用メモリとランダム・アクセス
・メモリの一般的な構成は、産業界の全体にわたって広
く用いられている。処理システムは、大型コンピュータ
計算システムの内部に一般的に含まれていて、全体的な
システム内の特殊なタイプの機能の取扱のために専用化
されている。例えば、このような処理システムは、ディ
スク・ドライブ・ファイル制御ユニットやI/Oチャンネ
ル制御ユニットだけでなく、主要処理ユニット自体の内
部にも含まれている。プロセッサは、プロセッサが其の
設計された機能を実行できるように書き込まれたシステ
ム・プログラムの制御のもとで実行する。
本発明の待ち行列システムは、プロセッサ10に依って
制御され、疑似待ち行列の実際の形式に相応してRAM12
を使用する。RAM12は、各々アドレスが数多くのビット
またはバイトのデータを含んでいる複数の記憶アドレス
を含むように構成されている。待ち行列システムは、そ
のアドレスをRAM内部の疑似待ち行列の形式に相応する
待ち行列システムに専用化されるランダム・アクセス・
メモリの内容で要求する。アドレスの各々はタスク・レ
ジスタまたはヘッダー・レジスタと考えられる。ヘッダ
ーレジスタとタスクレジスタの各々は、少なくとも2つ
のフィールド、すなわち前のフィールドと次のフィール
ドを含んでいる。レジスタの前のフィールドはその待ち
行列の前のレジスタのアドレスを記憶し、次のフィール
ドは待ち行列の次のレジスタのアドレスを記憶する。
制御され、疑似待ち行列の実際の形式に相応してRAM12
を使用する。RAM12は、各々アドレスが数多くのビット
またはバイトのデータを含んでいる複数の記憶アドレス
を含むように構成されている。待ち行列システムは、そ
のアドレスをRAM内部の疑似待ち行列の形式に相応する
待ち行列システムに専用化されるランダム・アクセス・
メモリの内容で要求する。アドレスの各々はタスク・レ
ジスタまたはヘッダー・レジスタと考えられる。ヘッダ
ーレジスタとタスクレジスタの各々は、少なくとも2つ
のフィールド、すなわち前のフィールドと次のフィール
ドを含んでいる。レジスタの前のフィールドはその待ち
行列の前のレジスタのアドレスを記憶し、次のフィール
ドは待ち行列の次のレジスタのアドレスを記憶する。
各々待ち行列は少なくとも2つのヘッダー・レジスタ
から構成されている。待ち行列が待ち行列に関連するタ
スク・レジスタを有していない時に、その待ち行列のヘ
ッダー・レジスタは、ヘッダー・レジスタを、待ち行列
のヘッダー・レジスタの前と次のフィールドに記憶され
る自らのアドレスにする。従って、前と次のフィールド
は待ち行列に相応するヘッダー・レジスタの場所を指示
するポインタを備えている。各々タスク・レジスタは待
ち行列に常に指定される。待ち行列システムに於いて、
1つの待ち行列は、その機能としてオペレーティング・
システムに依って作動されるタスクに今指定されていな
いタスク・レジスタを含んでいる空の待ち行列として指
示される。待ち行列システムは、数多くの異なる構成を
備えているので、設計者のニーズに対応できる。
から構成されている。待ち行列が待ち行列に関連するタ
スク・レジスタを有していない時に、その待ち行列のヘ
ッダー・レジスタは、ヘッダー・レジスタを、待ち行列
のヘッダー・レジスタの前と次のフィールドに記憶され
る自らのアドレスにする。従って、前と次のフィールド
は待ち行列に相応するヘッダー・レジスタの場所を指示
するポインタを備えている。各々タスク・レジスタは待
ち行列に常に指定される。待ち行列システムに於いて、
1つの待ち行列は、その機能としてオペレーティング・
システムに依って作動されるタスクに今指定されていな
いタスク・レジスタを含んでいる空の待ち行列として指
示される。待ち行列システムは、数多くの異なる構成を
備えているので、設計者のニーズに対応できる。
図2は、待ち行列システムの好まれる実施例を説明す
るために、待ち行列システムの内部に於いて4つの待ち
行列20と21と22と23から成る構成を示す。この構成は、
空の待ち行列として作動し且つ待ち行列システムのタス
ク・レジスタの全てを最初に含むことになる、待ち行列
D23から構成されている。プロセッサ10が待ち行列シス
テムを用いて実施されるタスクを受け取ると、タスクは
最下位のアドレスを待ち行列D23に有するタスク・レジ
スタに指定される。待ち行列は、待ち行列D23から取り
出されて、待ち行列A20に挿入される。タスクが待ち行
列A20に位置する間に、システムは、タスクの内容と、
資源と動作が処理システムを用いて其のタスクに関連し
て実施されなければならない内容を決定するために種々
の動作を実施する。処理システムは、タスクが待ち行列
B21に関連する第1の処理コースまたは待ち行列C22に関
連する第2の処理コースに従って処理されるかどうかに
ついての決定を行う。タスク・レジスタは、タスク・レ
ジスタを待ち行列A20から取り出し且つタスク・レジス
タを待ち行列B21または待ち行列C22に挿入することに依
って、効果的に移動される。タスクが終了すると、タス
ク・レジスタは、待ち行列B21または待ち行列C22から取
り出されて、待ち行列D23に挿入される。システムは、
タスクが待ち行列B21または待ち行列C22に関連する処理
コースに依って処理される必要がない場合に、終了した
タスクに関連するタスク・レジスタは、待ち行列A20か
ら取り出されて、待ち行列D23に挿入される更なるオプ
ションを備えている。
るために、待ち行列システムの内部に於いて4つの待ち
行列20と21と22と23から成る構成を示す。この構成は、
空の待ち行列として作動し且つ待ち行列システムのタス
ク・レジスタの全てを最初に含むことになる、待ち行列
D23から構成されている。プロセッサ10が待ち行列シス
テムを用いて実施されるタスクを受け取ると、タスクは
最下位のアドレスを待ち行列D23に有するタスク・レジ
スタに指定される。待ち行列は、待ち行列D23から取り
出されて、待ち行列A20に挿入される。タスクが待ち行
列A20に位置する間に、システムは、タスクの内容と、
資源と動作が処理システムを用いて其のタスクに関連し
て実施されなければならない内容を決定するために種々
の動作を実施する。処理システムは、タスクが待ち行列
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は空の待ち行
列である。
ブを単一のディスク・ドライブで作動する2つのアクチ
ュエータ間にタスクを割り振するシステム”に、単一の
磁気ディスク媒体を作動する二重アクチュエータ・シス
テムが説明されている。本発明の待ち行列システムは、
そこに引用されているマイクロプロセッサとRAMユニッ
トの内部に採用されている。本出願の付録Aとクロス・
リファレンス出願の場合、待ち行列A20はコマンド待ち
行列であり、待ち行列B21はデータを検索する或いは磁
気媒体に記憶するタスクは1つ或いは2つだけのアクチ
ュエータを採用する1チャンネル待ち行列であり、待ち
行列C22は両方のアクチュエータを単一の磁気媒体に関
してシステムからのコマンドの実行に使用する2チャン
ネル待ち行列であり、最後に待ち行列D23は空の待ち行
列である。
タスクを待ち行列B21、すなわち、1チャンネル待ち
行列に挿入し且つ取り出すためのルーチンは、クロス・
リファレンス同時係属出願の詳細に説明されているの
で、ここで繰り返し説明されない。本発明の待ち行列シ
ステムの説明を単純にするために、待ち行列B21は順序
設定されたアドレスである待ち行列として示される。発
明の待ち行列システムは図2に図示される構成に限定さ
れず、待ち行列システムの設計者は、本発明に従って、
システム設計者が要望する待ち行列をできるだけ数多く
構成する待ち行列システムを具備できて、これらの待ち
行列の各々は設計者が指摘し管理する規準に従って順序
設定できることが理解されるべきである。更に、ランダ
ム・アクセス・メモリ内部のメモリ・レジスタのアドレ
スは、単一ブロックの専用アドレスまたは複数のブロッ
クの専用アドレスまたは連続しないアドレスになる。再
び、アドレス、およびランダム・アクセス・メモリ内部
のアドレスの配置は設計者の選択に依存し、メモリで用
いられるアドレスの場所は待ち行列システムの構造にと
って重要な問題にならない。
行列に挿入し且つ取り出すためのルーチンは、クロス・
リファレンス同時係属出願の詳細に説明されているの
で、ここで繰り返し説明されない。本発明の待ち行列シ
ステムの説明を単純にするために、待ち行列B21は順序
設定されたアドレスである待ち行列として示される。発
明の待ち行列システムは図2に図示される構成に限定さ
れず、待ち行列システムの設計者は、本発明に従って、
システム設計者が要望する待ち行列をできるだけ数多く
構成する待ち行列システムを具備できて、これらの待ち
行列の各々は設計者が指摘し管理する規準に従って順序
設定できることが理解されるべきである。更に、ランダ
ム・アクセス・メモリ内部のメモリ・レジスタのアドレ
スは、単一ブロックの専用アドレスまたは複数のブロッ
クの専用アドレスまたは連続しないアドレスになる。再
び、アドレス、およびランダム・アクセス・メモリ内部
のアドレスの配置は設計者の選択に依存し、メモリで用
いられるアドレスの場所は待ち行列システムの構造にと
って重要な問題にならない。
ここで、発明の説明を単純にするために、待ち行列A2
0とB21とD23のタスク・レジスタは待ち行列の内部で順
序設定されるアドレスにあり、待ち行列C23のタスク・
レジスタは待ち行列に対する挿入の順で順序設定され
る。待ち行列C23のタスクが待ち行列C23のヘッダー・レ
ジスタの次のフィールドに記憶されているタスク・レジ
スタ・アドレスを用いて作動される場合に、待ち行列C2
3は効果的に先入れ先出し(FIFO)の待ち行列になる。
待ち行列C23のタスクが待ち行列C23のヘッダー・レジス
タの前のフィールドに記憶されているタスク・レジスタ
・アドレスを用いて作動される場合、待ち行列C23は効
果的に後入れ後出し(LIFO)待ち行列になる。待ち行列
の文字は、待ち行列を待ち行列システム内部で順序設定
する方式およびタスクを待ち行列から取り出す方式につ
いて、システム設計者に依って決定されることが容易に
分かる。再び、待ち行列の各々を待ち行列のタイプに区
分けすることは、待ち行列システムに関連して用いられ
る全てのタスク・レジスタが待ち行列システムの待ち行
列の1つの内部に常に置かれることを保証するために、
1つの待ち行列が空の待ち行列として専用化されなけれ
ばならないことを除けば、システム内部に於いて重要な
ことではない。
0とB21とD23のタスク・レジスタは待ち行列の内部で順
序設定されるアドレスにあり、待ち行列C23のタスク・
レジスタは待ち行列に対する挿入の順で順序設定され
る。待ち行列C23のタスクが待ち行列C23のヘッダー・レ
ジスタの次のフィールドに記憶されているタスク・レジ
スタ・アドレスを用いて作動される場合に、待ち行列C2
3は効果的に先入れ先出し(FIFO)の待ち行列になる。
待ち行列C23のタスクが待ち行列C23のヘッダー・レジス
タの前のフィールドに記憶されているタスク・レジスタ
・アドレスを用いて作動される場合、待ち行列C23は効
果的に後入れ後出し(LIFO)待ち行列になる。待ち行列
の文字は、待ち行列を待ち行列システム内部で順序設定
する方式およびタスクを待ち行列から取り出す方式につ
いて、システム設計者に依って決定されることが容易に
分かる。再び、待ち行列の各々を待ち行列のタイプに区
分けすることは、待ち行列システムに関連して用いられ
る全てのタスク・レジスタが待ち行列システムの待ち行
列の1つの内部に常に置かれることを保証するために、
1つの待ち行列が空の待ち行列として専用化されなけれ
ばならないことを除けば、システム内部に於いて重要な
ことではない。
図4で、ルーチンAは、タスク・レジスタを待ち行列
システム内部の任意の待ち行列から取り出す手順を示
す。タスク・レジスタを或る待ち行列から別の待ち行列
に移動する移動動作中に、移動動作は、最初にルーチン
Aを実行して、以降、今のレジスタと呼ばれるタスク・
レジスタを、待ち行列から取り出す。この取り出し動作
を実行するために、ルーチンAは次に示す順序のステッ
プを実行する。ステップ1は前のレジスタの次のフィー
ルドに記憶されるアドレスを作成し、そのアドレスは、
今のレジスタの前のフィールドに記憶され、今のレジス
タの次のフィールドに記憶されたアドレスと等しくな
る。ステップ2は次のレジスタは前のフィールドに記憶
されるアドレスを作成し、そのアドレスは、今のレジス
タの次のフィールドに記憶され、今のレジスタの前のフ
ィールドに記憶されたアドレスと等しくなる。このよう
に、待ち行列のタスク・レジスタ間の連結は、今のレジ
スタが待ち行列から取り出された後に再び構築される。
これは別の待ち行列に取り出される今のレジスタの挿入
ルーチン中にアドレス設定されるので、取り出される今
のレジスタの次のフィールドと前のフィールドに関し
て、ここで何も行われないことに注目すべきである。
システム内部の任意の待ち行列から取り出す手順を示
す。タスク・レジスタを或る待ち行列から別の待ち行列
に移動する移動動作中に、移動動作は、最初にルーチン
Aを実行して、以降、今のレジスタと呼ばれるタスク・
レジスタを、待ち行列から取り出す。この取り出し動作
を実行するために、ルーチンAは次に示す順序のステッ
プを実行する。ステップ1は前のレジスタの次のフィー
ルドに記憶されるアドレスを作成し、そのアドレスは、
今のレジスタの前のフィールドに記憶され、今のレジス
タの次のフィールドに記憶されたアドレスと等しくな
る。ステップ2は次のレジスタは前のフィールドに記憶
されるアドレスを作成し、そのアドレスは、今のレジス
タの次のフィールドに記憶され、今のレジスタの前のフ
ィールドに記憶されたアドレスと等しくなる。このよう
に、待ち行列のタスク・レジスタ間の連結は、今のレジ
スタが待ち行列から取り出された後に再び構築される。
これは別の待ち行列に取り出される今のレジスタの挿入
ルーチン中にアドレス設定されるので、取り出される今
のレジスタの次のフィールドと前のフィールドに関し
て、ここで何も行われないことに注目すべきである。
図5で、ルーチンB、タスク・レジスタが待ち行列の
タスク・レジスタのアドレスの昇順で順序設定される事
例を用いて、順序設定された順序で待ち行列に取り出さ
れる今のレジスタを挿入するプロセスを示す。これは、
取り出される今のレジスタは、図2に関連して説明され
たような構成の待ち行列A,BまたはDに挿入される時に
準じるルーチンである。この動作に於いて、今のレジス
タは、待ち行列に挿入される今のレジスタのアドレスよ
り、次の最下位のアドレスを有するレジスタと次の最上
位のアドレスを有するレジスタの間で待ち行列に挿入さ
れることが要求される。ヘッダー・レジスタは、その前
または次のフィールドがこの手順に依って変更されるレ
ジスタの1つになる周囲条件に注意しなければならな
い。
タスク・レジスタのアドレスの昇順で順序設定される事
例を用いて、順序設定された順序で待ち行列に取り出さ
れる今のレジスタを挿入するプロセスを示す。これは、
取り出される今のレジスタは、図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が
終了すると、取り出された今のレジスタは待ち行列に挿
入され、待ち行列内部の全てのタスク・レジスタは待ち
行列に於いてタスク・レジスタの昇順するアドレスの順
序になる。
この動作を実行する。ステップ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に挿入される。
順でタスク・レジスタの順序設定のために説明されてき
たが、順序設定は、待ち行列システムの各々ヘッダーと
タスク・レジスタの更なるフィールドのデータを用いて
行われる。更なるフィールドが待ち行列のタスク・レジ
スタの順序を決定するために用いられる時に、ルーチン
Bは、ステップ1と2と3と4で、その目的のために用
いられる其の更なるフィールドに記憶されているデータ
に従って適切な選択されたレジスタを決定するために修
正される。選択されたレジスタが決定されると、挿入さ
れる今のタスク・レジスタはルーチンBのステップ5と
6と7と8に挿入される。
図6で、ルーチンCは取り出された今のレジスタを待
ち行列に挿入する手順を示し、そこに取り出された今の
レジスタが待ち行列の最後のタスク・レジスタとして挿
入される。効果的に、タスク・レジスタは、タスク・レ
ジスタが待ち行列に挿入された順序で待ち行列内部に順
序設定される。ルーチンCは、次に示す順のステップを
実施して、この動作を実行する。ステップ1は希望され
た待ち行列のヘッダー・レジスタを選択する。図の待ち
行列構成の場合、ルーチンCは、取り出された今のレジ
スタが待ち行列C23に挿入される時に必ず実行される。
ステップ2は、取り出された今のレジスタの次のフィー
ルドに記憶されるアドレスを、ヘッダー・レジスタのア
ドレスと等しくする。これは、取り出された今のレジス
タが待ち行列の最後のレスタとして待ち行列で挿入され
ることを保証する。ステップ3は、取り出された今のレ
ジスタの前のフィールドに記憶されているアドレスを、
ヘッダー・レジスタの前のフィールドに記憶されている
アドレスと等しくする。ステップ4は、アドレスがヘッ
ダー・レジスタの前のフィールドで指示されたレジスタ
の次のフィールドに記憶されるアドレスを、取り出され
た今のレジスタのアドレスと等しくする。最後に、ステ
ップ5は、ヘッダー・レジスタの前のフィールドに記憶
されるアドレスを、取り出された今のレジスタのアドレ
スと等しくする。
ち行列に挿入する手順を示し、そこに取り出された今の
レジスタが待ち行列の最後のタスク・レジスタとして挿
入される。効果的に、タスク・レジスタは、タスク・レ
ジスタが待ち行列に挿入された順序で待ち行列内部に順
序設定される。ルーチンCは、次に示す順のステップを
実施して、この動作を実行する。ステップ1は希望され
た待ち行列のヘッダー・レジスタを選択する。図の待ち
行列構成の場合、ルーチンCは、取り出された今のレジ
スタが待ち行列C23に挿入される時に必ず実行される。
ステップ2は、取り出された今のレジスタの次のフィー
ルドに記憶されるアドレスを、ヘッダー・レジスタのア
ドレスと等しくする。これは、取り出された今のレジス
タが待ち行列の最後のレスタとして待ち行列で挿入され
ることを保証する。ステップ3は、取り出された今のレ
ジスタの前のフィールドに記憶されているアドレスを、
ヘッダー・レジスタの前のフィールドに記憶されている
アドレスと等しくする。ステップ4は、アドレスがヘッ
ダー・レジスタの前のフィールドで指示されたレジスタ
の次のフィールドに記憶されるアドレスを、取り出され
た今のレジスタのアドレスと等しくする。最後に、ステ
ップ5は、ヘッダー・レジスタの前のフィールドに記憶
されるアドレスを、取り出された今のレジスタのアドレ
スと等しくする。
待ち行列のレジスタは、レジスタの次のフィールドに
依って前進ループで且つレジスタの前のフィールドに依
って後退ループで連結される。待ち行列の各々の内部の
レジスタの各々の内部で次のフィールドと前のフィール
ドを使用することは、システムが順序通りに待ち行列を
上下に進めることを可能にする。システムは、待ち行列
の内部の任意のレジスタに、待ち行列内部の其の位置に
関係なしに、システムに依って分類されるレジスタのア
ドレスに従ってアクセスできる。再び、これは、システ
ム設計者のニーズを満足するために待ち行列システムを
設計するシステム設計者に最大限度の柔軟性を与える。
そのように希望される場合、ルーチンAとBとCは、待
ち行列間の移動動作がオペレーティング・システムに依
って指示される時に、必ず、プロセッサ10に依ってアク
セスされるROM11の内部に恒久的に記憶できる。
依って前進ループで且つレジスタの前のフィールドに依
って後退ループで連結される。待ち行列の各々の内部の
レジスタの各々の内部で次のフィールドと前のフィール
ドを使用することは、システムが順序通りに待ち行列を
上下に進めることを可能にする。システムは、待ち行列
の内部の任意のレジスタに、待ち行列内部の其の位置に
関係なしに、システムに依って分類されるレジスタのア
ドレスに従ってアクセスできる。再び、これは、システ
ム設計者のニーズを満足するために待ち行列システムを
設計するシステム設計者に最大限度の柔軟性を与える。
そのように希望される場合、ルーチンAとBとCは、待
ち行列間の移動動作がオペレーティング・システムに依
って指示される時に、必ず、プロセッサ10に依ってアク
セスされるROM11の内部に恒久的に記憶できる。
待ち行列システムの動作について、図3A〜3Lに図示さ
れる事例を参照しながら説明される。図は、各々アドレ
スAとBとCとDを有する4つのヘッダー・レジスタを
各々示している。アドレスAは待ち行列A20のヘッダー
・レジスタのアドレスであり、アドレスBは待ち行列B2
1のヘッダー・レジスタのアドレスであり、アドレスC
は待ち行列C22のヘッダー・レジスタのアドレスであ
り、アドレスDは待ち行列D23のヘッダー・レジスタの
アドレスである。9つのタスク・レジスタは1〜9のア
ドレスを有して図示されている。再び、これらの事例で
使用するために選択されたアドレスに意味がなく、アド
レスはシステム設計者に依って指定されて用いられる規
準に従うヘッダー・レジスタまたはタスク・レジスタに
相応して選択される。ヘッダー・レジスタとタスク・レ
ジスタの各々が其れに関連する前のフィールドPFと次の
フィールドNFを備えている。再び、前のフィールドPFは
待ち行列の内部に前のレジスタのアドレスを有してい
て、次のフィールドNFは待ち行列の内部に次のレジスタ
のアドレスを有している。タスク・レジスタに関して、
2つの他のカラムが与えられていて、TNとラベル表示さ
れたカラムはタスク・レジスタに指定されたタスクを識
別するために用いられ、Qとラベル表示されたカラムは
タスク・レジスタがいま指定されている待ち行列を指示
するために用いられる。
れる事例を参照しながら説明される。図は、各々アドレ
スAとBとCとDを有する4つのヘッダー・レジスタを
各々示している。アドレスAは待ち行列A20のヘッダー
・レジスタのアドレスであり、アドレスBは待ち行列B2
1のヘッダー・レジスタのアドレスであり、アドレス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はRAM13のアドレス1に位置するタスク・
レジスタである。タスク・レジスタ1に於いて、前のフ
ィールドは、アドレスD、ヘッダー・レジスタのアドレ
スを含んでいて、次のフィールドは、アドレス2、待ち
行列D23の次のタスク・レジスタのアドレスを含んでい
る。タスク・レジスタ9に於いて、前のフィールドは、
アドレス8、待ち行列で先行するタスク・レジスタのア
ドレスを含んでいて、次のフィールドは、アドレスD、
ヘッダー・レジスタのアドレスを含んでいる。確認する
と、タスク・レジスタ2と3と4と5と6と7と8は、
各々、待ち行列に於いて先行するタスク・レジスタのア
ドレスを含んでいる其れらの前のフィールドと、待ち行
列に於いて後続するタスク・レジスタのアドレスを含ん
でいる其れらの次のフィールドを備えている。待ち行列
D23のヘッダー・レジスタと、タスク・レジスタ1〜9
は、従って、待ち行列D23から相互に連結される。
定される時に、タスク・レジスタとヘッダー・レジスタ
の関係を示す。図から分かるように、アドレスAとBと
Cの待ち行列AとBとCのヘッダー・レジスタは、それ
らに関連するレジスタの前のフィールドと次のフィール
ドに記憶されている其れら自体に関連するヘッダー・レ
ジスタのアドレスの各々を有している。前のフィールド
と次のフィールドが共にヘッダー・レジスタのアドレス
を含んでいる時に、その待ち行列は空になる。従って、
待ち行列AとBとCはこの時に空になり、全てのレジス
タが待ち行列D23に位置する。待ち行列D23のヘッダー・
レジスタの次のフィールドはアドレス1に待ち行列の最
初のタスク・レジスタのアドレスを含んでいて、待ち行
列D23のヘッダー・レジスタの前のフィールドはアドレ
ス9に待ち行列の最後のタスク・レジスタのアドレスを
含んでいる。これから、タスク・レジスタはタスク・レ
ジスタのアドレスに依って識別される。例えば、タスク
・レジスタ1はRAM13のアドレス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を示していることに注目すべきである。
に、アドレスが空の待ち行列の次のフィールドに記憶さ
れるタスク・レジスタに其のタスクを記憶して、そのレ
ジスタを待ち行列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に図示されている。
る待ち行列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に図示されている。
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から構成し、待ち行列C
22はヘッダー・レジスタCから構成し、待ち行列D23は
ヘッダー・レジスタDとタスク・レジスタ4と5と6と
7と8と9から構成している。
スタAとタスク・レジスタ1と2と3から構成し、待ち
行列B21はヘッダー・レジスタBから構成し、待ち行列C
22はヘッダー・レジスタ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に挿
入するために実施される。
ために待ち行列A20から待ち行列B21に移動されることを
次に決定すると想定している。タスクA1はタスク・レジ
スタ1に記憶されているので、ルーチンAはタスク・レ
ジスタ1を待ち行列A20から取り出すために実施され
る。ルーチンBは、順にステップ1と2と5と6と7と
8を実施して、タスク・レジスタ1を待ち行列B21に挿
入するために実施される。
図3Fを見ると、オペレーティング・システムは、待ち
行列A20に挿入される待ち行列D23のタスク・レジスタ4
に記憶されているタスクA4を次に受け取ることを想定し
ている。ルーチンAはタスク・レジスタ4を待ち行列D2
3から取り出すために実施される。ルーチンBは、順に
ステップ1と2と3と4と2と3と4と2と5と6と7
と8を実施して、タスク・レジスタ4を待ち行列A20に
挿入するために実施される。この手順の結果が図3Fに図
示されている。
行列A20に挿入される待ち行列D23のタスク・レジスタ4
に記憶されているタスクA4を次に受け取ることを想定し
ている。ルーチンAはタスク・レジスタ4を待ち行列D2
3から取り出すために実施される。ルーチン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から構成してい
る。
スタ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に図示され
ている。
ク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は待
ち行列D23から待ち行列A20に移動される。これらの動作
の各々が、これらのタスクの各々に相応してルーチンA
とルーチンBを実施する動作を含んでいる。これらの手
順の結果が図3Hに図示されている。
れるシステムに依る其の順序で受け取られることを次に
想定している。これらのタスクはタスク・レジスタ5と
6と7で挿入される。タスク・レジスタ5と6と7は待
ち行列D23から待ち行列A20に移動される。これらの動作
の各々が、これらのタスクの各々に相応してルーチンA
とルーチンBを実施する動作を含んでいる。これらの手
順の結果が図3Hに図示されている。
要約すると、この時に、待ち行列A20はヘッダー・レ
ジスタAとタスク・レジスタ2と4と5と6と7から構
成し、待ち行列B21はヘッダー・レジスタBとタスク・
レジスタ1から構成し、待ち行列C22はヘッダー・レジ
スタCとタスク・レジスタ3から構成し、待ち行列D23
はヘッダー・レジスタDとタスク・レジスタ8と9から
構成している。
ジスタ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に図示されている。
ク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に
図示されている。
ク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から構成してい
る。
スク・レジスタ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に図示されている。
たシステムは、タスク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を実施して、タスク・レジ
スタを待ち行列A20に挿入するために実施される。この
手順の結果が図3Lに図示されている。
行列A20に挿入される待ち行列D23のタスク・レジスタ1
に記憶されているタスク8を受け取ることを想定してい
る。タスクA8がタスク・レジスタ1に記憶された後に、
ルーチンAはタスク・レジスタ1を待ち行列D23から取
り出すために実施される。ルーチンBは、順にステップ
1と2と3と5と6と7と8を実施して、タスク・レジ
スタを待ち行列A20に挿入するために実施される。この
手順の結果が図3Lに図示されている。
要約すると、この時に、待ち行列A20はヘッダー・レ
ジスタAと、各々タスク・レジスタ1と4と6と7に記
憶されているタスクA8とA4とA6とA7を含んでいて、待ち
行列B21はヘッダー・レジスタBから構成し、待ち行列C
22はヘッダー・レジスタCと、各々タスク・レジスタ3
と5と2に記憶されているタスクA3とA5とA2を含んでい
て、待ち行列D23はヘッダー・レジスタDとタスク・レ
ジスタ8と9から構成している。
ジスタAと、各々タスク・レジスタ1と4と6と7に記
憶されているタスクA8とA4とA6とA7を含んでいて、待ち
行列B21はヘッダー・レジスタBから構成し、待ち行列C
22はヘッダー・レジスタCと、各々タスク・レジスタ3
と5と2に記憶されているタスクA3とA5とA2を含んでい
て、待ち行列D23はヘッダー・レジスタDとタスク・レ
ジスタ8と9から構成している。
今までの論述では、待ち行列システムの動作と、待ち
行列システムが設計者のニーズを満足するために設計者
に依って汎用化できる方式について述べられてきた。待
ち行列システムはメモリ場所をランダム・アクセス・メ
モリの内部に用いて説明されてきたが、専用ハードウェ
ア・レジスタがランダム・アクセス・メモリの代わりに
使用できることも理解されるべきである。
行列システムが設計者のニーズを満足するために設計者
に依って汎用化できる方式について述べられてきた。待
ち行列システムはメモリ場所をランダム・アクセス・メ
モリの内部に用いて説明されてきたが、専用ハードウェ
ア・レジスタがランダム・アクセス・メモリの代わりに
使用できることも理解されるべきである。
待ち行列間のタスクの移動は、タスク・レジスタを待
ち行列から取り出し且つ挿入することに依って影響を受
けるレジスタの前と次のフィールドの修正だけ必要とし
ていたことが容易に認めることができる。タスクを含ん
でいるタスク・レジスタが待ち行列間で効果的に移動さ
れた時に、タスク・レジスタ内部に記憶されていたタス
クに関連する実際のデータを移動する必要は常にない。
前述のように、待ち行列システムは、各々疑似待ち行列
がヘッダー・レジスタと1つまたは複数のタスク・レジ
スタから構成され且つ各々タスク・レジスタが待ち行列
システムの待ち行列に常に指定される、疑似待ち行列を
形成するためにレジスタを割り振りしていた。最終的な
待ち行列システムは、設計者に依って汎用化されるので
容易に使用できて、システムの要求が変わると簡単に変
更できて修正できるものになる。
ち行列から取り出し且つ挿入することに依って影響を受
けるレジスタの前と次のフィールドの修正だけ必要とし
ていたことが容易に認めることができる。タスクを含ん
でいるタスク・レジスタが待ち行列間で効果的に移動さ
れた時に、タスク・レジスタ内部に記憶されていたタス
クに関連する実際のデータを移動する必要は常にない。
前述のように、待ち行列システムは、各々疑似待ち行列
がヘッダー・レジスタと1つまたは複数のタスク・レジ
スタから構成され且つ各々タスク・レジスタが待ち行列
システムの待ち行列に常に指定される、疑似待ち行列を
形成するためにレジスタを割り振りしていた。最終的な
待ち行列システムは、設計者に依って汎用化されるので
容易に使用できて、システムの要求が変わると簡単に変
更できて修正できるものになる。
図4と5と6のルーチンは、周知のデジタル・ソフト
ウェア方式を用いてマイクロコードで具体的に作成さ
れ、Motorolla 68C11 Assembler,Series 5.0を用いてア
センブルされていた。マイクロプログラムは、付録Aに
詳細に説明されており、且つ図4と5(タスク・レジス
タ順序設定でないが更なるフィールド順序設定に依って
行われる)と6に図示される流れ図のルーチンの機能を
実行する。この方法は、他のプログラム設定可能言語を
用いる他のマイクロプログラムで実現できるが、または
コンピュータ・システム内部の読取専用メモリにも記憶
できることが理解されるべきである。プロセッサ10の機
能は、ここで説明されたルーチンを実行するために必要
な機能を実施するために専用化されたハードウェア・ス
テート・マシンを用いて実現できる。
ウェア方式を用いてマイクロコードで具体的に作成さ
れ、Motorolla 68C11 Assembler,Series 5.0を用いてア
センブルされていた。マイクロプログラムは、付録Aに
詳細に説明されており、且つ図4と5(タスク・レジス
タ順序設定でないが更なるフィールド順序設定に依って
行われる)と6に図示される流れ図のルーチンの機能を
実行する。この方法は、他のプログラム設定可能言語を
用いる他のマイクロプログラムで実現できるが、または
コンピュータ・システム内部の読取専用メモリにも記憶
できることが理解されるべきである。プロセッサ10の機
能は、ここで説明されたルーチンを実行するために必要
な機能を実施するために専用化されたハードウェア・ス
テート・マシンを用いて実現できる。
発明は好まれる実施例を参照しながら特に図示され説
明されてきたが、当業者は、形式的で細部の変更は発明
の精神と範囲を逸脱せずに其こに実施できることを理解
すると思われる。前述の一般的な概念と特殊な実施例の
開示が与えられたので、要求される保護の範囲は次に示
す特許請求の範囲に依って定められる。
明されてきたが、当業者は、形式的で細部の変更は発明
の精神と範囲を逸脱せずに其こに実施できることを理解
すると思われる。前述の一般的な概念と特殊な実施例の
開示が与えられたので、要求される保護の範囲は次に示
す特許請求の範囲に依って定められる。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平4−15831(JP,A) 特開 昭61−136134(JP,A) 特開 平1−173137(JP,A) 特開 昭63−313238(JP,A) 特開 昭61−221832(JP,A) 特開 平4−70952(JP,A) 特開 昭61−169939(JP,A) 実開 昭54−16335(JP,U) (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 WPI
Claims (4)
- 【請求項1】複数の待ち行列であって、該複数の待ち行
列における夫々の待ち行列は独自のヘッダー・レジスタ
・アドレスを有するヘッダー・レジスタを有し、該ヘッ
ダー・レジスタは前のフィールドと次のフィールドを備
えており、且つ該前のフィールドと該次のフィールドは
前記のヘッダー・レジスタの該ヘッダー・レジスタ・ア
ドレスまたはタスク・レジスタ・アドレスの何れかを格
納するようになっている前記複数の待ち行列と、 複数のタスク・レジスタであって、該タスク・レジスタ
は夫々独自のタスク・レジスタ・アドレスを有し、かつ
前のフィールドと次のフィールドとを具備し、該前のフ
ィールドと該次のフィールドは夫々前記複数の待ち行列
における前記待ち行列の1つに対してヘッダー・レジス
タ・アドレスか、或いは前記複数のタスク・レジスタに
おける該タスク・レジスタの別の1つに対して前記タス
ク・レジスタ・アドレスのいずれかを格納する前記複数
のタスク・レジスタと、および 前記タスク・レジスタの各々が前記の複数の待ち行列の
1つに常に位置するように前記のヘッダー・レジスタの
各々とタスク・レジスタの各々に於いて前記前のフィー
ルドと次のフィールドに格納されたアドレスを制御する
ことによって、該タスク・レジスタの各々を動的に指定
し、転送し、維持する目的と、該タスク・レジスタを物
理的に移動せずに待ち行列間で該タスク・レジスタを効
果的に移動する目的とを有する制御手段と、 を搭載し、 ここにおいて、該制御手段は、前記待ち行列に対して前
記待ち行列の該タスク・レジスタの次の下位のタスク・
レジスタ・アドレスを有するタスク・レジスタのタスク
・レジスタ・アドレスを、または前記待ち行列における
他のタスク・レジスタが下位の該タスク・レジスタ・ア
ドレスを有していない場合には、該ヘッダー・レジスタ
・アドレスを、前記待ち行列の該タスク・レジスタの各
々の該前のフィールドに格納することによって、および 前記待ち行列に対して前記待ち行列の該タスク・レジス
タの次の上位のタスク・レジスタ・アドレスを有するタ
スク・レジスタのタスク・レジスタ・アドレスを、また
は前記待ち行列の他のタスク・レジスタが上位の該タス
ク・レジスタ・アドレスを有していない場合には、該ヘ
ッダー・レジスタ・アドレスを、前記待ち行列の該タス
ク・レジスタの各々の該次のフィールドに格納すること
によって、および 最下位のタスク・レジスタ・アドレスを有する前記待ち
行列における該タスク・レジスタのタスク・レジスタ・
アドレスを、前記待ち行列に対してヘッダー・レジスタ
の次のフィールドに格納することによって、および 前記待ち行列に対して該ヘッダー・レジスタの前のフィ
ールドに前記待ち行列の最上位のタスク・レジスタ・ア
ドレスを有する前記待ち行列における該タスク・レジス
タのタスク・レジスタ・アドレスを格納することによっ
て、 前記複数の待ち行列における待ち行列に該タスク・レジ
スタを順序配列することを特徴とする待ち行列システ
ム。 - 【請求項2】前記ヘッダー・レジスタを有する前記複数
の待ち行列における待ち行列が、前記制御手段によって
該待ち行列に指定されたタスク・レジスタを有しない場
合には、該制御手段は、該ヘッダー・レジスタ用の該ヘ
ッダー・レジスタ・アドレスを、該ヘッダー・レジスタ
の前記次のフィールドと前記前のフィールドに格納する
ものであることを特徴とする請求項1記載の待ち行列シ
ステム。 - 【請求項3】前記制御手段が、 該タスク・レジスタの1つを、前記複数の待ち行列の中
の該待ち行列の1つから除去する削除手段と;および 該削除手段により前記待ち行列から除去された該タスク
・レジスタの前記の1つを、前記複数の待ち行列の別の
1つに挿入する挿入手段と; を更に具備することを特徴とする請求項1記載の待ち行
列システム。 - 【請求項4】前記挿入手段は、前記タスク・レジスタ
を、該待ち行列の最後のタスク・レジスタとして、前記
待ち行列に挿入する第1手段を具備することを特徴とす
る請求項3記載の待ち行列システム。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| 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 |
| US08/007,199 | 1993-01-21 | ||
| US007,199 | 1993-01-21 | ||
| 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 JPH08506197A (ja) | 1996-07-02 |
| JP3271981B2 true 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 |
| 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 |
| US6081512A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | Spanning tree support in a high performance network device |
| US6014380A (en) * | 1997-06-30 | 2000-01-11 | Sun Microsystems, Inc. | Mechanism for packet field replacement in a multi-layer distributed network element |
| US6081522A (en) * | 1997-06-30 | 2000-06-27 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
| US6049528A (en) * | 1997-06-30 | 2000-04-11 | Sun Microsystems, Inc. | Trunking ethernet-compatible networks |
| US6088356A (en) * | 1997-06-30 | 2000-07-11 | Sun Microsystems, Inc. | System and method for a multi-layer network element |
| US6044418A (en) * | 1997-06-30 | 2000-03-28 | Sun Microsystems, Inc. | Method and apparatus for dynamically resizing queues utilizing programmable partition pointers |
| US6016310A (en) * | 1997-06-30 | 2000-01-18 | Sun Microsystems, Inc. | Trunking support in a high performance network device |
| 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 |
| US5938736A (en) * | 1997-06-30 | 1999-08-17 | Sun Microsystems, Inc. | Search engine architecture for a high performance multi-layer switch element |
| US5920566A (en) * | 1997-06-30 | 1999-07-06 | Sun Microsystems, Inc. | Routing in a multi-layer distributed network element |
| 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 |
| 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 |
| 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 |
| 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 |
| WO2005020065A2 (en) * | 2003-08-25 | 2005-03-03 | Koninklijke Philips Electronics, N.V. | 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 |
| US8996761B2 (en) | 2007-08-10 | 2015-03-31 | Kernelon Silicon Inc. | Virtual queue processing circuit and task processor |
| 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 |
| WO2013100783A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Method and system for control signalling in a data path module |
| 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 |
| US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional 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 |
| US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation 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 |
| 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 DE DE69425554T patent/DE69425554T2/de not_active Expired - Fee Related
- 1994-01-18 JP JP51717094A patent/JP3271981B2/ja not_active Expired - Fee Related
- 1994-01-18 EP EP94906690A patent/EP0680633B1/en not_active Expired - Lifetime
- 1994-01-18 WO PCT/US1994/000699 patent/WO1994017470A1/en not_active Ceased
- 1994-01-18 AT AT94906690T patent/ATE195594T1/de not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| EP0680633B1 (en) | 2000-08-16 |
| DE69425554D1 (de) | 2000-09-21 |
| ATE195594T1 (de) | 2000-09-15 |
| JPH08506197A (ja) | 1996-07-02 |
| DE69425554T2 (de) | 2001-01-04 |
| WO1994017470A1 (en) | 1994-08-04 |
| EP0680633A1 (en) | 1995-11-08 |
| US5410722A (en) | 1995-04-25 |
| EP0680633A4 (en) | 1996-03-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3271981B2 (ja) | 待ち行列システム | |
| US5224215A (en) | Message queue processing among cooperative processors having significant speed differences | |
| US5671446A (en) | Method and apparatus for atomically accessing a queue in a memory structure where LIFO is converted to FIFO | |
| US5922057A (en) | Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore | |
| EP0199053B1 (en) | Input/output control system | |
| US6779045B2 (en) | System and apparatus for increasing the number of operations per transmission for a media management system | |
| JPH06202936A (ja) | コンピュータ主記憶域管理システムおよび方法 | |
| KR100463987B1 (ko) | 공통처리알고리즘을이용한다수의큐핸들링방법및장치 | |
| US5479615A (en) | Buffer asynchronous output apparatus capable of referring to or renewing a previously renewed buffer area by another renewal processing program | |
| US5136718A (en) | Communications arrangement for digital data processing system employing heterogeneous multiple processing nodes | |
| JPH031219A (ja) | マルチファイル転送動作を遂行する装置とその方法 | |
| GB2348306A (en) | Batch processing of tasks in data processing systems | |
| JPH0668736B2 (ja) | 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法 | |
| EP0149900A2 (en) | Data storage apparatus | |
| JP4108944B2 (ja) | スナップショット機能を有するディスク記憶装置、スナップショット差分情報管理方法及びスナップショット管理プログラム | |
| EP0729104A2 (en) | A data transfer control device for controlling data transfer between shared memories of clusters | |
| US6735677B1 (en) | Parameterizable queued memory access system | |
| US6934825B1 (en) | Bi-directional stack in a linear memory array | |
| US6823326B2 (en) | Method and system for performing asynchronous preformatting in a database system | |
| JP2615046B2 (ja) | レコード追加処理方法 | |
| JP2594140B2 (ja) | データ駆動型データ処理装置 | |
| JP2967687B2 (ja) | 事前バッファフラッシュシステム | |
| JP2716563B2 (ja) | データ書込み制御方式 | |
| JP2735400B2 (ja) | 非同期入出力制御方式 | |
| JPS584449A (ja) | 命令バッファ制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |