説明

計算機及びデータ退避方法

【課題】低コストに且つ安全にシステムを停止できる計算機を提供する。
【解決手段】データを記憶する不揮発メモリと、不揮発メモリへのデータの退避を制御する制御プロセッサと、外部電源の障害時に当該計算機に電力を供給するバッテリと、を備えた計算機であって、制御プロセッサは、バッテリに蓄えられた充電量を確認し、確認された充電量に基づいて、外部電源の障害時にバッテリによって不揮発メモリに退避可能なデータ量を算出し、不揮発メモリに退避すべきデータのうち、退避可能なデータ量を除いたデータ量のデータを、予め不揮発メモリに退避する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算機に関し、特に、停電時のデータ退避及び停電復旧時のデータ復旧に係る技術に関する。
【背景技術】
【0002】
従来、データセンターや病院等におけるサーバシステムは、UPS(Uninterruptible Power Supply、無停電電源装置)を備え、停電等の障害時においても継続運転が可能である。具体的には、UPSを用いた継続運転中に自家発電装置を稼働することによって、システムを継続的に運転させる。
【0003】
特許文献1には、障害対応に関連する技術として、障害による外部電源遮断時にキャッシュメモリ内のデータ種別やバッテリ残量に合わせた制御により、キャッシュデータを保護しつつバッテリ電源の電力消費を低減させる技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−172355号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のUPSを用いたシステムでは、UPSに用いられるバッテリのコストや設置コストが高くなる問題があった。また、自家発電装置を備えない場合や、電力供給が長時間停止することが想定される場合において、安全にシステムを停止できない場合があった。
【0006】
本発明は、上述した課題を考慮したものであって、低コストに且つ安全にシステムを停止できる計算機を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【0008】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、データを記憶する不揮発メモリと、前記不揮発メモリへのデータの退避を制御する制御プロセッサと、外部電源の障害時に当該計算機に電力を供給するバッテリと、を備えた計算機であって、前記制御プロセッサは、前記バッテリに蓄えられた充電量を確認し、確認された前記充電量に基づいて、外部電源の障害時に前記バッテリによって前記不揮発メモリに退避可能なデータ量を算出し、前記不揮発メモリに退避すべきデータのうち、前記退避可能なデータ量を除いたデータ量のデータを、予め前記不揮発メモリに退避することを特徴とする。
【発明の効果】
【0009】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、低コストに且つ安全にシステムを停止することができる。
【図面の簡単な説明】
【0010】
【図1】本発明の実施形態の情報処理装置の構成の一例を示す図である。
【図2】本発明の実施形態の電源装置の構成の一例を示す図である。
【図3】本発明の実施形態の転送可能データ情報テーブルの一例を示す図である。
【図4】本発明の実施形態のバッテリの充電量に応じたデータの退避動作を示すフローチャートである。
【図5】本発明の実施形態の更新データ情報テーブルの一例を示す図である。
【図6】本発明の実施形態の停電時における電源制御プロセッサのデータ退避処理の制御ロジックを示すフローチャートの一例である。
【図7】本発明の実施形態の停電時における制御プロセッサのデータ退避処理の制御ロジックを示すフローチャートの一例である。
【図8】本発明の実施形態の停電復旧時におけるデータ復旧処理の制御ロジックを示すフローチャートの一例である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照して説明する。なお、実施の形態を説明するための全図において、同一の構成要素には原則として同一の符号を付し、重複する説明は省略する。
【0012】
図1は、本発明の実施形態の情報処理装置(計算機)1の構成の一例を示す図である。
【0013】
情報処理装置1は、マザーボード100及び電源装置170を同一のシャーシ10上に備える。マザーボード100には、CPU(Central Processing Unit)110、PC(Peripheral Controller)120、HDD(Hard Disk Drive)130、DRAM(Dynamic Random Access Memory)140、制御(用)プロセッサ150及び不揮発メモリ160等が搭載される。
【0014】
CPU110は、不図示のレジスタやキャッシュメモリを備えた演算処理装置である。PC120は、周辺機器(図1ではHDD130)との通信制御を実行する制御装置である。HDD130は、各種情報を記録する不揮発性の記憶装置である。
【0015】
DRAM140は、揮発性の記憶装置である。制御プロセッサ150は、本発明の実施形態のデータ退避処理及びデータ復旧処理を実行する演算処理装置である。不揮発メモリ160は、フラッシュメモリ(Flash Momory)等の不揮発性の記憶装置である。
【0016】
なお、以下、HDD130及び不揮発メモリ160を総称する場合、「不揮発性の記憶装置」という。また、CPU110のレジスタやキャッシュメモリ及びDRAM140を総称する場合、「揮発性の記憶装置」という。
【0017】
電源装置170は、後述するバッテリ250(図2参照)を搭載し、外部電源180からの電力供給が遮断された場合、すなわち停電時において、マザーボード100に電力を供給する。この電源装置170については、図2を用いて詳細に後述する。外部電源180は、電源装置170を介してマザーボード100に給電する外部の電源である。
【0018】
図2は、本発明の実施形態の電源装置170の構成の一例を示す図である。
【0019】
電源装置170は、電源制御(用)プロセッサ200、AC/DCコンバータ210、211、212、スイッチ220、221、A/Dコンバータ230、キャパシタ240、バッテリ250、DC/DCコンバータ260、ダイオード270、271及び配線等を備える。
【0020】
電源制御プロセッサ200は、電源装置170の全体を制御する。具体的には、AC/DCコンバータ210の動作、スイッチ220、221のオン・オフの切替え、DC/DCコンバータ260のオン・オフの切替え及びキャパシタ240又はバッテリ250の充電状態をA/Dコンバータ230の出力信号に基づいて確認する動作等を実行する。
【0021】
AC/DCコンバータ210〜212は、外部電源180から入力された交流電力を直流電力に変換する。スイッチ220、221は、電流のオン・オフを切り替える。例えばスイッチ220がオンである場合、AC/DCコンバータ211から出力される直流電力はキャパシタ240に入力される。すなわちキャパシタ240は充電される。A/Dコンバータ230は、アナログ量で示される電圧値をデジタル量で示される電圧値に変換する。
【0022】
キャパシタ240は、瞬停対応の小容量のコンデンサである。バッテリ250は、小容量の蓄電池又はキャパシタ240よりも大容量のコンデンサである。
【0023】
DC/DCコンバータ260は、入力された直流電力を電圧の異なる直流電力に変換する。ダイオード270、271は、整流作用(電流を一定方向にしか流さない作用)を持つ電子素子である。
【0024】
通常運転時、電源装置170には外部電源180からの交流電力が供給される。供給された交流電力は、AC/DCコンバータ210で直流電力に変換された後、ダイオード270を介してマザーボード100に給電される。また、AC/DCコンバータ211で直流電力に変換された後、スイッチ220を通ってキャパシタ240に給電される。さらに、AC/DCコンバータ212で直流電力に変換された後、スイッチ221を通ってバッテリ250に給電される。
【0025】
ここで、外部電源180からの電力供給が瞬停(瞬断)、すなわち数マイクロ秒程度断たれた場合には、キャパシタ240に蓄えられた電力がマザーボード100に給電される。
【0026】
一方、外部電源180からの電力供給が数マイクロ秒を超える停電が発生した場合、電源制御プロセッサ200は、A/Dコンバータ230の出力値(具体的には、A/Dコンバータ230に入力されたAC/DCコンバータ211の出力電圧値)に基づいて停電の発生を確認する。その後、停電が発生した旨を制御プロセッサ150に通知する。加えて、DC/DCコンバータ260を起動する。これにより、バッテリ250に蓄えられた電力がダイオード271を介してマザーボード100に給電される。
【0027】
また電源制御プロセッサ200は、A/Dコンバータ230の出力値(具体的には、A/Dコンバータ230に入力されたキャパシタ240やバッテリ250の出力電圧、温度情報及び充放電電流の情報等)に基づいて、キャパシタ240やバッテリ250の充電状況や故障状態を判定する。その後、キャパシタ240やバッテリ250の充電状況や故障状態を制御プロセッサ150に通知する。
【0028】
なお、制御プロセッサ150内の記憶領域にデータを書き込むことによって通知してもよいし、制御プロセッサ150が読み込むことが可能な外部記憶領域にデータを書き込むことによって通知してもよい。
【0029】
図3は、本発明の実施形態の転送可能データ情報テーブル300の一例を示す図である。
【0030】
転送可能データ情報テーブル300では、バッテリ250の充電量(充電残量)と、このバッテリ250の充電量を用いて不揮発メモリ160へ転送可能なデータ量との対応関係を示す情報が格納される。この転送可能データ情報テーブル300は、予め生成され、不揮発メモリ160(図1参照)に格納される。
【0031】
図3に示す例では、バッテリ250の充電量(単位:ワット)と、DRAM140から不揮発メモリ160へ転送可能なデータ量(単位:メガバイト)と、CPU110(厳密には、CPU110内のレジスタやキャッシュメモリ)から不揮発メモリ160へ転送可能なデータ量(単位:メガバイト)とが対応付けられている。
【0032】
なお、CPU110から不揮発メモリ160へ転送可能なデータ量は、CPU110内のレジスタやキャッシュメモリの種類、転送方法毎に異なっていてもよい。
【0033】
また、転送可能データ情報テーブル300には、図3に示す各具体値に代えて、計算式のパラメータ値が格納されてもよい。例えば図3に示す例では、バッテリ250の充電量を「X」とする場合、DRAM140から不揮発メモリ160へ転送可能なデータ量は「5X+500」で示される。同様に、CPU110から不揮発メモリ160へ転送可能なデータ量は「25X+2500」で示される。そのため、これらの各計算式のパラメータ値を格納してもよい。この場合には、制御プロセッサ150は、格納されたパラメータ値を用いた計算式とバッテリ250の充電量とに基づいて、不揮発メモリ160へ転送可能なデータ量を算出する。
【0034】
図4は、本発明の実施形態のバッテリ250の充電量に応じたデータの退避動作を示すフローチャートである。
【0035】
ここでは、情報処理装置1が通常運転時(非停電時)に、バッテリ250の充電量(残量)に応じて、データを不揮発メモリ160に予め退避させる動作について説明する。
【0036】
まずステップ410において、電源制御プロセッサ200は、バッテリ250の充電量を確認する(S410)。バッテリ250の充電量は、A/Dコンバータ230の出力値(具体的には、A/Dコンバータ230に入力されるバッテリ250の出力電圧、温度情報及び充放電電流の情報等)と、バッテリ250の特性データとを比較することによって求められる。その後、求められたバッテリ250の充電量の情報を制御プロセッサ150に通知する。なお、電源制御プロセッサ200は、バッテリ250の充電量を定期的に確認する。
【0037】
次にステップ420において、制御プロセッサ150は、ステップ410で求められたバッテリ250の残量と、転送可能データ情報テーブル300(図3参照)とに基づいて、停電時にバッテリ250によって不揮発メモリ160へ転送可能(退避可能)なデータ量を求める(S420)。
【0038】
その後ステップ430において、制御プロセッサ150は、バックアップデータと、現状データとの差分データのデータ量を求める(S430)。バックアップデータとは、直近に揮発性の記憶装置から不揮発性の記憶装置へバックアップ(退避)されたデータである。現状データとは、揮発性の記憶装置に現に格納されているデータである。すなわち差分データとは、バックアップデータに対して更新されたデータ(以下、「更新データ」という。)であり、又は不揮発性の記憶装置に退避すべきデータであると言い換えることができる。
【0039】
なお、制御プロセッサ150は、CPU110内のTLB(Translation Look-aside Buffer)のダーティビットを確認することによって、更新データのデータ量を求めてもよい。
【0040】
ここでTLBとは、CPU110内のキャッシュであって、CPU110がプログラムの実行時に利用する仮想アドレスと、DRAM140上の物理アドレスとの対応関係を示すマッピング情報を、例えばページ(又はブロック)と呼ばれるサイズ単位で管理する変換テーブルである。このTLBは、情報処理装置1に搭載されたOS(Operating System)によって管理され、DRAM140上のページテーブルによって管理されるマッピング情報の一部を保持している。
【0041】
またTLBは、各ページ内のデータが書き換えられたか否かを示すダーティビット(ダーティフラグ)を管理する。そのため、所定のページに対応するダーティビットがダーティである(1が設定されている)場合、当該所定のページに対応する仮想アドレスのデータ(CPU110内のキャッシュメモリ上のデータ)が書き換えられている。一方、当該所定のページに対応する物理アドレスのデータ(DRAM140上のデータ)は書き換えられてない。すなわち当該所定のページに対応する仮想アドレスのデータと、物理アドレスのデータとが上記の更新データとなる。
【0042】
なお、ステップ430において、制御プロセッサ150は、CPU110によって発行されたDRAM140への書込み命令に基づいて、書込み対象のアドレス及び書込みデータのサイズを取得し、上記の更新データのデータ量を求めてもよい。
【0043】
また、ステップ430において、制御プロセッサ150は、更新データ情報テーブル500(図5を用いて後述)にエントリを追加し、更新データのアドレス、データサイズ、優先度及び更新時刻を、それぞれ更新アドレス(バックアップ元のアドレス)501、データサイズ503、優先度506及び更新時刻507に書き込む。各属性の詳細については図5を用いて後述する。
【0044】
その後ステップ440において、制御プロセッサ150は、ステップ430で求められた差分データ(更新データ)のデータ量と、ステップ420で求められた停電時に転送可能なデータ量とを比較する(S440)。差分データのデータ量が停電時に転送可能なデータ量よりも小さい場合(S440でNo)、停電時においても差分データを退避可能であり、予め退避させる必要がない。そのため、処理を終了する。
【0045】
一方、差分データのデータ量が停電時に転送可能なデータ量よりも大きい場合(S440でYes)、制御プロセッサ150は、差分データのデータ量が停電時に転送可能なデータ量よりも小さくなるように、予め不揮発性の記憶装置にデータを退避させる(S450)。例えば差分データのデータ量が3000MBであって、停電時に転送可能なデータ量が1000MBである場合、差分データ3000MBのうち、1000MBを除いた(差し引いた)2000MBのデータを予め不揮発性の記憶装置に退避させる。これにより、停電時において残りの1000MBの差分データを確実に退避させることができる。その後、処理を終了する。
【0046】
なお、ステップ450では、制御プロセッサ150は、差分データに設定されている優先度506(図5参照)を参照し、優先度506の高いデータの順に退避させてもよい。
【0047】
また、制御プロセッサ150は、ステップ450においてデータを退避させる際、退避先のアドレスを、更新データ情報テーブル500(図5参照)中の当該データに対応するバックアップ先アドレス502に書き込む。また、退避が完了した旨を示す退避完了フラグを、退避フラグ504又は505に書き込む。すなわち退避先がHDD130である場合には退避フラグ505に“1”を設定する。一方、退避先が不揮発メモリ160である場合には退避フラグ504に“1”を設定する。
【0048】
以上に示すように、情報処理装置1が通常運転時に、制御プロセッサ150が、バッテリ250の充電量に応じて、不揮発メモリ160に予め更新データを退避させる。なお、CPU110ではなく制御プロセッサ150が一連の処理を実行することにより、CPU110の処理低下を防ぐことができる。
【0049】
図5は、本発明の実施形態の更新データ情報テーブル500の一例を示す図である。
【0050】
更新データ情報テーブル500では、不揮発性の記憶装置に退避すべき更新データに関する情報が格納される。この更新データ情報テーブル500は、不揮発メモリ160(図1参照)に格納される。
【0051】
図5に示す例では、更新アドレス501、バックアップ先アドレス502、データサイズ503、不揮発メモリへの退避フラグ504、HDDへの退避フラグ505、優先度506及び更新時刻507が対応付けられた情報が、更新データに関する情報として格納される。
【0052】
更新アドレス501は、更新データのバックアップ元のアドレス(DRAM140又はCPU110のキャッシュメモリ上の配置を示す先頭アドレス)である。バックアップ先アドレス502は、更新データのバックアップ先の不揮発性の記憶装置上の配置を示す先頭アドレスである。
【0053】
データサイズ503は、更新データのデータサイズである。すなわち更新アドレス501で示す先頭アドレスから、データサイズ503で示すサイズだけオフセットしたアドレスまでのデータが更新データである。
【0054】
不揮発メモリへの退避フラグ504は、更新データの退避先が不揮発メモリ160であるか否かを示すフラグである。更新データが不揮発メモリ160に退避された場合に、退避フラグ504には“1”が設定される。それ以外の場合には“0”が設定される。
【0055】
HDDへの退避フラグ505は、更新データの退避先がHDD130であるか否かを示すフラグである。更新データがHDD130に退避された場合に、退避フラグ505には“1”が設定される。それ以外の場合には“0”が設定される。
【0056】
優先度506は、各更新データのデータ退避に係る優先度を示す情報である。データ退避の際には、優先度506が高い更新データが優先して退避される。この優先度506は、更新データを使用するアプリケーションプログラムの種類や使用頻度に応じて付与される。例えばユーザによって予め設定されたアプリケーションプログラム毎の重要度に応じて、重要度の高いアプリケーションプログラムほど更新データの優先度を高くする。また、使用頻度の高いアプリケーションプログラムほど更新データの優先度を高くする。これにより、万が一完全なデータ退避を実行できない場合であっても、優先度の高い更新データを退避させることができる。
【0057】
更新時刻507は、更新データの更新時刻を示す情報である。この更新時刻507は、図4のステップ403の処理後や更新データの退避が実行された場合に記録される。停電復旧時には、この更新時刻507の古い順にデータ復旧を実行することにより、データ退避前のデータ構成を復元することができる。
【0058】
以上説明してきた更新データ情報テーブル500では、更新データが不揮発メモリ160に退避された場合、更新データのバックアップ元のアドレス、不揮発メモリ160内のバックアップ先アドレスが、それぞれ更新アドレス501、バックアップ先アドレス502に記録され、不揮発メモリへの退避フラグ504に“1”が設定される。その後HDD130に退避された場合、不揮発メモリへの退避フラグ504が“0”に変更され、HDDへの退避フラグ505に“1”が設定される。また、DRAM140内の更新データがHDD130に退避された場合、退避元のDRAM140のアドレスと退避先のHDD130上のアドレスとが、それぞれ更新アドレス501、バックアップ先アドレス502に記録され、HDDへの退避フラグ505に“1”が設定される。
【0059】
図6は、本発明の実施形態の停電時における電源制御プロセッサ200のデータ退避処理の制御ロジックを示すフローチャートの一例である。
【0060】
ここでは、外部電源180からの電力供給が停止し、いわゆる停電状態になった場合のデータ退避処理について説明する。
【0061】
まずステップ610において、電源制御プロセッサ200は、外部電源180の状態を確認する(S610)。具体的には、A/Dコンバータ230の出力値に基づいて、外部電源180からの電力供給を監視する。なお、電源制御プロセッサ200は、外部電源180からの電力供給を定期的に確認する。
【0062】
次にステップ620において、電源制御プロセッサ200は、A/Dコンバータ230の出力値に基づいて、外部電源180からの電力供給が停止しているか否かを判定する(S620)。外部電源180からの電力供給が停止していない場合(S620でNo)、停電時におけるデータ退避処理は必要ないので、処理を終了する(S650)。
【0063】
一方、外部電源180からの電力供給が停止していた場合(S620でYes)、電源制御プロセッサ200は、DC/DCコンバータ260を起動し、バッテリ250による給電に基づいてマザーボード100を駆動するよう切り替える(S630)。ステップ630では、バッテリ250による給電に切り替えるまでの間は、キャパシタ240による給電に基づいてマザーボード100を駆動する。
【0064】
その後ステップ640において、電源制御プロセッサ200は、バッテリ250による給電に切り替わった旨を制御プロセッサ150に通知し、制御プロセッサ150はデータ退避を実行する(S640)。制御プロセッサ150によるデータ退避については図7を用いて後述する。その後、処理を終了する(S650)。
【0065】
以上に示す処理により、電源制御プロセッサ200は、外部電源180からの電力供給が停止し、いわゆる停電状態になった場合にデータ退避を実行する。
【0066】
図7は、本発明の実施形態の停電時における制御プロセッサ150のデータ退避処理の制御ロジックを示すフローチャートの一例である。ここでは、図6のステップ640の処理の詳細について説明する。
【0067】
まずステップ710において、制御プロセッサ150は、更新データ情報テーブル500(図5参照)に登録されている各更新データのうち、不揮発性の記憶装置に記録されていない更新データを確認する(S710)。具体的には、更新データ情報テーブル500において退避フラグ504、505がいずれも“0”である更新データを確認する。
【0068】
次にステップ720及び730において、制御プロセッサ150は、それぞれCPU110のレジスタ値、DRAM140内のページテーブルを不揮発メモリ160に退避する(S720、S730)。
【0069】
その後ステップ740において、制御プロセッサ150は、CPU110内のキャッシュメモリ上のデータのうちの、ダーティビットがダーティであるページのデータ(すなわちダーティデータ)をDRAM140に書き戻す(ライトバックする)(S740)。ここでいうダーティデータとは、CPU110内のキャッシュメモリ上のデータであって、CPU110による書込み動作によってDRAM140内のデータと内容が非同一に更新されたデータである。
【0070】
その後ステップ750において、制御プロセッサ150は、DRAM140内の更新データを、各更新データに設定された優先度506の高い順に不揮発メモリ160に退避する(S750)。ここでいうDRAM140内の更新データとは、ステップ740の書き戻し後のDRAM140内のデータと、直近にDRAM140から不揮発性の記憶装置にバックアップされたデータとの差分データである。
【0071】
その後ステップ760において、制御プロセッサ150は、データの退避が完了した旨を示す退避完了フラグを、不揮発メモリ160上の特定の領域に記録する(S760)。なお、データ退避に失敗した場合には、失敗した旨の情報を記録してもよい。
【0072】
以上に示す処理により、制御プロセッサ150は、停電時にデータ退避を実行する。
【0073】
なお、ステップ720〜730の処理は、ステップ740〜750の処理の後に実行してもよい。また、ステップ740及び750の処理により、CPU110内のキャッシュメモリ上のダーティデータをDRAM140に一旦書き戻した後に、DRAM140内の更新データを不揮発メモリ160に退避させているが、この場合には限らない。例えば、DRAM140への書き戻しを実行せずに、CPU110内のキャッシュメモリ上のダーティデータ及びDRAM140内の更新データの両方を不揮発メモリ160に退避させてもよい。
【0074】
図8は、本発明の実施形態の停電復旧時におけるデータ復旧処理の制御ロジックを示すフローチャートの一例である。
【0075】
ここでは、外部電源180からの電力供給が復旧した場合、いわゆる通常状態に復旧した場合のデータ復旧処理について説明する。
【0076】
まずステップ810において、電源制御プロセッサ200は、外部電源180の状態を確認する(S810)。具体的には、A/Dコンバータ230の出力値に基づいて、外部電源180からの電力供給を監視する。なお、電源制御プロセッサ200は、復旧された外部電源180やその他の電源による供給電力によって動作するものとする。また、電源制御プロセッサ200は、外部電源180からの電力供給を定期的に確認する。
【0077】
外部電源180からの電力供給が復旧していない場合(S820でNo)、電源制御プロセッサ200は、データ復旧処理を実行できないので、処理を終了する。その後、一定時間経過した後に、図8に示す制御ロジックを再度繰り返す。
【0078】
一方、外部電源180からの電力供給が復旧した場合(S820でYes)、電源制御プロセッサ200は、外部電源180からの電力供給が復旧した旨を制御プロセッサ150に通知する(S830)。
【0079】
その後ステップ840において、制御プロセッサ150は、前回の停止(停電時の情報処理装置1のシャットダウン)が通常停止であったか否かを確認する(S840)。具体的には、不揮発メモリ160に退避完了フラグ(図7のステップ760参照)を読み込むことによって、前回の停止が通常停止であったか否かを確認する。
【0080】
通常停止でなかった場合(S840でNo)、すなわち退避完了フラグに“1”が設定されている場合、制御プロセッサ150は、不揮発メモリ160に退避されたデータを、元の位置(CPU110内のレジスタやキャッシュメモリ、DRAM140)に転送することによってデータを復旧する(S860)。ステップ860では、更新データ情報テーブル500を参照し、更新時刻507(図5参照)が古い順にデータを転送する。これは、更新アドレス501が重複するデータについての整合性を確保するためである。
【0081】
通常停止であった場合(S840でYes)、すなわち退避完了フラグに“0”が設定されている場合、制御プロセッサ150は、HDD130に格納されているブートプログラムに基づいて、通常のブート処理を実行する(S850)。なお、不揮発メモリ160にブートプログラムが格納されている場合には、不揮発メモリ160に格納されているブートプログラムに基づいて、通常のブート処理を実行してもよい。
【0082】
以上に示す処理により、情報処理装置1では、外部電源180からの電力供給が復旧した場合、いわゆる通常状態に復旧した場合にデータ復旧処理を実行する。
【0083】
以上説明してきたように、本発明の実施形態の情報処理装置1によれば、小型且つ小容量のバッテリ250を用いて、低コスト且つ安全にシステムの停止及び復旧を実現することができる。
【0084】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一つを示したものであり、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。本発明の要旨を逸脱しない範囲において種々変更可能である。
【符号の説明】
【0085】
1 情報処理装置(計算機)
10 シャーシ
100 マザーボード
110 CPU
130 HDD
140 DRAM
150 制御プロセッサ
160 不揮発メモリ
170 電源装置
180 外部電源
200 電源制御プロセッサ
250 バッテリ
300 転送可能データ情報テーブル
500 更新データ情報テーブル

【特許請求の範囲】
【請求項1】
データを記憶する不揮発メモリと、前記不揮発メモリへのデータの退避を制御する制御プロセッサと、外部電源の障害時に当該計算機に電力を供給するバッテリと、を備えた計算機であって、
前記制御プロセッサは、
前記バッテリに蓄えられた充電量を確認し、
確認された前記充電量に基づいて、外部電源の障害時に前記バッテリによって前記不揮発メモリに退避可能なデータ量を算出し、
前記不揮発メモリに退避すべきデータのうち、前記退避可能なデータ量を除いたデータ量のデータを、予め前記不揮発メモリに退避することを特徴とする計算機。
【請求項2】
前記制御プロセッサは、当該計算機が備えるトランスレーション・ルックアサイド・バッファ(TLB)のダーティビットを用いて、前記不揮発メモリに退避すべきデータのデータ量を算出することを特徴とする請求項1に記載の計算機。
【請求項3】
当該計算機を制御するプロセッサと、前記不揮発メモリに退避すべきデータを記憶する揮発メモリと、を備え、
前記制御プロセッサは、前記プロセッサによって発行された前記揮発メモリへの書込み命令に基づいて、前記揮発メモリから前記不揮発メモリに退避すべきデータのデータ量を算出することを特徴とする請求項1に記載の計算機。
【請求項4】
前記バッテリはコンデンサであることを特徴とする請求項1に記載の計算機。
【請求項5】
前記バッテリは、前記制御プロセッサ及び前記不揮発メモリと同一のシャーシ内に格納されることを特徴とする請求項1に記載の計算機。
【請求項6】
前記退避すべきデータに含まれるデータ毎に優先度が設定され、
前記制御プロセッサは、前記優先度の高いデータの順に前記不揮発メモリに退避することを特徴とする請求項1に記載の計算機。
【請求項7】
前記優先度は、当該データを使用するアプリケーションプログラム毎に付与される重要度に応じて設定されることを特徴とする請求項6に記載の計算機。
【請求項8】
前記優先度は、当該データを使用するアプリケーションプログラム毎の使用頻度に応じて設定されることを特徴とする請求項6に記載の計算機。
【請求項9】
データを記憶する不揮発メモリと、前記不揮発メモリへのデータの退避を制御する制御プロセッサと、外部電源の障害時に当該計算機に電力を供給するバッテリと、を備えた計算機におけるデータ退避方法であって、
前記制御プロセッサが、
前記バッテリに蓄えられた充電量を確認する手順と、
確認された前記充電量に基づいて、外部電源の障害時に前記バッテリによって前記不揮発メモリに退避可能なデータ量を算出する手順と、
前記不揮発メモリに退避すべきデータのうち、前記退避可能なデータ量を除いたデータ量のデータを、予め前記不揮発メモリに退避する手順と、
を含むことを特徴とするデータ退避方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−88928(P2013−88928A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−227244(P2011−227244)
【出願日】平成23年10月14日(2011.10.14)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】