(57)【特許請求の範囲】
【請求項１】
一対の記憶装置と、
前記一対の記憶装置の両方が利用可能な場合、上位装置による書き込み要求対象のデータを前記一対の記憶装置に二重化して書き込み、前記上位装置による読み出し要求対象のデータを前記一対の記憶装置のいずれかから読み出す正常状態で動作し、前記一対の記憶装置のいずれか一方が利用不可能な場合、利用可能な他方に対して前記書き込み要求対象のデータおよび前記読み出し要求対象のデータを入出力する縮退状態で動作するミラーリング制御部と、
前記一対の記憶装置に入出力される、前記上位装置による前記書き込み要求対象のデータおよび前記読み出し要求対象のデータを一時的に記憶し、かつ、書き戻し対象のデータの更新にともない、前記更新された書き戻し対象のデータを前記ミラーリング制御部を介して前記一対の記憶装置に書き込むキャッシュ部と、
前記一対の記憶装置のミラーリング構成を復旧する際に、既に前記キャッシュ部に記憶されている復旧データを除き前記縮退状態の記憶装置から読み出された復旧データを前記キャッシュ部に登録するミラーリング復旧部と、を備え、
前記キャッシュ部は、既に前記キャッシュ部に記憶されている複旧データおよび前記登録した復旧データを前記更新された書き戻し対象のデータとして前記キャッシュ部からミラーリング制御部を介して前記一対の記憶装置に二重化して書き戻す、ミラーリング復旧装置。
【請求項２】
前記一対の記憶装置から読み出されるデータに訂正可能エラーを検出して該データのエラーを訂正するエラー検出訂正部と、
前記一対の記憶装置のいずれかから読み出された正常なデータまたは読み出し後に前記エラー検出訂正部によりエラー訂正されたデータを前記キャッシュ部を介して前記一対の記憶装置に書き戻すパトロール命令を発行するパトロール命令発行部と、
をさらに備え、
前記ミラーリング復旧部は、前記パトロール命令発行部を用いて前記一対の記憶装置の二重化を復旧させることを特徴とする請求項１に記載のミラーリング復旧装置。
【請求項３】
前記ミラーリング復旧部は、前記パトロール命令発行部の前記パトロール間隔を制御することにより、前記一対の記憶装置の二重化の復旧速度を調整することを特徴とする請求項２に記載のミラーリング復旧装置。
【請求項４】
前記パトロール命令発行部は、前記一対の記憶装置のうち、ミラーリング復旧対象の一対の領域に対して対して前記パトロール命令を発行することを特徴とする請求項１から請求項３のいずれかに記載のミラーリング復旧装置。
【請求項５】
ミラーリング制御部が、一対の記憶装置の両方が利用可能な場合、上位装置による書き込み要求対象のデータを前記一対の記憶装置に二重化して書き込み、前記上位装置による読み出し要求対象のデータを前記一対の記憶装置のいずれかから読み出す正常状態で動作し、前記一対の記憶装置のいずれか一方が利用不可能な場合、利用可能な他方に対して前記書き込み要求対象のデータおよび前記読み出し要求対象のデータを入出力する縮退状態で動作し、
キャッシュ部が、前記一対の記憶装置に入出力される、前記上位装置による前記書き込み要求対象のデータおよび前記読み出し要求対象のデータを一時的に記憶し、かつ、書き戻し対象のデータの更新にともない、前記更新された書き戻し対象のデータを前記ミラーリング制御部を介して前記一対の記憶装置に書き込み、
ミラーリング復旧部が、前記一対の記憶装置のミラーリング構成を復旧する際に、既に前記キャッシュ部に記憶されている復旧データを除き前記縮退状態の記憶装置から読み出された復旧データを前記キャッシュ部に登録し、
前記キャッシュ部は、既に前記キャッシュ部に記憶されている複旧データおよび前記登録した復旧データを前記更新された書き戻し対象のデータとして前記キャッシュ部からミラーリング制御部を介して前記一対の記憶装置に二重化して書き戻す、ミラーリング復旧方法。
【請求項６】
エラー検出訂正部が、前記一対の記憶装置から読み出されるデータに訂正可能エラーを検出して該データのエラーを訂正し、
パトロール命令発行部が、前記一対の記憶装置のいずれかから読み出された正常なデータまたは読み出し後に前記エラー検出訂正部によりエラー訂正されたデータを前記キャッシュ部を介して前記一対の記憶装置に書き戻すパトロール命令を発行する、請求項５に記載のミラーリング復旧方法。
【請求項７】
前記ミラーリング復旧部は、前記パトロール命令発行部の前記パトロール間隔を制御することにより、前記一対の記憶装置の二重化の復旧速度を調整することを特徴とする請求項５または請求項６に記載のミラーリング復旧方法。
【請求項８】
前記パトロール命令発行部は、前記一対の記憶装置のうち、ミラーリング復旧対象の一対の領域に対して前記パトロール命令を発行することを特徴とする、請求項５から請求項７のいずれかに記載のミラーリング復旧方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化された記憶装置のミラーリング構成を復旧するミラーリング復旧装置およびミラーリング復旧方法に関する。
【背景技術】
【０００２】
記憶装置を二重化するミラーリング技術が知られている。このようなミラーリング技術を採用した情報処理装置は、データを二重化して記憶させる一対の記憶装置を有する。そして、このような情報処理装置は、２つの記憶装置が正常に動作する正常状態では、いずれかの記憶装置からデータを読み込み、両方の記憶装置にデータを書き込む。また、このような情報処理装置は、いずれかの記憶装置に障害が発生した場合、正常な記憶装置のみに対してデータの読み書きを行う縮退状態となる。そして、このような情報処理装置は、障害が発生した記憶装置の交換等により縮退状態から正常状態へと復旧する。このとき、このような情報処理装置は、正常な記憶装置のデータを、交換された記憶装置にコピーすることにより、一対の記憶装置のミラーリング構成を復旧する。このような情報処理装置において、ミラーリング復旧処理を行うミラーリング復旧処理装置の一例が、特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２４４２４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のような情報処理装置では、ミラーリングの復旧処理中、正常な記憶装置から交換された記憶装置へのデータコピーと、情報処理装置の通常運用による記憶装置へのアクセスとが競合しないようにする必要がある。そのため、このような情報処理装置は、ミラーリングの復旧処理中、記憶装置への他のアクセス命令を停止させる必要があった。このような他のアクセス命令停止は、ミラーリングの復旧処理中の情報処理装置の性能低下を招く。あるいは、復旧処理中の他のアクセス命令停止を行わない場合、このような情報処理装置は、復旧処理のデータコピー対象のデータと、通常運用によるアクセス対象のデータとが競合しないように制御する競合制御機能を設ける必要があった。
【０００５】
本発明は、上述の課題を解決するためになされたもので、ミラーリングの復旧処理中に他のアクセス命令を停止させることなく、復旧処理専用の競合制御機能を不要とするミラーリング復旧装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のミラーリング復旧装置は、一対の記憶装置と、前記一対の記憶装置の両方が利用可能な場合、上位装置による書き込み要求対象のデータを前記一対の記憶装置に二重化して書き込み、前記上位装置による読み出し要求対象のデータを前記一対の記憶装置のいずれかから読み出す正常状態で動作し、前記一対の記憶装置のいずれか一方が利用不可能な場合、利用可能な他方に対して前記書き込み要求対象のデータおよび前記読み出し要求対象のデータを入出力する縮退状態で動作するミラーリング制御部と、前記一対の記憶装置に入出力される、前記上位装置による前記書き込み要求対象のデータおよび前記読み出し要求対象のデータを一時的に記憶し、かつ、書き戻し対象のデータの更新にともない、前記更新された書き戻し対象のデータを前記ミラーリング制御部を介して前記一対の記憶装置に書き込むキャッシュ部と、前記一対の記憶装置のミラーリング構成を復旧する際に、既に前記キャッシュ部に記憶されている復旧データを除き前記縮退状態の記憶装置から読み出された復旧データを前記キャッシュ部に登録するミラーリング復旧部と、を備え、前記キャッシュ部は、既に前記キャッシュ部に記憶されている複旧データおよび前記登録した復旧データを前記更新された書き戻し対象のデータとして前記キャッシュ部からミラーリング制御部を介して前記一対の記憶装置に二重化して書き戻す。
【０００７】
また、本発明のミラーリング復旧方法は、ミラーリング制御部が、一対の記憶装置の両方が利用可能な場合、上位装置による書き込み要求対象のデータを前記一対の記憶装置に二重化して書き込み、前記上位装置による読み出し要求対象のデータを前記一対の記憶装置のいずれかから読み出す正常状態で動作し、前記一対の記憶装置のいずれか一方が利用不可能な場合、利用可能な他方に対して前記書き込み要求対象のデータおよび前記読み出し要求対象のデータを入出力する縮退状態で動作し、キャッシュ部が、前記一対の記憶装置に入出力される、前記上位装置による前記書き込み要求対象のデータおよび前記読み出し要求対象のデータを一時的に記憶し、かつ、書き戻し対象のデータの更新にともない、前記更新された書き戻し対象のデータを前記ミラーリング制御部を介して前記一対の記憶装置に書き込み、ミラーリング復旧部が、前記一対の記憶装置のミラーリング構成を復旧する際に、既に前記キャッシュ部に記憶されている復旧データを除き前記縮退状態の記憶装置から読み出された復旧データを前記キャッシュ部に登録し、前記キャッシュ部は、既に前記キャッシュ部に記憶されている複旧データおよび前記登録した復旧データを前記更新された書き戻し対象のデータとして前記キャッシュ部からミラーリング制御部を介して前記一対の記憶装置に二重化して書き戻す。
【発明の効果】
【０００８】
本発明は、ミラーリングの復旧処理中に他のアクセス命令を停止させることなく、復旧処理専用の競合制御機能を不要とするミラーリング復旧装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施の形態としてのミラーリング復旧装置の構成図である。
【図２】本発明の第１の実施の形態におけるミラーリング復旧方法を説明するフローチャートである。
【図３】本発明の第２の実施の形態としてのミラーリング復旧装置の構成図である。
【図４】本発明の第２の実施の形態におけるミラーリング復旧方法を説明するフローチャートである。
【図５】本発明の第３の実施の形態としてのミラーリング復旧装置の構成図である。
【発明を実施するための形態】
【００１０】
以下、本発明の各実施の形態について説明する。なお、本発明の各実施の形態では、本発明の一対の記憶装置として、主記憶装置（以下、メモリと記載する）を適用した例について説明する。
【００１１】
（第１の実施の形態）
まず、本発明の第１の実施の形態について、図面を参照して詳細に説明する。
【００１２】
本発明の第１の実施の形態としてのミラーリング復旧装置１の構成を図１に示す。図１において、ミラーリング復旧装置１は、メモリ１２ａおよび１２ｂと、ミラーリング制御部１３と、キャッシュ部１４と、ミラーリング復旧部１５と、を備えている。また、ミラーリング復旧装置１は、本発明における上位装置の一実施形態としてのＣＰＵ（Central Processing Unit）にバスを介して接続されている。このＣＰＵは、ミラーリング復旧装置１を含むコンピュータ装置に含まれるものであってもよい。
【００１３】
メモリ１２ａおよび１２ｂは、本発明の一対の記憶装置の一実施形態を構成している。メモリ１２ａおよび１２ｂは、後述のミラーリング制御部１３により二重化されたデータを記憶する。また、メモリ１２ａおよび１２ｂは、ミラーリング復旧装置１を含むコンピュータ装置におけるＲＡＭ（Random Access Memory）として機能する。すなわち、上位装置としてのＣＰＵは、図示しない補助記憶装置、ＲＯＭ（Read Only Memory）または周辺機器から、コンピュータ・プログラムやデータをメモリ１２ａおよび１２ｂに読み込み、読み込んだコンピュータ・プログラムやデータを用いて各種処理を実行する。メモリ１２ａおよび１２ｂは、例えば、ＤＲＡＭ（Dynamic Random Access Memory）等の半導体メモリによって構成されていてもよい。
【００１４】
ミラーリング制御部１３は、メモリ１２ａおよび１２ｂの両方が利用可能な場合、正常状態で動作する。具体的には、ミラーリング制御部１３は、正常状態では、ＣＰＵによる書き込み要求対象のデータをメモリ１２ａおよび１２ｂに二重化して記憶させる。すなわち、ミラーリング制御部１３は、データのライト命令を受信すると、メモリ１２ａおよび１２ｂにそれぞれライト命令を発行する。
【００１５】
また、ミラーリング制御部１３は、正常状態では、ＣＰＵによる読み出し要求対象のデータをメモリ１２ａおよび１２ｂのいずれかから読み出す。すなわち、ミラーリング制御部１３は、データのリード命令を受信すると、メモリ１２ａおよび１２ｂのいずれかから対象データを読み込む。
【００１６】
また、ミラーリング制御部１３は、メモリ１２ａおよび１２ｂのいずれか一方が利用不可能な場合、縮退状態で動作する。具体的には、ミラーリング制御部１３は、縮退状態では、メモリ１２ａおよび１２ｂのうち利用可能な方に対して、ＣＰＵによる読み出し要求対象および書き込み要求対象のデータを入出力する。例えば、ミラーリング制御部１３は、メモリ１２ａおよび１２ｂのうちいずれかに障害が発生すると、縮退状態で動作する。
【００１７】
キャッシュ部１４は、ＣＰＵによってメモリ１２ａおよび１２ｂに対して入出力されるデータを一時記憶する。
【００１８】
また、キャッシュ部１４は、ＣＰＵによる読み出し要求の対象データを未だ記憶していなければ、ミラーリング制御部１３を介して該データをメモリ１２ａおよび１２ｂのいずれかから読み出して記憶する。具体的には、キャッシュ部１４は、ＣＰＵからのリード命令をミラーリング制御部１３に転送する。そして、キャッシュ部１４は、リード命令の対象データをミラーリング制御部１３から受け取ると、受け取ったデータを一時的に記憶する。なお、キャッシュ部１４は、リード命令の対象データを既に記憶している場合、リード命令をミラーリング制御部１３に転送しない。
【００１９】
また、キャッシュ部１４は、書き戻し対象のデータを、ミラーリング制御部１３を介してメモリ１２ａおよび１２ｂに書き戻す。例えば、キャッシュ部１４は、リード命令の対象データを記憶しておらず、かつ、新たなデータを格納する領域がない場合、既に記憶しているデータのうち書き戻し対象のデータを所定のキャッシュアルゴリズムにしたがって決定してもよい。そして、キャッシュ部１４は、決定した書き戻し対象のデータが読み出し後に更新されたことを表す更新済み状態であれば、メモリ１２ａおよび１２ｂに書き戻すためのライト命令を発行する。このキャッシュ部１４からのライト命令は、ミラーリング制御部１３によって処理される。その結果、スワップアウトされたデータは、メモリ１２ａおよび１２ｂに二重化されて記憶される。
【００２０】
また、キャッシュ部１４は、後述の未更新ライト命令を受信すると、メモリ１２ａおよび１２ｂのいずれかから、ミラーリング制御部１３を介して対象データを読み込んで一時的に記憶する。このとき、キャッシュ部１４は、読み込んだデータを未更新のまま更新済み状態にする。ただし、キャッシュ部１４は、受信した未更新ライト命令の対象データを既に記憶している場合、メモリ１２ａおよび１２ｂからの読み出しを省略するが、記憶している対象データが未更新であっても更新済み状態にする。なお、未更新ライト命令とは、読み出し後に更新せずに書き込みを行うライト命令である。
【００２１】
ミラーリング復旧部１５は、ミラーリング制御部１３が縮退状態から正常状態に復旧する際に、メモリ１２ａおよび１２ｂのミラーリング構成を復旧する処理を行う。例えば、ミラーリング復旧部１５は、メモリ１２ａおよび１２ｂのうち障害が発生したメモリが交換されたことを表す情報の取得に応じて、ミラーリング復旧処理を行うようにしてもよい。具体的には、ミラーリング復旧部１５は、メモリ１２ａおよび１２ｂに対応するメモリ空間の各データに対して前述の未更新ライト命令を発行する。この未更新ライト命令は、キャッシュ部１４によって処理される。これにより、ミラーリング復旧部１５は、メモリ１２ａおよび１２ｂのうち縮退状態で用いられていたメモリに記憶されているデータを順次読み込んでキャッシュ部１４に登録する。ただし、ミラーリング復旧部１５は、既にキャッシュ部１４に記憶されているデータについては、縮退状態で用いられていたメモリ１２ａまたは１２ｂからの読み出しを省略する。この後、ＣＰＵによる各種処理の実行に伴い、キャッシュ部１４は、記憶したデータのうち書き戻し対象のデータをメモリ１２ａおよび１２ｂに書き戻していく。すなわち、縮退状態で用いられていたメモリ１２ａまたは１２ｂに記憶されるデータは、キャッシュ部１４に登録され更新済み状態となっている。したがって、これらのデータは、キャッシュ部１４によって書き戻し対象として選択されると、ミラーリング制御部１３によってメモリ１２ａおよびメモリ１２ｂの双方に二重化されて書き戻される。
【００２２】
以上のように構成されたミラーリング復旧装置１のミラーリング復旧動作について、図２を参照して説明する。なお、ミラーリング復旧装置１において、メモリ１２ａが利用可能な縮退状態から、メモリ１２ｂが新たなメモリ１２ｂに交換されて両方のメモリ１２ａおよび１２ｂが利用可能になったものとして、以下の動作を説明する。また、下記の動作中も、ミラーリング復旧装置１は、ＣＰＵからのリード命令およびライト命令の受信に応じた処理を行うものとする。
【００２３】
まず、ミラーリング復旧部１５は、メモリ１２ａおよび１２ｂに対応するメモリ空間の各データについて、順次以下のステップＳ１〜Ｓ６の処理を実行する。
【００２４】
ここでは、まず、ミラーリング復旧部１５は、該当するデータの未更新ライト命令をキャッシュ部１４に通知する（ステップＳ１）。
【００２５】
次に、キャッシュ部１４は、該当するデータを既に格納している場合（ステップＳ２でＹｅｓ）、ステップＳ３〜Ｓ５の動作をスキップし、該当するデータを更新済み状態にする（ステップＳ６）。
【００２６】
一方、該当するデータを格納していなかった場合（ステップＳ２でＮｏ）、キャッシュ部１４は、該当するデータのリード命令をミラーリング制御部１３に通知する（ステップＳ３）。
【００２７】
なお、このとき、新たなデータを記憶する領域がなければ、リード命令をミラーリング制御部１３に通知する前に、キャッシュ部１４は、書き戻し対象のデータのライト命令をミラーリング制御部１３に通知するようにする。
【００２８】
次に、ミラーリング制御部１３は、縮退状態で利用されていたメモリ１２ａにリード命令を通知する（ステップＳ４）。
【００２９】
次に、ミラーリング制御部１３は、メモリ１２ａから返却される対象データをキャッシュ部１４に返却する（ステップＳ５）。
【００３０】
次に、キャッシュ部１４は、ステップＳ５で返却されたデータを更新済み状態とする（ステップＳ６）。
【００３１】
ここで、メモリ１２ａおよび１２ｂに対応するメモリ空間の全データについてステップＳ１〜Ｓ６の処理を終了していなければ（ステップＳ７でＮｏ）、ミラーリング復旧装置１は、次のデータについてステップＳ１からの動作を繰り返す。
【００３２】
なお、このようなミラーリング復旧動作中も、キャッシュ部１４は、ＣＰＵからのリード命令およびライト命令を受信している。そして、キャッシュ部１４は、ＣＰＵからの命令の処理およびミラーリング復旧部１５からの未更新ライト命令の処理に伴って、書き戻し対象のデータのライト命令をミラーリング制御部１３に順次通知していく。そして、ミラーリング制御部１３は、既にメモリ１２ａおよび１２ｂの両方が利用可能となっているため、ライト命令対象のデータをメモリ１２ａおよび１２ｂの両方に順次書き戻していく。
【００３３】
そして、全データについてステップＳ１〜Ｓ６の処理が終了し（ステップＳ７でＹｅｓ）、かつ、ステップＳ１で発行した未更新ライト命令の発行によりキャッシュ部１４で更新済みとされた全データが、メモリ１２ａおよび１２ｂに書き戻されると（ステップＳ８でＹｅｓ）、ミラーリング復旧装置１はミラーリング復旧動作を終了する。
【００３４】
次に、本発明の第１の実施の形態の効果について述べる。
【００３５】
本発明の第１の実施の形態としてのミラーリング復旧装置は、ミラーリングの復旧処理中に他のアクセス命令を停止させることなく、復旧処理専用の競合制御機能を不要とすることができる。
【００３６】
その理由は、ミラーリング復旧部が、未更新ライト命令を発行することにより、縮退状態で利用されていた記憶装置から、交換等により新たに利用可能となった他方の記憶装置へのデータコピーを、キャッシュ部による書き戻しを利用して実現するからである。このとき、ミラーリング復旧部は、縮退状態で利用されていた記憶装置のデータのうち既にキャッシュ部にあるデータは新たにキャッシュ部に登録することをしない。これにより、縮退状態でキャッシュ部に存在するデータが上位装置からアクセスされて更新されていた場合でも、既に古いデータとなっている記憶装置内のデータを、交換された記憶装置にコピーすることがない。そして、この場合、キャッシュ部に存在する新しいデータが、キャッシュ部からのメモリへの書き戻し処理により、一対の記憶装置の両方にコピーされることになる。このように、本発明の第１の実施の形態としてのミラーリング復旧装置は、ミラーリング復旧部をキャッシュ部より上位に設けることにより、ミラーリングの復旧処理中に、通常運用によるアクセス対象のデータと、復旧処理によるコピー対象のデータとの競合制御機能を設ける必要がない。
【００３７】
（第２の実施の形態）
以下、本発明の第２の実施の形態について、図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００３８】
本発明の第２の実施の形態としてのミラーリング復旧装置２の構成を図３に示す。図３において、ミラーリング復旧装置２は、メモリ２２ａおよび２２ｂと、ミラーリング制御部２３と、キャッシュ部１４と、ミラーリング復旧部２５と、エラー検出訂正部２６ａおよび２６ｂと、パトロール命令発行部２７と、を備える。
【００３９】
メモリ２２ａおよび２２ｂは、本発明の一対の記憶装置の一実施形態を構成している。また、メモリ２２ａおよび２２ｂは、本発明の第１の実施の形態におけるメモリ１２ａおよび１２ｂと同様に構成されるのに加えて、データと共に誤り訂正符号（ＥＣＣ：Error Correcting Code）を格納する。なお、ＥＣＣは、図示しないエラー訂正符号化部によって生成され、メモリ２２ａおよび２２ｂに書き込まれたものであってもよい。
【００４０】
エラー検出訂正部２６ａおよび２６ｂは、メモリ２２ａおよび２２ｂから読み出されたデータに訂正可能エラーを検出した場合、そのエラーを訂正する。例えば、エラー訂正符号として、ＳＥＣ−ＤＥＤ（Single Error Correcting - Double Error Detecting Code）が用いられている場合、エラー検出訂正部２６ａおよび２６ｂは、メモリ２２ａおよび２２ｂから読み出されるデータに１ビットの誤りを検出するとこれを訂正する。そして、エラー検出訂正部２６ａおよび２６ｂは、訂正したデータをミラーリング制御部２３に返却する。
【００４１】
また、エラー検出訂正部２６ａおよび２６ｂは、メモリ２２ａおよび２２ｂから読み出されるデータに訂正可能エラーを検出しなかった場合は、正常なデータをミラーリング制御部２３に返却する。
【００４２】
また、エラー検出訂正部２６ａおよび２６ｂは、メモリ２２ａおよび２２ｂから読み出されるデータに訂正不可能なエラーを検出した場合、データが正常でないことをミラーリング制御部２３に通知してもよい。例えば、エラー訂正符号として、ＳＥＣ−ＤＥＤが用いられている場合、エラー検出訂正部２６ａおよび２６ｂは、メモリ２２ａおよび２２ｂから読み出されるデータに２ビットの誤りを検出すると、データが正常でないことをミラーリング制御部２３に通知する。
【００４３】
ミラーリング制御部２３は、正常状態では、書き込み対象のデータをメモリ２２ａおよび２２ｂに二重化して記憶させる。すなわち、ミラーリング制御部２３は、データのライト命令を受信すると、メモリ２２ａおよび２２ｂにそれぞれライト命令を発行する。そして、ミラーリング制御部２３は、対象のデータを誤り訂正符号と共にメモリ２２ａおよび２２ｂにそれぞれ記憶させる。
【００４４】
また、ミラーリング制御部２３は、読み出し対象のデータを、メモリ２２ａおよび２２ｂのいずれかから読み出す。具体的には、ミラーリング制御部２３は、受信したリード命令をメモリ２２ａおよび２２ｂに転送する。そして、ミラーリング制御部２３は、メモリ２２ａおよび２２ｂから読み出された正常なデータ、エラー訂正されたデータ、または、訂正不可能なエラーであることを表す情報のいずれかをエラー検出訂正部２６ａおよび２６ｂからそれぞれ受信する。
【００４５】
このとき、ミラーリング制御部２３は、メモリ２２ａおよび２２ｂのうち少なくともいずれか１つから正常なデータまたはエラー訂正されたデータを受信すると、該データをキャッシュ部１４に返却する。
【００４６】
パトロール命令発行部２７は、データに対するパトロールを行うためのパトロール命令を発行する。ここで、パトロールとは、メモリ２２ａおよび２２ｂ内の各データに定期的にアクセスすることにより、訂正不可能なエラーが検出される前に、訂正可能なエラーのうちに訂正して正常なデータに戻す機能である。具体的には、パトロール命令発行部２７は、メモリ２２ａおよび２２ｂに対応するメモリ空間の各データに対して、所定のパトロール間隔で、パトロール命令として未更新ライト命令を発行する。すなわち、パトロール命令発行部２７は、メモリ２２ａおよび２２ｂのいずれかから読み出された正常なデータ、または、読み出し後にエラー検出訂正部２６ａまたは２６ｂによりエラー訂正されたデータを、キャッシュ部１４に登録する。ただし、パトロール命令発行部２７は、既にキャッシュ部１４にあるデータについては、メモリ２２ａおよび２２ｂからの読み出しを省略する。なお、未更新ライト命令の対象データは、キャッシュ部１４において更新済み状態とされる。
【００４７】
ミラーリング復旧部２５は、ミラーリング制御部２３が縮退状態から正常状態に復旧する際に、パトロール命令発行部２７を用いて、メモリ２２ａおよび２２ｂの二重化を復旧させる。また、パトロール命令発行部２７のパトロール間隔が制御可能に構成されている場合、ミラーリング復旧部２５は、このパトロール間隔を制御することにより、メモリ２２ａおよび２２ｂの二重化の復旧速度を調整してもよい。
【００４８】
例えば、パトロール命令発行部２７の通常のパトロール間隔が、メモリ２２ａおよび２２ｂに対応する全メモリ空間に対するパトロール処理を数週間から数ヶ月程度の期間で完了可能な間隔に設定されていたとする。この場合、ミラーリング復旧部２５は、このパトロール間隔のままパトロール命令発行部２７を用いると、ミラーリング復旧処理の完了までに多大な時間を要する。そこで、ミラーリング復旧部２５は、例えば、パトロール命令を連続発行するようパトロール命令発行部２７のパトロール間隔を制御する。
【００４９】
以上のように構成されたミラーリング復旧装置２のミラーリング復旧動作について、図４を参照して説明する。なお、ミラーリング復旧装置２において、メモリ２２ａが利用可能な縮退状態から、メモリ２２ｂが新たなメモリ２２ｂに交換されて両方のメモリ２２ａおよび２２ｂが利用可能になったものとして、以下の動作を説明する。また、下記の動作中も、ミラーリング復旧装置２は、ＣＰＵからのリード命令およびライト命令の受信に応じた処理を行うものとする。
【００５０】
まず、ミラーリング復旧部２５は、パトロール命令発行部２７のパトロール命令発行間隔を制御する（ステップＳ２１）。例えば、ミラーリング復旧部２５は、パトロール命令発行部２７がパトロール命令を連続発行するよう制御する。
【００５１】
次に、パトロール命令発行部２７は、該当するデータのパトロール命令として未更新ライト命令をキャッシュ部１４に通知する（ステップＳ２２）。
【００５２】
次に、ミラーリング復旧装置２は、ステップＳ２〜Ｓ４まで本発明の第１の実施の形態と同様に動作することにより、縮退状態で利用していたメモリ２２ａに対して、該当するデータのリード命令を通知する。なお、ミラーリング復旧装置２は、該当するデータが既にキャッシュ部１４にあれば、ステップＳ３〜Ｓ４、Ｓ２３〜Ｓ２５の動作をスキップする。
【００５３】
次に、エラー検出訂正部２６ａは、リード命令に対応してメモリ２２ａから読み出されたデータに訂正可能なエラーを検出すると（ステップＳ２３でＹｅｓ）、そのエラーを訂正する（ステップＳ２４）。そして、ミラーリング制御部２３は、エラー訂正されたデータをキャッシュ部１４に返却する（ステップＳ２５）。一方、メモリ２２ａから読み出されたデータにエラーが検出されなければ、ミラーリング制御部２３は、正常なデータをキャッシュ部１４に返却する（ステップＳ２５）。
【００５４】
そして、ミラーリング復旧装置２は、メモリ２２ａおよび２２ｂに対応するメモリ空間の各データについてパトロール命令の連続発行が完了するまで、ステップＳ２１〜Ｓ２２、Ｓ２〜Ｓ４、Ｓ２３〜Ｓ２５、およびＳ６の動作を繰り返す。
【００５５】
そして、ミラーリング復旧装置２は、ステップＳ７〜Ｓ８まで本発明の第１の実施の形態と同様に動作することにより、メモリ２２ａに記憶されたデータを、キャッシュ部１４を介してメモリ２２ａおよび２２ｂへ書き戻す処理を完了する。
【００５６】
以上で、ミラーリング復旧装置２のミラーリング復旧動作の説明を終了する。
【００５７】
次に、本発明の第２の実施の形態の効果について述べる。
【００５８】
本発明の第２の実施の形態としてのミラーリング復旧装置は、ミラーリング復旧処理専用のデータコピー機能および競合制御機能を設けることなく、二重化された記憶装置のミラーリング復旧処理を行うことができる。
【００５９】
その理由は、記憶装置の各データをパトロールするパトロール命令発行部を流用することにより、ミラーリング復旧時のデータコピー機能を実現することができるからである。すなわち、このようなパトロール命令発行部は、パトロール対象の記憶装置のデータを定期的に読み出す未更新ライト命令を発行することにより、読み出したデータに訂正可能エラーがあればエラーを訂正する。そして、このようなパトロール命令発行部は、ミラーリング制御部を介して、正常なデータまたはエラー訂正されたデータを一対の記憶装置に二重化して書き戻す。このとき、パトロール命令発行部は、未更新ライト命令の対象データがキャッシュ部に既にあれば、パトロール処理を終了する。このように、パトロール命令発行部は、キャッシュ部より上位に配置されていることにより、上位装置からの一対の記憶装置のデータに対するアクセスと競合することなく、パトロールを実行することができる。そして、このようなパトロール命令発行部を流用することにより、本発明の第２の実施の形態としてのミラーリング復旧装置は、ミラーリング復旧処理専用のデータコピー機能および競合制御機能を設けることなく、一対の記憶装置のミラーリング復旧処理を行うことができる。
【００６０】
さらに、ミラーリング復旧部が、パトロール命令発行部のパトロール命令発行間隔を制御することにより、本発明の第２の実施の形態としてのミラーリング復旧装置は、ミラーリング復旧の処理速度を調整することが可能となる。
【００６１】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第２の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００６２】
本発明の第３の実施の形態としてのミラーリング復旧装置３の構成を図５に示す。図５において、ミラーリング復旧装置３は、本発明の第２の実施の形態としてのミラーリング復旧装置２に対して、ミラーリング復旧部２５に替えてミラーリング復旧部３５を備え、複数の主記憶部３１および主記憶制御部３８をさらに備える点が異なる。
【００６３】
主記憶部３１は、メモリ２２ａおよび２２ｂ、エラー検出訂正部２６ａおよび２６ｂ、および、ミラーリング制御部２３を有する。なお、メモリ２２ａおよび２２ｂ、エラー検出訂正部２６ａおよび２６ｂ、および、ミラーリング制御部２３は、本発明の第２の実施の形態における各部と同様に構成される。
【００６４】
主記憶制御部３８は、キャッシュ部１４から通知される主記憶部３１へのアクセスを処理する。例えば、主記憶制御部３８は、キャッシュ部１４から発行されるリード命令またはライト命令の対象となる主記憶部３１を選択し、選択した主記憶部３１に命令を転送する。また、主記憶制御部３８は、転送したリード命令またはライト命令に応じて主記憶部３１から返却されるデータを、キャッシュ部１４に転送する。
【００６５】
ミラーリング復旧部３５は、ミラーリング復旧部２５と同様に構成されるのに加えて、パトロール命令発行部２７のパトロール対象を制御する。すなわち、ミラーリング復旧部３５は、本発明の一対の記憶装置としての複数のメモリ２２ａおよび２２ｂのうち、ミラーリング復旧対象となるメモリ２２ａおよび２２ｂに対して、未更新ライト命令を発行するよう、パトロール命令発行部２７を制御する。
【００６６】
例えば、いずれかの主記憶部３１が縮退状態で稼働しており、その主記憶部３１において利用不可能だったメモリ２２ａまたは２２ｂが新たなメモリ２２ａまたは２２ｂに交換されたと想定する。このとき、ミラーリング復旧部３５は、交換されたメモリ２２ａまたは２２ｂを含む主記憶部３１をパトロール対象とするよう、パトロール命令発行部２７を制御する。
【００６７】
以上のように構成されたミラーリング復旧装置３のミラーリング復旧動作について説明する。ミラーリング復旧装置３は、図４を用いて説明した本発明のミラーリング復旧装置２の動作に対して、ステップＳ２１において、パトロール命令発行間隔に加えて、パトロール対象を制御する点が異なる。
【００６８】
ステップＳ２１において、ミラーリング復旧部３５は、交換されたメモリ２２ｂおよびその対となっているメモリ２２ａに対応するメモリ空間の各データに対して、パトロール命令を連続発行するよう通知する。その後、ミラーリング復旧装置３は、本発明のミラーリング復旧装置２と同様に動作することにより、ミラーリング復旧処理を行う。なお、本実施の形態では、ステップＳ３において、キャッシュ部１４は、該当するデータのリード命令を主記憶制御部３８を介して対象の主記憶部３１に通知する。また、ステップＳ２５において、ミラーリング制御部２３は、主記憶制御部３８を介して対象のデータをキャッシュ部１４に返却する。
【００６９】
次に、本発明の第３の実施の形態の効果について述べる。
【００７０】
本発明の第３の実施の形態としてのミラーリング復旧装置は、ミラーリング復旧処理専用のデータコピー機能および競合制御機能を設けることなく、ミラーリング復旧処理をより高速に完了させることができる。
【００７１】
その理由は、ミラーリング復旧部が、一対の記憶装置のうち、ミラーリング復旧対象となる一対の領域をパトロール対象とするようパトロール命令発行部を制御するからである。これにより、本発明の第３の実施の形態としてのミラーリング復旧装置は、縮退状態となっていた一対の領域に対してパトロール命令を利用してミラーリングの復旧を行うことになる。したがって、一対の記憶装置全体に対してパトロール命令を発行するのに比べて、ミラーリング復旧処理をより高速に完了させることができることになる。
【００７２】
なお、本実施の形態において、メモリ２２ａおよび２２ｂ、エラー検出訂正部２６ａおよび２６ｂ、および、ミラーリング制御部２３が、主記憶部３１を構成する例について説明した。しかしながら、本発明の一対の記憶装置、エラー検出訂正部およびミラーリング制御部は、１つの部品に含まれていなくてもよい。例えば、エラー検出訂正部およびミラーリング制御部は、主記憶制御部に含まれていてもよい。
【００７３】
また、本発明の各実施の形態において、本発明の一対の記憶装置として主記憶装置を適用した例について説明した。その他、本発明の一対の記憶装置として、補助記憶装置や、ネットワークを介して外部に分散配置された記憶装置を適用することも可能である。その場合、本発明のキャッシュ部は、主記憶装置や、その他一般的なキャッシュとして機能する記憶装置によって構成することも可能である。
【００７４】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【００７５】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【符号の説明】
【００７６】
１、２、３    ミラーリング復旧装置
１２ａ、１２ｂ、２２ａ、２２ｂ    メモリ
１３、２３    ミラーリング制御部
１４    キャッシュ部
１５、２５    ミラーリング復旧部
２５、３５    ミラーリング復旧部
２６ａ、２６ｂ    エラー検出訂正部
２７    パトロール命令発行部
３１    主記憶部
３８    主記憶制御部
【図１】
0005297479.tif 000002
【図２】
0005297479.tif 000003
【図３】
0005297479.tif 000004
【図４】
0005297479.tif 000005
【図５】
0005297479.tif 000006