(57)【特許請求の範囲】
【請求項１】
バッファのアドレスをキュー管理する制御回路が複数のデバイスに分散する構成である共有バッファ方式のパケットスイッチにおいて、
共有バッファの空きバッファアドレスを管理する空きアドレス管理キューは、複数のデバイスのそれぞれに存在し、そのうちの特定の１つのみを動作させて、空きバッファのアドレス情報を一元管理することを特徴とする共有バッファ方式のパケットスイッチ。
【請求項２】
パケットを構成する単位バッファのチェインを管理する使用済みアドレス管理キューは、分散した各デバイス単位に存在させ、各デバイスが一つのパケットで使用した単位バッファの順序情報を同時に同じ情報として冗長的に管理することを特徴とする請求項１記載の共有バッファ方式のパケットスイッチ。
【請求項３】
各送信チャンネル毎のパケット送信順序を管理する送信アドレス管理キューは、分散した各デバイス単位に存在させ、各デバイスが送信するパケットの順序情報を独立して管理することを特徴とする請求項１又は２に記載の共有バッファ方式のパケットスイッチ。
【請求項４】
任意の送信アドレス管理キュー間で、送信パケットの移動を行う場合、送信アドレス管理キューによりパケットの容量が単位バッファよりも大きく、複数の単位バッファで格納されている場合であっても、一つのパケットを構成する単位バッファの接続情報を管理し、この管理情報は各デバイスで同時に同じ情報をもつため管理情報の移動を行わないことを特徴とする請求項２に記載の共有バッファ方式のパケットスイッチ。
【請求項５】
空きアドレス管理キューと送信アドレス管理キュー又は使用済みアドレス管理キュー間でアドレスのハンドシェイクを行い、エンキューおよびデキューするアドレス情報のパスを、共有メモリのデータバスを時分割に使用する際のメモリアドレスバスを使用して行うことを特徴とする請求項２又は３に記載の共有バッファ方式のパケットスイッチ。
【請求項６】
マルチキャストパケットを一時的に保持するマルチキャスト管理キューは、各デバイス単位が送信する同報パケットの順序を個別に管理することを特徴とする請求項２または請求項３記載の共有バッファ方式のパケットスイッチ。
【請求項７】
マルチキャストパケットのバッファ解放処理において、分散した各デバイス単位に、自デバイスが管理している宛先への送信が全て完了したことを認識する手段は、各デバイス単位に存在させ、各デバイスからの送信完了通知を受けて、全デバイスの送信が全て完了したことを認識する手段は、各デバイスに存在させ、空きアドレス管理キューが動作するのと同じデバイスにおいて同時に動作させ、該バッファの解放処理を行うことを特徴とする請求項６記載の共有バッファ方式のパケットスイッチ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は共有バッファ方式のパケットスイッチ、特にＬＡＮ（ローカルエリアネットワーク）等で使用するパケットスイッチ装置やルータ装置のバッファアドレスのキュー管理に関する。
【０００２】
【従来の技術】
ＩＥＥＥ８０２．３に代表されるＣＳＭＡ／ＣＤ（Ｃａｒｒｉｅｒ  Ｓｅｎｓｅ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ  ／  Ｃｏｌｌｉｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ）方式であり、一般にイーサネットと称されるＬＡＮにおいて、スター型接続形態（トポロジー）を構成するスイッチエレメント、特にパケットスイッチ装置やルータ装置には、パケットデータをバッファリングしてスイッチングを実現する際、バッファのアドレスをキュー管理する技術が使用されている。
【０００３】
従来の技術の例として，特開平１１−１６３８７０号公報の「共有バッファ型ＡＴＭスイッチ」や特開平１０−３２５８１号公報の「ＡＴＭセルスイッチ」に記載されている、共有バッファ方式のＡＴＭセルスイッチを実現するための、バッファアドレスのキュー管理の技術がある。
【０００４】
上記公報には、ＡＴＭセルスイッチにおいて共有バッファ方式を実現するための一般的な技術として，共有バッファの空きアドレスを管理する空きアドレス管理キューと、複数の送信チャンネルに対する送信順序を制御する送信アドレス管理キューの基本的な構成と動作が開示されている。
【０００５】
先ず、本発明による理解を容易にするために、従来の共有バッファ方式のスイッチエレメントについて図１２および図１３を参照して簡単に説明する。
【０００６】
図１２を参照して、共有バッファ方式のスイッチエレメント全体の構成及び動作を説明する。共有バッファ方式のパケットスイッチは、ポート６０５１〜６０５４に接続された送受信制御部６０１１〜６０１４、これに送受信データバス６０２１〜６０２４を介して接続されたパケットスイッチエレメント６００１、これに夫々バス６０３１および６０４１を介して接続された共有バッファメモリ６００３およびキューメモリ６００２を含んでいる。各ポート６０５１〜６０５４は、それぞれＬＡＮ回線を収容する。各ポート６０５１〜６０５４から受信されたパケットデータは、送受信制御部、例えば６０１１で、パラレル信号に変換され、パラレル信号の送受信データバス６０２１を介して、パケットスイッチエレメント６００１に渡される。パケットスイッチエレメント６００１は回線から受信したパケットデータを全て、共有バッファメモリ６００３に一旦格納する。送信する場合は、パケットスイッチエレメント６００１が自ら記憶してあるメモリの番地を使って、共有バッファメモリ６００３から格納してあったパケットデータを読出し、パラレル信号の送受信データバス、例えば６０２２を介して、送受信制御部６０１２に送り、対応するポート６０５２からＬＡＮ回線に送信される。
【０００７】
次に、図１３を参照して、スイッチエレメントの構成及び動作を説明する。このスイッチエレメントは、受信ポート７０１１〜７０１４および送信ポート７０１５〜７０１８に接続されたスイッチエレメント７００１およびキューメモリ７００２、共有メモリ７００３より構成される。キューメモリ７００２は、空きバッファアドレス管理回路部７００４および送信バッファ管理回路部７００５を含んでいる。先に説明した、送受信制御部（図１２の６０１１〜６０１４）とのインタフェースであるパラレル信号の送受信データバス７０２０および７０２１は、複数の受信ポート７０１１〜７０１４単位で、１つの受信データバス７０２０としてスイッチエレメント７００１に入力される。また、複数の送信ポート７０１５〜７０１８単位で１つの送信データバス７０２１として、スイッチエレメント７００１から出力される。
【０００８】
図１３では受信データバス７０２０および送信データバス７０２１が、それぞれ各１の場合であるが、複数である場合もある。また、受信データバス７０２０および送信データバス７０２１が同一バスであってもよい。共有メモリ７００３との接続は、メモリの番地を示すアドレスバス７０３０とデータバス７０３１により行われる。
【０００９】
スイッチエレメント７００１は、共有メモリ７００３上の空きバッファの番地を管理している、空きバッファアドレス管理回路部７００４と、送信すべきパケットの順序を、送信ポート単位に、共有メモリ７００３に格納されているバッファの番地として管理する、送信バッファ管理回路部７００５をそれぞれ有している。
【００１０】
スイッチエレメント７００１は、受信データバス７０２０からパケットデータを受信した場合、空きバッファアドレス管理回路部７００４から、格納できるバッファのアドレスを得て、共有メモリ７００３にパケットデータを格納する。これと同時に、そのバッファアドレスの情報を送信バッファ管理回路部７００５に送り、送信すべきポートの送信バッファの待ち行列に登録される。また、送信側では、この待ち行列に従い、共有メモリ７００３からパケットを読み出し、送信データバス７０２１に出力する。この時、読出しに使用したパケットのバッファアドレスは、空きバッファアドレス管理回路部７００４に返還され、別の受信データを格納する際に再度使用される。
【００１１】
以上から、共有メモリ方式の場合は、送信バッファ管理回路部７００５において、共有メモリ上の何処に格納されたパケットデータでも読出せる必要がある。これは、空きバッファアドレス管理回路部７００４と送信バッファ管理回路部７００５が管理できるメモリエリアが、共に同じである必要がある。また、アドレス情報を相互にやり取りする必要がある。
【００１２】
また、マルチキャストパケットにおけるバッファ解放処理の従来技術の例として、特開平１０−２９４７４０号公報に記載されている、共有バッファ方式のＡＴＭセルスイッチを実現するための、マルチキャストバッファアドレス管理の技術がある。
【００１３】
【発明が解決しようとする課題】
上記従来の技術は，共有バッファの空きアドレス管理キューと、出力制御のアドレス管理キューの基本的な構成について開示している。スイッチエレメントのスイッチ容量を大きくする目的で、パケットスイッチエレメント（図１２の６００１）を、同一デバイスが複数積み重なったビルディングブロック（積み木）構成にした場合、共有バッファのアドレス制御回路部も、複数存在することになり、アドレス管理キューは分散して実装され、並列処理を行うことになる。これらの実現手段に対しては、共に開示されていないため、従来の技術のままでは、スイッチ容量の拡大ができないという問題がある。
【００１４】
また別の実現手段として、同様にスイッチングエレメント部を、同一デバイスが複数積み重なったビルディングブロック構成にし、共有バッファのアドレス制御回路部は、これとは別のデバイス１つで実現しようとする場合、スイッチエレメントを実現するデバイスの種類が増えるという問題がある。
【００１５】
これらに加え、従来例のＡＴＭスイッチにおいては、セルと呼ばれる固定バイト長データをスイッチする技術であり、イーサネットの可変長パケットをスイッチする技術に関しては特に開示がなく、ＡＴＭスイッチで扱うセルと同様に固定バイト長のデータとして扱うとすれば、常にイーサネットの最長バイト長のパケットデータを想定したバッファを準備する必要があり、短いバイト長または最小バイト長のパケットデータのスイッチング動作が頻発する場合は、バッファを効率的に使用できないという問題がある。
【００１６】
また、公知例として示したマルチキャストパケットにおけるバッファ解放処理では、ビルディングブロック（積み木）構成によりアドレス管理キューが分散されて実装された場合の実現手段に対しては、記載されていないため、従来の技術のままでは、マルチキャストパケットのスイッチングが出来ない問題がある。
【００１７】
【発明の目的】
そこで本発明の目的は、共有バッファのアドレス制御回路部を、同一デバイスが複数積み重ねるビルディングブロック（積み木）構成により実施可能にする共有バッファ方式のパケットスイッチを提供することである。
【００１８】
【課題を解決するための手段】
前述の課題を解決するため、本発明による共有バッファ方式のパケットスイッチは、次のような特徴的な構成を採用している。
【００１９】
（１）バッファのアドレスをキュー管理する制御回路が複数のデバイスに分散する構成である共有バッファ方式のパケットスイッチにおいて、
共有バッファの空きバッファアドレスを管理する空きアドレス管理キューは、複数のデバイスのそれぞれに存在し、そのうちの特定の１つのみを動作させて、空きバッファのアドレス情報を一元管理する共有バッファ方式のパケットスイッチ。
【００２０】
（２）パケットを構成する単位バッファのチェインを管理する使用済みアドレス管理キューは、分散した各デバイス単位に存在させ、各デバイスが一つのパケットで使用した単位バッファの順序情報を同時に同じ情報として冗長的に管理する上記（１）の共有バッファ方式のパケットスイッチ。
【００２１】
（３）各送信チャンネル毎のパケット送信順序を管理する送信アドレス管理キューは、分散した各デバイス単位に存在させ、各デバイスが送信するパケットの順序情報を独立して管理する上記（１）又は（２）の共有バッファ方式のパケットスイッチ。
【００２２】
（４）任意の送信アドレス管理キュー間で、送信パケットの移動を行う場合、送信アドレス管理キューによりパケットの容量が単位バッファよりも大きく、複数の単位バッファで格納されている場合であっても、一つのパケットを構成する単位バッファの接続情報を管理し、この管理情報は各デバイスで同時に同じ情報をもつため管理情報の移動を行わない上記（２）の共有バッファ方式のパケットスイッチ。
【００２３】
（５）空きアドレス管理キューと送信アドレス管理キュー又は使用済みアドレス管理キュー間でアドレスのハンドシェイクを行い、エンキューおよびデキューするアドレス情報のパスを、共有メモリのデータバスを時分割に使用する際のメモリアドレスバスを使用して行う上記（２）又は（３）の共有バッファ方式のパケットスイッチ。
【００２４】
（６）マルチキャストパケットを一時的に保持するマルチキャスト管理キューは、各デバイス単位が送信する同報パケットの順序を個別に管理する上記（２）または（３）の共有バッファ方式のパケットスイッチ。
【００２５】
（７）マルチキャストパケットのバッファ解放処理において、分散した各デバイス単位に、自デバイスが管理している宛先への送信が全て完了したことを認識する手段は、各デバイス単位に存在させ、各デバイスからの送信完了通知を受けて、全デバイスの送信が全て完了したことを認識する手段は、各デバイスに存在させ、空きアドレス管理キューが動作するのと同じデバイスにおいて同時に動作させ、該バッファの解放処理を行う上記（６）の共有バッファ方式のパケットスイッチ。
【００２６】
【発明の実施の形態】
次に，本発明による共有バッファ方式のパケットスイッチの実施形態例について図面を参照して詳細に説明する。
【００２７】
図２は、本発明による共有バッファ方式のパケットスイッチによるパケットスイッチ装置２０００およびそれに接続される複数のＬＡＮセグメント２０１１〜２０１４を有するシステム構成図である。このネットワークにつき簡単に説明する。
【００２８】
パケットスイッチ装置２０００は、複数のＬＡＮセグメント２０１１〜２０１４を集線接続し、スター型のＬＡＮトポロジーを構成する。ここで想定するＬＡＮとは、ＩＥＥＥ８０２．３に代表される、ＣＳＭＡ／ＣＤ（Ｃａｒｒｉｅｒ  Ｓｅｎｓｅ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ／Ｃｏｌｌｉｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ）方式の、通常イーサネットと称されるＬＡＮで、１０Ｍｂｐｓや１００Ｍｂｐｓや１Ｇｂｐｓの全二重又は半二重の通信速度を持つ。
【００２９】
次に、これらＬＡＮセグメント２０１１〜２０１４について説明する。
【００３０】
これらＬＡＮセグメント２０１１〜２０１４は、伝送路と１０Ｍｂｐｓや１００Ｍｂｐｓや１Ｇｂｐｓの通信帯域を共有する単位とする。ＬＡＮセグメント２０１１、２０１３および２０１４は、スイッチング機能を持たない、単純なリピータ機能を有する集線装置（単にリピータ・ハブという）２０２１、２０２３および２０２４で、各端末がやはりスター型に接続された構成である。また、ＬＡＮセグメント２０１４で示すように、リピータ・ハブ２０２１、２０２３、２０２４の機能によっては、一部ブランチ型に端末を接続することも可能な場合がある。いずれにせよ、これらリピータ・ハブ２０２１、２０２３、２０２４により構成された１つのセグメント内においては、ＣＳＭＡ／ＣＤの方式に従って、各セグメント２０１１〜２０１４内の全端末およびパケットスイッチ装置２０００のポートで、伝送路および通信帯域を共有する半二重通信である。
【００３１】
他方、ＬＡＮセグメント２０１２は、サーバ装置２０２２への接続によく見られる形態で、リピータ・ハブを用いず、パケットスイッチ装置２０００のポートに対し、１対１の接続で、全二重の通信が可能とされている。
【００３２】
ＬＡＮ上で通信されるパケットのフレームフォーマットは、従来構成であり、図１０に示す如く、ＤＡ（Ｄｅｓｔｉｎａｔｉｏｎ−Ａｄｄｒｅｓｓ），即ち宛先アドレス情報とＳＡ（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）即ち発信元アドレス情報を含んである。ＤＡＴＡは情報データの部分で可変長である。通常のイーサネットでは、パケット全体で６４バイトから１５１８バイトのフレーム長となっている。
【００３３】
パケットスイッチ装置２０００は、このフレームフォーマットを持つパケットデータを、１つのＬＡＮセグメント、例えば２０１１から受信し、ＤＡ情報に基づき、別のＬＡＮセグメント、例えば２０１２に対して、そのパケットデータを転送する、スイッチング動作を実現する装置である。
【００３４】
次に、図３を参照して図２のパケットスイッチ装置２０００の構成について詳細に説明する。
【００３５】
ＬＡＮセグメント２０１１〜２０１４に接続される部分をポートと呼び、通常は８〜３２個程度又は場合によってはそれ以上のポート数を有する。図３のパケットスイッチ装置２０００の場合はポート＃０〜ポート＃ｆの合計１６ポートである。
【００３６】
４個のポートの送受信制御部３０１１〜３０１４は、１つ又は複数のポート単位に存在し、通常１つのデバイスとネットワークのアドレス情報を格納する制御メモリで構成される。図３の例では、４本のポート単位で、送受信制御回路は存在する。接続されたＬＡＮの回線に対し、パケットデータの送受信動作を実現する。主な処理は、シリアルデータで通信されるＬＡＮ回線と、パラレル処理する装置内部のデータバスとの間の、データのシリアル／パラレル変換処理と、受信したパケットに含まれる宛先情報を解析し、送信先ポートを決定する処理である。
【００３７】
共有メモリ３０２０は、ＳＲＡＭ（スタティックＲＡＭ）又はＤＲＡＭ（ダイナミックＲＡＭ）のメモリデバイスで構成され、パケットデータを一時的に保持する。パケットデータは、予め仕切られたパケットバッファと呼ぶスペースに格納される。パケットバッファの番地（アドレス）はスイッチエレメントが持つキュー方式のバッファ管理回路によって管理される。
【００３８】
４個のスイッチングエレメント３００１〜３００４は、１つのデバイスとバッファ管理を行う制御メモリ（キューメモリ）で構成される。送受信制御部３０１１〜３０１４とは、パラレル展開された送受信データバス３０５１〜３０５４で接続される。その接続の形態は、送受信データバスのビット幅をｔｘｋビットとし、スイッチングエレメント３００１〜３００４のデバイスの数を４とした場合、ｔビット単位でビットスライスされた、ｔビット幅を持つ送受信データバス３０４１〜３０４４が、４個あるスイッチングエレメント３００１〜３００４に接続される。
【００３９】
共有メモリ３０２０との接続は、スイッチングエレメント３００１〜３００４が、各々独自に共有メモリ３０６１〜３０６４に共有メモリデータバス３０３１〜３０３４で行なわれる。つまり、共有メモリデータバス３０３１〜３０３４も４等分にビットスライスされている。
【００４０】
図４を参照して、本発明による共有バッファ方式のパケットスイッチにおけるキュー管理の実施形態について詳細に説明する。
【００４１】
本発明による共有バッファ方式のパケットスイッチは、受信データバスがｎ本（図３の例では４本）と、送信データバスがｎ本（図３の例では４本）で、１本の受信データバス又は送信データバスで、ｍ本のＬＡＮ回線に接続されたポートを収容し、スイッチングエレメント全体で、ｍｘｎ本のポート本数を収容する構成である。
【００４２】
受信データバスと送信データバスの接続は、１つのデータバス幅をスイッチエレメントの個数分の１にビットスライスして接続する（図３の例）。つまり、同一のスイッチエレメントが複数で、ビルディングブロック（積み木）型の構成をとることで、処理するデータ量をスイッチエレメントの個数倍に増やす構成のパケットスイッチ装置である。
【００４３】
１個目のスイッチエレメント４０５１はデータの送受信部４００２とキュー管理制御部４００１から構成される。ＬＡＮのポート側の接続は、ｎ本分の受信データバス４０１１と、ｎ本分の送信データバス４０１２で接続されている。共有メモリ４３００とはメモリのアドレスバス４３３０と、データバス４３１０で接続された構成である。
【００４４】
２個目のスイッチエレメント４１５１からｎ個目のスイッチエレメント４２５１も同様の構成をとる。
【００４５】
各スイッチエレメント４０５１（および４１５１，４２５１）の受信部４００３（および４１０３，４２０３）は、各々の受信データバス４０１１（および４１１１，４２１１）から受信パケットを認識すると、同一デバイス内のキュー管理制御部４００１（および４１０１，４２０１）に対して、受信パケット通知４０２１（および４１２１，４２２１）を行う。各々の受信部４００３（および４１０３，４２０３）は、ｍｘｎ本のポートに対する全ての受信パケットに対してその通知を行う。
【００４６】
受信パケットは、データバス４０１３（および４１１３，４２１３）を介して共有メモリ４３００に転送する。
【００４７】
キュー管理制御部４００１は、デバイスの位置情報等により、１つめのスイッチエレメント４０５１に存在するキュー管理制御部であることを認識し、受信パケットを格納するバッファの空きアドレス４０３２を出力する。他のスイッチエレメントに存在するキュー管理制御部４１０１および４２０１は出力しない。
【００４８】
送信部４００４（および４１０４，４２０４）は、キュー管理制御部４００１（および４１０１，４２０１）から、ｍ本のポートに対する送信キュー情報４０２２（および４１２２，４２２２）の通知を受け、送信ポートを決定する。
【００４９】
キュー管理制御部４００１（および４１０１，４２０１）は、送信部４００４（および４１０４，４２０４）が決定したポート番号４０２３（および４１２３，４２２３）の通知を受け、送信パケットの読み出しアドレス４０３２（および４１３２，４２３２）を出力する。送信パケットデータ４０１４（および４１１４，４２１４）は、送信部４００４（および４１０４，４２０４）に転送され、送信データバス４０１２（および４１１２，４２１２）から転送される。
【００５０】
次に、図１を参照して、キュー管理制御部４００１〜４２０１の具体例について詳細に説明する。
【００５１】
空きアドレス管理キュー１０１０は１つめのスイッチエレメントであるデバイス０でのみ動作する。他のスイッチエレメントにおいても同一デバイスである以上は空きアドレス管理キュー１１１０及び１２１０の回路は存在するが動作しない。
【００５２】
使用済みアドレス管理キュー部１０２０（および１１２０，１２２０）は、使用済みアドレス管理キュー０（１０２１）、使用済みアドレス管理キュー１および使用済みアドレス管理キューｋ（１０２２）から成る。１つのパケットを構成する単位バッファのチェインを管理するキューで、存在するパケットの数だけキューは存在する。また、各スイッチエレメントにおいて、使用済みアドレス管理キュー部の内容は同一である。
【００５３】
デバイス０のスイッチエレメントの送信アドレス管理キュー部１０３０は、送信アドレス管理キュー００（１０３１）、送信アドレス管理キュー０１、及び送信アドレス管理キュー０ｍ（１０３２）から成る。つまり、送信データバス０配下に存在する送信ポート単位に存在し、パケットを格納したバッファの先頭アドレスのみキューイングし、その送信順序を管理する。デバイス１以降の送信アドレス管理キュー部１１３０および１２３０も同様に、それぞれ送信データバス１および送信データバスｎ配下の送信ポートに対応した送信アドレス管理キューを行う。
【００５４】
次に，本発明による共有バッファ方式のパケットスイッチの実施形態例の動作について，図面を参照して詳細に説明する。
【００５５】
先ず、図３を参照して、本発明による共有バッファ方式のパケットスイッチによるパケットスイッチ装置２０００の動作について詳細に説明する。
【００５６】
ポートでシリアルデータとして受信したパケットデータは、送受信制御部、例えば３０１１で、シリアル／パラレル変換処理され、受信データバスに出力される。その際、送受信制御部３０１１は、受信したパケットに含まれる宛先情報を解析し、送信先のポートを決定する処理を行い、受信データバスに出力するパケットデータに送信先ポート情報を付加する。
【００５７】
送信先ポート情報はビットスライスされ、分割されたバス単位に同一の内容が付加される。複数存在するスイッチングエレメント３００１〜３００４の各々は、その送信先ポート情報を見て、自デバイスで管理すべき送信パケットか否かの判断を行う。また、パケットデータに対しては、受信の場合、自デバイスが接続されたビットスライス位置の受信データバスを介して送られてきたデータを、自デバイスが接続する共有メモリ３０２０に格納する。
【００５８】
送信の際も同様で、自デバイスが接続する共有メモリ３０２０から読出したデータを、送信データバスの自デバイスが接続されたビットスライス位置の送信データバスに出力する。
【００５９】
次に、図１を参照しながら、本発明によるスイッチエレメントのキュー管理の動作について詳細に説明する。先ず、受信側動作について説明する。
【００６０】
スイッチエレメント（図４の４０５１〜４２５１）は、ｎ本の受信データバス４０１１〜４２１１から１つ又は複数のパケットを受信すると、キュー管理制御部４００１〜４２０１に対して、パケット受信の通知４０２１〜４２２１として、受信ポートの情報とそのパケットの宛先情報の通知を行う。
【００６１】
先ず、空きアドレス管理キュー１０１０は、このパケット受信の情報からパケットを格納するための空きバッファのアドレスを、受信部（図４の４００３、４１０３および４２０３）がビットスライスされて転送された受信データを共有メモリに転送するタイミングに同期して、共有メモリへの書込みアドレスとして出力する。同期させるタイミングは、予め定めたタイムスロットにより、双方共にこれを知る。尚、この空きアドレス出力はデバイス０の空きアドレス管理キュー１０１０のみ行う。
【００６２】
同時に、各デバイスの使用済みアドレス管理キュー、例えば１１２０は、空きアドレス管理キュー１０１０が出力したアドレスをエンキューパス、例えば１１４０から受け取り、パケットを構成する単位バッファのチェインを管理する。
【００６３】
可変長のパケットデータをパケットメモリに格納する動作について、図５を参照して説明する。パケットメモリは容量ｂバイトの単位バッファの単位で使用する。パケットは、データ長をＰバイトとすると、下式で表されるｐ個の単位バッファを使用してバッファに格納する。
（（ｐ−１）＊ｂ）  ＜  Ｐ  ≦  （ｐ＊ｂ），（ｐ＝１、２、３…）
【００６４】
この単位バッファのチェインを管理するのが使用済みアドレス管理キュー５２０１である。パケットの先頭ｂバイト５００１を格納する単位バッファ５１０１のアドレスをｂａ０１、続くｂバイトを格納する単位バッファ５１０２のアドレスをｂａ０２、同様にチェインする単位バッファ５１０３のアドレスをｂａ０３とすれば、使用済みアドレス管理キュー５２０１が示す先頭のバッファアドレスはｂａ０１となり、最後尾を示すアドレスはｂａ０ｐとなる。
【００６５】
受信パケットが転送される形態としては、複数のポートから受信した各々のパケットは、単位バッファの単位でマルチブレクスされて受信データ上を転送される。これに対し使用済みアドレス管理キュー、例えば１０２０は、同時に転送される受信ポートの情報から、各受信ポート単位に１つのパケットとして組立直すことができる。
【００６６】
また、同時に、送信アドレス管理キュー、例えば１１３０は、受信部が出したパケットの宛先情報の通知と、デバイスの位置情報から、自デバイスが管理すべき送信ポート宛であるかの判断をする。
【００６７】
もし、管理対象の送信ポート宛パケットデータであった場合には、エンキューパス、例えば１１４０から受信パケットの先頭の格納アドレスのみを受取り、該当する送信バッファキューの最後にエンキューする。もし、管理対象の送信ポート宛パケットデータで無かった場合、無視し、エンキュー動作も行わない。
【００６８】
次に、送信側の動作を説明する。送信アドレス管理キュー部、例えば１１３０は、各送信アドレス管理キューに送信すべきパケットのアドレスがキューイングされているか否かの情報（図４の４１２２）を、スイッチエレメントの送信部（図４の４１０４）に常に転送する。送信部はこの情報に基づき、送信すべきポートの番号を決定し、その結果を予め決めておいたタイムスロットに従い、送信アドレス管理キュー部１１３０に送信要求として通知する（図４の４１２３）。
【００６９】
パケットの先頭からの送信の場合、送信アドレス管理キュー部１１３０は、この通知に従い、該当する送信アドレス管理キュー、例えば１１３１からパケットの先頭のアドレスを１つ取出し、デキューパス１１４１を介して共有メモリのアドレスバス１３３０に、パケットの読出しアドレスとして出力する。
【００７０】
パケットデータの読出しと同時に、共有メモリのアドレスバス１３３０に出力されたバッファのアドレスは、空きアドレス管理キュー１０１０のエンキューパス１０５０を介して空きアドレス管理キュー１０１０にエンキューされ、その単位バッファは解放される。
【００７１】
ｐ＝２以上のパケットで、先頭の単位バッファ以外の送信の場合は、使用済みアドレス管理キュー部１１２０が、送信部（図４の４１２３）の通知に従い、バッファのアドレスを１つ取出し、デキューパス１１４１を介して共有メモリのアドレスバス１３３０に、パケットの読出しアドレスとして出力する。パケットデータの読出しと同時に、共有メモリのアドレスバス１３３０に出力されたバッファのアドレスは、空きアドレス管理キュー１０１０のエンキューパス１０５０を介して空きアドレス管理キュー１０１０にエンキューされ、その単位バッファは解放される。
【００７２】
次に、本発明による共有バッファ方式のパケットスイッチの動作を図６〜図８を参照して詳細に説明する。先ず、図６を参照して、受信データバス上で転送されるパケットデータの形式を説明する。横の４本の列８０００〜８００３は、８ビット単位にビットスライスされた受信データバスで、各々８ビット幅を持つ。縦の行８０１０、８０１１、８０１２、８０１３・・・は、受信データバス１ワードを表し、上の行８０１０のワードから順に転送される。
【００７３】
行番号８０１０のワードは、送受信制御回路部により付加された、送信先のポートを示す送信先ポート情報（ＲＨ）である。送信先ポート情報（ＲＨ）は、ビットスライスされた受信データバス全てに付加することで、全てのスイッチングエレメントが受信できる。送信先ポート情報（ＲＨ）には、受信ポートの情報と、送信先ポートの情報と、パケットの先頭からのデータであるかの情報と、パケットの終りを含んだデータであるかの情報等が含まれる。行番号８０１１以降は、ポートから受信した、Ｄ００、Ｄ０１、Ｄ０２、Ｄ０３、Ｄ０４・・・のバイト順序を持つパケットデータで、バイト単位にビットスライスされ、各スイッチングエレメントに転送される。
【００７４】
次に、キュー方式のバッファ管理の動作について、図７および図８を参照して詳細に説明する。図８は共有メモリ上で、パケットデータが格納されるイメージを示す。この例では、８バイト単位にビットスライスされた共有メモリが４つで１ワードを構成し、６４バイトを１つのバッファの単位とし、そのバッファの番地は、それぞれ番地ａ、番地ｂ、番地ｃのワードアドレスの構成である例である。
【００７５】
図７の例は、これらのバッファが夫々番地ａ、番地ｂ、番地ｃ、・・・番地ｅの順に、キューに格納されている状態を表す（９００３）。スイッチエレメントのデバイス内の空きアドレス管理キュー又はポート単位に存在する送信アドレス管理キュー９００１では、キューメモリ９００２に存在するバッファキューの先頭のポインタ９０１１と最後尾のポインタ９０１２のみ保持する。
【００７６】
本発明によるスイッチエレメントでは、このキューのポインタをバッファアドレスに直接対応させる。これにより、キューメモリ９００２をアクセスする際のポインタ（キューメモリのアドレス）がバッファアドレスにも対応する。つまり、先頭のポインタ９０１１は、キューに登録された先頭のバッファアドレス（番地ａ）で、先頭のポインタ（番地ａ）が示すキューメモリの番地に、２番目のバッファアドレス（番地ｂ）が格納されている。
【００７７】
キューに登録された先頭のバッファアドレス（番地ａ）を取出すデキュー動作を説明する。先ず、先頭のポインタ９０１１の内容を直接空きバッファアドレス又は送信バッファアドレスとして使用する。このため高速にバッファアドレスの生成が行える。続いて、共有メモリのアクセスを行っている間に、今使用した先頭のポインタ９０１１をキューメモリのアドレスとして使用し、次のバッファアドレスを読出し、この値で、先頭のポインタ９０１１を更新する。
【００７８】
キューの最後に、新たにバッファアドレスを登録する、エンキュー動作を説明する。先ず、最後尾のポインタ９０１２をキューメモリのアドレスとして使用し、登録すべきバッファアドレスをそこに書込む。また、この値で、最後尾ポインタ９０１２を更新する。
【００７９】
次に、共有メモリのアクセスを行う際のタイムスロットに関して、図９を参照して詳細に説明する。この例では、４つの受信データバスに対応した受信パケットデータの格納動作と、４つの送信データバス対応した送信パケットデータの読出し動作の、合計８つの、共有メモリに対するスイッチエレメントのマスタ動作が存在する。よって、３ビットの常時動作（フリーラン）カウンタにより８値を発生し、８つのマスタ動作のタイムスロットに割当てる。図９の例では、カウンタの値＝０００ｂの場合、受信データバス＃０に対応するの共有メモリへの書込みデータ転送動作で、カウンタの値＝１００ｂの場合、送信データバス＃０に対応する共有メモリからのリードデータ転送動作となる。
【００８０】
次に、本発明による共有バッファ方式のパケットスイッチを使用するパケットスイッチ装置の他の実施形態について、図１を参照して説明する。
【００８１】
異なるデバイス間の送信アドレス管理キューで、キューのつなぎ換え動作に関して説明する。送信アドレス管理キュー００（１０３１）はＬＡＮ回線のポート宛のキューではなく、本装置内のＣＰＵ宛の送信キューとする。換言すると、通常ＬＡＮ回線のポートが存在する場所に、ＣＰＵの処理ポートが位置する構成である。パケットスイッチ装置（図２の２０００）において、受信したパケットの送信先が解決できなかった場合は、一旦ＣＰＵ宛の送信アドレス管理キュー００（１０３１）にキューイングし、ソフトウエア処理にて、そのパケットの転送先を決定する動作が発生する。
【００８２】
この場合、ＣＰＵは送信アドレス管理キュー００（１０３１）を直接読出し、宛先不明のパケットが格納されているバッファのアドレスを知り、宛先の解決に必要な情報のみ共有バッファ上のパケットから取出す。ＣＰＵは宛先を解決すると、受信部（図４の４００３）を経由して、パケット受信の通知（図４の４０２１）のパスを利用して、キューのつなぎ換え要求を通知する。
【００８３】
空きアドレス管理キュー１０１０は、パケット受信の通知（図４の４０２１）が、キューのつなぎ換え要求であった場合は、通常の空きアドレスのデキュー動作を行わず、メモリへの書込み動作も行わない。その代わり、送信アドレス管理キュー００（１０３１）は先頭のアドレスをデキューし、デキューパス１０４１を介して、アドレスバスに出力する。
【００８４】
使用済みアドレス管理キュー部、例えば１１２０は、通常のパケット受信では無いと判断し、このパケット受信の通知（図４の４０２１）は無視する。他の送信アドレス管理キュー、例えば１１３０は、このパケット受信の通知（図４の４０２１）を通常のパケット受信に同様と判断し、該当送信ポートに対応する送信アドレス管理キューにエンキューする。このとき、もし、パケット長がｐ＝２以上で単位バッファのチェイン情報が必要なパケットで、且つ異なるデバイス間の送信アドレス管理キューに移動したとしても、使用済みアドレス管理キューは全デバイスで同じ内容を保持しているため、問題とならず、容易にキューのつなぎ換えが可能となる。
【００８５】
次に、本発明のスイッチエレメントを使用するパケットスイッチ装置の第３の実施の形態について、図１１を参照して説明する。図１１は、マルチキャストパケットのスイッチング処理におけるキュー管理制御部の構成図である。
【００８６】
マルチキャストアドレス管理キュー１３０２０〜１３２２０は、各デバイス単位に存在し、マルチキャストパケットの一時的なキュー管理を行う。エンキューパスセレクタ１３０４０〜１３２４０は、送信アドレス管理キュー１３０３０〜１３２３０へのエンキューパス１３０７２〜１３２７２を選択する。ユニキャストパケット受信時は、エンキューパス１３０７０〜１３２７０を選択し、受信の無い空き時間は、エンキューパス１３０７１〜１３２７１を選択する。送信ポートカウンタ１３０５０〜１３２５０は、各デバイス単位に存在し、パケット毎の宛先ポート数の記憶、単位バッファ毎の送信済みポート数の記憶、および宛先ポート数と送信済みポート数の比較を行う。
【００８７】
デバイスカウンタ１３０６０は、空きアドレス管理キュー１３０１０が動作するデバイスのみに存在させ、単位バッファ毎の送信済みデバイス数の記憶、およびデバイスの構成情報から得られるデバイス数と送信済みデバイス数の比較を行う。
【００８８】
まず、マルチキャストパケットのスイッチング動作に関して説明する。
受信部（図４の４００３）から受け取ったパケット受信の通知（図４の４０２１）がユニキャストパケットであった場合、第１の実施の形態で述べた通り、パケットの宛先情報とデバイスの位置情報から、管理対象のデバイスのみ、送信アドレス管理キュー１３０３０〜１３２３０にエンキューしていた。これは、エンキューパスセレクタ１３０４０〜１３２４０がエンキューパス１３０７０〜１３２７０に選択された場合である。
【００８９】
これに対し、パケット受信の通知（図４の４０２１）がマルチキャストパケットであった場合、全てのデバイスのマルチキャストアドレス管理キュー１３０２０〜１３２２０に一時的にエンキューする。その後、各デバイスは、それぞれ独立して、ユニキャストパケットの受信の有無を監視し、空き時間にエンキューパスセレクタ１３０４０〜１３２４０をデキューパス１３０７１〜１３２７１側に切り替えて、マルチキャストアドレス管理キュー１３０２０〜１３２２０からデキューし、宛先となる複数の送信アドレス管理キュー１３０３０〜１３２３０へエンキューする、キューの積み替えを行う。
【００９０】
このとき、もし、パケット長がｐ＝２以上で単位バッファのチェイン情報が必要なパケットであったとしても、使用済みアドレス管理キュー１３０９０〜１３２９０は、全デバイスで同じ内容を保持しているため、問題とならない。また、パケットの実体は、共有メモリ上に１つしか存在せずに、キューエントリのコピーだけを各デバイスで分散処理するため、高速なスイッチング動作が可能となる。
次に、共有バッファの解放動作に関して説明する。
【００９１】
マルチキャストパケットは、共有メモリ上に１つしか存在しないため、全宛先への送信が完了してからでないと、そのバッファを解放することができない。
【００９２】
まず、マルチキャストアドレス管理キュー１３０２０〜１３２２０からデキューし、送信アドレス管理キュー１３０３０〜１３２３０へエンキューする際、各デバイス単位にエンキューした宛先ポート数を送信ポートカウンタ１３０５０〜１３２５０に記憶する。同時に、送信済みポート数として、初期値の“０”を書き込んでおく。
【００９３】
次に、送信の際、送信アドレス管理キュー１３０３０〜１３２３０からデキューされたパケットが、マルチキャストパケットであった場合、送信ポートカウンタ１３０５０〜１３２５０から該パケットに対応する宛先ポート数と、該バッファに対応する送信済みポート数を取り出し、送信済みポート数を＋１し、宛先ポート数と不一致ならば、＋１した送信済みポート数を送信ポートカウンタ１３０５０〜１３２５０に書き戻し、一致したら、送信完了通知１３０７４〜１３２７４を起動する。デバイスカウンタ１３０６０では、各デバイスからの送信完了通知１３５００を受けると、該バッファに対応する送信済みデバイス数を取り出し、これに＋１し、デバイスの構成情報から得られるデバイス数と不一致ならば、＋１した送信済みデバイス数をデバイスカウンタ１３０６０に書き戻し、一致したら、全宛先への送信が完了したと判断し、エンキューパス１３０８０により、該バッファのアドレスを空きアドレス管理キュー１３０１０にエンキューし、該バッファを解放する。
【００９４】
また、パケット長がｐ＝２以上で単位バッファのチェイン情報が必要なパケットであった場合、２個目のバッファ以降は、バッファのアドレスを使用済みアドレス管理キュー１３０９０〜１３２９０から取り出し、同様にバッファを解放する。
【００９５】
さらに、解放動作においても、使用済みアドレス管理キュー１３０９０〜１３２９０は、全デバイスで同じ内容を保持しているため、問題とならない。
【００９６】
以上、本発明による共有バッファ方式のパケットスイッチの好適実施形態例の構成および動作を詳細に説明した。しかし、本発明は斯かる特定実施形態例のみに限定されるべきではなく、本発明の要旨を逸脱することなく種々の変形変更が可能であること、当業者には容易に理解できよう。
【００９７】
【発明の効果】
上述の説明から明らかな如く、本発明による共有バッファ方式のパケットスイッチによると、共有バッファ方式の同一のスイッチエレメントを複数個使用して、大規模（大容量）構成のパケットスイッチ装置が容易に実現できるという実用上の顕著な効果を有する。その理由は、共有バッファ方式を実現する、バッファ管理部を、従来中央１箇所に存在するべきところ、スイッチエレメントのデータ処理部分をビットスライス等の技術により、ビルディング構成にする場合にも対応するキューの構造を実現させたからである。
【図面の簡単な説明】
【図１】本発明による共有バッファ方式のパケットスイッチの実施形態例を示す機能構成図である。
【図２】本発明による共有バッファ方式のパケットスイッチを用いるネットワークの構成図である。
【図３】本発明による共有バッファ方式のパケットスイッチにおけるパケットスイッチ装置の構成図である。
【図４】本発明による共有バッファ方式のパケットスイッチにおける複数のスイッチングエレメントの接続を示す構成図である。
【図５】本発明による共有バッファ方式のパケットスイッチにおけるパケットを構成するバッファの形態示す構成図である。
【図６】本発明による共有バッファ方式のパケットスイッチにおけるスイッチングエレメントへの入出力データの構成図である。
【図７】本発明におけるバッファポインタのキュー管理を示す機能構成図である。
【図８】本発明におけるタイムスロットの例を示すタイミングチャートである。
【図９】本発明におけるバッファメモリ上に格納されるデータの構成図である。
【図１０】本発明で通信されるパケットデータのフォ−マットである。
【図１１】本発明の他の実施形態を示す機能構成図である。
【図１２】従来の共有バッファ方式のパケットスイッチ装置の機能構成図である。
【図１３】従来の共有バッファ方式のパケットスイッチ装置を構成するスイッチングエレメントの機能構成図である。
【符号の説明】
２０００                        パケットスイッチ装置
１０１０、１１１０、１２１０、１３０１０    空きアドレス管理キュー
１０２０〜１０２２、１１２０〜１１２２、１２２０〜１２２２、１３０９０、１３１９０、１３２９０                      使用済みアドレス管理キュー
１０３０〜１０３２、１１３０〜１１３２、１２３０〜１２３２、１３０３０、１３１３０、１３２３０                      送信アドレス管理キュー
１０４０、１０５０、１３０７０、１３０７２、１３０８０、１３１７０、１３１７２、１３２７０、１３２７２                エンキューパス
１０４１、１０５１、１３０７１、１３０７３、１３１７１、１３１７３、１３２７１、１３２７３、１３３００、１３４００    デキューパス
３０２０、３０６１〜３０６４、４３００    共有メモリ
１３０２０、１３１２０、１３２２０    マルチキャストアドレス管理キュー
１３０４０、１３１４０、１３２４０    エンキューパスセレクタ
１３０５０、１３１５０、１３２５０    送信ポートカウンタ
１３０６０            デバイスカウンタ
１３０７４、１３１７４、１３２７４、１３５００  送信完了通知
【図１】
0003616563.tif 000002
【図２】
0003616563.tif 000003
【図３】
0003616563.tif 000004
【図４】
0003616563.tif 000005
【図５】
0003616563.tif 000006
【図６】
0003616563.tif 000007
【図７】
0003616563.tif 000008
【図８】
0003616563.tif 000009
【図９】
0003616563.tif 000010
【図１０】
0003616563.tif 000011
【図１１】
0003616563.tif 000012
【図１２】
0003616563.tif 000013
【図１３】
0003616563.tif 000014