(57)【特許請求の範囲】
【請求項１】
スイッチング装置であって、
それぞれ対応するスイッチ・アダプタに接続され、着信したデータ・パケットを該スイッチ・アダプタに含まれる入力バッファを介して受け取る数個の入力ポート、及び、数個の出力ポートと、
前記入力ポートから前記出力ポートへと、前記データ・パケットのルーティングを制御する少なくとも１つのスイッチ・コントローラと、
前記入力ポートのそれぞれに対して用いられるデータ・パケット・アクセス・コントローラと、
前記各出力ポートに対して用いられ、動作時に前記スイッチ・アダプタが前記データ・パケットを前記出力ポートに送信することを許可されているかどうかを通知する許可情報ＧＲを生成し、前記入力バッファと前記データ・パケット・アクセス・コントローラとに送信する輻輳コントローラと、
を含み、
前記データ・パケット・アクセス・コントローラは、前記輻輳コントローラから受け取った前記許可情報ＧＲが送信を許可しない旨を通知するものであるにもかかわらず、前記入力ポートでデータ・パケットが受信された場合、動作時に、該データ・パケットを非承認とマークする、スイッチング装置。
【請求項２】
前記データ・パケット・アクセス・コントローラは、タイマを含み、該タイマは、前記データ・パケットの送信が許可されない旨を通知する許可情報ＧＲが前記入力バッファへと送信された後既定の時間間隔が過ぎる前に、前記入力ポートに届いた前記データ・パケットがマークされないようにし、該時間間隔は、該許可情報ＧＲが生成された時点と、該許可情報ＧＲが入力バッファの１つに届く直前に該入力バッファの１つから前記スイッチング装置に送信されているデータ・パケットが、前記データ・パケット・アクセス・コントローラに届く最も後の時点との差である、請求項１記載のスイッチング装置。
【請求項３】
前記輻輳コントローラは前記出力ポートの出力バッファに割当てられ、第１しきい値に対するバッファ占有度のオーバーフロー或いは第２しきい値に対するバッファ占有度のアンダーフローによりトリガされる、請求項１または請求項２に記載のスイッチング装置。
【請求項４】
前記許可情報ＧＲは前記出力ポート当たり１ビットまたは複数ビットを含む、請求項１乃至請求項３のいずれかに記載のスイッチング装置。
【請求項５】
前記スイッチング装置の全ての出力ポートの前記許可情報ＧＲは、ビットマップの形で各スイッチ・アダプタに通信可能である、請求項１乃至請求項４のいずれかに記載のスイッチング装置。
【請求項６】
前記出力ポートから送信される前記データ・パケットは、前記許可情報ＧＲを含む、請求項１乃至請求項５のいずれかに記載のスイッチング装置。
【請求項７】
前記出力バッファは前記データ・パケットのアドレスを持つ共通出力バッファであり、前記スイッチング装置は、入力ルータ、出力ルータ、該共通出力バッファの前記アドレスの使用を管理するアドレス・マネージャ、及び該共通出力バッファで前記データ・パケットをどのアドレスに格納するかについての順序情報を、該出力ルータに接続された出力キューに入力する出力キュー・マネージャを含む、請求項１乃至請求項６のいずれかに記載のスイッチング装置。
【請求項８】
前記出力キューは、前記順序情報に対して、合計で前記共通出力バッファのアドレスより多いキューイング場所を与える、請求項７記載のスイッチング装置。
【請求項９】
数個の入力ポートと数個の出力ポートを持つスイッチング装置を通してデータ・パケットのルーティングを制御する方法であって、該入力ポートの各々は、それぞれ対応するスイッチ・アダプタに接続され、着信したデータ・パケットを該スイッチ・アダプタに含まれる入力バッファを介して受け取り、少なくとも１つのスイッチ・コントローラで該入力ポートから該出力ポートへ着信するデータ・パケットのルーティングを制御し、
各出力ポートに対して、前記スイッチ・アダプタが前記データ・パケットを前記出力ポートへ送信することを許可されているかどうかを通知する許可情報ＧＲを生成するステップと、
許可情報ＧＲを前記入力バッファと、前記入力ポートのそれぞれに対して用いられるデータ・パケット・アクセス・コントローラに送信するステップと、
前記データ・パケット・アクセス・コントローラが、前記許可情報ＧＲが送信を許可しない旨を通知するものであるにもかかわらず前記入力ポートでデータ・パケットが受信された場合、該データ・パケットを非承認とマークするステップと、
を含む、方法。
【請求項１０】
送信を許可しない旨を通知する許可情報ＧＲが前記入力バッファへと送信された時間の後、既定の時間間隔が過ぎる迄に前記入力ポートに届いたデータ・パケットは、非承認とマークされない、請求項９記載の方法。
【請求項１１】
前記許可情報ＧＲは、前記出力ポートでの出力バッファのバッファ占有度の、第１しきい値或いは第２しきい値に対する関係によって決定される、請求項９または請求項１０に記載の方法。
【請求項１２】
前記許可情報ＧＲは前記出力ポート当たり１ビットまたは複数ビットを含む、請求項９乃至請求項１１のいずれかに記載の方法。
【請求項１３】
前記スイッチング装置の全ての出力ポートの許可情報ＧＲは、ビットマップの形で各スイッチ・アダプタに通知される、請求項９乃至請求項１２のいずれかに記載の方法。
【請求項１４】
前記許可情報ＧＲは、前記データ・パケットに、前記スイッチ・アダプタを介して前記出力ポートから送信されるヘッダに挿入することによって、前記スイッチ・アダプタに通知される、請求項９乃至請求項１３のいずれかに記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、数個の入力ポートと数個の出力ポートを持ち、出力ポートのうちの指定ポートへの着信データ・パケットの転送、及びそこから後続のデバイスへの転送がそのヘッダに従って決定される、データ・パケット用スイッチング装置に関する。スイッチング装置の入力ポートはスイッチ・アダプタに接続することができる。本発明は特に、交換網を介してデータ・パケットをルーティングするスイッチング装置に関する。装置はスイッチ・アダプタに輻輳が通知された場合にデータ・パケットが処理されるのを防ぐ機構を備える。データ・パケットとしては、特にＡＴＭセル、またはイーサネット・フレームが使用できる。
【０００２】
【従来の技術】
アナログ信号、英数字データ等の情報の高速交換は、通信ネットワークで重要なタスクである。情報交換のため様々な方向から回線や転送リンクが相互接続されるネットワーク・ノードは、転送遅延の原因になることが少なくない。ノードにトラフィックが集中しすぎ、また特にトラフィックの大半がリンクのうち僅かな経路しか通過しない場合、遅延時間が長くなり、或いは情報が失われることさえある。従って、高速ルーティングを可能にするスイッチング・ノードが求められる。
【０００３】
欧州特許第３１２６２８号は、通信ネットワークの複数の着信転送リンクと送信転送リンクを相互接続する、または着信と送信のコンピュータ、ワークステーション接続リンク間でデータを交換するスイッチング装置について説明している。更にこれまでのパケット形式についても説明している。
【０００４】
ｗｗｗ．ｚｕｒｉｃｈ．ｉｂｍ．ｃｏｍ／Ｔｅｃｈｎｏｌｏｇｙ／ＡＴＭ／ＳＷＯＣＰＷＰには従来のスイッチング技術の概要が記載されており、ＰＲＩＺＭＡチップへの組み込みが説明されている。このテーマに関しては、Ｗ．  Ｅ．  Ｄｅｎｚｅｌ、Ａ．  Ｐ．  Ｊ．  Ｅｎｇｂｅｒｓｅｎ、Ｉ．  Ｉｌｉａｄｉｓによる”Ａ  ｆｌｅｘｉｂｌｅ  ｓｈａｒｅｄ−ｂｕｆｆｅｒ  ｓｗｉｔｃｈ  ｆｏｒ  ＡＴＭ  ａｔ  Ｇｂｉｔ／ｓ  ｒａｔｅｓ”（Ｃｏｍｐｕｔｅｒ  Ｎｅｔｗｏｒｋｓ  ａｎｄ  ＩＳＤＮ  Ｓｙｓｔｅｍｓ、［０１６９−７５５２／９４］、Ｅｌｓｅｖｉｅｒ  Ｓｃｉｅｎｃｅ  Ｂ．  Ｖ．  、Ｖｏｌ．  ２７、Ｎｏ．  ４、ｐｐ．  ６１１−６２４）からも情報が得られる。
【０００５】
ＰＲＩＺＭＡチップは、共有される共通出力バッファを含み、ポート速度３００Ｍビット毎秒乃至４００Ｍビット毎秒の１６の入力ポートと１６の出力ポートを持つ。スイッチの原理は、まず着信パケットを完全パラレルＩ／Ｏルーティング・ツリーを通してルーティングし、ルーティングされたパケットを出力バッファのキューに入れる。チップはこれに加えて、データ（ペイロード）と制御（ヘッダ）の流れの分離を利用する。動的に共有される出力バッファ・ストレージにはペイロードのみ格納される。ＰＲＩＺＭＡチップのアーキテクチャはスケーラブルであり、よって、ポート速度、ポート数、及びデータ・スループットを向上させることのできる複数の拡張機能を提供する。これらの拡張機能は、ＰＲＩＺＭＡをモジュール形式で利用することにより実現することができる。シングルステージまたはマルチステージの交換網もモジュール形式で構成することができる。
【０００６】
ＰＲＩＺＭＡチップは、特にＡＴＭ、つまり非同期転送モードにもとづくブロードバンドの電気通信に適している。ただしその概念はＡＴＭ志向アーキテクチャの環境に限定されない。ＡＴＭは、セルとも呼ばれる固定長の短いパケットをもとにし、将来普及が予想されるＢＩＳＤＮ（ブロードバンド・サービス統合デジタル網）の統合交換転送規格として適用されるとみられている。輻輳を解消するためのＰＲＩＺＭＡのトポロジとキュー構成は、高度な並列性を採用している。ルーティング機能は、ハードウェア・レベルにおいて分散方式で実行され、セルフ・ルーティングと呼ばれる。ＡＴＭパケットはいくつかのパケット・タイプに分けられ、特にペイロード・サイズの異なるパケット・タイプに分けられる。ＰＲＩＺＭＡチップは、ペイロードが最大６４バイトまでのパケットを処理するものであるが、１２バイト、１６バイト、３２バイト、４８バイト等、他のパケット・ペイロードも転送できる。
【０００７】
１つのスイッチング装置に複数のデータ・ソースが接続される場合、各ソースに特定の帯域幅が割当てられる。これは超えられないか僅かに超えられるのみであり、そうでなければスイッチング装置の性能は低下し、遅延時間が長くなるかデータが失われることもある。データ・ソースは、データを提供する企業であり、帯域幅利用ポリシの適用を受ける。通常はこのポリシにより企業が割当てられた帯域幅レベルを超えた場合にはペナルティ料金が課される。割当てられた帯域幅未満にとどまるデータ・ソースからのデータ・パケットを処理し、割当てられた帯域幅を超えて届いたデータ・パケットについては、必要なら処理品質のみ落とすという面で、データ・ソースを公平に扱うことはスイッチング装置の役割である。このいわゆるサービス品質は、データ・パケットに関して公平な取り扱いを受ける権利を得ている顧客の利益を守る上では重要である。不公平な取り扱いは顧客の不満と利益の損失につながる。データ・パケットのスイッチング装置への着信の流れを制御することについては、米国特許第５４９３５６６号に、入力バッファと出力バッファをフィードバック・ループで組み合わせたパケット・スイッチを通してデータ・セルの流れを制御する装置が説明されている。出力バッファの充塞（ｆｕｌｌｎｅｓｓ）レベルが継続的に監視され、スイッチの入力側のアクセス装置に報告される。アクセス装置は入力バッファと、出力バッファの充塞レベルが既定レベルを超えたときは、データ・セルの流れを止めてデータ・セルを入力バッファに維持するスロットル装置を含む。出力バッファの充塞を示す状態メッセージが、入力バッファのセルによりアドレス指定されている出力バッファを示すアクセス・メッセージと比較され、アドレス指定されていて出力バッファから溢れるセルのみ、スロットル装置により停止される。
【０００８】
【発明が解決しようとする課題】
後に述べた従来技術に従ったスロットル装置は、スイッチング装置自体に送られたデータ・パケットの速度を制御するスイッチ・アダプタの一部である。スイッチング装置側には、何らかの理由により報告された出力バッファ状態に従ってデータ・パケット・ストリームを制限しないアダプタに対処する機構がない。
【０００９】
請求項１及び請求項９に従った本発明の目的は、接続された全てのデータ・ソースに公平な取り扱いとサービス品質を保証するため、欠陥のあるスイッチ・アダプタまたは他の理由からバックプレッシャがあるにもかかわらずデータ・パケットを送信し続けるスイッチ・アダプタに対応するスイッチング装置及びその方法を提供することである。
【００１０】
【課題を解決するための手段】
本発明は、数個の入力ポートと数個の出力ポートを含むスイッチング装置を対象とする。入力ポートはそれぞれ対応するスイッチ・アダプタに接続できる。少なくとも１つのスイッチ・コントローラにより、着信データ・パケットの入力ポートから出力ポートへのルーティングが制御される。出力ポート毎に輻輳コントローラが構成される。輻輳コントローラは、動作時、出力ポートへのデータ・パケットの送信をスイッチ・アダプタに許可するかどうかを示す許可情報を生成する。入力ポート毎に、データ・パケット・アクセス・コントローラが動作時、データ・パケットの送信を許可されていないにもかかわらず入力ポートでデータ・パケットが受信された場合、データ・パケットを非承認とマークする。このマークは、データ・パケットのルーティングを防ぐため使用できる。承認はスイッチング装置に属するデータ・パケット・アクセス・コントローラにより行われる。ここで有益な事として、フロー制御遅延、つまりデータ・パケット・アクセス・コントローラ側で非承認パケットが受信された時間と、スイッチ・アダプタが非承認の通知を受けた後に最初のデータ・パケットが送信され得る時間の差が、データ・パケット・アクセス・コントローラ側で考慮される。
【００１１】
入力バッファを使用する共通出力バッファ方式では、本発明を次のように実装することができる。出力キューや共通出力バッファについては、共通出力バッファの占有されたアドレスそれぞれの出力キューで占有場所のしきい値を超えたことを入力バッファに通知するため、輻輳コントローラの形で許可手段が与えられる。入力バッファがこのバックプレッシャに対応することは、データ・パケット・アクセス・コントローラにより保証される。アクセス・コントローラは、バックプレッシャが否定的許可情報の形で発行されたにもかかわらず着信したデータ・パケットを非承認とマークする。マルチキャスト・データ・パケットでは、その順序情報をマルチキャスト・データ・パケットが着信する出力ポートの出力キューそれぞれに入力でき、マルチキャスト・データ・パケットのアドレスは、マルチキャスト・データ・パケットの全ての順序情報が出力ルータにより正常に処理されたとき、別のデータ・パケットのアドレス・マネージャによってのみ解除できる。
【００１２】
データ・パケットの内容からデータ・パケット宛先情報が抽出される。データ・パケットによって処理の優先順位が異なる場合、優先順位のクラス毎、及び出力ポート毎に、別々の入力キューを与えることができる。
【００１３】
データ・パケットの宛先である出力ポートに従って、各入力ポートで、スイッチング装置の出力ポートと少なくとも同じくらい、多くの入力キューを含む入力バッファの入力キューにデータ・パケットをソートし、対応する入力バッファの入力キューからのデータ・パケットをルータに多重化することは有益である。出力バッファを使用するルータ構成の場合、多重化されたデータ・パケットの順序を制御するため、入力ポート毎に独立したコントローラを使用することが可能である。またデータ・パケット宛先情報に従って、ルータを介して出力ポートの少なくとも１つの専用出力ポート及び少なくとも１つの出力バッファにデータ・パケットをルーティングできる。
【００１４】
【発明の実施の形態】
以下、本発明の様々な実施例について説明する。
【００１５】
図１は、入力バッファを使用しデータ・パケットを処理するスイッチング装置１０を示す。スイッチング装置１０に着信するデータ・パケットは、転送するデータ（ペイロードとも呼ばれる）及びデータ・パケット・ヘッダを含む。ヘッダは、パケット・タイプ、完全性チェックサム、及びデータ・パケットの宛先アドレス（データ・パケット宛先情報ともいう）等、データ・パケットに関する様々な情報を含む。
【００１６】
図１の構成に含まれるスイッチング装置１０は、クロスバー・スイッチング装置等であり、Ｎ個の入力ポート２０、Ｎ個の出力ポート３０を備える。各入力ポート２０側に、”ＩＢ”と記したＦＩＦＯキューの形で実装される入力バッファ１１を含むスイッチ・アダプタ１９が構成される。スイッチ・アダプタ１９はそれぞれ、対応するアダプタ入力ライン５０に接続される。入力バッファ１１はそれぞれ複数の入力キュー１２に分けられる。つまり各入力バッファ１１は、出力ポート３０毎に必ず前記のような１つの入力キュー１２を持つ。従って各入力バッファ１１は、ここではＮ個の入力キュー１２を含む。１つの入力バッファ１１のこれら入力キュー１２はそれぞれ、同じ１つの出力ポート３０に向かう着信したデータ・パケットを格納するものである。従って着信したデータ・パケットは、その宛先出力ポート３０に従って各入力バッファ１１でソートされる。そのためスイッチ・アダプタ１９は、アダプタ入力ライン５０に届いたデータ・パケットを、その宛先に従って入力キュー１２に配布するための配布者２７を含む。入力キュー１２の出力側では、特定の時点でスイッチング装置１０にデータ・パケットを転送することのできる入力キュー１２をその時点で接続するため、セレクタ２６が用いられる。
【００１７】
スイッチ・アダプタ１９は全て、”Ｃ”と示した共通制御ユニット（コントローラ）２５に接続され、コントローラ２５はスイッチング装置１０に接続される。コントローラ２５の目的は、アダプタ入力ライン５０を介して届き、出力ポート３０に届く予定のデータ・パケットをこれら出力ポート３０まで導くことである。データ・パケットは、出力ポート３０から他のスイッチング装置や受信デバイス等、後続のデバイスに配信することができる。
【００１８】
この構成では、”最初にバッファ、次にスイッチ”の機能が得られる。これは、出力ポート３０が他のデータ・パケットを受信中であるため、着信したデータ・パケットをその宛先である出力ポート３０に直ちに送信できない場合である。着信したデータ・パケットは、スイッチング装置１０に達するため通過する必要のあるパスが空くまで、対応する入力バッファ１１に保持される。コントローラ２５は、タスクを引き継いで各データ・パケット・ヘッダに含まれるデータ・パケット宛先情報に従って入力ポート２０と出力ポート３０間に必要な接続に備え、対応する入力バッファ１１の次のデータ・パケット用のパスがいつ空くかを入力バッファ１１に通知する。これによりこのデータ・パケットを入力バッファ１１から取得してその宛先、つまりターゲット出力ポート３０に送ることができる。
【００１９】
特定の出力ポート３０に向かっているデータ・パケットが、その出力ポート３０がその時間に他のデータ・パケットを処理しているためにブロックされた場合、この構成では、同じ出力ポート３０に向かっているデータ・パケットは、ラインの先頭でブロックしているデータ・パケットによりブロックされるデータ・パケットだけであり、他の出力ポート３０に向かっているデータ・パケットは、宛先出力ポート３０へのパスが空いたときに個別に処理でき、スイッチング装置１０に転送することができる。理論上、これは理想的な性能曲線になり、理論上の最大スループットは１００％である。前記構成を使用する現実的アプローチでは、このスイッチング装置１０に可能な最大データ・パケット・トラフィックの４０％乃至５０％の負荷を課すことを推奨することになる。この範囲を超えると遅延対負荷曲線が急峻になるからである。つまり、入力バッファ・スペースによるが負荷が少し増えると、遅延及び使用される入力バッファ・スペースは大幅に増加する。遅延が負荷に大きく依存する状態は実用上望ましくない。これは遅延対負荷曲線の平坦な部分でスイッチング装置１０を使用することが望ましいことを意味する。つまり、この制限があるとき、入力／出力ポート数１６、ポート速度１ギガビット毎秒（Ｇｂｐｓ）のクロスバ・スイッチング装置１０は、合計１６×１Ｇｂｐｓのトラフィックを処理することはできず、その４０％乃至５０％である６．５ギガビット毎秒乃至８ギガビット毎秒しか処理できない。
【００２０】
更に、有限な入力バッファ１１スペースでは、データが失われる可能性が大きくなる。ブロッキングのために入力バッファ・スペースが埋まり、一旦入力バッファが一杯になると着信するデータ・パケットが失われるからである。この可能性はマルチキャスト・パケットでも大きくなる。
【００２１】
データ・パケットのブロッキングによる輻輳の場合にデータの喪失を避けるため許可機構と呼ばれ、輻輳コントローラ（後述）により実行されるデータ・パケット・フロー制御機構が追加される。任意の出力ポート３０からコントローラ２５に送信される許可情報ＧＲが生成され、コントローラ２５がこの許可情報ＧＲを全ての入力バッファに配布する。許可情報ＧＲには２つの状態がある。許可、つまり入力バッファ１１がデータ・パケットを送信できる状態と、不許可、つまり入力バッファ１１がデータ・パケットを送信できなくなる状態である。許可状態は肯定的許可情報ＧＲと呼ばれ、不許可状態は否定的許可情報ＧＲと呼ばれる。否定的許可情報ＧＲは、否定的許可情報ＧＲを発行した出力ポート３０が着信データ・パケットを受信できなくなり、従って、新しく発行される肯定的許可情報ＧＲによりデータ・パケットの送信を再開できることの通知を入力バッファ１１が受け取るまで、入力バッファ１１が対応する出力ポート３０へのデータ・パケットの送信を停止しなければならないことを入力バッファ１１に通知する。許可情報ＧＲは、ここでは各出力ポート３０に付属する輻輳コントローラ６０により発行される。輻輳コントローラ６０によりオーバーフローまたは輻輳と解釈された状態になるとすぐ、輻輳コントローラ６０が肯定的許可情報ＧＲを否定的許可情報ＧＲに切り替える。輻輳コントローラ６０は、輻輳またはオーバーフローが解消したことを検出すると直ちに、否定的許可情報ＧＲを肯定的許可情報ＧＲに切り替える。実装形態や安全マージンによるが、切り替えのしきい値は通常、最大占有度より低い。切り替えに関しては、異なる２つのしきい値を使用して切り替えのヒステリシスを取ることができる。
【００２２】
スイッチング装置１０は、入力ポート２０毎にデータ・パケット・アクセス・コントローラ４０を含む。アクセス・コントローラ４０は、入力ポート２０毎に許可情報ＧＲも受信する。データ・パケット・アクセス・コントローラ４０のタスクは、否定的許可情報ＧＲが入力バッファ１１に送信されたにもかかわらず入力バッファ１１から着信するデータ・パケットが認識されるようにすることである。その後スイッチング装置１０による処理を拒否することができる。それらのデータ・パケットは従って、非承認として分類されマークされる。
【００２３】
このケースは、例えばスイッチ・アダプタ１９に欠陥があり、否定的許可情報ＧＲに反応しないときに発生する。マークされたデータ・パケットが破棄されると、データ・パケット・アクセス・コントローラ４０による制御機構が働き、そのような不適合にもかかわらずデータ・パケット・トラフィック・ポリシが適用され、ポリシに従ったデータ・パケットのみ処理される。つまり宛先出力ポート３０に転送される。他の場合、スイッチング装置１０は、データ・パケット・トラフィック・ポリシに従っていないデータ・パケットを処理するが、データ・パケット・トラフィック・ポリシに従って動作するスイッチ・アダプタ１９に使用できる帯域幅が影響を受ける。全てのスイッチ・アダプタ１９、及びスイッチ・アダプタ１９を介してデータ・パケットを送信するユーザに対してサービス品質を保証するには、データ・パケット・トラフィック・ポリシに準拠する必要がある。
【００２４】
このステージのデータ・パケット・アクセス・コントローラ４０は、非承認データ・パケットを認識するという点で、データ・パケット分類器として機能する。この認識は次に別の目的に使用することができる。非承認データ・パケットが着信したという事実を対応するスイッチ・アダプタ１９または他のデバイスに通信することができ、それらのデバイスは、何かが正常に動作していないことを認識する。データ・パケット・アクセス・コントローラ４０は、従って診断システムとして機能し、スイッチ・アダプタ１９の不具合が検出される結果、そのスイッチ・アダプタ１９を交換または修復することができる。帯域幅が課金される業務環境の場合、欠陥のあるスイッチ・アダプタの所有者は、限度を超える帯域幅の利用に対して料金を課されることがある。マークされたデータ・パケットの最も有効な利用法は、スループットの遅延やポリシ準拠型データ・パケットの処理の拒否を避けるため、そのデータ・パケットを破棄することである。マークを使用するかどうかは、プログラミング及びスイッチング装置１０の設計により決定される。スイッチング装置は、従って、非承認データ・パケットが自動的に破棄されるように設計することができる。また欠陥のあるスイッチ・アダプタ１９またはスイッチ・アダプタ１９の更に上流に配置されたデバイスとの通信を行える。スイッチング装置は、データ・パケットを処理するか破棄するかを決定するため、フロー制御ユニット（後述）を含む。
【００２５】
データ・パケットのヘッダの、データ・パケットの宛先を決定する部分は、パケットが出力ポート３０に届いた後は不要になるので、この部分のスペースを許可情報ＧＲを入れるために使用できる。このスペースは大きく、１つの出力ポート３０の許可情報ＧＲだけではなく、全ての出力ポート３０の許可情報ＧＲも、１つのデータ・パケットのヘッダに収まる。各入力ポート２０について、対応する許可情報ＧＲの状態を１ビットで表すことができる。従ってデータ・パケット・ヘッダは、全ての入力ポート２０の許可状態を示すビットマップを含む。許可情報ＧＲの許可／不許可状態に加えて、許可情報ＧＲの環境に関する情報を生成して転送することも考えられる。例えば、許可情報ＧＲは、適用可能なしきい値に応じて変更することができる。生成されヘッダに置かれる情報は、キューに入ったデータ・パケットの数だけ上回ったしきい値をバイナリ・コードの形で含むことができる（後述）。
【００２６】
変更されたデータ・パケットは、出力ポート３０から後のデバイスに送信される。出力ポート３０と入力ポート２０を統一することは一般的であり効果的なので、ここではヘッダーに許可情報ＧＲを含む変更されたデータ・パケットは、入力ポート２０に自動的に届き、入力ポート２０はヘッダーから許可情報ＧＲを読取り、新しい許可情報ＧＲを得ることができる。この更新はデータ・パケット毎に行えるので、スイッチ・アダプタ１９には、許可情報ＧＲの変更が連続的に通知される。
【００２７】
図２は、データ・パケット・アクセス・コントローラ４０の実施例を示す。データ・パケット・アクセス・コントローラ４０はアクセス・ゲート４１とカウンタ４２の形の有限状態機械を含む。カウンタ４２の出力はアクセス・ゲート４１に接続され、ゲート４１の他の入力はスイッチ・アダプタ１９から着信するデータ・パケット（ＤＰ）を受け取る。カウンタ４２は、否定的許可情報ＧＲが生成され送信された後に、それにもかかわらずデータ・パケットが準拠型として受け入れられる時間枠を用意する。時間枠が用意されるのは、許可情報ＧＲが送信された時間と入力バッファ１１に届いた時間プラス、その時間より前に送信されたデータ・パケットがスイッチング装置１０に届くため必要な時間に差があるためである。この差によりフロー制御遅延が決定される。その時点は可変であり、可能な範囲内の最も新しい時間を選択すること、つまりデータ・パケットが入力バッファ１１からデータ・パケット・アクセス・コントローラ４０に届くまでの最大時間を用いることは、最適なソリューションとみなされる。ただしその場合、非承認データ・パケットは、非承認にもかかわらず受け入れられ処理される。しかし、準拠型データ・パケットが非承認として処理され、破棄や偽シグナリングの形の”報復的”処置に用いられることはない。カウンタ４２は従って、フロー制御遅延のこの上限に設定することができ、データ・パケット・アクセス・コントローラ４０で許可情報ＧＲが受信される毎に開始され、許可情報ＧＲが否定から肯定に切り替えられるとすぐリセットされる。
【００２８】
許可情報ＧＲが送信された時間と、許可情報ＧＲが入力バッファ１１に達する前にその入力バッファ１１から送信された最後のデータ・パケットが、許可情報ＧＲを送信した出力ポート３０に届いた時間の差は、往復遅延と呼ばれる。
【００２９】
許可情報ＧＲは、ここでは、１つの出力ポート３０及び対応する入力ポート２０に対する許可情報ＧＲを表す１ビットの形で与えられる。否定的許可情報ＧＲは、１つの出力ポート３０のバッファまたは１つの出力ポート３０の後のバッファに格納されたデータ・パケットの量が既定第１しきい値を超えたときに生成される。この第１しきい値は、入力バッファ１１で否定的許可情報ＧＲにより不許可を指定するとき、入力アダプタつまりスイッチ・アダプタ１９から送信されるデータ・パケットをバッファに格納できるよう、出力ポート３０のバッファの実際の大きさより低く設定される。許可情報ＧＲの否定から肯定への切り替えは、第２しきい値のアンダーフローによりトリガすることができる。第２しきい値は第１しきい値と同じでもよく、同じでなくてもよい。前記のように、このようなしきい値は、オーバーフロー或いはアンダーフローを予測して複数実装することができ、許可情報ＧＲを切り替える原因はどのしきい値かという情報をスイッチ・アダプタ１９に伝えることができる。
【００３０】
宛先毎のソートはまた、ＶＯＱ（仮想出力キューイング）と呼ばれる。コントローラ２５は、最大Ｎ２個のリクエストを処理する必要があるが、それでは入力／出力ポート３０が増えて装置が複雑になる。これ自体は大きな問題にはならないが、一般には、どの時点でもどのような環境下でも入力キュー１２毎に公平な取り扱いを実現し、スイッチング装置の能力を最大限に活用することが望ましい。その場合、どの時点でも各出力ポート３０に、配信するデータ・パケットが存在することになる。この野心的な目標は、コントローラ２５にとっては容易なタスクではなく、コントローラ２５がかなり複雑になる。
【００３１】
この構成の複雑さは、優先順位の異なるデータ・パケットに対応するよう設計されると、つまり優先順位毎に入力キュー１２が与えられると、更に大きくなる。入力バッファ１１当たりの入力キュー１２の数は、優先順位の数を出力ポート３０の数に掛けた値になる。
【００３２】
次の例のスイッチング装置１０は、非承認データ・パケットを自動的に破棄するように設計されているとする。
【００３３】
他の方法は、第１にキュー配置、次にバッファ格納である。理論上、このモデルは純粋な出力バッファ装置に辿り着く。ただし実際には、バッファ・サイズが制限される。有限な出力バッファでは、データ・パケットが出力バッファに届いても、出力バッファがすでに埋まっていてパケットが失われる可能性がある。有限な出力バッファは無限な入力バッファと組み合わせられるが、もちろん実際には有限な入力バッファでも実現される。この構成を図３に示す。これは図１とは異なり、スイッチング装置１０はクロスバ・スイッチング装置ではなく、ルーティング・スイッチング装置１０（ルータ１０ともいう）である。ルータ１０と出力ポート３０それぞれの間に”ＯＢ”と示した出力バッファ３５が置かれる。ルータ１０に届いたデータ・パケットは、宛先の出力ポート３０にルーティングされ、そこで対応する出力バッファ３５に格納される。
【００３４】
またここでは、考えられる出力バッファ・オーバーフローを処理する許可機構が採用される。各出力バッファ３５に定義済み第１しきい値があり、これを超えると許可情報ＧＲが肯定から否定に切り替えられ、第２しきい値ではこれが逆になる。許可情報ＧＲはコントローラ２５を介して全ての入力バッファ１１に送られる。否定的許可情報ＧＲでは、出力バッファ３５により否定的許可情報ＧＲがトリガまたは発行された出力ポート３０へのデータ・パケットの送信の停止が、全ての入力バッファ１１に要求される。
【００３５】
データ・パケット・アクセス・コントローラ４０のタスクは、ここでも、入力バッファ１１に否定的許可情報ＧＲが送られたにもかかわらず入力バッファ１１から届くデータ・パケットを拒否することである。これらのデータ・パケットは非承認として分類され、任意破棄される。前記のように、データ・パケット・アクセス・コントローラ４０は、許可情報ＧＲへの準拠を保証するよう機能する。
【００３６】
入力バッファ１１は、入力バッファ１１とスイッチング装置１０間の接続ラインが比較的少ないため、スイッチング装置１０から比較的簡単に物理的に分離できるので、比較的安価なメモリ・チップで実現することができ、従ってバッファ・サイズは、実際には、出力バッファ３５の場合より同じ価格でかなり大きくすることができる。従ってこの機構では、有限な入力バッファ１１は、理論上無限な入力バッファ１１の近似として好ましい。前記の構成にはしかし２つ欠点がある。第１に、ルータ１０は、複雑さがＮ２に比例して大きくなる機能を実現する必要がある。第２に、スイッチング装置１０を最適な形では使用できない。マルチキャスト・トラフィックがないと仮定すると、各入力ポート２０について、１つの出力ポート３０に送るデータ・パケットはどの時点でも１つのみである。従って入力ポート２０毎に、どの時点でもルータ１０のＮ−１個の出力ラインが使用されない。つまりＮ２個の出力ラインのうちＮ個のラインしか使用されない。更に出力バッファ３５自体も最適な形で使用されない。入力ポート２０が２つ以上、同じ出力ポート３０にデータ・パケットを送信する場合、その時点で他に少なくとも１つの出力ポート３０はデータ・パケットを受信せず、その結果、出力バッファ・スペースの必要は少なくなる。各出力ポート３０に別に出力バッファ３５がある場合、使用頻度の高い出力ポート３０に利用できるバッファ・スペースが、使用頻度の低い出力ポート３０を犠牲にして一時的に増える可能性はない。
【００３７】
図４の構成では、全ての出力ポート３０間で出力バッファ・スペースを動的に共有することができ、同時に前記のＮ２の割合で増加する複雑さの問題も解決される。図４の構成は、Ｎ個の入力バッファ１１を含み、ルータは入力ルータ１３と出力ルータ１４に分けられる。入力ルータ１３の出力側には”ＣＯＢ”と示した共通出力バッファ３５が１つのみ置かれる。これは”ＩＲ”と示した入力ルータ１３から着信した全てのデータ・パケットを扱う。共通出力バッファ３５の出力側には、”ＯＲ”と示した出力ルータ１４が１つのみ置かれる。入力ルータ１３と出力バッファ３５に並列に”ＡＭ”と示したアドレス・マネージャ１６が配置され、入力ルータ１３と出力ルータ１４に接続される。アドレス・マネージャ１６は”ＯＱＭ”と示した出力キュー・マネージャ１７に接続され、マネージャ１７は全ての入力バッファ及びアドレス・マネージャ１６から入力を受け取る。出力ポート３０毎に”ＯＱ”と示した出力キュー１８が含まれる。キュー１８は出力ルータ１４に入力を与える。
【００３８】
この構成は、入力ポート２０毎に、仮想出力キューを持つ入力バッファ１１を含む。つまり各出力キュー１８に対する各入力バッファ１１に入力キュー１２を持つ。入力バッファ１１は入力ルータ１３に接続され、入力ルータ１３に共通出力バッファ３５と出力ルータ１４が続く。各入力バッファ１１には専用の入力コントローラ２５があり、入力バッファ１１の異なる入力キュー１２から送信されるデータ・パケットの順序が制御される。
【００３９】
着信するデータ・パケットは全て入力ルータ１３を介して共通出力バッファ３５にルーティングされる。アドレス・マネージャ１６は入力ルータ１３に、共通出力バッファ３５のどの場所に、つまりどのアドレスに、着信データ・パケットが格納されるかの情報を与える。またこのアプローチは、入力バッファ１１がその情報を得、入力ルータ１３に与えるように設計することもできる。
【００４０】
特定の出力ポート３０に向かう各データ・パケットが出力バッファ３５のどのアドレスに格納されているかの情報が出力キュー・マネージャ１７に、具体的にはその出力キュー１８に書込まれる。この情報は順序情報と呼ばれる。順序情報は、共通出力バッファ３５に格納されるデータ・パケットそれぞれについて、そのデータ・パケットが送信される出力キュー１８の１箇所に置かれる。アドレスは従って対応する出力ポート３０、つまり対応アドレスに格納されたパケットが向かう出力ポート３０に従ってソートされる。これは、各出力ポート３０が、その出力ポート３０に届くデータ・パケットのアドレスを、対応出力キュー１８から取得することを意味する。アドレス・マネージャ１６はここで、出力キュー１８毎に一度に１アドレスを同時に処理する。これはまた、各入力ポート２０毎に１アドレスが常に使用できる状態に保たれ、これは対応データ・パケットが届く前に行えることを意味する。入力ポート２０のライン先頭に届く各データ・パケットには、従って、入力ルータ１３により導かれる宛先アドレスが用意される。これらＮ個のアドレスは、アドレス・マネージャ１６により出力キュー・マネージャ１７にも与えられ、マネージャ１７は入力として更にＮ個のデータ・パケット宛先情報を受け取る。これは、届いた全てのデータ・パケットの順序情報をどの出力キュー１８に入力するかを判定するためのマスクになる。全ての入力ポート２０に対するアドレスの並列処理により、データ・パケット処理が速くなり、また公平になる。アドレスが使用できない場合については後述する。
【００４１】
従って、アドレス・マネージャ１６により、全ての着信データ・パケットにアドレスが与えられる。このアドレスでデータ・パケットが共通出力バッファ３５に格納されるので、アドレスはパケットが向かう出力ポート３０に対応する出力キュー１８内の場所に格納される。従って情報、つまりデータ・パケット宛先情報はパケット・ヘッダから抽出される。出力ルータ１４は最終宛先のために機能する。つまり各出力ポート３０について対応する出力キュー１８から次のアドレスを取得し、そのアドレスのデータ・パケットをフェッチし、そのデータ・パケットの宛先である出力ポート３０に送る。フェッチ・スループットはここでは、非破壊的読取りプロセスであり、共通出力バッファ３５に一度だけ格納されるが、そのデータ・パケットを受信する必要のある全ての出力ポート３０が受け取るまで数回読出される点で、処理対象のマルチキャスト・データ・パケットに対応する。出力バッファ３５からデータ・パケットが読出された後、対応するアドレスが解除される。つまりこのアドレスはアドレス・マネージャ１６に戻され、アドレス・マネージャ１６は再びこのアドレスを入力ポート２０の１つに割当てることができ、次に届くデータ・パケットが処理される。マルチキャスト・データ・パケットの場合はカウンタ（図示せず）が用いられる。カウンタは、データ・パケットが格納されてからそのデータ・パケットが転送される出力ポート３０の数に設定され、そのデータ・パケットが出力ルータ１４によりフェッチされる毎に減分される。カウンタの値がそのデータ・パケットについて０に達すると、対応するアドレスを解除することができる。共通出力バッファ３５は従って、出力バッファ３５と入力ルータ１３間にＮ２個の接続ではなく、Ｎ個の接続しか必要としないという点で有益である。つまり入力ルータ１３と出力バッファ３５のインタフェースに必要なリソースが、Ｎ２からＮに少なくなる。
【００４２】
出力バッファ３５の共有原理について説明する。出力キュー１８は、合計で出力バッファ３５のアドレスよりも多いキューイング場所を持つ。その場合、入力ポート２０から見ると、各出力ポート３０について出力バッファ３５のスペースは、出力バッファ３５を出力ポート３０数で等しく割っただけの場合よりも大きい。この構成には、極端なトラフィック・パターンの変化を考慮した場合、かなり柔軟性があるので、データ・パケットの総トラフィックが出力バッファ３５の現実の最大容量を超えない限り性能は向上する。特にトラフィック・バーストの処理効率が向上する。出力ポート３０でその公平な分量よりも多くの出力バッファ・スペースを使用できるようにすることによって、データ・パケットが失われる可能性が小さくなるからである。
【００４３】
しかし、この共有原理にはホギングの可能性もある。つまり、それを防ぐ他の機構がない場合、使用頻度の高い出力ポート３０では、出力バッファ３５の共有メモリ全体が占有され、他の出力ポート３０を使用できなくなることがある。更に、共有により作られるのは、現実の出力バッファ・スペースよりも大きい仮想出力バッファ・スペースのみであることを考慮する必要がある。これは、入力ポート２０が仮想出力バッファ・スペースを実出力バッファ・スペースを超える程度まで占有しようとする可能性があることを意味する。
【００４４】
またここでは、出力バッファのオーバーフロー、つまり出力キュー・オーバーフローの可能性を処理する許可機構が採用される。各出力キュー１８には、それを超えると否定的許可情報ＧＲが生成される定義済み第１しきい値、及びそれを下回ると肯定的許可情報ＧＲが生成される第２しきい値があり、許可情報ＧＲは全ての入力バッファ１１に送られる。否定的許可情報ＧＲでは、全ての入力バッファ１１が出力キュー１８により否定的許可情報ＧＲが発行された出力ポート３０へのデータ・パケットの送信を中止する。更に共有の場合、出力バッファ３５に予想されるオーバーフローも監視する必要がある。共有の場合には、全ての出力キュー１８の場所の数の合計は、出力バッファ３５のアドレス数より多いので、出力バッファ３５は完全に埋められ得るが、出力キュー１８はそこに格納されたデータ・パケットのしきい値に達しないことがある。従って出力バッファ３５は、占有されたアドレスに対して第３しきい値を持つ。このしきい値に達すると、メモリ・フルのバックプレッシャが否定的許可情報ＧＲの形で、全ての入力バッファ１１に対して生成され、その場合は全て入力ルータ１３を介した出力バッファ３５へのデータ・パケットの送信を停止する必要がある。つまりどの入力バッファ１１からでも１つのパケットも送信できない。占有されたアドレス数が第３しきい値またはこれとは異なる第４しきい値を下回るとすぐ、通常の動作を再開することができる。
【００４５】
従って、特定の出力キュー１８が一杯のとき、つまりその出力キュー１８の特定のしきい値を超えた場合、従ってまた別のデータ・パケットをその出力キュー１８に送信できる場合、入力バッファ１１へのシグナリングに対応するフィードバック機構が構成される。特定の出力キュー１８で非許可条件が成立すると、つまり対応するしきい値を超えると、否定的許可情報ＧＲが発行され、各入力コントローラ２５が反応する。つまりその出力キュー１８に属する出力ポート３０に向かうデータ・パケットは入力バッファ１１から送信されなくなる。つまり占有された出力キュー１８に対する入力キュー１２からのデータ・パケットは保留され、他の入力キュー１２はデータ・パケットの送信を継続することができる。
【００４６】
この実施例のマルチキャスト・データ・パケットの場合、許可情報の生成を変更することができる。つまりそのために出力キュー１８側で許可情報が生成されることはないか、その許可情報は無視される。マルチキャスト・データ・パケットの場合、マルチキャスト・データ・パケットが向かう各出力キュー１８にエントリが作成されるので、出力キュー１８のうち１つのみオーバーフローがあって否定的許可情報がトリガされるとき、マルチキャスト・データ・パケットが非承認とマークされる可能性が出力キュー１８の数とともに大きくなる。これはマルチキャスト・データ・パケットに対する極端且つ不公平なバックプレッシャにつながり得る。この問題は、共通出力バッファ３５からの許可情報のみを使用することで解決される。マルチキャスト・データ・パケットのこの優先的処理の対策として、マルチキャスト・データ・パケット用のカウンタまたはバッファを別に構成することができる。これは、既定の数またはしきい値に達したときに、否定的許可情報を生成するので、処理されるマルチキャスト・データ・パケットの数が制限される。
【００４７】
図１及び図３に示した仮想出力キュー・モデルとは対照的に、ここでは中央コントローラが用いられない。その代わり各入力バッファ１１に専用の入力コントローラ２５が用いられる。これは他の入力コントローラ２５とは独立に動作する。これはこの構成が、そのデータ・パケットの出力キュー１８と共通出力バッファ３５がまだ十分なスペースを維持しているとき、つまり否定的許可情報ＧＲが生成されていないとき、全ての入力バッファ１１で入力ルータ１３を介してデータ・パケットを独立に送信できるようにする入力ルータ１３を含むという事実による。入力コントローラ２５の独立性により制御リソース全体の複雑さが大幅に減少する。ここでは、各入力コントローラ２５は、着信するデータ・パケットを、公平さの有無にかかわらず、ラウンド・ロビン、優先順位等の既定の判定ポリシに従って処理するだけでよい。入力コントローラ２５はそれぞれ、それによって格納されたパケットのどれを次に入力ルータ１３に送信するかを個別に判定する。
【００４８】
入力コントローラ２５に、出力キュー１８の占有状態についてより詳しい情報を入力コントローラ２５に与える信号をフィードバックすることによって、装置に更に改良を加えることができる。目的は、どの時点でもどの出力ポート３０でも、データ・パケットを次のステージに配信することなので、出力キュー１８が空またはほとんど空であるという情報も入力コントローラ２５に送信でき、好適には、対応する出力ポート３０に向かうデータ・パケットを入力ルータ１３に送信するため用いられる。出力キュー１８の状態情報は、例えば占有度０または０に近いしきい値等のしきい値を追加することによって抽出することができる。空またはほとんど空の出力キュー１８は従って、入力コントローラ２５に報告され、コントローラ２５は、出力キュー１８がデータ・パケットを可能な限り早く受け取るようそのポリシを採用する。このようなしきい値を使用することで、入力コントローラ２５に対して詳細な状態報告が可能になる。コントローラ２５はこの状態報告を各出力キュー１８に使用でき、データ・パケットの多重化ポリシに影響を与えることができる。この状態報告は、従って許可情報ＧＲの一種の対極として働き、低負荷アラームまたは負荷を最大にするスケジューリング・フィードバック信号として使用できる。
【００４９】
マルチキャスト・データ・パケットを処理する機構は、ここでは、図１及び図３による構成と同じである。各入力バッファ１１が出力ポート３０当たり及び優先順位当たり１つの入力キュー１２を含み、複数の優先順位を処理することができる。つまり出力ポート３０が８つで優先順位が４つのとき、各入力バッファ１１は３２の入力キュー１２を含む。否定的許可情報ＧＲはここでは、入力バッファにより選択的に配布することができる。つまり特定の出力キュー１８から発生した否定的許可情報ＧＲは、入力バッファ１１の対応する入力キュー１２にのみ、また複数の優先順位がある場合は対応する複数の入力キュー１２まで案内される。従って、他の入力キュー１２はどれもこの否定的許可情報によってブロックされず、共通出力バッファ３５へのデータ・パケットの送信を続けることができる。スループットは、ここに適用される共通出力バッファの原理と組み合わせることで、図１及び図３の構成よりも向上する。
【００５０】
ただし、ここで一見驚くような結果が現れる。予想に反して共有密度が高くなると性能が低下するのである。これは次のように説明することができる。スイッチング装置１０はここでは、その最大負荷容量近くまで駆使される。つまり出力キュー１８はそのしきい値近くまで埋められる。これは選択的許可情報ＧＲによりライン先頭のブロッキングが回避されるためである。共有の結果、１つの出力ポート３０及びその出力キュー１８の過負荷がバッファに格納され、他の出力キュー１８で使用できる容量が無駄になる。共有はそのメリットを時間を無作為に選んで活用する限りは十分有効である。仮想出力バッファ・スペースは実バッファ・スペースより大きいので、出力キュー１８には、出力バッファ３５の場所より多いアドレスが供給されるというリスクが存在する。これはもちろん出力バッファ許可機構により防ぐことができる。仮想出力キューには、この構成と組み合わせたとき、入力キュー１２が対応する出力キュー１８で使用できる容量に応じて正確に制御されるという効果がある。共有原理により増加するこの容量については、出力バッファ３５が一杯になるため否定的許可情報ＧＲが流れる可能性がある。また、共有ファクタ、つまり仮想出力バッファ・スペースに占める実バッファ・スペースの割合が高ければ高いほど、この可能性は大きくなり、よって一般的トラフィックでは全体の性能が低下することもまた明らかである。
【００５１】
仮想出力キューを持つ入力バッファ１１は、共有の有無にかかわらず、出力バッファ３５と同じ原理を適用して、共通入力バッファ１１の形でも実現することができる。つまり着信するデータ・パケットは共通入力バッファ１１に格納でき、そのアドレスはそこで別の入力キュー１２に格納され、それらデータ・パケットが向かう出力ポートに従って順序付けられる。
【００５２】
図４の構成は、仮想出力キューなしに実現することもでき、その場合、各入力ポート２０にキューが１つの入力バッファ１１が得られる。
【００５３】
ここに提示した発明では、交換網とも呼ばれる構成の、例えば１６×１６つまり１６個の入力ポート２０と１６個の出力ポート３０から、３２×３２へスケーリングするには、全てのスイッチ・アダプタ１９でそのキュー構造のみ変更すればよく、アダプタ上の入力バッファ１１を変更する必要はない。注意して見れば、これは、この入力バッファ１１を入力キュー１２の集合として管理するリンク・リストの実際の数をプログラムできるようにする必要があることを意味する。いずれにしろ、スイッチ・アダプタ１９では、複雑さがＮ次でスケーリングされる。すなわち宛先の数を倍にすることは、入力キュー１２と出力キュー１８の数を倍にすることである。従来のＶＯＱ構成では、スイッチの入力ポート２０と出力ポート３０の数を倍にするには、リクエスト数を２乗する必要がある。つまり１６×１６のコントローラは２５６のリクエストを受け取り、３２×３２のコントローラは１０２４のリクエストを受け取る。
【００５４】
マルチキャスト・データ・パケットを考慮すると、従来のＶＯＱ構成では、マルチキャスト・データ・パケットに特別な処理が必要になる。スイッチング装置１０はその場合、内部バッファを持たない。これは、マルチキャスト・データ・パケットを送信するために、このデータ・パケットが向かう全ての出力ポート３０を空けておく必要があることを意味する。その場合スイッチ・コントローラ２５が複雑になる。つまりマルチキャスト・データ・パケットを転送することを認識する必要があり、他のスイッチ・アダプタ１９はデータ・パケットをマルチキャスト・データ・パケットの宛先である出力ポート３０の１つに送信しないようにする必要があり、マルチキャスト・パケットを送信するスイッチ・アダプタ１９に送信許可を与える必要があり、更にスイッチング装置１０に複数のクロスポイントを設定する必要がある。これは、このスイッチ・コントローラ２５が単純なロジックで構成される限り可能であるが、パイプライン処理が行われ、最適な公平性と優先順位処理を図る洗練されたアルゴリズムで実行されると、実に複雑な作業になる。現在の慣行では、独立したマルチキャスト・キューが形成され、全てのアダプタがこれにマルチキャスト・データ・パケットを入れる。これでは非マルチキャスト・トラフィックとマルチキャスト・トラフィックの関係が完全に壊れる。従ってこれは最適なソリューションとみなすことはできない。具体的には、２つのマルチキャスト・データ・パケットの宛先が重複する少なくとも１つの出力ポート３０があるとき、その２つのマルチキャスト・データ・パケットを、１つは第１スイッチ・アダプタ１９から、もう１つは別のスイッチ・アダプタ１９から送信することはできない。その場合スループットは重大な影響を受ける。
【００５５】
図３に従った構成の場合、スイッチ・アダプタ１９に送信するマルチキャスト・データ・パケットがあり、このデータ・パケットのコピーを受け取る出力キュー１８により、そのしきい値を超えたことが通知されないとき、データ・パケットは送信することができる。複数のスイッチ・アダプタは複数のマルチキャスト・データ・パケットを同時に送信でき、実際にどこに送るかを互いに知っている必要はない。潜在的衝突は出力バッファ３５により解決される。仮想出力キューと共有出力バッファつまり共通出力バッファ３５を持つスイッチング装置１０は、マルチキャスト・データ・パケットを処理する上で良好な環境を備える。他のスイッチング装置１０とは異なり、データ・パケットを数回複製する必要がないからであり、従ってバッファ・スペースが節約されるからである。それでもマルチキャスト・データ・パケットはユニキャスト・パケットと同じように処理することができる。これによりトラフィックの制御とポリシの設定が容易になる。これによりリアルタイム動作が改良され、マルチキャスト・データ・パケットが、別処理プロセスのため人工的に加わった遅延の影響を受けなくなる。
【００５６】
各優先順位に入力キュー１２を使用することで、優先順位の低いデータ・パケットによる優先順位の高いデータ・パケットのブロッキングが避けられ、これもスイッチング装置１０のサービス品質向上に寄与する。
【００５７】
本発明に従ったスイッチング装置１０の性能は様々な方法により向上させることができる。入力ポート２０と出力ポート３０の数を増やす場合、スイッチング装置１０はマルチステージまたはシングルステージの構成にすることができる。マルチステージ構成では、必要になるスイッチング装置１０の数は、これに匹敵するシングルステージ構成の場合に比べて急増することはない。つまりマルチステージ構成では、ポート数が増えても必要になるスイッチング装置１０数はシングルステージ構成よりも少ない。
【００５８】
ただし、マルチステージ構成の性能は低い。遅延が大きくなるからであり、１つの接続によって出力キュー１８がフルに使用されることから他の宛先のデータ・パケットの処理が妨げられるか、または出力バッファ３５がフルに使用されることからスイッチング装置の全ての入力がブロックされ、前のステージにその影響が及び、否定的許可情報ＧＲが発行される可能性があるためである。この性能低下は、スピードアップ・ファクタによりある程度まで補うことができる。これはスイッチング装置１０がその環境よりも高速に動作することを意味する。その場合、最後のステージから送り出され、より低い速度で次のハードウェア環境に渡される、より高速に着信するデータ・パケットをキューに入れるためスイッチング装置１０の後に出力バッファ３５が必要である。また、スイッチ内部のメモリが増える可能性もある。その場合出力バッファ３５がフルに使用される可能性は少なくなる。しかしメモリをこのように大きくするにはかなりコストがかかり、そのメモリはいくらか物理的に制限される。スイッチング装置のメモリをメモリ拡張モードにより増やすと物理的制限はなくなるがコストは変わらない。マルチステージ構成で、後のスイッチング装置１０が使用中の場合、つまりその出力バッファ３５が一杯でアドレスを使用できないか、または出力キュー１８が一杯のとき、全ての入力に対して否定的許可情報ＧＲを生成できる。この許可情報ＧＲはまた前の全てのスイッチング装置１０に転送される。出力キュー１８が一杯のとき、許可情報ＧＲは、一杯の出力キュー１８に向かうデータ・パケットのみ選択的にブロックすることができる。出力バッファ３５が完全に占有されている場合、全ての入力バッファ１１がブロックされる。否定的許可情報ＧＲにより、前段のスイッチング装置１０がブロックされ、このスイッチング装置１０はセルを送信できなくなる。
【００５９】
ここに示したスイッチング装置１０は、従来の技術の項で述べたＰＲＩＺＭＡアーキテクチャによる方法等、これまでの拡張方法でスケーリングが可能である。従って高速化、ポートの拡張、性能向上、メモリの拡張（ここでは比較的大きい出力バッファ・スペース）、リンク並列化、マスタ／スレーブ・モード、或いはそれらの組み合わせ等を適用することができる。
【００６０】
前記の複数の実施例は、部分的または全体的に組み合わせることができる。
【００６１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００６２】
（１）スイッチング装置であって、
それぞれ対応するスイッチ・アダプタに接続可能な数個の入力ポート及び数個の出力ポートと、
前記入力ポートから前記出力ポートへ着信したデータ・パケットのルーティングを制御する少なくとも１つのスイッチ・コントローラと、
各出力ポートに対して用いられ、動作時に前記スイッチ・アダプタが前記データ・パケットを前記出力ポートに送信することを許可されているかどうかを通知する許可情報ＧＲを生成する輻輳コントローラと、
前記入力ポートのそれぞれに対して用いられ、前記データ・パケットの送信が許可されていないにもかかわらず、前記入力ポートでデータ・パケットが受信された場合、動作時に、該データ・パケットを非承認とマークするデータ・パケット・アクセス・コントローラと、
を含む、スイッチング装置。
（２）前記データ・パケット・アクセス・コントローラは、タイマを含み、該タイマは、前記データ・パケットの送信が許可されないにもかかわらず、既定の時間間隔が過ぎる前、不許可を通知する許可情報ＧＲが生成された後に前記入力ポートに届いた前記データ・パケットがマークされないようにし、該時間間隔は、好適には、該許可情報ＧＲが生成された時点と、該許可情報ＧＲが入力バッファの１つに届く直前に該入力バッファの１つから前記スイッチング装置に送信されているデータ・パケットが、前記データ・パケット・アクセス・コントローラに届く最も新しい時点との差である、前記（１）記載のスイッチング装置。
（３）前記輻輳コントローラは前記出力ポートの出力バッファに割当てられ、好適には第１しきい値に対するバッファ占有度のオーバーフロー或いは第２しきい値に対するバッファ占有度のアンダーフローによりトリガされる、前記（１）または（２）に記載のスイッチング装置。
（４）前記許可情報ＧＲは前記出力ポート当たり１ビットまたは複数ビットを含む、前記（１）乃至（３）のいずれかに記載のスイッチング装置。
（５）前記スイッチング装置の全ての出力ポートの前記許可情報ＧＲは、好適にはビットマップの形で各スイッチ・アダプタに通信可能である、前記（１）乃至（４）のいずれかに記載のスイッチング装置。
（６）前記スイッチ・アダプタを介して前記出力ポートから送信される前記データ・パケットは、前記許可情報ＧＲを含む、前記（１）乃至（５）のいずれかに記載のスイッチング装置。
（７）前記出力バッファは前記データ・パケットのアドレスを持つ共通出力バッファであり、前記スイッチング装置は、入力ルータ、出力ルータ、該共通出力バッファの前記アドレスの使用を管理するアドレス・マネージャ、及び該共通出力バッファで前記データ・パケットをどのアドレスに格納するかについての順序情報を、該出力ルータに接続された出力キューに入力する出力キュー・マネージャを含む、前記（１）乃至（６）のいずれかに記載のスイッチング装置。
（８）前記出力キューは、前記順序情報に対して、合計で前記共通出力バッファのアドレスより多いキューイング場所を与える、前記（７）記載のスイッチング装置。
（９）数個の入力ポートと数個の出力ポートを持つスイッチング装置を通してデータ・パケットのルーティングを制御する方法であって、該入力ポートはそれぞれ対応するスイッチ・アダプタに接続でき、少なくとも１つのスイッチ・コントローラで該入力ポートから該出力ポートへ着信するデータ・パケットのルーティングを制御し、
各出力ポートに対して、前記スイッチ・アダプタが前記データ・パケットを前記出力ポートへ送信することを許可されているかどうかを通知する許可情報ＧＲを生成するステップと、
前記データ・パケットの送信が許可されていないにもかかわらず前記入力ポートで受信されたデータ・パケットを非承認とマークするステップと、
を含む、方法。
（１０）前記データ・パケットの送信が許可されていないにもかかわらず前記入力ポートに届いたデータ・パケットは、不許可を通知する許可情報が生成された時間の後、既定の時間間隔が過ぎるまでマークされない、前記（９）記載の方法。
（１１）前記許可情報ＧＲは、前記出力ポートでの出力バッファのバッファ占有度の、第１しきい値或いは第２しきい値に対する関係によって決定される、前記（９）または（１０）に記載の方法。
（１２）前記許可情報ＧＲは前記出力ポート当たりの許可ビットの形で生成される、前記（９）乃至（１１）のいずれかに記載の方法。
（１３）前記スイッチング装置の全ての出力ポートの許可情報ＧＲは、好適にはビットマップの形で各スイッチ・アダプタに通知される、前記（９）乃至（１２）のいずれかに記載の方法。
（１４）前記許可情報ＧＲは、前記データ・パケットに、好適には前記スイッチ・アダプタを介して前記出力ポートから送信されるヘッダに挿入することによって、前記スイッチ・アダプタに通知される、前記（９）乃至（１３）のいずれかに記載の方法。
【図面の簡単な説明】
【図１】仮想出力キューを持つクロスバ・スイッチの構成を示す図である。
【図２】データ・パケット・アクセス・コントローラの実施例を示す図である。
【図３】単一出力バッファを持つルータ・ベースのスイッチ構成を示す図である。
【図４】共有出力バッファを持つルータ・ベースのスイッチ構成を示す図である。
【符号の説明】
１０  スイッチング装置
１１  入力バッファ
１２  入力キュー
１３  入力ルータ
１４  出力ルータ
１６  アドレス・マネージャ
１７  出力キュー・マネージャ
１８  出力キュー
１９  スイッチ・アダプタ
２０  入力ポート
２５  共通制御ユニット（コントローラ）
２６  セレクタ
２７  配布者
３０  出力ポート
３５  出力バッファ
４０  データ・パケット・アクセス・コントローラ
４１  アクセス・ゲート
４２  カウンタ
５０  アダプタ入力ライン
６０  輻輳コントローラ
【図１】
0003606565.tif 000002
【図２】
0003606565.tif 000003
【図３】
0003606565.tif 000004
【図４】
0003606565.tif 000005