JP3901840B2 - Atmセルスペーサ - Google Patents

Atmセルスペーサ Download PDF

Info

Publication number
JP3901840B2
JP3901840B2 JP13034998A JP13034998A JP3901840B2 JP 3901840 B2 JP3901840 B2 JP 3901840B2 JP 13034998 A JP13034998 A JP 13034998A JP 13034998 A JP13034998 A JP 13034998A JP 3901840 B2 JP3901840 B2 JP 3901840B2
Authority
JP
Japan
Prior art keywords
stage
cell
command
list
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP13034998A
Other languages
English (en)
Other versions
JPH10336215A (ja
Inventor
ア−デュオン テュアン
ソアール モレイラ セラファン
Original Assignee
メット
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by メット filed Critical メット
Publication of JPH10336215A publication Critical patent/JPH10336215A/ja
Application granted granted Critical
Publication of JP3901840B2 publication Critical patent/JP3901840B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5647Cell loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5672Multiplexing, e.g. coding, scrambling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/568Load balancing, smoothing or shaping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

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

Claims (22)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9705827A FR2763448B1 (fr) 1997-05-13 1997-05-13 Espaceur de cellules atm
FR97/05827 1997-05-13

Publications (2)

Publication Number Publication Date
JPH10336215A JPH10336215A (ja) 1998-12-18
JP3901840B2 true JP3901840B2 (ja) 2007-04-04

Family

ID=9506815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13034998A Expired - Lifetime JP3901840B2 (ja) 1997-05-13 1998-05-13 Atmセルスペーサ

Country Status (6)

Country Link
US (1) US6343076B1 (ja)
EP (1) EP0878939B1 (ja)
JP (1) JP3901840B2 (ja)
CA (1) CA2237516C (ja)
DE (1) DE69830948T2 (ja)
FR (1) FR2763448B1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6529474B1 (en) * 1999-07-26 2003-03-04 Alcatel Canada Inc. Shaping algorithm
US6449656B1 (en) * 1999-07-30 2002-09-10 Intel Corporation Storing a frame header
JP5121896B2 (ja) 2010-08-11 2013-01-16 株式会社東芝 マルチコアプロセッサシステムおよびマルチコアプロセッサ

Family Cites Families (21)

* 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.
ES2072537T3 (es) 1991-02-01 1995-07-16 Siemens Ag Procedimiento para el control e igualacion de corrientes de datos, que se transmiten segun un procedimiento de transmision asincrono.
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
FR2707023B1 (ja) * 1993-06-24 1995-09-22 Boyer Jacqueline
US5862127A (en) * 1994-03-18 1999-01-19 Electronics And Telecommunications Research Institute Method of controlling the peak cell rate spacing of multiplexed ATM traffic
GB2288097B (en) 1994-03-23 1998-09-23 Roke Manor Research ATM queuing and scheduling apparatus
JP2922119B2 (ja) * 1994-09-01 1999-07-19 沖電気工業株式会社 帯域規制装置及びパケット通信装置
US5533020A (en) * 1994-10-31 1996-07-02 International Business Machines Corporation ATM cell scheduler
EP0748086A1 (en) * 1995-06-09 1996-12-11 Siemens Aktiengesellschaft Method for scheduling message cells leaving an ATM node
KR0175486B1 (ko) * 1995-12-22 1999-04-01 양승택 비동기전달모드 간격제어기의 재방출간격 제어방법
US5793747A (en) * 1996-03-14 1998-08-11 Motorola, Inc. Event-driven cell scheduler and method for supporting multiple service categories in a communication network
US5859835A (en) * 1996-04-15 1999-01-12 The Regents Of The University Of California Traffic scheduling system and method for packet-switched networks

Also Published As

Publication number Publication date
JPH10336215A (ja) 1998-12-18
DE69830948D1 (de) 2005-09-01
FR2763448B1 (fr) 1999-07-16
EP0878939B1 (fr) 2005-07-27
CA2237516A1 (en) 1998-11-13
EP0878939A1 (fr) 1998-11-18
US6343076B1 (en) 2002-01-29
DE69830948T2 (de) 2006-04-20
CA2237516C (en) 2008-02-19
FR2763448A1 (fr) 1998-11-20

Similar Documents

Publication Publication Date Title
US5859835A (en) Traffic scheduling system and method for packet-switched networks
US6134217A (en) Traffic scheduling system and method for packet-switched networks with fairness and low latency
US5745489A (en) Buffered crosspoint matrix for an asynchronous transfer mode switch and method of operation
JP2922119B2 (ja) 帯域規制装置及びパケット通信装置
US6128303A (en) Asynchronous transfer mode cell processing system with scoreboard scheduling
US6396809B1 (en) Method for signaling in a high speed communication system
WO1997042737A1 (en) Asynchronous transfer mode cell processing system with multiple cell source multiplexing
JPH05219098A (ja) フレーム変換方法及び装置
JPH0498938A (ja) 帯域制御方法および回路
AU3773193A (en) Methods and devices for prioritizing in handling buffers in packet networks
JPH11234309A (ja) 非同期転送モード・セル送信スケジューリング
JPH1093591A (ja) Atmセルを最適に伝送する方法
US5748630A (en) Asynchronous transfer mode cell processing system with load multiple instruction and memory write-back
JP3905221B2 (ja) バイナリツリーデータ要素ソーティング装置およびatmスペーサ
US20050010676A1 (en) Time-based transmission queue for traffic management of asynchronous transfer mode virtual circuits on a multi-threaded, multi-processor system
JP3901840B2 (ja) Atmセルスペーサ
US6490640B1 (en) Packet data switching apparatus
US6807171B1 (en) Virtual path aggregation
JP3602893B2 (ja) Atmインタフェースおよびシェーピング方法
JPH10135957A (ja) トラヒックシェイパー装置
US5794025A (en) Method and device for performing modulo-based arithmetic operations in an asynchronous transfer mode cell processing system
JP3742348B2 (ja) セルシェーピング装置
Wittevrongel et al. Queue length and delay for statistical multiplexers with variable-length messages
JPH08298510A (ja) 通信システム及び該システム用多重化装置
US6061353A (en) Communication system formed by ATM network and multiplexing device suitable for such a system

Legal Events

Date Code Title Description
A521 Written amendment

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: 20061213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061227

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: 20110112

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110112

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120112

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130112

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130112

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