(57)【要約】【課題】プロセッサ間通信の通信速度を高速化する。【解決手段】所定の回線対応手段を介して外部の伝送路から入力または出力される伝送データの中継を主目的とする中継装置に関し、中継装置内に設けられた複数のプロセッサ手段が、伝送データを処理するための所定の制御データを通信する際に機能するプロセッサ間通信システムにおいて、各プロセッサ手段は、付加プロッセサ部と、主プロセッサ部とを備え、回線対応手段は、回線対応手段内に、該当するプロセッサ手段のあいだで、所定の内部伝送路の設定を行う内部伝送路設定部を備え、内部伝送路を介して制御データを伝送することで、伝送データを中継し伝送するための内部帯域資源を制御データの伝送に活用する。【選択図】　図１
2004112220.tif 000002
【特許請求の範囲】
【請求項１】
所定の回線対応手段を介して外部の伝送路から入力または出力される伝送データの中継を主目的とする中継装置に関し、当該中継装置内に設けられた複数のプロセッサ手段が、前記伝送データを処理するための所定の制御データを通信する際に機能するプロセッサ間通信システムにおいて、
前記各プロセッサ手段は、
当該プロセッサ手段内において、最初に、前記伝送データを受け取り、当該伝送データに関する処理を実行する付加プロッセサ部と、
当該付加プロセッサ部だけでは処理しきれないとき、所定のプロセッサ内バスを介して、当該付加プロセッサ部から前記伝送データを受け取って当該伝送データに関する処理を実行する主プロセッサ部とを備え、
前記回線対応手段は、
当該回線対応手段内に、該当するプロセッサ手段のあいだで、所定の内部伝送路の設定を行う内部伝送路設定部を備え、
当該内部伝送路を介して前記制御データを伝送することで、前記伝送データを中継し伝送するための内部帯域資源を制御データの伝送に活用することを特徴とするプロセッサ間通信システム。
【請求項２】
請求項１のプロセッサ間通信システムにおいて、
前記中継装置内に前記プロセッサ手段が３つ以上存在する場合、前記制御データの論理フォーマットに、送信先として１または複数のプロセッサ手段を指定する送信先指定領域を設け、
前記内部伝送路設定部は、
各制御データにつき、前記論理フォーマット中の送信先指定領域の値を解釈して、解釈結果に応じて制御データをプロセッサ手段に配送する制御データ配送部を備えることを特徴とするプロセッサ間通信システム。
【請求項３】
請求項１のプロセッサ間通信システムにおいて、
前記中継装置内に前記プロセッサ手段が２つ以上存在する場合、前記制御データの論理フォーマットに、送信元として１のプロセッサ手段を指定する送信元指定領域を設け、
前記内部伝送路設定部は、
受信した各制御データにつき、前記論理フォーマット中の送信元指定領域の値とプロセッサ手段との対応関係を検査し、自プロセッサ手段が送信した制御データが自プロセッサ手段に受信されようとするときには、制御データの無限ループを阻止するために当該制御データを廃棄する制御データ廃棄部を備えたことを特徴とするプロセッサ間通信システム。
【請求項４】
請求項１のプロセッサ間通信システムにおいて、
前記回線対応手段は、
前記制御データを、前記中継装置の内部で伝送するのに適した所定の伝送用単位データから、前記プロセッサ手段で処理するのに適した所定の処理用単位データへフォーマット変換する第１のフォーマット変換部と、
前記制御データを、前記処理用単位データから前記伝送用単位データへフォーマット変換する第２のフォーマット変換部を備えたことを特徴とするプロセッサ間通信システム。
【請求項５】
請求項１のプロセッサ間通信システムにおいて、
前記内部伝送路設定部は、
リング状のトポロジを有する内部伝送路を設定することを特徴とするプロセッサ間通信システム。
【請求項６】
請求項１のプロセッサ間通信システムにおいて、
前記内部伝送路設定部は、
バス状のトポロジを有する内部伝送路を設定することを特徴とするプロセッサ間通信システム。
【請求項７】
請求項５のプロセッサ間通信システムにおいて、
前記回線対応手段は、
前記各プロセッサ手段に対応する送信権制御部を設け、
前記内部伝送路上には、所定のトークンデータを巡回させ、当該トークンデータを取得した１の送信権制御部に対応するプロセッサ手段に送信権を付与することを特徴とするプロセッサ間通信システム。
【請求項８】
請求項６のプロセッサ間通信システムにおいて、
前記回線対応手段は、
前記各プロセッサ手段に対応した要求送信元からの送信権確保要求を受け取る送信権調停部を設け、
当該送信権調停部が、同時には１のプロセッサ手段に送信権を付与することを特徴とするプロセッサ間通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプロセッサ間通信システムに関し、例えば、ルータ装置やロードバランサなどの１つの通信機器に複数のネットワークプロセッサ（ＮＰＵ：通信処理特化演算処理装置）を搭載し、各通信機器内のネットワークプロセッサ間で通信を行う場合などに適用して好適なものである。
【０００２】
【従来の技術】
ルータ装置やロードバランサ（負荷分散装置）などの通信機器は、外部の通信路から入力されたパケット等の通信データ（以下、「回線データ」と総称する）の中継処理を実行する機器である。
【０００３】
例えば、ルータはＯＳＩ参照モデルのネットワーク層で中継処理を行う通信機器で、ＩＰパケットのヘッダ部分に記述されている宛先ＩＰアドレスと、予めルータに登録されている経路表（ルーティングテーブル）の内容に応じてルーティングを行い、ある通信路から入力された各ＩＰパケットをいずれの通信路から出力するかを決定する。
【０００４】
また、ロードバランサはＯＳＩ参照モデルのトランスポート層以上の階層で中継処理を行う通信機器で、複数のＷｅｂサーバなどの前に配置され、クライアントが指定したＵＲＬを所定のＵＲＬ変換テーブルなどにしたがって変換すること等により、ＨＴＴＰリクエスト（１つのＨＴＴＰリクエストは、１または複数のＩＰパケットの集合）の供給先を複数のＷｅｂサーバ間で振り分ける処理を実行する。ＨＴＴＰリクエストを受け取ったＷｅｂサーバだけが、当該ＨＴＴＰリクエストに応えるＨＴＴＰレスポンスを返送するため、当該ロードバランサによれば、ＨＴＴＰリクエストの受信からＨＴＴＰレスポンスの返送までに要する処理の負荷を、複数のＷｅｂサーバ間に分散でき、レスポンス性能の向上などが可能になる。
【０００５】
このようなルータ装置やロードバランサの内部には、高速な処理や高い信頼性を得るため、複数のプロセッサが搭載されることがある。その場合、各プロセッサ上のプロセス間で制御情報をやり取りすることにより、各プロセスが協調しながら並列動作し、前記ＩＰパケットのルーティングや、ＨＴＴＰリクエストの供給先の振り分け等の処理（中継処理）を実行する。
【０００６】
【非特許文献】
ｈｔｔｐ：／／ｄｅｖｅｌｏｐｅｒ．ｉｎｔｅｌ．ｃｏｍ／ｄｅｓｉｇｎ／ｎｅｔｗｏｒｋ／ｓｏｌｕｔｉｏｎｓ／ｅｄｇｅ／ｂｌｏｃｋ．ｈｔｍ
【０００７】
【発明が解決しようとする課題】
ところで、相互にプロセッサ間通信を行うネットワークプロセッサを複数備えた通信機器９の内部構成としては様々なものが考えられるが、一例として、図３に示す構成を想定する。
【０００８】
図３において、通信機器９内には４つのネットワークプロセッサ１０〜１３と、２つのＮＰＵインタフェース部１４，１５と、回線統合部１６と、通信路終端部１７，１８と、制御バス（この制御バスとしては、実現の容易性などの観点から、ＰＣＩバスなどの汎用バスを採用することが多いものと考えられる）Ｂ１〜Ｂ５と、内部インタフェースＩ１〜Ｉ８が設けられている。
【０００９】
この通信機器９の外部には、外部通信路Ｐ１，Ｐ２が設けられており、外部通信路Ｐ１には前記通信路終端部１７が、通信路終端部１８には前記外部通信路Ｐ２がそれぞれ接続されている。当該通信機器９が例えば前記ルータ装置であるものとすると、当該通信路終端部１７，１８はそれぞれ接続されている外部通信路Ｐ１、Ｐ２を終端し、各外部通信路Ｐ１，Ｐ２に関し、ＯＳＩ参照モデルのデータリンク層以下の相違を吸収する機能を持つ。
【００１０】
当該通信機器９の通常の動作状態において、当該通信機器９が中継処理の対象とするＩＰパケットなどの回線データは（必要なフォーマット変換を受けたあと）、通信路終端部１７，１８，内部インタフェースＩ７，Ｉ８のほか、主として前記回線統合部１６内を伝送され、図２に示すように設定される内部通信路ＣＴ１〜ＣＴ４を伝送されるため、構成要素１０〜１８，Ｉ１〜Ｉ８、Ｐ１，Ｐ２に分布するが、制御バスＢ１〜Ｂ５に分布することはない。反対に、ＮＰＵ１０〜１３のあいだでプロセッサ間通信のために利用される制御情報はすべて制御バスＢ１〜Ｂ５上を伝送されるから、構成要素１０〜１８，Ｉ１〜Ｉ８、Ｐ１，Ｐ２に分布することはあり得ない。
【００１１】
なお、各ＮＰＵ１０〜１３の内部には、図２に示すように、一対のプロセッサユニット２０〜２３と、コプロセッサユニット２４〜２７が配置されている。そして当該プロセッサユニットとコプロセッサユニットのあいだには、ＮＰＵ内部バスＢ６〜Ｂ９が設けられている。
【００１２】
このプロセッサユニット２０〜２３は、前記Ｂ２〜Ｂ５を介して前記制御バスＢ１に接続されており、コプロセッサユニット２４〜２７は前記内部インタフェースＩ１〜Ｉ４を介してＮＰＵインタフェース部１４，１５に接続されている。
【００１３】
また、各ＮＰＵ１０〜１３内においてプロセッサユニットとコプロセッサユニットを接続するＮＰＵ内部バスＢ６〜Ｂ９は、同じＮＰＵ内のプロセッサユニットとコプロセッサユニットのあいだ（例えば、２０と２４のあいだ）で、主として制御情報を通信するために設けられたバスである。制御情報の発生頻度やデータレートは、外部通信路Ｐ１、Ｐ２から入力または出力される前記回線データに比べ、通常、はるかに小さな値であるから、内部インタフェースＩ１〜Ｉ８、あるいは、内部通信路ＣＴ１〜ＣＴ４に比べると、ＮＰＵ内部バスＢ６〜Ｂ９の伝送帯域ははるかに狭い。
【００１４】
もちろん、このＮＰＵ内部バスＢ６〜Ｂ９の帯域を広く設計することも原理的には可能であるが、そのような設計は、帯域資源の使用効率を低下させ、ＮＰＵに不必要なコストアップや、大型化をまねく可能性が高いため、通常は行われない。
【００１５】
このような構成のもと、（例えば、外部通信路Ｐ１から）入力されたパケットの内容に応じてＮＰＵ１０〜１３のあいだでプロセッサ間通信を行うものとすると、プロセッサ間通信が発生するたびに、狭帯域のＮＰＵ内部バス（例えば、Ｂ６）を介したコプロセッサユニットとプロセッサユニットの通信が必要になるから、ＮＰＵ内部バスＢ６〜Ｂ９がボトルネックとなって通信速度が低く抑制される。
【００１６】
一方、コプロセッサユニット（例えば、２４）から見ると、図３および図２の構成の場合、プロセッサ間通信を必要としない回線データの処理では、内部インタフェース（例えば、Ｉ１）を介して受信した回線データを当該内部インタフェースＩ１を介して返送すればよいのに対し、プロセッサ間通信を必要とする回線データの処理では、内部インタフェースＩ１とは反対で、バスの仕様も異なるＮＰＵ内部バスＢ６を介して送信する必要がある。
【００１７】
このことは、コプロセッサに搭載されるファームウエアとして、プロセッサ間通信に特化したファームウエアを別途設計し開発する必要が生じる可能性が高いことを意味し、そのための開発工数が増大する。また、コプロセッサに搭載されるファームウエア全体として、分岐の多い大規模なプログラムになる可能性が高く、それを格納するＲＯＭやＥＥＰＲＯＭなどの記憶手段にも、大きな記憶容量が必要になるという問題も生じる。
【００１８】
【課題を解決するための手段】
かかる課題を解決するために、本発明では、所定の回線対応手段を介して外部の伝送路から入力または出力される伝送データの中継を主目的とする中継装置に関し、当該中継装置内に設けられた複数のプロセッサ手段が、前記伝送データを処理するための所定の制御データを通信する際に機能するプロセッサ間通信システムにおいて、前記各プロセッサ手段は、（１）当該プロセッサ手段内において、最初に、前記伝送データを受け取り、当該伝送データに関する処理を実行する付加プロッセサ部と、（２）　当該付加プロセッサ部だけでは処理しきれないとき、所定のプロセッサ内バスを介して、当該付加プロセッサ部から前記伝送データを受け取って当該伝送データに関する処理を実行する主プロセッサ部とを備え、前記回線対応手段は、（３）当該回線対応手段内に、該当するプロセッサ手段のあいだで、所定の内部伝送路の設定を行う内部伝送路設定部を備え、（４）当該内部伝送路を介して前記制御データを伝送することで、前記伝送データを中継し伝送するための内部帯域資源を制御データの伝送に活用することを特徴とする。
【００１９】
【発明の実施の形態】
（Ａ）実施形態
以下、本発明にかかるプロセッサ間通信システムの実施形態について説明する。
【００２０】
プロセッサ間通信そのものはマルチプロセッサシステムにおいて広く実行されるものであるから、必ずしも単一の機器の内部で行われると限ったものではなく（ネットワーク経由で行われるプロセッサ間通信もあり得る）、通信機器の内部に限って行われるものでもない（ネットワークに接続されていないスタンドアローンの情報処理装置の内部で行われるプロセッサ間通信もあり得る）が、ここでは、特に、単一の通信機器の内部で行われるプロセッサ間通信に注目する。
【００２１】
通信機器が搭載するプロセッサをその他の一般の情報処理装置が搭載するプロセッサと区別して、ネットワークプロセッサ（ＮＰＵ）と呼ぶ。ＮＰＵは通信処理特化したアーキテクチャを備えている。
【００２２】
第１および第２の実施形態に共通する特徴は、回線データの伝送のために通信機器内に設けられている帯域資源を、プロセッサ間で通信する制御情報の伝送に活用することにより、プロセッサ間通信の通信速度を高めることにある。
【００２３】
また、このとき、ＮＰＵ自体は既存のものをほとんど変更することなく利用する。
【００２４】
なお、プロセッサ間通信（プロセス間通信）の実行主体は、ハードウエア的にはプロセッサであるが、ソフトウエア的には各プロセッサ上のプロセスである。各プロセッサが（あるいは、各プロセッサ上のプロセスが）、前記制御情報をやり取りすることにより、複数プロセッサ（複数プロセス）が協調しながら並列動作することが可能になる。
【００２５】
（Ａ−１）第１の実施形態の構成
本実施形態の通信機器３０の主要部の構成例を図１に示す。通信機器３０は上述した通信機器９に対応するもので、具体的には、ルータ装置やロードバランサ等であってよい。
【００２６】
図１において、当該通信機器３０は、４つのネットワークプロセッサ１０〜１３と、２つのＮＰＵインタフェース部３１，３２と、回線統合部１６と、通信路終端部１７，１８と、制御バスＢ１〜Ｂ５と、内部インタフェースＩ１〜Ｉ９を備えている。
【００２７】
図１中で図３と同じ符号１０〜１３，１６〜１８，Ｉ１〜Ｉ８，Ｂ１〜Ｂ５を付与した各構成要素の機能は上述した通信機器９と同じなので、その詳しい説明は省略する。
【００２８】
なお、図１上は、通信機器３０内に４つのＮＰＵ１０〜１３を設けているが、この数は４つより少なくてもよく、多くてもよい。また、図１では、１つのＮＰＵインタフェース部（３１または３２）に２つずつＮＰＵを接続している（例えば、３１には１０と１１を接続している）が、必要ならば、１つのＮＰＵだけを接続するＮＰＵインタフェース部を設けてもよく、３つ以上のＮＰＵを接続するＮＰＵインタフェースを設けるようにしてもよい。
【００２９】
また、図１の制御バスＢ１は図３と同じＰＣＩバスなどの汎用バスであってよいが、本実施形態では、当該制御バスＢ１の使用方法が図３の通信機器９と相違する。
【００３０】
図３の通信機器９では、プロセッサ間通信のための制御情報はすべて、当該制御バスＢ１を介して伝送されるものであったが、本実施形態では、制御バスＢ１上を制御情報が伝送されるのは通信機器３０の起動直後の初期設定だけであり、初期設定以降は、プロセッサ間通信のために制御バスＢ１が用いられることはない。
【００３１】
なお、このプロセッサ間通信には、コプロセッサユニット（例えば、２４，２５）のあいだの制御情報の通信も含むことは当然である。むしろ、本実施形態で行われるプロセッサ間通信は、後述するように、その大部分がコプロセッサユニット間の制御情報の通信であり、プロセッサユニットが他のプロセッサユニットやコプロセッサユニットと通信することは希である。
【００３２】
本実施形態のプロセッサ間通信は、ＮＰＵインタフェース部３１や３２に設けられている前記回線データを伝送するための豊富な帯域資源を活用して実行される。一般的に、より広帯域の外部通信路Ｐ１，Ｐ２に接続された通信機器ほど、より広帯域なＮＰＵインタフェース部３１，３２を搭載している。
【００３３】
また、一般的に、マルチプロセッサシステム（ＮＰＵ１０〜１３など）を搭載して処理速度を速めようとしているような通信機器（ルータ装置など）であれば、もともとＮＰＵインタフェース部（３１，３２に対応）の帯域資源もかなり豊富であるということができる。
【００３４】
通信機器３０はその性質上、前記ＩＰパケットやＨＴＴＰリクエストなどの回線データから構成される大量の通信トラフィックをリアルタイムに伝送し、処理することを求められるため、通信機器３０内部において回線データの伝送路となる当該ＮＰＵインタフェース部３１，３２には、上述したＮＰＵ内部バス（例えば、Ｂ６など）に比べて十分に広い帯域幅を用意している。
【００３５】
ＮＰＵ１０〜１３の内部構成は図２にも示したが、図４に、さらに詳細な内部構成例を示す。４つのＮＰＵ１０〜１３の内部構成は実質的に同じであってよいが、以下では主として、図４には、ＮＰＵ１０の内部構成を示したものとして説明を進める。
【００３６】
（Ａ−１−１）ＮＰＵの内部構成例
図４において、当該ＮＰＵ１０は、図２に示したプロセッサユニット２０とコプロセッサユニット２４のほかに、低速バスインタフェース部３５と、高速バスインタフェース部３６と、メモリインタフェース部３７とを備えている。
【００３７】
ここで、メモリインタフェース部３７は、プロセッサユニット２０を当該ＮＰＵ１０外のメモリデバイス３８に接続するためのインタフェースである。
【００３８】
プロセッサユニット２０自体が、演算処理の実行に必要な多くのレジスタを内蔵しているが、レジスタでは作業用の記憶領域が足りない場合などに、このメモリデバイス３８が利用される。
【００３９】
なお、一般的なマルチプロセッサシステムでは、所定の共有メモリに制御情報を読み書きすることによって共有メモリを介してプロセッサ間通信を行う方式（密結合方式）が用いられることも多いが、少なくとも、このメモリデバイス３８が当該共有メモリであり、なおかつ、当該メモリデバイス３８を介してプロセッサ間通信の大部分が行われるということはない。
【００４０】
本実施形態のプロセッサ間通信は、その大部分が、ＮＰＵインタフェース部３１，３２を介して行われる。
【００４１】
ＮＰＵインタフェース部３１と３２を接続する内部インタフェースＩ９は、回線統合部１６と各ＮＰＵ１０〜１３とのあいだで回線データを伝送するためにのみＮＰＵインタフェース部１４，１５を利用した図３の通信機器９には対応する構成要素が存在しなかったインタフェースである。本実施形態では、異なるＮＰＵインタフェース部に接続されているＮＰＵ間（例えば、１０と１３のあいだ等）でプロセッサ間通信を行う場合などに、この内部インタフェースＩ９が必要になる。
【００４２】
内部インタフェースＩ９を用いることで、図３のＮＰＵインタフェース部１４、１５などにも設けられている内部通信路をバイパスし、物理的に、より短い伝送距離でプロセッサ間通信を行うことが可能になる。
【００４３】
本実施形態のプロセッサ間通信は、共有メモリ（図示せず）を介する密結合方式であってもよく、共有メモリを介さない疎結合方式であってもよい。
【００４４】
本実施形態のコプロセッサユニット２４は、ＮＰＵ１０と同様、通信処理に特化したアーキテクチャを備えている。コプロセッサユニット２４の内部には図４に示すように４つのコプロセッサ２４Ａ〜２４Ｄが存在し、コプロセッサユニット２４の内部だけでも、一種のマルチプロセッサシステムを構成しているとみることができる。コプロセッサユニット２４内のコプロセッサの数は必要に応じて、４つより少なくしてもよく、多くしてもよい。
【００４５】
コプロセッサユニット２４内のコプロセッサ２４Ａ〜２４Ｄのあいだでプロセッサ間通信を行う必要がある場合には、その通信方式として、前記密結合方式または疎結合方式のいずれを利用してもかまわない。
【００４６】
コプロセッサ２４Ａ〜２４Ｄではコプロセッサ２４Ａ〜２４Ｄ相互間で同時並列的に処理を実行することができるだけでなく、プロセッサユニット２０との関係でも、同時並列的に処理を実行することが可能である。
【００４７】
コプロセッサユニット内のコプロセッサ２４Ａ〜２４Ｄ相互間、コプロセッサ２４Ａ〜２４Ｄとプロセッサユニット２０のあいだ、および各ＮＰＵ１０〜１３相互間で、どのように役割分担させるかについては、様々な方法が使用可能であるが、プロセッサ間通信全体の高速化のためには、発生頻度の高い処理はコプロセッサ２４Ａ〜２４Ｄ側で分担し、発生頻度の低い処理をプロセッサユニット２０で分担することが望ましい。
【００４８】
また、本実施形態でも図３と同様にＮＰＵ内部バスＢ６の帯域は狭いままであるから、プロセッサユニット２０が行う処理の結果をコプロセッサ２４Ａ〜２４Ｄが受け取る必要が生じたり、プロセッサユニット２０が処理の結果を他のＮＰＵ（例えば、１１）のプロセッサユニット（例えば、２１）に伝送する必要が生じたりすると、その伝送のための時間がボトルネックとなって、プロセッサ間通信全体が低速化し、通信機器３０全体の処理速度が低下するため、このような必要性が生じないような（あるいは、完全に生じないようにすることができない場合でも、その頻度が低くなるような）役割分担を設定することが望ましい。
【００４９】
なお、低い頻度で、プロセッサユニット２０が自身の処理の結果を、他のＮＰＵのプロセッサユニット（例えば、２１）やコプロセッサユニット（例えば、２５）に伝送する必要がある場合、前記制御バスＢ１を利用して伝送する方法、
前記メモリデバイス３８（あるいは、メモリデバイス３０の一部の記憶領域）を共有メモリとして利用する方法なども使用可能であるが、ここでは、処理結果は、ＮＰＵ内部バスＢ６を経由してコプロセッサユニット２４へ伝送するものとする。
【００５０】
そのあとコプロセッサユニット２４は、当該処理結果に応じた回線データをＮＰＵインタフェース部３１を経由して回線統合部１６へ伝送するが、もし必要ならば、さらに他のＮＰＵ内のコプロセッサユニット（例えば、２５や２６など）へ伝送することもできる。
【００５１】
ただし、プロセッサ間通信の高速化のためには、このようなＮＰＵ内部バス（Ｂ６など）を経由する伝送の必要性が生じないことが最も望ましく、必要性が生じる場合でも、その頻度が低いことが望ましい点は、上述した通りである。
【００５２】
例えば、まず最初にコプロセッサユニット２４（コプロセッサ２４Ａ〜２４Ｄ）で処理し、そのあと必要に応じて別なＮＰＵのコプロセッサユニット（例えば、２５）で処理し、コプロセッサユニット２４で処理できず、なおかつ、別なＮＰＵのコプロセッサユニットによっても処理しきれないことが予測できる場合にのみ、その回線データ（パケット）を、コプロセッサユニット２４から前記ＮＰＵ内部バスＢ６を介してプロセッサユニット２０に伝送するようにすれば、ＮＰＵ内部バスを介した伝送の頻度を低下できる。
【００５３】
このようなパケットの例としては、通信開始時の方路未決定のパケットや、エラー処理が必要なパケット、あるいは、通信機器３０から所定の高付加価値サービスを提供する必要のあるパケットなどがあげられる。
【００５４】
プロセッサユニット２０は、コプロセッサユニット２４内部に比較してより大容量のメモリ空間と、より複雑な演算機能を利用しパケットの高度処理を実施する。
【００５５】
なお、同一のコプロセッサユニット２４内のコプロセッサ２４Ａ〜２４Ｄのあいだの役割分担については、コプロセッサユニット２４とプロセッサユニット２０のあいだの役割分担に成立する以上のような制約はないため、比較的、自由に決定することが可能である。
【００５６】
各コプロセッサ２４Ａ〜２４Ｄの機能（役割）はそのファームウエア（通信処理に特化したファームウエア）によって規定されるため、各コプロセッサ２４Ａ〜２４Ｄが分担する可能性のある役割の内容は、通信機器３０の起動時にプロセッサユニット２０から各コプロセッサ２４Ａ〜２４Ｄにダウンロードされる当該ファームウエアの内容に影響する。
【００５７】
また、ＮＰＵ１０〜１３相互間の役割分担についても、このコプロセッサ２４〜２４Ｄ相互間の役割分担と同様に、比較的自由に設定することができるものと考えられるが、ここでは、４つのＮＰＵ１０〜１３を、１０と１１の対、および１２と１３の対の２組（二対）に分け、対を成すＮＰＵのあいだに比較的明確な役割分担を設けるものとする。
【００５８】
すなわち、ＮＰＵ１０を前段ＮＰＵとし、ＮＰＵ１１を前段ＮＰＵ１０に対する後段ＮＰＵとするとともに、ＮＰＵ１２をもう一つの前段ＮＰＵとし、ＮＰＵ１３を前段ＮＰＵ１２に対する後段ＮＰＵとする。
【００５９】
前段ＮＰＵは一連の処理のうち前半部分を担当し、その後段ＮＰＵは後半部分を担当する。このような役割分担を設定する場合、多くの処理は、前段ＮＰＵ１０の処理とそのあと、その処理結果（制御情報として表現される）をプロセッサ間通信によって引き継ぐことによって実行される後段ＮＰＵ１１の処理によって完了する。
【００６０】
同様に、多くの処理が、前段ＮＰＵ１２の処理とそのあと、その処理結果をプロセッサ間通信によって引き継ぐことによって実行される後段ＮＰＵ１３の処理によって完了する。もちろん、前段ＮＰＵ１０または１２の処理だけで完了する処理があってもかまわないし、後段ＮＰＵによる後半部分の処理が進行中であっても、同時並列的に、前段ＮＰＵは次の処理の前半部分を実行可能である。
【００６１】
この前段、後段の役割分担の影響が１つのＮＰＵ内のどの構成要素までおよぶかについては、様々な変形が可能であるが、ここでは、コプロセッサユニット（例えば、２４，２５など）までとする。
【００６２】
これにより、発生頻度の高い処理は、かなり複雑な処理であっても、プロセッサユニットの機能を用いることなく、コプロセッサユニットの機能だけで処理できるようになる。複数のＮＰＵ（例えば、１０と１１）にまたがる、より多くのコプロセッサユニット（例えば、２４と２５）が処理に関与することによって、より複雑な処理をより高速に実行することができる可能性が高まるからである。
【００６３】
換言するなら、前段、後段の役割分担の影響がコプロセッサユニットまでしかおよばないものとし、プロセッサユニット（例えば、２０と２１）を除外することによって、帯域の狭い前記ＮＰＵ内部バス（例えば、Ｂ６とＢ７）を経由しなければ通信できないプロセッサユニット（例えば、２０と２１）の機能の利用頻度を低減でき、複雑な処理の高速実行が可能となる。
【００６４】
図４に示した高速バスインタフェース部３６は、コプロセッサユニット２４中の各コプロセッサ２４Ａ〜２４Ｄが高速バスＩ１（内部インタフェースＩ１に対応）と通信するためのインタフェースである。
【００６５】
これに対し、低速バスインタフェース部３５は、前記プロセッサユニット２０が、主として前記初期状態においてプロセッサ間通信に使用する低速バスＢ２（制御バスＢ２）と通信するためのインタフェースである。
【００６６】
ここで、内部インタフェースＩ１を高速バスと呼び、制御バスＢ２を低速バスと呼んでいるのは、内部インタフェースＩ１は上述した回線データから構成される大量の通信トラフィックをリアルタイムに伝送し、処理するための豊富な帯域資源の一部であるから、広帯域で高速なバスとされる必然性があり、その一方で、制御バスＢ２（Ｂ１）のほうは、このような事情がないため、帯域資源を節約して狭帯域で低速なバスとされる必然性がある。制御バスＢ２の帯域幅は、例えば、前記ＮＰＵ内部バスＢ６と同程度かそれ以下に設計するのが合理的であるといえる。
【００６７】
もちろん、現実の一般的な通信機器の実装でも、制御バスＢ１は前記ＰＣＩバスなどを利用して低速とされ、内部インタフェースＩ１（Ｉ２〜Ｉ４）は高速とされる。回線統合部１６の構成要素と各ＮＰＵ１０〜１３を物理的に１対１接続として、制御バスＢ１で行われるような通信路（伝送媒体）へのアクセス制御（アクセス権の調停）を不要とすることも、内部インタフェースＩ１の高速化に寄与している。
【００６８】
なお、通信機器３０が例えばルータ装置であるものとすると、図１に示す通信路終端部１７，１８はそれぞれ接続されている外部通信路Ｐ１、Ｐ２を終端し、各外部通信路Ｐ１，Ｐ２に関し、ＯＳＩ参照モデルのデータリンク層以下の相違を吸収するから、例えば、伝送媒体として電気を利用するか光を利用するか、有線伝送路を用いるか無線伝送路を用いるか、物理的な伝送レートが何ｂｐｓであるかなどの相違は、この通信路終端部１７，１８で吸収され、当該通信機器３０内のその他の構成要素（例えば、回線統合部１６、ＮＰＵインタフェース部１４，１５，ＮＰＵ１０〜１３など）は、これらの相違に依存することなく構成できる。
【００６９】
次に、前記ＮＰＵインタフェース部３１、３２の内部構成例について説明する。ＮＰＵインタフェース部３１の内部構成例は図６に示すとおりである。　ＮＰＵインタフェース部３１と３２の内部構成は実質的に同じであってよいが、図６にはＮＰＵインタフェース部３１の内部構成例を示している。図６の構成は、プロセッサ間通信にのみ利用してもよく、プロセッサ間通信に加えて、回線統合部１６と各ＮＰＵ１０〜１３のあいだの回線データの通信に活用してもよい。
【００７０】
（Ａ−１−２）ＮＰＵインタフェース部の内部構成例
図６において、当該ＮＰＵインタフェース部３１は、ＮＰＵインタフェース４０，４１と、バッファユニット４２〜４５と、セル処理部４６，４７と、フォーマット整形部４８，４９とを備えている。
【００７１】
このうちＮＰＵインタフェース４０は、当該ＮＰＵインタフェース部３１のＮＰＵ１０に対する通信インタフェースであり、ＮＰＵインタフェース４１は、ＮＰＵ１１に対する通信インタフェースである。
【００７２】
バッファユニット４２〜４５はＮＰＵインタフェース部３１で使用する単位データを一時的に蓄積するバッファ（ＦＩＦＯ（先入れ先出し）タイプのメモリ）４２Ｂ〜４５Ｂを備えた部分である。
【００７３】
バッファ４２Ｂ〜４５Ｂのそれぞれに対しては、前記単位データを各バッファに書き込むための書き込み部４２Ａ〜４５Ａと、書き込まれた単位データを書き込み順に読み出すための読み出し部４２Ｃ〜４５Ｃが設けられている。
【００７４】
単位データとしてどのような論理構成のデータを使用するかは自由であり、例えば、外部の伝送路Ｐ１、Ｐ２などで使用されている回線データ（ここでは、ＩＰパケットとする）をそのまま利用してもよいが、当該ＩＰパケットのデータ部分（ペイロード部分）だけを抽出して適当なサイズに分割し装置内専用の単位データを再構成したり、必要に応じて、ＩＰヘッダ中の情報の一部も当該装置内専用の単位データに収容するようにするのが効率的である。
【００７５】
このような単位データの再構成は、前記フォーマット整形部４８，４９で実行できるほか、バッファ４２Ｂ〜４５Ｂに対する書き込み時または読み出し時に実行することができる。
【００７６】
例えば、バッファ４２Ｂから単位データを読み出すとき（または、バッファ４２Ｂに書き込むとき）には、ＮＰＵ１０内の処理に適合した単位データを再構成し、反対に、バッファ４３Ｂに書き込むとき（または、バッファ４３Ｂから読み出すとき）には、伝送に適合した単位データを再構成するようにすれば、伝送の観点でも、ＮＰＵ１０内の処理の観点でも効率的な構成となる。
【００７７】
実際の通信機器の内部において、どのようなフォーマットの単位データが伝送に適合し、どのようなフォーマットの単位データが処理に適合するかは、伝送系や処理系の仕様や実装に依存し、両単位データを同じフォーマットとしてもよい場合もあり得るが、ここでは、伝送に適合した単位データとして所定の装置内セルを仮定し、ＮＰＵ１０内の処理に適合した単位データとして所定の装置内パケットを仮定する。
【００７８】
通信機器３０がＩＰパケットを中継処理するルータ装置である場合、前記コプロセッサユニット２４内の各コプロセッサ２４Ａ〜２４Ｄは、処理頻度の高いＩＰパケットのフォーマットを処理するのに適合したものとするのが効率的であるから、この装置内パケットにも、ＩＰパケットに対応したフォーマットを持たせるのが望ましい。
【００７９】
ただし本実施形態では、プロセッサ間通信用の装置内セルの伝送を効率的に行うため、少なくとも当該装置内セルは、図７、図８に示すように、ＮＰＵインタフェース部（例えば、３１）内で処理されるヘッダ部を備えている必要がある。
【００８０】
図７に示すように、当該装置内セルＣＬ１は大きくヘッダ領域ＨＤ１と、ユーザデータ領域ＵＤ１に分かれ、ヘッダ領域ＨＤ１はさらに５つのフィールドＨ１〜Ｈ５に細分される。
【００８１】
フィールドＨ１はトークンユーザデータ表示フィールドで、このフィールドＨ１に収容された値に応じて、当該装置内セルＣＬ１が、ユーザデータを収容したユーザセルであるか、その装置内セルを獲得することが送信権の獲得を意味するトークンセルであるかが決まる。
【００８２】
本実施形態では、図６に示した構成要素４８，４６，４３Ｄ、４７，４５Ｄ、４９およびこれらの構成要素に対応するＮＰＵインタフェース部３２内の各構成要素（点線で示す）によってリング型のトポロジを持つ内部通信路（リング型内部通信路）が構成されるため、２つ以上のＮＰＵから送信された制御情報に由来する２つ以上の装置内セルが同時に当該リング型内部通信路内を伝送されると、コリジョンによって信号レベルで情報が破壊され、正常な通信が行えない。したがって、バッファユニット内のセレクタ（例えば、４３Ｄ、４５Ｄ）が当該トークンセルＣＬ１を獲得したとき、そのセレクタに対応する１つのＮＰＵだけが制御情報（装置内パケットに収容して送信される）の送信権を獲得することになる。
【００８３】
図示の例では、セレクタ４３ＤはＮＰＵ１０に対応し、セレクタ４５ＤはＮＰＵ１１に対応する。このため、例えば、セレクタ４３ＤがトークンセルＣＬ１を獲得したときには、読み出し部４３Ｃを介して、ＮＰＵ１０が送信した制御情報を収容している装置内セル（前記装置内パケットから再構成された単位データ）ＣＬ１をバッファ４３Ｂから読み出して、前記リング型内部通信路に送出することになる。
【００８４】
なお、当該リング型内部通信路をプロセッサ間通信にのみ使用するのならば、トークンセルＣＬ１の確保はセレクタ（例えば、４３Ｄ）で行うだけでよい（その場合、前記内部通信路ＣＴ１〜ＣＴ４に相当する通信路は別個に設ける必要がある）が、もしも回線統合部１６と各ＮＰＵ１０〜１３のあいだの回線データ（ＩＰパケットなど）の通信にも当該リング型内部通信路を活用する場合には、ＩＰパケットを当該リング型内部通信路に伝送させる際に、該当する構成要素（例えば、４８など）によるトークンセルＣＬ１の確保が必要になる。
【００８５】
このように、リング型内部通信路に関しては、当該トークンセルによるアクセス制御が行われるが、ＮＰＵ（例えば、１０）自体は、バッファ（例えば、４３Ｂ）の記憶容量が許す限り、送信権の有無と無関係に制御情報を送信することが可能で、送信権の獲得を待つことなく、処理を進めることができる。
【００８６】
トークンセルＣＬ１はその性質上、通信機器３０の動作中は、リング型内部通信路内のいずれかの場所に、常時、ただ１つだけ存在し、送信権の委譲に応じて当該リング型内部通信路を巡回される必要がある。通信機器３０の起動直後に当該トークンセルＣＬ１を生成し、送信してこの巡回を開始させるのは、当該リング型内部通信路上のいずれの構成要素であってもかまわないが、一例としては、前記セレクタ４３Ｄであってもよい。
【００８７】
当該装置内セルＣＬ１がトークンセルであるとき、トークンユーザデータ表示フィールドＨ１に「１」を充填し、ユーザセルであるときには「０」を充填するものとすると、図８の装置内セルＣＬ２はユーザセルとなる。
【００８８】
なお、ユーザセルとは、ユーザデータ領域ＵＤ１に、前記プロセッサ間通信のための制御情報（すなわち、ユーザデータ）を収容し、その制御情報を目的のＮＰＵまで届けるためのセルである。
【００８９】
図７に示した前記フィールドＨ２はリザーブフィールドで、フィールドＨ３はビットイネーブルフィールドで、フィールドＨ４は宛先フィールドで、フィールドＨ５はループ阻止フィールドである。
【００９０】
ビットイネーブルフィールドＨ３の値によって、ユーザデータ領域ユーザＤ１のどこまでが有効なユーザデータ（有効な制御情報）であるかを示すことができ、宛先フィールドＨ４の値によって、当該装置内セルＣＬ１を届けたい宛先のＮＰＵを指定することができる。指定する宛先のＮＰＵの数は１つであってもよく、複数であってもよい。通信機器３０内の全ＮＰＵを宛先として指定することもできる。
【００９１】
汎用バスでは、同時に通信できるＮＰＵは１つに限られることが多いため、宛先として複数のＮＰＵを指定できれば、汎用バスを用いるよりも通信の効率が高まる。
【００９２】
図８の例では、ビットイネーブルフィールドＨ３の値として「００１１」（＝３Ｄ）が格納されているため、装置内セルＣＬ２はユーザデータ領域のうち例えば、下位８（＝２３）バイトのみが有効である。
【００９３】
また、本実施形態ではプロセッサ間通信のために、各ＮＰＵ１０〜１３を予め設定したＮＰＵ番号によって識別するものとし、当該宛先フィールドＨ４の値なども、当該ＮＰＵ番号をもとに設定する。
【００９４】
例えば、ＮＰＵ番号として１０進数表示（Ｄ）で１，２，４，８を用い、１ＤをＮＰＵ１０のＮＰＵ番号とし、２ＤをＮＰＵ１１のＮＰＵ番号とし、４ＤをＮＰＵ１２のＮＰＵ番号とし、８ＤをＮＰＵ１３のＮＰＵ番号とし、宛先フィールドＨ４に４ビットを設ければ、２進数表示（Ｂ）の「０００１」（０００１Ｂ）でＮＰＵ１０だけを宛先とし、「００１１」でＮＰＵ１０とＮＰＵ１１を宛先とし、「１０１０」でＮＰＵ１１とＮＰＵ１３を宛先とすること等が可能になる。
【００９５】
図８の例では、宛先フィールドの値として当該「００１１」が充填されているため、この装置内セルＣＬ２の宛先は、ＮＰＵ１０とＮＰＵ１１であることがわかる。
【００９６】
このように宛先フィールドＨ４に複数のＮＰＵ番号を指定できると、同一の制御情報（初期化テーブルなど）を一括して大量に送信する場合に効率的である。
【００９７】
前記ループ阻止フィールドＨ５は、制御情報の送信元のＮＰＵのＮＰＵ番号を充填するフィールドである。このフィールドの値をリング型内部通信路上の構成要素（例えば、セル処理部４６など）が監視し、送信元が自身に対応するＮＰＵ（セル処理部４６の場合にはＮＰＵ１０）である装置内セルＣＬ１は、廃棄する。
【００９８】
この廃棄により、リング型内部通信路内を当該装置内セルＣＬ１が際限なく巡回することで、帯域幅を無駄に消費することを簡単かつ確実に防止することが可能になる。
【００９９】
図８の例では、ループ阻止フィールドＨ５の値としてＮＰＵ１２のＮＰＵ番号「０１００」が充填されているため、ＮＰＵ１２に対応するセル処理部（図示せず）において、当該装置内セルＣＬ２が廃棄されることになる。
【０１００】
なお、ユーザデータ領域ＵＤ１は、上述したように、制御情報を収容するための領域である。この領域は、制御情報のサイズが決まっている場合などには固定長とするのが効率的であるが、ここでは、柔軟性を高めるために可変長であるものとする。
【０１０１】
図６から明らかなように、ＮＰＵインタフェース部３１内のバッファユニット４２〜４５は、主としてＮＰＵ１０のために機能する４２，４３と、主としてＮＰＵ１１のために機能する４４，４５に分けることができる。
【０１０２】
バッファユニット４４は４２に対応する構成であり、バッファユニット４５は４３に対応する構成である。
【０１０３】
バッファユニット４２と４３の相違、および４４と４５の相違は、装置内セルおよび装置内パケットを伝送する方向を除くと、セレクタ４３Ｄ、４５Ｄの有無だけである。セレクタ４３Ｄと４５Ｄは実質的に同じ機能を持つ。
【０１０４】
このうち例えばセレクタ４３Ｄは上述したようにトークンセルＣＬ１を確保すると、その時点でバッファ４３Ｂに書き込まれている全ての装置内パケットを読み出し部４３Ｃに読み出させて（読み出し時に、装置内パケットは装置内セルにフォーマット変換される）、リング型内部通信路へ送出し、すべての装置内パケットの送出が終了すると、送信権を他のセレクタ（他のＮＰＵ）に委譲するため、トークンセルＣＬ１をリング型内部通信路へ送出する。
【０１０５】
もちろん、バッファ４３Ｂ内に装置内パケットが書き込まれていなければ、送信権を確保する必要もないので、セレクタ４３Ｄは受信したトークンセルＣＬ１を確保することなくそのままリング型内部通信路へ送出することになる。
【０１０６】
リング型内部通信路における伝送方向は、図６上で右回り（時計回り）に設定されているため、セレクタ４３Ｄから送出されたトークンセルＣＬ１を最初に受信するセレクタはセレクタ４５Ｄである。
【０１０７】
セレクタ４５Ｄも４３Ｄと同じ構成で、同じ動作を行うから、基本的に、送信権は、リング型内部通信路内を、右回りに委譲されていく。
【０１０８】
また、前記セル処理部４６はリング型内部通信路から受信した装置内セルＣＬ１に関し、宛先フィールドＨ４の値とループ阻止フィールドＨ５の値に対応した処理を実行する機能を持つ部分である。
【０１０９】
例えば、宛先フィールドＨ４の値がＮＰＵ１０のＮＰＵ番号だけを含んでいる場合、バッファ４２Ｂに記憶容量の余裕があれば、バッファユニット４２へ当該装置内セルＣＬ１を送信するだけで、バッファユニット４３（セレクタ４３Ｄ）へは送信しない。装置内セルＣＬ１を、バッファユニット４２へ送信するのは、プロセッサ間通信の宛先であるＮＰＵ１０に、制御情報の内容を伝達するためであり、バッファユニット４３へ送信しないのは、リング型内部通信路の帯域を節約するためである。
【０１１０】
宛先フィールドＨ４の値が複数のＮＰＵのＮＰＵ番号を含んでいる場合に当該セル処理部４６が実行する処理としては、様々なものが考えられる。
【０１１１】
例えば、宛先フィールドＨ４の値のうち自ＮＰＵ１０を指定するＮＰＵ番号以外のＮＰＵ番号が、リング型内部通信路上で自身の直前（左隣）に位置するＮＰＵ（ＮＰＵ１０にとってはＮＰＵ１３）を指定するＮＰＵ番号だけである場合には、リング型内部通信路の帯域節約を重視してバッファユニット４３へは送信しないようにしてもよいが、自ＮＰＵ（セル処理部４６にとってはＮＰＵ１０）のＮＰＵ番号だけを当該宛先フィールドＨ４から削除した上でリング型内部通信路に送出するようにするとよい。
【０１１２】
例えば、宛先フィールドＨ４の値がＮＰＵ１０とＮＰＵ１１を宛先とする上述した「００１１」（００１１Ｂ）である場合には、当該００１１Ｂを００１０Ｂに変更（最下位ビットの「１」を削除）した上で、その装置内セルＣＬ１をリング型内部通信路に送出するのである。
【０１１３】
セル処理部４６はバッファ４２Ｂの記憶容量に余裕がなければ自ＮＰＵ１０宛ての装置内セルＣＬ１を受信したとしてもそれをバッファ４２Ｂに書き込むことはできないが、リング型内部通信路上の各セル処理部（例えば、４６，４７など）がこの動作を行えば、リング型内部通信路を巡回的に伝送されている装置内セルＣＬ１を、バッファ４２Ｂに余裕ができたタイミングで、バッファ４２Ｂに書き込むことができる。
【０１１４】
なお、装置内セルＣＬ１のトークンユーザデータ表示フィールドＨ１に充填されている値が「１」で、当該ＣＬ１がトークンセルである場合には、セル処理部４６は、その他のフィールドＨ２〜Ｈ３などを検査することなくそのまま当該トークンセルＣＬ１を通過させるだけでよい。
【０１１５】
トークンセルＣＬ１の場合、フィールドＨ２〜Ｈ３に有効な値を充填する必要はない。
【０１１６】
フォーマット整形部４８は、上述した内部インタフェースＩ９の一部であるＩ９Ａに接続された部分で、当該ＮＰＵインタフェース部３１の外部にあるＮＰＵインタフェース部３２から到来した装置内セルのフォーマットをＮＰＵインタフェース部３１内のフォーマットに適合するように整形する。
【０１１７】
同様に、フォーマット整形部４９は内部インタフェースＩ９の一部であるＩ９Ｂに接続された部分で、当該ＮＰＵインタフェース部３１内に適合した装置内セルのフォーマットを、ＮＰＵインタフェース部３２内に適合したフォーマットに変換することを支援するための整形処理を実行する。ＮＰＵインタフェース部３２内にも同様なフォーマット整形部が設けられるため、必要に応じて、フォーマット整形部４８または４９のいずれか一方は省略するようにしてもよい。
【０１１８】
また、本実施形態のプロセッサ間通信は、同一の通信機器３０の内部に限って実行されるプロセッサ間通信であるから、実装にも依存するが、ＮＰＵインタフェース部３１内と３２内で同じフォーマットの装置内セルを用いることも可能であり、その場合にはフォーマット整形部４８，４９のすべてを省略可能である。
【０１１９】
なお、図６の構成を、プロセッサ間通信だけでなく、回線統合部１６と各ＮＰＵ１０〜１３のあいだの回線データの通信にも利用する場合には、回線統合部１６からＮＰＵ（例えば、１０）へ供給される回線データとしてのＩＰパケットを当該フォーマット整形部（４８など）によって装置内セルに変換し、プロセッサ間通信のための装置内セルとともにリング型内部通信路上を伝送させるようにしてもよい。
【０１２０】
この場合、ＮＰＵ（例えば、１０）から回線統合部１６へ供給される回線データは、当該フォーマット整形部（４８など）によって装置内セルＣＬ１からＩＰパケットのフォーマットへ変換される。この場合、図２に示した内部通信路ＣＴ１〜ＣＴ４も、当該リング型内部通信路を介して設定されることになる。
【０１２１】
ただし図６の構成をプロセッサ間通信にのみ利用する場合には、フォーマット整形部（４８など）はこのような変換を行う必要はなく、図２に示した内部通信路ＣＴ１〜ＣＴ４は、リング型内部通信路とは別個に設定されることになる。
【０１２２】
以下、上記のような構成を有する本実施形態の動作について説明する。
【０１２３】
（Ａ−２）第１の実施形態の動作
図１に示す通信機器３０が起動されると、初期状態において、ＮＰＵ１０〜１３内の各プロセッサユニット２０〜２３が前記制御バスＢ１を介してプロセッサ間通信を行う。
【０１２４】
このときのプロセッサ間通信によって伝送される制御情報には様々なものがあり得るが、上述したＮＰＵ１０〜１３間の役割分担を指定する制御情報や各種の設定情報も含まれていてよい。また、制御バスＢ１としてＰＣＩバスなどを用いる場合、アクセス権確保のオーバーヘッドが小さくないため、一度、制御バスＢ１に対するアクセス権を確保したら、各ＮＰＵ１０〜１３は、できるだけ大量の設定情報を一括して転送するようにするとよい。
【０１２５】
一方、この初期状態において、ＮＰＵインタフェース部３１，３２側では、上述した内部通信路ＣＴ１〜ＣＴ４のほか、図５に示す内部通信路ＣＴ５〜ＣＴ１０の設定を行う。内部通信路ＣＴ１〜ＣＴ４が、回線統合部１６と各ＮＰＵ１０〜１３のあいだでＩＰパケットなどの回線データを伝送するための通信路であるのに対し、内部通信路ＣＴ５〜ＣＴ１０は、プロセッサ間通信のための通信路である。したがって、当該内部通信路ＣＴ５〜ＣＴ１０は、設定される場合、必ず前記リング型内部通信路を経由して設定されることになる。
【０１２６】
リング型内部通信路を介したプロセッサ間通信は、前記装置内セルＣＬ１を用いて行われるから、具体的な通信相手の特定は、前記装置内セルＣＬの宛先フィールドＨ４に充填する値に応じて動的に行われるが、この内部通信路ＣＴ５〜ＣＴ１０の設定は、宛先フィールドＨ４に設定可能な値の範囲を予備的に確定する操作であってよい。
【０１２７】
なお、通信路ＣＴ１〜ＣＴ４をリング型内部通信路を経由して設定する場合には、回線統合部１６と各ＮＰＵ１０〜１３間の通信路も当該プロセッサ間通信と同様に、装置内セルＣＬ１を用いて行われ、通信相手も、この操作によって予備的に確定される。
【０１２８】
図示してはいないが、回線統合部１６は、ＮＰＵ１０に対向する構成要素、
ＮＰＵ１１に対向する構成要素、ＮＰＵ１２に対向する構成要素、および、ＮＰＵ１３に対向する構成要素として、それぞれ、少なくとも論理的に別個の（通常は、物理的にも別個の）実体を備えているため、通信路ＣＴ１〜ＣＴ４はその構成要素と各ＮＰＵ１０〜１３のあいだに、１対１に設定される。
【０１２９】
図５上は、各ＮＰＵに４つずつ通信路が接続されている（例えば、ＮＰＵ１０には、ＣＴ１，ＣＴ５，ＣＴ７，ＣＴ１０が接続されている）が、ＮＰＵ１０〜１３内のコプロセッサユニット２４〜２７からみると、自身が関係する各通信路（例えば、ＮＰＵ１０内のコプロセッサユニット２４にとってはＣＴ１，ＣＴ５，ＣＴ７，ＣＴ１０）の論理的なポートおよび物理的なポートの数は、例えば、１つ（あるいは、２つ程度）に集約することが可能である。
【０１３０】
内部通信路ＣＴ５〜ＣＴ１０のうち、ＣＴ５とＣＴ６は、上述した前段、後段の役割分担に応じて各コプロセッサユニットのあいだの制御情報の伝送に使用される通信路である。ＣＴ５は、２４と２５のあいだの制御情報の伝送に使用され、ＣＴ６は２６と２７のあいだの制御情報の伝送に使用される。
【０１３１】
このため、前段、後段の役割分担を行う本実施形態では必ず当該通信路ＣＴ５とＣＴ６は設定する。
【０１３２】
その他の通信路ＣＴ８〜ＣＴ１０を設定するか否かは、前記役割分担の状況などに依存して変動する。
【０１３３】
例えば、通信路ＣＴ９はＮＰＵ１１内のプロセッサユニット２１またはコプロセッサユニット２５と、ＮＰＵ１２内のプロセッサユニット２２またはコプロセッサユニット２６のあいだのプロセッサ間通信に使用される通信路であるから、そのようなプロセッサ間通信を行う必要がない場合には通信路ＣＴ９の設定は不要である。
【０１３４】
通信路ＣＴ１０に関してもこれと同様である。
【０１３５】
なお、通信路ＣＴ７およびＣＴ８の意味は、当該通信路ＣＴ９，ＣＴ１０とは少し異なる。
【０１３６】
例えば、通信路ＣＴ８は、すでにコプロセッサユニット２４，２５間に前記通信路ＣＴ５が設定されているＮＰＵ１０と１１のあいだに設定される通信路であり、コプロセッサユニット２４、２５間のプロセッサ間通信以外に使用され得る。したがって、ＣＴ７を使用するのは、例えば、プロセッサユニット２０とプロセッサユニット２１間のプロセッサ間通信、プロセッサユニット２０とコプロセッサユニット２５間のプロセッサ間通信、コプロセッサユニット２４とプロセッサユニット２１間のプロセッサ間通信である。
【０１３７】
このようなプロセッサ間通信に前記通信路ＣＴ５と別個の当該通信路ＣＴ７を設定する必要があるか否かは、コプロセッサユニット（２４など）の内部処理（ファームウエアの内容など）に依存する問題である。したがって、コプロセッサユニット（２４など）の内部処理によっては、前記通信路ＣＴ５を用いて、プロセッサユニット２０とプロセッサユニット２１間のプロセッサ間通信、プロセッサユニット２０とコプロセッサユニット２５間のプロセッサ間通信、コプロセッサユニット２４とプロセッサユニット２１間のプロセッサ間通信を行うことも可能である。その場合はもちろん、当該通信路ＣＴ７の設定は省略できる。
【０１３８】
通信路ＣＴ８についてもこれと同様である。
【０１３９】
図５に示すような通信路ＣＴ１〜ＣＴ１０が設定され、初期状態が終了したものとすると、前記外部通信路Ｐ１、Ｐ２から供給された回線データが、前記通信路ＣＴ１〜ＣＴ４を介して、各ＮＰＵ１０〜１３に供給される。
【０１４０】
いずれの回線データをいずれのＮＰＵに供給するかは、直接的には、回線統合部１６が決定するが、その決定は、前記通信路ＣＴ１〜ＣＴ４をどのように設定するかによってＮＰＵ１０〜１３側から制御できる。
【０１４１】
また、図示の例では、前段ＮＰＵである１０と１２には、回線統合部１６から回線データを供給し、反対に、後段ＮＰＵである１１と１３からは回線データが回線統合部１６へ供給されている。
【０１４２】
通信路ＣＴ１，ＣＴ３を介して回線データを受け取る各ＮＰＵ１０、１２内で最初に当該回線データを処理するのは、前記コプロセッサユニット２４、２６である。
【０１４３】
処理の内容によっては上述したように、この前段ＮＰＵ１０，１２内のコプロセッサユニット２４，２６だけで処理が完了するものがあってもかまわない。
【０１４４】
コプロセッサユニット２４、２６は自身だけで処理を完了できない場合、通常は、通信路ＣＴ５，ＣＴ６を介したプロセッサ間通信で制御情報を伝達することにより、その処理の後半部分を後段ＮＰＵ１１，１３内のコプロセッサユニット２５，２７に委ねる。
【０１４５】
各後段ＮＰＵ１１，１３内のコプロセッサユニット２５，２７は、処理が完了すると、処理結果に応じた回線データを前記通信路ＣＴ２，ＣＴ４を介して回線統合部１６へ送信する。
【０１４６】
この回線データは、多くの場合、前記通信路終端部１７，１８を介して外部通信路Ｐ１、Ｐ２へ送出されるものであるが、必要ならば、回線統合部１６や通信路終端部１７，１８の動作状態を制御するものであってもよい。
【０１４７】
なお、前段ＮＰＵ１０，１２内のコプロセッサユニット２４，２６だけで処理が完了した場合であっても、処理結果に応じた回線データを回線統合部１６に送信するために後段ＮＰＵ１１，１３内のコプロセッサユニット２５，２７および通信路ＣＴ２，ＣＴ４の機能を利用することができる。
【０１４８】
このようなケースで、後段ＮＰＵ１１，１３内のコプロセッサユニット２５，２７および通信路ＣＴ２，ＣＴ４の機能を利用したくなければ、直接、前段ＮＰＵ１０，１２内のコプロセッサユニット２４，２６から回線統合部１６へ、処理結果に応じた回線データを送信するようにしてもよいことは当然である。前段ＮＰＵ１０，１２内のコプロセッサユニット２４，２６だけで完了する処理の比率が高い場合にはそのほうが効率的であるといえる。
【０１４９】
ただしその場合には、前段ＮＰＵ１０，１２から回線統合部１６へ向かう通信路（図示せず）を設定する必要がある。
【０１５０】
初期状態以降の通信機器３０の処理は、その大部分がこのように、ＮＰＵインタフェース部３１，３２を介した通信（プロセッサ間通信および回線データの通信）を利用して進行するから、各ＮＰＵ１０〜１３内のプロセッサユニット２０〜２３が動作することはほとんどなく、前記制御バスＢ１や、ＮＰＵ内部バスＢ６〜Ｂ９を介した通信が行われることもほとんどない。これにより、狭帯域のＮＰＵ内部バスＢ６〜Ｂ９の影響を排除して、高速なプロセッサ間通信が行われ、高速な処理が実行される。
【０１５１】
ただし必要な場合には、低頻度であれば、ＮＰＵ１０〜１３の内部で、初期状態以降に、例えば、前記制御バスＢ１やＮＰＵ内部バスＢ６〜Ｂ９を介した通信により、プロセッサユニット２０〜２３が動作することがあってもかまわない。
【０１５２】
例えば、プロセッサユニット２０〜２３が持つ大容量のメモリ空間と、より複雑な演算機能を必要とする処理（例えば、前記通信開始時の方路未決定のパケットや、エラー処理が必要なパケット、高付加価値サービスの提供など）を行う場合に、プロセッサユニット２０〜２３が動作し得る。
【０１５３】
（Ａ−２）第１の実施形態の効果
本実施形態によれば、帯域の狭いＮＰＵ内部バス（Ｂ６〜Ｂ９）を経由せず、豊富な帯域資源を持つＮＰＵインタフェース部（３１，３２）を活用してプロセッサ間通信を実行できるから、全体としてプロセッサ間通信の速度が速く、処理速度の速い通信機器（３０）を提供することが可能になる。
【０１５４】
しかも本実施形態では、既存のＮＰＵアーキテクチャをほとんど変更することなくこの効果を得られるため、実現性に優れている。
【０１５５】
例えば、ＮＰＵ内に狭帯域のＮＰＵ内部バスの残存を許す点や、コプロセッサのファームウエアから見た場合、回線データを受信、送信する通信路と、プロセッサ間通信のための制御情報（装置内パケット）を受信、送信する通信路は、物理的、論理的に同一の通信路とすることができる点などが、この実現性に寄与している。
【０１５６】
一例として、コプロセッサ（２４）のファームウエアからみると、自身が関係する各通信路（コプロセッサ２４の場合、ＣＴ１，ＣＴ５，ＣＴ７，ＣＴ１０）の論理的なポートの数を、例えば、１つ（あるいは、２つ程度）に集約することは容易であるから、当該ファームウエアの開発工数を削減することができる。特に、前記リング型内部通信路を回線データの伝送にも活用した場合には、集約の度合いをいっそう高めることが可能になる。
【０１５７】
また、これによって、コプロセッサ（例えば、２４）に搭載されるファームウエアを、全体として分岐の少ない小規模なプログラムとすることができれば、それを格納するＲＯＭやＥＥＰＲＯＭなどの記憶手段の記憶容量も削減することが可能になる。
【０１５８】
（Ｂ）第２の実施形態
以下では、本実施形態が第１の実施形態と相違する点についてのみ説明する。
【０１５９】
この相違点は、ＮＰＵインタフェース部の内部構成に関する部分に限られる。
【０１６０】
（Ｂ−１）第２の実施形態の構成および動作
したがって、図１に示す全体構成例はそのまま本実施形態の通信機器５０の全体構成例でもあり、ＮＰＵインタフェース部５１，５２以外の構成要素の構成および動作は第１の実施形態と同じであるから、その詳しい説明は省略する。
【０１６１】
本実施形態のＮＰＵインタフェース部５１の内部構成例は図９に示すとおりである。図９は、第１の実施形態の図６と同じ形式になっている。
【０１６２】
ＮＰＵインタフェース部５１と５２の内部構成は実質的に同じであってよいが、図９にはＮＰＵインタフェース部５１の内部構成例を示している。図９の構成は、プロセッサ間通信にのみ利用してもよく、プロセッサ間通信に加えて、回線統合部１６と各ＮＰＵ１０〜１３のあいだの回線データの通信に活用してもよい。
【０１６３】
（Ｂ−１−１）ＮＰＵインタフェース部の内部構成例
図９において、当該ＮＰＵインタフェース部５１は、ＮＰＵインタフェース４０，４１と、バッファユニット６２〜６５と、セル解析処理部６６，６７と、アクセス権管理部６８と、バス型内部通信路Ｂ１０〜Ｂ１４を備えている。
【０１６４】
このうち第１の実施形態の図６と同じ符号４０，４１を付与した構成要素と、対応する符号６２〜６７を付与した構成要素の機能は第１の実施形態と同じであるからその詳しい説明は省略する。
【０１６５】
なお、図９中、バッファユニット６２は前記４２に対応し、バッファユニット６３は前記４３に対応し、バッファユニット６４は前記４４に対応し、バッファユニット６５は前記４５に対応し、書き込み部６２Ａ〜６５Ａは前記４２Ａ〜４５Ａに対応し、バッファ６２Ｂ〜６５Ｂは前記４２Ｂ〜４５Ｂに対応し、読み出し部６２Ｃ〜６５Ｃは前記４２Ｃ〜４５Ｃに対応する。
【０１６６】
セル解析処理部６６と６７は同じ機能を有する。
【０１６７】
セル解析処理部６６（，６７）は、基本的に、前記セル処理部４６（，４７）とセレクタ４３Ｄ（、４５Ｄ）に対応する機能を持つ構成要素であるが、本実施形態の場合、内部通信路のトポロジが第１の実施形態のようなリング型ではなくバス型であるため、当該セル解析処理部６６，６７の機能も、セル処理部４６，４７やセレクタ４３Ｄ、４５Ｄと相違する。
【０１６８】
バス型の通信路も、前記コリジョンが発生すると正常な通信が行えない点ではリング型通信路と同じであるが、バス型通信路に送出された信号（ここでは、装置内セル）は、物理的には、バス上のすべての構成要素（ここでは、６６，６７などのすべてのセル処理解析部）にほぼ同時に受信されるため、上述したトークンセルの利用は不可能ではないとしても、次の受信先を逐一、明示的に指定する必要があるなど、親和性が低い。
【０１６９】
したがって本実施形態では、内部通信路Ｂ１０に対するアクセス制御をトークンを用いずに実行する。
【０１７０】
そのため、各セル処理解析部（例えば、６６）は、自ＮＰＵ（６６にとってはＮＰＵ１０）が送信した制御情報を収容した装置内セルＣＬ１をバッファ（例えば、６３Ｂ）から読み出してバス型内部通信路Ｂ１０に送出しようとする場合、アクセス権管理部６８にアクセス権の付与を要求する。
【０１７１】
アクセス権管理部６８は、ＮＰＵインタフェース部５２内のアクセス権管理部（図示せず）とも通信し、他のセル解析処理部（例えば、６７）からアクセス権付与の要求が出ていなければ直ちに、アクセス権を要求元の当該セル処理解析部６６に付与する。
【０１７２】
他のセル解析処理部からも同時にアクセス権付与の要求が出ている場合には、所定の調停アルゴリズムに基づいて、競合する要求のうち１つの要求を決定し、その要求の要求元であるセル処理解析部（例えば、６６）に対してアクセス権を付与する。
【０１７３】
要求の競合が生じた場合に利用される調停アルゴリズムには様々なものが使用可能であるが、一例として、４つのセル処理解析部（例えば、６６，６７など）に予め優先順位を付与しておき、その優先順位に応じた順番で、アクセス権を付与するようにしてもよい。
【０１７４】
これにより、同時にバス型内部通信路Ｂ１０に装置内セルＣＬ１を送信できるセル解析処理部は、ただ１つだけとなり、コリジョンの発生を防止できる。
【０１７５】
なお、本実施形態で利用される装置内セルＣＬ１の構成は基本的に第１の実施形態と同じであってよい。
【０１７６】
ただし、図７に示した前記ヘッダ領域ＨＤ１のうち、トークンユーザデータ表示フィールドＨ１は、本実施形態ではトークンセルを使用しないため不要である。
【０１７７】
また、ループ阻止フィールドＨ５も省略可能である。単純なバス型の通信路では無限ループは生じないからである。
【０１７８】
なお、プロセッサ間通信のための内部通信路Ｂ１０に本実施形態のようなバス型のトポロジを採用する場合、少なくともトポロジの観点で、前記制御バスＢ１を用いるプロセッサ間通信と差がなくなるが、それでも次のような理由によって、バス型内部通信路Ｂ１０を用いるほうが、制御バスＢ１を用いるよりも通信が速い。
【０１７９】
その理由の１つは、ＮＰＵ（例えば、１０）は、対応するセル解析処理部（例えば、６６）がアクセス権の付与を受けていない期間であっても、前記バッファ（例えば、６３Ｂ）の記憶容量が許す限り、新たな制御情報を収容した装置内パケットを送信し、処理を進めることができるからである。
【０１８０】
また、もう１つの理由は、狭帯域なＮＰＵ内部バス（例えば、Ｂ６）などを経由せずにプロセッサ間通信を行えるからである。通信の高速化に寄与する度合いは、通常、後者の理由のほうがはるかに大きいものと考えられる。
【０１８１】
なお、内部通信路の物理的なトポロジに関しては、上述したように、第１の実施形態がリング型であるのに対し、本実施形態はバス型であるが、図５に示す論理的な通信路（例えば、ＣＴ１〜ＣＴ１０）の設定に関しては、本実施形態でも第１の実施形態とまったく同様に行うことができることは当然である。
【０１８２】
（Ｂ−２）第２の実施形態の効果
本実施形態によれば、第１の実施形態の効果と同等な効果を得ることができる。
【０１８３】
加えて、本実施形態では、プロセッサ間通信のための内部通信路のトポロジを一般的なバス型としたため、内部通信路周辺の物理的な回路構成が容易である。
【０１８４】
（Ｃ）他の実施形態
上記第１、第２の実施形態では、宛先フィールドＨ４の値によって宛先のＮＰＵを指定できるものとしたが、必要に応じて、さらに詳細に、各ＮＰＵ内の特定のコプロセッサ（例えば、２４Ｄ）まで、当該宛先フィールドＨ４の値によって指定できるようにしてもよい。
【０１８５】
また、前記コプロセッサユニット内のコプロセッサ２４Ａ〜２４Ｄ相互間、コプロセッサ２４Ａ〜２４Ｄとプロセッサユニット２０のあいだ、および各ＮＰＵ１０〜１３相互間における役割分担は、固定的なものではなく、状況に応じて動的に変更することも可能である。例えば、１つのＮＰＵ（例えば、１０）に障害が発生した場合などには、そのＮＰＵ１０の役割を他のＮＰＵ（例えば、１１）が分担すること等も可能である。
【０１８６】
さらに、上記第１、第２の実施形態では、ＮＰＵインタフェース部３１，３２，５１，５２内でも回線データが用いられ得るものとしたが、必要ならば、回線統合部１６などにおいて回線データを装置内セルにフォーマット変換し、ＮＰＵインタフェース部やＮＰＵには、回線データがそのまま供給されることがないようにしてもよいことは当然である。
【０１８７】
なお、上記実施形態では、通信機器３０，５０の例として、ルータ装置やロードバランサをあげたが、本発明は、これら以外の通信機器にも適用可能である。
【０１８８】
以上の説明では主としてハードウエア的に本発明を実現したが、本発明はソフトウエア的に実現することも可能である。
【０１８９】
【発明の効果】
以上に説明したように、本発明によれば、実現性に優れ、プロセッサ間通信の通信速度が速いプロセッサ間通信システムを提供することが可能である。
【図面の簡単な説明】
【図１】第１の実施形態に係る通信機器の全体構成例を示す概略図である。
【図２】発明が解決しようとする課題を説明するための通信機器の内部構成例を示す概略図である。
【図３】発明が解決しようとする課題を説明するための通信機器の全体構成例を示す概略図である。
【図４】第１および第２の実施形態で使用するＮＰＵおよびその周辺の詳細構成例を示す概略図である。
【図５】第１の実施形態の通信機器の動作説明図である。
【図６】第１の実施形態で使用するＮＰＵインタフェース部およびその周辺の詳細構成例を示す概略図である。
【図７】第１の実施形態で使用する装置内セルの論理構成例を示す概略図である。
【図８】第１の実施形態で使用する装置内セルの論理構成例を示す概略図である。
【図９】第２の実施形態で使用するＮＰＵインタフェース部およびその周辺の詳細構成例を示す概略図である。
【符号の説明】
９、３０…通信機器、１０〜１３…ＮＰＵ、１４，１５、３１，３２，５１，５２…ＮＰＵインタフェース部、１６…回線統合部、１７，１８…通信路終端部、２０〜２３…プロセッサユニット、２４〜２７…コプロセッサユニット、２４Ａ〜２４Ｄ…コプロセッサ、４０，４１…ＮＰＵインタフェース、４２〜４５…バッファユニット、４２Ａ〜４５Ａ…書き込み部、４２Ｂ〜４５Ｂ…バッファ、４２Ｃ〜４５Ｃ…読み出し部、４６，４７…セル処理部、４３Ｄ、４５Ｄ…セレクタ、４８，４９…フォーマット整形部、６６，６７…セル処理解析部、６８…アクセス権管理部、Ｉ１〜Ｉ９…内部インタフェース、Ｂ１〜Ｂ５…制御バス、Ｂ６〜Ｂ９…ＮＰＵ内部バス、Ｂ１０〜Ｂ１４…バス型内部通信路。
【図１】
2004112220.tif 000003
【図２】
2004112220.tif 000004
【図３】
2004112220.tif 000005
【図４】
2004112220.tif 000006
【図５】
2004112220.tif 000007
【図６】
2004112220.tif 000008
【図７】
2004112220.tif 000009
【図８】
2004112220.tif 000010
【図９】
2004112220.tif 000011