(57)【要約】本発明は、通信バスに接続され、各々、１つ以上の所定のタスクを自動的に実行するように構成された複数の処理ユニット（１ａ、１ｂ、．．．、１ｎ）が含まれる並列コンピュータアーキテクチャに関する。各処理ユニットは、各タスクがファンクションキーに対応するように構成され、また、以下のプロトコル、即ち、機能的能力を特徴付けるファンクションキーを少なくとも含むメッセージと、オプションとして、１つ以上のワードから構成されるフレームとを送信するプロトコルに基づき他の処理ユニットと通信を行なうようになっており、更に、各処理ユニットは、バスを通過する各ヘッダを復号化するように構成され、また、前記ファンクションキーの値に基づき、バス上に送信されたメッセージを無視するように又は前記メッセージのファンクションキーに関連付けられたタスクを実行するように構成されている。
2004521412.tif 000002
【特許請求の範囲】
【請求項１】
通信バスに接続された複数のプロセッサユニット（１ａ、１ｂ、．．．、１ｎ）を含み、また、１つ以上の所定のタスクを自動的に実行するように各々構成された並列コンピュータアーキテクチャであって、
各プロセッサユニットは、その各タスクがヘッダに関連するように構成され、
各プロセッサユニットは、以下のプロトコル、即ち、機能を特徴付けるヘッダを含むメッセージと、可能性として１つ以上のワードから構成されるフレームとをバス上で送信するプロトコルを用いて、他のプロセッサユニットと通信を行なうように構成され、
各プロセッサユニットは、バス上の各ヘッダを復号化するように、また、前記ヘッダ値の機能として、バス上のメッセージを無視するように又は前記メッセージのヘッダに関連付けられたタスクを実行するように構成されている、ことを特徴とするアーキテクチャ。
【請求項２】
請求項１に記載のアーキテクチャであって、
プロセッサユニットは、タスクを実行する前、バス上のメッセージをメモリに読み込むように構成されていることを特徴とするアーキテクチャ。
【請求項３】
請求項１又は請求項２に記載のアーキテクチャであって、
２つ以上のプロセッサユニットが、同じヘッダで構成されていることを特徴とするアーキテクチャ。
【請求項４】
請求項１又は請求項２に記載のアーキテクチャであって、
プロセッサユニットは、複数のタスクを実行するように構成され、また、各タスクが異なるヘッダに関連付けられるように構成されていることを特徴とするアーキテクチャ。
【請求項５】
請求項１〜４の何れか１つに記載のアーキテクチャであって、
通信バスは、ｑ個の並列導体を含むデータバスであり（ｑは、１以上の整数）、また、各プロセッサユニットは、通信バスにおけるｎ個の最初の導体に並列に接続されたｎビットのデータバス（６）（ｎは、ｑ以下の整数）を含むことを特徴とするアーキテクチャ。
【請求項６】
請求項９に記載のアーキテクチャであって、
プロセッサユニットは、以下の連続フォーマット、即ち、ヘッダに対応する最初のワードをバスに書き込み、次に、引き続き、メッセージのフレームを構成する各ワードを書き込むフォーマットをバス上で送信するように構成されていることを特徴とするアーキテクチャ。
【請求項７】
請求項１〜６の何れか１つに記載のアーキテクチャであって、
プロセッサユニットには、１つ以上の別個のタスクを実行するようにプログラムされたプロセッサ（２）と、プロセッサ（２）用の通信バス上を移動中のヘッダを認識又は認識しないように構成された符号化手段と、が含まれ、また、通信バスに接続されたメモリ（４）が、プロセッサ（２）により読み取りモードにおいてアクセス可能であり、プロセッサ（２）の制御下で、通信バス上にメッセージを読み込むことを特徴とするアーキテクチャ。
【請求項８】
請求項７に記載のアーキテクチャであって、
復号化手段には、アドレスポートが通信バスに接続される認証メモリ（３）が含まれ、通信バス上の各ヘッダ値は、前記認証メモリ（３）のアドレスに対応し、また、ヘッダに対応する前記認証メモリの各アドレスは、ヘッダ認証又は非認証データを記憶することを特徴とするアーキテクチャ。
【請求項９】
請求項８に記載のアーキテクチャであって、
認証メモリ（３）の出力ポートは、割り込み処理専用のプロセッサ（２）のポートに接続されていることを特徴とするアーキテクチャ。
【請求項１０】
請求項１乃至９の何れか１つに記載のアーキテクチャであって、
多マスタ／多スレーブ型のものであり、また、通信バス上におけるデータの交信は、メッセージを送信したマスタプロセッサユニットによって、タイミング調整されることを特徴とするアーキテクチャ。
【発明の詳細な説明】
【０００１】
本発明の分野は、並列（マルチプロセッサ及びマルチタスク処理）コンピュータアーキテクチャに関する。通信バスに接続され、また、新規プロトコルを用いて互いに通信を行なう複数のプロセッサユニットを含むコンピュータアーキテクチャから成る。
【０００２】
本文において、用語“プロセッサユニット”は、１つ以上の別個のタスクを自動的に実行するように構成されたあらゆる装置を意味する。これは、ハードウェア的に配線したプロセッサユニットであってよい。好適には、１つ以上の別個のタスクを自動的に実行するようにプログラムされたプロセッサ等（マイクロプロセッサ、マイクロコントローラ等）のプログラム可能なプロセッサユニットである。プロセッサユニットは、例えば、マシンの周辺装置、バックプレーン・マザー・カード上に搭載されたドータ・カード等のマイクロコンピュータ等、プログラム可能なマシンであってよい。この一覧は、全てを網羅していない。
【０００３】
現在、通信バスによって相互接続された複数のプロセッサユニットを含むコンピュータアーキテクチャにおいて、各プロセッサユニットは、それに特有の物理的アドレスによってバス上で識別される。既存の通信プロトコルによって、第１プロセッサユニット（以下、送信ユニットと称す）は、第２プロセッサユニット（以下、対象ユニットと称す）と通信を行なうことができる。従って、例えば、対象ユニットによって所定のタスクの実行を開始するために、送信ユニットが対象ユニットにメッセージを送信する場合、送信ユニットは、バス上の対象ユニットのアドレスを送信する。各プロセッサユニットは、バス上で送信されたアドレスを復号化し、また、対象ユニットがそれ自体のアドレスを認識する場合、関連するメッセージをローカルメモリに読み込み、プログラムされているタスクを実行する。対象ユニット及び送信ユニットは、一般的に、同様の固定サイズのアドレス及びデータバスを有する。
【０００４】
既存の上記種類のアーキテクチャ及び通信プロトコルの場合、この種のプロセッサユニットの並列動作は、プロセッサユニットのアドレス指定の複雑な管理を必要とするため、複数のプロセッサユニットが、並列に同じタスク（又は機能）を実行するマルチタスク処理システムを形成することは困難である。
【０００５】
本発明は、この欠点を軽減する新規の並列アーキテクチャであって、モジュール構成を有し、新しいプロセッサユニットの追加又はプロセッサユニットの交換若しくは除去による変更が容易な新規の並列アーキテクチャを提案することを目的とする。
【０００６】
上記目的は、本発明の並列アーキテクチャによって達成されるが、このことは、並列アーキテクチャが、通信バスに接続された複数のプロセッサユニットであって、各々１つ以上の所定のタスクを自動的に実行するように構成された複数のプロセッサユニットが含まれる並列コンピュータアーキテクチャを含むという程度のことが当業者には知られている。
【０００７】
本発明に特有の新規方法において、各プロセッサユニットは、その各タスクがヘッダに対応するように構成され、各プロセッサユニットは、以下のプロトコル、即ち、機能を特徴付けるヘッダを含むメッセージと、可能性として１つ以上のワードから構成されるフレームとをバス上で送信するプロトコルを用いて、他のプロセッサユニットと通信を行なうようになっており、また、各プロセッサユニットは、バス上の各ヘッダを復号化するように、また、前記ヘッダ値の機能として、バス上のメッセージを無視するように又は前記メッセージのヘッダに関連付けられたタスクを実行するように構成されている。
【０００８】
従って、本発明のアーキテクチャの動作は、新しい原理、即ち、任意の対象プロセッサユニットのアドレスよりもむしろ通信バス上で機能のアドレスを送信する新しい原理に基づく。このように、本発明に基づき、機能を特徴付けるヘッダは、これらのプロセッサユニットが機能と関連するタスクを並列に実行するように、その機能を認識する全ての接続されたプロセッサユニットを起動する。
【０００９】
本発明の他の特徴及び利点は、非限定的な例として与えられる本発明の好適な実施形態に関する下記の説明を、添付の図面を参照して解釈することによって、更に明確になる。
【００１０】
図１の全体的なブロック図において、本発明のアーキテクチャには、並列データバスαに接続される複数のプロセッサユニット１ａ、１ｂ、．．．、１ｎが含まれる。
【００１１】
図１のアーキテクチャは、有利な点として、多マスタ／多スレーブアーキテクチャである。プロセッサユニット１ａ、１ｂ、．．．、１ｎの内の１つが、バスα上でメッセージを送信したい場合、それは、バスの制御を行って、マスタユニットとなり、また、他のユニットは、スレーブユニットとなる。そのメッセージが、バス上で送信された場合、マスタプロセッサユニットは、他のプロセッサユニットがバスαの制御を行なってメッセージを送信し得るように、バスを解放する。この動作モードは、書き込みモードでのバスへのアクセスを仲裁するための手段を用いることを意味し、この仲裁手段は、書き込みモードでバスへのアクセスを要求する各プロセッサユニット信号を入力部で受信し、また、書き込みモードでバスへのアクセスを許可する各プロセッサユニット信号を出力部で送信する。仲裁手段は、当業者には既知であり、このため、それらは図１に示さず、また、本文中にはこれ以上述べない。
【００１２】
本発明は、多マスタ／多スレーブ型のアーキテクチャに限定しないが、例えば、バスへの書き込みが可能な１つだけのマスタプロセッサユニットを有するアーキテクチャにも等しく適切に適用することができ、他のプロセッサユニットは、常に、バスの読み取りだけが可能なスレーブユニットとなる。
【００１３】
主な用語の定義
バスα
バスαは、ｑ個の並列導電体を含むデータバスであり、ｑは、１以上の整数である。図１及び２に示す例において、バスαは、１６ビットバスであり、１６個の並列導電体（Ｄ０〜Ｄ１５）を含む。
【００１４】
粒状原子（ＡＧ）
粒状原子（ＡＧ）は、バスα上で通信可能なプロセッサユニットの最小のサイズに対応する。（後述の“色”という用語の定義も参照）。バスαは、一般的に、ｑ個の並列導電体を含み、ｑは、１以上の整数であり、ｑ＝ＡＧ．２ｐである。ＡＧの値は、必然的に２の累乗となる。
【００１５】
プロセッサユニットの色
プロセッサユニットの“色”は、（ビット数として示す）そのデータバスのサイズによって定義される。図１の例において、プロセッサユニット１ａは、１６ビット機（データバスＤ０〜Ｄ１５）であり、プロセッサユニット１ｂは、４ビット機（データバスＤ０〜Ｄ３）であり、また、プロセッサユニット１ｎまで、８ビット機（データバスＤ０〜Ｄ７）である。
【００１６】
以下、次の表記法に基づき、プロセッサユニットの“色”を、Ａ、Ｂ、Ｃ、Ｄ等と示す。即ち、１つだけのＡＧ上で通信可能なプロセッサユニットは、色Ａであり、最大２つのＡＧ上で通信可能なプロセッサユニットは、色Ｂで、最大４つのＡＧ上で通信可能なプロセッサユニットは、色Ｃで、最大８つのＡＧ上で通信可能なプロセッサユニットは、色Ｄ、等である。
【００１７】
ワード
ワードは、任意の与えられた時間において、バスα上の値に対応する。ワードの最大サイズは、バスαの並列導体の数によって制限される。
メッセージ
メッセージは、プロセッサユニットによってバスα上に連続して書き込まれる一連のワードに対応する。メッセージは、ヘッダを構成する第１ワード（ファンクション・キー）を含み、この後、用いられる連続フォーマットにおいて、１つ以上の連続したワードを含むフレームが続く。
【００１８】
連続フォーマット（ＦＳ）
連続フォーマットは、バス上で伝送中のメッセージを構成する全てのワードを定義する。全く異なる連続フォーマットは、バスα上で使用可能であり、また、メッセージの第１ワードがヘッダとなる共通の特徴を必然的に有する。
【００１９】
本発明において限定的でない標準的連続フォーマットの一例を以下に示す。
【００２０】
【表１】
2004521412.tif 000003
機能に基づき、ヘッダによって符号化されるため、他の連続フォーマットが、上記標準フォーマットから得られ、送信監視が行なわれる最も簡単な連続フォーマットがヘッダ／標識である。（送信されたデータの完全性のチェック無しで）予想し得る更に簡単な実施形態において、メッセージは、ヘッダのみで構成し得る。
【００２１】
並列フォーマット（ＦＰ）
各プロセッサユニット色（Ａ、Ｂ、Ｃ、Ｄ等）は、バスα上で伝送中のメッセージの特定のフォーマットに関連付けられる。並列フォーマット（ＦＰ）の符号化の一例を、以下の表で示す。
【００２２】
【表２】
2004521412.tif 000004
ＸＸＸＸは、ＡＧが利用可能な任意の値を取り得ることを示す。Ａ０は、そのＡＧの全ての導体が０であることを示す。
【００２３】
各ＦＰの形態
ＦＰ−Ａ：バスにおける最初の導体のＡＧが、その後、メッセージのフレームを構成する他の全てのワードに用いられる。従って、定義により、最小のプロセッサユニットでさえ１つのＡＧ上で通信が可能であるため、バスに接続され、要求された機能を有する全てのプロセッサユニットがアドレス指定される。
【００２４】
ＦＰ−Ｂ：バスにおける最初の２ＡＧ導体が、その後、メッセージのフレームを構成する他の全てのワードに用いられる。定義により、これには、プロセッサユニットが第２のＡＧ上でＸＸＸＸを復号化することがどうしてもできないため、バスにアクセスすることができないプロセッサユニットが除外される。必然的に、２つのＡＧ上で通信可能なマシンのみが、アドレス指定される。
【００２５】
ＦＰ−Ｃ：バスにおける最初の４ＡＧ導体が、その後、メッセージのフレームを構成する他の全てのワードに用いられる。
ＦＰ−Ｄ：バスにおける最初の８ＡＧ導体が、その後、メッセージのフレームを構成する他の全てのワードに用いられる。
【００２６】
組み合わせフォーマット（ＦＰ−ＡＢ、ＦＰ−ＡＣ、ＦＰ−ＡＤ、ＦＰ−ＡＣＤ等）は、関係するプロセッサが複数のＡＧ上のデータを読み取ることができる場合、更に洗練された（更に詳細な）データを提供する。
【００２７】
混成フォーマットＦＰ−ＡＢ及びＦＰ−ＡＤの使用例、即ち、フォーマットＦＰ−ＡＢは、１つのＡＧ上で読み取り得るプロセッサユニットと、２つのＡＧ上で読み取り得るプロセッサユニットのアドレス指定を行なう。１つのＡＧ上で読み取るものは、機能を実行するのに充分な情報を有するが、必ずしも全ての詳細を有するわけではない。２つのＡＧ上で読み取るものは、例えば、第２ＡＧ上において、第１ＡＧにおける情報を確認するためのエラー修正符号を有し得る。
【００２８】
ＦＰ−ＡＤフォーマットは、例えば、バスα上で小さな画像を送信するのに有用であり得る。第１ＡＧを用いて、１ブロックにおける９画素の平均中間調（又は色）レベルを符号化することができる。それにもかかわらず、この情報だけにアクセスするプロセッサユニットは、データ、即ち、三分の一より小さい画像から利益を得る。また、ＦＰ−Ｄフォーマットにもアクセスするプロセッサユニットは、全部で８個のＡＧの読み取りから利益を得ることができ、他のＡＧによって、それは、例えば、平均に対する差分を加算して、ブロックにおける画素の値を決定し得る（これは、ハール・ウェーブレット原理である）。
【００２９】
ヘッダ（ファンクション・キー）
本発明の本質的な特徴によれば、ヘッダは、バスα上の何れかのメッセージの第１ワードであり、また、アドレス指定された機能を主に定義する。好適には、必然的ではないが、このヘッダは、以下も定義する。即ち、
メッセージの並列フォーマット、
メッセージの連続フォーマット、
メッセージを生成したプロセッサユニット（マスタプロセッサユニット）の色、及び
メッセージの長さに関する質的な情報。
【００３０】
機能
用語“機能”は、バスαに接続されたプロセッサユニットによって自動的に実行し得るあらゆる機能又はタスクを意味する。
機能表
各プロセッサユニットは、それに固有の機能表を含むように構成され、また、これは、プロセッサユニットによって実行し得る各タスクをヘッダ値に関連付ける。好適には、表は、各機能に関連する連続フォーマット（ＦＳ）及びその機能に関連するメッセージの長さも定義する。所定のプロセッサユニットの場合、利用可能な機能の数は、バス上及びＡＧの値に対して、それが到達し得るＡＧの数のみに依存する。
【００３１】
本発明に適合する通信プロトコルに関する一般的な所見
メッセージは、バスの制御を行なっているマスタプロセッサユニットであって、また従って、バスα上でデータの書き込みを許可された唯一のプロセッサユニットであるマスタプロセッサユニットと、バスαの読み取りしかできない他のスレーブプロセッサユニットとの間において、バスα上で交信される。
【００３２】
プロセッサユニット１ａ、１ｂ、．．．、１ｎが、バスαの制御を行なう場合、バス上でヘッダ（ファンクション・キー）の書き込みから開始し、次に、用いられる連続フォーマット（ＦＳ）に応じて、１つ以上のワードを含むフレームが続く。
【００３３】
各スレーブプロセッサユニットは、主として、バスα上で送られたフレームがそれに対してアドレス指定されているか判断できるように、また、そうである場合、どのタスクを実行しなければならないか判断できるように、ヘッダを読み取る。
【００３４】
バスα上に送られたヘッダが、スレーブプロセッサユニットの機能表に無い場合、後者のユニットは、ヘッダの後にバス上に送られたフレームを無視する。もしくは、スレーブプロセッサユニットは、ヘッダの後にバス上に送られたフレームも読み取り、その機能表のヘッダと関連するタスクを自動的に実行する。
【００３５】
従って、本発明の通信プロトコルの新規性は、マスタプロセッサユニットがバス上にメッセージを書き込む時、バス上の位置がアドレス指定された（物理的又は論理的）アドレスによって識別される任意のスレーブプロセッサユニットではなく、むしろスレーブプロセッサユニットの機能（タスク）であって、メッセージは、バス上に送られたヘッダに関連する機能を有する全てのプロセッサユニットによって並列処理される、という事実から生じる。
【００３６】
プロセッサユニット（１ａ、．．．、１ｎ）の構造例
図１において、プロセッサユニット１ａ、１ｂ、．．．、１ｎには、本質的に、以下のものが含まれる。即ち、
マイクロプロセッサ２と、
認証メモリ３と、
ＦＩＦＯメモリ４と、
クロック信号ＣＬＫＡ及びＣＬＫＤを用いて、認証メモリ３とＦＩＦＯメモリ４との動作をシーケンス制御するための論理ユニット５と、
以下インターフェイスバスと称するデータバス６と、
マイクロプロセッサ２によるデータの読み取り及び書き込みが可能な内部バス７と、
マイクロプロセッサ２（信号８）の制御下において、インターフェイスバス６（Ｄ０〜Ｄ１５）の内部バス７に存在するデータを書き込む３状態レジスタ６ａと、
が含まれる。
【００３７】
インターフェイスバス（６）
このインターフェイスバスは、一般的にｎ個の並列導電体を含むｎビットデータバス（Ｄ０〜Ｄｎ−１）（ｎは、ｑ（バスαのサイズ）以下の整数）であり、バスαにおける最初のｎ個の導体に並列に接続されている。
【００３８】
マイクロプロセッサ（２）／内部バス（７）
マイクロプロセッサは、通常の方法で、ランダム・アクセス・メモリ（ＲＡＭ）と関連付けられているが、ランダム・アクセス・メモリ（ＲＡＭ）は、説明を簡単にするために、図１に示さず、また、マイクロプロセッサ２による読み取り及び書き込みが通常の方法で可能である。ランダム・アクセス・メモリには、詳細は後述するが、プロセッサユニットの機能表及びマイクロプロセッサの動作プログラムが含まれる。
【００３９】
内部バス７は、通常の通り、次のものを含むＩＳＡバスである。即ち、
データバス（１６ビットプロセッサユニット１ａの場合における１６ビット（Ｄ＿ＩＳＡ０乃至Ｄ＿ＩＳＡ１５）データバス）と、
図１の全体的なブロック図に示さないが、その２つのＬＳＢアドレスビットが、図３及び４のタイミング図において、それぞれＡ０＿ＩＳＡ及びＡ１＿ＩＳＡとラベル付けされるアドレスバスと、
マイクロプロセッサ２によって得られる書き込み信号Ｗｒ＿ＩＳＡ及び読み取り信号Ｒｄ＿ＩＳＡ、並びに読み取り及び書き込み信号を復号化することによって得られる選択信号Ｃｓ＿ＩＳＡを搬送する制御バスであって、これらの信号Ｗｒ＿ＩＳＡ、Ｒｄ＿ＩＳＡ及びＣｓ＿ＩＳＡは、図１のフローチャートに示さず、図３及び４のタイミング図にのみ示す前記制御バスと、
を含むＩＳＡバスである。
【００４０】
認証メモリ（３）
認証メモリ３は、ランダム・アクセス・メモリ又は読み取り専用メモリの何れかであってよい。好適には、ＥＥＰＲＯＭである。認証メモリは、有効ヘッダを一覧化する対応表の役割を果たし、認証メモリ３のアドレスポートは、バスαに接続される。認証メモリ３の出力ポートは、処理割り込み専用のマイクロプロセッサのポートでマイクロプロセッサ２に接続される（信号９）。
【００４１】
認証メモリ３の読み取りは、クロック信号ＣＬＫＡ及びＣＬＫＤから論理ユニット５によって得られる信号５ａによってシーケンス処理される。
以下の説明においてより明確に述べるように、認証メモリ３の機能は、マイクロプロセッサ２用のバスα上に存在するヘッダを認証又は認証しないことである（信号９）。このために、バスα上のプロセッサユニットによって送信し得るヘッダ値に対応する認証メモリの各アドレスにおいて、ヘッダ認証データ項目又はヘッダ非認証データ項目の何れかとしてマイクロプロセッサ２によって認識されるデータ項目が記憶される。認証メモリ３（信号９）の出力部で出力されるデータ項目が、認証データ項目である場合、マイクロプロセッサ２には、認証されているヘッダの後、バスα上に送信されるフレームをロードしなければならないことが通知される。逆に、認証メモリからのデータ項目が、ヘッダを認証しない場合、マイクロプロセッサ２は、ヘッダの後、バスα上に送信されるフレームを無視する。
【００４２】
メモリ３の各アドレスに対する認証又は非認証は、各プロセッサユニット１ａ、１ｂ、．．．、１ｎに固有であり、また、プロセッサユニットの動作をカストマイズするために用いられる。
【００４３】
図２において、１つの特定の実施形態において、認証メモリ３は、集積回路ＣＩ１、例えば、ＡＭ２９Ｆ０１０を用いる。この実施形態において、メモリのアドレスポートは、バスαの導電体（Ｄ０〜Ｄ１５）に対して並列にそれぞれ接続された入力部Ａ０〜Ａ１５に対応する。信号“書き込み＿Ａｄ”は、図１の信号５ａに対応し、また、メモリの出力ポートにおける信号“アドレス＿拒否”、“ＩＲＱ＃５”、“ＩＲＱ＃４”、“ＩＲＱ＃３”、“ＩＲＱ＃２”、及び“ＩＲＱ＃Ｐ”は、図１のブロック図に関連して、先に参照した信号９に対応する。この実施形態において、メモリの認証は、複数のレベルに分散するが、有用な認証は、信号ＩＲＱ＃Ｐで符号化される。この信号ＩＲＱ＃Ｐが、ロー状態（それぞれはハイ状態）である場合、例えば、バスαに存在するヘッダが、マイクロプロセッサ２に対して認証される（それぞれ認証されない）。
【００４４】
ＦＩＦＯメモリ（４）
図１において、ＦＩＦＯメモリ４の入力部は、インターフェイスバス６を介してバスαに接続され、その出力部は、内部バス７のデータバスに接続される。マイクロプロセッサ２は、書き込み信号１０によるバスαに存在するワードのＦＩＦＯメモリ４への読み込み、及びＦＩＦＯメモリ４に記憶されたワードの抽出、並びに、読み取り信号１１による内部バス７のデータバスへのその書き込みを命令し得る。ＦＩＦＯメモリ４へのワードの書き込み、又はＦＩＦＯメモリ４におけるワードの読み取りのシーケンス処理は、クロック信号ＣＬＫＡ及びＣＬＫＤから論理ユニット５により得られたタイミング信号５ｂによって同期化される。またＦＩＦＯメモリ４は、それがどの程度いっぱいになっているかをマイクロプロセッサ２に示すマイクロプロセッサ２状態信号１２をその出力部で出力する。
【００４５】
図２を参照すると、１つの特定の実施形態において、ＦＩＦＯメモリ４は、２つの８ビット集積回路ＣＩ２及びＣＩ３、例えば、ＩＤＴ７２００集積回路から構成され、各集積回路は、それぞれバスαの上位のビット（Ｄ８〜Ｄ１５）と下位のビット（Ｄ０〜Ｄ７）の記憶専用である。
【００４６】
この実施形態において、図２の信号“空＿フラグ＿Ｈ”、“満杯＿フラグ＿Ｈ”、“半満杯＿Ｈ”、“空＿フラグ＿Ｂ”、“満杯＿フラグ＿Ｂ”、“半満杯＿Ｂ”は、図１のブロック図に関連して先に参照した状態信号１２に対応し、また、各ＦＩＦＯレジスタ（ＣＩ２及びＣＩ３）の満杯状態を符号化するために用いられる。信号“書き込み＿ＦＩＦＯ＿ＯＫ”は、図１に関連して先に参照した書き込み信号１０に対応する。信号“読み取り＿ＦＩＦＯ＿Ｂ”及び“読み取り＿ＦＩＦＯ＿Ｈ”は、図１に関連して先に参照した読み取り信号１１に対応する。信号“リセット＿ＦＩＦＯ”は、ＦＩＦＯメモリをゼロにリセットするための信号であり、また、マイクロプロセッサ２によって出力され、メモリ４を初期化するために用いられる。
【００４７】
３状態レジスタ（６ａ）
プロセッサユニットにおける内部バス７のデータバスは、１つ以上の３状態レジスタ６ａを介して、インターフェイスバス６に並列に接続される。例えば、プロセッサユニット１ａが１６ビット内部バス（Ｄ＿ＩＳＡ０〜Ｄ＿ＩＳＡ１５）を実装する場合、書き込み専用の２つの８ビットレジスタは、インターフェイスバス６上において、並列に用いることができ、また、同様に、バスα上において、それぞれ内部バス７におけるデータバスの８個の下位ビット（Ｄ＿ＩＳＡ０〜Ｄ＿ＩＳＡ７）及び８個の上位ビット（Ｄ＿ＩＳＡ８〜Ｄ＿ＩＳＡ１５）に用いることができる。内部バス７のデータバス（Ｄ＿ＩＳＡ０〜Ｄ＿ＩＳＡ１５）上に存在するデータのバスα（Ｄ０〜Ｄ１５）上への転送は、書き込み信号８によって、マイクロプロセッサによって命令される（図１）。
【００４８】
クロック信号ＣＬＫＡ及びＣＬＫＤ
図１において、プロセッサユニットの各マイクロプロセッサ２が、その出力部において、オープンコレクタポート１３を介して、全てのプロセッサユニットに共通なクロックバス（ＣＬＫＡ、ＣＬＫＤ）に接続される２つのクロック信号２ａ及び２ｂを出力する。プロセッサユニットがバスαの制御を行なう場合（これによってマスタプロセッサユニットになる場合）、クロック信号ＣＬＫＡ及びＣＬＫＤは、それぞれマスタプロセッサユニットのマイクロプロセッサ２のクロック信号２ａ及び２ｂに対応し、その他のスレーブプロセッサユニットのクロック信号２ａ及び２ｂは、フローティング状態であり、また、クロックバスＣＬＫＡ、ＣＬＫＤから隔離される。従って、バスα上のデータ交信は、マスタプロセッサユニットによって、タイミングが調整され、また、スレーブプロセッサユニットによって、バスα（認証メモリ３／信号５ａ、ＦＩＦＯメモリ４／信号５ｂ）上へ書き込まれるメッセージの読み込み処理がなされるが、それら自体のクロック速度（それら自体のマイクロプロセッサ２の動作周波数）には関係しない。このことには、異なるクロック速度を有するプロセッサユニットが互いに通信できるという利点がある。
【００４９】
プロセッサユニットのマイクロプロセッサ（２）の動作
メインプログラム
プロセッサユニットのマイクロプロセッサ２は、次のメインプログラムループを実行するようにプログラムされる。即ち、
ａ）ＦＩＦＯメモリ４のメッセージ（ヘッダ及びフレーム）の読み取りと、
ｂ）機能表におけるヘッダに関連する機能の復号化と、
ｃ）機能に対応するルーチン（タスク）の自動的な実行と、
のループを実行するようにプログラムされる。
【００５０】
バスα上へのメッセージの書き込み（図３及び４）
ステップｃ）のルーチンの実行時、バスαに接続される１つ以上の他のプロセッサユニットによって管理される機能を起動するために、マイクロプロセッサ２が、バスα上にメッセージを書き込むように要求されることが起こり得る。この場合、バスαの制御を行った後、プロセッサユニットは、機能を符号化するヘッダ及びメッセージのワードフレームをバスに書き込み、そして、バスを解放する。図３及び４は、この種類の書き込み動作に用いられる主信号に対するタイミング図である。
【００５１】
図３及び４において、信号“Ｄａｔａ＿Ｉｓａ”は、内部バス７のデータバス、即ち、例えば、プロセッサユニット１の内部バス７のビットＤ＿ＩＳＡ０〜Ｄ＿ＩＳＡ１５（図２）に対応する。信号“Ｃｏｍ＿ＣＬＫＡ”及び“Ｃｏｍ＿ＣＬＫＢ”は、先に引用された信号２ａ及び２ｂに対応する。ヘッダは、基準アドレス＋オフセット２で内部バス７のデータバスに書き込まれ、その後、データは、基準アドレス＋オフセット３で内部バス７のデータバスに書き込まれる（信号Ａ０＿ＩＳＡ及びＡ１＿ＩＳＡ参照）。
【００５２】
バスαに存在するメッセージの読み込み（図５及び６）
有効ヘッダが、バスα上に存在する場合、先に引用されたメインプログラムの実行は、認証メモリが出力する認証データによって割り込まれる（信号“ＩＲＱ＃Ｐ”が状態を変える）。次に、マイクロプロセッサは、ヘッダと、ヘッダの後、バスα上で送信されるワードフレームとをＦＩＦＯメモリ４に読み込むための第２のルーチンを実行し、対応するプロセッサユニットは、スレーブモードで動作する。
【００５３】
図５は、スレーブプロセッサユニットによって、バスα上への有効ヘッダの書き込み中に用いられる主信号のタイミング図を示す。図６は、マスタプロセッサユニットによってバスに書き込まれ、また、バスに先に書き込まれた有効ヘッダに関するフレームのワード（図６／“データｎ”、“データｎ＋１”）のスレーブプロセッサユニットによるバスα上での読み取り中用いられる主信号のタイミング図を示す。
【００５４】
図５において、スレーブプロセッサユニット用の有効ヘッダの場合、認証メモリ３の出力部において、割り込みＩＲＱ＃Ｐは、直に状態が変わる。有効ヘッダは、信号ＣＬＫＡ及びＣＬＫＤの同時動作によって、ＦＩＦＯメモリ４（信号１０／書き込み＿ＦＩＦＯ＿ＯＫ）に取り込まれる。
【００５５】
図６において、ＦＩＦＯメモリ４へのデータ取り込みは、信号ＣＬＫＤによってのみタイミングが調整される。
無効ヘッダの受信／図７
図７において、バスα上に存在するヘッダが、スレーブプロセッサユニットに対して有効でない場合、割り込み信号ＩＲＱ＃Ｐは、状態が変化し、また、マイクロプロセッサ２のメインプログラムは、割り込みを受けない。マイクロプロセッサ２は、バスα上に存在するヘッダのＦＩＦＯメモリ４への読み込み（書き込み＿ＦＩＦＯ＿ＯＫ信号は、状態が変化しない）、又は、ヘッダの後、バス上のワードフレームのＦＩＦＯメモリ４への後続の読み込みを命令しない。従って、スレーブプロセッサユニットは、バスα上のメッセージを無視する。
【００５６】
図１から７において説明したマルチプロセッサアーキテクチャは、次の主な利点を有する。
プロセッサユニットに対して、それらの機能により、ヘッダ（ファンクション・キー）を用いてアドレス指定を行なう原理は、プロセッサユニットによるタスクの並列実行の管理を簡素化し、また、これによって、プロセッサユニットのプログラミングを簡素化し、更に、低電力プロセッサユニットを用いて、低コストでパワフルなアーキテクチャを生成する。
【００５７】
このアーキテクチャは、モジュラー型であり、変更が非常に容易であるという利点を有し、また非常に堅牢であり、その形態は、アーキテクチャの全般的なオペレーティングシステムの実行を大きく乱すことなく、プロセッサユニットの追加、除去又は交換することによって、（動作を）“最新の状態”に変更することができ、また、従って、そのアーキテクチャを構成する幾つかのプロセッサユニットが故障しても、全体的なアーキテクチャの動作を停止する必要がない。
【００５８】
この並列アーキテクチャが、“汎用”であり、異なるプロセッサユニット間における通信、特に、異なるサイズのデータバス（インターフェイスバス６）を有するプロセッサユニット間における通信を提供し、接続し得るプロセッサユニットのサイズに対する唯一の制約が、バスα上における並列のビット数であり、このアーキテクチャは、１つのデータフォーマットのみに制約されず、粒状原子（ＡＧ）のサイズに等しい又はそれを上回るあらゆるデータフォーマットで動作する。
【００５９】
通信バス（バスα）上でのデータの交信は、バスの制御を行なう（信号ＣＬＫＡ及びＣＬＫＤ）マスタプロセッサユニットによってタイミングが調整されるため、プロセッサユニットは、それらのプロセッサに関係なく、また、とりわけ、それらのプロセッサのクロック速度に関係なく、互いに通信を行なうことができる。
【００６０】
応用例
プロセッサユニット、ロボットの動きを制御するための推進カード、音声カード、ビデオカメラカード、及びロボットの動作を制御する動作決定（コンピュータ）カードに各々対応する５枚のドータ・カードが搭載されるバックプレーン・マザー・カードを含むロボットが生産されている。下表３、４、５、６は、ヘッダ及び関連する機能の例を示す。
【００６１】
【表３】
2004521412.tif 000005
【表４】
2004521412.tif 000006
【表５】
2004521412.tif 000007
【表６】
2004521412.tif 000008
この応用例において、少なくとも２つのプロセッサユニット（ドータ・カード）は、同じヘッダで構成される。即ち、それらの機能表において同じヘッダ値を有する（以下の“非常停止”機能を参照。即ち、推進カード、音声カード及び動作決定カードが全て同じヘッダ値“１”で構成される）。また、この応用例において、少なくとも１つのプロセッサユニットは、複数のタスクを実行するように構成され、各タスクが異なるヘッダに関連するように構成される。例えば、推進カードは、その機能表において、機能、即ち、“非常停止”、“前方移動要求”、“後方移動要求”、“人の認識”、及び“存在するカードの識別要求”にそれぞれ関連するヘッダ値“１”、“２”、“３”、“６”及び“１０”を有する。“非常停止”機能は、上記の表を更に説明するために更に解説する。
【００６２】
“非常停止”機能
“非常停止”機能を符号化する値“１”のヘッダは、推進カード、音声カード及び動作決定カードに対して常時有効である。推進カードの機能表において、このヘッダ値は、“非常停止”機能に関連し、また、関連するルーチン（タスク）が、ロボットの駆動モータを停止する。
【００６３】
音声カードの機能表において、このヘッダ値“１”は、“非常停止”機能に関連し、また、関連するルーチンは、カードによる警告音の鳴動である。動作決定カードの機能表において、このヘッダ値は、“非常停止”機能に関連し、また、関連するルーチンは、そのイベントを記憶し日付を付し、また、ビデオカメラが静止画像を観察していることを確認することによって、非常停止が行なわれていることを確認する。値“１”のヘッダがバスα上に在る時、この機能に対応するこれらの各カードのルーチン（タスク）は、並列に起動される。逆に、“非常停止”機能を符号化する値“１”のヘッダは、ビデオカメラカードに対して決して有効にならない。このヘッダがバスα上に在る場合、ビデオカメラカードは、対応するメッセージを無視し、通常通り機能し続ける。
【００６４】
バスα上にヘッダ値“１”を書き込むことによる“非常停止”機能の起動は、推進カード（モータの過熱を検出する場合）、又はビデオカード（障害物を検出する場合）、又は動作決定カードの主導権で行なうことができる。“非常停止”機能は、音声カードの主導権でトリガをかけられることは決してない。
【００６５】
上表によって、当業者は、各カード用の機能表と、ヘッダを復号化するその認証メモリ３の内容とを定義することが可能である。
図１に示す特定の実施形態において、有効ヘッダを認識した後、プロセッサユニットは、バスα上のメッセージを、メッセージのヘッダに関連するタスクを実行する前、ＦＩＦＯメモリ４に読み込む。しかしながら、より簡単な実施形態においては、バスα上のヘッダを認識した後、また、メッセージをローカルメモリに先に読み込むことなく、ヘッダに関連するタスクを実行するプロセッサユニットを認識できる。この場合、プロセッサユニットは、ＦＩＦＯメモリ４を必ずしも含まない。同じく、他の実施形態において、認証メモリ３は、バス上のヘッダを復号化する他の何れかの手段、例えば、組み合わせ論理で実現される復号化表、によって置き換え得る。
【図面の簡単な説明】
【図１】１６ビット（Ｄ０〜Ｄ１５）並列バスαに接続された複数のプロセッサユニットを有する本発明による多マスタ／多スレーブアーキテクチャの１例の全体的なブロック図。
【図２】プロセッサユニットのＦＩＦＯメモリ及び認証メモリの詳細な電気回路図。
【図３】バスα上にヘッダを書き込むマスタプロセッサユニットに含まれる主信号のタイミング図。
【図４】バスα上にフレームのワードを書き込むマスタプロセッサユニットに含まれる主信号のタイミング図。
【図５】バスα上に存在する有効ヘッダを読み取るスレーブプロセッサユニットに含まれる主信号のタイミング図。
【図６】スレーブプロセッサユニットが有効ヘッダを受信した後、スレーブプロセッサユニットにおいて動作する主信号であって、バスα上でワードフレームを書き込むマスタプロセッサユニットに含まれる主信号のタイミング図。
【図７】スレーブプロセッサユニットが無効ヘッダを受信した後、スレーブプロセッサユニットにおいて動作する主信号であって、バスα上でワードフレームを書き込むマスタプロセッサユニットに含まれる主信号のタイミング図。
【図１】
2004521412.tif 000009
【図２】
2004521412.tif 000010
【図３】
2004521412.tif 000011
【図４】
2004521412.tif 000012
【図５】
2004521412.tif 000013
【図６】
2004521412.tif 000014
【図７】
2004521412.tif 000015
【国際公開パンフレット】
2004521412.tif 000016
2004521412.tif 000017
2004521412.tif 000018
2004521412.tif 000019
2004521412.tif 000020
2004521412.tif 000021
2004521412.tif 000022
2004521412.tif 000023
2004521412.tif 000024
2004521412.tif 000025
2004521412.tif 000026
2004521412.tif 000027
2004521412.tif 000028
2004521412.tif 000029
2004521412.tif 000030
2004521412.tif 000031
2004521412.tif 000032
2004521412.tif 000033
2004521412.tif 000034
2004521412.tif 000035
2004521412.tif 000036
2004521412.tif 000037
2004521412.tif 000038
2004521412.tif 000039
2004521412.tif 000040
2004521412.tif 000041
2004521412.tif 000042
2004521412.tif 000043
2004521412.tif 000044
2004521412.tif 000045
2004521412.tif 000046
2004521412.tif 000047
【国際調査報告】
2004521412.tif 000048
2004521412.tif 000049
2004521412.tif 000050
2004521412.tif 000051