(57)【特許請求の範囲】
【請求項１】
少なくとも第１ＡＴＭセルポインター機構(62)と、
第１ＡＴＭセルポインター機構(62)によって示されており、データを有している少なくとも第１ＡＴＭセル(14a)と、
第１ＡＴＭセルポインター機構(62)によって示されており、第１ＡＴＭセル(14a)の為の第１アドレス(66)及びノードアドレスポインター(68)を有する第１ノード(64)と、
第１ノード(64)のノードアドレスポインター(68)によって示されており、第１ＡＴＭセル(14a)の為の第２アドレス(71)を有する第２ノード(70)と、
第１ＡＴＭセルポインター機構(62)、第１ノード(64)及び第２ノード(70)と連結したコントローラ(300)を具えており、
第１ノード(64)と第２ノード(70)はアドレスのリンクリスト(72)を構成しており、コントローラ(300)は、第１ＡＴＭセル(14a)をポート(18)から第１アドレス(66)に送信し、次に第２アドレス(71)へ送信するＡＴＭネットワーク(12)の為のマルチキャストシステム(100)。
【請求項２】
第１ＡＴＭセルポインター機構(62)は、第１セル(14a)を示している第１セル読込みポインター(16a)と、第１セル(14a)が送られるべきアドレスのリンクリスト(72)中のノードを示すアドレスポインター(74)とを具えている請求項１に記載のシステム(100)。
【請求項３】
アドレスのリンクリスト(72)の各ノードは、新しいVPI情報と、新しいVCI情報と、最終コネクションを表示するビットと、アドレスのリンクリスト(72)の最終のエントリーであることを表示するビットとを具えている請求項２に記載のシステム(100)。
【請求項４】
最終コネクションを表示するビットがノードに設定され、アドレスポインター(74)がそのノードを示している場合、第１セル(14a)は、ノード中のVPI及びVCI情報を用いてコントローラ(300)によって送信され、それ以外の場合は、第１セル(14a)はノードのVPI情報だけを用いて送信される請求項３に記載のシステム(100)。
【請求項５】
アドレスのリンクリスト(72)における最終エントリーであることがノードに設定された場合、第１セル(14a)が送信された後、第１セル読込みポインター(16a)は、コントローラ(300)によって第２ＡＴＭセル(14b)を示すようにされる請求項４に記載のシステム(100)。
【請求項６】
第１ＡＴＭセル(14a)が送られるべき第１アドレス(66)を有する第１ノード(64)を読込むステップと、
第１ＡＴＭセル(14a)をポート(18)から第１アドレス(66)へ送信するステップと、
第１ＡＴＭセル(14a)が送られるべき第２アドレス(71)を有する第２ノード(70)を読込むステップと、
第１ＡＴＭセル(14a)をポート(18)から第２アドレス(71)へ送信するステップとを行い、
第２ノード(70)を読み込むステップの前に、第１ノード(64)に連繋しており、第２ノード(70)を示すノードアドレスポインター(74)を読み込むステップを行い、該第１及び第２ノード(64)(70)はアドレスのリンクリスト(72)を形成している、ＡＴＭセル(14)をマルチキャストする方法。
【請求項７】
第１ノード(64)を読み込むステップの前に、第１ＡＴＭセル(14a)を示す第１ＡＴＭセル読込みポインター(16a)を読み込むステップを有する請求項６に記載の方法。
【請求項８】
第１ノード(64)を読み込むステップの以前に、第１ノード(64)を示すアドレスポインター(74)を読み込むステップがある請求項７に記載の方法。
【請求項９】
送信するステップの前に、第１アドレス(66)が最終アドレスである場合、新しいVPIとVCIを第１ＡＴＭセル(14a)へ挿入するステップがある請求項８に記載の方法。
【請求項１０】
送信するステップの前に、第１アドレス(66)が最終アドレスでない場合には、新しいVPIを第１ＡＴＭセル(14a)へ挿入するステップがある請求項９に記載の方法。
【請求項１１】
第１ノード(64)に連繋したアドレスポインター(74)を読み込むステップの後、アドレスポインター(74)が第２ノード(70)を示すステップがある請求項１０に記載の方法。
【請求項１２】
第１ＡＴＭセル(14a)を第２アドレス(71)へ送信するステップの後、第１ＡＴＭセル(14a)をアドレスのリンクリスト(72)中の追加ノードにある追加アドレスへ第１ポート(18a)から次々と送信し、ノードがアドレスのリンクリスト(72)中の最終エントリーに達するまで行い、ＡＴＭセル読込みポインター(16a)が第２ＡＴＭセルを示し、アドレスポインター(74)がアドレスのリンクリスト(72)の第１ノード(64)を示すステップがある請求項１１に記載の方法。
【請求項１３】
第１セル読込みポインター(16a)が示している、第１ＡＴＭセル(14a)を読取るステップと、
第１ＡＴＭセル(14a)を第１ポート(18a)から第１アドレス(66)へ送信するステップと、
第１ＡＴＭセル(14a)を第１ポート(18a)から第２アドレス(71)へ送信すべきか否かを判断するステップと、
第１ノード(64)のノードアドレスポインター(68)は第２アドレス(71)を有する第２ノード(70)を示しており、第１ＡＴＭセル(14a)が第１ポート(18a)から第２アドレス(71)へ送信される場合、アドレスポインター(74)が示しており、第１アドレス(66)を有する第１ノード(64)のノードアドレスポインター(68)を読み込むステップと、
第１ポート(18a)から任意のアドレスへの第１ＡＴＭセル(14a)の送信が完了する場合、第２ＡＴＭセル(14b)を示しているセルポインター(20)を読み込むステップとを含んでいるＡＴＭセル(14)をマルチキャストする方法。
【請求項１４】
第１ＡＴＭセル(14a)はセルポインター(20)を具え、セルポインター(20)を読み込むステップは、第２ＡＴＭセル(14b)を示している第１ＡＴＭセル(14a)のセルポインター(20)を読み込むステップを含んでいる請求項１３に記載の方法。
【請求項１５】
セルポインター(20)を読み込むステップの後、第２ＡＴＭセル(14b)を読み込むステップがある、請求項１４に記載の方法。
【請求項１６】
ノードアドレスポインター(68)を読み込むステップの後、第２ノード(70)の第２アドレス(71)を読み込むステップがある請求項１５に記載の方法。
【請求項１７】
第１ポート(18a)に関連した第１ＡＴＭセルポインター機構(62)と、
第２ポート(18b)に関連した少なくとも第２ＡＴＭセルポインター機構(76)と、
第１ＡＴＭセルポインター機構(62)と第２ＡＴＭセルポインター機構(76)とによって示されている少なくとも第１ＡＴＭセル(14a)と、
第１ＡＴＭセルポインター機構(62)によって示されており、第１アドレス(66)とノードアドレスポインター(68)とを有する第１ノード(64)と、
第２アドレス(71)を有する第２ノード(70)とを具えており、
第１ノード(64)のノードアドレスポインター(68)は第２ノード(70)を示しており、第１及び第２ノード(64)(70)は、アドレスのリンクリスト(72)を構成しているＡＴＭネットワーク(12)の為のマルチキャストシステム(200)。
【請求項１８】
第１ＡＴＭセル(14a)はセルポインター(20)を有しており、第２ＡＴＭセル(14b)を具えており、第２ＡＴＭセル(14b)を含んでおり、第１ＡＴＭセル(14a)のセルポインター(20)で第２ＡＴＭセル(14b)を示しており、第１ＡＴＭセル(14a)と第２ＡＴＭセル(14b)はＡＴＭセルのリンクリスト(72)を構成している請求項１７に記載のシステム(200)。
【請求項１９】
いつポインターが読み込まれるかと、ＡＴＭセル(14)がどのアドレスを用いて、いつポート(18)から送信されるかとを制御するコントローラ(250)を具え、該コントローラ(250)は、ノード、セル及びポインターと通じている請求項１８に記載のシステム。
【請求項２０】
ＡＴＭセルのリンクリスト(72)の最終ＡＴＭセル(14c)を示す書込みポインター(22)を有する請求項１９に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はＡＴＭセルのマルチキャストに関連している。より具体的には、この発明は複数のアドレスに対して複数のまたは単一のポートを通して行うＡＴＭのマルチキャストに関係している。
【０００２】
【従来の技術及び解決しようとする課題】
ＡＴＭ(asynchronous transfer mode 非同期転送モード)は統合(integrated)デジタルネットワークでの通信を行うために用いられる。このネットワークを通して、ＡＴＭセルは予定された目的地へと運ばれる。しかしネットワークの複雑さや、それへの要求により、ネットワーク中におけるセル(cell)に関する流れの制御を含めた問題が存在する。さらには、マルチキャスト(multicast)(すなわち1つのＡＴＭセルを複数の目的地へ送信すること)を行う上においては、複数の目的地へ向かうセルを記憶するためのメモリーの利用にも注意が払われる必要がある。理想的には、可能な限り最小量のメモリーを利用することにより、すべての異なる目的地へ送信されようとするセルが維持されるべきである。この発明においては、マルチキャストを行う上での複数の接続先へセルを送信するための効率のよい方法を提供する。
【０００３】
マルチキャストの機能は、個々のＡＴＭセルを、ＡＴＭスイッチシステムの複数の出力ポートによって送信されることに限定するか、又は個々の出力ポートが、複数回個々のＡＴＭセルを送信することを含んでもよい。この前者においては、異なる出力ポートにマルチキャストＡＴＭセルが配送された瞬間、同じアドレス情報(VPIやVCIとして知られているもの)を持つように接続アドレスを制限することも可能である。この後者においては、マルチキャストＡＴＭセルのコピーが、それぞれに異なるVPI及び／又はVCIを持ち、セルの各コピーが最終的な目的地に送信されることが必要である。複数のVPI/VCIを用いたＡＴＭスイッチにおいて、マルチキャストを実行する従来技術としては、ＡＴＭスイッチングシステムのどこかのステップにおいて、セルのコピーを複数作り、蓄える技術があげられる。
【０００４】
この発明は、セルを配送する各瞬間に、望ましくは異なったVPI/VCIを用いながら、セルをマルチキャストする効率のよい手法と装置に関するものである。セルの複数回の転送は、ＡＴＭスイッチ装置の同じ出力ポートもしくは異なる出力ポートで生じる。重要な革新点は、異なるVPI/VCIを用いているセルを転送する際に、個々のセルの複数のコピーを作る必要をなくした点にある。
【０００５】
【課題を解決するための手段】
この発明は ＡＴＭネットワークにおけるマルチキャストのためのリンクリスト（linked list）に関係するものである。まずこのリンクリストは第1のセルを具えている。このリンクリストは複数の読込み用ポインターも含む。そして各読込み用ポインターは、１つのポートに対応づけられている。各読込み用ポインターは、第１のセルを示している。
【０００６】
この発明は、ＡＴＭネットワーク用のマルチキャストシステムにも関係している。このシステムは、セルが通る第１のポートを含む。このシステムは第１のポートを指し示す一つの読込みポインタをも含む。マルチキャストシステムは、これに加えセルが通るために、少なくとも第２のポートを含む。そして第２のポートに関連して、少なくとも第２の読込みポインタも含む。マルチキャストシステムは、それぞれの読込みポインタが示すセルを含む。さらには、マルチキャストシステムは、読込みポインタがセルを読み込んだ時に、読込みポインタを制御するための制御部も含む。この装置は複数のセルを含むことが望ましい。それぞれのセルは次のセルを指し示すセルポインターを持つ。複数のセルがリンクリストを形成する。制御部は、読込みポインタが示していたセルが読み込まれた後に、そのセルにひきつづく次のセルに読込みポインタを移す。
【０００７】
この発明は、マルチキャストを行うための手法をも含む。この手法には、第１の読込みポインタと、少なくとも第２の読込みポインタを作るためのステップを含む。それぞれの読込みポインタは、第１のポートと、第２のポートとにそれぞれ対応する。それぞれの読込み用ポインターはセルを指している。然る後ポートを選択するステップがある。その次に読込みポインタがポートを指すようにするステップがある。そこで読込みポインタが指し示すセルを読み込むステップがある。好ましくはそのセルはデータを含み、そしてまた第２のセルがある場合は、その第２セルを指し示すポインターを含む。そうすることで、第１のセルと少なくとも第２のセルはリンクリストを構成する。
【０００８】
この発明はＡＴＭネットワークのためのマルチキャストシステムに関係する。マルチキャストシステムは少なくとも第１のＡＴＭセルポインター機構を具えている。マルチキャストシステムはデータを持つ少なくとも第１のＡＴＭセルを含む。第１のＡＴＭセルポインター機構は、その第１のＡＴＭセルを指し示す。このマルチキャストシステムは、第１のＡＴＭセルの第１アドレスを有する第１のノードとノードアドレスポインタとを含む。第１のＡＴＭセルポインター機構は第１のノードを指し示す。このマルチキャストシステムは、第１のＡＴＭセルの第２のアドレスを持つ第２のノードを持つ。第１のノードのノードアドレスポインターは、第２ノードを指し示す。第１のノードと第２のノードは、アドレスのリンクリストを構成する。マルチキャストシステムは、第１のＡＴＭセルポインター機構と、第１のノードと、第２のノードとを制御するための制御部を含むことが望ましい。制御部は第１のＡＴＭセルがポートから第１のアドレスに向けて送信され、そして次に第２のアドレスに向けて送信される様にする。
【０００９】
この発明は１つのＡＴＭセルをマルチキャストする方法に関するものである。この方法は、第１のＡＴＭセルが送られるべき第１のアドレスをもつ第１のノードを読み込むステップを含む。そして第１のＡＴＭセルを、第１のアドレスに向けてポートから送り出すステップを含む。そのあと、第１のＡＴＭセルが送られるべき第２のアドレスをもつ第２のノードを読み込むステップを含む。そして第１のＡＴＭセルを第２のアドレスに向けて送り出すステップを含む。
【００１０】
この発明はＡＴＭセル（複数）をマルチキャストする方法に関するものである。この方法は第１のセルの読込みポインタが指し示す第１のＡＴＭセルを読み込むステップを含む。そして第１のアドレスに向けて第１のポートから第１のＡＴＭセルを出力するステップを含む。次に第１のＡＴＭセルが第１のポートから第２のアドレスに向けて出力される必要があるかどうかを判断するステップがある。次に第１のＡＴＭセルが第１のポートから出力することが完了した後に、第２のＡＴＭセルを指し示すセルポインターを読み込むステップがある。
【００１１】
この発明はＡＴＭネットワークにおけるマルチキャストシステムに関するものである。マルチキャストシステムは、第１のポートと関連する第１のＡＴＭセルポインター機構を含む。マルチキャストシステムは第２のポートと関連する少なくとも第２のＡＴＭセルポインター機構を含む。マルチキャストシステムは少なくとも第１のＡＴＭセルを含む。第１のＡＴＭセルポインター機構と第２のＡＴＭセルポインター機構は、第１のＡＴＭセルを指し示す。第１のアドレスとノードアドレスポインターをもつ第１のノードがある。第１のＡＴＭセルポインター機構は第１のノードを指し示す。第２のアドレスをもつ第２のノードがある。第１のノードのノードアドレスポインターは第２のノードを指し示す。第１のノードと第２のノードは、アドレスのリンクリストを作る。第１のＡＴＭセルはセルポインターをもつことが望ましい。マルチキャストシステムは第２のＡＴＭセルをもつことが望ましい。第１のセルのセルポインターは、第２のＡＴＭセルを指し示す。第１のＡＴＭセルと第２のＡＴＭセルは、ＡＴＭセルのリンクリストを作る。マルチキャストシステムは、制御部を有しており、ポインターが読み込まれるべき時期、ＡＴＭセルがポートから転送されるべき時期、及びそのアドレスを制御する。制御部は、ノードと、セルと、ポインターに連繋している。マルチキャストシステムは、ＡＴＭセルのリンクリストの最後尾のＡＴＭセルを指し示す書き込みポインターを持つ事が望ましい。
【００１２】
望ましくは、ＡＴＭコネクションが張られるたびに、VPI/VCIのリンクリストは、そのコネクションを転送する出力の度に記憶される。セルを送信する際には、構成されたVPI/VCIのリストのそれぞれに対して一度ずつ、そのリストの内容それぞれに含まれるVPI/VCIを用いて、指定された出力から送信される。VPI/VCIのリストの最後まで到達した時点において、その出力ポートのためのそのＡＴＭセルの読み込みは終了しており、そのコネクションと出力ポートのための次のＡＴＭセルの読み込みが再びVPI/VCIリストの先頭から開始される。
【００１３】
VPI/VCIリストには、いくつかのポインターが必要である。それぞれのコネクションのそれぞれのポートに対して、VPI/VCIリストの中の現在のエントリーを指し示すポインターが存在する。セルが読み込まれるたびにVPI/VCIのリストへのポインターはVPI/VCIが使われるべきエントリーを指し示していて、転送されたセルのVPI/VCIとして使われる。またセルが読み込まれるたびにVPI/VCIリストへのポインターはVPI/VCIリスト中の次のエントリーを指し示すように更新される。
【００１４】
VPI/VCIリストのエントリーの１つは、最後のエントリーとして設定される。ひとたびこの最後のエントリーに到達したなら、読み込まれたセルは全てのVPI/VCIへ既に送信された事を意味し、そのセルがそれ以降そのポートから読み出される事はない。もし次にそのコネクションの出力ポートからの読み出しが行われる時には、そのコネクションにおける次のセルが送り出される。
【００１５】
【発明の効果】
この新しい技術には次の利点がある。この技術により、同じ出力ポートからでも異なった出力ポートからでも、セルが複数回送信される事を可能にすると同時に、そのセルが送信ごとに異なるVPI/VCIを持つ事をも可能とする。いくつものセルのコピーをＡＴＭスイッチのネットワークのどこかに蓄えたりする事なく、複数のVPI/VCIに対してセルをマルチキャストする事を可能とする。これにより複数のセルのコピーを保持するためのメモリーも、必要とされる帯域幅も節約される。そのコネクションのセルの流れを妨害する事なく、コネクションの出力のVPI/VCIのリストを変更する事ができる。
【００１６】
【発明の実施の形態】
図を参照するにあたり何枚かの図の中で引用する図中の同じ数字は、ほぼ同じもしくは同一の部分を示す。特に図１には、マルチキャストを行うＡＴＭネットワーク(12)のためのリンクリスト(10)が示されている。リンクリスト(10)は第1のセル(14)を有する。リンクリスト(10)は複数の読込み用ポインター(16)を有する。それぞれの読込み用ポインター(16)はポート(18)と関連づけられている。また、その読込み用ポインター(16)は第１のセル(14)を指し示している。ポート(18)は、ここで意図しているのは、スイッチの段のようなスイッチ内部のポート、もしくはスイッチの外部ポートを意味する。
【００１７】
リンクリスト(10) は少なくとも第２のセル(14b)を含む事が望ましい。そしてそれぞれのセル(14)は、それが最後のセル(14c)でない限り、セルポインター(20)を含み、それは次のセル(14)を指し示す。もし、読込みポインタの管理の手間を最小にする事のほうが、メモリーの利用を少なくする事よりも重要であるのならば、最後のセル(14c)を解放せずに管理する事もできる。この様にする事で、読込みポインタが存在する状態を保持する事ができ、新しくリンクリスト(10)を作成するたびに、いちいち読込みポインタを書き直す必要がなくなる。もし、メモリーの利用の方が全ての構成において貴重であるのなら、最後のセル(14c)を解放する事もできる。
【００１８】
リンクリスト(10)は最後のセル(14c)を指し示す書込み用ポインター(22)を持つ事が望ましい。それぞれのセル(14)は、セル(14)が出力されるべき全てのポート(18)を表すカウンター(24)を含む事ができる。リスト(10)はそれぞれの読込み用ポインター(16)に対応する停止用ポインター(26)を持つ事ができる。この停止用ポインター(26)は、対応するポート(18)から最後のセルが出力されようとしていることをあらわす。
【００１９】
この発明はＡＴＭネットワーク(12)のためのマルチキャストシステム(28)を含む。このシステム(28)はセル(14)が通過する第１のポート(18a)を含む。このシステム(28)はさらには第１のポート(18a)に対応する読込みポインタ(16a)を含む。マルチキャストシステム(28)はさらに、セル(14)を通過させる少なくとも第２のポート(18b)をも含む。そして第２のポート(18b)に関係づけられた第２の読込みポインタ(16b)も存在する。マルチキャストシステム(28)はそれぞれの読込みポインタ(16)が指し示すセル(14)を含む。さらには、マルチキャストシステム(28)は、図６に示されている通り、読込みポインタ(16)がセル(14)を読み込む動作を制御する制御部(30)を含む。システム(28)は複数のセル(14)を含む。それぞれのセル(14)は、次のセルを指し示すためのセルポインター(20)を持つ。複数のセル(14)はリンクリスト(10)を作る。制御部(30)は、読込み用ポインター(16)が指し示すセル(14)が読み込まれた時に、読込みポインタ(16)を次のセル(14)を指し示すように変更する。
【００２０】
システム(28)は リンクリスト(10)の最後のセル(14c)を指し示すための手段もしくは機構を含む事が望ましい。このリンクリスト(10)の最後のセル(14c)を指し示すための手段もしくは機構が、書き込みポインター(22)である。それぞれのセル(14)はカウンター(24)を持ち、セル(14)が送り出される全てのポート(18)を識別する。この制御部(30)は読込み用ポインター(16)が指し示すセル(14)が読み込まれると、ポート(18)をカウンター(24)から取り除く。さらに、システム(28)はそれぞれの読込み用ポインター(16)に対応する停止用ポインター(26)をもつ。停止用ポインター(26)は、最後のセル(14c)がポート(18)から出力されようとしていることを示す。セルがリンクリスト(10)中の最後のセル(14c)である場合を除き、セル(14)が送信されるであろう他のポート(18)及びカウンタ(24)中にポート(18)が無いときは、制御部(30)はセル(14)を解放する。
【００２１】
この発明はさらにマルチキャストのための手法も含む。この手法は第１の読込みポインタ(16a)と少なくとも第２の読込みポインター(16b)を作成するステップを含む。それぞれの読込みポインタ(16)は第１のポート(18a)と第２のポート(18b)にそれぞれ対応している。それぞれの読込みポインタ(16)はセル(14)を指し示す。その次にポート(18)を選択するステップを含む。続いて読込みポインタ(16)をポート(18)に割り振るステップがある。そして次に読込みポインタ(16)が指し示しているセル(14)を読み込むステップがある。そのセルはデータを持ち、もし第２のセルがあるのなら、セル(14)は第２のセル(14b)を指し示すセルポインター(20)を含む事が望ましい。第１のセル(14a)と少なくとも第２のセル(14b)は、リンクリスト(10)を作る。
【００２２】
読み込みステップの後、読込みポインタ(16)がセル(14a)のセルポインター(20)によって指し示されている第２のセル(14b)を指し示すようにするステップがある。読み込みステップの後、セル(14a)をポート(18a)から送出するステップもある。読込みポインタ変更のステップの後、セル(14a)を少なくとも１つ以上の他のポート(18)から送出する必要があるかどうかを確認するステップがある。この確認ステップのあと、もしセル(14a)が送出されるポート(18)が他にないのであれば、セル(14a)を解放するステップを含む事ができる。
【００２３】
セル(14)はセル(14)が出力される全てのポート(18)を区別するためのカウンター(24)を含む事が望ましい。送出ステップの後、ポート(18a)をカウンター(24)から取り除くステップを含む事が望ましい。解放ステップには、セルが出力されるポート(18)が他になく、セルが出力されるポートがカウンター(24)にもなく、そしてセル(14)がリンクリスト(10) の中の最後のセル(14c)でない場合にセル(14a)を解放するステップを含む。
【００２４】
読込みポインタ変更ステップの後、ポインター(16a)が指している第２のセル(14b)を読み込むステップがある。セルを解放するステップには、セル(14)が出力されるべきポート(18)の数と同じ値を持つカウンター(24)を１だけ減少させるステップを含む。
【００２５】
確認ステップはポート(18)用の停止用ポインター(26)の値をポート(18)のための正しいポインターの値(22)に準備するステップを含む。ポインター(20)はポート(18)から出力されることになる最後のセル(14c)を指し示す。または、読込みステップの後、セル(14)のステータスフィールド(34)(status field)からのポート(18)に対するビット(32)をクリアーするステップを設けてもよい。そして解放ステップには、セル(14)のステータスフィールド(34)が空であり、カウンター(24)の値が０に等しく、セル(14)がリンクリストの最後のセル(14c)でない場合に、セル(14)を解放するステップを含む。
【００２６】
代りのステップの実施例においては、マルチキャストの為の手法には、ポート(18)を選択するステップを含む。そして、読込みポインタ(16)をポート(18)を指すようにするステップがある。次に読込みポインタ(16)が指しているセル(14)を読み込むステップがある。次にセル(14)をポート(18)から送り出すステップがある。そして、セル(14)が送り出されるべき全てのポート(18)を表わすカウンター(24)からポート(18)を取り除くステップがある。次に、もし第２のセル(14b)がある場合に、セル(14a)のセルポインター(20)が指している第２のセル(14b)を読込みポインタ(16)が指すようにするステップがある。セル(14a)が出力されるべきポート(18)が少なくとも一つあるかどうかを調べるステップがある。次に、もしセル(14a)が出力されるべきポート(18)が他になく、カウンター(24)の中にポート(18)がなく、セル(14a)がリンクリスト(10)の最後のセル(14c)でない場合に、セル(14a)を解放するステップがある。
【００２７】
上記指し示すステップの後、読込みポインタ(16)が指している第２のセル(14b)を読み込むステップがある。確認ステップはポート(18)のための停止ポインター(26)の値をポート(18)のための書き込みポインター(22)の値と比較をするステップを含む事ができる。書き込みポインター(22)はポート(18)から出力される最後のセル(14c)を指している。または、上記指し示すステップの後、セル(14)のステータスフィールド(34)の中のポート(18)に対応するビット(32)をクリアするステップが存在してもよい。解放ステップは、ステータスフィールド(34)が空でカウンター(24)の値が０であり、セル(14)がリンクリスト(10)の最後のセル(14c)でない場合に、セル(14)を解放するステップを含む事ができる。
【００２８】
複数のセルを含む場合の装置の動作において、セル(C1)はシステム(28)に導入される。ポート１、ポート２、ポートＮに対応する読込みポインタ Ra1、Ra2、RaN はそれぞれ、セルC1を指している(第１の添字(ここではa)は接続(コネクション)を示している。第２の添字(ここでは１)はポートを示している。つまり、Ra1は接続aとポート1に関連づけられた読込みポインタをあらわしている）。セル(C1)のカウンター(24)は、セル(C1)を出力として受け取るポートの数である３にセットされ、そしてステータスフィールド(34)はセル(C1)が出力されるポートを識別するためのビット(32)をもつ。同様に書き込みポインターWaはセルC1を指しており、そしてそのセル(14)は最後のセル(14c)となっている。書き込みポインターWaは３までカウントし、それはセルC1を受け取るポートの数である。さらに、書き込みポインターWaはステータスフィールド(34)を持ち、それはC1が出力されるポートそれぞれに対応したビットで埋められた基準ステータスフィールドとして機能する。図２を参照。加えて、読込みポインタRa1、読込みポインタRa2、読込みポインタRaN、にそれぞれ対応している停止ポインターSa1、停止ポインターSa2、停止ポインターSa3は、どのポートも外されるステップに該当していないので、何も指さない。
【００２９】
ここでは例として、次に、ポート２をリンクリスト(10) のセルを読み込まないようにして、そしてセルC2とC3をC1で始まるリンクリスト(10)に付け加える。C2が付け加えられたとき、セルC1のセルポインター(20)はセルC2を指し示す。セルC2のカウンター(24)は２に増加され、その値はポート１とポートＮの２つのポートにセルC2が出力されることを表す。同様に、セルC2のステータスフィールド(34)はセルC2がポート１とポートＮとに出力されることを示すために、第１のポートと第Ｎのポートに対応する場所を教えるビット(32)を持つ。さらに、セルC2はセルC3を指し示すセルポインター(20)を持つ。セルC3のカウンターも２に増加され、ポート１とポートＮのためのステータスフィールド(34)の対応する場所をビット(32)に教える。さらには読込みポインタWaはセルC3がリンクリスト(10)の最後のセル(14c)であるから、現在はセルC3を指す。読込みポインタWaのカウンターの値は、セルC1、C2、C3を持つリンクリスト(10)が出力されるのは２つのポートしかないため、２にセットされる。そして、その基準ステータスフィールド(32)はポート１の場所とポートNの場所に対応する２つのビットしか立っていない。なぜなら、ポート２はセルC2とC3が加えられる以前に外されていたからで、ポート２の存在をそれらのセルは全く知らないからである。セルC1がシステム(28)で作られたときにポート２が存在したので、セルC1はまだポート２の存在を知っている。またポート２がリンクリスト(10)のセル(14)を読まないようにするために、停止ポインターSa2はセルC1を指すように変更される。ポート(18)がリンクリスト(10)のすべてのセル(14)から取り除かれた時に限り、そのポートが取り除かれたところであるリンクリスト(10)の最後のセルを停止ポインター(26)は指し示す。図３を参照。
【００３０】
次に例示的として、ポート１から２回読み込まれ、その後ポートＮからリンクリスト(10)を１回読み込んだとする。ポート１が最初に読み込んだ時、セル(C1)はポート１に送り出され、読込みポインタ(Ra1)はセル(C1)のセルポインター(20)が指し示すところのセル(C2)に移される。停止ポインター(Sa1)がセル(14)のどこも指していないため、読込みポインタは次のセルへと移動する事が許される。ポート１はセル(C1)を既に読み込んだため、ポート１は、今後セル(C1)を読み込むことがないという事実のために、セル（C1）のカウンター(24)は、１減らされる。加えてポート１はすでにセルC1を読み込んだため、今後セル(C1)を読み込むことがないという事実を反映して、セルC1のステータスフィールド(34)の中のビット(32)はクリアされる。そして、ポート１のための読込みポインタ(Ra1)は、セルポインター(20)が指し示すセルであるセル（C3）を指すようになる。リンクリスト(10)に関連した２つのポートが存在すること及び基準ステータスフィールドがそれら２つのポートはポート１とポートＮであることを、これのカウンターが依然示しているので、読取りポインタ(Wa)は変更されない。次にポートNが読み込まれ、セル(C1)がポートNから送り出される時にセル(C1)のステータスフィールド(34)のポートNに対応するビット(32)はクリアされ、セル(C1)のカウンター(24)は１減らされる。読込みポインタ(RaN)はセル(C1)のセルポインター(20)が指すところのセル(C2)を指し示すように移される。停止ポインター(SaN)がどのセルにも向けられていないため、ポインター(RaN)はセル(C2)に移動する。図４を参照するとよい。
【００３１】
ポート２が読み込まれた時、停止ポインター(Sa2)がセル(C1)を向いているためポート２は停止する。このことは読込みポインタ(Ra2)は、それがセル(C1)を指した時に、リンクリスト(10)のセル(14)を読み込むのを止めることを表す。そして、読込みポインタ(Ra2)はどこも指さないように変更される。セル(C1)はそのカウンターを０にまで減じ、ポート２に対応するステータスフィールド(34)のビット(32)はクリアされる。カウンターが０で、ステータスフィールドのビットがなにもないために、セル(C1)を受け取るべきポートは無いことになり、セル(C1)は解放される。図５参照。
【００３２】
所定ポートがリンクリスト(10)のマルチキャストから除外される位置にある時の書込みポインターの値に設定された停止ポインター(26)が存在することにより、接続するとセルが消去される様な多数のポートが可能となる。停止ポインターは、あるポートを取り除く事、さらにリンクリスト(10)がこの事を認識する事を可能とする。同様に、それぞれのセルのステータスフィールド(34)、そしてカウンター(24)に関していうと、あるセル(14)のカウンター(24)が０となったとき、セル(14)はすべてのポート(18)からすでに読み込まれ、このセルに関連したメモリー空間は未使用状態に戻す事ができる。このようにして、ポート(18)をリンクリスト(10)のマルチキャストから外すには、そのポート(18)に対応する書き込みポインター(22)の基準ステータスフィールドのビット(32)をクリアしさえすればよく、古い値を保持する必要はない。次のセル(14)がリンクリスト(10)に書かれた時には、古いカウンターの値ではなく、新しいステータスフィールドを受け取る。それぞれの新しく到着するセルは新しいステータスフィールドを受け取り、カウンターの値はステータスフィールド(34)の中でセットされているビット(32)の数に等しくなる。１度ステータスフィールドが付け加えられると、フルカウントの値は無用のものとなり、そのセルを送信しない事になっているポートの数をカウンターで保つ事だけが必要となる。ほとんどのセルのカウンターの値は０である。１つ若しくはいくつかのセルがマルチキャストから外されたとき、基準ステータスフィールドのそれらのポートに対応するビットがリセットされ、リストにある次のセルのカウンターには、その外されたポートの数がセットされる。セル(14)がポート(18)から読み込まれた時、ステータスフィールド(34)のビット(32)はリセットされる。もしステータスフィールド(34)が空でカウンター(24)が０であった時、セル(14)を解放する事ができる。もしセル(14)がポート(18)から読み出され、ステータスフィールド(34)のビット(32)がセットされていない時には、そのポートはこのセルに関しては、取消されているポートなので、カウンター(24)が１減らされ、同様にステータスフィールド(34)が空で、カウンター(24)が０の時には、セル(14)を解放する事ができる。カウンター(24)は各セル(14)と共にあるので、セル(14)が送り出される事ができるポートの数の最大値に対するものとして、それは、送出リストから外されるポート(14)の数の最大値を数えるために十分なサイズがあればよく、これによりカウンターのサイズは小さくできる。もし、あるセル(14)について取消しできるポート(14)の数の最大値が１であるとするのなら、それは１ビットのカウンターとなる。
【００３３】
一旦ステータスフィールド(34)が付け加えられると、フルカウントの値は無用のものとなる。そのセルを送信しない事になっているポートの数をカウンターで保つ事だけが必要となる。ほとんどのセルのカウンターの値は０である。１つ若しくはいくつかのセルがマルチキャストから外されたとき、基準ステータスフィールドのそれらのポートに対応するビットがリセットされ、リストにある次のセル(14)のカウンター(24)には、その外されたポートの数がセットされる。セル(14)がポート(18)から読み込まれた時、ステータスフィールド(34)の対応するビット(32)はリセットされる。もしステータスフィールド(34)が空で、さらにカウンター(24)が０であった時、セル(14)を解放する事ができる。
【００３４】
もしセル(14)がポート(18)から読み出され、ステータスフィールド(34)のビット(32)がセットされていない時には、そのポートはこのセル(14)に関する限り、除外されているポートなので、カウンター(24)が１減らされる。同様にステータスフィールド(34)が空でカウンター(24)が０の時にはセル(14)を解放する事ができる。カウンター(24)は各セル(14)に対応するように設けられているので、セル(14)が送り出されるべきポートの数の最大を数えるために十分な大きさがあればよく、これによりカウンターは小さくできる。もし、あるセル(14)に限って、外すことのできるポート(14)の数の最大が１であるとするのなら、それは１ビットのカウンターとなる。もしあるポートが外されていることが表示されており、また同時に外す事のできるポートの数は１つだけであるから、その外されているポートが、そのポートでなければならない。もしポート(14)がリンクリスト(10)を読み込まないようにされていないなら、停止ポインター(26)は除去され、ステータスフィールドのみが存在する。
【００３５】
また別の実施例においては、セル(14)は２つの種類のステータスフィールドを持つ事ができる。カウンター(24)又はそれに対応する停止ポインター(26)の必要性は除去される。この２種類のステータスフィールドのうち、１つはこれまでに述べたステータスフィールド(34)と同じものである。もう１つは、そのセルがポートから読み出される最後のセルかどうかを識別するビットをもつステータスフィールドである（それゆえ、このビットは停止用ポインターと同じく振舞う）。セル(14)が、対応するポート(18)から読み込まれる最後のセルであったとしても、そのセルも読み込まれるようにシステム(28)のプロトコルを作ることができる。もしくは、追加されたステータスフィールドによりポート（18）に対応する最後のセルであることがわかる場合には、そのセルを読まないように作ることもできる。ステータスフィールドを用いることは、相対的に言えば、操作において引き算が必要なため、もっと複雑となるカウンターを用いる手法に比べて、単にビットを増やしたり減らしたりするだけという利点がある。ロジックの束縛とメモリーの束縛とのどちらがより重要であるかが、究極的には設定を決めることになる。
【００３６】
リンクリスト(10)のマルチキャストはシステム(28)を用いて行われる。図６はシステム(28)の概要である。システム(28)はスケジューラ(36)を含む。スケジューラ(36)は、どのコネクションが読み込まれるかを、ラウンドロビン法や加重ラウンドロビン法や加重公平待ち行列法（weighted fair queuing）やバーチャルクロック法（virtual clock）などのスケジューリング手法により決定する。コントローラ(38)がポート(18)からセル(14)を送るように決定するたびに、スケジューラ(36)は呼び出される。コントローラ(38)は、総合接続情報を更新して、使われていないセルの位置のリスト(フリーリスト(free list))を作り、読込みコントローラ(40)と書込みコントローラ(42)から受け取った情報に基づいて接続ステータスをスケジューラ(36)に知らせ、読込みコントローラ(40)がどのコネクションを読むべきかを教える。読込みコントローラ(40)はポート番号とコネクション番号を与えられると、そのポートで、そのコネクションの次のセルを読み出す。
【００３７】
システム(28)は総合接続情報メモリー(44)を含む。図７にあるとおり、総合接続情報は、読込みおよび書込み情報エントリーへのポインターを含んでいる。これは、それらが同一メモリー内で総合接続情報の近くにない場合、又はそれらが別々のメモリー内にあって、同一アドレスでない場合に生じる。ポートフィールド(port field)とポートカウント(port count)のエントリーが使われた場合には、これらは総合接続情報に属するか、接続書込み情報に属する(もし両方が存在する場合には、両者は総合情報と書込み情報の何れかと一緒であるか、または一方が夫々と一緒である）。
【００３８】
システム(28)の書込みコントローラー(42)は、入力からセルを受け取り、それをセルメモリー(46) （図８、図９参照）に書き込む。そして接続書込み情報を更新して、(コントローラ(38)に制御されて)フリーリストからセル(14)を受け取ったり、返したりし、コネクションに新しいセル(14)が届いたこと、またどのコネクションにセルが届いたかをコントローラ(38)に知らせる。図８、図９において、セル(14)とそのデータは１つのメモリーへ一緒に、もしくは違うメモリーへ別々に格納される。なお、それぞれのデータ項目は同じアドレスに格納される(番地付けはデータ項目ごとに行われる)。「違うメモリー」というのは物理的に別々の場所であってもよいし(別のチップ)、論理的に分けられていてもよい(同じメモリーの別々の領域でもよい。または等間隔にあけてある、即ち偶数の番号が付けられた(単語やデータ項目）のすべてのアドレス０、２、４...はメモリーＡに、そして奇数の全てのアドレス １、３、５、７ はメモリーＢとする。この場合、項目"i"は、もし物理的なメモリーＡに格納されるとしたら、物理アドレス"2*i"に、又、もし物理的な「メモリー」Ｂに格納されるとしたら、物理アドレス(2*i)+1に格納される）。
【００３９】
システム(28)は図１０にあるような接続書き込み情報メモリー(48)を含む。コネクション書き込み情報は、(読込みポインタ(16)の最適化がされているかどうか応じて)そのコネクションのリンクリスト(10)の最後のセル(14c)へのポインターと、そのコネクションの次のセル(14)が書き込まれる場所へのポインターを含む。それは、必要なものではあるが、総合接続情報には含まれていない”ポートフィールド”か"ポートカウント"フィールドをも含むことがある。
【００４０】
システム(28)は、図１１、図１２にあるように、接続読込み情報メモリー(50)を具えている。接続読込み情報には、それぞれのポートに対してリンクリスト(10)の中のセル(14)へのポインターをもつエントリーがある。このセル(14)は、次に、あるポート(18)よりこのコネクションがセル(14)を出力しないといけなくなった時に、そのポート(18)について読み出される。それぞれのエントリーは必要なら停止用ポインター(26)を持つ。コネクションは、セルが送り出されるそれぞれのポート(18)に対して、異なったVPI又はVCIを必要とすることもあるため、それぞれのエントリーは新しいヘッダーなどの追加情報を持つ。接続読込みエントリーが別々に格納されている場合には、各ポート(18)の接続読込みエントリーを示すポインターを含んだポートナンバーによって、インデックスされるアレイ(array)があるのだろう。図7、10、11、12、13、14、15、16、17に記載されているように、さまざまなメモリーは物理的に別々の場所でもよいし、１つまたは複数の物理メモリーの中にある論理的なメモリーでも構わない。これらの図に関しては、次のような分類上の記号を用いている。
【００４１】
(3 & 4) 読込み/書込み情報が同じメモリー内にて接続エントリーのすぐそばにない場合か、別々のメモリーの別々の場所に保持されている場合に限り必要となる。
【００４２】
(4) 異なったポートの読込み情報エントリーが一緒に保持されている場合、読み込み情報ポインターはそのうちの一つを指してもよい。
(5) idが必要である。
【００４３】
図２１を参照すると、ＡＴＭネットワーク(12)用のマルチキャストシステム(100)が描かれている。マルチキャストシステム(100)は少なくとも第１のＡＴＭセルポインター機構(62)を含む。マルチキャストシステム(100)はデータを持つ第１のＡＴＭセル(14a)を含む。第１のＡＴＭセルポインター機構(62)は第１のＡＴＭセル(14a)を指す。マルチキャストシステム(100)は、第１のＡＴＭセル(14a)のための第１のアドレス(66)と、ノードアドレスポインター(68)とを持つ第１のノード(64)を更に含む。第１のＡＴＭセルポインター機構(62)は第１のノード(64)を指し示す。マルチキャストシステム(100)は第１のＡＴＭセル(14a)のための第２のアドレス(71)をもつ第２のノード(70)からなる。第１のノード(64)のノードアドレスポインター(68)は第２のノード(70)を指し示す。第１、第２のノードは、アドレスのリンクリスト(72)を作る。マルチキャストシステム(100)は、第１のＡＴＭセルポインター機構(62)と、第１のノード(64)と、第２のノード(70)とを制御するコントローラ(300)を更に含んでいる。コントローラ(300)は、第１のＡＴＭセル(14a)がポート(18)を通して第１のアドレス(66)に送られ、そして第２のアドレス(71)に送られるようにする。
【００４４】
第１のＡＴＭセルポインター機構(62)は、第１のＡＴＭセル(14a)を指す第１のセル読込みポインタ(16)を含むことが望ましい。また第１のＡＴＭセルポインター機構(62)は、第１のＡＴＭセル(14a)が送り出される先のアドレスを並べたリンクリスト(72)の中のノードを指すアドレスポインター(74)を含むことが望ましい。
【００４５】
アドレスのリンクリスト(72)のそれぞれのノードは、新しいVPI情報、新しいVCI情報、最終コネクションをあらわすビット、アドレスのリンクリストの最後のエントリを示すビットを含むことが望ましい。ノードの中の最終コネクションを示すビットがセットされ、アドレスポインター(74)がそのノードを指している場合、コントローラ(300)は、第１のＡＴＭセル(14a)をそのノードの中のVPI/VCI情報にしたがって送信するが、そうでない場合には第１のＡＴＭセル(14a)はVPI情報だけにしたがって送信される。アドレスのリンクリストの最後のエントリーがそのノードにセットされている場合、第１のＡＴＭセル(14a)を送信した後、第１のセル読込みポインタ(16a)はコントローラ(300)によって第２のＡＴＭセル(14b)を指すように変更される。
【００４６】
この発明はＡＴＭセル(14)をマルチキャストする手法を含む。この手法は第１のＡＴＭセル(14a)が送り出されるべき第１のアドレス(66)をもつ第１のノード(64)を読み込むステップを含む。そして、第１のＡＴＭセル(14a)をポート(18)から第１のアドレス(66)へと送り出すステップがある。次に第１のＡＴＭセル(14a)が送り出されるべき第２のアドレスを持つ第２のノード(70)を読み込むステップがある。そして、第１のＡＴＭセル(14a)をポート(18)から第２のアドレス(71)へと送り出すステップがある。
【００４７】
以下の表は図２１に関するセルの転送の例と、それに対応するポインターの変化の様子をあらわしている。表においては、アドレスポインター(74)はVPI/VCIリストエントリーへのポインターと呼ばれ、ノードアドレスポインター(68)は次のVPI/VCIリストエントリーへのポインターと呼ばれる。
【００４８】
【表１】
0003735396.tif 000002
【００４９】
第２ノード(70)を読むステップの前に、第２ノード(70)を示しており、第１ノード(60)に関連したノードアドレスポインター(68)を読むステップを設けることが望ましい。第１と第２ノードは、アドレスのリンクリストを形成する。第１ノード(64)を読むステップの前に、第１ＡＴＭセル(14a)を示す第１ＡＴＭセル読込みポインタ(16a)を読むステップを設けることが望ましい。第１ノード(64)を読むステップの前に、第１ノード(64)のアドレスポインター(74)を読むステップがある。
【００５０】
第１アドレス(66)が最後のアドレスである場合は、送信ステップの前に、第１ＡＴＭセル(14a)へ新しいVPIとVCIを挿入するステップがある。さもなければ、第１ＡＴＭセル(14a)は、第１ノード(64)からのVPI情報のみを用いて送信される。第１ノード(64)を示す第１アドレスポインター(74)を読むステップの後で、アドレスポインター(74)に第２ノード(70)を指させるステップがある。
【００５１】
第１ＡＴＭセル(14a)を第２アドレス(71)へ送信するステップの後、ノードがアドレスのリンクリスト(72)中の、最後のエントリーになるまで、第１ポート(18)から第１ＡＴＭセル(14a)を、アドレスのリンクリスト(72)のさらなるアドレス、さらなるノードについて順次送信するステップがあるのが望ましい。しかる後、ＡＴＭセル読込みポインタ(14)が第２ＡＴＭセル(14b)を示すステップが有る。次に、アドレスポインター(74)をアドレスのリンクリスト(72)の第１ノード(64)へ示させるステップがある。
【００５２】
本発明は、ＡＴＭセル(14)をマルチキャストする方法に関するものである。この方法は、第１ＡＴＭセル読込みポインタ(16a)が示している第１ＡＴＭセル(14a)を読み込むステップを含んでいる。しかる後、第１ＡＴＭセル(14)を第１ポート(18a)から出力して第１アドレス(66)へ送信するステップがある。次に、第１ＡＴＭセル(14a)を第１ポート(18a)から出力して、第２アドレス(71)へ送信するべきか否かを判断するステップがある。次に、第１ポート(18)から出力された第１ＡＴＭセル(14a)のアドレスへの送信を完了した場合に、第２ＡＴＭセル(14b)を示すセルポインター(20)を読み込むステップがある。第１ＡＴＭセルは、セルポインター(20)を含んでおり、セルポインターの読み込みステップは、第２ＡＴＭセル(14b)を示す、第１ＡＴＭセル(14a)のセルポインター(20)を読み込むステップを含むことが望ましい。セルポインター(20)を読み込むステップの後、第２ＡＴＭセル(14b)を読み込むステップがある。望ましくはノードアドレスポインター(68)を読み込むステップの後で、第２ノード(70)の第２アドレス(71)を読み込むステップがあるのがよい。
【００５３】
本発明は図２２に示すように、ＡＴＭネットワーク(12)用のマルチキャストシステム(200)に関するものである。マルチキャストシステム(200)は、第１ポート(18a)に関連した第１ＡＴＭセルポインター機構(62)を含んでいる。マルチキャストシステム(200)はまた、少なくとも、第２ポート(18b)に関連した第２ＡＴＭセルポインター機構(76)を含んでいる。マルチキャストシステム(200)はまた、少なくとも第１ＡＴＭセル(14a)を含んでいる。第１ＡＴＭセルポインター機構(62)と第２ＡＴＭセルポインター機構(76)は、第１ＡＴＭセル(14a)を示す。第１アドレス(66)とノードアドレスポインター(68)を具えた第１ノード(64)がある。第１ＡＴＭセルポインター機構(62)は、第１ノード(64)を示す。第２アドレス(71)を有する第２ノード(70)がある。第１ノード(64)のノードアドレスポインター(68)は、第２ノード(70)を示す。第１及び第２ノードは、アドレスのリンクリスト(72)を構成する。第１ＡＴＭセル(14a)は、セルポインター(20)を有することが望ましい。マルチキャストシステム(200)は、第２ＡＴＭセル(14b)を含むことが望ましい。第１ＡＴＭセル(14a)のセルポインター(20)は、第２ＡＴＭセル(14b)を示す。第１ＡＴＭセル(14a)と第２ＡＴＭセル(14b)は、ＡＴＭセル(14)のリンクリスト(10)を構成する。マルチキャストシステム(200)は、いつポインターが読み込まれるかと、ＡＴＭセル(14)がどのアドレスを用いて、いつポート(18)から出力されるかとを制御するコントローラ(250)を含む。マルチキャストシステム(200)は、またＡＴＭセル(14)のリンクリスト(10)中の最後のＡＴＭセル(14)を示す書込みポインター(26)を有することが望ましい。
【００５４】
望ましい実施例の動作に於ては、ＡＴＭセルは次の様にして記録される。ＡＴＭネットワーク(12)からのＡＴＭセル(14)は、図１８に示すようにバッファ書込み論理回路(202)に受け取られる。該バッファ書込み論理回路は、接続特定情報(203)を検索して、ＡＴＭセル(14)が属するコネクションについて接続ポインター情報(204)の位置を決定する。そしてそれは、ＡＴＭセルバッファ(205)にセル(14)を書き込み、セル(14)の存在を示すように接続ポインター情報(204)を更新する。
【００５５】
ＡＴＭセル(14)が特定の出力ポート(18)に対して読み込まれねばならない場合、バッファ読込み論理回路(207)は、接続ポインター情報(204)を検索し、与えられた接続を求め、ポート(18)から出力するため、アドレスリンクリスト(72)へのアドレスポインター(74)を見つける。それは、アドレスポインター(74)を用いて、アドレスリンクリスト(72)中のノードを見つける。
【００５６】
ノードに最終コネクションを表示するビット(214)が設定されている場合、そのノードからの新たなVPI（212）と新たなVCI（213）が、送信されるセルへ挿入される。それ以外の場合では、新たなVPI（212）だけが送信されるセル(14)へ挿入される。（セルのVCIは、それがＡＴＭセルネットワーク(12)から到着した時点から変更されないままである。）
【００５７】
セル(14)の送信の為、正しいVPI/VCIが一旦決められると、アドレスリンクリスト(72)へのポインターには、ノードのポインター(68)に記録されていた値が与えられ、従って、リスト(72)への次のエントリーは、次のセル(14)の送信の為に使われる。
【００５８】
最終エントリーを示すビット(215)がノードに設定されている場合、ノードアドレスポインター(68)は、アドレスリンクリスト(72)中の第１ノード(64)に戻って示す。セル(14)がアドレスリンクリスト(72)中の最終ノードを用いて送信された後、接続ポインター情報(204)中のＡＴＭセル読込みポインター(16)は更新されて、与えられたコネクションについてＡＴＭセルバッファ(205)中の次のセル(14)を示す。
【００５９】
結局、ＡＴＭ接続のある出力ポート(18)がｎ個のエントリーを伴ったアドレスリンクリストを示す場合、その接続に関する各ＡＴＭセル(14)は当該出力ポートによってｎ回送信され、この場合、各送信はアドレスリンクリスト(72)の一連のエントリーの各々に記録されているVPI（及び多分VCI）を用いて行われる。
【００６０】
アドレスリンクリスト(72)にエントリーを加え、又は除去することについて、コネクションのある１つの出力ポート(18)に対するアドレスリンクリスト(72)は輪状に繋がったリストによって構成される。そのリストでは、ノードの各ノードアドレスポインター(18)は、アドレスリンクリスト(72)中の次のノードを示しており、そして最終ノードはアドレスリンクリスト(72)中の第１ノード(64)に戻って示している。
【００６１】
今存在するアドレスリンクリスト(72)に対してノードを付け加えるには、次のステップを実行せねばならない。
１. アドレスリンクリスト(72)の内部にて新しいノードを作り出す。この新ノードはＸによって表示する。
２. ノードＸのノードアドレスポインター(68)をノードＸの次のノードに変更し、それによって既にノードＸが加えられてるリストの要素になっている或るノード（以下Ｙと表す）を示す。
【００６２】
もしノードＸがアドレスリンクリスト(72)中の唯一のノードである場合は、ノードをそれ自身へ示し、VPI/VCIリストの最終エントリーを示すビット(215)を１に設定する。
３. ノードＸをリストへ挿入するために、ノードアドレスポインター(68)を、アドレスリンクリスト(72)にあって、エントリーＹを示す次のノードアドレスポインター(68)に変更する。これによって、それは代わりにエントリーＸを示す。
【００６３】
現在のアドレスリンクリスト(72)からノードを除去するために次のステップを実行せねばならない。
【００６４】
除去されるべきエントリーは、エントリーＢと表す。ノードＢを示すノードは、ノードＡと表す。ノードＢによって示されるノードは、ノードＣと表す。
１.ノードＡのノードアドレスポインター(68)を切替え、ノードＢではなくノードＣを示すように為す。もしVPI/VCIリスト中の最終ノード表示ビット(215)をノードＢにセットされると、VPI/VCIリスト中の最終ノード表示ビット(215)がノードＡにセットされる。
２.ノードＡはもはや必要でないこと、そして破棄されることを確認するため、与えられているコネクションに関する接続ポインター情報(204)中のアドレスポインター(74)はノードＢを示していないことを確認せねばならない。これは次の二つの方法によって実行できる。
２ａ. ノードＢを示している任意のアドレスポインター(74)を切替え、それがノードＣを示すことを見る。
２ｂ. そのコネクションの為の少なくとも一つのＡＴＭセルが、コネクションの各出力(18)によって送信されたことを確認するのに充分な時間待つ。セル(14)が送信される度にある出力のアドレスポインター(74)は、その値を変える。アドレスポインター(74)が一旦値を変えると、それは決してノードＢを再び示すことはないからである。なぜならノードＢはもはやアドレスリンクリスト(72)の一部ではないからである。
【００６５】
複数アドレス、複数ポートの利用例を示す。図２２を参照すると、コネクションＡのための３つのセルが記憶されている（３つのセルは、セルＡ１、Ａ２、Ａ３であって、セルのリンクリストを構成する）。各セルはセルポインター(20)を有しており、それは同一コネクションの次のセルを示す。最後のセルはコネクションＡのための次の新しいセルを記憶すべき記憶位置を示す。各セルは、上記した如きポートフィールドのある形式を含んでおり、これはセルが占めている記憶スペースが他の目的に利用される以前に、どのポート(18)がセルを読み込まねばならないかということについて記録する。
【００６６】
セル書込みポインター(26)は、次の取り入れたセルを配置すべき記憶位置を示す。このコネクションの為にポート０は（ポート０のセル読込みポインター(16)で示される）セルＡ１を送信し、続いてセル２及びセル３を送信する。各セルは３回送信される。その１回は、（ポート０のアドレスポインター(74)で示される）VPI/VCIリストエントリーＶ１からのアドレスを用いており、次の送信はＶ２からのアドレスを用いており、そして次の送信はＶ３からのアドレスを用いている（Ｖ１、Ｖ２、Ｖ３は完全なアドレスリンクリストを構成する）。
【００６７】
ポート１のセル読込みポインター(16)は、セルＡ２を示す。これはセルＡ１の送信がポート１について既に完了したことを意味する。ポート１は残りのセル（セルＡ２とＡ３）を送信する。各セルは２回送信される。その１回はＶ４からのアドレスを用いており、他の１回はＶ５からのアドレスを用いている。Ｖ４とＶ５はアドレスのリンクリスト(72)を構成する。説明の目的の為の上記実施例において、本発明を詳細に記載したが、そのような詳細な記載はひとえに上記目的の為であること、そして当該分野に於て通常の技術を有するものにとって、発明の精神と範囲から離れることなく、但し以下の請求の範囲の記載は別として、変更を加えることは可能であると理解すべきである。
【図面の簡単な説明】
【図１】  ＡＴＭネットワークにおけるマルチキャストシステムの図式的な説明である。リンクリストの説明も示されている。
【図２】  リンクリストの動的な流れを図式的に説明している。
【図３】  リンクリストの動的な流れを図式的に説明している。
【図４】  リンクリストの動的な流れを図式的に説明している。
【図５】  リンクリストの動的な流れを図式的に説明している。
【図６】  ＡＴＭネットワークにおけるマルチキャストシステムの図式的な説明である。
【図７】  接続情報メモリーの図式的な説明である。
【図８】  セルメモリーの図式的な説明である。
【図９】  セルメモリーの図式的な説明である。
【図１０】  書込み用接続情報メモリーの図式的な説明である。
【図１１】  読込み用接続情報メモリーの図式的な説明である。
【図１２】  読込み用接続情報メモリーの図式的な説明である。
【図１３】  書込み用接続情報メモリーの図式的な説明である。
【図１４】  接続情報メモリーの図式的な説明である。
【図１５】  読込み用接続情報メモリーの図式的な説明である。
【図１６】  書込み用接続情報メモリーの図式的な説明である。
【図１７】  接続情報メモリーの図式的な説明である。
【図１８】  この発明をもとにした実装のブロックダイアグアムである。ＡＴＭ上を流れるセルは単一のもしくは複数の出力ポートに向けた複数のVPI/VCIをもつマルチキャストである。
【図１９】  接続ポインター情報の内容を示す。それぞれのコネクションのそれぞれの出力ポートに対して、ＡＴＭセルバッファーから現在読み込まれているセルを指し示すための読込み用セルポインターと、あるコネクションの出力ポートから次のセルの読みだし要求がきた時に利用されるVPI/VCIリストのエントリーを指し示すためのVPI/VCIリストへのポインターとが存在する。
【図２０】  VPI/VCIリストの、あるエントリーの内容を示している。次のエントリーへのポインターは、次のセルを読み込む時に用いられるべき次のエントリー（すなわち次のVPI/VCI）を得る時に用いられる。最終コネクションビットがセットされている時には、新しいVPIと新しいVCIの双方を現在読み込み中のセルから取り込む必要があることを示す（もしこのビットがセットされていないとすると、VPIは既に取り込まれているが、新しいVCIが現在読み込み中のセルに取り込まれていないことを示す）。VPI/VCIリストの最終エントリーを示すビットがセットされて、このVPI/VCIエントリーがVPI/VCIリストの最後のエントリーであることを示している時には、このＡＴＭセルの複数のVPI/VCIに対するマルチキャストが終了したことを示す。
【図２１】  ＡＴＭセルを複数のVPI/VCIに対してマルチキャストする途中に発生するステップの例を示す。
【図２２】  複数のアドレスと複数のポートを含むＡＴＭセルを用いるためのマルチキャストシステムの図式的な説明を示す。
【符号の説明】
(10) リンクリスト
(12) ＡＴＭネットワーク
(14) 第１セル
(20) セルポインター
(28) マルチキャスト
(64) 第１ノード
(66) 第１アドレス
(68) ノードアドレスポインター
(70) 第２ノード
(71) 第２アドレス
【図１】
0003735396.tif 000003
【図２】
0003735396.tif 000004
【図３】
0003735396.tif 000005
【図４】
0003735396.tif 000006
【図５】
0003735396.tif 000007
【図６】
0003735396.tif 000008
【図７】
0003735396.tif 000009
【図８】
0003735396.tif 000010
【図９】
0003735396.tif 000011
【図１０】
0003735396.tif 000012
【図１１】
0003735396.tif 000013
【図１２】
0003735396.tif 000014
【図１３】
0003735396.tif 000015
【図１４】
0003735396.tif 000016
【図１５】
0003735396.tif 000017
【図１６】
0003735396.tif 000018
【図１７】
0003735396.tif 000019
【図１８】
0003735396.tif 000020
【図１９】
0003735396.tif 000021
【図２０】
0003735396.tif 000022
【図２１】
0003735396.tif 000023
【図２２】
0003735396.tif 000024