(57)【特許請求の範囲】
【請求項１】
通信データストリーム上でリアルタイム性が要求される処理を行う第１のプロセッサと、
リアルタイム性が要求されない処理を行う第２のプロセッサを有し、
リアルタイム処理と、非リアルタイム処理を分担する際に、
リアルタイム処理側の前記第１のプロセッサで、
非リアルタイム処理側の前記第２のプロセッサに対する処理要求を生成し、前記第２のプロセッサで処理すべき通信データと、前記第１及び第２の双方のプロセッサで使用されるパラメータを前記通信データと対にして前記第２のプロセッサに転送し、
前記第２のプロセッサでは、転送された通信データとパラメータを参照して処理を行うように構成されたことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【請求項２】
請求項１において、
前記第１及び第２のプロセッサの間に通信データとパラメータの対を格納する処理待ちキューを備えたことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【請求項３】
請求項２において、
前記第１のプロセッサは、前記第２のプロセッサに処理を要求する処理要求信号を発生するように構成され、
前記第１のプロセッサが前記処理要求信号を発生する前に、先に前記通信データ及びパラメータを無条件に前記処理待ちキューへ転送し、
前記第１のプロセッサからの処理要求信号の有無によって前記処理待ちキューに転送済みのデータの有効／無効を、該処理待ちキューが自立的に表示可能としたことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【請求項４】
請求項１において、
前記第１のプロセッサを複数個設け、それらを直列に並べてパイプライン処理させ、且つ、前記複数の第１のプロセッサの各々が前記第２のプロセッサへ処理を要求可能であることを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【請求項５】
請求項１から４のいずれか１項において、更に
前記第１及び第２のプロセッサの間に前記第２のプロセッサの処理結果を格納するキューと、
ストリーム上の通信データを前記第２のプロセッサの処理結果に書き換える手段である選択回路を備え、
前記第１のプロセッサが前記キューに読み取りアクセスを行い、該キューにデータが蓄積されていれば前記選択回路の選択経路を前記キュー側に切り替えることを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＡＴＭ，ＳＤＨ等の通信プロトコル処理をプロセッサで行う通信プロトコル処理装置に関する。
【０００２】
【従来の技術】
これまで高速な通信プロトコルを処理させる為に、ＡＴＭ,ＳＤＨ等の通信プロトコルにおける各処理をハードウェア構成（Hard  Wired）で行っているのが一般的技術である。
【０００３】
その為、ＩＴＵ−Ｔ等の標準勧告仕様や小規模の仕様変更・追加の度に再度ハードウェア設計を行う必要があり問題となっていた。また、この問題を回避する為に高速な通信プロトコル処理をプロセッサで処理させようとすると、高性能なプロセッサやプロセッサに膨大な帯域（バンド）幅が要求される。
【０００４】
特に、ＡＴＭセル処理の様な多数のコネクションの処理を行い膨大なデータ量を高速に扱う場合にあっては、プロセッサ処理させる上で、プロセッサに求められる処理能力、必要バンド幅等からその実現性を難しくしていた。
【０００５】
図１は、かかる従来の問題を、ＡＴＭセル処理を例にあげて説明する図である。６００Ｍbpsのメモリ等の記憶機能４を通してのＡＴＭセルスループットに対してＩＴＵ−Ｔ標準勧告のＡＴＭレイヤの全機能（セル識別、ＵＰＣ，ＮＤＣ，ＯＡＭ、課金、ヘッダ変換 等）を命令メモリ３に格納される命令に基づき、プロセッサ１で実行しようとする場合、扱うデータ量からプロセッサ1に１セル処理あたりデータＲＡＭ等に記憶されるパラメータ２との間でのデータ転送に１０Ｇbps以上といった膨大なバンド幅が要求される。
【０００６】
また、１セル時間（６８０ｎｓ）内に処理を行わなければならないという高性能なプロセッサが要求される等、かかる要求に対応できるプロセッサの実現が困難となっていた。
【０００７】
【発明が解決しようとする課題】
したがって、本発明の目的は、構成要素となるプロセッサの性能、バンド幅等の要件を緩和することができ、全体としてより安価なコストで通信プロトコル処理をプロセッサで行う通信プロトコル処理装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記の課題を達成する本発明に従うマルチプロセッサによる通信プロトコル処理装置は、通信データストリーム上でリアルタイム性が要求される処理を行う第１のプロセッサと、
リアルタイム性が要求されない処理を行う第２のプロセッサとを有し、
前記第１のプロセッサは、使用するパラメータを処理される通信データと対にして前記第２のプロセッサに転送し、前記第２のプロセッサでは、転送された通信データとパラメータを参照して処理を行う用に構成されたことを特徴とする。
【０００９】
さらに、上記の課題を達成する本発明に従うマルチプロセッサによる通信プロトコル処理装置の好ましい一態様として、
前記第１及び第２のプロセッサの間に通信データとパラメータの対を格納する処理待ちキューを備えたことを特徴とする。
【００１０】
また、上記の課題を達成する本発明に従うマルチプロセッサによる通信プロトコル処理装置の好ましい一態様として、
前記第１のプロセッサは、前記第２のプロセッサに処理を要求する処理要求信号を発生するように構成され、
前記第１のプロセッサが前記処理要求信号を発生する前に、先に前記通信データ及びパラメータを無条件に前記処理待ちキューへ転送し、
前記第１のプロセッサからの処理要求信号の有無によって前記処理待ちキューに転送済みのデータの有効／無効を、該処理待ちキューが自立的に表示可能としたことを特徴とする。
【００１１】
さらにまた、上記の課題を達成する本発明に従うマルチプロセッサによる通信プロトコル処理装置の好ましい一態様として、
前記第１のプロセッサを複数個設け、それらを直列に並べてパイプライン処理させ、且つ、前記複数の第１のプロセッサの各々が前記第２のプロセッサへ処理を要求可能であることを特徴とする。
【００１２】
さらに、上記の課題を達成する本発明に従うマルチプロセッサによる通信プロトコル処理装置の好ましい一態様として、更に
前記第１及び第２のプロセッサの間に前記第２のプロセッサの処理結果を格納するキューと、
ストリーム上の通信データを前記第２のプロセッサの処理結果に書き換える手段である選択回路とを備え、
前記第１のプロセッサが前記キューに読み取りアクセスを行い、該キューにデータが蓄積されていれば前記選択回路の選択経路を前記キュー側に切り替えることを特徴とする。
【００１３】
本発明の特徴は、更に以下に図面に従い説明される発明の実施の形態から明らかになる。
【００１４】
【発明の実施の形態】
以下に図面に従い本発明の実施の形態を説明する。なお、図に示す実施の形態は、本発明の理解のためのものであり、本発明の適用がこれらに限定されるものではない。
【００１５】
図２は、本発明の一実施の形態の構成ブロック図である。図３，図４は、それぞれ図２の構成に対応する動作シーケンスフロー及び、動作タイムチャートである。
【００１６】
プロセッサ処理させる為の要件を緩和させる為に、本発明は、処理をリアルタイム性が必要とするプロセッサと、処理をリアルタイム性が必要としないプロセッサに分割している。
【００１７】
図２において、リアルタイム性が要求される順方向の処理を行うプロセッサ１０―１及び逆方向の処理を行うプロセッサ１０−２（以下、これらを総称してリアルタイム処理用プロセッサ１０と称す）と、リアルタイム性が要求されない処理を行うプロセッサ１１（以下、非リアルタイム処理用プロセッサ１１と称す）とを備える。
【００１８】
図において、命令メモリ３−１，３−２及び３−３は、それぞれプロセッサ１０とプロセッサ１１に対する命令を格納するメモリである。
【００１９】
リアルタイム処理用プロセッサ１０と非リアルタイム処理用プロセッサ１１とに分割した場合、双方のプロセッサでアクセスされる、データＲＡＭ等に格納されるパラメータ２が存在すると、各プロセッサ処理時間の差によるパラメータ値の矛盾が生じるといった問題が生じる。
【００２０】
なお、ここで、パラメータとは、通信データを除く処理に必要な記憶データ、例えば、状態遷移情報、統計情報、各種設定情報等をいう。
【００２１】
図５は、かかるパラメータの矛盾を説明する図である。
【００２２】
通信データの受信イベントが、通信データ１、２，３のように時間とともに発生する場合、非リアルタイム処理用プロセッサ１１は、通信データ１の処理時にパラメータ（Ａ）の値をＸとして処理する必要がある。
【００２３】
しかし、後に受信した通信データ３に対するリアルタイム用プロセッサ１０によるパラメータ（Ａ）のＹへの更新が既に行われている。したがって、非リアルタイム処理用プロセッサ１１が、パラメータ（Ａ）の更新データＸを参照しに行った時は、Ｘは既に更新されてＹとなっており、これを参照することになるので矛盾が生じる。
【００２４】
ここで、図２において、かかる矛盾が生じるのを回避する為には、リアルタイム処理用プロセッサ１０と非リアルタイム処理用プロセッサ１１の双方によりアクセスされるパラメータを扱う処理をリアルタイム処理用プロセッサに纏めることが考えられる。しかし、これではリアルタイム処理用プロセッサ１０の処理が増え、負荷が大きくなるという問題がある。
【００２５】
したがって、本発明では、非リアルタイム処理用プロセッサ１１への処理要求をリアルタイム処理用プロセッサ１０が生成、出力し、処理すべき通信データと、双方のプロセッサ１０，１１で使用されるパラメータとを対にして非リアルタイム処理用プロセッサ１１に渡すようにする。
【００２６】
非リアルタイム処理用プロセッサ１１は、渡された通信データとパラメータを参照に用いて処理を行っており、当該パラメータについてはパラメータ２が格納されているデータＲＡＭ等のメモリにはアクセスを行わないので双方のプロセッサ１０，１１でアクセスされるパラメータの矛盾を回避できる。
【００２７】
プロセッサ１１に分散させることができるので、プロセッサに要求されるバンド幅や性能を軽減できる。
【００２８】
かかる様子を図３及び図４を用いて説明する。図３は、純方向通信データの処理を行うリアルタイム処理用プロセッサ１０―１と、非リアルタイム処理用プロセッサ１１との間の動作シーケンスを示す。
【００２９】
リアルタイム処理用プロセッサ１０―１は、通信データ１、２，３・・・の発生の都度、命令メモリ３−１のからの命令に対応してパラメータ２をアクセスし、演算処理を行う（処理工程Ｐ１，２，３、４，５）。
【００３０】
そして、キュー書込データが発生すると（図３では、通信データ２の処理工程Ｐ２の際）パラメータ及び通信データ等を処理待ちキュー１４−１に書き込む（処理工程Ｐ６）。図４において、リアルタイム処理用プロセッサ１０―１が通信データ２を処理した後、処理待ちキュー１４−１の状態が”１”に変化している。
【００３１】
一方、非リアルタイム処理用プロセッサ１１では、処理待ちキュー１４−１に定期的にポーリングを行っている（処理工程Ｐ７）。このポーリングの過程で処理待ちキュー１４−１に要求データがあると、当該キューの内容を読み込み（処理工程Ｐ８）、演算処理を行う（処理工程Ｐ９）。
【００３２】
この演算処理が終了するとポーリングを再開する（処理工程Ｐ１０）。この時、処理待ちキュー１４−１の状態は”０”に変化する。
【００３３】
図６は、本発明の図２の構成を実施例としてＡＴＭセル処理における性能監視処理（ＩＴＵ−Ｔ勧告 Ｉ．６１０）に適用した場合を説明する図である。図７はは、図６の動作タイムチャートである。図６において、説明の簡単化にためにＡＴＭセルの受信側のみの構成を示しているまた、命令メモリは図示省略している。
【００３４】
ＡＴＭセル処理における性能監視処理の意味は、図８に示す如くである。図８Ａ、図８Ｂは１つのコネクションについてのセル流を示す。図８Ａは、ＡＴＭセル送信側からのセル流である。最小１２８個を有するＮ個のユーザセルが継続し、Ｎ個のユーザセルの後に、ユーザセルの数と、計算されたパリティ（ＢＩＰ：Bit Interleaved Parity）をＦＰＭ（Forward Performance Monitoring）セルのペイロードに付加して送信する。
【００３５】
図８Ｂは、ＡＴＭセル受信側で受信されるＡＴＭセル流である。受信したユーザセル数をカウントし、且つパリティを求める。さらに、次に続くＦＰＭ（Forward Performance Monitoring）セルのペイロードに送信側で付加されたユーザセル数と、パリティと比較する。これにより、受信した際のセルの廃棄数、セル誤配数及び、誤りビット数が判定される。
【００３６】
図８Ｃは、複数コネクションに着目した時のＡＴＭセル流である。フレーム毎に構成するセルにコネクションＩＤが付されている。コネクション毎に受信ユーザセル数をカウントし、対応するコネクションＩＤのユーザセルのペイロード領域に対してＢＩＰ−１６演算処理を行う（以降、中間計測処理と称す）。
【００３７】
ついで、受信ＦＰＭセル間に流れたユーザセルの中間計測処理結果に基づいて、セル廃棄数、セル誤配数、誤りビット数の統計をとる（以降、統計処理と称す）ことによって性能監視機能を実現できる。
【００３８】
なお、ＦＰＭセルの送信間隔は、ＩＴＵ−Ｔ 勧告Ｉ.６１０で規定されており最小で１２８セル毎に１セルの送信である（図８Ｃ）。
【００３９】
図６に戻り、上記の中間計測処理をリアルタイム処理用プロセッサ１０−１に、統計処理を非リアルタイム処理用プロセッサ１１に割り当てる。この場合、リアルタイム処理用プロセッサ１０−１に必要なパラメータ２は、▲１▼受信ユーザセルカウント数、▲２▼ＢＩＰ−１６計算値である。非リアルタイム処理用プロセッサ１１に必要なパラメータ２は、▲１▼受信ユーザセルカウント数、▲２▼ＢＩＰ−１６計算値に加え、▲３▼セル廃棄数、▲４▼セル誤配数、▲５▼誤りビット数である。
【００４０】
ここにあげたパラメータは参照と更新の両方が行われるパラメータであり、これら以外にも参照のみ行われるパラメータが存在するが、それについては本発明と直接関係しないので説明を割愛する。
【００４１】
上記の▲１▼受信ユーザセルカウント数、▲２▼ＢＩＰ−１６計算値については、リアルタイム処理用プロセッサ１０−１と非リアルタイム処理用プロセッサ１１の双方で必要なパラメータである。
【００４２】
ユーザセル（図７ａ）受信時に、リアルタイム処理用プロセッサ１０−１は、中間計測処理（図７ｂ）として、▲１▼受信ユーザセルカウント数及び▲２▼ＢＩＰ−１６計算値のパラメータを更新する（図７ｃ，ｄ）。
【００４３】
さらに、ＦＰＭセル受信時に▲１▼受信ユーザセルカウント数及び▲２▼ＢＩＰ−１６計算値のパラメータを受信ＦＰＭセルと一緒に非リアルタイム処理用プロセッサ１１（または処理待ちキュー１４−１）に転送し（図７ｅ）、これらのパラメータをリセットする（図７ｃ，ｄ）。
【００４４】
非リアルタイム処理用プロセッサ１１は、転送された▲１▼受信ユーザセルカウント数及び▲２▼ＢＩＰ−１６計算値のパラメータを統計処理し、ＦＰＭ受信セルを使用して▲３▼セル廃棄数、▲４▼セル誤配数、▲５▼ビット誤り数を計算する（図７ｆ）。
【００４５】
ついで、これら計算された▲３▼セル廃棄数、▲４▼セル誤配数、▲５▼ビットのパラメータを更新する（図７ｇ，ｈ，ｉ）。
【００４６】
以上によって、ＡＴＭセル処理における性能監視処理（ＩＴＵ−Ｔ勧告 Ｉ．６１０）をリアルタイム処理用プロセッサ１０−１と非リアルタイム処理用プロセッサ１１とに処理分散させることができる。
【００４７】
これにより効果として、
・ＡＴＭセル流のスループットを１セル時間＝Ｔ、
・中間計測処理のプログラム処理実行ステップ数をＡ、
・統計処理のプログラム処理実行ステップ数をＢ、
・▲１▼受信ユーザセルカウント数、▲２▼ＢＩＰ−１６計算値のパラメータは各１６ビット、
・▲３▼セル廃棄数、▲４▼セル誤配数、▲５▼ビットのパラメータは各３２ビット
であるとした場合、
図１に示す従来例の構成により、ＡＴＭセル処理における性能監視処理に適用した場合、図９に示すように、プロセッサ１０−１に必要なバンド幅(bit/s)は、１２８／Ｔ（ ＝ （１６×２＋３２×３）／Ｔ ）、プロセッサ１０−１に要求される性能(step/s)は、（Ａ＋Ｂ）／Ｔ となる。
【００４８】
一方、本発明に従う構成では、ＦＰＭセルの受信間隔は１２８セルに１回なので、リアルタイム処理用プロセッサ１０−１に必要なバンド幅は、３２／Ｔ （ ＝ （１６×２／Ｔ） ）、非リアルタイム処理用プロセッサ１１に必要なバンド幅は、０．７５／Ｔ （ ＝（３２×３）／１２８Ｔ））、リアルタイム処理用プロセッサ１０−１に要求される性能は、Ａ／Ｔ、非リアルタイム処理用プロセッサ１１に要求される性能は、Ｂ／１２８Ｔとなる。
【００４９】
結果としてプロセッサに求められる性能、必要なバンド幅を軽減できる。なお、実際には扱うパラメータは上記例に挙げたものよりも多く（特に統計用パラメータ）、本発明の効果が更に大きくなることが理解できる。
【００５０】
さらに、図８Ｃに示すような複数コネクションに対して性能監視を行う場合、リアルタイム処理用プロセッサ１０−１から転送される通信データとパラメータを保持する非リアルタイム処理用プロセッサ１１への処理待ちキュー１４−１を備える。
【００５１】
これによって、ＦＰＭセルを連続受信し、非リアルタイム処理用プロセッサ１１の処理が連続して要求されても、キュー１４−１に貯めておくだけでよい。プロセッサの処理能力を高める必要は生じない。
【００５２】
性能監視処理はコネクション毎に最小１２８個のユーザセル送信毎にＦＰＭセルを送信するために、複数コネクションのＦＰＭセルを連続受信して、非リアルタイム処理用プロセッサ１１の処理が連続して要求されても次にＦＰＭセルを受信して非リアルタイム処理用プロセッサ１１の処理が要求されるのは、最小でも１２８セル後である（図８Ｃ参照）。
【００５３】
したがって、処理待ちキュー１４−１を備えて（段数は連続受信するＦＰＭセル数以上にしておく）おけば、１２８セル時間内にその統計処理を終了すればよいので、非リアルタイム処理用プロセッサ１１の処理能力を高める必要はない。
【００５４】
上記のように、本発明によれば、リアルタイム処理用と非リアルタイム処理用とのプロセッサ１０，１１を設ける。そして、双方のプロセッサが使用するパラメータ（通信データ以外の処理に用いる記憶データ）を、処理を行う通信データと対にして非リアルタイム処理用プロセッサ１１に転送する。
【００５５】
非リアルタイム処理用プロセッサ１１は転送された通信データとパラメータを参照に用いて統計処理を行っている為に、双方のプロセッサの処理時間によるパラメータの矛盾を生じることが無い。したがって、処理をリアルタイム処理用プロセッサ１０と非リアルタイム処理用プロセッサ１１に分散でき、システムを構成するプロセッサの性能、バンド幅等の要件を緩和するこができる。
【００５６】
本発明により全体としてより安価なコストで通信プロトコル処理をプロセッサで行う通信プロトコル処理装置を構築できる。
【００５７】
さらに、本発明によれば、リアルタイム処理用プロセッサ１０は非リアルタイム処理用プロセッサ１１へ処理を要求する時は、処理要求として必要データをキュー１４−１に書き込んでいるだけなので、処理要求の発生頻度を考慮して非リアルタイム処理用プロセッサ１１はキュー１４−１溢れが発生しない程度まで処理能力を小さくすることができる。また、通信データストリームを乱さずに連続受信した通信データの処理を行うことができる。
【００５８】
図１０は、本発明に従う別の実施の形態例を示す図であり、通信データとパラメータを処理待ちキュー１４−１へ転送する部分のみを表している。図１０の実施例では更にＤＭＡ制御回路２０を備え、メモリ４−１及びリアルタイム処理用プロセッサ１０−１のキャッシュ、レジスタ等のローカルメモリ１０−３のデータ転送を制御する。
【００５９】
図１１は、図１０の実施の形態の動作シーケンスを示す。さらに、図１２は、動作フローチャート、図１３は動作タイムチャートを示す。
【００６０】
この実施の形態では、リアルタイム処理用プロセッサ１０−１が通信データを受けると、ＤＭＡ制御回路２０を起動し、更にパラメータ２にアクセスして、通信データ及びパラメータを、非リアルタイム処理用プロセッサ１１へ処理要求を出す前に、先に通信データとパラメータを無条件に処理待ちキュー１４−１へ転送しておく（図１１のI、II参照）。
【００６１】
図１１の例では、通信データ１は非リアルタイム処理用プロセッサ１１への処理要求がなく、通信データ２では処理要求が発生した場合の例である。したがって、通信データ２に対する演算処理により処理要求が発生すると、処理待ちキュー１４−１に処理要求を知らせる（図１１，III参照）。
【００６２】
処理待ちキュー１４−１の管理はライトポインタとリードポインタによる管理を行っている。処理要求が発生するとライトポインタをインクリメントし、非リアルタイム処理用プロセッサ１１はそれらポインタをポーリングし、ライトポインタとリードポインタの不一致により処理待ちキュー１４−１に有効データが格納されたかを認識している。
【００６３】
処理待ちキュー１４−１に有効データが格納されたことを認識下場合、非非リアルタイム処理用プロセッサ１１は、リードポインタをインクリメントし、処理を開始する（図１１，IV参照）。
【００６４】
図１２は、図１１の動作シーケンスに対応する詳細な動作フローチャートである。リアルタイム処理用プロセッサ１０−１はメモリ４−１を監視し、通信データの受信の有無を判断する（処理工程Ｐ２０）。通信データを受信すると（処理工程Ｐ２０：Ｙｅｓ）、ＤＭＡ制御回路２０を起動する（処理工程Ｐ２１）。
【００６５】
ＤＭＡ制御回路２０は起動されると、リアルタイム処理用プロセッサ１０−１に対し、処理待ちキュー１４−１に通信データ及びパラメータの転送するように制御する（処理工程Ｐ２２）。
【００６６】
一方、リアルタイム処理用プロセッサ１０−１は、通信データを受信すると（処理工程Ｐ２０：Ｙｅｓ）、パラメータ２の転送を受け（処理工程Ｐ２３）、演算処理を行う（処理工程Ｐ２４）。
【００６７】
この処理の結果、処理要求があれば（処理工程Ｐ２５，Ｙｅｓ）、処理待ちキュー１４−１のライトポインタをインクリメントする（処理工程Ｐ２６）。一方、処理工程Ｐ２５で処理要求がなければ、処理待ちキュー１４−１への通信データの転送を無効とし、ライトポインタのインクリメントは行わない（処理工程Ｐ２７）。
【００６８】
図１３は、図１０の実施例の効果を説明する図である。図１３Ａでは、通信データに対する演算処理を行った後に、パラメータと通信データを処理待ちキュー１４−１に書き込む構成である。
【００６９】
これに対し、図１０の実施例に対応する図１３Ｂの処理では、通信データの受信と同時にパラメータと通信データが、ＤＭＡ制御回路２０により、処理待ちキュー１４−１に転送される。したがって、図１３Ａとの比較において、通信データとパラメータの転送時間（Ｔ）を削減することができ、削減できた時間分の通信データスループットを向上できる。
【００７０】
上記の様に、図１０の実施例ではリアルタイム処理用プロセッサ１０−１が非リアルタイム処理プロセッサ１１へ処理要求を出す前に、先に非リアルタイム処理用プロセッサ１１に必要なデータをキュー１４−１に転送している。この為に、扱う通信データ量が膨大でも処理要求発生からデータ転送完了までの時間を短縮できる。この短縮できた時間分の通信データのスループットを向上、またはプロセッサの性能を小さくできる。
【００７１】
ここで、上記図１０の実施例では、通信データの受信をイベントとしてプロセッサを介さないで受信した通信データを直接ＤＭＡ転送で処理待ちキュー１４−１へ転送する。このためにプロセッサ１０−１と通信データ記憶メモリ４−１間のバスとは別のデータバスを設けてデータ転送を行い、プロセッサ１０−１の負荷を軽減することができる。
【００７２】
通信データとして例えばＡＴＭセルを想定した場合、５３バイトの膨大なデータ転送となりプロセッサ１０−１の負荷が重くなりそうであるが、本発明ではプロセッサ１０−１の処理とＡＴＭセルの転送は独立しているためプロセッサ１０−１の負荷を軽減できる。
【００７３】
図１４は、更に別の実施例構成を示す図である。この実施例では、リアルタイム性が要求される処理が非常に多い場合、または１個のリアルタイム処理用プロセッサ１０−１で処理しきれない場合、複数個のリアルタイム処理用プロセッサ１００−１〜１００−３を直列に並べてパイプライン処理させる構成をとる。
【００７４】
この場合、複数のリアルタイム処理用プロセッサ１００−１〜１００−３による処理待ちキューへの書き込みの競合が生じたり、書き込みデータの冗長（特に同一通信データに対する処理要求時）が生じる問題が想定される。
【００７５】
これに対応するべく、本発明では処理要求を後段のプロセッサへフォワーディング（処理要求１１０−１〜１１０−３、処理要求１１０−４〜１１０−５）して、最後にマージ回路２１によりまとめて一つにして処理要求を生成している。
【００７６】
したがって、複数のリアルタイム処理用プロセッサ１００−１〜１００−３による処理待ちキューへの書き込みの競合が発生しない。同時に、書き込みデータの冗長も生じない。
【００７７】
また、処理要求を後段のプロセッサへフォワーディングして最後にまとめて一つにして処理要求を生成する前に、先に通信データ（場合によってはパラメータも）を処理待ちキュー１４−１に転送しておけば、図１０の実施例と同様に通信データの転送時間を削減することができ、削減できた時間分の通信データスループットを向上できる。
【００７８】
ここで、図１４において、複数のリアルタイム処理用プロセッサ１００−１〜１００―３が処理要求をフォワーディングして処理待ちキュー１４−１へ渡すために、全てのリアルタイム処理用プロセッサ１００−１〜１００―３に対して、フォワーディング用の記憶機能１１０−１〜１１０−６を同一容量で設ける必要はない。
【００７９】
すなわち、各プロセッサが処理要求を積み重ねていくことにより、前段のプロセッサにおけるフォワーディング用の記憶機能の容量、フォワーディング信号数を削減することができる。
【００８０】
図１５は、かかる図１４の処理要求の過程を説明する図である。図１５において、受信した通信データａに対して、リアルタイム処理要求プロセッサ１００−１は、処理要求１を生成する（図１５ｂ参照）。したがって、リアルタイム処理要求プロセッサ１００−１からリアルタイム処理要求プロセッサ１００−２にフォワーディングされる処理要求は、図１５ｃに示すようである。
【００８１】
これに対し、リアルタイム処理要求プロセッサ１００−２は、処理要求２を生成する（図１５ｄ参照）。したがって、リアルタイム処理要求プロセッサ１００−２からリアルタイム処理要求プロセッサ１００−３にフォワーディングされる処理要求は、リアルタイム処理要求プロセッサ１００−１からフォワーディングされた処理要求と合わせて図１５ｅに示すようである。
【００８２】
さらに、リアルタイム処理要求プロセッサ１００−３は、処理要求３を生成する（図１５ｆ参照）。したがって、リアルタイム処理要求プロセッサ１００−３からマージ回路２１に送られる処理要求は、リアルタイム処理要求プロセッサ１００−２からフォワーディングされた処理要求と合わせて図１５ｇに示すようである。
【００８３】
このように、各プロセッサが処理要求を積み重ねていくことにより、前段のプロセッサにおけるフォワーディング用の記憶機能の容量、フォワーディング信号数を削減している。
【００８４】
図１６は、図１４におけるリアルタイム処理用プロセッサ１００−１〜１００−３の処理要求をフォワーディングしていく機能の具体例であり、処理待ちキュー１４−１への書き込みデータの生成、及び処理要求の生成部分のみを表した構成図である。
【００８５】
リアルタイム処理用プロセッサ１００−１〜１００−３の各々は処理要求フラグＦとパラメータＤＰ等の処理に必要なデータを、通信データの次受信イベントによってフォワーディングして行く。
【００８６】
最終段において各々の処理要求フラグＦの論理和をとることによって処理要求を生成する。また、キュー１４−１への書き込みデータ（通信データ以外）は各々のデータをマージしたものとする。したがって、キュー１４−１への転送はハード管理で行うことでき、非リアルタイム処理用プロセッサ１１への処理要求や必要データを生成する必要がなくなるので、リアルタイム処理用プロセッサ１００―１〜１００−３の負荷を軽減することができる。
【００８７】
上記図１４の実施例においては、複数のリアルタイム処理用プロセッサ１００―１〜１００−３による非リアルタイム処理用プロセッサ１１への処理要求を一括して纏めている。これにより、複数のリアルタイム処理用プロセッサ１００―１〜１００−３による処理待ちキュー１４−１へのデータ転送や処理要求の競合を回避することができ、また、キュー１４−１に格納するデータの冗長をなくすことができる。
【００８８】
また、上記図１４の実施例では、複数のリアルタイム処理用プロセッサ１００―１〜１００−３による非リアルタイム処理用プロセッサ１１への処理要求を一括して纏めて出力する前に、先に非リアルタイム処理用プロセッサ１１に必要なデータをキュー１４−１に転送している。これにより、扱う通信データ量が膨大でも処理要求発生からデータ転送完了までの時間を短縮でき、短縮できた時間分の通信データのスループットを向上、またはプロセッサの性能を小さくできる。
【００８９】
さらに、上記図１４の実施例では、複数のリアルタイム処理用プロセッサ１００―１〜１００−３による非リアルタイム処理用プロセッサ１１への処理要求を一括して纏めるために、フォワーディングすべき必要なデータを、各プロセッサが積み重ねていく構成であって、フォワーディングのコスト（記憶機能の容量、フォワーディング容量）を削減できる。
【００９０】
また、図１４において、シフトレジスタでシフト動作により、通信データの受信をイベントとしてハードウェア自立で処理要求をフォワーディングすることが可能である。かかる場合、プロセッサ自身が処理要求をフォワーディングする動作をすることが必要ないので、プロセッサの負荷を軽減できる。
【００９１】
図１７は、図２の構成において実現される本発明の他の実施例動作シーケンスを示す図であり、図１８は、図１７の動作タイムチャートである。すなわち、非リアルタイム処理用プロセッサ１１の処理結果をリアルタイム処理用プロセッサ１０が利用する場合の動作シーケンス及び動作タイムチャートである。
【００９２】
このために、図２において、通信データを格納しているメモリ等の記憶機能４−１、４−２と当該キュー１５―１，１５−２とを選択する選択回路１７−１、１７−２を備えている。
【００９３】
図１７，図１８において、先に説明した実施例と同様に順方向のデータ通信について説明する。非リアルタイム処理用プロセッサ１１の処理結果を格納するキュー１５−１及び、非リアルタイム処理用プロセッサ１１は、処理結果をキューに書き込む（図１７，I）。したがって、図１８において、キュー１５−１の状態が”０”から”１”に変化する（図１８，ｂ）。
【００９４】
一方、図１７において、リアルタイム処理用プロセッサ１０−１は、通信データ１〜３を順に処理する過程において、非リアルタイム処理用プロセッサ１１の処理結果を得るために、プログラム処理によってキュー１５−１を読み取りアクセスする。
【００９５】
ストリーム上の通信データを非リアルタイム処理用プロセッサ１１の処理結果に書き換える場合に、当該キュー１５−１を読み出し、データがキュー１５−１に蓄積されていれば、選択回路１７−１の選択先をキュー１５−１側に切り替える。これによって非リアルタイム処理用プロセッサ１１の処理結果を通信データストリーム上に反映させることができる（図１７，II、図１８，ｄ）。
【００９６】
ここで、キュー１５−１の管理方法としては、図１１の動作シーケンスと同様に、ライトポインタとリードポインタによる管理方法で実現できる。
【００９７】
非リアルタイム処理用プロセッサ１１の処理結果を通信データストリーム上に反映させる例として、ＡＴＭセル通信システムにおけるＯＡＭセル挿入処理がある。ＡＴＭセルストリーム上に空きセルが存在した場合に、該当セルスロットにＯＡＭセルを挿入するという処理である。
【００９８】
非リアルタイム処理用プロセッサ１１で生成したＯＡＭセルをキュー１５−１に書き込んでおき、リアルタイム処理プロセッサ１０−１は空きセルを検出時に当該キュー１５−１をリードし、データがあれば選択回路１７−１の選択先をキュー１５−１側に切り替える。これにより、該当セルスロットの通信データをキュー１５−１からリードした情報に書き換えを行う。
【００９９】
図１９は、図１７の実施例動作シーケンスを実現する好ましい構成例である。非リアルタイム処理用プロセッサ１１の処理結果を格納するキュー１５−１にデータが蓄積されているか否かを示すレジスタ２２と、当該キュー１５−１を読み出す制御回路（読み出し制御回路）２３を設けている。
【０１００】
非リアルタイム処理用プロセッサ１１は当該レジスタ２２をリードすることによってキュー１５−１にデータが蓄積されていることを認識する。データ蓄積時は読み出し制御回路２３を起動させることによってプロセッサ１０−１を介さずにハードウェア自立でキュー１５−１のデータを読み出すよう構成されている。
【０１０１】
かかる図１７〜図１９の実施例では、非リアルタイム処理用プロセッサ１１の処理結果を格納するキュー１５−１にデータが蓄積されている場合に出力通信データを選択する回路１７−１の選択先をキュー１５−１側に切り替えている。したがって、非リアルタイム処理用プロセッサ１１の処理結果を高速に流れている通信データ上に反映することが出きる。
【０１０２】
また、図１７〜図１９の実施例では、非リアルタイム処理用プロセッサ１１の処理結果を格納するキュー１５−１にデータが蓄積されているか否かを、レジスタ値によってリアルタイム処理用プロセッサ１０−１が認識し、キュー１５−１の読み出しは当該プロセッサではなく、キュー１５−１を読み出す制御回路２３によって行われるため、１０−１プロセッサの負荷を軽減することができる。
以上の様に、従来Hard Wiredで実現していたATMセル処理に対して、本発明を適用することによってプロセッサで処理させた場合のプロセッサへの要件が緩和でき、プロセッサ処理が実現できる。
【０１０３】
（付記１）通信データストリーム上でリアルタイム性が要求される処理を行う第１のプロセッサと、
リアルタイム性が要求されない処理を行う第２のプロセッサとを有し、
前記第１のプロセッサは、使用するパラメータを処理される通信データと対にして前記第２のプロセッサに転送し、前記第２のプロセッサでは、転送された通信データとパラメータを参照して処理を行う用に構成されたことを特徴とすることによって、処理をＲＴ−ＰとＮＲＴ−Ｐとに分散させたことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１０４】
（付記２）付記１において、
前記パラメータは、通信データを除く処理に必要な状態遷移情報、統計情報、あるいは各種設定情報であることを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１０５】
（付記３）付記１において、
前記第１及び第２のプロセッサの間に通信データとパラメータの対を格納する処理待ちキューを備えたことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１０６】
（付記４）付記３において、
前記第１のプロセッサは、前記第２のプロセッサに処理を要求する処理要求信号を発生するように構成され、
前記第１のプロセッサが前記処理要求信号を発生する前に、先に前記通信データ及びパラメータを無条件に前記処理待ちキューへ転送し、
前記第１のプロセッサからの処理要求信号の有無によって前記処理待ちキューに転送済みのデータの有効／無効を、該処理待ちキューが自立的に表示可能としたことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１０７】
（付記５）付記１において、
前記第１のプロセッサを複数個設け、それらを直列に並べてパイプライン処理させ、且つ、前記複数の第１のプロセッサの各々が前記第２のプロセッサへ処理を要求可能であることを特徴とするにとできることを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１０８】
（付記６）付記５において、
前記前記複数の第１のプロセッサの各々が、前記第２のプロセッサへの処理要求を生成し、後段の第１のプロセッサへ処理要求とパラメータをフォワーディングし、最終段で一括して処理待ちキューに転送するように構成されたことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１０９】
（付記７）付記５において、
前記前記複数の第１のプロセッサの各々が、前記第２のプロセッサへの処理要求を生成し、更に通信データやパラメータを無条件に前記処理待ちキューへ転送し、後に処理要求の有無によって前記処理待ちキューに転送済みのデータの有効無効を当該キューが自立的に判断可能とすることを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１１０】
（付記８）付記６または７において、
前記処理要求とパラメータは、複数の第１のプロセッサの各々において積み重ねていく様に構成されたことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１１１】
（付記９）付記２〜８のいずれかにおいて、
前記通信データの前記処理待ちキューへの転送は、通信データの受信をイベントとして前記第１のプロセッサを介さずに直接転送することを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１１２】
（付記１０）付記１〜９のいずれかにおいて、更に
前記第１及び第２のプロセッサの間に前記第２のプロセッサの処理結果を格納するキューと、
ストリーム上の通信データを前記第２のプロセッサの処理結果に書き換える手段である選択回路とを備え、
前記第１のプロセッサが前記キューに読み取りアクセスを行い、該キューにデータが蓄積されていれば前記選択回路の選択経路を前記キュー側に切り替えることを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１１３】
（付記１１）付記１０において、更に
前記第２のプロセッサの処理結果を格納するキューにデータが蓄積されているか否かを示すレジスタと、
前記キューに蓄積されたデータを読み出す読出制御回路を設け、
前記第１のプロセッサは前記キューにアクセスせず、前記レジスタのセット状態を読み出すことによって前記キューのデータ蓄積を認識し、
データ蓄積時は前記読出制御回路を起動させて、前記第１のプロセッサを介さずに前記キューのデータを読み出すことを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１１４】
（付記１２）付記６〜８のいずれかにおいて、
処理要求とパラメータのフォワーディングのタイミングを通信データの次受信をイベントとすることを特徴とするマルチプロセッサによる通信プロトコル処理装置。
【０１１５】
【発明の効果】
以上図面に従い実施の形態を説明したように、本発明によれば、従来ハードウェア（Hard Wired）で行っていたＡＴＭ，ＳＤＨ等の通信プロトコルの各処理をプロセッサで処理させることが実現でき、ＩＴＵ−Ｔ等の標準勧告仕様や小規模の仕様変更・追加の度に再度ハードウェア設計（作り直し）を行う必要がなくなり、プログラム変更で対応できる。且つ、搭載するプロセッサへの要件（性能、バンド幅 等）を緩和でき、装置単体コストも削減できる。
【図面の簡単な説明】
【図１】ＡＴＭセル処理をプロセッサで処理知る場合の従来例を示す図である。
【図２】本発明の一実施の形態の構成ブロック図である。
【図３】図２の構成に対応する動作シーケンスフローである。
【図４】図２の構成に対応する動作タイムチャートである。
【図５】パラメータの矛盾を説明する図である。
【図６】本発明の図２の構成を実施例としてＡＴＭセル処理における性能監視処理（ＩＴＵ−Ｔ勧告 Ｉ．６１０）に適用した場合を説明する図である。
【図７】図６の動作タイムチャートである。
【図８】ＡＴＭセル処理における性能監視処理の意味を説明する図である。
【図９】ＡＴＭセル処理における性能監視処理の従来例を示す図である。
【図１０】本発明に従う別の実施の形態例を示す図である。
【図１１】図１０の実施の形態の動作シーケンスを示す図である。
【図１２】図１０の動作フローチャートを示す図である。
【図１３】図１０の動作タイムチャートを示す図である。
【図１４】更に別の実施例構成を示す図である。
【図１５】図１４の処理要求の過程を説明する図である。
【図１６】図１４におけるリアルタイム処理用プロセッサ１００−１〜１００−３の処理要求をフォワーディングしていく機能の具体例である。
【図１７】図２の構成において実現される本発明の他の実施例動作シーケンスを示す図である。
【図１８】図１７の動作タイムチャートを示す図である。
【図１９】図１７の実施例動作シーケンスを実現する好ましい構成例である。
【符号の説明】
１０−１，１０−２  リアルタイム処理用プロセッサ
２  パラメータ
１１  非リアルタイム処理用プロセッサ
４−１，４−２  メモリ等の記憶機能
３−１．３−２．３−３  命令メモリ
１４−１，１４−２，１５−１，１５−２  処理待ちキュー
１７−１，１７−２  選択回路
【図１】
0004605874.tif 000002
【図２】
0004605874.tif 000003
【図３】
0004605874.tif 000004
【図４】
0004605874.tif 000005
【図５】
0004605874.tif 000006
【図６】
0004605874.tif 000007
【図７】
0004605874.tif 000008
【図８】
0004605874.tif 000009
【図９】
0004605874.tif 000010
【図１０】
0004605874.tif 000011
【図１１】
0004605874.tif 000012
【図１２】
0004605874.tif 000013
【図１３】
0004605874.tif 000014
【図１４】
0004605874.tif 000015
【図１５】
0004605874.tif 000016
【図１６】
0004605874.tif 000017
【図１７】
0004605874.tif 000018
【図１８】
0004605874.tif 000019
【図１９】
0004605874.tif 000020