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
Application number
JP51717094A
Other languages
English (en)
Other versions
JPH08506197A (ja
Inventor
アール. コーナビー,スティーブン
Original Assignee
シーゲイト テクノロジー インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シーゲイト テクノロジー インコーポレーテッド filed Critical シーゲイト テクノロジー インコーポレーテッド
Publication of JPH08506197A publication Critical patent/JPH08506197A/ja
Application granted granted Critical
Publication of JP3271981B2 publication Critical patent/JP3271981B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/064Linked 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つのアクチュエータ間
でタスクを割り振するシステムという名称で出願され
た。
発明の背景 発明の分野 発明は、待ち行列を処理システム内部で構築し且つデ
ータを構築された待ち行列間で効果的に移動するための
システムに関する。
関連技術の説明 多くのコンピュータ・システムは、タスクとデータを
コンピュータ処理システムの内部で転送することを管理
するために待ち行列を採用している。待ち行列は、待ち
行列に記憶されているエントリが、エントリが待ち行列
に記憶されていた順序で待ち行列から読み取られる、先
入れ先出し(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と
読取専用メモリROM11とランダム・アクセス・メモリRAM
12に依って部分的に構成される処理システムの内部に実
現されている。プロセッサ10は、ROM11にライン13を介
して連なり、RAM12にライン14を介して連なっている。
このプロセッサと読取専用メモリとランダム・アクセス
・メモリの一般的な構成は、産業界の全体にわたって広
く用いられている。処理システムは、大型コンピュータ
計算システムの内部に一般的に含まれていて、全体的な
システム内の特殊なタイプの機能の取扱のために専用化
されている。例えば、このような処理システムは、ディ
スク・ドライブ・ファイル制御ユニットやI/Oチャンネ
ル制御ユニットだけでなく、主要処理ユニット自体の内
部にも含まれている。プロセッサは、プロセッサが其の
設計された機能を実行できるように書き込まれたシステ
ム・プログラムの制御のもとで実行する。
本発明の待ち行列システムは、プロセッサ10に依って
制御され、疑似待ち行列の実際の形式に相応してRAM12
を使用する。RAM12は、各々アドレスが数多くのビット
またはバイトのデータを含んでいる複数の記憶アドレス
を含むように構成されている。待ち行列システムは、そ
のアドレスをRAM内部の疑似待ち行列の形式に相応する
待ち行列システムに専用化されるランダム・アクセス・
メモリの内容で要求する。アドレスの各々はタスク・レ
ジスタまたはヘッダー・レジスタと考えられる。ヘッダ
ーレジスタとタスクレジスタの各々は、少なくとも2つ
のフィールド、すなわち前のフィールドと次のフィール
ドを含んでいる。レジスタの前のフィールドはその待ち
行列の前のレジスタのアドレスを記憶し、次のフィール
ドは待ち行列の次のレジスタのアドレスを記憶する。
各々待ち行列は少なくとも2つのヘッダー・レジスタ
から構成されている。待ち行列が待ち行列に関連するタ
スク・レジスタを有していない時に、その待ち行列のヘ
ッダー・レジスタは、ヘッダー・レジスタを、待ち行列
のヘッダー・レジスタの前と次のフィールドに記憶され
る自らのアドレスにする。従って、前と次のフィールド
は待ち行列に相応するヘッダー・レジスタの場所を指示
するポインタを備えている。各々タスク・レジスタは待
ち行列に常に指定される。待ち行列システムに於いて、
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に挿入される更なるオプ
ションを備えている。
引用された同時係属出願“同じ磁気ディスク・ドライ
ブを単一のディスク・ドライブで作動する2つのアクチ
ュエータ間にタスクを割り振するシステム”に、単一の
磁気ディスク媒体を作動する二重アクチュエータ・シス
テムが説明されている。本発明の待ち行列システムは、
そこに引用されているマイクロプロセッサとRAMユニッ
トの内部に採用されている。本出願の付録Aとクロス・
リファレンス出願の場合、待ち行列A20はコマンド待ち
行列であり、待ち行列B21はデータを検索する或いは磁
気媒体に記憶するタスクは1つ或いは2つだけのアクチ
ュエータを採用する1チャンネル待ち行列であり、待ち
行列C22は両方のアクチュエータを単一の磁気媒体に関
してシステムからのコマンドの実行に使用する2チャン
ネル待ち行列であり、最後に待ち行列D23は空の待ち行
列である。
タスクを待ち行列B21、すなわち、1チャンネル待ち
行列に挿入し且つ取り出すためのルーチンは、クロス・
リファレンス同時係属出願の詳細に説明されているの
で、ここで繰り返し説明されない。本発明の待ち行列シ
ステムの説明を単純にするために、待ち行列B21は順序
設定されたアドレスである待ち行列として示される。発
明の待ち行列システムは図2に図示される構成に限定さ
れず、待ち行列システムの設計者は、本発明に従って、
システム設計者が要望する待ち行列をできるだけ数多く
構成する待ち行列システムを具備できて、これらの待ち
行列の各々は設計者が指摘し管理する規準に従って順序
設定できることが理解されるべきである。更に、ランダ
ム・アクセス・メモリ内部のメモリ・レジスタのアドレ
スは、単一ブロックの専用アドレスまたは複数のブロッ
クの専用アドレスまたは連続しないアドレスになる。再
び、アドレス、およびランダム・アクセス・メモリ内部
のアドレスの配置は設計者の選択に依存し、メモリで用
いられるアドレスの場所は待ち行列システムの構造にと
って重要な問題にならない。
ここで、発明の説明を単純にするために、待ち行列A2
0とB21とD23のタスク・レジスタは待ち行列の内部で順
序設定されるアドレスにあり、待ち行列C23のタスク・
レジスタは待ち行列に対する挿入の順で順序設定され
る。待ち行列C23のタスクが待ち行列C23のヘッダー・レ
ジスタの次のフィールドに記憶されているタスク・レジ
スタ・アドレスを用いて作動される場合に、待ち行列C2
3は効果的に先入れ先出し(FIFO)の待ち行列になる。
待ち行列C23のタスクが待ち行列C23のヘッダー・レジス
タの前のフィールドに記憶されているタスク・レジスタ
・アドレスを用いて作動される場合、待ち行列C23は効
果的に後入れ後出し(LIFO)待ち行列になる。待ち行列
の文字は、待ち行列を待ち行列システム内部で順序設定
する方式およびタスクを待ち行列から取り出す方式につ
いて、システム設計者に依って決定されることが容易に
分かる。再び、待ち行列の各々を待ち行列のタイプに区
分けすることは、待ち行列システムに関連して用いられ
る全てのタスク・レジスタが待ち行列システムの待ち行
列の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に依ってアク
セスされる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とラベル表示されたカラムは
タスク・レジスタがいま指定されている待ち行列を指示
するために用いられる。
図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から相互に連結される。
オペレーティング・システムは、タスクを受け取る時
に、アドレスが空の待ち行列の次のフィールドに記憶さ
れるタスク・レジスタに其のタスクを記憶して、そのレ
ジスタを待ち行列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から構成し、待ち行列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に挿
入するために実施される。
図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から構成してい
る。
図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に図示されている。
要約すると、この時に、待ち行列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を実施して、タスク・レジ
スタを待ち行列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から構成している。
今までの論述では、待ち行列システムの動作と、待ち
行列システムが設計者のニーズを満足するために設計者
に依って汎用化できる方式について述べられてきた。待
ち行列システムはメモリ場所をランダム・アクセス・メ
モリの内部に用いて説明されてきたが、専用ハードウェ
ア・レジスタがランダム・アクセス・メモリの代わりに
使用できることも理解されるべきである。
待ち行列間のタスクの移動は、タスク・レジスタを待
ち行列から取り出し且つ挿入することに依って影響を受
けるレジスタの前と次のフィールドの修正だけ必要とし
ていたことが容易に認めることができる。タスクを含ん
でいるタスク・レジスタが待ち行列間で効果的に移動さ
れた時に、タスク・レジスタ内部に記憶されていたタス
クに関連する実際のデータを移動する必要は常にない。
前述のように、待ち行列システムは、各々疑似待ち行列
がヘッダー・レジスタと1つまたは複数のタスク・レジ
スタから構成され且つ各々タスク・レジスタが待ち行列
システムの待ち行列に常に指定される、疑似待ち行列を
形成するためにレジスタを割り振りしていた。最終的な
待ち行列システムは、設計者に依って汎用化されるので
容易に使用できて、システムの要求が変わると簡単に変
更できて修正できるものになる。
図4と5と6のルーチンは、周知のデジタル・ソフト
ウェア方式を用いてマイクロコードで具体的に作成さ
れ、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)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の待ち行列であって、該複数の待ち行
    列における夫々の待ち行列は独自のヘッダー・レジスタ
    ・アドレスを有するヘッダー・レジスタを有し、該ヘッ
    ダー・レジスタは前のフィールドと次のフィールドを備
    えており、且つ該前のフィールドと該次のフィールドは
    前記のヘッダー・レジスタの該ヘッダー・レジスタ・ア
    ドレスまたはタスク・レジスタ・アドレスの何れかを格
    納するようになっている前記複数の待ち行列と、 複数のタスク・レジスタであって、該タスク・レジスタ
    は夫々独自のタスク・レジスタ・アドレスを有し、かつ
    前のフィールドと次のフィールドとを具備し、該前のフ
    ィールドと該次のフィールドは夫々前記複数の待ち行列
    における前記待ち行列の1つに対してヘッダー・レジス
    タ・アドレスか、或いは前記複数のタスク・レジスタに
    おける該タスク・レジスタの別の1つに対して前記タス
    ク・レジスタ・アドレスのいずれかを格納する前記複数
    のタスク・レジスタと、および 前記タスク・レジスタの各々が前記の複数の待ち行列の
    1つに常に位置するように前記のヘッダー・レジスタの
    各々とタスク・レジスタの各々に於いて前記前のフィー
    ルドと次のフィールドに格納されたアドレスを制御する
    ことによって、該タスク・レジスタの各々を動的に指定
    し、転送し、維持する目的と、該タスク・レジスタを物
    理的に移動せずに待ち行列間で該タスク・レジスタを効
    果的に移動する目的とを有する制御手段と、 を搭載し、 ここにおいて、該制御手段は、前記待ち行列に対して前
    記待ち行列の該タスク・レジスタの次の下位のタスク・
    レジスタ・アドレスを有するタスク・レジスタのタスク
    ・レジスタ・アドレスを、または前記待ち行列における
    他のタスク・レジスタが下位の該タスク・レジスタ・ア
    ドレスを有していない場合には、該ヘッダー・レジスタ
    ・アドレスを、前記待ち行列の該タスク・レジスタの各
    々の該前のフィールドに格納することによって、および 前記待ち行列に対して前記待ち行列の該タスク・レジス
    タの次の上位のタスク・レジスタ・アドレスを有するタ
    スク・レジスタのタスク・レジスタ・アドレスを、また
    は前記待ち行列の他のタスク・レジスタが上位の該タス
    ク・レジスタ・アドレスを有していない場合には、該ヘ
    ッダー・レジスタ・アドレスを、前記待ち行列の該タス
    ク・レジスタの各々の該次のフィールドに格納すること
    によって、および 最下位のタスク・レジスタ・アドレスを有する前記待ち
    行列における該タスク・レジスタのタスク・レジスタ・
    アドレスを、前記待ち行列に対してヘッダー・レジスタ
    の次のフィールドに格納することによって、および 前記待ち行列に対して該ヘッダー・レジスタの前のフィ
    ールドに前記待ち行列の最上位のタスク・レジスタ・ア
    ドレスを有する前記待ち行列における該タスク・レジス
    タのタスク・レジスタ・アドレスを格納することによっ
    て、 前記複数の待ち行列における待ち行列に該タスク・レジ
    スタを順序配列することを特徴とする待ち行列システ
    ム。
  2. 【請求項2】前記ヘッダー・レジスタを有する前記複数
    の待ち行列における待ち行列が、前記制御手段によって
    該待ち行列に指定されたタスク・レジスタを有しない場
    合には、該制御手段は、該ヘッダー・レジスタ用の該ヘ
    ッダー・レジスタ・アドレスを、該ヘッダー・レジスタ
    の前記次のフィールドと前記前のフィールドに格納する
    ものであることを特徴とする請求項1記載の待ち行列シ
    ステム。
  3. 【請求項3】前記制御手段が、 該タスク・レジスタの1つを、前記複数の待ち行列の中
    の該待ち行列の1つから除去する削除手段と;および 該削除手段により前記待ち行列から除去された該タスク
    ・レジスタの前記の1つを、前記複数の待ち行列の別の
    1つに挿入する挿入手段と; を更に具備することを特徴とする請求項1記載の待ち行
    列システム。
  4. 【請求項4】前記挿入手段は、前記タスク・レジスタ
    を、該待ち行列の最後のタスク・レジスタとして、前記
    待ち行列に挿入する第1手段を具備することを特徴とす
    る請求項3記載の待ち行列システム。
JP51717094A 1993-01-21 1994-01-18 待ち行列システム Expired - Fee Related JP3271981B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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