JPH10336216A - バイナリツリーデータ要素ソーティング装置およびatmスペーサ - Google Patents

バイナリツリーデータ要素ソーティング装置およびatmスペーサ

Info

Publication number
JPH10336216A
JPH10336216A JP13058598A JP13058598A JPH10336216A JP H10336216 A JPH10336216 A JP H10336216A JP 13058598 A JP13058598 A JP 13058598A JP 13058598 A JP13058598 A JP 13058598A JP H10336216 A JPH10336216 A JP H10336216A
Authority
JP
Japan
Prior art keywords
stage
cell
command
controller
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP13058598A
Other languages
English (en)
Other versions
JP3905221B2 (ja
Inventor
Tuan Ha-Duong
ア−デュオン テュアン
Moreira Serafin Soares
ソアール モレイラ セラファン
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.)
Fihem
Original Assignee
Fihem
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 Fihem filed Critical Fihem
Publication of JPH10336216A publication Critical patent/JPH10336216A/ja
Application granted granted Critical
Publication of JP3905221B2 publication Critical patent/JP3905221B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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)

Abstract

(57)【要約】 【課題】 複雑性が限定された高速のソーティング装置
を提供する。 【解決手段】 それぞれソートキーを含むデータ要素を
ソートするために、記憶手段が、それぞれ要素を含むこ
とが可能であり、0からn−1まで番号を付けられたn
個の連続したステージに分配されていて、ステージqは
ノード2qから2q+1−1を有する、2n−1個のノ
ードを有するバイナリツリーにしたがって構成される。
要素は、ノードiに含まれている各要素が、ノード2i
および2i+1に含まれている要素のソートキーよりも
小さいソートキーを有するように、ツリーの中で分散さ
れる。それぞれステージ20qあるいは連続したステー
ジ間にn−1個のインタフェース・レジスタ26qを有
するツリー(2≦m≦n)の数個の連続したステージと
組み合わされたm個の連続したコントローラ21qによ
ってツリーは管理される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、それぞれデータ要
素を含むことが可能であり、0からn−1まで番号を付
けられたn個の連続したステージに分配され、ステージ
qはノード2qから2q+1−1を有する、1から2n−1
まで番号を付けられた2n−1個のノードを有するバイ
ナリツリーにしたがって構成された記憶手段と、1から
nー1−1の間の各整数iに対して、ノードiが分類さ
れるべき要素を含み、ノード2iおよび2i+1のそれぞれ
は分類されるべき要素を含まないか、あるいは決められ
た順序関係の意味でソートキーがノードiに含まれてい
る要素のソートキーよりも大きいかまたはそれに等しい
要素を含むように、順序付けの条件を満足するように、
ツリーの中でソートされる要素を分散させるためのバイ
ナリツリーの制御手段を有する、それぞれソートキーを
有しデータ要素をソートする装置に関する。
【0002】
【従来の技術】分類ツリーにおける要素の順序付けは、
コンピュータ化されたソーティングの分野で「ヒープソ
ート」と言われるものに対応する。この点に関して、K
nuthによる著作「コンピュータプログラミング技
法、第3巻、分類および探索」(アディソン・ウェスリ
ー、1973年、142−157ページ)を参照された
り。
【0003】一例として、図1は、n=4の場合の、順
序付けの条件を満足するデータ要素(データ要素のうち
ソートキーのみが表示されている)を含む15個のノー
ド1−15を有する分類ツリーを示す。
【0004】ステージ0のノード1はツリーの根あるい
は頂点と言われる。ステージn−1の2n-1から2n−1
個のノードはツリーの葉であると言われる。ステージq
の各ノードiに対して、その数がi2j+j’ここで、
jおよびj’は0≦j<n−qおよび0≦j’<2j
あるような整数である。の形式である2n-q−1個のツ
リーのノードは、ノードiの子孫と呼ばれる(ここでノ
ードiはおsの子孫に含まれると考えられる)。これら
の子孫のうち、(もしq<n−1ならば)ステージq+
lの姉妹ノード2iおよび2i+1はノードiの子であると
呼ばれる。他方、ノードiの親(もしq>Oなら)はス
テージq−1のノードと規定され、その数はもしiが偶
数ならばi/2であり、iが奇数ならば(i−1)/2
である。ツリーのノード間の親子関係のこれらの論理関
係は図1で矢印により示されている。
【0005】ソートキーの間の順序関係は任意である。
図1に示されている例では、自然数間のよく知られた順
序関係であり、ソートキーの昇順に分類可能である。降
順で分類の場合には、キーの間の順序関係を逆転すれば
十分なことは明らかである。図1において、ソートされ
る要素により占められていないツリーのノードは、それ
ぞれそのソートキーが無限大である要素を含むと見なさ
れる、すなわち、ソートされるデータ要素のどのソート
キーよりも大きい。無限大のキーをコード化する1つの
可能性は、この目的のキーを含むデータフィールドの1
ビットを残してかくことである。もしこのビットが1で
あればキーは例えば無限大であると見なされ、そうでな
ければ有限と見なされる。換言すれば、このビットはノ
ードが空きであるか、あるいはデータ要素により使用さ
れているかを示す。
【0006】ひとたびそれが順序付けられたデータ要素
N<2nの集合によりロードされると、ソーティング装
置はこれらのN個の要素を連続的にNサイクルでソート
キーの順番に転送できる。サイクルの間にツリーから要
素を抽出することは、ツリーの根に位置する要素を読み
取ることと、常に順序付けの条件を満足させるような方
法でその家系の要素を追跡することから成る。したがっ
て、図1に示された場合において、第1のサイクルは根
に位置する要素16を読み取ること、および、要素24
を根へ、次に要素38をノード2へ、最後に要素623
をノード4へ移動することから成る。これは根から葉に
向かって抽出コマンドを伝搬することになる。
【0007】ある用途においては、ソートされる新しい
要素をツリーに挿入するコマンドに応答できることは制
御手段にとってさらに必要である。したがって、ソーテ
ィング装置は各サイクルにおいてソートされる要素を転
送または受信することができる。ソーティング装置は、
使用される順序関係にしたがって管理され、時間タグあ
るいは優先権インデックスの他の任意の型式を表現する
であろうソートキーの基本原理でダイナミックな待ち行
列として作動する。
【0008】公知のバイナリ分類ツリーでは、所定のノ
ードのレベルにおいて2つの子のどちらにコマンドが伝
搬されるべきかはアプリオリに判断できないので、挿入
コマンドはツリーの根から葉まで伝搬されず、2人の子
の一方の子孫が完全に満たされていてしたがってコマン
ドの受信には不適当であるかもしれないことが十分理解
されよう。したがって、挿入コマンドはツリーの葉から
根まで伝搬される。例えば、ソートキーが28である要
素を図1のツリーに挿入するためには、それはツリーの
空きの葉、例えば葉9に書き込まれ、より高次のノード
に含まれる要素と順次比較される。かくして、考慮中の
例では要素28および38は順序付けを再確立するため
に交換される。
【0009】これらの条件下では、最小のキーを有する
要素がツリーから抽出される時に、先行するサイクルが
完了していなければならない。したがって、装置がデー
タ要素を転送あるいは受信できる速度は、コマンドを処
理するサイクルの持続時間により制限され、これはステ
ージの数n、すなわちソートされる要素の最大値Nの対
数に比例する。この数Nが大きく例えば数千であり、ま
た高速度、例えば毎秒500,000要素以上が必要な
応用例では、ソーティング装置を既存の電子回路で組み
立てることはできない。
【0010】
【発明が解決しようとする課題】J.W.ロバーツ他に
よる論文「実時間ソータのATMトラフィック制御への
応用」( Proc. ISS '95、1995年4月、第1巻、2
58−262ページ)は上述の速度限界による影響を受
けないソーティング装置、すなわちソートされる要素の
最大の数とアプリオリに独立な速度で要素の転送と受信
が可能なソーティング装置について説明している。しか
しながら、後者の装置の欠点は並列に動作する論理回路
の数がNに比例することである。ひとたびソートされる
要素の数Nが大きくなると(論文で予測されたATMセ
ルスペーサへの応用の場合のように数千あるいは数万
も)、装置のハードウェアの複雑性は大きなものとな
る。
【0011】本発明の目的は、複雑性が限定された高速
のソーティング装置を提供することである。
【0012】
【課題を解決するための手段】本発明は、制御手段が、
ソートされる新しい要素を挿入するためのコマンドを有
し、バイナリツリーの内容を修正するコマンドに応答す
る、冒頭に示した種類の装置を提案する。本発明によれ
ば、制御手段は、それぞれ1つのステージあるいは、バ
イナリツリーの複数の連続したステージと組み合わされ
た、mが2からnの間の整数であるm個の連続したコン
トローラと、連続したステージ間のn−1個のインタフ
ェース・レジスタを有し、n−1個のインタフェース・
レジスタ間で異なるコントローラと組み合わされたステ
ージ対の間のm−1個のインタフェース・レジスタの各
々がパイプラインレジスタを構成し、バイナリツリーの
内容を修正するための各コマンドはステージ0からステ
ージn−1へインタフェース・レジスタにより伝搬さ
れ、パイプラインレジスタはコントローラの並行動作を
許容する。
【0013】装置の複雑さは、それ自身多くてもツリー
のステージの数n、すなわちソートされる要素の最大の
数の対数や等しいコントローラの数mによって制限さ
れ、限定されている。コントローラのパイプライン構成
は並列動作およびソートされる要素の高速入出力を許容
する。この速度はソートされる要素の数に依存しない。
この速度は、コントローラの数mがステージの数nと等
しい時に最大となる。
【0014】本発明のソーティング装置は、考えられる
多数のデータ要素の高速ソーティングが要求される時
に、さまざまな用途を有する。したがって、ソーティン
グ装置はどのようなコンピュータ・システムに対しても
コプロセッサ・ソーティング・カードの形式で構成する
ことができる。用途の興味ある分野はプロセスの順序付
けであり、その場合ソートキーはプロセスを始動するよ
うに要求される時刻を表す。かくして最も「緊急の」要
素を各時刻にツリーから抽出できる。
【0015】本発明の装置はATMセルのスペーシング
の分野で特に有利な用途を有する。したがって、本発明
の第2の局面は、着信セルが書き込まれ発信セルが読み
出されるセルメモリと、セルメモリに書き込まれた各セ
ルに理論的送出時間を割り当てる手段とを有する複数の
仮想接続によって送信されるATMセルのスペーサを提
案する。本発明によれば、スペーサはさらに、仮想接続
がセルを収容している各仮想接続に対して、これらのセ
ルがリストの開始とリストの終わりの間で先入れ先出し
モードで蓄積されるロケーションのリストをセルメモリ
が有するように関連するポインタメモリの助けにより、
セルメモリを管理するスペーシング制御手段と、仮想接
続識別情報と、前記仮想接続に関するリストの開始に含
まれているセルの理論的送出時間から成るソートキーを
各々が有するデータ要素(K(i)、R(i))を順序
づけ、最小のソートキーを有する少なくとも1つのデー
タ要素を選択するソーティング手段を有し、スペーシン
グ制御手段は、ソーティング手段により選択されたデー
タ要素において識別された仮想接続に関するリストの開
始に含まれたセルの送出を命令するするように構成され
ており、ソーティング手段は、上に規定したようなソー
ティング装置であって、ステージ0のそのノード1が前
記選択された要素を含むソーティング装置を少なくとも
1つ有する。
【0016】
【発明の実施の形態】図2は、データ要素がn=4ステ
ージを有する図1のバイナリーツリーにしたがって構成
されたメモリ200−203に収容されるソーティング装
置を示す。
【0017】バイナリーツリーは、m個の個別のコント
ローラのセットにより制御される。ここでmは2とツリ
ーのステージの番号nの間の整数である。図2および図
3で考慮されている場合において、ツリーの各ステージ
q、すなわちm=n=4に対して1個のコントローラ2
lqがある。各コントローラ2lqはステージqにアク
セスできるようにするバス22qを有する。したがっ
て、ツリーの記憶手段は、それぞれ対応するバス220
−223を介してアクセス可能なm=4のメモリモジュ
ール200−203に分割されている。各ノードiには、
それぞれ、データ要素のソートキーK(i)、図2に表
示される唯一のキー(要素が無い場合にはK(i)=
∞)、およびこの要素のリファレンスR(i)を収容た
めの2つのメモリロケーションがある(図3参照)。
【0018】ステージ0以外のツリーの各ステージq
は、ノード2qから2q+1−1のほかに、1ビットの容量
を持つ2q-1個のロケーション23、およびn−q+l
ビットの容量を持つ2q-1個のロケーション25を有す
る。各ロケーション23はステージqの一対の姉妹ノー
ド2iおよび2i+lと組み合わされたステアリングビ
ットF(i)を含み、その値は、左方向姉妹2iに含ま
れるキーが右方向姉妹2i+l(K(2i)<K(2i
+l))に含まれるキーより小さければF(i)=Oで
あり、K(2i+l)≦K(2i)ならばF(i)=l
である。分類ツリーのロケーション23の合計数は2
n-1−1である。
【0019】ステージqの各ロケーション25はステー
ジqの一対の姉妹ノード2iおよび2i+lと組み合わ
された差分カウンターΔ(i)を含み、その値は、左方
向姉妹2iの子孫に含まれるデータ要素の数と、右方向
姉妹2i+1の子孫に含まれるデータ要素の数との差に
より与えられる。
【0020】ステアリングビットF(i)は抽出あるい
は交換コマンドをツリーの根から葉まで伝搬するように
動作するのに対して、一方差分カウンターΔ(i)は挿
入コマンドをツリーの根から葉まで伝搬するように動作
する。
【0021】バイナリーツリーの制御手段は、さらにn
−1=3個のインタフェース・レジスタ261−263
有し、各レジスタ26qはステージq−1のコントロー
ラ21q-1とステージqのコントローラ21qの間のイ
ンターフェイスとして動作する。さらに図2の基本的な
図には、ステージ0のコントローラ210とソーティン
グ装置の環境との間でインターフェイスとして動作する
レジスタ260が示されている。ソーティング装置に送
られたコマンドは、ソーティング装置により供給される
レスポンスであるとして、このレジスタ260に書き込
まれる。実際には、このレジスタ260はツリーの上の
ステージのコントローラ210と同じ回路に属すること
ができる。
【0022】図3を参照すると、各レジスタ26qは:
ツリーの根から葉まで伝搬するコマンドの性質を指定す
るコマンドコードAq;以下の説明において、コマンド
Aqは例として次のように2ビットでコード化されてい
ると見なされる:Aq=00はステージqの前方のツリ
ーの内容の修正無し、Aq=01は新しい要素を挿入す
るコマンド、Aq=11はツリーから最も小さいソート
キーを有する要素を抽出すると同時に新しい要素をその
中に挿入することからなる交換コマンド(最小のソート
キーを有する要素の直接抽出は、この要素を無限大のソ
ートキーを有する素子と交換することとして取り扱われ
る)、およびAq=10ステージqの前方のツリーの内
容を再初期化するコマンド;挿入あるいは交換コマンド
によりステージq−1からステージqまで、あるいは交
換コマンドによりステージqからステージq−1まで送
信されたソートキーBq;ソートキーBqと組み合わさ
れ、ソートキーBqと共に挿入あるいは交換されたデー
タ要素を形成するリファレンスCq;q−1ビット(こ
の識別はレジスタ260には存在しない)から構成さ
れ、コマンドAqがそこから発信されるステージq−1
のノードを指定する識別情報Dq、をそれぞれ収容する
4つのロケーションで構成されている。いっそう正確に
は、識別情報DqはそこからコマンドAqが発信するス
テージq−1のノードiの数のバイナリー法表示のq−
1個の最下位ビット、すなわちベース2に対してi=l
qから成る。
【0023】新しい要素をツリーに挿入するために、コ
マンドAo=O1およびこの新しい要素Bo、Coがレジ
スタ260に書き込まれ、次にコマンドがツリーの根か
ら葉まで伝搬される。交換を行うために、コマンドAo
=11およびレジスタ260に挿入される要素Bo、Co
(直接抽出の場合にはBo=∞である)が書込まれ、そ
の後に最小のキーを有する要素はレジスタ260のロケ
ーションBoおよびCoの中に取り出される。
【0024】各コントローラ21qにより実行された動
作は図4、5および6のフローチャートに示される。こ
れらの動作を実行するために、各コントローラ2lq
適切にプログラムされた高速論理ゲートのネットワーク
の形式で作られる。動作は本質的に読み取り/書き込
み、インクリメント/デクリメント、バイナリーコード
化された変数の比較であるので、ゲートネットワークの
このプログラミングには問題が無い。
【0025】コマンドAqはレジスタ26q(段階10
0)からまず読み取られ、次いでコマンドの型式を識別
するように評価される(段階101)。 修正無しの場
合には(Aq=00)、コントローラ2lqは同じコマン
ドAq+1=00を次のレジスタ26q+1(段階102)に
単に書込む。
【0026】リセットコマンド(Aq=10)の場合に
は、親の識別Dqは変数sに割り当てられ(段階10
3)、コントローラ2lqはその数のバイナリー法表示
がlsOおよびlslである2つの子ノードを初期化
し、一方、段階102においてコマンドAq+1=00を
伝搬する前にそのソートキーを無限大にセットし、対応
する差分カウンタΔ(1s)に値0を置く(段階10
4)。ステージ0の特定の場合には、リセットは単にK
(l)=∞を書き込むことから成る。
【0027】レジスタ100から読み込まれたコマンド
qが、親ノード1Dq(Aq=01)からの新しい要素
q、Cqの挿入を表わすと、これらのパラメータBq
qおよびDqはコントローラ2lqによりそれぞれ読み
取られ、段階105において変数k、rおよびsに割り
当てられ、その後識別されたノードの子と組み合わされ
た差分カウンタΔ(1s)は、段階106において変数
δに割り当てられる。
【0028】もしδ<0ならば(比較107)、右方向
の子は左方向の子より多くの子孫を有し、挿入コマンド
が左方向の子に伝搬されるように、左方向の子の子孫の
中に新しい要素を受信可能な少なくとも1つのノードが
ある。ビットtは0に等しいとされ、また変数δは段階
108において1段階インクリメントされる。逆に、も
しδ>Oであれば、ビットtは1に等しいとされ、挿入
コマンドが右方向の子に伝搬するように、変数δは段階
109において1段階デクリメントされる。段階110
において、ソートキーK(lst)および処理済みの、
すなわちコマンドが伝搬されるノードに含まれるデータ
要素のリファレンスR(lst)は読み取られ、それぞ
れ変数k’およびr’に割り当てられる。
【0029】もしk<k’であれば(比較111)、ス
テージq+lに伝搬される要素w、xが処理済みのノー
ドから読み込まれたk’、r’と段階112において等
しいとされるように、処理済みのノードは挿入されるデ
ータ要素より大きいソートキーを含む。もしk’≦kで
あれば、送信される要素w、xは段階113でレジスタ
26qから読み込まれたそのk、rと段階113におい
て等しいとされ、次に変数k、rはそれぞれ変数k’、
r’の値を受信する。
【0030】もし伝搬されるデータ要素のキーwが無限
大であれば(比較114)、これは挿入コマンドがもは
や伝搬される必要がないからである。次にプロセッサ2
qは段階115において変数v’に値10(再初期設
定)を与える。もし送信されるキーwが有限であれば、
変数v’は挿入コマンドを示すように段階116におい
て値01を受信する。プロセッサ2lqは続いて、段階
117においてAq+1=v’、Bq+1=w、Cq+1=xお
よびDq+1=stを書き込むことによりレジスタ26q+1
を満たすことができる。
【0031】段階117の後は、挿入コマンドの処理は
もはやコントローラ2lqにそのインタフェース・レジ
スタ26q、26q+1にアクセスするように要求せず、単
に処理中のメモリ領域20qへのアクセスを要求する。
段階118において、それは変数δの新しい値を書き込
むことにより差分カウンタΔ(1s)を更新する。次
に、段階119において、それはK(lst)=kおよ
びR(lst)=rをそこに書き込むことにより、処理
済みのノードのデータ要素を更新する。
【0032】挿入コマンドの処理を完了するために、次
にコントローラ2lqは処理済みのノードlstと組み
合わされたステアリングビットF(ls)の値を更新す
る。コントローラ2lqはまず処理済みのノードの姉妹
ノードに含まれるデータ要素のソートキーK(lst)
を読み取り、それを変数k’に割り当てる。段階126
においてステアリングビットF(ls)を含むロケーシ
ョン23に書き込まれる変数fは、もし比較121、1
22、123がt=Oおよびk’≦k,またはt=lお
よびk≦k’であることを示せば、段階124において
1と等しいとされる(右方向の子に向かってのステアリ
ング)。反対の場合には、段階125においてf=0と
見なす。
【0033】段階126の後に、プロセッサ2lqはコ
マンドAqの処理を完了し、レジスタ26qから発信さ
れている次のコマンドを処理するために、段階100に
戻ることができる。
【0034】レジスタ26qから読み取られたコマンド
がステージq−1の親ノード1Dqからのデータ要素B
q、Cqの交換を示すと(Aq=11)、これらのパラ
メータBq、CqおよびDqは、読み取られ段階130に
おいて変数k、rおよびsにそれぞれ割り当てられる、
その後に、識別されたノードの2つの子と組み合わされ
たステアリングビットF(ls)の値は段階131にお
いてビットtに割り当てられる。処理済みのノード1s
tから読み込まれたデータK(lst)、R(lst)
は、次に段階132において変数k’およびr’に割り
当てられる。
【0035】もし処理済みのノードがレジスタ26q
ら読み込んだデータ要素のソートキーより大きいソート
キーを含むなら(比較133の間はk<k’)、交換コ
マンドはもはや、レジスタ26q+1に書き込まれるコマ
ンドv’が段階134において00(無修正)と等しい
とされるように、ツリーの下位ステージに伝搬される必
要はない。この段階134において、レジスタ26q
返送されるデータ要素w’、x’はさらに最小のソート
キーを有するそのk、rと等しいとされる。もし比較1
33がk≧k’を示せば、段階134は段階135によ
り置換され、段階135においてプロセッサ2lq
w’=k’、x’=r’およびv’=11をとる(交換
コマンドの伝搬)。
【0036】プロセッサ2lqは次に段階136に進
み、要素w’、x’をインタフェース・レジスタ26q
のロケーションBqおよびCqに書き込む。
【0037】コマンドを伝搬するためにコントローラ2
qは次に段階137を実行しインタフェース・レジス
タ26q+1に書き込む:Aq+1=v’、Bq+1=k、Cq+1
=rおよびDq+1=st。
【0038】もし伝搬されたコマンドが交換コマンドで
なければ、すなわち、もし比較138がv’≠11を示
せば、コントローラ2lqによる交換コマンドの処理は
書き込み段階137の後に終了される。他の状況では、
プロセッサ2lqは段階139に進み、ステージq+l
に送信したキーkが無限大であるか否かを調べる。
【0039】もし比較139がk=∞を示せば、交換コ
マンドは実際に直接抽出コマンドであり、処理済みのノ
ードと組み合わされた差分カウンタΔ(1s)を更新す
ることが必要である。この差動カウンタの値がまず読み
取られ、段階140において変数δに割り当てられる。
もしコントローラ2lqが左方向の子(比較141の間
t=O)を処理したならば、変数δは段階142におい
て1段階デクリメントされ、反対の場合、他方それは段
階143において1段階インクリメントされる。差分カ
ウンタΔ(1s)は変数δの新しい値にしたがって段階
144において更新される。
【0040】それぞれ有限のソートキーを有する2つの
要素の交換が差動カウンタの値に影響を与えないとすれ
ば、もし比較139がkを送信したキーが有限であるこ
とを示せば、段階140から144までは実行されな
い。
【0041】プロセッサ2lqは次に、コントローラ2
q+1が(その段階136の間に)レジスタ26q+l
に返送したデータ要素Bq+1、Cq+1を読み取ることによ
り、またこの返送された要素を変数kおよびrに割り当
てることにより、段階145において交換コマンドの処
理を再開する。上述のように段階119から126まで
を介して、コマンドの処理は続いて終了する。
【0042】図4−6のフローチャートは任意のステー
ジqの場合に提示されている。当然、ある程度の翻案が
第1のステージq=0と最後のステージq=n−1にお
いて必要である。上に述べたように、q=0に対して、
処理済みのノードlstは常にツリーの根であると理解
され、段階106−109、118、120−127、
131および139−144はできる限り除かれる。レ
ジスタ26nを設けることが必要でないとすれば、最後
のコントローラの下流段階110から117までは最後
のステージn−1に関して除くことができ、段階10
2、137および145、さらに交換のみの点で段階1
19も除くことができる。
【0043】連続したコントローラの並行動作の時間的
構成は、インタフェース・レジスタ26qへのアクセス
の共有により条件付けられている。コントローラ2lq
がレジスタ26q+1に対して、対応するパラメータも同
様に送信する(コマンドの型式により段階102、11
7あるいは137の後に)コマンドを書き込み終える時
刻αqを、同様に交換コマンドの場合にコントローラ2
qがレジスタ26qに、コントローラ21q-1に返送す
るデータ要素Bq、Cqを書き込み終える時刻βqを図4
および図5に示す。さらに、α’qはコントローラ2l
qがレジスタ26qから新規コマンドを読み込み始める
時刻を示し(段階100のすぐ前に)、またβ’qはコ
ントローラ2lqがレジスタ26q+1から、交換コマンド
の場合に(段階145の直前に)コントローラ21q+
lにより返送されるデータ要素を読み込み始める時刻を
示す。正確なパイプライン動作を得るためには、コント
ローラを各コマンドに対して、αq≦α’q+1およびβq
≦β’q-1が得られるように設計することで十分であ
る。
【0044】これらの2つの条件を満足させるために
は、コントローラ2lqは非同期でも同期でも良い。第
1の場合には、パイプライン動作はコントローラ間で交
換される肯定応答信号によって保証される。段階136
を実行した後、コントローラ2lqはコントローラ21
q-1に肯定応答信号を送り、それによりコントローラ2
q-1は段階145および交換コマンドの次の処理に進
んで良いことを知る。さらに、段階102あるいは13
7あるいは117を実行した後で、コントローラ2lq
は肯定応答信号をコントローラ21q+1に送り、それに
よりコントローラ2l q+1はその読み取り段階100を
開始することによりコマンドの処理を開始してよいこと
を知る。
【0045】コントローラ21qの同期動作は、コント
ローラを論理ゲートのネットワークから構成する場合
に、実現がより便利である。この場合に、パイプライン
の構成は図7のタイミング図により示される。
【0046】この図において、4つの行のそれぞれは、
そのステージの1つのコントローラの動作を示す。ステ
ージqに関する行の上側の文字RDおよびWRは、それ
ぞれコントローラ2lqにより実行されるレジスタ26q
からのまたはレジスタ26qへの読み取りと書き込みを
表し、行の下側に位置する同じこれらの文字は、それぞ
れレジスタ26q+1からのまたはレジスタ26q+1への書
き込みと読み取りを示す。上に述べたように、ステージ
の間の矢印はパイプラインレジスタによるコマンドとパ
ラメータの伝達を表す。ハッチングを付けたインターバ
ルは、コントローラ2lqがそれが制御するメモリ領域
20q上で動作中の時間を表す。
【0047】図7に示す期間θ1は、ソーティング装置
が新しい要素を受信し、最小のソートキーを有する要素
を転送することができる速度を決定する。それはコマン
ドに関する命令の集合を処理するために各コントローラ
により要求される持続時間に対応する。この期間θ
1が、新規コマンドが処理され始めた後に分類ツリーを
一貫した順序付けの規則を再確立するために必要なサイ
クルθ2の持続時間より短いことが判る。図5に示す例
において、第1の期間θ1はステージ1に置かれる他の
1つの要素とツリーの根に位置する要素との交換に対応
する(すなわち、図2の場合において、そのキーは25
と38の間に置かれている)、また第二の期間θ1、ステ
ージ2への新しい要素の挿入に対応する(キーは前の交
換動作の間に導入された要素のキーより大きいかまたは
等しい)。
【0048】最小のソートキーを有するデータ要素をレ
ジスタ260へ返送するために装置により要求される応
答時間θ0=β0−α’0は期間θ1の約3分の1に対応す
ることがさらに指摘される。
【0049】期間θ1を最小限度に抑え、したがってソ
ーティング装置の動作速度を最大にするために、コント
ローラにより実行される処理動作を、処理動作がそのイ
ンタフェース・レジスタにアクセスする時刻を分離して
いる間隔の内に均質に点在させることが有益である。こ
れは図4から図6のフローチャートの若干の命令の処理
を移動することにより実現できる。例えば、もし時刻
β’以前に、コントローラqが、コントローラ21q+1
がその一連の命令130−136を、レジスタ26q+1
からその結果を読み取る前に実行し終えるのを待たなく
てはならない時間間隔146(図5)があれば、少なく
ともこの時間間隔のいくらかは他の命令を実行すること
により満たされることができ、これは他のどこかで時間
の節約を可能にする。上に述べたように例えば図4から
図6の場合、処理済みのノードの姉妹のソートキーの読
み込み120は、交換動作中の段階145の前で挿入動
作中の段階118の後に行うことができるであろう。こ
の種の最適化は、論理ゲートネットワークをプログラム
するために構成されるアーキテクチャの選択に多くを依
存する。
【0050】上記の説明において、装置に最良の速度性
能をもたらすように、コントローラのそれぞれが、それ
へのアクセスがそのために予約されたバイナリーツリー
の単一のステージと組み合わされた場合が考慮された。
その動作に必要な論理回路(コントローラ21q)の数
で測られる装置の複雑さは、したがってnである、すな
わちソートされる要素の最大数の対数である。
【0051】ツリーのいくつかの連続したステージを単
一のステージの代わりに若干数のコントローラ、少なく
ともそれぞれのコントローラ(すなわちm<n)と結び
付けることにより、この複雑さは対応して装置速度が低
下することを代償に低減できる。コントローラ毎のステ
ージの数はすべてのコントローラに対して必ずしも同一
ではない。特に、もし少なくともステージ0と組み合わ
されたコントローラが分類ツリーの環境に関連する他の
機能も実行するならば、このコントローラが他のコント
ローラよりも少数のステージを管理するために準備がさ
れてもよい。
【0052】コントローラがツリーのいくつかのステー
ジと組み合わされている場合には、これらのステージに
沿ってのコマンドの伝搬はこのコントローラにより連続
的に処理される。
【0053】図8がツリーのステージqからq+p−1
と組み合わされたコントローラ21,qpの場合を示す
ように、異なるコントローラと組み合わされたステージ
間のインタフェース・レジスタ26q、26q+pのみが、
連続したコントローラの並行動作の点でパイプラインレ
ジスタを構成する。他のレジスタ26q+1、・・・、2
q+p-1はコントローラ21qpのみがアクセスでき
る。これらのレジスタは、このコントローラ21q、p
を構成する論理回路の一部を形成するか、あるいはこの
コントローラに対して確保され、ステージqからq+p
−1を有するメモリモジュールの一部を形成する。
【0054】m番目のコントローラと組み合わされてい
るバイナリーツリーのステージの中の差分カウンタΔ
(i)を不要にすることが可能なことが指摘される。こ
の後者のコントローラはp個のステージn−pからn−
1(1≦p<n−1)と組み合わされていると仮定す
る。パイプラインレジスタ26n-pから挿入コマンドA
n-p=01が読み込まれた時、このコマンドが発信され
た親はこのレジスタで識別されたノード1Dn-pであ
る。もし、2n-p-1の考えられる親のそれぞれのため
に、最後のコントローラがこの親ノードの子孫の一部を
形成している空きの葉の個々のリストを最新に維持して
おくならば、パイプラインレジスタのフィールドDn- p
で識別された親ノードと組み合わされたリストに属する
空きの葉からスタートしてステージn−1からステージ
n−pへ連続的に挿入コマンドを伝搬することにより、
最後のコントローラは挿入コマンドを処理することがで
きる。これらのリストのそれぞれにおいて、葉のそれぞ
れは、識別情報Dn-pのn−p−1ビットと共に明瞭に
葉を識別するpビットで簡単に指定できる。このリスト
を維持する簡単な方法は後入れ先出し(LIFO)モー
ドでそれを構成することである。識別された親に基づい
て空きの葉を指定するpビットが各ステージにおいて使
用できるとすれば、挿入コマンドの伝搬を制御するため
に、最後のコントローラはさらに挿入コマンドをステー
ジn−pからステージn−1へ伝搬することができる。
【0055】最後の分析において、図2から図8に示す
型式のソーティング装置はそれぞれツリーのノード2i
と2i+1の対と組み合わされた丁度2n-p-1−1個の差分
カウンタΔ(i)を備えることにより構成できるここ
で、iは1から2n-p-1−1までの範囲である。
【0056】図9から図15はソーティング装置の他の
実施形態を示す。
【0057】説明を容易にするために、各コントローラ
2lqがバイナリーツリー(m=n)の単一のステージ
qと組み合わされている場合が再び考慮される。しかし
ながら、前と同じように、このソーティング装置のアー
キテクチャが、少なくとも1つのコントローラがいくつ
かのステージ(m<n)と組み合わされた場合と容易に
置換可能であることは理解されるであろう。
【0058】すでに説明された代表的な実施形態と異な
り、図9から図15の実施形態は挿入コマンドをツリー
の根から葉まで伝搬するために差分カウンタを使用しな
い。ツリーのステージqに対応する各メモリモジュール
20qは、上に述べたようにノード2qから2q+1−1お
よびステアリングビットF(2q-1)からF(2q−1)
を受信するためのロケーション23を有するが、図9が
示すように、差分カウンタを受信するためのロケーショ
ン25は有しない。
【0059】各インタフェース・レジスタ26qは、先
に規定したパラメータAq、Bq、CqおよびDqを含む4
つのロケーションに加えて、ステージq−1のノード1
Dqからの挿入コマンドの伝搬の間に、このコマンドが
そこへ伝搬されるステージqの子ノードを指定するビッ
トEqを受信する追加のロケーションを有する。上に述
べたように、もしEq=0であれば、挿入コマンドは左
方向の子ldq0に伝搬され、他方、もしEq=1であれ
ば、挿入コマンドは右方向の子ldq1に伝搬される。
【0060】レジスタ26qにおいて、親ノードの識別
情報Dqおよび子ノードを指定しているビットEqは、n
−1ビットの葉指定フィールドの内容Gqのq個の最高
位ビットから成る。この葉指定フィールドの内容G
qは、挿入コマンドの伝搬の間に、このコマンドが伝搬
されるバイナリーツリーの空きの葉の1つを指定する。
この空きの葉のバイナリー法表示はlGqである。葉の
指定が空きであるとすれば、この同じ葉への他の挿入コ
マンドがバイナリーツリーの下流に現在伝搬していない
という条件で、挿入された要素は、ツリーの根からこの
指示された空きの葉までのパス上に、確実にその場所を
見いだすことが可能であろう。
【0061】この条件を満たすために、ステージ0と1
の間のインタフェース・レジスタ261の葉指定フィー
ルドは、ツリーの最後のステージと組み合わされたコン
トローラ21n-1からその値G1を受信する。コントロー
ラ21n-1は、例えば図10に概略で示されるようなシ
フト・レジスタ30により、空きの葉の第一のリストを
維持する。このレジスタはn−1ビットのロケーション
の番号n’を含み、各コマンド期間θ1においてシフト
演算を行う。任意の葉に向かって挿入コマンドがバイナ
リーツリーの中で多分伝搬しつつあるであろう任意の葉
はn’の空きの葉のこの第一のリストの一部を形成す
る。インタフェース・レジスタ26n-1から最後のコン
トローラにより読み取られたコマンドAn-1が挿入コマ
ンド(An-1≠01)ではない限り、図8に示すよう
に、n’個の期間θ1ごとに同じ葉の指定を配送するよ
うにシフト・レジスタ30はそれ自身ループバックされ
る。それに向かって挿入コマンドがツリーの中で多分伝
搬しつつあるであろう葉の指定のそれぞれと異なってい
ると知られるこの指定G1は、インタフェース・レジス
タ261の対応するフィールドに書き込まれる。もしそ
れに反して、挿入コマンドAn-1=01がツリーの最後
のステージに到達すれば、後に説明される方法で空きの
葉の第2のリストから最後のコントローラにより抽出さ
れた新しい空きの葉Pは、シフトレジスタ30およびイ
ンタフェース・レジスタ261に導入される。
【0062】この動作の方法を説明するために、新しい
要素をツリーに挿入するために連続して装置がコマンド
を処理する場合について、図11は単純化された形式で
図7のタイミング図に協力する。この図11において、
各矢印の先端部はコントローラ21qが挿入コマンドを
処理し始める時刻α’qを示す。上に述べたように、時
刻α’oにおいて、コントローラ21oは関連するコマン
ドおよびパラメータAo、Bo、Coを装置の周囲から受
信し、またq≧1である時刻α’qにおいて、コントロ
ーラ2lqはコマンドおよびレジスタ26qのパラメー
ターAq、Bq、C qおよびGqを受信し、対応する処理動
作を開始する。図11に示す典型的な時間的構成におい
て、最後のコントローラ21n-1がレジスタ261に対応
する空きの葉の指定G1を書き込んだ各挿入コマンド
は、2つの期間θ1の後にレジスタ26 n-1のこの最後の
コントローラにに到達する。したがって、この例におい
ては、シフト・レジスタ30にn’=2のロケーション
をとれば十分である。
【0063】この同じ例において(さらに図1参照)、
図10はレジスタ30に保持されたリストに含まれる
n’=2の葉9および13(数9および13のバイナリ
ー法表示は1001および1101であるから、それぞ
れ001および101により指定された)を示す。葉9
はしたがって、最後から2番目のコマンドの間にフィー
ルドG1に指定されている。もしこのコマンドが新しい
要素の挿入を指し、葉9において終了するなら、(すな
わち最後のプロセッサの動作の現在の期間でAn- 1=0
1)、葉9はリストおよびレジスタ30から削除され、
P.により指定された新しい葉(図1の場合10、11
あるいは15)により置換される。他の状況では、前記
の最後から2番目のコマンドは、挿入を参照しないか、
あるいはステージn−1の上流にその場所を見いだすデ
ータ要素の挿入を参照するかして、その結果葉9はレジ
スタ30に維持され、次のコマンドのためにフィールド
1に再び指定される。
【0064】実際には、番号n’は常にバイナリーツリ
ーのステージの番号n未満となるであろう。このソーテ
ィング装置の実施形態が各時刻においてバイナリーツリ
ーが少なくともn’個の空きの葉を有することを意味す
るとすれば、装置がソートできるデータ要素の最大数
は、先に説明した装置と比較して常に2n’以下の数だ
け少なく、その結果、ステージの数があまり少なくない
場合には装置のソーティング容量は大きな影響を受けな
い。もし、例えば装置がn’=4においてn=12のス
テージを有するならば、装置は差分カウンタが使用され
る場合には最大N=4095の要素までソートでき、空
きの葉のリストが使用される場合には最大N=4088
の要素をソートできる、これらの2つのNの値の相違は
重要ではない。
【0065】図4で補われるべき図12および図13
は、図4から図6に類似のフローチャートを示す(同様
な段階を示すために同じ参照番号が使われている)、コ
マンドの処理の間に図9に示す型式のコントローラ2l
qにより実行される動作を詳述する、ここで、q<n−
1である。
【0066】図4、5および6のフローチャートと比較
して、図12、13および6のフローチャートは差分カ
ウンタを参照するすべての動作を削除することにより単
純化されている。挿入コマンドの処理において実行され
る段階105および117において、親ノードDqある
いはDq+1の識別情報だけよりもむしろ葉指定フィー
ルドGqあるいはGq+1の全体が、インタフェース・レジ
スタ26qあるいは26q+1から読み取られるか、あるい
はインタフェース・レジスタ26qあるいは26q+1に書
き込まれる。前述の例と比較して、コントローラ構造の
単純化およびメモリスペースの縮少がそれぞれ別に到達
できた。
【0067】図6で補われるべき図14および図15
は、ツリーのステージn−1に関係する最後のコントロ
ーラにより実行される動作を詳述する。時刻βn-1とα
n-1との間に実行される段階150、151あるいは1
52は、レジスタ261の葉指定フィールドへの、図1
0に示すシフト・レジスタ30の内容に対応する空きの
葉のリストの中の順位i(O≦i<n’)の葉の数のn
−1個の最下位ビットG1=T(i)の書き込みに対応
する。最後のステージn−1に関してのコマンドの各々
の処理は、段階153においてカウンタiの増加、モジ
ュロn’、によりレジスタ30におけるシフト動作に対
応するこれを例外なく終了させる。
【0068】コントローラ21n-1はまた空きの葉の第
2のリストを保持し、それを例えば後入れ先出し(LI
FO)モードで管理する。この第2のリストの第1の葉
は、最後のコントローラのレジスタあるいはそのメモリ
領域20n-1に蓄積されているn−1ビットを有するポ
インタPにより指定されている。この第1の葉の数のバ
イナリー法表示は1Pである。第2のリストの各々の葉
はソートキーが無限大であるデータ要素を含み、関連す
るリファレンスに対応しているメモリの部分は、例えば
第2のリストの中の次の葉のn−1ビットの上の指定に
等しい継続ポインタを蓄積するために使用される(もし
1ビットが無限大のキーを識別するために予約されれ
ば、キーに対応する部分もさらに使用できる)。
【0069】挿入コマンドがインタフェース・レジスタ
26n-1の最後のステージのコントローラに到達すると
(An-1=01)、Gn-1により指定された空きの葉は新
しいデータ要素を含むように満たされねばならない。し
たがって、図12および図13のフローチャートの段階
110から117は不要である。読み取り段階105に
段階155が続き、段階155においてコントローラ2
n-1は、第2のリストの第1の空きの葉に含まれる要
素のリファレンスに対応するメモリ部分に含まれる継続
ポインタR(lP)を変数hから読み取る(段階15
5)。次の段階156において、コントローラ26n-1
は空きの葉の2つのリストを更新する。それはGn-1
より指定された空きの葉を第1のリストから除去し、領
域T(i)において、第2のリストの第1の葉のポイン
タPで、それを置換する。次にそれはこの値Pを段階1
55において読み取ったポインタの値に置換する。プロ
セッサ21n-1は前述の段階150へ次に図6の段階1
19から126へ、また段階153へ行くことにより挿
入コマンドの処理を終了する。
【0070】交換コマンド(An-1=11)を処理する
ために、最後のステージのコントローラはまずに先に論
じた段階130から136を実行する。段階137は必
要ではなく、前述の段階151により置換される。もし
ステージn−2から引き換えに提示されたソートキーk
=Bn-1が処理された葉(比較138の間v’=11)
から読み取ったそのK(lst)よりも大きければ、こ
のキーkは段階139において無限大と比較される。も
しこのキーkが有限であるなら、交換コマンドの処理は
図6の段階119から126を経てまた段階153を経
て終了する。他の状況では、コマンドは直接の抽出を示
し、以前占有した葉を解放する。段階157において、
この葉は無限大のソートキーおよび参照として第2のリ
ストの第1の葉のポインタの値Pをそこに書き込むこと
により更新される。対応するステアリングビットF(l
s)は段階131において読み取られた値を補足する値
を受信する。最終の段階153に移る前に、コントロー
ラ26n-1は段階158において第2のリストの第1の
葉のポインタPを解放された葉のバイナリー法の指定s
tに更新することにより抽出コマンドの処理を終了す
る。
【0071】図9から図15による装置の初期化に際し
て、空きの葉の2つのリストは例えば次のように初期化
される:T(i)=i、ベース2に対して、O≦i<
n’に対して;P=n’、ベース2に対して;またR
(li)=i+l、ベース2に対して、n’≦i<2n
−1。
【0072】図10、図14および図15に示す典型的
な具体化例において、最後のコントローラ21n-1はシ
フトレジスタ30およびLIFOスタックにより「第一
のリスト」および「第二のリスト」を保持する。同様の
複雑さを持った他の論理構成を採用しうることは指摘さ
れるであろう。例えば、コントローラ21n-1は、空き
の葉の数を含む先入れ先出し(FIFO)モードで管理
される論理待ち行列を保持でき、一方このFIFO待ち
行列が常に少なくともn’個の空きの葉を含むことが保
証される。このような条件の下で、「第一のリスト」は
待ち行列の最後のn’個のロケーションと、待ち行列の
前のロケーションの「第二のリスト」から成る。
【0073】上述したソーティング装置において、キー
がそれによってソートされる、すなわち段階111、1
22、123および133において互いに比較される。
順序関係は、自然数の昇順に対応する。簡単な論理回路
によって比較が容易にできる任意の順序関係が、このよ
うな装置において要素をソートするために使用できるこ
とが理解されるであろう。
【0074】もし、例えば各ソートキーK(i)が、そ
の時点においてデータ要素のために対応するリファレン
スR(i)を取り出すように要求される未来の時刻を規
定する時間タグであるなら、ソーティング装置は手順の
時間的順序付けを制御するタイムアウト装置として動作
することができる。ツリーの根に位置する要素のキー
は、もし現在の時刻が到達されていれば、この要素を交
換するか、あるいは抽出するように、次に現在の時刻と
比較される。
【0075】もしこの応用例において、時間の値が0か
ら2L−1まで変動するサイクリック・カウンタによっ
てLビットにコード化されれば、2個のLビットキーk
とk’の間の順序関係は、0≦(k’−k)(mod2
L)<2L−1の場合にのみ、k≦k’でありうる。言
い換えれば、例えば段階122において、Lビットにつ
いて差分k’−kを計算し(すなわち最高位のキャリー
を無視し)、この差分の順序2L−1のビットが0(k
≦k’)あるいは1(k>k’)であるか否かを調べれ
ば十分である。したがって、2L−l以上現在の時刻よ
り早いか、あるいは2L-1−1以上現在の時刻よりも遅
れている時刻をどのキーも指定しなければ、キーの入力
順は満足され、これは十分に大きな数Lを選択すればこ
れは容易に満たされる条件である。
【0076】上述したソーティング装置の応用例をAT
Mセルスペーサについて説明する。
【0077】図16のスペーサにおいて、ポリシング機
能は、現在時刻と各着信セルが関係する接続の識別情報
IdCxに基づいてモジュール40により実行される。
各セルに対して再帰的に計算された理論的送出時間TE
Tは、このモジュール40によりこのセルが関係する接
続と組み合わされたスペーシング間隔Tと共にスペーシ
ングコントローラ41に転送される。この情報と接続識
別情報IdCxに基づきスペーシングコントローラ41
は着信セルが書き込まれ発信セルが読み取られるセルメ
モリ42の管理を監視し、さらにポインタメモリ43と
ソーティング装置44を管理する。
【0078】NCXはIdCx=lからIdCx=NC
Xまでスペーサが処理できる番号が付された仮想接続の
数を表示し、またNCEはメモリ42が前もって規定さ
れたロケーションCh_cell(l)からCh_ce
ll(NCE)に収容できるセルの数を表示する。
【0079】ここに示す代表的な実施形態において、セ
ルメモリ42およびポインタメモリ43は2つの別のメ
モリモジュールから成り、その第1のメモリモジュール
はコントローラ41の制御の下にユニット46により管
理される。しかしながら、他の実施形態が可能であるこ
とは理解されるであろう。特に、メモリ42および43
はコントローラ41によりアクセスが命令される単一の
メモリモジュールで実現できるであろう。上に述べたよ
うに、例えば2メガバイトのRAMメモリモジュール
が、セルメモリを管理するに必要なポインタと共に、N
CX=4096の異なる仮想接続に関する最大NCE=
32,000セルまでの蓄積を可能とする。
【0080】図17はセル−クロック信号CKCを示
し、それに基づいてスペーサのシーケンサ47は必要な
クロック信号をモジュール40、スペーシングコントロ
ーラ41、ソーティング装置44およびセルメモリのマ
ネージャ46に供給する(図1)6。このクロック信号
の周期は155Mbit/sリンクの場合に2.7μs
である。この信号CKCの各周期に、スペーサはメモリ
42に書き込まれたセルを受信し(図17の第3行)、
メモリ42から読み込んだセルを送出する(図13の第
4行)ことができなくてはならない。図17に示す代表
的な刻時において、各セル期間は同様の持続時間を持っ
た2つの連続したフェーズに分割され、第1のフェーズ
は着信セルの受信のためであり、第2のフェーズは発信
セルの送出のためである。
【0081】各セル期間の第1フェーズにおいて、スペ
ーシングコントローラ41はマネージャ46にセルメモ
リ42の中のスタートアドレスaを供給する、そこから
スタートして、このマネージャは着信セルの53バイト
の書き込みを命令する。第2フェーズにおいて、コント
ローラ41により供給されたスタートアドレスaは、発
信セルを転送するために、マネージャ46に、メモリ4
2のアドレスaから始まる蓄積された53バイトの読み
出しを命令できるようにする。この説明のために、アド
レスaは、セルが書き込まれる、あるいはセルが読み出
されるメモリ42(1≦a≦NCE)のロケーションC
h_cell(a)の数に対応すると見なされ、また規
約により、a=Oは関連するフェーズ中はメモリ42に
対するアクセスを命令してはならないとマネージャ46
に通知する(セル期間内は、着信セル、あるいは送出さ
れるセルを禁止)。
【0082】セルメモリ42は、セルを含む各仮想接続
に対して、これらのセルが先入れ先出し(FIFO)モ
ードで配列されるロケーションのリストを含むように構
成される。これらのリストはポインタメモリ43により
コントローラ41によって管理される。
【0083】メモリ43のポインタはそれぞれロケーシ
ョンCh_cell(l)からCh_cell(NC
E)と組み合わされた、フリーロケーション・ポインタ
Ptr_free、1≦IdCx≦NCXに対してNC
Xリスト開始ポインタPtr_start(IdC
x)、1≦IdCx≦NCXに対してNCXリスト終端
ポインタPtr_end(IdCx)、および1≦i≦
NCEに対してNCE継続ポインタPtr_cont
(i)、を有する。メモリ42が所定の時刻においてセ
ルを含んでいない仮想接続の各識別情報IdCxは、こ
の時刻に零にそのリスト終端ポインタPtr_end
(IdCx)を有し、空白のリストを示す(これは図1
6に示す例でIdCx=2の場合である)。他の状況で
は、接続IdCxにより最も以前に受信したセルを蓄積
したロケーションCh_cell(i)の数iはリスト
開始ポインタPtr_start(IdCx)と等し
く、接続IdCxにより最も最近受信したセルを蓄積し
たロケーションの数はリスト終端ポインタPtr_en
d(IdCx)と等しい。接続IdCxに関するFIF
Oリストは継続ポインタにより連鎖される。リストの終
わりではないロケーションCh_cell(i)と組み
合わされた継続ポインタPtr_cont(i)は、そ
のリストでそれに続くロケーションCh_cell(P
tr_cont(i))を指定する。もしロケーション
Ch_cell(i)がリストの終わりであれば、Pt
r_cont(i)=Oにセットされる。図16の例に
おいて、IdCx=lと関連するリストはCh_cel
l(NCE−1)、Ch_cell(l)およびCh_
cell(3)であり、またIdCx=NCXと関連す
るリストはロケーションCh_cell(6)に縮小す
る。送出されるセルにより占有されていないメモリ42
のロケーションは空きロケーションのLIFOリストを
形成し、第1のロケーションはポインタPtr_fre
eにより指定され、後続のロケーションは連続した継続
ポインタにより指定される。図16の例において、空き
ロケーションのリストは出力順にCh_cell
(5)、Ch_cell(NCE)およびCh_cel
l(2)である。
【0084】図16のスペーサの分類ツリーの根は、ス
テージ0と組み合わされたコントローラ210の処理動
作を実行するスペーシングコントローラ41によりアク
セスできる(図2から図15)。ツリーの根に位置する
データ要素K(1)、R(1)は、図に示すようにポイ
ンタメモリ43に、あるいはコントローラ41の特殊レ
ジスタに蓄積することができる。コントローラ41はイ
ンタフェース・レジスタ261によりソーティング装置
44のステージ1からn−1とコマンドおよびパラメー
タを交換する。この例においてインタフェース・レジス
タ261は図9を参照して説明されたものに一致してい
る。
【0085】ソーティング装置44に供給される各デー
タ要素は、ソートキーK(i)に関して、リスト開始を
構成するメモリ42のロケーションに蓄積されたセルの
理論的送出時間から成り、またリファレンスR(i)に
関して、このセルが関係する仮想接続の識別情報IdC
xから成る。キーK(i)はしたがって、既に説明した
ように、Lビットのサイクリック・カウンタにより規定
できる時間タグである。無限大のキーを区別するために
1ビットをプラスした、例えばL=16ビットのカウン
タが、ATMスペーサへの応用に適している。リファレ
ンスR(i)はNCX=4096の接続に対して12ビ
ットでよい。
【0086】もしスペーサが実スペーサであれば、コン
トローラ41はツリーの根にあるキーK(1)を現在の
時刻taと比較し、もしK(l)≦taであれば、マネ
ージャ46にa=Ptr_start(R(l))を供
給し、その結果リストのスタートに位置するセルの中で
最小の理論的送出時間を有するセルが送出される。仮想
スペーサの場合には、コントローラ41は同じように動
作するが、現在の時刻との比較はしない。K(l)<∞
になり次第各周期にセルが送出される。
【0087】そのロケーションリストが空である(Pt
r_end(IdCx)=O)接続IdCxに関連する
セルが到着すると、このセルはロケーションCh_ce
ll(Ptr_free)に蓄積され、フリーロケーシ
ョンのリストは更新され、またコントローラ41は、リ
ファレンスがこのIdCxに対応し、ソートキーがこの
セルに対してモジュール40により計算されたTETで
あるデータ要素の分類ツリーの中に挿入を命令する。
【0088】ロケーションのリストが空ではない接続I
dCxに関するセルの到着は、分類ツリーの内容を修正
せず、ロケーションCh_cell(Ptr_fre
e)での蓄積と、また空きロケーションのリストと接続
IdCxと組み合わされたリストの更新のみを要求す
る。
【0089】ロケーションのリストがこの1つのセルを
含む接続IdCxに関するセルの送出は分類ツリーの対
応する要素の直接的抽出を必要とし、それは無限大のキ
ーを有する要素の交換に相当する。
【0090】ロケーションのリストがこのセルの後に1
つ以上のセルを含む接続IdCxに関するセルの送出
は、ツリーの対応する要素と、リファレンスがこのId
Cxに対応し、ソートキーがリストの第2の位置、すな
わちロケーションCh_cell(Ptr_cont
(Ptr_start(IdCx)))に蓄積されたセ
ルに割り当てられた理論的送出時間である新しい要素と
の交換を必要とする。
【0091】この後の場合において、新しい要素のキー
を形成する理論的送出時間は、リストの新しい開始に蓄
積されたセルに関してモジュール40により供給された
ものであり得る。したがって、セルが到着する時にモジ
ュール40により供給されたTET時間を蓄積すること
は有益である。しかしながら、コントローラ41がソー
ティング装置44に新しいデータ要素を供給する時に、
セルに対して理論的送出時間を再計算することが望まし
い。
【0092】この目的のために、メモリ43は、さまざ
まな仮想接続IdCxに割り当てられたスペーシング間
隔Tの値TT(IdCx)が蓄積された配列を含み、そ
の値をコントローラ41は当該接続によってセルが到着
する時モジュール40から受信する。K(l)≦taで
ある時、実スペーサはCh_cell(Ptr_sta
rt(R(l)))に蓄積されたセルを送出し、分類ツ
リーの根に位置する要素K(l)、R(l)を新しい要
素K(l)+TT(R(l))、R(l)と交換するこ
とを命令する。言い換えれば、リストの新しい開始に蓄
積されたセルの理論的送出時間は、送出されたセルの理
論的送出時間に当該接続に割り当てられた時間間隔TT
(IdCx)を加えたものに等しいとされる。
【0093】この手順は2つの利点を有する。第1は、
もしモジュール40が、接続IdCxに関する2つの連
続したセルに、そのそれぞれの到着時刻によってTT
(IdCx)よりいっそう離れている理論的送出時間T
ETを割り当てるならば、また第1のセルが送出された
時に、もしこれらの2つのセルの第2のセルがすでにメ
モリ42に書き込まれていれば、第2のセルの理論的送
出時間はモジュール40により計算された理論的送出時
間に対して進めることができ、その接続の後続のセルの
理論的送出時間も所要のスペーシング特性を阻害せずに
進めることができる。これは若干のセルの不要な遅延を
回避する。
【0094】第2の利点は、ある接続に割り当てられた
スペーシング間隔を動的に、かつただちに修正できるこ
とである。リンクの渋滞が輻輳の危険を生ずる時、この
柔軟性は若干の仮想接続に対して例えばスペーシング間
隔を増やすことができる。このスペーシング間隔の増加
は、メモリ42に含まれるこの接続セルに関する点を含
みただちに効力を発し、したがってセルは最初に計算さ
れたTETにしたがっては送出されないであろう。かく
して予防的方策の適用による避けられない輻輳へ導く可
能性がある遅延は回避される。当然、接続に対してスペ
ーシング間隔を増やす許可はこの接続が確立される時
に、同一のCDV許容誤差および情報源の同一挙動に対
してセルがポリシング機能により廃棄される確率が増加
することを仮定して、情報源(利用者)と合意に達しな
ければならない。
【0095】図18は、各セル期間の第1フェーズにお
いて図17の第2行に示す時間間隔200の間にコント
ローラ41により実行される動作を示す。
【0096】第1の段階201は、着信セルが問題のセ
ル期間内にスペーサに到達するか否かを決定し、もし妥
当であるならば、このセルが関連する接続の識別情報I
dCxを、理論的送出時間TETおよびモジュール40
によりこのセルに供給されたスペーシング間隔Tと共に
確認することから成る。
【0097】もし着信セルが受信されなければ、アドレ
スa=0が段階202においてセルメモリのマネージャ
46に供給され、その後、段階203において、コント
ローラ41はバイナリーツリーコマンド(A1=00)
の内容の修正の無いことをインタフェース・レジスタ2
1に書き込む。
【0098】もし着信セルが存在していれば、段階20
4においてフリーロケーション・ポインタPtr_fr
eeがポインタメモリ43から読み出され、アドレスa
に割り当てられ、段階202においてマネージャ46に
供給される。もしa=O(受信セル無し、あるいはメモ
リ42に多数の空きロケーションが存在する)ならば、
マネージャ46は現在のセル期間中はメモリ42に書き
込まず、スペーシングコントローラ41は前述の段階2
03を実行し、その結果バイナリーツリーの内容は変化
しない。他の状況では、コントローラ41はポインタ読
み込み段階205に進む。
【0099】段階205において、フリーロケーション
のリストの第2のロケーションの数Ptr_cont
(a)、接続IdCxに関するリストの開始の数Ptr
_start(IdCx)およびこのリストのポインタ
Ptr_end(IdCx)はそれぞれ変数b、cおよ
びdに割り当てられる。段階206において、スペーシ
ング間隔の配列TTは接続IdCxに対してモジュール
40から受信した値Tにより更新され、接続IdCxに
関するロケーションのリストの終わりに対するポインタ
としてアドレスaがメモリ43に書き込まれ、以後リス
トの終わりがあることを示すために、このロケーション
と組み合わされた継続ポインタPtr_cont(a)
は零にセットされ、フリーロケーション・ポインタPt
r_freeは変数bと共に更新される。
【0100】接続IdCxに関するロケーションのリス
トが空でなかったとすれば(すなわち比較207の間、
d≠Oであれば)、先に説明したように分類ツリーの内
容の修正は必要なく、その結果スペーシングコントロー
ラ41は、前のリストの終わりと組み合わされた継続ポ
インタを段階208において古いフリーロケーション・
ポインタと更新した後、前述の段階203を実行する。
Ptr_cont(d)=a。
【0101】もし比較207がd=Oを示せば、コント
ローラ41は段階209においてPtr_start
(IdCx)=aを書き込むことによりリストポインタ
の更新を完了する。コントローラは次に新しいデータ要
素TET、IdCxを分類ツリーの中へ挿入する。コン
トローラがそのために行う動作は、バイナリーツリーの
ステージ0のコントローラ260により行われた動作、
すなわち図12、図13および図6のフローチャートの
段階110から119に対応する。段階210におい
て、コントローラ41は変数kおよびrにソートキーK
(1)およびツリーの根において読み出したデータ要素
のリファレンスR(1)を割り当て、その後にコントロ
ーラはキーkを段階201においてモジュール40から
受信した理論的送出時間TETと比較する(比較21
1)。もしTET≧Kであれば、挿入コマンドは分類ツ
リーのステージ1に伝搬されなくてはならず、その結
果、段階212において、コントローラ41がA1=0
1、B1=TETおよびC1=IdCxをパイプラインレ
ジスタ261に書き込み、図16で示すように、レジス
タ261の葉指定フィールドはソーティング装置44の
最後のコントローラ21n-1から空きの葉G1の数を受信
する。
【0102】もし比較211がTET<Kを示せば、次
に新しいデータ要素TET、IdCxは、ツリーの根に
書き込まれる必要があり、これは段階216において実
行される。これに先だって、もしツリーの根に先に位置
されたソートキーkが無限大であれば(比較213)、
コントローラ41は段階214においてリセットコマン
ドA1=10をパイプラインレジスタ261の中へ伝搬す
る。他の状況では、コントローラ41は先に段階215
において根に位置された要素B1=k、C1=rのための
挿入コマンド(A1=01)をレジスタ261に書き込
む。
【0103】コントローラ41のソーティング装置44
との同期に関する限り、図18は、図7および図11の
参照して関係する時刻と対応する時刻αoが、コントロ
ーラ41によるパイプラインレジスタ261への書き込
みの段階203、212、214あるいは215の後に
起きることを示す。この時刻αoから開始して、ステー
ジ1のコントローラ211はコマンド(図17に示す時
刻α’1)の処理を始めることができる。
【0104】図19は、各セル期間の第2フェーズにお
いて図17の第2行に示す時間間隔300の間にコント
ローラ41により実行される動作を示す。
【0105】第1の段階301は、ソートキーK(l)
およびツリーの根に位置するデータ要素のリファレンス
R(l)の読み出しと、それらを変数kおよびrにそれ
ぞれ割り当てることから成る。次の比較302は、セル
を送出すべきか否かを決めるために動作する。実スペー
サの場合には、この段階302はソートキーkを現在時
刻taと比較することから成る。仮想スペーサの場合に
は、この段階302は単にキーkが有限であるか、無限
大であるかを調べることから成る。もしk>taならば
(実スペーサの場合)、バイナリーツリーコマンドA1
=00の内容に修正の無いことをパイプラインレジスタ
261に書き込むことを除いて(段階303)、コント
ローラ41はセル期間の第2フェーズにはなんら動作を
行わない。
【0106】もし段階302以降セルの送出が続くなら
ば、接続rに関連するリスト開始におけるロケーション
の数と、このロケーションと組み合わされた継続ポイン
タがメモリ43から読み出され、段階304において変
数aとbにそれぞれ割り当てられる。アドレスaはその
次に、段階305においてマネージャ46に供給され、
その結果、マネージャはこのアドレスに蓄積されたセル
を送出する(図17の第4行)。もしツリーの根に位置
する要素で識別された接続r=R(l)に関するロケー
ションのリストが単一のセルのみを収容していたなら、
変数bは0である。これは比較306により検出され
る。この場合に、リスト終端ポインタPtr_end
(r)は段階307において、このリストがもうセルを
含んでいないことを示すように零にセットされ、また段
階308において、バイナリーツリーで交換されるべき
新しい要素のソートキーを構成する無限大の値が理論的
送出時間TETに割り当てられる。
【0107】もし段階306においてb≠Oであれば、
ロケーションのリストはいくつかのセルを含み、変数b
はこのリストのスタートポインタとして段階309にお
いて書き込まれ、段階311において、ロケーションC
h_cell(b)に蓄積されたセルは段階301で読
み込まれたキーk=K(l)と等しい新しい理論的送出
時間TETを受信し、このTETには段階310で読み
取られた関連する接続のスペーシング間隔TT(r)と
等しくされた変数Tが加えられる。ツリーの根に位置す
る要素K(l)、R(l)を新しい要素B1=TET、
1=rと交換するためのコマンド(A1=11)が、段
階312において、パイプラインレジスタ261に書き
込まれる。
【0108】ソーティング装置44のコントローラ21
1がコマンドを処理し始めることができる時刻αoは、図
19が示すように段階312(あるいは段階303)の
後に位置される。スペーシングコントローラ41は、分
類ツリーのステージ1から返送された要素をレジスタ2
1の中に取り込む前に、時刻β’0≧β1(図17参
照)まで待たなくてはならない。図17に示す例におい
て、コントローラ41はインターバル〔α0、β’0〕に
おいてフリーロケーションのリストを更新し、段階31
3においてコントローラ41はフリーロケーション・ポ
インタPtr_freeを読み取り、変数cにそれを割
り当て、次に段階314において、コントローラはPt
r_cont(a)=cおよびPtr_free=aを
メモリ43に書き込む。
【0109】ツリーのステージ1のコントローラが最小
のキーを有する要素をレジスタ26 1に一旦返送する
と、この要素は段階315においてコントローラ41に
より読み出され、次に段階316においてツリーの根に
書き込まれる。
【0110】図20は仮想接続に割り当てられた優先権
インデックスを考慮に入れることができるATMセルス
ペーサの変形例を示す。1とUの間の値をとると考えら
れるこの優先権インデックスはuと示される。図20の
スペーサは、それぞれそのステージ0とそのステージ1
の間にパイプラインレジスタ261 (u)を有する、U個の
ソーティング装置44(u)を有する。各ソーティング装
置44(u)の動作は先に説明したものと同じである。各
バイナリーツリーの根はポインタメモリ43に含まれて
おり(その内容の残りは図20には表示されない)、ス
ペーシングコントローラ41により管理されると考えら
れる。セルメモリ42およびそのマネージャー46の動
作は、コントローラ41により供給されたアドレスaに
おけるセルの書き込みと読み出しの点で前述したものと
同じである。
【0111】各ソーティング装置44(u)は、リファレ
ンスR(u)(i)が同じ優先権インデックスuを有する
仮想接続IdCxの識別情報を指定するデータ要素を処
理する。これらの要素の中から、装置44(u)はその根
において(表示の例ではメモリ43の中で)、そのキー
(u)(1)が最小である要素を選択する。したがっ
て、最小のソートキーを示すツリーの根に位置するデー
タ要素のそれの中で、識別された接続に関連するリスト
の開始に含まれているセルの送出を命令するように、ス
ペーシングコントローラは工夫されている。いくつかの
最小ソートキーK(u )(1)が等しい場合、スペーシン
グコントローラ41は同順位の中で最大の優先権インデ
ックスを有する接続を選ぶ。
【0112】この優先権インデックスの管理方法は、ス
ペーシングコントローラ41を大幅に複雑にするもので
はない。セルの受信の際に実行される動作に関する限
り、図18のフローチャートは変わらず、段階210か
ら216は接続識別情報IdCxと同時にコントローラ
41により受信された優先権インデックスuに対応する
分類ツリー44(u)に関して実行される。
【0113】各セル期間の第2フェーズにおいて実行さ
れた動作に関する限り(図19)、ツリーの根に位置す
る要素を読み出し、この要素のキーを現在時刻と比較す
るための段階301、302が優先権インデックスの降
順に連続して、インデックスuについては、現在時刻に
到達したことを段階302が示すまで行される。この場
合に、段階304から316は変更無しに実行され、レ
ジスタ261 (u)への書き込み312と、レジスタ261
(u)からの読み出し315、および当該分類ツリーの根
への書き込み316が実行される。
【0114】図20の例において、U個のソーティング
装置は別個である。これらのさまざまなソーティング装
置が、その制御手段、すなわち、そのコントローラ2l
qおよびそのパイプラインレジスタ26qを共有できるこ
とが指摘される。図21はU=2の特定の場合につい
て、このような具体化例を示す。
【0115】図21の実施形態において、U=2の分類
ツリーはインタフェース・レジスタ26qとステージコ
ントローラ21qを共有する。ただその記憶ステージ2
q (1)、20q (2)(q≧O)のみが区別される。2つの
ステージ0はポインタメモリ43の中に含まれる。各ス
テージq≧lに対して、2つのツリーの対応するステー
ジ20q (1)、20q (2)がコントローラ21qにより管理
されるメモリの2つの別の領域により形成され、これら
は例えば二値の優先権インデックスから成り、したがっ
てパイプラインレジスタのフィールドDqの最高順位の
命令ビットを形成している追加のアドレスビットに基づ
いて識別される図22は、リンクのビット・レートがあ
まり高くない時(例えば155Mbit/sリンク)に
使用できるスペーサの異なる実施形態の動作を示す。こ
の変形例において、ソーティング装置は2つのコントロ
ーラを有し、一方はバイナリーツリーのステージ0から
n−p−1と組み合わされた21o、n-pであり、他方は
バイナリーツリーのステージn−pからn−1と組み合
わされた21n-p、pである。このソーティング装置にお
いて、抽出あるいは交換コマンドは前述のようにステー
ジ0からステージn−1へ伝搬され、一方挿入コマンド
はステージn−1からステージ0に向かって伝搬され
る。したがって、空きの葉の識別Gqを受信するため
に、差分カウンタあるいはインタフェース・レジスタに
ロケーションを設けることは不要である。
【0116】図22に示すように、各セル期間は、例え
ばセルメモリに任意のセルを書き込むフェーズとセルメ
モリから任意のセルを読み出すフェーズに対応する2つ
のフェーズIとIIに分けられる。第1のフェーズIの
始めに、スペーシングコントローラは、要素を分類ツリ
ーに挿入する理由およびこのツリーの要素を交換あるい
は抽出する理由があるか否かを調べる。もし妥当である
なら、第1のコントローラ21o、n-pは次に、ステージ
0からステージn−p−1まで交換コマンドの処理を開
始し、第2のコントローラ21n-p、pはステージn−1
からステージn−pまで挿入コマンドを伝搬することに
より挿入コマンドの処理を開始する。どの葉から挿入コ
マンドを伝搬するべきか確認するために、コントローラ
21n-p、 pはステージn−1のすべての空きの葉を指定
しているリストを保持し、その1つは挿入コマンドのス
タート点として機能するために(例えばLIFO手順に
より)選択される。
【0117】第2のフェーズIIにおいて、もし必要あ
れば、挿入コマンドはステージn−p−1からステージ
0までコントローラ21o、n-pによって伝搬され、一方
必要ならば、コントローラ21n-p、pは交換コマンドを
ステージn−pからステージn−1へ伝搬する。
【0118】インタフェース・レジスタ26n-pは、次
に分類ツリーの2つのコントローラの間のパイプライン
レジスタとして機能する。フェーズIおよびフェーズI
Iの間での2つのコントローラ間でのパラメータのいか
なる交換も、例えば、このパイプラインレジスタを2つ
に(1つのレジスタを上向きの方向に、また、1つのレ
ジスタを下向きの方向に)分割することにより可能であ
り、あるいはパラメータを一方向に交換し、引き続き他
の方向に交換することにより可能である。
【0119】図22に示す実施形態は、例えば最大N=
4096の仮想接続までサポートする155Mbit/
sリンクの場合に使用できる。したがって、分類ツリー
の大きさはn=12およびp=8に決めることができ、
ステージ0から3を監視する第1のコントローラ21
o、n-pはセルポインタを管理するスペーシングコントロ
ーラとおそらく統合可能である。
【図面の簡単な説明】
【図1】バイナリー分類ツリーの図である。
【図2】本発明の有用なソーティング装置の概略図であ
る。
【図3】図2の装置の各コントローラの環境を示す概略
図である。
【図4】図3のコントローラの動作を示すフローチャー
トである。
【図5】図3のコントローラの動作を示すフローチャー
トである。
【図6】図3のコントローラの動作を示すフローチャー
トである。
【図7】ソーティング装置の動作のタイミング図であ
る。
【図8】図3に類似し、コントローラの環境の点で可能
性のある変形例を示す図である。
【図9】図3に類似し、コントローラの環境の点で可能
性のある変形例を示す図である。
【図10】図9によるソーティング装置で用いられるシ
フト・レジスタを示す図である。
【図11】ソーティング装置の単純化されたタイミング
図である。
【図12】図9のコントローラの動作を示すフローチャ
ートである。
【図13】図9のコントローラの動作を示すフローチャ
ートである。
【図14】バイナリーツリーの最後のステージの特定の
場合における図12、図13および図6のフローチャー
トに対応するフローチャートである。
【図15】バイナリーツリーの最後のステージの特定の
場合における図12、図13および図6のフローチャー
トに対応するフローチャートである。
【図16】本発明を実現するATMセルスペーサの全体
図である。
【図17】図16のスペーサの動作のタイミング図であ
る。
【図18】ATMセルの受信および送出の際に図16の
スペーサのコントローラにより実行される動作を示すフ
ローチャートである。
【図19】ATMセルの受信および送出の際に図16の
スペーサのコントローラにより実行される動作を示すフ
ローチャートである。
【図20】本発明を実行するATMスペーサの変形例部
分図である。
【図21】本発明を実行するATMスペーサの変形例部
分図である。
【図22】図17のタイミング図に相当し、スペーサの
変形例を参照するタイミング図である。
【符号の説明】
1〜15 ノード 200〜203 メモリモジュール 211〜213 コントローラ 220〜223 バス 23 ロケーション 25 ロケーション 260〜263 インタフェース レジスタ 30 シフトレジスタ 40 モジュール 41 スペーシングゴントローラ 42 メモリ 43 メモリ 44 ソーティング装置 46 マネージャー 100〜126、130〜145、152〜158
段階 201〜216、301〜316 イテプ

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 それぞれデータ要素を含むことが可能で
    あり、0からn−1まで番号を付けられたn個の連続し
    たステージに分配され、ステージqはノード2qから2
    q+1−1を有する、1から2n−1まで番号を付けられた
    n−1個のノードを有するバイナリツリーにしたがっ
    て構成された記憶手段と、1から2nー1−1の間の各整
    数iに対して、ノードiが分類されるべき要素を含み、
    ノード2 iおよび2i+1のそれぞれは分類されるべき要素
    を含まないか、あるいは決められた順序関係の意味でソ
    ートキーがノードiに含まれている要素のソートキーよ
    りも大きいかまたはそれに等しい要素を含むように、順
    序付けの条件を満足するように、ツリーの中でソートさ
    れる要素を分散させるためのバイナリツリーの制御手段
    を有し、 前記制御手段はソートされる新しい要素を挿入するため
    のコマンドを含むバイナリツリーの内容を修正するコマ
    ンドに応答する、それぞれ個々のソートキーを有するデ
    ータ要素をソーティングする装置において、 前記制御手段が、それぞれステージ(20q)あるいは
    バイナリツリーの複数の連続したステージと組み合わさ
    れた、mが2からnの間の整数であるm個の連続したコ
    ントローラ(21q)と、連続したステージ間のn−1
    個のインタフェース・レジスタ(26q)を有し、前記
    (n−1)個のインタフェース・レジスタの中で異なる
    コントローラと組み合わされたステージ対の間のm−1
    個のインタフェース・レジスタの各々がパイプラインレ
    ジスタを構成し、バイナリツリーの内容を修正するため
    の各コマンドはステージ0からステージn−1へ前記イ
    ンタフェース・レジスタにより伝搬され、パイプライン
    レジスタは前記コントローラの並行動作を許容すること
    を特徴とする、データ要素のソーティング装置。
  2. 【請求項2】 1からn−1の間の各整数qに対して、
    ステージq−1とステージqの間の前記インタフェース
    ・レジスタ(26q)が、ステージq−1のノードから
    ステージqのノードへ伝搬されるコマンド(Aq)を受
    信するための第1のロケーションと、組合されたコント
    ローラ(21qー1)が前記コマンドの処理の間にアクセ
    スするステージq−1の前記ノードの識別情報(Dq
    を受信するための第2のロケーションと、ステージq−
    1の前記ノードから送信されたか、あるいはステージq
    −1の前記ノードへ送信されるデータ要素(Bq、Cq
    を受信するための第3のロケーションとを有する請求項
    1に記載の装置。
  3. 【請求項3】 1からn−1の間の各整数qに対して、
    ステージq−1とステージqの間の前記インタフェース
    ・レジスタ(26q)が、第2のロケーションに含まれ
    る識別情報(Dq)により、もし前記コマンドがツリー
    の中への新しい要素の挿入に関するものならば、前記コ
    マンドが伝搬され、また対応するコントローラ(2
    q)が第1のロケーションに含まれるコマンド(Aq
    の処理の間にアクセスするステージqのノードを指定す
    るビット(Eq)を受信するための第4のロケーション
    を有する請求項2に記載の装置。
  4. 【請求項4】 1からn−1の間の各整数qに対して、
    ステージq−1とステージqの間の前記インタフェース
    ・レジスタ(26q)の第2および第4のロケーション
    が、新しい要素を挿入するためのコマンドの伝搬の間
    に、空きの葉の数のn−1個の最下位ビットを含むn−
    1ビットの葉指定フィールド、すなわち、前記コマンド
    が伝搬される、ステージn−1の空きのノードの一部を
    形成し、前記コマンドが伝搬されるステージqのノード
    は葉指定フィールドの内容のq個の最高位のビットによ
    り指定される請求項3に記載の装置。
  5. 【請求項5】 ツリーのステージn−1と組み合わされ
    たコントローラ(21nー1)が、各葉に向かって新しい
    要素を挿入するためのコマンドが現在ツリーの中で伝搬
    されつつある各々の葉を含む空きの葉の指定された番号
    n’を含む空きの葉の第1のリストと、第1のリストに
    含まれていない空きの葉を含む空きの葉の第2のリスト
    を管理し、 ステージ0と1の間のインタフェース・レジスタの第1
    のロケーションにソートされる新しい要素を挿入するた
    めのコマンドを登録する間に、各々の葉と異なりそれに
    向かってツリーの中で他の挿入コマンドが現在伝搬され
    つつある、第1のリストの空きの葉の数のn−1個の最
    下位ビットがステージ0と1の間のインタフェース・レ
    ジスタの葉指定フィールドの中に登録され、 ツリーの葉からの要素の抽出の間、前記葉は空きの葉の
    第2のリストに含まれ、 新しい要素を挿入するためのコマンドがステージn−2
    とn−1の間のインタフェース・レジスタ(26nー1
    の中のステージn−1に到達する時、対応するコントロ
    ーラ(21nー1)が空きの葉の第1のリストから前記イ
    ンタフェース・レジスタの葉指定フィールドのn−1個
    のビットにより指定された葉(Gnー1)を除去し、それ
    を第2のリストからの葉(P)に置換する請求項4に記
    載の装置。
  6. 【請求項6】 n’<nである請求項5に記載の装置。
  7. 【請求項7】 空きの葉の第1のリストが、それぞれが
    葉の数のn−1個の最下位ビットを受信するn’個のロ
    ケーションを有するそれ自身ループバックされるシフト
    ・レジスタ(30)に記憶される請求項5または6に記
    載の装置。
  8. 【請求項8】 空きの葉の第2のリストが後入れ先出し
    形式でポインタの連鎖の形で格納され、各ポインタは葉
    の数を表し、連鎖の第1のポインタ(P)は特定のロケ
    ーションに格納され、連鎖のi番目のポインタ(i≧
    2)は番号が連鎖のi−1番目のポインタで表される葉
    に格納されている請求項5、6、7のいずれか1項に記
    載の装置。
  9. 【請求項9】 第1および第2のリストは少なくとも
    n’個のロケーションを有する先入れ先出し形式の論理
    待ち行列の形式で格納され、第1のリストは、論理待ち
    行列の最後のn’個のロケーションと論理待ち行列の先
    行するロケーションの第2のリストから成る請求項5ま
    たは6に記載の装置。
  10. 【請求項10】 pはm番目のコントローラと組み合わ
    されているバイナリツリーのステージの数であって1以
    上n−1未満であり、前記記憶手段がiが1から2
    nーpー1−1の範囲であるツリーのノード2iと2i+1の対
    とそれぞれ組み合わされた差分カウンタ(Δ(i))を
    含むための少なくとも2nーpー1−1個のロケーション
    (25)を有し、一対のノードと組み合わされた各差分
    カウンタが前記対の2つのノードの子孫にそれぞれ含ま
    れる、データ要素の数の間の差を示す値を有し、ステー
    ジqのノードiの子孫がバイナリツリーの2nーq−1個
    のノードと規定されており、その数はi2j+j’(j
    およびj’は0≦j<n−qおよび0≦j’<2jのよ
    うな整数)の形であって、 ステージq−1とステージq(1≦q<n−p)の間の
    インタフェース・レジスタ(26q)が、新しい要素を
    その第1のロケーションに、またステージq−1のノー
    ドiの識別情報(Dq)をその第2のロケーションに挿
    入するコマンド(Aq)を受信する時に、ノード2i
    よび2i+1の対と組み合わされた差分カウンタ(Δ
    (i))の値に応じて前記挿入コマンドがステージqの
    ノード2iあるいは2i+1に伝搬される請求項2または3
    に記載の装置。
  11. 【請求項11】 1つのステージのノードの対と組み合
    わされた差分カウンタ(Δ(i))を含む記憶手段のロ
    ケーション(25)が、前記ステージのノードと同じコ
    ントローラによりアクセス可能である請求項10に記載
    の装置。
  12. 【請求項12】 前記記憶手段は、iが1から2nー1
    1の範囲である、ツリーのノード2iと2i+1の対とそれ
    ぞれ組み合わされたステアリングビット(F(i))を
    含むための2nー1−1個のロケーション(23)を有
    し、前記対のノードの1つを指向する一対のノードと組
    み合わされた各ステアリングビットが、ソートキーが前
    記対の他のノードに含まれる要素のソートキー以下であ
    る要素を含み、 ステージq−1とステージq(1≦q≦n−1)の間の
    インタフェース・レジスタ(26q)が、その第1のロ
    ケーションにおいて要素を抽出あるいは交換するための
    コマンド(Aq)を、またその第2のロケーションにお
    いてステージq−1のノードiの識別情報(Dq)を受
    信する時、前記抽出あるいは交換コマンドが、ノード2
    iおよび2i+1の対と組み合わされたステアリングビット
    (F(i))の値に応じて、ステージqのノード2i
    るいは2i+1に伝搬される請求項2から11のいずれか
    1項に記載の装置。
  13. 【請求項13】 1つのステージのノードの対と組み合
    わされたステアリングビット(F(i))を含む記憶手
    段のロケーション(23)が、前記ステージのノードと
    同じコントローラによりアクセス可能である請求項12
    に記載の装置。
  14. 【請求項14】 複数の仮想接続にしたがって送信され
    るATMセルのスペーサであって、着信セルが書き込ま
    れ、発信セルが読み出されるセルメモリ(42)と、前
    記セルメモリに記憶された各セルに理論的送出時間(T
    ET)を割り当てる手段(40、41)とを有する複数
    の仮想接続に応じて送信されるATMセルのスペーサに
    おいて、 仮想接続がセルを収容している各仮想接続に対して、前
    記セルがリストの始めとリストの終わりの間で先入れ先
    出しモードで格納されるロケーションのリストをセルメ
    モリが有するように関連するポインタメモリ(43)の
    助けにより、セルメモリ(42)を管理するスペーシン
    グ制御手段(41、46)と、 仮想接続識別情報と、前記仮想接続に関するリストの始
    めに含まれているセルの理論的送出時間から成るソート
    キーを各々が有するデータ要素(K(i)、R(i))
    を順序づけ、最小のソートキーを有する少なくとも1つ
    のデータ要素を選択するソーティング手段(41、4
    4)をさらに有し、 前記スペーシング制御手段は、前記ソーティング手段に
    より選択されたデータ要素における識別された仮想接続
    に関するリストの始めに含まれたセルの送出を命令する
    するように構成され、前記ソーティング手段は、請求項
    1から13までのいずれか1項に記載のソーティング装
    置であって、ステージ0のそのノード1が前記選択され
    た要素を含むソーティング装置を少なくとも1つ有する
    ATMセルのスペーサ。
  15. 【請求項15】 セルメモリに記憶された各セルに理論
    的送出時間を割り当てる手段が、前記セルの到着時刻
    (ta)と前記接続に割り当てられたスペーシング間隔
    (T)とを少なくとも含むパラメータに基づいて、仮想
    接続に関連する各セルに対する理論的送出時間(TE
    T)を回帰的に計算する手段(40)を有し、 前記ソーティング手段(41、44)は、前記セルメモ
    リ(42)がセルを含んでいない仮想接続に関連するセ
    ルが到着すると、前記仮想接続の識別情報を有する新し
    いデータ要素、およびソートキーとして、前記回帰的計
    算手段(40)によって供給された前記セルの理論的送
    出時間を受け取り、 前記ソーティング手段は、少なくとも1つの第2のセル
    をさらに含むロケーションのリストを前記セルメモリが
    有する仮想接続に関連する第1のセルを送出すると、前
    記仮想接続の識別情報を有する新しいデータ要素、およ
    びソートキーとして、前記第1のセルの理論的送出時間
    と前記接続に割り当てられたスペーシング間隔との和に
    等しい前記第2のセルの理論的送出時間を受け取る請求
    項14に記載のスペーサ。
  16. 【請求項16】 優先権インデックス(u)が仮想接続
    に割り当てられ、前記ソーティング手段はそれぞれ同様
    の優先権インデックスの仮想接続の識別情報を有するデ
    ータ要素を処理し、またそれぞれそれが処理するデータ
    要素の中から最小のソートキー(K(u)(1))を有す
    る要素を選択するいくつかの、請求項1から13までの
    いずれか1項に記載のソーティング装置(44(u))を
    有し、前記スペーシング制御手段は、最小のソートキー
    を示す選択されたデータ要素の1つに、あるいは、複数
    のソーティング装置がそれぞれそのソートキーが最小で
    あるデータ要素を選択するならば、前記複数のソーティ
    ング装置により選択された優先権インデックスが最高で
    あるデータ要素の1つにおける識別された接続に関連す
    るリスト開始に含まれているセルの送出を命令するよう
    に構成されている請求項14または15に記載のスペー
    サ。
  17. 【請求項17】 種々のソーティング装置の各々が、そ
    れぞれの記憶手段(20q (1)、20q (2)を有し、またそ
    の制御手段(21q、26q)を共有する請求項16に記
    載のスペーサ。
JP13058598A 1997-05-13 1998-05-13 バイナリツリーデータ要素ソーティング装置およびatmスペーサ Expired - Lifetime JP3905221B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR97/05828 1997-05-13
FR9705828A FR2763410B1 (fr) 1997-05-13 1997-05-13 Dispositif de tri d'elements de donnees a arbre binaire et espaceur atm comportant un tel dispositif

Publications (2)

Publication Number Publication Date
JPH10336216A true JPH10336216A (ja) 1998-12-18
JP3905221B2 JP3905221B2 (ja) 2007-04-18

Family

ID=9506816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13058598A Expired - Lifetime JP3905221B2 (ja) 1997-05-13 1998-05-13 バイナリツリーデータ要素ソーティング装置およびatmスペーサ

Country Status (7)

Country Link
US (1) US6181678B1 (ja)
EP (1) EP0878758B1 (ja)
JP (1) JP3905221B2 (ja)
CA (1) CA2237276C (ja)
DE (1) DE69817672T2 (ja)
ES (1) ES2206862T3 (ja)
FR (1) FR2763410B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886082B1 (en) 1999-11-22 2005-04-26 Turbo Data Laboratories, Inc. Information processing system
WO2007004430A1 (ja) * 2005-06-30 2007-01-11 Fujitsu Limited データソート処理プログラム、データソート処理方法およびデータソート処理装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6411957B1 (en) * 1999-06-30 2002-06-25 Arm Limited System and method of organizing nodes within a tree structure
JP2001060967A (ja) * 1999-08-23 2001-03-06 Fujitsu Ltd パケットスイッチ装置
US7496572B2 (en) * 2003-07-11 2009-02-24 Bmc Software, Inc. Reorganizing database objects using variable length keys
US7412444B2 (en) * 2004-02-11 2008-08-12 Idx Systems Corporation Efficient indexing of hierarchical relational database records
GB0524845D0 (en) * 2005-12-06 2006-01-11 Univ Belfast Sorting apparatus and method
CN101521627B (zh) * 2009-04-13 2011-10-05 华为技术有限公司 插入节点的方法和装置
US9268863B2 (en) * 2014-06-03 2016-02-23 International Business Machines Corporation Hierarchical in-memory sort engine
US11048475B2 (en) 2017-11-30 2021-06-29 International Business Machines Corporation Multi-cycle key compares for keys and records of variable length
US10936283B2 (en) * 2017-11-30 2021-03-02 International Business Machines Corporation Buffer size optimization in a hierarchical structure
US10896022B2 (en) 2017-11-30 2021-01-19 International Business Machines Corporation Sorting using pipelined compare units
US11354094B2 (en) 2017-11-30 2022-06-07 International Business Machines Corporation Hierarchical sort/merge structure using a request pipe

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4131947A (en) * 1976-08-06 1978-12-26 Armstrong Philip N Random access digital sorter
JP2736092B2 (ja) 1989-01-10 1998-04-02 株式会社東芝 バッファ装置
US5168567A (en) * 1989-05-30 1992-12-01 Tektronix, Inc. Data sorting circuit
FR2657482B1 (fr) 1990-01-19 1993-12-31 Boyer Pierre Methode et systeme de lissage et de controle de debits de communications temporelles asynchrones.
DE59105393D1 (de) 1991-02-01 1995-06-08 Siemens Ag Verfahren zur Überwachung und Glättung von Datenströmen, die nach einem asynchronen Übertragungsverfahren übertragen werden.
FR2674084B1 (fr) 1991-03-13 1993-12-24 Michel Servel Dispositif de declenchement de temporisations multiples.
DE4128411A1 (de) 1991-08-27 1993-03-04 Siemens Ag Anordnung zur bitratenueberwachung in atm-netzen
ATE144667T1 (de) 1991-08-27 1996-11-15 Siemens Ag Anordnung zur bitratenüberwachung in atm-netzen
EP0544034A1 (de) 1991-11-28 1993-06-02 Siemens Aktiengesellschaft Verfahren zur Wiederherstellung der Reihenfolge von Nachrichtenzellen
FR2686205B1 (fr) 1992-01-14 1994-03-25 Pierre Boyer Methode de controle de debit de cellules.
US5402426A (en) 1992-04-23 1995-03-28 Siemens Aktiengesellschaft Method and arrangement for checking the observance of prescribed transmission bit rates in an ATM switching equipment
ATE171026T1 (de) 1992-06-30 1998-09-15 Siemens Ag Modifiziertes leaky-bucket-verfahren
US5748780A (en) * 1994-04-07 1998-05-05 Stolfo; Salvatore J. Method and apparatus for imaging, image processing and data compression
US5668897A (en) * 1994-03-15 1997-09-16 Stolfo; Salvatore J. Method and apparatus for imaging, image processing and data compression merge/purge techniques for document image databases
GB2288097B (en) 1994-03-23 1998-09-23 Roke Manor Research ATM queuing and scheduling apparatus
US5533020A (en) 1994-10-31 1996-07-02 International Business Machines Corporation ATM cell scheduler

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886082B1 (en) 1999-11-22 2005-04-26 Turbo Data Laboratories, Inc. Information processing system
WO2007004430A1 (ja) * 2005-06-30 2007-01-11 Fujitsu Limited データソート処理プログラム、データソート処理方法およびデータソート処理装置
US8122064B2 (en) 2005-06-30 2012-02-21 Fujitsu Limited Computer program, method, and apparatus for data sorting

Also Published As

Publication number Publication date
US6181678B1 (en) 2001-01-30
DE69817672T2 (de) 2004-07-08
FR2763410A1 (fr) 1998-11-20
EP0878758A1 (fr) 1998-11-18
CA2237276C (en) 2007-01-09
ES2206862T3 (es) 2004-05-16
DE69817672D1 (de) 2003-10-09
EP0878758B1 (fr) 2003-09-03
CA2237276A1 (en) 1998-11-13
FR2763410B1 (fr) 1999-07-23
JP3905221B2 (ja) 2007-04-18

Similar Documents

Publication Publication Date Title
US5859835A (en) Traffic scheduling system and method for packet-switched networks
US6128303A (en) Asynchronous transfer mode cell processing system with scoreboard scheduling
US5748631A (en) Asynchronous transfer mode cell processing system with multiple cell source multiplexing
US5835494A (en) Multi-level rate scheduler
EP0702500B1 (en) Method of multicasting and multicast system
JP3905221B2 (ja) バイナリツリーデータ要素ソーティング装置およびatmスペーサ
JPH0856230A (ja) スイッチングシステム
JPH0879264A (ja) 帯域規制装置及びパケット通信装置
JPH1093591A (ja) Atmセルを最適に伝送する方法
JP2003501898A (ja) 複数のビデオストリームをそれぞれのビューアのセットに送るための共有制御回路を有するスケーラブルビデオシステム
US6728256B1 (en) Shared buffer control device
US5748630A (en) Asynchronous transfer mode cell processing system with load multiple instruction and memory write-back
JPH0779234A (ja) セル切替えシステムのノードのための再順序づけ装置
JPH09179743A (ja) エレメントをソートする方法および装置
JP2820106B2 (ja) トラヒックシェーパ装置
JP3901840B2 (ja) Atmセルスペーサ
JPH0818576A (ja) 通信システム
US7567572B1 (en) 2-rate scheduling based on search trees with configurable excess bandwidth sharing
US5794025A (en) Method and device for performing modulo-based arithmetic operations in an asynchronous transfer mode cell processing system
US5860148A (en) Asynchronous transfer mode cell processing system with cell buffer space gathering
JP3435244B2 (ja) 通信制御装置
JPH06224933A (ja) バッファメモリ装置
KR100380236B1 (ko) 에이티엠 계층의 가중순차방식 스케쥴러 장치 및 그제어방법
JP3673114B2 (ja) セル送出管理装置
JPH0832590A (ja) バッファメモリ読出し順序決定回路及び決定方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050513

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100119

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term