(57)【特許請求の範囲】
【請求項１】
多重化されて送信されてくる多重化データを受信し、前記多重化データを分離するポートエキスパンダ部と、
前記ポートエキスパンダ部から送信される、第１と第２の伝送レーンを含む複数の伝送レーンであって、前記第１と第２の伝送レーンはプロトコルと伝送データレートの少なくとも一つが異なる複数の伝送レーンのデータを受信するインタフェース部と、
前記インタフェース部から送信される、前記複数の伝送レーンのデータを受信する、FPGA （Field Programmable Gate Array）で構成されるネットワークプロセッサ部と、
前記ネットワークプロセッサ部から送信されるデータの内容を処理するパケットエンジン部と、
前記ネットワークプロセッサ部のFPGAの回路の設定を制御する制御部を有し、
前記制御部は、前記多重化されて送信されてくる多重化データから、前記複数の伝送レーンの、プロトコル、伝送データレート、およびレーン数のうち少なくとも一つに関する制御情報を抽出し、
前記制御部は、前記制御情報に基づいて、前記ネットワークプロセッサ部のFPGAの回路の設定を制御し、
前記パケットエンジン部で処理されたデータを他の通信装置へデータを送信するスイッチ装置。
【請求項２】
前記制御部は、前記多重化されて送信されてくる多重化データから、前記複数の伝送レーンの、プロトコルと伝送データレートに関する情報を抽出し、
前記制御部は、前記プロトコルと伝送データレートに関する情報に従って、前記ネットワークプロセッサ部のFPGAの回路の設定を制御する、
請求項１記載のスイッチ装置。
【請求項３】
前記制御部は、前記多重化されて送信されてくる多重化データから、前記複数の伝送レーンの、レーン数に関する情報を抽出し、
前記制御部は、前記複数の伝送レーンの、データレートを検出し、
前記制御部は、前記レーン数と前記伝送データレートに関する情報に従って、前記ネットワークプロセッサ部のFPGAに設定すべき回路を判定し、当該回路を設定するように制御する、
請求項１記載のスイッチ装置。
【請求項４】
前記制御部は、前記多重化されて送信されてくる多重化データの有効/無効データの比率からデータレートを検出する、
請求項３記載のスイッチ装置。
【請求項５】
前記制御部からアクセス可能な記憶部を有し、
前記記憶部は、前記レーン数および前記伝送データレートと、インタフェース種類の対応情報を格納する、
請求項３記載のスイッチ装置。
【請求項６】
前記記憶部は、前記インタフェース種類または前記伝送データレートと、前記FPGAに設定すべき回路との対応情報を格納する、
請求項５記載のスイッチ装置。
【請求項７】
前記制御部は、前記レーン数と伝送データレートに関する情報に従って、前記ネットワークプロセッサ部のFPGAに設定すべき回路を判定する際に、
前記設定すべき回路の候補を優先順位をつけて抽出する、
請求項３記載のスイッチ装置。
【請求項８】
前記パケットエンジン部は、前記ネットワークプロセッサ部から入力されるデータ信号が正常に受信できない場合は、前記制御部にエラー信号をフィードバックし、
前記制御部は、前記エラー信号を受けると、前記優先順位をつけて抽出した回路の候補のうち、次の順位の回路の候補を、前記FPGAに設定する、
請求項７記載のスイッチ装置。
【請求項９】
前記制御部は、前記ネットワークプロセッサ部あるいは前記パケットエンジン部で、受信データの処理ができるかどうかチェックし、処理できなかった回数が所定閾値を超えた場合、前記ネットワークプロセッサ部のFPGAの回路の再設定を開始する、
請求項１記載のスイッチ装置。
【請求項１０】
前記制御部は、前記FPGAに形成すべき回路の候補複数種類を優先順位をつけて管理する機能を有し、
前記制御部は、前記FPGAに前記優先順位に従って回路を設定した後、前記パケットエンジン部から送付されるエラー信号の有無を確認し、
前記エラー信号がなかった場合は前記回路の設定を終了し、前記エラー信号があった場合は次順位の回路を前記FPGAに再設定する、
請求項１記載のスイッチ装置。
【請求項１１】
前記制御部は、前記ネットワークプロセッサ部のFPGAの回路の設定を行う際に、
形成する回路に必要な領域をFPGAに確保できない場合には、既存の回路で運用中の使用領域を含めて領域の再分割を行う機能を有する、
請求項１記載のスイッチ装置。
【請求項１２】
多重化された受信データを受信し、該受信データを第１と第２の伝送レーンを含む複数の伝送レーンであって、前記第１と第２の伝送レーンはプロトコルと伝送データレートの少なくとも一つが異なる複数のレーンに分離し、該分離されたレーンのデータをFPGAで構成されたネットワークプロセッサ部によって処理し、該処理したデータを外部の通信装置に送信するスイッチ装置の制御方法であって、
前記受信データに含まれるレーン数情報を抽出し、
前記受信データから前記レーンのデータレートを検出し、
前記レーン数情報と前記データレートに基づいて前記FPGAに設定すべき回路を特定し、
前記特定された回路を前記FPGAに設定するスイッチ装置の制御方法。
【請求項１３】
インタフェース種類と、該インタフェースに対応するレーン数およびデータレートを管理するプロトコル表を記憶し、
前記プロトコル表に基づいて、インタフェース種類を特定し、
前記特定されたインタフェース種類に基づいて前記FPGAに設定すべき回路を特定する、
請求項１２記載のスイッチ装置の制御方法。
【請求項１４】
前記インタフェース種類に対応する回路候補を管理するデザインテーブルを記憶し、
前記デザインテーブルに基づいて前記FPGAに設定すべき回路を特定する、
請求項１３記載のスイッチ装置の制御方法。
【請求項１５】
多重化されて送信されてくる多重化データを受信し、前記多重化データを分離するポートエキスパンダ部と、
前記ポートエキスパンダ部から送信される、第１と第２の伝送レーンを含む複数の伝送レーンであって、前記第１と第２の伝送レーンはプロトコルと伝送データレートの少なくとも一つが異なる複数の伝送レーンのデータを受信するインタフェース部と、
前記インタフェース部から送信される、前記複数の伝送レーンのデータを受信する、FPGA （Field Programmable Gate Array）で構成されるネットワークプロセッサ部と、
前記ネットワークプロセッサ部から送信されるデータの内容を処理するパケットエンジン部と、
前記ネットワークプロセッサ部のFPGAの回路の設定を制御する制御部を有し、
前記制御部は、前記複数の伝送レーン上のデータに関する判別情報を検出する検出部と、前記判別情報と前記FPGAに設定すべき回路との対応情報を格納する記憶部と、前記判別情報と前記対応情報に基づいて前記FPGAに設定すべき回路を判定し、前記FPGAに設定する論理回路制御部を有し、
前記パケットエンジン部で処理されたデータを他の通信装置へデータを送信するスイッチ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インタフェースに依存せずに、伝送データレートが異なるリンクを伝送するに好適なデータ伝送装置に関し、特に、低コストで運用可能なスイッチ装置に関する。
【背景技術】
【０００２】
通信トラッフィクの増大にともない、ネットワークの高速化・大容量化が求められている。また、近年ではネットワークに接続される信号は、多様化しており、例えばリンク層においては、Ethernet（登録商標）、FibreChannel、InfiniBand（登録商標）などの様々なインタフェース種類（データのプロトコルと伝送データレートの組み合わせ）が混在している。こうした中、OIF規格では10GbEや40GbEが混在したリンクを100GbEに束ねるMLG技術が開発されるなど、マルチレートに対応した信号多重化技術が検討されている（非特許文献１）。非特許文献１では、異なるインタフェース種類のリンクを多重・分離して大容量で伝送可能な装置が提案されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Multi-link Gearbox Implementation Agreement 2.0, Optical Internetworking Forum IA OIF-MLG-02.0
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このように、伝送データレートが異なるリンクを多重化して伝送するネットワークにおいて、プロトコルや伝送データレートに依存しないマルチレートに対応した、信号多重化技術の要求が高まっている。先に本発明者らは、リンク層プロトコルや伝送レーン数に依存せずに、データの多重化・分離化を可能とするデータ伝送装置（ポートエキスパンダ（PE))を検討した。ポートエキスパンダは、種々のプロトコルや伝送データレートのデータを多重化して送受信するものである。
【０００５】
図１は、ポートエキスパンダ（PE)を採用した、ネットワークの構成図である。送信装置（PE)１は、サーバ５やストレージ６から、プロトコルの異なるＬＡＮデータやＳＡＮデータを受信すると、これを多重化して送信する。受信装置（PE)２は、多重化信号を受信・分離し、信号ごとに、従来技術で構成されるＬ２（layer2：データリンク層）スイッチ３やＦＣ（FibreChannel）スイッチ４に送信する。装置１、２は、通常は送信機能と受信機能を両方備える送受信装置であるが、図１、図２では装置１は送信機能を、装置２は受信機能に注目して説明するものとする。
【０００６】
図２は、図１の詳細を説明する図で、送受信装置２とＬ２スイッチ３との接続関係およびＬ２スイッチ３の内部構成を示すブロック図である。
【０００７】
送受信装置１は、種々のプロトコルや伝送データレートのデータを多重化し、送受信装置２へ送信する。送受信装置２は、多重化されたデータを種々のプロトコルや伝送データレートのデータに分離し、従来技術で構成されるＬ２スイッチ３やＦＣスイッチ４に送信する。図２に示すＬ２スイッチの場合、送信されるプロトコルや伝送データレート毎に、インタフェース部１０−１〜１０−Ｎ、ネットワークプロセッサ２０、パケット多重化部３０、パケットエンジン部４０、を備えたボード５０のポートを選択し、接続する。ボード５０で処理されたデータはパケットスイッチ部６０でスイッチングされ、他のＬ２スイッチ装置との交信が可能となる。通常、ボード５０は必要な処理ができるように、複数のボードから構成される。
【０００８】
ところで、従来のＬ２スイッチやＦＣスイッチにおけるそれぞれのポートは、単一のインタフェース種（10GbE（Ethernet）,40GbE,16GＦＣなど）に対応する機能しか備えておらず、異なるインタフェース種間では物理的にも相互に接続することは出来ない。そこでユーザは、構成の変更がある都度、手動で受信装置２とスイッチ３の適切なポート間を結線する必要がある。また、適切なハードウェアが実装されていない場合は、ボード５０を追加する等の必要がある。
【０００９】
以上のように、複数のリンク層プロトコルを束ねる、プロトコル無依存リンク多重化が可能な送受信装置は、従来の個別のＬ２スイッチ、ＦＣスイッチと組み合わせることは可能なものの、運用時の煩雑さは運用コストを増大させる。また、自由度や拡張性はなく、それ以上の発展はない。また、送信側の入力データのプロトコルや伝送データレートが変更されて、多重化されたデータの中身が変わった時に、接続関係を手動で変更する必要がある。
【課題を解決するための手段】
【００１０】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、本発明は、プロトコルや伝送データレートに依存せずにリンク多重化が可能な送受信装置と、Ｌ２スイッチやＦＣスイッチとを１つの構成とし、人手を介さずに、各インタフェースに対応した処理回路に再構築する構成を提案する。
【００１１】
本発明の具体的な一側面は、多重化されて送信されてくる多重化データを受信し、多重化データを分離するポートエキスパンダ部と、ポートエキスパンダ部から送信される、異なるプロトコルと伝送データレートを有する複数の伝送レーンを受信する多重化インタフェース部と、多重化インタフェース部から送信される、異なるプロトコルと伝送データレートを有する複数の伝送レーンを受信することが可能な、FPGA （Field Programmable Gate Array）で構成されるネットワークプロセッサ部と、ネットワークプロセッサ部から送信されるデータの内容を処理するパケットエンジン部と、ネットワークプロセッサ部のFPGAの回路の設定を制御する制御部を有し、他の通信装置へデータを送信するスイッチ装置である。複数の伝送レーンは、其々のレーンが同じプロトコルと伝送データレートであってもよい。また、レーンの間で、プロトコルと伝送データレートの少なくとも一方が異なっていてもよい。
【００１２】
本発明は、ユーザがデータのプロトコルや伝送データレートをなるべく意識せずに、多重化データを受信し、処理できるスイッチ装置を提供する。そのため、スイッチ装置でプロトコルや伝送データレートの変化に対応できる構成を有する。具体的な構成例として、データを処理する回路をFPGAで構成し、入力データのプロトコルや伝送データレートに適合した回路を設定する。また、好ましい態様では、回路の設定の際に、送信側から必要な情報を受け取ったり、受信側でデータから必要な情報を抽出したりする。また、好ましい態様では、受け取ったり自ら抽出したりした情報から、設定すべき回路を特定するために必要な情報を記憶装置に格納し、回路設定の際にこの情報を参照する。
【００１３】
本発明の他の具体的な一側面は、多重化された受信データを受信し、受信データを複数種類のプロトコルおよび伝送データレートを含むレーンに分離し、分離されたレーンをFPGAで構成されたネットワークプロセッサ部によって処理し、処理したデータを外部の通信装置に送信するスイッチ装置の制御方法であって、受信データに含まれるレーン数情報を抽出し、受信データから前記レーンのデータレートを検出し、レーン数情報とデータレートに基づいて前記FPGAに設定すべき回路を特定し、特定された回路をFPGAに設定するスイッチ装置の制御方法である。
【００１４】
本発明のさらに他の一側面は、多重化されて送信されてくる多重化データを受信し、多重化データを分離するポートエキスパンダ部と、ポートエキスパンダ部から送信される、異なるプロトコルと伝送データレートを有する複数の伝送レーンを受信する多重化インタフェース部と、多重化インタフェース部から送信される、異なるプロトコルと伝送データレートを有する複数の伝送レーンを受信する、FPGA （Field Programmable Gate Array）で構成されるネットワークプロセッサ部と、ネットワークプロセッサ部から送信されるデータの内容を処理するパケットエンジン部と、ネットワークプロセッサ部のFPGAの回路の設定を制御する制御部を有し、制御部は、異なるプロトコルと伝送データレートを有する複数の伝送レーン上のデータに関する判別情報を検出する検出部と、判別情報とFPGAに設定すべき回路との対応情報を格納する記憶部と、判別情報と対応情報に基づいてFPGAに設定すべき回路を判定し、FPGAに設定する論理回路制御部を有し、他の通信装置へデータを送信するスイッチ装置である。
【発明の効果】
【００１５】
プロトコル無依存リンク多重化が可能な送受信装置とＬ２スイッチ、ＦＣスイッチを合体し、運用時の煩雑さや運用コストを削減することができる。
【００１６】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１７】
【図１】ポートエキスパンダ（PE)を採用した、ネットワークの構成ブロック図。
【図２】ポートエキスパンダ（PE)を採用した、ネットワークの受信側詳細ブロック図。
【図３】ポートエキスパンダとＬ２スイッチを一体化した、本発明のスイッチ装置の一実施例を示すブロック図。
【図４】本発明のスイッチ装置の一実施例の送信側のマルチプレクサ・デマルチプレクサ部を示すブロック図。
【図５】本発明のスイッチ装置の一実施例のポート情報管理部が有する変換表の一例を示す表図。
【図６】本発明のスイッチ装置の一実施例の受信側のマルチプレクサ・デマルチプレクサ部を示すブロック図。
【図７】本発明のスイッチ装置の一実施例の送信側のマルチプレクサ・デマルチプレクサ部の処理を示す概念図。
【図８】本発明のスイッチ装置の一実施例のレーン情報作成部により作成されたレーン情報と対応関係情報の例を示す表図。
【図９】本発明のスイッチ装置の一実施例の受信側のマルチプレクサ・デマルチプレクサ部の処理を示す概念図。
【図１０】本発明のスイッチ装置の一実施例のネットワークプロセッサ部の内部構成を示すブロック図。
【図１１】本発明のスイッチ装置の一実施例の記憶部に格納されるリコンフィグのデザインテーブルの一例を示す表図。
【図１２】本発明のスイッチ装置の一実施例のFPGAで構成したネットワークプロセッサ部の使用領域の一例を示す構成図。
【図１３】本発明のスイッチ装置の一実施例のFPGAで構成したネットワークプロセッサ部の使用領域の一例で、40GbEを追加した場合（但し、40GbEの領域は分割使用不可）を示す構成図。
【図１４】本発明のスイッチ装置の一実施例のFPGAで構成したネットワークプロセッサ部の使用領域の一例で、40GbEを追加した場合（領域を再分割し、再度使用領域を振り分ける）を示す構成図。
【図１５】本発明のスイッチ装置の一実施例で、領域を再分割し、再度使用領域を振り分ける動作を示す流れ図。
【図１６】本発明のスイッチ装置の一実施例で、領域を再分割し、再度使用領域を振り分ける動作を示す使用領域の管理テーブルの表図。
【図１７】本発明のスイッチ装置の一実施例の、ネットワークプロセッサのリコンフィグ動作を示す流れ図。
【図１８】本発明のスイッチ装置の一実施例の、フレーム破棄を通知する動作シーケンスの流れ図。
【図１９】本発明のスイッチ装置の一実施例の、使用プロトコルを決定する動作シーケンスの流れ図。
【図２０】本発明のスイッチ装置の一実施例の、レーン数とデータレートとプロトコルの関係を示す表図。
【発明を実施するための形態】
【００１８】
実施の形態について、図面を用いて詳細に説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１９】
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
【００２０】
本明細書等における「第１」、「第２」、「第３」などの表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
【００２１】
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
【００２２】
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【００２３】
以下の実施の形態において、伝送レーンとは、物理レーンや仮想レーン、ＰＣＳ（Ｐｈｙｓｉｃａｌ  Ｃｏｄｉｎｇ  Ｓｕｂｌａｙｅｒ）レーンなどの総称であり、物理的な伝送路に限定されるものではない。
【００２４】
本実施の形態にかかる伝送システム、受信装置、送信装置、および通信装置は、一例として、複数の物理ポートを持ち、様々なリンク層プロトコルが混在するネットワークにおいてデータを伝送する。
【００２５】
また、通信装置とは、データを送信する送信装置の送信機能と、データを受信する受信装置のデータの受信機能の一方または両方を備えるデバイスである。また、伝送システムとは、送信装置から受信装置へデータを伝送する構成、送信装置から通信装置へデータを伝送する構成、通信装置から受信装置へデータを伝送する構成、一方の通信装置から他方の通信装置へデータを伝送する構成のいずれかを含むシステムである。また、送信装置および通信装置は、データを多重化して送信する構成としてもよく、受信装置および通信装置は、多重化されたデータを分離する構成としてもよい。なお、本明細書では、送信装置、受信装置、および通信装置を総称して「伝送装置」とする。また、有効レーン数とは、有効なデータを伝送するレーンの本数である。
【実施例１】
【００２６】
図３は、図２のポートエキスパンダ２とＬ２スイッチ３を一体化した、本発明のスイッチ装置３００の一実施例を示すブロック図である。図３で図２と同様の構成は同一の符号を付している。ポートエキスパンダと２とＬ２スイッチ３を一体化することにより、装置接地面積の削減、結線作業などの運用コストの節約が可能となる。
【００２７】
本実施例でＬ２スイッチの一部となったポートエキスパンダは、機能的にはマルチプレクサ・デマルチプレクサの役割を果たすので、Ｌ２スイッチの一部となったポートエキスパンダを、以降マルチプレクサ・デマルチプレクサ部２００と称することにする。
【００２８】
本実施例では、Ｌ２スイッチのインタフェースを高速・大容量の多重化インタフェース３１０にすることで、装置自体を小型化できるようになる。なぜならばインタフェースの世代によって異なる容量密度を、纏めて扱うことができるからである。また、不要な回路を使用しないことで、装置の省電力化が可能になる。
【００２９】
しかし、図３の構成のように、Ｌ２スイッチのインタフェースとして多重化インタフェース３１０を単純に統合した場合、マルチプレクサ・デマルチプレクサ部２００と多重化インタフェース３１０の結線の部分は装置内部に入ってしまうため、ユーザが手動で接続することは出来ない。つまり、装置自身（内部）にファイバの結線変更に相当する自由度や、正しいインタフェース間を接続する判断機能や、運用中に更新出来る機能を持たせなければならない。
【００３０】
このため、本実施例では、ネットワークプロセッサ部３２０を、FPGA （Field Programmable Gate Array）で構成し、多重化インタフェース３１０から入力されるプロトコルや伝送データレートに適応可能とする。しかし、単純にFPGAによる動的再設定技術（リコンフィグ）を用いた場合でも、装置起動時にプロトコルや伝送データレートに特化した固定の回路情報をコンフィグすることはできるが、動作中には回路変更を行う手段がない。即ち、単純に統合しただけでは運用中の更新を実現することはできない。このため、本実施例では制御部３７０を設け、リコンフィグのための制御を実行する。マルチプレクサ・デマルチプレクサ部（MUX/DeMUX）２００は、機能的には図２の送受信装置（PE)２と同様である。パケット多重化部３３０、パケットエンジン部３４０は基本的に従来のＬ２スイッチと同様だが、本実施例のための修正点については後に説明する。パケットスイッチ部６０の部分は従来と同様である。またこれらを実装するボード構成は複数でもよいが、単数でもよい。
【００３１】
図４は、図３に示した送信装置１００の送信部分のうち、多重化を行う部分の内部構成の一例を示すブロック図である。この部分の構成は、本発明者らが本件発明に先立ち検討したものである。また、スイッチ装置３００に図４の構成を内蔵させ、多重化を行う機能を追加して送受信機能を追加することもできる。
【００３２】
送信装置１００は、ｎ個のＩ／Ｆ４１０−１〜４１０−ｎからなるＩ／Ｆ４１０と、仮想レーン化部４２０（４２０−１〜４２０−ｎ）と、第１セレクタ４３０と、多重化部４４０と、ポート情報管理部４５０と、レーン情報作成部４６０と、を備える。なお、ｎは１以上の整数である。
【００３３】
ｎ個のＩ／Ｆ４１０−１〜４１０−ｎはそれぞれ物理ポートを有し、物理ポートには光トランシーバ４７０が差し込まれる。ｎ個のＩ／Ｆ４１０−１〜４１０−ｎは、物理ポートに差し込まれた光トランシーバ４７０を介して、スイッチ装置３００へ送信するデータフレーム（以下、送信データと称す）を入力する。各物理ポートの伝送レートは、互いに異なっていてもよい。また、各物理ポートが有する伝送レーンの数も異なっていてもよい。なお、物理ポートは、すべてが異なる伝送レートであったり、異なる伝送レーン数を有していたりする必要はない。いずれか一つが他の物理ポートと異なる伝送レートや伝送レーン数を有していれば良い。なお、本明細書では、便宜的にマルチプレクサ・デマルチプレクサ部と称しているが、マルチプレクサとデマルチプレクサの両方の機能を含む構成の他、マルチプレクサとデマルチプレクサのうち、必要な片方のみを備える構成も含む。
【００３４】
ｎ個のＩ／Ｆ４１０−１〜４１０−ｎから入力される送信データには、例えば異なるビットレートのデジタル信号、異なるプロトコルのデジタル信号や同じ伝送レートで複数の伝送レーンを使用して伝送するデジタル信号などが含まれる。ｎ個のＩ／Ｆ４１０−１〜４１０−ｎから入力される送信データは、それぞれ対応する仮想レーンに入力される。また、各Ｉ／Ｆ４１０−１〜４１０−ｎは、物理ポートに挿入された光トランシーバ４７０を示す光トランシーバ種、伝送レートや物理レーン数を含むポート情報を、ポート情報管理部４５０に通知する。
【００３５】
ポート情報管理部４５０は、各Ｉ／Ｆ４１０−１〜４１０−ｎから通知されたポート情報を取得する。ポート情報管理部４５０は、取得したポート情報から、使用する仮想レーンを決定し、レーン情報作成部４６０と第１セレクタ４３０へ通知する。また、ポート情報管理部４５０は、取得したポート情報に基づいて、後述する変換表を用いて、物理レーンから変換する仮想レーン数を決定し、仮想レーン化部４２０へ通知する。
【００３６】
各仮想レーン化部４２０は、ポート情報管理部４５０から通知された仮想レーン数に従って、物理レーンを仮想レーンに変換し、受信した送信データを、仮想レーン数分の仮想レーン上を伝送する送信データとして出力する。各仮想レーン化部４２０は、たとえば、デマルチプレクサを有する。デマルチプレクサの入力側は、仮想レーン化部４２０に対応するＩ／Ｆ４１０の物理ポートが有する物理レーンを介して接続される。
【００３７】
デマルチプレクサの出力側は、仮想レーンにより第１セレクタ４３０に接続される。物理レーンから仮想レーンへの変換は、デマルチプレクサにより実施される。たとえば、各仮想レーン化部４２０はそれぞれ、ポート情報管理部４５０から通知された仮想レーン数をデマルチプレクサに与え、仮想レーン数分の仮想レーンを設定する。仮想レーン１本あたりの伝送容量は、後述する設定レートｘに調整される。これにより、各仮想レーン化部４２０で物理レーンが仮想レーンに変換される。
【００３８】
第１セレクタ４３０は、ポート情報管理部４５０から通知されたポート情報と、使用する仮想レーンと、に従って、入力する送信データを選択し、多重化部４４０へ出力する。具体的には、たとえば、ポート情報が１０ＧｂＥであり、使用する仮想レーンとして、仮想レーン番号「１」および「２」が通知された場合、第１セレクタ４３０は、１０ＧｂＥのＩ／Ｆから仮想レーン番号「１」および「２」の仮想レーンを伝送してくるデータを選択して、ｘ本の伝送レーンを介して、多重化部４４０へ送信する。なお、ｘは１以上の整数である。
【００３９】
レーン情報作成部４６０は、ポート情報管理部４５０から通知された使用する仮想レーンの情報（仮想レーン番号）を用いて、レーン情報と対応関係情報を作成する。
【００４０】
レーン情報とは、Ｉ／Ｆ４１０ごとの使用物理レーン数と仮想レーン番号とを対応付けた情報である。たとえば、１０ＧｂＥの場合、使用物理レーン数は「２」、仮想レーン数が「２」であるため仮想レーン番号は「１」、「２」といった情報である。
【００４１】
対応関係情報とは、この送信装置１００側の仮想レーン番号と、対応するスイッチ装置３００のマルチプレクサ・デマルチプレクサ部２００の仮想レーン番号とを対応付けた情報である。たとえば、送信装置１００側のＩ／Ｆ４１０の仮想レーン番号が「１」、「２」である場合、送信装置１００側の仮想レーン番号「１」とマルチプレクサ・デマルチプレクサ部２００側の仮想レーン番号「１」とが対応付けられ、送信装置１００側の仮想レーン番号「２」とマルチプレクサ・デマルチプレクサ部２００側の仮想レーン番号「２」とが対応付けられる。レーン情報作成部４６０は、レーン情報および対応関係情報を、多重化部４４０へ通知する。
【００４２】
多重化部４４０は、第１セレクタ４３０から入力された送信データを多重化する。多重化部４４０は、たとえば、第１セレクタ４３０からの取得順にデータを多重化したり、仮想レーン番号の昇順に送信データを多重化したり、仮想レーン数が少ない順に送信データを多重化する。また、多重化部４４０は、レーン情報作成部４６０によって作成されたレーン情報および対応関係情報を無効データ領域に挿入する。そして、多重化部４４０は、ｍ本の伝送レーンによって構成される伝送路へ送信データを送信する。なお、ｍは１以上の整数である。
【００４３】
図５は、ポート情報管理部４５０が有する変換表の一例を示す表図である。変換表５００は、Ｉ／Ｆ４１０の性能に応じて仮想レーン数を決定するためのテーブルである。変換表５００は、光トランシーバ種と、伝送レートと、物理レーン数と、仮想レーン数と、を有する。光トランシーバ種とは、物理ポートに挿入された光トランシーバの種類を特定する情報である。伝送レートとは、物理ポートの１［ｃｈ］あたり、すなわち、１本の物理レーンあたりの伝送レートである。物理レーン数とは、物理ポートにおける物理レーンの本数である。なお、光トランシーバ種、伝送レートおよび物理レーン数を少なくとも含む情報が「ポート情報」である。先述のように、各Ｉ／Ｆ４１０−１〜４１０−ｎは、ポート情報を、ポート情報管理部４５０に通知する。
【００４４】
光トランシーバ種、伝送レートおよび物理レーン数の対応関係は、変換表５００に示す通り、あらかじめ通信規格で決められる。また、仮想レーン数については、以下に説明する。
【００４５】
伝送容量の合計は、１［ｃｈ］あたりの伝送レート（ａ）×物理レーン数（ｂ）により算出される。また、仮想レーンと物理レーンの間には、以下の関係式（１）が成り立つ。
ａ×ｂ＝仮想レーン１本あたりの伝送容量×仮想レーン数（ｃ）・・・（１）
【００４６】
また、仮想レーン化部２０内での処理を行うための動作クロック周波数は、仮想レーン化部２０の内部の信号線のビット幅［ｂｉｔ］と仮想レーン１本あたりの伝送容量（設定レートｘとおく）を用いて、次の関係式（２）が成り立つ。  
動作クロック周波数［ＭＨｚ］＝ｘ［Ｇｂｐｓ］／ビット幅［ｂｉｔ］・・・（２）
上記関係式（１）および関係式（２）より、下記の関係式（３）が得られる。  
仮想レーン数（ｃ）＝（伝送レート（ａ）×物理レーン数（ｂ））／（動作クロック周波数［MHz］×ビット幅[bit]）・・・（３）
【００４７】
本実施例では、動作クロック周波数４００［ＭＨｚ］以下、ビット幅６４［ｂｉｔ］以下を想定し、設定レートとなる仮想レーン１本あたりの伝送容量（ｘ）を６．５［Ｇｂｐｓ］とする。仮想レーン１本あたりの伝送容量（ｘ）は、動作クロック周波数やビット幅により変更可能である。
【００４８】
このように、変換表５００は、光トランシーバ種、伝送レート、物理レーン数、および仮想レーン数を対応付ける。たとえば、変換表５００の１行目は、伝送レートが８．５［Ｇｂｐｓ］、物理レーン数が１本の物理ポートに、８ＧＦＣ（ギガファイバーチャネル）の光トランシーバが挿入された場合、その物理ポートに対応する仮想レーン数は２本になることを示している。
【００４９】
図６は、図３に示したスイッチ装置３００のマルチプレクサ・デマルチプレクサ部２００の入力側機能と多重化インタフェース部３１０の内部構成例を示すブロック図である。
【００５０】
マルチプレクサ・デマルチプレクサ部２００は、分離化部５７０と、第２セレクタ５８０と、物理レーン化部５９０（５９０−１〜５９０−ｎ）とを備える。
【００５１】
多重化インタフェース（Ｉ／Ｆ）部３１０は、複数のＩ／Ｆ３１０−１〜３１０−ｎからなる。Ｉ／Ｆ３１０は、受信データフレーム（以下、受信データと称す）を出力する。受信データはネットワークプロセッサ３２０に入力される。
【００５２】
分離化部５７０は、送信装置１００に接続されているｍ本の伝送路を介して、送信装置１００で多重化された送信データを入力する。分離化部５７０は、送信データの中の無効データ領域に含まれるレーン情報に従って、ｍ本の伝送路を介して受信した送信データを分離し、第２セレクタ５８０に出力する。
【００５３】
第２セレクタ５８０では、無効データ領域に含まれるレーン情報および対応関係情報に従って、物理レーン化部５９０へ送信データを出力する。たとえば、レーン情報に含まれる送信装置１００側の仮想レーン番号「１」および「２」が、対応関係情報によりマルチプレクサ・デマルチプレクサ部２００側の仮想レーン番号「１」および「２」に対応付けられている場合、第２セレクタ５８０は、送信装置１００側の仮想レーン番号「１」および「２」に対応する送信データを、マルチプレクサ・デマルチプレクサ部２００側の仮想レーン番号「１」および「２」の仮想レーンに出力する。
【００５４】
各物理レーン化部５９０は、無効データ領域に含まれるレーン情報に従って、仮想レーンから物理レーンに変換し、多重化Ｉ／Ｆ部３１０に送信データを出力する。各物理レーン化部５９０は、マルチプレクサを有する。マルチプレクサの入力側は、第２セレクタ５８０に仮想レーンを介して接続される。マルチプレクサの出力側は、多重化Ｉ／Ｆ部３１０の物理ポートが有する物理レーンにより接続される。
【００５５】
仮想レーンから物理レーンへの変換は、マルチプレクサにより実施される。たとえば、各物理レーン化部５９０はそれぞれ、無効データ領域に含まれるレーン情報から得られる物理レーン数分の物理レーンを設定する。なお、仮想レーン１本あたりの伝送容量は、送信装置１と同様、後述する設定レートｘに調整されている。これにより、仮想レーンが物理レーンに変換される。
【００５６】
Ｉ／Ｆ３１０は、複数のＩ／Ｆ３１０−１〜３１０−ｎを有する。Ｉ／Ｆ３１０の構成は、入力信号が物理レーン化部５９０から送られる電気信号であり、出力信号がネットワークプロセッサ３２０に送られる電気信号である点を除いて、送信装置１００のＩ／Ｆ４１０と同様の機能であるため説明を省略する。なお、通常であれば、送信装置１００側のＩ／Ｆ４１０（たとえば、４１０−１）と対応するＩ／Ｆ３１０（たとえば、３１０−１）は、同種の専用回路及び光トランシーバで受信することになるが、本実施例のスイッチ装置では、後述するように、FPGAで構成されたネットワークプロセッサ３２０が、適合した回路を自動的にリコンフィグする。
【００５７】
図７は、図４に示した伝送システムにおける送信装置１００の動作例を示す説明図である。
【００５８】
Ｉ／Ｆ４１０の物理ポートに、１０ＧｂＥ（ギガビットイーサネット）の光トランシーバと、４０ＧｂＥの光トランシーバと、１６ＧＦＣ（ギガファイバーチャネル）の光トランシーバが挿入されたとする。１０ＧｂＥの光トランシーバの挿入により、挿入されたＩ／Ｆ１０は１０［Ｇｂｐｓ］×１［ｃｈ］（チャネル）の物理レーンとなる。また、４０ＧｂＥの光トランシーバの挿入により、挿入されたＩ／Ｆ１０は１０［Ｇｂｐｓ］×４［ｃｈ］の物理レーンとなる。また、１６ＧＦＣの光トランシーバの挿入により、挿入されたＩ／Ｆ１０は１４［Ｇｂｐｓ］×１［ｃｈ］の物理レーンとなる。チャネル数が物理レーン数である。各光トランシーバで受信された送信データは、それぞれ物理レーンを介して仮想レーン化部４２０に送信される。
【００５９】
ポート情報管理部４５０は、Ｉ／Ｆ４１０から受信した使用されている物理ポートの伝送レートと物理レーン数から、仮想レーン化部４２０で設定する仮想レーン（ＶＬ）数を決定する。例えば、設定レートｘを６．５［Ｇｂｐｓ］とすると、１０ＧｂＥと４０ＧｂＥと１６ＧＦＣの光トランシーバが挿入されている場合、図５に示した変換表５００から仮想レーン数はそれぞれ２本、８本、３本となる。
【００６０】
これにより、仮想レーン化部４２０は、１０ＧｂＥ（１０［Ｇｂｐｓ］×１［ｃｈ］）の物理レーンを６．５［Ｇｂｐｓ］×２ＶＬ（Ｖｉｒｔｕａｌ  Ｌａｎｅ）に変換し、４０ＧｂＥ（１０［Ｇｂｐｓ］×４［ｃｈ］）を６．５［Ｇｂｐｓ］×８ＶＬに変換し、１６ＧＦＣ（１４［Ｇｂｐｓ］×１［ｃｈ］）を６．５［Ｇｂｐｓ］×３ＶＬに変換する。送信データは、変換後の仮想レーン上を伝送する。
【００６１】
また、レーン情報作成部４６０は、スイッチ装置３００に含まれるＩ／Ｆ３１０で使用されている物理ポート（ネットワークプロセッサ３２０に接続される物理ポート）と、送信装置１００に含まれるＩ／Ｆ４１０で使用されている物理ポート（光トランシーバが挿入された物理ポート）から生成した仮想レーンとの対応付けを行う。ここでは、例として、スイッチ装置３００のマルチプレクサ・デマルチプレクサ部２００は、送信装置１００と同じレーン構成とする。
【００６２】
図８は、レーン情報作成部４６０により作成されたレーン情報と対応関係情報の例を示す説明図である。（Ａ）は、送信装置１００のレーン情報７０１であり、（Ｂ）はスイッチ装置３００のマルチプレクサ・デマルチプレクサ部２００のレーン情報７０２である。送信装置１００とマルチプレクサ・デマルチプレクサ部２００は同一レーン構成であるため、（Ａ），（Ｂ）において、Ｉ／Ｆ７１１、７２１、使用物理レーン数７１２，７２２、仮想レーン番号７１３、７２３は同一となる。
【００６３】
この場合、送信装置１００のＩ／Ｆ１０−１（１０ＧｂＥの光トランシーバが挿入）とスイッチ装置３００に含まれる多重化Ｉ/Ｆ３１０−１（１０ＧｂＥ用にリコンフィグされたネットワークプロセッサ３２０に接続）とが対応する。すなわち、送信装置１００における１０ＧｂＥ（１０［Ｇｂｐｓ］×１［ｃｈ］）から生成した６．５［Ｇｂｐｓ］×２ＶＬと、スイッチ装置３００に含まれる多重化Ｉ/Ｆ３１０−１（１０ＧｂＥ）とが対応することになる。
【００６４】
そして、ポート情報管理部４５０は、対応関係にある仮想レーンの番号どうしを関連付ける。たとえば、送信装置１００の１０ＧｂＥの仮想レーン番号「１」、「２」は、マルチプレクサ・デマルチプレクサ部２００の１０ＧｂＥの仮想レーン番号「１」、「２」と対応する（対応関係情報）。なお、送信装置１００のレーン情報７０１は、多重化部４４０において無効データ領域に挿入される。そして、マルチプレクサ・デマルチプレクサ部２００が、多重化された送信データを受信した場合に、送信装置１００のレーン情報７０１を無効データ領域から取り出して、マルチプレクサ・デマルチプレクサ部２００のレーン情報７０２として用いる。これにより、送信装置１００がマルチプレクサ・デマルチプレクサ部２００側の仮想レーンを決定する。
【００６５】
図７に戻り、第１セレクタ４３０は、使用するポート情報や仮想レーン番号に従い、該当する物理ポートの仮想レーンを選択し、順番に多重化部４４０へ送信データを送信する。例えば、使用するポート情報が１０ＧｂＥと１６ＧＦＣに該当していれば、２ＶＬと３ＶＬのデータ列を多重化部４４０へ送信する。次に使用するポート情報が４０ＧｂＥに該当していれば、８ＶＬのデータ列を多重化部４０へ送信する。多重化部４０へ送信するレーン数の上限が、例えば１０ＶＬだとすると、２ＶＬと３ＶＬを先に選択し、８ＶＬは次に選択するようにしても良いし、上から順番に選択して１０ＶＬに詰め込むようにして多重化部４４０に送信しても良い。
【００６６】
多重化部４４０は、第１セレクタ３０から受信した送信データを、４００［Ｇｂｐｓ］×１［ｃｈ］に多重化する。多重化する際に、伝送レーンの伝送レートと実際に流れる帯域には差があるために無効データ領域７００が発生する。多重化部４４０は、レーン情報や対応関係情報を、無効データ領域７００に挿入する。
【００６７】
また、多重化部４４０は、無効データ領域７００が発生しない場合には、定期的に無効データ領域７００を生成し、例えば有効データを１６回多重化した場合に、１回無効データ領域７００を生成し、生成した無効データ領域７００にレーン情報や対応関係情報を挿入する。具体的には、多重化部４０は、無効データ領域が連続して発生しなかった回数をカウンタで計数し、たとえば、１６回連続で無効データ領域７００が発生しなかった場合は、１７回目の多重化で無効データ領域７００を生成して、レーン情報や対応関係情報を挿入する。挿入後は、多重化部４４０は、カウンタをリセットする。多重化された送信データは、ｍ本の伝送路を介して、受信装置２へ伝送される。なお、ｍは１以上の整数である。
【００６８】
図９は、伝送システムにおける図６のスイッチ装置３００の動作例を示す説明図である。まず、分離化部５７０は、ｍ本の伝送路を介して、送信装置１００から４００［Ｇｂｐｓ］×１［ｃｈ］分の送信データを入力する。分離化部５７０は、無効データ領域７００に含まれるレーン情報や対応関係情報を抽出し、多重化されたデータを分離して、分離した送信データを第２セレクタ５８０へ送信する。
【００６９】
第２セレクタ５８０は、レーン情報や対応関係情報に従い、該当する仮想レーンを選択し、順番に物理レーン化部５９０へデータ列を送信する。例えば、図８に示すレーン情報から１０ＧｂＥと１６ＧＦＣが特定されると、６．５［Ｇｂｐｓ］×２ＶＬ分のデータ列と６．５［Ｇｂｐｓ］×３ＶＬ分のデータ列を物理レーン化部５９０へ送信する。次に使用するＩ／Ｆ３１０が４０ＧｂＥに該当していれば、６．５［Ｇｂｐｓ］×８ＶＬ分のデータ列を物理レーン化部５９０へ送信する。使用する物理レーン数やインタフェース種類もレーン情報で特定される。
【００７０】
また、第２セレクタ５８０は、レーン情報７０２や対応関係情報を参照して、選択した仮想レーン番号を物理レーン化部５９０に通知する。たとえば、マルチプレクサ・デマルチプレクサ部２００側の仮想レーン番号「１」、「２」が選択された場合、該当するＩ／Ｆ３１０（１０ＧｂＥの光トランシーバが挿入されたＩ／Ｆ）に接続される物理レーン化部５９０に、使用物理レーン数を通知する。
【００７１】
物理レーン化部５９０は、仮想レーンからの伝送先の物理レーンを設定する。例えば、物理レーン化部５９０は、図８に示すレーン情報に基づき、６．５［Ｇｂｐｓ］×２ＶＬの伝送先の物理レーンを、１０ＧｂＥ（１０［Ｇｂｐｓ］×１［ｃｈ］）の物理レーンに設定する。また、物理レーン化部９０は、６．５［Ｇｂｐｓ］×８ＶＬの伝送先の物理レーンを、４０ＧｂＥ（１０［Ｇｂｐｓ］×４［ｃｈ］）の物理レーンに設定する。また、物理レーン化部９０は、６．５［Ｇｂｐｓ］×３ＶＬの伝送先の物理レーンを、１６ＧＦＣ（１４［Ｇｂｐｓ］×１［ｃｈ］）の物理レーンに設定する。
【００７２】
Ｉ／Ｆ３１０は、物理レーン化部５９０の対応する物理レーンから受信したデータ列を、受信データとして出力する。なお、本実施例はこのような構成に限定するものではなく、例えば、多重化したデータをｍ本の伝送路に分配して、パラレルデータとして伝送しても良い。
【００７３】
さて、図６および図９に示したように、送信装置１００から、プロトコルや伝送データレートが異なるリンクを多重化して伝送されてきた信号は、スイッチ装置３００の多重化インタフェース３１０において、元のプロトコルや伝送データレートに復元される。この信号は、送信装置１００側の入力信号の仕様により変化するが、先に課題として述べたように、単純にＬ２スイッチと合体するだけでは、この変化に動的に対応することはできなかった。
【００７４】
図１０は、図３に記載の本願発明の実施例であるスイッチ装置３００の構成のうち、特にネットワークプロセッサ３２０、制御部３７０、及びこれらの接続関係を詳細に説明するブロック図である。図６で説明したように、マルチプレクサ・デマルチプレクサ部２００は、送信装置１００からの多重化されたデータを受信し、多重化インタフェース部３１０に送信する。多重化インタフェース部３１０は、多重化されたデータを分離し、ネットワークプロセッサ３２０に入力する。
【００７５】
ネットワークプロセッサ３２０は、FPGAで構成されており、機能的には、特定のデータを受けるための、PMA（Physical Medium Attachment）部３２１、PCS（Physical Cording Sublayer）部３２２、MAC（Media Access Control）部３２３の組からなっている。これらの部分は、機能的には、特開２００５−２５２７１７号や特開２００２−２４７０７２号等で説明されており、既に製品も流通している、従来のＬ２スイッチと同様の機能を有する。
【００７６】
制御部３７０は、FPGAで構成されるネットワークプロセッサ３２０を制御し、コンフィグやリコンフィグを行う。制御部３７０は、制御を行う論理回路制御部２４０と、論理回路制御部２４０からアクセス可能に構成され、制御のための各種テーブルやデータを記憶する記憶部２５０と、多重化インタフェース部１３０からの信号に基づいて、李リコンフィグに必要な情報を検出し、論理回路制御部２４０に送る検出部２３０を有する。また、場合によっては、パケット多重化部３３０等から必要な情報を、論理回路制御部２４０にフィードバックしてもよい。
【００７７】
制御部３７０は、入力部、出力部、処理部、記憶部を備えるコンピュータに相当する構成としてもよいし、任意の部分が、ネットワーク等で接続された他のコンピュータで構成されてもよい。具体構成としては、例えば１チップまたは１ボードの構成とすることができる。本明細書で、流れ図で説明した処理は、制御部３７０のコンピュータに相当する構成において、ソフトウエアで動作するように実現することができる。あるいは、これと同等の機能を、FPGAまたはASIC（Application Specific Integrated Circuit）などのハードウエアで実現できる。いずれの態様も本願発明の範囲に含まれる。
【００７８】
多重化インタフェース部３１０からの受信データを、PMA部３２１と検出部２３０で受信する。図７で説明したように、送信装置１００は、例えば図８に示すインタフェース情報７１１を、レーン情報や対応関係情報とともに無効データ領域７００に挿入して送信することができる。スイッチ装置３００の分離化部５７０は、抽出したインタフェース情報７１１、レーン情報や対応関係情報を、多重化インタフェース部３１０を経由して検出部２３０に送る。検出部２３０ではリコンフィグに必要な情報、例えばインタフェース情報７１１、使用物理レーン数情報、仮想レーン番号の対応情報等を検出し、論理回路制御部２４０に送信する。
【００７９】
論理回路制御部２４０では、検出部２３０から通知された情報に従い、多重化インタフェース３１０の物理レーンから出力されるデータのプロトコルと伝送データレートを特定する。例えば図８に示すレーン情報や対応関係情報を用いると、送信側の所定のプロトコルと伝送データレートを有するデータが、受信側のどの仮想レーンを経由して多重化インタフェース３１０の物理レーンに対応するかが分かる。例えば、送信装置１００に入力された１０ＧｂＥのデータは、スイッチ装置３００の仮想レーン番号１および２に伝達されるので、スイッチ装置３００の仮想レーン番号１および２から形成された物理レーンが１０ＧｂＥのデータを出力していることが分かる。
【００８０】
論理回路制御部２４０では、多重化インタフェース部３１０から出力される、各物理レーンのプロトコルと伝送データレートを特定すると、ネットワークプロセッサ３２０の回路との整合をチェクする。
【００８１】
表1は論理回路制御部２４０が管理している、ネットワークプロセッサ３２０の回路設定テーブルの例である。
【００８２】
【表１】
0006338986.tif 000002
【００８３】
論理回路制御部２４０は、表1の回路設定テーブルによりネットワークプロセッサ（NWPS)３２０の、PMA部３２１、PCS部３２２、MAC部３２３のコンフィグの必要有無を確認し、必要な場合は、該当回路のリコンフィグを行う。例えば、新たに、#5,#7,#8,#9の４つの物理レーンが使用され、それらが40ＧｂＥで占有されていることが判明し、表１により、それに対応する回路がネットワークプロセッサ３２０に設定されていないことが判明すると、リコンフィグの動作を行う。リコンフィグに必要なデータは、後述するリコンフィグのデザインテーブルとして、記憶部２５０に保存しておく。
【００８４】
ここで、リコンフィグする部分としては、PMA部３２１については、シリアル・パラレル変換を行うSERializer/DESerializer （SerDes）の設定情報、レーンのビットレート、クロックなどを変更する。PCS部３２２については、符号化、マルチレーンの組み合わせを変更する。MAC部３２３については、データレート(10GbE/40GBE)やインタフェースの種類（EthernetやＦＣ）によって構成を変更する。
【００８５】
論理回路制御部２４０による以上の処理により、ネットワークプロセッサ部３２０で処理すべきプロトコルと伝送データレートが定まるので、FPGAにどのような回路を構成すればよいかが定まる。具体的な回路構成は、所定のプロトコルと伝送データレートを処理するための回路として公知の構成を用いればよい。例えば、公知のように、イーサネット（登録商標）であれば、MAC部では、受信データの宛先をチェックした後、Frame Check Sequence （FCS）とよばれる誤り検出処理を行い、出力を行う。また、送信データはFCSのための情報を生成した後、MACフレームを生成し、送信する。一方、ファイバーチャネルであれば、MAC部では、受信データの宛先をチェックした後、FCSの処理は不要である。送信においても、FCSの処理は不要であり、フレーム生成の後に送信を行う。このように、プロトコル等に対応して必要とされる回路構成を、ネットワークプロセッサ部３２０のFPGA上にリコンフィグする。
【００８６】
図１１は、記憶装置２５０に記憶されているリコンフィグのデザインテーブルの一例である。FPGAで構成されるA論理回路、B論理回路、C論理回路は、それぞれ、ネットワークプロセッサ３２０のPMA部３２１、PCS部３２２、MAC部３２３を構成する。また、設定すべきパケット多重化部３３０の設定を記憶している。パケット多重化部３３０の設定は、図１１のD論理回路に示すように、ストリームの並び替えの際の伝送データレートやチャネル数を設定する。また、伝送データレートやチャネル数に応じて、ストリームの並び方を設定する。
【００８７】
例えば、表1の状態のネットワークプロセッサ３２０の＃９のポートに、新たに10GbEが入力された場合、不使用の領域を10GbE用の回路にリコンフィグする必要がある。このため、論理回路制御部２４０は記憶部２５０のデザインテーブルを参照し、10GbEに適合する回路の組み合わせを抽出する。10GbEの場合は、図１１の[A2][B1][C2][D3]の組み合わせとなる。判明した組み合わせに従い、ネットワークプロセッサ３２０のFPGAをリコンフィグする。また、パケット多重化部３３０の設定を変更する。
【００８８】
図１２はネットワークプロセッサ３２０のFPGAをリコンフィグする際の、FPGAのマッピングの例を示す。いま、多重化インタフェース部３１０からの出力数に対応して、＃０から＃９までの１０チャネルの受信が可能な設定とする。回路のうち＃５、＃７〜９が未使用である。未使用領域は２つの部分に分かれている。ここに、40GbE PMA用のチャネルを１つ追加することを考える。
【００８９】
図１３に、図１２の状態のFPGAに40GbE PMA用のチャネルを１つ追加しようとした際の問題を示す。40GbE PMA用のチャネルは、#1〜#4を占有しているものと同等の回路規模であるから、これを動作させるためには分割されている#5、#7〜#9にはそのままでは設定できず、まとまった領域を確保する必要がある。
【００９０】
図１４に、領域を再分割し、再度領域を割り当てた状態を示す。ここでは、8GFCのチャネルを#5に移動し、＃6〜＃9の領域をまとめて40GbE PMA用のチャネルを構成する。
【００９１】
なお図１２〜図１４の例では、入力インタフェースは#0-＃9の10個に設定しているが、FPGAの処理能力の範囲で、多重化インタフェース部からの出力数増加に対応して増加することができ、また減少させることもできる。
【００９２】
図１５は論理回路制御部２４０で処理されるネットワークプロセッサ部のリコンフィグのための使用領域を決定・変更する動作シーケンスを示している。
【００９３】
まず、判定されたプロトコルにもとづいて、図１１に示すデザインテーブルに定義された回路内容により、必要な領域を計算する。その都度計算するのではなく、予め各回路と関連付けたデータとして、記憶装置２５０に格納しておいてもよい。次に、図１５に示す使用領域変更処理に入る（Ｓ１５１）。
【００９４】
使用領域変更では、例えば後述の使用領域の管理テーブルにより、現在使用されている使用領域の情報を取得する（Ｓ１５１）。
【００９５】
空き領域とリコンフィグに必要な領域を比較し、リコンフィグに必要な領域があるか否かを判定する（Ｓ１５３）。
【００９６】
まとまった領域が必要な領域分存在する場合は、そのエリアにおいてリコンフィグのための使用領域の割り当てを行い（Ｓ１５４）、使用領域の変更が完了する（Ｓ１５８）。
【００９７】
必要分存在しない場合は、使用領域の再分割を行う（Ｓ１５５）。ここでは、使用中のエリアを連続した領域にまとめる。通常は、孤立している比較的小さな領域を比較的大きな領域に合体するように移動すればよい、使用領域の再分割後、必要な領域が確保できたかどうか判定する（Ｓ１５６）。確保できていれば、解放されたエリアに使用領域を割り当てる（Ｓ１５４）。万一、再分割の後に使用領域がなお不足している場合には、警告を出力して終了する（Ｓ１５７）。
【００９８】
以上で使用領域の変更を行った後、必要な回路のリコンフィグを行う。
【００９９】
図１６は、使用領域の管理テーブルの例である。このテーブルは記憶部２５０に記憶されており、使用領域を決定する動作シーケンスにおいて、論理回路制御部２４０が参照する。図中（A)の状態は、図１２に相当し、使用領域の再分割前である。また、（B)の状態は図１４に相当し、使用領域の再分割後を示す。なお、図１５の動作シーケンスでは、再分割後に再度使用領域サイズをチェックしているが（Ｓ１５６）、使用領域の管理テーブルのデータにより、再分割前に領域不足が判断できる場合は、その時点で、警告および処理終了を行ってもよい。
【０１００】
以上のようにネットワークプロセッサ３２０で処理された信号は、パケット多重化部３３０に入力される。パケット多重化部３３０は、データレートの異なる同じプロトコルを1つのストリームに並び換える。
【０１０１】
パケットエンジン部３４０では、パケットのヘッダ解析，検索，QoS，暗号化・復号化などを行う。これらの処理は、単純だが繰り返しが多く負荷が大きいので、専用のハードウェアを用いるのが好適である。
【０１０２】
パケットスイッチ部６０では、従来と同様、入力パケットの宛先を決定して出力パケットとして出力して、外部の通信装置に転送する。
【０１０３】
次に本実施例の全体的なシーケンスを説明する。
【０１０４】
図１７で、論理回路制御部２４０で処理されるリコンフィグ動作の、全体シーケンスを説明する。まず、フレーム破棄通知の有無を検出する（Ｓ１７１）。フレーム破棄通知の有無はネットワークプロセッサ部３２０あるいはパケットエンジン部３４０からの情報により検出することができる。フレーム破棄通知がある状態では、新たなプロトコルや伝送データレートの経路が接続されたなどの理由により、ネットワークプロセッサ部３２０の回路とプロトコルや伝送データレートの不整合が起きている可能性がある。このため、ネットワークプロセッサ部３２０の回路のリコンフィグを開始する。なお、フレーム破棄通知の有無判定は省略も可能である。この場合、リコンフィグ動作のシーケンスは定期的に行ってもよいし、オペレーターの指示により開始してもよい。
【０１０５】
図１８にフレーム破棄通知の生成シーケンス例を示す。多重化インタフェース部３１０からのデータを受信する（Ｓ１８１）。ネットワークプロセッサ部３２０あるいはパケットエンジン部３３０で、受信データの処理ができるかどうかチェックする（Ｓ１８２）。処理できなかった場合、フレーム処理不一致となる。この場合は、フレームの受信ができなかったことになるので、フレームは破棄され、送信側には再送要求が出される。このフレーム破棄回数をカウントする（Ｓ１８３）。フレームの破棄は、通常の状況でも受信データ信号の劣化等により起こり得るが、所定閾値、例えば４回以上連続してフレームが破棄された場合には、受信データと処理する回路が不一致である可能性があると判断し、フレーム破棄情報通知を生成する（Ｓ１８４）。フレーム破棄情報通知は、論理回路制御部２４０へ送信され（Ｓ１８５）、リコンフィグ（図１７のシーケンス）開始のトリガーとなる。
【０１０６】
図１７に戻って説明を続ける。フレーム破棄通知があると、先に説明したプロトコルの検出を行う（Ｓ１７２）。プロトコルの検出では、論理回路制御部２７０は、たとえば図８のレーン情報で特定される物理レーンのデータのインタフェース種、あるいは、プロトコルと伝送データレートを判定する。
【０１０７】
次に判定した情報を、例えば表１に示した回路設定テーブルと照合して、既存回路との差異を検出する（Ｓ１７３）。例えば、図８のレーン情報により、10GbEのデータが受信側の仮想レーン＃１と＃２に対応する物理レーン＃１に出力されている場合には、表１により回路が整合していることが分かる。また、物理レーン＃５に出力されている場合には、リコンフィグが必要であることが分かる。
【０１０８】
なお、回路設定テーブルは、リコンフィグの都度、更新し管理している。既存の回路構成と同じ場合は、回路変更をせずに終了する（Ｓ１７４）。
【０１０９】
既存回路との差異がある場合には、先に図１０〜図１５で説明した要領で、ネットワークプロセッサ部３２０の使用領域の変更および回路変更を行う（Ｓ１７５）。変更後、パケットエンジン部から応答があるか否かを確認する（Ｓ１７６）。正常にリコンフィグが完了し、受信データと回路の整合が取れている場合は、応答があるが、整合が取れない場合は応答がないので、再度プロトコル検出（Ｓ１７２）からやり直す。応答がある場合はリコンフィグを終了する（Ｓ１７７）。なお、図１７の例では、パケットエンジン部からの応答がない場合は、プロトコル検出からやり直しているが、後述のように変更する回路の候補が複数ある場合には、優先順位に従った回路の候補により回路変更（Ｓ１７５）からやり直してもよい。
【０１１０】
以上の実施例により、スイッチ装置３００は、送信装置１００側に入力されたデータのプロトコルや伝送速度に係らず、自動的に送信されてくるデータの特性を判定し、整合した回路をネットワークプロセッサ部にリコンフィグする。このため、ユーザが手作業等で結線のメンテナンスを行う必要がない。
【実施例２】
【０１１１】
実施例１では送信装置１００から、プロトコルと伝送データレート（インタフェース種類）を一意に特定するための情報がスイッチ装置３００に送信されてくる場合を想定している。実施例１の方式は確実だが、インタフェース種類そのものを送る場合、光トランシーバからレジスタ設定等の手段により、当該情報を入手する必要がある。そのため、送信側で当該情報を送信する必要があるほか、受信側でもインタフェース部に当該情報を取り出す機能が必要となる。実施例２では、受信側ではインタフェース種類を直ちに特定できない場合でも、推定処理によりネットワークプロセッサのリコンフィグを可能とする例を説明する。
【０１１２】
実施例２では、スイッチ装置３００側でレーン数の情報のみ入手できる場合でも、インタフェースの種類（イーサネット/ＦＣ/ＩＢ）等を判断できる例を説明する。このために、レーンのデータレート（10Gbps/25Gbps/8.5Gbps/16Gbps）を本実施例のスイッチ装置３００側で検出する。レーン数の情報（10G×1ch/10G×4ch/10G×10ch/25G×4chなど）については、送信装置２００側で検出し、スイッチ装置３００に通知する。装置ブロック構成は、図１０で示した構成と同様である。以下では、プロトコルを特定する処理における制御の変更点について主に説明する。
【０１１３】
図１９は、制御部３７０で処理されるプロトコル検出の動作を示すシーケンス図である。まず、検出部２３０では、送信側のポートエキスパンダ１００から多重化インタフェース部３１０を経由して送られてくる、使用レーン情報を検出する（Ｓ１９１）。使用レーン情報は例えば図８の使用物理レーン数、仮想レーン番号の対応情報を含む。これらの情報は、多重化された送信データの無効データ領域７００に挿入され、受信側で抽出することができる。ただし、実施例２ではインタフェース情報７１１は送られてこない。ここで、使用レーン情報から多重化データに含まれる複数のリンク層プロトコルに対応するレーン数を取得する（Ｓ１９２）。次に、論理回路制御部２４０は、有効・無効データ比率を検出し（Ｓ１９３）、データ比率からデータレートを計算する（Ｓ１９３）。使用レーン数およびデータレートを決定した後（Ｓ１９４）、プロトコル表により、レーン数とデータレートからインタフェースの種類を判別する（Ｓ１９５）。
【０１１４】
図２０は、プロトコル表（テーブル）の一例を示す。プロトコル表にはレーン数、データレートとインタフェースの対応の情報が含まれており、記憶装置２５０に記憶されている。レーン数はマルチプレクサ・デマルチプレクサ部２００で検出され、多重化インタフェース部３１０から制御部３７０に通知される。データレートは制御装置１７０の検出部２３０により検出される。論理回路制御部２４０は、レーン数とデータレートから、記憶されているプロトコル表を参照してインタフェースの種類を判定する。判定されたインタフェースの種類と、リコンフィグのデザインテーブル(図１１）の内容を比較し、リコンフィグすべき回路の候補を選択する。選択の方法としては、通常判定されたインタフェースの要件を満たす最小のスペックを有するスペックが選定される。
【０１１５】
例えば、検出されたレーン数が１ｃｈであり、データレートが10.3125Gbpsだった場合、インタフェースの種類は図２０のプロトコル表から10GｂEと判定される。そして、10GｂEのスペックを満たすA,B,Cのコンフィグ定義を図１１のデザインテーブルから選択し、FPGAのリコンフィグを行う。10GｂEの場合は、[A2]の10.3125Gbps、[B1]の8B/10B、1ｃｈ, [C2]の10.3125Gbps、10GbEが選択される。また、実施例１と同様に、パケット多重化部３３０の設定を決定する。
【０１１６】
なお、例えば、16Gファイバーチャネルである１ｃｈ、14.025Gbpsのプロトコルと、 InfiniBand(登録商標）である１ｃｈ、2/4/8/14/26/125/750Gbpsのプロトコルのうち14Gbpsのプロトコルは、図２０のプロトコル表からは、レーン数とデータレートのみでは、インタフェース種別の判定が難しい場合がある。このように、レーン数とデータレートが近接する複数の候補があり、プロトコルの決定（Ｓ１９５）で、１つの候補に絞ることが困難な場合は、例えば判定された確からしさの順、あるいは、予め定められた順番で優先順位を付加する（Ｓ１９６）。
【０１１７】
具体的な判定方法の例としては、検出されたレーン数が1ｃｈで、データレートが14Ｇｂｐｓだった場合、16GFC（14.025Gbps）もしくは1×ＩＢ（14Gbps）の2つが候補となるが、検出されたデータレートにより近い1×ＩＢ（14Gbps）が優先順位1番、16GFC（14.025Gbps）が優先順位2番となる。
【０１１８】
そして、定まった1つの候補、あるいは優先順位づけされた複数の候補のプロトコルおよびデータレートにより、リコンフィグされる回路が選択され、ネットワークプロセッサ３２０のFPGAに回路が形成される（Ｓ１９７）。
【０１１９】
その後、論理判定回路２４０は、パケットエンジン部３４０からフィードバックされるエラー情報等の有無を確認する。パケットエンジン部３４０では、フレームやパケットの情報を処理する。また、プロトコル毎に異なるパケット構成を検出することで伝送データのプロトコルを検出する。プロトコルに応じてパケット構成が決まっているため、例えばEthernet（登録商標）プロトコルだと論理判定回路２４０が判断してリコンフィグしたが、受信した伝送データが異なるプロトコルであった場合は、パケットエンジン部３４０でフレームを正常に受信できないため、エラーが発生する。エラーが発生した場合は、ネットワークプロセッサ部３２０の回路と受信データのプロトコルあるいはデータレート不一致と判断し、候補が複数ある場合は、次の優先順位のプロトコルを試す（Ｓ１９７〜Ｓ１９８）。パケットエンジン部からのエラー情報がない場合は、リコンフィグ成功と判断し（Ｓ１９９）、処理を終了する。
【０１２０】
以上の構成により、多重化インタフェース部３１０から入力される情報を解析し、必要な回路構成を自動的にリコンフィグすることができる。
【実施例３】
【０１２１】
実施例１〜２では、送信されてくる伝送データレート等からプロトコルを判定あるいは推定し、それにあった回路をFPGAで構成する。しかし、送信されてくるプロトコルの種類が限られる場合には、可能性のあるプロトコルを総当たりで試行することもできる。この場合には、図１９のフローにおいて、Ｓ１９１〜Ｓ１９５の処理を省略し、優先順位付けは予め定めた順序としておき（Ｓ１９６）、これに従って試せばよい。この実施例によれば、送信側からプロトコルやデータレート判定のための情報を送るが必要ない。また、スイッチ装置側でプロトコルやデータレートを推定する必要もない。ただし、試行およびリコンフィグの間の通信不通時間は、実施例１〜２より長くなる。
【実施例４】
【０１２２】
実施例３では、可能性のあるプロトコルを総当たりで試行した。しかし、受信側でデータの転送レートを検出し、可能性のあるプロトコルを絞り込むこともできる。この場合は、図１９のフローにおいて、Ｓ１９１〜Ｓ１９２の処理を省略し、受信側でデータレートを決定し（Ｓ１９３〜Ｓ１９４）、当該データレートの条件を満たすプロトコルの候補を例えば図２０のプロトコル表から抽出する（Ｓ１９５）。例えばデータレートが10Gbpsの場合、インタフェースの候補は、1chの10GbEか、4chの40GbEか、10chの100GbEに絞られる。抽出したプロトコルの候補に優先順位をつけて、全て試行する（Ｓ１９７）。この場合、図１７で説明した既存回路との差異判定の結果を用い、例えば既存回路と4ｃｈ分相違している場合は、40GbEと推定する等の判断を入れてもよい。実施例３では、送信側からプロトコル判定のための情報を送る必要なく、また、試行およびリコンフィグの間の通信不通時間は、実施例３より短くなる。
【０１２３】
本発明の図面で説明した各テーブルは一例であり、これに限るものではない。一つのデータと他のデータの関連性が保たれていればよく、一つのテーブルが分割されていてもよく、また複数のテーブルが合体していてもよい。
【０１２４】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の実施例の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【０１２５】
１００：送信装置
２００：マルチプレクサ・デマルチプレクサ部
３００：スイッチ装置
３１０：多重化インタフェース部
３２０：ネットワークプロセッサ部
３３０：パケット多重化部
３４０：パケットエンジン部
３７０：論理回路部
【図１】
0006338986.tif 000003
【図２】
0006338986.tif 000004
【図３】
0006338986.tif 000005
【図４】
0006338986.tif 000006
【図５】
0006338986.tif 000007
【図６】
0006338986.tif 000008
【図７】
0006338986.tif 000009
【図８】
0006338986.tif 000010
【図９】
0006338986.tif 000011
【図１０】
0006338986.tif 000012
【図１１】
0006338986.tif 000013
【図１２】
0006338986.tif 000014
【図１３】
0006338986.tif 000015
【図１４】
0006338986.tif 000016
【図１５】
0006338986.tif 000017
【図１６】
0006338986.tif 000018
【図１７】
0006338986.tif 000019
【図１８】
0006338986.tif 000020
【図１９】
0006338986.tif 000021
【図２０】
0006338986.tif 000022