(57)【要約】【課題】新規なヘッダフォーマットに要求される検索仕様に柔軟に対応可能で、かつハードウェア処理による高速性も実現すること。【解決手段】転送装置は、第１宛先情報および第１転送先情報を関連付ける第１テーブルと第１転送先情報を検索する第１検索回路とで構成される第１検索手段を有し、第１検索手段および第１宛先情報が指定されると第１転送先情報を検索する検索部と、第１ヘッダフォーマットである場合に第１宛先情報および第１検索手段を指定する第１検索指定情報を作成する検索制御部と、第２宛先情報および第２転送先情報を関連付ける第２テーブルを設定し、第２テーブルと第２検索回路とで構成される第２検索手段を検索部に構築し、第２ヘッダフォーマットである場合に第２検索手段および第２宛先情報を指定する第２検索指定情報を作成出力する処理を検索制御部に追加する制御部と、を有する。【選択図】図８
2018165976.tif 000002
【特許請求の範囲】
【請求項１】
通信データを転送する転送装置であって、
キー項目および他の項目を関連付けるテーブルと前記テーブルを参照して前記通信データのヘッダ内のフィールドである前記キー項目の値から前記他の項目の値を検索する検索回路とにより構成される検索リソースの集合である検索リソース群を有し、前記検索リソース群において、少なくとも、前記通信データの第１ヘッダフォーマットにしたがって前記キー項目の値である前記通信データの第１宛先情報および前記他の項目の値である第１転送先情報を関連付ける第１テーブルと前記第１テーブルを参照して前記第１宛先情報から前記第１転送先情報を検索する第１検索回路とで構成される第１検索リソースからなる第１検索手段を有し、前記第１検索手段および前記第１宛先情報が指定されると、前記第１検索回路により前記第１テーブルを参照して前記第１宛先情報から前記第１転送先情報を検索する検索部と、
前記ヘッダのフォーマットにしたがって宛先情報が格納されているフィールドの位置およびサイズと、１以上の検索リソースで構成される検索手段と、を指定する検索指定情報を作成して前記検索部に出力する再構成可能な機構であり、前記ヘッダのフォーマットが第１ヘッダフォーマットである場合に、前記第１ヘッダフォーマットにしたがって特定される前記第１宛先情報および前記第１検索手段を指定する第１検索指定情報を作成し、前記検索部に出力するという第１検索指定情報作成処理を実行する検索制御部と、
前記検索部を制御して、前記検索リソース群のうち前記第１検索リソースを除いた残余の検索リソースにおいて、前記通信データの第２ヘッダフォーマットにしたがって前記キー項目の値である第２宛先情報および前記他の項目の値である第２転送先情報を関連付ける第２テーブルを設定することにより、少なくとも、前記第２テーブルと前記第２テーブルを参照して前記第２宛先情報から前記第２転送先情報を検索する第２検索回路とで構成される第２検索リソースからなる第２検索手段を前記検索部に構築し、前記検索制御部を制御して、前記ヘッダのフォーマットが前記第２ヘッダフォーマットである場合に前記第２検索手段および前記第２宛先情報を指定する第２検索指定情報を作成して前記検索部に出力するという第２検索指定情報作成処理を前記検索制御部に追加する制御部と、
前記通信データを受信し、前記検索部によって前記ヘッダのフォーマットにしたがって検索された転送先情報に基づいて、前記通信データを転送先に送信する転送部と、
を有することを特徴とする転送装置。
【請求項２】
請求項１に記載の転送装置であって、
前記検索リソース群は、前記検索回路による検索方法が同一であるが、前記テーブルの前記キー項目のサイズが異なる複数種類の検索リソースを含むことを特徴とする転送装置。
【請求項３】
請求項１に記載の転送装置であって、
前記検索リソース群は、前記検索回路による検索方法が異なる複数種類の検索リソースを含むことを特徴とする転送装置。
【請求項４】
請求項１に記載の転送装置であって、
前記検索回路は、前記通信データ内の検索対象フィールドで前記テーブルの前記キー項目の値を最長一致検索し、最長一致した前記キー項目の値に関連付けられている前記他の項目の値を抽出する回路であることを特徴とする転送装置。
【請求項５】
請求項１に記載の転送装置であって、
前記検索回路は、前記通信データ内の検索対象フィールドで前記テーブルの前記キー項目の値を検索し、検索された前記キー項目の値に関連付けられている前記他の項目の値を抽出する回路であることを特徴とする転送装置。
【請求項６】
請求項１に記載の転送装置であって、
前記検索回路は、前記通信データ内の検索対象フィールドをハッシュ値に変換し、前記ハッシュ値で前記テーブルの前記キー項目の値を検索し、検索された前記キー項目の値に関連付けられている前記他の項目の値を抽出する回路であることを特徴とする転送装置。
【請求項７】
請求項１に記載の転送装置であって、
前記制御部は、
前記検索部を制御して、前記残余の検索リソースにおいて、前記通信データの第２ヘッダフォーマットにしたがって、前記キー項目の値である前記第２宛先情報および前記他の項目の値である第２転送先情報を関連付ける第２テーブルと、前記キー項目の値である前記第２転送先情報および前記他の項目の値である第３転送先情報を関連付ける第３テーブルと、を設定することにより、前記第２テーブルと前記第２テーブルを参照して前記第２宛先情報から前記第２転送先情報を検索する第２検索回路とで構成される第２検索リソースと、前記第３テーブルと前記第３テーブルを参照して前記第２転送先情報から前記第３転送先情報を検索する第３検索回路とで構成される第３検索リソースと、からなる第３検索手段を前記検索部に構築し、
前記検索制御部を制御して、前記通信データの前記ヘッダが前記第２ヘッダフォーマットである場合に前記第３検索手段および前記第２宛先情報を指定する第３検索指定情報を作成して前記検索部に出力するという第３検索指定情報作成処理を前記検索制御部に追加することを特徴とする転送装置。
【請求項８】
請求項１に記載の転送装置であって、
前記転送部は、
前記通信データの到着順を示すシーケンス番号を発行する発行部と、
前記ヘッダおよび前記発行部によって発行されたシーケンス番号を前記検索制御部に出力する出力部と、を有し、
前記検索制御部は、
前記シーケンス番号を含む前記検索指定情報を前記検索部に出力し、
前記検索部は、
前記転送先情報を前記シーケンス番号に関連付けて前記検索制御部に出力し、
前記検索制御部は、
前記検索部からの前記シーケンス番号順に前記転送先情報を前記転送部に出力することを特徴とする転送装置。
【請求項９】
請求項８に記載の転送装置であって、
前記転送部は、
前記通信データおよび前記シーケンス番号を保持する保持部を有し、
保持部に保持された前記シーケンス番号と、前記検索制御部から前記転送先情報とともに入力されてきた前記シーケンス番号と、が一致する場合、前記保持部に保持された前記通信データのヘッダを前記転送先情報で更新する更新部と、を有し、
前記更新部による更新後の通信データを、前記転送先情報で特定される転送先に送信することを特徴とする転送装置。
【請求項１０】
請求項８に記載の転送装置であって、
前記転送部を複数有し、
前記検索制御部は、
前記ヘッダおよび前記シーケンス番号が前記複数の転送部の各々から入力された場合、前記複数の転送部の各々からの前記シーケンス番号を連続性または相関性のあるシーケンス番号に変換して、変換後のシーケンス番号を含む前記検索指定情報を前記検索部に出力し、
前記検索部は、
前記転送先情報を前記変換後のシーケンス番号に関連付けて前記検索制御部に出力し、
前記検索制御部は、
前記検索部からの前記変換後のシーケンス番号順に変換前のシーケンス番号に変換して、前記転送先情報を前記変換前のシーケンス番号の発行元の転送部に出力することを特徴とする転送装置。
【請求項１１】
請求項８に記載の転送装置であって、
前記検索部を複数有し、
前記検索制御部は、
前記複数の検索部の各々が前記ヘッダのいずれのフォーマットに対応するかを特定可能であり、
前記検索指定情報の宛先となる検索部を、前記検索指定情報の作成元となる前記ヘッダのフォーマットに基づいて特定し、前記検索指定情報に含まれる前記シーケンス番号を、前記検索部ごとに連続性または相関性のあるシーケンス番号に変換して、変換後のシーケンス番号を含む前記検索指定情報を、前記検索指定情報の宛先となる前記検索部に出力し、
前記複数の検索部の各々からの前記転送先情報に含まれる前記変換後のシーケンス番号を、前記変換前のシーケンス番号に逆変換し、前記変換前のシーケンス番号順に、前記転送先情報を前記転送部に出力する、
ことを特徴とする転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレームやパケットのような通信データのヘッダを検索して転送先を決定する転送装置に関する。
【背景技術】
【０００２】
従来、ルータやスイッチのような転送装置は、転送性能の向上が常に求められる。このため、転送装置は、ソフトウェア処理やＦＰＧＡなどの再構成可能なハードウェアよりも、処理性能が高いＬＳＩなどの処理内容を変更できないハードウェアを用いて、通信データのヘッダを検索し、転送先を決定する必要がある。
【０００３】
ＬＳＩなどのハードウェアによる検索処理では、取り扱えるヘッダのフォーマットが予め決まっており、当該ハードウェアは、予め決まったフィールドを検索キーとして、予め決まった検索方式で検索を実行する。
【０００４】
たとえば、宛先ＩＰアドレスから次の転送先を決定する場合、転送装置は、経路テーブルを最長プレフィックス長検索と呼ばれる予め決まった検索方式で検索することにより、次の転送先を決定する。ＬＳＩなどのハードウェアによる検索処理では、製品化後に現れた新たなヘッダフォーマットのフレームの検索に、後から対応することができない、という課題があった。
【０００５】
この課題を解決するために、下記特許文献１の通信装置は、パケット検索および転送処理を行うパケット処理専用ハードウェアと、プログラマブルにパケットフォーマット解析、パケット転送処理が可能なパケット解析プロセッサとを有する。パケット解析プロセッサは、パケット処理専用ハードウェアが処理可能なパケットフォーマットか判定し、パケット処理専用ハードウェアが処理不可能な場合、処理出来るパケットフォーマットにパケットを変換し、パケット処理専用ハードウェアへ転送する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開ＷＯ２０１４／１２５６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の通信装置は、パケットヘッダの処理をパケット処理専用ハードウェアが処理不可能な場合、処理できるパケットフォーマットにパケットを変換する。しかしながら、パケットの変換だけでは、その後段のパケット処理専用ハードウェアにおいて、新たに現れたフレームヘッダフォーマットで要求される検索仕様の検索を柔軟に行うことができない。
【０００８】
３２ｂｉｔ程度の長いフィールドを検索キーとして転送先を決定する場合を例に挙げる。この場合、パケットヘッダを単純に変換するだけでは検索キーとするフィールドの長さは変わらない。したがって、パケット処理専用ハードウェアは、３２ｂｉｔの検索キーから宛先を検索する必要がある。３２ｂｉｔのフィールドを検索するに当たり、単純に３２ｂｉｔの値をインデックスとしてテーブルを引く場合、２の３２乗である４ギガエントリのテーブルを引く必要があり、広大なメモリが必要となる。同様に、検索フィールドの幅が、たとえば４８ｂｉｔである場合には、２の４８乗である２５６テラエントリのテーブルを引く必要があり、ほぼ実現不可能な大きさのメモリが必要となる。
【０００９】
本発明は、製品化後に新たに現れたヘッダフォーマットから転送先を検索するにあたり、要求される検索仕様にも柔軟に対応可能で、かつハードウェア処理による高速性も実現することを目的とする。
【課題を解決するための手段】
【００１０】
本願において開示される発明の一側面となる転送装置は、通信データを転送する転送装置であって、キー項目および他の項目を関連付けるテーブルと前記テーブルを参照して前記通信データのヘッダ内のフィールドである前記キー項目の値から前記他の項目の値を検索する検索回路とにより構成される検索リソースの集合である検索リソース群を有し、前記検索リソース群において、少なくとも、前記通信データの第１ヘッダフォーマットにしたがって前記キー項目の値である前記通信データの第１宛先情報および前記他の項目の値である第１転送先情報を関連付ける第１テーブルと前記第１テーブルを参照して前記第１宛先情報から前記第１転送先情報を検索する第１検索回路とで構成される第１検索リソースからなる第１検索手段を有し、前記第１検索手段および前記第１宛先情報が指定されると、前記第１検索回路により前記第１テーブルを参照して前記第１宛先情報から前記第１転送先情報を検索する検索部と、前記ヘッダのフォーマットにしたがって宛先情報が格納されているフィールドの位置およびサイズと、１以上の検索リソースで構成される検索手段と、を指定する検索指定情報を作成して前記検索部に出力する再構成可能な機構であり、前記ヘッダのフォーマットが第１ヘッダフォーマットである場合に、前記第１ヘッダフォーマットにしたがって特定される前記第１宛先情報および前記第１検索手段を指定する第１検索指定情報を作成し、前記検索部に出力するという第１検索指定情報作成処理を実行する検索制御部と、前記検索部を制御して、前記検索リソース群のうち前記第１検索リソースを除いた残余の検索リソースにおいて、前記通信データの第２ヘッダフォーマットにしたがって前記キー項目の値である第２宛先情報および前記他の項目の値である第２転送先情報を関連付ける第２テーブルを設定することにより、少なくとも、前記第２テーブルと前記第２テーブルを参照して前記第２宛先情報から前記第２転送先情報を検索する第２検索回路とで構成される第２検索リソースからなる第２検索手段を前記検索部に構築し、前記検索制御部を制御して、前記ヘッダのフォーマットが前記第２ヘッダフォーマットである場合に前記第２検索手段および前記第２宛先情報を指定する第２検索指定情報を作成して前記検索部に出力するという第２検索指定情報作成処理を前記検索制御部に追加する制御部と、前記通信データを受信し、前記検索部によって前記ヘッダのフォーマットにしたがって検索された転送先情報に基づいて、前記通信データを転送先に送信する転送部と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明の代表的な実施の形態によれば、新規なヘッダフォーマットに要求される検索仕様に柔軟に対応可能で、かつハードウェア処理による高速性も実現することができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１にかかるネットワーク構成例を示す説明図である。
【図２】図２は、実施例１にかかる転送装置のハードウェア構成例を示すブロック図である。
【図３】図３は、実施例１にかかる再構成可能通信モジュールの構成例１を示すブロック図である。
【図４】図４は、実施例１にかかる再構成可能通信モジュールの構成例２を示すブロック図である。
【図５】図５は、実施例１にかかる検索ＬＳＩの構成例１を示す説明図である。
【図６】図６は、実施例１にかかるテーブルのデータ構造例を示す説明図である。
【図７】図７は、実施例１にかかる検索ＬＳＩの構成例２を示す説明図である。
【図８】図８は、実施例１にかかる検索ＬＳＩの構成例３を示す説明図である。
【図９】図９は、実施例１にかかる検索指定情報の例１を示す説明図である。
【図１０】図１０は、実施例１にかかる検索指定情報の例２を示す説明図である。
【図１１】図１１は、実施例１にかかる検索指定情報の例３を示す説明図である。
【図１２】図１２は、実施例１にかかる基本制御機構の構成例を示すブロック図である。
【図１３】図１３は、実施例１にかかる検索制御ＦＰＧＡによる検索制御処理手順例を示すフローチャートである。
【図１４】図１４は、実施例１にかかる転送ＬＳＩによる転送処理手順例を示すフローチャートである。
【図１５】図１５は、実施例２にかかる再構成可能通信モジュールの構成例１を示すブロック図である。
【図１６】図１６は、実施例２にかかる複数の転送ＬＳＩから判定部までのデータの流れを示す説明図である。
【図１７】図１７は、実施例２にかかる整列部から複数の転送ＬＳＩまでのデータの流れを示す説明図である。
【図１８】図１８は、実施例２にかかる再構成可能通信モジュールの構成例２を示すブロック図である。
【図１９】図１９は、実施例２にかかる作成部から複数の検索ＬＳＩまでのデータの流れを示す説明図である。
【図２０】図２０は、実施例２にかかる複数の検索ＬＳＩから作成部までのデータの流れを示す説明図である。
【発明を実施するための形態】
【実施例１】
【００１３】
＜ネットワーク構成例＞
図１は、実施例１にかかるネットワーク構成例を示す説明図である。複数の転送装置１００の各々は、１以上の他の転送装置１００と接続され、レイヤ２、レイヤ３、ＭＰＬＳ（Ｍｕｌｔｉ−Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）といった第１ネットワーク１０１を構成する。また、各転送装置１００は、管理用の第２ネットワーク１０２を介して、管理サーバ１０３にも接続される。
【００１４】
＜転送装置１００のハードウェア構成例＞
図２は、実施例１にかかる転送装置１００のハードウェア構成例を示すブロック図である。転送装置１００は、基本制御機構２０１と、再構成可能通信モジュール２０２と、クロスバースイッチ２０３と、を有する。再構成可能通信モジュール２０２が１個であれば、クロスバースイッチ２０３は不要である。
【００１５】
基本制御機構２０１は、再構成可能通信モジュール２０２の設定や各種テーブルの学習をおこない、再構成可能通信モジュール２０２を再構成する制御部である。たとえば、新たにヘッダフォーマットが出現した場合、当該ヘッダフォーマットで転送可能となるように、再構成可能通信モジュール２０２を再構成する。再構成可能通信モジュール２０２は、通信データの宛先を検索して、転送先の転送装置１００を決定して転送する。
【００１６】
再構成可能通信モジュール２０２は、新たにヘッダフォーマットが出現した場合、基本制御機構２０１からの制御により、当該ヘッダフォーマットで転送可能となるように再構成する。
【００１７】
クロスバースイッチ２０３は、再構成可能通信モジュール２０２が複数搭載される場合、ある再構成可能通信モジュール２０２から他の再構成可能通信モジュール２０２へ通信データを転送するための通信経路である。再構成可能通信モジュール２０２が複数個存在する場合、一つの再構成可能通信モジュール２０２内で通信データを折り返して転送する場合と、複数の再構成可能通信モジュール２０２間で通信データを転送する場合が有り得る。
【００１８】
＜再構成可能通信モジュール２０２の構成例＞
図３および図４は、実施例１にかかる再構成可能通信モジュール２０２の構成例を示すブロック図である。特に、図３は、転送ＬＳＩ（Ｌａｒｇｅ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）３０１の構成例を示し、図４は、検索制御ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）の構成例を示す。
【００１９】
図３および図４において、再構成可能通信モジュール２０２は、転送ＬＳＩ３０１と、検索制御ＦＰＧＡ３０２と、検索ＬＳＩ３０３と、スイッチインタフェース（スイッチＩＦ）３０４と、を有する。転送ＬＳＩ３０１は、他の転送装置１００、または、自転送装置１００内の他の再構成可能通信モジュール２０２から入力された通信データを、転送先の転送装置１００に転送する。転送ＬＳＩ３０１の詳細は後述する。
【００２０】
検索制御ＦＰＧＡ３０２は、ソフトウェアまたはＦＰＧＡのように再構成可能なモジュールである。検索制御ＦＰＧＡ３０２は、通信データのヘッダフォーマットに応じた検索手段を決定し、検索ＬＳＩ３０３にヘッダを出力して通信データの転送先を検索させる。検索制御ＦＰＧＡ３０２の詳細は、図４で説明する。
【００２１】
検索ＬＳＩ３０３は、複数のヘッダフォーマットに対応した検索を実行する。検索ＬＳＩ３０３は、検索の高速化実現のため再構成不能なハードウェアである。ただし、新規なヘッダフォーマットが出現した場合に、当該新規なヘッダフォーマットによる検索に対応するため、検索ＬＳＩ３０３内の回路を１または複数段組み合わせることにより、当該新規なヘッダフォーマットによる検索が実行可能となる。検索ＬＳＩ３０３の詳細は、図５〜図７で説明する。
【００２２】
スイッチＩＦ３０４は、クロスバースイッチ２０３から入力されてきた通信データを転送ＬＳＩ３０１に出力するインタフェースである。
【００２３】
ここで、転送ＬＳＩ３０１について具体的に説明する。転送ＬＳＩ３０１は、入力ポート３１０と、発行部３１１と、抽出部３１２と、保持部３１３と、出力部３１４と、入力部３１５と、更新部３１６と、ポート番号テーブル３１７と、ポート検索部３１８と、出力ポート３１９と、を有する。
【００２４】
入力ポート３１０は、他の転送装置１００から通信データの入力を受け付けるポートである。
【００２５】
発行部３１１は、入力ポート３１０に入力された通信データごとに、通信データの到着順を示すシーケンス番号を発行する。シーケンス番号は、検索制御ＦＰＧＡ３０２が検索ＬＳＩ３０３に検索指定を行った順に検索結果を整列し直すために用いられる。
【００２６】
抽出部３１２は、通信データからヘッダを抽出する。抽出するヘッダの長さは、ヘッダのフォーマットに依存せずに通信データの先頭から固定の長さとする。或いは、特定の既知のフォーマットの場合、転送先の検索に必要な長さとし、その他のフォーマットの場合、ある特定の固定の長さとしても良い。抽出部３１２は、抽出したヘッダおよび発行部３１１で発行されたシーケンス番号を、ヘッダ情報として出力部３１４に出力する。また、抽出部３１２は、通信データおよび発行部３１１で発行されたシーケンス番号を、保持部３１３に出力する。
【００２７】
保持部３１３は、通信データとシーケンス番号との組み合わせを保持する記憶デバイスである。
【００２８】
出力部３１４は、ヘッダとシーケンス番号との組み合わせであるヘッダ情報を検索制御ＦＰＧＡ３０２に出力する。
【００２９】
入力部３１５は、検索制御ＦＰＧＡ３０２を介して検索ＬＳＩ３０３からの検索結果を受け付ける。検索結果は、ヘッダのフォーマットに応じた宛先情報と、出力部３１４から出力されたシーケンス番号とを含む。たとえば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）の場合、検索結果は、宛先ＩＰアドレスと、送信ポート番号と、宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスと、を含む。また、ＭＰＬＳの場合、検索結果は、Ｏｕｔ  Ｓｈｉｍ  Ｌａｂｅｌと、送信ポート番号と、宛先ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスと、を含む。また、イーサネット（イーサネットは登録商標、以下同じ）の場合、検索結果は、宛先ＭＡＣアドレスに送信するための送信ポート番号を含む。
【００３０】
更新部３１６は、検索結果に含まれるシーケンス番号に一致するシーケンス番号に対応する通信データを保持部３１３から特定する。更新部３１６は、特定した通信データのヘッダを、検索結果を用いて更新する。たとえば、ＩＰの場合、更新部３１６は、送信ポート番号と、宛先ＭＡＣアドレスと、を更新する。また、ＭＰＬＳの場合、更新部３１６は、Ｏｕｔ  Ｓｈｉｍ  Ｌａｂｅｌと、送信ポート番号と、宛先ＭＡＣアドレスと、を更新する。また、イーサネットの場合、更新部３１６は、宛先ＭＡＣアドレスに送信するための送信ポート番号を更新する。上記、更新するヘッダフィールドの位置及び長さは、検索制御ＦＰＧＡ３０２から入力部３１５を経由して指示される。
【００３１】
ポート番号テーブル３１７は、ポート番号が属する再構成可能通信モジュール２０２を特定するテーブルである。具体的には、たとえば、ポート番号テーブル３１７は、ポート番号３７１とモジュールＩＤ３７２とを関連付けたテーブルである。ポート番号３７１は、モジュールＩＤ３７２で特定される再構成可能通信モジュール２０２内のポートを一意に特定する識別情報である。モジュールＩＤ３７２は、再構成可能通信モジュール２０２を一意に特定する識別情報である。
【００３２】
ポート検索部３１８は、ポート番号テーブル３１７を参照して、更新部３１６で更新されたポート番号３７１に対応するモジュールＩＤ３７２を特定する。また、ポート検索部３１８は、搭載されている再構成可能通信モジュール２０２のモジュールＩＤ３７２を保持する。当該保持するモジュールＩＤ３７２と、ポート番号テーブル３１７から特定されたモジュールＩＤ３７２とが一致する場合、ポート検索部３１８は、更新部３１６による更新後の通信データを、ポート番号３７１で特定される出力ポート３１９に出力する。
【００３３】
当該保持するモジュールＩＤ３７２と、ポート番号テーブル３１７から特定されたモジュールＩＤ３７２とが一致しない場合、ポート検索部３１８は、ポート番号テーブル３１７から特定されたモジュールＩＤ３７２の再構成可能通信モジュール２０２に出力するようスイッチＩＦ３０４に通信データを出力する。これにより、スイッチＩＦ３０４は、ポート番号テーブル３１７から特定されたモジュールＩＤ３７２の再構成可能通信モジュール２０２に出力する経路をクロスバースイッチ２０３の経路群から選択して、選択した経路に通信データを出力する。
【００３４】
出力ポート３１９は、ポート検索部３１８またはスイッチＩＦ３０４から入力されてきた通信データを、転送先の転送装置１００に送信する。
【００３５】
つぎに、図４を用いて、検索制御ＦＰＧＡ３０２の詳細な構成について説明する。検索制御ＦＰＧＡ３０２は、判定部４０１と、作成部４０２と、整列部４０３と、を有する。判定部４０１は、転送ＬＳＩ３０１からのヘッダ情報に含まれるヘッダのフォーマットに基づいて、検索対象ヘッダフォーマットを判定する。具体的には、たとえば、判定部４０１は、イーサネットヘッダのタイプフィールドを参照して、検索対象ヘッダフォーマットがＩＰであるか、ＭＰＬＳであるか、イーサネットであるかを判定する。たとえば、検索対象ヘッダフォーマットは、タイプフィールドの値により判定される。
【００３６】
作成部４０２は、判定部４０１によって判定された検索対象ヘッダフォーマットに応じた検索手段指定情報を作成し、検索キー情報と検索手段指定情報とを含む検索指定情報を検索ＬＳＩ３０３に出力する。
【００３７】
検索キー情報とは、転送ＬＳＩ３０１からのヘッダのヘッダフォーマットで特定される検索キーと転送ＬＳＩ３０１からのシーケンス番号との組み合わせである。検索キーとは、ヘッダ内の宛先に関するフィールドである。したがって、検索キーは、検索対象フォーマットによりヘッダ内の位置およびビット幅が異なる。
【００３８】
たとえば、検索対象ヘッダフォーマットがＩＰである場合、検索キーは、ＩＰヘッダに含まれる宛先ＩＰアドレスである。検索対象ヘッダフォーマットがＭＰＬＳである場合、検索キーは、ＭＰＬＳヘッダに含まれるＩｎ  Ｓｈｉｍ  Ｌａｂｅｌである。検索対象ヘッダフォーマットがイーサネットである場合、検索キーは、イーサネットヘッダに含まれる宛先ＭＡＣアドレスである。
【００３９】
検索手段は、検索ＬＳＩ３０３で製造時または出荷後の再構成により構成されている検索処理に必要な１段以上の検索リソースである。検索リソースは、テーブルと検索回路との組み合わせである。たとえば、検索対象ヘッダフォーマットがＩＰである場合、検索手段を構成する検索回路群は、ＴＣＡＭ（Ｔｅｒｎａｒｙ  ＣＡＭ）検索回路（１段目）とハッシュ検索回路（２段目）である。検索対象ヘッダフォーマットがＭＰＬＳである場合、検索手段を構成する検索回路群は、テーブル引き検索回路（１段目）とハッシュ検索回路（２段目）である。検索対象ヘッダフォーマットがイーサネットである場合、検索手段を構成する検索回路群は、ハッシュ検索回路（１段目のみ）である。
【００４０】
整列部４０３は、検索ＬＳＩ３０３からの検索結果を受け付け、検索結果に含まれるシーケンス番号順に検索結果を整列させる。整列部４０３は、検索結果からシーケンス番号を除いた転送先情報を整列順に転送ＬＳＩ３０１へ出力する。
【００４１】
なお、発行部３１１が発行するシーケンス番号のｂｉｔ幅を、たとえば、１０ｂｉｔとする。このｂｉｔ数は検索ＬＳＩ３０３内で検索仕掛かり中の通信データ数の最大値より多くの数を特定できるｂｉｔ数とする。たとえば、検索ＬＳＩ３０３内での検索仕掛かり中の通信データ数が１０２４（２の１０乗）個より少ない場合、シーケンス番号のｂｉｔ幅を１０ｂｉｔ以上とする。これにより、検索ＬＳＩ３０３内での検索仕掛かり中の全通信データの順番を特定することができる。
【００４２】
＜検索ＬＳＩ３０３の構成例＞
図５〜図８は、実施例１にかかる検索ＬＳＩ３０３の構成例を示す説明図である。図５では、検索ＬＳＩ３０３が有する検索リソースプール５００に着目して説明する。検索ＬＳＩ３０３は、検索リソースプール５００を有する。検索リソースプール５００とは、検索リソースの集合である。検索リソースとは、検索回路と当該検索回路がアクセス可能なテーブルを格納する記憶デバイス（たとえば、ＲＡＭ）との組み合わせである。
【００４３】
ＴＣＡＭ検索リソース５０１（５０１−１，５０１−２、…を総称）は、検索対象ヘッダフォーマットがＩＰである場合に採用される検索手段の構成要素である。ＴＣＡＭ検索リソース５０１は、ＴＣＡＭ検索回路５１１（５１１−１，５１１−２、…を総称）と当該ＴＣＡＭ検索回路５１１がアクセス可能なＴＣＡＭに格納されたルーティングテーブル５２１（５２１−１，５２１−２、…を総称）との組み合わせである。ＴＣＡＭ検索回路５１１は、ルーティングテーブル５２１を最長一致検索する。ルーティングテーブル５２１は、事前に基本制御機構２０１で学習されたテーブルである。ルーティングテーブル５２１は、検索キーである宛先ＩＰアドレスに、当該宛先ＩＰアドレスに通信データを送信するための送信ポート番号とＮｅｘｔ  Ｈｏｐ  ＩＰとを関連付けたテーブルである。Ｎｅｘｔ  Ｈｏｐ  ＩＰは、転送先の転送装置１００のＩＰアドレスである。
【００４４】
ＴＣＡＭ検索リソース５０１は、１または複数個構築される。ＴＣＡＭ検索リソース５０１は、具体的には、たとえば、検索キーである宛先ＩＰアドレスのビット幅ごとに構築される。たとえば、検索対象ヘッダフォーマットがＩＰｖ４である場合、宛先ＩＰアドレスのビット幅は３２ｂｉｔである。したがって、第１ＴＣＡＭ検索リソース５０１−１のＴＣＡＭ検索回路５１１−１は、３２ｂｉｔのビット幅での最長一致検索回路であり、第１ルーティングテーブル５２１−１の検索キーのビット幅は、３２ｂｉｔとなる。同様に、検索対象ヘッダフォーマットがＩＰｖ６である場合、宛先ＩＰアドレスのビット幅は１２８ｂｉｔである。したがって、第２ＴＣＡＭ検索リソース５０１−２のＴＣＡＭ検索回路５１１−２は、１２８ｂｉｔのビット幅での最長一致検索回路であり、第２ルーティングテーブル５２１−２の検索キーのビット幅は、１２８ｂｉｔとなる。なお、将来、新規に出現するＩＰｖｘ（ｘは、バージョン番号）に備えて、たとえば、２５６ｂｉｔや５１２ｂｉｔの未使用のＴＣＡＭ検索リソース５０１を搭載しておく。
【００４５】
ＴＣＡＭ検索回路５１１による最長一致検索では、検索キーのホストアドレスはドントケアとなるため、ルーティングテーブル５２１のエントリ数は、テーブル引きのような２の３２乗ではなく、経路数に減少される。したがって、テーブル引きに比べて省メモリ化を図ることができる。また、これにより、未使用のＴＣＡＭ検索リソース５０１を搭載するためのメモリ空間を確保することもできる。
【００４６】
テーブル引き検索リソース５０２（５０２−１，５０２−２、…を総称）は、検索対象ヘッダフォーマットがＭＰＬＳである場合に採用される検索手段の構成要素である。テーブル引き検索リソース５０２は、テーブル引き検索回路５１２（５１２−１，５１２−２、…を総称）と当該テーブル引き検索回路５１２がアクセス可能なＲＡＭに格納されたラベルテーブル５２２（５２２−１，５２２−２、…を総称）との組み合わせである。テーブル引き検索回路５１２は、ラベルテーブル５２２を検索する。ラベルテーブル５２２は、事前に基本制御機構２０１で学習されたテーブルである。ラベルテーブル５２２は、検索キーであるＩｎ  Ｓｈｉｍ  Ｌａｂｅｌに、Ｏｕｔ  Ｓｈｉｍ  Ｌａｂｅｌと送信ポート番号とＮｅｘｔ  Ｈｏｐ  ＩＰとを関連付けたテーブルである。
【００４７】
テーブル引き検索リソース５０２は、１または複数個構築される。テーブル引き検索リソース５０２は、具体的には、たとえば、ＴＣＡＭ検索リソース５０１と同様、検索キーのビット幅ごとに構築される。なお、将来、新規に出現するフォーマットに備えて、たとえば、検索キーのビット幅が２１ｂｉｔ以上３１ｂｉｔ以下の未使用のテーブル引き検索リソース５０２を搭載しておく。これにより、３２ｂｉｔのビット幅の検索キーを用いるテーブル引きによる検索よりも、省メモリ化を図ることができる。また、これにより、未使用のテーブル引き検索リソース５０２（ＭＰＬＳに限られない）を搭載するためのメモリ空間を確保することもできる。
【００４８】
ハッシュ検索リソース５０３（５０３−１，５０３−２、…を総称）は、検索対象ヘッダフォーマットがＩＰ、ＭＰＬＳ、およびイーサネットである場合に採用される検索手段の構成要素である。ハッシュ検索リソース５０３は、ハッシュ検索回路５１３（５１３−１，５１３−２、…を総称）と当該ハッシュ検索回路５１３がアクセス可能なＲＡＭに格納されたハッシュテーブル５２３（５２３−１，５２３−２、…を総称）との組み合わせである。ハッシュ検索回路５１３は、ハッシュ関数により検索キーである宛先ＭＡＣアドレスをハッシュ値に変換し、ハッシュ値でハッシュテーブル５２３を検索する。ハッシュテーブル５２３は、事前に基本制御機構２０１で設定されたテーブルである。ハッシュテーブル５２３は、ハッシュ値に、送信ポート番号を関連付けたテーブルである。
【００４９】
ハッシュ検索リソース５０３は、１または複数個構築される。ハッシュ検索リソース５０３は、具体的には、たとえば、ＴＣＡＭ検索リソース５０１と同様、ハッシュ値のビット幅ごとに構築される。なお、将来、新規に出現するフォーマットに備えて、たとえば、ビット幅が９ｂｉｔ以上４７ｂｉｔ以下の未使用のハッシュ検索リソース５０３を搭載しておく。これにより、ハッシュ値を用いずに４８ｂｉｔの宛先ＭＡＣアドレスをそのまま用いるテーブル引きによる検索よりも、省メモリ化を図ることができる。また、これにより、未使用のハッシュ検索リソース５０３を搭載するためのメモリ空間を確保することもできる。
【００５０】
図６は、実施例１にかかるテーブルのデータ構造例を示す説明図である。（Ａ）は、ルーティングテーブル５２１である。ルーティングテーブル５２１は、ＴＣＡＭ検索回路５１１がアクセスするＴＣＡＭに格納されるテーブルである。ルーティングテーブル５２１は、基本制御機構２０１により、宛先ＩＰアドレス６１１に対応する送信ポート番号６１２およびＮｅｘｔ  Ｈｏｐ  ＩＰ６１３が学習されたテーブルである。宛先ＩＰアドレス６１１がキー項目の値、すなわち、検索キーとなる。
【００５１】
（Ｂ）は、ラベルテーブル５２２である。ラベルテーブル５２２は、テーブル引き検索回路５１２がアクセスするＲＡＭに格納されるテーブルである。ラベルテーブル５２２は、基本制御機構２０１により、Ｉｎ  Ｓｈｉｍ  Ｌａｂｅｌ６２１に対応するＯｕｔ  Ｓｈｉｍ  Ｌａｂｅｌ６２２、送信ポート番号６２３およびＮｅｘｔ  Ｈｏｐ  ＩＰ６２４が学習されたテーブルである。Ｉｎ  Ｓｈｉｍ  Ｌａｂｅｌ６２１がキー項目の値、すなわち、検索キーとなる。
【００５２】
（Ｃ）は、ハッシュテーブル５２３である。ハッシュテーブル５２３は、ハッシュ検索回路５１３がアクセスするＲＡＭに格納されるテーブルである。ハッシュテーブル５２３は、基本制御機構２０１により、ハッシュ値６３１に対応する宛先ＭＡＣアドレス６３２が設定されたテーブルである。ハッシュ値６３１がキー項目の値、すなわち、検索キーとなる。
【００５３】
図７は、実施例１にかかる検索ＬＳＩ３０３のハードウェア構成例を示す。検索ＬＳＩ３０３は、選択回路７００（７００−１，７００−２、…を総称）と、ＴＣＡＭ検索回路５１１と、テーブル引き検索回路５１２と、ハッシュ検索回路５１３と、を有するユニットを宛先ＩＰアドレスのビット幅および宛先ＭＡＣアドレスのビット幅の組み合わせごとに有する。なお、図７では、各検索回路がアクセス可能な記憶デバイスは省略されている。各ユニットにおいて、縦に配列するＴＣＡＭ検索回路５１１、テーブル引き検索回路５１２、およびハッシュ検索回路５１３を第ｉ（１≦ｉ≦ｎ）段の検索回路群と称す。第ｉ段の検索回路群の前段の選択回路７００を第ｉ段（１≦ｉ≦ｎ＋１）の選択回路７００と称す。検索ＬＳＩ３０３は、基本制御機構２０１からの設定にしたがって、選択回路７００により、検索回路群の段数や、第ｉ段の検索回路群において使用される検索回路を選択する。なお、第ｉ＋１段の選択回路７００は、第ｉ段の検索回路群の出力を選択する回路でもある。
【００５４】
図８は、実施例１にかかる検索対象ヘッダフォーマットごとに検索ＬＳＩ３０３に構築された検索手段を示す。ＩＰ検索手段８０１は、検索対象ヘッダフォーマットがＩＰｖ４である場合の検索手段である。なお、ＩＰｖ４とＩＰｖ６では、宛先ＩＰアドレスのビット幅が異なるため、異なるＩＰ検索手段８０１となる。ここでは、例として、ＩＰ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔを想定する。ＩＰ検索手段８０１は、１段目が第１ＴＣＡＭ検索リソース５０１−１、２段目が第１ハッシュ検索リソース５０３−１である検索手段である。ＩＰ検索手段８０１は、検索制御ＦＰＧＡ３０２から宛先ＩＰアドレスを取得して、第１ＴＣＡＭ検索リソース５０１−１を用いて送信ポート番号とＮｅｘｔ  Ｈｏｐ  ＩＰとを取得する。ＩＰ検索手段８０１は、送信ポート番号を検索結果として検索制御ＦＰＧＡ３０２に返し、Ｎｅｘｔ  Ｈｏｐ  ＩＰを第１ハッシュ検索リソース５０３−１に出力する。ＩＰ検索手段８０１は、第１ハッシュ検索リソース５０３−１を用いて、Ｎｅｘｔ  Ｈｏｐ  ＩＰをハッシュ値に変換して、ハッシュテーブル５２３から宛先ＭＡＣアドレスを取得し、検索結果として検索制御ＦＰＧＡ３０２に返す。
【００５５】
ＭＰＬＳ検索手段８０２は、検索対象ヘッダフォーマットがＭＰＬＳである場合の検索手段である。ここでは、例として、ＭＰＬＳ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔを想定する。ＭＰＬＳ検索手段８０２は、１段目が第１テーブル引き検索リソース５０２−１、２段目が第１ハッシュ検索リソース５０３−１である検索手段である。ＭＰＬＳ検索手段８０２は、検索制御ＦＰＧＡ３０２からＩｎ  Ｓｈｉｍ  Ｌａｂｅｌを取得して、第１テーブル引き検索リソース５０２−１を用いてＯｕｔ  Ｓｈｉｍ  Ｌａｂｅｌと送信ポート番号とＮｅｘｔ  Ｈｏｐ  ＩＰとを取得する。ＭＰＬＳ検索手段８０２は、Ｏｕｔ  Ｓｈｉｍ  Ｌａｂｅｌと送信ポート番号を検索結果として検索制御ＦＰＧＡ３０２に返し、Ｎｅｘｔ  Ｈｏｐ  ＩＰを第１ハッシュ検索リソース５０３−１に出力する。ＭＰＬＳ検索手段８０２は、第１ハッシュ検索リソース５０３−１を用いて、Ｎｅｘｔ  Ｈｏｐ  ＩＰをハッシュ値に変換して、ハッシュテーブル５２３から宛先ＭＡＣアドレスを取得し、検索結果として検索制御ＦＰＧＡ３０２に返す。
【００５６】
イーサネット検索手段８０３は、検索対象ヘッダフォーマットがイーサネットである場合の検索手段である。ここでは、例として、レイヤ２中継を想定しており、レイヤ３以上のヘッダフォーマットは検索結果に影響しない。イーサネット検索手段８０３は、１段目が第２ハッシュ検索リソース５０３−２である検索手段である。イーサネット検索手段８０３は、検索制御ＦＰＧＡ３０２から宛先ＭＡＣアドレスを取得して、第２ハッシュ検索リソース５０３−２を用いて送信ポート番号を取得する。イーサネット検索手段８０３は、送信ポート番号を検索結果として検索制御ＦＰＧＡ３０２に返す。
【００５７】
＜検索指定情報＞
図９〜図１１は、実施例１にかかる検索指定情報の一例を示す説明図である。図９は、ＩＰｖ４におけるＩＰ検索指定情報９００を示し、図１０は、ＭＰＬＳ検索指定情報１０００を示し、図１１は、イーサネット検索指定情報１１００を示す。以下の説明では、ｂｉｔ位置の数え方として最下位ビットを０ｂｉｔ目とし、上位側に向かって増加するように数えるものとして説明する。また、検索ＬＳＩ３０３は、上述したように、汎用的な検索リソースプール５００から構成されており、検索キーとして使用するフィールド、および、検索結果として得られるフィールドに具体的に何が入っているかは感知しない。
【００５８】
図９において、ＩＰ検索指定情報９００は、ＩＰ検索キー情報９０１と、ＩＰ検索手段指定情報９０２と、を含む。ＩＰ検索キー情報９０１は、検索キーとなる宛先ＩＰアドレスのヘッダフィールド（３２ｂｉｔ）と、シーケンス番号（１０ｂｉｔ）とを含む。ＩＰ検索手段指定情報９０２は、ＩＰ検索手段８０１を指定する情報である。ＩＰ検索手段８０１は、図８に示したように、１段目が第１ＴＣＡＭ検索リソース５０１−１であり、２段目が第１ハッシュ検索リソース５０３−１である。１段目の第１ＴＣＡＭ検索リソース５０１−１における検索キーは、３２ｂｉｔの宛先ＩＰアドレスのヘッダフィールド（３１〜０ｂｉｔ目）である。当該検索キーを用いた第１ＴＣＡＭ検索リソース５０１−１の検索結果は、４０ｂｉｔのビット列である。当該ビット列の３１〜０ｂｉｔ目がＮｅｘｔ  Ｈｏｐ  ＩＰであり、３９〜３２ｂｉｔ目が送信ポート番号である。
【００５９】
２段目の第１ハッシュ検索リソース５０３−１における検索キーは、１段目の検索結果の３１〜０ｂｉｔ目のビット列、すなわち、Ｎｅｘｔ  Ｈｏｐ  ＩＰである。当該検索キーを用いた第１ハッシュ検索リソース５０３−１の検索結果は、４８ｂｉｔの宛先ＭＡＣアドレスである。
【００６０】
図１０において、ＭＰＬＳ検索指定情報１０００は、ＭＰＬＳ検索キー情報１００１と、ＭＰＬＳ検索手段指定情報１００２と、を含む。ＭＰＬＳ検索キー情報１００１は、検索キーとなるＩｎ  Ｓｈｉｍ  Ｌａｂｅｌのヘッダフィールド（２０ｂｉｔ）と、シーケンス番号（１０ｂｉｔ）とを含む。ＭＰＬＳ検索手段指定情報１００２は、図８に示したように、１段目が第１テーブル引き検索リソース５０２−１であり、２段目が第１ハッシュ検索リソース５０３−１である。１段目の第１テーブル引き検索リソース５０２−１における検索キーは、２０ｂｉｔのＩｎ  Ｓｈｉｍ  Ｌａｂｅｌのヘッダフィールド（１９〜０ｂｉｔ目）である。当該検索キーを用いた第１テーブル引き検索リソース５０２−１の検索結果は、６０ｂｉｔのビット列である。当該ビット列の３１〜０ｂｉｔ目がＮｅｘｔ  Ｈｏｐ  ＩＰであり、３９〜３２ｂｉｔ目が送信ポート番号であり、５９〜４０ｂｉｔ目がＯｕｔ  Ｓｈｉｍ  Ｌａｂｅｌである。
【００６１】
２段目の第１ハッシュ検索リソース５０３−１における検索キーは、１段目の検索結果の３１〜０ｂｉｔ目のビット列、すなわち、Ｎｅｘｔ  Ｈｏｐ  ＩＰである。当該検索キーを用いた第１ハッシュ検索リソース５０３−１の検索結果は、４８ｂｉｔの宛先ＭＡＣアドレスである。
【００６２】
図１１において、イーサネット検索指定情報１１００は、イーサネット検索キー情報１１０１と、イーサネット検索手段指定情報１１０２と、を含む。イーサネット検索キー情報１１０１は、検索キーとなる宛先ＭＡＣアドレスのヘッダフィールド（４８ｂｉｔ）と、シーケンス番号（１０ｂｉｔ）とを含む。イーサネット検索手段指定情報１１０２は、図８に示したように、１段目のみの第２ハッシュ検索リソース５０３−２である。第２ハッシュ検索リソース５０３−２における検索キーは、４８ｂｉｔの宛先ＭＡＣアドレスのヘッダフィールド（４７〜０ｂｉｔ目）である。当該検索キーを用いた第２ハッシュ検索リソース５０３−２の検索結果は、８ｂｉｔのビット列である。当該ビット列の７〜０ｂｉｔ目が送信ポート番号である。
【００６３】
＜基本制御機構２０１の構成例＞
図１２は、実施例１にかかる基本制御機構２０１の構成例を示すブロック図である。基本制御機構２０１は、ＬＳＩで構成されてもよく、再構成可能なＦＰＧＡやソフトウェアにより構成されてもよい。基本制御機構２０１は、管理用ＩＦ１２０１と、設定部１２０２と、学習部１２０３と、を有する。管理用ＩＦ１２０１は、管理サーバ１０３からアップデート情報を取得する。設定部１２０２は、未使用のテーブル１２０４を用いてハッシュテーブル５２３を設定したり、検索ＬＳＩ３０３に検索手段を構築する。学習部１２０３は、未使用のテーブル１２０５を用いて経路を学習し、学習結果を保持するルーティングテーブル５２１を生成する。また、基本制御機構２０１は、アップデート情報を検索制御ＦＰＧＡ３０２にも出力し、検索制御ＦＰＧＡ３０２内の判定部４０１および作成部４０２を更新する。
【００６４】
アップデート情報とは、製品出荷後に新たに出現したヘッダフォーマットでの転送を実現するために転送装置１００の再構成に必要な情報である。具体的には、たとえば、既存のヘッダフォーマットの新バージョン、たとえば、新バージョンのＩＰヘッダフォーマットの場合、アップデート情報は、宛先ＩＰアドレスのヘッダフィールドのビット幅と、新バージョンのビット幅に対応するＩＰ検索手段８０１の構成要素と、を含む。
【００６５】
基本制御機構２０１は、このアップデート情報を管理用ＩＦ１２０１で取得すると、学習部１２０３により、新バージョンのＩＰヘッダフォーマットでの宛先ＩＰアドレスのヘッダフィールドのビット幅に応じた未使用のテーブルを選択して、宛先ＩＰアドレス、送信ポート番号、およびＮｅｘｔ  Ｈｏｐ  ＩＰを学習し、ルーティングテーブル５２１を作成する。
【００６６】
また、基本制御機構２０１は、設定部１２０２により、アップデート情報に含まれるＩＰ検索手段８０１の構成要素を設定する。具体的には、設定部１２０２は、選択回路７００を制御して、検索キーのビット幅で制御可能なＴＣＡＭ検索回路５１１、テーブル引き検索回路５１２、およびハッシュ検索回路５１３の少なくともいずれか１つを選択して、検索ＬＳＩ３０３内に、新バージョンのＩＰ検索手段８０１を構築する。
【００６７】
また、検索制御ＦＰＧＡ３０２は、判定部４０１を更新する。具体的には、たとえば、検索制御ＦＰＧＡ３０２は、新バージョンのＩＰヘッダフォーマットを有する通信データが受信された場合に、ヘッダ種の特徴により新バージョンのＩＰヘッダフォーマットを判定する処理を判定部４０１に追加する。また、検索制御ＦＰＧＡ３０２は、作成部４０２を更新する。具体的には、たとえば、検索制御ＦＰＧＡ３０２は、通信データのヘッダが新バージョンのＩＰヘッダフォーマットであると判定された場合に、新バージョンのＩＰヘッダフォーマットから検索キーとなるフィールドの位置およびビット幅を特定して、当該検索キーを抽出する処理と、新バージョンのＩＰ検索手段８０１を選択する検索手段指定情報を作成する処理とを、作成部４０２に追加する。
【００６８】
また、新規なヘッダフォーマットの場合、アップデート情報は、検索キーのビット幅と、検索手段の構成要素と、を含む。
【００６９】
基本制御機構２０１は、このアップデート情報を管理用ＩＦ１２０１で取得すると、学習部１２０３により、新規なヘッダフォーマットでの検索キーのビット幅に応じた未使用のテーブル１２０５を選択して、検索キー、および検索キーに対応する検索結果を学習する。
【００７０】
また、基本制御機構２０１は、設定部１２０２により、アップデート情報に含まれる検索手段の構成要素を設定する。具体的には、設定部１２０２は、選択回路７００を制御して、検索キーのビット幅で制御可能なＴＣＡＭ検索回路５１１、テーブル引き検索回路５１２、およびハッシュ検索回路５１３の少なくともいずれか１つを選択して、検索ＬＳＩ３０３内に、新規なヘッダフォーマットの検索手段を構築する。
【００７１】
また、検索制御ＦＰＧＡ３０２は、判定部４０１を更新する。具体的には、たとえば、検索制御ＦＰＧＡ３０２は、新規なヘッダフォーマットを有する通信データが受信された場合に、ヘッダ種の特徴により新規なヘッダフォーマットを判定する処理を判定部４０１に追加する。また、検索制御ＦＰＧＡ３０２は、作成部４０２を更新する。具体的には、たとえば、検索制御ＦＰＧＡ３０２は、通信データのヘッダが新規なヘッダフォーマットであると判定された場合に、新規なヘッダフォーマットから検索キーとなるフィールドの位置およびビット幅を特定して、当該検索キーを抽出する処理と、新規なヘッダフォーマットの検索手段を選択する検索指定情報を作成する処理と、を作成部４０２に追加する。
【００７２】
たとえば、転送装置１００がＭＰＬＳの出現前に出荷されたと仮定する。転送装置１００にＭＰＬＳのヘッダフォーマットの検索処理および転送処理を実装したい場合、アップデート情報は、検索キーとなるＩｎ  Ｓｈｉｍ  Ｌａｂｅｌのヘッダ内位置およびビット幅と、検索結果となるＯｕｔ  Ｓｈｉｍ  Ｌａｂｅｌのヘッダ内位置およびビット幅、送信ポート番号のヘッダ内位置およびビット幅、および、Ｎｅｘｔ  Ｈｏｐ  ＩＰのヘッダ内位置およびビット幅と、検索手段の構成要素としてＩｎ  Ｓｈｉｍ  Ｌａｂｅｌのビット幅に対応するテーブル引き検索回路５１２（１段目）および、Ｎｅｘｔ  Ｈｏｐ  ＩＰのビット幅のビット列をハッシュ値に変換するハッシュ検索回路５１３（２段目）を選択する情報と、を含む。
【００７３】
基本制御機構２０１は、アップデート情報を管理用ＩＦ１２０１で受信し、テーブルを用いて、Ｉｎ  Ｓｈｉｍ  Ｌａｂｅｌに、転送先の転送装置１００のラベルであるＯｕｔ  Ｓｈｉｍ  Ｌａｂｅｌ、転送先の転送装置１００に送信する送信ポート番号、転送先の転送装置１００のＩＰアドレスであるＮｅｘｔ  Ｈｏｐ  ＩＰを関連付けて、ラベルテーブル５２２を作成する。
【００７４】
また、基本制御機構２０１は、設定部１２０２により、アップデート情報に含まれる検索手段の構成要素を設定する。具体的には、設定部１２０２は、選択回路７００を制御して、Ｉｎ  Ｓｈｉｍ  Ｌａｂｅｌのビット幅で制御可能なテーブル引き検索回路５１２（１段目）、および、Ｎｅｘｔ  Ｈｏｐ  ＩＰのビット幅のビット列をハッシュ値に変換するハッシュ検索回路５１３（２段目）を選択して、検索ＬＳＩ３０３内に、ＭＰＬＳ検索手段８０２を構築する。
【００７５】
また、検索制御ＦＰＧＡ３０２は、判定部４０１を更新する。具体的には、たとえば、検索制御ＦＰＧＡ３０２は、ＭＰＬＳヘッダフォーマットを有する通信データが受信された場合に、ヘッダ種の特徴によりＭＰＬＳヘッダフォーマットを判定する処理を判定部４０１に追加する。また、検索制御ＦＰＧＡ３０２は、検索指定情報作成部４０２を更新する。具体的には、たとえば、検索制御ＦＰＧＡ３０２は、通信データのヘッダがＭＰＬＳヘッダフォーマットであると判定された場合に、ＭＰＬＳヘッダフォーマットから検索キーとなるフィールドの位置およびビット幅を特定して、当該検索キーを抽出する処理と、ＭＰＬＳ検索手段８０２を選択する検索指定情報を作成する処理と、を検索指定情報作成部４０２に追加する。
【００７６】
＜検索制御処理手順例＞
図１３は、実施例１にかかる検索制御ＦＰＧＡ３０２による検索制御処理手順例を示すフローチャートである。検索制御ＦＰＧＡ３０２は、転送ＬＳＩ３０１からヘッダ情報が受信された場合（ステップＳ１３０１：Ｙｅｓ）、ステップＳ１３０２に移行し、受信されていない場合（ステップＳ１３０１：Ｎｏ）、ステップＳ１３０５に移行する。
【００７７】
検索制御ＦＰＧＡ３０２は、判定部４０１により、ヘッダ情報に含まれるヘッダのヘッダ種（第１ヘッダ種、第２ヘッダ種、第３ヘッダ種、…。以下、任意のヘッダ種を第ｉヘッダ種とする（ｉ＝１，２，３，…））を判定し、判定結果を作成部４０２に出力する（ステップＳ１３０２）。本例の場合、第１ヘッダ種がＩＰｖ４ヘッダフォーマット、第２ヘッダ種がＭＰＬＳヘッダフォーマット、第３ヘッダ種がイーサネットヘッダフォーマットである。検索制御ＦＰＧＡ３０２は、作成部４０２により、判定結果に応じた検索指定情報作成処理を実行する（ステップＳ１３０３）。具体的には、たとえば、第ｉヘッダ種に関する検索指定情報作成処理（ステップＳ１３０３−ｉ）では、第ｉヘッダ種に応じた検索手段を指定する検索手段指定情報を生成するとともに、第ｉヘッダ種に応じた検索キーのヘッダ内位置およびビット幅と、を特定してシーケンス番号に関連付けて検索キー情報とする。これにより、検索指定情報が作成される。
【００７８】
このあと、検索制御ＦＰＧＡ３０２は、検索指定情報作成処理（ステップＳ１３０３）で作成された検索指定情報を検索ＬＳＩ３０３に出力し（ステップＳ１３０４）、ステップＳ１３０１に戻る。
【００７９】
また、検索制御ＦＰＧＡ３０２は、検索ＬＳＩ３０３からの検索結果の受信を待ち受け（ステップＳ１３０５）、検索結果が受信されていない場合（ステップＳ１３０５：Ｎｏ）、ステップＳ１３０１に戻る。一方、検索結果が受信された場合（ステップＳ１３０５：Ｙｅｓ）、検索制御ＦＰＧＡ３０２は、整列部４０３により、検索結果を蓄積してシーケンス番号順に並べ替え（ステップＳ１３０６）、検索結果をシーケンス番号順に転送ＬＳＩ３０１に出力し（ステップＳ１３０７）、ステップＳ１３０１に戻る。
【００８０】
なお、製品出荷後に新たなヘッダフォーマットが出現した場合、ステップＳ１３０２がアップデート情報により更新され、ステップＳ１３０３に新たなヘッダフォーマットについての検索指定情報作成処理が追加される。
【００８１】
＜転送ＬＳＩ３０１による転送処理手順例＞
図１４は、実施例１にかかる転送ＬＳＩ３０１による転送処理手順例を示すフローチャートである。転送ＬＳＩ３０１は、入力ポート３１０から通信データが受信された場合（ステップＳ１４０１：Ｙｅｓ）、発行部３１１により、シーケンス番号を発行する（ステップＳ１４０２）。転送ＬＳＩ３０１は、通信データおよびシーケンス番号の組を保持部３１３に保持する（ステップＳ１４０３）。転送ＬＳＩ３０１は、抽出部３１２により、通信データからヘッダを抽出する（ステップＳ１４０４）。転送ＬＳＩ３０１は、抽出したヘッダおよびシーケンス番号の組であるヘッダ情報を検索制御ＦＰＧＡ３０２に出力する（ステップＳ１４０５）。そして、ステップＳ１４０１に戻る。
【００８２】
入力ポート３１０から通信データが受信されていない場合（ステップＳ１４０１：Ｎｏ）、転送ＬＳＩ３０１は、スイッチＩＦ３０４から通信データが受信されていれば（ステップＳ１４０６：Ｙｅｓ）、スイッチＩＦ３０４で受信された通信データを、ヘッダ内の送信ポート番号で指定されたポートに出力する（ステップＳ１４０７）。そして、ステップＳ１４０１に戻る。
【００８３】
スイッチＩＦ３０４から通信データが受信されていない場合（ステップＳ１４０６：Ｎｏ）、検索制御ＦＰＧＡ３０２から検索結果を受信していなければ（ステップＳ１４０８：Ｎｏ）、ステップＳ１４０１に戻る。
【００８４】
一方、検索制御ＦＰＧＡ３０２から検索結果を受信していれば（ステップＳ１４０８：Ｙｅｓ）、転送ＬＳＩ３０１は、保持部３１３を参照して、検索結果に含まれるシーケンス番号と同一シーケンス番号に関連付けられている通信データを特定する（ステップＳ１４０９）。転送ＬＳＩ３０１は、特定した通信データのヘッダを検索結果により更新する（ステップＳ１４１０）。更新後のヘッダの送信ポート番号が自モジュールにある場合（ステップＳ１４１１：Ｙｅｓ）、ステップＳ１４０７に移行して、転送ＬＳＩ３０１は、当該通信データを、ヘッダ内の送信ポート番号で指定されたポートに出力する（ステップＳ１４０７）。そして、ステップＳ１４０１に戻る。
【００８５】
一方、更新後のヘッダの送信ポート番号が自モジュールにない場合（ステップＳ１４１１：Ｎｏ）、転送ＬＳＩ３０１は、当該通信データをスイッチＩＦ３０４に出力する（ステップＳ１４１２）。これにより、通信データは、他の再構成可能通信モジュール２０２に送られる。
【００８６】
このように、通信データを転送する転送装置１００は、検索部の一例である検索ＬＳＩ３０３と、検索制御部の一例である検索制御ＦＰＧＡ３０２と、制御部の一例である基本制御機構２０１と、転送部の一例である転送ＬＳＩ３０１と、を有する。
【００８７】
検索ＬＳＩ３０３は、キー項目および他の項目を関連付けるテーブル（たとえば、テーブル１２０４，１２０５）とテーブルを参照して通信データのヘッダ内のフィールドであるキー項目の値から他の項目の値を検索する検索回路とにより構成される検索リソースの集合である検索リソースプール５００を有する。
【００８８】
検索ＬＳＩ３０３は、検索リソースプール５００において、少なくとも、通信データの第１ヘッダフォーマット（たとえば、イーサネット）にしたがってキー項目の値である通信データの第１宛先情報（たとえば、宛先ＭＡＣアドレスのハッシュ値）および他の項目の値である第１転送先情報（たとえば、送信ポート番号）を関連付ける第１テーブル（たとえば、ハッシュテーブル５２３）と第１テーブルを参照して第１宛先情報から第１転送先情報を検索する第１検索回路（たとえば、ハッシュ検索回路５１３）とで構成される第１検索リソース（たとえば、ハッシュ検索リソース５０３）からなる第１検索手段（たとえば、イーサネット検索手段８０３）を有し、第１検索手段および第１宛先情報が指定されると、第１検索回路により第１テーブルを参照して第１宛先情報から第１転送先情報を検索する。
【００８９】
検索制御ＦＰＧＡ３０２は、ヘッダのフォーマットにしたがって宛先情報が格納されているフィールドの位置およびサイズと、１以上の検索リソースで構成される検索手段と、を指定する検索指定情報を作成して検索ＬＳＩ３０３に出力する再構成可能な機構である。
【００９０】
検索制御ＦＰＧＡ３０２は、ヘッダのフォーマットが第１ヘッダフォーマット（たとえば、イーサネット）である場合に、第１ヘッダフォーマットにしたがって特定される第１宛先情報（たとえば、宛先ＭＡＣアドレス）および第１検索手段（たとえば、イーサネット検索手段８０３）を指定する第１検索指定情報を作成し、検索ＬＳＩ３０３に出力するという第１検索指定情報作成処理を実行する。
【００９１】
基本制御機構２０１は、検索ＬＳＩ３０３を制御して、検索リソースプール５００のうち第１検索リソースを除いた残余の検索リソースにおいて、通信データの第２ヘッダフォーマット（たとえば、新規なヘッダフォーマット）にしたがってキー項目の値である第２宛先情報および他の項目の値である第２転送先情報を関連付ける第２テーブルを設定することにより、少なくとも、第２テーブルと第２テーブルを参照して第２宛先情報から第２転送先情報を検索する第２検索回路とで構成される第２検索リソースからなる第２検索手段を検索ＬＳＩ３０３に構築する。
【００９２】
また、基本制御機構２０１は、検索制御ＦＰＧＡ３０２を制御して、ヘッダのフォーマットが第２ヘッダフォーマットである場合に第２検索手段および第２宛先情報を指定する第２検索指定情報を作成して検索ＬＳＩ３０３に出力するという第２検索指定情報作成処理を検索制御ＦＰＧＡ３０２に追加する。
【００９３】
転送ＬＳＩ３０１は、通信データを受信し、検索ＬＳＩ３０３によってヘッダのフォーマットにしたがって検索された転送先情報にしたがって、通信データを転送先に送信する。
【００９４】
これにより、追加したいヘッダフォーマットが出現した場合に柔軟に対応可能となる。また、検索制御ＦＰＧＡ３０２から汎用的な検索ＬＳＩ３０３に検索手段を指示して検索を実行させることにより、高速に検索処理が実行可能となる。
【００９５】
検索リソースプール５００は、検索回路による検索方法が同一であるが、テーブルのキー項目のサイズが異なる複数種類の検索リソースを含む。したがって、新規バージョンのヘッダフォーマットにも柔軟に対応することができる。
【００９６】
検索リソースプール５００は、検索回路による検索方法が異なる複数種類の検索リソースを含む。これにより、新たなヘッダフォーマットや当該ヘッダフォーマットの検索で要求される新たな検索仕様にも柔軟に対応可能となる。
【００９７】
また、検索回路は、ＴＣＡＭ検索回路、テーブル引き検索回路、およびハッシュ検索回路の少なくとも１つを含む。ＴＣＡＭ検索回路により最長一致検索を実行できるため、ルーティングテーブルの省メモリ化を図ることができる。また、テーブル引き回路により、ＭＰＬＳのようなラベルテーブルのテーブル引きにも対応することができる。また、ハッシュ検索回路により、検索キーをハッシュ値に圧縮することができるため、テーブルの省メモリ化を図ることができる。なお、ハッシュ検索回路に代え、ＢＣＡＭ検索回路を用いてもよい。
【００９８】
また、検索手段を複数段の検索リソースで構成することにより、前段の検索リソースでの検索結果を後段の検索キーに適用することができ、新規なフォーマットの検索仕様に柔軟に対応することができる。
【００９９】
また、到着順に転送ＬＳＩ３０１でシーケンス番号を発行し、転送ＬＳＩ３０１から、検索制御ＦＰＧＡ３０２、検索ＬＳＩ３０３、検索制御ＦＰＧＡ３０２、転送ＬＳＩ３０１へと持ち回り、かつ、検索制御ＦＰＧＡ３０２で検索ＬＳＩ３０３からの検索結果をシーケンス番号順に整列させて転送ＬＳＩ３０１に出力することにより、検索結果を転送ＬＳＩ３０１が受信した通信データに反映することができる。
【０１００】
特に、発行したシーケンス番号と上記持ち回りで戻ってきたシーケンス番号とを照合することにより、検索結果を転送ＬＳＩ３０１が受信した通信データに正確に反映することができる。
【実施例２】
【０１０１】
つぎに、実施例２について説明するが、実施例１との相違点を中心に説明し、実施例１との共通部分については説明を省略する。実施例２にかかる再構成可能通信モジュール２０２は、検索制御ＦＰＧＡ３０２と接続する転送ＬＳＩ３０１および検索ＬＳＩ３０３のうち少なくとも一方の個数を複数個として接続することで、転送性能および検索リソース容量を柔軟にスケールすることを可能とする。
【０１０２】
図１５は、実施例２にかかる再構成可能通信モジュール２０２の構成例１を示すブロック図である。図１５では、転送ＬＳＩ３０１の接続数を２個とした場合の例を示す。なお、転送ＬＳＩ３０１の接続数は必ずしも２個ではなく、３個以上の接続とすることも可能である。また、１つの検索制御ＦＰＧＡ３０２に対して、同時に複数個の転送ＬＳＩ３０１と複数個の検索ＬＳＩ３０３を接続することも可能である。
【０１０３】
図１５において、再構成可能通信モジュール２０２は、複数（図１５では例として２個）の転送ＬＳＩ３０１ａ、３０１ｂと、検索制御ＦＰＧＡ３０２と、検索ＬＳＩ３０３と、スイッチインタフェース３０４と、を有する。転送ＬＳＩ３０１ａ、３０１ｂの識別情報をそれぞれ（Ａ），（Ｂ）とする。検索制御ＦＰＧＡ３０２は、図４に示した判定部４０１、作成部４０２、整列部４０３に加えて、選択部１５０１、シーケンス番号変換部１５０２、番号管理テーブル１５０３、シーケンス番号逆変換部１５０４、分散部１５０５を有する。
【０１０４】
選択部１５０１は、転送ＬＳＩ３０１ａ、３０１ｂの各々から検索指定として送信されてくるヘッダ情報を選択基準にしたがって選択し、送信元転送ＬＳＩの識別情報をヘッダ情報に付与して、シーケンス番号変換部１５０２に出力する。ヘッダ情報とは、実施例１で説明したように、発行部３１１によって発行された通信データのシーケンス番号と、抽出部３１２によって抽出された通信データのヘッダと、の組み合わせであり、かつ、その転送ＬＳＩの識別情報も含む。
【０１０５】
選択部１５０１は、選択基準として、ヘッダ情報の到着順でヘッダ情報を選択してもよく、転送ＬＳＩ３０１ａからのヘッダ情報と転送ＬＳＩ３０１ｂからのヘッダ情報を交互に選択してもよく、これまでの累積バイト数が少ない方の転送ＬＳＩ３０１からのヘッダ情報を選択してもよい。
【０１０６】
シーケンス番号変換部１５０２は、選択部１５０１によって選択されたヘッダ情報に含まれているシーケンス番号を、転送ＬＳＩ３０１ａ，３０１ｂの両方において連続性または相関性のある共通のシーケンス番号に変換する。
【０１０７】
番号管理テーブル１５０３は、シーケンス番号変換部１５０２による変換後のシーケンス番号と、シーケンス番号変換部１５０２による変換前のシーケンス番号と、当該変換前のシーケンス番号の送信元となる転送ＬＳＩ（送信元転送ＬＳＩ）の識別情報と、を対応付けて管理するテーブルである。番号管理テーブル１５０３は、たとえば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）により実装することで、変換後のシーケンス番号をメモリアドレスとして、変換前のシーケンス番号および送信元転送ＬＳＩ３０１の識別情報をメモリデータとして格納する。
【０１０８】
シーケンス番号逆変換部１５０４は、変換後のシーケンス番号順の検索結果を整列部４０３から入力する。各検索結果は、自身の変換後のシーケンス番号を含む。シーケンス番号逆変換部１５０４は、入力した検索結果ごとに、番号管理テーブルを参照し、変換前のシーケンス番号および送信元転送ＬＳＩの識別情報を特定する。シーケンス番号逆変換部１５０４は、検索結果、変換前シーケンス番号および送信元転送ＬＳＩの識別情報を分散部１５０５に出力する。
【０１０９】
分散部１５０５は、検索結果を送信元転送ＬＳＩの識別情報に従って分散する。具体的には、たとえば、分散部１５０５は、送信元ＬＳＩの識別情報で特定される転送ＬＳＩにその検索結果を変換前のシーケンス番号順に出力する。
【０１１０】
図１６は、実施例２にかかる複数の転送ＬＳＩ３０１から判定部４０１までのデータの流れを示す説明図である。ここでは、転送ＬＳＩ３０１ａからのヘッダ情報１６０１に含まれているシーケンス番号を、Ｘ、Ｘ＋１、Ｘ＋２、…とし、転送ＬＳＩ３０１ｂからのヘッダ情報１６０２に含まれているシーケンス番号をＹ、Ｙ＋１、…とする。ここで、転送ＬＳＩ３０１ａおよび転送ＬＳＩ３０１ｂは各々独立動作しており、各転送ＬＳＩ３０１ａ，３０１ｂの発行部３１１が発行するシーケンス番号ＸおよびＹの間には連続性または相関性などはない。
【０１１１】
選択部１５０１は、各転送ＬＳＩ３０１ａ，３０１ｂからのヘッダ情報１６０１，１６０２のいずれかを上述した選択基準にしたがって選択して、送信元転送ＬＳＩ３０１ａ，３０１ｂの識別情報を付与して、シーケンス番号変換部１５０２に出力する。選択部１５０１とシーケンス番号変換部１５０２との間におけるヘッダ情報１６０３は、各転送ＬＳＩ３０１ａ，３０１ｂからのヘッダ情報１６０１，１６０２が混在した形（Ｘ、Ｙ、Ｘ＋１、…）となる。
【０１１２】
シーケンス番号変換部１５０２は、ヘッダ情報１６０３が入力されてくる都度、新規かつ連続的なシーケンス番号Ｚ、Ｚ＋１、Ｚ＋２、…を発行する。具体的には、たとえば、、シーケンス番号変換部１５０２は、シーケンス番号Ｘを含むヘッダ情報１６０３−１が入力されると、シーケンス番号Ｚを発行し、その次にシーケンス番号Ｙを含むヘッダ情報１６０３−２が入力されると、シーケンス番号Ｚ＋１を発行し、その次にシーケンス番号Ｘ＋１を含むヘッダ情報１６０３−３が入力されると、シーケンス番号Ｚ＋２を発行する。
【０１１３】
そして、シーケンス番号変換部１５０２は、順次、変換前のシーケンス番号Ｘ、Ｙ、Ｘ＋１、…を新規発行した変換後のシーケンス番号Ｚ、Ｚ＋１、Ｚ＋２、…に付け替えて、変換後のシーケンス番号を含むヘッダ情報１６０４を判定部４０１に出力する。また、シーケンス番号変換部１５０２は、ヘッダ情報１６０３に含まれる変換前のシーケンス番号および送信元転送ＬＳＩの識別情報と、新規発行した変換後のシーケンス番号と、を関連付けて、番号管理テーブル１５０３に新規エントリとして登録する。
【０１１４】
具体的には、たとえば、シーケンス番号変換部１５０２は、シーケンス番号Ｘを含むヘッダ情報１６０３−１を検索指定として取得すると、シーケンス番号Ｚを発行して、シーケンス番号Ｚを含むヘッダ情報１６０４−１を判定部４０１に出力する。また、シーケンス番号変換部１５０２は、ヘッダ情報１６０３−１に含まれる変換前のシーケンス番号Ｘおよび送信元転送ＬＳＩの識別情報（Ａ）と、新規発行した変換後のシーケンス番号Ｚと、を関連付けて、番号管理テーブル１５０３に新規のエントリ１５１として登録する。
【０１１５】
また、シーケンス番号変換部１５０２は、シーケンス番号Ｙを含むヘッダ情報１６０３−２を検索指定として取得すると、シーケンス番号Ｚ＋１を発行して、シーケンス番号Ｚ＋１を含むヘッダ情報１６０４−２を判定部４０１に出力する。また、シーケンス番号変換部１５０２は、ヘッダ情報１６０３−２に含まれる変換前のシーケンス番号Ｙおよび送信元転送ＬＳＩの識別情報（Ｂ）と、新規発行した変換後のシーケンス番号Ｚ＋１と、を関連付けて、番号管理テーブル１５０３に新規のエントリ１５２として登録する。
【０１１６】
また、シーケンス番号変換部１５０２は、シーケンス番号Ｘ＋１を含むヘッダ情報１６０３−３を検索指定として取得すると、シーケンス番号Ｚ＋２を発行して、シーケンス番号Ｚ＋２を含むヘッダ情報１６０４−３を判定部４０１に出力する。また、シーケンス番号変換部１５０２は、ヘッダ情報１６０３−３に含まれる変換前のシーケンス番号Ｘ＋１および送信元転送ＬＳＩの識別情報（Ａ）と、新規発行した変換後のシーケンス番号Ｚ＋２と、を関連付けて、番号管理テーブル１５０３に新規のエントリ１５３として登録する。
【０１１７】
図１７は、実施例２にかかる整列部４０３から複数の転送ＬＳＩ３０１までのデータの流れを示す説明図である。ここでは、整列部４０３からの検索結果には、検索指定となるヘッダ情報に付与された変換後のシーケンス番号が含まれる。たとえば、シーケンス番号Ｚを含むヘッダ情報１６０４−１が検索指定として検索ＬＳＩ３０３に与えられた場合、検索制御ＦＰＧＡ３０２は、変換後のシーケンス番号Ｚを含む検索結果１７０１−１、変換後のシーケンス番号Ｚ＋１を含む検索結果１７０１−２、変換後のシーケンス番号Ｚ＋２を含む検索結果１７０１−３を検索ＬＳＩ３０３から取得して、整列部４０３に与える。整列部４０３は、変換後のシーケンス番号Ｚ、Ｚ＋１、Ｚ＋２、…順に検索結果１７０１をシーケンス番号逆変換部１５０４に出力する。
【０１１８】
シーケンス番号逆変換部１５０４は、検索結果１７０１−１が入力されると、番号管理テーブル１５０３を参照して、検索結果１７０１−１に含まれる変換後のシーケンス番号Ｚのエントリ１５１を特定し、変換前のシーケンス番号Ｘおよび送信元の転送ＬＳＩ３０１の識別情報（Ａ）を取得する。
【０１１９】
シーケンス番号逆変換部１５０４は、検索結果１７０１−１に含まれる変換後のシーケンス番号Ｚを、番号管理テーブル１５０３から取得した変換前のシーケンス番号Ｘに付け替え、かつ、番号管理テーブル１５０３から取得した送信元転送ＬＳＩの識別情報（Ａ）を含めて、検索結果１７０２−１として、分散部１５０５に出力する。
【０１２０】
シーケンス番号逆変換部１５０４は、検索結果１７０１−２が入力されると、番号管理テーブル１５０３を参照して、検索結果１７０１−２に含まれる変換後のシーケンス番号Ｚ＋１のエントリ１５２を特定し、変換前のシーケンス番号Ｙおよび送信元の転送ＬＳＩ３０１の識別情報（Ｂ）を取得する。
【０１２１】
シーケンス番号逆変換部１５０４は、検索結果１７０１−２に含まれる変換後のシーケンス番号Ｚ＋１を、番号管理テーブル１５０３から取得した変換前のシーケンス番号Ｙに付け替え、かつ、番号管理テーブル１５０３から取得した送信元転送ＬＳＩの識別情報（Ｂ）を含めて、検索結果１７０２−２として、分散部１５０５に出力する。
【０１２２】
シーケンス番号逆変換部１５０４は、検索結果１７０１−３が入力されると、番号管理テーブル１５０３を参照して、検索結果１７０１−３に含まれる変換後のシーケンス番号Ｚ＋２のエントリ１５３を特定し、変換前のシーケンス番号Ｘ＋１および送信元の転送ＬＳＩ３０１の識別情報（Ａ）を取得する。
【０１２３】
シーケンス番号逆変換部１５０４は、検索結果１７０１−３に含まれる変換後のシーケンス番号Ｚ＋２を、番号管理テーブル１５０３から取得した変換前のシーケンス番号Ｘ＋１に付け替え、かつ、番号管理テーブル１５０３から取得した送信元転送ＬＳＩの識別情報（Ａ）を含めて、検索結果１７０２−３として、分散部１５０５に出力する。
【０１２４】
分散部１５０５は、検索結果１７０２−１が入力されると、検索結果１７０２−１に含まれている送信元転送ＬＳＩの識別情報（Ａ）により、検索結果１７０２−１の送信先となる転送ＬＳＩ３０１ａを特定する。そして、分散部１５０５は、変換前のシーケンス番号Ｘを含む検索結果１７０２−１を、検索結果１７０３−１として特定した送信先となる転送ＬＳＩ３０１ａに送信する。
【０１２５】
分散部１５０５は、検索結果１７０２−２が入力されると、検索結果１７０２−２に含まれている送信元転送ＬＳＩの識別情報（Ｂ）により、検索結果１７０２−２の送信先となる転送ＬＳＩ３０１ｂを特定する。そして、分散部１５０５は、変換前のシーケンス番号Ｙを含む検索結果１７０２−２を、検索結果１７０３−２として特定した送信先となる転送ＬＳＩ３０１ｂに送信する。
【０１２６】
分散部１５０５は、検索結果１７０２−３が入力されると、検索結果１７０２−３に含まれている送信元転送ＬＳＩの識別情報（Ａ）により、検索結果１７０２−３の送信先となる転送ＬＳＩ３０１ａを特定する。そして、分散部１５０５は、変換前のシーケンス番号Ｘ＋１を含む検索結果１７０２−３を、検索結果１７０３−３として特定した送信先となる転送ＬＳＩ３０１ａに送信する。
【０１２７】
このように、１つの検索制御ＦＰＧＡ３０２および検索ＬＳＩ３０３に対して複数個の転送ＬＳＩ３０１を接続することが可能となり、転送性能を柔軟にスケールすることが可能となる。すなわち、転送ＬＳＩを複数個実装することで、転送処理を複数の転送ＬＳＩで並列に実行することが可能となり、転送ビットレートの向上を図ることができる。
【０１２８】
図１８は、実施例２にかかる再構成可能通信モジュール２０２の構成例２を示すブロック図である。図１８では、検索ＬＳＩ３０３の接続数を２個とした場合の例を示す。なお、検索ＬＳＩ３０３の接続数は必ずしも２個ではなく、３個以上の接続とすることも可能である。また、１つの検索制御ＦＰＧＡ３０２に対して、同時に複数個の転送ＬＳＩ３０１と複数個の検索ＬＳＩ３０３を接続することも可能である。
【０１２９】
図１８において、再構成可能通信モジュール２０２は、転送ＬＳＩ３０１と、検索制御ＦＰＧＡ３０２と、複数（図１８では例として２個）の検索ＬＳＩ３０３ａ，３０３ｂと、スイッチインタフェース３０４と、を有する。検索ＬＳＩ３０３ａ，３０３ｂの識別情報をそれぞれ（Ａ），（Ｂ）とする。検索制御ＦＰＧＡ３０２は、図４に示した判定部４０１、作成部４０２、整列部４０３に加えて、振分部１８０１、シーケンス番号変換部１８０２、番号管理テーブル１８０３、シーケンス番号逆変換部１８０５、選択部１８０４を有する。
【０１３０】
検索ＬＳＩ３０３ａ，３０３ｂは、サービス（フォーマット）ごとに使い分けされてもよい。たとえば、検索ＬＳＩ３０３ａは、ＩＰ検索手段８０１のみを有し、検索ＬＳＩ３０３ｂは、ＭＰＬＳ検索手段８０２およびイーサネット検索手段８０３を有してもよい。また、検索ＬＳＩ３０３ａ，３０３ｂは、同一のサービス（フォーマット）を共有してもよい。たとえば、検索ＬＳＩ３０３ａ，３０３ｂはそれぞれ、ＩＰ検索手段８０１を有してもよい。
【０１３１】
振分部１８０１は、作成部４０２からの検索指定情報を受け付ける。検索指定情報とは、実施例１で説明したように、検索キー情報と検索手段指定情報とを含む情報である。検索キー情報には、発行部３１１によって発行されたシーケンス番号が含まれる。
【０１３２】
振分部１８０１には、あらかじめ、どの検索ＬＳＩ３０３がどのサービスに適用可能かを特定可能である。具体的には、たとえば、検索ＬＳＩ３０３ａ，３０３ｂがＩＰ検索手段８０１を有し、かつ、検索ＬＳＩ３０３ｂがＭＰＬＳ検索手段８０２およびイーサネット検索手段８０３を有している場合、振分部１８０１は、検索指定情報を参照して、検索指定情報を検索ＬＳＩ３０３ａ，３０３ｂのいずれかに振り分ける。具体的には、振分部１８０１は、検索ＬＳＩ３０３ａ，３０３ｂのいずれかの識別情報を検索指定情報に付与して、検索指定情報をシーケンス番号順にシーケンス番号変換部１８０２に出力する。
【０１３３】
たとえば、検索指定情報のヘッダフォーマットがＩＰである場合、振分部１８０１は、振分基準にしたがって、検索指定情報を検索ＬＳＩ３０３ａ，３０３ｂのいずれかに振り分ける。振分部１８０１は、振分基準として、ヘッダフォーマットがＩＰである検索指定情報の到着順で検索指定情報を振り分けてもよく、交互に振り分けてもよく、これまでの累積バイト数が少ない方の検索ＬＳＩ３０３に振り分けてもよい。また、上記の例では、検索指定情報のヘッダフォーマットがＭＰＬＳまたはイーサネットである場合、振分部１８０１は、振分基準にしたがって、検索指定情報を検索ＬＳＩ３０３ｂに振り分ける。
【０１３４】
シーケンス番号変換部１８０２は、振分部１８０１によって振り分けられた検索指定情報に含まれているシーケンス番号を変換する。具体的には、たとえば、シーケンス番号変換部１８０２は、宛先となる検索ＬＳＩ（宛先検索ＬＳＩ）３０３の識別情報ごとに、検索指定情報に含まれているシーケンス番号を、連続性または相関性のあるシーケンス番号に変換する。シーケンス番号変換部１８０２は、変換後のシーケンス番号を含む検索指定情報を、宛先検索ＬＳＩ３０３に出力する。
【０１３５】
番号管理テーブル１８０３は、シーケンス番号変換部１８０２による変換後のシーケンス番号と、検索指定情報に含まれている変換前のシーケンス番号および宛先検索ＬＳＩ３０３の識別情報と、を対応付けて管理するテーブルである。番号管理テーブル１８０３は、たとえば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）により実装することで、変換後のシーケンス番号をメモリアドレスとして、変換前のシーケンス番号および宛先検索ＬＳＩ３０３の識別情報をメモリデータとして格納する。
【０１３６】
選択部１８０４は、検索ＬＳＩ３０３ａ，３０３ｂの各々からの検索結果を選択基準にしたがって選択し、シーケンス番号変換部１５０２に出力する。具体的には、たとえば、選択部１８０４は、検索結果の入力に先立って、番号管理テーブル１８０３の先頭のエントリから宛先検索ＬＳＩ３０３の識別情報を読み出す。たとえば、番号管理テーブル１８０３の未選択エントリの宛先検索ＬＳＩ３０３の識別情報（Ａ）を先頭エントリから読み出す。ＦＩＦＯメモリに保持された検索結果がある場合、選択部１８０４は、先に読み出したエントリと検索結果の付加情報（変換後のシーケンス番号および当該検索結果の送信元検索ＬＳＩ３０３の識別情報）が一致するか否かを判断する。
【０１３７】
具体的には、たとえば、選択部１８０４は、先に読み出したエントリの変換後のシーケンス番号が検索結果に含まれ、かつ、当該エントリの宛先検索ＬＳＩの識別情報で特定される検索ＬＳＩ３０３が当該検索結果の送信元であるかを判断する。一致する場合、選択部１８０４は、その検索結果を選択して（読み出したエントリをＦＩＦＯメモリから削除）、シーケンス番号逆変換部１８０５に出力する。不一致の場合、選択部１８０４は、次の検索結果を待機する。
【０１３８】
ＦＩＦＯメモリに保持された検索結果がない場合または上記不一致の場合において、いずれかの検索ＬＳＩ３０３からの検索結果が入力された場合、選択部１８０４は、先に読み出したエントリと、入力された検索結果の付加情報とが一致するか否かを判断する。一致する場合は、選択部１８０４は、その検索結果を選択して、シーケンス番号逆変換部１８０５に出力する。不一致の場合は、選択部１８０４は、その検索結果を、たとえば、ＦＩＦＯメモリに保持し、次の検索結果を待機する。
【０１３９】
なお、番号管理テーブル１８０３がＲＡＭで実装されている場合には、シーケンス番号Ｘ，Ｘ＋１、…をメモリのリードアドレスとすることで、宛先検索ＬＳＩ３０３の識別情報を取得することが可能となる。
【０１４０】
シーケンス番号逆変換部１８０５は、選択部１８０４による選択順の検索結果を選択部１８０４から入力する。シーケンス番号逆変換部１８０５は、入力した検索結果ごとに、番号管理テーブルを参照し、変換前のシーケンス番号および宛先検索ＬＳＩ３０３の識別情報を特定する。シーケンス番号逆変換部１８０５は、変換前のシーケンス番号に対応する変換後のシーケンス番号を検索結果に付与して、作成部４０２に出力する。
【０１４１】
図１９は、実施例２にかかる作成部４０２から複数の検索ＬＳＩ３０３までのデータの流れを示す説明図である。ここでは、作成部４０２からの検索指定情報１９０１に含まれているシーケンス番号を、Ｘ、Ｘ＋１、Ｘ＋２、…とし、シーケンス番号変換部１８０２から検索ＬＳＩ３０３ａへの検索指定情報１９０３に含まれているシーケンス番号をＹ、Ｙ＋１、…とし、シーケンス番号変換部１８０２から検索ＬＳＩ３０３ｂへの検索指定情報１９０３に含まれているシーケンス番号をＺ、Ｚ＋１、…とする。ここで、検索ＬＳＩ３０３ａ，３０３ｂは各々独立動作しており、シーケンス番号Ｘ、Ｙ、Ｚの間には連続性または相関性などはない。
【０１４２】
また、ここでは、検索ＬＳＩ３０３ａはＩＰ検索手段８０１を有しており、検索ＬＳＩ３０３ｂがＩＰ検索手段８０１、ＭＰＬＳ検索手段８０２およびイーサネット検索手段８０３を有しているものとする。
【０１４３】
振分部１８０１は、作成部４０２からの検索指定情報１９０１を順次受け付けて、検索指定情報１９０１ごとに、受け付けた検索指定情報１９０１のヘッダフォーマット（サービス）はどの検索ＬＳＩ３０３に適用可能であるかを判断する。たとえば、先頭のシーケンス番号Ｘを含む検索指定情報１９０１−１のヘッダフォーマットがＩＰであれば、まず、検索指定情報１９０１−１を検索ＬＳＩ３０３ａに振り分けるため、検索指定情報１９０１−１に宛先検索ＬＳＩ３０３の識別情報（Ａ）を付与し、シーケンス番号Ｘおよび宛先検索ＬＳＩ３０３の識別情報（Ａ）を含む検索指定情報１９０２−１として、シーケンス番号変換部１８０２に出力する。
【０１４４】
つぎのシーケンス番号Ｘ＋１を含む検索指定情報１９０１−２のヘッダフォーマットがＭＰＬＳであれば、まず、検索指定情報１９０１−２を検索ＬＳＩ３０３ｂに振り分けるため、検索指定情報１９０１−２に宛先検索ＬＳＩ３０３の識別情報（Ｂ）を付与し、シーケンス番号Ｘ＋１および宛先検索ＬＳＩ３０３の識別情報（Ｂ）を含む検索指定情報１９０２−２として、シーケンス番号変換部１８０２に出力する。
【０１４５】
つぎのシーケンス番号Ｘ＋２を含む検索指定情報１９０１−３のヘッダフォーマットがＩＰであれば、検索指定情報１９０１−３を検索ＬＳＩ３０３ｂ（検索指定情報１９０１−１は検索ＬＳＩ３０３ａに振り分けられたため）に振り分けるため、検索指定情報１９０１−３に宛先検索ＬＳＩ３０３の識別情報（Ｂ）を付与し、シーケンス番号Ｘ＋２および宛先検索ＬＳＩ３０３の識別情報（Ｂ）を含む検索指定情報１９０２−３として、シーケンス番号変換部１８０２に出力する。
【０１４６】
シーケンス番号変換部１８０２は、振分部１８０１からの検索指定情報１９０２に含まれているシーケンス番号を変換する。具体的には、たとえば、シーケンス番号変換部１８０２は、検索指定情報１９０２−１を受け付けると、検索指定情報１９０２−１に含まれている宛先検索ＬＳＩ３０３の識別情報（Ａ）を特定する。宛先検索ＬＳＩ３０３の識別情報（Ａ）で特定される検索ＬＳＩ３０３ａに対しては、変換後のシーケンス番号をまだ発行していないため、シーケンス番号変換部１８０２は、変換前のシーケンス番号Ｘと連続性または相関性がない変換後のシーケンス番号Ｙを発行し、変換前のシーケンス番号Ｘと付け替える。シーケンス番号変換部１８０２は、変換後のシーケンス番号Ｙを含む検索指定情報１９０３−１を、宛先検索ＬＳＩ３０３の識別情報（Ａ）で特定される検索ＬＳＩ３０３ａに出力する。また、シーケンス番号変換部１８０２は、変換前のシーケンス番号Ｘと変換後のシーケンス番号Ｙと宛先検索ＬＳＩ３０３の識別情報（Ａ）とを関連付けたエントリ１８１を、番号管理テーブル１８０３に登録する。
【０１４７】
これにより、図２０に示すように、検索ＬＳＩ３０３ａは、検索指定情報１９０３−１を受け付けて、ＩＰ検索手段８０１により、検索結果（送信ポート番号および宛先ＭＡＣアドレス）２００１−１を検索制御ＦＰＧＡ３０２に返す。
【０１４８】
シーケンス番号変換部１８０２は、検索指定情報１９０２−２を受け付けると、検索指定情報１９０２−２に含まれている宛先検索ＬＳＩ３０３の識別情報（Ｂ）を特定する。宛先検索ＬＳＩ３０３の識別情報（Ｂ）で特定される検索ＬＳＩ３０３ｂに対しては、変換後のシーケンス番号をまだ発行していないため、シーケンス番号変換部１８０２は、変換前のシーケンス番号Ｘおよび変換後のシーケンス番号Ｙと連続性または相関性がない変換後のシーケンス番号Ｚを発行し、変換前のシーケンス番号Ｘ＋１と付け替える。シーケンス番号変換部１８０２は、変換後のシーケンス番号Ｚを含む検索指定情報１９０３−２を、宛先検索ＬＳＩ３０３の識別情報（Ｂ）で特定される検索ＬＳＩ３０３ｂに出力する。また、シーケンス番号変換部１８０２は、変換前のシーケンス番号Ｘ＋１と変換後のシーケンス番号Ｚと宛先検索ＬＳＩ３０３の識別情報（Ｂ）とを関連付けたエントリ１８２を、番号管理テーブル１８０３に登録する。
【０１４９】
これにより、図２０に示すように、検索ＬＳＩ３０３ｂは、検索指定情報１９０３−２を受け付けて、ＭＰＬＳ検索手段８０２により、検索結果（Ｏｕｔ  Ｓｈｉｍ  Ｌａｂｅｌ、送信ポート番号および宛先ＭＡＣアドレス）２００１−２を検索制御ＦＰＧＡ３０２に返す。
【０１５０】
シーケンス番号変換部１８０２は、検索指定情報１９０２−３を受け付けると、検索指定情報１９０２−３に含まれている宛先検索ＬＳＩ３０３の識別情報（Ｂ）を特定する。宛先検索ＬＳＩ３０３の識別情報（Ｂ）で特定される検索ＬＳＩ３０３ｂに対しては、すでに変換後のシーケンス番号Ｚが発行されているため、シーケンス番号変換部１８０２は、変換前のシーケンス番号Ｘ＋１および変換後のシーケンス番号Ｙと連続性または相関性がなく、かつ、変換後のシーケンス番号Ｚと連続性または相関性がある変換後のシーケンス番号Ｚ＋１を発行し、変換前のシーケンス番号Ｘ＋２と付け替える。シーケンス番号変換部１８０２は、変換後のシーケンス番号Ｚ＋１を含む検索指定情報１９０３−３を、宛先検索ＬＳＩ３０３の識別情報（Ｂ）で特定される検索ＬＳＩ３０３ｂに出力する。また、シーケンス番号変換部１８０２は、変換前のシーケンス番号Ｘ＋２と変換後のシーケンス番号Ｚ＋１と宛先検索ＬＳＩ３０３の識別情報（Ｂ）とを関連付けたエントリ１８３を、番号管理テーブル１８０３に登録する。
【０１５１】
これにより、図２０に示すように、検索ＬＳＩ３０３ｂは、検索指定情報１９０３−３を受け付けて、ＩＰ検索手段８０１により、検索結果（送信ポート番号および宛先ＭＡＣアドレス）２００１−３を検索制御ＦＰＧＡ３０２に返す。
【０１５２】
図２０は、実施例２にかかる複数の検索ＬＳＩ３０３から作成部４０２までのデータの流れを示す説明図である。選択部１８０４は、検索結果２００１−１，２００１−２，２００１−３の順に受け付ける。検索結果２００１−１，２００１−２，２００１−３はそれぞれ、変換後のシーケンス番号Ｙ，Ｚ，Ｚ＋１を含む。
【０１５３】
選択部１８０４は、検索結果２００１−１，２００１−２，２００１−３の入力に先立って、番号管理テーブル１８０３のエントリを先頭から読み込む。この場合、選択部１８０４は、番号管理テーブル１８０３の先頭エントリであるエントリ１８１を読み込む。選択部１８０４は、検索結果２００１−１を受け付けると、読み込んだエントリ１８１の変換後のシーケンス番号Ｙおよび宛先検索ＬＳＩの識別情報（Ａ）が、検索結果２００１−１の付加情報（変換後のシーケンス番号Ｙおよび検索結果２００１−１の送信元検索ＬＳＩの識別情報（Ａ））と一致するか否かを判断する。この場合、一致するため、選択部１８０４は、検索結果２００２−１をシーケンス番号逆変換部１８０５に出力する。
【０１５４】
もし仮に、たとえば検索ＬＳＩ３０３ａでの検索遅延により、選択部１８０４が検索結果２００１−１よりも先に検索ＬＳＩ３０３ｂから検索結果２００１−２を受け付けていた場合、エントリ１８１の変換後のシーケンス番号Ｙおよび宛先検索ＬＳＩの識別情報（Ａ）は、検索結果２００１−２の付加情報（変換後のシーケンス番号Ｚおよび検索結果２００１−１の送信元検索ＬＳＩの識別情報（Ｂ））と一致しない。したがって、選択部１８０４は、ＦＩＦＯメモリに検索結果２００１−２を保持して、検索結果２００１−１を待ち受ける。
【０１５５】
選択部１８０４は、検索結果２００１−１をシーケンス番号逆変換部１８０５に出力したあと、番号管理テーブル１８０３の次のエントリを読み込む。この場合、選択部１８０４は、番号管理テーブル１８０３のエントリ２１の次のエントリ１８２を読み込む。選択部１８０４は、検索結果２００１−２を受け付けると、読み込んだエントリ１８２の変換後のシーケンス番号Ｚおよび宛先検索ＬＳＩの識別情報（Ｂ）が、検索結果２００１−２の付加情報（変換後のシーケンス番号Ｚおよび検索結果２００１−２の送信元検索ＬＳＩの識別情報（Ｂ））と一致するか否かを判断する。この場合、一致するため、選択部１８０４は、検索結果２００２−２をシーケンス番号逆変換部１８０５に出力する。
【０１５６】
選択部１８０４は、検索結果２００１−２をシーケンス番号逆変換部１８０５に出力したあと、番号管理テーブル１８０３の次のエントリを読み込む。この場合、選択部１８０４は、番号管理テーブル１８０３のエントリ２２の次のエントリ１８３を読み込む。選択部１８０４は、検索結果２００１−３を受け付けると、読み込んだエントリ１８３の変換後のシーケンス番号Ｚ＋１および宛先検索ＬＳＩの識別情報（Ｂ）が、検索結果２００１−３の付加情報（変換後のシーケンス番号Ｚ＋１および検索結果２００１−３の送信元検索ＬＳＩの識別情報（Ｂ））と一致するか否かを判断する。この場合、一致するため、選択部１８０４は、検索結果２００２−３をシーケンス番号逆変換部１８０５に出力する。
【０１５７】
このようにして、選択部１８０４は、検索結果２００１−１〜２００１−３を検索結果２００２−１〜２００２−３として、シーケンス番号逆変換部１８０５に出力する。
【０１５８】
シーケンス番号逆変換部１８０５は、検索結果２００１−１を受け付けると、その付加情報（変換後のシーケンス番号Ｙおよび検索結果２００１−１の送信元検索ＬＳＩの識別情報（Ａ））に該当するエントリ１８１を番号管理テーブル１８０３から特定し、当該エントリ１８１の変換前のシーケンス番号Ｘを取得する。そして、シーケンス番号逆変換部１８０５は、付加情報の変換後のシーケンス番号Ｙを、取得した変換前のシーケンス番号Ｘに付け替えて、検索結果２００３−１として作成部４０２に出力する。また、シーケンス番号逆変換部１８０５は、当該エントリ２１を番号管理テーブル１８０３から削除する。
【０１５９】
シーケンス番号逆変換部１８０５は、検索結果２００１−２を受け付けると、その付加情報（変換後のシーケンス番号Ｚおよび検索結果２００１−２の送信元検索ＬＳＩの識別情報（Ｂ））に該当するエントリ１８２を番号管理テーブル１８０３から特定し、当該エントリ１８２の変換前のシーケンス番号Ｘ＋１を取得する。そして、シーケンス番号逆変換部１８０５は、付加情報の変換後のシーケンス番号Ｚを、取得した変換前のシーケンス番号Ｘ＋１に付け替えて、検索結果２００３−２として作成部４０２に出力する。また、シーケンス番号逆変換部１８０５は、当該エントリ２２を番号管理テーブル１８０３から削除する。
【０１６０】
シーケンス番号逆変換部１８０５は、検索結果２００１−３を受け付けると、その付加情報（変換後のシーケンス番号Ｚ＋１および検索結果２００１−３の送信元検索ＬＳＩの識別情報（Ｂ））に該当するエントリ１８３を番号管理テーブル１８０３から特定し、当該エントリ１８３の変換前のシーケンス番号Ｘ＋２を取得する。そして、シーケンス番号逆変換部１８０５は、付加情報の変換後のシーケンス番号Ｚ＋１を、取得した変換前のシーケンス番号Ｘ＋２に付け替えて、検索結果２００３−３として作成部４０２に出力する。また、シーケンス番号逆変換部１８０５は、当該エントリ２３を番号管理テーブル１８０３から削除する。
【０１６１】
このようにして、１つの検索制御ＦＰＧＡ３０２および転送ＬＳＩ３０１に対して複数個の検索ＬＳＩ３０３を接続することが可能となり、検索性能および検索リソースプールを柔軟にスケールすることが可能となる。
【０１６２】
また、図１５に示す構成例と図１８に示す構成例を同時に実装することで、１つの検索制御ＦＰＧＡ３０２に対して、Ｍ（Ｍは２以上の整数）個の転送ＬＳＩ３０１およびＮ（Ｎは２以上の整数）個の検索ＬＳＩ３０３を接続して、転送性能、検索性能、検索リソースプールをより柔軟にスケールすることが可能となる。
【０１６３】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
【０１６４】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【０１６５】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶装置、又は、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード、ＳＤカード、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）の記録媒体に格納することができる。
【０１６６】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【０１６７】
１００  転送装置
１０３  管理サーバ
２０１  基本制御機構
２０２  再構成可能通信モジュール
２０３  クロスバースイッチ
３０１  転送ＬＳＩ
３０２  検索制御ＦＰＧＡ
３０３  検索ＬＳＩ
５００  検索リソースプール
【図１】
2018165976.tif 000003
【図２】
2018165976.tif 000004
【図３】
2018165976.tif 000005
【図４】
2018165976.tif 000006
【図５】
2018165976.tif 000007
【図６】
2018165976.tif 000008
【図７】
2018165976.tif 000009
【図８】
2018165976.tif 000010
【図９】
2018165976.tif 000011
【図１０】
2018165976.tif 000012
【図１１】
2018165976.tif 000013
【図１２】
2018165976.tif 000014
【図１３】
2018165976.tif 000015
【図１４】
2018165976.tif 000016
【図１５】
2018165976.tif 000017
【図１６】
2018165976.tif 000018
【図１７】
2018165976.tif 000019
【図１８】
2018165976.tif 000020
【図１９】
2018165976.tif 000021
【図２０】
2018165976.tif 000022