説明

データ保存装置及びデータ保存方法

【課題】 電源断時において、短時間で重要なデータを不揮発性メモリに退避する技術を提供する。
【解決手段】 重要データを格納する揮発性の重要パーティションメモリ(11)と、任意のタイミングで起動して、取り扱うデータが重要データか否かを判断し、重要データを重要パーティションメモリに保存するアプリケーション部(10)と、所定周期毎及び電断時に起動して、前回の起動以降に重要パーティションメモリに保存された追加データを抽出して、当該追加データを不揮発性メモリ(14)に格納するバックアップ部(16)とを備えたデータ保存装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施の形態は、重要なデータを電源断時において保存するデータ保存装置及びデータ保存方法に関する。
【背景技術】
【0002】
PC(Personal Computer)等の情報処理装置において、何らかの原因で電源がオフすると、データ処理中の重要なデータが消去されてしまい、再度データ処理を実行する必要が生じる。
【0003】
そのため、情報処理装置に揮発性メモリ上の情報を退避する不揮発メモリを具備し、給電再開時に、不揮発メモリに退避した情報を用いて揮発性メモリの情報の復元を図る技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平08−249245号公報
【特許文献1】特開2010−3243号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、何らかの原因で電力が切断されてしまった際、補助電源の短い電力供給時間内において、必要な情報を全て不揮発性メモリに退避することは困難である場合が多い。一方、補助電源の電力供給時間を増加させようとすれば、装置のコストアップにつながってしまう。
【0006】
従って、電源断時において、短時間で重要なデータを不揮発性メモリに退避する技術に対するニーズがある。
【課題を解決するための手段】
【0007】
上記課題を解決するための実施形態によれば、重要データを格納する揮発性の重要パーティションメモリと、任意のタイミングで起動して、取り扱うデータが重要データか否かを判断し、重要データを前記重要パーティションメモリに保存するアプリケーション部と、所定周期毎及び電断時に起動して、前回の起動以降に前記重要パーティションメモリに保存された追加データを抽出して、当該追加データを不揮発性メモリに格納するバックアップ部とを備えたデータ保存装置が提供される。
【図面の簡単な説明】
【0008】
【図1】本実施形態にかかわるデータ保存装置の構成を示す図。
【図2】本実施形態にかかわるデータ保存装置の立ち上げ時における概略の動作手順を示すフロー図。
【図3】本実施形態にかかわるアプリケーションプログラムの概略の動作手順を示すフロー図。
【図4】本実施形態にかかわるバックアッププログラムの概略の動作手順を示すフロー図。
【発明を実施するための形態】
【0009】
[第1の実施の形態]
図1は、第1の実施形態にかかわるデータ保存装置1の構成を示す図である。
データ保存装置1は、アプリケーションプログラム10、メモリ領域11〜13、HDD14、補助電源15及びバックアッププログラム16を備えている。
【0010】
アプリケーションプログラム10は、データ保存装置1内の各機能を実現するための処理プログラムである。アプリケーションプログラム10は、扱うデータが重要なデータかそうでないデータかを判別し、重要なデータであればそのデータを「重要malloc関数」に渡し、重要でないデータであればそのデータを「malloc関数」に渡す。
「重要malloc関数」、「malloc関数」は、渡されたデータをメモリ領域11〜13に格納する。「重要malloc関数」、「malloc関数」の機能については後述する。
【0011】
メモリ領域は、揮発性メモリで構成されている。メモリ領域には、重要パーティション領域11、バックアップパーティション領域12、その他パーティション領域13が設けられている。重要パーティション領域11には、アプリケーションプログラム10が重要と判断したデータが、重要malloc関数を介して保存される。バックアップパーティション領域12は、重要パーティション領域11と同じサイズの領域であって、重要パーティション領域11に格納された重要データのバックアップデータがバックアッププログラム16によって保存される。その他パーティション領域13には、アプリケーションプログラム10が重要でないと判断したデータが、malloc関数を介して保存される。
【0012】
HDD14は、不揮発性メモリで構成されている。HDD14には、重要パーティション領域11に保存された重要データが、バックアッププログラム16によって保存される。
【0013】
補助電源15は、データ保存装置1の供給電源が切断した時に一時的に電源を供給するバックアップ用電源である。補助電源15は、電断(供給電源断)をバックアッププログラム16に通知する。バックアッププログラム16は、通常は所定の時間間隔で、最新の重要なデータが格納されている重要パーティション領域11とバックアップデータが格納されているバックアップパーティション領域12を比較して、変化のある部分のデータ、即ち、新たに追加された重要データをHDD14へ保存する。
【0014】
なお、重要データか否かの判断は、アプリケーションプログラム10毎に行われる。例えば、あるアプリケーションプログラム10は、データの復旧に必要な情報を重要データと判断する。また別のアプリケーションプログラム10は、他のプログラムとの通信情報を重要データと判断する。
【0015】
続いて、データ保存装置1の動作について説明する。
図2は、データ保存装置1の立ち上げ時における概略の動作手順を示すフロー図である。このフローチャートは、データ保存装置1の電源がオンされることで起動するOS(オペレーションシステム)の動作を示している。
【0016】
データ保存装置1の電源がオンされるとステップS01において、OSが起動する。ステップS02において、OSは、メモリ領域に設けられる各パーティション領域11〜13のサイズを計算する。
【0017】
この計算に際しては、(1)補助電源15による電源供給時間、(2)各パーティション領域11〜13上でのデータ処理時間、(3)HDD14へのアクセス(読み出し・書込み)時間に基づいて、サイズを計算する。例えば、補助電源15による電源供給時間が短かければサイズは小さく、長ければサイズは大きく計算される。各パーティション領域11〜13上でのデータ処理時間が短かければサイズは大きく、長ければサイズは小さく計算される。HDD14へのアクセス時間が短かければサイズは大きく、長ければサイズは小さく計算される。
なお、この計算に使用する(1)〜(3)の情報は、予めデータ保存装置1に定められた値を用いても良く、データ保存装置1の動作中に採取した実績値に基づいて求めても良い。
【0018】
ステップS03において、OSはパーティション作成関数を利用して、ステップS02で求めたサイズに基づいて、各パーティション領域11〜13の先頭アドレスとバイト数を求める。例えば、重要malloc関数で使用する領域である重要パーティション領域11について、先頭アドレスをa番地、バイト数をbバイトと求める。重要データのバックアップ領域であるバックアップパーティション領域12について、先頭アドレスをa’番地、バイト数をbバイトと求める(サイズは同じため)。同様にしてmalloc関数で使用する領域であるその他パーティション領域13について、先頭アドレスとバイト数とを求める。
このステップS03で求めた各パーティション領域11〜13の先頭アドレスとバイト数とは、OS内の所定のエリアに参照可能に格納される。
【0019】
ステップS04において、OSはバックアッププログラム16を起動する。バックアッププログラム16は、所定の時間周期でバックアップ処理(後述)を実行する。ステップS05において、OSは、データ保存装置1のアプリケーションプログラム10を起動する。
【0020】
図3は、アプリケーションプログラム10の概略の動作手順を示すフロー図である。
ステップS10において、アプリケーションプログラム10は、取り扱う対象データが重要なデータかどうかを判断する。上述のように、どのようなデータをパーティション領域に保存する対象とし、どのような基準で重要データか否かを判断するかはアプリケーション毎に異なる。
【0021】
重要なデータと判断すれば(ステップS10 Yes)、ステップS11において、アプリケーションプログラム10は、重要malloc関数を起動して重要データを渡し、重要パーティション領域11に保存させる。重要でないデータと判断すれば(ステップS10 No)、ステップS12において、アプリケーションプログラム10は、malloc関数を起動して当該データを渡し、その他パーティション領域13に保存させる。
このように、データ保存装置1内の複数のアプリケーションプログラム10は、それぞれ任意のタイミングで起動し、データの保存動作を実行する。
【0022】
ここで、重要malloc関数は、重要なデータを格納するメモリ領域を確保する機能を有する。重要なデータだと判断されると、この機能がアプリケーションプログラム10から呼び出され、重要パーティション領域11に、必要なメモリ領域を確保する。また、重要malloc関数は、重要パーティション領域11に格納される重要データを管理する機能を備えている。例えば、重要パーティション領域11をサイクリックに使用して重要データを順次格納する場合は、管理データ(格納アドレス、格納バイト数など)の履歴情報を備えている。
なお、一般のOSではメモリ領域を確保する機能を備えた「malloc関数」が知られている。しかし、本実施の形態の重要malloc関数は、この「malloc関数」と同様の名称を用いているが、機能は同じではないことに留意されたい 。
【0023】
また、データ保存装置1のmalloc関数も、上述の重要malloc関数と同様の機能を備えているため、その説明は省略する。
【0024】
図4は、バックアッププログラム16の概略の動作手順を示すフロー図である。
【0025】
上述のように、バックアッププログラム16は、通常は所定周期で起動する。図4には、パーティション作成関数(図2 ステップS03)が作成した各パーティション領域の先頭アドレスとバイト数とを参考に記載している。また、図4では、重要パーティション領域11はパーティションA、バックアップパーティション領域12はパーティションA’として記述している。
【0026】
ステップS21において、バックアッププログラム16は、OS起動後の最初(第1回目)の起動かどうかを調べる。
【0027】
OS起動後の最初(第1回目)の起動の場合(ステップS21 Yes)は、初期化処理を実行する。即ち、ステップS22〜S24において、HDD14のファイル領域に重要パーティション領域11のデータを書き込む。ステップS25において、重要パーティション領域11のデータをバックアップパーティション領域12にコピーする。
そして、ステップS39において、次回起動のタイマを設定する。
【0028】
OS起動後の最初(第1回目)の起動でない場合(ステップS21 No)は、重要パーティション領域11のデータとバックアップパーティション領域12のデータとを比較する。
ステップS30において、重要パーティション領域11とバックアップパーティション領域12とを所定バイト(Xバイト)に区分する。
【0029】
ステップS31において、重要パーティション領域11とバックアップパーティション領域12の対応するXバイトのデータ同士を比較する。この比較は、例えば、比較関数(memcmp)を利用しても良い。そして、ステップS32において、データに差があるかどうかを調べる。
【0030】
差が有る場合(ステップS32 Yes)、重要パーティション領域11のXバイトのデータは前回の起動から今回の起動の間に追加されたデータを含んでいる。そこで、ステップS33〜S35において、HDD14のファイル領域に変更データを追加して書き込む。ステップS36において、重要パーティション領域11のXバイトのデータをバックアップパーティション領域12にコピーする。
そして、ステップS37の処理を実行する。
【0031】
差が無い場合(ステップS32 No)、重要パーティション領域11のデータは前回の起動から今回の起動の間に追加されたものではない。そこで、ステップS37、ステップS38において、比較するデータをXバイトずらし、上述のステップS31〜S36の処理を重要パーティション領域11とバックアップパーティション領域12との全てのデータの比較処理が終了するまで繰り返して実行する。
【0032】
重要パーティション領域11とバックアップパーティション領域12との全てのデータの比較処理が終了したとき(ステップS38 Yes)は、ステップS39において、次回起動のタイマを設定する。
【0033】
もし、ステップS39において、タイムアップ前に補助電源15が起動したときは、即ち、電断が発生したときは、直ちにステップS30からの処理を実行する。
【0034】
従って、電源断が発生し、補助電源15が起動したときは、前回バックアッププログラム16の起動以降に書き込まれた重要データをHDD14に格納することができる。そして、格納するデータは、重要パーティション領域11とバックアップパーティション領域12との比較で変化があったデータのみであるため、短時間でHDD14に保存処理することが可能である。
【0035】
[第1の実施の形態のバリエーション]
第1の実施の形態で述べた変化したデータを抽出する処理は次のように構成することも可能である。
【0036】
(1)重要パーティション領域11とバックアップパーティション領域12との比較は、Xバイトずつ行うのではなく、一時に全て実施しても良い。パーティション領域のサイズが大きくない、データ処理が短時間で行うことができる、補助電源15の供給可能時間が長い、等の条件を考慮すると一時に比較する方式が短時間で行える場合もある。
【0037】
(2)重要パーティション領域11とバックアップパーティション領域12との比較を、重要パーティション領域11の最新(カレント)位置から行っても良い。即ち、バックアップパーティション領域12の最新位置から過去に所定バイト遡ったデータと一致するまでの重要パーティション領域11の最新(カレント)位置から過去に遡ったデータが変化したデータと判断できる。最新位置からデータを比較することで、短時間で保存処理を実行することができる。
【0038】
(3)重要パーティション領域11とバックアップパーティション領域12との比較を、管理データ、あるいは履歴データに基づいて行っても良い。
【0039】
上述の各実施の形態で説明した機能は、ハードウェアを用いて構成するに留まらず、ソフトウェアを用いて各機能を記載したプログラムをコンピュータに読み込ませて実現することもできる。また、各機能は、適宜ソフトウェア、ハードウェアのいずれかを選択して構成するものであっても良い。
【0040】
従って、フローチャートとして記載され、説明された処理は、その処理を実現するハードウェアで構成することができる。
【0041】
より詳細に述べると、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態の装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、CD−R、CD−RW、DVD−ROM、DVD±R、DVD±RWなど)、半導体メモリ、またはこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をCPUで実行させれば、上述した実施形態の通信装置、通信相手装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合または読み込む場合はネットワークを通じて取得または読み込んでもよい。
また、記録媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワーク等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
さらに、本願発明における記録媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、LANやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。
また、記録媒体は1つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記録媒体に含まれ、媒体の構成は何れの構成であってもよい。
【0042】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記録媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
【0043】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0044】
1…データ保存装置、10…アプリケーションプログラム、11…重要パーティション領域、12…バックアップパーティション領域、13…その他パーティション領域、14…HDD、15…補助電源、16…バックアッププログラム。

【特許請求の範囲】
【請求項1】
重要データを格納する揮発性の重要パーティションメモリと、
任意のタイミングで起動して、取り扱うデータが重要データか否かを判断し、重要データを前記重要パーティションメモリに保存するアプリケーション部と、
所定周期毎及び電断時に起動して、前回の起動以降に前記重要パーティションメモリに保存された追加データを抽出して、当該追加データを不揮発性メモリに格納するバックアップ部と
を備えたことを特徴とするデータ保存装置。
【請求項2】
前記重要パーティションメモリに保存されるデータのバックアップ領域である揮発性のバックアップパーティションメモリを更に備え、
前記バックアップ部は、前記追加データを前記バックアップパーティションメモリに追加して保存することを特徴とする請求項1に記載のデータ保存装置。
【請求項3】
前記バックアップ部は、前記重要パーティションメモリのデータと前記バックアップパーティションメモリのデータとを比較して前記追加データを抽出することを特徴とする請求項2に記載のデータ保存装置。
【請求項4】
前記バックアップ部は、前記重要パーティションメモリの最新書込み位置にあるデータから過去に遡ったデータを前記バックアップパーティションメモリのデータと比較して前記追加データを抽出することを特徴とする請求項3に記載のデータ保存装置。
【請求項5】
前記データ保存装置の電断時に一時的に電源を供給する補助電源を有し、
前記重要パーティションメモリのサイズは、前記補助電源による電源供給時間、前記重要パーティションメモリ上でのデータ処理時間、前記不揮発性メモリとのアクセス時間に基づいて決定されることを特徴とする請求項1乃至4のいずれか1項に記載のデータ保存装置。
【請求項6】
揮発性メモリと不揮発性メモリとを備えたデータ保存装置のデータ保存方法において、
前記揮発性メモリに重要データを格納する重要パーティションメモリを設け、
任意のタイミングで起動するアプリケーション部によって、取り扱うデータが重要データか否かを判断して重要データを前記重要パーティションメモリに保存し、
所定周期毎及び電断時に起動するバックアップ部によって、前回の起動以降に前記重要パーティションメモリに保存された追加データを抽出して、当該追加データを不揮発性メモリに格納すること
を特徴とするデータ保存方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate