JPH09179743A - エレメントをソートする方法および装置 - Google Patents

エレメントをソートする方法および装置

Info

Publication number
JPH09179743A
JPH09179743A JP8307836A JP30783696A JPH09179743A JP H09179743 A JPH09179743 A JP H09179743A JP 8307836 A JP8307836 A JP 8307836A JP 30783696 A JP30783696 A JP 30783696A JP H09179743 A JPH09179743 A JP H09179743A
Authority
JP
Japan
Prior art keywords
value
queue
elements
array
decision tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8307836A
Other languages
English (en)
Inventor
Jon C R Bennett
シー.アール.ベネット ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FORE SYST Inc
Fore Systems Inc
Original Assignee
FORE SYST Inc
Fore Systems Inc
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 FORE SYST Inc, Fore Systems Inc filed Critical FORE SYST Inc
Publication of JPH09179743A publication Critical patent/JPH09179743A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/22Indexing scheme relating to groups G06F7/22 - G06F7/36
    • G06F2207/222Binary data tree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/22Indexing scheme relating to groups G06F7/22 - G06F7/36
    • G06F2207/226Priority queue, i.e. 1 word in, 1 word out sorter; Output word, i.e. min or max of words in memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 メモリ読出しを行なうこと無く且つ一定数の
メモリ書込みを行なって、アレイにおける最小のエレメ
ントを特定すること。 【解決手段】 本発明は、ソートを行なう方法に関す
る。該方法は、少なくとも最初のレベルを具える判断ツ
リーを生成する工程を含んでおり、前記レベルは、少な
くとも最初のエントリを有しており、該エントリは、キ
ューを満たす値に対応する第1結果または第2結果の何
れかを有する。それから、判断ツリーの最初のレベルの
最初のエントリにおける結果を読み出す工程が存在す
る。次に、最初のレベルの最初のエントリにおいて、最
初のエントリにおける結果に対応する値をキューから選
択する工程がある。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、優先キュー(a pr
iority queue)に関する。特に、本発明は、エレメント
(elements)を保持するのに要する記憶量の他には、必
要な記憶量がごく僅かである優先キューを実行するため
のアルゴリズムに関する。このアルゴリズムと、併用さ
れるハードウェアとを用いると、メモリ読出しを行なう
ことなく、且つ一定回数のメモリ書込みを行なうことに
よりエレメントを前記キューに挿入できる。
【0002】
【従来の技術および発明が解決しようとする課題】通
常、優先キューにおいて、以下の4つの動作を実行する
必要がある。 ・キューにおける最初のエレメントを発見する動作 ・キューにエレメントを挿入する動作 ・キューからエレメントを削除する動作 ・キューにおけるエレメントを変更する動作
【0003】アルゴリズムの品質とアルゴリズムの実行
品質は、前記動作の実行効率に基づいて測定できる。メ
モリ読出し/書込み動作数と、比較動作数に関する効率
が必要である。例えば、エレメントが優先度の高い順に
配列されたリンクリスト(linked list)として実行さ
れる優先キューを考える。エレメントを挿入するには、
リンクリストにおけるエレメントの位置が発見されるま
で、リンクリストを調査(traverse)し、それから、リ
ストにエレメントを挿入する必要がある。同様に、エレ
メントを削除して変更するには、エレメントが配置され
るまで、リストを調査する必要がある。最悪の場合に
は、エレメントの全リストを調査する必要があるだろ
う。
【0004】上記動作の効率に加えて、キュー内のエレ
メントを保持する空間量の他にアルゴリズムが費やす空
間量に基づいて、アルゴリズムを測定できる。
【0005】
【発明の目的】本発明は、エレメントを保持するのに要
する記憶量の他に必要な記憶量がごく僅かである優先キ
ューを実行するためのアルゴリズムである。このアルゴ
リズムと、併用されるハードウェアとを用いると、最悪
の場合でも、メモリ読出しを行なうことなく、且つ一定
回数のメモリ書込みを行なうことによりエレメントをキ
ューに挿入できる。
【0006】優先キューを作成する上での問題点(より
一般的には、ソート(sort)を行なう上での問題点)
は、ある線形の順番に従って、対象物のリストを並べる
問題として意味付けられる。例えば、整数は、数値の昇
順または降順に並べられる。
【0007】
【課題を解決する為の手段】本発明は、ソートを行なう
方法に関する。該方法は、少なくとも最初のレベルを具
える判断ツリーを生成する工程を含んでおり、前記レベ
ルは、少なくとも最初のエントリを有しており、該エン
トリは、キューを満たす値に対応する第1結果または第
2結果の何れかを有する。それから、判断ツリーの最初
のレベルの最初のエントリにおける結果を読み出す工程
が存在する。次に、最初のレベルの最初のエントリにお
いて、最初のエントリにおける結果に対応する値をキュ
ーから選択する工程がある。
【0008】本発明は、ソートを行なう方法に関する。
該方法は、N個のレベルを具える判断ツリーを生成する
工程を含んでおり、ここで、Nは、1以上の整数であ
り、ツイン(twin)エレメントを有するキューに対応し
ており、各エレメントは、ある値を有している。キュー
を満たすと、各レベルLは、タイル(tile)エントリを
有し、ここで、Lは、0以上の整数である。各エントリ
は、キューにおける値に対応する第1結果または第2結
果の何れかを有する。それから、第0レベルのエントリ
における結果を読み出す工程が存在する。次に、もしあ
れば、隣接する大きいレベルのエントリにおける結果
が、前の小さいレベルにて読み出される結果に依存して
読み出される工程が存在する。それから、最大レベルの
エントリにおける結果に対応する値をキューから選択す
る工程が存在する。
【0009】本発明は、ソートする装置に関する。該装
置は、サイズが2Nであり、エレメントを記憶するアレイ
Eを具える。ここで、N≧1かつNは整数であり、アレ
イEにおけるエレメントには、0から2N-1までのインデ
ックスが付けられる。該装置は、アレイEに記憶される
エレメント数に等しい値NEを保持する第1メモリを具
える。ビット数が2N-1であり、アレイEにおけるエレメ
ントの相対的な順番を示す判断ツリーが存在し、ここ
で、判断ツリーの部分Iにおけるビット数は、2N/2I+1
である。さらに、該装置は、サイズがNである比較リス
トアレイCLを具え、ここで、CL[i]には、E[l]及びE
[h]内で小さいエレメントの値が入る。ここで、
【数2】 であり、 l+2i-1=h である。
【0010】該装置は、アレイにおける最終エレメント
の値に等しい値Lを保持する第2メモリを具える。ま
た、該装置は、コントローラを具え、該コントローラ
は、アレイE内の連続するメモリ位置に、未ソートのま
までエレメントを挿入し、アレイEにおけるエレメント
の相対的な順番を示す判断ツリーを一部修正し、CL[i]
には、E[l]及びE[h]内で小さいエレメントの値が入るよ
うにアレイCLを一部修正し、アレイEに追加される夫
々の新たなエレメントの値で値Lを更新し、且つ、夫々
の新しいエレメントをアレイEに追加するときに値NE
を更新する。
【0011】本発明は、優先キューを具える。該優先キ
ューは、エレメントを記憶するアレイを具える。また、
優先キューは、コントローラを具え、該コントローラ
は、メモリ読出しを行なうこと無く且つ一定数のメモリ
書込みを行なって、アレイにおける最小のエレメントを
特定できるようにアレイにエレメントを記憶する。
【0012】本発明は、エレメントを操作する方法に関
する。該方法は、2N(N≧2、且つNは整数である。)
個のエレメントを記憶するサイズを有するエレメントキ
ューにおける最初のキュー位置に、最初の値を有する最
初のエレメントを記憶する工程を含む。それから、レジ
スタにおいて、キュー内のエレメント数及び最初のエレ
メントの最初の値を更新する工程が存在する。次に、エ
レメントキューにおいて最初のエレメントと隣接する2
番目のキュー位置に、2番目の値を有する2番目のエレ
メントを記憶する工程が存在する。それから、レジスタ
において、キュー内のエレメント数及び2番目のエレメ
ントの2番目の値を更新する工程が存在する。次に、最
初のエレメントの最初の値と2番目のエレメントの2番
目の値を、比較して、最初のエレメントと2番目のエレ
メントの中の何れの値が大きいかに対応する最初の比較
結果を生成する工程が存在する。それから、判断ツリー
における複数の位置の中の最初の位置に、最初の比較結
果を記憶する工程が存在する。複数の位置は、複数のレ
ベルに対応する。次に、比較リストアレイにおける複数
の比較エレメントの中の最初の比較エレメントを更新す
る工程が存在する。各比較エレメントは、複数のレベル
の中のあるレベルに関連する。更新された比較エレメン
トは、エレメントキューにおいて、2番目のエレメント
が記憶される2番目のキュー位置と、最初のエレメント
が記憶される最初のキュー位置に対応する。それから、
エレメントキューにおいて、2番目のエレメントに隣接
する3番目のキュー位置に、3番目の値を有する3番目
のエレメントを記憶する工程が存在する。次に、レジス
タにおいて、キュー内のエレメント数及び3番目のエレ
メントの3番目の値を更新する工程が存在する。それか
ら、最初及び2番目のエレメントの中の小さい方の値
を、3番目のエレメントの3番目の値と比較して、最初
及び2番目のエレメント並びに3番目のエレメントの中
の何れの値が小さいかに対応する2番目の比較結果を生
成する工程が存在する。次に、判断ツリーの中の2番目
の位置に2番目の比較結果を記憶する工程が存在する。
それから、3番目のエレメントを記憶する3番目のキュ
ー位置に対応する2番目の比較エレメントを更新する工
程が存在する。次に、エレメントキューにおいて、3番
目のエレメントと隣接する4番目のキュー位置に、4番
目の値を有する4番目のエレメントを記憶する工程が存
在する。それから、レジスタにおいて、キュー内のエレ
メント数及び4番目のエレメントの4番目の値を更新す
る工程が存在する。次に、3番目のエレメントと4番目
のエレメントの4番目の値を比較して、3番目及び4番
目のエレメントの何れの値が小さいがに対応する3番目
の比較結果を生成する工程が存在する。それから、判断
ツリーの中の3番目の位置に3番目の比較結果を記憶す
る工程が存在する。次に、3番目のエレメント及び4番
目のエレメントの中で最小の値を、最初のエレメント及
び2番目のエレメントの中で最小の値と比較して、最
初、2番目、3番目及び4番目のエレメントの中で何れ
の値が最小であるかに相当する4番目の比較結果を生成
する工程が存在する。それから、判断ツリーにおける2
番目の位置に4番目の比較結果を記憶する工程が存在す
る。次に、比較リストを更新する工程が存在する。それ
から、エレメントキューにおける3番目のエレメントの
3番目の値を新たな値に変更する工程が存在する。次
に、その新たな値を4番目のエレメントの4番目の値と
比較して、5番目の比較結果を生成する工程が存在す
る。それから、判断ツリーにおける3番目の位置に5番
目の比較結果を記憶する工程が存在する。次に、判断ツ
リーにおける5番目の比較結果を最初の比較結果と比較
して、6番目の比較結果を得る工程が存在する。それか
ら、判断ツリーにおける2番目の位置に6番目の比較結
果を記憶する工程が存在する。次に、比較リストを更新
する工程が存在する。それから、判断ツリーにおける比
較結果を読み出すことのみによって、エレメントキュー
において最小値を有するキュー位置を発見する工程が存
在する。次に、最小値を得る工程が存在する。
【0013】
【発明の実施の形態】図を参照すると、ソートする装置
(32)が示される。ここで、図中の同じ参照数字は、幾つ
かの図を通じて、特に図1に対して、同様または一致し
た部分を示す。該装置(32)は、サイズが2Nであり、エレ
メント(22)を記憶するアレイEを具える。ここで、N≧
1、且つNは整数であり、アレイEにおけるエレメント
(22)には、0〜2N-1のインデックスが付けられる。装置
(32)は、アレイEに記憶されているエレメント(22)数に
等しい値NEを保持する第1メモリ(36)を具える。2N-1
ビットを有しており、アレイEにおけるエレメント(22)
の相対的な順番を示す判断ツリー(10)が存在し、ここ
で、判断ツリーの部分Iにおけるビット数は、2N/2I+1
である。さらに、装置(32)は、サイズがNである比較リ
ストアレイCLを具えており、ここで、CL[i]は、E[l]
及びE[h]内で小さいエレメントの値に等しい。ここで、
【数3】 であり、 l+2i-1=h である。
【0014】装置(32)は、アレイにおける最終エレメン
トの値に等しい値Lを保持する第2メモリ(38)を具え
る。また、装置(32)は、コントローラ(40)を具えてお
り、該コントローラ(40)は、アレイE内の連続するメモ
リ位置に、エレメント(22)を未ソートのままで挿入し、
アレイEにおけるエレメント(22)の相対的な順番を表わ
す判断ツリー(10)を一部修正し、CL[i]は、E[l]及びE
[h]内で小さいエレメントの値に等しくなるように、ア
レイCLを一部修正し、アレイEに追加された夫々の新
しいエレメントの値で値Lを更新し、且つ、夫々の新し
いエレメントがアレイEに追加されると、値NEを更新
する。
【0015】本発明は、優先キューを具える。該優先キ
ューは、エレメント(22)を記憶するアレイ(42)を具え
る。また、優先キューは、コントローラ(40)を具え、該
コントローラ(40)は、メモリ読出しを行なうこと無く且
つ一定数のメモリ書込みを行なって、アレイ(42)におけ
る最小のエレメントを特定できるようにアレイ(42)にエ
レメント(22)を記憶する。
【0016】本発明は、ソートを行なう方法に関する。
該方法は、判断ツリー(10)を生成する工程を含んでお
り、判断ツリー(10)は、少なくとも最初のレベル(12)を
具えており、最初のレベル(12)は、少なくとも最初のエ
ントリ(14)を有しており、最初のエントリ(14)は、キュ
ー(20)を満たす値に対応する第1結果(16)または第2結
果(18)の何れかを有する。それから、判断ツリー(10)の
最初のレベル(12)の最初のエントリ(14)における結果を
読み出す工程が存在する。次に、最初のレベル(12)の最
初のエントリ(14)において、最初のエントリ(14)におけ
る結果に対応する値をキュー(20)から選択する工程が存
在する。
【0017】本発明は、ソートを行なう方法に関する。
該方法は、N段のレベルを具える判断ツリー(10)を生成
する工程を含んでおり、ここで、Nは、1以上の整数で
あり、ツインエレメント(22)を有するキュー(20)に対応
しており、各エレメントは、ある値を有している。キュ
ー(20)を満たすと、各レベルLは、タイルエントリを有
し、ここで、Lは0以上の整数である。各エントリは、
キュー(20)における値に対応する第1結果(16)または第
2結果(18)の何れかを有する。それから、第0レベルの
エントリにおける結果を読み出す工程が存在する。次
に、もしあれば、隣接する大きいレベルのエントリにお
ける結果が、前の小さいレベルにて読み出された結果に
依存して読み出される工程が存在する。それから、最大
レベルのエントリにおける結果に対応する値をキュー(2
0)から選択する工程が存在する。
【0018】Lは1以上であり、隣接する大きいレベル
のエントリにおける結果を読み出す工程は、第0レベル
のエントリにおける結果に依存して、第1レベル(12)の
エントリを読み出す工程を含むことが望ましい。さら
に、選択する工程は、第1レベル(12)のエントリにて読
み出された結果に対応する値をキュー(20)から選択する
工程を含むことが望ましい。生成する工程は、キュー(2
0)の最初のエレメント(26)に最初の値(24)を書き込む工
程を含むことが望ましい。それから、キュー(20)の2番
目のエレメント(30)に2番目の値(28)を読み出す工程が
存在する。次に、最初の値(24)と2番目の値(28)を比較
する工程が存在する。それから、最初の値(24)が2番目
の値(28)よりも大きいか或いは小さいかに依存してそれ
ぞれ対応するエレメントに関して、第1レベル(12)の対
応するエントリに、第1結果(16)または第2結果(18)を
読み出す工程が存在する。次に、3番目の値(32)を書き
込み、2番目の値(28)と比較し、且つ対応するエントリ
に書き込む工程を繰り返す工程が存在する。次に、最初
の値と2番目の値の中の最小値と3番目の値(32)を比較
し、3番目の値(32)が2番目の値(20)よりも大きいか或
いは小さいかに依存してそれぞれ対応するエレメントに
関して、第0レベルの対応するエントリに第1結果(16)
または第2結果(18)を書き込む工程が存在する。
【0019】本発明は、エレメント(22)を操作する方法
に関する。図6〜図9を参照すると、該方法は、最初の
値を有する最初のエレメント(26)を、エレメントキュー
(20)における最初のキュー位置に記憶する工程を含
んでおり、該エレメントキュー(20)は、2N個のエレ
メントを記憶するサイズを有しており、ここで、N≧
2、且つNは整数である。それから、キュー(20)内のエ
レメント(22)数と、最初のエレメント(26)の最初の値(2
4)とをレジスタに更新する工程が存在する。次に、エレ
メントキュー(20)において最初のエレメント(26)と隣接
する2番目のキュー位置に、2番目の値(28)を有する2
番目のエレメント(30)を記憶する工程が存在する。それ
から、キュー(20)内のエレメント(22)数と、2番目のエ
レメント(30)の2番目の値(28)とをレジスタに更新する
工程が存在する。次に、最初のエレメント(26)の最初の
値(24)と2番目のエレメント(30)の2番目の値(28)を比
較して、最初のエレメントと2番目のエレメントの中の
何れの値が大きいかに対応する最初の比較結果を生成す
る工程が存在する。それから、判断ツリー(10)における
複数の位置の中の最初の位置に、最初の比較結果を記憶
する工程が存在する。該複数の位置は、複数のレベルに
対応する。次に、比較リストアレイにおける複数の比較
エレメントの中の最初の比較エレメントを更新する工程
が存在する。各比較エレメントは、複数のレベルの中の
あるレベルに関連する。更新された比較エレメントは、
エレメントキュー(20)において、2番目のエレメント(3
0)が記憶される2番目のキュー位置と、最初のエレメン
ト(26)が記憶される最初のキュー位置に対応する。それ
から、エレメントキュー(20)において2番目のエレメン
ト(30)に隣接する3番目のキュー位置に、3番目の値(3
2)を有する3番目のエレメント(30)を記憶する工程が存
在する。次に、キュー(20)内のエレメント(22)数及び3
番目のエレメント(33)の3番目の値(32)をレジスタに更
新する工程が存在する。それから、最初及び2番目のエ
レメントの中の小さい方の値と、3番目のエレメント(3
3)の3番目の値(32)を比較して、最初及び2番目のエレ
メント並びに3番目のエレメント(33)の中の何れの値が
小さいかに対応する2番目の比較結果を生成する工程が
存在する。次に、判断ツリー(10)における2番目の位置
に2番目の比較結果を記憶する工程が存在する。それか
ら、3番目のエレメント(33)を記憶する3番目のキュー
位置に対応する2番目の比較エレメントを更新する工程
が存在する。次に、エレメントキューにおいて、3番目
のエレメント(33)と隣接する4番目のキュー位置に、4
番目の値(37)を有する4番目のエレメント(35)を記憶す
る工程が存在する。それから、キュー(20)内のエレメン
ト(22)数と、4番目のエレメント(35)の4番目の値(37)
をレジスタに更新する工程が存在する。次に、4番目の
エレメント(35)の4番目の値(37)を、3番目のエレメン
ト(33)と比較して、3番目及び4番目のエレメントのう
ち、小さい方の値に対応する3番目の比較結果を生成す
る工程が存在する。それから、判断ツリー(10)における
3番目の位置に3番目の比較結果を記憶する工程が存在
する。次に、3番目のエレメント(33)及び4番目のエレ
メントの中で最小の3番目の値(32)を、最初のエレメン
ト及び2番目のエレメントの中で最小の値と比較して、
最初、2番目、3番目及び4番目のエレメントの中で最
小の値に対応する4番目の比較結果を生成する工程が存
在する。それから、判断ツリー(10)における2番目の位
置に4番目の比較結果を記憶する工程が存在する。次
に、比較リストを更新する工程が存在する。それから、
エレメントキュー(20)における3番目のエレメント(33)
の3番目の値(32)を新しい値に変更する工程が存在す
る。次に、その新しい値を4番目のエレメント(35)の4
番目の値(37)と比較して、5番目の比較結果を生成する
工程が存在する。それから、判断ツリー(10)における3
番目の位置に5番目の比較結果を記憶する工程が存在す
る。次に、判断ツリー(10)における5番目の比較結果を
最初の比較結果と比較して、6番目の比較結果を得る工
程が存在する。それから、判断ツリー(10)における2番
目の位置に6番目の比較結果を記憶する工程が存在す
る。次に、比較リストを更新する工程が存在する。それ
から、判断ツリー(10)における比較結果を読み出すだけ
で、エレメントキュー(20)において最小値を有するキュ
ー位置を発見する工程が存在する。次に、最小値を得る
工程が存在する。
【0020】比較リストは、アレイ(42)の対応する部分
におけるエレメントの最小値を保持する。新たなエレメ
ントをアレイ(42)に挿入する必要があるとき、エレメン
トをアレイ(42)に挿入する必要があるとき、或いは、エ
レメントをアレイ(42)から削除する必要があるとき、ア
レイ(42)における対応する部分に関するエレメントのこ
れら最小値を有する比較リストによって、そのような挿
入または削除の際にアレイ(42)全体から読み出す必要が
ないという判断ツリーの効果を認識することができる。
実際、アレイ(42)は全く読み出される必要がない。
【0021】エレメントをアレイ(42)に挿入していると
きには、アレイ(42)の該挿入位置と対向関係にある位置
に対応する比較リストの値が、挿入しているエレメント
の値と比較される。もし、挿入されたエレメントの値
が、該挿入位置と対向関係にある位置に対応する比較リ
ストの値よりも小さければ、新たに提供されたエレメン
トが、現在、アレイ(42)における関連する部分に存在す
るエレメントよりも小さい値を有しているという事実を
反映するために、判断ツリーをそれに応じて修正しなけ
ればならない。このような判断ツリーの修正によって、
判断ツリーは、アレイ(42)における多数の部分での他の
エレメントの最小値に関連する新しいエレメントの値に
依存して、広げられ或いは判断ツリーのある部分のみに
限定され、且つ、比較リストにて特定されることができ
る。それから、判断ツリーは、以下の実施例にて説明さ
れるように変更される。
【0022】明確にするために、もし、エレメントがア
レイ(42)の右半分に挿入されているならば、新たなエレ
メントの挿入により、判断ツリーを変更する必要がある
かどうかを決定するために、挿入されているエレメント
の値は、アレイ(42)の左側に対応する比較リストの値と
比較される。アレイ(42)及びこの例に関して、左側は、
エレメントを挿入している右側に対して、アレイ(42)内
の「対向関係にある部分」である。この例は、比較リス
トに関する比較に従って、アレイ(42)における任意の部
分に適用できる。「右」側と「左」側は、常に存在し、
その結果、アレイ(42)に挿入または削除されるエレメン
トに関して「対向関係にある部分」は、常に存在するだ
ろう。
【0023】同様に、エレメントが削除されるときに、
アレイ(42)を読み出す必要性を無くし、エレメントの削
除後、アレイ(42)におけるこれらのエレメントの階層値
(value hierarchy)に反映するように判断ツリーを修
正するために、比較リストが役立つ。エレメントが削除
されるとき、削除されるエレメントの値は、削除される
エレメントの位置と対向関係にある位置に対応する比較
リストの位置におけるエレメントの値と比較される。も
し、削除されるエレメントが比較リストに存在する値を
有しているならば、この値は、比較リストから削除さ
れ、アレイ(42)においてエレメントの削除に関係のある
部分の次に小さい値が、削除される値を置き換える。従
って、判断ツリーは、この変更を反映するように修正さ
れる。もし、アレイ(42)から削除されるエレメントの値
が、アレイ(42)においてエレメントを削除する位置と対
向関係にある位置に対応する比較リストの値よりも大き
いならば、判断ツリーを変更する必要はない。しかしな
がら、もしその後に、例えば、アレイ(42)において削除
されたエレメントの右に位置するエレメントをそれぞれ
移動すること、空いたセルを満たすために左へセルを移
動すること等によって、アレイ(42)が統合される(cons
olidated)ならば、上述した挿入に関する手続き、各エ
レメントに関する手続きが適用される。
【0024】キューに配備されたロード(load)が、判
断ツリー、比較リスト、エレメントアレイ、等と共に、
全てが対応するサイズを有するように収容されるため
に、キューは、非常に大きく形成されることができる。
或いは、キューは、キューの階層の最低レベルが、ソー
トされる実際のエレメントを含むように階層を生成する
ことによって実際に形成され得る。キューの階層におけ
る夫々のキューは、関連する判断ツリー、比較リスト等
を有することができるし、全てのキューに関して単一の
判断ツリー、比較リスト等、または、前記2つの例の組
み合わせを有することもできる。
【0025】アルゴリズムの動作において、アルゴリズ
ムによって、連続するメモリ位置にエレメントが未ソー
トのままで挿入され、エレメントの相対的な順番を表わ
すその他の情報が維持される。この情報は、判断ツリー
と呼ばれる。例によって、このことがより明らかとなる
だろう。
【0026】図3(a)に示されるように、8個の整数
5、7、6、4、1、3、9、及び10が、増加方向に連
続するメモリ位置に配備される場合を考える。
【0027】エレメントは、連続的にソートされて記憶
されてはいない。エレメントの順番は、他の情報、即ち
エレメントA、B、C、D、E、F、Gによって示され
る。これらは、2進数エレメントであり、2進数エレメ
ントとは、2つの値0と1の中から1つを取り得ること
を意味する。これらのエレメントは、そのレベルに応じ
て、キューの異なる部分における情報を含んでいる。レ
ベル2にあるエレメントAは、キューにおける何れ側半
分に最小のエレメントが含まれるかを示している。(A
の値)=1は、最小のエレメントが右半分にあることを
意味する。反対に、(Aの値)=0は、最小のエレメン
トがキューの左半分にあることを意味する。
【0028】レベル1にあるエレメントB、Cは、それ
ぞれ、キューの半分の情報を含む。Bは、キューの左半
分についての情報を含んでおり、一方、Cは、キューの
右半分の情報を含んでいる。B=1は、キューの左半分
における最小のエレメントは、さらにその右半分にある
ことを示し、B=0は、キューの左半分における最小の
エレメントは、さらにその左半分にあることを示す。
【0029】同様に、エレメントD、E、F及びGは、
キューにおいて夫々が関連のある4分の1についての情
報を含む。例えば、Dは、キューの左4分の1に関連す
る。D=1は、その4分の1における最小のエレメント
が右側にあることを意味し、D=0は、その4分の1に
おける最小のエレメントが左側にあることを意味する。
【0030】従って、優先キューにおける実施例の値に
関して、A、B、C、D、E、F及びGの値は、図3の
ように考えられる。
【0031】この構造を用いると、優先キューにおける
最小エレメントのアドレスを発見することは、非常に簡
単である。該アドレスを発見するために、判断ツリー
は、最も高いレベルから読み出される。所定レベルでの
値(0又は1)によって、次のエレメントを読み出す方
向が決定される。値1は、ツリーを下へ読み出すとき
に、右へ移動するべき表示であり、左の値は、左へ移動
することである。これらの規則を用いると、ツリーは、
上記の図において矢印にて示されるように読み出され
る。それゆえ、最小のエレメントは、アドレス100であ
るにちがいない。100でのエレメントは1であり、これ
は、キューにおいて最小である。
【0032】従って、この時点で2つの構造が特定され
た。
【0033】図2(a)にて示されるように、アレイE
は、キューに入れられる値を記憶し、エレメントは、左
から右へ追加される。エレメントがアレイから取り除か
れるときには、取り除かれるエレメントが占有していた
位置は、アレイの右端に位置するエレメントで満たされ
る。これにより、エレメントがアレイに連続的に記憶さ
れることが確実となる。
【0034】図2(b)にて示されるように、DTは、
キュー内のエレメント同士を比較した結果を具える。
【0035】代表的な実施形態では、キューEは、低速
のメインメモリにて保持され、一方、DTは、高速レジ
スタにて保持される。このアルゴリズムの目標は、メイ
ンメモリへのアクセスを最小限にすることである。 ・DT[0][0]=1は、E[0]≧E[1]を意味し、 ・DT[0][0]=0は、E[0]≦E[1]を意味し、 ・DT[0][1]=1は、E[2]≧E[3]を意味する。
【0036】DTの次のレベルにおけるエントリは、E
における4つのエレメントの集団の中のどの位置に最小
のエレメントが存在するかを示している。即ち、 ・DT[1][0]=0は、min(E[0],E[1])≦min(E[2],E[3])を意
味し、 ・DT[1][0]=1は、min(E[0],E[1])≧min(E[2],E[3])を意
味する。 従って、E[0:3]内の最小のエレメントを発見するため
に、DT[1][0]が参照され、もし0であれば、E[0:3]内の
最小のエレメントはE[0:1]内に存在し、もし1であれ
ば、最小のエレメントはE[2:3]内に存在する。
【0037】ここまでの説明では、8(23)個のエレメ
ントを有するキューを取り扱った。アレイには、0(2
進数で000)から7(2進数で111)までのインデックス
が付けられ、判断ツリーには、3つのレベルが保持され
た。このことを、2N個のエレメントを有するキューに対
して一般化すると、以下のようになる。 1.アレイは、サイズが2Nであり、0から2N-1までのイ
ンデックスが付けられる。これをエントリ(E)と呼
ぶ。 2.ワード(word)は、ビット数が2N-1であり、N個の
論理部を有する。ここで、論理部Iのビット数は、2N/2
I+1である。これは、判断ツリー(DT)であり、2次
元(2-D)のアレイとして参照される。ここで、最初のイ
ンデックス(I)は、0からN-1までであり、2番目の
インデックスは、0から2(N-1-I)-1までである。また、
キュー内のエレメント数(NE)とNの値が保持され
る。
【0038】このアルゴリズムの主な目標は、キュー
(E)を保持する低速のメインメモリから読み出す動作
を行なうことなしに、挿入プロセスを達成することであ
る。この目標を実現するために、他に2つの構造が高速
レジスタファイルに保持される必要がある。 ・比較リスト(CL)。エレメント数が2N個であるキュ
ーに関しては、CLは、アレイのサイズがNであり、0
からN-1までのインデックスが付けられる。 ・キューに挿入された最後のエレメントの値(Lで示さ
れる)。キューに2N個のエレメントが存在するとき、C
Lアレイの内容は、 ・CL[N-1]は、アレイEの左半分における最小のエレメ
ントを具え、 ・CL[N-2]は、アレイEの残り右半分の中の更に左半分
における最小のエレメントを具え、 ・CL[N-3]は、アレイEの残り右4分の1の中の更に左
半分における最小のエレメントの値を具え、以下同じよ
うに続く。
【0039】一般に、エレメントCL[i]は、境界(boun
d)E[l]と境界E[h]の中で最小のエレメントの値を具え
る。ここで、下限(lower bound)lは、
【数4】 によって与えられ、上限(upper bound)hは、 l+2i-1=h によって与えられる。前述の実施例における8個のエレ
メントのキューに関するCLは、図4に示される通りで
ある。
【0040】もし、上記実施例が8個ではなく5個のエ
レメントを有していれば、NE=5である。l及びhに関す
る上記の説明を用いると、CL[2]の範囲はl=0、h=3であ
り、CL[1]の範囲はl=0、h=1であり、CL[0]の範囲はl=
3、h=3である。従って、CL[2]は、E[0:3]の最小値であ
る 4であり、CL[1]は、E[0:1]の最小値である5であ
り、CL[0]は、E[3:3]の最小値である4である。
【0041】エレメントが、アレイにおける連続するメ
モリ位置に挿入されるとき、CLの中の唯1つのエレメ
ントが夫々の挿入後に更新される必要がある。CLにお
いて、更新されるべきエレメントのレベルは、以下に依
存する。 ・アレイにおいて、挿入が発生すべきアドレスI ・挿入が発生する前のアドレス(I-1)
【0042】(挿入の準備を整えるために、)挿入アド
レスが1毎に増分されるとき、アドレスにおける唯1つ
のビット位置が0から1に変更されることに注目。この
0から1への変更が起こるレベルは、更新されなければ
ならないCLレベルに対応する。8−エレメントアレイ
に基づく幾つかの例によって、このことが明らかにされ
るであろう。 ・アドレス101に挿入するとき、アドレスは、100から10
1に増分される。アドレスにおけるレベル0のビット
は、0から1に変更される。従って、CL[0]を更新しな
ければならない。 ・アドレス100に挿入するとき、アドレスは、011から10
0に増分される。アドレスにおけるレベル2のビット
は、0から1に変更される。従って、CL[2]を更新しな
ければならない。
【0043】CLビットの更新に加えて、DTもまた、
新しいエレメントがキューに挿入される度毎に更新され
る必要がある。このアルゴリズムの目標に会うように、
メインメモリにあるどのキューエレメントも読み出すこ
となしに、CLとDTの両方を更新できる必要がある。
【0044】図5〜図14は、エレメントをキューに挿
入した後のCLビット及びDTビットの状態を示してい
る。前記の例にて使用された同じエレメントが使用され
る。DT及びNEの初期値は0であり、CL及びLの初
期値は、(Xで示されるが、)重要でない。
【0045】ステップ−0:図5にて示されるように、
キューの初期状態である。
【0046】ステップ−1:図6にて示されるように、
最初のエレメント5をキューに書き込む。
【0047】最初のエレメントが書き込まれるとき、C
LとDTは何れも更新されず、Lは5に更新され、NE
は、1に増分される。
【0048】ステップ−2:図7にて示されるように、
2番目のエレメント7をキューに書き込む。
【0049】2番目のエレメントは、メモリ位置001に
書き込まれる。アドレスビット0が0から1に変更され
たから、CL[0]を更新しなければならない。CL[0]は、常
に、最新の挿入が行われる前のLの値に更新される。こ
のことから、CL[0]=5となる。対応するDTは、7を挿
入前のLと比較することによって更新される。7>5で
あるから、DT[0][0]は0のままである。最後に、Lは7
に更新され、NEは増分される。
【0050】ステップ3:図8にて示されるように、3
番目のエレメント6をキューに書き込む。
【0051】3番目のエレメントは、メモリ位置010に
書き込まれる。アドレスビット1が0から1に変更され
たから、CL[1]は、以下の規則を用いて更新される必要
がある。 CL[i] = min (CL[i-1], CL[i-2],,. CL[0], L)
【0052】このことを、CLアレイ内の値と比較する
ことなく行なうために、DTは、DTに関するパージン
グルール(parsing rule)を用いて、パージングがDT[1]
[0]から開始される。もし、DTのレベルiにおいて、
0が存在するならば、CL[1]は、CL[i]で更新される。
【0053】この実施例では、iは、値0しか取らな
い。しかしながら、このことは、CL[j]を更新する一般
的なルールを示している。DTのパージングを、DT[j]
[x](自身を除く(exclusive))から出発して、レベルi
でのDTに0が存在するまで行なうことによって、CL
[j]は更新される。次に、CL[j]には、CL[i]の値が割り
当てられて、処理が終了する。もし、DTが最後までパ
ージングしても、0が発見されなければ、CL[j]には、
Lの値が割り当てられる。この実施例では、0は、DT
[0][0]にて発見される。従って、CL[l]は、CL[0]と同じ
5に更新される。
【0054】DT[j][x]を更新するルールは、CL[j]を更
新するルールと同じである。DTをパージングしてレベ
ルiにて0が発見されると、CL[i]は挿入されるエレメ
ント(eと呼ぶ)と比較される。もし、e<(CL[i]の
エレメント)であれば、DT[i][x]は1であり、そうでな
ければ0である。もし、DTをパージングしても0が発
見されなければ、eはLと比較される。もしe<Lであ
れば、DT[j][x]は1であり、そうでなければ0である。
【0055】この実施例では、0はDT[0][0]に発見され
る。従って、追加されているエレメント6は、(DT[0]
[0]のエレメント)5と比較される。6>5であること
から、DT[1][0]は変更されない。最後に、Lは6に更新
されて、NEは増分される。
【0056】ステップ4:図9にて示されるように、4
番目のエレメント4をキューに書き込む。
【0057】4番目のエレメントは、メモリ位置011に
書き込まれる。アドレスビット0が0から1に変更され
ることから、CL[0]を更新する必要がある。通常、CL[0]
は、最新の挿入が行われる前のLの値に更新される。こ
こでは、CL[0]=6となる。対応するDTは、挿入前のL
と4を比較することによって更新される。4<6である
から、DT[0][1]は1となる。また、DT[1][0]を更新する
必要がある。これをチェックするには、通常、DTのパ
ージングを、0が発見されるまで行われる。ここでは、
0はDT[0][0]にて発見される。従って、挿入されるエレ
メントをCL[0]と比較する。4<5であるから、DT[1]
[0]は1となる。最後に、Lが4に更新され、NEが増
分される。
【0058】ステップ5:図10にて示されるように、
5番目のエレメント1をキューに書き込む。
【0059】5番目のエレメントは、メモリ位置100に
書き込まれる。アドレスビット2が0から1に変更され
ることから、CL[2]を更新する必要がある。DTに関す
るパージングルールを用いて、DT[2][0](自身を除外)
から開始されると、0は最後まで発見されない。従っ
て、CL[2]は、Lの値4で更新される。また、0が発見
されないから、Lの値は、挿入されたエレメント(該エ
レメントは1である。)と比較される。1<4であるか
ら、DT[2][0]は1となる。最後に、Lが1に更新され、
NEが増分される。
【0060】エレメントを挿入するプロセスは、以下の
工程に概括される。 ・アドレスの増分により、アドレスのどのビット位置
(pと呼ぶ)が、0から1となるかを決定する。 ・DTにおいてDT[p][x](自身を除外)から開始して0
を探すことにより、CL[p]を更新する。もし、DTのレ
ベルqにて0が発見されれば、CL[p] = CL[q]とする。
そうでなければ、CL[p] = Lとする。 ・DTの更新を最も高いレベルから始める。DTを更新
するルールは、以下の通りである。即ち、DT[j][x]を更
新するルールは、CL[p]を更新するルールと同じであ
る。DTをパージングして0がレベルiにて発見される
と、CL[i]は、挿入されるエレメント(eと呼ぶ)と比
較される。もし、e<(CL[i]のエレメント)であれ
ば、DT[i][x]は1となり、そうでなければ、0となる。
もし、DTをパージングして0が発見されなければ、e
は、Lと比較される。もしe<Lであれば、DT[j][x]は
1となり、そうでなければ、0となる。 ・挿入されるエントリの値にLを更新する。 ・エントリを挿入する。
【0061】同様に、他の3つのエレメントがキューに
追加される。夫々のさらなるステップ後の状態は、以後
の図に示される。
【0062】ステップ6:図11にて示されるように、
6番目のエレメント3をキューに書き込む。
【0063】ステップ7:図12にて示されるように、
7番目のエレメント9をキューに書き込む。
【0064】ステップ8:図13にて示されるように、
8番目のエレメント10をキューに書き込む。
【0065】キュー内のエレメントの値を変更すること
によって、2つのステップが要求される。 ・Eのエントリは、新たな値に変更される。 ・DTに対して任意の必要とされる変更が成される。
【0066】エレメントを変更すると、DTのエントリ
は、不正確となり、更新される必要があり得る。図14
は、変更されるエントリを示している。
【0067】Eにおける(位置Jの)エントリが変更さ
れたとき、更新される必要があり得るDTのエントリ
は、0<=I<Nを満たす全てのIに関して、 DT[I][J>>(I+
1)]である。J>>(I+1)という表記は、以下のことを意味
する。 ・Jを2進数表記で開始する。 ・左からゼロにて満たされる(I+1)毎に右へシフトす
る。
【0068】例えば、もし、Jが11(2進数で1011)で
あり、Iが2であるならば、Jは、右へ3回シフトされ
て、0001となる必要がある。上述の図においてエレメン
トを101にて変更するときには、DT[0][2]、DT[1][1]、
及びDT[2][0]が変更される結果となり得る。
【0069】DTの各エントリに関する正確な値を決め
るために、DT内のあるエントリが示すE内のエントリ
が比較される。例えば、DT[2][0]の正確な値を決めるに
は、Eの低い方半分(エレメントE[0-3])にて最小のエ
レメントが、Eの高い方半分(エレメントE[4-7])にて
最小のエレメントと比較されることが要求される。E[5]
の変更後、E[0-3]内の最小のエレメントは、DTから決
定されることができるが、E[4-7]内の最小のエレメント
の特定は、DT[1][2]のもしかすると新たな値によって決
定され、次に、DT[0][3]のもしかすると新たな値によっ
て決定されるであろう。もし、どの点においても、この
プロセスによって、有効値(E[J])と無効値(E[I]、こ
こで1>=NEである)の間で比較されることになるなら
ば、その比較は、E[J] < E[I]となる。以下で参照する
ように、これにより、エレメントの挿入と削除は、エレ
メントが変更される簡単かつ特別なケースとなる。
【0070】この動作は、最悪の場合に、N回の読出し
と1回の書込みを必要とし、該最悪の場合は、他のキュ
ーと同じ順番である場合である。しかしながら、最悪の
場合でも実際の読出し/書込み数は少ない。さらに、読
み出される必要がある全てのエレメントの位置をDTか
ら決定できることから、次に読み出すべきエレメントを
決定し得るために、1又は2以上のエントリを読み出し
て比較するための待ち時間が必要ない。
【0071】図15は、8個のエレメントからなり、E
[4]に位置するエレメントが最小値1を有するキューを
示している。これは、挿入を説明するために用いられた
実施例と同じである。
【0072】もし、最小のエレメントを1から12に増や
すことを望むならば、DTにおいてE[4]に対するパスに
沿うエントリ(図において丸で囲まれたエントリであ
る)を更新する必要があり、CLを更新する必要がある
だろう。エントリDT[0][2](丸で囲まれた3つのエント
リの内の最下部)を更新するには、値12をE[5]の値と比
較する必要がある。12>3であるから、DT[0][2]は1に
セットされ、図16に示される新たなパスが生成され
る。
【0073】次に、DT[1][1]の値を更新する必要があ
る。これは、今までに見つかった最小のエレメント(現
在は3)を取って、それを、E[6]及びE[7]の中の小さい
方と比較することによって行われる。E[6]及びE[7]の中
の小さい方は、DT[0][3]の現在値を参照することによっ
て、直ちに決定される。この場合、DT[0][3]=0である
から、E[6]=9の方が小さい。3<9であるから、DT
[1][1]は0で変更されず、パスも以前と変更されない。
この時点で、キューの右半分における最小のエレメント
が(E[5] = 3にて)見つかった。
【0074】さて、DT[2][0]を更新するために、今まで
の最小のエレメント(E[5]=3)が、D[2][0]を反転し
て(本実施例では0にして)構成されたDT’から発見
された最小のエレメントE[3]=4と比較される。4>3で
あるから、DT[2][0]は1のままである。
【0075】また、E内の最小エレメントは、CL又は
Lastにおける少なくとも1つ(もしかすると2つ以上)
の位置にも存在するから、最小エレメントが更新される
と、その結果、CL及び/又はLastも更新される。2つ
の特別な場合が存在する。変更前のEにおける最小のエ
レメントが記憶されるインデックスをMIと呼ぶことに
する。もしMI=NE-1ならば、Lastは、E[MI]内の新たな値
に変更される。もし、NE-1が奇数であるならば、CL[0]
は、E[MI]内の新たな値に更新される。もし、MI=NE-2で
あり、NE-1が偶数であるならば、CL[0]は、更新され
る。整数計算(integer math)の場合、もし、 (((NE - 1) - 2i)/2i)×2i= ((MI)/2i)×2i であれば、CL内のエントリCL[i]を更新する必要があ
る。
【0076】エレメントをキューから削除することは、
エレメントを変更する場合を簡単にした特別な場合であ
る。この理由は、エレメントが優先度順に保持されては
いないため、アレイの中間にあるエレメントが削除され
て、アレイの一番右にあるエレメントによって置き換え
られ得るからである。また、NEを減分する必要があ
る。
【0077】DT及びCLを変更することは、キューに
おけるエレメントを変更することと必然的に同じであ
る。
【0078】どのような装置(32)を使用できるかについ
ての例と、該例に関する装置(32)と同じ目的に適合しよ
うとする他の技術に関しては、文献を参照["Comparison
ofRate-Based service disciplines" by H. Zhang and
S. Keshav, In Proceedings of ACM SIGC0MM 91]。
この参照を以って本願への記載加入とする。
【0079】エレメントをソートする方法、又はエレメ
ント若しくは本願にて説明される装置(32)若しくは優先
キューを操作する方法は、本質的には、スケジューラを
必要とする何れのコンピュータシステムにおいても使用
されることができる。如何に速いパケットを装置(22)と
共に使用できるかは、挿入によって限定されることか
ら、この挿入プロセスを速めることができる。例えば、
本願にて説明される技術を、非同期転送モード(AT
M)への応用に使用できる。例えば、ATMネットワー
ク上にパケット又はセルが伝送されるとき、該セルは、
スイッチ、又は、ある形態若しくは機能を有するサーバ
若しくはプロセッサに到着し得る(全く同様に、ネット
ワークは、デバイス間のネットワークとは対照的に、所
定のデバイスの内部にあってもよい)。もし、ネットワ
ーク上のトラフィックが多ければ、スイッチがサービス
を提供できる以上のセルがスイッチからのサービスを要
求する時があり得ることから、パケット又はセルは、ス
イッチにおけるサービスが利用可能となるまで、キュー
に記憶される必要がある。本願にて説明される方法、装
置(32)又は優先キューが有する機能としては、セルを受
け取り、或いは、セルがサービスを受けるべき時に関す
る値を(例えば、別のメモリに記憶された実際のセルに
対するポインタの値と共に)受け取り、さらに、サービ
スの順番が回ってくるまでそれらを保持することが挙げ
られる。比較リスト或いは判断ツリー、又はその両方に
よって、アレイにある値から所望のエレメントを、上述
のプロセスを通じて素早く発見することができる。
【0080】エレメントの値は、公知の装置によって、
対応する信号に変換され、記憶され、又はオペレートさ
れることができる。
【0081】ATMの詳細な説明や、関連するアーキテ
クチャー、装置、デザイン、等は、文献の中に見出すこ
とができる["Gigabit Networking" by Craig Partridg
e,Addison-Wesley, Reading, MA 1993、及び、"As
ynchronous Transfer Mode" by Martin de Prycker, El
lis Horwood, New York, Ltd., 2nd Edition, 1993]。
これらの文献の参照を以って、本願への記載加入とす
る。
【0082】
【優先キューのアルゴリズムに関する「判断キューアル
ゴリズム」の実行】図17〜図31のコードは、判断キ
ューアルゴリズムの基本的な機能性(functionality)を
示しており、該コードは、「最適化された」ソフトウェ
ア又はハードウエアの実施例を意図したものではなく、
単に、アルゴリズムにおける全ての基本的な動作の例示
を意図するのみである。
【0083】コードの大部分は、任意サイズのキューを
操作するために書かれ、様々なサイズのサブキューから
形成されているが、そのような一般化は例示のためであ
り、公知範囲のキューサイズ、または様々なハードウェ
アの能力で適用する場合には、不必要な一般化が除去さ
れることは明らかであろう。
【0084】コードは、判断キューの階層を生成するこ
とによって、任意の大きさのキューを構築しており、該
階層の最低レベルは、ソートされる実際のエレメントを
具えており、(優先キューが最小のエレメントを選択す
るように設計されていると仮定すると、)各キューの最
低レベルの最小のエレメントは、次のレベルの階層にあ
るキューに入れられる。各キューが2^N個のエレメント
を記憶すると仮定すると、2つの階層レベルを有するキ
ューは、2^N×2^N個のエレメントを記憶するだろう。異
なる階層レベルでのキューは、同数のエントリを有する
必要がないことに注意。実際、マルチ階層レベルのメモ
リを有するシステムでは、最高レベルのキューのサイズ
は、様々なレベルでのメモリサイズに対応するように選
択され得る。汎用プロセッサシステムでは、上部レベル
のキューのサイズは、オンチップキャッシュの内部に適
合するように、且つ/又はシステムのワードサイズに基
づいて選択され得る。例えば、このコードは、32ビット
システム用に書かれ、32個のエレメントからなるキュー
を使用しており、該コードにより、各キューに関する基
本データ構造の1つである判断ツリーは、アクセス及び
操作を容易にするために、1ワードに適合し得る。ハー
ドウェアでの実行においては、すでに存在するアーキテ
クチャに適合したサイズよりはむしろアプリケーション
に適合したサイズを選択され得る。同じ階層レベルでサ
イズの異なるキューを有する明らかな例は、記憶される
べきエレメント数が2の累乗でなければ、あるレベルで
の右端のキュー(左から右へ追加されているエレメン
ト)が不完全であることである。実際には、一般にキュ
ーのサイズが2の累乗であること、さらには、判断ツリ
ーにおける各分岐点は2方向分岐であることさえ要求さ
れない。2方向分岐であり、それ故にサイズが2の累乗
であるキューは、構造及び制御ロジックが非常に規則正
しく、多くの問題を簡略化する。さらには、このコード
が各レベルに関する全てのデータ構造を反復する場合、
これは論理的な複写にすぎないことに注意すべきであ
る。なぜなら、例えば、10の階層レベルと1024のエレメ
ントを有する1つのキューと、5の階層レベルと32のエ
レメントを有する2つのキューは、最初のキューの中の
1つの判断ツリーにおけるビットの総数、または、2番
目のケースにおいて、(31+32×31)ビットの判断ツリ
ーを加えた33個のキュー(32個のキューの中の1個の
キュー、及び32個のエレメントからなる32個のキュー)
におけるビットの総数が同じ(1023=2^10−1)である
からである。両方とも10エレメントの比較リストを有す
るであろう(このコードでは、各階層は、自身の最終エ
レメントを有するけれども、最下層を除く任意の階層の
最終エレメントが比較リストにて発見されることから、
最終エレメントを複写する必要がない)。従って、実際
に複写される構造は、エレメントアレイであるけれど
も、上部階層レベルでは、必要とあれば多数の判断ツリ
ーを最下層レベルの全方向に降下できることから、この
構造は基本的にはまさしくキャッシュである。
【0085】一般に、このアルゴリズムにて使用される
3つのデータ構造(エレメントアレイ、比較リスト、判
断ツリー)は、同じサイズの階層に分けられる必要がな
い。例えば、32ビットシステムにおいて、2048ワードの
(高速)内部メモリと32Kワードの(低速)メインメモ
リを用いて実行される32Kエレメントを保持するジーン
(gene)では、オンチップレジスタに記憶される1つの
比較リストが15個のエントリ(2^15=32K)を有し、エ
レメントアレイの2つの階層のうち、1つが内部キャッ
シュに1024個のエレメントを有し、最下層が外部メモリ
に32L個のエレメントを有し、判断ツリーの3階層は、
31ビット、32×31ビット及び1024×31ビットからなり、
レジスタと内部メモリのその他1024ワードとに記憶され
る(判断ツリーの全ビット数が1024×31−1であるか
ら、判断ツリーは、内部メモリの残りの部分に全て適合
できるが、さほど効率よくアクセスされないであろ
う)。
【0086】判断ツリーの使用により、Find_Min_Eleme
ntとChange_Min_elementの動作が非常に効率よく計算さ
れることが見込まれる。比較リストにより、Insert_Ele
mentとDelete_Minの動作が効率よく計算されることが見
込まれる。もし、InsertとDeleteのスピードが重要でな
いならば、比較リストを省略できる。多数の更新方針
が、多数のパフォーマンスの程度を与える比較リストと
共に使用され得ることに注目すべきである。
【0087】
【発明の効果】上記のように、装置に判断ツリーDTを
具えて上記アルゴリズムを実行することにより、優先キ
ューにおいてエレメントを並べ変えることなく優先度の
最も高いエレメントを特定できる。さらに、装置に比較
リストCL、並びに優先キューにおけるエレメント数N
E及び最終エレメントの値Lを具えて上記アルゴリズム
を実行することにより、優先キューにおいて優先度の最
も高いエレメントの値を、優先キューから読み出すこと
なしに特定できる。前記判断ツリーDT及び比較リスト
CLは、上記のように、必要なサイズが小さくてすむ。
従って、判断ツリーDT及び比較リストCL、さらには
優先キューにおけるエレメント数NE及び最終エレメン
トの値Lを高速レジスタに保持することにより、ソート
を高速に実行できる。
【0088】なお、
【数5】 における括弧は、括弧内の式を計算した値に関して、小
数部分を切り捨てるものであると解してもよい。
【0089】本発明は、例示の目的のために上記実施形
態にて詳細に記載されたが、その細部は、単に前記例示
目的のためであり、特許請求の範囲に記載されるような
もの以外にも、本発明の精神及び範囲から離れることな
く、当該分野の専門家により、変形を成し得ると、理解
されるべきである。
【図面の簡単な説明】
【図1】本発明のソート装置を示す概略図である。
【図2】(a)はアレイEを示すブロック図であり、
(b)は判断ツリーDTを示すブロック図である。
【図3】(a)は、連続するメモリ位置を増やしたとき
に、優先キューに記憶されたエレメントを示すブロック
図であり、(b)は、(a)の例に関して、判断ツリー
におけるエレメントの値を示すブロック図である。
【図4】アレイCLにおけるエレメントの範囲と意味を
示すブロック図である。
【図5】キューにエレメントを挿入することに関する工
程0を示すブロック図であり、アレイCL、アレイDT
及びアレイNEの状態を示している。
【図6】エレメントの挿入に関する工程1を示すブロッ
ク図である。
【図7】エレメントの挿入に関する工程2を示すブロッ
ク図である。
【図8】エレメントの挿入に関する工程3を示すブロッ
ク図である。
【図9】エレメントの挿入に関する工程4を示すブロッ
ク図である。
【図10】エレメントの挿入に関する工程5を示すブロ
ック図である。
【図11】エレメントの挿入に関する工程6を示すブロ
ック図である。
【図12】エレメントの挿入に関する工程7を示すブロ
ック図である。
【図13】エレメントの挿入に関する工程8を示すブロ
ック図である。
【図14】位置(101)のエレメントを変更するときに
キーエレメントが変更され得ることを示すブロック図で
ある。
【図15】E(4)に配置され、且つ1の値を有する最
小エレメントを含む8つのエレメントを有するキューを
示すブロック図である。
【図16】最小エレメントを1から12に増加したことに
適応するためにDTが変更されたキューを示すブロック
図である。
【図17】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図18】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図19】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図20】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図21】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図22】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図23】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図24】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図25】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図26】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図27】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図28】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図29】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図30】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【図31】本実施形態に関するプログラムリスト(プロ
グラム名:pq_comm2.c)の一部であり、該プログラムリ
ストは図17から図31まで連続して記載されている。
【符号の説明】
(10) 判断ツリー (20) キュー (22) エレメント (32) 装置 (36) 第1メモリ (38) 第2メモリ (40) コントローラ (42) アレイ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも最初のレベルを具える判断ツ
    リーを形成する工程であって、前記レベルは、少なくと
    も最初のエントリを有しており、該エントリは、キュー
    を満たす値に対応する第1結果または第2結果の何れか
    を有しており;判断ツリーの最初のレベルの最初のエン
    トリにおける結果を読み出す工程;及び最初のエントリ
    における結果に対応する値をキューから選択する工程;
    を含むソートを行なう方法。
  2. 【請求項2】 N個のレベルを具える判断ツリーを形成
    する工程であって、ここで、N≧1、Nは、整数であ
    り、且つ2N個のエレメントを有するキューに対応してお
    り、各エレメントは、値を有しており、キューを満たす
    と、各レベルLは、2L個のエントリを有し、ここで、L
    ≧0、且つ、Lは整数であり、各エントリは、キューに
    おける値に対応する第1結果または第2結果の何れかを
    有しており;第0レベルのエントリにおける結果を読み
    出す工程;もしあれば、隣接する大きいレベルのエント
    リにおける結果が、前の小さいレベルにて読み出された
    結果に依存して読み出される工程;及び最大レベル内の
    エントリにおける結果に対応する値をキューから選択す
    る工程;を含むソートを行なう方法。
  3. 【請求項3】 L≧1であり、隣接する大きいレベルの
    エントリにおける結果を読み出す工程は、第0レベルの
    エントリにおける結果に依存して、第1レベルのエント
    リを読み出す工程を含み;且つ、選択する工程は、第1
    レベルのエントリにて読み出された結果に対応する値を
    キューから選択する工程を含む、請求項2に記載の方
    法。
  4. 【請求項4】 形成する工程は、キューの最初のエレメ
    ントに最初の値を書き込む工程を含んでおり;キューの
    2番目のエレメントに2番目の値を書き込む工程;最初
    の値と2番目の値を比較する工程;最初の値が2番目の
    値よりも大きいか或いは小さいかに依存して、対応する
    エレメントに関する第1レベルの対応するエントリに、
    第1結果または第2結果を書き込む工程;2番目の値に
    関する3番目の値と、対応するエントリとを書き込み、
    比較し且つ書き込む工程を繰り返す工程;及び最初の値
    と2番目の値の中の最小値を3番目の値と比較し、且
    つ、3番目の値が2番目の値よりも大きいか或いは小さ
    いかに依存して、それぞれ対応するエレメントに関し
    て、第0レベルの対応するエントリに第1結果または第
    2結果を書き込む工程;を含む、請求項3に記載の方
    法。
  5. 【請求項5】 サイズが2Nであり、エレメントが記憶さ
    れるアレイEであって、ここで、N≧1且つNは整数で
    あり、アレイEにおけるエレメントには、0から2N-1ま
    でのインデックスが付けられており;アレイEに記憶さ
    れるエレメント数に等しい値NEを保持する第1メモ
    リ;ビット数が2N-1であり、アレイEにおけるエレメン
    トの相対的な順番を示す判断ツリーであって、ここで、
    判断ツリーの部分Iにおけるビット数は、2N/2I+1であ
    り;サイズがNである比較リストアレイCLであって、
    ここで、CL[i]には、E[l]及びE[h]内で小さいエレメン
    トの値が入り、ここで: 【数1】 且つ、 l+2−1=h であり;アレイにおける最終エレメントの値に等しい値
    Lを保持する第2メモリ;及びアレイE内の連続するメ
    モリ位置に、未ソートのままでエレメントを挿入し、ア
    レイEにおけるエレメントの相対的な順番を示す判断ツ
    リーを一部修正し、CL[i]には、E[l]及びE[h]内で
    小さいエレメントの値が入るようにアレイCLを一部修
    正し、アレイEに追加される夫々の新たなエレメントの
    値で値Lを更新し、且つ、夫々の新たなエレメントをア
    レイEに追加するときに値NEを更新するコントロー
    ラ;を具えるソート装置。
  6. 【請求項6】 エレメントを記憶するメモリ;及びメモ
    リに接続され、メモリ読出しを行なうこと無く且つ一定
    数のメモリ書込みを行なって、メモリにおける最小のエ
    レメントを特定できるようにメモリにエレメントを記憶
    するコントローラ;を具える優先キュー。
  7. 【請求項7】 メモリは、判断ツリーと比較リストを有
    するレジスタファイルを含んでいる、請求項6に記載の
    優先キュー。
  8. 【請求項8】 エレメントを操作する方法であって、以
    下の工程を含む:2N(N≧2、且つNは整数である。)
    個のエレメントを記憶するサイズを有するエレメントキ
    ューにおける最初のキュー位置に、ある値を有する最初
    のエレメントを記憶する工程;レジスタにおいて、キュ
    ー内のエレメント数及び最初のエレメントの値を更新す
    る工程;エレメントキューにおいて最初のエレメントと
    隣接する2番目のキュー位置に、ある値を有する2番目
    のエレメントを記憶する工程;レジスタにおいて、キュ
    ー内のエレメント数及び2番目のエレメントの値を更新
    する工程;最初のエレメントの値と2番目のエレメント
    の値を比較して、最初のエレメントと2番目のエレメン
    トの中の何れの値が大きいかに対応する最初の比較結果
    を生成する工程;判断ツリーにおける複数の位置の中の
    最初の位置に、最初の比較結果を記憶する工程であっ
    て、該複数の位置は、複数のレベルに対応している;比
    較リストアレイにおける複数の比較エレメントの中の最
    初の比較エレメントを更新する工程であって、各比較エ
    レメントは、複数のレベルの中のあるレベルに関連して
    おり、更新された比較エレメントは、エレメントキュー
    において、2番目のエレメントが記憶される2番目のキ
    ュー位置と、最初のエレメントが記憶される最初のキュ
    ー位置に対応している;エレメントキューにおいて、2
    番目のエレメントに隣接する3番目のキュー位置に、あ
    る値を有する3番目のエレメントを記憶する工程;レジ
    スタにおいて、キュー内のエレメント数及び3番目のエ
    レメントの値を更新する工程;最初及び2番目のエレメ
    ントのうちの小さい方の値を、3番目のエレメントの値
    と比較して、最初及び2番目のエレメント並びに3番目
    のエレメントの中の何れの値が小さいかに対応する2番
    目の比較結果を生成する工程;判断ツリーの中の2番目
    の位置に2番目の比較結果を記憶する工程;3番目のエ
    レメントを記憶する3番目のキュー位置に対応する2番
    目の比較エレメントを更新する工程;エレメントキュー
    において、3番目のエレメントと隣接する4番目のキュ
    ー位置に、ある値を有する4番目のエレメントを記憶す
    る工程;レジスタにおいて、キュー内のエレメント数及
    び4番目のエレメントの値を更新する工程;3番目のエ
    レメントと4番目のエレメントの値を比較して、3番目
    及び4番目のエレメントの何れの値が小さいかに対応す
    る3番目の比較結果を生成する工程;判断ツリーの中の
    3番目の位置に3番目の比較結果を記憶する工程;3番
    目のエレメント及び4番目のエレメントの中で最小の値
    を、最初のエレメント及び2番目のエレメントの中で最
    小の値と比較して、最初、2番目、3番目及び4番目の
    エレメントの中の何れの値が最小であるかに相当する4
    番目の比較結果を生成する工程;判断ツリーにおける2
    番目の位置に4番目の比較結果を記憶する工程;比較リ
    ストを更新する工程;エレメントキューにおける3番目
    のエレメントの値を新たな値に変更する工程;該新たな
    値を4番目のエレメントの値と比較して、5番目の比較
    結果を生成する工程;判断ツリーにおける3番目の位置
    に5番目の比較結果を記憶する工程;判断ツリーにおけ
    る5番目の比較結果と最初の比較結果を比較して、6番
    目の比較結果を得る工程;判断ツリーにおける2番目の
    位置に6番目の比較結果を記憶する工程;比較リストを
    更新する工程;判断ツリーにおける比較結果を読み出す
    ことのみによって、エレメントキューにおいて最小値を
    有するキュー位置を発見する工程;及び最小値を得る工
    程。
JP8307836A 1995-11-20 1996-11-19 エレメントをソートする方法および装置 Pending JPH09179743A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/559610 1995-11-20
US08/559,610 US5870584A (en) 1995-09-20 1995-11-20 Method and apparatus for sorting elements

Publications (1)

Publication Number Publication Date
JPH09179743A true JPH09179743A (ja) 1997-07-11

Family

ID=24234265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8307836A Pending JPH09179743A (ja) 1995-11-20 1996-11-19 エレメントをソートする方法および装置

Country Status (4)

Country Link
US (1) US5870584A (ja)
EP (1) EP0774711B1 (ja)
JP (1) JPH09179743A (ja)
DE (1) DE69629540T2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208764B1 (en) * 1998-08-20 2001-03-27 Eastman Kodak Company Rank filter using a linked-list to link elements in a memory array in numerical order
US6490629B1 (en) * 1998-10-13 2002-12-03 Genuity Inc. System and method for scheduling the transmission of packet objects having quality of service requirements
US6879996B1 (en) 2000-09-13 2005-04-12 Edward W. Laves Method and apparatus for displaying personal digital assistant synchronization data using primary and subordinate data fields
US8224858B2 (en) * 2009-05-04 2012-07-17 Engage Selling Solutions Inc. Methods and system for information storage enabling fast information retrieval
US8812516B2 (en) 2011-10-18 2014-08-19 Qualcomm Incorporated Determining top N or bottom N data values and positions
US20140281116A1 (en) 2013-03-15 2014-09-18 Soft Machines, Inc. Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits
US9436476B2 (en) 2013-03-15 2016-09-06 Soft Machines Inc. Method and apparatus for sorting elements in hardware structures
US9627038B2 (en) 2013-03-15 2017-04-18 Intel Corporation Multiport memory cell having improved density area
US9582322B2 (en) 2013-03-15 2017-02-28 Soft Machines Inc. Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping
JP6056576B2 (ja) * 2013-03-18 2017-01-11 富士通株式会社 割り込み要因を特定する方法及び装置
US20180197427A9 (en) * 2014-02-12 2018-07-12 Pearson Education, Inc. Dynamic content manipulation engine
US9805035B2 (en) * 2014-03-13 2017-10-31 Shutterstock, Inc. Systems and methods for multimedia image clustering
JP2017516228A (ja) 2014-05-12 2017-06-15 インテル・コーポレーション 自己書き換えコードのハードウェアサポートを提供する方法及び装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8531396D0 (en) * 1985-12-20 1986-02-05 Gersan Ets Sorting
US4989257A (en) * 1987-03-13 1991-01-29 Gtx Corporation Method and apparatus for generating size and orientation invariant shape features
US4987539A (en) * 1987-08-05 1991-01-22 Stanford University Apparatus and method for multidimensional characterization of objects in real time
US4873687A (en) * 1987-10-05 1989-10-10 Ibm Corporation Failing resource manager in a multiplex communication system
US4899333A (en) * 1988-03-31 1990-02-06 American Telephone And Telegraph Company At&T Bell Laboratories Architecture of the control of a high performance packet switching distribution network
US4893302A (en) * 1988-03-31 1990-01-09 American Telephone And Telegraph Company, At&T Bell Laboratories Arrangement for switching concentrated telecommunications packet traffic
US4958341A (en) * 1988-03-31 1990-09-18 At&T Bell Laboratories Integrated packetized voice and data switching system
US5130983A (en) * 1990-03-27 1992-07-14 Heffner Iii Horace W Method of polling to determine service needs and the like

Also Published As

Publication number Publication date
EP0774711A2 (en) 1997-05-21
DE69629540T2 (de) 2004-06-24
EP0774711B1 (en) 2003-08-20
EP0774711A3 (ja) 1997-06-11
US5870584A (en) 1999-02-09
DE69629540D1 (de) 2003-09-25

Similar Documents

Publication Publication Date Title
Demaine Cache-oblivious algorithms and data structures
US6411957B1 (en) System and method of organizing nodes within a tree structure
EP0772836B1 (en) A method for storing and retrieving data and a memory arrangement
US5487164A (en) Distribution-based replacement selection sorting system
Bender et al. Cache-oblivious B-trees
JP3771271B2 (ja) コンパクト0完全木における順序付けられたキーの集まりの記憶と検索のための装置及び方法
JPH09179743A (ja) エレメントをソートする方法および装置
WO1998041933A1 (en) Method for implementing an associative memory based on a digital trie structure
US20030225974A1 (en) Method and apparatus for improving the efficiency of cache memories using chained metrics
EP0970430A1 (en) Method for implementing an associative memory based on a digital trie structure
US7096235B2 (en) Computer implemented compact 0-complete tree dynamic storage structure and method of processing stored data
CA2237276C (en) Binary-tree data element sorting device and atm spacer comprising such a device
EP1327194A2 (en) A data structure, memory allocator and memory management system
JP2675958B2 (ja) 情報検索用計算機システム及びその記憶装置の動作方法
CA2439243C (en) Organising data in a database
WO1999046676A2 (en) Data conversion hardware support
Andersson et al. Approximate indexed lists
Pagh Basic external memory data structures
KR102371347B1 (ko) 한 세트의 아이템 하나씩 선택하기
Gallivan et al. MCSPARSE: A parallel sparse unsymmetric linear system solver
Chan et al. Parallel implementation of the trie structure
CN111813540A (zh) 一种基于图划分的tcam的分配方法
Andersson et al. On-line approximate list indexing with applications
Shishibori et al. Improvement of binary digital search trees using hierarchical structures
Wung Experimental Implementation for Prefix B-tree and Associated Dynamic Lists

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060815