(57)【特許請求の範囲】
【請求項１】
アプリケーション処理を独立して行ないうる複数のプロセッサユニットと、各プロセッサユニットにおけるアプリケーション処理に共通して用いられるデータを記憶しておく共通メモリと、上記の複数のプロセッサユニットと共通メモリとを相互に接続するバスとをそなえるとともに、
上記の各プロセッサユニットが、
上記アプリケーション処理のための命令実行処理を行なうプロセッサと、
上記のプロセッサとバスとの間に設けられ、該共通メモリの全内容データのコピーを記憶するためのローカルメモリ部と、
該複数のプロセッサユニットのいずれかのプロセッサにより該共通メモリの内容が更新された場合に該ローカルメモリ部の更新処理を制御するコピー回路とをそなえ、
該ローカルメモリ部において、該共通メモリに記憶されたデータの読み出し命令を該プロセッサから受けると、当該ローカルメモリ部にコピーされた対応データを読み出して出力するとともに、
該コピー回路が、該複数のプロセッサユニットをなすいずれかのプロセッサから共通メモリへのデータの更新命令に対する該共通メモリからの更新完了応答を受けると、当該共通メモリへの更新内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、マルチプロセッサ装置。
【請求項２】
上記の各プロセッサユニットのローカルメモリ部が、
該共通メモリの全内容データのコピーを記憶するための領域をそなえてなるコピーメモリと、
該プロセッサからの上記読み出し命令のためのアドレス情報および読み出されたデータを一旦保持する第1バッファと、
該プロセッサからの該共通メモリへの更新要求の対象となるアドレスおよびデータとともに、該複数のプロセッサユニットのいずれかのプロセッサにより更新された該共通メモリの内容を該バスを介して一旦保持しうる第２バッファと、
該プロセッサからの上記読み出し命令に基づいた該コピーメモリに対する読み出しアクセスと、該第２バッファにて保持されている内容に従って該コピーメモリ更新するための更新アクセスとを、該コピー回路からの制御に基づいて調停するメモリアクセス調停回路とをそなえて構成されたことを特徴とする、請求項1記載のマルチプロセッサ装置。
【請求項３】
該ローカルメモリ部が、上記のコピーメモリ上におけるアドレス領域に対応して、更新されたデータが格納されているか否かが記録されるステータスメモリを
そなえるとともに、
該第１バッファが、該プロセッサからの読み出し命令のアドレスに対応したデータをコピーメモリから読み出す際に、該ステータスメモリの記録を判定するステータス判定部と、該ステータス判定部における判定結果に基づいて、上記読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には上記保持されたデータを該プロセッサに出力する一方、上記更新データが保持されていると判定されなかった場合には、該共通メモリに対する読み出しのための処理を行なう読み出し処理部とをそなえて構成されたことを特徴とする、請求項２記載のマルチプロセッサ装置。
【請求項４】
該共通メモリが、該複数のプロセッサユニットにおけるアプリケーション処理によりリアルタイムに使用する頻度の高いデータを記憶する第１共通メモリと、上記頻度が低いデータを記憶する第２共通メモリとをそなえるとともに、
該バスが、上記の複数のプロセッサユニットと第１共通メモリとを相互に接続する第１バスと、上記の複数のプロセッサユニットと第２共通メモリとを相互に接続する第２バスとをそなえ、
上記のプロセッサユニットによる第１バスの使用を調停する第１バス調停回路と、上記のプロセッサユニットによる第２バスの使用を管理する第２バス使用管理回路とをそなえ、
上記の各プロセッサユニットのローカルメモリ部が、
該プロセッサからの読み出し命令または更新命令の対象となるデータについて、上記頻度の高低を分類する分類部と、
該第１共通メモリの全内容データのコピーを記憶するための第１ローカルメモリ部と、
該第２共通メモリの全内容データのコピーを記憶するための第２ローカルメモリ部とをそなえ、
かつ、該コピー回路が、該複数のプロセッサユニットのいずれかのプロセッサにより該第１共通メモリの内容が更新された場合に該第１ローカルメモリ部の更新処理を制御すべく構成されるとともに、
上記の第１ローカルメモリ部において、該第１共通メモリに記憶されたデータの読み出し命令を上記のプロセッサから受けると、当該第１ローカルメモリ部にコピーされた対応データを読み出して出力するように構成されたことを
特徴とする、請求項１記載のマルチプロセッサ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばリアルタイム系のマルチプロセッサ処理において用いて好適の、マルチプロセッサ装置に関するものである。
【０００２】
【従来の技術】
マルチプロセッサ装置は、複数のプロセッサをそなえるとともにメモリ資源等については共有バスを介することにより各プロセッサ間で共有する構成を有したもので、仕事を複数のプロセッサで分担して処理することにより処理性能を向上させることができるほか、システムを複数台用意するのに比べると、プロセッサ以外の部分が共用できるため装置製造コストを低減させることができるものである。
【０００３】
図１３はマルチプロセッサ装置を示すブロック図であるが、この図１３に示すマルチプロセッサ装置７００は、３つのプロセッサユニット１００，２００，３００とともに、バス調停回路５００および共通メモリ６００が、共通メモリバス４００を通じて相互にバス接続されて構成されている。
また、プロセッサユニット１００は、プロセッサ１１０，キャッシュメモリ１２０およびスヌープ回路１３０をそなえて構成され、プロセッサユニット２００は、プロセッサ２１０，キャッシュメモリ２２０およびスヌープ回路２３０をそなえて構成され、プロセッサユニット３００は、プロセッサ３１０，キャッシュメモリ３２０およびスヌープ回路３３０をそなえて構成されている。
【０００４】
また、各プロセッサユニット１００，２００，３００のキャッシュメモリ１２０，２２０，３２０は、共通メモリ６００上の一部のデータのコピーを格納するものである。更に、スヌープ回路１３０，２３０，３３０は、共通メモリバス４００上のトランザクションを監視してキャッシュメモリ１２０，２２０，３２０上のデータが更新された場合には同データを無効化する制御を行なうものである。
【０００５】
さらに、バス調停回路５００は、各プロセッサ１１０，２１０，３１０が要求する共通メモリバスの使用権を調停するものであり、共通メモリ６００は、各プロセッサユニット１００，２００，３００における処理を行なう際に共通して用いられるメモリである。
このような構成のマルチプロセッサ装置７００においては、各プロセッサ１１０，２１０，３１０と共通メモリバス４００との間に、共通メモリ６００に格納されているデータの一部のコピーを持つ高速なキャッシュメモリ１２０，２２０，３２０を配置しているので、共通メモリ６００へのアクセスの大部分をキャッシュメモリへのアクセスで代替し、アクセス速度が非常に遅い共通メモリ６００に対する直接アクセスの頻度を削減している。これにより、キャッシュメモリ１２０，２２０，３２０をそなえない場合に比して、プロセッサ処理速度の低下を抑えることができるようになっている。
【０００６】
また、スヌープ回路１３０，２３０，３３０は、共通メモリ６００上のデータとキャッシュメモリ１２０，２２０，３２０上のデータの整合性を確保するために、キャッシュメモリ１２０，２２０，３２０の無効化処理を行なうものである。
具体的には、各プロセッサユニット１００，２００，３００のスヌープ回路１３０，２３０，３３０は、共通メモリバス４００を常時監視し、他のプロセッサユニットのプロセッサによって共通メモリ６００のデータが書き換えられた場合に、自身のプロセッサユニットにおけるキャッシュメモリ上に書き換え前のデータが存在しているか否かをチェックし、存在している場合には該当データを無効化する。ついで、当該データが必要な場合にはキャッシュメモリ上にデータは存在しないと判断するとともに共通メモリ６００から直接書き換え後データをアクセスすることにより、共通メモリ６００上のデータとキャッシュメモリ１２０，２２０，３２０上のデータの整合性を保つようにしている。
【０００７】
なお、特開平8-30510号公報においては、スヌープを外部回路にて纏めて行ない、該当するデータを格納しているキャッシュメモリに対してのみ無効化処理を行なわせることで、無効化処理を必要としなかったプロセッサには通常どおりキャッシュメモリへのアクセスを可能にすることで、プロセッサ処理停止期間を削減する技術が開示されている。
【０００８】
ところで、上述の図１３に示すマルチプロセッサ装置７００のキャッシュメモリ１２０，２２０，３２０は、共通メモリ６００の一部のコピーであるため、全てのアクセスをキャッシュメモリ１２０，２２０，３２０へのアクセスで代替することはできず、プロセッサ１１０，２１０，３１０が要求したデータが対応するキャッシュメモリ１２０，２２０，３２０上に無かった場合、該当するデータを共通メモリバス４００経由にて共通メモリ６００から読み出すことになる。これは、上述したアクセス速度の遅い共通メモリ６００に対する直接アクセスの頻度を増大させる要因となる。
【０００９】
その為、プロセッサ処理を予測して連続した数バイトのデータを事前にキャッシュメモリ１２０，２２０，３２０にコピーしておくこと等の方法によって、共通メモリ上のデータアクセスをキャッシュメモリ上のアクセスに代替する率（以後、キャッシュヒット率と呼ぶ）を向上させることで、プロセッサ処理速度低下を抑える方法が考えられている。
【００１０】
たとえば、特開昭60-183652号公報には、通常のキャッシュメモリ（ダイナミックキャッシュ）の他に、高頻度のアクセスが予想されるデータを特別な命令を使用して、キャッシュメモリ上に固定的に割りつける固定キャッシュメモリ（スタティックキャッシュ）を準備し、データの使用頻度に応じたキャッシュメモリ管理を行なうことにより、キャッシュヒット率を確保して、プロセッサ処理速度の低下を防止するという技術が記載されている。
【００１１】
【発明が解決しようとする課題】
しかしながら、このような図１３に示すマルチプロセッサ装置において、特にリアルタイム系のプロセッサ処理を行なう場合、小さなタスクを多数同時かつ並列に動作させる必要があり、発生する事象に応じた処理を行なう必要があるため、次に起動されるタスクが予測できない。このような場合、プロセッサ１１０，２１０，３１０では、多種かつ不連続なデータに対してアクセスすることが多くなり、キャッシュメモリ１２０，２２０，３２０上にデータが存在する可能性が低くなる。これにより、共通メモリ６００にアクセスする可能性が高くなる。
【００１２】
各プロセッサ１１０が共通メモリ６００に対してアクセスする回数が増加すると、前述したように、共通メモリバス４００におけるバス競合が多発し、競合によるオーバヘッド時間により共通メモリ６００へのアクセス待ち合わせ時間が増大し、プロセッサ処理速度を低下させる際の支障となるという課題がある。
また、特開昭60-183652号公報に記載された技術においては、キャッシュメモリ上に固定的に割りつけたデータが、他プロセッサにて頻繁にデータ更新されるような場合には、該当データに対する無効化処理が多発するため、キャッシュヒット率が低下し、更新後のデータを読み込むために共通メモリバスのトランザクションを増加させてしまう。この共通メモリバスのトランザクション増加は、共通メモリへのアクセス待ち合わせ時間増大を助長させることになる。
【００１３】
さらに、特開平8-30510号公報に記載された技術においては、スヌープを必要としなかったプロセッサは通常どおりキャッシュメモリをアクセスすることができるものの、キャッシュヒット率の低下には対応ができず、データ読み込みのための共通メモリバスのトランザクションを増加させてしまう。
本発明は、このような課題に鑑み創案されたもので、共通メモリバスでの競合制御時間を短縮し、必要とするデータへのアクセスの待ち合わせ時間を減少させて、処理速度を高速化させることができるようにした、マルチプロセッサ装置を提供することを目的とする。
【００１４】
【課題を解決するための手段】
このため、本発明のマルチプロセッサ装置は、アプリケーション処理を独立して行ないうる複数のプロセッサユニットと、各プロセッサユニットにおけるアプリケーション処理に共通して用いられるデータを記憶しておく共通メモリと、上記の複数のプロセッサユニットと共通メモリとを相互に接続するバスとをそなえるとともに、上記の各プロセッサユニットが、上記アプリケーション処理のための命令実行処理を行なうプロセッサと、上記のプロセッサとバスとの間に設けられ、該共通メモリの全内容データのコピーを記憶するためのローカルメモリ部と、該複数のプロセッサユニットのいずれかのプロセッサにより該共通メモリの内容が更新された場合に該ローカルメモリ部の更新処理を制御するコピー回路とをそなえ、該ローカルメモリ部において、該共通メモリに記憶されたデータの読み出し命令を該プロセッサから受けると、当該ローカルメモリ部にコピーされた対応データを読み出して出力するとともに、該コピー回路が、該複数のプロセッサユニットをなすいずれかのプロセッサから共通メモリへのデータの更新命令に対する該共通メモリからの更新完了応答を受けると、当該共通メモリへの更新内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴としている。
【００１５】
上述のマルチプロセッサ装置においては、好ましくは、上記の各プロセッサユニットのローカルメモリ部を、該共通メモリの全内容データのコピーを記憶するための領域をそなえてなるコピーメモリと、該プロセッサからの上記読み出し命令のためのアドレス情報および読み出されたデータを一旦保持する第1バッファと、該プロセッサからの該共通メモリへの更新要求の対象となるアドレスおよびデータとともに、該複数のプロセッサユニットのいずれかのプロセッサにより更新された該共通メモリの内容を該バスを介して一旦保持しうる第２バッファと、該プロセッサからの上記読み出し命令に基づいた該コピーメモリに対する読み出しアクセスと、該第２バッファにて保持されている内容に従って該コピーメモリ更新するための更新アクセスとを、該コピー回路からの制御に基づいて調停するメモリアクセス調停回路とをそなえて構成することができる。
【００１６】
さらに、該ローカルメモリ部が、上記のコピーメモリ上におけるアドレス領域に対応して、更新されたデータが格納されているか否かが記録されるステータスメモリをそなえるとともに、該第１バッファが、該プロセッサからの読み出し命令のアドレスに対応したデータをコピーメモリから読み出す際に、該ステータスメモリの記録を判定するステータス判定部と、該ステータス判定部における判定結果に基づいて、上記読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には上記保持されたデータを該プロセッサに出力する一方、上記更新データが保持されていると判定されなかった場合には、該共通メモリに対する読み出しのための処理を行なう読み出し処理部とをそなえて構成することとしてもよい。
【００１７】
また、該プロセッサからの読み出し命令または更新命令の対象となるデータについて、該複数のプロセッサユニットにおけるアプリケーション処理によりリアルタイムに使用する頻度の高低を分類する分類部とをそなえ、該共通メモリが、該分類部にて上記頻度が高いと分類されたデータを記憶する第１共通メモリと、該分類部にて上記頻度が低いと分類されたデータを記憶する第２共通メモリとをそなえるとともに、該バスが、上記の複数のプロセッサユニットと第１共通メモリとを相互に接続する第１バスと、上記の複数のプロセッサユニットと第２共通メモリとを相互に接続する第２バスとをそなえ、上記のプロセッサユニットによる第１バスの使用を調停する第１バス調停回路と、上記のプロセッサユニットによる第２バスの使用を調停する第２バス調停回路とをそなえ、上記の各プロセッサユニットのローカルメモリ部が、該第１共通メモリの全内容データのコピーを記憶するための第１ローカルメモリ部と、該第２共通メモリの全内容データのコピーを記憶するための第２ローカルメモリ部とをそなえ、かつ、該コピー回路が、該複数のプロセッサユニットのいずれかのプロセッサにより該第１共通メモリの内容が更新された場合に該第１ローカルメモリ部の更新処理を制御すべく構成されるとともに、上記の第１ローカルメモリ部において、該第１共通メモリに記憶されたデータの読み出し命令を上記のプロセッサから受けると、当該第１ローカルメモリ部にコピーされた対応データを読み出して出力するように構成することとしてもよい。
【００１９】
【発明の実施の形態】
以下、図面を参照することにより、本発明の実施の形態を説明する。
［Ａ］第１実施形態の説明
図１は本発明の第１実施形態にかかるマルチプロセッサ装置を示すブロック図であり、この図１に示すマルチプロセッサ装置１０は、特にリアルタイム処理（実時間処理）をアプリケーションとして実行する場合においても、共通メモリ６００上のデータへのアクセスの待ち合わせ時間を減少させるものであって、例えば３つのプロセッサユニット１０１，２０１，３０１と、バス調停回路５００と、共通メモリ６００とが共通メモリバス４００を介して相互にバス接続されて構成されている。
【００２０】
ここで、この図１に示すマルチプロセッサ装置１０において、共通メモリ６００は、前述の図１３の場合と同様に、各プロセッサユニット１０１，２０１，３０１におけるアプリケーション処理に共通して用いられるデータを記憶しておくものである。
さらに、共通メモリバス４００は、３つのプロセッサユニット１０１，２０１，３０１，バス調停回路５００および共通メモリ６００の間において必要な情報のやり取りを行なうもので、後述する図３に示すように、アドレス授受のためのアドレスバス４０１，データ授受のためのデータバス４０２および制御情報の授受のための制御バス４０３をそなえて構成されている。
【００２１】
また、バス調停回路５００は、共通メモリバス４００に接続されてプロセッサユニット１０１，２０１，３０１によるバスの使用を調停するものである。即ち、バス調停回路５００は、共通メモリ６００に対するアクセスが競合した場合の調停を行なうものである。
さらに、プロセッサユニット１０１，２０１，３０１は、各々別個のアプリケーション処理を独立して行なうものであって、プロセッサユニット１０１は、プロセッサ１１０とともに、本願発明の特徴的な構成要素であるローカルメモリ部１４０およびコピー回路１５０をそなえて構成されている。同様に、プロセッサユニット２０１は、プロセッサ２１０，ローカルメモリ部２４０およびコピー回路２５０をそなえて構成され、プロセッサユニット３０１は、プロセッサ３１０，ローカルメモリ部３４０およびコピー回路３５０をそなえて構成されている。
【００２２】
ここで、上記の各プロセッサユニット１０１，２０１，３０１におけるプロセッサ１１０，２１０，３１０は、各々のアプリケーション処理のための命令実行処理を行なうものであって、このアプリケーション処理としては例えばリアルタイム処理が要求されるものとすることができる。
また、ローカルメモリ部１４０，２４０，３４０は、プロセッサ１１０，２１０，３１０と共通メモリバス４００との間に設けられ、共通メモリ６００の全内容データのコピーを記憶するためのものであって、詳細には後述する図２に示すような構成を有している。
【００２３】
さらに、コピー回路１５０，２５０，３５０は、複数のプロセッサユニット１０１，２０１，３０１のいずれかのプロセッサ１１０，２１０，３１０により共通メモリ６００の内容が更新された場合に、自身のプロセッサユニット１０１，２０１，３０１におけるローカルメモリ部１４０，２４０，３４０の更新処理を制御するものである。
【００２４】
これにより、いずれかのプロセッサ１１０，２１０，３１０において共通メモリ６００の書き込みがあったとしても、コピー回路１５０，２５０，３５０においてこれに追従してローカルメモリ部１４０，２４０，３４０の内容を更新することができる。即ち、ローカルメモリ部１４０，２４０，３４０においては、プロセッサ１１０，２１０，３１０から、共通メモリ６００に記憶されたデータの読み出し命令を受けると、当該ローカルメモリ部１４０，２４０，３４０にコピーされた対応データを読み出して出力することができるようになっている。
【００２５】
また、ローカルメモリ部１４０は、詳細には図２に示すように、第１バッファ１４１，第２バッファ１４２，メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４をそなえて構成されている。尚、他のローカルメモリ２４０，３４０についても、ローカルメモリ部１４０と同様の構成を有しているため、以下においてはローカルメモリ部１４０の構成に着目して詳述していくこととする。
【００２６】
ここで、コピーメモリ１４４は、共通メモリ６００の全内容データのコピーを記憶するための領域をそなえたものである。第１バッファ１４１は、プロセッサ１１０とバスにより双方向接続されて、プロセッサ１１０からの上記読み出し命令のためのアドレス情報および読み出されたデータ（リードデータ）と、後述する第２バッファ１４２に出力されるプロセッサ１１０から共通メモリ６００に対する更新要求の対象となるアドレスおよびデータ（ライトデータ）について、一旦保持するものである。
【００２７】
また、第２バッファ１４２は、第１バッファ１４１からのプロセッサ１１０からの共通メモリ６００への更新要求の対象となるアドレスおよびデータ（ライトデータ）とともに、プロセッサユニット２０１，３０１のうちのいずれかのプロセッサ２１０，３１０により更新された共通メモリ６００の内容（ライトデータおよびアドレス）を共通メモリバス４００を介して入力されて一旦保持しうるものである。尚、この第２バッファ１４２に格納されたアドレスおよびデータは、後述するようにコピー回路１５０の制御に基づいてコピーメモリ１４４に書き込まれるようになっている。
【００２８】
換言すれば、第２バッファ１４２は、第１バッファ１４１と、第１バッファ１４１から第２バッファ１４２に向かう方向でアドレスおよびデータが渡されるように１方向でバス接続されて、第１バッファ１４１を介してプロセッサ１１０からの書き込み対象となるアドレスおよびデータを入力されて一旦保持するようになっている。又、第２バッファ１４２は、共通メモリバス４００に接続されて、この共通メモリバス４００を通じてプロセッサ２１０またはプロセッサ３１０により更新された共通メモリ６００の内容を入力されて一旦保持するようになっている。
【００２９】
また、この第２バッファ１４２は、プロセッサ１１０から共通メモリ６００に対する更新要求の対象となるアドレスおよびデータを保持した場合に、バス調停回路５００に対する共通メモリバス４００の使用要求を、制御バス４０３（図３参照）を通じて出力する機能を有している。
また、メモリアクセスアビトレーション回路（メモリアクセス調停回路）１４３は、プロセッサ１１０からの読み出し命令に基づいたコピーメモリ１４４に対する読み出しアクセスと、第２バッファ１４２にて保持されている内容に従ってコピーメモリ１４４を更新するための更新アクセスとを、コピー回路１５０からの制御に基づいて調停するものである。換言すれば、第１バッファ１４１側のリードアクセスと第２バッファ１４２側のライトアクセスとが、コピーメモリ１４４に対して正常に行なわれるようバス調停を行なうものである。
【００３０】
すなわち、メモリアクセスアビトレーション回路１４３は、コピーメモリ１４４と双方向にバス接続される一方、第１バッファ１４１との間では第１バッファ１４１に向けて読み出し対象のアドレスおよびデータが出力されるようにバス接続されるとともに、第２バッファ１４２との間では第２バッファ１４２からの更新対象のアドレスおよびデータが入力されるようにバス接続されて、これら第１バッファ１４１および第２バッファ１４２とコピーメモリ１４４との間のデータのやりとりを調停するようになっている。
【００３１】
また、コピー回路１５０は、詳細には図３に示すように、トランザクション監視部１５１およびコピー処理制御部１５２をそなえて構成されている。尚、他のコピー回路２５０，３５０についても、コピー回路１５０と同様の構成を有しているため、以下においてはコピー回路１５０の構成に着目して詳述していくこととする。
【００３２】
ここで、トランザクション監視部１５１は、共通メモリバス４００のトランザクションを監視するものである。具体的には、いずれかのプロセッサ１０１，２０１，３０１から共通メモリ６００へのデータの更新命令に対する共通メモリ６００からの更新完了応答があったか否かを監視するものである。
すなわち、トランザクション監視部１５１においては、上述の共通メモリ６００から制御バス４０３を通じて更新完了応答があったときに、この更新アドレスおよびデータを取り込むための取込タイミングを第２バッファ１４２に供給するようになっている。
【００３３】
換言すれば、第２バッファ１４２においては、トランザクション監視部１５１からの取り込みタイミングに基づいて、アクセス中アドレスバス４０１およびデータバス４０２上で参照可能な更新アドレスおよび更新データを取り込むようになっている。
また、更新制御部としてのコピー処理制御部１５２は、トランザクション監視部１５１からの監視結果に基づいて、ローカルメモリ部１４０における更新処理を制御するものである。
【００３４】
具体的には、コピー処理制御部１５２は、トランザクション監視部１５１における共通メモリバス４００のトランザクションの監視の結果、プロセッサ１１０，２１０，３１０から共通メモリ６００へのデータの更新命令に対する共通メモリ６００からの更新完了応答を受けると、当該共通メモリ６００への更新内容に従ってローカルメモリ部１４０の更新処理を制御するようになっている。
【００３５】
上述のコピー処理制御部１５２においては、ローカルメモリ１４０の更新処理の制御として、メモリアクセスアビトレーション回路１４３に対して、第２バッファ１４２に取り込まれたデータの書き込みによる更新アクセスの要求を出力するとともに、このメモリアクセスアビトレーション回路１４３からのアクセス許可の応答を受けると、コピーメモリ１４４に対して更新指示を出力する。
【００３６】
これにより、コピー回路１５０，２５０，３５０が、いずれかのプロセッサ１１０，２１０，３１０から共通メモリ６００へのデータの更新命令に対する共通メモリ６００からの更新完了応答を受けると、当該共通メモリ６００への更新内容に従ってローカルメモリ部１４０，２４０，３４０の更新処理を制御するようになっている。
【００３７】
上述の構成により、本発明の第１実施形態にかかるマルチプロセッサ装置１０のプロセッサユニット１０１，２０１，３０１におけるアプリケーション処理を実行するにあたっては、運用開始時において、ローカルメモリ部１４０，２４０，３４０内のコピーメモリおよび共通メモリ６００の全てのデータを一致させるために、初期化処理としてコピーメモリの全領域について共通メモリ６００の内容の書き込みを行なう（全領域ライト処理）。
【００３８】
上述の初期化処理が行なわれると、各々のプロセッサユニット１０１，２０１，３０１のプロセッサ１１０，２１０，３１０においては、それぞれ、以下に詳述するように、ローカルメモリ部１４０，２４０，３４０からデータを読み出すとともに、共通メモリ６００に記憶されたデータを更新する。尚、以下においては、プロセッサユニット１０１の動作に着目して説明するが、他のプロセッサ２１０，３１０の動作についても、プロセッサ１１０からの要求と基本的に同様である。
【００３９】
まず、自身のプロセッサ１１０から共通メモリ６００に対して書き込み要求（ライトアクセス要求または更新要求）を発行した場合の動作について詳述する。すなわち、プロセッサ１１０が共通メモリ６００に対して書き込み要求としてのライトアクセスを行なうと、プロセッサ１１０が出力したアドレスおよびデータは第１バッファ１４１を経由して第２バッファ１４２に一時的に格納される（図４（ａ）のＡ１，Ａ２参照）。
【００４０】
第２バッファ１４２では、共通メモリバス４００を介してバス調停回路５００にバス使用権を要求する。バス調停回路５００では、他のプロセッサユニット２０１，３０１における共通メモリバス４００の使用状況に基づいて、共通メモリバス４００の使用を許可する旨の応答を、制御バス４０３（図３参照）を通じて出力する。
【００４１】
さらに、第２バッファ１４２では、バス調停回路５００からの応答を受けてバス使用権を確保すると、共通メモリバス４００のアドレスバス４０１におよびデータバス４０２に対して、一時的に格納していたアドレスおよびデータをそれぞれ送出する（図４（ａ）のＡ３参照）。
共通メモリ６００では、第２バッファ１４２からのアドレスの該当データを、第２バッファ１４２からのデータに書き換えられ、この書き換え処理が完了すると、制御バス４０３を通じて共通メモリ更新応答としての正常応答信号を出力する。
【００４２】
図３に示すように、コピー回路１５０のトランザクション監視部１５１では、共通メモリバス４００のトランザクションの監視を行なって、上述の共通メモリ６００からの正常応答信号を検出すると（図４（ａ）のＡ４参照）、その旨をコピー処理制御部１５２に出力する。
コピー処理制御部１５２では、第２バッファ１４２に格納されたアドレスおよびデータを、コピーメモリ１４４にコピーする為に、メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４を制御する（図４（ａ）のＡ５参照）。その後、第２バッファ１４２の内容がコピーメモリ１４４に書き込まれて（図４（ａ）のＡ６参照）、共通メモリ６００上のデータとコピーメモリ１４４の状態とを一致させることができる。
【００４３】
ついで、プロセッサ１１０以外の他のプロセッサ２１０，３１０から共通メモリ６００に対して書き込みアクセスを行なった場合の、ローカルメモリ部１４０の更新動作について詳述する。
すなわち、第２バッファ１４２では、他プロセッサ２１０，３１０が共通メモリ６００に対してライトアクセスを行なった場合に、コピー回路１５０から取り込みタイミングを受けて、共通メモリバス４００上のアドレスおよびデータを一時的に格納する。
【００４４】
具体的には、第２バッファ１４２のトランザクション監視部１５１では、共通メモリバス４００のトランザクションの監視を行なって、上述の共通メモリ６００からの正常応答信号を検出すると（図４（ｂ）のＢ１参照）、第２バッファ１４２に対して共通メモリバス４００上（即ち、共通メモリ６００上）の更新されたアドレスおよびデータを取り込むためのタイミングを与えるとともに（図４（ｂ）のＢ２参照）、更新が行なわれた旨をコピー処理制御部１５２に出力する。
【００４５】
上記の取り込みタイミングを受け取った第２バッファ１４２においては、共通メモリ６００上において更新のあったアドレスおよびデータを共通メモリバス４００を介して取り込む（図４（ｂ）のＢ３参照）。
その後、更新が行なわれた旨を受け取ったコピー処理制御部１５２では、共通メモリバス４００上から第２バッファ１４２に取り込まれたアドレスおよびデータを、コピーメモリ１４４にコピーする為に、メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４を制御する（図４（ｂ）のＢ４参照）。その後、第２バッファ１４２の内容がコピーメモリ１４４に書き込まれて（図４（ｂ）のＢ５参照）、共通メモリ６００上のデータとコピーメモリ１４４の状態とを一致させることができる。
【００４６】
上述したように、共通メモリ６００の内容が更新されると、コピー回路１５０，２５０，３５０の制御により、ローカルメモリ部１４０，２４０，３４０のコピーメモリの内容を共通メモリ６００の内容に符合するように更新しているので、プロセッサ１１０，２１０，３１０からのリードアクセス時においては、共通メモリ６００にアクセスすることなく、各々のローカルメモリ部１４０，２４０，３４０の内容からデータを読み出すことができる。
【００４７】
例えば、自身のプロセッサ１１０が読み出し要求（リードアクセス要求）を発行した場合においては、プロセッサ１１０が共通メモリ６００に対してリードアクセスを行なうと、第１バッファ１４１では、プロセッサ１１０が出力したアドレスを一時的に格納される（図４（ｃ）のＣ１参照）。
第１バッファ１４１は、コピーメモリ１４４上にある共通メモリ６００のコピーをリードする為に、メモリアクセスアビトレーション回路１４３にコピーメモリ１４４へのリードアクセスを要求する（図４（ｃ）のＣ２参照）。リード可能な状態であれば、メモリアクセスアビトレーション回路１４３では、第１バッファ１４１が一時格納しているアドレスに対応するデータをコピーメモリ１４４から読み出し、第１バッファ１４１を経由してプロセッサ１１０に返送する。
【００４８】
これにより、ローカルメモリ部１４０，２４０，３４０において、共通メモリ６００に記憶されたデータの読み出し命令をプロセッサ１１０，２１０，３１０から受けると、当該ローカルメモリ部１４０，２４０，３４０にコピーされた対応データを読み出して出力する。
このように、第１実施形態にかかるマルチプロセッサ装置１０によれば、プロセッサユニット１０１，２０１，３０１が、プロセッサ１１０，２１０，３１０とローカルメモリ部１４０、２４０，３４０とコピー回路１５０、２５０，３５０とをそなえたことにより、共通メモリ６００の全データのコピーを、それぞれのプロセッサ１１０，２１０，３１０配下のコピーメモリ内に持つ事で、共通メモリバス４００上でリードアクセスによるトランザクションが発生しないため、共通メモリバス４００(競合制御)での競合を最小限に抑えることができる。これにより、バス競合によるアクセスの待ち合わせを短くすることが可能となる。特に、リアルタイム処理を行なう場合でも、キャッシュメモリ方式のごときキャッシュメモリ上のデータの無効化処理や再読み込み処理等が増加することもなく、必要とする共通メモリ６００上のデータへのアクセスを最小の待ち合わせで行なうことができる。
【００４９】
［Ｂ］第２実施形態の説明
図５は本発明の第２実施形態にかかるマルチプロセッサ装置の要部を示すブロック図であるが、この図５に示すマルチプロセッサ装置２０は、前述の第１実施形態におけるもの（符号１０参照）に比して、機能が付加されたローカルメモリ部をそなえてなるプロセッサユニット１００Ａ，２００Ａ，３００Ａをそなえている点が異なり、それ以外の構成については基本的に同様である。
【００５０】
なお、図５中においては、プロセッサユニット１００Ａに着目して図示しているが、プロセッサユニット２００Ａ，３００Ａについても、プロセッサユニット１００Ａと同様の構成を有している。
ここで、ローカルメモリ部１４０Ａは、第１バッファ１４１に替えてステータス判定機能を有する第１バッファ１４６をそなえる点とともに、ステータスメモリ１４５が追加されている点が、前述の第１実施形態におけるローカルメモリ部１４０に比して異なっている。尚、第２バッファ１４２メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４は、前述の第１実施形態の場合と同様である。
【００５１】
ここで、ステータスメモリ１４５は、コピーメモリ１４４上におけるアドレス領域に対応して、更新されたデータが格納されているか否かを記録するものであって、詳細には図６に示すような構成を有している。
すなわち、このステータスメモリ１４５は、コピーメモリ１４４の最小アクセス単位（例えばアドレス‘Ａ’〜‘Ｚ’）に対応したステータスビット（‘ａ′’〜‘ｚ′’）をそなえて構成されている。尚、図６は、コピーメモリ１４４およびステータスメモリ１４５が、メモリアクセスアビトレーション回路１４３からのアドレス情報，データ情報およびリード信号と、コピー回路１５０からのライト信号とが並列的に授受しうることを示している。
【００５２】
また、ステータスメモリ１４５における最小アクセス単位に対応したステータスビットは、コピー回路１５０による制御に基づいて、それぞれのプロセッサユニット１００Ａ，２００Ａ，３００Ａが起動した当初は、「データ無し」を示すビット値が記憶され、各アドレス（‘Ａ’〜‘Ｚ’）に対して最初の共通メモリ６００へのアクセスが行なわれたときに、「データ有り」を示すビット値を記憶するようになっている。
【００５３】
すなわち、コピー回路１５０のコピー処理回路１５２においては、前述の第１実施形態の場合と同様に、トランザクション監視部１５１から共通メモリ６００の更新完了応答を受信した旨を受けると、第２バッファ１４２に取り込み格納されたアドレスおよびデータを、コピーメモリ１４４にコピーする為に、メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４を制御するが、同時にステータスメモリ１４５における更新アドレスに対応するステータスビットに対して「データ有り」を示すビット値を記憶する。
【００５４】
また、上述のステータスメモリ１４５に対して「データ有り」を書き込むにあたり、例えばトランザクション監視部１５１において正常応答信号を検出できなかった場合等、第２バッファ１４２にて保持されている内容をコピーメモリ１４４に更新するための更新アクセスを正常に完了できなかった場合には、ステータスメモリ１４５の対応アドレス領域には、「データ無し」状態を記録するようになっており、これにより、コピーメモリ１４４内のデータの信頼度を向上させている。
【００５５】
また、第１バッファ１４６は、前述の第１実施形態の場合と同様に、プロセッサ１１０とバスにより双方向接続されて、リードデータとライトデータとについて、一旦保持するものであるが、ステータス判定部１４６−１および読み出し処理部１４６−２をそなえている。
第１バッファ１４６のステータス判定部１４６−１は、プロセッサ１１０からの読み出し命令のアドレスに対応したデータをコピーメモリ１４４から読み出す際に、ステータスメモリ１４５の記録を判定するものである。即ち、ステータス判定部１４６−１においては、読み出し命令のアドレスに対応したステータスビットをステータスメモリ１４５から読み出して、読み出したステータスビットの内容が、「データ有り」かまたは「データ無し」のいずれのビットかを判定するようになっている。
【００５６】
また、読み出し処理部１４６−２は、ステータス判定部１４６−１における判定結果に基づいて、読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には保持されたデータをプロセッサ１１０に出力する一方、更新データが保持されていると判定されなかった場合には、共通メモリ６００に対する読み出しのための処理を行なうものである。
【００５７】
具体的には、ステータス判定部１４６−１の判定の結果、ステータスメモリ１４５のステータスビットの情報が「データ有り」ならば、最新のデータが格納さているコピーメモリ１４４から、「データ無し」ならば、第２バッファ１４２経由で共通メモリ６００から、それぞれ記憶されているデータをリードするための処理を行なうものである。
【００５８】
なお、第２バッファ１４２では、共通メモリ６００に対して書き込みアクセスを行なう場合と同様に、バス調停回路５００にバス使用要求を出力して、バス使用権を取得した後に、共通メモリ６００上の読み出しの対象となるアドレスおよびデータを共通メモリバス４００を介して取り込む。
なお、前述の第１実施形態においては、ローカルメモリ部１４０における第１，第２バッファ間のデータバスおよびアドレスバスは第１バッファから第２バッファに向けた転送方向のみであったが、第２実施形態においては、第１，第２バッファ間は双方向の転送方向でアドレスおよびデータを転送できるようなバスにより構成する。
【００５９】
上述の構成により、本発明の第２実施形態にかかるマルチプロセッサ装置２０では、各プロセッサユニット１００Ａ，２００Ａ，３００Ａでは、ステータスメモリ（プロセッサユニット１００Ａでは符号１４５）をそなえるとともに、第１バッファ（１４６）において、コピーメモリ（１４４）に記憶されたデータが更新済の最新のデータか否かに応じてリードアクセスを行なっているので、前述した第１実施形態の場合のごとき、運用開始時におけるコピーメモリ（１４４）の全領域ライト処理を行なう必要がない。
【００６０】
ここで、プロセッサユニット１００Ａに着目し、プロセッサ１１０から共通メモリ６００に対して書き込み要求が発行された場合の処理について詳述する。
すなわち、プロセッサ１１０が共通メモリ６００に対してライトアクセスを行なうと、プロセッサ１１０が出力したライトアクセスの対象となるアドレスおよびデータは第１バッファ１４６を経由して第２バッファ１４２に一時的に格納される。
【００６１】
第２バッファ１４２では、共通メモリバス４００のバス調停回路５００にバス使用権を要求して、バス使用権を確保すると、共通メモリバス４００に対して一時的に格納していたアドレスおよびデータを送出する。
さらに、コピー回路１５０のトランザクション監視部１５１において共通メモリ６００からの正常応答信号を検出すると、コピー処理制御部１５２では、第２バッファ１４２に格納されたアドレスおよびデータを、コピーメモリ１４４にコピーする為に、メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４を制御し、共通メモリ６００上のデータとコピーメモリの状態を一致させる。この時、ステータスメモリ１４５の該当アドレスのステータスビットに「データ有り」を書き込む。
【００６２】
ついで、プロセッサ１１０が読み出し要求を発行した場合には、以下に示すように動作する。
まず、プロセッサ１１０からの読み出し要求は第１バッファ１４６に一時的に格納される。この第１バッファ１４６では、読み出し要求の対象アドレスに該当した、コピーメモリ１４４上にある共通メモリ６００のコピーデータ、およびステータスメモリ１４５上にあるステータスビットをリードする為に、メモリアクセスアビトレーション回路１４３にコピーメモリ１４４からのリードアクセスを要求する。
【００６３】
リード可能な状態であれば、メモリアクセスアビトレーション回路１４３では、第１バッファ１４６が一時格納しているアドレスに対応するコピーデータをコピーメモリ１４４から、ステータスビットをステータスメモリ１４５からそれぞれ読み出し、第１バッファ１４６に返送する。
第１バッファ１４６のステータス判定部１４６−１では、ステータスメモリ１４５から読み出したステータスビットが、「データ有り」および「データ無し」のいずれかとなっているかを判定するが、このステータスビットが「データ有り」の場合には、読み出し処理部１４６−２において、コピーメモリ１４４から読み出したデータをプロセッサ１１０に返送する。
【００６４】
また、ステータス判定部１４６−１において、「データなし」のステータスビットを読み出した場合には、読み出し処理部１４６−２においては、第２バッファ１４２を経由して共通メモリ６００から該当するアドレスのデータを読み出して、プロセッサ１１０に返送する。
さらに、コピー回路１５０では、共通メモリ６００からの正常応答信号（読み出しが正常に終了した旨の応答）を検出すると、第２バッファ１４２に格納されたアドレスおよびデータを、コピーメモリ１４４にコピーする為に、メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４を制御し、共通メモリ６００上のデータとコピーメモリ１４４の状態を一致させる。この時、ステータスメモリ１４５の該当アドレスのステータスビットに「データ有り」を書き込む。
【００６５】
ついで、プロセッサ１１０以外の他のプロセッサ２１０，３１０から共通メモリ６００に対して書き込みアクセスを行なった場合の、ローカルメモリ部１４０の更新動作について詳述する。
すなわち、第２バッファ１４２では、前述の第１実施形態の場合と同様に、他プロセッサユニット２００Ａ，３００Ａのプロセッサが共通メモリ６００に対してライトアクセスを行なった場合に、コピー回路１５０から取り込みタイミングを受けて、共通メモリバス４００上のアドレスおよびデータを一時的に格納する。
【００６６】
また、コピー回路１５０のコピー処理制御部１５２では、共通メモリ６００からの正常応答信号を受信した旨をトランザクション監視部１５１から受けた後、メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４を制御することにより、第２バッファ１４２に格納されたアドレスおよびデータを、コピーメモリ１４４にコピーさせる。この時、ステータスメモリ１４５の該当アドレスのステータスビットに「データ有り」を書き込む。
【００６７】
ところで、第２実施形態におけるマルチプロセッサ装置においては、後から起動したプロセッサユニットがあった場合においては、当該プロセッサユニットのコピーメモリ内に共通メモリ６００のデータをコピーされていない場合でも、共通メモリ６００から直接読み出しデータを読み出すことができる為、第１実施形態の場合に比して、後から起動するプロセッサユニットの初期化処理（コピーメモリの全領域ライト処理）を行なう必要が無くなり、迅速に運用を開始することができる。
【００６８】
この時、プロセッサ起動当初は共通メモリ６００へのリードアクセスが発生するため共通メモリバス４００での競合が一時的に増加するが、共通メモリ６００の全アドレスへの１回以上のアクセスが行なわれた時点から、全てのリードアクセスはコピーメモリに対して行なわれることになるため、その後は、共通メモリバス４００(競合制御)での競合を最小限に抑えることができ、バス競合によるアクセスの待ち合わせを短くすることが可能となる。
【００６９】
このように、本発明の第２実施形態にかかるマルチプロセッサ装置２０によれば、各プロセッサユニット１００Ａ，２００Ａ，３００Ａのローカルメモリ部（プロセッサユニット１００Ａの場合は符号１４０Ａ）が、ステータスメモリ（プロセッサユニット１００Ａの場合は符号１４５）および第１バッファ（プロセッサユニット１００Ａの場合は符号１４６）をそなえたことにより、共通メモリ６００のデータがコピーメモリ（プロセッサユニット１００Ａの場合は符号１４４）にコピーされているか否かに応じて、それぞれのプロセッサ１１０，２１０，３１０に対して矛盾の無い読み出しデータを出力することができるので、前述の第１実施形態の場合と同様、共通メモリバス４００(競合制御)での競合を最小限に抑え、バス競合によるアクセスの待ち合わせを短くすることが可能となる利点があるほか、３つのコピーメモリの全てのデータを一致させるための初期化処理を省略することができる。
【００７０】
また、上述のステータスメモリ（プロセッサユニット１００Ａの場合は符号１４５）に対して「データ有り」を書き込むにあたり、例えばトランザクション監視部（プロセッサユニット１００Ａの場合は符号１５１，図３参照）において正常応答信号を検出できなかった場合等、第２バッファ（プロセッサユニット１００Ａの場合は符号１４２）にて保持されている内容をコピーメモリ（プロセッサユニット１００Ａの場合は符号１４４）に更新するための更新アクセスを正常に完了できなかった場合には、ステータスメモリ（プロセッサユニット１００Ａの場合は符号１４５）の対応アドレス領域には、「データ無し」状態を記録することもでき、このようにすれば、コピーメモリ（プロセッサユニット１００Ａの場合は符号１４４）内のデータの信頼度をより向上させることができる利点もある。
【００７１】
［Ｃ］第３実施形態の説明
図７は本発明の第３実施形態にかかるマルチプロセッサ装置を示すブロック図であり、この図７に示すマルチプロセッサ装置３０は、前述の第１実施形態におけるもの（符号１０参照）に比して、共通メモリバスとして競合用共通メモリバス４１０と個別用共通メモリバス４２０とに機能を分離して構成するとともに、共通メモリ６００として競合用共通メモリ６１０と個別用共通メモリ６２０とに機能を分離して構成している点が主として異なっている。
【００７２】
すなわち、競合用共通メモリバス４１０はプロセッサユニット１００Ｂ，２００Ｂ，３００Ｂ，競合用共通メモリ６１０およびバス調停回路５００に接続され、個別用共通メモリバス４２０については、プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂ，個別用共通メモリ６２０およびポーリング制御回路５１０に接続されている。尚、これらのバス４１０，４２０はそれぞれ、前述の第１，第２実施形態の場合と同様に、図示しないアドレスバス，データバスおよび制御バスをそなえて構成することができる。
【００７３】
また、プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂは、前述の第１実施形態の場合に比して、２ウェイのローカルメモリ部１６０，２６０，３６０をそなえている点が異なり、このローカルメモリ部１６０，２６０，３６０以外のプロセッサおよびコピー回路の構成については、基本的に同様である。尚、図７中、図１と同一の符号は、ほぼ同様の部分を示す。
【００７４】
また、各プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂにおいて動作するソフトウェアは、リアルタイムで共通使用する頻度の高いデータと、リアルタイムで共通使用する頻度の低いデータとを識別して動作する。後段のローカルメモリ部１６０，２６０，３６０等のハードウェアへの識別の通知は、例えばアドレス領域を分離することや、種別認識のための特定ビットの付加ビットを立てることにより行なう。
【００７５】
ここで、競合用共通メモリ（第１共通メモリ）６１０は、プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂにおけるアプリケーション処理にあたって、リアルタイムにアクセス（使用）する頻度が高いデータを記憶するものである。又、個別用共通メモリ（第２共通メモリ）６２０は、例えば障害発生時プロセッサ１１０，２１０，３１０間で処理の引継ぎを行なうデータのように、データ授受のリアルタイム性の低い、即ち、リアルタイムに使用する頻度の低いデータを記憶するものである。
【００７６】
また、ローカルメモリ部１６０は、図８に示すように、共通／個別判定部１７０，第１ローカルメモリ部１８０および第２ローカルメモリ部１９０をそなえて構成されている。同様に、ローカルメモリ部２６０は、図示が省略された共通／個別判定部，第１ローカルメモリ部および第２ローカルメモリ部をそなえて構成され、ローカルメモリ部３６０についても図示が省略された共通／個別判定部，第１ローカルメモリ部および第２ローカルメモリ部をそなえて構成されている。
【００７７】
なお、ローカルメモリ部２６０，３６０は、ローカルメモリ部１６０に準じたほぼ同様の構成を有しているので、以下においては、ローカルメモリ部１６０の構成に着目して説明していくこととする。
ここで、ローカルメモリ部１６０の共通／個別判定部１７０は、プロセッサ１１０からの読み出し命令または更新命令の対象となるデータについて、前述のアドレス領域や特定ビットが付加されているか否か等に基づいて、プロセッサユニット１００Ｂ〜３００Ｂ間でリアルタイムに共通使用する頻度の高低を分類するものであり、分類部として機能する。
【００７８】
換言すれば、共通／個別判定部１７０は、プロセッサ１１０からの読み出し命令または更新命令の対象となるデータについて、競合用共通メモリ６１０上に記憶すべきリアルタイムに共通使用する頻度の高いデータか、又は、個別用共通メモリ６２０上に記憶すべき、障害発生時にプロセッサユニット１００Ｂ〜３００Ｂ間で処理の引継ぎを行なうためのデータのようにデータ授受のリアルタイム性が低いデータかを判定するものである。
【００７９】
さらに、共通／個別判定部１７０は、上述の判定の結果、リアルタイムで共通使用する頻度の高いデータである場合には上述の読み出しまたは更新の命令を第１ローカルメモリ部１８０に、リアルタイムで共通使用する頻度の低いデータである場合には上述の読み出しまたは更新の命令を第２ローカルメモリ部１９０に、それぞれ振り分けて出力するようになっている。
【００８０】
さらに、第１ローカルメモリ部１８０は、競合用共通メモリ６１０の全内容データのコピーを記憶するためのものであって、図８に示すように、前述の第１実施形態におけるローカルメモリ部１４０と同様（図２参照）、第１バッファ１４１，第２バッファ１４２，メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４をそなえて構成されている。
【００８１】
すなわち、コピーメモリ１４４において、競合用共通メモリ６１０の全内容データのコピーを記憶するようになっている。尚、図８中、図２と同一の符号は、ほぼ同様の部分を示している。
さらに、第２ローカルメモリ部１９０は、個別用共通メモリ６２０の全内容データのコピーを記憶するためのものであり、第３バッファ１４７および個別用コピーメモリ１４８をそなえて構成されている。
【００８２】
ここで、個別用コピーメモリ１４８は、共通／個別判定部１７０と第３バッファ１４７との間に介装されて、個別用共通メモリ６２０内の全内容データのコピーを格納するものである。又、第３バッファ１４７は、個別用コピーメモリ１４８および個別用共通メモリバス４２０の間に介装されて、個別用コピーメモリ１４８内で、後述するポーリング制御回路５１０の制御に基づくポーリング間隔内で変更されたアドレスおよびデータを格納しておくものである。
【００８３】
また、コピー回路１５０は、プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂのいずれかのプロセッサにより競合用共通メモリ６１０の内容が更新された場合に第１ローカルメモリ部１８０におけるコピーメモリ１４４の更新処理を制御するようになっている。
これにより、コピーメモリ１４４においては、競合用共通メモリ６１０の内容がいずれのプロセッサユニット１００Ｂ，２００Ｂ，３００Ｂで更新された場合においても、コピーメモリ１４４の内容も当該競合用共通メモリ６１０に符合するように追従して更新しているので、第１ローカルメモリ部１８０において、競合用共通メモリ６１０に記憶されたデータの読み出し命令をプロセッサ１１０から受けた場合においても、当該第１ローカルメモリ部１８０にコピーされた対応データを読み出して出力することができる。
【００８４】
さらに、バス調停回路５００は、競合用共通メモリバス４１０に接続されて、プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂによる競合用共通メモリ６１０に対するアクセスが競合した場合のバスの使用を調停するものである。
また、ポーリング制御回路５１０は、プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂによる個別用共通メモリバス４２０の使用を管理する第２バス使用管理回路として機能するもので、第３バッファ１４７と個別用共通メモリ６２０との間の個別用共通メモリバス４２０をポーリング方式でデータアクセスの制御を行なうようになっている。
【００８５】
ここで、ポーリング制御回路５１０は、例えば図９に示すように、バス使用中応答監視部５１１およびバス使用許可通知部５１２をそなえて構成されている。
また、バス使用中応答監視部５１１は、各プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂから個別用共通メモリバス４２０を介して入力されるバス使用中信号応答を監視し、使用中応答信号が無効となったとき、またはプロセッサユニット１００Ｂ，２００Ｂ，３００Ｂからバス使用中応答が一定時間無かったときに、バス使用許可通知部５１２に対してバス未使用通知を行なうものである。
【００８６】
さらに、バス使用許可通知部５１２は、バス使用中応答監視部５１１からのバス未使用通知を受けて、次に個別用共通メモリバス４２０の使用権を与えるプロセッサユニットに対して、バス使用許可を通知するものである。
例えば、バス使用許可通知部５１２において、プロセッサユニット１００Ｂ向けにバス使用許可を通知した後〔図１０（ａ）の時点ｔ１〕、バス使用中応答監視部５１１では、プロセッサユニット１００Ｂからのバス使用中応答信号を受ける〔図１０（ｂ）の時点ｔ２〕。これにより、プロセッサユニット１００Ｂでは、個別用共通メモリバス４２０を使用することができる〔図１０（ｇ）の時点ｔ２〜ｔ３〕。
【００８７】
ついで、バス使用中応答監視部５１１において、プロセッサユニット１００Ｂからのバス使用中応答信号が無効となると〔図１０（ｂ）の時点ｔ３〕、バス使用許可通知部５１２に対してバス未使用通知を行なう。このバス未使用通知を受けたバス使用許可通知部５１２においては、次に個別用共通メモリバス４２０の使用権を与えるプロセッサユニット２００Ｂに対して、バス使用許可を通知する〔図１０（ｃ）の時点ｔ４〕。
【００８８】
なお、この場合においては、プロセッサユニット２００Ｂからバス使用中応答が一定時間無い〔図１０（ｄ）の時点ｔ４〜ｔ５〕。このため、バス使用中応答監視部５１１ではバス使用許可通知部５１２に対してバス未使用通知を行ない、バス使用許可通知部５１２では、次に個別用共通メモリバス４２０の使用権を与えるプロセッサユニット３００Ｂに対して、バス使用許可を通知する〔図１０（ｅ）の時点ｔ５〕。
【００８９】
これにより、プロセッサユニット３００Ｂでは、バス使用中応答信号を出力して〔図１０（ｆ）の時点ｔ６〜ｔ７〕。個別用共通メモリバス４２０を使用することができる〔図１０（ｇ）の時点ｔ６〜ｔ７〕。
上述の構成により、本発明の第３実施形態にかかるマルチプロセッサ装置３０においては、例えばプロセッサユニット１００Ｂのプロセッサ１１０では、アクセス対象のデータに関してリアルタイムに共通使用する頻度の高いデータか又は頻度の低いデータかを識別して、ハードウェアで識別できる情報形式で、データの読み出し又は書き込みのアクセス要求を行なう。尚、以下においては、プロセッサユニット１００Ｂに着目して詳述するが、他のプロセッサユニット２００Ｂ，３００Ｂにおいても基本的に同様である。
【００９０】
プロセッサ１１０からのアクセス要求を受けたローカルメモリ部１６０の共通／個別判定部１７０では、例えばアドレス領域やフラグの付加状態等に基づいて、プロセッサユニット１００Ｂ，２００Ｂ，３００Ｂ間でのデータ授受のリアルタイム性の高低を判定する。
共通／個別判定部１７０においては、リアルタイムで共通使用する頻度が低いデータが、書き込みアクセス対象であると判定された場合は、個別用コピーメモリ１４８に書き込みを行なうとともに、第３バッファ１４７および個別用共通メモリバス４２０を介して個別用共通メモリ６２０にアクセスする。
【００９１】
なお、個別用共通メモリ６２０に記憶されたデータの読み出し要求については、個別用コピーメモリ１４８に書き込まれたデータを読み出して出力することにより、個別用共通メモリ６２０にアクセスする必要がなくなる。
これにより、リアルタイムで共通使用する頻度が低いデータに対するアクセスを、リアルタイムに共通使用する頻度の高いデータのアクセスに対して切り離すことができるため、共通メモリへの遅いアクセス時間によってプロセッサ処理時間が増加することはない。
【００９２】
また、共通／個別判定部１７０においては、リアルタイムで共通使用する頻度が高いデータが、書き込みアクセス対象であると判定された場合は、前述の第１実施形態の場合と同様に、競合用共通メモリバス４１０を介して競合用共通メモリ６２０に書き込みが行なわれる一方、コピー回路１５０の制御により、コピーメモリ１４４の内容を更新することができる。従って、リアルタイムで共通使用する頻度が高いデータが、読み出しアクセス対象である場合においては、コピーメモリ１４４へのアクセスのみで済み、競合用共通メモリバス４１０にアクセスする必要がなくなる。
【００９３】
このように、本発明の第３実施形態にかかるマルチプロセッサ装置３０によれば、前述の第１実施形態の場合と同様、競合用共通メモリ６１０の全データのコピーを、それぞれのプロセッサ１１０，２１０，３１０配下のコピーメモリ内に持つ事で、競合用共通メモリバス４１０上でリードアクセスによるトランザクションが発生しないため、共通メモリバス４００(競合制御)での競合を最小限に抑え、バス競合によるアクセスの待ち合わせを短くすることが可能となる利点があるほか、共通メモリバスとして、競合用共通メモリバス４１０および個別用共通メモリバス４２０をそなえ、共通メモリとして、競合用共通メモリ６１０および個別用共通メモリ６２０をそなえて構成しているので、リアルタイムに共通使用する頻度の低いデータに対するアクセスを別のバス経由でアクセスすることができ、特に、リアルタイム処理を行なう場合、バス競合によるアクセスの待ち合わせをより短くすることができる。
【００９４】
なお、上述の第３実施形態においては、個別用共通メモリバス４２０をポーリング制御回路５１０によるポーリング制御によりバス転送制御を行なっているが、本発明によればこれに限定されず、他の公知の手法を用いてバス転送制御を行なうことも可能である。
また、前述の第２実施形態におけるステータスメモリおよび第１バッファと同等の機能を、本実施形態にかかるマルチプロセッサ装置に適用して構成することも可能である。
【００９５】
［Ｄ］第４実施形態の説明
図１１は本発明の第４実施形態にかかるマルチプロセッサ装置を示すブロック図であり、この図１１に示すマルチプロセッサ装置４０は、前述の第１実施形態のマルチプロセッサ装置１０に比して、プロセッサユニット１００Ｃ，２００Ｃ，３００Ｃにおけるコピー回路１５０Ａ，２５０Ａ，３５０Ａの構成が異なるとともに、共通メモリ６００をそなえないで構成されている点が異なっている。
【００９６】
すなわち、この図１１に示すマルチプロセッサ装置４０においても、アプリケーション処理を独立して行なうための３つのプロセッサユニット１００Ｃ，２００Ｃ，３００Ｃと、プロセッサユニット１００Ｃ，２００Ｃ，３００Ｃとともに、バス調停回路５００を相互に接続する共通メモリバス４００とをそなえて構成されている。
【００９７】
また、各プロセッサユニット１００Ｃ，２００Ｃ，３００Ｃは、前述の第１実施形態の場合と同様、データの読み出しおよび書き込みを行なって、上記アプリケーション処理のための命令実行処理を行なうプロセッサ１１０，２１０，３１０と、各プロセッサにおけるアプリケーション処理のためのデータを記憶するためのローカルメモリ部１４０，２４０，３４０とをそなえるとともに、前述の第１実施形態の場合と構成の異なるコピー回路１５０Ａ，２５０Ａ，３５０Ａをそなえて構成されている。
【００９８】
なお、ローカルメモリ部１４０，２４０，３４０については、前述の第１実施形態の場合と基本的に同様の、第１バッファ，メモリアクセスアビトレーション回路およびコピーメモリとともに、第２バッファをそなえて構成されている（図２の符号１４１〜１４４参照）。
ここで、図１２に示すローカルメモリ部１４０の第２バッファ１４２に着目すると、第１実施形態の場合と同様に、プロセッサ１１０からコピーメモリ１４４への更新要求の対象となるアドレスおよびデータ（ライトデータ）とともに、他のプロセッサユニット２００Ｃ，３００Ｃのローカルメモリ部２４０，３４０で更新されたコピーメモリの内容（ライトデータおよびアドレス）を共通メモリバス４００を介して入力されて一旦保持しうるものである。尚、この第２バッファ１４２に格納されたアドレスおよびデータについても、後述するコピー回路１５０Ａの制御に基づいてコピーメモリ１４４に書き込まれるようになっている。
【００９９】
また、この第２バッファ１４２は、プロセッサ１１０からコピーメモリ１４４に対する更新要求の対象となるアドレスおよびデータを保持した場合に、バス調停回路５００に対する共通メモリバス４００の使用要求を、制御バス４０３を通じて出力する機能を有している。
さらに、バス調停回路５００は、共通メモリバス４００の使用を調停するものである。例えば、上述したような、各ローカルメモリ部の第２バッファからの共通メモリバス４００の使用要求を受けて、当該プロセッサユニットに対してバス使用許可を制御バス４０３を通じて通知する一方、後述するコピー回路１５０Ａ，２５０Ａ，３５０Ａからのトランザクション終了通知を受けると、次のバス使用要求に対して共通メモリバス４００へのトランザクション開始指示を行なうものである。
【０１００】
ここで、コピー回路１５０Ａ，２５０Ａ，３５０Ａは、３つのプロセッサユニット１００Ｃ，２００Ｃ，３００Ｃのいずれかのローカルメモリ部１４０，２４０，３４０の内容が更新された場合に、自身のローカルメモリ部の更新処理を制御するものであって、トランザクション監視部，更新制御部としてのコピー処理制御部およびトランザクション応答部をそなえている。
【０１０１】
なお、プロセッサユニット２００Ｃ，３００Ｃは、プロセッサユニット１００Ｃに準じて基本的に同様の構成を有しているため、以下においては、プロセッサユニット１００Ｃの構成に着目して説明していくこととする。
ここで、コピー回路１５０Ａは、図１２に示すように、トランザクション監視部１５１，コピー処理制御部１５２およびトランザクション応答部１５３をそなえて構成されている。
【０１０２】
トランザクション監視部１５１は、共通メモリバス４００のトランザクションを監視するものであるが、具体的には、後述するいずれかのローカルメモリ部１４０，２４０，３４０の第２バッファからのトランザクション開始通知を検出するようになっている。
さらに、トランザクション監視部１５１においては、上述のトランザクション開始通知を受けてから、自身の第２バッファ１４２が共通メモリバス４００上のアドレスおよびデータを取り込むことができるタイミングになったら、第２バッファ１４２に対して共通メモリバス取り込みタイミングを通知するとともに、コピー処理制御部１５２に対してコピー処理開始タイミングを通知するようになっている。
【０１０３】
これにより、自身の第２バッファ１４２においては、共通メモリバス４００上の更新対象となるアドレスおよびデータを取り込むことができるようになっている。
また、コピー処理制御部１５２は、トランザクション監視部１５１からの監視結果に基づいて、ローカルメモリ部１４０における更新アクセスを制御するものである。具体的には、トランザクション監視部１５１からのコピー処理開始タイミングを受けると、メモリアクセスアビトレーション回路１４３にメモリアクセスを要求する。このメモリアクセスアビトレーション回路１４３からアクセス可能応答を受けると、コピーメモリ１４４に対して、第２バッファ１４２に保持されたアドレスおよびデータによってメモリ更新を行なうように指示する。
【０１０４】
なお、コピー処理制御部１５２においては、上述のコピーメモリ１４４におけるコピー処理が完了すると、正常コピー応答をトランザクション応答部１５３に出力するようになっている。
トランザクション応答部（トランザクション終了通知部）１５３は、コピー処理制御部１５２による書き込みアクセス、即ち第２バッファ１４２のデータのコピー処理が終了した場合に、トランザクション終了を、共通メモリバス４００を通じてバス調停回路５００へ通知するものである。
【０１０５】
上述の構成により、本発明の第４実施形態にかかるマルチプロセッサ装置４０では、それぞれ、以下に示すコピー回路１５０Ａ，２５０Ａ，３５０Ａの制御により、ローカルメモリ部１４０，２４０，３４０のコピーメモリを更新して、データの同期化を図っているので、第１実施形態における共通メモリ６００をそなえなくとも動作させることができる。換言すれば、各ローカルメモリ部１４０，２４０，３４０のコピーメモリが、仮想の共通メモリとして動作させることができるのである。
【０１０６】
まず、装置運用開始時においては、各ローカルメモリ部１４０，２４０，３４０のコピーメモリに記憶しているデータを同期化させるために、バス調停回路５００によるバス調停のもとで仮想共通メモリとしての各コピーメモリの全領域ライト動作を行なう。
ついで、例えばプロセッサユニット１００Ｃのプロセッサ１１０がローカルメモリ部１４０へライトアクセスした場合は、以下に示すように動作する。
【０１０７】
すなわち、プロセッサ１１０がローカルメモリ部１４０に対してライトアクセスを行なうと、ローカルメモリ部１４０の第２バッファ１４２においてはプロセッサ１１０が出力したアドレスおよびデータを一時的に格納した状態で、バス調停回路５００にバス使用権を要求する。バス調停回路５００がプロセッサユニット１００Ｃにバス使用権を与えると、第２バッファ１４２は共通メモリバス４００に対してライトアクセスの対象となったアドレスおよびデータを送出する。
【０１０８】
プロセッサユニット１００Ｃのコピー回路１５０Ａでは、トランザクション監視部１５１において、上述の第２バッファ１４２が共通メモリバス４００に対してアドレスおよびデータを送出した旨の通知（第２バッファ１４２からのトランザクション開始通知）があったか否かを監視する。トランザクション監視部１５１では、このトランザクション開始通知に基づいて、コピーメモリ１４４で正常に取り込めるタイミングを検出し、コピータイミングとしてコピー処理制御部１５２に通知する。
【０１０９】
コピー処理制御部１５２においては、前述の第１実施形態の場合と同様に、このコピータイミングに基づいて、メモリアクセスアビトレーション回路１４３およびコピーメモリ１４４を制御することにより、上述のごとく第２バッファ１４２に格納されたアドレスおよびデータをコピーメモリ１４４に書き込み制御する。
【０１１０】
また、コピー処理制御部１５２では、共通メモリバス４００上で指定されたアドレスへのデータの書き込みが完了すると、正常コピー応答としてトランザクション応答部１５３に通知する。正常トランザクション応答部１５３では、正常コピー応答を受けると、トランザクション終了応答として、制御バス４０３を通じてバス調停回路５００に通知する。
【０１１１】
なお、トランザクション終了応答を受けたバス調停回路５００においては、次のバス使用要求に対してバス使用権を与えることができる。
ついで、例えばプロセッサユニット１００Ｃ以外の、例えばプロセッサユニット２００Ｃのプロセッサ２１０が、ローカルメモリ部２４０へライトアクセスした場合において、プロセッサユニット１００Ｃにおけるローカルメモリ部１４０の同期化は、以下に示すように行なわれる。
【０１１２】
すなわち、プロセッサ２１０がローカルメモリ部２４０に対してライトアクセスを行なうと、ローカルメモリ部２４０の第２バッファにおいてはプロセッサ２１０が出力したアドレスおよびデータを一時的に格納した状態で、バス調停回路５００にバス使用権を要求する。バス調停回路５００がプロセッサユニット２００Ｃにバス使用権を与えると、ローカルメモリ部２４０の第２バッファでは、共通メモリバス４００に対してライトアクセスの対象となるアドレスおよびデータを送出する。
【０１１３】
プロセッサユニット１００Ｃのコピー回路１５０Ａでは、トランザクション監視部１５１において、ローカルメモリ部２４０の第２バッファが共通メモリバス４００に対してアドレスおよびデータを送出した旨の通知（第２バッファからのトランザクション開始通知）があったか否かを監視する。
トランザクション監視部１５１では、このトランザクション開始通知に基づいて、共通メモリバス４００を通じ第２バッファ１４２で正常に取り込めるタイミングを検出して、共通メモリバス取り込みタイミングとしてコピー処理制御部１５２に通知する。これにより、第２バッファ１４２においては、他のプロセッサユニット２００Ｃで更新されたアドレスおよびデータを自身の第２バッファ１４２に取り込むことができる。
【０１１４】
また、トランザクション監視部１５１においては、上述の共通メモリバス取り込みタイミングとともに、第２バッファ１４２で取り込むことができたアドレスおよびデータをコピーメモリ１４４にコピーするためのタイミングを検出し、コピータイミングとしてコピー処理制御部１５２に通知する。
コピー処理制御部１５２においては、前述の第１実施形態の場合と同様に、このコピータイミングに基づきメモリアクセスアビトレーション回路１４３およびコピーメモリ１４４を制御することにより、上述のごとく第２バッファ１４２に格納されたアドレスおよびデータをコピーメモリ１４４に書き込み制御する。
【０１１５】
また、コピー処理制御部１５２では、共通メモリバス４００上で指定されたアドレスへのデータの書き込みが完了すると、正常コピー応答としてトランザクション応答部１５３に通知する。正常トランザクション応答部１５３では、正常コピー応答を受けると、トランザクション終了応答として、制御バス４０３を通じてバス調停回路５００に通知する。
【０１１６】
なお、トランザクション終了応答を受けたバス調停回路５００においては、次のバス使用要求に対してバス使用権を与えることができる。
換言すれば、ローカルメモリ部１４０，２４０，３４０が、いずれかのプロセッサ１１０，２１０，３１０からのデータ更新要求を受けると、バス調停回路５００に対してバス使用要求を出力するように構成される。更に、それぞれのコピー回路１５０Ａ，２５０Ａ，３５０Ａにおいては、トランザクション監視部における共通メモリバス４００のトランザクションの監視の結果バス調停回路５００からのバス使用許可を受けると、コピー処理制御部において上記データ更新要求の内容に従ってローカルメモリ部１４０，２４０，３４０の更新処理を制御する。
【０１１７】
これにより、ローカルメモリ部１４０，２４０，３４０では、それぞれのプロセッサ１１０，２１０，３１０からのデータ更新要求を受けると、バス調停回路５００に対してバス使用要求を出力し、且つ、コピー回路１５０Ａ，２５０Ａ，３５０Ａが、バス調停回路５００からのバス使用許可を受けると、上記データ更新要求の内容に従ってローカルメモリ部１４０，２４０，３４０の更新処理をそれぞれ制御する。
【０１１８】
さらに、例えばプロセッサ１１０から仮想共通メモリとしてのローカルメモリ部１４０に対してリードアクセスした場合について詳述する。
すなわち、プロセッサ１１０が仮想共通メモリとしてのローカルメモリ部１４０に対してリードアクセスを行なうと、ローカルメモリ部１４０では、該当するアドレスのデータをプロセッサ１１０に応答する。
【０１１９】
このように、本発明の第４実施形態にかかるマルチプロセッサ装置４０によれば、前述の第１実施形態の場合と同様に、共通メモリとして記憶すべきデータを、それぞれのプロセッサ１１０，２１０，３１０配下のローカルメモリ部内に持つ事ができるので、共通メモリバス４００上でリードアクセスによるトランザクションが発生しないため、共通メモリバス４００(競合制御)での競合を最小限に抑え、バス競合によるアクセスの待ち合わせを短くすることが可能となる利点がある。
【０１２０】
さらに、コピー回路１５０Ａ，２５０Ａ，３５０Ａをそなえたことにより、各ローカルメモリ部１４０，２４０，３４０を仮想共通メモリとして動作させて、第１実施形態における共通メモリ６００をそなえなくともマルチプロセッサ装置として動作させることができる利点もある。
なお、上述の第４実施形態において、前述の第２実施形態におけるステータスメモリおよび第１バッファと同等の機能や、第３実施形態の特徴的な構成である競合用および個別用に分離された共通メモリバスおよび２ウェイのローカルメモリ部の構成を適宜組み合わせて適用して実施することも、もちろん可能である。
【０１２１】
［Ｅ］その他
上述の各実施形態におけるマルチプロセッサ装置においては、３つのプロセッサユニットを共通メモリバスを介して接続して構成されているが、本発明によればこれに限定されず、少なくとも複数であればよい。
また、各実施形態におけるマルチプロセッサ装置においては、バス調停回路５００をそなえているが、本発明によれば、これを省略して構成することとしてもよい。
【０１２２】
［Ｆ］付記
（付記１）  アプリケーション処理を独立して行ないうる複数のプロセッサユニットと、各プロセッサユニットにおけるアプリケーション処理に共通して用いられるデータを記憶しておく共通メモリと、上記の複数のプロセッサユニットと共通メモリとを相互に接続するバスとをそなえるとともに、
上記の各プロセッサユニットが、
上記アプリケーション処理のための命令実行処理を行なうプロセッサと、
上記のプロセッサとバスとの間に設けられ、該共通メモリの全内容データのコピーを記憶するためのローカルメモリ部と、
該複数のプロセッサユニットのいずれかのプロセッサにより該共通メモリの内容が更新された場合に該ローカルメモリ部の更新処理を制御するコピー回路とをそなえ、
該ローカルメモリ部において、該共通メモリに記憶されたデータの読み出し命令を該プロセッサから受けると、当該ローカルメモリ部にコピーされた対応データを読み出して出力するように構成されたことを
特徴とする、マルチプロセッサ装置。
【０１２３】
（付記２）  該コピー回路が、上記のプロセッサから共通メモリへのデータの更新命令に対する該共通メモリからの更新完了応答を受けると、当該共通メモリへの更新内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、付記１記載のマルチプロセッサ装置。
（付記３）  上記の各プロセッサユニットのローカルメモリ部が、
該共通メモリの全内容データのコピーを記憶するための領域をそなえてなるコピーメモリと、
該プロセッサからの上記読み出し命令のためのアドレス情報および読み出されたデータを一旦保持する第1バッファと、
該プロセッサからの該共通メモリへの更新要求の対象となるアドレスおよびデータとともに、該複数のプロセッサユニットのいずれかのプロセッサにより更新された該共通メモリの内容を該バスを介して一旦保持しうる第２バッファと、
該プロセッサからの上記読み出し命令に基づいた該コピーメモリに対する読み出しアクセスと、該第２バッファにて保持されている内容に従って該コピーメモリ更新するための更新アクセスとを、該コピー回路からの制御に基づいて調停するメモリアクセス調停回路とをそなえて構成されたことを特徴とする、付記1記載のマルチプロセッサ装置。
【０１２４】
（付記４）  該コピー回路が、該バスのトランザクションを監視するトランザクション監視部と、該トランザクション監視部からの監視結果に基づいて、該ローカルメモリ部における更新処理を制御する更新制御部とをそなえて構成されたことを特徴とする、付記１記載のマルチプロセッサ装置。
（付記５）  該トランザクション監視部における該バスのトランザクションの監視の結果、上記のプロセッサから共通メモリへのデータの更新命令に対する該共通メモリからの更新完了応答を受けると、該更新制御部が、当該共通メモリへの更新内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、付記４記載のマルチプロセッサ装置。
【０１２５】
（付記６）  該ローカルメモリ部が、上記のコピーメモリ上におけるアドレス領域に対応して、更新されたデータが格納されているか否かが記録されるステータスメモリをそなえるとともに、
該第１バッファが、該プロセッサからの読み出し命令のアドレスに対応したデータをコピーメモリから読み出す際に、該ステータスメモリの記録を判定するステータス判定部と、該ステータス判定部における判定結果に基づいて、上記読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には上記保持されたデータを該プロセッサに出力する一方、上記更新データが保持されていると判定されなかった場合には、該共通メモリに対する読み出しのための処理を行なう読み出し処理部とをそなえて構成されたことを特徴とする、付記３記載のマルチプロセッサ装置。
【０１２６】
（付記７）  該第２バッファにて保持されている内容を該メモリに更新するための更新アクセスを正常に完了できなかった場合には、該ステータスメモリの対応アドレス領域にはデータ無し状態が記録されるように構成されたことを特徴とする、付記６記載のマルチプロセッサ装置。
（付記８）  該共通メモリが、該複数のプロセッサユニットにおけるアプリケーション処理によりリアルタイムに使用する頻度の高いデータを記憶する第１共通メモリと、上記頻度が低いデータを記憶する第２共通メモリとをそなえるとともに、
該バスが、上記の複数のプロセッサユニットと第１共通メモリとを相互に接続する第１バスと、上記の複数のプロセッサユニットと第２共通メモリとを相互に接続する第２バスとをそなえ、
上記のプロセッサユニットによる第１バスの使用を調停する第１バス調停回路と、上記のプロセッサユニットによる第２バスの使用を管理する第２バス使用管理回路とをそなえ、
上記の各プロセッサユニットのローカルメモリ部が、
該プロセッサからの読み出し命令または更新命令の対象となるデータについて、上記頻度の高低を分類する分類部と、
該第１共通メモリの全内容データのコピーを記憶するための第１ローカルメモリ部と、
該第２共通メモリの全内容データのコピーを記憶するための第２ローカルメモリ部とをそなえ、
かつ、該コピー回路が、該複数のプロセッサユニットのいずれかのプロセッサにより該第１共通メモリの内容が更新された場合に該第１ローカルメモリ部の更新処理を制御すべく構成されるとともに、
上記の第１ローカルメモリ部において、該第１共通メモリに記憶されたデータの読み出し命令を上記のプロセッサから受けると、当該第１ローカルメモリ部にコピーされた対応データを読み出して出力するように構成されたことを
特徴とする、付記１記載のマルチプロセッサ装置。
【０１２７】
（付記９）  アプリケーション処理を独立して行なうための複数のプロセッサユニットと、上記の複数のプロセッサユニットを相互に接続するバスとをそなえるとともに、
上記の各プロセッサユニットが、
データの読み出しおよび書き込みを行なって、上記アプリケーション処理のための命令実行処理を行なうプロセッサと、
該プロセッサにおける上記アプリケーション処理のためのデータを記憶するためのローカルメモリ部と、
該複数のプロセッサユニットのいずれかのローカルメモリ部の内容が更新された場合に、自身のローカルメモリ部の更新処理を制御するコピー回路とをそなえて構成されたことを
特徴とする、マルチプロセッサ装置。
【０１２８】
（付記１０）  上記のプロセッサユニットによるバスの使用を調停するバス調停回路をそなえ、
該ローカルメモリ部が、該プロセッサからのデータ更新要求を受けると、該バス調停回路に対してバス使用要求を出力するように構成され、且つ、該コピー回路が、該バス調停回路からのバス使用許可を受けると、上記データ更新要求の内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、付記９記載のマルチプロセッサ装置。
【０１２９】
（付記１１）  上記の各プロセッサユニットのローカルメモリ部が、
上記アプリケーション処理のためのデータを記憶するメモリと、
該プロセッサからの上記データの読み出し命令のためのアドレス情報および読み出されたデータを一旦保持する第1バッファと、
該プロセッサからの上記データの書き込み要求の対象となるアドレスおよびデータとともに、該複数のプロセッサユニットにおけるのいずれかのローカルメモリ部のメモリにおいて更新された内容を、一旦保持する第２バッファと、
該プロセッサからの上記読み出し命令に基づいた該メモリに対する読み出しアクセスと、該第２バッファにて保持されている内容を該メモリに書き込むための書き込みアクセスとを、該コピー回路からの制御に基づいて調停するメモリアクセス調停回路とをそなえて構成されたことを特徴とする、付記９記載のマルチプロセッサ装置。
【０１３０】
（付記１２）  上記のプロセッサユニットによるバスの使用を調停するバス調停回路をそなえ、
該コピー回路が、該バスのトランザクションを監視するトランザクション監視部と、該トランザクション監視部からの監視結果に基づいて該ローカルメモリ部における更新アクセスを制御する更新制御部と、該更新制御部による上記書き込みアクセスが終了した場合に、トランザクション終了を該バスを通じて該バス調停回路へ通知するトランザクション終了通知部とをそなえて構成されたことを特徴とする、付記９記載のマルチプロセッサ装置。
【０１３１】
（付記１３）  該ローカルメモリ部が、該プロセッサからのデータ更新要求を受けると、該バス調停回路に対してバス使用要求を出力するように構成され、且つ、上記のコピー回路のトランザクション監視部における該バスのトランザクションの監視の結果、該バス調停回路からのバス使用許可を受けると、該更新制御部においては、上記データ更新要求の内容に従って該ローカルメモリ部の更新処理を制御するように構成されたことを特徴とする、付記１２記載のマルチプロセッサ装置。
【０１３２】
（付記１４）  該ローカルメモリ部が、上記のメモリ上において更新制御部による更新制御がなされたアドレス領域に対応して、更新されたデータが格納されているか否かが記録されるステータスメモリをそなえるとともに、
該第１バッファが、該プロセッサからの読み出し命令のアドレスに対応したデータをメモリから読み出して一旦保持するとともに、該ステータスメモリの記録を判定するステータス判定部と、該ステータス判定部における判定結果に基づいて、上記読み出し命令のアドレスに対応した更新データが保持されていると判定された場合には上記保持されたデータを該プロセッサに出力する一方、上記更新データが保持されていると判定されなかった場合には、他のプロセッサユニットにおけるローカルメモリ部に対するデータ読み出しのための処理を行なう読み出し命令出力部とをそなえて構成されたことを特徴とする、付記１１記載のマルチプロセッサ装置。
【０１３３】
（付記１５）  該第２バッファにて保持されている内容を該メモリに書き込むための書き込みアクセスを正常に完了できなかった場合には、該ステータスメモリの該当アドレス領域にはデータ無し状態が記録されるように構成されたことを特徴とする、付記１４記載のマルチプロセッサ装置。
（付記１６）  該バスが、上記アプリケーション処理によりリアルタイムに共通使用する頻度の高いデータを授受するための第１バスと、上記頻度が低いデータを授受するための第２バスとをそなえるとともに、
該バス調停回路が、上記のプロセッサユニットによる第１バスの使用を調停する第１バス調停回路と、上記のプロセッサユニットによる第２バスの使用を調停する第２バス使用管理回路とをそなえ、
上記の各プロセッサユニットにおけるローカルメモリ部が、該プロセッサからの読み出し命令または更新命令の対象となるデータについて、上記頻度の高低を分類する分類部と、
該第１共通メモリの全内容データのコピーを記憶するための第１ローカルメモリ部と、
該第２共通メモリの全内容データのコピーを記憶するための第２ローカルメモリ部とをそなえ、
かつ、該コピー回路が、該複数のプロセッサユニットのいずれかのプロセッサにより該第１共通メモリの内容が更新された場合に該第１ローカルメモリ部の更新処理を制御すべく構成されたことを
特徴とする、付記９記載のマルチプロセッサ装置。
【０１３４】
【発明の効果】
以上詳述したように、本発明のマルチプロセッサ装置によれば、各プロセッサユニットが、プロセッサとローカルメモリ部とコピー回路とをそなえたことにより、共通メモリの全データのコピーを、それぞれのプロセッサ配下のコピーメモリ内に持つ事で、バス上でリードアクセスによるトランザクションが発生しないため、バスでの競合を最小限に抑えることができる。これにより、バス競合によるアクセスの待ち合わせを短くすることが可能となる。特に、リアルタイム処理を行なう場合でも、キャッシュメモリ方式のごときキャッシュメモリ上のデータの無効化処理や再読み込み処理等が増加することもなく、必要とする共通メモリ上のデータへのアクセスを最小の待ち合わせで行なうことができる。
【０１３５】
また、本発明によれば、各プロセッサユニットのローカルメモリ部におけるステータスメモリおよび第１バッファにより、共通メモリのデータがコピーメモリにコピーされているか否かに応じて、それぞれのプロセッサに対して矛盾の無い読み出しデータを出力することができるので、前述の第１実施形態の場合と同様、共通メモリバスでの競合を最小限に抑え、バス競合によるアクセスの待ち合わせを短くすることが可能となる利点があるほか、複数のコピーメモリにおける全てのデータを一致させるための初期化処理を省略することができる。
【０１３７】
さらに、本発明によれば、該共通メモリが第１共通メモリと第２共通メモリとをそなえる、該バスが第１バスと第２バスとをそなえるとともに、各プロセッサユニットにおけるローカルメモリ部の分類部をそなえたことにより、リアルタイムに共通使用する頻度の低いデータに対するアクセスを別のバス経由でアクセスすることができ、特に、リアルタイム処理を行なう場合、バス競合によるアクセスの待ち合わせをより短くすることができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態にかかるマルチプロセッサ装置を示すブロック図である。
【図２】第１実施形態におけるローカルメモリ部の構成に着目したブロック図である。
【図３】第１実施形態におけるコピー回路の構成に着目したブロック図である。
【図４】（ａ）は自身のプロセッサユニットからの書き込み要求時の信号経路を示す図、（ｂ）は他のプロセッサユニットからの書き込み要求時の信号経路を示す図、（ｃ）は自身のプロセッサユニットからの読み出し要求時の信号経路を示す図である。
【図５】本発明の第２実施形態にかかるマルチプロセッサ装置を示すブロック図である。
【図６】本発明の第２実施形態におけるステータスメモリの構成を示す図である。
【図７】本発明の第３実施形態にかかるマルチプロセッサ装置を示すブロック図である。
【図８】本発明の第３実施形態にかかるマルチプロセッサ装置を詳細に示すブロック図である。
【図９】第３実施形態におけるポーリング制御回路の構成に着目したブロック図である。
【図１０】第３実施形態におけるポーリング制御動作を説明するためのタイムチャートである。
【図１１】本発明の第４実施形態にかかるマルチプロセッサ装置を示すブロック図である。
【図１２】第４実施形態におけるコピー回路の構成に着目したブロック図である。
【図１３】マルチプルセッサ装置を示すブロック図である。
【符号の説明】
１０〜４０  マルチプロセッサ装置
１００，１０１，１００Ａ〜１００Ｃ  プロセッサユニット
１１０，２１０，３１０  プロセッサ
１２０，２２０，３２０  キャッシュメモリ
１３０，２３０，３３０  スヌープ回路
１４０，１６０，２４０，２６０，３４０，３６０  ローカルメモリ部
１４１，１４６  第１バッファ
１４２  第２バッファ
１４３  メモリアクセスアビトレーション回路（メモリアクセス調停回路）
１４４  コピーメモリ
１４５  ステータスメモリ
１４６−１  ステータス判定部
１４６−２  読み出し処理部
１５０，２５０，３５０，１５０Ａ，２５０Ａ，３５０Ａ  コピー回路
１５１  トランザクション監視部
１５２  コピー処理制御部（更新制御部）
１５３  トランザクション応答部
２００，２０１，２００Ａ〜２００Ｃ  プロセッサユニット
３００，３０１，３００Ａ〜３００Ｃ  プロセッサユニット
４００  共通メモリバス
４１０  競合用共通メモリバス
４２０  個別用共通メモリバス
４０１  アドレスバス
４０２  データバス
４０３  制御バス
５００  バス調停回路
５１０  ポーリング制御回路
５１１  バス使用中応答監視部
５１２  バス使用許可通知部
６００  共通メモリ
６１０  競合用共通メモリ
６２０  個別用共通メモリ
７００  マルチプロセッサ装置
【図１】
0003884990.tif 000002
【図２】
0003884990.tif 000003
【図３】
0003884990.tif 000004
【図４】
0003884990.tif 000005
【図５】
0003884990.tif 000006
【図６】
0003884990.tif 000007
【図７】
0003884990.tif 000008
【図８】
0003884990.tif 000009
【図９】
0003884990.tif 000010
【図１０】
0003884990.tif 000011
【図１１】
0003884990.tif 000012
【図１２】
0003884990.tif 000013
【図１３】
0003884990.tif 000014