(57)【特許請求の範囲】
【請求項１】
複数のプロセッサのうちの或るプロセッサが他の各プロセッサとの間でタイミングの同期をとる必要がある命令を実行しようとするとき、前記或るプロセッサが前記他の各プロセッサに対し全プロセッサ停止指令情報を送信して前記命令の処理待ち状態となり、前記他の各プロセッサからのリプライ情報を受信したとき、前記処理待ちの命令を実行するマルチプロセッサシステムにおける命令実行方法であって、
前記他の各プロセッサが、前記或るプロセッサから前記全プロセッサ停止指令情報を受信したとき、実行中の命令がリトライ可能又は不可能に応じてリトライ可否表示手段にリトライ可能又はリトライ不可能を示すリトライフラグを設定することによって、前記他の各プロセッサが前記或るプロセッサからの前記全プロセッサ停止指令情報を受信したとき、前記他の各プロセッサにおいて前記リトライフラグがリトライ可能を示す状態にあるときは、前記他の各プロセッサが実行中の命令を中断して割り込み処理を行って前記リプライ情報を前記或るプロセッサに返送し、前記他の各プロセッサにおいて前記リトライフラグがリトライ不可能を示す状態にあるときは、前記他の各プロセッサが実行中の命令を終了してから割り込み処理を行って前記リプライ情報を前記或るプロセッサに返送することを特徴とするマルチプロセッサシステムにおける命令実行方法。
【請求項２】
前記他の各プロセッサがリトライ可能な状態にあるときに、前記他の各プロセッサで行われる実行中の命令に対する割り込み処理は、マイクロ命令アドレスを退避して行うものであることを特徴とする請求項１記載のマルチプロセッサシステムにおける命令実行方法。
【請求項３】
前記リプライ情報は、前記他の各プロセッサが前記或るプロセッサからの全プロセッサ停止指令情報に応じて、命令を中断して又は命令を終了して割り込み処理を行った後、前記或るプロセッサに返送するものであることを特徴とする請求項１又は２記載のマルチプロセッサにおける命令実行方法。
【請求項４】
前記いずれのプロセッサも共用バスを介して接続され、主記憶装置が前記共用バスに接続されていることを特徴とする請求項１，２，又は３記載のマルチプロセッサシステムにおける命令実行方法。
【請求項５】
前記或るプロセッサが前記他の各プロセッサとの間でタイミングの同期をとる必要がある命令は、命令で指定される前記主記憶装置のページをクリアするに際して、前記他の各プロセッサとの間でタイミングの同期をとる必要がある命令であることを特徴とする請求項１記載のマルチプロセッサシステムにおける命令実行方法。
【請求項６】
複数のプロセッサのうちの或るプロセッサが他の各プロセッサとの間でタイミングの同期をとる必要がある命令を実行しようとするとき、前記或るプロセッサが前記他のプロセッサに対し全プロセッサ停止指令情報を送信して前記命令の処理待ち状態となり、前記他の各プロセッサからのリプライ情報を受信したとき、前記処理待ちの命令を実行するマルチプロセッサシステムにおける命令実行装置であって、各プロセッサごとに、
前記全プロセッサ停止指令情報を受信する受信手段と、
当該プロセッサにおいて実行中の命令がリトライ可能又は不可能であることをフラグに表示するとともに、該表示状態を示す信号を出力するリトライ可否表示手段と、
前記受信手段が前記全プロセッサ停止指令情報を受信したとき、前記リトライ可否表示手段からリトライ可能を示す信号が出力されているときは、前記実行中の命令を中断して割り込み処理を行い、前記リトライ可否表示手段からリトライ不可能を示す信号が出力されているときは、前記実行中の命令が終了してから割り込み処理を行う割り込み手段と、
該割り込み手段による割り込み終了に応答して前記リプライ情報を出力するリプライ情報出力手段とを設けたことを特徴とするマルチプロセッサシステムにおける命令実行装置。
【請求項７】
前記割り込み手段は、前記全プロセッサ停止指令情報を受信して割り込み要因信号を出力する割り込み制御手段と、前記リトライ可否表示手段からの信号と前記割り込み制御手段からの割り込み要因信号とに基づいて前記実行中の命令に対する割り込み又は命令終了後の割り込みの処理を行う割り込み処理手段とにより構成されることを特徴とする請求項６記載のマルチプロセッサシステムにおける命令実行装置。
【請求項８】
前記リプライ情報出力手段は、前記割り込み処理手段による割り込みの処理終了に基づいてリプライ情報を生成するものであることを特徴とする請求項６又は７記載のマルチプロセッサシステムにおける命令実行装置。
【請求項９】
前記いずれのプロセッサも共用バスを介して接続され、主記憶装置が前記共用バスに接続されていることを特徴とする請求項６，７，又は８記載のマルチプロセッサシステムにおける命令実行装置。
【請求項１０】
前記或るプロセッサが前記他の各プロセッサとの間でタイミングの同期をとる必要がある命令は、命令で指定される前記主記憶装置のページをクリアするに際して、前記他の各プロセッサとの間でタイミングの同期をとる必要がある命令であることを特徴とする請求項６記載のマルチプロセッサシステムにおける命令実行装置。
【請求項１１】
前記或るプロセッサ及び前記他の各プロセッサに、請求項１乃至５のうちのいずれか一に記載の命令実行方法を実現させるための制御プログラムを記録したことを特徴とする記録媒体。
【請求項１２】
前記或るプロセッサ及び前記他の各プロセッサに、請求項６乃至１０のうちのいずれか一に記載の命令実行装置の機能を実現させるための制御プログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、マルチプロセッサシステムにおける命令実行方法及びその装置に関し、詳しくはマルチプロセッサシステム内の或るプロセッサで実行しようとする命令が他のプロセッサに影響を与えるものであるとき、該命令の実行を早期に行うことのできるマルチプロセッサシステムにおける命令実行方法及びその装置に関する。
【０００２】
【従来の技術】
従来のマルチプロセッサシステムのプロセッサで実行される命令の中には、他のプロセッサとの間で同期を取る必要のある命令がある。
その命令の例は、当該命令を実行する或るプロセッサが主記憶装置上のページをクリアしたいとき、他のプロセッサでそのページを使用していないことを保証するために、他のプロセッサでの命令の処理を一時停止したことを確認した後、上記或るプロセッサにより上記ページの使用不可の状態を記憶系のアクセス手段の中に設定する命令である。
上記ページの使用不可状態の上記アクセス手段への設定は、プログラム言語で記述された論理アドレスを物理アドレスに変換するアドレス変換表内のページ記述子中のページ単位使用可否ビットを“１”又は“０”にすることである。
【０００３】
従来のこの種の命令の実行は、次のようなマルチプロセッサシステム構成の中で行われている。
そのマルチプロセッサシステム構成は、図５に示す。図５において、１００は、マルチプロセッサシステムで、１１２Ａ，１１２Ｂ，１１２Ｃは、それぞれプロセッサである。各プロセッサ１１２Ａ，１１２Ｂ，１１２Ｃは、システムバス１１４を介して相互に接続され、主記憶装置１１５がシステムバス１１４に接続されている。
【０００４】
各プロセッサ１１２Ａ，１１２Ｂ，１１２Ｃは、それぞれ命令制御部、割り込み制御部及び通信制御部から概略構成されている。
命令制御部は、上述のプロセッサ間の同期を取る命令を実行するとき、通信制御部、システムバス１１４を介して他のプロセッサに対して全プロセッサ停止指令情報を発行する。全プロセッサ停止指令情報には、処理の停止を示すコマンド、送信元アドレス及び送信元アドレスを除く全プロセッサアドレスが含まれる。また、命令制御部は、全プロセッサ停止指令情報を受信し、実行中の命令が終了した後、割り込み制御部から通知された割り込み要求の処理を行って上記全プロセッサ停止指令情報の発行元に対してリプライ情報を返す。リプライ情報には、プロセッサ停止指令に対する応答であることを示すコマンド、送信元アドレス及び応答元アドレスが含まれる。
また、命令制御部は、他の各プロセッサからリプライ情報が返送されたとき、全プロセッサ開始指令情報を他の各プロセッサに返す。全プロセッサ開始指令情報には、プロセッサの処理の開始を示すコマンド、送信元アドレス及び送信元アドレスを除く全プロセッサアドレスが含まれる。
割り込み制御部は、他のプロセッサからシステムバス１１４、通信制御部を介して全プロセッサ停止指令情報を受信したとき、命令制御部に対して割り込み要求を通知する。
【０００５】
なお、参照の便宜上、プロセッサ１１２Ａの命令制御部、割り込み制御部及び通信制御部には、各別に参照番号１１６，１１８，１２０を付し、プロセッサ１１２Ｂの命令制御部、割り込み制御部及び通信制御部には、各別に参照番号１２６，１２８，１３０を付し、プロセッサ１１２Ｃの命令制御部、割り込み制御部及び通信制御部には、各別に参照番号１３６，１３８，１４０を付してある。
【０００６】
次に、このマルチプロセッサシステムにおけるプロセッサ間の同期化処理を要約して説明する。
いま、プロセッサ１１０Ａにおいて、他のプロセッサ１１２Ｂ，１１２Ｃとの間で同期を取る必要がある命令Ａ（図４のＴ１）を実行するとき、命令制御部１１６から全プロセッサ停止指令情報を発行する（図４のＴ３）。その全プロセッサ停止指令情報は、通信制御部１２０、システムバス１１４を介して他のプロセッサ１１２Ｂ，１１２Ｃへ転送される（図４のＴ５、Ｔ７）。
全プロセッサ停止指令情報を受信したプロセッサ１１２Ｂ，１１２Ｃは、それぞれ全プロセッサ停止指令情報の受信時に実行しつつある命令Ｂ（図４のＴ９），命令Ｃ（図４のＴ１１）の処理終了後（図４のＴ１３、Ｔ１５）、割り込み処理（図４のＴ１７，Ｔ１９）を行ってからプロセッサ１１０Ａに対してリプライ情報を返す（図４のＴ２１、Ｔ２３）。
【０００７】
プロセッサ１１２Ｂ，１１２Ｃからのリプライ情報をそれぞれ受信するまで、プロセッサ１１２Ａは、それら各リプライ情報の待ち状態に置かれている（図４のＴ２５）。プロセッサ１１２Ｂ，１１２Ｃからリプライ情報の各々をシステムバス１１４、通信制御部１２０を介してプロセッサ１１２Ａの命令制御部１１６で受信したとき、命令制御部１１６は、命令Ａ（図４のＴ１）についての命令Ａ固有の処理、すなわち、上述した「アドレス変換表内のページ記述子中のページ単位使用可否ビットを“１”にする」処理を実行する（図４のＴ２７）。この処理の対象となるページは、主記憶装置１１５にある。
その実行後、命令制御部１１６は、プロセッサ１１２Ｂ，１１２Ｃに対して全プロセッサ開始指令情報を発行する（図４のＴ２９）。この発行により、命令Ｔ１は終了し（図４のＴ３５）、次の命令Ｄの実行に入る（図４のＴ３７）。
【０００８】
上述したようにして割り込み処理を行ったプロセッサ１１２Ｂ，１１２Ｃは、プロセッサ１１２Ａからシステムバス１１４、通信制御部１３０，１４０を介して全プロセッサ開始指令情報を受信するまで、全プロセッサ開始指令情報の待ち状態に置かれている（図４のＴ３１、Ｔ３３）。
プロセッサ１１２Ａから全プロセッサ開始指令情報を受信したプロセッサ１１２Ｂ，１１２Ｃは割り込み処理を終了し（図４のＴ３９，Ｔ４１）、次の命令Ｅ，Ｆの実行に入る（図４のＴ４３、Ｔ４５）。
このようにして、上述したマルチプロセッサシステムの構成においては、プロセッサ間での同期を取る必要がある命令の処理を行うようにしている。
【０００９】
なお、単一のプロセッサで実行している命令を一定の条件で中断して割り込み処理の高速化を図る高速割り込み装置が、特許第２５９１２１１号（以下、文献という。）に記載されている。
この高速割り込み装置は、単一のプロセッサで実行している命令に対して割り込みが掛かったとき、その命令の実行が中断可能なとき、その命令の実行を中断して割り込みを行うことにより、割り込み処理を高速に行うことを示している。
【００１０】
【発明が解決しようとする課題】
しかしながら、上述のマルチプロセッサシステムにおける命令実行方式では、プロセッサ間での同期を取る必要がある命令を実行するに際して、該命令を実行しようとする或るプロセッサは、全プロセッサ停止指令情報を他の各プロセッサに対して送信する。
その各プロセッサでは、実行中の命令終了後に、割り込み処理を行い、そしてリプライ情報を上記或るプロセッサに返している。
【００１１】
したがって、図４に示すように、全プロセッサ停止指令情報を受信したプロセッサの中に実行中の命令終了までに長時間を要するプロセッサ、例えば、プロセッサ１１２Ｃがある場合には、当該プロセッサからのリプライ情報の返送が、大幅に遅れることになるから、上記或るプロセッサで実行しようとしている命令の実行が、その時刻まで待たされることになる、すなわち、プロセッサ間で同期を取って実行しなければならない命令の実行が遅れる。
マルチプロセッサシステムの処理性能の低下が避けられない。
【００１２】
また、上記文献は、単一のプロセッサで実行している命令に対して割り込みが掛かったとき、その命令の実行が中断可能なとき、その命令の実行を中断して割り込みを行うことにより、該プロセッサにおける割り込み処理が高速化されることだけが示されているに過ぎない。
【００１３】
この発明は、上述の事情に鑑みてなされたもので、マルチプロセッサシステム内の或るプロセッサで他のプロセッサに影響を与える命令を実行しようとき、その命令の実行を早期に行い得るマルチプロセッサシステムにおける命令実行方法及びその装置を提供することを目的としている。
【００１４】
【課題を解決するための手段】
上記課題を解決するために、請求項１記載の発明は、複数のプロセッサのうちの或るプロセッサが他の各プロセッサとの間でタイミングの同期をとる必要がある命令を実行しようとするとき、上記或るプロセッサが上記他の各プロセッサに対し全プロセッサ停止指令情報を送信して上記命令の処理待ち状態となり、上記他の各プロセッサからのリプライ情報を受信したとき、上記処理待ちの命令を実行するマルチプロセッサシステムにおける命令実行方法に係り、
上記他の各プロセッサが、上記或るプロセッサから上記全プロセッサ停止指令情報を受信したとき、実行中の命令がリトライ可能又は不可能に応じてリトライ可否表示手段にリトライ可能又はリトライ不可能を示すリトライフラグを設定することによって、上記他の各プロセッサが上記或るプロセッサからの上記全プロセッサ停止指令情報を受信したとき、上記他の各プロセッサにおいて上記リトライフラグがリトライ可能を示す状態にあるときは、上記他の各プロセッサが実行中の命令を中断して割り込み処理を行って上記リプライ情報を上記或るプロセッサに返送し、上記他の各プロセッサにおいて上記リトライフラグがリトライ不可能を示す状態にあるときは、上記他の各プロセッサが実行中の命令を終了してから割り込み処理を行って上記リプライ情報を上記或るプロセッサに返送することを特徴としている。
【００１５】
また、請求項２記載の発明は、請求項１記載のマルチプロセッサシステムにおける命令実行方法に係り、上記他の各プロセッサがリトライ可能な状態にあるときに、上記他の各プロセッサで行われる実行中の命令に対する割り込み処理は、マイクロ命令アドレスを退避して行うものであることを特徴としている。
【００１６】
また、請求項３記載の発明は、請求項１又は２記載のマルチプロセッサにおける命令実行方法に係り、上記リプライ情報は、上記他の各プロセッサが上記或るプロセッサからの全プロセッサ停止指令情報に応じて、命令を中断して又は命令を終了して割り込み処理を行った後、上記或るプロセッサに返送するものであることを特徴としている。
【００１７】
また、請求項４記載の発明は、請求項１，２，又は３記載のマルチプロセッサシステムにおける命令実行方法に係り、上記いずれのプロセッサも共用バスを介して接続され、主記憶装置が上記共用バスに接続されていることを特徴としている。
【００１８】
また、請求項５記載の発明は、請求項１記載のマルチプロセッサシステムにおける命令実行方法に係り、上記或るプロセッサが上記他の各プロセッサとの間でタイミングの同期をとる必要がある命令は、命令で指定される上記主記憶装置のページをクリアするに際して、上記他の各プロセッサとの間でタイミングの同期をとる必要がある命令であることを特徴としている。
【００１９】
また、請求項６記載の発明は、複数のプロセッサのうちの或るプロセッサが他の各プロセッサとの間でタイミングの同期をとる必要がある命令を実行しようとするとき、上記或るプロセッサが上記他のプロセッサに対し全プロセッサ停止指令情報を送信して上記命令の処理待ち状態となり、上記他の各プロセッサからのリプライ情報を受信したとき、上記処理待ちの命令を実行するマルチプロセッサシステムにおける命令実行装置に係り、各プロセッサごとに、
上記全プロセッサ停止指令情報を受信する受信手段と、
当該プロセッサにおいて実行中の命令がリトライ可能又は不可能であることをフラグに表示するとともに、該表示状態を示す信号を出力するリトライ可否表示手段と、
上記受信手段が上記全プロセッサ停止指令情報を受信したとき、上記リトライ可否表示手段からリトライ可能を示す信号が出力されているときは、上記実行中の命令を中断して割り込み処理を行い、上記リトライ可否表示手段からリトライ不可能を示す信号が出力されているときは、上記実行中の命令が終了してから割り込み処理を行う割り込み手段と、
該割り込み手段による割り込み終了に応答して上記リプライ情報を出力するリプライ情報出力手段とを設けたことを特徴としている。
【００２０】
また、請求項７記載の発明は、請求項６記載のマルチプロセッサシステムにおける命令実行装置に係り、上記割り込み手段は、上記全プロセッサ停止指令情報を受信して割り込み要因信号を出力する割り込み制御手段と、上記リトライ可否表示手段からの信号と上記割り込み制御手段からの割り込み要因信号とに基づいて上記実行中の命令に対する割り込み又は命令終了後の割り込みの処理を行う割り込み処理手段とにより構成されることを特徴としている。
【００２１】
また、請求項８記載の発明は、請求項６又は７記載のマルチプロセッサシステムにおける命令実行装置に係り、上記リプライ情報出力手段は、上記割り込み処理手段による割り込みの処理終了に基づいてリプライ情報を生成するものであることを特徴としている。
【００２２】
また、請求項９記載の発明は、請求項６，７，又は８記載のマルチプロセッサシステムにおける命令実行装置に係り、上記いずれのプロセッサも共用バスを介して接続され、主記憶装置が上記共用バスに接続されていることを特徴としている。
【００２３】
また、請求項１０記載の発明は、請求項６記載のマルチプロセッサシステムにおける命令実行装置に係り、上記或るプロセッサが上記他の各プロセッサとの間でタイミングの同期をとる必要がある命令は、命令で指定される上記主記憶装置のページをクリアするに際して、上記他の各プロセッサとの間でタイミングの同期をとる必要がある命令であることを特徴としている。
【００２４】
また、請求項１１記載の発明は、制御プログラムを記録した記録媒体に係り、上記或るプロセッサ及び上記他の各プロセッサに、請求項１乃至５のうちのいずれか一に記載の命令実行方法を実現させるための制御プログラムを記録したことを特徴としている。
【００２５】
また、請求項１２記載の発明は、制御プログラムを記録した記録媒体に係り、上記或るプロセッサ及び上記他の各プロセッサに、請求項６乃至１０のうちのいずれか一に記載の命令実行装置の機能を実現させるための制御プログラムを記録したことを特徴としている。
【００２８】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態について説明する。説明は、実施例を用いて具体的に説明する。
図１は、この発明の一実施例であるマルチプロセッサシステムにおける命令実行装置の電気的構成の概略図、図２は、同命令実行装置の詳細な構成図、図３は、同命令実行装置においてプロセッサで実行中の命令がリトライ可能な命令である場合のフローチャート、また、図４は、同命令実行装置においてプロセッサで実行中の命令がリトライ不可能な命令である場合のフローチャートである。
この例のマルチプロセッサシステムにおける命令実行装置１０は、マルチプロセッサシステム内の或るプロセッサで他のプロセッサとので同期を取ることを必要とする命令を実行するとき、その命令の実行を早期に行い得る装置に係り、図１に示すように、マルチプロセッサシステム１０を構成するプロセッサ１２Ａ，１２Ｂ，１２Ｃの中に構成されている。各プロセッサ１２Ａ，１２Ｂ，１２Ｃは、システムバス１４を介して相互に接続されている。システムバス１４には、また、主記憶装置１５が接続されている。
【００２９】
主記憶装置１５の記憶領域は、ページ単位で管理され、そのページへのアクセスは、プログラム言語で記述された論理アドレスが、アドレス変換表を介して主記憶装置１５上の物理アドレスに変換されて行われる。そのアドレス変換表の一部に、アクセス対象のページに対するページ記述子が設定されており、そのページ記述子の中にページ単位のアクセスの可否を示すビットが設けられている。
【００３０】
各プロセッサ１２Ａ，１２Ｂ，１２Ｃは、それぞれ命令制御部、リトライフラグ回路、割り込み制御部及び通信制御部から概略構成されている。プロセッサ１１２Ａの命令制御部、リトライフラグ回路、割り込み制御部及び通信制御部には、各別に参照番号１６，１７，１８，２０を付し、プロセッサ１２Ｂの命令制御部、リトライフラグ回路、割り込み制御部及び通信制御部には、各別に参照番号２６，２７，２８，３０を付し、プロセッサ１２Ｃの命令制御部、リトライフラグ回路、割り込み制御部及び通信制御部には、各別に参照番号３６，３７，３８，４０を付してある。いずれのリトライフラグ回路も、この例では、フリップフロップ回路が用いられる。
【００３１】
プロセッサ１２Ａの命令制御部１６及び割り込み制御部１８の細部構成を、図２を参照して説明する。命令制御部２６，３６及び割り込み制御部２８，３８の細部構成は、プロセッサ１２Ａと同一構成なので、プロセッサ１２Ａのそれらについてのみ説明し、それに続いて、命令制御部２６，３６及び割り込み制御部２８，３８の細部構成とプロセッサ１２Ａの命令制御部１６及び割り込み制御部１８の細部構成との対応関係を説明する。
命令制御部１６は、命令フェッチ部１６１、命令デコード部１６２及び命令処理部１６３から構成されている。命令処理部１６３は、セレクタ１６３１、マイクロ命令アドレス保持部１６３２、アドレス更新部１６３３、演算部１６３４及び割り込みアドレス保持部１６３５から構成されている。
【００３２】
命令フェッチ部１６１は、主記憶装置１５に記憶されている命令を、システムバス１５、通信制御部２０及び演算部１６３４を介してフェッチする。命令デコード部１６２は、命令フェッチ部１６１でフェッチされた命令をデコードしてマイクロ命令開始アドレス１６２ａを出力する。
命令処理部１６１のアドレス更新部１６３３は、マイクロ命令アドレス保持部１６３２のマイクロ命令アドレスを更新してセレクタ１６３１に出力する。
割り込みアドレス保持部１６３５は、プロセッサ１２Ａにおいて割り込み処理が行われるときにマイクロ命令アドレス保持部１６３２のマイクロ命令アドレスを退避して置く。
【００３３】
セレクタ１６３１は、命令開始信号１６３ａ及び割り込み信号１８ａに従って、命令デコード部１６２、アドレス更新部１６３３及び割り込みアドレス保持部１６３５のうちのいずれかを選択してマイクロ命令アドレスをマイクロ命令アドレス保持部１６３２に設定する。
演算部１６３４は、マイクロ命令アドレス保持部１６３２のマイクロ命令アドレスで指定されるマイクロ命令を実行する。また、演算部１６３４は、マイクロ命令の実行開始時に、命令開始信号１６３ａを出力するほか、実行中のマイクロ命令の実行を中断した後、中断した命令の実行が不可能な状態（以下、命令の再実行が不可能な状態という。）に遷移したときリトライ不可信号１６３ｂを出力する。
また、演算部１６３４は、各プロセッサ１２Ａ，１２Ｂ，１２Ｃによって共有される主記憶装置１５のページ（被アクセス部）に対しアクセスの可否を設定するタイミングの同期を取る必要がある命令（以下、同期化命令Ａともいう。）を実行するとき全プロセッサ停止指令情報を発行し、これを送出信号１６３ｃとして出力し、また、同期化命令Ａ固有の処理終了時に全プロセッサ開始指令情報を発行し、これを送出信号１６３ｃとして出力する。また、演算部１６３４は、リトライ不可信号１６３ｂを出力していない状態において、割り込み信号１８ａが供給されたとき、リプライ情報を発行し、これを送出信号１６３ｃとして出力する。
【００３４】
上述したように、プロセッサ１２Ｂ，１２Ｃの命令制御部２６，３６は、プロセッサ１２Ａの命令制御部１６と同一の構成である。後述するところでは、命令制御部１６の命令フェッチ部１６１、命令デコード部１６２及び命令処理部１６３に相当するプロセッサ１２Ｂの命令フェッチ部、命令デコード部及び命令処理部は、それぞれ２６１，２６２及び２６３なる参照番号で参照し、また、プロセッサ１２Ｃの命令フェッチ部、命令デコード部及び命令処理部は、それぞれ３６１，３６２及び３６３なる参照番号で参照する。また、プロセッサ１２Ｂの命令処理部２６３のセレクタ、マイクロ命令アドレス保持部、アドレス更新部、演算部及び割り込みアドレス保持部は、それぞれ２６３１、２６３２、２６３３、２６３４及び２６３５なる参照番号で参照し、プロセッサ１２Ｃの命令処理部３６３のセレクタ、マイクロ命令アドレス保持部、アドレス更新部、演算部及び割り込みアドレス保持部は、それぞれ３６３１、３６３２、３６３３、３６３４及び３６３５なる参照番号で参照する。
また、命令開始信号、リトライ不可信号及び送出信号をプロセッサ１２Ｂではそれぞれ２６３ａ、２６３ｂ及び２６３ｃで参照し、プロセッサ１２Ｃではそれぞれ３６３ａ、３６３ｂ及び３６３ｃで参照する。
【００３５】
また、割り込み制御部１８は、通信デコード部１８１、アンドゲート１８２，１８３及びオアゲート１８４から構成されている。
通信デコード部１８１は、通信制御部２０がプロセッサ１２Ｂ又はプロセッサ１２Ｃから全プロセッサ停止指令情報を受信し、通信制御部２０から受信信号２０ｂが出力されたとき、割り込み要因信号１８１ａを出力する。割り込み要因信号１８１ａは、アンドゲート１８２，１８３の一方の入力に供給される。アンドゲート１８２の他方の入力には、リトライフラグ回路１７から出力されるリトライ可信号又はリトライ不可信号が供給される。アンドゲート１８３の他方の入力には、演算部１６３４から出力される命令開始信号が供給される。アンドゲート１８２，１８３から出力される各信号は、オアゲート１８４に供給される。オアゲート１８４から割り込み信号１８ａが出力される。
【００３６】
上述したように、プロセッサ１２Ｂ，１２Ｃの割り込み制御部２８，３８は、プロセッサ１２Ａの割り込み制御部１８と同一の構成である。後述するところでは、割り込み制御部１８の通信デコード部１８１、アンドゲート１８２，１８３及びオアゲート１８４に相当するプロセッサ１２Ｂの通信デコード部、アンドゲート及びオアゲートは、それぞれ２８１、２８２，２８３及び２８４なる参照番号で参照し、また、プロセッサ１２Ｃの通信デコード部、アンドゲート及びオアゲートは、それぞれ３８１、３８２，３８３及び３８４なる参照番号で参照する。また、割り込み要因信号及び割り込み信号をプロセッサ１２Ｂではそれぞれ２８１ａ及び２８ａで参照する。プロセッサ１２Ｃでは割り込み要因信号及び割り込み信号をそれぞれ３８１ａ及び３８ａで参照する。
【００３７】
通信制御部２０は、他のプロセッサ１２Ｂ，１２Ｃの通信制御部３０，４０との間で競合処理を行って全プロセッサ停止指令情報、リプライ情報及び全プロセッサ開始指令情報を送受する。全プロセッサ停止指令情報、リプライ情報及び全プロセッサ開始指令情報は、「従来の技術」の項で説明したものと同じである。
【００３８】
また、各プロセッサは、主記憶装置１５に図２及び図３に示すフローチャートの処理を行うプログラムが記載されており、そのプログラムは、プロセッサによって主記憶装置１５から読み出され、システムバス１４、プロセッサ１２Ａ，１２Ｂ，１２Ｃの通信制御部２０，３０，４０を介して命令制御部１６，２６，３６に読み込まれてその演算部１６３４，２６３４，３６３４で実行されることにより、図２及び図３に示すフローチャートの処理を行う。
【００３９】
次に、図１乃至図４を参照して、この例の動作について説明する。
先ず、プロセッサ１２Ａからプロセッサ１２Ｂ，１２Ｃに対して全プロセッサ停止指令情報を送信したとき、プロセッサ１２Ｂ，１２Ｃで実行中の命令がリトライ可能の場合について説明する。
いま、プロセッサ１２Ａにおいて、各プロセッサ１２Ａ，１２Ｂ，１２Ｃ間で共有する主記憶装置（主メモリ）１５内のページをクリアするときのそのタイミングの同期を取る必要がある命令Ａ（図３のＳ１）を実行するとき、命令制御部１１６から全プロセッサ停止指令情報を発行する（図３のＳ３）。その全プロセッサ停止指令情報は、送出信号１６３ｃとして通信制御部１２０に供給され、送出信号１６３ｃは、通信制御部２０において送信信号２０ａとされ、システムバス１４を介して他のプロセッサ１２Ｂ，１２Ｃへ転送される（図３のＳ５、Ｓ７）。命令制御部１６は、全プロセッサ停止指令情報を発行した後、後述するリプライ情報をプロセッサ１２Ｂ，１２Ｃから受信するまで、リプライ情報受信待ちの状態に置かれる（図３のＳ４）。
【００４０】
このプロセッサ１２Ａの動作と並行して動作しているプロセッサ１２Ｂ，１２Ｃでは、それらプロセッサ１２Ｂ．１２Ｃの命令制御部２６，３６の演算部２６３４，３６３４が命令の実行に入るとき、演算部２６３４，３６３４は命令開始信号２６３ａ，３６３ａを出力する。この命令開始信号２６３ａ，３６３ａの供給を受けたリトライフラグ回路２７，３７は、その出力に“１”、すなわち、高レベルの信号を出力する。この“１”の信号は、当該プロセッサにおいて実行中の命令がリトライ可能であることを示している。
【００４１】
送信信号２０ａをシステムバス１４を介して受信したプロセッサ１２Ｂ，１２Ｃの通信制御部３０，４０は、割り込み制御部２８，３８へ受信信号３０ｂ，４０ｂを供給し、割り込み制御部２８，３８は高レベルの割り込み要因信号２８１ａ，３８１ａを出力する。
【００４２】
したがって、プロセッサ１２Ｂ，１２Ｃのアンドゲート２８２，３８２から高レベルの信号が出力され、そしてオアゲート２８４，３８４からは、また、高レベルの信号が出力される。これらのオアゲート２８４，３８４から出力される高レベルの信号は、プロセッサ１２Ｂ，１２Ｃの命令処理部２６３，３６３へ割り込み信号として供給される。
【００４３】
命令処理部２６３，３６３は、実行中の命令Ｂ，Ｃ（図３のＳ９、Ｓ１１）の処理を中断し（図３のＳ１３、Ｓ１５）、当該命令Ｂ，Ｃについての割り込み処理を行った後（図３のＳ１７、Ｓ１９）、リプライ情報を発行し（図３のＳ２１、Ｓ２３）、これを送出信号２６３ｃ，３６３ｃとして通信制御部３０，４０に出力する。それらの送出信号２６３ｃ，３６３ｃは、通信制御部３０，４０からシステムバス１４を介して送信信号３０ａ，４０ａとしてプロセッサ１２Ａへ送信される。
【００４４】
プロセッサ１２Ｂ，１２Ｃからリプライ情報が送られて来るまで、待ち状態にあったプロセッサ１２Ａの命令処理部１６３（図３のＳ４）は、システムバス１４を介して送信信号３０ａ，４０ａを受信したとき、それまで保留していた命令Ａ固有の処理、すなわち、当該命令で指定されるページに割り当てられているアドレス変換表の対応するページ記述子の中のページ使用可否ビットを“１”、すなわち、当該ページの使用不可を示すビット状態にする処理を行う。
【００４５】
この命令Ａ固有の処理が終了した後、プロセッサ１２Ａの命令処理部１６３は、全プロセッサ開始指令情報を発行し、これを送出信号１６３ｃとして通信制御部２０に出力する。送出信号１６３ｃは、通信制御部２０から送信信号２０ａとしてシステムバス１４を介してプロセッサ１２Ｂ，１２Ｃに送信される。
また、命令処理部１６３は、命令Ａの処理を終了して（図３のＳ３３）次の命令Ｄの処理に入る（図３のＳ３５）。
【００４６】
リプライ情報を送信して全プロセッサ開始指令情報待ちの状態となっているプロセッサ１２Ｂ，１２Ｃ（図３のＳ２５，Ｓ２７）は、プロセッサ１２Ａから全プロセッサ開始指令情報を受信したとき、割り込み処理の終了処理、すなわち、割り込みアドレス保持部２６３５，３６３５に退避して置いたマイクロ命令アドレスをマイクロ命令アドレス保持部２６３２，３６３２に設定する等の処理をして割り込み終了の処理をする（図３のＳ３７，Ｓ３９）。
この割り込み処理の終了後、プロセッサ１２Ｂ，１２Ｃは、中断した命令Ｂ，Ｃの再実行に入り（図３のＳ４１，Ｓ４３）、その終了後に（図３のＳ４５，Ｓ４７）、命令Ｅ，Ｆを実行する（図３のＳ４９，Ｓ５１）。
【００４７】
次に、プロセッサ１２Ａからプロセッサ１２Ｂ，１２Ｃに対して全プロセッサ停止指令情報を送信したとき、プロセッサ１２Ｂ，１２Ｃで実行中の命令がリトライ不可能な状態にある場合について説明する。
プロセッサ１２Ａから全プロセッサ停止指令情報（図４のＴ５，Ｔ７）を受信したプロセッサ１２Ｂ，１２Ｃにおいて、その受信時刻に実行中の命令がリトライ可能でないこと、すなわち、該受信時刻前にプロセッサ１２Ｂ，１２Ｃの演算部２６３４，３６３４で命令の再実行が不可能な状態に遷移したことを検出すると、リトライフラグ回路２７，３７に対してリトライ不可信号２６３ｂ，３６３ｂを送出してリトライフラグ回路２７，３７の設定状態を“０”にする。
【００４８】
したがって、プロセッサ１２Ａから全プロセッサ停止指令情報を受信したときに、プロセッサ１２Ｂ，１２Ｃの割り込み制御部２８１，３８１から出力される割り込み要因信号は、アンドゲート２８２，３８３をゲートされず、オアゲート２８４，３８４から演算部２６３４，３６３４に対して割り込み信号が供給されない。
それ故、プロセッサ１２Ａから全プロセッサ停止指令情報を受信したときに実行中の命令がリトライ可能である上述の場合とは異なって、プロセッサ１２Ｂ，１２Ｃの演算部２６３４，３６３４は、従来と同様、実行中の命令をその終了まで続行し、その終了（図４のＴ１３，Ｔ１５）後に割り込み処理を行い（図４のＴ１７，Ｔ１９）、割り込み処理の終了後にリプライ情報（図４のＴ２１，Ｔ２３）をプロセッサ１２Ａに返送する。プロセッサ１２Ｂ，１２Ｃは、プロセッサ１２Ａからの全プロセッサ開始指令情報待ちとなる（図４のＴ３１，Ｔ３３）。この返送後に、プロセッサ１２Ａは、プロセッサで指定したページの使用を不可する処理を行う（図４のＴ２７）。その処理後に、全プロセッサ開始指令情報（図４のＴ２９）をプロセッサ１ＴＢ，１２Ｃに対して送信する。全プロセッサ開始指令情報の送信後、プロセッサ１ＴＡは、命令Ａ（図４のＴ１）を終了して（図４のＴ３５）から次の命令Ｄの実行に入る（図４のＴ３７）。
【００４９】
このように、この例の構成によれば、全プロセッサ停止指令情報を受信したプロセッサの各々において、既に実行中の命令が受信時刻にリトライ可能であるか否かを判断し、リトライ可能であれば、当該命令に対する割り込み処理を行ってリプライ情報を全プロセッサ停止指令情報を送出したプロセッサに返して当該プロセッサで指定したページの使用を不可にする処理を行うようにしたので、全プロセッサ停止指令情報を送信したプロセッサで命令を早期に実行することができる。
したがって、マルチプロセッサシステムの処理性能の向上に寄与する。
【００５０】
以上、この発明の実施例を、図面を参照して詳述してきたが、この発明の具体的な構成は、これらの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもそれらはこの発明に含まれる。
例えば、ページ単位の代わりに、アクセス可能な他のアクセス単位、例えば、レジスタに対して本発明を適用してもよい。
また、マルチプロセッサシステムにおいて、或るプロセッサの命令を実行するに際して他のプロセッサとの間で命令実行上のタイミングの同期を取ることが必要になる場合にも本発明を適用することができる。
また、主記憶装置は、共用バス以外の構成において、各プロセッサによりアクセスされる形式であってもよい。
【００５１】
【発明の効果】
以上説明したように、この発明の構成によれば、マルチプロセッサシステム内の或るプロセッサで実行しようとする命令が、他のプロセッサで実行されている命令に影響を与える命令であるときに、上記或るプロセッサから送信された全プロセッサ停止指令情報を受信したプロセッサの各々において、既に実行中の命令が全プロセッサ停止指令情報の受信時刻にリトライ可能であるか否かを判断し、リトライ可能であれば、割り込み処理をして全プロセッサ停止指令情報を受信した各プロセッサでの処理を一時停止してリプライ情報を上記或るプロセッサに返送して上記或るプロセッサで命令を実行するようにしたので、上記或るプロセッサで実行しようとする命令の実行開始までに要する時間を短縮することができ、マルチプロセッサシステムの処理性能の向上を図ることができる。
本発明をプロセッサ間でのページ使用可否の処理に適用すれば、ページ使用可否の処理に要する時間を短縮し、処理を高速に行うことができる。
【図面の簡単な説明】
【図１】この発明の一実施例であるマルチプロセッサシステムにおける命令実行装置の電気的構成の概略図である。
【図２】同命令実行装置の詳細な構成図である。
【図３】同命令実行装置においてプロセッサで実行中の命令がリトライ可能な命令である場合のフローチャートである。
【図４】同命令実行装置においてプロセッサで実行中の命令がリトライ不可能な命令である場合のフローチャートである。
【図５】従来のマルチプロセッサシステムにおける命令実行装置の電気的構成の概略図である。
【符号の説明】
１０      マルチプロセッサシステム
１２Ａ，１２Ｂ，１２Ｃ      プロセッサ
１４      システムバス
１５      主記憶装置
１６，２６，３６      命令制御部（割り込み手段の一部、割り込み処理手段、リプライ情報出力手段）
１７      リトライフラグ回路（リトライ可能表示手段）
１８，２８，３８      割り込み制御部（割り込み手段の残部、割り込み制御手段）
２０，３０，４０      通信制御部（受信手段）
【図１】
0003576945.tif 000002
【図２】
0003576945.tif 000003
【図３】
0003576945.tif 000004
【図４】
0003576945.tif 000005
【図５】
0003576945.tif 000006