(57)【要約】【課題】電池駆動型の携帯端末等において突然の異常電源断が発生した場合にも、正常に復旧処理を行うことができるようにする。【解決手段】マスタ記憶装置およびスレーブ記憶装置へデータを２重化する際には、まず、マスタ記憶装置への書き込みを行い、マスタ記憶装置への書き込みが完了してから、スレーブ記憶装置への書き込みを行う。このように、データを順次書き込むことで２重化を行うことにより、データの書き込み中のある瞬間に異常電源断が発生したとしても、その瞬間には一方の記憶装置に対して書き込みを行っているだけであり、他方の記憶装置に対しては書き込み中ではない。よって、書き込み中ではない他方の記憶装置には、信頼性の高いデータが保持されていることが保証されるため、次回の電源ＯＮ時には、他方の記憶装置に保持されているデータを用いて正常に復旧処理を行うことができる。【選択図】図２
2006079522.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２の記憶手段と、
前記第１および第２の記憶手段にデータを書き込むことにより当該データを２重化するに際し、前記第１の記憶手段へのデータの書き込みが完了してから、前記第２の記憶手段へのデータの書き込みを順次行う制御手段とを有するデータ２重化システム。
【請求項２】
前記第１および第２の記憶手段ごとのデータの書き込み状態が記述される状態テーブルをさらに有し、
前記制御手段は、前記第１および第２の記憶手段ごとに、データを書き込み中であるか否かを表す書込中フラグを作成し、作成した書込中フラグを前記状態テーブルに記述する請求項１に記載のデータ２重化システム。
【請求項３】
前記制御手段は、前記データ２重化システムに電源断が発生した後の次回の電源起動時に、前記状態テーブルに記述された前記書込中フラグの内容に基づいて、前記第１および第２の記憶手段へのデータの書き込み中に電源断が発生したか否かを判断する、請求項２に記載のデータ２重化システム。
【請求項４】
前記制御手段は、前記データ２重化システムに電源断が発生した後の次回の電源起動時に、前記第１および第２の記憶手段のうち一方の記憶手段へのデータの書き込み中に電源断が発生したと判断した場合、電源断発生時にデータの書き込み中ではなかった他方の記憶手段内のデータを用いて起動を行う、請求項３に記載のデータ２重化システム。
【請求項５】
前記制御手段は、前記データ２重化システムに電源断が発生した後の次回の電源起動時に、前記他方の記憶手段内のデータを用いて起動を行った後、前記一方の記憶手段内のデータを廃棄し、前記他方の記憶手段内のデータを前記一方の記憶手段にコピーする、請求項４に記載のデータ２重化システム。
【請求項６】
前記制御手段は、前記データ２重化システムに電源断が発生した後の次回の電源起動時に、前記一方の記憶手段については論理的に切り離して制御を行わず、以降の所定の時期に、前記他方の記憶手段内のデータを前記一方の記憶手段にコピーする、請求項４に記載のデータ２重化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの書き込みを行う場合に、データを２重化することによりデータの消失を防ぎかつ信頼性を高めるデータ２重化システムに関する。
【背景技術】
【０００２】
従来、ハードディスクなどの記憶装置にデータを書き込む場合、記憶装置自体の故障を想定し、２つの記憶装置へデータを書き込むことによりデータを２重化するデータ２重化システムがある（例えば、特許文献１参照）。２つの記憶装置へのデータの書き込みは、同時に行うことが一般的である。
【０００３】
このようなデータ２重化システムによれば、一方の記憶装置が故障した場合にも、他方の故障していない記憶装置から正常にデータを読み出すことができるため、そのデータを用いて次回の電源ＯＮ時に復旧処理を行うことができるという利点があった。
【特許文献１】特開昭５６−１２９９６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上述した従来のデータ２重化システムは、無停電電源装置などにより絶えず電源供給が行われるサーバ等の据え置き装置に適用されることを前提にしたものであると考えられる。そのため、電池駆動型の携帯端末等に適用された場合に、携帯端末内の２つの記憶装置へのデータの同時書き込み中に、電池の消耗や脱落、オペレータの誤操作等により異常電源断が発生することは何ら想定されていない。
【０００５】
しかしながら、２つの記憶装置へのデータの同時書き込み中に異常電源断が発生した場合には、２つの記憶装置が異常終了することになる。この場合、いずれの記憶装置においても、書き込み中のデータはもとより、それ以前に書き込みが完了している他のデータまでもが破壊される可能性がある。このように、いずれの記憶装置においてもデータ破壊等の異常が発生している場合には、次回の電源ＯＮ時に、いずれの記憶装置からも正常にデータを読み出すことができないため、正常に復旧処理を行うことができない。
【０００６】
本発明の目的は、電池駆動型の携帯端末等において突然の異常電源断が発生した場合にも、正常に復旧処理を行うことができるデータ２重化システムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明のデータ２重化システムは、第１および第２の記憶手段と、第１および第２の記憶手段にデータを書き込むことにより当該データを２重化するに際し、第１の記憶手段へのデータの書き込みが完了してから、第２の記憶手段へのデータの書き込みを順次行う制御手段とを有することを特徴としている。
【０００８】
この構成によれば、データ書き込み中のある瞬間に電源断が発生したとしても、その瞬間には第１および第２の記憶手段のいずれか一方の記憶装置に対して書き込みを行っているだけであり、必ず他方の記憶手段は書き込み中ではない。このため、書き込み中でない他方の記憶手段には、信頼性の高いデータが保持されていることが保証される。
【０００９】
また、第１および第２の記憶手段ごとのデータの書き込み状態が記述される状態テーブルをさらに有し、制御手段は、前記第１および第２の記憶手段ごとに、データを書き込み中であるか否かを表す書込中フラグを作成し、作成した書込中フラグを状態テーブルに記述しても良い。
【００１０】
また、制御手段は、データ２重化システムに電源断が発生した後の次回の電源起動時に、状態テーブルに記述された書込中フラグの内容に基づいて、第１および第２の記憶手段へのデータの書き込み中に電源断が発生したか否かを判断することとしても良い。
【００１１】
この構成によれば、データ２重化システムに電源断が発生した後の次回の電源起動時に、第１および第２の記憶手段のどちらの記憶手段への書き込み中に電源断が発生したかを容易に判断することが可能となる。
【発明の効果】
【００１２】
以上説明したように本発明によれば、データを第１の記憶手段、第２の記憶手段へ順次書き込むことで２重化を行う構成であるため、電源断が発生した時にも、必ず一方の記憶手段は正常で信頼性の高いデータが保持されているため、次回の電源起動時には、正常な記憶装置に保持されているデータを用いて正常に復旧処理を行うことができる。
【００１３】
それにより、電池駆動型の携帯端末のように、電池の消耗や脱落、オペレータの誤操作等によりデータ書き込み中に異常電源断が発生するような装置においても、データを保護し、信頼性を確保することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
【００１５】
（第１の実施形態）
本発明の第１の実施形態のデータ２重化システムの構成について、図１を参照して説明する。
【００１６】
図１を参照すると、本実施形態のデータ２重化システムは、マスタ記憶装置１０４およびスレーブ記憶装置１０５を含む２重化記憶装置１０３と、書き込みデータ１０１をマスタ記憶装置１０４およびスレーブ記憶装置１０５に書き込むことにより、書き込みデータ１０１を２重化する制御部１０２−１を含む制御装置１０２とを有している。
【００１７】
マスタ記憶装置１０４およびスレーブ記憶装置１０５は、ハードディスク、磁気メディア媒体、半導体素子を用いたＰＣ（Personal Computer）カード、ＣＦ（Compact Flash）カード、ＳＤ（Secure Digital）カード等で実現される。
【００１８】
制御部１０２−１は、書き込みデータ１０１を２重化する際に、マスタ記憶装置１０４への書き込みデータ１０１の書き込みが完了してから、スレーブ記憶装置１０５への書き込みデータ１０１の書き込みを順次行う。
【００１９】
このように、書き込みデータ１０１をマスタ記憶装置１０４およびスレーブ記憶装置１０５に順次書き込むことで書き込みデータ１０１を２重化しているため、データ書き込み中のある瞬間に異常電源断が発生したとしても、その瞬間にはマスタ記憶装置１０４およびスレーブ記憶装置１０５のいずれか一方の記憶装置に対して書き込みを行っているだけであり、他方の記憶装置に対しては書き込み中ではない。
【００２０】
従って、異常電源断発生時に書き込み中ではなかった記憶装置は、データ破壊等の異常が発生しておらず、正常な状態であるため、保持しているデータも信頼性が高く、利用可能なデータである。そのため、次回の電源ＯＮ時には、正常な状態にある記憶装置内のデータを用いて、正常に復旧処理を行うことができる。
【００２１】
さらに、制御装置１０２は、マスタ記憶装置１０４およびスレーブ記憶装置１０５ごとの書き込み状態を表す状態テーブル１０２−２を含んでいる。制御部１０２−１は、マスタ記憶装置１０４およびスレーブ記憶装置１０５ごとに、書き込みデータ１０１を書き込み中であるかを表す書込中フラグを作成し、状態テーブル１０２−２に記述する。
【００２２】
このように、マスタ記憶装置１０４およびスレーブ記憶装置１０５ごとに、書き込みデータ１０１を書き込み中であるかを表す書込中フラグを状態テーブル１０２−２に記述しているため、異常電源断が発生した後の次回の電源ＯＮ時に、マスタ記憶装置１０４およびスレーブ記憶装置１０５のどちらの記憶装置への書き込み中に異常電源断が発生したかを容易に判断することができる。
【００２３】
以下、図１に示したデータ２重化システムの動作について詳細に説明する。
（１つのデータを書き込む時の動作）
まず、制御部１０２−１において、１つの書き込みデータ１０１をマスタ記憶装置１０４およびスレーブ記憶装置１０５に書き込む動作と、書込中フラグを状態テーブル１０２−２に記述する動作について、図２を参照して説明する。図２は、書き込みデータ１０１を書き込む時のタイミングチャートであり、そのタイミングチャートの各時点での状態テーブル１０２−２の内容も併せて図示している。
【００２４】
制御部１０２−１は、マスタ記憶装置１０４およびスレーブ記憶装置１０５ごとに、書込中フラグを作成し、状態テーブル１０２−２に記述する。以下では、制御部１０２−１は、書き込みデータ１０１を書き込み中である場合は書込中フラグを「１」とし、書き込み中でない場合は書込中フラグを「０」とするものとして説明する。
【００２５】
図２において、時刻ｔ１以前の期間は、書き込みデータ１０１の書き込みが開始される前である。そのため、制御部１０２−１は、マスタ記憶装置１０４およびスレーブ記憶装置１０５共に、書込中フラグを「０」とする。
【００２６】
制御部１０２−１は、時刻ｔ１の時点では、まず、マスタ記憶装置１０４への書き込みデータ１０１の書き込みを開始し、マスタ記憶装置１０４への書き込みを時刻ｔ２の時点で完了する。このように時刻ｔ１〜時刻ｔ２の期間では、マスタ記憶装置１０４への書き込みデータ１０１の書き込み中であるため、制御部１０２−１は、マスタ記憶装置１０４の書込中フラグだけを「１」とする。なお、制御部１０２−１は、書き込みデータ１０１の書き込み中は、書き込み（ライト）動作の終了後に、リード／ベリファイ動作を行うことにより、書き込みが正しく行なわれているか否かをチェックする。
【００２７】
制御部１０２−１は、時刻ｔ２の時点でマスタ記憶装置１０４への書き込みデータ１０１の書き込みが完了すると、続いて、スレーブ記憶装置１０５への書き込みデータ１０１の書き込みを開始し、スレーブ記憶装置１０５への書き込みを時刻ｔ３の時点で完了する。このように時刻ｔ２〜時刻ｔ３の期間では、スレーブ記憶装置１０５への書き込みデータ１０１の書き込み中であるため、制御部１０２−１は、スレーブ記憶装置１０５の書込中フラグだけを「１」とする。
【００２８】
制御部１０２−１は、時刻ｔ３の時点でスレーブ記憶装置１０５への書き込みデータ１０１の書き込みが完了すると、書き込みが完了した時刻ｔ３以降の期間では、マスタ記憶装置１０４およびスレーブ記憶装置１０５共に、書込中フラグを「０」に戻す。
（１つのデータを書き込む前後またはその書き込み中に異常電源断が発生した後の動作）
次に、制御部１０２−１において、１つの書き込みデータ１０１を書き込む前後またはその書き込み中に異常電源断が発生した場合に、その後に行う動作について、図２を参照して説明する。異常電源断は、上述したように、本データ２重化システムが電池駆動型の携帯端末に適用される場合に、携帯端末の電池の消耗や脱落、オペレータの誤操作等により発生するものである。
【００２９】
制御部１０２−１は、異常電源断が発生した後の次回の電源ＯＮ時に、状態テーブル１０２−２に記述されている書込中フラグの内容をチェックし、マスタ記憶装置１０４およびスレーブ記憶装置１０５のいずれかの書込中フラグが「１」であれば、書込中フラグが「１」である記憶装置への書き込み中に異常電源断が発生し、その記憶装置への書き込みは正常終了していないと判断して、以降の動作を行う。すなわち、制御部１０２−１における異常電源断発生後の動作は、図２のどの時点で異常電源断が発生したかに応じて異なるため、以下、それぞれの場合に分けて説明する。
・図２の時刻ｔ３以降の期間に異常電源断が発生した場合
時刻ｔ３以降の期間では、マスタ記憶装置１０４およびスレーブ記憶装置１０５のいずれにおいても書き込みデータ１０１の書き込みが正常に完了している。従って、この期間に異常電源断が発生したとしても、マスタ記憶装置１０４およびスレーブ記憶装置１０５内のデータはいずれも信頼して利用可能なデータである。この場合は、制御部１０２−１は、マスタ記憶装置１０４内のデータを優先して用いるルールを採用し、次回の電源ＯＮ時に、マスタ記憶装置１０４内のデータを用いて起動を行う。
・図２の時刻ｔ２〜ｔ３の期間に異常電源断が発生した場合
時刻ｔ２〜ｔ３の期間では、スレーブ記憶装置１０５への書き込みデータ１０１の書き込み中である。そのため、この期間に異常電源断が発生すると、スレーブ記憶装置１０５では書き込み中の書き込みデータ１０１はもとより、既に書き込まれていた別のデータの破壊等の異常が発生した可能性がある。一方、マスタ記憶装置１０４では、その直前に行われていた書き込みデータ１０１の書き込みが正常に完了しており、異常は発生していない。従って、この期間に異常電源断が発生したとしても、マスタ記憶装置１０４内のデータは信頼して利用可能なデータである。よって、この場合は、制御部１０２−１は、次回の電源ＯＮ時に、マスタ記憶装置１０４内のデータを用いて次のような処理を行う。
【００３０】
例えば、制御部１０２−１は、次回の電源ＯＮ時に、まず、マスタ記憶装置１０４内のデータを用いて起動を行う。次に、スレーブ記憶装置１０５内のデータを廃棄し、マスタ記憶装置１０４内のデータをスレーブ記憶装置１０５にコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。
・図２の時刻ｔ１〜ｔ２の期間に異常電源断が発生した場合
時刻ｔ１〜ｔ２の期間では、マスタ記憶装置１０４への書き込みデータ１０１の書き込み中である。そのため、この期間に異常電源断が発生すると、マスタ記憶装置１０４では書き込み中の書き込みデータ１０１はもとより、既に書き込まれていた別のデータの破壊等の異常が発生した可能性がある。一方、スレーブ記憶装置１０５への書き込みデータ１０１の書き込みは、マスタ記憶装置１０４への書き込みの後に行われることから、スレーブ記憶装置１０５では、書き込みがまだ行われておらず、異常は発生していない。従って、この期間に異常電源断が発生したとしても、スレーブ記憶装置１０５内のデータは信頼して利用可能なデータである。よって、この場合は、制御部１０２−１は、次回の電源ＯＮ時に、スレーブ記憶装置１０５内のデータを用いて次のような処理を行う。
【００３１】
例えば、制御部１０２−１は、次回の電源ＯＮ時に、スレーブ記憶装置１０５内のデータを用いて起動を行う。次に、マスタ記憶装置１０４内のデータを廃棄し、スレーブ記憶装置１０５内のデータをマスタ記憶装置１０４にコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。次に、マスタ記憶装置１０４、スレーブ記憶装置１０５の順に、書き込みデータ１０１を書き込む。
・図２の時刻ｔ１以前の期間に異常電源断が発生した場合
時刻ｔ１以前の期間では、マスタ記憶装置１０４およびスレーブ記憶装置１０５のいずれにおいても書き込みデータ１０１が書き込まれる前である。従って、この期間に異常電源断が発生したとしても、マスタ記憶装置１０４およびスレーブ記憶装置１０５内のデータはいずれも信頼して利用可能なデータである。この場合は、制御部１０２−１は、マスタ記憶装置１０４内のデータを優先して用いるルールを採用し、次回の電源ＯＮ時に、マスタ記憶装置１０４内のデータを用いて次のような処理を行う。
【００３２】
例えば、制御部１０２−１は、次回の電源ＯＮ時に、マスタ記憶装置１０４内のデータを用いて起動を行う。次に、マスタ記憶装置１０４、スレーブ記憶装置１０５の順に、書き込みデータ１０１を書き込む。
（２つのデータを書き込む時の動作）
次に、制御部１０２−１において、書き込みデータ１０１に含まれる２つのデータＡ，Ｂをマスタ記憶装置１０４およびスレーブ記憶装置１０５に書き込む動作について、図３を参照して説明する。２つのデータＡ，Ｂの書き込みは、データＡ、データＢの順番で行われるものとする。なお、３つ以上のデータを書き込む場合も、異常電源断は必ずそのうちの１つのデータを書き込んでいる瞬間にしか発生しない。すなわち、３つ以上のデータを書き込む場合の動作は、２つのデータの書き込み動作の説明によって説明し得るものであるため、説明を省略する。
【００３３】
図３を参照すると、制御部１０２−１は、マスタ記憶装置１０４へのデータＡの書き込みが完了してから、スレーブ記憶装置１０５へのデータＡの書き込みを順次行う。続いて、制御部１０２−１は、マスタ記憶装置１０４へのデータＢの書き込みが完了してから、スレーブ記憶装置１０５へのデータＢの書き込みを順次行う。
【００３４】
次に、図３の動作について、図４を参照してさらに詳細に説明する。図４は、２つのデータＡ，Ｂをマスタ記憶装置１０４およびスレーブ記憶装置１０５に書き込む時のタイミングチャートであり、そのタイミングチャートの各時点でのマスタ記憶装置１０４およびスレーブ記憶装置１０５のデータの状態も併せて図示している。
【００３５】
図４において、時刻ｔ１以前の期間では、データＡ，Ｂの書き込みが開始される前である。そのため、時刻ｔ１以前の期間では、マスタ記憶装置１０４およびスレーブ記憶装置１０５のいずれにも、何らのデータも書き込まれていない。
【００３６】
制御部１０２−１は、時刻ｔ１の時点で、まず、マスタ記憶装置１０４へのデータＡの書き込みを開始し、マスタ記憶装置１０４への書き込みを時刻ｔ２の時点で完了する。そのため、時刻ｔ２の時点では、マスタ記憶装置１０４は、データＡが書き込まれた状態となる。
【００３７】
制御部１０２−１は、時刻ｔ２の時点でマスタ記憶装置１０４へのデータＡの書き込みが完了すると、続いて、スレーブ記憶装置１０５へのデータＡの書き込みを開始し、スレーブ記憶装置１０５への書き込みを時刻ｔ３の時点で完了する。そのため、時刻ｔ３の時点では、スレーブ記憶装置１０５は、データＡが書き込まれた状態となる。
【００３８】
以上で、データＡの書き込み処理が完了し、続いて、データＢの書き込み処理に移行する。
【００３９】
制御部１０２−１は、時刻ｔ３の時点で、まず、マスタ記憶装置１０４へのデータＢの書き込みを開始し、マスタ記憶装置１０４への書き込みを時刻ｔ４の時点で完了する。そのため、時刻ｔ４の時点では、マスタ記憶装置１０４は、データＡに続いてデータＢが書き込まれた状態となる。
【００４０】
制御部１０２−１は、時刻ｔ４の時点でマスタ記憶装置１０４へのデータＢの書き込みが完了すると、続いて、スレーブ記憶装置１０５へのデータＢの書き込みを開始し、スレーブ記憶装置１０５への書き込みを時刻ｔ５の時点で完了する。そのため、時刻ｔ５の時点では、スレーブ記憶装置１０５は、データＡに続いてデータＢが書き込まれた状態となる。
（２つのデータを書き込む前後またはその書き込み中に異常電源断が発生した後の動作）
次に、制御部１０２−１において、２つのデータＡ，Ｂを書き込む前後またはその書き込み中に異常電源断が発生した場合に、その後に行う動作について、図４を参照して説明する。なお、制御部１０２−１における異常電源断発生後の動作は、図４のどの時点で異常電源断が発生したかに応じて異なるため、以下、それぞれの場合に分けて説明する。
・図４の時刻ｔ５以降の期間に異常電源断が発生した場合
時刻ｔ５以降の期間では、マスタ記憶装置１０４およびスレーブ記憶装置１０５のいずれにおいてもデータＡ，Ｂの双方の書き込みが正常に完了している。従って、この期間に異常電源断が発生したとしても、マスタ記憶装置１０４およびスレーブ記憶装置１０５内のデータはいずれも信頼して利用可能なデータである。この場合は、制御部１０２−１は、マスタ記憶装置１０４内のデータを優先して用いるルールを採用し、次回の電源ＯＮ時に、マスタ記憶装置１０４内のデータを用いて起動を行う。
・図４の時刻ｔ４〜ｔ５の期間に異常電源断が発生した場合
時刻ｔ４〜ｔ５の期間では、スレーブ記憶装置１０５へのデータＢの書き込み中である。そのため、この期間に異常電源断が発生すると、スレーブ記憶装置１０５では書き込み中のデータＢはもとより、既に書き込まれていたデータＡの破壊等の異常が発生した可能性がある。一方、マスタ記憶装置１０４では、その直前に行われていたデータＢの書き込みが正常に完了しており、異常は発生していない。従って、この期間に異常電源断が発生したとしても、マスタ記憶装置１０４内のデータは信頼して利用可能なデータである。よって、この場合は、制御部１０２−１は、マスタ記憶装置１０４のデータを用いて次のような処理を行う。
【００４１】
例えば、制御部１０２−１は、次回の電源ＯＮ時に、まず、マスタ記憶装置１０４内のデータを用いて起動を行う。次に、スレーブ記憶装置１０５内のデータを破棄し、マスタ記憶装置１０４内のデータをスレーブ記憶装置１０５へコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。この段階で、マスタ記憶装置１０４とスレーブ記憶装置１０５へのデータＢの書き込みも完了する。
【００４２】
または、制御部１０２−１は、次回の電源ＯＮ時に、まず、マスタ記憶装置１０４内のデータを用いて起動を行う。次に、スレーブ記憶装置１０５を切り離す。以降、スレーブ記憶装置１０５のメンテナンスが終了した後などの適当な時期に、マスタ記憶装置１０４内のデータをスレーブ記憶装置１０５へコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。
・図４の時刻ｔ３〜ｔ４の期間に異常電源断が発生した場合
時刻ｔ３〜ｔ４の期間では、マスタ記憶装置１０４へのデータＢの書き込み中である。そのため、この期間に異常電源断が発生すると、マスタ記憶装置１０４では書き込み中のデータＢはもとより、既に書き込まれていたデータＡの破壊等の異常が発生した可能性がある。一方、スレーブ記憶装置１０５へのデータＢの書き込みは、マスタ記憶装置１０４への書き込みの後に行われることからまだ行われていないが、スレーブ記憶装置１０５では、その直前のデータＡの書き込みまでは正常に完了しており、異常は発生していない。従って、この期間に異常電源断が発生したとしても、スレーブ記憶装置１０５内のデータは信頼して利用可能なデータである。よって、この場合は、制御部１０２−１は、スレーブ記憶装置１０５内のデータを用いて次のような処理を行う。
【００４３】
例えば、制御部１０２−１は、次回の電源ＯＮ時に、まず、スレーブ記憶装置１０５内のデータを用いて起動を行う。次に、マスタ記憶装置１０４内のデータを破棄し、スレーブ記憶装置１０５内のデータをマスタ記憶装置１０４へコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。次に、あらためて、マスタ記憶装置１０４にデータＡを書き込み、続けてスレーブ記憶装置１０５にデータＡを書き込む。次に、マスタ記憶装置１０４、スレーブ記憶装置１０５の順にデータＢを書き込む。
【００４４】
または、制御部１０２−１は、次回の電源ＯＮ時に、まず、スレーブ記憶装置１０５内のデータを用いて起動を行う。次に、マスタ記憶装置１０４を切り離す。次に、スレーブ記憶装置１０４にデータＡ，Ｂを順に書き込む。以降、マスタ記憶装置１０４のメンテナンスが終了した後などの適当な時期に、スレーブ記憶装置１０５内のデータをマスタ記憶装置１０４へコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。
・図４の時刻ｔ２〜ｔ３の期間に異常電源断が発生した場合
時刻ｔ２〜ｔ３の期間では、スレーブ記憶装置１０５へのデータＡの書き込み中である。そのため、この期間に異常電源断が発生すると、スレーブ記憶装置１０５では書き込み中のデータＡはもとより、既に書き込まれていた別のデータの破壊等の異常が発生した可能性がある。一方、マスタ記憶装置１０４では、その直前に行われていたデータＡの書き込みが正常に完了しており、異常は発生していない。従って、この期間に異常電源断が発生したとしても、マスタ記憶装置１０４内のデータは信頼して利用可能なデータである。よって、この場合は、制御部１０２−１は、マスタ記憶装置１０４のデータを用いて次のような処理を行う。
【００４５】
例えば、制御部１０２−１は、次回の電源ＯＮ時に、まず、マスタ記憶装置１０４内のデータを用いて起動を行う。次に、スレーブ記憶装置１０５内のデータを破棄し、マスタ記憶装置１０４内のデータをスレーブ記憶装置１０５へコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。この段階で、マスタ記憶装置１０４とスレーブ記憶装置１０５へのデータＡの書き込みも完了する。次に、マスタ記憶装置１０４、スレーブ記憶装置１０５の順にデータＢを書き込む。
【００４６】
または、制御部１０２−１は、次回の電源ＯＮ時に、まず、マスタ記憶装置１０４内のデータを用いて起動を行う。次に、スレーブ記憶装置１０５を切り離す。次に、マスタ記憶装置１０５にデータＢを書き込む。以降、スレーブ記憶装置１０５のメンテナンスが終了した後などの適当な時期に、マスタ記憶装置１０４内のデータをスレーブ記憶装置１０５へコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。
・図４の時刻ｔ１〜ｔ２の期間に異常電源断が発生した場合
時刻ｔ１〜ｔ２の期間では、マスタ記憶装置１０４へのデータＡの書き込み中である。そのため、この期間に異常電源断が発生すると、マスタ記憶装置１０４では書き込み中のデータＡはもとより、既に書き込まれていた別のデータの破壊等の異常が発生した可能性がある。一方、スレーブ記憶装置１０５へのデータＡの書き込みは、マスタ記憶装置１０４への書き込みの後に行われることからまだ行われていないが、スレーブ記憶装置１０５では、その直前の別のデータの書き込みまでは正常に完了しており、異常は発生していない。従って、この期間に異常電源断が発生したとしても、スレーブ記憶装置１０５内のデータは信頼して利用可能なデータである。よって、この場合は、制御部１０２−１は、スレーブ記憶装置１０５内のデータを用いて次のような処理を行う。
【００４７】
例えば、制御部１０２−１は、次回の電源ＯＮ時に、まず、スレーブ記憶装置１０５内のデータを用いて起動を行う。次に、マスタ記憶装置１０４内のデータを破棄し、スレーブ記憶装置１０５内のデータをマスタ記憶装置１０４へコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。次に、あらためて、マスタ記憶装置１０４にデータＡを書き込み、続けてスレーブ記憶装置１０５にデータＡを書き込む。次に、マスタ記憶装置１０４、スレーブ記憶装置１０５の順にデータＢを書き込む。
【００４８】
または、制御部１０２−１は、次回の電源ＯＮ時に、まず、スレーブ記憶装置１０５内のデータを用いて起動を行う。次に、マスタ記憶装置１０４を切り離す。次に、スレーブ記憶装置１０５にデータＡ，Ｂを順に書き込む。以降、マスタ記憶装置１０４のメンテナンスが終了した後などの適当な時期に、スレーブ記憶装置１０５内のデータをマスタ記憶装置１０４へコピーし、マスタ記憶装置１０４のデータとスレーブ記憶装置１０５のデータとを同一状態にしてデータの同期を取る（復旧処理）。
・図４の時刻ｔ１以前の期間に異常電源断が発生した場合
時刻ｔ１以前の期間では、マスタ記憶装置１０４およびスレーブ記憶装置１０５のいずれにおいてもデータＡ，Ｂが書き込まれる前である。従って、この期間に異常電源断が発生したとしても、マスタ記憶装置１０４およびスレーブ記憶装置１０５内のデータはいずれも信頼して利用可能なデータである。この場合は、制御部１０２−１は、マスタ記憶装置１０４内のデータを優先して用いるルールを採用し、次回の電源ＯＮ時に、マスタ記憶装置１０４内のデータを用いて次のような処理を行う。
【００４９】
例えば、制御部１０２−１は、次回の電源ＯＮ時に、まず、マスタ記憶装置１０４内のデータを用いて起動を行う。次に、マスタ記憶装置１０４およびスレーブ記憶装置１０５に順次データＡを書き込んだ後、さらに、マスタ記憶装置１０４およびスレーブ記憶装置１０５に順次データＢを書き込む。
（２重化記憶装置内のいずれかの記憶装置を単独で利用する動作）
次に、制御部１０２−１において、マスタ記憶装置１０４およびスレーブ記憶装置１０５のいずれかにおいてデータ書き込み中に異常電源断が発生し、データ破壊等の異常が発生した場合に、異常が発生した記憶装置を論理的に切り離して、異常が発生していない記憶装置を単独で利用する動作について、図５を参照して説明する。
【００５０】
図５（ａ）は、マスタ記憶装置１０４に異常が発生した場合の動作を示し、図５（ｂ）は、スレーブ記憶装置１０５に異常が発生した場合の動作を示している。
【００５１】
図５（ａ）および（ｂ）のいずれの場合においても、制御部１０２−１は、マスタ記憶装置１０４およびスレーブ記憶装置１０５の２つの記憶装置を制御部１０２−１と物理的には接続しているが、データ書き込み中に異常電源断が発生し、データ破壊等の異常が発生した記憶装置については論理的に切り離して制御しないようにする。
（第２の実施形態）
本発明の第２の実施形態のデータ２重化システムの構成について、図６を参照して説明する。
【００５２】
図６を参照すると、本実施形態のデータ２重化システムは、ハードディスク等で実現されるマスタ記憶装置１０４およびスレーブ記憶装置１０５の代わりに、フラッシュＲＯＭで実現されるマスタ記憶装置６０４およびスレーブ記憶装置６０５を設けた点が、図１、図３に示した第１の実施形態とは異なる。ただし、基本構成は図１、図３に示した第１の実施形態と同じであり、図６における、書き込みデータ６０１、制御装置６０２、制御部６０２−１、状態テーブル６０２−２、２重化記憶装置６０３、マスタ記憶装置６０４、スレーブ記憶装置６０５は、それぞれ図１、図３における、書き込みデータ１０１、制御装置１０２、制御部１０２−１、状態テーブル１０２−２、２重化記憶装置１０３、マスタ記憶装置１０４、スレーブ記憶装置１０５に対応している。また、データ２重化方法や、異常電源断後の復旧方法も第１の実施形態と同じである。
（第３の実施形態）
本発明の第３の実施形態のデータ２重化システムの構成について、図７を参照して説明する。
【００５３】
図７を参照すると、本実施形態のデータ２重化システムは、マスタ記憶装置６０４およびスレーブ記憶装置６０５の代わりに、フラッシュＲＯＭで実現される記憶装置７０１を設け、記憶装置７０１の記憶領域をマスタ記憶領域７０２とスレーブ記憶領域７０２とに分けることにより、書き込みデータ６０１を２重化する点が、図６に示した第２の実施形態とは異なる。
【００５４】
データそのものの書き込みを行うと共にそのデータの記憶場所の書き込みを行うＦＡＴ（File Allocation Table）システムに代表されるファイルシステムがある。このようなファイルシステムでは、ハードディスク、磁気メディア媒体、半導体素子を用いたＰＣカード、ＣＦカード、ＳＤカード、およびフラッシュＲＯＭであっても、ＦＡＴの書き換え中に異常電源断が発生すると、書き込み中のデータだけでなく記憶装置全体のデータが読み出せなくなる。このため、上述の第１および第２の実施形態のように、２つの記憶装置を用いてデータを２重化することが必要である。
【００５５】
しかしながら、ＦＡＴをもたず、固定のメモリアドレスでアクセスされるような記憶装置では、図７のように、１つの記憶装置７０１の記憶領域を２つの記憶領域（マスタ記憶領域７０２、スレーブ記憶領域７０２）に分けることによりデータＸを２重化することができる。なぜなら、この種の記憶装置では、固定のメモリアドレスにデータＸが書き込まれるため、異常電源断が発生しても、ＦＡＴが破壊されるような記憶装置全体のデータの破壊が起こらないためである。すなわち、この種の記憶装置では、破壊されるデータは書き込み中のデータＸに限られる。
【００５６】
なお、制御部６０２−１によるデータ２重化方法や異常電源断後の復旧方法は、上述の図１、図２、図３、図４、図５の場合と同じである。
【００５７】
すなわち、制御部６０２−１は、データＸの書き込みに際しては、まず、マスタ記憶領域７０１への書き込みを行い、マスタ記憶領域７０１への書き込みが完了してからスレーブ記憶領域７０２への書き込みを行う。
【００５８】
また、スレーブ記憶領域７０２へのデータＸの書き込み中に異常電源断が発生した場合は、既にマスタ記憶領域７０１への書き込みは完了しているため、マスタ記憶領域７０１内のデータは信頼して利用可能なデータである。よって、この場合は、制御部６０２−１は、次回の電源ＯＮ時に、マスタ記憶領域７０１内のデータを用いて起動処理を行い、スレーブ記憶領域７０２内のデータを廃棄してからマスタ記憶領域７０１内のデータをスレーブ記憶領域７０２にコピーする。
【００５９】
また、マスタ記憶領域７０１へのデータＸの書き込み中に異常電源断が発生した場合は、スレーブ記憶領域７０２への書き込みが行われる前であり、スレーブ記憶領域７０２は正常な状態であるため、スレーブ記憶領域７０２内のデータは信頼して利用可能なデータである。よって、この場合は、制御部６０２−１は、次回の電源ＯＮ時に、スレーブ記憶領域７０２内のデータを用いて起動処理を行い、スレーブ記憶領域７０２にデータＸを書き込み直し、マスタ記憶領域７０１内のデータを廃棄してからスレーブ記憶領域７０２内のデータをマスタ記憶領域７０１にコピーする。
【産業上の利用可能性】
【００６０】
本発明は、電池駆動型の携帯端末など、利用中に電池が脱落したり、利用中に電池残量がなくなったり、利用中にオペレータによる誤操作でＯＦＦされたりする等の要因で、記憶装置へのデータ書き込み中に異常電源断が発生する頻度の高い装置に特に好適に適用されるものである。
【００６１】
また、本発明に係る記憶装置としては、ハードディスク、磁気メディア媒体、半導体素子を用いたＰＣカード、ＣＦカード、ＳＤカードなどを利用することができる。また、記憶装置に内蔵されるフラッシュＲＯＭ上の記憶領域を利用することもできる。さらに、メモリバックアップを行うことを前提にすれば、揮発性メモリデバイスであるＤＲＡＭやＳＲＡＭ上の記憶領域を利用することもできる。
【図面の簡単な説明】
【００６２】
【図１】本発明の第１の実施形態のデータ２重化システムの構成を示す図である。
【図２】図１に示した制御部において、１つのデータを書き込む動作と書込中フラグを状態テーブルに記述する動作とを説明するタイミングチャートである。
【図３】図１に示した制御部において、２つのデータを書き込む動作を説明する図である。
【図４】図１に示した制御部において、２つのデータを書き込む動作を詳細に説明するタイミングチャートである。
【図５】図１に示した制御部において、データ書き込み中の異常電源断により異常が発生した記憶装置を論理的に切り離して、異常が発生していない記憶装置を単独で利用する動作を説明する図であり、（ａ）はマスタ記憶装置に異常が発生した場合の動作を示す図、（ｂ）はスレーブ記憶装置に異常が発生した場合の動作を示す図である。
【図６】本発明の第２の実施形態のデータ２重化システムの構成を示す図である。
【図７】本発明の第３の実施形態のデータ２重化システムの構成を示す図である。
【符号の説明】
【００６３】
１０１    書き込みデータ
１０２    制御装置
１０２−１    制御部
１０２−２    状態テーブル
１０３    ２重化記憶装置
１０４    マスタ記憶装置
１０５    スレーブ記憶装置
６０１    書き込みデータ
６０２    制御装置
６０２−１    制御部
６０２−２    状態テーブル
６０３    ２重化記憶装置
６０４    マスタ記憶装置
６０５    スレーブ記憶装置
７０１    記憶装置
７０２    マスタ記憶領域
７０３    スレーブ記憶領域
【図１】
2006079522.tif 000003
【図２】
2006079522.tif 000004
【図３】
2006079522.tif 000005
【図４】
2006079522.tif 000006
【図５】
2006079522.tif 000007
【図６】
2006079522.tif 000008
【図７】
2006079522.tif 000009