(57)【要約】【課題】少なくとも１つのネットワークと少なくとも１つのＣＰＵとの間のデータ処理を改善する方法および装置を提供する。【解決手段】本発明のメッセージ処理装置は、処理対象のメッセージを受信し、受信メッセージに対して実行する処理の種類を決定するための第１の実行ユニットと、決定した処理を行うための第２の実行ユニットと、ある宛先ユニットに転送するメッセージの処理の結果を提示するための第３の実行ユニットとを含む。【選択図】図２
2004515971.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのデータ・ネットワーク（２０２−２０５）を通して遠隔ユニットと、また少なくとも１つの専用ＣＰＵ（２０７，２０８）と通信するためのメッセージ処理装置（２００）であって、
処理対象のメッセージを受信し、前記受信メッセージに対して実行する処理の種類を決定するための第１の実行ユニット（２２６）と、
前記決定した処理を行うための第２の実行ユニット（２３９）と、
ある宛先ユニットに転送するメッセージの処理の結果を提示するための第３の実行ユニット（２３０）とを備えるメッセージ処理装置。
【請求項２】
前記第１の実行ユニット（２２６）が、受信メッセージに対して行う前記処理を決定するために使用している制御情報を記憶するためのメモリ素子（２３６）を備える、請求項１に記載の装置。
【請求項３】
前記第２の実行ユニット（２３９）が、データ内容および受信メッセージの前記決定した処理を指定するメッセージ特定情報を記憶するための第１の組のレジスタ（２３８）を備える、請求項１または２に記載の装置。
【請求項４】
前記第２の実行ユニット（２３９）が、前記決定した処理を行うために前記第１の組のレジスタ（２３８）にアクセスする少なくとも１つのプロセス実行ユニット（２４０，２４２，２４４）を備える、請求項３に記載の装置。
【請求項５】
前記第２の実行ユニット（２３９）が、前記決定した処理を行うために前記第１の組のレジスタ（２３８）にアクセスする３つまたはそれ以上のプロセス実行ユニット（２４０，２４２，２４４）を備える、請求項４に記載の装置。
【請求項６】
前記第２の実行ユニット（２３９）が、前記プロセス実行ユニット（２４０，２４２，２４４）が必要とする情報を記憶するための前記少なくとも１つのプロセス実行ユニット（２４０，２４２，２４４）に接続している第２の組のレジスタ（２４６）を備える、請求項４または５に記載の装置。
【請求項７】
前記第２の実行ユニット（２３９）が、プロセス実行ユニット（２４０，２４２，２４４）を処理のために使用できる場合に、メッセージの処理をスタートするために前記第１の組のレジスタ（２３８）を監視するように構成されている、請求項４〜６のいずれかに記載の装置。
【請求項８】
前記第３の実行ユニット（２３０）が、前記メッセージの処理が終了した場合に、前記メッセージ処理の結果の提示をスタートするために前記第１の組のレジスタ（２３８）を監視するように構成されている、前記請求項のいずれか１項に記載の装置。
【請求項９】
前記第１の実行ユニット（２２６）が、受信メッセージにより実行する処理を決定するために使用している前記制御情報で前記メモリ素子（２３６）を構成するためのインタフェースを備える、請求項２に記載の装置。
【請求項１０】
ネットワーク内およびネットワークを通して通信するための相互通信処理システムであって、請求項１〜９のいずれか１項に記載のメッセージを処理するための装置と、前記少なくとも１つのデータ・ネットワーク（２０２−２０５）および前記少なくとも１つの専用ＣＰＵ（２０７，２０８）へ通信接続を供給するための交換機デバイスとを備える相互通信処理システム。
【請求項１１】
前記交換機が、一方では、前記第１および第３の実行ユニット（２２６，２３９）に接続していて、他方では、いくつかのバス・アダプタ（２１４−２１７）および前記少なくとも１つのＣＰＵ（２０７，２０８）に接続することができるマルチプレクサを備える、請求項１０に記載の相互通信処理システム。
【請求項１２】
前記交換機が、一方では、前記第１の実行ユニット（２２６）に接続していて、他方では、いくつかのバス・アダプタ（２１４−２１７）および前記少なくとも１つのＣＰＵ（２０７，２０８）に接続することができる割込みバスをさらに備える、請求項１１に記載の相互通信処理システム。
【請求項１３】
前記交換機が、前記マルチプレクサを制御するためのコントローラ（２３２）をさらに備えていて、それにより、前記コントローラが、前記第３の実行ユニット（２３０）または前記少なくとも１つのＣＰＵ（２０７，２０８）により制御されるように構成されている、請求項１１または１２に記載の相互通信処理システム。
【請求項１４】
少なくとも１つのデータ・ネットワーク（２０２−２０５）を通して遠隔ユニットと、また少なくとも１つの専用ＣＰＵ（２０７，２０８）と通信するためのシステムでメッセージを処理するための方法であって、
処理対象のメッセージを受信し、該受信メッセージにより行う処理のタイプを決定するステップと、
前記受信メッセージの内容および受信メッセージの前記決定した処理を指定するメッセージ特定情報を第１の組のレジスタ（２３８）に記憶するステップと、
プロセス実行ユニット（２４０，２４２，２４４）が処理のために使用できる場合に、メッセージの処理をスタートするために前記第１の組のレジスタ（２３８）を監視するステップと、
前記決定した処理を実行し、それにより処理を順次処理、並列処理またはこれらの処理の組合わせにより行うステップと、
前記メッセージの処理が終了した場合に、メッセージの処理の結果の提示をスタートするために前記第１の組のレジスタ（２３８）を監視するステップと、
転送する前記メッセージの処理結果を宛先ユニットに提示するステップとを含む方法。
【請求項１５】
受信メッセージにより行う処理を決定するために使用している制御情報を記憶するための最初のステップをさらに含む、請求項１４に記載の方法。
【請求項１６】
コンピュータが使用することができる媒体上に記憶しているコンピュータ・プログラムであって、コンピュータに前記請求項１４および１５のいずれか１項に記載の方法を実行させるためのコンピュータ可読プログラム手段を備えるコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク内およびネットワークを通しての通信を行うための方法および回路装置に関する。特に、本発明は、少なくとも１つのデータ・ネットワークを通して遠隔ユニットと、また少なくとも１つの専用ＣＰＵ（中央処理装置）と通信するための方法および装置に関する。
【０００２】
【従来の技術】
パソコンおよびワークステーション上の組み込みシステムから大型コンピュータ・システムに至るまですべての種々のサイズのコンピュータ・システムは、通常、１つまたはそれ以上のネットワークに接続している。コンピュータ・システムは、ネットワークを通してさらに計算を行うために、種々の大部分は遠隔地に位置するシステムから情報を収集する。このような情報は、情報を受信するコンピュータ・システムにより制御され監視される遠隔システムの動作状態を示すパラメータを含んでいる場合がある。
【０００３】
このような装置の一例としては、現在の自動車に搭載されている電子制御装置（ＥＣＵ）等がある。ＥＣＵは、例えば、いくつかの個々のＣＡＮ（コントローラ・エリア・ネットワーク）バスのような複数のリアルタイム・ネットワーク、またはＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍ  Ｔｒａｎｓｐｏｒｔ）、すなわち、自動車で使用される光バス・システムまたはＩＥＥＥ１３９４（ファイアワイヤ）のようなマルチメディア・ネットワークのような他の多目的ネットワークに接続することができる。
【０００４】
動作中、ＥＣＵは、遠隔システムを制御するためにアプリケーション・プログラムを実行する。同時に、ＥＣＵは、実行中のアプリケーション・プログラムが必要とするパラメータを含んでいる送信中のデータから上記情報を選択および検索するために種々のバスおよびネットワークを監視しなければならない。通常、複数のバスは、ＥＣＵが内蔵している中央処理装置（ＣＰＵ）に直接取り付けられている。バスを監視し、必要な情報を選択および検索すると、ＥＣＵの全性能に対して極めて重要な処理負荷が発生する。処理負荷は、特に、転送、ゲートウェイ、バス・ブリッジ、およびアプリケーション・プログラムを実行するためにＥＣＵが同時に実行しなければならないフィルタリング機能により発生する。
【０００５】
通常、小型コンピュータおよび組み込みシステムの場合には、ルーティング、ゲートウェイ、バス・ブリッジ、およびフィルタリング機能により発生する処理負荷は小さなものでなければならないし、大部分のコンピュータの性能を、まず第一に、特定のＣＰＵに割り当て済みのターゲット・アプリケーションのために残しておかなければならない。
【０００６】
イーサネット（Ｒ）のようなローカル・エリア・ネットワーク（ＬＡＮ）とは異なり、ＣＡＮバス・システムのようなリアルタイム・バス・システムは、１つのデータ・パケット毎に比較的少量のデータを転送する。この機能は、バス・システムのリアルタイム機能、すなわち、システムの機能が、通常、ミリ秒またはマイクロ秒であるある小さな応答時間の上限内の刺激に確実に応答するために重要なものである。しかし、リアルタイム・バス・システムを使用することにより、所与の時間内に比較的大量のデータ・パケットを送信することができる。それ故、リアルタイム・バス・システムは、関連データ・パケットを選択し、検索しなければならないそれに接続しているＣＰＵに対して非常に大きな割込み率を発生する。一例を挙げて説明すると、５０ＭＨｚで稼動しているＰｏｗｅｒＰＣ４０３ＣＰＵを使用している処理システムに接続している４つの独立しているＣＡＮバス・システムは、平均して５０％を優に超えるＣＰＵ負荷を生じる割込み率を発生する場合がある。このような事態は、ＣＡＮバス・システムによりトリガされた割込みの場合にだけ発生するものである。
【０００７】
現在の技術レベルの装置の場合には、ＲＩＳＣ（縮小命令セット・コンピュータ）またはＣＩＳＣ（コンプレックス命令セット・コンピュータ）アーキテクチャをベースとして実行された１台または数台（並列）のプロセッサのような標準計算機システムが、相互通信アプリケーションおよびタスクを実行するために使用されている。
【０００８】
十分な処理性能を持つ、相互通信アプリケーションおよびタスクのために使用することができる現在の技術レベルの計算機システムは、複数のバス・アダプタが計算機システムを通して接続している場合には重大な問題になってきている。例えば、４つの１Ｍｂｐｓ（メガビット／秒）バス・アダプタが発生する最悪の割込み率を計算すると、毎秒の割込み率が、現在の標準プロセッサが供給することができる計算能力を遥かに超える場合がでてくる。
【０００９】
比較的大量のデータ・パケットを処理しなければならないので、相互通信アプリケーションの分野での処理システムに対する性能に対する要求は大きな影響を受ける。実際に使用した場合には、上記のような状況であると、計算機システム上で実行する他のアプリケーションによる要件と比較した場合、処理能力に対する要求が増大することになる。
【００１０】
計算能力の欠点を克服するために、システム・クロック周波数を２倍にすることができる。その結果、消費電力は、通常同様に２倍になり、例えば、システムの冷却に関する種々の問題が発生する。もう１つの解決方法としては、システムにもっと多くのプロセッサを接続するという方法がある。バス関連タスクを要求するすべての機能は、システムの追加のプロセッサにより実行することができる。しかし、そうすると、製造コストが増大することになる。何故なら、追加のプロセッサを設置しなければならないからである。
【００１１】
リアルタイム・バス・コントローラが使用するもう１つの方法は、いわゆる、「フィルタ・レジスタ」である。フィルタ・レジスタは、割込み率を低減し、時間の掛かるメッセージ・アドレス比較動作を低減することによりＣＰＵの負担を幾分「軽減」することができるハードウェア・コンパレータと相互に協力する。フィルタリング対象のメッセージＩＤは、例えば、１６識別子のような特定のレジスタに記憶され、バス上でアプローチするメッセージと比較される。一致する識別子を持つメッセージだけがＣＰＵに転送される。
【００１２】
米国特許第５，８３２，３９７号が、複数の車両システムの動作状態を監視し制御するための、車両制御システムで使用する総合通信装置を開示している。各車両システムは、その動作を制御するための局所制御装置を備え、該局所制御装置は、データ通信線によりアクセスすることができる。総合通信装置は、少なくとも１つのメモリ・ユニットと、局所制御装置が送信した少なくとも１つのメモリ・ユニットの中の１つに記憶している制御プログラムにより、複数の車両システムの動作状態を示す信号を受信し、処理し、また、データ通信線により複数の車両システムに送信するための制御信号を発生するタスクのための中央処理装置と、少なくとも１つのメモリ・ユニットの中の１つに記憶している上記制御プログラムの中の少なくとも１つのプログラムに従って、データ通信線により中央処理装置と局所制御装置との間の通信を制御するためのプログラマブル・サブプロセッサとを備える。
【００１３】
【発明が解決しようとする課題】
以下に本発明について説明するが、本発明の目的は、少なくとも１つのネットワークと少なくとも１つのＣＰＵとの間のデータ処理を改善する方法および装置を提供することである。
【００１４】
【課題を解決するための手段】
上記目的は、独立請求項に記載の方法およびシステムにより達成される。本発明の有利な実施形態については、従属請求項に記載され、以下の説明に開示される。
【００１５】
本発明の方法は、少なくとも１つのデータ・ネットワークを通して遠隔ユニットと、また少なくとも１つの専用ＣＰＵと通信するためのシステムのメッセージ処理に焦点を当てている。最初に、処理対象のメッセージが受信され、受信メッセージに対して実行する処理の種類の決定が行われる。次に、受信メッセージの内容および受信メッセージに対して決定した処理を指定するメッセージ特定情報が第１の組のレジスタに記憶される。これ以降、プロセス実行ユニットが処理のために使用できるようになった場合に、メッセージの処理をスタートするために第１の組のレジスタが監視される。次に、決定した処理が行われる。一方、メッセージの処理が終了すると、メッセージの処理結果の提示をスタートするために第１の組のレジスタが監視される。最後に、メッセージの処理結果が提示され、宛先ユニットに転送される。
【００１６】
少なくとも１つのデータ・ネットワークを通して遠隔ユニットと、また少なくとも１つの専用ＣＰＵと通信するための本発明のメッセージ処理装置は、処理対象のメッセージを受信し、受信メッセージに対して実行する処理の種類を決定するための第１の実行ユニットと、決定した処理を行うための第２の実行ユニットと、宛先ユニットに転送するメッセージの処理結果を提示するための第３の実行ユニットとを含む。
【００１７】
他の実施形態の場合には、第２の実行ユニットは、さらに、下記の機能のうちの１つまたは全部を備える。すなわち、データの内容および受信メッセージに対して決定した処理を指定するメッセージ特定情報を記憶するための第１の組のレジスタと、決定した処理を実行するための第１の組のレジスタにアクセスする少なくとも１つのプロセス実行ユニットと、および／またはプロセス実行ユニットが必要とする情報を記憶するために、上記少なくとも１つのプロセス実行ユニットに接続している第２の組のレジスタのうちの１つまたは全部を備える。本発明の装置は、プロセス実行ユニットが処理のために使用できるようになった場合に、メッセージの処理をスタートするために、第１の組のレジスタを監視し、および／またはメッセージの処理が終了した場合に、メッセージの処理結果の提示をスタートするために第１の組のレジスタを監視するように構成することができる。
【００１８】
好適には、本発明の装置は、ネットワーク内およびネットワークを通して通信するための相互通信処理システムに内蔵させることが好ましい。該システムは、さらに、少なくとも１つのデータ・ネットワークおよび少なくとも１つの専用ＣＰＵへの通信接続を提供するための交換機デバイスを備える。それにより、交換機は、一方では、第１および第３の実行ユニットに接続していて、他方では、いくつかのバス・アダプタおよびＣＰＵに接続することができるマルチプレクサ、および／または一方では、第１の実行ユニットに接続していて、他方では、いくつかのバス・アダプタおよびＣＰＵに接続することができる割込みバスを備える。
【００１９】
本発明の方法および装置の１つの利点は、複数のネットワークと通信する処理ユニットを、ネットワークを通して送信するデータ・パケットの量による高い割込み率から解放することである。
【００２０】
本発明の上記および他の目的、機能および利点は、以下の詳細な説明を読めば理解することができるだろう。
【００２１】
本発明の新規な機能が、添付の特許請求の範囲に記載される。しかし、本発明自身およびその好適な使用形態、他の目的および利点は、添付の図面を参照しながら、例示としての実施形態の以下の詳細な説明を読めば最もよく理解することができるだろう。
【００２２】
【発明の実施の形態】
図１は、本発明の相互通信プリプロセッサ１００のハイレベル・ブロック図である。相互通信プリプロセッサ１００（ＩＰＰ）は、３つの異なる種類のプロセスを実行する。上記３つの各プロセスは別々の実行ユニット上で実行される。
【００２３】
第１のタイプのプロセスは、「初期化プロセス」と呼ばれる。このプロセスは、図１のブロック１０２に示すように、また以下にさらに詳細に説明するように、入力メッセージを分析し、相互通信プリプロセッサ１００専用のコンフィギュレーション・データ、および入力データのコード化された情報に基づいてその他の処理を決定する。初期化プロセス（ＩＰ）は、ＩＰ実行ユニット１０４により行われる。
【００２４】
初期化プロセス後、メッセージは、「動的プロセス」と呼ばれる第２のプロセスにより処理される。動的プロセス（ＤＰ）は、初期化プロセスによりすでに決定済みのタスクを実行する。スタガー・ボックス１０６、１０７および１０８が示すように、動的プロセスを実行するために、３つのＤＰ実行ユニットが設置されている。実行するタスクにより、上記タスクの実行は、順次または同時に行われる。同時に実行することができるサブタスクに分割することができる１つの入力メッセージに対して行われるすべてのタスクには、それに応じてマークが付けられる。その後で、動的プロセス中に、並列に処理を行うために２つ以上の実行ユニットを使用することができる。それ故、本発明の相互通信プリプロセッサ１００のトポロジーは、並列計算または順次計算に限定されないで、実行対象の実際のタスクによりいずれの方法でも計算を行うことができる。
【００２５】
すなわち、周知の現在の技術レベルのプロセッサ・トポロジーへの特殊化の際に、相互通信プリプロセッサのアーキテクチャは固定プロセッサ・アーキテクチャで動作するが、その動作は識別することはできない。それどころか、相互通信プリプロセッサ・アーキテクチャは、実行対象の各ジョブによりトリガされる。それ故、論理相互通信プリプロセッサ・システム・アーキテクチャは、実際の要件に合わせて、そのプロセッサ・トポロジーを動的に連続的に調整する。
【００２６】
第３のタイプのプロセスは、「提示プロセス」と呼ばれる。提示プロセス（ＰＰ）は、複数のＤＰ実行ユニット上で実行される動的プロセスを監視する専用ＰＰ実行ユニット１１０上で実行される。動的プロセス中に実行されたタスクが終了した後で、ＰＰ実行ユニットは、入力メッセージ１０２の計算結果としてメッセージ１１２を出力する。
【００２７】
図２について説明すると、この図は、本発明の相互通信プリプロセッサ２００のハイレベル・ブロック図である。図の相互通信プリプロセッサ２００は、４つの独立しているＣＡＮバス２０２−２０５、およびさらに第１および第２の独立しているＣＰＵ２０７および２０８を接続するように設計されている交換機２０１に接続している。第１および第２のＣＰＵ２０７および２０８は、それぞれ、第１および第２の追加のバス・システム２１０および２１１への接続を提供する。追加の第１および第２のバス・システム２１０および２１１は、相互に異なるものであってもよく、また、例えば、ファイアワイヤ・システム、すなわち、ＩＥＥＥ１３９４が指定する高性能シリアルバス、または、例えば、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍ  Ｔｒａｎｓｐｏｒｔ）のような任意の他の種類のマルチメディア・バスにより形成することができる。
【００２８】
最大４つのＣＡＮバスおよび１つまたは２つのＣＰＵが一緒に接続している状態は、現在の自動車で使用している通常のネットワーク要件を表す。しかし、本発明の相互通信プリプロセッサは、この特定のバス・システムにも、バスの特定の数にも、それに接続しているＣＰＵの数にも限定されない。
【００２９】
４つの各ＣＡＮバス２０２−２０５は、各バス・アダプタ２１４−２１７に接続している。バス・アダプタ２１４−２１７は、ＣＡＮ−ＣまたはＣＡＮ−Ｂ物理層を通して各ＣＡＮバス２０２−２０５への接続を提供している標準化ＣＡＮコントローラにより形成することができる。一方、各バス・アダプタ２１４−２１７は、割込み要求バス２２０に接続している。一方、各バス・アダプタ２１４−２１７は、マルチプレクサ２２２に接続している。しかし、マルチプレクサ２２２への接続は、バス・アダプタ２１４−２１７をマルチプレクサ２２２に接続するためのワイヤ、ＰＣＢ（プリント基板）トラックまたは集積回路内の接続のような複数の組の導体を供給するバスにより形成することができる。
【００３０】
４つのバス・アダプタ２１４−２１７に対応して、ＣＰＵ２０７および２０８も割込みバス２２０およびマルチプレクサ２２２に接続している。マルチプレクサ２２２は、さらに、ＩＰ（初期化プロセス）実行ユニット２２６、およびＰＰ（提示プロセス）実行ユニット２３０内に位置する送信ユニット２２８の制御エンジン２２４への接続を示す。コントローラ２３２は、第１のＣＰＵ２０７、第２のＣＰＵ２０８および送信ユニット２２８がそれぞれ受信し、専用制御信号線を通して送信した制御信号によりマルチプレクサ２２２を制御する。該装置により、マルチプレクサは、バス・アダプタ２１４−２１７およびＣＰＵ２０７および２０８から制御エンジン２２４または送信ユニット２２８への接続を提供することができる。
【００３１】
ＩＰ実行ユニット２２６は、さらに、ＩＰＰプリセット・インタフェース２３４およびＩＰＰ記憶装置サブシステム２３６を備える。ＩＰＰプリセット・インタフェース２３４は、第１のＣＰＵ２０７により初期化することができ、制御エンジン２２４と制御情報を交換することができ、一方、ＩＰＰ記憶装置サブシステム２３６は、バス・アダプタ２１４−２１７のうちの１つ、またはＣＰＵ２０７および２０８のうちの一方から受信したメッセージを計算するために必要な制御情報を記憶するためのものである。
【００３２】
マルチプレクサ２２２に接続している他に、制御エンジン２２４は、割込みバス２２０にも接続していて、さらに、ＤＰ（動的プロセス）実行ユニット２３９内に位置する実行タグレジストリ２３８への接続を有し、受信メッセージの計算のために必要なデータを記憶する。実行タグレジストリ２３８自身は、データを記憶し、実行ユニット２４０−２４４の間でデータを交換するためのレジスタ・プール２４６にアクセスすることができる第１、第２および第３の実行ユニット２４０−２４４に接続している。もちろん、実行ユニットの数は３つに制限されないし、本発明の相互通信プリプロセッサ内には任意の数の実行ユニットを設置することができる。
【００３３】
実行タグレジストリ２３８から、専用データ・リンクを通して情報を送信ユニット２２８に転送することができる。ここから、情報をマルチプレクサ２２２に供給することもできるし、直接第１または第２のＣＰＵ２０７および２０８に提供することもできる。
【００３４】
すなわち、ＰＰ実行ユニット２３０は、実行タグレジストリ２３８を連続的に監視し、解釈する。特定のデータ・フィールドが、「全プロセス終了」を意味する通知に復号されるや否や、ＰＰ実行ユニットはトリガされ、全プロセス機能を終了するために、特殊な「提示処理」手順がスタートする。
【００３５】
提示プロセス手順は、全システム仕様により定義される。しかし、通常のジョブは、宛先メッセージ・アドレスの入手または発生、メッセージの処理結果であるデータからの新しいメッセージの入手および組立て、指定のターゲット・システムへの新しいメッセージの発行および／またはレジスタ・ファイルまたはＦＩＦＯ（先入れ先出しキュー）へのメッセージの送信、または個々の出口メッセージ待ち行列の優先分類のような機能である。
【００３６】
複雑な提示処理機能は、非常に効果的なシステムを構築するためのプロセス駆動トポロジーにより構成することができる。
【００３７】
実行タグレジストリは、終了するまで相互通信プリプロセッサ・プロセスと同時に動作する。この時間中、実行タグレジストリは、フィードバックにより連続的に更新される。「ペンディング」状態の動的プロセスの数は、全相互通信プリプロセッサ・プロセス中に増大したり、減少したりする。この時点で、実行タグレジストリ内のすべての実行フラグはクリアされ、全ＩＰＰプロセスを終了させるために提示プロセスが代わって動作する。ポスト実行ユニットが、実行タグレジストリおよび最後に終了したＤＰ実行ユニットが発生したデータ内に含まれている結果を代わって処理する。
【００３８】
次に、ポスト実行ユニットは、新しいメッセージを作成するためにこの情報を使用する。実行タグレジストリおよび最後のＤＰ実行ユニットがアンロードされ、解放される。
【００３９】
ＰＰ実行ユニット２３０は、メッセージを終了し、「結果として得られる」メッセージを出力パイプラインに供給する。無効メッセージは、相互通信プリプロセッサ・コンフィギュレーション・レジスタの仕様により、ソフトウェア制御の時点で捨てられるか、拒否される。特定の相互通信プリプロセッサ・システム要件により、ＰＰ実行ユニットは、出力パイプライン内に記憶しているメッセージに対して「優先分類」を行うことができる。直後に、各バス・アダプタに対する要求またはＣＰＵに対する割込みへの要求が発行される。各バス・アダプタがスタートし、仲裁を実行し、送信メッセージの受信に成功した場合、対応する出力パイプラインをクリアし、またはＣＰＵの場合には、割込みサービス・ルーチンが、メッセージを終了する。
【００４０】
パイプ・オーバフロー処理は、相互通信プリプロセッサ・システム・コンフィギュレーション・レジスタ内で定義される。パイプ・オーバフローの場合には、相互通信プリプロセッサが、初期化実行ユニットを停止し、ＣＰＵにオーバフロー状態を通知する割込みをＣＰＵに発行することができる。
【００４１】
コントローラ２３２、マルチプレクサ２２２および割込みバス２２０が、交換機２０１を形成している。交換機２０１は、実際の相互通信プリプロセッサに対する有利なシステム特性を改善することができる機能的拡張である。交換機２０１のハードウェア機能は、図２に示すように、相互通信プリプロセッサ、ＣＰＵ２０７および２０８、数個のバス・アダプタ２１４−２１７の間に挿入される。
【００４２】
交換機２０１は、ＣＰＵ２０７および２０８の一方、または相互通信プリプロセッサ２００により制御される多重化スキームである。そのため、ＣＰＵ２０７および２０８は、相互通信プリプロセッサ２００の機能を使用することができる。例えば、ＣＰＵ２０７および２０８の一方が発生したメッセージは、同じように、いくつかのＣＡＮバス２０２−２０５に同報通信しなければならない。この場合、メッセージは、交換機２０１により相互通信プリプロセッサ２００に多重化され、次に、相互通信プリプロセッサ２００は、メッセージを処理し、すぐに配信をスタートする。この手順により、時間が有意に短縮される。何故なら、このタスクを動作するように特殊化された相互通信プリプロセッサ２００は、ＣＰＵ２０７および２０８の一方により形成されたマスタＣＰＵと比較した場合、処理時間のほんの一部しか必要としないからである。さらに、マスタＣＰＵは、１つのメッセージ動作だけを実行するだけでよく、転送する前にメッセージを計算しなければならない場合には、処理時間も短縮される。
【００４３】
図３は、本発明の同時に行われるプロセスの実行を示す図面である。ｘ軸３０２は時間の進行を示し、ｙ軸３０４は、図２のところで説明したように、相互通信プリプロセッサ・リソース、すなわち、ＤＰ実行ユニットおよび実行タグレジストリ内の記憶空間のうちの一方の入手を示す。
【００４４】
長方形のフレーム３０６が、実行タグレジストリＥＴＲ（ｎ）内の１つの記憶空間、および１つの特定の入力メッセージの処理に関連するすべてのＤＰ実行ユニットを囲んでいる。文字「ｎ」は、実行タグレジストリのランダム記憶空間を使用することができることを示す。同様に、ＤＰ実行ユニットの番号、「１」、「２」、「３」および「ｍ」は、最大ｍ個のＤＰ実行ユニットが存在することを示し、「ｍ」は、４以上の整数である。しかし、もちろん、並列ＤＰ実行ユニットの数は、本発明のベースになっているアイデアから逸脱することなしに実際に必要な性能により選択することができる。
【００４５】
１つの入力メッセージを処理した後で、実行タグレジストリの同じ記憶空間を使用することにより他の入力メッセージを計算することができる。同時に、第２のスタガー長方形フレーム３０８により示すように、実行タグレジストリ内の異なる記憶空間によりいくつかの他のメッセージも処理することができる。しかし、通常、３つ以上のメッセージを同時に処理することができる。
【００４６】
ＤＰ実行ユニットによる入力メッセージの処理は、矢印３１０で示すように、ＩＰ実行ユニット（図２参照）によりスタートする。ＩＰ実行ユニットは、実行タグレジストリの記憶空間を割り当て、入力メッセージに対する指定の処理を行うために、ＤＰ実行ユニットが必要とするすべての情報を記憶する。初期化後、ＩＰ実行ユニットは、入手することができる次の入力メッセージを直ちに処理する。同様に、ＩＰ実行ユニットは、実行タグレジストリの他の記憶空間を割り当て、次の入力メッセージに対する指定の処理を行うためにＤＰ実行ユニットが必要とするすべての情報を記憶する。
【００４７】
初期化プロセス（プロセス状態１）後、実行タグレジストリの特定の記憶空間は、メッセージの処理が終了するまで、割り当てられた状態のままである。図３の例の場合には、３つの異なるＤＰ実行ユニットは、入力メッセージの処理を同時にスタートする（プロセス状態２）。このことは、実行タグレジストリの占有記憶空間内に各フラグを設定することにより行われる。そのため、使用できるＤＰ実行ユニットは、自動的にタスクをピックアップし、処理をスタートすることができる。処理の準備ができているすべてのプロセスが、ＤＰ実行ユニットに提供される本発明のコンセプトにより相互通信プリプロセッサのリソースの柔軟な使用を確実に行うことができる。実行する特定のタスクおよび作業量により、相互通信プリプロセッサは、特定のタスクを順次、または並列に、または順次および並列の組合わせにより処理する。
【００４８】
ＤＰ実行ユニットｄｐ＿ＥＵ（２）がその計算を終了した後、ＤＰ実行ユニットｄｐ＿ＥＵ（３）からの結果を待っているＤＰ実行ユニットｄｐ＿ＥＵ（ｍ）上で他のプロセスがスタートする。すべての関連ＤＰ実行ユニットが自分のジョブを実行した後でだけ、提示プロセス（プロセス状態３）は、計算結果を読み出し、それをバスに送信するか、またはそれをＣＰＵに転送する（図２参照）。同時に、同じ記憶空間内の新しいエントリおよび新しい「負荷ＥＴＲ」プロセスで示すように、実行タグレジストリの記憶空間が解放され、実行対象の他のメッセージに対して再使用できるようになる。
【００４９】
図４について説明すると、この図は、本発明の相互通信プリプロセッサのメッセージ処理を示すフローチャートである。このプロセスは、ブロック４１２で示す割込みモニタに割込みバス４１０を通して割込み要求を送信することにより、バス・アダプタ４０２−４０５のうちの１つ、またはＣＰＵアダプタ４０７および４０８のうちの一方によりスタートする。割込みモニタは、割込みを入手し、他の処理をスタートする。このことは、ブロック４１４で示すように、任意の割込み要求（ＩＲＱ）がすでに発行されているかどうかを判断することにより行われる。
【００５０】
「いいえ」である場合には、プロセスはブロック４１２に戻り、「はい」である場合には、プロセスは、ブロック４１６に進み、ここで以下にさらに詳細に説明する初期化プロセスが行われる。初期化プロセスは、割込み要求の発行に成功した特定のユニットからメッセージ情報を収集する。
【００５１】
以下にさらに詳細に説明するブロック４１８で示すＤＰ（動的プロセス）実行プロセスは、初期化プロセスを監視する。ＤＰ実行プロセスが、新しく到着したメッセージ・データを計算することができる場合には、プロセスおよびメッセージ情報はブロック４１８に送られる。さらに、ＤＰ実行プロセス自身は、以下にさらに詳細に説明するＰＰ（提示プロセス）実行プロセスにより監視される。ＤＰ実行プロセスが進行中のメッセージの計算を終了すると、監視ＰＰは、上記計算の終了を検出し、それ自身さらに計算するためにメッセージを代わって処理する。プロセスはブロック４２０に進み、ここでＰＰ実行プロセスが行われる。ＰＰ実行プロセス自身は、ＣＰＵ４０７および４０８のうちの一方に割込み要求を送り、計算したメッセージ・データを、データ・バス４２２を通して各ＣＰＵ４０７または４０８に書き込む。
【００５２】
図５について説明すると、この図は、図４のメッセージ処理の初期化プロセス中のメッセージ処理を示すフローチャートである。ブロック５００は、このプロセスのスタート点であり、図４のブロック４１６のプロセス、初期化プロセスはここからスタートする。ブロック５００から、プロセスは直ちにブロック５０２に進み、ここで、初期化プロセス実行ユニット（図２参照）がメッセージ・データを受け入れる準備ができているかどうかの判断が行われる。「いいえ」の場合には、プロセスはブロック５０４が示す待機状態による所定の時間だけ遅れてブロック５０２に戻る。「はい」の場合には、プロセスはブロック５０６に進み、ここでメッセージが検索され、一時的に記憶される。
【００５３】
判断ブロック５０２は、初期化プロセス実行ユニットが、ブロック５０８が示すＩＰ実行ユニットに関連する状態フラグからメッセージ・データを受け入れるための準備ができているかどうかを示す情報を入手する。ＩＰ実行ユニットが、処理対象の新しいメッセージ・データを受信した後で、状態フラグが「使用中」に設定される。同時に、割込み要求の数をカウントする内部カウンタの値が増大し、ブロック５１０で示す遅延タイマがスタートする。遅延タイマは、遅延時間を超えると、タイムアウト・イベントを発行する。ブロック５１２は、割込み要求カウンタが所定の値になったかどうかを判断するブロックである。「はい」の場合には、判断ブロック５１２の「はい」と、ブロック５１８で計算した論理積の結果が「はい」であるかどうかの判断を示すブロック５１６の「はい」との間の論理和を示すイベントがブロック５１４に発行される。
【００５４】
ブロック５１８は、ブロック５１０の遅延タイマからタイムアウト・イベントを受信し、実行タグレジストリ（図２参照）が使用できるかどうかを判断する判断ブロック５２０から「いいえ」を受信する。ブロック５１６の判断またはブロック５１２の判断が「はい」である場合には、プロセスは、ブロック５２２に進み、ここで、割込み要求がＣＰＵの一方に発行され、メッセージ・データがＣＰＵに転送される。この特定のルーチンは、ＩＰＰが使用できないかまたは使用中である状況を示すためのものであり、そのため、この時点では、各メッセージ要求を処理することはできない。この特定の場合には、メッセージは、ＣＰＵの一方に「未処理／そのまま」として転送される。
【００５５】
前に戻ってブロック５０６について重点的に説明すると、プロセスはブロック５２４に進み、ここで、ＩＰＰ変化記憶装置（図２参照）がアクセスされ、実行タグレジストリが割り当てられる。プロセスがブロック５１４に進んだ場合に、タイムアウト・イベントがまだ発生していない時でも実行タグレジストリの割当てが行われる。
【００５６】
ブロック５２０で、実行タグレジストリが使用できると判断した場合には、プロセスはブロック５２６に進み、ここで、実行タグレジストリがスタートし、また準備が行われる。同時に、ブロック５０８の状態フラグが「準備ＯＫ」に設定される。ブロック５２６から、プロセスは、ブロック５２８により示すように、図６のフローチャートのスタート・ブロック６００に進む。
【００５７】
図６について説明すると、この図は、図４のメッセージ処理の動的プロセス中のメッセージ処理を示すフローチャートである。ブロック６００は、このプロセスのスタート点であり、図５のブロック５２８のプロセスはここからスタートする。ブロック６００から、プロセスは直ちにブロック６０２に進み、そこで実行タグレジストリが監視される。この監視は、ラウンド・ロビン手順により行うこともできるし、または実行タグレジストリにある変化があった場合には何時でも自発的に割込み信号を発行する手順によっても行うことができる。
【００５８】
次に、プロセスはブロック６０４に進み、ここで、処理対象の実行タグレジストリが存在するかどうかの判断が行われる。「いいえ」の場合には、プロセスは、ブロック６０６に示すように、実行タグレジストリを再び監視した後で、ブロック６０２に戻る。「はい」の場合には、プロセスはブロック６０８に進み、ここで、メッセージが検索され、一時的に記憶される。次に、プロセスはブロック６１０に進み、ここで実行タグレジストリタスクが割り当てられ、ブロック６１１に示すように、実行タグレジストリ・フラグが「進行中」に設定される。その後で、ブロック６１２において、実行タグレジストリタスクに従ってメッセージ・データが処理される。
【００５９】
実行タグレジストリタスクは、特に下記のタスクのうちの１つまたはそれ以上である。すなわち、メッセージ・データの記憶、タイマの初期化、タイマの比較、イベントまたは発生の計数、イベントまたは発生の比較、ブール演算の実行、新しいメッセージの作成のうちの１つまたはそれ以上である。実行タグレジストリタスクの処理中、レジスタ・プール（図２参照）がアクセスされ、ブロック６１４およびレジスタ空間が割り当てられ、また各レジスタ空間に、レジスタ空間への必要なアクセス権により「専用」または「公用」のラベルが付けられる。
【００６０】
ブロック６１６での判断により、処理が終了したかどうかのチェックが行われる。「いいえ」の場合には、プロセスはブロック６１２に戻る。「はい」の場合には、プロセスはブロック６０４に戻り、処理するものがない場合には、ブロック６１８に示すように、実行タグレジストリ・フラグが「処理済み」に設定される。現在のメッセージ・データの処理は終了しているが、プロセスがカウンタをスタートさせ、さらにメッセージを待機しなければならない場合には、実行タグレジストリ・フラグは、ブロック６２０に示すように、「ペンディング」に設定される。しかし、このブロックは、すべてのブロック６１１、６１８および６２０からブロック６０２に戻る。
【００６１】
図７は、図６のメッセージ処理の実行ユニット・プロセスのメッセージ処理を示す非常に詳細なフローチャートである。ブロック７００は入口点である。このブロックは、円内の「ａ」で示すように、図６のブロック６１２への変化に対応する。最初に、ブロック７０２に示すように、メッセージ処理手順が識別され、またリソース要件が決定される。次に、プロセスはブロック７０４に進み、ここで、処理対象のメッセージ・データにより処理対象物と識別されたプロセスに対応するペンディング・プロセス用のレジスタ・プールを走査することにより引き続き処理が行われる。次に、プロセスはブロック７０６に進み、ここで、レジスタ・プール内で、一致するプロセスＩＤが発見されたかどうかの判断が行われる。「はい」の場合には、プロセスは、ブロック７０８に分岐し、ここで、必要なレジスタの割当てが行われる。この時点で行われる通常の動作としては、例えば、論理演算または関数の結果として得られるデータの記憶等がある。各論理和関数は、新しいメッセージ・データを第１のパラメータとして使用し、現在のレジスタ・データを第２のパラメータとして使用する。必要な場合には、タイムスタンプが新しく生成された登録に適用される。さらに、メッセージの発生時間制限に達したかどうかを判断するために、上記時間が、予め定義した時間例と比較される。
【００６２】
「いいえ」の場合には、ブロック７１０に進み、ここで、レジスタ・プール空間が割り当てられ、特定のレジスタ空間に「公用」というラベルが貼られる。次に、ブロック７１２において、最初に、タイムスタンプが記憶され、次に、メッセージ・データが記憶され、最後に、実行タグレジストリ・フラグが、ブロック７１４に示すように、「ペンディング」に設定される。
【００６３】
ブロック７０８から、プロセスは、ブロック７１６に進み、ここで、タイムスタンプ値が、パラメータ「ｔｒ」より大きいかどうかの判断が行われ、それにより、パラメータ「ｔｒ」が、それぞれ評価および処理対象のメッセージ発生の時間に等しくなる。「いいえ」の場合には、プロセスは、ブロック７１４に分岐する。「はい」の場合には、プロセスはブロック７１８に進み、ここで、実行タグレジストリ・フラグが、「処理済み」に設定される。ブロック７１４および７１８から、プロセスは、円内の「ｂ」で示すように、図６のブロック６０２に進む。
【００６４】
図８について説明すると、この図は、図４のメッセージ処理の提示プロセスのメッセージ処理のフローチャートである。ブロック８００は、このプロセスのスタート点であり、図４のブロック４２０のプロセスはここからスタートする。ブロック８００から、プロセスは直ちにブロック８０２に進み、ここで実行タグレジストリが監視される。この監視は、ラウンド・ロビン手順により行うこともできるし、または実行タグレジストリ内にある変化があった場合には何時でも直接割込み信号を発行する手順によっても行うことができる。
【００６５】
次に、プロセスはブロック８０４に進み、ここで、対応するプロセスが終了したかどうかを示す実行タグレジストリ・フラグが存在するかどうかの判断が行われる。「いいえ」の場合には、プロセスは、ブロック８０６に示すように、実行タグレジストリを再び監視した後でブロック８０２に戻る。「はい」の場合には、プロセスはブロック８０８および８１０に進む。ブロック８０８においては、計算したメッセージの受取人がＣＰＵであるかどうかの判断が行われる。「いいえ」の場合には、プロセスはブロック８０８および８１０に戻る。「はい」の場合には、ブロック８１２に示すように、メッセージ・データとＩＤとを組合わせることによりＣＰＵメッセージが作成される。次に、プロセスはブロック８１４に進み、ここでＣＰＵに受信対象のメッセージを通知するために、ＣＰＵに割込みが送られる。次に、プロセスはブロック８１６に進み、ここで、すべての受取人によりメッセージが受信されたかどうかの判断が行われる。「いいえ」の場合には、ブロック８１８に示す待機状態による所定の時間だけ遅れてブロック８１６に戻る。「はい」の場合には、プロセスはブロック８２０に進み、そこでブロック８０２に戻る前に各実行タグレジストリがクリアされ、解放される。
【００６６】
ブロック８１０に戻り、そこで、計算したメッセージの受取人が、バス・アダプタ（図２参照）のうちの１つであるかどうかの判断が行われる。「いいえ」の場合には、プロセスはブロック８０８および８１０に戻る。「はい」の場合には、ブロック８１２に示すように、メッセージ・データとＩＤとを組み合わせることによりバス・アダプタ・メッセージが作成される。次に、プロセスはブロック８２４に進み、ここで作成したメッセージを各バス・アダプタ・コントローラに関連する送信バッファに送信するステップが行われる。次に、プロセスはブロック８１６に進み、そこですでに説明した判断が行われる。
【００６７】
図９は、図２のＩＰＰ記憶装置サブシステム２３６内に記憶している情報の構成の一例である。記憶装置サブシステムは、例えば、図９の例に示すように、それぞれが３２ビットの記憶容量を持つ８１９２メモリ・アドレスのような従来のメモリ素子により構成することができる。記憶装置サブシステムの内容は、相互通信プリプロセッサに接続しているＣＰＵのうちの一方により設定することができる。それ故、相互通信プリプロセッサを特定のアプリケーションのニーズに応じて構成することができる。しかし、テーブル９００の情報は、２つ以上のテーブルまたはメモリ素子内に交互に記憶することができる。さらに、テーブルについての下記の説明は、例示としてのものであって、同じまたは対応する情報を同様な方法で記憶することができる。
【００６８】
データ・ビット０〜７は、受信したデータ・メッセージを計算するために使用するパラメータへのポインタを記憶するために使用される。パラメータ自身は、図２のＩＰＰ記憶装置サブシステム２３６に内蔵させることができる専用メモリ素子に記憶される。他の方法としては、直接パラメータ値を含むデータ・フィールドが設けられている。次のデータ・ビット８〜１０は、メッセージ・フィルタ演算コード（ｏｐ−ｃｏｄｅ）テーブル９１０に示すように、メッセージ・フィルタ演算コードをコード化するために使用される。
【００６９】
メッセージ・フィルタ演算コード・テーブル９１０においては、値「０」および「１」はバイナリ値であり、文字「ｎ」は各機能用の「０」または「１」で置き換えることができる。文字「ｘ」は、いわゆる「ｄｏｎ’ｔ  ｃａｒｅ」、すなわち、特定のディジットに「０」または「１」を代入することができ、そうしてもシステムに何らの論理的影響がないことを示す。データ・メッセージが選択したメモリ・セルが、「０００」に設定される各ビット８〜１０を示す場合には、タイムスタンプが、各メッセージの計算中に発生する。それが他のメッセージ・フィルタ演算コードのうちの１つである場合には、例えば、カウント・スタンプ、それ以上何も計算をしないメッセージの即時転送、またはパラメータの適用のような他の動作を実行することを意味する。
【００７０】
同様に、以降の３つのビット１１〜１３が編成される。これらのビットは、データ演算コード・テーブル９２０のところで説明したように、データ演算コードを表す。データ演算コードのコード化によりデータ・メッセージの内容がコピーされるか、またはＯＲ、ＡＮＤまたはＸＯＲ（排他的論理和）のようなブール演算がメッセージの内容に適用される。さらに、パラメータを上記メッセージに適用することができる。他の実施形態の場合には、異なる動作を実行することができることが分かっている。しかし、浮動小数点演算のようなもっと複雑な数学的演算の場合には、さらに計算を行うために、メッセージを瞬間的にＣＰＵのうちの一方に転送することができる。相互通信プリプロセッサ内で比較できる簡単な演算だけを行う方法により、相互通信プリプロセッサのハードウェアの実行労力を容易に少なくすることができる。
【００７１】
７つのデータ・ビット１４〜２０においては、アドレス・セルを選択するメッセージの宛先を、バス宛先フィールド・テーブル９３０に示すようにコード化することができる。各ビット１４〜１９は、各メッセージの宛先として、バス・アダプタのうちの１つ、またはＣＰＵ（図２参照）のうちの１つを表す。２つ以上のビットが設定されている場合には、メッセージは２つ以上の宛先に送信される。ビット２０が「１」に設定されている場合だけメッセージは脱落する。
【００７２】
残りの１１ビット２１〜３１は、ＩＤ（識別）変換をコード化するために使用される。例えば、異なるネットワークに転送する前に入力メッセージのＩＤを変更しなければならない場合にこの変換が行われる。
【００７３】
入力メッセージによる特定の処理が記憶されるアドレスは、入力メッセージのＩＤに対応する。それ故、入力メッセージのメッセージＩＤにより各アドレスが選択され、コード化された処理が読み出され、すでに説明したように、実行タグレジストリに記憶される。
【００７４】
本発明の相互通信プリプロセッサのもう１つの利点は、特に、比較できる少ない量のハードウェア・ゲートがあれば十分であり、それによりシステム・コストが安くなることである。さらに、そのため、システムの電力消費が少なくなり、物理的なサイズが小さくなり、信頼性が向上する。都合のよいことに、相互通信プリプロセッサは、ブリッジ、ルータ、ゲートウェイ機能で、マスタＣＰＵの作業量を最低限度まで低減することによりマスタＣＰＵの負荷を軽減する。それ故、ＣＰＵは、システム・アプリケーションに対してより強力な計算パワーを有する。全システムの機能は、強力なメッセージ・フィルタリングにより向上する。
【００７５】
本発明は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの組合わせで実行することができる。任意のタイプのコンピュータ・システム、または本明細書に記載する方法を実行することができる他の装置も使用することができる。ハードウェアとソフトウェアの通常の組合わせとしては、ロードされ、実行された場合に、本明細書に記載する方法を実行するようにコンピュータ・システムを制御するコンピュータ・プログラムを含む汎用コンピュータ・システム等がある。また、本発明を、本明細書に記載する方法の実施を可能にするすべての機能を備え、コンピュータ・システムにロードされた場合に、これらの方法を実行することができるコンピュータ・プログラムに組み込むこともできる。
【００７６】
この場合のコンピュータ・プログラム手段またはコンピュータ・プログラムは、特定の機能を実行する情報処理能力を有するシステムに直接または下記の処理、すなわち、ａ）他の言語、コードまたは記号への変換、ｂ）異なる材料形態での再生のうちのどちらか、または両方の後で特定の機能を実行させるための一組の命令セットの任意の言語、コードまたは記号による任意の表現を意味する。
【図面の簡単な説明】
【図１】
本発明の相互通信プリプロセッサのハイレベル・ブロック図である。
【図２】
本発明の相互通信プリプロセッサのハイレベル・ブロック図である。
【図３】
本発明の同時に行われるプロセスの実行を示す図面である。
【図４】
本発明の相互通信プリプロセッサのメッセージ処理を示すフローチャートである。
【図５】
図４のメッセージ処理の初期化プロセスのメッセージ処理を示すフローチャートである。
【図６】
図４のメッセージ処理の動的プロセスのメッセージ処理を示すフローチャートである。
【図７】
図６のメッセージ処理の実行ユニット・プロセスのメッセージ処理を示すフローチャートである。
【図８】
図４のメッセージ処理の提示プロセスのメッセージ処理を示すフローチャートである。
【図９】
相互通信プリプロセッサ記憶装置サブシステムに記憶している情報の構成を示すテーブルである。
【図１】
2004515971.tif 000003
【図２】
2004515971.tif 000004
【図３】
2004515971.tif 000005
【図４】
2004515971.tif 000006
【図５】
2004515971.tif 000007
【図６】
2004515971.tif 000008
【図７】
2004515971.tif 000009
【図８】
2004515971.tif 000010
【図９】
2004515971.tif 000011
【国際公開パンフレット】
2004515971.tif 000012
2004515971.tif 000013
2004515971.tif 000014
2004515971.tif 000015
2004515971.tif 000016
2004515971.tif 000017
2004515971.tif 000018
2004515971.tif 000019
2004515971.tif 000020
2004515971.tif 000021
2004515971.tif 000022
2004515971.tif 000023
2004515971.tif 000024
2004515971.tif 000025
2004515971.tif 000026
2004515971.tif 000027
2004515971.tif 000028
2004515971.tif 000029
2004515971.tif 000030
2004515971.tif 000031
2004515971.tif 000032
2004515971.tif 000033
2004515971.tif 000034
2004515971.tif 000035
2004515971.tif 000036
2004515971.tif 000037
2004515971.tif 000038
2004515971.tif 000039
2004515971.tif 000040
2004515971.tif 000041
2004515971.tif 000042
2004515971.tif 000043
2004515971.tif 000044
2004515971.tif 000045
2004515971.tif 000046
2004515971.tif 000047
2004515971.tif 000048
2004515971.tif 000049
2004515971.tif 000050
【手続補正書】
【提出日】平成14年11月12日(2002.11.12)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのデータ・ネットワーク（２０２−２０５）を通して遠隔ユニットと、また少なくとも１つの専用ＣＰＵ（２０７，２０８）と通信するためのメッセージ処理デバイス（２００）であって、
処理対象のメッセージを受信し、前記受信メッセージに対して実行する処理の種類を決定するための第１の実行ユニット（２２６）と、
前記決定した処理を行うための第２の実行ユニット（２３９）と、
ある宛先ユニットに転送するメッセージの処理の結果を提示するための第３の実行ユニット（２３０）とを備え、
前記第１の実行ユニット（２２６）が、受信メッセージに対して行う前記処理を決定するために使用している制御情報を記憶するためのメモリ素子（２３６）を備え、
前記第２の実行ユニット（２３９）が、データ内容および受信メッセージの前記決定した処理を指定するメッセージ特定情報を記憶するための第１の組のレジスタ（２３８）を備え、かつ、前記第２の実行ユニット（２３９）が、プロセス実行ユニット（２４０，２４２，２４４）を処理のために使用できる場合に、メッセージの処理をスタートするために前記第１の組のレジスタ（２３８）を監視するように構成されていて、
前記第３の実行ユニット（２３０）が、前記メッセージの処理が終了した場合に、前記メッセージ処理の結果の提示をスタートするために前記第１の組のレジスタ（２３８）を監視するように構成されているメッセージ処理デバイス。
【請求項２】
前記第２の実行ユニット（２３９）が、前記決定した処理を行うために前記第１の組のレジスタ（２３８）にアクセスする少なくとも１つのプロセス実行ユニット（２４０，２４２，２４４）を備える、請求項１に記載のデバイス。
【請求項３】
前記第２の実行ユニット（２３９）が、前記決定した処理を行うために前記第１の組のレジスタ（２３８）にアクセスする３つまたはそれ以上のプロセス実行ユニット（２４０，２４２，２４４）を備える、請求項２に記載のデバイス。
【請求項４】
前記第２の実行ユニット（２３９）が、前記プロセス実行ユニット（２４０，２４２，２４４）が必要とする情報を記憶するための前記少なくとも１つのプロセス実行ユニット（２４０，２４２，２４４）に接続している第２の組のレジスタ（２４６）を備える、請求項２または３に記載のデバイス。
【請求項５】
前記第１の実行ユニット（２２６）が、受信メッセージにより実行する処理を決定するために使用している前記制御情報で前記メモリ素子（２３６）を構成するためのインタフェースを備える、請求項１に記載のデバイス。
【請求項６】
ネットワーク内およびネットワークを通して通信するための相互通信処理システムであって、請求項１〜５のいずれか１項に記載のメッセージを処理するためのデバイスと、前記少なくとも１つのデータ・ネットワーク（２０２−２０５）および前記少なくとも１つの専用ＣＰＵ（２０７，２０８）へ通信接続を供給するための交換機デバイスとを備える相互通信処理システム。
【請求項７】
前記交換機が、一方では、前記第１および第３の実行ユニット（２２６，２３９）に接続していて、他方では、いくつかのバス・アダプタ（２１４−２１７）および前記少なくとも１つのＣＰＵ（２０７，２０８）に接続することができるマルチプレクサを備える、請求項６に記載の相互通信処理システム。
【請求項８】
前記交換機が、一方では、前記第１の実行ユニット（２２６）に接続していて、他方では、いくつかのバス・アダプタ（２１４−２１７）および前記少なくとも１つのＣＰＵ（２０７，２０８）に接続することができる割込みバスをさらに備える、請求項７に記載の相互通信処理システム。
【請求項９】
前記交換機が、前記マルチプレクサを制御するためのコントローラ（２３２）をさらに備えていて、それにより、前記コントローラが、前記第３の実行ユニット（２３０）または前記少なくとも１つのＣＰＵ（２０７，２０８）により制御されるように構成構成されている、請求項７または８に記載の相互通信処理システム。
【請求項１０】
少なくとも１つのデータ・ネットワーク（２０２−２０５）を通して遠隔ユニットと、また少なくとも１つの専用ＣＰＵ（２０７，２０８）と通信するためのシステムでメッセージを処理するための方法であって、
処理対象のメッセージを受信し、該受信メッセージにより行う処理のタイプを決定するステップと、
前記受信メッセージの内容および受信メッセージの前記決定した処理を指定するメッセージ特定情報を第１の組のレジスタ（２３８）に記憶するステップと、
プロセス実行ユニット（２４０，２４２，２４４）が処理のために使用できる場合に、メッセージの処理をスタートするために前記第１の組のレジスタ（２３８）を監視するステップと、
前記決定した処理を実行し、それにより処理を順次処理、並列処理またはこれらの処理の組合わせにより行うステップと、
前記メッセージの処理が終了した場合に、メッセージの処理の結果の提示をスタートするために前記第１の組のレジスタ（２３８）を監視するステップと、
転送する前記メッセージの処理結果を宛先ユニットに提示するステップとを含む方法。
【請求項１１】
受信メッセージにより行う処理を決定するために使用している制御情報を記憶するための最初のステップをさらに含む、請求項１０に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
米国特許第５，８３２，３９７号が、複数の車両システムの動作状態を監視し制御するための、車両制御システムで使用する総合通信装置を開示している。各車両システムは、その動作を制御するための局所制御装置を備え、該局所制御装置は、データ通信線によりアクセスすることができる。総合通信装置は、少なくとも１つのメモリ・ユニットと、局所制御装置が送信した少なくとも１つのメモリ・ユニットの中の１つに記憶している制御プログラムにより、複数の車両システムの動作状態を示す信号を受信し、処理し、また、データ通信線により複数の車両システムに送信するための制御信号を発生するタスクのための中央処理装置と、少なくとも１つのメモリ・ユニットの中の１つに記憶している上記制御プログラムの中の少なくとも１つのプログラムに従って、データ通信線により中央処理装置と局所制御装置との間の通信を制御するためのプログラマブル・サブプロセッサとを備える。
１９８６年１１月２５日付の米国特許第４，６２５，３０８号（ＫＩＭ  ＫＡＰ  Ｓ他）は、ブロック入力処理を開示している。ブロック入力タスクは、フロントエンド・サブシステム１３０２２が送信したブロックを受信する。このタスクの主な機能は、巡回冗長検査（ＣＲＣ）を確認し、ＣＲＣ検査の結果に基づいてブロックの肯定応答（または否定応答）を行い、ブロック・シーケンス番号を確認し、ブロックから完全なメッセージを組み立てることである。メッセージ・ディスパッチャ・タスクは、ブロック入力タスクからメッセージを受信し、メッセージのタイプをチェックすることにより、意図するメッセージの宛先が制御サブシステム自身なのか、または下位のサブシステムかどうかを決定する（ハッキリしない場合には、宛先サブシステムを決定するために、さらに、メッセージ宛先フィールドが確認される）。メッセージ・ディスパッチャ・タスクが、意図するメッセージの宛先が下位のサブシステムであると判断した場合には、宛先フィールドを復号し、適当な直列サブシステムに対してメッセージの送信を開始する直列サブシステム制御サブシステム・インタフェース・タスクがスタートする。タスクが、宛先が制御サブシステム自身であると判断した場合には、メッセージ・データを評価し、適当な行動をとるメッセージ処理タスクがスタートする。
１９９２年１０月６日付の米国特許第５，１５３，９０９号（ＢＥＣＫＬＥ  ＬＥＡＮＮ  Ｍ他）は、交換機からサービスを受けている複数のＡＣＤシステムに対してリソース制御およびコール・イベント・データ処理サービスを行うための中央局（ＣＯ）をベースとする自動電話着信分配（ＡＣＤ）システム装置を開示している。この装置は、制御プロセッサ複合システム（ＣＰＣ）と、ＡＣＤエンドユーザ・コール・イベント・データ・パーティショニングおよびＡＣＤエンドユーザ・リソース割当てメッセージ・スクリーニングを行う特殊イベントおよび制御リンク（ＥＣＬ）プロセッサと、ＡＣＤへの呼出しに関連する統計を入手するためにデータ処理を行う１つまたはそれ以上の経営情報システム（ＭＩＳ）プロセッサとを有する交換機を備える。ＥＣＬは、ＣＰＣからＭＩＳプロセッサへのコール・イベント・データ・メッセージを受信し、分割し、送信する。ＥＣＬは、また、メッセージが所定のフォーマットと一致するかどうかをチェックし、要求を行っているエンドユーザが、要求されたリソース割当て変更をすることができることを確認することにより、ＡＣＤリソースの割当てを制御するためにＡＣＤエンドユーザが送信したリソース割当て要求メッセージをスクリーニングする。最後に、ＥＣＬは、複数のＭＩＳプロセッサに対してインタフェースとして機能する。これらのＭＩＳプロセッサは、中央局、強化されたサービス・プロバイダの構内、またはエンドユーザの構内に設置することができる。都合のよいことに、エンドユーザ・コール・イベント・データ・パーティショニングおよびリソース割当てメッセージ・スクリーニングは、ＣＰＣプログラムをこれ以上複雑にしないでもＥＣＬにより実行され、ＡＣＤエンドユーザは、自分自身のＭＩＳプロセッサの使用、強化されたサービス・プロバイダが提供するＭＩＳプロセッサの共有、または交換機に設置されているＭＩＳプロセッサの共有という選択肢の中から選択することができる。




【国際調査報告】
2004515971.tif 000051
2004515971.tif 000052