(57)【特許請求の範囲】
【請求項１】
複数の入力ポートのそれぞれに用意され、入力されるそれぞれのパケットを宛先の出力ポートに対応した格納場所に順に格納するバッファメモリと、
それぞれの入力ポートのバッファメモリに格納されたパケットについての転送要求の有無を表わした情報を、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせからなるＭ×Ｍのマトリックス状に配置された複数のグループのうちの該当する入力ポートと出力ポートに対応した１つずつのグループに割り振るグループ別割振り手段と、
このグループ別割振り手段によって割り振られたそれぞれのグループの中で、前記Ｍ×Ｍのマトリックス上で行および列方向に競合が生じないＭ個のグループを選択したときのこれらのグループを前記Ｍ×Ｍのマトリックスの行方向と列方向の２方向にパイプライン処理して前記固定長セルの転送要求を表わした情報の予約をグループ単位で行う予約処理手段と、
この予約処理手段の予約処理結果に対応させて前記バッファメモリに格納されたパケットの入出力を設定して転送要求のあった前記パケットの転送を行うスイッチ
とを具備することを特徴とするパケット交換装置。
【請求項２】
複数の入力ポートに入力されるそれぞれのパケットを所定の固定長セルに分解する固定長セル分解手段と、
それぞれの入力ポートに対応して配置され、この固定長セル分解手段によって分解されたそれぞれのセルを宛先の出力ポートに対応した格納場所に順に格納する論理キューと、
それぞれの入力ポートの論理キューに格納された固定長セルについての転送要求の有無を表わした情報を、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせからなるＭ×Ｍのマトリックス状に配置された複数のグループのうちの該当する入力ポートと出力ポートに対応した１つずつのグループに割り振るグループ別割振り手段と、
このグループ別割振り手段によって割り振られたそれぞれのグループの中で、前記Ｍ×Ｍのマトリックス上で行および列方向に競合が生じないＭ個のグループを選択したときのこれらのグループを前記Ｍ×Ｍのマトリックスの行方向と列方向の２方向にパイプライン処理して前記固定長セルの転送要求を表わした情報の予約をグループ単位で行う予約処理手段と、
この予約処理手段の予約処理結果に対応させて前記論理キューに格納された固定長セルの入出力を設定して転送要求のあった前記固定長セルの転送を行うスイッチと、
このスイッチによってそれぞれの出力側に得られた固定長セルをパケットに組み立てるパケット組立手段
とを具備することを特徴とするパケット交換装置。
【請求項３】
前記予約処理手段は、１つのグループの予約から次のグループへの予約結果の転送までを１つのタイムスロットで行うことを特徴とする請求項１または請求項２記載のパケット交換装置。
【請求項４】
予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせは、ダイアゴナル・サービス・パタンであり、そのＭ個の組み合わせからなるダイアゴナル・モジュール群を用いてパイプライン処理が行われることを特徴とする請求項１または請求項２記載のパケット交換装置。
【請求項５】
前記予約処理手段は、予め定めた未来の所定のタイムスロットに対して、前記ダイアゴナル・サービス・パタンに該当するグループから該当する出力ポートに対して順次転送要求予約を行うことを特徴とする請求項４記載のパケット交換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパケットスイッチを備えたパケット交換装置に係わり、特に高速でスイッチ動作を行うことのできるパケット交換装置に関する。
【０００２】
【従来の技術】
インターネットが爆発的に普及している。これに伴って公衆通信インフラストラクチャの急激な変革が求められている。また、インターネットの枠組み自体を通信インフラストラクチャとして活用しようとする機運が高まっている。インターネットがこのような役割を果たすためには、サービスノードとしてのルータにデータ転送処理の高速化および高機能化が求められている。
【０００３】
現在の高速ルータでは、ハードウェアによるＩＰ（ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）アドレス検索と、セルフルーティングによる高速スイッチファブリックを用いたデータ転送処理が適用されている。
【０００４】
高速大容量ルータのスイッチを実現するために、ＶＯＱ（Ｖｉｒｔｕａｌ  Ｏｕｔｐｕｔ  Ｑｕｅｕｉｎｇ）を使用した入力バッファスイッチが広く使用されている。従来のＦＩＦＯ（ｆｉｒｓｔ−ｉｎ  ｆｉｒｓｔ−ｏｕｔ：先入れ先出し）式の入力バッファ型スイッチではスループット低下の問題があったが、これを解決したノンブロッキングスイッチとして高速化が可能となっている。
【０００５】
図１５は、ＶＯＱを使用した入力バッファ型スイッチの構成を表わしたものである。このスイッチ１００は、第１〜第Ｎの入力インタフェース部１０１１〜１０１Ｎと、第１〜第Ｎの出力インタフェース部１０２１〜１０２Ｎと、これらの間に配置されたスイッチ部１０３によって構成されている。
【０００６】
第１〜第Ｎの出力インタフェース部１０２１〜１０２Ｎのそれぞれは、宛先解決エンジン部（ＦＥ）１０４、パケット生成分解部（ＰＡＤ）１０５およびＶＯＱ１０６から構成されている。ここで、宛先解決エンジン部１０４は図示しない伝送路から送られてきたパケット（図示せず）の宛先の解決を行う。パケット生成分解部１０５は、このパケットスイッチの転送単位の固定長セルに分解する。分解されたそれぞれのセルは、宛先に応じてＶＯＱ１０６内の出力インタフェース部１０２１〜１０２Ｎに対応したバッファに格納される。
【０００７】
スイッチ部１０３は、クロスポイントスイッチ１０８とスイッチスケジューラ１０９とによって構成されている。ここでスイッチスケジューラ１０９は、第１〜第Ｎの入力インタフェース部１０１１〜１０１ＮのＶＯＱ１０６から得られた情報を基にしてこれら第１〜第Ｎの入力インタフェース部１０１１〜１０１Ｎのセル転送要求を調停して、それぞれのＶＯＱ１０６にセル転送許可を与える。また、クロスポイントスイッチ１０８を制御して、ＶＯＱ１０６から出力される調停後のセルを出力インタフェース部１０２１〜１０２Ｎのうちの対応する宛先へスイッチングさせるようになっている。
【０００８】
第１〜第Ｎの出力インタフェース部１０２１〜１０２Ｎは、ＶＩＱ（Ｖｉｒｔｕａｌ  Ｉｎｐｕｔ  Ｑｕｅｕｉｎｇ）１１１とパケット組立部（ＰＡＤ）１１２から構成されている。スイッチ部１０３から送られてきたセルは、第１〜第Ｎの出力インタフェース部１０２１〜１０２Ｎにおける対応する出力インタフェース部のＶＩＱ１１１が受け取り、パケット組立部１１２で元のパケットに組み立てる。そして図示しない伝送路に出力することになる。
【０００９】
さて、最近のパケット交換装置では、図１５に示した入力バッファ型スイッチのようなＮ入力およびＮ出力（Ｎは２以上の整数）のクロスポイントスイッチ（クロスポイントスイッチ１０８参照）が使用されることが多い。この場合には、入力部にＮ個の出力それぞれに対応した論理的待ち行列（論理キュー）（ＶＯＱ１０６参照）を備えると共に、各論理キューから発せられるパケット転送要求を調停して、クロスポイントスイッチの接続の制御を行うスケジューラ（スイッチスケジューラ１０９参照）が必要となる。
【００１０】
複数の待ち行列を有するパケット交換装置でこのようなスケジューリングを行う技術は、特開平６−２３３３３７号公報や特開平９−３２６８２８号公報に開示がある。このうち特開平６−２３３３３７号公報に記載された技術では、入力ポートを表わす各行と、出力ポートを表わす各列とを備えた要求マトリックスを使用している。マトリックスの所与の行および列のビットが、対応する入力ポートから出力ポートへの接続要求を表わしているものとする。この技術では、マトリックス上で競合が生じないＮ個の要素を選択して、これをダイアゴナル・サービス・パタンとしている。
【００１１】
ダイアゴナル・サービス・パタンの典型的な例は対角要素の集合である。マトリックス全体が重複なくすべて覆われるようにＮ個ずつの異なるダイアゴナル・サービス・パタンを決定し、スケジューリングでは図１５で説明した分解後のパケットスイッチ転送単位の固定長セルの処理単位としての１タイムスロット内にダイアゴナル・サービス・パタンを順次、接続要求マトリックス上で適用して要求を処理していく。開始のダイアゴナル・サービス・パタンは、タイムスロットごとにラウンドロビンで適用するようにしている。
【００１２】
一方、特開平９−３２６８２８号公報に記載されたスケジューリングの技術では、既に説明した特開平６−２３３３３７号公報に記載された技術と同様にそれぞれの入力からそれぞれの出力への転送要求をマトリックス上に並べ、対角線方向に検索と割り当てを行うようにしている。この技術では、タイムスロットごとに入力と出力をそれぞれランダムに並び替えるようにしている。これにより各入力側のパケットの処理の公平性が図られている。
【００１３】
ところが、以上簡単に説明した従来のスケジューリングの手法では、入力ポートおよび出力ポートの数が増大すると、１タイムスロット内に行うべきデータの処理量がポート数の二乗に比例して増大し、このために高速なスケジューリングが困難になるという問題があった。特に最近ではインターネットにおけるデータの伝送量が増大するだけでなくデータ伝送の高速化が強く求められており、いままでと同様の入出力ポートの数であったとしても、より高速のスケジューリングが求められている。そこで、この問題を解決するためにスケジューリングをパイプライン化する技術が登場している。
【００１４】
図１６は、この技術を使用したスイッチ部およびその周辺の構成を示したものである。なお、この図１６に示した部分は、図１５におけるスイッチ部１０３とその周辺に対応する部分である。スイッチ部１２１は、スイッチ素子としてのＮ×Ｎのクロスポイントスイッチ１２２と、スイッチスケジューラ１２３によって構成されている。このスイッチ部１２１にはＮ本の入力ライン１２４１、１２４２、……１２４Ｎと接続された入力ポートと、同じくＮ本の出力ライン１２５１、１２５２、……１２５Ｎと接続された出力ポートが配置されている。各入力ポートは図１５で示したＶＯＱ１０６と同様のＶＯＱ１２６を備えている。それぞれの入力ポートのＶＯＱ１２６にはスイッチスケジューラ１２３内の分散スケジューリング・モジュール１２７１、１２７２、……１２７Ｎが対応して配置されている。
【００１５】
スイッチスケジューラ１２３はタイムスロット単位に入力ポートから出力ポートごとの接続要求情報（Ｒｅｑｕｅｓｔ）を受信して、これを基にしてこれらの間の接続許可情報（Ｇｒａｎｔ）を決定する。スイッチスケジューラ１２３はまた接続許可情報を基にして入力ポートと出力ポートの接続情報（ＭＳＥＬ）を生成して、クロスポイントスイッチ１２２に通知して、クロスポイントスイッチ１２２の入出力の接続を設定する。また、スイッチスケジューラ１２３は接続許可情報を元にして、各入力ポートがどの出力ポートへのデータ転送を許可されているかを示す転送許可情報（ＤＳＴＭＳＧ）を作成して、各入力ポートに対して転送許可情報を通知する。入力ポートは転送許可情報にしたがって、データをクロスポイントスイッチ１２２へ出力して、出力ポート側がデータを受信することでスイッチングが完了するようになっている。
【００１６】
このようなスイッチスケジューラ１２３の機能は、Ｎ×Ｎの接続要求情報からＮ×Ｎの接続許可情報を生成することである。接続許可情報生成するにあたって、各分散スケジューリング・モジュール１２７１、１２７２、……１２７Ｎは、個々の入力ポートに対する出力ポートへの接続の可否を決定する。
【００１７】
ところで、１９９９年にラウンド・ロビン・グリーディ・スケジューリング（ＲＲＧＳ）アルゴリズムが発表された。スイッチスケジューラ１２３はこのＲＲＧＳアルゴリズムを用いている。ＲＲＧＳアルゴリズムを用いたスイッチスケジューラ１２３は、分散スケジューリング・モジュール１２７１、１２７２、……１２７Ｎがリング状に接続されている。そして、これらの隣接したモジュール間でメッセージの受け渡しが行われる。ＲＲＧＳアルゴリズムでは、各分散スケジューリング・モジュール１２７１、１２７２、……１２７Ｎが、対象となるタイムスロットの予約（接続許可決定）を行い、その結果情報を次の分散スケジューリング・モジュールに渡すようにしている。
【００１８】
ＲＲＧＳアルゴリズムを使用したスケジューラでは、分散スケジューリング・モジュールがリング状に接続され、隣接した分散スケジューリング・モジュール間でメッセージ受渡しを行う。ＲＲＧＳアルゴリズムでは、各分散スケジューリング・モジュールが対象となるタイムスロットの予約（接続許可決定）を行い、結果の情報を次の分散スケジューリング・モジュールに渡す。メッセージ受渡し速度要求条件を緩和するために、ＲＲＧＳはパイプライン機能を導入している。あるタイムスロットの予約過程は、各分散スケジューリング・モジュール間でメッセージ受渡しが一周することにより完了する。また、ＲＲＧＳアルゴリズムでは、Ｎ個の分散スケジューリング・モジュールが、現在のスロットの少なくともＮスロット先のタイムスロットに関して予約する。更に、ＲＲＧＳアルゴリズムは、Ｎ個のタイムスロットに対する予約過程を１タイムスロットずつ位相をずらしながら同時に進行させていく。
【００１９】
一方、ＲＲＧＳアルゴリズムの変形として、複数のタイムスロットに対する予約過程をそれぞれ異なる分散スケジュールモジュールから同時に開始し、進行させ、同時に終了させるアルゴリズムも考えられる。これをフレーム化ＲＲＧＳと呼ぶこととする。
【００２０】
図１７はＲＲＧＳおよびフレーム化ＲＲＧＳを使用する分散型スケジューラの構成を示したものである。ここでは一例としてポート数Ｎが“４”の場合を示している。スイッチスケジューラ１４１は分散型スケジューリングのための第１〜第４のインプットモジュール（Ｉｎｐｕｔ  Ｍｏｄｕｌｅ；ＩＭ）１５１１〜１５１４から構成される。インプットモジュール１５１１〜１５１４には、フレームの先頭を示すフレームパルス（ＦＰ）１５２が入力される。各インプットモジュール１５１１〜１５１４はフレームパルス１５２に同期して動作する。
【００２１】
各インプットモジュール１５１１〜１５１４にはそれぞれのインプットモジュールを識別するための物理番号１５５１〜１５５４が設定される。第１〜第４の各入力ポートからそれぞれ対応する接続要求情報１５６１〜１５６４がインプットモジュール１５１１〜１５１４に入力されると、これらのインプットモジュール１５１１〜１５１４は接続要求の調停を行い、その結果として予約（接続許可）を決定し、接続許可情報１５７１〜１５７４を出力するようになっている。
【００２２】
ＲＲＧＳおよびフレーム化ＲＲＧＳでは、隣接分散スケジューリング・モジュール間で接続許可情報から入力ポート情報を縮退させた情報（入力ポート情報を参照して作成した情報）としての「出力ポート予約済情報」を受け渡すことにより、出力ポートに対する接続要求の競合を回避している。例えば、第３のインプットモジュール１５１３は、前段の第２のインプットモジュール１５１２から出力ポート予約済情報１６１２を出力ポート予約済情報１６２３として受信して接続要求の調停に使用する。接続許可情報決定後、出力ポート予約済情報１６１３を次段の第４のインプットモジュール１５１４に通知するようになっている。
【００２３】
図１８はフレーム化ＲＲＧＳの一般的な動作例を示したものである。図１７と共にフレーム化ＲＲＧＳの動作を説明する。ここでは、４×４の入出力ポートを有するスイッチの動作となる。
【００２４】
図１７に示した出力ポート予約済み情報１６１の転送方向は、インプットモジュール１５１の番号が増加する方向であり、この例では第４のインプットモジュール１５１４まで転送したら再び第１のインプットモジュール１５１１に戻ってここから第２のインプットモジュール１５１２、第３のインプットモジュール１５１３、……という順序で転送が行われる。
【００２５】
接続要求情報１５６等の各情報の極性は次のように定義される。まず、第１〜第４の入力ポートの接続要求１５６１〜１５６４は、信号“１”が要求ありを示し、信号“０”が要求なしを示す。第１〜第４の入力ポートの接続許可情報（予約情報）１５７１〜１５７４は、信号“１”が許可（予約済み）を示し、信号“０”が禁止（未予約）を示す。出力ポート予約済み情報１６１１〜１６１４は、信号“１”が予約済みを示し、信号“０”が未予約を示す。
【００２６】
またこの例では４タイムスロットが１フレームを構成しており、フレームパルス１５２は４タイムスロット周期で入力される。図１８では、第１〜第４の各タイムスロットＴ１〜Ｔ４における動作に分けて示している。
【００２７】
まず、第１の各タイムスロットＴ１では、図１７に示した第１〜第４のインプットモジュール１５１１〜１５１４にフレームパルス１５２が入力されると、第１のインプットモジュール１５１１が次フレームのタイムスロットＴ１における第１の入力ポートの接続要求情報を最初に決定する。最初の決定であるので、出力ポート予約済情報１６２１は、第１の出力ポートから第４の出力ポートまで順番に（０，０，０，０）となっている。第１の入力ポートの接続要求１５６１が第１の出力ポートから第４の出力ポートまで順番に（０，１，０，１）であるとする。第１のインプットモジュール１５１１が第２および第４の出力ポートの中から第２の出力ポートを選択したとする。この場合第１のインプットモジュール１５１１は次フレームのタイムスロットＴ１の接続許可情報１５７１として第２の出力ポートを記憶し、出力ポート予約済情報１６１１を（０，１，０，０）として第２のインプットモジュール１５１２に通知する。
【００２８】
続けてタイムスロットＴ２で第２のインプットモジュール１５１２が次フレームのタイムスロットＴ２に対する第２の入力ポートの接続許可情報１５７２を決定する。第２のインプットモジュール１５１２は出力ポート予約済情報１６２２（０，１，０，０）を受信する。第２の入力ポートの接続要求１５６２が（０，１，１，１）であるとすると、第２の出力ポートに対する割当は行えない。このため、第２のインプットモジュール１５１２は第２の出力ポートに対する接続要求は拒否し、第３または第４の出力ポートの接続要求から許可する出力ポートを選択する。ここで第３の出力ポートを選択したとすると、第２のインプットモジュール１５１２は接続許可情報１５７２として第３の出力ポートを記憶し、出力ポート予約済情報１６１２を（０，１，１，０）として第３のインプットモジュール１５１３に通知する。
【００２９】
以下、タイムスロットＴ３で第３のインプットモジュール１５１３が、またタイムスロットＴ４で第４のインプットモジュール１５１４が次フレームのタイムスロットＴ１の接続許可情報１５７３、１５７４を決定する。タイムスロットＴ４が終了した時点で各モジュールは次フレームのタイムスロットＴ１における接続許可情報１５７４を有しているので、次フレームのタイムスロットＴ１における４×４の接続許可情報が確定することとなる。
【００３０】
以上説明した処理手順では、タイムスロットＴ１で第１のインプットモジュール１５１１以外のモジュールがそれぞれ異なるタイムスロットに対する「予約」を開始するようになっている。例えば、第２のインプットモジュール１５１２は次フレームのタイムスロットＴ４に、第３のインプットモジュール１５１３は次フレームのタイムスロットＴ３に、また第４のインプットモジュール１５１４は次フレームのタイムスロットＴ２に対する「予約」を開始する。
【００３１】
各モジュールは当該タイムスロットにて各予約タイムスロットの処理を行い、該当する予約タイムスロットの出力ポート予約情報１６１をそれぞれ次段のインプットモジュールに転送することにより、各インプットモジュール１５１１〜１５１４とも未動作の時間がないようにスケジューリング処理を実行することができる。タイムスロットＴ４が終了した時点で、各モジュールは次フレームのタイムスロットＴ１からＴ４までの接続許可情報１５７を有している。従って、次フレームのタイムスロットＴ１からＴ４までの４×４の接続許可情報１５７１〜１５７４が確定することとなる。
【００３２】
図１９は各モジュールの予約（接続許可決定）順序を示したものである。この図は上の例で説明した４×４スケジューラの場合を示している。横軸は時間であり４タイムスロットで１つのフレームを構成している。縦軸にはモジュールの物理番号１５５１〜１５５４が並べられている。出力ポート予約済情報の転送方向は、インプットモジュールの物理番号で示すと、物理番号１５５１、物理番号１５５２、物理番号１５５３、物理番号１５５４、物理番号１５５１、物理番号１５５２、……の順序となる。マトリックス内の数字は予約をする次フレーム内のタイムスロットの番号を指す。
【００３３】
図１９に示されているように、物理番号１５５１のインプットモジュールは、フレームの先頭（タイムスロットＴ１）で次フレームのタイムスロットＴ１の予約から開始する。以下同様に、物理番号１５５２のインプットモジュールはタイムスロットＴ４の予約から開始し、物理番号１５５３のインプットモジュールはタイムスロットＴ３の予約から開始する。物理番号１５５４のインプットモジュールはタイムスロットＴ２の予約から開始する。
【００３４】
【発明が解決しようとする課題】
【００３５】
以上説明したパケットスイッチでは、入力ポート側をパイプライン化することで、どの出力ラインに出力するかの調停をスイッチスケジューラ１２３（図１６参照）で調停している。この結果、たとえば図１７に示す第１のインプットモジュール１５１１が、図１９に示したように第１のタイムスロットＴ１に出力ポートの予約を開始し、以後、第２のインプットモジュール１５１２以降のインプットモジュールに対して順次各タイムスロットごとに出力ポート予約済み情報１６１を受け渡していくとき、第２のインプットモジュール１５１２は第２のタイムスロットＴ２に出力ポートの予約を開始し、以後、第３のインプットモジュール１５１３以降のインプットモジュールに対して順次各タイムスロットごとに出力ポート予約済み情報１６１を受け渡していくことになる。第３のインプットモジュール１５１３および第４のインプットモジュール１５１４も、それぞれ更に１タイムスロットあるいは２タイムスロットずらした点から出力ポートの予約を開始し、以降のインプットモジュールに対して順次各タイムスロットごとに出力ポート予約済み情報１６１を受け渡していく。このような並行的な処理によって、パイプライン化しなかった場合と比べると、入力ポートおよび出力ポートの増大に対して処理の高速化が可能となる。
【００３６】
以上、特願平１１−３５５３８２号記載の技術について詳細に説明したが、同様の試みはたとえば特願平１１−２３４１５８号でも行われている。
【００３７】
しかしながら、このような入力ポート側のパイプライン化処理だけでは入力ポートと出力ポートの増加に伴い出力ポート側について調停を行わなければならないデータ処理量が出力ポートの数の増加に比例して増加する。転送するデータの大容量化が顕著となっている現在、データ伝送の高速化が大きな社会的要請となっており、パケットスイッチの転送単位としての固定長セルのスイッチングに遅延が生じることは避けなければならず、むしろ処理速度の高速化が急務となっている。
【００３８】
そこで本発明の目的は、入力ポート側のパイプライン化処理を実現した場合よりも更に高速処理が可能なパケット交換装置を提供することにある。
【００３９】
【課題を解決するための手段】
請求項１記載の発明では、（イ）複数の入力ポートのそれぞれに用意され、入力されるそれぞれのパケットを宛先の出力ポートに対応した格納場所に順に格納するバッファメモリと、（ロ）それぞれの入力ポートのバッファメモリに格納されたパケットについての転送要求の有無を表わした情報を、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせからなるＭ×Ｍのマトリックス状に配置された複数のグループのうちの該当する入力ポートと出力ポートに対応した１つずつのグループに割り振るグループ別割振り手段と、（ハ）このグループ別割振り手段によって割り振られたそれぞれのグループの中で、Ｍ×Ｍのマトリックス上で行および列方向に競合が生じないＭ個のグループを選択したときのこれらのグループをＭ×Ｍのマトリックスの行方向と列方向の２方向にパイプライン処理して固定長セルの転送要求を表わした情報の予約をグループ単位で行う予約処理手段と、（ニ）この予約処理手段の予約処理結果に対応させてバッファメモリに格納されたパケットの入出力を設定して転送要求のあったパケットの転送を行うスイッチとをパケット交換装置に具備させる。
【００４０】
すなわち請求項１記載の発明では、パケットの送られてくる入力ポートとこれらのパケットの出力先としての出力ポートをＭ個ずつに分けてなるＭ×Ｍのマトリックス状に配置されたグループにそれぞれのパケットの入出力の関係の情報としての転送要求の有無を表わした情報を割り振っておく。これらのグループは、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせからなっているので、マトリックスの行方向にも列方向にもパイプライン処理が可能である。そこで、予約処理手段は両方向にパイプライン処理を行って、転送要求の予約と結果の受け渡しをグループごとに受け継いでいく。スイッチはこのようにして得られた予約処理結果に対応させてバッファメモリに格納されたパケットの入出力を設定して転送要求のあったパケットをそれぞれの宛先としての出力ポートに転送させる。このように請求項１記載の発明ではマトリックスの行方向と列方向、すなわち入力ポート側と出力ポート側の双方にパイプライン処理を行うことで、パケットの転送処理の高速化を可能にしている。したがって、ポートの数の増大に十分対応することができる。
【００４１】
請求項２記載の発明では、（イ）複数の入力ポートに入力されるそれぞれのパケットを所定の固定長セルに分解する固定長セル分解手段と、（ロ）それぞれの入力ポートに対応して配置され、この固定長セル分解手段によって分解されたそれぞれのセルを宛先の出力ポートに対応した格納場所に順に格納する論理キューと、（ハ）それぞれの入力ポートの論理キューに格納された固定長セルについての転送要求の有無を表わした情報を、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせからなるＭ×Ｍのマトリックス状に配置された複数のグループのうちの該当する入力ポートと出力ポートに対応した１つずつのグループに割り振るグループ別割振り手段と、（ニ）このグループ別割振り手段によって割り振られたそれぞれのグループの中で、Ｍ×Ｍのマトリックス上で行および列方向に競合が生じないＭ個のグループを選択したときのこれらのグループをＭ×Ｍのマトリックスの行方向と列方向の２方向にパイプライン処理して固定長セルの転送要求を表わした情報の予約をグループ単位で行う予約処理手段と、（ホ）この予約処理手段の予約処理結果に対応させて論理キューに格納された固定長セルの入出力を設定して転送要求のあった固定長セルの転送を行うスイッチと、（へ）このスイッチによってそれぞれの出力側に得られた固定長セルをパケットに組み立てるパケット組立手段とをパケット交換装置に具備させる。
【００４２】
すなわち請求項２記載の発明では、スイッチの処理単位としての所定の固定長セルにパケットを分解する一方、パケットの送られてくる入力ポートとこれらのパケットの分解後の固定長セルの出力先としての出力ポートをＭ個ずつに分けてなるＭ×Ｍのマトリックス状に配置されたグループにそれぞれの固定長セルの入出力の関係の情報としての転送要求の有無を表わした情報を割り振っておく。これらのグループは、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせからなっているので、マトリックスの行方向にも列方向にもパイプライン処理が可能である。そこで、予約処理手段は両方向にパイプライン処理を行って、固定長セルごとの転送要求の予約と結果の受け渡しをグループごとに受け継いでいく。スイッチはこのようにして得られた予約処理結果に対応させてバッファメモリに格納された固定長セルの入出力を設定して転送要求のあった固定長セルをそれぞれの宛先としての出力ポートに転送させる。このように請求項２記載の発明ではマトリックスの行方向と列方向、すなわち入力ポート側と出力ポート側の双方にパイプライン処理を行うことで、固定長セルの転送処理の高速化を可能にしている。したがって、ポートの数の増大に十分対応することができる。しかも、パケットを固定長セルに分解して処理するので、可変長のパケットについても高速処理が可能になる。
【００４３】
請求項３記載の発明では、請求項１または請求項２記載のパケット交換装置で、予約処理手段は、１つのグループの予約から次のグループへの予約結果の転送までを１つのタイムスロットで行うことを特徴としている。
【００４４】
すなわち請求項３記載の発明では、予約処理手段が、１つのグループの予約から次のグループへの予約結果の転送までを１つのタイムスロットで処理することにしているので、マトリックスの行方向にも列方向にも処理を行う本発明で全体としての処理が規則正しく進行することになる。
【００４５】
請求項４記載の発明では、請求項１または請求項２記載のパケット交換装置で、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせは、ダイアゴナル・サービス・パタンであり、そのＭ個の組み合わせからなるダイアゴナル・モジュール群を用いてパイプライン処理が行われることを特徴としている。
【００４６】
すなわち請求項４記載の発明では、Ｍ×Ｍのグループに対してＭ個からなるダイアゴナル・サービス・パタンをＭ通り用意することで、いずれのタイムスロットでも１組のダイアゴナル・サービス・パタンによる予約処理が開始するので、効率的な予約処理が可能になる。また、Ｍ×Ｍ個の全グループがダイアゴナル・サービス・パタンの構成となるので、予約処理の優先度が結果的に均等に割り振られることになり、入力ポートによって優劣が生じるといった問題を生じさせない。
【００４７】
請求項５記載の発明では、請求項４記載のパケット交換装置で、予約処理手段は、予め定めた未来の所定のタイムスロットに対して、ダイアゴナル・サービス・パタンに該当するグループから該当する出力ポートに対して順次転送要求予約を行うことを特徴としている。
【００４８】
すなわち請求項５記載の発明では、予め定めた未来の所定のタイムスロットに対して、ダイアゴナル・サービス・パタンに該当するグループを起点として予約を行うことにしているので、これら未来のタイムスロットを重複しないように割り当てることで、効率的な処理を実現することができる。また、これらのグループを必要な個数連結して順次予約処理を実行させることで、スケーラブルなスケジューラを実現することができる。
【００４９】
【発明の実施の形態】
【００５０】
【実施例】
以下実施例につき本発明を詳細に説明する。
【００５１】
図１は本発明の一実施例におけるパケット交換装置の入力バッファ型スイッチのスイッチ部およびその周辺の構成を表わしたものである。入力バッファ型スイッチ全体の構成は、先に示した図１５と同様である。本実施例のスイッチ部２０１は、スイッチ素子としてのＮ×Ｎのクロスポイントスイッチ２０２と、スイッチスケジューラ２０３とによって構成されている。スイッチ部２０１にはＮ本の入力ライン２０４１、２０４２、……２０４Ｎと接続された入力ポートと、同じくＮ本の出力ライン２０５１、２０５２、……２０５Ｎと接続された出力ポートが配置されている。各入力ポートは図１５で示したＶＯＱ１０６と同様のＶＯＱ２０６１、２０６２、……２０６Ｎを備えている。
【００５２】
転送対象のパケットは、図１５に示したパケット生成分解部（ＰＡＤ）１０５と同一の回路部分でクロスポイントスイッチ２０２の転送単位の固定長セルに分解されている。この固定長セル単位での転送時間を１タイムスロットと呼んでいる。Ｎ本の入力ライン２０４１、２０４２、……２０４Ｎは、Ｍ個（ここで数値Ｍは２以上の整数であり、かつ整数Ｎの約数。）のグループ２１１に均等に分割されている。Ｎ本の出力ライン２０５１、２０５２、……２０５Ｎも同様にＭ個のグループ２１２に均等に分割されている。これらＭ個の入力グループ２１１とＭ個の出力グループ２１２の組み合わせは、Ｍ２となる。スイッチスケジューラ２０３は、これらＭ２の組み合わせに対してスケジューリング・モジュールを用意している。
【００５３】
図２は、これらＭ２個のスケジューリング・モジュールとその働きを示したものである。スケジューリング・モジュール２２１１、……２２１ＭＭは、この図２で横軸方向すなわち図１に示す出力ライン２０５１、２０５２、……２０５Ｎの方向にＭ個ずつの組（２２１１、２２１２、……２２１Ｍ）、（２２１Ｍ＋１、２２１Ｍ＋２、……２２１２Ｍ）、……を、縦軸方向すなわち図１で入力ライン２０４１、２０４２、……２０４Ｎの方向にＭ回繰り返して配置したものと等しい。この場合、最後の組は図２で一番下に示した組（２２１Ｍ（Ｍ−１）＋１、２２１Ｍ（Ｍ−１）＋２、……２２１ＭＭ）となる。
【００５４】
それぞれのスケジューリング・モジュール２２１１、……２２１ＭＭは、ＶＯＱ２０６１、２０６２、……２０６Ｎのうちの対応するものからのパケット（固定長セル）転送要求に基づいて、予め定められた未来のタイムスロットにおける（Ｎ／Ｍ）×（Ｎ／Ｍ）通りのスケジューリングを実行する。そして、それぞれのスケジューリングの結果として予約済み出力ポート情報２３１１、２３１２、……２３１Ｍと、予約済み入力ポート情報２３２１、２３２２、……２３２Ｍとを、それぞれ予め定められた次段のスケジューリング・モジュールに転送するようになっている。
【００５５】
この図２に示した例では、パイプライン処理で情報が一巡するためのこのような転送処理を、図で横方向に隣接するそれぞれのスケジューリング・モジュール２２１の間で一巡させる処理と、図で縦方向に隣接するそれぞれのスケジューリング・モジュール２２１の間で一巡させる処理について示している。このような処理におけるスケジューリング・モジュール２２１同士の接続順序は、これら隣接するもの同士に限る必要はない。すなわち、横方向あるいは縦方向のそれぞれについて、情報が一巡するような任意の順序で各スケジューリング・モジュール２２１の接続順序を定めることができる。この接続順序は、後に説明するダイアゴナル・モジュール群の選び方によって規定されることになる。スケジューリングおよび情報転送の処理は、それぞれ１タイムスロット以内に実行される。次段のスケジューリング・モジュールでは、対応する論理キューからのパケット転送要求と、前段からの予約済み入出力ポート情報に基づいて、衝突を回避するような予約が行われる。
【００５６】
図３は、ＶＯＱの１つを拡大して図解したものである。ＶＯＱ２０６１、２０６２、……２０６Ｎはそれぞれ同一構成となっているので、ここでは第１のＶＯＱ２０６１を例示的に示すものとする。第１のＶＯＱ２０６１は、図１に示した第１の入力ライン２０４１に対応しており、図１５で示したパケット生成分解部（ＰＡＤ）１０５を経た固定長セル２４１をＮ本の出力ライン２０５１、２０５２、……２０５Ｎに対応させた論理キュー（バッファメモリ）２４２１、２４２２、……２４２Ｎに格納するようになっている。この図で各論理キュー２４２１、２４２２、……２４２Ｎによって固定長セル２４１の格納された部分の長さが異なって表示されているのは、格納された固定長セル２４１の数がそれぞれ異なっているためである。
【００５７】
図３に示した第１のＶＯＱ２０６１は、全部でＭのグループに分けられている。図２では全部でＭ２個のスケジューリング・モジュール２２１１、……２２１ＭＭを表わしたが、これらは出力ライン２０５１、２０５２、……２０５Ｎの方向にＭグループに分かれている。図３ではこれと同様に第１のＶＯＱ２０６１の各論理キュー２４２１、２４２２、……２４２ＮをＭグループに分けている。図３で太線で示した第１のグループ２４４１は、第１〜第Ｎ／Ｍの論理キュー２４２１、２４２２、……２４２Ｎ／Ｍに対応している。第２のグループ２４４２は、第Ｎ／Ｍ＋１〜第２Ｎ／Ｍの論理キュー２４２Ｎ／Ｍ＋１、２４２Ｎ／Ｍ＋２、……２４２２Ｎ／Ｍに対応している。以下同様にして、第Ｍのグループ２４４Ｍは、第Ｎ−Ｎ／Ｍ＋１〜第Ｎの論理キュー２４２Ｎ−Ｎ／Ｍ＋１、２４２Ｎ−Ｎ／Ｍ＋２、……２４２Ｎに対応している。
【００５８】
以上のような構成のパケットスイッチの動作を次に説明する。ただし、説明を分かりやすくするために、以上説明した数値Ｎが“１６”で、数値Ｍが“４”という比較的小さな値の場合の例を挙げる。これは、１６×１６のクロスポイントスイッチの縦方向と横方向をそれぞれ４つのグループに区分けした場合と等しい。
【００５９】
図４はこの１６×１６のクロスポイントスイッチにおけるスケジューリング・モジュールを表わしたものである。この例では、１６本の入力を４本ずつ４グループに分割することにしている。１６本の出力も同様に４本ずつ４グループに分割される。入力が４グループで出力が４グループの場合には、これらを組み合わせたとき１６対のグループが存在する。これらを第１〜第１６のスケジューリング・モジュール２２１１〜２２１１６で表わすものとする。
【００６０】
第１〜第１６のスケジューリング・モジュール２２１１〜２２１１６には、それぞれの処理対象とする入力ポートから出力ポートへの転送要求が入力される。この例では合計１６本の入力ライン２０４１、２０４２、……２０４１６と、同じく１６本の出力ライン２０５１、２０５２、……２０５１６が存在しているので、これらがそれぞれ４つのグループに分けられて第１〜第１６のスケジューリング・モジュール２２１１〜２２１１６に入力される。たとえば、第２の入力ポートから入力された固定長セルの宛先が第３の出力ポートであるとする。第２の入力ポートは入力ポートを４つのグループに分けたときの図４における縦方向に示した第１のグループに属し、第３の出力ポートは図４における横方向に示した出力ポートを４つのグループに分けたときの第１のグループに属する。したがってこの転送要求は図４における、縦方向も横方向も最初のグループとして位置付けられている第１のスケジューリング・モジュール２２１１に入力されることになる。
【００６１】
また、第７の入力ポートから第１１の出力ポートへの転送要求については、第７の入力ポートが入力ポートを４つのグループに分けたときの図４における縦方向に示した第２のグループに属し、第１１の出力ポートは図４における横方向に示した出力ポートを４つのグループに分けたときの第３のグループに属する。したがってこの転送要求は図４における、縦方向が２つ目のグループで横方向が３つ目のグループとして位置付けられている第７のスケジューリング・モジュール２２１７に入力されることになる。
【００６２】
図５は、第１のスケジューリング・モジュールのマトリックスの内部の信号配置を一例として示したものである。この図に例示したように、図４の各スケジューリング・モジュール２２１１〜２２１１６の中に示したマトリックスには、それぞれの論理キューから受信したパケット転送要求の有無を示す信号“０”または信号“１”が格納される。ここで、信号“０”は論理キューからのパケット転送の要求がないことを示しており、信号“１”は論理キューからのパケット転送の要求があることを示している。
【００６３】
本実施例では、ダイアゴナル・サービス・パタンを構成するダイアゴナル・モジュール群として、図４で太枠で示した第１のスケジューリング・モジュール２２１１、第６のスケジューリング・モジュール２２１６、第１１のスケジューリング・モジュール２２１１１および第１６のスケジューリング・モジュール２２１１６の４つを選択している。これらはマトリックス上で各入力ポートおよび出力ポートの競合が生じないような組み合わせとなっている。すなわち、第１のスケジューリング・モジュール２２１１では第１〜第４の入力ポートからの転送要求の有無を示す信号が格納されるようになっており、これは第５〜第８の入力ポートを扱う第６のスケジューリング・モジュール２２１６や、第９〜第１２の入力ポートを扱う第１１のスケジューリング・モジュール２２１１１や、第１３〜第１６の入力ポートを扱う第１６のスケジューリング・モジュール２２１１６と入力ポート間で競合しない。同様に、第１のスケジューリング・モジュール２２１１では第１〜第４の出力ポートへの転送要求の有無を示す信号が格納されるようになっており、これは第５〜第８の出力ポートを扱う第６のスケジューリング・モジュール２２１６や、第９〜第１２の出力ポートを扱う第１１のスケジューリング・モジュール２２１１１や、第１３〜第１６の出力ポートを扱う第１６のスケジューリング・モジュール２２１１６と出力ポート間でも競合しない。
【００６４】
このようなダイアゴナル・サービス・パタンを構成するダイアゴナル・モジュール群は、時間的に重複して他にも３組存在することができる。これらは（Ｓ２、Ｓ７、Ｓ１２、Ｓ１３）、（Ｓ３、Ｓ８、Ｓ９、Ｓ１４）、（Ｓ４、Ｓ５、Ｓ１０、Ｓ１５）の各組である。但しここでは表記を単純化するために、スケジューリング・モジュール２２１Ｘを単にＳＸと表記し、ダイアゴナル・モジュール群ごとに括弧で括って示している。
【００６５】
図４に示した各スケジューリング・モジュール２２１１〜２２１１６は、１つの固定長セルの転送時間内に、予め定められたある未来のタイムスロットについての４×４のスケジューリングを実行する。そして、その結果得られる予約済み出力ポート情報２６１〜２６４を図の縦方向（縦の矢印方向）の次段に位置するスケジューリング・モジュール２２１に転送する。また、同時に予約済み入力ポート情報２６５〜２６８を図の横方向（横の矢印方向）の次段に位置するスケジューリング・モジュール２２１にも転送する。たとえば、第１のスケジューリング・モジュール２２１１について説明すると、予約済み出力ポート情報２６１を第１３のスケジューリング・モジュール２２１１３に転送すると共に、予約済み入力ポート情報２６５を第２のスケジューリング・モジュール２２１２に転送する。なお、本実施例では図４で太枠で示した第１、第６、第１１および第１６のスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６は、対応する論理キューから転送要求の有無を示す信号を格納されるので、予約はこれらのスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６から開始されることになる。
【００６６】
各スケジューリング・モジュール２２１１〜２２１１６は、対応する論理キューからの転送要求と前段からの予約済み入出力ポート情報に基づいて、次のタイムスロットについて４×４のスケジューリングを実行し、その結果を更に（縦横両方向の）次段のスケジューリング・モジュール２２１に転送することになる。このようにして、４タイムスロットかけて、このような処理が第１〜第１６のスケジューリング・モジュール２２１１〜２２１１６のすべてで行われることになる。これにより、ある未来のタイムスロットについてのスケジューリングが完成する。
【００６７】
以上の処理が実行されていくためには、幾つかの条件が必要である。まず、１つのスケジューリング・モジュール２２１内における４×４のスケジューリングについての処理は、次段への情報転送を含めて１タイムスロット内で完了しなければならない。また、４入力の論理キューの予約機会が均等になることである。
【００６８】
以上の条件を満たすものであれば、各種のアルゴリズムを本実施例のパケット交換装置に適用することができる。たとえば入力×出力の転送要求をマトリックス状に並べて検索を行い、割り当てを行うアルゴリズムが特開平６−２３３３３７号公報あるいは特開平９−３２６８２８号公報に開示されている。これらの技術も前記した条件を満たすものであれば、本実施例のパケット交換装置に使用することができる。
【００６９】
図６〜図８は、各スケジューリング・モジュールのスケジューリングの様子を時間の変化と共に表わしたものである。図６は最初のタイムスロットＴ１からの処理を表わしており、図７、図８は順次時間が経過した状態を表わしている。これらの図を用いて、本実施例の第１〜第１６のスケジューリング・モジュール２２１１〜２２１１６（図ではＳ１〜Ｓ１６と略記する。）によるスケジューリングを具体的に説明する。
【００７０】
すでに説明したように本実施例では、ある未来のタイムスロットの割り当てとしての入力と出力の組み合わせの決定を、図２に示した予約済み出力ポート情報２３１あるいは予約済み入力ポート情報２３２の流れる順路で予約を行うようにしている。たとえば図４に太枠で記した第１、第６、第１１および第１６のスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６（Ｓ１、Ｓ６、Ｓ１１、Ｓ１６）は、本実施例でダイアゴナル・モジュール群を構成しているため、最初のタイムスロットＴ１で、これから４つ後のタイムスロットＴ５における入力と出力の組み合わせの予約を１番目に行う権利を有する。
【００７１】
たとえば、タイムスロットＴ１で第１〜第４の入力ポートから第１〜第４の出力ポートへ固定長セルの転送要求があったとする。これらの入出力ポートに対応する第１の分散スケジューリング・モジュール１２７１（Ｓ１）は、これらの要求が競合するような場合には、その時点で各要求を調停する。一例としては、第１〜第４の入力ポートがすべて第１の出力ポートへ固定長セルを転送する要求を行っていたとすると、このうちの１つの入力ポートしか第１の出力ポートへ固定長セルを転送することはできない。したがって、これら競合した入力ポートの要求をいずれか１つに選択するための調停が行われる。
【００７２】
同様に第５〜第８の入力ポートから第５〜第８の出力ポートへ固定長セルの転送要求があった場合には、第６の分散スケジューリング・モジュール１２７６（Ｓ６）はそれらの要求を調停して出力を予約する。また、第９〜第１２の入力ポートから第９〜第１２の出力ポートへ固定長セルの転送要求があった場合には、第１１の分散スケジューリング・モジュール１２７１１（Ｓ１１）がそれらの要求を調停して出力を予約する。更に、第１３〜第１６の入力ポートから第１３〜第１６の出力ポートへ固定長セルの転送要求があった場合には、第１６の分散スケジューリング・モジュール１２７１６（Ｓ１６）がそれらの要求を調停して出力を予約することになる。これら、ダイアゴナル・モジュール群を構成する第１、第６、第１１および第１６のスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６（Ｓ１、Ｓ６、Ｓ１１、Ｓ１６）の処理は、図６における１つの処理群２８１内での最初のタイムスロットＴ１の処理として表わしている。
【００７３】
このようにして、ダイアゴナル・モジュール群を構成する第１、第６、第１１および第１６のスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６（Ｓ１、Ｓ６、Ｓ１１、Ｓ１６）が最初に出力ポートの予約を行うと、次のタイムスロットＴ２で次のスケジューリング・モジュールに予約処理が引き継がれる。このために、タイムスロットＴ１で得られた予約済み出力ポート情報２６１〜２６４は、それぞれ図４に示す縦方向（縦の矢印方向）における次段としての第１３、第２、第７および第１２のスケジューリング・モジュール２２１１３、２２１２、２２１７、２２１１２（Ｓ１３、Ｓ２、Ｓ７、Ｓ１２）に転送される。また、同時に予約済み入力ポート情報２６５〜２６８は横方向（横の矢印方向）における次段としての第２、第７、第１２および第１３のスケジューリング・モジュール２２１２、２２１７、２２１１２、２２１１３（Ｓ２、Ｓ７、Ｓ１２、Ｓ１３）にも転送されることになる。
【００７４】
この結果、タイムスロットＴ２では、第２、第７、第１２および第１３のスケジューリング・モジュール２２１２、２２１７、２２１１２、２２１１３（Ｓ２、Ｓ７、Ｓ１２、Ｓ１３）でタイムスロットＴ５の予約が行われることになる。この際には、第６、第１１、第１６および第１のスケジューリング・モジュール２２１６、２２１１１、２２１１６、２２１１（Ｓ６、Ｓ１１、Ｓ１６、Ｓ１）から縦方向（縦の矢印方向）に転送されてきた予約済み出力ポート情報２６２〜２６４、２６１と、第１、第６、第１１および第１６のスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６（Ｓ１、Ｓ６、Ｓ１１、Ｓ１６）から横方向（横の矢印方向）に転送されてきた予約済み入力ポート情報２６５〜２６８を参照して、グループ内の論理キューからの要求に基づいて予約を行う。当然ながら、先のタイムスロットＴ１で予約を行った入出力関係について予約を行うことはできず、未予約となっている入出力の組み合わせの中から新たな予約を行うことになる。
【００７５】
このようにして第２、第７、第１２および第１３のスケジューリング・モジュール２２１２、２２１７、２２１１２、２２１１３（Ｓ２、Ｓ７、Ｓ１２、Ｓ１３）でタイムスロットＴ５の予約が行われると、タイムスロットＴ３で次のスケジューリング・モジュールに予約処理が引き継がれる。このために、タイムスロットＴ２で得られた予約済み出力ポート情報２６２〜２６４、２６５は、それぞれ図４に示す縦方向（縦の矢印方向）における次段としての第１４、第３、第８および第９のスケジューリング・モジュール２２１１４、２２１３、２２１８、２２１９（Ｓ１４、Ｓ３、Ｓ８、Ｓ９）に転送される。また、同時に予約済み入力ポート情報２６５〜２６８は横方向（横の矢印方向）における次段としての第３、第８、第９および第１４のスケジューリング・モジュール２２１３、２２１８、２２１９、２２１１４（Ｓ３、Ｓ８、Ｓ９、Ｓ１４）に転送される。そして、第３、第８、第９および第１４のスケジューリング・モジュール２２１３、２２１８、２２１９、２２１１４（Ｓ３、Ｓ８、Ｓ９、Ｓ１４）でタイムスロットＴ５の予約が行われる。
【００７６】
以下同様にして、タイムスロットＴ３の次のタイムスロットＴ４では、第４、第５、第１０および第１５のスケジューリング・モジュール２２１４、２２１５、２２１１０、２２１１５（Ｓ４、Ｓ５、Ｓ１０、Ｓ１５）でタイムスロットＴ５の予約が行われる。このようにして、図７の１つの処理群２８１における処理が終了すると、第１〜第１６のスケジューリング・モジュール２２１１〜２２１１６（Ｓ１〜Ｓ１６）のすべてについて、すなわち第１〜第４の入力ポートから第１〜第４の出力ポートに出力される固定長セルの全転送要求についてのタイムスロットＴ５の予約が完了することになる。
【００７７】
ところで、図４で太枠で示したダイアゴナル・サービス・パタンを構成する第１、第６、第１１および第１６のスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６（Ｓ１、Ｓ６、Ｓ１１、Ｓ１６）の４つに着目してみると、これらはタイムスロットＴ５の予約のための最初のタイムスロットＴ１における処理で、それぞれの分担する予約処理を完了させてしまう。したがって、これ以後のタイムスロットＴ４までの時間を空き時間として何らの処理も行わないのは効率的ではない。また、これらの処理結果を引き継いでタイムスロットＴ２で予約処理を行う第２、第７、第１２および第１３のスケジューリング・モジュール２２１２、２２１７、２２１１２、２２１１３（Ｓ２、Ｓ７、Ｓ１２、Ｓ１３）について見てみると、最初のタイムスロットＴ１で何の処理も行わずに待機しているのは時間の無駄であるし、同様にタイムスロットＴ２で予約処理を行った後に次に予約処理を行うまで新たに３タイムスロット分だけ何らの処理も行わないのも時間の無駄である。第３、第８、第９および第１４のスケジューリング・モジュール２２１３、２２１８、２２１９、２２１１４（Ｓ３、Ｓ８、Ｓ９、Ｓ１４）および第４、第５、第１０および第１５のスケジューリング・モジュール２２１４、２２１５、２２１１０、２２１１５（Ｓ４、Ｓ５、Ｓ１０、Ｓ１５）についても、同様に時間に対する稼働率が４分の１であるという問題が生じる。
【００７８】
そこで、本実施例のスケジューリング処理では、図６に示した処理群２８１の他に、その上の部分に示した処理群２８２〜２８４が並列して動作するようになっている。すなわち、処理群２８２について見てみると、最初のタイムスロットＴ１で第２、第７、第１２および第１３のスケジューリング・モジュール２２１２、２２１７、２２１１２、２２１１３（Ｓ２、Ｓ７、Ｓ１２、Ｓ１３）がタイムスロットＴ６における予約処理を行い、その結果を第３、第８、第９および第１４のスケジューリング・モジュール２２１３、２２１８、２２１９、２２１１４（Ｓ３、Ｓ８、Ｓ９、Ｓ１４）に渡してタイムスロットＴ２でタイムスロットＴ６における予約処理を行わせる。以下同様にしてタイムスロットＴ３では第４、第５、第１０および第１５のスケジューリング・モジュール２２１４、２２１５、２２１１０、２２１１５（Ｓ４、Ｓ５、Ｓ１０、Ｓ１５）でタイムスロットＴ６における予約処理が行われ、タイムスロットＴ４では第１、第６、第１１および第１６のスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６（Ｓ１、Ｓ６、Ｓ１１、Ｓ１６）でタイムスロットＴ６における予約処理が行われることになる。
【００７９】
処理群２８３については、最初のタイムスロットＴ１で第３、第８、第９および第１４のスケジューリング・モジュール２２１３、２２１８、２２１９、２２１１４（Ｓ３、Ｓ８、Ｓ９、Ｓ１４）がタイムスロットＴ７における予約処理を行い、以下同様にして以降のタイムスロットでそれぞれ対応するスケジューリング・モジュールがタイムスロットＴ７における予約処理を行う。最後の処理群２８４では、同様にしてそれぞれ同一のタイムスロットで処理の行われなかったスケジューリング・モジュールがタイムスロットＴ８における予約処理を行うことになる。
【００８０】
図７および図８に示した各処理群２８５〜２９２についても同様である。このように４×４のスケジューリングは、図４で太枠で示したダイアゴナル・サービス・パタンを構成する第１、第６、第１１および第１６のスケジューリング・モジュール２２１１、２２１６、２２１１１、２２１１６（Ｓ１、Ｓ６、Ｓ１１、Ｓ１６）の４つのみが予約処理に優先するのではなく、それぞれ起点となるタイムスロットを異にした第２、第７、第１２および第１３のスケジューリング・モジュール２２１２、２２１７、２２１１２、２２１１３（Ｓ２、Ｓ７、Ｓ１２、Ｓ１３）、第３、第８、第９および第１４のスケジューリング・モジュール２２１３、２２１８、２２１９、２２１１４（Ｓ３、Ｓ８、Ｓ９、Ｓ１４）、第４、第５、第１０および第１５のスケジューリング・モジュール２２１４、２２１５、２２１１０、２２１１５（Ｓ４、Ｓ５、Ｓ１０、Ｓ１５）の各組も優先の機会を与えられる。すなわち、第１〜第１６のスケジューリング・モジュール２２１１〜２２１１６が、４つのダイアゴナル・サービス・パタンによって平等の処理を受けることになる。
【００８１】
図９〜図１４はスケジューリング・モジュールが４×４の合計１６個で構成される場合のダイアゴナルモジュール群の選び方とモジュール間の接続の順序を示したものである。各４×４マトリックス内の黒丸がダイアゴナル・サービス・パタンを構成している。また、矢印で連結した横１行の４つのダイアゴナル・サービス・パタンが１組のダイアゴナルモジュール群を示している。
【００８２】
これら図９〜図１４で左上に括弧書きで示した数字は予約済み入力ポート情報の転送順序（列番号）を示しており、左端に示した数字は予約済み出力ポート情報の転送順序（行番号）を示している。それぞれのマトリックスの下に括弧で示した数字は、ダイアゴナル・サービス・パタンの種類を通し番号で表わしたものであり、同一番号は同一のパタンを示している。実施例で説明したダイアゴナルモジュール群は、この番号（１）〜（４）に示す４つのダイアゴナル・サービス・パタンに対応していることになる。
【００８３】
なお、以上説明した実施例では説明を簡略に行うために４×４の比較的簡単なマトリックスを例に挙げて説明したが、マトリックスのサイズはこれに限定されないことは当然である。
【００８４】
【発明の効果】
以上説明したように請求項１記載の発明によれば、パケットの送られてくる入力ポートとこれらのパケットの出力先としての出力ポートをＭ個ずつに分けてなるＭ×Ｍのマトリックス状に配置されたグループにそれぞれのパケットの入出力の関係の情報としての転送要求の有無を表わした情報を割り振っておき、これらのグループについては、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせとしているので、マトリックスの行方向にも列方向にもパイプライン処理が可能であり、パケットの転送処理の高速化を可能にすることができ、ポートの数の増大に十分対応することができる。
【００８５】
また請求項２記載の発明によれば、入力ポートと固定長セルの出力先としての出力ポートをＭ個ずつに分けてなるＭ×Ｍのマトリックス状に配置されたグループにそれぞれの固定長セルの入出力の関係の情報としての転送要求の有無を表わした情報を割り振っておき、これらのグループについては、予め全入力ポートと全出力ポートを重複しないように等しい数ずつ選択してなる入力ポートと出力ポートの組み合わせとしているので、マトリックスの行方向にも列方向にもパイプライン処理が可能であり、固定長セルの転送処理の高速化を可能にすることができ、ポートの数の増大に十分対応することができる。しかも、パケットを固定長セルに分解して処理するので、可変長のパケットについても高速処理が可能になる。
【００８６】
更に請求項３記載の発明によれば、マトリックスの行方向にも列方向にも処理を行う本発明で全体としての処理が規則正しく進行し、処理の効率化を図ることができる。
【００８７】
また請求項４記載の発明によれば、Ｍ×Ｍのグループに対してＭ個からなるダイアゴナル・サービス・パタンをＭ通り用意することで、いずれのタイムスロットでも１組のダイアゴナル・サービス・パタンによる予約処理が開始するので、効率的な予約処理が可能になる。また、Ｍ×Ｍ個の全グループがダイアゴナル・サービス・パタンの構成となるので、予約処理の優先度が結果的に均等に割り振られることになり、入力ポートによって優劣が生じるといった問題を生じさせないという効果もある。
【００８８】
更に請求項５記載の発明によれば、予め定めた未来の所定のタイムスロットに対して、ダイアゴナル・サービス・パタンに該当するグループを起点として予約を行うことにしているので、これら未来のタイムスロットを重複しないように割り当てることで、効率的な処理を実現することができる。また、これらのグループを必要な個数連結して順次予約処理を実行させることで、スケーラブルなスケジューラを実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施例におけるパケット交換装置の入力バッファ型スイッチのスイッチ部およびその周辺の構成を表わしたブロック図である。
【図２】本実施例におけるＭ２個のスケジューリング・モジュールの処理動作を示した説明図である。
【図３】本実施例におけるＶＯＱの１つを拡大して図解した説明図である。
【図４】本実施例で１６×１６のクロスポイントスイッチにおけるスケジューリング・モジュールを表わした説明図である。
【図５】本実施例で第１のスケジューリング・モジュールのマトリックスの内部の信号配置を一例として示した説明図である。
【図６】本実施例で各スケジューリング・モジュールのスケジューリングの様子を時間の変化と共に表わした最初の説明図である。
【図７】図６に引き続いて本実施例におけるスケジューリング・モジュールのスケジューリングの様子を時間の変化と共に表わした説明図である。
【図８】図７に引き続いて本実施例におけるスケジューリング・モジュールのスケジューリングの様子を時間の変化と共に表わした説明図である。
【図９】スケジューリング・モジュールが４×４で構成される場合のダイアゴナルモジュール群の選び方とモジュール間の接続の順序の第１の例を示した説明図である。
【図１０】スケジューリング・モジュールが４×４で構成される場合のダイアゴナルモジュール群の選び方とモジュール間の接続の順序の第２の例を示した説明図である。
【図１１】スケジューリング・モジュールが４×４で構成される場合のダイアゴナルモジュール群の選び方とモジュール間の接続の順序の第３の例を示した説明図である。
【図１２】スケジューリング・モジュールが４×４で構成される場合のダイアゴナルモジュール群の選び方とモジュール間の接続の順序の第４の例を示した説明図である。
【図１３】スケジューリング・モジュールが４×４で構成される場合のダイアゴナルモジュール群の選び方とモジュール間の接続の順序の第５の例を示した説明図である。
【図１４】スケジューリング・モジュールが４×４で構成される場合のダイアゴナルモジュール群の選び方とモジュール間の接続の順序の第６の例を示した説明図である。
【図１５】ＶＯＱを使用した入力バッファ型スイッチの一般的な構成を表わしたブロック図である。
【図１６】スケジューリングをパイプライン化した従来のスイッチの構成の一例を示した概略構成図である。
【図１７】従来のパイプライン化処理に使用されるパケットスイッチスケジューラのブロック図である。
【図１８】従来のパイプライン化処理における接続許可情報の決定の様子を示した説明図である。
【図１９】従来のパイプライン化処理における各インプットモジュールの予約順序を示した説明図である。
【符号の説明】
１０５  パケット生成分解部（ＰＡＤ）
２０１  スイッチ部
２０２  クロスポイントスイッチ
２０３  スイッチスケジューラ
２０４  入力ライン
２０５  出力ライン
２０６  ＶＯＱ
２２１  スケジューリング・モジュール
２３１、２６１〜２６４  予約済み出力ポート情報
２３２、２６５〜２６８  予約済み入力ポート情報
２４１  固定長セル（パケット）
２４２  論理キュー
２４４  グループ
【図１】
0003567878.tif 000002
【図２】
0003567878.tif 000003
【図３】
0003567878.tif 000004
【図４】
0003567878.tif 000005
【図５】
0003567878.tif 000006
【図６】
0003567878.tif 000007
【図７】
0003567878.tif 000008
【図８】
0003567878.tif 000009
【図９】
0003567878.tif 000010
【図１０】
0003567878.tif 000011
【図１１】
0003567878.tif 000012
【図１２】
0003567878.tif 000013
【図１３】
0003567878.tif 000014
【図１４】
0003567878.tif 000015
【図１５】
0003567878.tif 000016
【図１６】
0003567878.tif 000017
【図１７】
0003567878.tif 000018
【図１８】
0003567878.tif 000019
【図１９】
0003567878.tif 000020