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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, 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
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
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
を提供する。 【解決手段】 それぞれソートキーを含むデータ要素を
ソートするために、記憶手段が、それぞれ要素を含むこ
とが可能であり、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
素を含むことが可能であり、0からn−1まで番号を付
けられたn個の連続したステージに分配され、ステージ
qはノード2qから2q+1−1を有する、1から2n−1
まで番号を付けられた2n−1個のノードを有するバイ
ナリツリーにしたがって構成された記憶手段と、1から
2nー1−1の間の各整数iに対して、ノードiが分類さ
れるべき要素を含み、ノード2iおよび2i+1のそれぞれ
は分類されるべき要素を含まないか、あるいは決められ
た順序関係の意味でソートキーがノードiに含まれてい
る要素のソートキーよりも大きいかまたはそれに等しい
要素を含むように、順序付けの条件を満足するように、
ツリーの中でソートされる要素を分散させるためのバイ
ナリツリーの制御手段を有する、それぞれソートキーを
有しデータ要素をソートする装置に関する。
コンピュータ化されたソーティングの分野で「ヒープソ
ート」と言われるものに対応する。この点に関して、K
nuthによる著作「コンピュータプログラミング技
法、第3巻、分類および探索」(アディソン・ウェスリ
ー、1973年、142−157ページ)を参照された
り。
序付けの条件を満足するデータ要素(データ要素のうち
ソートキーのみが表示されている)を含む15個のノー
ド1−15を有する分類ツリーを示す。
は頂点と言われる。ステージ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で矢印により示されている。
図1に示されている例では、自然数間のよく知られた順
序関係であり、ソートキーの昇順に分類可能である。降
順で分類の場合には、キーの間の順序関係を逆転すれば
十分なことは明らかである。図1において、ソートされ
る要素により占められていないツリーのノードは、それ
ぞれそのソートキーが無限大である要素を含むと見なさ
れる、すなわち、ソートされるデータ要素のどのソート
キーよりも大きい。無限大のキーをコード化する1つの
可能性は、この目的のキーを含むデータフィールドの1
ビットを残してかくことである。もしこのビットが1で
あればキーは例えば無限大であると見なされ、そうでな
ければ有限と見なされる。換言すれば、このビットはノ
ードが空きであるか、あるいはデータ要素により使用さ
れているかを示す。
N<2nの集合によりロードされると、ソーティング装
置はこれらのN個の要素を連続的にNサイクルでソート
キーの順番に転送できる。サイクルの間にツリーから要
素を抽出することは、ツリーの根に位置する要素を読み
取ることと、常に順序付けの条件を満足させるような方
法でその家系の要素を追跡することから成る。したがっ
て、図1に示された場合において、第1のサイクルは根
に位置する要素16を読み取ること、および、要素24
を根へ、次に要素38をノード2へ、最後に要素623
をノード4へ移動することから成る。これは根から葉に
向かって抽出コマンドを伝搬することになる。
要素をツリーに挿入するコマンドに応答できることは制
御手段にとってさらに必要である。したがって、ソーテ
ィング装置は各サイクルにおいてソートされる要素を転
送または受信することができる。ソーティング装置は、
使用される順序関係にしたがって管理され、時間タグあ
るいは優先権インデックスの他の任意の型式を表現する
であろうソートキーの基本原理でダイナミックな待ち行
列として作動する。
ードのレベルにおいて2つの子のどちらにコマンドが伝
搬されるべきかはアプリオリに判断できないので、挿入
コマンドはツリーの根から葉まで伝搬されず、2人の子
の一方の子孫が完全に満たされていてしたがってコマン
ドの受信には不適当であるかもしれないことが十分理解
されよう。したがって、挿入コマンドはツリーの葉から
根まで伝搬される。例えば、ソートキーが28である要
素を図1のツリーに挿入するためには、それはツリーの
空きの葉、例えば葉9に書き込まれ、より高次のノード
に含まれる要素と順次比較される。かくして、考慮中の
例では要素28および38は順序付けを再確立するため
に交換される。
要素がツリーから抽出される時に、先行するサイクルが
完了していなければならない。したがって、装置がデー
タ要素を転送あるいは受信できる速度は、コマンドを処
理するサイクルの持続時間により制限され、これはステ
ージの数n、すなわちソートされる要素の最大値Nの対
数に比例する。この数Nが大きく例えば数千であり、ま
た高速度、例えば毎秒500,000要素以上が必要な
応用例では、ソーティング装置を既存の電子回路で組み
立てることはできない。
よる論文「実時間ソータのATMトラフィック制御への
応用」( Proc. ISS '95、1995年4月、第1巻、2
58−262ページ)は上述の速度限界による影響を受
けないソーティング装置、すなわちソートされる要素の
最大の数とアプリオリに独立な速度で要素の転送と受信
が可能なソーティング装置について説明している。しか
しながら、後者の装置の欠点は並列に動作する論理回路
の数がNに比例することである。ひとたびソートされる
要素の数Nが大きくなると(論文で予測されたATMセ
ルスペーサへの応用の場合のように数千あるいは数万
も)、装置のハードウェアの複雑性は大きなものとな
る。
のソーティング装置を提供することである。
ソートされる新しい要素を挿入するためのコマンドを有
し、バイナリツリーの内容を修正するコマンドに応答す
る、冒頭に示した種類の装置を提案する。本発明によれ
ば、制御手段は、それぞれ1つのステージあるいは、バ
イナリツリーの複数の連続したステージと組み合わされ
た、mが2からnの間の整数であるm個の連続したコン
トローラと、連続したステージ間のn−1個のインタフ
ェース・レジスタを有し、n−1個のインタフェース・
レジスタ間で異なるコントローラと組み合わされたステ
ージ対の間のm−1個のインタフェース・レジスタの各
々がパイプラインレジスタを構成し、バイナリツリーの
内容を修正するための各コマンドはステージ0からステ
ージn−1へインタフェース・レジスタにより伝搬さ
れ、パイプラインレジスタはコントローラの並行動作を
許容する。
のステージの数n、すなわちソートされる要素の最大の
数の対数や等しいコントローラの数mによって制限さ
れ、限定されている。コントローラのパイプライン構成
は並列動作およびソートされる要素の高速入出力を許容
する。この速度はソートされる要素の数に依存しない。
この速度は、コントローラの数mがステージの数nと等
しい時に最大となる。
多数のデータ要素の高速ソーティングが要求される時
に、さまざまな用途を有する。したがって、ソーティン
グ装置はどのようなコンピュータ・システムに対しても
コプロセッサ・ソーティング・カードの形式で構成する
ことができる。用途の興味ある分野はプロセスの順序付
けであり、その場合ソートキーはプロセスを始動するよ
うに要求される時刻を表す。かくして最も「緊急の」要
素を各時刻にツリーから抽出できる。
の分野で特に有利な用途を有する。したがって、本発明
の第2の局面は、着信セルが書き込まれ発信セルが読み
出されるセルメモリと、セルメモリに書き込まれた各セ
ルに理論的送出時間を割り当てる手段とを有する複数の
仮想接続によって送信されるATMセルのスペーサを提
案する。本発明によれば、スペーサはさらに、仮想接続
がセルを収容している各仮想接続に対して、これらのセ
ルがリストの開始とリストの終わりの間で先入れ先出し
モードで蓄積されるロケーションのリストをセルメモリ
が有するように関連するポインタメモリの助けにより、
セルメモリを管理するスペーシング制御手段と、仮想接
続識別情報と、前記仮想接続に関するリストの開始に含
まれているセルの理論的送出時間から成るソートキーを
各々が有するデータ要素(K(i)、R(i))を順序
づけ、最小のソートキーを有する少なくとも1つのデー
タ要素を選択するソーティング手段を有し、スペーシン
グ制御手段は、ソーティング手段により選択されたデー
タ要素において識別された仮想接続に関するリストの開
始に含まれたセルの送出を命令するするように構成され
ており、ソーティング手段は、上に規定したようなソー
ティング装置であって、ステージ0のそのノード1が前
記選択された要素を含むソーティング装置を少なくとも
1つ有する。
ージを有する図1のバイナリーツリーにしたがって構成
されたメモリ200−203に収容されるソーティング装
置を示す。
ローラのセットにより制御される。ここで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参照)。
は、ノード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である。
ジqの一対の姉妹ノード2iおよび2i+lと組み合わ
された差分カウンターΔ(i)を含み、その値は、左方
向姉妹2iの子孫に含まれるデータ要素の数と、右方向
姉妹2i+1の子孫に含まれるデータ要素の数との差に
より与えられる。
は交換コマンドをツリーの根から葉まで伝搬するように
動作するのに対して、一方差分カウンターΔ(i)は挿
入コマンドをツリーの根から葉まで伝搬するように動作
する。
−1=3個のインタフェース・レジスタ261−263を
有し、各レジスタ26qはステージq−1のコントロー
ラ21q-1とステージqのコントローラ21qの間のイ
ンターフェイスとして動作する。さらに図2の基本的な
図には、ステージ0のコントローラ210とソーティン
グ装置の環境との間でインターフェイスとして動作する
レジスタ260が示されている。ソーティング装置に送
られたコマンドは、ソーティング装置により供給される
レスポンスであるとして、このレジスタ260に書き込
まれる。実際には、このレジスタ260はツリーの上の
ステージのコントローラ210と同じ回路に属すること
ができる。
ツリーの根から葉まで伝搬するコマンドの性質を指定す
るコマンドコード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
Dqから成る。
マンドAo=O1およびこの新しい要素Bo、Coがレジ
スタ260に書き込まれ、次にコマンドがツリーの根か
ら葉まで伝搬される。交換を行うために、コマンドAo
=11およびレジスタ260に挿入される要素Bo、Co
(直接抽出の場合にはBo=∞である)が書込まれ、そ
の後に最小のキーを有する要素はレジスタ260のロケ
ーションBoおよびCoの中に取り出される。
作は図4、5および6のフローチャートに示される。こ
れらの動作を実行するために、各コントローラ2lqは
適切にプログラムされた高速論理ゲートのネットワーク
の形式で作られる。動作は本質的に読み取り/書き込
み、インクリメント/デクリメント、バイナリーコード
化された変数の比較であるので、ゲートネットワークの
このプログラミングには問題が無い。
0)からまず読み取られ、次いでコマンドの型式を識別
するように評価される(段階101)。 修正無しの場
合には(Aq=00)、コントローラ2lqは同じコマン
ドAq+1=00を次のレジスタ26q+1(段階102)に
単に書込む。
は、親の識別Dqは変数sに割り当てられ(段階10
3)、コントローラ2lqはその数のバイナリー法表示
がlsOおよびlslである2つの子ノードを初期化
し、一方、段階102においてコマンドAq+1=00を
伝搬する前にそのソートキーを無限大にセットし、対応
する差分カウンタΔ(1s)に値0を置く(段階10
4)。ステージ0の特定の場合には、リセットは単にK
(l)=∞を書き込むことから成る。
Aqが、親ノード1Dq(Aq=01)からの新しい要素
Bq、Cqの挿入を表わすと、これらのパラメータBq、
CqおよびDqはコントローラ2lqによりそれぞれ読み
取られ、段階105において変数k、rおよびsに割り
当てられ、その後識別されたノードの子と組み合わされ
た差分カウンタΔ(1s)は、段階106において変数
δに割り当てられる。
の子は左方向の子より多くの子孫を有し、挿入コマンド
が左方向の子に伝搬されるように、左方向の子の子孫の
中に新しい要素を受信可能な少なくとも1つのノードが
ある。ビットtは0に等しいとされ、また変数δは段階
108において1段階インクリメントされる。逆に、も
しδ>Oであれば、ビットtは1に等しいとされ、挿入
コマンドが右方向の子に伝搬するように、変数δは段階
109において1段階デクリメントされる。段階110
において、ソートキーK(lst)および処理済みの、
すなわちコマンドが伝搬されるノードに含まれるデータ
要素のリファレンスR(lst)は読み取られ、それぞ
れ変数k’およびr’に割り当てられる。
テージq+lに伝搬される要素w、xが処理済みのノー
ドから読み込まれたk’、r’と段階112において等
しいとされるように、処理済みのノードは挿入されるデ
ータ要素より大きいソートキーを含む。もしk’≦kで
あれば、送信される要素w、xは段階113でレジスタ
26qから読み込まれたそのk、rと段階113におい
て等しいとされ、次に変数k、rはそれぞれ変数k’、
r’の値を受信する。
大であれば(比較114)、これは挿入コマンドがもは
や伝搬される必要がないからである。次にプロセッサ2
lqは段階115において変数v’に値10(再初期設
定)を与える。もし送信されるキーwが有限であれば、
変数v’は挿入コマンドを示すように段階116におい
て値01を受信する。プロセッサ2lqは続いて、段階
117においてAq+1=v’、Bq+1=w、Cq+1=xお
よびDq+1=stを書き込むことによりレジスタ26q+1
を満たすことができる。
もはやコントローラ2lqにそのインタフェース・レジ
スタ26q、26q+1にアクセスするように要求せず、単
に処理中のメモリ領域20qへのアクセスを要求する。
段階118において、それは変数δの新しい値を書き込
むことにより差分カウンタΔ(1s)を更新する。次
に、段階119において、それはK(lst)=kおよ
びR(lst)=rをそこに書き込むことにより、処理
済みのノードのデータ要素を更新する。
にコントローラ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と
見なす。
マンドAqの処理を完了し、レジスタ26qから発信さ
れている次のコマンドを処理するために、段階100に
戻ることができる。
がステージ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’に割り
当てられる。
ら読み込んだデータ要素のソートキーより大きいソート
キーを含むなら(比較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をとる(交換
コマンドの伝搬)。
み、要素w’、x’をインタフェース・レジスタ26q
のロケーションBqおよびCqに書き込む。
lqは次に段階137を実行しインタフェース・レジス
タ26q+1に書き込む:Aq+1=v’、Bq+1=k、Cq+1
=rおよびDq+1=st。
なければ、すなわち、もし比較138がv’≠11を示
せば、コントローラ2lqによる交換コマンドの処理は
書き込み段階137の後に終了される。他の状況では、
プロセッサ2lqは段階139に進み、ステージq+l
に送信したキーkが無限大であるか否かを調べる。
マンドは実際に直接抽出コマンドであり、処理済みのノ
ードと組み合わされた差分カウンタΔ(1s)を更新す
ることが必要である。この差動カウンタの値がまず読み
取られ、段階140において変数δに割り当てられる。
もしコントローラ2lqが左方向の子(比較141の間
t=O)を処理したならば、変数δは段階142におい
て1段階デクリメントされ、反対の場合、他方それは段
階143において1段階インクリメントされる。差分カ
ウンタΔ(1s)は変数δの新しい値にしたがって段階
144において更新される。
要素の交換が差動カウンタの値に影響を与えないとすれ
ば、もし比較139がkを送信したキーが有限であるこ
とを示せば、段階140から144までは実行されな
い。
1q+1が(その段階136の間に)レジスタ26q+l
に返送したデータ要素Bq+1、Cq+1を読み取ることによ
り、またこの返送された要素を変数kおよびrに割り当
てることにより、段階145において交換コマンドの処
理を再開する。上述のように段階119から126まで
を介して、コマンドの処理は続いて終了する。
ジ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も除くことができる。
構成は、インタフェース・レジスタ26qへのアクセス
の共有により条件付けられている。コントローラ2lq
がレジスタ26q+1に対して、対応するパラメータも同
様に送信する(コマンドの型式により段階102、11
7あるいは137の後に)コマンドを書き込み終える時
刻αqを、同様に交換コマンドの場合にコントローラ2
lqがレジスタ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が得られるように設計することで十分であ
る。
は、コントローラ2lqは非同期でも同期でも良い。第
1の場合には、パイプライン動作はコントローラ間で交
換される肯定応答信号によって保証される。段階136
を実行した後、コントローラ2lqはコントローラ21
q-1に肯定応答信号を送り、それによりコントローラ2
1 q-1は段階145および交換コマンドの次の処理に進
んで良いことを知る。さらに、段階102あるいは13
7あるいは117を実行した後で、コントローラ2lq
は肯定応答信号をコントローラ21q+1に送り、それに
よりコントローラ2l q+1はその読み取り段階100を
開始することによりコマンドの処理を開始してよいこと
を知る。
ローラを論理ゲートのネットワークから構成する場合
に、実現がより便利である。この場合に、パイプライン
の構成は図7のタイミング図により示される。
そのステージの1つのコントローラの動作を示す。ステ
ージqに関する行の上側の文字RDおよびWRは、それ
ぞれコントローラ2lqにより実行されるレジスタ26q
からのまたはレジスタ26qへの読み取りと書き込みを
表し、行の下側に位置する同じこれらの文字は、それぞ
れレジスタ26q+1からのまたはレジスタ26q+1への書
き込みと読み取りを示す。上に述べたように、ステージ
の間の矢印はパイプラインレジスタによるコマンドとパ
ラメータの伝達を表す。ハッチングを付けたインターバ
ルは、コントローラ2lqがそれが制御するメモリ領域
20q上で動作中の時間を表す。
が新しい要素を受信し、最小のソートキーを有する要素
を転送することができる速度を決定する。それはコマン
ドに関する命令の集合を処理するために各コントローラ
により要求される持続時間に対応する。この期間θ
1が、新規コマンドが処理され始めた後に分類ツリーを
一貫した順序付けの規則を再確立するために必要なサイ
クルθ2の持続時間より短いことが判る。図5に示す例
において、第1の期間θ1はステージ1に置かれる他の
1つの要素とツリーの根に位置する要素との交換に対応
する(すなわち、図2の場合において、そのキーは25
と38の間に置かれている)、また第二の期間θ1、ステ
ージ2への新しい要素の挿入に対応する(キーは前の交
換動作の間に導入された要素のキーより大きいかまたは
等しい)。
ジスタ260へ返送するために装置により要求される応
答時間θ0=β0−α’0は期間θ1の約3分の1に対応す
ることがさらに指摘される。
ーティング装置の動作速度を最大にするために、コント
ローラにより実行される処理動作を、処理動作がそのイ
ンタフェース・レジスタにアクセスする時刻を分離して
いる間隔の内に均質に点在させることが有益である。こ
れは図4から図6のフローチャートの若干の命令の処理
を移動することにより実現できる。例えば、もし時刻
β’以前に、コントローラqが、コントローラ21q+1
がその一連の命令130−136を、レジスタ26q+1
からその結果を読み取る前に実行し終えるのを待たなく
てはならない時間間隔146(図5)があれば、少なく
ともこの時間間隔のいくらかは他の命令を実行すること
により満たされることができ、これは他のどこかで時間
の節約を可能にする。上に述べたように例えば図4から
図6の場合、処理済みのノードの姉妹のソートキーの読
み込み120は、交換動作中の段階145の前で挿入動
作中の段階118の後に行うことができるであろう。こ
の種の最適化は、論理ゲートネットワークをプログラム
するために構成されるアーキテクチャの選択に多くを依
存する。
能をもたらすように、コントローラのそれぞれが、それ
へのアクセスがそのために予約されたバイナリーツリー
の単一のステージと組み合わされた場合が考慮された。
その動作に必要な論理回路(コントローラ21q)の数
で測られる装置の複雑さは、したがってnである、すな
わちソートされる要素の最大数の対数である。
一のステージの代わりに若干数のコントローラ、少なく
ともそれぞれのコントローラ(すなわちm<n)と結び
付けることにより、この複雑さは対応して装置速度が低
下することを代償に低減できる。コントローラ毎のステ
ージの数はすべてのコントローラに対して必ずしも同一
ではない。特に、もし少なくともステージ0と組み合わ
されたコントローラが分類ツリーの環境に関連する他の
機能も実行するならば、このコントローラが他のコント
ローラよりも少数のステージを管理するために準備がさ
れてもよい。
ジと組み合わされている場合には、これらのステージに
沿ってのコマンドの伝搬はこのコントローラにより連続
的に処理される。
と組み合わされたコントローラ21,q、pの場合を示す
ように、異なるコントローラと組み合わされたステージ
間のインタフェース・レジスタ26q、26q+pのみが、
連続したコントローラの並行動作の点でパイプラインレ
ジスタを構成する。他のレジスタ26q+1、・・・、2
6q+p-1はコントローラ21q、pのみがアクセスでき
る。これらのレジスタは、このコントローラ21q、p
を構成する論理回路の一部を形成するか、あるいはこの
コントローラに対して確保され、ステージqからq+p
−1を有するメモリモジュールの一部を形成する。
るバイナリーツリーのステージの中の差分カウンタΔ
(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へ伝搬することができる。
型式のソーティング装置はそれぞれツリーのノード2i
と2i+1の対と組み合わされた丁度2n-p-1−1個の差分
カウンタΔ(i)を備えることにより構成できるここ
で、iは1から2n-p-1−1までの範囲である。
実施形態を示す。
2lqがバイナリーツリー(m=n)の単一のステージ
qと組み合わされている場合が再び考慮される。しかし
ながら、前と同じように、このソーティング装置のアー
キテクチャが、少なくとも1つのコントローラがいくつ
かのステージ(m<n)と組み合わされた場合と容易に
置換可能であることは理解されるであろう。
り、図9から図15の実施形態は挿入コマンドをツリー
の根から葉まで伝搬するために差分カウンタを使用しな
い。ツリーのステージqに対応する各メモリモジュール
20qは、上に述べたようにノード2qから2q+1−1お
よびステアリングビットF(2q-1)からF(2q−1)
を受信するためのロケーション23を有するが、図9が
示すように、差分カウンタを受信するためのロケーショ
ン25は有しない。
に規定したパラメータAq、Bq、CqおよびDqを含む4
つのロケーションに加えて、ステージq−1のノード1
Dqからの挿入コマンドの伝搬の間に、このコマンドが
そこへ伝搬されるステージqの子ノードを指定するビッ
トEqを受信する追加のロケーションを有する。上に述
べたように、もしEq=0であれば、挿入コマンドは左
方向の子ldq0に伝搬され、他方、もしEq=1であれ
ば、挿入コマンドは右方向の子ldq1に伝搬される。
情報Dqおよび子ノードを指定しているビットEqは、n
−1ビットの葉指定フィールドの内容Gqのq個の最高
位ビットから成る。この葉指定フィールドの内容G
qは、挿入コマンドの伝搬の間に、このコマンドが伝搬
されるバイナリーツリーの空きの葉の1つを指定する。
この空きの葉のバイナリー法表示はlGqである。葉の
指定が空きであるとすれば、この同じ葉への他の挿入コ
マンドがバイナリーツリーの下流に現在伝搬していない
という条件で、挿入された要素は、ツリーの根からこの
指示された空きの葉までのパス上に、確実にその場所を
見いだすことが可能であろう。
の間のインタフェース・レジスタ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に導入される。
要素をツリーに挿入するために連続して装置がコマンド
を処理する場合について、図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のロケーション
をとれば十分である。
図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に維持され、次のコマンドのためにフィールド
G1に再び指定される。
ーのステージの番号n未満となるであろう。このソーテ
ィング装置の実施形態が各時刻においてバイナリーツリ
ーが少なくともn’個の空きの葉を有することを意味す
るとすれば、装置がソートできるデータ要素の最大数
は、先に説明した装置と比較して常に2n’以下の数だ
け少なく、その結果、ステージの数があまり少なくない
場合には装置のソーティング容量は大きな影響を受けな
い。もし、例えば装置がn’=4においてn=12のス
テージを有するならば、装置は差分カウンタが使用され
る場合には最大N=4095の要素までソートでき、空
きの葉のリストが使用される場合には最大N=4088
の要素をソートできる、これらの2つのNの値の相違は
重要ではない。
は、図4から図6に類似のフローチャートを示す(同様
な段階を示すために同じ参照番号が使われている)、コ
マンドの処理の間に図9に示す型式のコントローラ2l
qにより実行される動作を詳述する、ここで、q<n−
1である。
して、図12、13および6のフローチャートは差分カ
ウンタを参照するすべての動作を削除することにより単
純化されている。挿入コマンドの処理において実行され
る段階105および117において、親ノードDqある
いはDq+1の識別情報だけよりもむしろ葉指定フィー
ルドGqあるいはGq+1の全体が、インタフェース・レジ
スタ26qあるいは26q+1から読み取られるか、あるい
はインタフェース・レジスタ26qあるいは26q+1に書
き込まれる。前述の例と比較して、コントローラ構造の
単純化およびメモリスペースの縮少がそれぞれ別に到達
できた。
は、ツリーのステージ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におけるシフト動作に対
応するこれを例外なく終了させる。
2のリストを保持し、それを例えば後入れ先出し(LI
FO)モードで管理する。この第2のリストの第1の葉
は、最後のコントローラのレジスタあるいはそのメモリ
領域20n-1に蓄積されているn−1ビットを有するポ
インタPにより指定されている。この第1の葉の数のバ
イナリー法表示は1Pである。第2のリストの各々の葉
はソートキーが無限大であるデータ要素を含み、関連す
るリファレンスに対応しているメモリの部分は、例えば
第2のリストの中の次の葉のn−1ビットの上の指定に
等しい継続ポインタを蓄積するために使用される(もし
1ビットが無限大のキーを識別するために予約されれ
ば、キーに対応する部分もさらに使用できる)。
26n-1の最後のステージのコントローラに到達すると
(An-1=01)、Gn-1により指定された空きの葉は新
しいデータ要素を含むように満たされねばならない。し
たがって、図12および図13のフローチャートの段階
110から117は不要である。読み取り段階105に
段階155が続き、段階155においてコントローラ2
1n-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へ行くことにより挿
入コマンドの処理を終了する。
ために、最後のステージのコントローラはまずに先に論
じた段階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に更新することにより抽出コマンドの処理を終了す
る。
て、空きの葉の2つのリストは例えば次のように初期化
される:T(i)=i、ベース2に対して、O≦i<
n’に対して;P=n’、ベース2に対して;またR
(li)=i+l、ベース2に対して、n’≦i<2n
−1。
な具体化例において、最後のコントローラ21n-1はシ
フトレジスタ30およびLIFOスタックにより「第一
のリスト」および「第二のリスト」を保持する。同様の
複雑さを持った他の論理構成を採用しうることは指摘さ
れるであろう。例えば、コントローラ21n-1は、空き
の葉の数を含む先入れ先出し(FIFO)モードで管理
される論理待ち行列を保持でき、一方このFIFO待ち
行列が常に少なくともn’個の空きの葉を含むことが保
証される。このような条件の下で、「第一のリスト」は
待ち行列の最後のn’個のロケーションと、待ち行列の
前のロケーションの「第二のリスト」から成る。
がそれによってソートされる、すなわち段階111、1
22、123および133において互いに比較される。
順序関係は、自然数の昇順に対応する。簡単な論理回路
によって比較が容易にできる任意の順序関係が、このよ
うな装置において要素をソートするために使用できるこ
とが理解されるであろう。
の時点においてデータ要素のために対応するリファレン
スR(i)を取り出すように要求される未来の時刻を規
定する時間タグであるなら、ソーティング装置は手順の
時間的順序付けを制御するタイムアウト装置として動作
することができる。ツリーの根に位置する要素のキー
は、もし現在の時刻が到達されていれば、この要素を交
換するか、あるいは抽出するように、次に現在の時刻と
比較される。
ら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を選択すればこ
れは容易に満たされる条件である。
Mセルスペーサについて説明する。
能は、現在時刻と各着信セルが関係する接続の識別情報
IdCxに基づいてモジュール40により実行される。
各セルに対して再帰的に計算された理論的送出時間TE
Tは、このモジュール40によりこのセルが関係する接
続と組み合わされたスペーシング間隔Tと共にスペーシ
ングコントローラ41に転送される。この情報と接続識
別情報IdCxに基づきスペーシングコントローラ41
は着信セルが書き込まれ発信セルが読み取られるセルメ
モリ42の管理を監視し、さらにポインタメモリ43と
ソーティング装置44を管理する。
Xまでスペーサが処理できる番号が付された仮想接続の
数を表示し、またNCEはメモリ42が前もって規定さ
れたロケーションCh_cell(l)からCh_ce
ll(NCE)に収容できるセルの数を表示する。
ルメモリ42およびポインタメモリ43は2つの別のメ
モリモジュールから成り、その第1のメモリモジュール
はコントローラ41の制御の下にユニット46により管
理される。しかしながら、他の実施形態が可能であるこ
とは理解されるであろう。特に、メモリ42および43
はコントローラ41によりアクセスが命令される単一の
メモリモジュールで実現できるであろう。上に述べたよ
うに、例えば2メガバイトのRAMメモリモジュール
が、セルメモリを管理するに必要なポインタと共に、N
CX=4096の異なる仮想接続に関する最大NCE=
32,000セルまでの蓄積を可能とする。
し、それに基づいてスペーサのシーケンサ47は必要な
クロック信号をモジュール40、スペーシングコントロ
ーラ41、ソーティング装置44およびセルメモリのマ
ネージャ46に供給する(図1)6。このクロック信号
の周期は155Mbit/sリンクの場合に2.7μs
である。この信号CKCの各周期に、スペーサはメモリ
42に書き込まれたセルを受信し(図17の第3行)、
メモリ42から読み込んだセルを送出する(図13の第
4行)ことができなくてはならない。図17に示す代表
的な刻時において、各セル期間は同様の持続時間を持っ
た2つの連続したフェーズに分割され、第1のフェーズ
は着信セルの受信のためであり、第2のフェーズは発信
セルの送出のためである。
ーシングコントローラ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
に通知する(セル期間内は、着信セル、あるいは送出さ
れるセルを禁止)。
に対して、これらのセルが先入れ先出し(FIFO)モ
ードで配列されるロケーションのリストを含むように構
成される。これらのリストはポインタメモリ43により
コントローラ41によって管理される。
ョン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)である。
テージ0と組み合わされたコントローラ210の処理動
作を実行するスペーシングコントローラ41によりアク
セスできる(図2から図15)。ツリーの根に位置する
データ要素K(1)、R(1)は、図に示すようにポイ
ンタメモリ43に、あるいはコントローラ41の特殊レ
ジスタに蓄積することができる。コントローラ41はイ
ンタフェース・レジスタ261によりソーティング装置
44のステージ1からn−1とコマンドおよびパラメー
タを交換する。この例においてインタフェース・レジス
タ261は図9を参照して説明されたものに一致してい
る。
タ要素は、ソートキーK(i)に関して、リスト開始を
構成するメモリ42のロケーションに蓄積されたセルの
理論的送出時間から成り、またリファレンスR(i)に
関して、このセルが関係する仮想接続の識別情報IdC
xから成る。キーK(i)はしたがって、既に説明した
ように、Lビットのサイクリック・カウンタにより規定
できる時間タグである。無限大のキーを区別するために
1ビットをプラスした、例えばL=16ビットのカウン
タが、ATMスペーサへの応用に適している。リファレ
ンスR(i)はNCX=4096の接続に対して12ビ
ットでよい。
トローラ41はツリーの根にあるキーK(1)を現在の
時刻taと比較し、もしK(l)≦taであれば、マネ
ージャ46にa=Ptr_start(R(l))を供
給し、その結果リストのスタートに位置するセルの中で
最小の理論的送出時間を有するセルが送出される。仮想
スペーサの場合には、コントローラ41は同じように動
作するが、現在の時刻との比較はしない。K(l)<∞
になり次第各周期にセルが送出される。
r_end(IdCx)=O)接続IdCxに関連する
セルが到着すると、このセルはロケーションCh_ce
ll(Ptr_free)に蓄積され、フリーロケーシ
ョンのリストは更新され、またコントローラ41は、リ
ファレンスがこのIdCxに対応し、ソートキーがこの
セルに対してモジュール40により計算されたTETで
あるデータ要素の分類ツリーの中に挿入を命令する。
dCxに関するセルの到着は、分類ツリーの内容を修正
せず、ロケーションCh_cell(Ptr_fre
e)での蓄積と、また空きロケーションのリストと接続
IdCxと組み合わされたリストの更新のみを要求す
る。
含む接続IdCxに関するセルの送出は分類ツリーの対
応する要素の直接的抽出を必要とし、それは無限大のキ
ーを有する要素の交換に相当する。
つ以上のセルを含む接続IdCxに関するセルの送出
は、ツリーの対応する要素と、リファレンスがこのId
Cxに対応し、ソートキーがリストの第2の位置、すな
わちロケーションCh_cell(Ptr_cont
(Ptr_start(IdCx)))に蓄積されたセ
ルに割り当てられた理論的送出時間である新しい要素と
の交換を必要とする。
を形成する理論的送出時間は、リストの新しい開始に蓄
積されたセルに関してモジュール40により供給された
ものであり得る。したがって、セルが到着する時にモジ
ュール40により供給されたTET時間を蓄積すること
は有益である。しかしながら、コントローラ41がソー
ティング装置44に新しいデータ要素を供給する時に、
セルに対して理論的送出時間を再計算することが望まし
い。
まな仮想接続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)を加えたものに等しいとされる。
もしモジュール40が、接続IdCxに関する2つの連
続したセルに、そのそれぞれの到着時刻によってTT
(IdCx)よりいっそう離れている理論的送出時間T
ETを割り当てるならば、また第1のセルが送出された
時に、もしこれらの2つのセルの第2のセルがすでにメ
モリ42に書き込まれていれば、第2のセルの理論的送
出時間はモジュール40により計算された理論的送出時
間に対して進めることができ、その接続の後続のセルの
理論的送出時間も所要のスペーシング特性を阻害せずに
進めることができる。これは若干のセルの不要な遅延を
回避する。
スペーシング間隔を動的に、かつただちに修正できるこ
とである。リンクの渋滞が輻輳の危険を生ずる時、この
柔軟性は若干の仮想接続に対して例えばスペーシング間
隔を増やすことができる。このスペーシング間隔の増加
は、メモリ42に含まれるこの接続セルに関する点を含
みただちに効力を発し、したがってセルは最初に計算さ
れたTETにしたがっては送出されないであろう。かく
して予防的方策の適用による避けられない輻輳へ導く可
能性がある遅延は回避される。当然、接続に対してスペ
ーシング間隔を増やす許可はこの接続が確立される時
に、同一のCDV許容誤差および情報源の同一挙動に対
してセルがポリシング機能により廃棄される確率が増加
することを仮定して、情報源(利用者)と合意に達しな
ければならない。
いて図17の第2行に示す時間間隔200の間にコント
ローラ41により実行される動作を示す。
ル期間内にスペーサに到達するか否かを決定し、もし妥
当であるならば、このセルが関連する接続の識別情報I
dCxを、理論的送出時間TETおよびモジュール40
によりこのセルに供給されたスペーシング間隔Tと共に
確認することから成る。
スa=0が段階202においてセルメモリのマネージャ
46に供給され、その後、段階203において、コント
ローラ41はバイナリーツリーコマンド(A1=00)
の内容の修正の無いことをインタフェース・レジスタ2
61に書き込む。
4においてフリーロケーション・ポインタPtr_fr
eeがポインタメモリ43から読み出され、アドレスa
に割り当てられ、段階202においてマネージャ46に
供給される。もしa=O(受信セル無し、あるいはメモ
リ42に多数の空きロケーションが存在する)ならば、
マネージャ46は現在のセル期間中はメモリ42に書き
込まず、スペーシングコントローラ41は前述の段階2
03を実行し、その結果バイナリーツリーの内容は変化
しない。他の状況では、コントローラ41はポインタ読
み込み段階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と共に更新される。
トが空でなかったとすれば(すなわち比較207の間、
d≠Oであれば)、先に説明したように分類ツリーの内
容の修正は必要なく、その結果スペーシングコントロー
ラ41は、前のリストの終わりと組み合わされた継続ポ
インタを段階208において古いフリーロケーション・
ポインタと更新した後、前述の段階203を実行する。
Ptr_cont(d)=a。
ローラ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の数を受信
する。
に新しいデータ要素TET、IdCxは、ツリーの根に
書き込まれる必要があり、これは段階216において実
行される。これに先だって、もしツリーの根に先に位置
されたソートキーkが無限大であれば(比較213)、
コントローラ41は段階214においてリセットコマン
ドA1=10をパイプラインレジスタ261の中へ伝搬す
る。他の状況では、コントローラ41は先に段階215
において根に位置された要素B1=k、C1=rのための
挿入コマンド(A1=01)をレジスタ261に書き込
む。
との同期に関する限り、図18は、図7および図11の
参照して関係する時刻と対応する時刻αoが、コントロ
ーラ41によるパイプラインレジスタ261への書き込
みの段階203、212、214あるいは215の後に
起きることを示す。この時刻αoから開始して、ステー
ジ1のコントローラ211はコマンド(図17に示す時
刻α’1)の処理を始めることができる。
いて図17の第2行に示す時間間隔300の間にコント
ローラ41により実行される動作を示す。
およびツリーの根に位置するデータ要素のリファレンス
R(l)の読み出しと、それらを変数kおよびrにそれ
ぞれ割り当てることから成る。次の比較302は、セル
を送出すべきか否かを決めるために動作する。実スペー
サの場合には、この段階302はソートキーkを現在時
刻taと比較することから成る。仮想スペーサの場合に
は、この段階302は単にキーkが有限であるか、無限
大であるかを調べることから成る。もしk>taならば
(実スペーサの場合)、バイナリーツリーコマンドA1
=00の内容に修正の無いことをパイプラインレジスタ
261に書き込むことを除いて(段階303)、コント
ローラ41はセル期間の第2フェーズにはなんら動作を
行わない。
ば、接続rに関連するリスト開始におけるロケーション
の数と、このロケーションと組み合わされた継続ポイン
タがメモリ43から読み出され、段階304において変
数aとbにそれぞれ割り当てられる。アドレスaはその
次に、段階305においてマネージャ46に供給され、
その結果、マネージャはこのアドレスに蓄積されたセル
を送出する(図17の第4行)。もしツリーの根に位置
する要素で識別された接続r=R(l)に関するロケー
ションのリストが単一のセルのみを収容していたなら、
変数bは0である。これは比較306により検出され
る。この場合に、リスト終端ポインタPtr_end
(r)は段階307において、このリストがもうセルを
含んでいないことを示すように零にセットされ、また段
階308において、バイナリーツリーで交換されるべき
新しい要素のソートキーを構成する無限大の値が理論的
送出時間TETに割り当てられる。
ロケーションのリストはいくつかのセルを含み、変数b
はこのリストのスタートポインタとして段階309にお
いて書き込まれ、段階311において、ロケーションC
h_cell(b)に蓄積されたセルは段階301で読
み込まれたキーk=K(l)と等しい新しい理論的送出
時間TETを受信し、このTETには段階310で読み
取られた関連する接続のスペーシング間隔TT(r)と
等しくされた変数Tが加えられる。ツリーの根に位置す
る要素K(l)、R(l)を新しい要素B1=TET、
C1=rと交換するためのコマンド(A1=11)が、段
階312において、パイプラインレジスタ261に書き
込まれる。
1がコマンドを処理し始めることができる時刻αoは、図
19が示すように段階312(あるいは段階303)の
後に位置される。スペーシングコントローラ41は、分
類ツリーのステージ1から返送された要素をレジスタ2
61の中に取り込む前に、時刻β’0≧β1(図17参
照)まで待たなくてはならない。図17に示す例におい
て、コントローラ41はインターバル〔α0、β’0〕に
おいてフリーロケーションのリストを更新し、段階31
3においてコントローラ41はフリーロケーション・ポ
インタPtr_freeを読み取り、変数cにそれを割
り当て、次に段階314において、コントローラはPt
r_cont(a)=cおよびPtr_free=aを
メモリ43に書き込む。
のキーを有する要素をレジスタ26 1に一旦返送する
と、この要素は段階315においてコントローラ41に
より読み出され、次に段階316においてツリーの根に
書き込まれる。
インデックスを考慮に入れることができるATMセルス
ペーサの変形例を示す。1とUの間の値をとると考えら
れるこの優先権インデックスはuと示される。図20の
スペーサは、それぞれそのステージ0とそのステージ1
の間にパイプラインレジスタ261 (u)を有する、U個の
ソーティング装置44(u)を有する。各ソーティング装
置44(u)の動作は先に説明したものと同じである。各
バイナリーツリーの根はポインタメモリ43に含まれて
おり(その内容の残りは図20には表示されない)、ス
ペーシングコントローラ41により管理されると考えら
れる。セルメモリ42およびそのマネージャー46の動
作は、コントローラ41により供給されたアドレスaに
おけるセルの書き込みと読み出しの点で前述したものと
同じである。
ンスR(u)(i)が同じ優先権インデックスuを有する
仮想接続IdCxの識別情報を指定するデータ要素を処
理する。これらの要素の中から、装置44(u)はその根
において(表示の例ではメモリ43の中で)、そのキー
K(u)(1)が最小である要素を選択する。したがっ
て、最小のソートキーを示すツリーの根に位置するデー
タ要素のそれの中で、識別された接続に関連するリスト
の開始に含まれているセルの送出を命令するように、ス
ペーシングコントローラは工夫されている。いくつかの
最小ソートキーK(u )(1)が等しい場合、スペーシン
グコントローラ41は同順位の中で最大の優先権インデ
ックスを有する接続を選ぶ。
ペーシングコントローラ41を大幅に複雑にするもので
はない。セルの受信の際に実行される動作に関する限
り、図18のフローチャートは変わらず、段階210か
ら216は接続識別情報IdCxと同時にコントローラ
41により受信された優先権インデックスuに対応する
分類ツリー44(u)に関して実行される。
れた動作に関する限り(図19)、ツリーの根に位置す
る要素を読み出し、この要素のキーを現在時刻と比較す
るための段階301、302が優先権インデックスの降
順に連続して、インデックスuについては、現在時刻に
到達したことを段階302が示すまで行される。この場
合に、段階304から316は変更無しに実行され、レ
ジスタ261 (u)への書き込み312と、レジスタ261
(u)からの読み出し315、および当該分類ツリーの根
への書き込み316が実行される。
装置は別個である。これらのさまざまなソーティング装
置が、その制御手段、すなわち、そのコントローラ2l
qおよびそのパイプラインレジスタ26qを共有できるこ
とが指摘される。図21はU=2の特定の場合につい
て、このような具体化例を示す。
ツリーはインタフェース・レジスタ26qとステージコ
ントローラ21qを共有する。ただその記憶ステージ2
0q (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を受信するため
に、差分カウンタあるいはインタフェース・レジスタに
ロケーションを設けることは不要である。
ばセルメモリに任意のセルを書き込むフェーズとセルメ
モリから任意のセルを読み出すフェーズに対応する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手順に
より)選択される。
れば、挿入コマンドはステージn−p−1からステージ
0までコントローラ21o、n-pによって伝搬され、一方
必要ならば、コントローラ21n-p、pは交換コマンドを
ステージn−pからステージn−1へ伝搬する。
に分類ツリーの2つのコントローラの間のパイプライン
レジスタとして機能する。フェーズIおよびフェーズI
Iの間での2つのコントローラ間でのパラメータのいか
なる交換も、例えば、このパイプラインレジスタを2つ
に(1つのレジスタを上向きの方向に、また、1つのレ
ジスタを下向きの方向に)分割することにより可能であ
り、あるいはパラメータを一方向に交換し、引き続き他
の方向に交換することにより可能である。
4096の仮想接続までサポートする155Mbit/
sリンクの場合に使用できる。したがって、分類ツリー
の大きさはn=12およびp=8に決めることができ、
ステージ0から3を監視する第1のコントローラ21
o、n-pはセルポインタを管理するスペーシングコントロ
ーラとおそらく統合可能である。
る。
図である。
トである。
トである。
トである。
る。
性のある変形例を示す図である。
性のある変形例を示す図である。
フト・レジスタを示す図である。
図である。
ートである。
ートである。
場合における図12、図13および図6のフローチャー
トに対応するフローチャートである。
場合における図12、図13および図6のフローチャー
トに対応するフローチャートである。
図である。
る。
スペーサのコントローラにより実行される動作を示すフ
ローチャートである。
スペーサのコントローラにより実行される動作を示すフ
ローチャートである。
分図である。
分図である。
変形例を参照するタイミング図である。
段階 201〜216、301〜316 イテプ
Claims (17)
- 【請求項1】 それぞれデータ要素を含むことが可能で
あり、0からn−1まで番号を付けられたn個の連続し
たステージに分配され、ステージqはノード2qから2
q+1−1を有する、1から2n−1まで番号を付けられた
2n−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】 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】 1からn−1の間の各整数qに対して、
ステージq−1とステージqの間の前記インタフェース
・レジスタ(26q)が、第2のロケーションに含まれ
る識別情報(Dq)により、もし前記コマンドがツリー
の中への新しい要素の挿入に関するものならば、前記コ
マンドが伝搬され、また対応するコントローラ(2
1q)が第1のロケーションに含まれるコマンド(Aq)
の処理の間にアクセスするステージqのノードを指定す
るビット(Eq)を受信するための第4のロケーション
を有する請求項2に記載の装置。 - 【請求項4】 1からn−1の間の各整数qに対して、
ステージq−1とステージqの間の前記インタフェース
・レジスタ(26q)の第2および第4のロケーション
が、新しい要素を挿入するためのコマンドの伝搬の間
に、空きの葉の数のn−1個の最下位ビットを含むn−
1ビットの葉指定フィールド、すなわち、前記コマンド
が伝搬される、ステージn−1の空きのノードの一部を
形成し、前記コマンドが伝搬されるステージqのノード
は葉指定フィールドの内容のq個の最高位のビットによ
り指定される請求項3に記載の装置。 - 【請求項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】 n’<nである請求項5に記載の装置。
- 【請求項7】 空きの葉の第1のリストが、それぞれが
葉の数のn−1個の最下位ビットを受信するn’個のロ
ケーションを有するそれ自身ループバックされるシフト
・レジスタ(30)に記憶される請求項5または6に記
載の装置。 - 【請求項8】 空きの葉の第2のリストが後入れ先出し
形式でポインタの連鎖の形で格納され、各ポインタは葉
の数を表し、連鎖の第1のポインタ(P)は特定のロケ
ーションに格納され、連鎖のi番目のポインタ(i≧
2)は番号が連鎖のi−1番目のポインタで表される葉
に格納されている請求項5、6、7のいずれか1項に記
載の装置。 - 【請求項9】 第1および第2のリストは少なくとも
n’個のロケーションを有する先入れ先出し形式の論理
待ち行列の形式で格納され、第1のリストは、論理待ち
行列の最後のn’個のロケーションと論理待ち行列の先
行するロケーションの第2のリストから成る請求項5ま
たは6に記載の装置。 - 【請求項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】 1つのステージのノードの対と組み合
わされた差分カウンタ(Δ(i))を含む記憶手段のロ
ケーション(25)が、前記ステージのノードと同じコ
ントローラによりアクセス可能である請求項10に記載
の装置。 - 【請求項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】 1つのステージのノードの対と組み合
わされたステアリングビット(F(i))を含む記憶手
段のロケーション(23)が、前記ステージのノードと
同じコントローラによりアクセス可能である請求項12
に記載の装置。 - 【請求項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】 セルメモリに記憶された各セルに理論
的送出時間を割り当てる手段が、前記セルの到着時刻
(ta)と前記接続に割り当てられたスペーシング間隔
(T)とを少なくとも含むパラメータに基づいて、仮想
接続に関連する各セルに対する理論的送出時間(TE
T)を回帰的に計算する手段(40)を有し、 前記ソーティング手段(41、44)は、前記セルメモ
リ(42)がセルを含んでいない仮想接続に関連するセ
ルが到着すると、前記仮想接続の識別情報を有する新し
いデータ要素、およびソートキーとして、前記回帰的計
算手段(40)によって供給された前記セルの理論的送
出時間を受け取り、 前記ソーティング手段は、少なくとも1つの第2のセル
をさらに含むロケーションのリストを前記セルメモリが
有する仮想接続に関連する第1のセルを送出すると、前
記仮想接続の識別情報を有する新しいデータ要素、およ
びソートキーとして、前記第1のセルの理論的送出時間
と前記接続に割り当てられたスペーシング間隔との和に
等しい前記第2のセルの理論的送出時間を受け取る請求
項14に記載のスペーサ。 - 【請求項16】 優先権インデックス(u)が仮想接続
に割り当てられ、前記ソーティング手段はそれぞれ同様
の優先権インデックスの仮想接続の識別情報を有するデ
ータ要素を処理し、またそれぞれそれが処理するデータ
要素の中から最小のソートキー(K(u)(1))を有す
る要素を選択するいくつかの、請求項1から13までの
いずれか1項に記載のソーティング装置(44(u))を
有し、前記スペーシング制御手段は、最小のソートキー
を示す選択されたデータ要素の1つに、あるいは、複数
のソーティング装置がそれぞれそのソートキーが最小で
あるデータ要素を選択するならば、前記複数のソーティ
ング装置により選択された優先権インデックスが最高で
あるデータ要素の1つにおける識別された接続に関連す
るリスト開始に含まれているセルの送出を命令するよう
に構成されている請求項14または15に記載のスペー
サ。 - 【請求項17】 種々のソーティング装置の各々が、そ
れぞれの記憶手段(20q (1)、20q (2)を有し、またそ
の制御手段(21q、26q)を共有する請求項16に記
載のスペーサ。
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)
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)
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)
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 |
-
1997
- 1997-05-13 FR FR9705828A patent/FR2763410B1/fr not_active Expired - Fee Related
-
1998
- 1998-05-08 US US09/075,089 patent/US6181678B1/en not_active Expired - Lifetime
- 1998-05-11 DE DE69817672T patent/DE69817672T2/de not_active Expired - Lifetime
- 1998-05-11 EP EP98401119A patent/EP0878758B1/fr not_active Expired - Lifetime
- 1998-05-11 CA CA002237276A patent/CA2237276C/en not_active Expired - Lifetime
- 1998-05-11 ES ES98401119T patent/ES2206862T3/es not_active Expired - Lifetime
- 1998-05-13 JP JP13058598A patent/JP3905221B2/ja not_active Expired - Lifetime
Cited By (3)
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 |