(57)【要約】【課題】車両の試験の間に情報をリアルタイムでコンパイルするための事実上継目のないデータストリームを作成する。【解決手段】分散型多重処理システムは、中央信号ルーティングハブを通して相互接続された複数のノード１−６を含んでいる。各ノード１−６は、アクチュエータに接続され、情報を処理するプロセッサを含んでいるのが望ましい。ノード１−６は、更に、処理済情報にアドレスを割り当てる。通信リンクは、プロセッサとハブの間で処理済情報を送信するため、プロセッサとハブを相互接続している。中央ルーティングハブは、処理済情報をプロセッサから受信するためのソーターを備えている。ハブとソーターは、処理済情報の宛先を識別して、処理済み情報を、変更することなく、関係付けられた通信リンクを通してアドレス指定されたプロセッサに送る。【選択図】図１
2008269651.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサ及び第１実メモリ位置を有する第１ノードと第２プロセッサ及び第２実メモリ位置を有する第２ノードとを有し、前記第１及び第２ノードはそれぞれ第１及び第２通信リンクで中央信号ルーティングハブに接続されている分散型多重処理システム上で通信を行う方法において、
前記第１及び第２ノードにインデックスを付け、ノード毎に異なる宛先アドレスを定義する段階と、
前記第１ノードの前記第１プロセッサ内で情報を処理する段階と、
処理済の情報に、前記宛先アドレスの少なくとも１つを使ってアドレス指定する段階と、
前記処理済情報を、前記第１ノードの前記第１実メモリ位置中に当該処理済情報を記憶することなく、前記第１ノードの前記第１プロセッサから前記第１通信リンクを通して前記ハブに向けて送信し、それにより送信方ノードを定義する段階と、
前記処理済情報を、前記宛先アドレスと共に前記ハブ内で受信する段階と、
送信された前記処理済情報の前記宛先アドレスを、前記ハブ内で識別する段階と、
前記処理済情報を、変更を加えることなく、前記ハブから、前記少なくとも一方の通信リンクを通して、前記宛先アドレスと関係付けられた前記第１及び第２ノードの少なくとも一方に送り、それにより少なくとも１つのアドレス指定されたノードを定義する段階と、
前記処理済情報を、前記アドレス指定されたノードの前記実メモリ位置内に記憶する段階と、から成ることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数のプロセッサ間にデータ及び処理を分散する多重処理システムに関する。
【背景技術】
【０００２】
データの処理と分散は、事実上際限なく多彩なタスクを遂行する為の多種多様な製造及びビジネス関連のアプリケーションに用いられている。これらのタスクを遂行する為に採用されているシステムは、種々の設計構成を用いており、通常はネットワーク様式で編成されている。ネットワークは、バス又は線形のトポロジー、スタートポロジー、リングトポロジーなど様々な構成に編成することができる。ネットワーク内には、通常、複数のノードと、各ノードを相互に接続する複数の通信リンクがある。ノードは、コンピュータ、ターミナル、ワークステーション、アクチュエータ、データコレクタ、センサなどである。ノードは、通常はプロセッサ、メモリ、及びその他各種のハードウェアやソフトウェアコンポーネントを有している。ノードは、ネットワーク内の通信リンクを通して互いに通信し情報をやり取りする。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のシステムの主な欠陥は、ノードが他のノードと通信する方法にある。一般に、第１のノードは、情報を要求する信号を第２のノードに送るようになっている。第２のノードは、第１のノードが応答を持っているはずの情報を既に処理している。第２のノードは、やがて第１のノードの要求を認識して所望の情報にアクセスすることになる。第２のノードは、次に情報を添付して応答信号を第１のノードに送る。第２のノードは、自身の処理目的に必要となるかもしれない情報のコピーを保持する。第２のノードは、更に、第１のノードが情報データを受信したことを保証する証明を送信する場合もある。
【０００４】
この型式の通信は、第１のノードと第２のノードの間でのタイムロスが許容可能な場合には、数多くのアプリケーションで受け入れ可能であろう。しかしながら、車両試験の間にデータをリアルタイムでコンパイルするなど、多くのアプリケーションでは、このラグタイムは許容できない。更に、第１のノードと第２のノードの両方に同一のデータを保存するという冗長性により、メモリ空間が無駄遣いされ、処理時間が遅延することになる。更には、第１のノードと第２のノードの双方向通信により、更に遅延が増しデータ衝突の可能性が生まれる。
【０００５】
従って、これまでに概要を説明した欠陥に悩まされず、データ処理中には事実上継目がなく同時に不要な冗長性を低減或いは排除したデータ処理システムを備えることが望ましい。
【課題を解決するための手段】
【０００６】
本発明は、第１ステーションで情報を処理して第１の処理済情報に第１のアドレスを割り当てる第１のプロセッサを備えた分散型多重処理システムを提供することにより、先行技術の欠陥を克服する。第２のプロセッサは、第２ステーションで情報を処理して第２の処理済情報に第２のアドレスを割り当てる。中央信号ルーティングハブがこの第１プロセッサと第２プロセッサを相互接続する。具体的には、第１通信リンクは、第１プロセッサとこのハブとの間で第１の処理済情報を送信するために、第１プロセッサとハブを相互接続している。第２通信リンクは、第２プロセッサとハブとの間で第２の処理済情報を送信するために、第２プロセッサとハブを相互接続している。中央ルーティングハブは、第１及び第２プロセッサの少なくとも一方から第１及び第２の処理済情報の少なくとも一方を受信し、それによって少なくとも１つの送信方プロセッサを定義するためのソーターを備えている。ハブとソーターは、それぞれ、第１及び第２の処理済情報の第１及び第２のアドレスの少なくとも一方の宛先の識別も行う。最終的に、ハブとソーターは、第１及び第２の処理情報の少なくとも一方を、変更を加えずに、通信リンクの少なくとも一方を通して、第１及び第２プロセッサの少なくとも一方に送信し、これにより少なくとも１つのアドレス指定されたプロセッサを定義する。
【０００７】
本発明はまた、第１プロセッサと第２プロセッサを有する分散型多重処理システム上で通信する方法も含んでいる。本方法は、第１及び第２プロセッサの内の少なくとも一方のプロセッサ内で情報を処理する段階と、処理済の情報にアドレス指定する段階と、処理済の情報を第１及び第２プロセッサの少なくとも一方から少なくとも一方の通信リンクを通してハブに向けて送信し、それにより少なくとも１つの送信方プロセッサを定義する段階と、処理済の情報をアドレスと共にハブ内で受信する段階と、送信された処理済情報のアドレスの宛先をハブ内で識別する段階と、処理済情報を、変更を加えることなく少なくとも一方の通信リンクを通して第１及び第２プロセッサの少なくとも一方に送り、それにより少なくとも１つのアドレス指定されたプロセッサを定義する段階とから成る。
【０００８】
更に、本発明の独特の構成はハブ無しでも実用化できる。具体的には、受信された処理済情報を記憶するため、第１及び第２のメモリ位置を第１及び第２のプロセッサそれぞれに接続する。前記プロセッサ毎に異なるコードを定義して各プロセッサを区別するために、前記第１及び第２のプロセッサにインデックスをつけるためのインデクサが設けられている。更には、前記第１及び第２のプロセッサは、それぞれ、前記第１及び第２のプロセッサがシステム内の前記インデックスが付けられたプロセッサそれぞれに処理済情報をアドレス指定して転送できるように、コード毎の仮想メモリマップを備えている。
【０００９】
本発明はハブが無い場合でも、プロセッサ毎に異なるコードを定義して各プロセッサを区別するため、第１及び第２プロセッサにインデックスを付ける段階と、前記第１及び第２のプロセッサがシステム内のインデックスが付けられたプロセッサそれぞれに処理済情報をアドレス指定して転送できるように、第１及び第２のプロセッサそれぞれの中の各コードの仮想メモリマップを作成する段階と、処理済情報をアドレス指定されたプロセッサのメモリ位置内に記憶する段階を含んでいる。
【発明の効果】
【００１０】
このように、本発明は、不要な冗長性を低減或いは排除しつつ事実上瞬時に作動するデータ処理システムを提供する。
【発明を実施するための最良の形態】
【００１１】
以下の詳細な説明を、添付図面に関連付けて考察しながら参照すれば、本発明のこの他の利点も容易に評価でき、本発明を更に深く理解頂けるであろう。
【００１２】
図を通して、同様の符号は類似又は対応する部分を示しており、先ず図１に、分散型多重処理システム全体を３０で示す。システム３０は、中央信号ルーティングハブ３２で相互接続され、好適にスタートポロジーを構成する複数のモジュール又はノード１−６を備えている。図示のように、ハブ３２には６つのノード１−６が接続され、ノード１−６はそれぞれ特定のコードでインデックスが付けられている。コードの一例として、数字標識の１から６を示している。お解りいただけるように、ノードをそれぞれ区別するのに、適していればどの様な英数字標識を使用しても差し支えない。ハブ３２の形状、構成、及び配置は、ここでは八角形としているが、純粋に説明を目的として示したものであり、所望の要件に合うように変更してもよい。
【００１３】
ノード１−６は、ワークステーションの一部でも、ワークステーション自体であってもよい。ノード１−６の多様性を説明すると、ノード６はホストコンピュータ３４の部分であり、ノード１、２、４、及び５はアクチュエータ３６に接続され、ノード３は未接続状態である。なお、ノード１−６は、コンピュータやアクチュエータやハンドヘルド装置などを始めとするどの様な種類の単一又は複数の周辺装置にでも接続することができる。例えば、ノード６はハンドヘルド装置３５にも接続されている状態が示されている。或いは、ノード１−６はどれも周辺装置と接続せずに、完全な仮想システムとしてもよい。
【００１４】
図２に示すように、ホストコンピュータ３４は、デジタル信号処理カード３８と、望ましくは少なくとも１つの周辺装置を有している。周辺装置は、適していれば、モニター、プリンタ、キーボード、マウスなど、コンピュータ技術で知られているどの様な装置でもよい。詳しくは後に説明するが、図２に示すように、ノード１−６はハブ３２を介して互いに通信するのが望ましい。例えば、ノード５はハブ３２を介してノード６と通信し、このノード６はハブ３２を介して更にノード１と通信する。ノード４もハブ３２を介してノード３と通信する。後に別の実施例に関連して詳しく説明するが、ノードが１と２の２つしかない場合は、ノード１と２が直接通信できるようにハブ３２を除いてもよい。
【００１５】
本発明は、ノードを何個でもハブ３２に接続できる点で汎用性が極めて高い。
ハブ３２には、ノードを１０個、１００個或いは１０００個接続してもよいし、或いはノードをたった１対又は１個だけ接続してもよい。後に詳しく述べるように、ノード１−６はそれぞれ独立して作動することができる。
【００１６】
好適な実施例では、本発明のノード１−６を使って、車両試験の間にデータをコンパイルしている。特に、試験プラットフォーム上の車両のサーボ油圧試験時に利用している。無論、本発明をこの想定用途に限定するものではない。本発明の分散型多重処理システム３０は、事実上どの様な産業において、事実上どの様な型式のコンピュータ計算やデータ処理を行うのにも使用することができる。
【００１７】
図３から図７に、ノード１及び２並びにハブ３２を詳細に示している。各ノード１−６は、事実上同じものである。従って、ノード３から６は、ノード１及び２の詳細に示された特性と実質的に同一の特性を持つものと類推できる。各ノード１−６は、プロセッサ及び他の多数のコンポーネントを含んでおり、それらについては後に個別に概略を説明する。
【００１８】
プロセッサは、サイズと作動速度が異なっていてもよい。例えば、ノード６は１，５００ＭＦｂｐｓのプロセッサを有し、他のノードは３００ＭＦｂｐｓプロセッサを有するという場合もある。プロセッサのサイズと作動速度は、設計基準の要件を満たすように変えることもできる。通常は、プロセッサは、ノード１−６に関わるタスクとオペレーションをサポートするサイズと作動速度があればよい。更に、プロセッサは、異なるコンピュータフォーマットと言語を認識する異なる種類のものであってもよい。
【００１９】
ノード１及び２について、以下に詳しく論じる。第１のノード、ノード１は第１プロセッサ４０を含んでおり、第２のノード、ノード２は第２のプロセッサ４２を含んでいる。第１プロセッサ４０と第２プロセッサ４２は、ノード１及びノード２と合わせてインデックスがつけられ、ノード１−６を区別する場合と同じやり方で、プロセッサ４０、４２を区別するためプロセッサ４０、４２それぞれに異なるコードを定義している。具体的には、第１プロセッサ４０及び第２プロセッサ４２にインデックスを付け、プロセッサ４０、４２並びにノード１−６を区別するための異なるコードをプロセッサ４０、４２それぞれに定義するインデクサ７３が備えられており、インデクサ７３については後に詳しく説明する。
【００２０】
第１プロセッサ４０は、第１ステーション、即ちノード１の位置で情報を処理し、第１の処理済情報に第１のアドレスを割り当てる。同様に、第２プロセッサ４２は、第２ステーション、即ちノード２の位置で情報を処理し、第２の処理済情報に第２のアドレスを割り当てる。なお、これらのアドレスには、プロセッサ４０、４２とノード１−６のインデックスと関連付けてインデックスが付けられる。
【００２１】
第１及び第２のアクチュエータ３６は、システム３０の作動中に試験作業を行うために、それぞれ第１プロセッサ４０及び第２プロセッサ４２に接続されている。各ノード１−６には、ハブ３２とプロセッサ４０、４２を相互接続するチップセット４４、及び各プロセッサ４０、４２とチップセット４４の間に配置されているバッファ４６などの、追加のコンポーネントが含まれている。チップセット４４は、データストリームの透過的処理に備えて選択された。
【００２２】
図５及び図７に示すように、第１プロセッサ４０と第２プロセッサ４２は、第１及び第２アドレスを第１及び第２処理済情報それぞれに割り当てるためのハードウェア部分４８を更に備えている。具体的には、ハードウェア部分４８は、処理済情報にアドレス指定されたプロセッサのコードを表示する宛先アドレスを割り当てる。ハードウェア部分４８は、データ又は情報を適切なフォーマットに合致させ又は並べ替えることも行う。上記のように、プロセッサ４０、４２は、それぞれ異なるコンピュータフォーマットを認識する別種のものであってもよい。
こうして、ハードウェア部分４８は、アドレス指定されたプロセッサに正しいフォーマットが送られるよう保証する。しかしながら、ハブ３２がこれらの信号を共通に認識できるよう、アドレスは共通のフォーマットであるのが望ましい。プロセッサ４０、４２の動作例を下に詳しく説明する。
【００２３】
第１メモリ空間５０は第１プロセッサ４０に接続され、第２メモリ空間５２は第２プロセッサ４２に接続されている。図４及び図６に、第１メモリ空間５０及び第２メモリ空間５２をそれぞれ詳細に示している。第１実メモリ位置５４は第１メモリ空間５０内にあり、第１プロセッサ４０のハードウェア部分４８に接続されている。同様に、第２実メモリ位置５６は第２メモリ空間５２内にあり、第２プロセッサ４２のハードウェア部分４８に接続されている。作動時、ハードウェア部分４８は、処理済情報にアドレス指定されたプロセッサのメモリ位置を示すメモリアドレスを割り当てる。第１実メモリ位置５４及び第２実メモリ位置５６は、このようにして受信した情報を記憶するが、これについても後に詳しく論じる。第１実メモリ位置５４及び第２実メモリ位置５６は、他のプロセッサのメモリを読むことはできない。言い換えると、特定のノード１−６のプロセッサは自身のメモリ位置内の自身のメモリを読み出すことができるが、他のプロセッサのメモリ位置内に記憶されているメモリを読むことはできない。
【００２４】
第１実メモリ位置５４及び第２実メモリ位置５６は、多重のデータ入力が上書きされないように分類されたメッセージ領域（図示省略）も有してもいる。分類されたメッセージ領域は、メモリアドレスに相関付けることができる。プロセッサ４０、４２に関連する上記と同様な様式で、第１実メモリ位置５４及び第２実メモリ位置５６は、関係付けられたノード１−６の必要性に相応しいサイズである。
【００２５】
第１メモリ空間５０と第２メモリ空間５２には、図４と図６にも示すように、第１仮想メモリマップ５８と第２仮想メモリマップ６０がある。第１プロセッサ４０及び第２プロセッサ４２は、それぞれ、システム３０内でインデックスが付けられたプロセッサそれぞれに処理済情報をアドレス指定して送信できるように、ノード１−６毎に第１及び第２プロセッサ４０、４２それぞれの中に配置されているコード毎の仮想メモリマップ５８、６０を含んでいる。仮想メモリマップ５８、６０は、本質的には、プロセッサ４０、４２が、システム３０内で互いに他のプロセッサ又はノード１−６をアドレス指定できるようにする手段である。
仮想メモリマップ５８、６０の動作及び仕様については後に詳しく論じる。
【００２６】
図５及び図７に戻るが、第１プロセッサ４０及び第２プロセッサ４２は、それぞれ、少なくとも１つのタスク６２を更に含んでいる。第１プロセッサ４０及び第２プロセッサ４２は、それぞれ通常、任意の順序で実行することのできる複数のタスク６２を含んでいる。タスク６２は、プロセッサが実行する特定の演算又は関数の総称である。プロセッサ４０、４２は、複雑性の異なるタスク６２を実行するための実行可能コードを含んでいる。タスク６２に関係付けられた処理又は出力はどれも、ノード１−６の何れに対しても一意的であるわけではない。実際には、多くのノード１−６は、類似のデータを作成するための同一の単一又は複数のタスク６２を有している。
【００２７】
図示のように、ノード１のプロセッサ４０内には４つのタスク６２があり、各タスクは占める空間の量がそれぞれに異なっている。タスクの空間が大きいことはタスク６２の処理に時間がかかることを意味している。タスク６２は、適していれば、どの様な種類の計算、データ収集、分類であっても、又は他の所望の演算であってもよい。
【００２８】
図５及び図７にも示すように、各タスク６２は、送信方プロセッサから宛先方プロセッサへのデータフローを方向決めする少なくとも１対のポインタ６４、６６を含んでいる。ポインタ６４、６６は、図５の第４タスク６２及び図７の第３タスク６２から枝分かれして図示されている。なお、情報の連続ストリームが存在するように、タスク６２のそれぞれに関係付けられたポインタ６４、６６がある。ポインタ６４、６６の各対は、実行すべき次のタスク６２に送信方プロセッサを方向決めするための次のタスクポインタ６４と、処理済の情報をハブ３２に送るための少なくとも１つのデータ宛先ポインタ６６を含んでいる。プロセッサ４０、４２の演算の順序を明確にするため、次のタスクポインタ６４は１つだけであるのが望ましい。逆に、データ宛先ポインタ６６の個数は、送信方プロセッサが処理済の情報を多数のアドレス指定されたプロセッサに対して同時に送信できるよう、何個あってもよい。更に、多数のアドレス指定されたプロセッサに送られた処理済の情報は、それぞれ異なっていてもよい。
【００２９】
次のタスクポインタ６４及びデータ宛先ポインタ６６は、各タスク６２毎に動作しなければならないわけではない。例えば、第４のタスク６２が実行した特定の情報を送信する必要がない場合には、データ宛先ポインタ６６は動作しない。
逆に、第４のタスク６２が実行すべき最後のタスクである場合には、次のタスクポインタ６４は動作しない。通常は、ポインタ６４、６６の少なくとも一方が動作し、最低でも、情報をハブ３２に送信するか、又は次のタスク６２を実行するようになっている。
【００３０】
先の図１、図２及び図３に示すように、第１プロセッサ４０とハブ３２の間で第１処理済情報を送信するため、第１通信リンク６８がノード１の第１プロセッサ４０とハブ３２を相互接続している。同様に、第２プロセッサ４２とハブ３２の間で第２処理済情報を送信するため、第２通信リンク７０がノード２の第２プロセッサ４２とハブ３２を相互接続している。理解頂けるように、ハブ３２は、ノード１−６の全てから処理済情報を同時に受信し、その処理済情報を正しい宛先に転送することができる。
【００３１】
残りのノード３−６の残りのプロセッサそれぞれをハブ３２に相互接続する通信リンク（番号省略）もある。理解頂けるように、通信リンクの個数は、プロセッサ並びにノード１−６の個数によって直接的に決まる。
【００３２】
上記のように、第１プロセッサ４０及び第２プロセッサ４２にインデックスを付け、又はこれを編成して、第１プロセッサ４０及び第２プロセッサ４２それぞれに、プロセッサ４０、４２及びノード１−６を区別する異なるコードを定義するため、インデクサ７３が設けられている。インデクサ７３は、ハブ３２内に配置されているのが望ましい。以上より、ノード１−６を最初にハブ３２に接続すると、ハブ３２内のインデクサ７３はノード１−６を特定の順序に編成し始める。これが、システム３０の全体編成がどのように開始されるかの説明である。ハブ３２とインデクサ７３は、編成の一環としてプロセッサ４０、４２内のマッピングの作成も行う。上記のように、マッピングは、第１プロセッサ４０と第２プロセッサ４２の第１仮想メモリマップ５８及び第２仮想メモリマップ６０を含んでいる。仮想メモリマップ５８、６０は、プロセッサが処理済情報をシステム３０内のインデックスが付けられたプロセッサそれぞれに対してアドレス指定して転送できるように、各ノード１−６に対する各プロセッサ内に配置された各コードの概要を説明したものである。
【００３３】
図３に示すように、中央ルーティングハブ３２は、第１及び第２の処理済情報の少なくとも一方を第１プロセッサ４０及び第２プロセッサ４２の少なくとも一方から受信するためのソーター７２を備えている。処理済情報を受信することにより、少なくとも１つの送信方プロセッサが定義される。第１プロセッサ４０及び第２プロセッサ４２は、それぞれが処理済情報を送信してもよいし、或いは第１プロセッサ４０及び第２プロセッサ４２の一方だけが処理済情報を送信してもよい。何れの場合でも、第１プロセッサ４０及び第２プロセッサ４２の少なくとも一方は送信方プロセッサと見なされることになる。
【００３４】
ハブ３２とソーター７２は、それぞれ、第１及び第２の処理済情報の第１及び第２のアドレスのうちの少なくとも一方の宛先の識別も行う。最終的に、ハブ３２とソーター７２は、第１及び第２の処理済情報の少なくとも一方を、変更を加えずに、通信リンク６８、７０の少なくとも一方を通して、第１プロセッサ４０及び第２プロセッサ４２の少なくとも一方に送信する。情報送信先のプロセッサが、少なくとも１つのアドレス指定されたプロセッサとなる。ソーター７２は、アドレス指定されたプロセッサの宛先アドレスを判断するハードウェアを含んでいる。
【００３５】
図３にも示すように、第１通信リンク６８は、第１着信伝達ライン７６と第１発信伝達ライン７８とを含んでいるのが望ましい。同様に、第２通信リンク７０は、第２着信伝達ライン８０と第２発信伝達ライン８２とを含んでいるのが望ましい。第１プロセッサ４０と第２プロセッサ４２からハブ３２への一方向にのみ信号を送る送信専用システム３０を形成するため、第１着信伝達ライン７６と第２着信伝達ライン８０が、第１プロセッサ４０と第２プロセッサ４２それぞれをハブ３２に相互接続している。同じく、ハブ３２から第１プロセッサ４０と第２プロセッサ４２への一方向にのみ信号を送る送信専用システム３０を形成するため、第１発信伝達ライン７８と第２発信伝達ライン８２が、第１プロセッサ４０と第２プロセッサ４２それぞれをハブ３２に相互接続している。チップセット４４は、着信伝達ライン７６、８０及び発信伝達ライン７８、８２と、それぞれと対応するプロセッサ４０、４２とを相互接続して、それらの間に事実上透過的な接続を形成するように設計されている。
【００３６】
後に詳しく説明するが、送信専用システム３０では、記憶されたデータの重複が起きないようにしている。第１及び第２着信伝達ライン７６、８０、並びに第１及び第２発信伝達ライン７８、８２は、一方向光ファイバーリンクであるのが望ましい。光ファイバーリンクは、情報を高速で送ることができる点で取り分け有利であり、実質的に一般的になっている。更には、一方向光ファイバーリンクは、データ衝突の可能性を未然に防ぐ。理解頂けるように、第１及び第２着信伝達ライン７６、８０並びに第１及び第２発信伝達ライン７８、８２は、適していればどの様な設計でもよく、それで本発明の範囲を逸脱するわけではない。
【００３７】
分散型多重処理システム３０は、システム３０内のデータフローを中断させずに支援できる機構であれば幾つ追加してもよい。例えば、処理済情報がアドレス指定されたプロセッサに送信される回数を決めて制御するのに、カウンタを備えていてもよい。システム３０が実行する試験オペレーションをモニターして制御するのにシーケンサを備えていてもよい。具体的には、シーケンサを使用して、試験を開始し、試験を実施し、限界と事象に適宜反応し、試験の完了を確定し、試験を終了する。
【００３８】
図８は、システム３０の代わりの実施例を示しており、ここではノードはノード１と２の２つだけしかなく、ハブ３２は無くしている。この実施例では、１つの通信リンク６８が、第１プロセッサ４０と第２プロセッサ４２との間で第１及び第２の処理済情報を送信するため、第１プロセッサ４０と第２プロセッサ４２を相互接続している。インデクサ（本図では省略）は、先のやり方と同様に、第１プロセッサ４０と第２プロセッサ４２にインデックスを付け、プロセッサ毎に異なるコードを定義する。第１プロセッサ４０と第２プロセッサ４２は、それぞれが処理済情報をアドレス指定して互いに転送できるように、コード毎の仮想メモリマップもそれぞれに備えている。受信された処理済情報を記憶するための第１メモリ位置及び第２メモリ位置もある。この独自のアーキテクチャにより、２つのノード１と２は、事実上継目なく通信できる。
【００３９】
具体的には、第１プロセッサ４０と第２プロセッサ４２との間の通信方法は、最初に第１及び第２プロセッサ４０、４２にインデックスを付けて互いに区別する段階を含んでいる。次に、第１プロセッサ４０と第２プロセッサ４２が処理済情報をアドレス指定して互いに転送できるように、第１及び第２プロセッサ４０、４２それぞれの中にコード毎の仮想メモリマップが形成される。処理済情報は、ノード１か２の何れかである送信方プロセッサの仮想メモリマップを使用することにより、送信方のプロセッサから、通信リンクを介して、対応する相手方ノード１か２の何れかであるアドレス指定されたプロセッサに向けて送信される。
次に、処理済情報は、アドレス指定されたプロセッサにアドレスと共に受信され、アドレス指定されたプロセッサのメモリ位置内に記憶される。
【００４０】
本実施例のノード１と２の残りの態様は、第１の実施例のノード１及び２と実質的に同じである。なお、図５及び図７に記載の第１プロセッサ４０と第２プロセッサ４２の詳細、並びに、図４及び図６に記載の第１メモリ空間５０と第２メモリ空間５２の詳細を、この代わりの実施例にも適用する。
【００４１】
図９では、第７及び第８のプロセッサを有するノード７、８を備えた第２ハブ８４が、ハブリンク８６により第１ハブ３２に相互接続されている。１つのハブを別のハブに接続することはカスケーディングとして知られている。図１０に示すように、第２ハブ８４は、第１ハブ３２に接続される前には、２つのノード７と８に、ノード１及びノード２とインデックスを付けていた。理解頂けるように、２つのハブ３２、８４のノード１−８は、ノード１とノード２が２つも存在することのないように、インデックスを付け直さなければならない。
【００４２】
具体的には、インデクサは、先ず、第１ハブ３２と第２ハブ８４にインデックスを付けてマスターハブ３２と補助ハブ８４を定義する。図示の例では、ハブ番号１がマスターハブ３２で、ハブ番号２が補助ハブ８４である。ハブ３２と８４の何れをマスターハブとするかを決めるために、第１ハブ３２と第２ハブ８４の一方のハブ内にキー８８が配置される。図示のように、キー８８は第１ハブ３２内にある。インデクサは、ノード１−８とプロセッサにインデックスを付けて、プロセッサ及びノード１−８を区別するため、コードをノード１−８それぞれに定義し直す。第１即ちマスターハブ３２が第２即ち補助ハブ８４に接続されると、第１ハブ３２に接続されている各プロセッサの仮想メモリマップ全体が、第２ハブ８４に接続されている各プロセッサの仮想メモリマップに効果的に挿入され、またその逆も行われる。以上より、各ハブ３２、８４は、図９に示す新たに組み合わせられた即ちカスケードされたシステム３０内のノード１−８の全てに対して書き込みができることになる。
【００４３】
図１１から図１３には、それぞれに複数のノードを有する２つのハブを組み合わせた様々な構成を示している。これらの例は、ハブリンク８６を使って、ハブ同士を他方のハブのノードを介して組み付けることのできることを示している。
更には、図１１に示すように、ノードは２つ以上のハブに接続してもよいし、ハブは２つ以上の共通ノードに接続してもよい。
【００４４】
図１４に示すように、ノード（図示のように）又はハブリンク８６の何れかを介して３つ又はそれ以上のハブをシステム３０に相互接続することもできる。理解頂けるように、ノード及びハブの各種組合せ及び構成に関する本システム３０の汎用性は、事実上無限である。
【００４５】
分散型多重処理システム３０上で通信を行う方法又は動作の段階について、以下に詳しく説明する。先のように、本方法をノード１とノード２の間の通信に関して更に詳しく説明する。具体的には、図１５に示すように、所与の例ではノード１がノード２と通信している。なお、動作の段階は、システム３０のノード１−６の何れの間の通信においても何れの方向の通信においても実質的に同じである。更には、ノード１−６は、後に別の例で論じるように、ノード同士で直接通信できる。実際、ハブ３２に情報を送信しているノード１−６は、自身の実メモリ位置への書き込みと別のノード１−６の実メモリ位置への書き込みとの違いが分からない。
【００４６】
図１６は、ノード１を再度更に詳しく示している。本方法は、第１プロセッサ４０と第２プロセッサ４２の少なくとも一方の中で情報を処理する段階を備えている。本例では、情報は、ノード１の多数のタスクを通って進んでいくことにより第１プロセッサ４０内で処理される。上記のように、タスク６２は、適していればどの様な種類の計算、コンパイルなどでもよい。情報の処理は、第１プロセッサ４０内でデータを作成する際に更に定義されることが望ましい。データの作成は、第１プロセッサ４０内でデータをコンパイルする際に更に定義される。説明目的で取り上げるに過ぎないが、車両の試験中、本例のノード１を含むノード１−６の多くのプロセッサは、試験データを入手してコンパイルする。
【００４７】
情報の継続的な流れを維持するために、システム３０は、送信方プロセッサ即ち本例ではノード１の第１プロセッサ４０を、第１プロセッサ４０内で実行すべき次のタスク６２に向かわせると同時に、処理済の情報を通信リンク６８、７０の一方を通してハブ３２に送る段階を更に含んでいる。この段階は、タスク６２とポインタ６４、６６を使うことにより遂行される。図示のように、第１タスク６２を最初に完遂し、その後第１プロセッサ４０は第２のタスク６２に進む。第１のタスク６２内のポインタ６４、６６は、第１プロセッサ４０のフローを第２タスク６２に向ける。具体的には、データ宛先ポインタ６６は沈黙し、次のタスクポインタ６４が、第２のタスク６２が完遂すべき次のタスクである旨を表示する。次に、第２のタスク６２を完遂すると、第１プロセッサ４０は第４のタスク６２に進む。この段階で、第２のタスク６２の次のタスクポインタ６４は、第１プロセッサ４０に対して、第４のタスク６２が次のタスクであり、従って第３のタスク６２はスキップする旨表示する。第４のタスク６２を完遂すると、次のタスクポインタ６４はフローを別のタスク６２に向ける。第４のタスク６２のデータ宛先ポインタ６６は、第４のタスク６２の後に処理された情報をハブ３２に送るよう表示する。第１タスク６２から第２タスクへそして第４タスク６２へという情報の流れは、純粋に説明を目的としたものであって、決して本出願を限定することを意図するものではない。
【００４８】
第４のタスク６２からの処理済情報は、次に、アドレス指定され、第１プロセッサ４０から通信リンク６８、７０の少なくとも一方を介して、ハブ３２に向け送信される。先に述べたように、通信リンク６８、７０は、一方向性であるのが望ましい。以上のように、処理済情報の送信の段階は、更に、処理済情報を第１の着信伝達ライン７６を通して第１プロセッサ４０からハブ３２への一方向のみで送信して送信専用システム３０を定義することと定義される。この処理済情報の送信は、更に、送信方プロセッサからアドレス指定されたプロセッサへ実行可能コードと共にデータを送信することで定義づけられる。理解頂けるように、第１プロセッサ４０と第２プロセッサ４２は、最初は何らの処理能力も有していない。従って、プロセッサ４０、４２への実行可能コードは、同一システム３０を通してプロセッサ４０、４２に送られるのが望ましい。通常は、実行可能コードは、プロセッサ４０、４２に、転送されたデータをある一定の様式で処理するように指示するコマンドを含んでいる。なお、処理済情報の送信は、アドレス指定されたプロセッサのポインタを配置し直すか、編成し直すコマンドであってもよい。これによりタスクの順序が変わり、それによって更にアドレス指定されたプロセッサの処理が変更される。理解頂けるように、送信された処理済データは、全ての又は他の類似の特性をどのような組み合わせで含んでいてもよい。
【００４９】
処理済情報は、データ宛先ポインタ６６がノード１の第１仮想メモリマップに向けてフローを定め、宛先ノードを指し示すことによりアドレス指定されるのが望ましい。処理済情報のアドレス指定の段階は、更に、処理済情報に、アドレス指定されたプロセッサのコードを表している宛先アドレスを割り当てることと定義される。処理済情報をアドレス指定する段階は、更に、処理済情報に、アドレス指定されたプロセッサ、即ちノード２のメモリ位置を示すメモリアドレスを割り当てることと定義される。本例では、宛先ノード、宛先アドレス、及びメモリアドレスはノード２であり、始発ノードはノード１である。
【００５０】
各ノードの仮想メモリマップ５８、６０は、第１プロセッサ４０と第２プロセッサ４２が処理済情報をアドレス指定してシステム３０内のインデックスが付けられた各プロセッサに転送できるように、第１プロセッサ４０と第２プロセッサ４２それぞれの中に作成される。先に述べたように、仮想メモリマップ５８、６０は、プロセッサがシステム３０内の他の各プロセッサを認識してアドレス指定できるようにするための手段である。データ宛先ポインタ６６を起動させてハブ３２に情報を送ることによって、ノード１は送信方プロセッサと定義される。図１６に示すように、データ宛先ポインタ６６は、ノード２の宛先アドレスがこの情報に割り当てられるように、処理済情報を第１の仮想メモリマップ５８でノード２に方向決めする。
【００５１】
図１７に示すように、処理済情報は、第１通信リンク６８の第１着信伝達ライン７６で送られる。処理済情報は、アドレスと共にハブ３２内に受信される。
【００５２】
図１８では、送信された処理済情報のアドレスの宛先は、ハブ３２内で識別され、処理済情報は、変更を加えずに第２の通信リンク７０を通して、本例では、ノード２の第２プロセッサ４２へと送信される。この処理済情報を変更を加えずに送信する段階は、更に、処理済情報を第２の発信伝達ライン８２を通してハブ３２から第２プロセッサ４２へ一方向のみで送信し送信専用システム３０を更に定義することと定義される。本例では、ハブ３２は、アドレスの宛先がノード２であることを判定し、ノード２を宛先アドレスでアドレス指定されたプロセッサとして定義する。
【００５３】
図１９に示すように、処理済情報は、次に、アドレス指定された第２プロセッサ４２の第２の実メモリ位置５６に記憶され、これで第２のプロセッサ４２は必要に応じて情報を利用できるようになる。処理済情報は、関係付けられたメモリアドレスに従って、第２実メモリ位置５６の分類されたメッセージ領域内に記憶される。メモリ空間を節約するため、情報を第２の実メモリ位置５６に記憶する前に（ノード２の）宛先アドレスを送信された処理済情報から取り除いてもよい。
【００５４】
これも先に説明したが、本発明の動作の方法では、情報の不要な複製が起きないようにしている。ノード１が処理済情報をハブ３２に送信し、それが次にノード２に移動する、という場合、データ又は実行可能コード又はその両方を含む情報は、ノード１には記憶されず、ノード２にだけ記憶される。ノード２は確認を送らないし、ノード１も確認を要求しない。ノード１は、情報がノード２に到着したものと想定する。本システム３０を使って、データを所望の実メモリ位置へ搬送し、そこでデータは以降の処理又は評価の際に使用される。
【００５５】
システム３０上の通信の流れは、ノード１−６例えばノード２が、不要な又は処理された情報を実際に必要となるまでは受信しないよう、厳密に制御される。
換言すると、ノード１での処理及びノード１のデータ宛先ポインタ６６は、処理済情報をシステム３０上でノード２へ送る際には、ノード２がその情報を要求する直前に正確にタイミングを合わせる。通常は、ノード２は、自身がタスクの処理を行っている間に、ノード１の処理済情報を要求する。本発明のシステム３０は、従って、実質的に継目が無く、他のノードからの情報要求という欠陥に悩まされることはない。
【００５６】
本システム３０上の通信形態の別の例を図２０に示すが、ここでは、ノード２は自身と通信している。情報は、ノード２の第２プロセッサ４２内で、多数のタスク６２を通って進むことにより処理される。処理済情報は、次に、アドレス指定され、第２のプロセッサから第２の着信伝達ライン８０上でハブ３２に向けて送信される。処理済情報は、データ宛先ポインタ６６が、フローを第２の仮想メモリマップ６０に向かわせ、宛先ノードを指し示すことにより、アドレス指定される。次に、宛先アドレス及びメモリアドレスが情報に割り当てられる。本例では、宛先ノード、宛先アドレス、及びメモリアドレスはノード２であり、始発アドレスもノード２である。データ宛先ポインタを起動させて情報をハブ３２に送信することにより、ノード２は送信方プロセッサと定義される。次に、処理済情報はアドレスと共にハブ３２内で受信される。送信された処理済情報のアドレスの宛先がハブ３２内で識別されると、処理済情報は変更を加えずに、第２の発信伝達ライン８２上で指定されたプロセッサに送られる。本例では、ハブ３２は、アドレスの宛先がノード２であると判定し、ノード２を宛先アドレスでアドレス指定されたプロセッサと定義する。処理済情報は、第２の発信伝達ライン８２上でノード２内の第２プロセッサ４２に送り返される。次に、処理済情報は、アドレス指定されたノード２の第２のプロセッサ４２の第２の実メモリ位置５６内に記憶される。これで、ノード２は情報を首尾よく自身に書き込めたことになる。
【００５７】
自身への書き込みができることで、ノード１−６は自己試験を実施できるようになる。先のノード２のようなノードは、データを送信し、第２の仮想メモリ空間６０を使ってデータをアドレス指定し、その後でチェックを行い、データが実際にノード２の第２の実メモリ位置５６に受信されたことを確認することができる。これで、ハブ３２と通信リンク６８、７０の接続を試験したことになる。
【００５８】
図２１及び図２２に示すように、システム３０は、インデックスが付けられた各プロセッサの宛先アドレスを送信情報上に同時に載せることにより、処理済情報をインデックスが付けられたプロセッサ全てに同時に送信する段階も含んでいる。これは、システム３０を通したメッセージの同報通信としても知られている。図２１及び図２２に示す例では、ノード６が、システム３０内のノード１−６それぞれに対してアドレス指定されたメッセージの発信元である。メッセージ又は情報は、先に概略説明したのと同じ方法で、関係付けられた着信伝達ラインを介してハブ３２に送られる。ハブ３２は、ノード１−６の全てに向けた宛先アドレスがあることを判断する。これは、特別なノード番号即ちＩ．Ｄ．を選択することにより遂行され、これが選択されると、データは自動的に全てのノード１−６に配送される。
【００５９】
ここで図２２に示すように、メッセージ又は情報は、変更を加えずに全ての発信伝達ラインを介して各ノード１−６に送られる。同報通信は、通常、中断・開始メッセージ、身元確認メッセージ又は類似のメッセージや情報など、大域的に必要な情報を送信する場合に利用される。
【００６０】
図２３は、多重システム３０即ち多重ハブ構成内のノード４からの情報の同報通信を示している。情報は、ノード４から、ノード４が接続されている各ハブに送られる。ハブ、ここではハブ番号１、２、３として示されるハブは、それらにつながっているノード１−６それぞれに、この情報を同報通信する。なお、同報通信はシステム３０の構成とは無関係に遂行できる。
【００６１】
以上、本発明について説明を目的として述べてきたが、使用した用語は、説明用としての性質を持たせるよう意図したものものであり、限定を意図したものではない。上記教示の下、本発明に多くの変更及び変形を加え得ることは明白である。従って、本発明は、特許請求の範囲に記載する範囲内において、具体的に説明した以外のやり方でも実施できるものとご理解頂きたい。
【図面の簡単な説明】
【００６２】
【図１】６個のノードを単一のハブに相互接続させた分散型多重処理システムの構成図である。
【図２】ノードとハブ間の実行可能なデータフロー経路を説明するための、図１のシステムの別の概略図である。
【図３】ハブに接続されたノード１及びノード２の詳細構成図である。
【図４】ノード１のメモリ空間の詳細構成図である。
【図５】ノード１のプロセッサの詳細構成図である。
【図６】ノード２のメモリ空間の詳細構成図である。
【図７】ノード２のプロセッサの詳細構成図である。
【図８】ハブが無くノードが２つだけの別の実施例を示す図である。
【図９】それぞれにハブを有しハブ同士がハブリンクで接続されている２つの多重処理システムの構成図である。
【図１０】ハブを相互接続する以前の、図８の２つの多重処理システムの構成図である。
【図１１】それぞれにハブを有しハブ同士は共通ノードで接続されている２つの多重処理システムを示す構成図である。
【図１２】共通ノードで相互接続されている２つの多重処理システムを示す別の構成図である。
【図１３】共通ノードで相互接続されている２つの多重処理システムを示す更に別の構成図である。
【図１４】それぞれにハブを有しハブ同士は２つの共通ノードで相互接続されている３つの多重処理システムを示す構成図である。
【図１５】ノードとハブの間のデータフローの別の例を説明する、図１のシステムの構成図である。
【図１６】ノード１が情報を処理する場合のノード１のプロセッサ及びメモリ空間を示す詳細構成図である。
【図１７】送信情報の着信を説明する図１４のシステムの構成図である。
【図１８】送信情報の発信を説明する図１４のシステムの構成図である。
【図１９】ノード１の処理済情報をノード２の実メモリ位置に記憶する場合のノード２のメモリ空間の構成図である。
【図２０】ノードとハブとの間のデータフローの別の例を説明するための図１のシステムの構成図である。
【図２１】ノード６からの送信の着信を説明するための図１のシステムの構成図である。
【図２２】全てのノードに送信を発信する同報通信を説明するための、図２０のシステムの構成図である。
【図２３】システムに亘る同報通信を説明するための、４つの共通ノードで相互接続されている５つのシステムの構成図である。
【図１】
2008269651.tif 000003
【図２】
2008269651.tif 000004
【図３】
2008269651.tif 000005
【図４】
2008269651.tif 000006
【図５】
2008269651.tif 000007
【図６】
2008269651.tif 000008
【図７】
2008269651.tif 000009
【図８】
2008269651.tif 000010
【図９】
2008269651.tif 000011
【図１０】
2008269651.tif 000012
【図１１】
2008269651.tif 000013
【図１２】
2008269651.tif 000014
【図１３】
2008269651.tif 000015
【図１４】
2008269651.tif 000016
【図１５】
2008269651.tif 000017
【図１６】
2008269651.tif 000018
【図１７】
2008269651.tif 000019
【図１８】
2008269651.tif 000020
【図１９】
2008269651.tif 000021
【図２０】
2008269651.tif 000022
【図２１】
2008269651.tif 000023
【図２２】
2008269651.tif 000024
【図２３】
2008269651.tif 000025