(57)【要約】【課題】  電源断時において、短時間で重要なデータを不揮発性メモリに退避する技術を提供する。【解決手段】  重要データを格納する揮発性の重要パーティションメモリ（１１）と、任意のタイミングで起動して、取り扱うデータが重要データか否かを判断し、重要データを重要パーティションメモリに保存するアプリケーション部（１０）と、所定周期毎及び電断時に起動して、前回の起動以降に重要パーティションメモリに保存された追加データを抽出して、当該追加データを不揮発性メモリ（１４）に格納するバックアップ部（１６）とを備えたデータ保存装置である。【選択図】図１
2012063948.tif 000002
【特許請求の範囲】
【請求項１】
重要データを格納する揮発性の重要パーティションメモリと、
任意のタイミングで起動して、取り扱うデータが重要データか否かを判断し、重要データを前記重要パーティションメモリに保存するアプリケーション部と、
所定周期毎及び電断時に起動して、前回の起動以降に前記重要パーティションメモリに保存された追加データを抽出して、当該追加データを不揮発性メモリに格納するバックアップ部と
を備えたことを特徴とするデータ保存装置。
【請求項２】
前記重要パーティションメモリに保存されるデータのバックアップ領域である揮発性のバックアップパーティションメモリを更に備え、
前記バックアップ部は、前記追加データを前記バックアップパーティションメモリに追加して保存することを特徴とする請求項１に記載のデータ保存装置。
【請求項３】
前記バックアップ部は、前記重要パーティションメモリのデータと前記バックアップパーティションメモリのデータとを比較して前記追加データを抽出することを特徴とする請求項２に記載のデータ保存装置。
【請求項４】
前記バックアップ部は、前記重要パーティションメモリの最新書込み位置にあるデータから過去に遡ったデータを前記バックアップパーティションメモリのデータと比較して前記追加データを抽出することを特徴とする請求項３に記載のデータ保存装置。
【請求項５】
前記データ保存装置の電断時に一時的に電源を供給する補助電源を有し、
前記重要パーティションメモリのサイズは、前記補助電源による電源供給時間、前記重要パーティションメモリ上でのデータ処理時間、前記不揮発性メモリとのアクセス時間に基づいて決定されることを特徴とする請求項１乃至４のいずれか１項に記載のデータ保存装置。
【請求項６】
揮発性メモリと不揮発性メモリとを備えたデータ保存装置のデータ保存方法において、
前記揮発性メモリに重要データを格納する重要パーティションメモリを設け、
任意のタイミングで起動するアプリケーション部によって、取り扱うデータが重要データか否かを判断して重要データを前記重要パーティションメモリに保存し、
所定周期毎及び電断時に起動するバックアップ部によって、前回の起動以降に前記重要パーティションメモリに保存された追加データを抽出して、当該追加データを不揮発性メモリに格納すること
を特徴とするデータ保存方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、重要なデータを電源断時において保存するデータ保存装置及びデータ保存方法に関する。
【背景技術】
【０００２】
ＰＣ（Personal Computer）等の情報処理装置において、何らかの原因で電源がオフすると、データ処理中の重要なデータが消去されてしまい、再度データ処理を実行する必要が生じる。
【０００３】
そのため、情報処理装置に揮発性メモリ上の情報を退避する不揮発メモリを具備し、給電再開時に、不揮発メモリに退避した情報を用いて揮発性メモリの情報の復元を図る技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−２４９２４５号公報
【特許文献１】特開２０１０−３２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、何らかの原因で電力が切断されてしまった際、補助電源の短い電力供給時間内において、必要な情報を全て不揮発性メモリに退避することは困難である場合が多い。一方、補助電源の電力供給時間を増加させようとすれば、装置のコストアップにつながってしまう。
【０００６】
従って、電源断時において、短時間で重要なデータを不揮発性メモリに退避する技術に対するニーズがある。
【課題を解決するための手段】
【０００７】
上記課題を解決するための実施形態によれば、重要データを格納する揮発性の重要パーティションメモリと、任意のタイミングで起動して、取り扱うデータが重要データか否かを判断し、重要データを前記重要パーティションメモリに保存するアプリケーション部と、所定周期毎及び電断時に起動して、前回の起動以降に前記重要パーティションメモリに保存された追加データを抽出して、当該追加データを不揮発性メモリに格納するバックアップ部とを備えたデータ保存装置が提供される。
【図面の簡単な説明】
【０００８】
【図１】本実施形態にかかわるデータ保存装置の構成を示す図。
【図２】本実施形態にかかわるデータ保存装置の立ち上げ時における概略の動作手順を示すフロー図。
【図３】本実施形態にかかわるアプリケーションプログラムの概略の動作手順を示すフロー図。
【図４】本実施形態にかかわるバックアッププログラムの概略の動作手順を示すフロー図。
【発明を実施するための形態】
【０００９】
[第１の実施の形態]  
図１は、第１の実施形態にかかわるデータ保存装置１の構成を示す図である。  
データ保存装置１は、アプリケーションプログラム１０、メモリ領域１１〜１３、ＨＤＤ１４、補助電源１５及びバックアッププログラム１６を備えている。
【００１０】
アプリケーションプログラム１０は、データ保存装置１内の各機能を実現するための処理プログラムである。アプリケーションプログラム１０は、扱うデータが重要なデータかそうでないデータかを判別し、重要なデータであればそのデータを「重要malloc関数」に渡し、重要でないデータであればそのデータを「malloc関数」に渡す。  
「重要malloc関数」、「malloc関数」は、渡されたデータをメモリ領域１１〜１３に格納する。「重要malloc関数」、「malloc関数」の機能については後述する。
【００１１】
メモリ領域は、揮発性メモリで構成されている。メモリ領域には、重要パーティション領域１１、バックアップパーティション領域１２、その他パーティション領域１３が設けられている。重要パーティション領域１１には、アプリケーションプログラム１０が重要と判断したデータが、重要malloc関数を介して保存される。バックアップパーティション領域１２は、重要パーティション領域１１と同じサイズの領域であって、重要パーティション領域１１に格納された重要データのバックアップデータがバックアッププログラム１６によって保存される。その他パーティション領域１３には、アプリケーションプログラム１０が重要でないと判断したデータが、malloc関数を介して保存される。
【００１２】
ＨＤＤ１４は、不揮発性メモリで構成されている。ＨＤＤ１４には、重要パーティション領域１１に保存された重要データが、バックアッププログラム１６によって保存される。
【００１３】
補助電源１５は、データ保存装置１の供給電源が切断した時に一時的に電源を供給するバックアップ用電源である。補助電源１５は、電断（供給電源断）をバックアッププログラム１６に通知する。バックアッププログラム１６は、通常は所定の時間間隔で、最新の重要なデータが格納されている重要パーティション領域１１とバックアップデータが格納されているバックアップパーティション領域１２を比較して、変化のある部分のデータ、即ち、新たに追加された重要データをＨＤＤ１４へ保存する。
【００１４】
なお、重要データか否かの判断は、アプリケーションプログラム１０毎に行われる。例えば、あるアプリケーションプログラム１０は、データの復旧に必要な情報を重要データと判断する。また別のアプリケーションプログラム１０は、他のプログラムとの通信情報を重要データと判断する。
【００１５】
続いて、データ保存装置１の動作について説明する。  
図２は、データ保存装置１の立ち上げ時における概略の動作手順を示すフロー図である。このフローチャートは、データ保存装置１の電源がオンされることで起動するＯＳ（オペレーションシステム）の動作を示している。
【００１６】
データ保存装置１の電源がオンされるとステップＳ０１において、ＯＳが起動する。ステップＳ０２において、ＯＳは、メモリ領域に設けられる各パーティション領域１１〜１３のサイズを計算する。
【００１７】
この計算に際しては、（１）補助電源１５による電源供給時間、（２）各パーティション領域１１〜１３上でのデータ処理時間、（３）ＨＤＤ１４へのアクセス（読み出し・書込み）時間に基づいて、サイズを計算する。例えば、補助電源１５による電源供給時間が短かければサイズは小さく、長ければサイズは大きく計算される。各パーティション領域１１〜１３上でのデータ処理時間が短かければサイズは大きく、長ければサイズは小さく計算される。ＨＤＤ１４へのアクセス時間が短かければサイズは大きく、長ければサイズは小さく計算される。  
なお、この計算に使用する（１）〜（３）の情報は、予めデータ保存装置１に定められた値を用いても良く、データ保存装置１の動作中に採取した実績値に基づいて求めても良い。
【００１８】
ステップＳ０３において、ＯＳはパーティション作成関数を利用して、ステップＳ０２で求めたサイズに基づいて、各パーティション領域１１〜１３の先頭アドレスとバイト数を求める。例えば、重要ｍａｌｌｏｃ関数で使用する領域である重要パーティション領域１１について、先頭アドレスをａ番地、バイト数をｂバイトと求める。重要データのバックアップ領域であるバックアップパーティション領域１２について、先頭アドレスをａ’番地、バイト数をｂバイトと求める（サイズは同じため）。同様にしてｍａｌｌｏｃ関数で使用する領域であるその他パーティション領域１３について、先頭アドレスとバイト数とを求める。  
このステップＳ０３で求めた各パーティション領域１１〜１３の先頭アドレスとバイト数とは、ＯＳ内の所定のエリアに参照可能に格納される。
【００１９】
ステップＳ０４において、ＯＳはバックアッププログラム１６を起動する。バックアッププログラム１６は、所定の時間周期でバックアップ処理（後述）を実行する。ステップＳ０５において、ＯＳは、データ保存装置１のアプリケーションプログラム１０を起動する。
【００２０】
図３は、アプリケーションプログラム１０の概略の動作手順を示すフロー図である。  
ステップＳ１０において、アプリケーションプログラム１０は、取り扱う対象データが重要なデータかどうかを判断する。上述のように、どのようなデータをパーティション領域に保存する対象とし、どのような基準で重要データか否かを判断するかはアプリケーション毎に異なる。
【００２１】
重要なデータと判断すれば（ステップＳ１０  Ｙｅｓ）、ステップＳ１１において、アプリケーションプログラム１０は、重要ｍａｌｌｏｃ関数を起動して重要データを渡し、重要パーティション領域１１に保存させる。重要でないデータと判断すれば（ステップＳ１０  Ｎｏ）、ステップＳ１２において、アプリケーションプログラム１０は、ｍａｌｌｏｃ関数を起動して当該データを渡し、その他パーティション領域１３に保存させる。  
このように、データ保存装置１内の複数のアプリケーションプログラム１０は、それぞれ任意のタイミングで起動し、データの保存動作を実行する。
【００２２】
ここで、重要ｍａｌｌｏｃ関数は、重要なデータを格納するメモリ領域を確保する機能を有する。重要なデータだと判断されると、この機能がアプリケーションプログラム１０から呼び出され、重要パーティション領域１１に、必要なメモリ領域を確保する。また、重要ｍａｌｌｏｃ関数は、重要パーティション領域１１に格納される重要データを管理する機能を備えている。例えば、重要パーティション領域１１をサイクリックに使用して重要データを順次格納する場合は、管理データ（格納アドレス、格納バイト数など）の履歴情報を備えている。  
なお、一般のＯＳではメモリ領域を確保する機能を備えた「ｍａｌｌｏｃ関数」が知られている。しかし、本実施の形態の重要ｍａｌｌｏｃ関数は、この「ｍａｌｌｏｃ関数」と同様の名称を用いているが、機能は同じではないことに留意されたい  。
【００２３】
また、データ保存装置１のｍａｌｌｏｃ関数も、上述の重要ｍａｌｌｏｃ関数と同様の機能を備えているため、その説明は省略する。
【００２４】
図４は、バックアッププログラム１６の概略の動作手順を示すフロー図である。
【００２５】
上述のように、バックアッププログラム１６は、通常は所定周期で起動する。図４には、パーティション作成関数（図２  ステップＳ０３）が作成した各パーティション領域の先頭アドレスとバイト数とを参考に記載している。また、図４では、重要パーティション領域１１はパーティションＡ、バックアップパーティション領域１２はパーティションＡ’として記述している。
【００２６】
ステップＳ２１において、バックアッププログラム１６は、ＯＳ起動後の最初（第１回目）の起動かどうかを調べる。
【００２７】
ＯＳ起動後の最初（第１回目）の起動の場合（ステップＳ２１  Ｙｅｓ）は、初期化処理を実行する。即ち、ステップＳ２２〜Ｓ２４において、ＨＤＤ１４のファイル領域に重要パーティション領域１１のデータを書き込む。ステップＳ２５において、重要パーティション領域１１のデータをバックアップパーティション領域１２にコピーする。  
そして、ステップＳ３９において、次回起動のタイマを設定する。
【００２８】
ＯＳ起動後の最初（第１回目）の起動でない場合（ステップＳ２１  Ｎｏ）は、重要パーティション領域１１のデータとバックアップパーティション領域１２のデータとを比較する。  
ステップＳ３０において、重要パーティション領域１１とバックアップパーティション領域１２とを所定バイト（Ｘバイト）に区分する。
【００２９】
ステップＳ３１において、重要パーティション領域１１とバックアップパーティション領域１２の対応するＸバイトのデータ同士を比較する。この比較は、例えば、比較関数（ｍｅｍｃｍｐ）を利用しても良い。そして、ステップＳ３２において、データに差があるかどうかを調べる。
【００３０】
差が有る場合（ステップＳ３２  Ｙｅｓ）、重要パーティション領域１１のＸバイトのデータは前回の起動から今回の起動の間に追加されたデータを含んでいる。そこで、ステップＳ３３〜Ｓ３５において、ＨＤＤ１４のファイル領域に変更データを追加して書き込む。ステップＳ３６において、重要パーティション領域１１のＸバイトのデータをバックアップパーティション領域１２にコピーする。  
そして、ステップＳ３７の処理を実行する。
【００３１】
差が無い場合（ステップＳ３２  Ｎｏ）、重要パーティション領域１１のデータは前回の起動から今回の起動の間に追加されたものではない。そこで、ステップＳ３７、ステップＳ３８において、比較するデータをＸバイトずらし、上述のステップＳ３１〜Ｓ３６の処理を重要パーティション領域１１とバックアップパーティション領域１２との全てのデータの比較処理が終了するまで繰り返して実行する。
【００３２】
重要パーティション領域１１とバックアップパーティション領域１２との全てのデータの比較処理が終了したとき（ステップＳ３８  Ｙｅｓ）は、ステップＳ３９において、次回起動のタイマを設定する。
【００３３】
もし、ステップＳ３９において、タイムアップ前に補助電源１５が起動したときは、即ち、電断が発生したときは、直ちにステップＳ３０からの処理を実行する。
【００３４】
従って、電源断が発生し、補助電源１５が起動したときは、前回バックアッププログラム１６の起動以降に書き込まれた重要データをＨＤＤ１４に格納することができる。そして、格納するデータは、重要パーティション領域１１とバックアップパーティション領域１２との比較で変化があったデータのみであるため、短時間でＨＤＤ１４に保存処理することが可能である。
【００３５】
[第１の実施の形態のバリエーション]  
第１の実施の形態で述べた変化したデータを抽出する処理は次のように構成することも可能である。
【００３６】
（１）重要パーティション領域１１とバックアップパーティション領域１２との比較は、Ｘバイトずつ行うのではなく、一時に全て実施しても良い。パーティション領域のサイズが大きくない、データ処理が短時間で行うことができる、補助電源１５の供給可能時間が長い、等の条件を考慮すると一時に比較する方式が短時間で行える場合もある。
【００３７】
（２）重要パーティション領域１１とバックアップパーティション領域１２との比較を、重要パーティション領域１１の最新（カレント）位置から行っても良い。即ち、バックアップパーティション領域１２の最新位置から過去に所定バイト遡ったデータと一致するまでの重要パーティション領域１１の最新（カレント）位置から過去に遡ったデータが変化したデータと判断できる。最新位置からデータを比較することで、短時間で保存処理を実行することができる。
【００３８】
（３）重要パーティション領域１１とバックアップパーティション領域１２との比較を、管理データ、あるいは履歴データに基づいて行っても良い。
【００３９】
上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【００４０】
従って、フローチャートとして記載され、説明された処理は、その処理を実現するハードウェアで構成することができる。
【００４１】
より詳細に述べると、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態の装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、またはこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態の通信装置、通信相手装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合または読み込む場合はネットワークを通じて取得または読み込んでもよい。  
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本願発明における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。  
また、記録媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【００４２】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
【００４３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４４】
１…データ保存装置、１０…アプリケーションプログラム、１１…重要パーティション領域、１２…バックアップパーティション領域、１３…その他パーティション領域、１４…ＨＤＤ、１５…補助電源、１６…バックアッププログラム。
【図１】
2012063948.tif 000003
【図２】
2012063948.tif 000004
【図３】
2012063948.tif 000005
【図４】
2012063948.tif 000006