(57)【要約】【課題】  性能低下を回避し、高速化を達成するとともに信頼性を向上する二重化装置と方法の提供。【解決手段】  一方が現用系のとき他方が予備系となる２つの制御装置１ａ、１ｂと、２つの制御装置で共用される共用記録装置１７と、を備え、制御装置１ａ、１ｂのそれぞれが、ＣＰＵ１１、１４と、メインメモリ１３、１６と、メモリ制御部１２、１５と、を有し、メモリ制御部１２、１５は、それぞれメインメモリ１３、１６の予め定められたメモリ領域毎にデータの有効／無効を示すフラグを有し、現用系の制御装置が運用中に、前記現用系の制御装置のＣＰＵが使用する最新データは、現用系の制御装置の内のメインメモリと前記共有記録装置１７とに保持され、メモリ制御部１２（１５）は、フラグの値に従い、現用系の制御装置１ａ（１ｂ）の内のメインメモリ１３（１６）又は共有記録装置１７から最新データを読み出してＣＰＵ１１（１４）に転送する構成とされている。【選択図】            図１
2005148910.tif 000002
【特許請求の範囲】
【請求項１】
一方が現用系とされ、他方が予備系とされ、それぞれが、現用系から予備系、予備系から現用系に、系の切替が自在とされてなる２つの制御装置と、
前記２つの制御装置で共用される共有記録装置と、
を少なくとも含み、
前記２つの制御装置のそれぞれが、
ＣＰＵ（Central  Processing  Unit）と、メモリと、データの書き込み及び読み出しを制御するメモリ制御部と、
を有し、
前記メモリ制御部は、前記メモリに関して予め定められたメモリ領域毎にデータの有効／無効を示すフラグ情報を有し、
前記現用系の制御装置の前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからの書き込みデータを、前記フラグ情報に基づき、前記現用系の制御装置の前記メモリと前記共有記録装置とに記憶保持し、
前記現用系の制御装置の前記ＣＰＵからのデータ読み出し要求に対して、前記フラグ情報に基づき、前記現用系の制御装置の前記メモリ又は前記共有記録装置から、データを読み出して、前記現用系の制御装置の前記ＣＰＵに供給する手段を備えている、ことを特徴とするデータ二重化装置。
【請求項２】
前記現用系の制御装置の前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからのデータの書き込み要求を受けた際に、
書き込みアドレスに対応するメモリ領域の前記フラグ情報が有効を示す場合には、前記書き込みデータを、前記現用系の制御装置の前記メモリと、前記共有記録装置とに書き込み、
一方、前記フラグ情報が無効を示す場合には、前記書き込みアドレスに対応して前記共有記録装置から読み出されたデータと、前記ＣＰＵからの前記書き込みデータとを併合してなるデータを、最新データとして、前記現用系の制御装置の前記メモリと、前記共有記録装置とに書き込み、前記フラグ情報を有効とする、制御を行う、ことを特徴とする請求項１記載のデータ二重化装置。
【請求項３】
前記現用系の制御装置の前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからのデータの読み出し要求を受けた際に、
読み出しアドレスに対応するメモリ領域の前記フラグ情報が有効を示す場合には、前記現用系の制御装置の前記メモリからデータを読み出して、前記現用系の制御装置の前記ＣＰＵに供給し、
一方、前記フラグ情報が無効を示す場合には、前記共有記録装置からデータを読み出し、前記共有記録装置から読み出したデータを、前記現用系の制御装置の前記ＣＰＵに供給するとともに、前記現用系の制御装置の前記メモリに書き込み、前記フラグ情報を有効とする、制御を行う、ことを特徴とする請求項１又は２記載のデータ二重化装置。
【請求項４】
前記現用系の制御装置から、前記予備系の制御装置へ系切替を通知するための通信線を有し、
前記予備系の制御装置の予備系から現用系への系切替に際して、予備系から現用系に切り替わった前記制御装置の前記メモリ制御部は、自装置のＣＰＵからのデータのアクセス要求を受け付けた場合、アクセスアドレスに対応するメモリ領域のフラグ情報が有効であるか否か判定し、
前記フラグ情報が無効の場合に、
前記アクセスアドレスに対応するデータを前記共有記録装置から読み出し、
前記アクセスがデータ書き込みのときには、前記共有記録装置から読み出したデータと、前記ＣＰＵからの書き込みデータとを併合し、併合したデータを、前記メモリと前記共有記録装置とに書き込み、
前記アクセスがデータ読み出しのときには、前記共有記録装置から読み出しデータを、前記ＣＰＵに供給するとともに、前記メモリへ書き込んで、前記フラグ情報を有効とし、
一方、前記フラグ情報が有効の場合、
前記アクセスがデータ書き込みのときには、前記メモリ及び前記共有記録装置にデータを書き込み、
前記アクセスがデータ読み出しのときには、前記メモリからデータを読み出して前記ＣＰＵに供給する、制御を行う、ことを特徴とする請求項１記載のデータ二重化装置。
【請求項５】
前記メモリ制御部において、前記メモリ領域毎に設けられる各フラグ情報は、有効／無効に対応した値を保持するビットよりなる、ことを特徴とする請求項１乃至４のいずれか一に記載のデータ二重化装置。
【請求項６】
前記メモリ制御部は、前記メモリ領域毎に設けられるフラグ情報の有効／無効の判定をハードウェア回路で行う構成とされている、ことを特徴とする請求項１乃至５のいずれか一に記載のデータ二重化装置。
【請求項７】
前記メモリ制御部は、前記共有記録装置との間で、入力及び／又は出力を行うデータを一時的に蓄積するためのデータバッファを少なくとも１つ備えている、ことを特徴とする請求項１乃至６のいずれか一に記載のデータ二重化装置。
【請求項８】
前記メモリ制御部は、前記共有記録装置からデータを読み出すにあたり、
読み出し対象のメモリ領域に対応するデータを前記共有記録装置から読み出すとともに、他のメモリ領域に対応するデータを前記共有記録装置から先読みする、ことを特徴とする請求項１、３、４のいずれか一に記載のデータ二重化装置。
【請求項９】
前記メモリ制御部は、前記共有記録装置との間で、入力及び／又は出力を行うデータを一時的に蓄積するためのデータバッファを少なくとも１つ備え、
前記現用系の制御装置に障害が発生した場合、前記現用系の制御装置の前記メモリ制御部は、前記データバッファの状態を監視して、前記データバッファの処理が完了した時点で、前記通信線を介して、切り替え情報を、前記予備系の制御装置に伝達し、現用系と予備系の切替が行われ、それまで予備系であった制御装置は、現用系に切り替えられて運用が開始される、ことを特徴とする請求項４記載のデータ二重化装置。
【請求項１０】
前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからのデータ読み出し要求のアドレスが、前記フラグ情報が無効のメモリ領域に該当した際、前記共有記録装置からのデータ読み出しが完了した後に、前記アドレスを増加させ、増加させた前記アドレスが、前記メモリ制御部の先読み範囲内であり、且つ、前記現用系の制御装置の前記ＣＰＵからのアクセス要求が、先読み範囲以外の領域へ発生していない場合には、前記共有記録装置からデータの先読みを実行する、ことを特徴とする請求項８記載のデータ二重化装置。
【請求項１１】
前記メモリ制御部は、前記アドレスを増加させた後、前記現用系の制御装置の前記ＣＰＵからのアクセス要求が、前記先読み範囲以外のメモリ領域に対して発生した場合、前記現用系の制御装置の前記ＣＰＵからのアクセス要求を優先させる、ことを特徴とする請求項１０記載のデータ二重化装置。
【請求項１２】
前記制御装置の前記メモリは、メインメモリである、ことを特徴とする請求項１乃至４のいずれか一に記載のデータ二重化装置。
【請求項１３】
一方が現用系のとき他方は予備系とされ、それぞれが、現用系から予備系、予備系から現用系に、系の切替が自在とされてなる２つの制御装置と、
前記２つの制御装置で共用される共有記録装置と、
を少なくとも含み、
前記２つの制御装置のそれぞれが、ＣＰＵと、メモリと、データの書き込み及び読み出しを制御するメモリ制御部と、を有し、 前記メモリ制御部内に、前記メモリに関して予め定められたメモリ領域毎にデータの有効／無効を示すフラグ情報を有する二重化装置による、データ二重化方法であって、
現用系の制御装置が運用中に、前記現用系の制御装置の前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからの書き込みデータを、前記フラグ情報に基づき、前記現用系の制御装置の前記メモリと前記共有記録装置とに記憶保持するステップと、
前記現用系の制御装置の前記ＣＰＵからのデータ読み出し要求に対して、前記フラグ情報に基づき、前記現用系の制御装置のメモリ又は前記共有記録装置からデータを読み出し、読み出したデータを前記現用系の制御装置の前記ＣＰＵに供給するステップと、
を含む、ことを特徴とするデータ二重化方法。
【請求項１４】
前記現用系の制御装置の前記メモリ制御部が、前記現用系の制御装置の前記ＣＰＵからのデータの書き込み要求を受けた際に、
書き込みアドレスに対応するメモリ領域の前記フラグ情報が有効を示す場合には、前記書き込みデータを、前記現用系の制御装置の前記メモリと前記共有記録装置とに書き込むステップと、
一方、前記フラグ情報が無効を示す場合には、前記書き込みアドレスに対応して前記共有記録装置から読み出されたデータと、前記ＣＰＵからの前記書き込みデータとを併合してなるデータを、最新データとして、前記現用系の制御装置の前記メモリと前記共有記録装置とに書き込み、前記フラグ情報を有効とする、制御を行う、ステップと、
を含む、ことを特徴とする請求項１３記載のデータ二重化方法。
【請求項１５】
前記現用系の制御装置の前記メモリ制御部が、前記現用系の制御装置の前記ＣＰＵからのデータの読み出し要求を受けた際に、
読み出しアドレスに対応するメモリ領域の前記フラグ情報が有効を示す場合には、前記現用系の制御装置の前記メモリからデータを読み出して、前記現用系の制御装置の前記ＣＰＵに供給するステップと、
一方、前記フラグ情報が無効を示す場合には、前記共有記録装置からデータを読み出し、前記共有記録装置から読み出したデータを、前記現用系の制御装置の前記ＣＰＵに転送するとともに、前記現用系の制御装置の前記メモリに書き込み、前記フラグ情報を有効とする、制御を行うステップと、
を含む、ことを特徴とする請求項１３又は１４記載のデータ二重化方法。
【請求項１６】
前記現用系の制御装置から、前記予備系の制御装置へ系切替を通知するための通信線を設けておき、
前記予備系の制御装置の予備系から現用系への系切替に際して、予備系から現用系に切り替わった前記制御装置の前記メモリ制御部は、
自装置のＣＰＵからのデータのアクセス要求を受け付けた場合、アクセスアドレスに対応するメモリ領域のフラグ情報が有効であるか否か判定するステップと、
前記判定の結果、前記フラグ情報が無効の場合に、
前記アクセスアドレスに対応するデータを前記共有記録装置から読み出すステップと、
前記アクセスがデータ書き込みのときには、前記共有記録装置から読み出したデータと、前記ＣＰＵからの書き込みデータとを併合し、併合したデータを、前記メモリと前記共有記録装置とに書き込むステップと、
前記アクセスがデータ読み出しのときには、前記共有記録装置から読み出しデータを、前記ＣＰＵに供給するとともに、前記メモリへ書き込んで、前記フラグ情報を有効とするステップと、
を有し、
一方、前記判定の結果、前記フラグ情報が有効の場合、
前記アクセスがデータ書き込みのときには、前記メモリ及び前記共有記録装置にデータを書き込むステップと、
前記アクセスがデータ読み出しのときには、前記メモリからデータを読み出して前記ＣＰＵに供給する、制御を行うステップと、
を有する、ことを特徴とする請求項１３又は１４記載のデータ二重化方法。
【請求項１７】
前記メモリ制御部は、前記共有記録装置からデータを読み出すにあたり、
読み出し対象のメモリ領域に対応するデータを前記共有記録装置から読み出すとともに、他のメモリ領域に対応するデータを前記共有記録装置から先読みするステップを含む、ことを特徴とする請求項１３又は１４記載のデータ二重化方法。
【請求項１８】
前記メモリ制御部は、前記共有記録装置との間で、入力及び／又は出力を行うデータを一時的に蓄積するためのデータバッファを少なくとも１つ設け、
前記現用系の制御装置に障害が発生した場合、前記現用系の制御装置のメモリ制御部は、前記データバッファの状態を監視して、前記データバッファの処理が完了した時点で、前記通信線を介して、切り替え情報を、現用系の制御装置に伝達し、現用系と予備系の切替が行われ、それまで予備系であった制御装置は、現用系に切り替えられて運用が開始される、ことを特徴とする請求項１６記載のデータ二重化方法。
【請求項１９】
前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからのデータ読み出し要求のアドレスが、前記フラグ情報が無効のメモリ領域に該当した際、前記共有記録装置からのデータ読み出しが完了した後に、前記アドレスを増加させ、増加させた前記アドレスが、前記メモリ制御部の先読み範囲内であるか否か判定するステップを有し、
増加させた前記アドレスが、前記メモリ制御部の先読み範囲内である場合に、前記現用系の制御装置の前記ＣＰＵからのアクセス要求が、先読み範囲以外の領域へ発生しているか否か判定するステップを有し、
増加させた前記アドレスが前記メモリ制御部の先読み範囲内であり、且つ、前記ＣＰＵからのアクセス要求が、先読み範囲以外の領域へ発生していない場合には、前記共有記録装置からデータの先読みを実行する、ことを特徴とする請求項１７記載のデータ二重化方法。
【請求項２０】
前記メモリ制御部は、前記アドレスを増加させた後、前記現用系の制御装置の前記ＣＰＵからのアクセス要求が、前記先読み範囲以外のメモリ領域に対して発生した場合、前記現用系の制御装置の前記ＣＰＵからのアクセス要求を優先させる制御を行う、ことを特徴とする請求項１９記載のデータ二重化方法。
【請求項２１】
前記フラグ情報は、ビット情報よりなる、ことを特徴とする請求項１３乃至１６のいずれか一に記載のデータ二重化方法。
【請求項２２】
前記制御装置の前記メモリは、メインメモリである、ことを特徴とする請求項１３乃至１６のいずれか一に記載のデータ二重化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現用系と予備系を有するデータの二重化装置及び方法に関する。
【背景技術】
【０００２】
情報通信システム等において、信頼性が要求されるシステムでは、障害発生時、システムの停止を回避する必要性があることから、現用系／予備系の冗長構成をとり、現用系に障害が発生した時、予備系への切替が行われる。予備系から現用系に切り替わった際に、例えばデータの整合性を保ち信頼性を向上した運用を実現するため、従来より、各種手法が用いられている。
【０００３】
現用系のＣＰＵ（Central Processing Unit；中央処理装置）上のファイルメモリの内容を予備系ＣＰＵにコピーしている途中で現用系ファイルメモリに故障が発生したとき、主メモリについて既に二重化済みの予備系ＣＰＵを現用系に切り替えて再開し、その後、予備系の主メモリからファイルメモリにファイルバックアップをとり、予備系ＣＰＵのファイルメモリだけは片肺運転状態でサービスを続行するようにした方法が知られている（例えば後記特許文献１参照）。
【０００４】
また、現用系処理装置が共有データ書き込み中に障害となっても、待機系処理装置内に保持される共有データが破壊されることなく、待機系処理装置の現用系処理装置に切り替える装置及び方法も知られている（例えば後記特許文献２参照）。この装置・方法によれば、現用系処理装置から待機系処理装置の記憶装置に書き込まれる共有データは、待機系処理装置のバッファに一旦蓄積され、共有データがバッファに正常に書き込まれたときのみ、バッファ内の共有データが待機系処理装置の記憶装置に転送されて書き込まれ、現用系処理装置が共有データ書き込み中に障害となっても、系切り替え前の状態を完全に引き継ぐことができるようにしている。
【０００５】
上記した従来の手法（後記特許文献１、２に記載された手法）は、現用系／予備系上に存在する記憶装置に、常に、最新データを二重化するというものである。これらの構成の場合、メモリコントローラから、一旦、汎用バスを介してメモリへ書き込むものと、共有バスを経由して、書き込むものがある。しかしながら、かかる構成においては、現用系と予備系の２つの制御装置間におけるデータ伝送は、ノイズ等の対策により、ある程度低い周波数で行わなければならず、この結果、データ転送処理速度が、低下し、システム処理能力も低下することになる。
【０００６】
また、無中断運転を補償するための二重化構成をとる交換システムの制御系に関して、現用系と、予備系と、現用系と予備系との間で共有が必要なデータを記憶する領域を有する外部記憶装置と、外部記憶装置の接続する系を切り替える切替スイッチを備え、現用系と予備系間の運転情報の転送を二重化系間で共通の外部記憶装置に切替により行う方式も知られている（例えば後記特許文献３参照）。
【０００７】
さらに共用メモリを備えた二重化システムにおいて、共用メモリ内に主系システムの状態情報領域と従系システムの状態情報領域を備え、主系システムが定期的に共用メモリ内の主系システムの状態情報領域に定期的に更新されるデータを書き込み、従系システムが、定期的に共用メモリ内の主系システムの状態情報領域を読み出し、該データ値の更新状況を検査し、主系システムの正常性を判定するようにした共用メモリ二重化システムも知られている（例えば後記特許文献４参照）。
【０００８】
これらのシステム（後記特許文献３、４に記載された構成）は、系の切り替え発生時に、ソフトウェア制御にて、データを復元するものであり、特別なソフトウェア制御が必要とされ、さらに、系切り替えの発生から、データ復元まで時間を要する為、その間、システム停止する可能性もある。
【０００９】
さらに、共有の記憶装置を有する二重化系切替装置として、運用系、待機系のそれぞれが、ＣＰＵ、共用メモリ、アービタ回路を有し、運用系の障害発生時、バスを切断することなく、運用系から待機系に切り替える系切替手段を備え、バス通信を停止することなく、処理中のデータの紛失量を抑えた系切替を行う装置及び方法も知られている（例えば後記特許文献５参照）。さらに、運用系サーバと待機系サーバの間に共有ディスクを備え、各サーバは、当該サーバが運用系か待機系か識別するための運用モード情報を管理する運用モード管理部と、自己の障害発生時には、他のサーバ及びクライアントに障害発生を通知する構成制御管理部を備え、運用系サーバに障害が発生した場合の待機系サーバへの引き継ぎが迅速かつ円滑に行われるシステムも知られている（例えば後記特許文献６参照）。
【００１０】
【特許文献１】特開平１１−２４９９２３号公報（第３頁、第１図）
【特許文献２】特開平０７−２８７６９４号公報（第３頁、第１図）。
【特許文献３】特開平０５−２４４２６０号公報（第３頁、第１図）、
【特許文献４】特開昭６２−２６３５５４（第３頁、第１図）。
【特許文献５】特開２００２−６３０４７号公報（第３、４頁、第１図）
【特許文献６】特開２００３−２２２５９号公報（第３−５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記したように、従来の二重化システムにおいては、現用系と予備系の２つの制御装置間におけるデータ伝送は、ノイズ等を考慮して、最高伝送速度で行うことは回避され、比較的低速で行われることから、データ転送の処理性能が低下し、システム性能も低下してしまう、という問題点を有している。
【００１２】
また、系の切り替え発生時に、ソフトウェア制御にて、データを復元する構成においては、専用のソフトウェア制御が必要とされ、コスト高ともなる。
【００１３】
また、ソフトウェア制御によるデータ復元処理においては、系の切り替えの発生時点から、データの復元までに、時間を要する。このため、その間、システムが停止する可能性もある、という問題点を有している。
【００１４】
したがって、本発明の目的は、システムの処理性能の低下を回避し、高速化を図るとともに信頼性を向上する二重化装置と方法を提供することにある。
【００１５】
本発明の他の目的は、データバックアップ等の特別なソフトウェア処理を必要とせずに系の切り替えを可能とし、コストの低減を図りながら、系切替の高速化、高信頼性を図る二重化装置と方法を提供することにある。
【課題を解決するための手段】
【００１６】
前記目的を達成する本発明は、その概略を述べれば、現用系と予備系を具備してなる二重化システム装置において、現用系と予備系に共有の記録装置を設け、各系内のメモリ制御部内に判別フラグを設け、系の切り替え時以外は、高速なメインメモリへのアクセスを可能とし、データ転送処理の高速化を図っている。本発明の一のアスペクトに係る装置は、一方が現用系のとき他方は予備系とされ、それぞれが、現用系から予備系、予備系から現用系に、系の切替が自在とされてなる２つの制御装置と、前記２つの制御装置で共用される共有記録装置と、を少なくとも含み、前記２つの制御装置のそれぞれが、ＣＰＵ（中央処理装置）と、メモリと、データの書き込み及び読み出しを制御するメモリ制御部と、を有し、前記メモリ制御部は、前記メモリに関して予め定められたメモリ領域毎にデータの有効／無効を示すフラグ情報を有し、前記現用系の制御装置の前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからの書き込みデータを、前記フラグ情報に基づき、前記現用系の制御装置内の前記メモリと、前記共有記録装置とに記憶保持し、前記現用系の制御装置の前記ＣＰＵからのデータ読み出し要求に対して、前記フラグ情報に基づき、前記現用系の制御装置内のメモリ、又は前記共有記録装置からデータを読み出して、前記現用系の制御装置の前記ＣＰＵに供給する手段を備えている。
【００１７】
本発明に係る装置において、前記現用系の制御装置の前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからのデータの書き込み要求を受けた際に、書き込みアドレスに対応するメモリ領域の前記フラグ情報が有効を示す場合には、前記書き込みデータを、前記現用系の制御装置の前記メモリと、前記共有記録装置とに書き込み、一方、前記フラグ情報が無効を示す場合には、前記書き込みアドレスに対応して前記共有記録装置から読み出されたデータと、前記ＣＰＵからの前記書き込みデータとを併合してなるデータを、最新データとして、前記現用系の制御装置の前記メモリと、前記共有記録装置とに書き込み、前記フラグ情報を有効とする、制御を行う構成としてもよい。
【００１８】
また、本発明に係る装置において、前記現用系の制御装置の前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからのデータの読み出し要求を受けた際に、読み出しアドレスに対応するメモリ領域の前記フラグ情報が有効を示す場合には、前記現用系の制御装置の前記メモリからデータを読み出して、前記現用系の制御装置の前記ＣＰＵに転送し、一方、前記フラグ情報が無効を示す場合には、前記共有記録装置からデータを読み出し、前記共有記録装置から読み出したデータを、前記現用系の制御装置の前記ＣＰＵに転送するとともに、前記現用系の制御装置の前記メモリに書き込み、前記フラグ情報を有効とする、制御を行う構成としてもよい。
【００１９】
本発明に係る装置によれば、好ましくは、前記現用系の制御装置から、前記予備系の制御装置へ系切替を通知するための通信線を有する。前記予備系の制御装置の予備系から現用系への系切替に際して、予備系から現用系に切り替わった前記制御装置の前記メモリ制御部は、自装置のＣＰＵからのデータ処理アクセスを受け付けた場合、前記アクセスのアドレスに対応するメモリ領域のフラグ情報が有効であるか否か判定する。この判定の結果、前記フラグ情報が無効の場合に、前記アクセスアドレスに対応して前記共有記録装置からデータを読み出し、前記アクセスがデータ書き込みのときには、前記共有記録装置から読み出したデータと、前記ＣＰＵからの書き込みデータとを併合し、併合したデータを、前記メモリと前記共有記録装置とに書き込み、前記アクセスがデータ読み出しのときには、前記メモリへ前記読み出しデータを書き込み、前記メモリ領域に対応するフラグ情報を有効とし、一方、前記判定の結果、前記フラグ情報が有効の場合、前記アクセスがデータ書き込みのときには、前記メモリ及び前記共有記録装置にデータを書き込み、前記アクセスがデータ読み出しのときには、前記メモリからデータを読み出す、制御を行う構成としてもよい。
【００２０】
本発明に係る装置において、前記メモリ制御部は、前記フラグ情報が有効、無効の判別は、ハードウェア回路で行われ、高速化を実現している。
【００２１】
本発明において、前記メモリ制御部は、前記共有記録装置との間でのデータの入出力を行うための少なくとも１つのデータバッファを備え、前記ＣＰＵから転送されたデータを、前記データバッファに一旦蓄積した後、前記共有記録装置に転送される構成としてもよい。
【００２２】
本発明において、前記メモリ制御部は、前記共有記録装置からデータを読み出すにあたり、前記メモリ領域に対応するデータを読み出すとともに、他のメモリ領域に対応するデータを前記共有記録装置から先読みする構成としてもよい。
【００２３】
本発明の他のアスペクトに係る方法は、一方が現用系のとき他方は予備系とされ、それぞれが、現用系から予備系、予備系から現用系に、系の切替が自在とされてなる２つの制御装置と、前記２つの制御装置で共用される共有記録装置と、を少なくとも含み、前記２つの制御装置のそれぞれが、ＣＰＵと、メモリと、データの書き込み及び読み出しを制御するメモリ制御部と、を有し、 前記メモリ制御部内に、前記メモリに関して予め定められたメモリ領域毎にデータの有効／無効を示すフラグ情報を有する二重化装置による、データ二重化方法であって、
現用系の制御装置が運用中に、前記現用系の制御装置の前記メモリ制御部は、前記現用系の制御装置の前記ＣＰＵからの書き込みデータを、前記フラグ情報に基づき、前記現用系の制御装置内の前記メモリと、前記共有記録装置とに記憶保持するステップと、
前記現用系の制御装置の前記ＣＰＵからのデータ読み出し要求に対して、前記フラグ情報に基づき、前記現用系の制御装置内のメモリ、又は前記共有記録装置からデータを読み出して、前記現用系の制御装置の前記ＣＰＵに供給するステップと、を含む。
【００２４】
本発明に係る方法において、前記現用系の制御装置の前記メモリ制御部が、前記現用系の制御装置の前記ＣＰＵからのデータの書き込み要求を受けた際に、
書き込みアドレスに対応するメモリ領域の前記フラグ情報が有効を示す場合には、前記書き込みデータを、前記現用系の制御装置の前記メモリと、前記共有記録装置とに書き込むステップと、
一方、前記フラグ情報が無効を示す場合には、前記書き込みアドレスに対応して前記共有記録装置から読み出されたデータと、前記ＣＰＵからの前記書き込みデータとを併合してなるデータを、最新データとして、前記現用系の制御装置の前記メモリと、前記共有記録装置とに書き込み、前記フラグ情報を有効とする、制御を行う、ステップと、を含む構成としてもよい。
【００２５】
本発明に係る方法において、前記現用系の制御装置の前記メモリ制御部が、前記現用系の制御装置の前記ＣＰＵからのデータの読み出し要求を受けた際に、
読み出しアドレスに対応するメモリ領域の前記フラグ情報が有効を示す場合には、前記現用系の制御装置の前記メモリからデータを読み出して、前記現用系の制御装置の前記ＣＰＵに供給するステップと、
一方、前記フラグ情報が無効を示す場合には、前記共有記録装置からデータを読み出し、前記共有記録装置から読み出したデータを、前記現用系の制御装置の前記ＣＰＵに転送するとともに、前記現用系の制御装置の前記メモリに書き込み、前記フラグ情報を有効とする、制御を行うステップと、を含む構成としてもよい。
【発明の効果】
【００２６】
本発明によれば、現用系と予備系を具備してなる二重化システム装置において、現用系と予備系に共有の記録装置を設け、各系内のメモリ制御部内に判別ビットを設け、系の切り替え時以外は、高速なメインメモリへのアクセスを可能とし、データ転送処理の高速化を図っている。
【００２７】
また、本発明によれば、系の切替えのために、データバックアップ等の特別なソフトウェア処理を必要とせず、このため、コストの低減を図るとともに、系切替の高速化を図ることができる。
【発明を実施するための最良の形態】
【００２８】
本発明をより詳細に説述するために、添付図面を参照して以下に説明する。図１に示すように、本発明の一実施の形態に係る二重化装置は、現用系の制御装置（１ａ）と、予備系の制御装置（１ｂ）とを備え、さらに、現用系の制御装置（１ａ）と予備系の制御装置（１ｂ）とに、共有バス（１９）を介して接続される、ディスク記録装置等よりなる共有記録装置（１７）を備えている。予備系の制御装置（１ｂ）は、例えば現用系の制御装置（１ａ）に障害発生時に、現用系に系の切替えが行われて運用される。
【００２９】
現用系の制御装置（１ａ）は、ＣＰＵ（１１）と、メモリ制御部（１２）と、メインメモリ（１３）を備えている。予備系の制御装置（１ｂ）も、現用系の制御装置（１ａ）と同様に、ＣＰＵ（１４）と、メモリ制御部（１５）と、メインメモリ（１６）を備えている。現用系の制御装置（１ａ）と予備系の制御装置（１ｂ）は同一の構成要素を有する。
【００３０】
本発明の一実施形態において、現用系の制御装置（１ａ）が運用中に、ＣＰＵ（１１）が使用する最新データは、常に、メインメモリ（１３）と共有記録装置（１７）とに保持される。
【００３１】
現用系の制御装置（１ａ）のメモリ制御部（１２）と、予備系の制御装置（１ｂ）のメモリ制御部（１５）間には、通信バス（１８）が設けられている。現用系の制御装置（１ａ）のメモリ制御部（１２）と、予備系の制御装置（１ｂ）のメモリ制御部（１５）は、共有バス（１９）を介して共有記録装置（１７）に接続されている。
【００３２】
図２は、制御装置（１ａ）のメモリ制御部（１２）（及び制御装置（１ｂ）のメモリ制御部（１５））の構成を示す図である。図２に示すように、制御装置（１ａ）のメモリ制御部（１２）は、メインメモリ（１３）に保持されるデータが有効（最新）であるか否かを判別するためのフラグ情報をなすデータ判別ビット（２１）を有している。メモリ制御部（１２）は、データ判別ビット（２１）の値（有効／無効）に従い、メインメモリ（１３）又は共有記録装置（１７）から最新データを読み取る。制御装置（１ｂ）のメモリ制御部（１５）は、メインメモリ（１６）に保持されるデータが有効（最新）であるか否かを判別するデータ判別ビット（２７）を有している。メモリ制御部（１５）は、データ判別ビット（２７）の値（有効／無効）に従い、メインメモリ（１６）又は共有記録装置（１７）から最新データを読み取る。データ判別ビット（２１／２７）は、メインメモリ（１３／１６）の所定のサイズのメモリ領域（エリア）に対して１ビット割り当てられる。
【００３３】
現用系の制御装置（１ａ）の障害等により、系の切り替えが行われ、予備系の制御装置（１ｂ）の運用が開始された際、それまで予備系であった制御装置（１ｂ）において、最新データは、共有記録装置（１７）にのみ存在する。このため、制御装置（１ｂ）のメモリ制御部（１５）のデータ判別ビット（２７）は全て無効状態となっている。
【００３４】
制御装置（１ｂ）のＣＰＵ（１４）からデータ要求があった場合、メモリ制御部（１５）は、データ判別ビット（２７）の内容に従い、最新データを、共有記録装置（１７）より読み出す。
【００３５】
共有記録装置（１７）から読み出されたデータは、ＣＰＵ（１４）に転送されると共に、メインメモリ（１６）に保存され、対応するデータ判別ビット（２７）の更新（有効（バリッド）へ更新）が行われる。
【００３６】
かかる制御により、予備系から現用系に切り替わった制御装置（１ｂ）において、次回からの該当メモリ領域へのアクセスは、メモリ制御部（１５）により、転送速度が、共有記録装置（１７）よりも高速なメインメモリ（１６）が選択され、データ転送処理の高速化を図ることができる。
【実施例】
【００３７】
本発明についてさらに詳細に説明すべく実施例に即して説明する。図１は、本発明の一実施例の構成を示す図である。図１を参照すると、本発明の一実施例において、現用系の制御装置１ａは、データ転送処理を実行するＣＰＵ１１と、データを記憶する高速なメインメモリ１３と、メインメモリ１３を制御するメモリ制御部１２と、を有している。同様に、予備系の制御装置１ｂは、ＣＰＵ１４と、メインメモリ１６、メモリ制御部１５とを有している。現用系の制御装置１ａと、予備系の制御装置１ｂには共有バス１９を介して、共有記録装置１７が接続されている。本実施例において、共有バス１９は、高速、且つ、耐ノイズ性の点から、例えばＡＴＡ１３３、Ｓｅｒｉａｌ−ＡＴＡ、ＩＥＥＥ１３９４、ＵＳＢ２．０等の汎用バスが好ましくは用いられる。共有記録装置１７は、共有バス１９に接続可能な記録装置である。また、制御装置１ａと制御装置１ｂは、故障発生時等に、系の切り替えに必要な情報を伝達するための通信バス１８を有している。
【００３８】
現用系の制御装置１ａが運用中は、最新データ（あるいは最も近くに更新されたデータ）は、メインメモリ１３に書き込まれると同時に、共有バス１９を経由して、共有記録装置１７に記録される。これにより、データの二重化が実現される。
【００３９】
図２に示すように、現用系の制御装置１ａのメモリ制御部１２は、データバッファ２６を有しており、アクセス速度が、メインメモリ１３に対して遅い共有記録装置１７への書き込み時間の差による、処理速度の低下を回避する。制御装置１ａのＣＰＵ１１からの書き込みデータは、メモリ制御部１２に転送され、メモリ制御部１２では、データバッファ２６を用いて例えばダブルバッファ処理、ＤＭＡ（Direct Memory Access）等(ブロック転送)により、共有記録装置１７への書き込みを行うことで、Ｉ／Ｏ時間の短縮を図っている。
【００４０】
また、図２のように、メモリ制御部１２は、データ判別ビット２１を有しており、最新データが、メインメモリ１３に存在するか、あるいは、共有記録装置１７に存在するかを判別することができる。データ判別ビット２１は、任意のサイズに設定可能な、メモリ領域（エリア）に対して、１ビットが割り当てられる。メモリ領域のサイズは、例えばｍＫバイト単位（ｍは任意の整数）とされ、少なくともデータの書き込み（更新）が行われるメインメモリ１３（１６）のメモリ空間をｍＫバイトで除した分の個数のデータ判別ビット２１（２７）がメモリ領域に対応して設けられる。メモリ制御部１２（１５）は、ＣＰＵ１１（１４）からのアクセスアドレスより、対応するデータ判別ビット２１（２７）を参照することができる。図２に示す例では、メインメモリ（図１の１３（１６））は、メモリ領域は、エリアａからエリアｎよりなり、各エリアに対応してデータ判別ビット２２〜２５（２８〜３１）が設けられている。データ判別ビット２１（２７）は、レジスタ、メモリ等の任意の記憶装置で構成してよい。
【００４１】
現用系の制御装置１ａにおいて、ＣＰＵ１１からデータの読み出し要求が発生した際、メモリ制御部１２は、アクセスアドレスに対応するメモリ領域のデータ判別ビット２１に従い、メインメモリ１３、又は、共有記録装置１７からデータを読み出す。
【００４２】
データ判別ビット２１が無効を示し（最新のデータがメインメモリ１３に存在しない）、最新のデータが共有記録装置１７に存在しており、メモリ制御部１２が、共有記録装置１７からデータを読み出した場合には、メモリ制御部１２は、該データをＣＰＵ１１に転送するとともに、メインメモリ１３への書き込みを行い、データ判別ビット２１を有効とする。これ以降、ＣＰＵ１１から、該当メモリ領域へのアクセスがあった際には、データ判別ビット２１が有効に設定されているため、メインメモリ１３からデータの読み出しが行われ、処理が高速化される。
【００４３】
図３は、図１に示した本実施例において、ＣＰＵからのデータ読み出し時におけるデータの流れを説明するための模式図である。
【００４４】
図４は、図１に示した本実施例において、ＣＰＵからのデータ書き込み時におけるデータの流れを説明するための模式図である。
【００４５】
本実施例の動作について、図１、図２、図３、図４を参照して説明する。図５は、本実施例の動作を説明するためのフローチャートである。
【００４６】
信頼性を必要とするシステムにおいては、図１に示すように、現用系／予備系の二重化構成をとり、現用系が故障した際には系の切り替えが行われ、システムが停止することを回避している。
【００４７】
通常運用時の場合、現用系の制御装置１ａが運用状態とされており、ＣＰＵ１１からのデータの読み出しは、メインメモリ１３より、図３のアクセスａのルート（経路）で実行される。また、通常運用時のＣＰＵ１１からのデータの書き込みは、図４のアクセスｃのルートにて、メインメモリ１３と共有記録装置１７に対して同時に実行される。
【００４８】
かかる構成により、現用系のメインメモリ１３と、共有記録装置１７とには、常に、最新データが保持されることになる。
【００４９】
メインメモリ１３と比べて、共有記録装置１７のアクセス速度は比較的低速とされるが、連続ライト時のシステム処理速度の低下を回避するために、メモリ制御部１２内には、データバッファ２６（図２参照）が設けられている。
【００５０】
連続ライトの時は、一時的に、このデータバッファ２６にデータが保存され、メインメモリ１３側へのアクセスに対して、影響を与えない構成とされる。ただし、メモリ制御部１２のデータバッファ２６が、全てフル状態となった場合においては、次のＣＰＵ１１からのライト要求を受け付けず、待ち状態（ＣＰＵ１１のライト要求はウエイトされる）として処理する。データバッファ２６に空きが生じた場合、ＣＰＵ１１側にレディ等を通知し、ＣＰＵ１１からのライトデータは、メインメモリ１３及びデータバッファ２６に書き込まれる。
【００５１】
予備系の制御装置１ｂのメモリ制御部１５は、自装置の現用系／予備系の状態を判別し、共有バス１９の出力を停止し、バスの競合を回避する。
【００５２】
ここで、現用系の制御装置１ａに故障等が発生した場合、現用系の制御装置１ａのメモリ制御部１２は、データバッファ２６の状態を監視して、データバッファ２６の処理完了を判断した時点で、通信バス１８を介して、切り替え情報を伝達する。この処理により、現用系と予備系の切り替えが実行され、それまで予備系であった制御装置１ｂは、現用系に切り替えられて、運用が開始される。この時、現用系から予備系に切り替えられた制御装置１ａのメモリ制御部１２は、共有バス１９への出力を停止し（バスドライバの出力をハイインピーダンス状態とする）、現用系となったメモリ制御部１５が、共有バス１９の占有権を確保する。
【００５３】
系が切り替えられ、現用系となった制御装置１ｂにおいて、ＣＰＵ１４からデータアクセス要求が発生した場合、メモリ制御部１５は、データ判別ビット２７（図２参照）に従って、データアクセスを実行する。データ判別ビット２７は、任意の大きさに区切られたメモリ領域に対して各々割り当てられている。
【００５４】
次に、図５を参照して、本実施例における、系切り替え後における動作について説明する。
【００５５】
現用系となった制御装置１ｂのメモリ制御部１５は、ＣＰＵ１４からのデータ転送処理アクセスを受け付けた際（ステップ５０）、該アクセスのアドレスが含まれるメモリ領域（エリア）のデータ判別ビット２７が有効であるか無効であるかを判別する（ステップ５１）。
【００５６】
該メモリ領域のデータ判別ビット２７が無効である場合（ステップ５１のＮＯ分岐）、メモリ制御部１５は、対応するメモリ領域の最新データは、共有記録装置１７にあるものと判断し、共有記録装置１７から、データを読み出す（ステップ５５）。ステップ５１で、系の切り替え実行後、初めてアクセスする領域の場合、メモリ領域のデータ判別ビット２７が無効となる。
【００５７】
そして、該データアクセスが、ライトアクセスの時（ステップ５６のＹＥＳ分岐）、図４のアクセスｄのルートに従って、メモリ制御部１５内で、ＣＰＵ１４からの更新すべきアドレスのデータのみの更新（データマージ）が行われる。すなわち、データ判別ビット２７に対応するメモリ領域内において、更新すべきアドレスのデータのみ更新され、他のアドレスのデータはそのまま保持される。
【００５８】
その後、メインメモリ１６、及び、共有記録装置１７に、データを書き込み、最新データの二重化を実行する（ステップ５７）。データの書き込みが完了した後、該エリアのデータ判別ビット２７を有効に更新する（ステップ５９）。
【００５９】
また、該エリアのデータ判別ビット２７が無効であり、該アクセスがリードアクセスの場合（ステップ５６）、図３のアクセスｂのルートに従って、データ判別ビット２７に対応したメモリ領域のデータを、共有記録装置１７から読み出し、ＣＰＵ１４からの要求データをＣＰＵ１４へ転送すると共に、読み出したエリアのデータはメインメモリ１６に書き込みを実行する（ステップ５８）。その後、該当エリアの内部判別ビット２７を有効に更新する（ステップ５９）。
【００６０】
次に、該当エリアのデータ判別ビット２７が有効であり（ステップ５１のＹＥＳ分岐）、該当アクセスがライトアクセスである場合（ステップ５２のＹＥＳ分岐）（一度アクセスが実行され、データ判別ビット２７が更新されたエリアの場合）は、メモリ制御部１５は、最新データがメインメモリ１６、及び、共有記録装置１７に存在しているものと判断し、図４のアクセスｃのルートに従って、メインメモリ１６、及び、共有記録装置１７へデータを書き込み、最新データの二重化を実行する（ステップ５３）。
【００６１】
また、該当エリアのデータ判別ビット２７が有効であり（ステップ５１のＹＥＳ分岐）、該当アクセスがリードアクセスである場合（ステップ５２のＮＯ分岐）（一度アクセスが実行され、データ判別ビット２７が更新されたエリアの場合）、メモリ制御部１５は、最新データがメインメモリ１６にあるものと判断し、図３のアクセスａのルートに従って、メインメモリ１６からデータを読み出し、ＣＰＵ１４へ転送する（ステップ５４）。
【００６２】
上記の通り、ＣＰＵ１４からのデータ転送処理アクセスが、無効のメモリ領域に対して発生した際に、最新データを、メインメモリ１６への書き込みを実行し、データ判別ビット２７を更新する。それ以降に、該当エリアへのアクセスが発生した際には、データ判別ビット２７は有効に更新されているため、メインメモリ１６へのアクセスとなり、データ転送処理が高速化される。
【００６３】
本実施例によれば、予備系の制御装置として起動された場合、予備系の制御装置のメモリ制御部のデータ判別ビットは、全て無効とされる。これによって、運用中に、系の切り替えが発生した際にも、特別なソフトウェア制御を必要とせずに、最新データの二重化を実現することができる。
【００６４】
また、本実施例によれば、故障中の系（例えば元の現用系）が、装置交換等によって復旧した際にも、特別なソフトウェア制御は必要とせずに、新たに二重化システムを構築することができる。
【００６５】
次に、上記した本実施例の作用効果について説明する。
【００６６】
本実施例によれば、データアクセスのほとんどをメインメモリにて行うことが可能であるため、データ転送処理の高速化を図ることができる。本実施例によれば、現用系／予備系の切り替え時においても、一度アクセスしたメモリ領域については、次回から、メインメモリへのアクセスとなるため、運用時のほとんどがメインメモリへのアクセスとなりデータ処理が高速化される。
【００６７】
本実施例によれば、メモリ制御部に、データ判別ビットを設け、最新データが存在するデバイス認識をハードウェアで制御可能としている。このため、現用系／予備系の切り替え時に、特別なソフトウェア制御を必要とせず、実現を容易化し、コストを低減可能としている。
【００６８】
図６は、本発明の第２の実施例の動作を説明するためのフローチャートである。図６を参照すると、本実施例は、図５を参照して説明した前記実施例の処理動作に対して、ステップ６０とステップ６４（ステップ６１〜６３よりなる）が追加されている。なお、図６において、図５の同一の処理ステップには、図５と同一の参照符号（ステップ番号）が付されており、以下では、重複を回避するため、前記実施例と同一ステップの説明は省略する。
【００６９】
現用系／予備系の切り替えが発生した直後においては、予備系から現用系に切り替わった制御装置１ｂのＣＰＵ１４からアクセス要求が発生した際に、メモリ制御部１５のデータ判別ビット２７が無効である状態が多々存在し、このため、共有記録装置１７へのアクセス頻度が多くなる場合がある。この様な状況下では、データアクセスに時間を要し、システムのパフォーマンスが低下する可能性がある。
【００７０】
本実施例では、この問題を解決する手段として、メモリ制御部１５（１２）に、データ先読み機能を備える。ＣＰＵ１４からのデータ要求のアクセスアドレスが、無効エリアに該当した際、データ要求サイクルが完了した後に（ステップ５９）、先の要求サイクルアドレスのインクリメントを実行する（ステップ６１）。なお、共有記録装置１７からのデータ読み込み後のステップ６０において、先読み処理中の場合、読み出しアクセスであることから、ステップ５６のライトアクセスであるか否かの判別をスキップして、該当エリアへのメインメモリの書き込み処理を行う。
【００７１】
インクリメントされたアドレスが、メモリ制御部１５の先読み範囲内（先読み範囲は任意に設定可能）であり（ステップ６２）、ＣＰＵ１４からのアクセス要求が、先読み範囲以外のエリアへ発生していない場合（ステップ６３）、複数のエリアを連続して、共有記録装置１７から、データの先読みを実行する（ステップ５５）。
【００７２】
また、アドレスのインクリメントを実行した後（ステップ６１）、ＣＰＵ１４からのアクセス要求が先読み範囲以外のエリアへ発生した場合（ステップ６２）、ＣＰＵ１４からのアクセス要求を優先する。
【００７３】
ＣＰＵ１４から要求されるアクセスは、よく知られたプログラムの局所性等により、連続するアドレスとなっていることが多い。本実施例では、メモリ制御部１５が、予め共有記録装置１７から、先読みすることによって、データアクセスの高速化を図ることができる。
【００７４】
また、ＣＰＵ１４から先読みしたデータへのアクセスが直後に実行されない場合においても、先読みデータは、そのままメインメモリ１６に書き込まれ、該当エリアのデータ判別ビット２７を有効に更新する。
【００７５】
次回、ＣＰＵ１４からのアクセスが該当エリアである場合、メインメモリ１６へのアクセスが可能となる。このため、システムの高速化を図ることができる。
【００７６】
なお、図６に示したフローチャートにおいて、制御装置１ｂのＣＰＵ１４、メモリ制御部１５、メインメモリ１６、データ判別ビット２７、データバッファ３２は、現用系となった制御装置が制御装置１ａの場合、ＣＰＵ１１、メモリ制御部１２、メインメモリ１３、データ判別ビット２１、データバッファ２６となる。
【００７７】
上記実施例において、制御装置は、サーバであってもよいし、あるいは交換システムの制御系の装置であってもよい。以上本発明を上記実施例に即して説明したが、本発明は、上記実施例にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施例の構成を示す図である。
【図２】本発明の一実施例のメモリ制御部の構成を示す図である。
【図３】本発明の一実施例における読み出し動作を説明するための図である。
【図４】本発明の一実施例における書き込み動作を説明するための図である。
【図５】本発明の一実施例の処理手順を示す流れ図である。
【図６】本発明の他の実施例の処理手順を示す流れ図である。
【符号の説明】
【００７９】
１ａ  現用系制御装置
１ｂ  予備系制御装置
１１、１４  ＣＰＵ
１２、１５  メモリ制御部（コントローラ）
１３、１６  メインメモリ
１７  共有記録装置
１８  通信バス
１９  共有バス
２１、２７  データ判別ビット
２２、２８  エリアａのデータ判別ビット
２３、２９  エリアｂのデータ判別ビット
２４、３０  エリアｃのデータ判別ビット
２５、３１  エリアｎのデータ判別ビット
２６、３２  データバッファ
５０〜６３  ステップ
【図１】
2005148910.tif 000003
【図２】
2005148910.tif 000004
【図３】
2005148910.tif 000005
【図４】
2005148910.tif 000006
【図５】
2005148910.tif 000007
【図６】
2005148910.tif 000008