(57)【要約】【課題】命令書き換えを行う際、他プロセッサが実行途中の命令を書き換えてしまうという事態を回避し、安全な命令書き換えを行う。【解決手段】命令書き換えを行うプロセッサが１）停止指示通知機能を介して他プロセッサに停止指示を通知する、２）他プロセッサは、停止指示を受けると停止状態通知機能に自分が停止状態になったことを設定し、停止指示通知機能により停止解除を通知されるまで停止状態となる、３）命令書き換えを行うプロセッサは、停止状態通知機能を調べ他プロセッサが全部停止状態になったことを確認した後、命令書き換えを行う、４）命令書き換えを完了したプロセッサは、停止指示通知機能を介して他プロセッサに停止解除を通知する、５）他プロセッサは停止指示通知機能により停止解除を通知されると、停止状態通知機能に自分が停止状態を解除したことを設定し、設定停止状態を解除する。【選択図】  図１
2004342014.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、この複数のプロセッサが共有する主メモリとを備え、
この主メモリには、プログラム記憶領域とデータ記憶領域とを備え、
前記複数のプロセッサは、これらの記憶領域を参照してプログラムを実行する手段を備えたマルチプロセッサシステムにおいて、
一つのプロセッサから他のプロセッサに対してプログラムの実行停止を指示する手段と、
この指示する手段によりプログラムの実行停止を指示されたプロセッサは当該実行停止を指示したプロセッサに対してプログラムの実行を停止状態としたことを通知する手段と
を備えたことを特徴とするマルチプロセッサシステム。
【請求項２】
前記主メモリ中の命令コードの書き換えを行うプロセッサは、当該書き換えに際して前記プログラムの実行停止を指示する手段により他プロセッサにプログラムの実行停止を指示する手段と、
前記通知する手段による他プロセッサからのプログラムの実行停止通知を受け取った後に前記主メモリ中の命令コードの書き換えを行う手段と
を備えた請求項１記載のマルチプロセッサシステム。
【請求項３】
前記主メモリと前記複数のプロセッサとの間には、各プロセッサ毎にそれぞれ命令キャッシュを備え、
前記プログラムの実行停止を指示する手段により他プロセッサに対してプログラムの実行停止を指示したプロセッサは当該指示が不要になったときには当該指示を解除する指示を他プロセッサに対して行うプログラムの実行停止解除指示手段を備え、
前記プログラムの実行停止指示を受けてプログラムの実行を停止していたプロセッサは、前記プログラムの実行停止解除指示手段によるプログラムの実行停止解除指示を受け取ると自己に関わる前記命令キャッシュの内容をクリアしてからプログラム実行を再開する手段を備えた
請求項１または２記載のマルチプロセッサシステム。
【請求項４】
複数のプロセッサと、この複数のプロセッサが共有する主メモリとを備え、
この主メモリには、プログラム記憶領域とデータ記憶領域とを備え、
前記複数のプロセッサは、これらの記憶領域を参照してプログラムを実行する手段を備えたマルチプロセッサシステムに適用される前記主メモリにおいて、
前記プログラム記憶領域には、
一つのプロセッサから他のプロセッサに対してプログラムの実行停止を指示するプログラムと、
プログラムの実行停止を指示されたプロセッサが当該実行停止を指示したプロセッサに対してプログラムの実行を停止状態としたことを通知するプログラムと
が書き込まれたことを特徴とする主メモリ。
【請求項５】
前記プログラム領域には、
前記主メモリ中の命令コードの書き換えを行うプロセッサが当該書き換えに際して前記プログラムの実行停止を指示するプログラムにより他プロセッサにプログラムの実行停止を指示するプログラムと、
前記通知するプログラムによる他プロセッサからのプログラムの実行停止通知を受け取った後に前記主メモリ中の命令コードの書き換えを行うプログラムと
が書き込まれた請求項４記載の主メモリ。
【請求項６】
前記プログラム領域には、
前記プログラムの実行停止を指示するプログラムにより他プロセッサに対してプログラムの実行停止を指示したプロセッサが当該指示が不要になったときには当該指示を解除する指示を他プロセッサに対して行うプログラムの実行停止解除指示プログラムと、
前記プログラムの実行停止指示を受けてプログラムの実行を停止していたプロセッサがプログラムの実行停止解除指示を受け取ると当該プロセッサに関わる前記命令キャッシュの内容をクリアしてからプログラム実行を再開するプログラムと
が書き込まれた請求項４記載の主メモリ。
【請求項７】
情報処理装置にインストールすることにより、その情報処理装置に、
複数のプロセッサと、この複数のプロセッサが共有する主メモリとを備え、
この主メモリには、プログラム記憶領域とデータ記憶領域とを備え、
前記複数のプロセッサは、これらの記憶領域を参照してプログラムを実行する手段を備えたマルチプロセッサシステムに適用される前記主メモリに相応する機能を実現させる前記情報処理装置のセットアップ用プログラムにおいて、
前記プログラム記憶領域には、
一つのプロセッサから他のプロセッサに対してプログラムの実行停止を指示するプログラムと、
プログラムの実行停止を指示されたプロセッサが当該実行停止を指示したプロセッサに対してプログラムの実行を停止状態としたことを通知するプログラムと
を書き込む機能を実現させることを特徴とするセットアップ用プログラム。
【請求項８】
前記プログラム領域には、
前記主メモリ中の命令コードの書き換えを行うプロセッサが当該書き換えに際して前記プログラムの実行停止を指示するプログラムにより他プロセッサにプログラムの実行停止を指示するプログラムと、
前記通知するプログラムによる他プロセッサからのプログラムの実行停止通知を受け取った後に前記主メモリ中の命令コードの書き換えを行うプログラムと
を書き込む機能を実現させる請求項７記載のセットアップ用プログラム。
【請求項９】
前記プログラム領域には、
前記プログラムの実行停止を指示するプログラムにより他プロセッサに対してプログラムの実行停止を指示したプロセッサが当該指示が不要になったときには当該指示を解除する指示を他プロセッサに対して行うプログラムの実行停止解除指示プログラムと、
前記プログラムの実行停止指示を受けてプログラムの実行を停止していたプロセッサがプログラムの実行停止解除指示を受け取ると当該プロセッサに関わる前記命令キャッシュの内容をクリアしてからプログラム実行を再開するプログラムと
を書き込む機能を実現させる請求項７記載のセットアップ用プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主メモリを複数のプロセッサで共用したマルチプロセッサシステムに利用する。特に、命令コードの書き換え処理技術に関する。
【０００２】
【従来の技術】
プログラムの実行中に、主メモリ中の命令を書き換えることにより、プログラム実行が特定の命令コードに到達した際に性能測定やデバグを目的として設置された処理部（関数）に制御を移すことのできるシステムの一例が、例えば特許文献１に記載されている。これは、システムがプログラム実行のために有するプロセッサ数が１の場合、すなわち、単一プロセッサシステムの場合に有効に機能する。
【０００３】
【特許文献１】
特開平１０−２１４２０３号公報
【特許文献２】
特開平２−２５９６５号公報
【特許文献３】
特開平６−３５８６６号公報
【特許文献４】
特開平２−１４０８４７号公報
【０００４】
【発明が解決しようとする課題】
しかし、この従来技術をマルチプロセッサシステムにそのまま適用した場合には、次のような問題点がある。
【０００５】
第一の問題点は、複数のプロセッサが異なるプログラムを並行して実行するマルチプロセッサシステムにおいて、複数の命令を書き換える場合、書き換え操作を行っている以外のプロセッサが書き換え途中状態の命令系列を実行してしまう可能性を排除できないということである。
【０００６】
その理由は、命令書き換えを行っているプロセッサから他プロセッサの命令実行を制御する手段が存在していないためである。
【０００７】
第二の問題点は、各プロセッサが命令キャッシュを有しており、かつ、それらの命令キャッシュは保持する命令に対して自分および他のプロセッサから主メモリに書き込みが行われた場合でも、その内容は反映されないアーキテクチャの場合、命令書き換えによる変更内容を反映することができないことである。
【０００８】
その理由は、命令書き換え操作を行っている以外のプロセッサが、書き換え処理の完了を検出できないため、書き換え内容を命令キャッシュに反映させる処理（命令キャッシュのクリア）を起動する契機を検出できないためである。
【０００９】
本発明は、このような背景に行われたものであって、命令書き換えを行う際、他プロセッサが実行途中の命令を書き換えてしまうという事態を回避し、安全な命令書き換えが行えるマルチプロセッサシステムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明は、複数のプロセッサがメモリを共有してプログラムを実行するマルチプロセッサシステムにおいて、プログラムの一部を安全に書き換えられる技術を提供する。具体的には、他プロセッサに停止指示を行うための停止指示通知機能、プロセッサが停止状態にあることを他プロセッサに通知するための停止状態通知機能を持たせる。命令書き換え手順は、命令書き換えを行うプロセッサが１）停止指示通知機能を介して他プロセッサに停止指示を通知する、２）他プロセッサは、停止指示を受けると停止状態通知機能に自分が停止状態になったことを設定し、停止指示通知機能により停止解除を通知されるまで停止状態となる、３）命令書き換えを行うプロセッサは、停止状態通知機能を調べ他プロセッサが全部停止状態になったことを確認した後、命令書き換えを行う、４）命令書き換えを完了したプロセッサは、停止指示通知機能を介して他プロセッサに停止解除を通知する、５）他プロセッサは停止指示通知機能により停止解除を通知されると、停止状態通知機能に自分が停止状態を解除したことを設定し、設定停止状態を解除する。
【００１１】
このようにして、命令書き換えを行うプロセッサに対し、１）他プロセッサに対して停止指示を送る、２）他プロセッサが実際に停止したことを確認する、の二点を可能とする。これにより、他プロセッサに停止指示を送り、それらが停止していることを確認した上で命令書き換えを実行することを可能にする。
【００１２】
これにより、マルチプロセッサシステムにおいて、プログラム中の命令を書き換える操作を行っている最中に、その命令コードを他プロセッサが実行してしまい、プログラム実行が異常な状況に陥る事態を完全に防止することができることにある。
【００１３】
その理由は、プログラム中の命令を書き換えるプロセッサが他プロセッサに停止指示を行った後、他プロセッサが停止したことを確認してから命令書き換えを行うためである。
【００１４】
また、各プロセッサが命令キャッシュを待つマルチプロセッサシステムであり、各命令キャッシュは保持する命令に対して自分および他のプロセッサから主メモリに書き込みが行われた場合でもその内容は反映されないアーキテクチャであっても、命令書き換えによる変更内容を反映することができることになる。
【００１５】
その理由は、書き込み操作を行っているプロセッサによる他プロセッサの停止解除の際、それらのプロセッサは命令キャッシュをクリアする処理を行ってから処理を再開するように制御できるためである。
【００１６】
なお、例えば、特許文献２および特許文献３には、単に、一つのプロセッサが他のプロセッサのプログラム実行を停止させる技術は開示されているが、当該技術は、命令コードの書き換えという観点から開発された技術ではなく、プログラム実行停止の指示を受け取った他プロセッサがプログラム実行停止の実行をプログラム実行停止指示を行ったプロセッサに通知するステップや命令コード書き換え後にプログラムの実行を停止している他プロセッサに対してプログラム実行停止解除の指示を行うといったステップが記されていないので、本発明とは、根本的に異なる。
【００１７】
また、例えば、特許文献４には、自命令キャッシュへの格納対象となっているデータの書き換えが行われたときだけ、ライトアドレスのチェックと無効化が行われる技術が開示されているが、本発明では、各命令キャッシュは保持する命令に対して自分および他のプロセッサから主メモリに書き込みが行われた場合でもその内容は反映されないアーキテクチャであっても、プログラムの実行停止後の再開時に、命令キャッシュをクリアするので、確実な命令更新を行うことができる。
【００１８】
すなわち、本発明の第一の観点は、複数のプロセッサと、この複数のプロセッサが共有する主メモリとを備え、この主メモリには、プログラム記憶領域とデータ記憶領域とを備え、前記複数のプロセッサは、これらの記憶領域を参照してプログラムを実行する手段を備えたマルチプロセッサシステムである。
【００１９】
ここで、本発明の特徴とするところは、一つのプロセッサから他のプロセッサに対してプログラムの実行停止を指示する手段と、この指示する手段によりプログラムの実行停止を指示されたプロセッサは当該実行停止を指示したプロセッサに対してプログラムの実行を停止状態としたことを通知する手段とを備えたところにある。
【００２０】
前記主メモリ中の命令コードの書き換えを行うプロセッサは、当該書き換えに際して前記プログラムの実行停止を指示する手段により他プロセッサにプログラムの実行停止を指示する手段と、前記通知する手段による他プロセッサからのプログラムの実行停止通知を受け取った後に前記主メモリ中の命令コードの書き換えを行う手段とを備えることができる。
【００２１】
また、前記主メモリと前記複数のプロセッサとの間には、各プロセッサ毎にそれぞれ命令キャッシュを備え、前記プログラムの実行停止を指示する手段により他プロセッサに対してプログラムの実行停止を指示したプロセッサは当該指示が不要になったときには当該指示を解除する指示を他プロセッサに対して行うプログラムの実行停止解除指示手段を備え、前記プログラムの実行停止指示を受けてプログラムの実行を停止していたプロセッサは、前記プログラムの実行停止解除指示手段によるプログラムの実行停止解除指示を受け取ると自己に関わる前記命令キャッシュの内容をクリアしてからプログラム実行を再開する手段を備えることができる。
【００２２】
本発明の第二の観点は、複数のプロセッサと、この複数のプロセッサが共有する主メモリとを備え、この主メモリには、プログラム記憶領域とデータ記憶領域とを備え、前記複数のプロセッサは、これらの記憶領域を参照してプログラムを実行する手段を備えたマルチプロセッサシステムに適用される前記主メモリである。
【００２３】
ここで、本発明の特徴とするところは、前記プログラム記憶領域には、一つのプロセッサから他のプロセッサに対してプログラムの実行停止を指示するプログラムと、プログラムの実行停止を指示されたプロセッサが当該実行停止を指示したプロセッサに対してプログラムの実行を停止状態としたことを通知するプログラムとが書き込まれたところにある。
【００２４】
前記プログラム領域には、前記主メモリ中の命令コードの書き換えを行うプロセッサが当該書き換えに際して前記プログラムの実行停止を指示するプログラムにより他プロセッサにプログラムの実行停止を指示するプログラムと、前記通知するプログラムによる他プロセッサからのプログラムの実行停止通知を受け取った後に前記主メモリ中の命令コードの書き換えを行うプログラムとが書き込まれることができる。
【００２５】
また、前記プログラム領域には、前記プログラムの実行停止を指示するプログラムにより他プロセッサに対してプログラムの実行停止を指示したプロセッサが当該指示が不要になったときには当該指示を解除する指示を他プロセッサに対して行うプログラムの実行停止解除指示プログラムと、前記プログラムの実行停止指示を受けてプログラムの実行を停止していたプロセッサがプログラムの実行停止解除指示を受け取ると当該プロセッサに関わる前記命令キャッシュの内容をクリアしてからプログラム実行を再開するプロセッサとが書き込まれることができる。
【００２６】
本発明の第三の観点は、情報処理装置にインストールすることにより、その情報処理装置に、複数のプロセッサと、この複数のプロセッサが共有する主メモリとを備え、この主メモリには、プログラム記憶領域とデータ記憶領域とを備え、前記複数のプロセッサは、これらの記憶領域を参照してプログラムを実行する手段を備えたマルチプロセッサシステムに適用される前記主メモリに相応する機能を実現させる前記情報処理装置のセットアップ用プログラムである。
【００２７】
ここで、本発明の特徴とするところは、前記プログラム記憶領域には、一つのプロセッサから他のプロセッサに対してプログラムの実行停止を指示するプログラムと、プログラムの実行停止を指示されたプロセッサが当該実行停止を指示したプロセッサに対してプログラムの実行を停止状態としたことを通知するプログラムとを書き込む機能を実現させるところにある。
【００２８】
前記プログラム領域には、前記主メモリ中の命令コードの書き換えを行うプロセッサが当該書き換えに際して前記プログラムの実行停止を指示するプログラムにより他プロセッサにプログラムの実行停止を指示するプログラムと、前記通知するプログラムによる他プロセッサからのプログラムの実行停止通知を受け取った後に前記主メモリ中の命令コードの書き換えを行うプログラムとを書き込む機能を実現させることができる。
【００２９】
また、前記プログラム領域には、前記プログラムの実行停止を指示するプログラムにより他プロセッサに対してプログラムの実行停止を指示したプロセッサが当該指示が不要になったときには当該指示を解除する指示を他プロセッサに対して行うプログラムの実行停止解除指示プログラムと、前記プログラムの実行停止指示を受けてプログラムの実行を停止していたプロセッサがプログラムの実行停止解除指示を受け取ると当該プロセッサに関わる前記命令キャッシュの内容をクリアしてからプログラム実行を再開するプロセッサとを書き込む機能を実現させることができる。
【００３０】
本発明の第四の観点は、本発明のプログラムが記録された前記情報処理装置読取可能な記録媒体である。本発明のプログラムは本発明の記録媒体に記録されることにより、前記情報処理装置は、この記録媒体を用いて本発明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持するサーバからネットワークを介して直接前記情報処理装置に本発明のプログラムをインストールすることもできる。
【００３１】
これにより、情報処理装置を用いて、命令書き換えを行う際、他プロセッサが実行途中の命令を書き換えてしまうという事態を回避し、安全な命令書き換えを行えるマルチプロセッサシステムを実現することができる。
【００３２】
【発明の実施の形態】
本発明実施形態のマルチプロセッサシステムを図１を参照して説明する。図１は本実施形態のマルチプロセッサシステムの構成図である。
【００３３】
本実施形態は、図１に示すように、複数のプロセッサ＃１〜＃ｎと、この複数のプロセッサ＃１〜＃ｎが共有する主メモリ１とを備え、この主メモリ１には、プログラム記憶領域２とデータ記憶領域３とを備え、複数のプロセッサ＃１〜＃ｎは、これらの記憶領域を参照してプログラムを実行する手段を備えたマルチプロセッサシステムである。
【００３４】
ここで、本実施形態の特徴とするところは、一つのプロセッサから他のプロセッサに対してプログラムの実行停止を指示する停止指示通知手段１２を備え、この停止指示通知手段１２によりプログラムの実行停止を指示されたプロセッサは当該実行停止を指示したプロセッサに対してプログラムの実行を停止状態としたことを通知する停止状態通知手段９を備えたところにある。
【００３５】
また、主メモリ１中の命令コードの書き換えを行うプロセッサは、当該書き換えに際して停止指示通知手段１２により他プロセッサにプログラムの実行停止を指示する命令書き換え手段１４を備え、この命令書き換え手段１４は、停止状態通知手段９による他プロセッサからのプログラムの実行停止通知を受け取った後に主メモリ１中の命令コードの書き換えを行う。
【００３６】
また、主メモリ１と複数のプロセッサ＃１〜＃ｎとの間には、各プロセッサ毎にそれぞれ命令キャッシュ＃１〜＃ｎを備え、停止指示通知手段１２は、他プロセッサに対してプログラムの実行停止を指示した後に、当該指示が不要になったときには当該指示を解除する指示を他プロセッサに対して行い、前記プログラムの実行停止指示を受けてプログラムの実行を停止していたプロセッサは、前記プログラムの実行停止解除指示を受け取ると自己に関わる命令キャッシュの内容をクリアしてからプログラム実行を再開する命令キャッシュクリア手段１７を備える。
【００３７】
また、命令書き換え処理部１５の停止状態監視手段１３は、停止状態通知手段９からのプログラム停止状態通知を監視する。停止処理部１１の停止指示監視手段１０は、停止指示通知手段１２からのプログラム停止指示を監視する。ｉｄｌｅ処理部８の停止指示監視手段６は、停止指示通知手段１２からのプログラム停止指示を監視する。停止処理起動手段７は、プログラム停止指示を受けて実際のプログラム停止処理を実行する。
【００３８】
本発明は、汎用の情報処理装置にインストールすることにより、上述のマルチプロセッサシステムの主メモリ１として機能させるセットアップ用プログラムとして実現することができる。このセットアップ用プログラムは、記録媒体に記録されて情報処理装置にインストールされ、あるいは通信回線を介して情報処理装置にインストールされることにより当該情報処理装置を主メモリ１として機能させることができる。
【００３９】
以下では、本実施形態をさらに詳細に説明する。
【００４０】
図１を参照すると、本発明のマルチプロセッサシステムにおける命令書き換え方法の一実施例は、プログラムを実行するプロセッサ＃１〜＃ｎ（複数）と、プログラムおよびデータを格納する主メモリ１から構成される。各プロセッサ＃１〜＃ｎは命令キャッシュ＃１〜＃ｎを持つと共に、命令キャッシュ＃１〜＃ｎの内容をクリアする手段を備えているものとする。さらに、その命令キャッシュ＃１〜＃ｎは、保持する命令に対して自分および他のプロセッサから主メモリ１に書き込みが行われた場合でも、その内容は反映されないものとする。
【００４１】
主メモリ１の内、データ記憶領域３には、停止指示用データ領域４（停止指示通知機能）と停止状態用データ領域５（停止状態通知機能）とを持ち、プログラム記憶領域２内には、１）停止指示監視手段６と停止処理起動手段７とを持つｉｄｌｅ処理部８、２）停止状態通知手段９と停止指示監視手段１０と命令キャッシュクリア手段１７とを持つ停止処理部１１、３）停止指示通知手段１２と停止状態監視手段１３と命令書き換え手段１４とを持つ命令書き換え処理部１５を持つ。
【００４２】
これらの処理部の概略は次のとおりである。ｉｄｌｅ処理部８は、プロセッサで処理すべき仕事（オペレーティング・システムの用語でプロセス）が存在しない場合に実行される。停止処理部１１は、停止指示を受けたプロセッサにより実行される。命令書き換え処理１５は、プログラム内の命令を書き換える目的でオペレータが起動する命令書き換えプログラムから呼び出されたときに実行される。
【００４３】
次に、図２、図３、図４、図５のフローチャートを参照して本実施形態の全体の動作について詳細に説明する。まず、図２に示すように、本実施形態の各プロセッサ＃１〜＃ｎは、一般のオペレーティング・システムと同様、実行すべきプロセスがある場合は（ステップ１）、そのプロセスを実行し（ステップ２）、実行すべきプロセスが存在しない場合は（ステップ１）、ｉｄｌｅ処理を実行し続けるようになっている。ｉｄｌｅ処理の内部では、停止指示監視手段６により停止指示用データ領域内の自プロセッサに対する停止指示を監視し（ステップ３）、停止指示がなければ実行すべきプロセスが存在しているかを調べるステップに戻る（ステップ４）。停止指示がある場合は停止処理部１１を呼び出す（ステップ５）。
【００４４】
図３に示すように、停止処理部１１では、まず停止状態通知手段９により、自プロセッサが停止状態であることを示す値を停止状態用データ領域５に設定した後（ステップ１）、停止指示用データ領域４内の自プロセッサに対する停止指示を監視し（ステップ２）、停止指示が解除されるまで監視を繰り返す（ステップ３）。停止指示が解除されると、自プロセッサが停止状態でないことを示す値を停止状態用データ領域５に設定した後（ステップ４）、命令キャッシュクリア手段１７により命令キャッシュの内容を無効化する（ステップ５）。
【００４５】
図４は、このような本発明の特徴である構成および手段を備えたマルチプロセッサにおいて、プログラム内容の命令を書き換える手順である。図４に示すとおり、オペレータが起動する命令書き換えプログラムは、オペレータ等により予め設定された書き換え内容、すなわち書き換え対象アドレスと分岐先アドレスの組（複数）を書き換え表１６に設定した後（ステップ１）、命令書き換え処理部１５を起動し（ステップ２）、実行結果が失敗であった場合は書き換え失敗を示すメッセージを出力する（ステップ３、４）。
【００４６】
図５に示すように、命令書き換え処理部１５では、まず、停止指示通知手段１２により停止指示用データ領域４内の自プロセッサ以外の全プロセッサに対する領域に停止指示を示す値を設定し（ステップ１）、その時刻を記録する（ステップ２）。次に、停止状態監視手段１３により停止状態用データ領域５内の自プロセッサ以外の全プロセッサに関する停止状態を監視する（ステップ３）。全プロセッサが停止していない場合は、現在時刻と停止指示時刻との差として経過時間を求める（ステップ７）。これが予め設定されている時間よりも小さい場合は、停止確認を行うステップに戻って処理を繰り返す。経路時間が予め設定されている時間よりも大きい場合には、命令書き換え処理結果は失敗として、この処理を終える。すなわち、停止指示用データ領域４に停止解除を示す値を書き込む（ステップ８）。
【００４７】
停止確認を行うステップにおいて全プロセッサが停止したことを確認できた場合は（ステップ３）、次に示すとおり書き換え表に示された内容に従ってプログラム領域中の命令を書き換えた後（ステップ４）、命令キャッシュクリア手段１７により命令キャッシュの内容を無効化し（ステップ５）、命令書き換え処理結果は成功として、この処理を終える。すなわち、停止指示用データ領域４に停止解除を示す値を書き込む（ステップ６）。
【００４８】
書き換え表１６の各行について行う書き換え処理では、１）書き換え表１６の命令アドレスで示されるアドレスに存在する命令（図６の命令１）を、書き換え表１６の分岐先アドレスを予め決められた特定のレジスタに設定する命令に書き換え、２）その次の命令（図６の命令２）を、前記予め決められた特定のレジスタに格納されたアドレスに分岐する命令に書き換える。なお、書き換え操作は、シングルプロセッサに関しては従来技術で実現されているのと同様に、図６における書き換え後の状態のプログラムが正常に動作するよう、オペレータもしくは外部プログラムの制御の元で行われる。すなわち、プロセッサが実行する命令が、図６の書き換え前、および、書き換え後のどちらであってもプログラム実行は正常に行われる。反面、万一、図６の書き換え途中状態のプログラムを実行した場合は、プログラム実行が異常な状態に陥ってしまう。
【００４９】
他プロセッサを停止させずに命令書き換えを実行した場合は、他プロセッサが図６の書き換え途中状態にあるプログラムを実行してしまう可能性を排除できなかったが、本発明に示す方法による命令書き換え操作では、他のプロセッサが図６に示す書き換え途中の状態にあるプログラムを実行する可能性を排除できるので、他プロセッサのプログラム実行が異常な状態に陥る事態を完全に防止することができる。
【００５０】
【発明の効果】
以上説明したように、本発明によれば、命令書き換えを行う際、他プロセッサが実行途中の命令を書き換えてしまうという事態を回避し、安全な命令書き換えを行えるマルチプロセッサシステムを提供することができる。
【図面の簡単な説明】
【図１】本発明実施形態のマルチプロセッサシステムの構成図。
【図２】ｉｄｌｅ処理部の動作を示すフローチャート。
【図３】停止処理部の動作を示すフローチャート。
【図４】命令書き換え手順を示すフローチャート。
【図５】命令書き換え処理部の動作を示すフローチャート。
【図６】命令の書き換えによる書き換え表の遷移を説明するための図。
【符号の説明】
１  主メモリ
２  プログラム記憶領域
３  データ記憶領域
４  停止指示用データ領域
５  停止状態用データ領域
６、１０  停止指示監視手段
７  停止処理起動手段
８  ｉｄｌｅ処理部
９  停止状態通知手段
１１  停止処理部
１２  停止指示通知手段
１３  停止状態監視手段
１４  命令書き換え手段
１５  命令書き換え処理部
１６  書き換え表
１７  命令キャッシュクリア手段
【図１】
2004342014.tif 000003
【図２】
2004342014.tif 000004
【図３】
2004342014.tif 000005
【図４】
2004342014.tif 000006
【図５】
2004342014.tif 000007
【図６】
2004342014.tif 000008