(57)【特許請求の範囲】
【請求項１】
パケットを受信する入力インタフェースと、受信した前記パケットを送信する出力インタフェースを備え、前記入力インタフェースに受信したパケットを一定の長さの固定長セルに変換して前記出力インタフェースに送るパケット交換機において、
各前記入力インタフェースは、
受信したパケットを必要に応じて順次連結し、更に一定の長さの固定長に分割することにより前記固定長セルに変換を行う固定長セル変換手段を備え、
各前記出力インタフェースは、
前記入力インタフェースから送られた前記固定長セルを連結することにより、各前記パケットを連結した状態に戻すパケット組立手段と、
この連結した状態の各前記パケットをそれぞれに分離することにより、元の受信した各前記パケットの状態に復元するパケット分離手段を備え、
各前記入力インタフェースの前記固定長セル変換手段が、
前記固定長セルにおける空き領域の占める割合の設定値を備え、
受信したパケットをその送り先の各前記出力インタフェース毎に記録するバッファを備え、
各前記出力インタフェースに対する前記バッファに記録したパケットを、もし前記固定長セルに変換した場合に必要とする空き領域の占める割合が前記設定値以下である場合に、記録されたパケットを前記固定長セルに変換し、当該出力インタフェースに送る手段を備えることを特徴とするパケット交換機。
【請求項２】
前記固定長セル変換手段は、
元の受信した各前記パケットの復元に用いるための、各前記固定長セル相互の前後関係や、連結した各前記パケットそれぞれのデータ長の情報を示すヘッダを付加して、前記固定長セルを作成し、
前記出力インタフェースは、
送られた前記固定長セルからその前記ヘッダが示す情報を参照し、
前記パケット組立手段は、
各前記固定長セルをその順番に従い連結し、
前記パケット分離手段は、
連結された各前記パケットのそれぞれのデータ長に従いこれを分割することにより、各前記パケットを復元することを特徴とする請求項１に記載のパケット交換機。
【請求項３】
各前記入力インタフェースの前記固定長セル変換手段が、
パケットの連結を続ける上限のサイズを示す連結パケットサイズの設定を備え、
各前記出力インタフェースに対する前記バッファに記録したパケットのデータサイズを前記連結パケットサイズと比較し、もし前記連結パケットサイズを超過した場合で、かつ前記固定長セルに変換した場合に必要とする空き領域の占める割合が前記設定値以下である場合に、記録された前記パケットを前記固定長セルに変換し、当該出力インタフェースに送る手段を備えることを特徴とする請求項１又は請求項２に記載のパケット交換機。
【請求項４】
各前記入力インタフェースの前記固定長セル変換手段が、
パケットを前記固定長セルに変換した場合に必要とする空き領域の占める割合に基づく、当該パケットを前記固定長セルに変換するか否かの判定を、パケットのデータサイズと対応させて記録した送出可否検索テーブルを備え、
各前記出力インタフェースに対する前記バッファに記録したパケットの合計サイズを基に、前記送出可否検索テーブルを検索し、前記送出可否検索テーブルに記録された可否の判断に従い前記固定長セルに変換を実行する手段を備えることを特徴とする請求項１に記載のパケット交換機。
【請求項５】
各前記入力インタフェースの前記固定長セル変換手段が、
各前記出力インタフェース毎に、未送のまま前記バッファに記録されているパケットの受信後の経過時間を計測するタイマーと、
未送のまま前記バッファにパケットを待機させる上限時間の設定と、
前記タイマーが、前記上限時間を超過してパケットが記録されていることを検出した場合に、当該出力インタフェースに送る未送のパケットを、前記固定長セルに変換して送出する手段を備えることを特徴とする請求項１から請求項４のいずれか一つに記載のパケット交換機。
【請求項６】
パケットを受信する入力インタフェースから受信した前記パケットを送信する出力インタフェースへの通信データの交換を、受信したパケットを一定の長さの固定長セルに変換して送るパケット交換方法において、
各前記入力インタフェースが受信したパケットを、必要に応じて順次連結し、更に一定の長さの固定長に分割することにより前記固定長セルに変換を行う固定長セル変換ステップと、
各前記出力インタフェースにおいて、前記入力インタフェースから送られた前記固定長セルを連結することにより、各前記パケットを連結した状態に戻すパケット組立ステップと、
この連結した状態の各前記パケットをそれぞれに分離することにより、元の受信した各前記パケットの状態に復元するパケット分離ステップを有し、
前記固定長セル変換ステップが、
受信したパケットをその送り先の各前記出力インタフェース毎にバッファに記録するステップと、
各前記出力インタフェースに対する前記バッファに記録したパケットを、もし前記固定長セルに変換した場合に必要とする空き領域の占める割合が、空き領域の占める割合の設定値以下を成す場合には、前記記録されたパケットを前記固定長セルに変換し、当該出力インタフェースに送るステップを含むことを特徴とするパケット交換方法。
【請求項７】
元の受信した各前記パケットの復元に用いるための、各前記固定長セル相互の前後関係や、連結した各前記パケットそれぞれのデータ長の情報を示すヘッダを付加して前記固定長セルを作成するステップを備え、
前記出力インタフェースにおいて、前記入力インタフェースから送られた各前記固定長セルにおける前記ヘッダが示す情報を参照するステップを備え、
前記パケット組立ステップは、
各前記固定長セルをその順番に従い連結するステップを備え、
前記パケット分離ステップは、
連結された各前記パケットのそれぞれのデータ長に従いこれを分割することにより、各前記パケットを復元するステップを備えることを特徴とする請求項６に記載のパケット交換方法。
【請求項８】
前記固定長セル変換ステップが、
各前記出力インタフェースに対する前記バッファに記録したパケットのデータサイズを、パケットの連結を続ける上限のサイズを示す連結パケットサイズと比較し、前記連結パケットサイズを超過した場合で、かつ前記固定長セルに変換した場合に必要とする空き領域の占める割合が前記設定値以下である場合に、記録された前記パケットを前記固定長セルに変換し、当該出力インタフェースに送るステップを含むことを特徴とする請求項６又は請求項７に記載のパケット交換方法。
【請求項９】
前記固定長セル変換ステップが、
パケットを前記固定長セルに変換した場合に必要とする空き領域の占める割合に基づく、当該パケットを前記固定長セルに変換するか否かの判定を、パケットのデータサイズと対応させて記録した送出可否検索テーブルを、参照するステップと、
各前記出力インタフェースに対する前記バッファに記録したパケットの合計サイズを基に、前記送出可否検索テーブルを検索し、前記送出可否検索テーブルに記録された可否の判断に従い前記固定長セルに変換を実行するステップを含むことを特徴とする請求項６に記載のパケット交換方法。
【請求項１０】
前記固定長セル変換ステップが、
各前記出力インタフェース毎の、未送のまま前記バッファに記録されているパケットの受信後の経過時間が、未送のまま前記バッファにパケットを待機させる設定された上限時間を超過していることを検出した場合に、当該出力インタフェースを送り先とする未送のパケットを、前記固定長セルに変換して送出するステップを含むことを特徴とする請求項６から請求項９のいずれか一つに記載のパケット交換方法。
【請求項１１】
パケットを受信する入力インタフェースと、受信した前記パケットを送信する出力インタフェースを備え、前記入力インタフェースに受信したパケットを一定の長さの固定長セルに変換して前記出力インタフェースに送るパケット交換機において、
各前記入力インタフェースは、
受信したパケットを有効か無効を示す情報とパケットサイズを情報を含む装置内ヘッダを付加してその送り先の各前記出力インタフェース毎にバッファに記録する手段と、
前記バッファに記憶されたパケットからなるデータを、一定の長さの固定長毎に読み出し、セルヘッダを付加して固定長セルに変換する固定長セル変換手段を備え、
各前記出力インタフェースは、
前記入力インタフェースから送られた前記固定長セル内の前記装置内ヘッダを検出することにより、前記固定長セル内のパケットを抽出するパケット抽出手段を備えることを特徴とするパケット交換機。
【請求項１２】
前記パケット抽出手段は、
前記固定長セルの前記装置内ヘッダに格納される次の装置内ヘッダへのポインタを参照して、前記固定長セル内に前記ポインタで示される次の装置内ヘッダが存在するかどうかを判定し、
存在しない場合、前記次の装置内ヘッダへのポインタを、パケット検出メモリに格納し、
存在する場合、前記固定長セル内に次の前記装置内ヘッダが存在しなくなるまで、前記パケットの抽出を繰り返すことを特徴とする請求項１１に記載のパケット交換機。
【請求項１３】
前記パケット抽出手段は、
前記固定長セルが先頭のセルでない場合、前記パケット検出メモリに格納された前記次の装置内ヘッダへのポインタを参照して、前記固定長セル内の前記装置内ヘッダを取り出すことを特徴とする請求項１２に記載のパケット交換機。
【請求項１４】
前記固定長セル内の前記装置内ヘッダを正常に検出できない場合、当該固定長セルに対する装置内ヘッダの検出を行う装置内ヘッダ検出手段を備え、
前記装置内ヘッダ検出手段は、
当該固定長セル内に前記装置内ヘッダが存在しない場合、当該固定長セルに対する処理を終了し、
存在する場合、前記装置内ヘッダに含まれる次の装置内ヘッダへのポインタで示される次の装置内ヘッダが存在するかを判定し、
次の装置内ヘッダが存在する場合、先の装置内ヘッダに対応するパケットの読出を要求し、次の装置内ヘッダが存在しない場合、前記次の装置内ヘッダへのポインタを前記パケット検出メモリに格納することを特徴とする請求項１２又は請求項１３に記載のパケット交換機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケット交換方式によるデータ通信に関し、特に、可変長のパケットの交換処理を実行するパケット交換機とその交換方法、パケット交換プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
パケット交換方式は、通信データを定められた長さのブロックに分割し、各ブロックの分割した順番を示すシーケンス番号や送信先等の通信に必要な情報を示すヘッダを、その各ブロックに付けて送信する方式であり、この分割されたブロックをパケット（ｐａｃｋｅｔ）と呼ぶ。
【０００３】
交換機（回線切替え装置、スイッチ装置）は、通信回線やネットワークのノードにおいて通信路の選択や設定等を行い、高速な中継を行う装置である。
【０００４】
パケット交換機は、パケット交換方式の通信の中継を行う交換機であり、通信データであるパケットの入出力（送受信）を行う複数のインタフェースを備え、受信したパケットのヘッダを基にその送信先を判断し、適切な出力インタフェースを選択して、パケットを入力インタフェースから出力インタフェースに送る。
【０００５】
パケット交換機が交換する（通信を中継する）パケットの長さは、その全てを一定の長さに限る形態のみではなく、可変長のパケットの交換を行うものがある。また、送信するパケット等の通信データを分割したり連結することにより、その長さの変換を行う交換機もある。
【０００６】
例えば、特開平０７−２０２９０３号公報に開示された従来技術では、可変長のパケットによりデータを送信するフレームリレー方式による送信データを、固定長のＡＴＭセルに分割して、ＡＴＭの通信回線網に送出を行う交換機が提案されている。また逆に、特開平０７−２５４９０４号公報に開示された従来技術では、固定長のＡＴＭセルによる送信データを、複数のＡＴＭセルをまとめて１つのパケットに連結して、フレームリレー方式の回線に送出を行う交換機が提案されている。
【０００７】
また、可変長のパケットの交換を行うパケット交換機においては、装置内部において、その通信データを一定の長さに揃えたパケットに分割し、その通信データの交換を処理するものがある。
【０００８】
これは、一定長のパケットへの分割及び、分割した各パケットを元の長さに再び連結して戻す処理を、交換機の入出力インタフェースにおいて実行することで、交換機内部で処理する通信路の選択や設定等を、分割した固定長のパケットに対し行うことができるのである。
【０００９】
これにより、装置内部における交換の処理等が容易になり、交換処理が高速化され、又装置内で交換処理を実行する部分においては、パケットの様々な長さに対応させるための複雑な構造が不要となる。尚、装置内で処理するこの分割した固定長のパケットを、以下セルと呼ぶこととする。
【００１０】
図１９は、可変長のパケットを装置内においては固定長のセルに分割する、従来のパケット交換機の構成を示すブロック図である。
【００１１】
図１９を参照すると、従来のパケット交換機は、通信データの送受信をするための入力インタフェース１００ｃと出力インタフェース２００ｃを複数備え、入力インタフェース１００ｃと出力インタフェース２００ｃとを接続するスイッチ部３００と、スイッチ部３００の接続を決定するスケジューラ部４００を備えている。
【００１２】
各入力インタフェース１００ｃは、パケットを取り出すための可変長パケット抽出部１０と、パケットのヘッダの宛先情報を基に通信データを送出する出力インタフェース２００ｃを決定するアドレス解決部２０と、アドレス解決部２０が参照する経路検索テーブル３０と、受信したパケットを装置内セルに分割するためのパケット分割部４０ｃと、スケジューラ部４００に接続要求を送出しその結果が返されるまでセルを格納するための入力バッファ６０と、入力バッファ６０を管理するバッファ管理部５０を備える。図１９の例では、第１から第ｎまでの“ｎ個”の入力インタフェース１００ｃを備え、又この各入力インタフェース１００ｃは同様の構成である。
【００１３】
出力インタフェース２００ｃは、スイッチ部３００からセルを受けてセル格納バッファ９０に書き込む装置内セル受信部７０と、セル格納バッファ９０からセルを読み出して、元のパケットに組み立て直すパケット組立部８０ｃを備える。図１９の例では、第１から第ｎまでの“ｎ個”の出力インタフェース２００ｃを備え、又この各出力インタフェース２００ｃは同様の構成である。
【００１４】
この従来のパケットスイッチ装置の動作は、以下の通りである。
【００１５】
まず、入力インタフェース１００ｃの側においては、可変長パケット抽出部１０は、受信したデータ信号からパケットを抽出して、これをアドレス解決部２０に渡し、アドレス解決部２０は、パケットのヘッダ内の宛先情報を基に経路検索テーブル３０を検索して、転送する出力インタフェース２００ｃを決定する。
【００１６】
ここでは、以下、第１出力インタフェース２００ｃに転送する場合を例に説明する。
【００１７】
パケット分割部４０ｃは、可変長のパケットを固定長に分割し、その分割された各データに所定のヘッダを付加することにより装置内セルを生成する。
【００１８】
図２０は、従来のパケットスイッチ装置によるパケットの分割を説明するための図である。
【００１９】
図２０の例では、第１と第２の２つの可変長パケット２０００を装置内の固定長のセル２００６に分割を行う。
【００２０】
第１可変長パケットは、装置内セル長より少し長いため２つに分割され、分割された一方はその長さが装置内セル長より短いため空き領域２００５を付加し長さを揃えている。また、第２可変長パケットは、装置内セル長より短いため、分割するのではなく空き領域２００５を付加し長さを装置内セル長に揃えている。
【００２１】
また、図２０では、分割の前に各パケットに装置内ヘッダ２００２を付加し、またその分割後のセルに対してもセルヘッダ２００４を付加している。これらのヘッダにより、各セル等の情報を示すのである。
【００２２】
バッファ管理部５０は、この装置内セルを入力バッファ６０に書き込み、スケジューラ部４００に対し、第１出力インタフェース２００ｃに対する接続要求を送出する。
【００２３】
バッファ管理部５０は、この接続要求に対する応答であるスケジューリングの結果をスケジューラ部４００から受けると、セルを入力バッファ６０から読み出して、スイッチ部３００を経由して第１出力インタフェース２００ｃに転送する。
【００２４】
次に、出力インタフェース２００ｃの側では、装置内セル受信部７０ｃは、スイッチ部３００を経由して装置内セルを受け取り、受けたセルをセル格納バッファ９０に格納する。
【００２５】
そして、装置内セル受信部７０ｃは、分割されたパケットを構成する最終セルを受けると、その旨をパケット組立部７０ｃに通知し、パケット組立部７０ｃは、セル格納バッファ９０からセルが読み出して連結し元のパケットを組み立て復元する。
【００２６】
これは、図２０の例におけるように、各セルに付加されたヘッダや空き領域を取り除き、分割されたデータをその（ヘッダに記録された）順番に従い連結することで復元される。
【００２７】
【発明が解決しようとする課題】
しかし、従来の固定長のセルを装置内で用いるパケット交換機では、以下に述べるような問題点があった。
【００２８】
こうした従来のパケット交換機では、可変長のパケットを単純に分割することにより、装置内の固定長のセルに変換するため、装置内セルに多くの空き領域が必要となり、こうした不要なデータをインタフェース間等で送受することによる無駄が大きかった。
【００２９】
例えば、図２０を参照すると、装置内セル長よりパケット長が少しだけ大きい可変長パケット２０００を分割する場合、データ領域２００７は２つのセルに渡って分割され、パケットを構成するセルの２セル目はデータ領域がわずかであり、空き領域２００５が大部分を占めることになる。この例では、装置内を転送されるセルのうち、ほぼ半分近くが空き領域となってしまう。またこれにより、このパケット交換機における転送速度も制限される。
【００３０】
本発明の目的は、上記従来技術の欠点を解決し、装置内セルにおける空き領域を可能な限り抑えることで、通信の無駄を解消し、効率的なデータ転送を行うパケット交換機とその交換方法、パケット交換プログラムを記録した記録媒体を提供することである。
【００３１】
【課題を解決するための手段】
上記目的を達成するため本発明のパケット交換機は、パケットを受信する入力インタフェースと、受信した前記パケットを送信する出力インタフェースを備え、前記入力インタフェースに受信したパケットを一定の長さの固定長セルに変換して前記出力インタフェースに送るパケット交換機において、各前記入力インタフェースは、受信したパケットを必要に応じて順次連結し、更に一定の長さの固定長に分割することにより前記固定長セルに変換を行う固定長セル変換手段を備え、各前記出力インタフェースは、前記入力インタフェースから送られた前記固定長セルを連結することにより、各前記パケットを連結した状態に戻すパケット組立手段と、この連結した状態の各前記パケットをそれぞれに分離することにより、元の受信した各前記パケットの状態に復元するパケット分離手段を備え、各前記入力インタフェースの前記固定長セル変換手段が、前記固定長セルにおける空き領域の占める割合の設定値を備え、受信したパケットをその送り先の各前記出力インタフェース毎に記録するバッファを備え、各前記出力インタフェースに対する前記バッファに記録したパケットを、もし前記固定長セルに変換した場合に必要とする空き領域の占める割合が前記設定値以下である場合に、記録されたパケットを前記固定長セルに変換し、当該出力インタフェースに送る手段を備えることを特徴とする。
請求項２の本発明のパケット交換機は、前記固定長セル変換手段は、元の受信した各前記パケットの復元に用いるための、各前記固定長セル相互の前後関係や、連結した各前記パケットそれぞれのデータ長の情報を示すヘッダを付加して、前記固定長セルを作成し、前記出力インタフェースは、送られた前記固定長セルからその前記ヘッダが示す情報を参照し、前記パケット組立手段は、各前記固定長セルをその順番に従い連結し、前記パケット分離手段は、連結された各前記パケットのそれぞれのデータ長に従いこれを分割することにより、各前記パケットを復元することを特徴とする。
【００３２】
請求項３の本発明のパケット交換機は、各前記入力インタフェースの前記固定長セル変換手段が、パケットの連結を続ける上限のサイズを示す連結パケットサイズの設定を備え、各前記出力インタフェースに対する前記バッファに記録したパケットのデータサイズを前記連結パケットサイズと比較し、もし前記連結パケットサイズを超過した場合で、かつ前記固定長セルに変換した場合に必要とする空き領域の占める割合が前記設定値以下である場合に、記録された前記パケットを前記固定長セルに変換し、当該出力インタフェースに送る手段を備えることを特徴とする。
【００３３】
請求項４の本発明のパケット交換機は、各前記入力インタフェースの前記固定長セル変換手段が、パケットを前記固定長セルに変換した場合に必要とする空き領域の占める割合に基づく、当該パケットを前記固定長セルに変換するか否かの判定を、パケットのデータサイズと対応させて記録した送出可否検索テーブルを備え、各前記出力インタフェースに対する前記バッファに記録したパケットの合計サイズを基に、前記送出可否検索テーブルを検索し、前記送出可否検索テーブルに記録された可否の判断に従い前記固定長セルに変換を実行する手段を備えることを特徴とする。
【００３４】
請求項５の本発明のパケット交換機は、各前記入力インタフェースの前記固定長セル変換手段が、各前記出力インタフェース毎に、未送のまま前記バッファに記録されているパケットの受信後の経過時間を計測するタイマーと、未送のまま前記バッファにパケットを待機させる上限時間の設定と、前記タイマーが、前記上限時間を超過してパケットが記録されていることを検出した場合に、当該出力インタフェースに送る未送のパケットを、前記固定長セルに変換して送出する手段を備えることを特徴とする。
【００３５】
請求項６の本発明のパケット交換方法は、パケットを受信する入力インタフェースから受信した前記パケットを送信する出力インタフェースへの通信データの交換を、受信したパケットを一定の長さの固定長セルに変換して送るパケット交換方法において、各前記入力インタフェースが受信したパケットを、必要に応じて順次連結し、更に一定の長さの固定長に分割することにより前記固定長セルに変換を行う固定長セル変換ステップと、各前記出力インタフェースにおいて、前記入力インタフェースから送られた前記固定長セルを連結することにより、各前記パケットを連結した状態に戻すパケット組立ステップと、この連結した状態の各前記パケットをそれぞれに分離することにより、元の受信した各前記パケットの状態に復元するパケット分離ステップを有し、前記固定長セル変換ステップが、受信したパケットをその送り先の各前記出力インタフェース毎にバッファに記録するステップと、各前記出力インタフェースに対する前記バッファに記録したパケットを、もし前記固定長セルに変換した場合に必要とする空き領域の占める割合が、空き領域の占める割合の設定値以下を成す場合には、前記記録されたパケットを前記固定長セルに変換し、当該出力インタフェースに送るステップを含むことを特徴とする。
【００３６】
請求項７の本発明のパケット交換方法は、元の受信した各前記パケットの復元に用いるための、各前記固定長セル相互の前後関係や、連結した各前記パケットそれぞれのデータ長の情報を示すヘッダを付加して前記固定長セルを作成するステップを備え、前記出力インタフェースにおいて、前記入力インタフェースから送られた各前記固定長セルにおける前記ヘッダが示す情報を参照するステップを備え、前記パケット組立ステップは、各前記固定長セルをその順番に従い連結するステップを備え、前記パケット分離ステップは、連結された各前記パケットのそれぞれのデータ長に従いこれを分割することにより、各前記パケットを復元するステップを備えることを特徴とする。
【００３７】
請求項８の本発明のパケット交換方法は、前記固定長セル変換ステップが、各前記出力インタフェースに対する前記バッファに記録したパケットのデータサイズを、パケットの連結を続ける上限のサイズを示す連結パケットサイズと比較し、前記連結パケットサイズを超過した場合で、かつ前記固定長セルに変換した場合に必要とする空き領域の占める割合が前記設定値以下である場合に、記録された前記パケットを前記固定長セルに変換し、当該出力インタフェースに送るステップを含むことを特徴とする。
【００３８】
請求項９の本発明のパケット交換方法は、前記固定長セル変換ステップが、パケットを前記固定長セルに変換した場合に必要とする空き領域の占める割合に基づく、当該パケットを前記固定長セルに変換するか否かの判定を、パケットのデータサイズと対応させて記録した送出可否検索テーブルを、参照するステップと、各前記出力インタフェースに対する前記バッファに記録したパケットの合計サイズを基に、前記送出可否検索テーブルを検索し、前記送出可否検索テーブルに記録された可否の判断に従い前記固定長セルに変換を実行するステップを含むことを特徴とする。
【００３９】
請求項１０の本発明のパケット交換方法は、前記固定長セル変換ステップが、各前記出力インタフェース毎の、未送のまま前記バッファに記録されているパケットの受信後の経過時間が、未送のまま前記バッファにパケットを待機させる設定された上限時間を超過していることを検出した場合に、当該出力インタフェースを送り先とする未送のパケットを、前記固定長セルに変換して送出するステップを含むことを特徴とする。
【００４０】
請求項１１の本発明のパケット交換機は、パケットを受信する入力インタフェースと、受信した前記パケットを送信する出力インタフェースを備え、前記入力インタフェースに受信したパケットを一定の長さの固定長セルに変換して前記出力インタフェースに送るパケット交換機において、各前記入力インタフェースは、受信したパケットを有効か無効を示す情報とパケットサイズを情報を含む装置内ヘッダを付加してその送り先の各前記出力インタフェース毎にバッファに記録する手段と、前記バッファに記憶されたパケットからなるデータを、一定の長さの固定長毎に読み出し、セルヘッダを付加して固定長セルに変換する固定長セル変換手段を備え、各前記出力インタフェースは、前記入力インタフェースから送られた前記固定長セル内の前記装置内ヘッダを検出することにより、前記固定長セル内のパケットを抽出するパケット抽出手段を備えることを特徴とする。
【００４１】
請求項１２の本発明のパケット交換機は、前記パケット抽出手段は、前記固定長セルの前記装置内ヘッダに格納される次の装置内ヘッダへのポインタを参照して、前記固定長セル内に前記ポインタで示される次の装置内ヘッダが存在するかどうかを判定し、存在しない場合、前記次の装置内ヘッダへのポインタを、パケット検出メモリに格納し、存在する場合、前記固定長セル内に次の前記装置内ヘッダが存在しなくなるまで、前記パケットの抽出を繰り返すことを特徴とする。
【００４２】
請求項１３の本発明のパケット交換機は、前記パケット抽出手段は、前記固定長セルが先頭のセルでない場合、前記パケット検出メモリに格納された前記次の装置内ヘッダへのポインタを参照して、前記固定長セル内の前記装置内ヘッダを取り出すことを特徴とする。
【００４３】
請求項１４の本発明のパケット交換機は、前記固定長セル内の前記装置内ヘッダを正常に検出できない場合、当該固定長セルに対する装置内ヘッダの検出を行う装置内ヘッダ検出手段を備え、前記装置内ヘッダ検出手段は、当該固定長セル内に前記装置内ヘッダが存在しない場合、当該固定長セルに対する処理を終了し、存在する場合、前記装置内ヘッダに含まれる次の装置内ヘッダへのポインタで示される次の装置内ヘッダが存在するかを判定し、次の装置内ヘッダが存在する場合、先の装置内ヘッダに対応するパケットの読出を要求し、次の装置内ヘッダが存在しない場合、前記次の装置内ヘッダへのポインタを前記パケット検出メモリに格納することを特徴とする。
【００４４】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００４５】
図１は、本発明の第１の実施の形態によるパケット交換機１の構成を示すブロック図である。
【００４６】
図１を参照すると、本実施の形態のパケット交換機１は、入力インタフェース１００と出力インタフェース２００を複数（それぞれをｎ個）備え、各入力インタフェース１００と各出力インタフェース２００に対応するポート（入力ポートと出力ポート）を接続して固定長のセルを転送するスイッチ部３００と、スイッチ部３００の入力ポートと出力ポートの接続を決定するスケジューラ部４００を備える。
【００４７】
本実施の形態のパケット交換機１は、各入力インタフェース１００から入力される可変長パケットを、送り先である出力インタフェース２００に転送するパケット交換機において、装置内においてはこの可変長パケットを固定長のセルに変換してその処理を行うものであり、特に、複数の可変長パケットを連結してより大きな１つのパケットにまとめた後に、これを固定長に分割することで、可変長パケットを装置内セルに変換することを特徴とする。
【００４８】
このため、固定長セルへの分割により発生する空き領域が大きく削減され、効率のよい交換転送が実現される。
【００４９】
また、本実施の形態ではこの複数の可変長パケットを連結する処理は、入力インタフェース内において、同じ出力インタフェース２００から出力するパケットに対し行う。また、連結後のパケット長の規定サイズ（連結パケットサイズ）を予め設定し、入力インタフェースが受信する（同じ出力インタフェースから出力するパケット毎に）パケットを順次連結し、その連結パケットが規定サイズに達した時点で分割を実行し当該出力インタフェースに送出する。これにより、（パケットを一定個数毎にまとめて連結する方式よりも）分割後に空き領域の占める割合を効率よく削減することができる。
【００５０】
図２は、本実施の形態の入力インタフェース１００の構成を示すブロック図である。また、本実施の形態のパケット交換機１が備える各入力インタフェース１００の構成は同様である。
【００５１】
図２を参照すると、本実施の形態の入力インタフェース１００は、受信する電気信号からパケットを取り出す可変長パケット抽出部１０と、パケットのヘッダ部分から宛先情報を取り出してアドレス解決を行うアドレス解決部２０と、アドレス解決に必要な情報を格納する経路検索テーブル３０と、可変長のパケットを装置内の固定長のセルに分割する装置内セル変換部４０と、スケジューラ部４００がスイッチ部３００の接続を決定するまでセルを格納する入力バッファ６０と、入力バッファの管理を行うバッファ管理部５０を備えている。
【００５２】
バッファ管理部５０は、スケジューラ部４００に対し、スイッチ部３００における接続要求１７を送出する。そして、そのスケジューリング結果１８が返ってくるまで、セルを入力バッファ６０内に、出力先である出力インタフェース２００毎に格納しておく。
【００５３】
バッファ管理部５０は、スケジューラ部４００からのスケジューリング結果１８を受けると、対応する装置内セルを入力バッファ６０から読み出してスイッチ部３００に送出する。スイッチ部３００においても、このスケジューラ部４００からのスケジューリング結果１８を受信し、入力インタフェース１００から送られた装置内セルを、その出力先の出力インタフェース２００に送る。
【００５４】
図３は、本発明の第１の実施の形態の出力インタフェースの構成を示すブロック図である。また、本実施の形態のパケット交換機１が備える各出力インタフェース２００の構成は同様である。
【００５５】
出力インタフェース２００は、スイッチ部３００から送られる装置内セルを受信し、分割前のパケットの状態に組み立てて（つまり、その順番に従い連結して）戻す装置内セル受信部７０と、このパケットが複数の可変長パケットを連結して構成される場合に、これをそれぞれのパケットに分離して復元するパケット分離部８０を備えている。
【００５６】
図４は、本実施の形態の装置内セル変換部４０の構成を示すブロック図である。各入力インタフェース１００における装置内セル変換部４０の構成は、これに同様である。
【００５７】
図４を参照すると、本実施の形態の装置内セル変換部４０は、パケットを宛先毎に格納できる入力バッファ４２と、受信したパケットの宛先に従い入力バッファ４２内の対応する宛先毎に設けられた入力バッファ４２に書き込むためのパケット書込制御部４１と、入力バッファ４２からパケットを読み出す処理を行うパケット読出部４３と、パケットの読出要求を生成するパケット読出制御部４４と、連結パケットの生成フラグと蓄積パケットサイズを格納するためのバッファ状態管理メモリ４７と、連結パケットの生成を開始してからの経過時間を計測するためのタイマー部４５と、入力バッファ４２から読み出したパケットを装置内の固定長のセルに分割するためのパケット分割部４６を備える。
【００５８】
パケット書込制御部４１は、受信したパケットを入力バッファ４２に書き込むと共に、受信したパケットのサイズをパケット読出制御部４４に通知する。
【００５９】
パケット読出制御部４４は、通知されたパケットのサイズを元に、連結パケットの生成を決定する。つまり、連結後のパケットのサイズが大きすぎたり小さすぎたりしないように、入力バッファ４２に格納されているパケットの（合計）サイズを、予め設定された規定サイズと比較を行うことで、適切なサイズにパケットを連結する。
【００６０】
パケット読出制御部４４は、このため、連結パケットの生成フラグと入力バッファ４２に格納されているパケットのサイズを、バッファ状態管理メモリ４７に格納し、この入力バッファ４２に格納されているパケットのサイズが連結パケットのサイズになると、この連結パケットの読出要求をパケット読出部４３に送出する。
【００６１】
タイマー部４５は、連結パケットの生成を開始してからの時間を計測しており、ある一定時間経過したことをパケット読出制御部４４が検出した場合は、パケット読出部４３にパケットの読出要求を通知する。
【００６２】
これは、連結パケットのサイズが、望ましいサイズに達しないことが原因で、送信すべき各パケットがいつまでも入力バッファ４２で待機状態となることを防止するための処理である。
【００６３】
パケット分割部４６は、パケット読出部４３により読み出された（連結）パケットを、固定長の装置内セルに変換する。これは、図１０の本実施の形態のパケットの分割の例に示されるように、このパケットを予め定められた長さに分割し、そのそれぞれにセルヘッダを付加することで装置内セルに変換するのである。
【００６４】
図５は、本実施の形態の装置内セル受信部７０の構成を示すブロック図である。各出力インタフェース２００における装置内セル受信部７０の構成は、これに同様である。
【００６５】
図５を参照すると、本実施の形態の装置内セル受信部７０は、装置内セルの送り元の入力インタフェース１００毎に設けられた出力バッファ７２と、スイッチ部３００から受けた装置内セルを出力バッファ７２に書き込むためのセル書込制御部７１と、出力バッファ７２からパケットを構成するセルを読み出すためのセル読出制御部７３と、読み出したセルをパケットに組み立て直すためのパケット組立部７４を備える。
【００６６】
セル書込制御部７１は、スイッチ部３００から受けた装置内セルをその送り元の入力インタフェース１００毎に出力バッファ７２に書き込み、またそのセルがパケットを構成する最終のセルである場合、最終セルを受けたこと（当該パケットを構成する全ての装置内セルを無事に受けたこと）をセル読出制御部７３に通知する。
【００６７】
セル読出制御部７３は、最終セルの受けた旨の通知を受けると、その装置内セルの送出元の入力インタフェース１００に対応するバッファから、当該パケットを構成する全ての装置内セルの読み出しを行う。
【００６８】
パケット組立部７４は、このセル読出制御部７３が読み出した装置内セルから元のパケットを組み立てる。
【００６９】
次に、本実施の形態のパケット交換機１の動作を詳細に説明する。
【００７０】
図６は、本実施の形態の装置内セル変換部４０の動作を説明するためのフローチャートであり、図７は、本実施の形態の出力インタフェース２００の動作を説明するためのフローチャートである。
【００７１】
この図６、７のフローチャートを参照して、入力インタフェース１００から出力インタフェース２００にパケットを転送する動作を説明する。
【００７２】
まず、本発明のパケット交換機１が、外部から送信データを受信すると、可変長パケット抽出部１０は、この受信したデータから可変長パケットを取り出す処理を行う。
【００７３】
例えば、可変長パケットがＩＰパケットである場合、入力インタフェース１００が収容している回線のレイヤ１やレイヤ２を終端して、ＩＰパケットを取り出してアドレス解決部２０に転送する処理を行う。
【００７４】
アドレス解決部２０は、受信したパケットのヘッダの宛先情報をもとに経路検索テーブル３０を検索して、出力先のインタフェース２００の情報を得る。この出力先のインタフェース２００の情報は、装置内セル変換部４０に通知し、出力先毎にパケットを格納するために使用する。
【００７５】
また、アドレス解決部２０は、パケットヘッダから宛先情報を取得すると同時にパケット長を取得して、装置内ヘッダを生成する。例えば、装置内ヘッダには、有効／無効を示すビットとパケットのサイズを示すパケット長のデータ等を記録する。
【００７６】
パケット書込制御部４１は、アドレス解決部２０から通知された出力先のインタフェース情報をもとに、出力先インタフェース２００用の入力バッファ４２にパケットを書き込む（ステップ６００）。
【００７７】
そして、パケット書込制御部４１は、パケットの装置内ヘッダを参照してパケットのサイズを取得し、このパケットのサイズをパケット読出制御部４４に通知する（ステップ６０１）。
【００７８】
パケット読出制御部４４は、連結パケットの生成処理の判定とパケット読出要求の生成を行う。まず、パケットのサイズをパケット書込制御部４１から通知を受けた時、バッファ状態管理メモリ４７からバッファ状態を読み出す。
【００７９】
バッファ状態管理メモリ４７は、例えば図９に示すように出力先インタフェース毎の（例えば、第１（＃１）から第ｎ（＃ｎ）までの）、連結パケット生成フラグ９００とバッファ格納データサイズ９０１を記憶しておくメモリである。
【００８０】
パケット読出制御部４４は、出力先インタフェース情報を基に、連結パケット生成フラグと入力バッファ４２に格納されているデータサイズを読み出し、連結パケット生成フラグのチェックを行う（ステップ６０２）。
【００８１】
連結パケット生成フラグ９００は、対応する出力インタフェース２００毎に設けられた入力バッファ４２の状態が、連結パケットを生成中であるか否かを示すフラグである。
【００８２】
連結パケットの生成中でない場合、パケット読出制御部４４は、受信したパケットのサイズを、予め設定した分割の実行を待機する上限のサイズである連結パケットサイズとの比較を行う（ステップ６０３）。
【００８３】
もし、新たに受信したパケット自体のサイズが、この連結パケットサイズ以上であれば、パケット読出制御部４４は、該当パケットをそのまま装置内セルに分割するために、パケットの読出要求を生成する（ステップ６０４）。パケットの読出要求は、読み出すべきバッファ情報と読出サイズ等を備える。
【００８４】
一方、この新たに受信したパケットのサイズが、連結パケットサイズより小さい場合では、バッファ状態管理メモリ４７の所定の場所において、その連結パケット生成フラグを“ＯＮ”にし（ステップ６０５）、かつこの受信したパケットのサイズを格納する（ステップ６０６）。
【００８５】
連結パケットの生成中においては（ステップ６０２でフラグが“ＯＮ”の場合）、タイマー部４５において、連結パケットの生成を開始してから経過した時間を計測し、パケット読出制御部４４は、その経過時間のデータを取得して、予め設定されている規定の時間を超えていないかをチェックする（ステップ６０７）。
【００８６】
規定の時間を既に経過している場合には、パケット読出制御部４４は、入力バッファ４２に格納されたデータサイズをバッファ状態管理メモリ４７から読み出し、このデータサイズを基にパケットの読出要求を生成し、これの連結パケット生成フラグを“ＯＦＦ”にする（ステップ６０９）。
【００８７】
規定の時間をまだ経過していない場合には、パケット読出制御部４４は、入力バッファ４２に格納されているデータサイズをバッファ状態管理メモリ４７から読み出し、このデータサイズにパケット書込制御部４１から通知されたパケットサイズを加算して、予め設定されている連結パケットサイズより大きいかどうかの比較を行う（ステップ６０８）。
【００８８】
連結パケットサイズより大きい場合には、パケット読出制御部４４はこの加算後の合計サイズ分のパケット読出要求を生成し（ステップ６０９）、小さい場合には、パケット読出制御部４４はこの合計サイズのデータをバッファ状態管理メモリ４７に格納する（ステップ６１０）。
【００８９】
パケット読出制御部４４は、以上のステップ６０７から６０９の処理により入力バッファ４２内に記録済みのパケットに対する読出要求を生成（ステップ６０９）した場合においては、新たに受信したパケットに対する処理が未処理のままであるため、続いてこの新たに受信したパケットに関して、連結パケットを生成するかどうかの判定処理を行う（ステップ６０３〜６０６）。この場合の（ステップ６０３〜６０６の）判定処理は、連結パケット生成フラグが“ＯＦＦ”の場合（ステップ６０２）の処理と同様であるため省略する。
【００９０】
パケット分割部４６は、パケット読出部４３が読み出したパケットを、固定長のサイズのセルに分割してセルヘッダを付加する。
【００９１】
セルヘッダは、図８に示すようにセルの有効／無効を示す情報８００と、連結パケットかどうかを示す情報８０２と、セルがパケットを構成する最終セルかどうかを示す情報８０１と、送り元の入力インタフェース１００を識別するための情報８０３等を記録する。
【００９２】
バッファ管理部５０は、装置内セル変換部４０から送られる装置内セルを受けて、スケジューラ部４００に接続要求１７を送出し、スケジューリング結果が返ってくるまでの間、出力インタフェース２００毎に設け入力バッファ６０に装置内セルを格納する。
【００９３】
スケジューラ部４００は、各入力インタフェース１００からの接続要求を受けて、スイッチ部３００の入力ポートと出力ポートの接続決定を行い、スケジューリング結果を各入力インタフェース１００に送る。
【００９４】
バッファ管理部５０は、スケジューラ部４００からスケジューリング結果を受けると、対応するセルを入力バッファ６０から読み出して、スイッチ部３００に送出する。
【００９５】
スイッチ部３００は、入力インタフェース１００から送られた装置内セルを出力先の出力インタフェース２００に転送し、出力インタフェース２００の装置内セル受信部７０がその装置内セルを受ける。
【００９６】
図７は、本実施の形態の出力インタフェース２００の動作を説明するためのフローチャートである。
【００９７】
出力インタフェース２００においては、送られた装置内セルを、セル書込制御部７１により、セルヘッダ内の送り元インタフェース情報８０３をもとに、出力バッファ７２内の送り元の入力インタフェース１００毎に設けられた記録位置に書き込む（ステップ７００）。
【００９８】
セル書込制御部７１は、セルヘッダ内の元のパケット（連結パケット）を構成するセルの最終セルかどうかの情報を監視して（ステップ７０１）、最終セルを受けた場合にはその旨をセル読出制御部７３に通知する。
【００９９】
セル読出制御部７３は、最終セルを受けた旨の通知を受けると、出力バッファ７２から当該パケットを構成する一連のセルを読み出して、パケット組立部７４に送る。
【０１００】
パケット組立部７４は、この一連の各セルからセルヘッダや空き領域を取り除いて連結し、元のパケット（連結パケット）の状態に組み立て直す（ステップ７０２）。
【０１０１】
また、セルヘッダのセルタイプ７０２により連結パケットであると判定された場合には（ステップ７０３）、この組み立てたパケットをパケット分離部８０に送る。
【０１０２】
パケット分離部８０は、連結パケットである場合には、装置内ヘッダにおいて示される各パケットのパケットサイズのデータを基に、その各パケットを分割して取り出し（ステップ７０４）、次の装置内ヘッダの有効／無効情報を参照し、有効かどうかの判定を行う（ステップ７０６）。
【０１０３】
有効である場合は、装置内ヘッダのパケットサイズを基にパケットを取り出し、次の装置内ヘッダが有効であるかどうかを判定する。これらの処理を装置内ヘッダが無効になるまで（つまり、元の全てのパケットを取り出し終えるまで）繰り返す。
【０１０４】
連結パケットでない場合は（つまり、単一のパケットである場合には）、装置内ヘッダのパケットサイズを基に当該パケットを取り出す（ステップ７０５）。
【０１０５】
図１０は、本実施の形態によるパケットの分割を説明するための図である。
【０１０６】
図１０においては、様々な長さの（第１から第３までの）３個の可変長パケット１０００を、装置内セルに変換する様子を示している。
【０１０７】
まず、各可変長パケット１０００のそれぞれに、装置内ヘッダ１００２を付加した後に、順に連結して連結パケット１００３を生成する。
【０１０８】
次に、この連結パケット１００３を固定長に分割し、そのそれぞれにセルヘッダ１００４を付加することにより装置内セル１００６を構成する。
【０１０９】
固定長の分割の最後において、固定長に満たない場合は、空き領域１００５を付加して装置内セル１００６を構成する。
【０１１０】
次に、本発明の第２の実施の形態を詳細に説明する。
【０１１１】
図１１は、本発明の第２の実施の形態の装置内セル変換部４０ａの構成を示すブロック図であり、図１２は、その動作を説明するためのフローチャートである。
【０１１２】
図１１を参照すると、本実施の形態の装置内セル変換部４０ａは、第１の実施の形態の装置内セル変換部４０の構成に加えて、連結パケット生成の過程でパケットの送出の可否を判断するための送出可否検索テーブル４８を有する。
【０１１３】
送出可否検索テーブル４８は、入力バッファ４２内に格納されているパケットのデータサイズを基に、当該パケットの送出可否を検索するためのテーブルである。
【０１１４】
ここで、パケットの送出可否の判定は、そのパケットを固定長の装置内セルに分割して変換した場合において、必要とする空き領域が占める比率が、予め設定された一定量以下の場合に送出可と判定する。ここで、空き領域が占める比率を算出するために用いる、全体のサイズは、当該分割により生成された全てのセルのサイズの合計や、又その空き領域を含むセルのみの（固定長の）サイズ等を使用することができ、こうして予め設定された方式を用いて算出する。
【０１１５】
図１３は、本実施の形態の送出可否検索テーブル４８に記憶するデータの構成を示す図である。
【０１１６】
送出可否検索テーブル４８は、図１３に示すように、格納データサイズに対応して送出可否の指定を示すデータ（可を“１”、不可を“０”により示す等）を記憶するのであり、又このため連結パケットサイズ（つまり、パケットを分割・送信せずに連結を続ける上限サイズ）までの、各サイズに対応する可否を示すのテーブルを備えればよい。
【０１１７】
本実施の形態の装置内セル変換部４０ａの動作は、図６のフローチャートに示される第１の実施の形態の動作と、ステップ６１０以降の動作のみが異なり、他の動作は第１の実施の形態と同様である。このため、パケット読出制御部４４における、ステップ６０２における連結パケット生成フラグが立っているかどうかの判定や、連結パケット生成フラグが立っていない場合の処理等は、第１の実施の形態と同様であるため省略する。
【０１１８】
ステップ６０２において連結パケット生成フラグが立っている場合は、まず連結パケットの生成を開始してから経過した時間を計測しているタイマー部４５から経過時間を取得して、予め設定されている規定の時間を超えていないかのチェックを行う（ステップ６０７）。
【０１１９】
規定の時間経過している場合、バッファ状態管理メモリ４７から読み出されたバッファ格納データサイズをもとにパケットの読出要求を生成し、連結パケット生成フラグをＯＦＦにする（ステップ６０９）。
【０１２０】
規定の時間経過していない場合、バッファ状態管理メモリ４７から読み出したバッファに格納されているデータサイズとパケット書込制御部４１から通知されたパケットサイズを加算して合計サイズを算出し、この合計サイズが予め設定されている連結を続ける上限サイズ（連結パケットサイズ）よりも大きいかどうかの比較を行う（ステップ６０８）。
【０１２１】
大きい場合は、バッファ状態管理メモリ４７から読み出されたバッファ格納データサイズ分のパケット読出要求を生成し、その全パケットの送出を指示する（ステップ６０９）。
【０１２２】
小さい場合は加算された合計サイズをバッファ状態管理メモリ４７に格納する（ステップ６１０）。ここで、この合計サイズの値を基に、当該出力先にパケットを送出する場合に（つまり、全パケットを連結した後に固定サイズに分割した場合に）必要とする空き領域が全体に占める割合が決定され、この空き領域の割合が定められた値以下の場合においては、パケットの送出を実行する。
【０１２３】
このパケットの送出可否の判定は、送出可否検索テーブル４８を参照することにより行う。送出可否検索テーブル４８においては、パケットの合計サイズの各値に対応して、送出を実行するか否かの判定を記録している。つまり、送出可否検索テーブル４８には、各合計サイズの場合における上記空き領域の割合に基づき、空き領域の割合が（定められた割合よりも）少ない場合に送出可と判定した判定結果を、各合計サイズに対応させて予め記録しているのである。
【０１２４】
これにより、送出可否検索テーブルを参照し、パケットの合計サイズに基づき送出可否の判定結果を検索することにより（ステップ１２００）、送出可否の判定を得る。
【０１２５】
送出可である場合は、前記加算されたサイズのパケット読出要求を生成し、バッファ状態管理メモリ４７内の連結パケット生成フラグをＯＦＦにする（ステップ１００１）。また、送出不可の場合には、送出を実行せずに終了する。
【０１２６】
以上説明した本実施の形態により、装置内セルに分割した際の空き領域の割合がある設定値以下になる場合には、規定の連結パケットサイズに満たない状態においても送出を実行するため、装置内セルにおける空き領域の占める割合をより低くすることができ、更にパケットの送信するまでの時間を短縮することができる。
【０１２７】
また、本実施の形態の上記の例では、各合計サイズに対応する送出可否の判定結果を記録した送出可否検索テーブル４８を用いているが、送出可否の判定はこうしたテーブルを参照する方式の他にも、ステップ６１０におけるパケットの合計サイズをバッファ状態管理メモリに格納する時に、当該合計サイズの値を基に必要とする空き領域の全体に占める割合の算出を実行し、空き領域の割合が定められた値以下の場合において送出する方式も可能である。
【０１２８】
しかし、送出可否検索テーブル４８を参照する方式においては、空き領域の占める割合を算出するための算術演算を実行する必要がなく、直接判定結果をパケットの合計サイズの値に対応して送出可否検索テーブル４８から得られるため、高速にかつ常に安定したスピードで送出可否を判定し処理することができる。
【０１２９】
次に本発明の第３の実施の形態について詳細に説明する。
【０１３０】
本発明の第３の実施の形態は、入力インタフェース１００ｂの装置内セル変換部４０ｂにおいて、パケットもしくは連結パケット単位に装置内セルに分割することは行わず、受信したパケットを意識することなく装置内セルに分割し、スイッチ部３００から装置内セルを受けた出力インタフェース２００ｂにおいて、パケット単位に付加される装置内ヘッダのポインタ情報を参照して、次のパケットの先頭を検出する機構を設けることにより、パケット及び連結パケット単位での装置内セル分割処理を不要とすることを特徴とする。
【０１３１】
図１４は、本実施の形態の装置内セル変換部４０ｂの構成を示すブロック図である。
【０１３２】
図１４を参照すると、本実施の形態の装置内セル変換部４０ｂは、第１の実施の形態におけるパケット読出制御部４４とパケット読出部４３とバッファ状態管理メモリ４７を備える必要がなく、又代わりにバッファの蓄積状態をセル読出部４９に通知するためのバッファ状態信号１４００の送出を行っている。
【０１３３】
図１５は、本実施の形態の出力インタフェース２００ｂの構成を示すブロック図である。
【０１３４】
出力インタフェース２００ｂは、第１の実施の形態におけるセル書込制御部７１の構成が、各入力インタフェース１００から転送される一連のセルがエラーの状態にあるかを判定するエラー状態検出部７５と装置内ヘッダをもとにパケットの区切りを検出するパケット抽出部７６とセル廃棄やビットエラーなどにより装置内ヘッダを検出できない場合に、当該データから装置内ヘッダを検出する装置内ヘッダ検出部７７と、パケットを検出するために必要な情報を格納しておくためのパケット検出メモリ７８を新たに備えている。また、第１の実施の形態おけるパケット分離部８０を備える必要がない。
【０１３５】
ここで、本実施の形態のパケット交換機１ｂにおいて、入力インタフェース１００ｂで受信したパケットを出力インタフェース２００ｂに転送する処理を説明する。また、パケットを受信して装置内セル変換部４０ｂに転送するまでの処理は、第１の実施の形態と同様であるため省略する。
【０１３６】
パケット書込制御部４１は、アドレス解決部２０が出力インタフェース２００ｂを決定したパケットを受け、その出力インタフェース２００ｂ毎に設けられた入力バッファ４２の該当する出力インタフェース２００ｂ宛ての入力バッファ４２に書き込む。そして、パケット書込制御部４１は、その出力インタフェース２００ｂ宛てのパケットを受けたことをセル読出部４９に通知する。
【０１３７】
セル読出部４９は、入力バッファ４２からのバッファ状態信号１４００で入力バッファ４２内に装置内セルの１個分のサイズのデータが格納されているかを検出して、格納されている場合は装置内セルの１個分のサイズのデータを読み出してセルヘッダを付加する。
【０１３８】
タイマー部４５は、バッファからのデータの読み出しの終了後の経過時間を出力先インタフェース毎に計測しており、ある一定時間経過した場合にはセル読出部４９に通知する。
【０１３９】
通知を受けたセル読出部４９は、通知を受けたバッファに格納されているデータを読み出し、装置内セルのサイズに足りない分は空き領域として送出し、最終セルを示すセルヘッダを付加する。
【０１４０】
バッファ管理部５０からスイッチ部３００を経由して出力インタフェース２００ｂに転送する動作に関しては、第１の実施の形態と同様であるため省略する。
【０１４１】
まず、出力インタフェース２００ｂの処理に関して、正常に装置内ヘッダを検出できた場合の処理を説明する。図１７は、本実施の形態の出力インタフェース２００ｂの動作を説明するためのフローチャートである。
【０１４２】
まず、エラー状態検出部７５において、スイッチ部３００により転送されたセルのセルヘッダ内に格納されている送出元インタフェース情報を検出し、送出元インタフェース情報をもとにパケット検出メモリ７８を読み出し、エラー状態にあるかどうかの判定を行う（ステップ１７００）。
【０１４３】
図１６は、本実施の形態のパケット検出メモリ７８内に記憶するデータの構成の一例を示す図である。
【０１４４】
図１６の例のパケット検出メモリ７８は、送出元の入力インタフェース１００毎にセルの廃棄やビットエラーにより装置内ヘッダを検出できないエラー状態を示すビット１６００と、装置内ヘッダに格納されている次装置内ヘッダへのポインタ情報１６０１と、これまでに送られたデータサイズ１６０２を格納している。次装置内ヘッダへのポインタ情報とは、例えばパケットサイズである。
【０１４５】
装置内セルはパケット抽出部７６に渡され、セルヘッダを取り出し先頭セルかどうかの判定を行う（ステップ１７０１、１７０２）。先頭セルの判定は、例えば、各入力インタフェースからの最終セルを受けたその次に送られた装置内セルかどうかで判定可能である。
【０１４６】
先頭セルの場合、セルの先頭部分に装置内ヘッダがあるためそれを取り出す（ステップ１７０３）。そして、取り出した装置内ヘッダが正しいかどうかの判定を行う（ステップ１７０４）。
【０１４７】
装置内ヘッダに格納されている次装置内ヘッダへのポインタを参照して（ステップ１７０５）、送られた装置内セル内に次装置内ヘッダが存在するかを判定する（ステップ１７０６）。
【０１４８】
存在しない場合は、次装置内ヘッダへのポインタ情報とデータサイズをパケット検出メモリ７８に格納する（ステップ１７０９）。
【０１４９】
存在する場合は、セル内のパケットに対する読出要求を生成して次装置内ヘッダへのポインタを参照して（ステップ１７０７）、装置内ヘッダを取り出す処理を再び行う（ステップ１７０３）。
【０１５０】
これら一連の処理を、装置内セルに装置内ヘッダが存在しなくなるまで繰り返す。
【０１５１】
先頭セルでない場合、パケット抽出部７６はパケット検出メモリ７８から次装置内ヘッダへのポインタ情報とデータサイズを読み出す（ステップ１７１０）。
【０１５２】
送られた装置内セルが最終セルかどうかの判定を行い（ステップ１７１１）、最終セルの場合は、パケットの読出要求を生成する（ステップ１７１６）。
【０１５３】
最終セルでない場合、パケット検出メモリから読み出したポインタ情報とデータサイズをもとにセル内に装置内ヘッダが存在するかどうかを判定する（ステップ１７１２）。
【０１５４】
この判定は、例えば次装置内ヘッダへのポインタ情報がパケットサイズの場合、パケット検出メモリ７８から読み出した総データ量と今回送られた装置内セルのサイズを加算して、ポインタ情報と比較することで可能である。
【０１５５】
次装置内ヘッダが存在しない場合は、次装置内ヘッダへのポインタ情報と、今回送られた装置内セルのサイズをこれまでに記録された装置ないセルのサイズの累計に加算したデータサイズを、パケット検出メモリに格納する（ステップ１７０９）。
【０１５６】
装置内ヘッダがセル内に存在する場合、装置内ヘッダを取り出して正しいかどうかを判定する（ステップ１７１３、１７１４）。パケットの読出要求を生成して次装置内ヘッダへのポインタを参照し（ステップ１７１５）、以降の装置内セル内に次装置内ヘッダが存在するかどうかの判定を行う（ステップ１７１２）。
【０１５７】
これら一連の処理を、装置内セルに装置内ヘッダが存在しなくなるまで繰り返す。
【０１５８】
送出元の入力インタフェース１００毎に設けられたセル格納出力バッファ７２に書き込まれたパケットは、読出制御部７３によりパケット読出要求をもとに読み出される。
【０１５９】
次に、出力インタフェース２００ｂの処理に関して、正常に装置内ヘッダを検出できなかった場合の処理について説明する。図１８は、本実施の形態の出力インタフェース２００ｂにおけるエラー処理の動作を説明するためのフローチャートである。
【０１６０】
正常に装置内ヘッダを検出できたかどうかの判定は、入力インタフェース１００ｂにおいて装置内ヘッダの有効／無効ビット以外に識別するための特定パターンを挿入することにより、出力インタフェース２００ｂの側で比較することで行うことが可能である。
【０１６１】
エラー状態である場合は、パケット抽出部７６での処理は行われず、装置内ヘッダ検出部７７で装置内ヘッダを検出する処理が行われる。
【０１６２】
まず、それまでに受信したパケットをエラーパケットとして読出要求を生成し（ステップ１８００）、送られた装置内セルの中に装置内ヘッダが存在するかを判定する（ステップ１８０１）。
【０１６３】
エラーパケットに対する読出要求を受けた読出制御部７３は、セル格納出力バッファ７２からパケットを読み出して廃棄を行う。
【０１６４】
装置内ヘッダが存在しない場合は、送られた装置内セルをセル格納バッファに書き込むことなく装置内セルに対する処理を終了する。
【０１６５】
装置内ヘッダが存在する場合は、パケット検出メモリ７８に格納されているエラー状態を正常にして（ステップ１８０２）、装置内ヘッダから次装置内ヘッダへのポインタ情報を取り出す（ステップ１８０３）。
【０１６６】
前記ポインタ情報をもとに、以降のセル内に更に次の装置内ヘッダが存在するかどうかを検索する（ステップ１８０４）。
【０１６７】
以降のセル内に装置内ヘッダが存在するかどうかの判定は、例えば次装置内ヘッダへのポインタ情報がパケットサイズの場合、ポインタ情報とセルサイズを比較することで可能である。
【０１６８】
次装置内ヘッダが存在しなければ次パケットへのポインタ情報とデータサイズをパケット検出メモリ７８に格納する（ステップ１８０７）。
【０１６９】
更に次の装置内セルヘッダが存在する場合、セル内にパケットが含まれていることになるためパケットの読出要求を生成する（ステップ１８０５）。
【０１７０】
次装置内ヘッダが正しいかどうかを特定パターンにより判定し（ステップ１８０６）、正しい場合は次パケットへのポインタ情報の取り出し、間違っている場合は装置内ヘッダの検出を再び行う。
【０１７１】
以上説明した本実施の形態のパケット交換機１ｂでは、入力インタフェース１００ｂにおいて、パケットを意識せずにセルに分割し、出力インタフェース２００ｂにおいて装置内ヘッダに埋め込まれた次装置内ヘッダへのポインタ情報をもとにパケットを識別するための機構を設けることにより、装置内セルに分割する場合に付加される空き領域を極力抑え、スイッチ部の転送帯域をより有効に利用することができる。
【０１７２】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【０１７３】
【発明の効果】
以上説明したように本発明のパケット交換機によれば、以下のような効果が達成される。
【０１７４】
第１に、可変長パケット等による通信データを、装置内部において固定長の装置内セルに分割し変換した状態で送受するパケット交換機において、複数の可変長パケットを順次まとめて１つに連結した後に、固定長の装置内セルに分割し変換することにより、装置内セル内の空き領域の占める割合を大幅にかつ効果的に少なくすることが可能となり、効率的な通信が実現する。
【０１７５】
第２に、本発明の第２の実施の形態によれば、送信待ちのデータに対し、必ずしも一定量（連結パケットサイズ）の蓄積を待機せずに、もしこれを分割して固定長の装置内セルに変換した場合に必要とする空き領域の占める割合が、所定の設定値よりも少ない場合には直ちに装置内セルに変換し送信を行うことにより、空き領域の占める割合の更なる削減と、通信データの送信までの待ち時間の短縮を同時に実現することができる。
【０１７６】
第３に、本発明の第３の実施の形態によれば、送信待ちのデータおいて、１つの装置内セルへの変換の可能な量のデータか蓄積された場合に、直ちに装置内セルを生成し送信するために、通信データの送信までの待ち時間を最小限に短縮すると共に、かつ装置内セルにおける空き領域の占める割合もより低く抑えることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態によるパケット交換機の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の入力インタフェースの構成を示すブロック図である。
【図３】本発明の第１の実施の形態の出力インタフェースの構成を示すブロック図である。
【図４】本発明の第１の実施の形態の装置内セル変換部の構成を示すブロック図である。
【図５】本発明の第１の実施の形態の装置内セル受信部の構成を示すブロック図である。
【図６】本発明の第１の実施の形態の装置内セル変換部の動作を説明するためのフローチャートである。
【図７】本発明の第１の実施の形態の出力インタフェースの動作を説明するためのフローチャートである。
【図８】本発明の第１の実施の形態のセルヘッダの構成を示す図である。
【図９】本発明の第１の実施の形態のバッファ状態管理メモリ内に記憶するデータの構成を示す図である。
【図１０】本発明の第１の実施の形態によるパケットの分割を説明するための図である。
【図１１】本発明の第２の実施の形態の装置内セル変換部の構成を示すブロック図である。
【図１２】本発明の第２の実施の形態の装置内セル変換部の動作を説明するためのフローチャートである。
【図１３】本発明の第２の実施の形態の送出可否検索テーブルに記憶するデータの構成を示す図である。
【図１４】本発明の第３の実施の形態の装置内セル変換部の構成を示すブロック図である。
【図１５】本発明の第３の実施の形態の出力インタフェースの構成を示すブロック図である。
【図１６】本発明の第３の実施の形態のパケット検出メモリ内に記憶するデータの構成を示す図である。
【図１７】本発明の第３の実施の形態の出力インタフェースの動作を説明するためのフローチャートである。
【図１８】本発明の第３の実施の形態の出力インタフェースにおけるエラー処理の動作を説明するためのフローチャートである。
【図１９】従来のパケット交換機の構成を示すブロック図である。
【図２０】従来のパケット交換機によるパケットの分割を説明するための図である。
【符号の説明】
１、１ａ、１ｂ  パケット交換機
１００  入力インタフェース
１０  可変長パケット抽出部
２０  アドレス解決部
３０  経路探索テーブル
４０  装置内セル変換部
４１  パケット書込制御部
４２  バッファ
４３  パケット読出部
４４  パケット読出制御部
４５  タイマー部
４６  パケット分割部
４７  バッファ管理メモリ
４８  送出可否検索テーブル
４９  セル読出部
５０  バッファ管理部
６０  入力バッファ
２００  出力インタフェース
７０  装置内セル受信部
７１  セル書込制御部
７２  バッファ
７３  セル読出制御部
７４  パケット組立部
７５  エラー状態検出部
７６  パケット抽出部
７７  装置内ヘッダ検出部
７８  パケット検出メモリ
７９  セル格納バッファ
８０  パケット分離部
９０  セル格納バッファ
３００  スイッチ部
４００  スケジューラ部
【図１】
0003584853.tif 000002
【図２】
0003584853.tif 000003
【図３】
0003584853.tif 000004
【図４】
0003584853.tif 000005
【図５】
0003584853.tif 000006
【図６】
0003584853.tif 000007
【図７】
0003584853.tif 000008
【図８】
0003584853.tif 000009
【図９】
0003584853.tif 000010
【図１０】
0003584853.tif 000011
【図１１】
0003584853.tif 000012
【図１２】
0003584853.tif 000013
【図１３】
0003584853.tif 000014
【図１４】
0003584853.tif 000015
【図１５】
0003584853.tif 000016
【図１６】
0003584853.tif 000017
【図１７】
0003584853.tif 000018
【図１８】
0003584853.tif 000019
【図１９】
0003584853.tif 000020
【図２０】
0003584853.tif 000021