(57)【要約】【課題】複数のデータ処理を順次実行するデータ処理回路に関し、連続性・方向性を持つデータの処理順序をハードで変更すること、また、処理の種類をハードで変更する。【解決手段】データ処理プロセッサ２１ａ，２１ｂが、データ８０ｂ，８０ｃに含まれる情報に基づいて決定される次の処理先を示す処理先識別子をデータ８０ｂ，８０ｃに付与し、スイッチ１１が該処理先識別子に基づき、該データを該次の処理先に与えるか、又は処理先識別子付与部１４が、データに含まれる情報に基づき決定される全てのデータ処理手順を示す処理先識別子をデータ８０に付与したデータ８０ａをスイッチ１１に与え、スイッチ１１が、該処理先識別子に基づき該データを次の処理先に与え、データ処理プロセッサ２１ａ，２１ｂがスイッチ１１から受信した該データに所定の処理を施した後、該データをスイッチ１１に戻す。【選択図】      図１
2004287811.tif 000002
【特許請求の範囲】
【請求項１】
データに所定の処理を施すと共に、該データに含まれる情報に基づいて決定される次の処理先を示す処理先識別子を該データに付与して出力するデータ処理プロセッサと、
該処理先識別子に基づき、該データを該次の処理先に与えるスイッチと、
を備えたことを特徴とするデータ処理回路。
【請求項２】
請求項１において、
最初の処理先である該データ処理プロセッサを示す処理先識別子を該データに付与して該スイッチに与える回線インタフェースをさらに備えたことを特徴としたデータ処理回路。
【請求項３】
請求項１において、
該スイッチと、このスイッチ及び該データ処理プロセッサを接続するためのコネクタとを実装するマザーボードと、
該データ処理プロセッサの配置状態を管理し該データ処理プロセッサに該配置状態を通知する制御部と、
をさらに備えたことを特徴とするデータ処理回路。
【請求項４】
請求項１において、
該スイッチが、入力ポートの前段、又は出力ポートの後段にデータを一時的に保持するキューを備えたことを特徴とするデータ処理回路。
【請求項５】
データに含まれる情報に基づき決定される全てのデータ処理手順を示す処理先識別子を該データに付与する処理先識別子付与部と、
該処理先識別子に基づき該データを次の処理先に与えるスイッチと、
該スイッチから受信した該データに所定の処理を施した後、該データをスイッチに戻すデータ処理プロセッサと、
を備えたことを特徴とするデータ処理回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理回路に関し、特に、複数のデータ処理を順次実行するデータ処理回路に関するものである。
近年、通信技術の発達に伴い、ブロードバンド化（高速化）及びマルチメディア・トラフィック化が進んでいる。このような高速化したマルチメディア・トラフィックには、ソフトウエアでは対応することができず、複数のデータ処理を順次実行する、ハードウェアで構成されたデータ処理回路が必要である。
【０００２】
【従来の技術】
例えば、ＩＰなどのトラフィックデータを扱うルータは、一般的にトラフィック処理を受け持つモジュール等の専用のハードウェア、すなわち、データ処理回路を搭載し、高速なデータ処理を実現している。
【０００３】
データ処理回路は、一般的に、複数のハードウェアを直列接続又は並列接続することにより処理能力を高めており、例えば、２つのネットワークプロセッサ（ＮｅｔＷｏｒｋ  Ｐｒｏｃｅｓｓｏｒ、以下、ＮＷＰと略称することがある。）直列に搭載し、最初のプロセッサでＬ２（レイヤ２：Ｌａｙｅｒ２）の処理を行い、次のプロセッサでＬ３（レレイヤ３：Ｌａｙｅｒ３）の処理を行う。
【０００４】
【発明が解決しようとする課題】
このように複数のハードウェアで構成されたデータ処理回路は、回路構成を変更するためには再設計が必要であり、次の具体的な問題（１）〜（３）がある。
（１）ハードウェアを追加することによりデータ処理能力（スループット性能）を向上させるためには、データ処理回路の再設計が必要である。
【０００５】
（２）ハードウェアの追加・削除によるトラフィックデータ処理機能の追加・削除が困難である。
（３）データを処理するハードウェアの順序、回数を変更することができない。すなわち、トラフィックデータの処理フローを変更することが困難である。
【０００６】
上記の問題（１）を解決するために、例えば、予め大量のハードウェアを搭載するという方法もあるが、この方法は経済的ではない上に搭載数の予測が難しい。用途（機能）に合わせて構成の異なるハードウェアを複数設計した場合、設計コストが掛かる上に、そのバリエーション数に比例して開発工数及び試験工数が増加し、効率的ではない。
【０００７】
すなわち、従来のハードウェアによるトラフィックデータ処理回路は、その構成を変更することは容易でなく、再設計を行わなくてはならない。
また、従来の情報処理装置（パケット処理装置）には、パケットを入力するパケット入力手段と、プロセッサ内部の情報を内部情報として引き継ぎ制御する内部情報引き継ぎ手段と、前記内部情報にもとづいて、入力したパケットを演算処理するパケット演算手段と、演算後のパケットを出力するパケット出力手段と、から構成される複数のパケット処理プロセッサと、前記パケット処理プロセッサを直列接続する通信ラインとを備えてパケットの処理を行うものがある。
【０００８】
すなわち、直列接続された複数のパケット処理間で、プロセッサ内部の情報を内部情報として引き継いで、パケットの演算処理を行うことにより、オーバヘッドを抑止し、パケットを高速に処理することを図っている（例えば、特許文献１参照）。
【０００９】
しかしながら、このようなパケット処理装置は、複数の処理フローを特定の順序で行うように、複数のパケット処理プロセッサを通信ラインで直列接続して構成することは可能であるが、同一のパケット処理装置で、処理フローを変更した、例えば、異なる順序、回数の処理フローを必要とするパケット処理を行うことはできない。
【００１０】
【特許文献１】
特開２００２−１７６４４０号公報
従って本発明は、複数のデータ処理を順次実行するデータ処理回路において、連続性・方向性を持つデータ処理の順序をハードウェアで変更すること、また、データ処理の種類をハードウェアで変更することを課題とする。
【００１１】
【課題を解決するための手段】
上記の課題を解決するため、本発明のデータ処理回路は、データに所定の処理を施す共に、該データに含まれる情報に基づいて決定される次の処理先を示す処理先識別子を該データに付与して出力するデータ処理プロセッサと、該処理先識別子に基づき、該データを該次の処理先に与えるスイッチと、を備えたことを特徴としている。
【００１２】
図１は、本発明に係るデータ処理回路１００の原理的な構成例を示しており、このデータ処理回路１００は、データ処理プロセッサ（例えば、ネットワークプロセッサ）２１ａ，２１ｂ（以下、符号２１で総称することがある。）とスイッチ１１を備えている。
【００１３】
図２は、本発明のデータ処理回路の動作原理〔１〕を含んでいる。同図に基づき、図１のデータ処理回路１００の動作原理〔１〕を以下に説明する。
ステップＳ０２：データ処理プロセッサ２１ａは、例えば、入力したデータに所定の処理、例えば、Ｌ２処理を施すと共に、該データの内容に基づいて決定される次の処理、例えば、Ｌ３処理、又はデータ出力処理（出力用ポート）等を示す処理先識別子（ＩＤ＝“５４”等）を付与したデータ（パケット）８０ｂを出力する。
【００１４】
なお、このとき、各データ処理プロセッサ２１は、全データ処理プロセッサの配置状態を知っているものとする。
図３は、スイッチ１１の動作原理を示している。このスイッチ１１は、データ処理プロセッサ２１ａから受信した処理後のデータ（パケット）８０ｂを、このパケット８０ｂに付加された処理先識別子８１（＝“５４”）に基づき、データ８２の次の処理を行うデータ処理プロセッサ２１ｂに接続された端子（ポート５４）に与える。
【００１５】
ステップＳ０３：以下同様に、図２において、データ処理プロセッサ２１ｂは、所定の処理をパケット８０ｂのデータ８２に施すと共に、次の処理先（この例では、出力処理）を示す処理先識別子８１（＝“４６”）に付け替えたパケット８０ｃをスイッチ１１に戻す。
【００１６】
スイッチ１１は、パケット８０ｃの処理先識別子８１に基づき、パケット８０ｃのデータ８２を出力ポート４６に与える。
これにより、データ処理回路１００は、受信したデータの内容によって決定されるデータ処理順序に従って、データ処理を容易に行うことが可能になる。すなわち、データ処理回路１００は、データの処理内容に対応した処理順序をハードウェアで変更することが可能になる。
【００１７】
また、本発明においては、該所定の処理をトラフィック処理とすることができる。すなわち、該所定の処理を、Ｌ２処理、Ｌ３処理、Ｅｔｈｅｒｎｅｔ処理、ＰＯＳ処理、及びトンネル処理等のトラフィック処理とすることができる。
また、本発明においては、最初の処理先である該データ処理プロセッサを示す処理先識別子を該データに付与して該スイッチに与える回線インタフェースをさらに備えることができる。
【００１８】
すなわち、図１において、データ処理回路１００は、さらに回線インタフェース１４を備えている。図２において、本発明の動作原理を以下に説明する。
ステップＳ０１：回線インタフェース１４は、受信したトラフィックデータ（パケット）８０に、例えば、最初の処理先であるデータ処理プロセッサ２１ａを示す処理先識別子８１（＝“４１”）を付与したデータ（パケット８０ａ）をスイッチ１１に与える。
【００１９】
これにより、データ８０は、最初の処理先であるデータ処理プロセッサ２１ａに与えられことになる。
また、本発明においては、該スイッチと、このスイッチ及び該データ処理プロセッサを接続するためのコネクタとを実装するマザーボードと、該データ処理プロセッサの配置状態を管理し該データ処理プロセッサに該配置状態を通知する制御部と、をさらに備えることができる。
【００２０】
すなわち、図１において、データ処理回路１００は、マザーボード（図示せず。）及び制御部１２をさらに備えることができる。
マザーボードは、例えば、スイッチ１１とコネクタ１５＿１，１５＿２を実装している。このコネクタ１５＿１，１５＿２には、例えば、それぞれ、Ｌ２処理及びＬ３処理を行うデータ処理プロセッサ２１ａ，２１ｂを接続（実装）する。
【００２１】
制御部１２（例えば、マザーボードに実装してもよい。）は、データ処理プロセッサ２１ａ，２１ｂの配置状態を管理し、この配置状態をデータ処理プロセッサ２１ａ，２１ｂに通知する。
データ処理プロセッサ２１ａ，２１ｂは、配置状態に基づき処理したデータに付与する処理先識別子８１を決定する。
【００２２】
これにより、データ処理回路１００は、受信したデータの処理の種類に対応したデータ処理プロセッサを容易に実装（追加及び削除を含む。）することが可能になると共に、その処理手順も容易に決定することが可能になる。
また、本発明においては、該制御部１２に与える、該データ処理プロセッサの該配置状態を予め記憶したメモリをさらに備えることができる。
【００２３】
すなわち、同図において、データ処理回路１００はメモリ１３を備えている。このメモリ１３は、例えば、それぞれ、コネクタ１５＿１及び１５＿２とに接続されているＬ２処理用のデータ処理プロセッサ２１ａ及びＬ３処理用のデータ処理プロセッサ２１ｂとの関係を予め記憶している。これにより、制御部１２は、データ処理プロセッサ２１ａ，２１ｂの配置状態を知ることが可能になる。
【００２４】
また、本発明においては、該メモリ１３に該配置状態を入力する入力部を備えることができる。これにより、メモリに配置状態を外部から入力することが可能になる。なお、同図には、入力部は示されていない。
また、本発明においては、該データ処理プロセッサが、そのデータ処理内容を示すデータ処理識別子情報を有し、該制御部１２が該データ処理識別子情報を読み取ることにより、該配置状態を認識することが可能である。
【００２５】
これにより、制御部１２は、外部から予めメモリ１３に設定された配置状態を読むことなく配置状態を認識することが可能になる。
また、本発明においては、該データ処理プロセッサが、そのデータ処理内容を示すデータ処理識別子情報を有し、各データ処理プロセッサが、相互に他のデータ処理プロセッサのデータ処理識別子情報を交換することが可能である。
【００２６】
これによっても、各データ処理プロセッサは、全データ処理プロセッサの配置状態を認識することが可能になる。
また、本発明においては、該スイッチが、入力ポートの前段、又は出力ポートの後段にデータを一時的に保持するキューを備えることができる。
【００２７】
すなわち、図３には図示されていないが、入力ポートの前段、又は出力ポートの後段にキューが接続されている。前段のキューは入力されたデータを、後段のキューは、スイッチングされた後出力ポートに出力されたデータを一時的に保持する。
【００２８】
これにより、スイッチの前段及び後段に接続された、例えば、データ処理プロセッサ間のデータ処理のタイミングを合わせることが可能になる。
なお、後述する図６〜図８に示されるスイッチ１１の前段及び後段に配置されているキューは図を簡略化するため図示されていない。
【００２９】
また、上記の課題を解決するため、本発明のデータ処理回路は、データに含まれる情報に基づき決定される全てのデータ処理手順を示す処理先識別子を該データに付与する処理先識別子付与部と、該処理先識別子に基づき該データを次の処理先に与えるスイッチと、該スイッチから受信した該データに所定の処理を施した後、該データをスイッチに戻すデータ処理プロセッサとを備えたことを特徴としている。
【００３０】
すなわち、図１において、データ処理回路１００は、処理先識別子付与部（同図では回線インタフェース）１４、スイッチ１１、及びデータ処理プロセッサ２１ａ，２１ｂ（以下、符号２１で総称することがある。）を備えている。
図２は、本発明の動作原理〔２〕を示している。この動作原理〔２〕を以下に説明する。
【００３１】
（１）ステップＳ１１：処理先識別子付与部１４は、受信したデータ（パケット）８０に含まれる情報に基づき、このデータ８０に施す全てのデータ処理とその順序を決定し、例えば、これらのデータ処理を施すデータ処理プロセッサ２１ａ，２１ｂ、及びデータの出力処理（出力ポート４７）に対応する処理先識別子８１＿１＝“４１”、処理先識別子８１＿２＝“５４”、及び処理先識別子８１＿３＝“４７”（以下、符号８１で処理先識別子を総称することがある。）をデータ８０に付与したパケット８０ｘをスイッチ１１に与える。
【００３２】
（２）スイッチ１１は、処理先識別子８１に基づき、データを次の処理先に与える。
（３）データ処理プロセッサ２１は、スイッチ１１から受信したデータに所定の処理を行った後、スイッチ１１に戻す。なお、同図では、プロセッサ２１ａ，２１ｂは、パケットに次の処理に対応する処理先識別子を付与しているが、本発明では、プロセッサ２１ａ，２１ｂは、処理先識別子を付与しない。
【００３３】
（４）上記の（２）及び（３）を繰り返すことで、データ８０に必要な処理は、総て実行される。
（５）次の処理先が出力処理である場合は、データは、データ処理回路１００から出力される。
【００３４】
また、本発明においては、該データ処理プロセッサが、自分自身を示す処理先識別子を削除してもよい。
また、本発明においては、該スイッチが、該次の処理先の処理先識別子を削除してもよい。
【００３５】
また、本発明においては、該処理先識別子付与部と、該スイッチと、このスイッチ及び該データ処理プロセッサを接続するためのコネクタとを実装するマザーボードと、該データ処理プロセッサの配置状態を管理し該処理先識別子付与部に配置状態を通知する制御部とをさらに備えることができる。
【００３６】
また、本発明においては、該データ処理プロセッサが、その処理内容を示すデータ処理識別子情報を有し、該処理先識別子付与部が該データ処理識別子情報を読み取ることが可能である。
すなわち、図１において、処理先識別子付与部（回線インタフェース）は、データ処理プロセッサ２１ａ，２１ｂからデータ処理識別子情報９３を読取ることにより、データ処理プロセッサ２１ａ，２１ｂのデータ処理内容及び配置状態を認識することが可能になる。
【００３７】
【発明の実施の形態】
図４（１）は、本発明に係るデータ処理回路１００をルータ２００に適用した実装例を示している。このルータ２００は、データ処理回路１００＿１〜１００＿３（以下、符号１００で総称することがある。）と、これらのデータ処理回路１００を収容する筐体２０１とで構成されている。
【００３８】
同図（２）は、データ処理回路１００の実装例を示している。このデータ処理回路１００は、マザーボード１０及びドータカード２０＿１〜２０＿６（以下、符号２０で総称することがある。）で構成されている。
マザーボード１０には、スイッチ１１、管理用プロセッサ１２、メモリ１３、データフロー８０を受信する回線インタフェース１４＿１、コネクタ１５＿１〜１５＿６（以下、符号１５で総称することがある。）、及びコネクタ１６を搭載している。このコネクタ１６は、データ処理回路１００と筐体を接続するためのコネクタである。
【００３９】
ドータカード２０は、ネットワークプロセッサ２１及びコネクタ２２で構成されている。このコネクタ２２は、コネクタ１５に接続することによりドータカード２０とマザーボード１０とを接続する。
図５は、図４（２）に示したデータ処理回路１００の構成実施例を示している。この構成実施例では、全二重のデータ処理回路１００を示している。
【００４０】
回線インタフェース１４＿１とコネクタ１６（図示せず。同図（２）参照）に接続されたモジュール間インタフェース１４＿２は、それぞれ、スイッチ１１にパケット（データフロー）８０ａを与えると共にスイッチ１１からパケット（データフロー）８０ｊを受信する。
【００４１】
ドータカード２０＿１〜２０＿ｎ（以下、符号２０で総称することがある。）に、それぞれ搭載された各ネットワークプロセッサ２１は、各コネクタ２２及びコネクタ１５＿１〜１５＿ｎを介してスイッチ１１に接続され、データフロー（パケット）８０ｂ〜８０ｉを送受信する。
【００４２】
また、ネットワークプロセッサ２１への電源供給、クロック供給、及び制御信号７１の送受信は、コネクタ２２及びコネクタ１５＿１〜１５＿ｎを介して行われる。
このように、ドータカード２０は脱着可能であるため、理論的にはｎ個のコネクタ１５を用意すれば、ネットワークプロセッサ２１の搭載数は、１から最大ｎ個までの間で可変になる。
【００４３】
構成定義設定用メモリ１３には、コネクタ１５＿１〜１５＿ｎに接続されているドータカード２０＿１〜２０＿ｎに搭載されているネットワークプロセッサ２１の処理内容（例えば、Ｌ２処理、Ｌ３処理等）をスイッチ１１のポートに対応付けた構成定義情報９２として予め設定されている。
【００４４】
管理用プロセッサ１２は、構成定義情報９２を構成定義情報通知９１で各プロセッサ２１に通知する。これにより、各プロセッサ２１は、スイッチ１１のポートに接続されたプロセッサ２１の処理内容を知ることができる。
なお、メモリ１３の代わりに、各プロセッサ２１に、それぞれの処理内容示すデータ処理識別子を設定しておき、このデータ処理識別子を管理用プロセッサ１２が読み出して、各プロセッサ２１に構成定義情報９２として通知してもよい。
【００４５】
また、管理用プロセッサ１２を介さずに、各プロセッサ２１が、相互にデータ処理識別子を通知し合うことで、各プロセッサ２１が構成定義情報９２を認識するようにしてもよい。
図６（１）は、本発明のデータ処理回路１００ａの動作実施例（１）を示している。この実施例（１）では、スイッチ１１のポート４１，４２にＬ２プロセッサ２１ａが接続され、ポート４４，４５にＬ３プロセッサ２１ｂが接続されている。
【００４６】
データ処理回路１００ａのデータ処理動作を以下に説明する。
ステップＳ２１：入力ポート４０から入力されたパケット８０ａは、ポート４１を経由して、Ｌ２プロセッサ２１ａに与えられる。Ｌ２プロセッサ２１ａは、パケット８０ａにＬ２処理を施すと共に、パケット８０ａのＩＰデータ８２を参照して、次の処理がＬ３処理であると判別する。
【００４７】
そして、Ｌ２プロセッサ２１ａは、パケット８０ａのヘッダ８１を、Ｌ３プロセッサ２１ｂが接続されているポート４４の番号“４４”、すなわち、次に実施するＬ３処理を施すＬ３プロセッサ２１ｂを示す処理先識別子＝“４４”に付け替えたパケット８０ｂをスイッチ１１に戻す。
【００４８】
スイッチ１１は、パケット８０ｂを、そのヘッダ８１に付与された処理先識別子＝“４４”に基づき、ポート４４に送る。
ステップＳ２２：Ｌ３プロセッサ２１ｂは、パケット８０ｂにＬ３処理を施すと共に、パケット８０ｂのデータ８２を参照して、次の処理が出力処理であると判別する。
【００４９】
そして、Ｌ２プロセッサ２１ａは、パケット８０ｂのヘッダ８１を、出力ポート４６の番号“４６”に付け替えたパケット８０ｃをスイッチ１１に戻す。
スイッチ１１は、パケット８０ｃを、このヘッダ８１に付与された処理先識別子＝“４６”に基づき、出力ポート４６に送る。これにより、パケット８０ａに含まれていたデータ８２に順次Ｌ２処理及びＬ３処理が施されて出力されることになる。
【００５０】
同図（２）は、本発明のデータ処理回路１００ｂの動作実施例（２）を示している。この実施例（２）が、同図（１）に示した実施例（１）と異なる点は、スイッチ１１のポート５０，５１にトンネル処理を行うトンネル処理プロセッサ２１ｃが接続されていることである。
【００５１】
データ処理回路１００ｂのデータ処理動作を以下に説明する。
ステップＳ３１，Ｓ３２：データ処理回路１００ｂが、パケット８０ａに実施例（１）のデータ処理回路１００ａと同じ処理を施す場合は、実施例（１）のステップＳ２１，Ｓ２２と同様である。
【００５２】
ステップＳ３３：データ処理回路１００ｂが、パケット８０ａにＬ２処理、Ｌ３処理、及びトンネル処理を施す場合、Ｌ３プロセッサ２１ｂは、パケット８０ｂのデータ８２を参照して、次の処理がトンネル処理であると判別し、パケット８０ｂのヘッダ８１を、トンネル処理プロセッサ２１ｃが接続されているポート５１の番号“５１”に付け替えたパケット８０ｄをスイッチ１１に戻す。
【００５３】
スイッチ１１は、パケット８０ｄを、このヘッダ８１の付与された処理先識別子＝“５１”に基づき、ポート５１に送る。
ステップＳ３４：トンネル処理プロセッサ２１ｃは、パケット８０ｄのデータ８２にトンネル処理を施すと共に、パケット８０ｃのデータ８２を参照して、次の処理が出力処理であると判別する。
【００５４】
そして、トンネル処理プロセッサ２１ｃは、パケット８０ｄのヘッダ８１を、出力ポート４６の番号“４６”に付け替えたパケット８０ｅをスイッチ１１に戻す。
スイッチ１１は、パケット８０ｅを、そのヘッダ８１の付与された識別子＝“４６”に基づき、出力ポート４６に送る。これにより、パケット８０ａに含まれていたデータ８２に順次Ｌ２処理、Ｌ３処理、及びトンネル処理が施されて出力されたことになる。
【００５５】
このように、図６（１）に示した実施例（１）のＬ２処理及びＬ３処理のみを施すことが可能なデータ処理回路１００ａに、例えば、トンネル処理プロセッサ２１ｃを空きスロットのコネクタに接続することにより、容易に、Ｌ２処理、Ｌ３処理、及びトンネル処理を施すことが可能なデータ処理回路１００ｂに変更することが可能になる。
【００５６】
なお、実施例（１）及び（２）では、各データ処理プロセッサ２１が、パケットのヘッダを、受信したパケットのデータに基づき判定した次の処理先識別子に付け替えたが、処理先識別子付与部（図１参照）をスイッチ１１の前段に設け、この処理先識別子付与部が、受信したデータに基づき、全データ処理の処理先識別子をヘッダとして、データに付加するようにしてもよい。
【００５７】
この場合、データ処理プロセッサ２１は、例えば、スイッチ１１から与えられたデータにデータ処理を施すと共に、自プロセッサ２１を指定する処理先識別子を削除して、処理後のデータをスイッチ１１に戻すだけでよい。
図７は、本発明のデータ処理回路１００ｃに動作実施例（３）を示している。この実施例（３）が、図６（１）に示した実施例（１）と異なる点は、ポート４４，４５にＬ３プロセッサ２１ｂの代わりにＥｔｈｅｒｎｅｔプロセッサ２１ｄが接続され、さらに、ポート５０，５１にＰＯＳプロセッサ２１ｅが接続されていることである。
【００５８】
Ｌ２プロセッサ２１ａは、パケット８０ａにＬ２処理を施すと共に、パケット８０ａのデータに基づき次の処理がＥｔｈｅｒｎｅｔ処理と判別したとき、パケット８０ａのヘッダを、処理先識別子＝“４４”に付け替えたパケットをスイッチ１１に戻し、次の処理がＰＯＳ処理と判別したとき、処理先識別子＝“５０”に付け替えたパケットをスイッチ１１に戻す。
【００５９】
Ｅｔｈｅｒｎｅｔプロセッサ２１ｄ及びＰＯＳプロセッサ２１ｅは、それぞれ、Ｅｔｈｅｒｎｅｔ処理及びＰＯＳ処理をパケットに施した後、受信したパケットのヘッダを、出力ポート４６及び４７の識別子＝“４６”，“４７”に付け替えてスイッチ１１に戻す。
スイッチ１１は、各パケットを、そのヘッダに設定された処理先識別子８１に基づき、出力ポート４６又は４７に出力する。
【００６０】
図８（１）は、本発明のデータ処理回路１００ｄの動作実施例（４）を示している。この実施例（４）では、２つのハーフ・デュープレックス・ネットワークプロセッサ２１Ｈ＿１，２１Ｈ＿２を用いて、双方向通信（Ｄｕｐｌｅｘｔｒａｎｓｍｉｓｓｉｏｎ）のデータ処理回路１００ｄを構成している。
【００６１】
すなわち、例えば、Ｌ２処理を施すネットワークプロセッサ２１Ｈ＿１が、スイッチ１１のポート４２，４３に接続され、Ｌ２処理を施すネットワークプロセッサ２１Ｈ＿２が、スイッチ１１のポート５１，５２に接続されている。
入力ポート４０からスイッチ１１に入力されたパケット８０ａは、ネットワークプロセッサ２１Ｈ＿１に与えられＬ２処理が施された後、パケット８０ｂとして出力ポート４６から出力される。
【００６２】
一方、入力ポート４７からスイッチ１１に入力されたパケット８０ｃは、ネットワークプロセッサ２１Ｈ＿２に与えられＬ２処理が施された後、パケット８０ｄとして出力ポート５７から出力される。これにより、Ｌ２処理を施す双方向通信が実現される。
同図（２）は、本発明のデータ処理回路１００ｅの動作実施例（５）を示している。この実施例（５）では、１つのフル・デュープレックス・ネットワークプロセッサ２１Ｆを用いて、双方向通信のデータ処理回路１００ｅを構成している。
【００６３】
すなわち、スイッチ１１のポート４１〜４４には、ネットワークプロセッサ２１Ｆが接続されている。
ポート４０から入力されたパケット８０ａは、ポート４１を経由してネットワークプロセッサ２１Ｆに与えられ、このネットワークプロセッサ２１Ｆで、例えば、Ｌ２処理が施された後、ポート４４，４６を経由してパケット８０ｂとして出力される。
【００６４】
一方、ポート４７から入力されたパケット８０ｃは、ポート４３を経由してネットワークプロセッサ２１Ｆに与えられ、このネットワークプロセッサ２１Ｆで、Ｌ２処理が施された後、ポート４２，５７を経由してパケット８０ｄとして出力される。
（付記１）
データに所定の処理を施すと共に、該データに含まれる情報に基づいて決定される次の処理先を示す処理先識別子を該データに付与して出力するデータ処理プロセッサと、
該処理先識別子に基づき、該データを該次の処理先に与えるスイッチと、
を備えたことを特徴とするデータ処理回路。
（付記２）上記の付記１において、
該所定の処理がトラフィック処理であることを特徴としたデータ処理回路。
（付記３）上記の付記１において、
最初の処理先である該データ処理プロセッサを示す処理先識別子を該データに付与して該スイッチに与える回線インタフェースをさらに備えたことを特徴とするデータ処理回路。
（付記４）上記の付記１において、
該スイッチと、このスイッチ及び該データ処理プロセッサを接続するためのコネクタとを実装するマザーボードと、
該データ処理プロセッサの配置状態を管理し該データ処理プロセッサに該配置状態を通知する制御部と、
をさらに備えたことを特徴とするデータ処理回路。
（付記５）上記の付記４において、
該制御部に与える、該データ処理プロセッサの該配置状態を予め記憶したメモリをさらに有することを特徴としたデータ処理回路。
（付記６）上記の付記５において、
該メモリに該配置状態を入力する入力部を有することを特徴としたデータ処理回路。
（付記７）上記の付記４において、
該データ処理プロセッサが、そのデータ処理内容を示すデータ処理識別子情報を有し、
該制御部が該データ処理識別子情報を読み取ることにより、該配置状態を認識することを特徴としたデータ処理回路。
（付記８）上記の付記１において、
該データ処理プロセッサが、そのデータ処理内容を示すデータ処理識別子情報を有し、
各データ処理プロセッサが、相互に他のデータ処理プロセッサのデータ処理識別子情報を交換することを特徴としたデータ処理回路。
（付記９）上記の付記１において、
該スイッチが、入力ポートの前段、又は出力ポートの後段にデータを一時的に保持するキューを備えたことを特徴とするデータ処理回路。
（付記１０）
データに含まれる情報に基づき決定される全てのデータ処理手順を示す処理先識別子を該データに付与する処理先識別子付与部と、
該処理先識別子に基づき該データを次の処理先に与えるスイッチと、
該スイッチから受信した該データに所定の処理を施した後、該データをスイッチに戻すデータ処理プロセッサと、
を備えたことを特徴とするデータ処理回路。
（付記１１）上記の付記１０において、
該データ処理プロセッサが、自分自身を示す処理先識別子を削除することを特徴としたデータ処理回路。
（付記１２）上記の付記１０において、
該スイッチが、該次の処理先の処理先識別子を削除することを特徴としたデータ処理回路。
（付記１３）上記の付記１０において、
該所定の処理がトラフィック処理であることを特徴としたデータ処理回路。
（付記１４）上記の付記１０において、
該処理先識別子付与部と、該スイッチと、このスイッチ及び該データ処理プロセッサを接続するためのコネクタとを実装するマザーボードと、
該データ処理プロセッサの配置状態を管理し該処理先識別子付与部に配置状態を通知する制御部と、
をさらに備えたことを特徴とするデータ処理回路。
（付記１５）上記の付記１４において、
該制御部に与える、該データ処理プロセッサの配置状態を記憶するメモリをさらに有することを特徴としたデータ処理回路。
（付記１６）上記の付記１５において、
該メモリに該配置状態を入力する入力部を有することを特徴としたデータ処理回路。
（付記１７）上記の付記１４において、
該データ処理プロセッサが、その処理内容を示すデータ処理識別子情報を有し、
該処理先識別子付与部が該データ処理識別子情報を読み取ることを特徴としたデータ処理回路。
（付記１８）上記の付記１０において、
該スイッチが、入力ポートの前段、又は出力ポートの後段にデータを一時的に保持するキューを備えたことを特徴とするデータ処理回路。
【００６５】
【発明の効果】
以上説明したように、本発明に係るデータ処理回路によれば、データ処理プロセッサが、データに含まれる情報に基づいて決定される次の処理先を示す処理先識別子を該データに付与し、スイッチが該処理先識別子に基づき、該データを該次の処理先に与えるか、又は処理先識別子付与部が、データに含まれる情報に基づき決定される全てのデータ処理手順を示す処理先識別子を該データに付与し、スイッチが、該処理先識別子に基づき該データを次の処理先に与え、データ処理プロセッサが該スイッチから受信した該データに所定の処理を施した後、該データをスイッチに戻すようにしたので、連続性・方向性を持つデータの処理順序をハードウェアで変更すること、また、処理の種類をハードウェアで変更することが可能になる。
【００６６】
これにより、高速データトラフィック処理を行うハードウェアモジュールにおいて、以下の効果（１）〜（３）が期待できる。
（１）処理能力（スループット性能）の向上などの目的でハードウェアを追加したい場合、モジュールの再設計を行うことなく対応することが可能になる。
【００６７】
（２）データ処理プロセッサ及びスイッチをコネクタで相互接続することにより、トラフィックデータ処理フローが容易に変更可能になる。
（３）トラフィック処理回路の構成の変更が容易になるめ、要求性能の高い装置から低い装置まで、基本となるハードウェアの設計を変えることなく柔軟かつ効率的に対応することが可能となる。
【図面の簡単な説明】
【図１】本発明に係るデータ処理回路の原理的な構成例を示したブロック図である。
【図２】本発明に係るデータ処理回路の動作原理〔１〕、〔２〕を示したブロック図である。
【図３】本発明に係るデータ処理回路におけるスイッチの動作原理を示したブロック図である。
【図４】本発明に係るデータ処理回路の実装例を示した実装図である。
【図５】本発明に係るデータ処理回路の構成実施例を示したブロック図である。
【図６】本発明に係るデータ処理回路の動作実施例（１）、（２）を示したブロック図である。
【図７】本発明に係るデータ処理回路の動作実施例（３）を示したブロック図である。
【図８】本発明に係るデータ処理回路の動作実施例（４）、（５）を示したブロック図である。
【符号の説明】
１００，１００＿１〜１００＿３  データ処理回路
２００  ルータ                                            ２０１  筐体
１０  マザーボード                                  １１  スイッチ
１２  管理用プロセッサ、制御部          １３  構成定義設定用メモリ
１４，１４＿１  回線インタフェース、処理先識別子付与部
１４＿２  モジュール間インタフェース
１５，１５＿１〜１５＿６  コネクタ                  １６  コネクタ
２０  ドータカード
２１  データ処理プロセッサ、ネットワークプロセッサ（ＮＷＰ）
２１Ｈ＿１，２１Ｈ＿２  ハーフ・デュープレックス・ネットワークプロセッサ
２１Ｆ  フル・デュープレックス・ネットワークプロセッサ
２１ａ  Ｌ２プロセッサ                                ２１ｂ  Ｌ３プロセッサ
２１ｃ  トンネル処理プロセッサ            ２１ｄ  Ｅｔｈｅｒｎｅｔプロセッサ
２１ｅ  ＰＯＳプロセッサ                              ２２  コネクタ
４０〜５７  ポート                                      ７１，７１ａ  制御信号
７２  トラフィックデータ                      ７３  Ｅｔｈｅｒｎｅｔデータ
７４  ＰＯＳデータ
８０  パケット、ＩＰデータ、トラフィックデータ、データフロー
８０ａ〜８０ｅ，８０ｉ，８０ｊ，８０ｊｅ，８０ｊｐ，８０ｋ  パケット、データフロー
８１  ヘッダ、処理先識別子、処理先識別番号
８２  トラフィックデータ、ＩＰデータ  ９０  追加コネクション
９１  構成定義情報通知                          ９２  構成定義情報
９３  データ処理識別子情報
図中、同一符号は同一又は相当部分を示す。
【図１】
2004287811.tif 000003
【図２】
2004287811.tif 000004
【図３】
2004287811.tif 000005
【図４】
2004287811.tif 000006
【図５】
2004287811.tif 000007
【図６】
2004287811.tif 000008
【図７】
2004287811.tif 000009
【図８】
2004287811.tif 000010