(57)【要約】【課題】従来は、共有メモリの一致化中はバックアップ系において共有メモリ内のデータは更新中となり有効でない問題があり、共有メモリの有効性を保障するものが要求されていた。バックアップ用のコンピュータシステムでオンライン業務を引き継いで継続でき、使用量は使用ユーザ毎に異なるため、大容量から少容量の共有メモリ一致化要求が大容量の共有メモリ一致化時間に左右されない二重系計算機の共有データ一致化方法を提供する。【解決手段】共有メモリ５０領域に対応する一致化用の複数の面を有する一致化交代バッファ６０を設けて面を交代で使用し、一致化交代バッファ６０の使用開始と使用終了を示すカウンタを設け、一致化交代バッファ６０を介して共有データの一致化を行うようにしたものである。【選択図】  図１４
2004157795.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ，メモリ転送装置，主メモリ装置及びそれらを接続するシステムバスを備え、前記メモリ転送装置が、メモリ制御部と接続されたＤＭＡ部，該ＤＭＡ部に接続された送受信部，送信開始アドレスレジスタと送信終了アドレスレジスタと送信開始レジスタと送信完了レジスタを具備し、前記主メモリが、共有メモリと、該共有メモリの領域に対応した領域を有する複数面の一致化交代バッファと、一致化要求を管理する一致化要求管理テーブルと、前記一致化交代バッファの各面の送信エントリ情報を管理する一致化状態管理テーブルを備えたことを特徴とする二重系計算機。
【請求項２】
主メモリ装置を有する複数の計算機で構成される二重系計算機であって、オンラインプログラムのメモリ一致化のシステムコールにより、一致化状態管理テーブルを参照して共有メモリの領域に対応した複数面のバッファを具備した一致化交代バッファの１つの面を選択して前記共有メモリの指定された領域を複写し、前記一致化状態管理テーブルの面開始カウンタ情報，前記選択された一致化交代バッファの１つの面のデータ，前記一致化状態管理テーブルの面終了カウンタ情報をメモリ転送装置，メモリ転送バスを介して第２の計算機の一致化交代バッファ，一致化状態管理テーブルに送信し、受信した第２の計算機は、前記一致化交代バッファ及び一致化状態管理テーブルのデータ更新を行うとともに前記送信された一致化交代バッファの１つの面のデータを共有メモリに複写することを特徴とする二重系計算機の共有データ一致化方法。
【請求項３】
前記一致化交代バッファの面毎に複写回数を示すカウンタ情報が設けられるものであって、前記一致化交代バッファの１つの面に前記共有メモリの領域からのデータ複写後に前記１つの面の複写回数を示す面開始カウンタ情報を更新して前記第２の計算機にデータ転送し、前記選択された一致化交代バッファの１つの面のデータの送信後に前記複写回数を示す面終了カウンタ情報を前記第２の計算機に転送し、前記第２の計算機の一致化交代バッファ内に記録された一致化状態管理テーブルのカウンタ情報を参照し、面開始カウンタ情報と面終了カウンタ情報が一致した場合にデータ転送の終了を判断するとともに、カウンタ情報が最新であるバッファ領域を選択して、データを共有メモリへ複写する請求項２に記載の二重系計算機の共有データ一致化方法。
【請求項４】
前記一致化交代バッファの面の一部が複数個の分割領域に分割されるものであって、該分割領域のデータを前記第２の計算機に送信し、複数回のデータ送信により１つの面のデータ全体を送信できるようにした請求項２又は３に記載の二重系計算機の共有データ一致化方法。
【請求項５】
前記共有メモリの領域にデータ転送の優先度が設けられるものであって、前記共有メモリの領域に対応したデータ転送の優先度により前記一致化交代バッファ内の面のデータ転送を行う請求項２に記載の二重系計算機の共有データ一致化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機間の共有メモリを計算機毎にメモリに配置し、計算機毎に分散して存在する共有メモリ内のデータの一致化させるのに好適な二重系計算機及びそのデータの一致化方法に関する。
【０００２】
【従来の技術】
一般に二重系のコンピュータシステムは、複数の計算機が設置され、これらの計算機に共有される共有メモリエリアを設けている。共有メモリにオンライン業務データを格納しておくことで、オンライン業務を処理している計算機に異常が生じて停止した場合でも、バックアップ用の計算機に切り替えてオンライン業務を行い、オンライン業務を停止することなく継続して処理することができる。
【０００３】
メモリの一致化方法としては、１つのメモリを設けて計算機間で共有する方法、あるいは計算機毎に設けられるメモリの一部を共有メモリとして管理し、共有メモリに書き込む時もしくは周期的に計算機間のメモリの一致化を行う方法が一般的である。後者の方法の例としては、例えば、
【特許文献１】に記載のように、二重系コンピュータシステムにおいて、ハードウェアによる計算機間のメモリ転送機能により共有メモリへの書き込み時に他の計算機に共有メモリデータを転送し、共有メモリのデータの一致化を行うものがある。
【０００４】
【特許文献１】
特開２００１−２３６２４１号公報
【０００５】
【発明が解決しようとする課題】
計算機システム間で各々の計算機の共有メモリを一致化する場合、ハードウェアにより一致化処理中にメモリアクセスを停止し、一致化が終了した場合にメモリアクセスの停止を解除することにより、データ一致化中のデータアクセスを禁止して、一致化途中のデータの参照を防止する方法がある。この方法の場合、メモリ一致化処理中のメモリアクセスの停止時間が長くなるとリアルタイム処理に支障をきたすという問題がある。メモリ一致化処理時間は一致化するデータ量に比例するため、従来の共有メモリのデータ一致化方法では、メモリ転送装置で一度に転送するデータサイズを数バイトから数十バイト程度としている。
【０００６】
しかし、ユーザ毎に一致化を行う共有データの使用容量は、数バイトから数キロバイト以上等と異なり、メモリ転送装置では明らかに一度では転送できないサイズの容量を一致化する場合があり、この場合、メモリ一致化中はバックアップ系では共有メモリ内のデータは更新中となり有効（対象となるデータに対しメモリ一致化の更新が完了していること）でない問題がある。このため、共有メモリの有効性が保障されずバックアップ用のコンピュータシステムがオンライン業務の引き継ぎが行えないという問題がある。
【０００７】
また、共有メモリの使用者を限定しないでユーザ個別に使用可能とする場合、二重系の一致化する対象のメモリの使用量が使用ユーザ毎に異なり、少容量の共有メモリ一致化要求が大容量の共有メモリ一致化時間に左右されてしまう問題がある。また、共有メモリのデータ更新周期の頻度はユーザ毎に異なるため、周期の短い共有データ一致化要求が周期の長いメモリ一致化処理に影響されてしまう問題がある。また、プログラム不具合などにより共有メモリ内のデータが破壊された時に、他系の共有メモリへ影響が及ぶという問題がある。
【０００８】
本発明の第１の目的は、メモリ一致化中でもバックアップ用の計算機では共有データの有効性を保障する二重系計算機及びその共有データ一致化方法を提供することにある。
【０００９】
本発明の第２の目的は、大容量の共有メモリデータ一致化中に、少容量の共有メモリデータ一致化が可能な二重系計算機及びその共有データ一致化方法を提供することにある。
【００１０】
本発明の第３の目的は、周期の短い共有メモリデータ一致化が、周期の長い共有メモリデータ一致化に影響されない二重系計算機及びその共有データ一致化方法を提供することにある。
【００１１】
本発明の第４の目的は、プログラムの不具合などによる共有メモリ内破壊時でも誤って共有データを引き継いでしまうことがない二重系計算機及びその共有データ一致化方法を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明の二重系計算機及びその共有データ一致化方法は、共有メモリ領域に対応する一致化用の複数の面を有する一致化交代バッファを設けて面を交代で使用し、一致化交代バッファの使用開始と使用終了を示すカウンタを設け、一致化交代バッファを介して共有メモリの一致化を行うようにしたものである。
【００１３】
また、共有データを分割して一致化を行うことにより、大きさの異なる共有データの一致化要求が重なった場合においても、大容量の共有データ一致化終了を待つことなく、少容量の共有メモリデータの一致化を行うようにしたものである。
【００１４】
【発明の実施の形態】
本発明の一実施例を図１から図１６により説明する。図１に本発明の一実施例であるコンピュータシステムの構成図を示す。
【００１５】
第１の計算機１０は、ＣＰＵ２０，主メモリ装置４０，メモリ転送装置３０、及びそれらを互いに接続するシステムバス２１で構成される。主メモリ装置４０には、共有メモリ５０，一致化交代バッファ６０，一致化状態管理テーブル７０，一致化要求管理テーブル８０，一致化制御テーブル９０が設けられる。第２の計算機１１０は、同様にＣＰＵ１２０，主メモリ装置１４０，メモリ転送装置１３０、及びそれらを互いに接続するシステムバス１２１で構成される。主メモリ装置１４０には、共有メモリ１５０，一致化交代バッファ１６０，一致化状態管理テーブル１７０，一致化要求管理テーブル１８０，一致化制御テーブル１９０が設けられる。計算機１０のメモリ転送装置３０と計算機１１０のメモリ転送装置１３０とはメモリ転送バス３１により接続されている。なお、図１では、周辺入出力装置は省略されている。
【００１６】
図２に計算機１０のメモリ転送装置３０のより詳細な構造を示す。メモリ転送装置３０は、メモリ制御部３２，メモリ制御部３２とシステムバス２１に接続されたＤＭＡ部３３，ＤＭＡ部３３に接続された送受信部３４，メモリ転送制御レジスタ３５で構成される。送受信部３４は、メモリ転送バス３１を介してメモリ転送装置１３０に接続されている。メモリ転送制御レジスタ３５は、送信開始アドレスレジスタ３５ａ，送信終了アドレスレジスタ３５ｂ，送信開始レジスタ３５ｃ，送信完了確認レジスタ３５ｄ，メモリ書き込み許可レジスタ３５ｅ，受信データ反転レジスタ３５ｆ，最新受信終了レジスタ３５ｇで構成される。
【００１７】
メモリ転送によりメモリの内容を他系へ送信するときは、送信開始アドレスレジスタ３５ａ，送信終了アドレスレジスタ３５ｂに一致化するメモリアドレスを設定してメモリの一致化を行う。送信開始レジスタ３５ｃにて送信開始の指示を行い、送信完了確認レジスタ３５ｄにて送信完了の確認を行う。設定された指定メモリアドレスよりＤＭＡ部３３が一致化交代バッファ６０を読み込み、送受信部３４は、ＤＭＡ部３３が読み込んだ一致化交代バッファ６０の内容をメモリ転送バス３１へ送信する。他系からメモリの一致化を受信した時は、メモリ書き込み許可レジスタ３５ｅにメモリ書き込みの許可を設定しておくことで、一致化データを送受信部３４にて受信後、ＤＭＡ部３３により一致化交代バッファ６０へＤＭＡ転送される。この共有メモリ領域から一致化交代バッファ領域へのデータ複写処理，一致化交代バッファ領域から共有メモリへの複写処理はオペレーティングシステム内のソフトウェアにより行われる。
【００１８】
図３に共有メモリ５０のデータフォーマットの例を示す。共有メモリ５０は、メモリ内に設定される任意の領域であり、ユーザが計算機間でのデータ一致化を行う領域を定めて管理する。共有メモリ５０内に共有メモリデータ５１，５２，５３のように、領域の個数，アドレス，サイズはユーザ毎に指定される。
【００１９】
図４に一致化交代バッファ６０のデータフォーマットの例を示す。一致化交代バッファ６０は、共有メモリ５０を一致化する際のバッファとして使用する。２面使用する場合は、共有メモリ１用バッファに１面６１及び２面６２，共有メモリ２用バッファに１面６３及び２面６４，共有メモリ３用バッファに１面６５及び２面６６のように各共有メモリ用バッファに２面ずつエリアを確保する。ｎ面使用する場合は、共有メモリ１用バッファに１面６７，２面６８，ｎ面６９のように各共有メモリ用バッファにｎ面ずつエリアを確保する。
【００２０】
図５に一致化状態管理テーブル７０のデータフォーマットの例を示す。一致化状態管理テーブル７０には、各共有メモリに送信エントリ情報が設けられる。一致化交代バッファ６０を２面使用する時は、送信エントリ１情報２１０にセーブカウンタ２１１，１面送信開始カウンタ２１２，１面送信完了カウンタ２１３，２面送信開始カウンタ２１４，２面送信終了カウンタ２１５を使用するように、送信エントリ２情報２２０，送信エントリ３情報２３０にも２面分の送信開始カウンタと送信終了カウンタを使用する。ここで、セーブカウンタ２１１には現在の最新送信カウンタが格納される。一致化交代バッファ６０をｎ面使用する時は，送信エントリ１情報２７０にセーブカウンタ２７１，１面送信開始カウンタ２７２，１面送信完了カウンタ２７３，２面送信開始カウンタ２７４，２面送信終了カウンタ２７５，ｎ面送信開始カウンタ２７６，ｎ面送信完了カウンタ２７７を使用するように、ｎ面分の送信開始カウンタと送信終了カウンタを使用する。
【００２１】
図６にエントリ情報２１０のより詳細なデータフォーマットの例を示す。セーブカウンタ２１１には、送信セーブカウンタ２１１ａ，受信セーブカウンタ２１１ｂを、１面送信開始カウンタ２１２には、送信カウンタ（ｓｔａｒｔ）２１２ａ，共有メモリアドレス２１２ｂ，一致化バッファアドレス２１２ｃ，バッファ送信サイズ２１２ｄを、１面送信終了カウンタ２１３には、送信カウンタ（ｅｎｄ）２１３ａを格納する。２面送信開始カウンタ２１４，２面送信終了カウンタ２１５以降についても１面と同様のフォーマットであり、２面送信開始カウンタ２１４には、送信カウンタ（ｓｔａｒｔ）２１４ａ，共有メモリアドレス２１４ｂ，一致化バッファアドレス２１４ｃ，バッファ送信サイズ２１４ｄを、２面送信終了カウンタ２１５には、送信カウンタ（ｅｎｄ）２１５ａを格納する。
【００２２】
図７に一致化要求管理テーブル８０のより詳細なデータフォーマットの例を示す。一致化要求管理テーブル８０は、各共有メモリ一致化の要求をキューテーブル８１に格納して管理する。キューテーブル８１には、次のキューへのアドレス８１ａ，バッファ先頭アドレス８１ｂ，バッファカレントアドレス８１ｃ，バッファ送信サイズ８１ｄ，バッファ最終アドレス８１ｅを格納する。
【００２３】
図８に一致化制御テーブル９０のより詳細なデータフォーマットの例を示す。一致化制御テーブル９０は、バッファエリア先頭論理アドレス９０ａ，バッファエリア先頭物理アドレス９０ｂ，バッファエリアサイズ９０ｃ，分割転送フラグ９０ｄ，分割転送サイズ９０ｅ，送信キューアドレス９０ｆ，フリーキューアドレス９０ｇで構成される。
【００２４】
分割転送フラグ９０ｄには、分割転送を実施するか否かを判別するフラグが設けられ、分割転送サイズ９０ｅには、分割転送する場合の分割転送サイズが、図９に示す一致化初期処理５１０にて設定される。
【００２５】
すなわち、一致化初期化処理５１０は、システムの立ち上げ時に一度だけ実行される処理であり、図９に示すように、ステップ５１１で、一致化要求管理テーブル８０のクリアを、ステップ５１２で、一致化状態管理テーブル７０のクリアを行い、ステップ５１３で、一致化制御テーブル９０の初期化を行う。
【００２６】
送信キューアドレス９０ｆには、現在一致化要求を行っている一致化要求管理テーブル８０のキューテーブルが接続される。フリーキューアドレス９０ｇには、現在使用されていない残りのキューテーブルが接続される。
【００２７】
送信キューアドレス９０ｆからはメモリ一致要求エントリ４０１，４０２が順次送信され、フリーキューアドレス９０ｇからはメモリ一致要求エントリ４０３，４０４，４０５が順次送信される。送信キューにレベルを設けるときには、図１０に示すように、送信キューアドレス９０ｆをレベル１の送信キューアドレス９０ｆ１，レベル２の送信キューアドレス９０ｆ２，レベルｎの送信キューアドレス９０ｆ３のようにレベルに分けて、レベル毎に一致化要求のキューテーブルを接続するようにする。この場合、送信キューアドレス９０ｆ１からはメモリ一致要求エントリ４１１，４１２が、フリーキューアドレス９０ｆ２からはメモリ一致要求エントリ４１３が、送信キューアドレス９０ｆ３からはメモリ一致要求エントリ４１４，４１５が、フリーキューアドレス９０ｇからはメモリ一致要求エントリ４１６，４１７，４１８が順次送信される。
【００２８】
図１１は、一致化送信処理５２０の流れ図である。一致化送信処理では、ステップ５２１で、指定された共有メモリを一致化交代バッファへコピーする。一致化要求エントリ情報を作成し、ステップ５２２で、一致化キューに接続する。ステップ５２３で、既に別のメモリ一致化処理が実行中か否かを判定する。実行中でない場合は、ステップ５２４で、一致化要求管理テーブルの開始情報カウンタの転送を行う。カウンタ転送後、ステップ５２５で、一致化バッファエリアの分割データの転送を行う。転送後は、ステップ５２６で、一致化要求の終了待ちとなる。一方、既に別の一致化要求を実行中の場合は、ステップ５２６の一致化要求終了待ちに移行する。
【００２９】
図１２は、一致化分割送信完了から次の分割データ送信処理までの一致化送信割込処理５３０の流れ図である。一致化送信割込処理は、一致化送信処理５２０により一致化キューに接続された一致化要求を送信する処理であり、１つの分割データの転送が終了する度に、メモリ転送装置３０から割り込みまたはポーリングにより分割データの転送終了を検出して、起動される。ステップ５３１で、該当する共有メモリの一致化が終了したか否かを判定する。終了していれば、ステップ５３３で、一致化状態管理テーブルの終了カウンタを転送する。メモリの一致化が終了していない場合は、ステップ５３２で、一致化要求キューの最後にキューを繋ぎ替える。ステップ５３４で、新たに一致化要求キューに接続されているキューを取り出し、キューが存在した場合は、ステップ５３５で、該当する一致化要求は分割データの先頭部分の転送か否かを判定する。先頭部分の転送である時は、ステップ５３６で、一致化管理テーブルの開始カウンタを転送する。カウンタを転送した後、ステップ５３７で分割データの転送を行う。一方、先頭部分の転送でない時は、ステップ５３７に移行して分割データの転送を行う。
【００３０】
図１３は、一致化受信処理５４０の流れ図である。一致化受信処理では、ステップ５４１で、一致化状態管理テーブルの送信開始カウンタと送信終了カウンタを必要な面数分読み込み、ステップ５４２で、開始カウンタ＝終了カウンタで、かつ新しいカウンタの面を求める。ここで、開始カウンタ≠終了カウンタの面は一致化処理中である。ステップ５４３で、求めた面のバッファ内のデータを共有メモリエリアへコピーする。ここで、開始カウンタ，終了カウンタはメモリ一致化用のシステムコールがある度に更新された新しさを示すカウンタ、例えば、１ずつインクリメントされた数値が用いられ、データ送信が完了すれば、同じ数値に更新されているので、開始カウンタ＝終了カウンタで、一致化済であり、一番新しさを示すカウンタを検索する、例えば１ずつインクリメントする場合は、１番大きい数字を検索することにより、新しい面を見つけることができる。
【００３１】
以上のように構成された計算機システムの共有メモリの一致化の動作について図１４により説明する。図１４は、第１の計算機１０と第２の計算機１１０で構成される二重系の計算機システムの例であり、２面の一致化バッファを用いた共有メモリの一致化を行う二重系計算機システムを示している。
【００３２】
図１に示すように、計算機１０の主メモリ装置４０内に共有メモリ５０，計算機１１０の主メモリ装置１４０内に共有メモリ１５０を設け、共有データの一致化を行っており、メモリ転送バス３１を通して共有データのメモリコピーが行われる。
【００３３】
オンラインプログラムは、第１の共有メモリデータ５１を更新している。オンラインプログラムによりメモリ一致化用のシステムコールが実行され、図１１に示す共有メモリ一致化送信処理５２０が動作する。共通メモリ一致化処理５２０では、一致化状態管理テーブル７０を参照してデータコピー対象の一致化交代バッファを選択する。選択方法として一致化交代バッファのうち古いデータを格納しているバッファの方を選択する。ここでは第１面の方が古いデータを格納している場合を説明する。まず、第１の共有メモリデータ５１を一致化交代バッファ領域の共有メモリ１用の第１面６１へコピー６１０を行う。一致化交代バッファへのコピー後、一致化状態管理テーブル７０の１面開始カウンタ２１２を更新し、メモリ転送装置３０，１３０，メモリ転送バス３１を介して、第２の計算機１１０の一致化状態管理テーブル１７０の１面開始カウンタ３１２へ転送６１１を行う。開始カウンタ送信後、一致化交代バッファの第１面６１をメモリ転送装置３０，１３０，メモリ転送バス３１を介して、第２の計算機１１０の一致化交代バッファの第１面１６１へ転送６１２を行う。一致化交代バッファ転送後、一致化状態管理テーブルの１面終了カウンタ２１３を更新し、メモリ転送装置３０，１３０，メモリ転送バス３１を介して、第２の計算機１１０の一致化状態管理テーブル１７０の１面終了カウンタ３１３へ転送６１３を行う。
【００３４】
オンラインプログラムが再度一致化用システムコールを実行した際には、一致化交代バッファの第２面を使用して第１面と同様に共有メモリの一致化を行う。この第２面の処理手順は次のようにして行われる。
【００３５】
まず、第１の共有メモリデータ５１から一致化交代バッファ第２面６２へのコピー６２０を行い、一致化状態管理テーブル７０の２面開始カウンタ２１４を更新し、第２の計算機１１０の一致化状態管理テーブル１７０の２面開始カウンタ３１４へ転送６２１を行う。次に、一致化交代バッファの第２面６２を計算機１１０の一致化交代バッファの第２面１６２へ転送６２２を行い、一致化状態管理テーブル７０の２面終了カウンタ２１５を更新し、計算機１１０の一致化状態管理テーブル１７０の２面終了カウンタ３１５へ転送６２３を行う。
【００３６】
このように、一致化交代バッファの転送前後に一致化管理カウンタを転送して管理情報を合わせて設けて一致化することで、交代バッファが転送中であるかを確認することができる。
【００３７】
計算機１１０の受信側では、一致化管理カウンタをチェックし、一致化交代バッファの更新が完了している、かつ、新しいカウンタの示す一致化交代バッファを共有データエリアへ反映６１４，６２４を行う。これにより、共有データの有効性が保障され、システム切り替え後であってもオンライン業務を停止することなく継続することが可能となる。
【００３８】
又、二重化共有メモリとは別に二面の一致化交代バッファを設けて交互に使用しバッファ経由で一致化しているので、一方の計算機の共有メモリがプログラムに不具合が生じて破壊されても、不具合を検知することにより、この破壊されたデータを引き継ぐことをなくすことができる。
【００３９】
図１５は一致化交代バッファを分割して転送して、共有メモリの一致化を行う二重系計算機システムの例である。
【００４０】
分割転送を用いた共有メモリの一致化方法は、前述した図１４に示す共有メモリの一致化方法と比べて、一致化交代バッファ部分を分割して他計算機へ転送する点で異なる。計算機１０にて一致化要求が共有メモリデータ１（５１）と共有メモリデータ２（５２）と続けて一致化要求が行われた場合を例にとり分割転送を説明する。
【００４１】
まず、共有メモリ１の一致化交代バッファ第１面６１へのコピー７１０を行う。コピー後、一致化状態管理テーブル７０から面を選択する。１面を選択したと仮定した場合、１面の開始カウンタ２１２を更新して計算機１１０の１面開始カウンタ３１２へ転送７１１を行う。カウンタ転送後、一致化交代バッファ第１面の分割領域１（６１ａ）を計算機１１０の一致化交代バッファ第１面の分割領域１（１６１ａ）へ転送７１２を行う。
【００４２】
次に、共有メモリ２の一致化交代バッファ第１面（６３）へのコピー７２０を行う。この場合、既に共有メモリ１の一致化が動作中であるため、共有メモリ２の一致化要求はキューにつながれる。共有データ１の一致化交代バッファの分割領域１の転送が完了した後、共有データ１のエントリはキューの最後に接続される。キューの取り出しで共有メモリ２のエントリが選択される。共有メモリ２の一致化交代バッファ転送は分割領域１（６３ａ）であるため、まず送信カウンタ２２２を更新して転送７２１を行い、その後、共有メモリの分割領域１（６３ａ）の転送７２２を行う。共有メモリ２の分割領域１の転送が終了するとキューはまた最後に接続され、次に共有メモリ１のキューが選択され、共有メモリ１の分割領域２（６１ｂ）が計算機１１０の一致化交代バッファ第１面の分割領域２
（１６１ｂ）へ転送７１３が行われ、以降これを繰り返しで転送される。
【００４３】
この例での分割転送を一致化開始から見ると下記のような転送順番となる。まず、共有メモリデータ１（５１）を一致化交代バッファ第１面６１へコピー７１０を行う。共有データ１の１面開始カウンタ２１２の更新して、転送７１１を行う。共有データ１の一致化交代バッファ分割領域１（６１ａ）の転送７１２を行い、共有メモリデータ２（５２）を一致化交代バッファ６２へコピー７２０を行う。共有データ２の１面開始カウンタ２２２を更新して、転送７２１を行い、共有データ２の一致化交代バッファ分割領域１（６３ａ）の転送７２２を行う。共有データ１の一致化交代バッファ分割領域２（６１ｂ）の転送７１３を行い、共有データ２の一致化交代バッファ分割領域２（６３ｂ）の転送７２３を行う。共有データ２の１面終了カウンタ２２３を更新して、転送７２４を行い、共有データ１の一致化交代バッファ分割領域３（６１ｃ）の転送７１４を行う。共有データ１の一致化交代バッファ分割領域４（６１ｄ）の転送７１５を行い、共有データ１の１面終了カウンタ２１３を更新し、転送７２４を行う。
【００４４】
これにより、大容量の共有データの一致化を実行中に、少容量の共有データの一致化を行うことが可能となる。
【００４５】
図１６はｎ面の交代バッファを使用して、共有メモリの一致化を行う二重系計算機システムの例である。
【００４６】
ｎ面の交代バッファを用いた共有メモリの一致化方法としては前述にて説明した図１４の共有メモリ一致化例と、一致化交代バッファがｎ面ある点と、それに対応した一致化状態管理テーブルのカウンタもｎ面分ある点である。一致化方法については、図１４に示す２面の場合と同様に、オンラインプログラムは、第１の共有メモリデータ５１を更新している。オンラインプログラムによりメモリ一致化用のシステムコールが実行され、図１１に示す共有メモリ一致化送信処理５２０が動作する。共通メモリ一致化処理５２０では、一致化状態管理テーブル７０を参照してデータコピー対象の一致化交代バッファを選択する。選択方法として一致化交代バッファのうち最もデータを格納しているバッファ方を選択する。又、ｎ面ある一致化交代バッファは、対応する共有メモリの転送する優先度が設けられるように構成してもよく、このデータ転送の優先度の順に使用する一致化交代バッファを使用するようにできる。第１面の方が最も古いデータを格納している場合、あるいはデータ転送の優先度が最も高い場合を説明する。まず、第１の共有メモリデータ５１を一致化交代バッファ領域の共有メモリ１用交代バッファ第１面６７へコピー８１０を行う。一致化交代バッファへのコピー後、一致化状態管理テーブル７０の１面開始カウンタ２７２を更新し、メモリ転送装置３０，１３０，メモリ転送バス３１を介して、第２の計算機１１０の一致化状態管理テーブル１７０の１面開始カウンタ３７２へ転送８１１を行う。開始カウンタ送信後、共有メモリ１用交代バッファ第１面６７をメモリ転送装置３０，１３０，メモリ転送バス３１を介して、第２の計算機１１０の一致化交代バッファの第１面１６７へ転送８１２を行う。一致化交代バッファ転送後、一致化状態管理テーブルの１面終了カウンタ２７３を更新し、メモリ転送装置３０，１３０，メモリ転送バス３１を介して、第２の計算機１１０の一致化状態管理テーブル１７０の１面終了カウンタ３７３へ転送６１３を行う。
【００４７】
オンラインプログラムが再度一致化用システムコールを実行した際には、以下同様にして一致化交代バッファの最も古い面を使用して、あるいはデータ転送の優先度が高い面を使用して、第１面と同様に共有メモリの一致化を行う。
【００４８】
以上説明したように、本実施例によれば、共有メモリ内のデータは有効性を保障することができ、オンラインサービスを停止することなく継続することが可能となる。また、大容量の共有メモリ一致化時でも少容量のメモリ一致化要求ができ、大容量のメモリ一致化の終了を待たずに少容量のメモリの一致化が可能となる。又、周期の異なるメモリ一致化処理に対して、低周期のメモリ一致化要求に影響されることなく高周期のメモリ一致化が可能となる。
【００４９】
また、一致化交代バッファを用いて共有メモリの一致化を行っていることにより、プログラムの不具合による共有メモリエリアが破壊しても、誤ったデータを引き継ぐことがないので、バックアップ系の共有メモリエリアには影響を与えないようにできる。
【００５０】
【発明の効果】
本発明によれば、共有メモリ内のデータは有効性を保障することができ、オンラインサービスを停止することなく継続することが可能となる。また、一致化交代バッファを用いて共有メモリの一致化を行っていることにより、プログラムの不具合による共有メモリエリアが破壊しても、誤ったデータを引き継ぐことがないので、バックアップ系の共有メモリエリアには影響を与えないようにできる。
【図面の簡単な説明】
【図１】本発明の一実施例であるコンピュータシステムの構成図である。
【図２】メモリ転送装置の構成図である。
【図３】共有メモリのフォーマット図である。
【図４】一致化交代バッファのフォーマット図である。
【図５】一致化状態管理テーブルのフォーマット図である。
【図６】エントリ情報のフォーマット図である。
【図７】一致化要求管理テーブルのフォーマット図である。
【図８】一致化制御テーブルのフォーマット図である。
【図９】一致化初期化処理の流れ図である。
【図１０】一致化制御テーブルのフォーマット図である。
【図１１】一致化送信処理の流れ図である。
【図１２】一致化分割送信完了から次分割データ送信処理までの流れ図である。
【図１３】一致化受信処理の流れ図である。
【図１４】交代バッファを用いた共有メモリ一致化方法の説明図である。
【図１５】交代バッファを分割転送時の共有メモリ一致化方法の説明図である。
【図１６】交代バッファをｎ面用いた共有メモリ一致化方法の説明図である。
【符号の説明】
１０，１１０…計算機、２０，１２０…ＣＰＵ、２１，１２１…システムバス、３０，１３０…メモリ転送装置、３１…メモリ転送バス、３２…メモリ制御部、３３…ＤＭＡ部、３４…送受信部、３５…メモリ転送制御レジスタ、４０，１４０…主メモリ装置、５０，１５０…共有メモリ、５１，１５１…共有メモリデータ１、５２，１５２…共有メモリデータ２、５３，１５３…共有メモリデータ３、６０，１６０…一致化交代バッファ、６１，１６１…共有メモリ１用交代バッファ第１面、６２，１６２…共有メモリ１用交代バッファ第２面、６３，１６３…共有メモリ２用交代バッファ第１面、６４，１６４…共有メモリ２用交代バッファ第２面、６５，１６５…共有メモリ３用交代バッファ第１面、６６，１６６…共有メモリ３用交代バッファ第２面、６７，１６７…共有メモリ１用交代バッファ第１面、６８，１６８…共有メモリ１用交代バッファ第２面、６９，１６９…共有メモリ１用交代バッファ第ｎ面、７０，１７０…一致化状態管理テーブル、８０，１８０…一致化要求管理テーブル、９０，１９０…一致化制御テーブル。
【図１】
2004157795.tif 000003
【図２】
2004157795.tif 000004
【図３】
2004157795.tif 000005
【図４】
2004157795.tif 000006
【図５】
2004157795.tif 000007
【図６】
2004157795.tif 000008
【図７】
2004157795.tif 000009
【図８】
2004157795.tif 000010
【図９】
2004157795.tif 000011
【図１０】
2004157795.tif 000012
【図１１】
2004157795.tif 000013
【図１２】
2004157795.tif 000014
【図１３】
2004157795.tif 000015
【図１４】
2004157795.tif 000016
【図１５】
2004157795.tif 000017
【図１６】
2004157795.tif 000018