(57)【要約】【課題】情報処理装置の動作停止期間において不揮発性記憶媒体に保持されている主記憶データを書き換え可能な主記憶データ書き換え装置を提供する。【解決手段】ハイバネーション機能を有するＯＳによって作成される主記憶データ中の対象データに対する書き換え条件を解析し、情報処理装置の外部から対象データを代替する環境データを取得するための第１の処理内容及び対象データを環境データに書き換えるための第２の処理内容を作成する書き換え条件解析部１１１と、動作停止期間において対象データを書き換えるために予め定められる起動時刻に情報処理装置が一時的に起動すると、第１の処理内容に従って環境データを取得する環境データ処理部１１２と、第２の処理内容に従って不揮発性記憶媒体において対象データが記憶される領域を環境データで書き換える書き換え処理部１１３とを具備する。【選択図】  図１
2010117984.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置の動作停止前に主記憶部に記憶されている主記憶データを、前記情報処理装置の動作停止期間に亘って不揮発性記憶媒体に保持させた状態で前記情報処理装置の動作を停止させる機能を有するオペレーティング・システムによって作成される前記主記憶データ中の対象データに対する書き換え条件を解析し、前記情報処理装置の外部から当該対象データを代替する環境データを取得するための第１の処理内容及び前記対象データを前記環境データに書き換えるための第２の処理内容を作成する書き換え条件解析部と、
前記動作停止期間において前記対象データを書き換えるために予め定められる起動時刻に前記情報処理装置が一時的に起動すると、前記第１の処理内容に従って前記環境データを取得する環境データ処理部と、
前記第２の処理内容に従って前記不揮発性記憶媒体において前記対象データが記憶される領域を前記環境データで書き換える書き換え処理部と
を具備することを特徴とする主記憶データ書き換え装置。
【請求項２】
前記書き換え条件は、前記対象データのデータ種別と、当該対象データが記憶される前記不揮発性記憶媒体における領域を識別する物理アドレスとを含み、
前記環境データ処理部は、前記動作停止期間において前記起動時刻に前記情報処理装置が一時的に起動すると、当該情報処理装置に備えられるデータ入出力手段を介して前記データ種別に一致する環境データを取得し、
前記書き換え処理部は、前記物理アドレスによって識別される前記不揮発性記憶媒体の領域を前記環境データで書き換える
ことを特徴とする請求項１記載の主記憶データ書き換え装置。
【請求項３】
前記不揮発性記憶媒体は、前記主記憶部とは別の補助記憶部を構成することを特徴とする請求項２記載の主記憶データ書き換え装置。
【請求項４】
前記不揮発性記憶媒体は、前記主記憶部を構成することを特徴とする請求項２記載の主記憶データ書き換え装置。
【請求項５】
前記書き換え処理部は、（ａ）前記対象データに基づき予め作成された検査用データと、前記環境データ処理部による前記環境データ取得後における対象データに基づき作成した検査対象データとを比較し、（ｂ）前記検査対象データ及び前記検査用データが一致していれば、前記物理アドレスによって指定される前記不揮発性記憶媒体の領域を前記環境データで書き換え、書き換え後の対象データに基づき新たな検査用データを作成し、（ｃ）前記検査対象データ及び前記検査用データが一致しなければ、当該対象データに対する書き換えを省略することを特徴とする請求項３または請求項４記載の主記憶データ書き換え装置。
【請求項６】
前記起動時刻は、当該起動時刻の設定時刻を基準に、前記情報処理装置を駆動するバッテリの残量を前記動作停止期間において枯渇させないための最小の起動間隔より少なくとも長い間隔を空けて定められることを特徴とする請求項３または請求項４記載の主記憶データ書き換え装置。
【請求項７】
前記書き換え条件は、前記対象データのデータ種別に対して付与される少なくとも２段階の優先度を含み、
前記起動時刻は、前記バッテリの残量が基準値未満であれば、前記優先度が当該基準値に応じた段階以上であるデータ種別に属する対象データに対してのみ設定される
ことを特徴とする請求項６記載の主記憶データ書き換え装置。
【請求項８】
情報処理装置の動作停止前に主記憶部に記憶されている主記憶データを、前記情報処理装置の動作停止期間に亘って不揮発性記憶媒体に保持させた状態で前記情報処理装置の動作を停止させる機能を有するオペレーティング・システムによって作成される前記主記憶データ中の対象データに対する書き換え条件を解析し、前記情報処理装置の外部から当該対象データを代替する環境データを取得するための第１の処理内容及び前記対象データを前記環境データに書き換えるための第２の処理内容を作成することと、
前記動作停止期間において前記対象データを書き換えるために予め定められる起動時刻に前記情報処理装置が一時的に起動すると、前記第１の処理内容に従って前記環境データを取得することと、
前記第２の処理内容に従って前記不揮発性記憶媒体において前記対象データが記憶される領域を前記環境データで書き換えることと
を具備する主記憶データ書き換え方法。
【請求項９】
情報処理装置を、
前記情報処理装置の動作停止前に主記憶部に記憶されている主記憶データを、前記情報処理装置の動作停止期間に亘って不揮発性記憶媒体に保持させた状態で前記情報処理装置の動作を停止させる機能を有するオペレーティング・システムによって作成される前記主記憶データ中の対象データに対する書き換え条件を解析し、前記情報処理装置の外部から当該対象データを代替する環境データを取得するための第１の処理内容及び前記対象データを前記環境データに書き換えるための第２の処理内容を作成する書き換え条件解析手段、
前記動作停止期間において前記対象データを書き換えるために予め定められる起動時刻に前記情報処理装置が一時的に起動すると、前記第１の処理内容に従って前記環境データを取得する環境データ処理手段、
前記第２の処理内容に従って前記不揮発性記憶媒体において前記対象データが記憶される領域を前記環境データで書き換える書き換え処理手段
として動作させるための主記憶データ書き換えプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の動作停止期間において主記憶データを書き換える主記憶データ書き換え装置及び方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）に代表される様々な情報処理装置が多くのユーザによって使用されている。情報処理装置には、ユーザの多様な使用態様に適応するために、複数の動作停止方式が設けられる。最も単純な動作停止方式は、情報処理装置の電源を単にＯＦＦにすること（いわゆるシャットダウン）である。しかしながら、情報処理装置の主記憶部にはアクセス速度に優れる揮発性記憶媒体が用いられることが多い。従って、電源をＯＦＦにすると主記憶データが失われてしまうので、動作再開から以前の作業状態に復帰するまでに比較的多くの時間を要する。即ち、ユーザが一時的に作業を中断するような使用態様に関して、シャットダウンは不向きである。
【０００３】
一方、主記憶部への電源供給を省電力モードで継続して主記憶データを保持することにより、動作再開から以前の作業状態に素早く復帰できる動作停止方式（いわゆるサスペンド、スタンバイ等）も知られている。サスペンドは、動作停止期間にある程度の電力を消費するものの、前述の通り動作再開から以前の作業状態に素早く復帰できる点で有用である。また、非特許文献１には、情報処理装置の動作停止前に、不揮発性記憶媒体で構成される補助記憶部等に主記憶データを一時的に待避させることにより、動作再開から以前の作業状態に素早く復帰しつつ、サスペンドに比べて電力消費を抑えることのできる動作停止方式（いわゆるハイバネーション（hibernation）、ソフトウェアサスペンド）も提案されている。
【０００４】
また、特許文献１には、通信装置の電源をＯＮしてから、中央処理装置（ＣＰＵ；central processing unit）が起動を完了するまでの期間（以下、単に起動準備期間と称する）に、ネットワークを介して受信されたデータ（パケット）の取りこぼしを防ぐことを目的とした動作再開方式が提案されている。上記通信装置には、主記憶手段とは別個に副記憶手段が設けられており、上記起動準備期間に受信されたデータは、当該副記憶手段に一時的に記憶される。そして、ＣＰＵの起動完了後に、上記副記憶手段に記憶されたデータが主記憶手段にコピーされる。従って、特許文献１記載の通信装置によれば、起動準備期間における受信データの取りこぼしを防ぐことができる。
【０００５】
また、特許文献２記載の呼情報サーバの同期方法は、呼情報サーバを互いに物理的に分離された稼働系サーバ及び待機系サーバで構成することにより冗長化し、いわゆるＲＤＭＡ（Remote Direct Memory Access）機能を用いて、両サーバ間でデータを同期させている。従って、特許文献２記載の呼情報サーバの同期方法によれば、稼働系サーバが何らかの理由でダウンした場合に、代替手段としての待機系サーバが動作を継続できるので、高い信頼性を期待できる。
【特許文献１】特許第３８８２４５２号公報（１２頁、図２）
【特許文献２】特開２００６−２７０５８１号公報（７頁、図１）
【非特許文献１】“Linux（登録商標） Software Suspend”、［online］、［2008/10/22検索］、インターネット＜URL: http://lxr.linux.no/linux+v.2.6.26/Documentation/power/swsusp.txt＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
例えば、非特許文献１記載のいわゆるソフトウェアサスペンド（ハイバネーション）によれば、情報処理装置は、動作再開から以前の作業状態に素早く復帰し、かつ、動作停止期間における消費電力を抑えられる。ところで、主記憶データの中には、例えば有効期限が設けられているデータ、時間の経過に伴い内容が変更されるデータ等のデータ種別が含まれ得る。即ち、情報処理装置の動作停止期間が比較的長いと、不揮発性記憶媒体に保持されている主記憶データの一部が失効したり、内容が古くなったりするおそれがある。従って、情報処理装置の動作を再開させたとしても、上記データ種別に属するデータの更新が必要となり、スムーズに以前の作業状態に復帰できないおそれがある。尚、情報処理装置の動作停止期間において、不揮発性記憶媒体に保持されている主記憶データを書き換える手段は、上記特許文献１及び特許文献２のいずれにも開示されていない。
【０００７】
従って、本発明は情報処理装置の動作停止期間において不揮発性記憶媒体に保持されている主記憶データを書き換え可能な主記憶データ書き換え装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る主記憶データ書き換え装置は、情報処理装置の動作停止前に主記憶部に記憶されている主記憶データを、前記情報処理装置の動作停止期間に亘って不揮発性記憶媒体に保持させた状態で前記情報処理装置の動作を停止させる機能を有するオペレーティング・システムによって作成される前記主記憶データ中の対象データに対する書き換え条件を解析し、前記情報処理装置の外部から当該対象データを代替する環境データを取得するための第１の処理内容及び前記対象データを前記環境データに書き換えるための第２の処理内容を作成する書き換え条件解析部と、前記動作停止期間において前記対象データを書き換えるために予め定められる起動時刻に前記情報処理装置が一時的に起動すると、前記第１の処理内容に従って前記環境データを取得する環境データ処理部と、前記第２の処理内容に従って前記不揮発性記憶媒体において前記対象データが記憶される領域を前記環境データで書き換える書き換え処理部とを具備する。
【発明の効果】
【０００９】
本発明によれば、情報処理装置の動作停止期間において不揮発性記憶媒体に保持されている主記憶データを書き換え可能な主記憶データ書き換え装置を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、本発明の実施形態について説明する。  
（第１の実施形態）  
図１に示すように、本発明の第１の実施形態に係る主記憶データ書き換え装置１１０を搭載する情報処理装置１００は、ＭＰＵ（micro processing unit）１０１、主記憶部１０２、補助記憶部１０３、タイマ部１０４、ネットワークインタフェース１０５及び起動用ファームウェア記憶部１０６を有する。
【００１１】
ＭＰＵ１０１は、オペレーティング・システム（以下、単にＯＳと称する）を含む各種ソフトウェアに関する処理を実行可能なデバイスである。ＭＰＵ１０１は、汎用のプロセッサで構成されるのが主流であるが、専用の半導体プロセッサであるＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）等で構成されてもよい。また、ＭＰＵ１０１は、再構成可能なプロセッサであるＦＰＧＡ（Field Programmable Gate Array）で構成されてもよいし、動的再構成可能なリコンフィギュラブル・プロセッサ（reconfigurable processor）で構成されてもよい。また、ＭＰＵ１０１は複数のコアを有するマルチコアプロセッサで構成されてもよいし、情報処理装置１００において複数搭載されてもよい。
【００１２】
以降の説明において、ＯＳという用語は、中核部分であるカーネルの他に、カーネルの機能の管理及びカーネルの機能を用いて情報処理装置１００によって実行される機能の管理を行うサービス（いわゆるデーモン）と、上記各種機能を用いて情報処理を実行するソフトウェア（アプリケーション）とを含む。尚、情報処理装置を後述する主記憶データ書き換え装置１１０として動作させるための主記憶データ書き換えプログラムに相当するソフトウェアは、ＯＳという用語に含まれるソフトウェアでないものとする。
【００１３】
主記憶部１０２には、ＭＰＵ１０１によって実行されるソフトウェアが必要とするデータが一時的に記憶される。主記憶部１０２は、いわゆる揮発性記憶媒体で構成され、電力供給の停止により記憶されているデータが消失する。例えば、主記憶部１０２は、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）等で構成される。
【００１４】
補助記憶部１０３は、ＭＰＵ１０１によって実行されるソフトウェア、当該ソフトウェアの処理対象となるデータ等が記憶される。補助記憶部１０３は、いわゆる不揮発性記憶媒体で構成され、電力供給が停止しても記憶されているデータが消失しない。例えば、補助記憶部１０３は、磁気記憶媒体であるＨＤＤ（Hard Disc Drive）、半導体記憶媒体であるＮＯＲ型フラッシュメモリ、ＮＡＮＤ型フラッシュメモリ、ＳＳＤ（Solid State Drive）等で構成される。補助記憶部１０３には、ＭＰＵ１０１で実行中のＯＳがハイバネーションに移行する際に、当該ＯＳの作用により主記憶部１０２に記憶されている主記憶データ１２０が待避（コピー）される。上記主記憶データ１２０は、情報処理装置１００の動作再開時に、主記憶部１０２に再度コピーされる。
【００１５】
ここで、ハイバネーションという用語は、情報処理装置の動作再開から以前の作業状態に素早く復帰できるように、動作停止前の主記憶データを動作停止期間に亘って不揮発性記憶媒体に保持させた状態で、情報処理装置の動作を停止させることをいうものとする。即ち、本実施形態に係る情報処理装置１００のように、主記憶部が揮発性記憶媒体で構成されていれば、主記憶データを当該主記憶部とは別の不揮発性記憶媒体に一時的に待避させた状態で、情報処理装置の電源をＯＦＦにすることを指す。一方、主記憶部が不揮発性記憶媒体で構成されていれば、当該主記憶データを主記憶部に保持させた状態で、情報処理装置の電源をＯＦＦにすることを指す。
【００１６】
タイマ部１０４は、情報処理装置１００の電源のＯＮ／ＯＦＦに関わらず時刻を計測する。タイマ部１０４は、情報処理装置１００の動作停止期間において、計測時刻が予め設定されている次回起動時刻に達すると、情報処理装置１００の電源をＯＮに切り替える。
【００１７】
ネットワークインタフェース１０５は、情報処理装置１００が外部の情報処理装置とデータの送受信を行うためのデバイスである。ネットワークインタフェース１０５は、イーサネット（登録商標）、ＩＳＤＮ（登録商標）、ＦＡＸ  Ｍｏｄｅｍ等の有線通信用インタフェースでもよいし、ＷｉＦｉ（登録商標）（無線ＬＡＮ）、携帯電話等の無線通信用インタフェースでもよい。また、図１には、１つのネットワークインタフェース１０５が示されているが、複数のネットワークインタフェース１０５が設けられてもよい。
【００１８】
起動用ファームウェア記憶部１０６には、情報処理装置１００の各構成要素を認識する機能、初期化機能等を有する起動用ファームウェアが記憶されている。起動用ファームウェア記憶部１０６は、不揮発性記憶媒体で構成される。起動用ファームウェア記憶部１０６は、例えば前述した補助記憶部１０３の一部の領域として構成されてもよいし、補助記憶部１０３とは別に独立して構成されてもよい。ここで、起動用ファームウェアは、例えばＢＩＯＳ（Basic Input Output System）、ＥＦＩ（Extensible Firmware Interface）、ＥＦＩを用いてＢＩＯＳと同様の処理を実行するソフトウェア等である。上記起動用ファームウェアは、タイマ部１０４に対して次回起動時刻を設定する機能を有していてもよい。また、上記起動用ファームウェアは、情報処理装置１００の電源がＯＮに切り替えられた際に、後述する主記憶データ書き換え装置１１０に関する処理と、補助記憶部１０３に記憶されているＯＳ等のソフトウェアに関する処理とのいずれを開始するかを、予め設定されている条件に基づき判定する機能を有する。
【００１９】
上記予め設定されている条件は、例えば、タイマ部１０４の作用により情報処理装置１００の電源がＯＮに切り替えられていれば主記憶データ書き換え装置１１０に関する処理を開始し、それ以外のトリガ（例えば、ユーザによる情報処理装置１００の電源ボタンの押下）により情報処理装置１００の電源がＯＮに切り替えられていれば補助記憶部１０３に記憶されているＯＳ等のソフトウェアに関する処理を開始する等の、上記ファームウェアの条件分岐に用いられる情報である。
【００２０】
主記憶データ書き換え装置１１０は、書き換え条件解析部１１１、環境データ処理部１１２及び書き換え処理部１１３を有し、これらの協働により主記憶データ書き換え処理を実現する。ここで、主記憶データ書き換え処理は、情報処理装置１００の動作停止前に予めＯＳによって指定される書き換え対象データに応じた書き換え条件に従って、情報処理装置の動作停止期間において適切に主記憶データの書き換えを行う処理である。主記憶データ書き換え装置１１０は、専用の半導体プロセッサであるＬＳＩ、ＡＳＩＣ等で構成されてもよいし、ＭＰＵ１０１と同様の汎用プロセッサで構成されてもよいし、再構成可能なプロセッサであるＦＰＧＡで構成されてもよいし、動的再構成可能なリコンフィギュラブル・プロセッサで構成されてもよい。
【００２１】
書き換え条件解析部１１１は、主記憶データに含まれる様々なデータ種別のうち、書き換えが必要になり得るデータ種別に属する書き換え対象データに関する書き換え条件を、ＭＰＵ１０１で実行中のＯＳから取得し、当該書き換え条件を書き換え対象データ毎に解析する。書き換え条件解析部１１１は、書き換え条件の解析結果に基づき、環境データ処理部１１２及び書き換え処理部１１３が実行すべき処理内容を夫々作成する。
【００２２】
環境データ処理部１１２は、書き換え条件解析部１１１によって作成された処理内容に基づき、ネットワークインタフェース１０５を介して情報処理装置１００の外部から情報（以下、単に環境データと称する）を取得し、当該環境データを解析する。環境データ処理部１１２は、上記解析の結果、環境データが書き換え対象のデータ種別に属するデータであれば（即ち、環境データが書き換え対象データを代替するデータであれば）、当該環境データを書き換え処理部１１３に入力する。環境データ処理部１１２に必要な機能は、書き換え対象データの属するデータ種別に応じて異なる。例えば、環境データ処理部１１２は、ネットワークインタフェース１０５に割り当てられるＩＰ（Internet Protocol）アドレス及び当該ＩＰアドレスのリース期限を環境データとして、ＤＨＣＰ（Dynamic Host Configuration Protocol）に基づきネットワークインタフェース１０５を介して取得し、取得したＩＰアドレス及び当該ＩＰアドレスのリース期限を書き換え処理部１１３に入力する。本例であれば、ネットワークインタフェース１０５を制御する機能と、イーサネットプロトコルで通信を行う機能と、ＤＨＣＰに基づきＩＰアドレスを取得する機能が、環境データ処理部１１２に必要である。
【００２３】
書き換え処理部１１３は、書き換え条件解析部１１１によって作成された処理内容に基づき、環境データ処理部１１２からの環境データを用いて補助記憶部１０３に一時的に待避されている主記憶データ１２０を書き換える。
【００２４】
以下、図２を用いて、ＭＰＵ１０１で実行中のＯＳによるハイバネーション移行処理を説明する。  
まず、ＯＳは、実行中の全てのプロセスを一時停止させる（ステップＳ２０１）。次に、ＯＳは、主記憶データのうち動作停止期間において書き換え対象となり得るデータ種別（即ち、動作停止期間において失効したり、内容が古くなったりするおそれがあるデータ種別）に属する書き換え対象データに対して、書き換え条件を作成する（ステップＳ２０２）。ステップＳ２０２において作成される書き換え条件の具体例は後述する。尚、上記書き換え条件は予め定められていてもよいし、ハイバネーション移行処理が実行される度に作成されてもよい。
【００２５】
ここで、図４を用いて、ステップＳ２０２における具体的処理内容の一例を説明する。本例において、ＤＨＣＰに基づき取得されるＩＰアドレス及び当該ＩＰアドレスのリース期限が、書き換え対象のデータ種別である。
【００２６】
まず、ＯＳは、ＭＭＵ（memory management unit）のページテーブルまたはＴＬＢ（translation lookaside buffer）を参照することにより、ネットワークインタフェース１０５に割り当てられているＩＰアドレスと、当該ＩＰアドレスのリース期限（ＤＨＣＰリース期限）とを格納するメモリ領域の仮想アドレスを主記憶部１０２上の物理アドレスに変換する（ステップＳ４０１）。尚、セグメント、ページング等の影響により上記物理的領域が密集しておらず、互いに物理的に分離された複数の小領域に分割されている場合には、ＯＳは上記複数の小領域の各々を識別する物理アドレスを取得してよい。
【００２７】
次に、ＯＳは、ステップＳ４０１において取得した主記憶部１０２上の物理アドレスを、補助記憶部１０３上の物理アドレスに変換する（ステップＳ４０２）。即ち、ＯＳは、書き換え対象のデータ種別に属するデータ（書き換え対象データ）が、情報処理装置１００の動作停止期間において待避される、補助記憶部１０３上の物理的領域（書き換え対象領域）を示す物理アドレスを書き換え条件の一部として作成する。
【００２８】
次に、ＯＳは、上記ＩＰアドレスのリース期限に基づき次回起動時刻を算出し（ステップＳ４０３）、処理は終了する。即ち、ＯＳは、主記憶データ書き換え装置１１０が書き換え対象データを書き換えるために、情報処理装置１００が一時的に起動すべき時刻である次回起動時刻を書き換え条件の一部として作成している。ここで、次回起動時刻の算出手法は任意であり、例えばリース期限の１時間前を次回起動時刻として算出してよい。
【００２９】
ＯＳは、ステップＳ２０２において作成した書き換え条件を、書き換え条件解析部１１１に指示する（ステップＳ２０３）。ステップＳ２０３における、書き換え条件の指示態様は任意であるが、例えば、主記憶部１０２において設けられた主記憶データ書き換え装置１０６用の領域に書き換え条件を書き込み、当該書き換え条件を主記憶データ書き換え装置１０６に読み込ませる、いわゆるメモリマップドＩ／Ｏ方式であってもよいし、主記憶データ書き換え装置１０６が管理するその他の記憶部に書き込み、当該書き換え条件を主記憶データ書き換え装置１０６に読み込ませる方式であってもよい。
【００３０】
次に、ＯＳは、次回起動時刻をタイマ部１０４に設定する（ステップＳ２０４）。具体的には、ＯＳは、ステップＳ２０２において書き換え対象データ毎に次回起動時刻を書き換え条件の一部として算出しているので、上記書き換え対象データ毎に算出した次回起動時刻のうち、最も近い将来に訪れるものをタイマ部１０４に設定する。尚、タイマ部１０４への次回起動時刻の設定は、起動用ファームウェア記憶部１０６に記憶されている起動用ファームウェアの機能を利用して実現されてもよいし、ＯＳが直接行ってもよい。
【００３１】
次に、ＯＳは、主記憶データ１２０を補助記憶部１０３に待避させる（ステップＳ２０５）。上記主記憶データ１２０の待避手法は、特に限定されず、ハイバネーションにおいて利用可能なものを適宜利用してよい。ステップＳ２０３において指示した書き換え条件に対する書き換え条件解析部１１１の処理が完了していれば（ステップＳ２０６）、ＯＳは情報処理装置１００の電源をＯＦＦとして動作を停止させ、処理は終了する。
【００３２】
以下、図３を用いて、書き換え条件解析部１１１の動作を説明する。  
前述したステップＳ２０３において、ＭＰＵ１０１で実行中のＯＳから書き換え条件が指示されると、書き換え条件解析部１１１は動作を開始し、処理はステップＳ３０１に進む。
【００３３】
ステップＳ３０１において、書き換え条件解析部１１１は、環境データ処理部１１２が実行すべき環境データ処理内容を、上記書き換え条件に基づき作成する。例えば書き換え条件が前述した図４のフローチャートに従って作成されたものであれば、環境データ処理内容は、（ａ）ネットワークインタフェース１０５を介してＤＨＣＰに従う通信を実行すること、（ｂ）ネットワークインタフェース１０５に割り当てられているＩＰアドレスを更新することとを少なくとも含む。上記環境データ処理内容は、情報処理装置１００の動作停止期間において行われる処理内容なので、消失を避けるために情報処理装置１００に搭載される補助記憶部１０３等の不揮発性記憶媒体に記憶される。尚、上記環境データ処理内容は、任意の不揮発性記憶媒体に、任意のデータ形式で記憶されてよい。
【００３４】
次に、書き換え条件解析部１１１は、書き換え処理部１１３が実行すべき書き換え処理内容を、上記書き換え条件に基づき作成する（ステップＳ３０２）。例えば書き換え条件が前述した図４のフローチャートに従って作成されたものであれば、書き換え処理内容は、環境データ処理部１１１によって更新されたＩＰアドレス及び当該ＩＰアドレスのリース期限を、書き換え条件中の物理アドレスで識別される補助記憶部１０３上の書き換え対象領域に書き込むことを少なくとも含む。上記書き換え処理内容は、情報処理装置１００の動作停止期間において行われる処理内容なので、消失を避けるために情報処理装置１００に搭載される補助記憶部１０３等の不揮発性記憶媒体に記憶される。尚、書き換え処理内容は、任意の不揮発性記憶媒体に、任意のデータ形式で記憶されてよい。
【００３５】
ＯＳから指示された全ての書き換え条件に対する処理が終了していれば書き換え条件解析部１１１の動作は終了し、そうでなければ未処理の書き換え条件に対する処理を行うべく処理はステップＳ３０１に戻る。尚、ステップＳ３０１及びステップＳ３０２の実行順序は、両ステップにおける処理の間にデータの依存関係が無い限り任意である。尚、上記データの依存関係の有無は、上記ステップＳ３０１及びステップＳ３０２における処理の実装態様によって定まる。
【００３６】
以下、図５及び図６を用いて、主記憶データ書き換え装置１１０による主記憶データ書き換え処理を説明する。以降の説明において、書き換え条件は前述した図４のフローチャートに従って作成されたものであるとする。  
タイマ部１０４は、計測時刻が、例えば前述したステップＳ２０４において設定された次回起動時刻に達すると、情報処理装置１００の電源をＯＮにする。次に、上記起動用ファームウェアが実行され、主記憶データ書き換え装置１１０の動作が開始する。
【００３７】
まず、環境データ処理部１１２が、書き換え条件解析部１１１によって予め作成されている（ステップＳ３０１参照）環境データ処理内容を不揮発性記憶媒体から読み出し、処理はステップＳ５０１に進む。
【００３８】
ステップＳ５０１において、環境データ処理部１１２は、プロトコル処理、即ち、ＤＨＣＰ処理を呼び出す。次に、環境データ処理部１１２は、ネットワークインタフェース１０５を介してＤＨＣＰに従う通信を行って、当該ネットワークインタフェース１０５に割り当てられているＩＰアドレスを更新し、更新済みのＩＰアドレス及び当該ＩＰアドレスのリース期限を取得する（ステップＳ５０２）。次に、環境データ処理部１１２は、書き換え処理部１１３を起動する（ステップＳ５０３）。
【００３９】
全てのデータ種別に対する環境データ処理が終了していれば処理はステップＳ５０５に進み、そうでなければ未処理のデータ種別に対する環境データ処理を行うべく処理はステップＳ５０１に戻る。ステップＳ５０５において、環境データ処理部１１２は次回起動時刻を算出してタイマ部１０４に設定し、処理は終了する。尚、ステップＳ５０５における処理内容は、ステップＳ２０４における処理内容と同一でもよいし、異なってもよい。
【００４０】
書き換え処理部１１３は、環境データ処理部１１２によって起動されると、書き換え条件解析部１１１によって予め作成されている（ステップＳ３０２参照）書き換え処理内容を不揮発性記憶媒体から読み出し、処理はステップＳ６０１に進む。
【００４１】
ステップＳ６０１において、書き換え処理部１１３は、書き換え条件中の物理アドレスによって識別される補助記憶部１０３上の書き換え対象領域を、ステップＳ５０２において取得されたＩＰアドレス及び当該ＩＰアドレスのリース期限で書き換える。即ち、書き換え処理部１１３は、補助記憶部１０３上に待避されている主記憶データ１２０のうち、従前のＩＰアドレス及び当該ＩＰアドレスのリース期限に相当するデータを書き換える。
【００４２】
主記憶データ書き換え装置１１０は、上記図５及び図６の処理が終了すると、情報処理装置１００の電源を再びＯＦＦとし、動作を停止させる。主記憶データ書き換え装置１１０は、以上の一連の主記憶データ書き換え処理を、情報処理装置１００の動作再開（即ち、以前の作業状態への復帰）まで繰り返し行う。そして、ユーザ操作（例えば、電源ボタンの押下）により情報処理装置１００の電源がＯＮとなると、動作再開のための処理が行われる。上記動作再開のための処理には、ハイバネーション技術において利用可能なものを適用すればよく、例えば補助記憶部１０３に記憶されている主記憶データを再び主記憶部１０２に書き込む処理を適用すればよい。前述したようにＩＰアドレス及び当該ＩＰアドレスのリース期限の書き換えを行っていれば、動作停止期間が従前のＩＰアドレスのリース期限を越えていたとしても、ＯＳは新たなＩＰアドレスを取得することなく即座に通信を実行することができる。
【００４３】
尚、書き換え対象のデータ種別の一例としてＩＰアドレス及び当該ＩＰアドレスのリース期限について説明したが、本実施形態に係る主記憶データ書き換え装置が書き換え可能なデータ種別は、これに限られない。例えば、ＤＨＣＰｖ６に従う通信によって取得可能なＩＰｖ６アドレス及び当該ＩＰｖ６アドレスの有効期限も、主記憶データ書き換え処理の対象とされてよい。
【００４４】
また、情報処理装置１００のネットワークインタフェース１０５がＶＰＮ（Virtual Private Network）通信（例えば、IPsec（Security Architecture for Internet Protocol））を行う場合、ＶＰＮ通信の秘匿化のために通信データ（パケット）に対して暗号鍵を用いて暗号化が施される。上記暗号鍵には、セキュリティの観点から有効期限が定められ、定期的な更新を必要とする場合が多い。即ち、情報処理装置１００の動作停止期間において、暗号鍵が失効するおそれがある。そこで、暗号鍵及び当該暗号鍵の有効期限を主記憶データ書き換え処理の対象とすれば、情報処理装置１００の動作再開時に有効な暗号鍵を即座に使用できる。尚、新たな暗号鍵の取得には、例えばＶＰＮの暗号鍵更新用プロトコル（例えば、ＩＫＥ（Internet Key Exchange）、ＫＩＮＫ（Kerberized Internet Negotiation of Keys））を適宜利用出来る。
【００４５】
また、情報処理装置１００のネットワークインタフェース１０５を介して、ＯＳまたはＯＳ上で動作するソフトウェア若しくはデータファイルを更新することがある。例えば、コンピュータウィルス対策のためのウィルス対策ソフトウェアを十分に活用するためには、ウィルス検知のためのデータファイル（いわゆるウィルスパターンファイル）を定期的に更新することが望ましい。そこで、ウィルスパターンファイルを主記憶データ書き換え処理の対象とすれば、情報処理装置１００の動作再開時に最新のウィルスパターンファイルを用いてウィルス対策ソフトウェアを即座に実行できる。
【００４６】
更に、補助記憶部１０３上の書き換え対象領域は、互いに物理的に分離された複数の小領域に分割されていてもよい。この場合、書き換え条件解析部１１１及び書き換え処理部１１３は、上記複数の小領域を夫々識別する複数の物理アドレスを取り扱えるように構成される。即ち、書き換え条件解析部１１１は、上記複数の物理アドレスが指す複数の小領域に主記憶データを分割して書き換えるような書き換え処理内容を作成し、書き換え処理部１１３は当該書き換え処理内容に従って上記複数の小領域に主記憶データを分割して書き換える。
【００４７】
以上説明したように、本実施形態に係る主記憶データ書き換え装置は、情報処理装置の動作停止前にＯＳが動作停止期間において書き換え対象となり得るデータ毎に作成した書き換え条件に従って、情報処理装置の動作停止期間において補助記憶部に待避されている主記憶データを書き換えるようにしている。従って、本実施形態に係る主記憶データ書き換え装置によれば、情報処理装置の動作停止期間において不揮発性記憶媒体に保持されている主記憶データを書き換えることが可能となる。即ち、本実施形態に係る主記憶データ書き換え装置によれば、情報処理装置の動作再開を高速化させることができる。
【００４８】
以下、本実施形態の変形例を３つ説明する。尚、下記第１乃至第３の変形例は代表的な変形例を例示しているに過ぎず、本実施形態の技術的範囲を限定するものでない。また、下記第１乃至第３の変形例は、後述する第２乃至第４の実施形態の変形例としても適宜利用可能である。
【００４９】
（第１の変形例）  
本実施形態の第１の変形例に係る主記憶データ書き換え装置１１０は、書き換え対象データの異常を検査する点が前述した第１の実施形態に係る主記憶データ書き換え装置１１０とは異なる。
【００５０】
ＯＳは、書き換え条件作成処理（前述したステップＳ２０２）において、書き換え条件として書き換え対象データの検査用データを作成しておく。検査用データは、例えば、書き換え対象データそのもの、若しくは、書き換え対象データに対して一方向性関数を適用して得られるダイジェスト値である。ここで、一方向性関数として、例えばＭＤ５、ＳＨＡ１等のハッシュ関数、ＣＲＣ（cyclic redundancy check）を算出するための関数が使用可能であり、いずれの一方向性関数を使用するかは設計事項である。
【００５１】
書き換え条件解析部１１１は、上記検査用データに基づき書き換え対象データを検査することを書き換え処理部１１３の処理内容に加える。書き換え処理部１１３は、情報処理装置１００の動作停止期間において、例えば図７に示す処理を行う。
【００５２】
まず、書き換え処理部１１３は、書き換え対象データが正常であるか否かを検査する（ステップＳ７０１）。具体的には、書き換え処理部１１３は、書き換え対象データに対して予め保存されている検査用データと、補助記憶部１０３に現在記憶されている書き換え対象データに基づき作成した検査対象データとが一致するか否かを判定する。上記検査対象データは、検査用データと同じ手法で作成される。書き換え対象データが正常であれば処理はステップＳ６０１に進み、そうでなければ処理はステップＳ７０３に進む。
【００５３】
ステップＳ６０１において書き換え処理部１１３は補助記憶部１０３の書き換え対象領域を書き換える。次に、書き換え処理部１１３が書き換え済みのデータに基づき改めて検査用データを作成し、不揮発性記憶媒体に保存して（ステップＳ７０２）、処理は終了する。
【００５４】
ステップＳ７０３において書き換え処理部１１３は所定のエラー処理を行う。所定のエラー処理には、例えば、ステップＳ７０１において正常でないと判定された書き換え対象データに対する以後の書き換えを省略すること、ステップＳ７０１における検査結果を不揮発性記憶媒体にログとして保存すること等が含まれる。
【００５５】
以上説明したように、本変形例に係る主記憶データ書き換え装置は、検査用データを用いて書き換え対象データの内容が正常であるか否かを検査している。従って、本変形例に係る主記憶データ書き換え装置によれば、書き換え対象データの正常／異常を確認し、適切な書き換えを行うことができる。
【００５６】
（第２の変形例）  
図８に示すように、本実施形態の第２の変形例に係る主記憶データ書き換え装置１１０を搭載する情報処理装置８００は、図１の情報処理装置１００においてバッテリ部８３０を更に設けて構成される。以下の説明では、図８において図１と同一部分には同一符号を付して示し、異なる部分を中心に述べる。即ち、情報処理装置８００は、例えばノート型ＰＣのように、バッテリを電源として駆動可能な情報処理装置である。
【００５７】
バッテリ部８３０は、情報処理装置８００の各構成要素に対して電力を供給する機能、情報処理装置８００の外部から得た電力を蓄える機能（即ち、充電機能）、バッテリ残量（電力量）を計測する機能等を有する。バッテリ部８３０は、例えばニッケル水素バッテリ、リチウムイオンバッテリ等を有するバッテリパックで構成される。
【００５８】
情報処理装置８００をバッテリ部８３０によって駆動すると、外部電源によって駆動する場合に比べて、携行性に優れるものの利用可能な電力量が限られるため動作可能時間が比較的短い。即ち、情報処理装置８００をバッテリ部８３０によって駆動する場合には、動作可能時間をより長く確保するべく、消費電力を抑えることが望ましい。しかしながら、主記憶データ書き換え処理の実行は、情報処理装置８００の一時的な起動を必要とするため、ある程度の電力を消費してしまう。そこで、本変形例において、情報処理装置８００の動作可能時間をより長く確保するために、主記憶データ書き換え処理の一部を変更している。
【００５９】
まず、ＯＳは、前述したステップＳ２０４において次回起動時刻を設定する前に、後述する最小起動間隔を導出しておく。ＯＳは、最小起動間隔を導出するために、次の数式（１）に基づき最大実行回数を算出する。
【数１】
2010117984.tif 000003
【００６０】
数式（１）において、使用可能バッテリ残量は、主記憶データ書き換え処理に使用可能なバッテリ部８３０のバッテリ残量である。使用可能バッテリ残量は、前述したバッテリ残量の計測機能により求められた計測値がそのまま適用されてもよいし、計測値から所定値を予め控除した値が適用されてもよい。上記所定値は、例えば動作再開時に情報処理装置８００が何らかの処理を行うため等の理由により最低限保持しておきたい電力量であり、設計的に定めてよい。
【００６１】
数式（１）において、１回実行時の消費電力は、主記憶データ書き換え処理を１回実行するために必要な電力量である。１回実行時の消費電力は、例えば、主記憶データ書き換え処理の開始（即ち、情報処理装置８００の電源ＯＮ）から、主記憶データ書き換え処理の終了（即ち、情報処理装置８００の電源ＯＦＦ）までの時間間隔の履歴を記録しておき、当該履歴に含まれる時間間隔の平均値、最頻値及び中央値のいずれかと、単位時間あたりの消費電力とを積算することにより算出できる。上記単位時間あたりの消費電力として、設計時に計測される値、若しくは、設計内容から理論的に算出される値が利用されてよい。尚、１回実行時の消費電力の算出手法は、これに限られず、任意の算出手法を利用可能である。
【００６２】
数式（１）において、最大実行回数は、使用可能なバッテリ残量が枯渇するまでに、実行可能な主記憶データ書き換え処理の限度数を表す。次に、ＯＳは、次の数式（２）に基づき最小起動間隔を導出する。
【数２】
2010117984.tif 000004
【００６３】
数式（２）において、典型的停止期間は、ハイバネーションによる情報処理装置８００の動作停止から、当該動作停止に対応する動作再開までの期間（時間間隔）の典型値を表す。例えば、ハイバネーションによる動作停止時刻と当該動作停止時刻に対応する動作再開時刻との間の時間間隔の履歴を記録しておき、当該履歴に含まれる時間間隔の平均値、最頻値及び中央値のいずれかを、典型的停止期間として利用することができる。
【００６４】
数式（２）において、最小起動間隔は、上記典型的停止期間中に使用可能なバッテリ残量が枯渇しないように、主記憶データ書き換え処理を実行するための最小の起動間隔を表す。
【００６５】
ステップＳ２０４において、ＯＳは上記最小起動間隔を考慮して次回起動時刻を設定する。即ち、ＯＳは、現在時刻（即ち、次回起動時刻の設定時刻）を基準に、少なくとも上記最小起動間隔よりも長い間隔を空けて次回起動時刻を設定する。また、ステップＳ５０５において、環境データ処理部１１２も同様の手法で起動時刻を設定する。
【００６６】
以上説明したように、本変形例に係る主記憶データ書き換え装置は、バッテリ残量を考慮した主記憶データ書き換え処理を行う。従って、本変形例に係る主記憶データ書き換え装置によれば、主記憶データ書き換え処理によりバッテリ残量が枯渇する事態を防ぐことができる。
【００６７】
尚、上記最小起動間隔はあくまでも理想的な条件を前提として算出した予測値に過ぎないので、主記憶データ書き換え処理に起因するバッテリ残量の枯渇が完全に生じないというわけではない。従って、上記バッテリ残量の枯渇をより高確率に防ぐために、例えば、主記憶データ書き換え処理毎にバッテリ部８３０のバッテリ残量を計測し、閾値を下回れば以後の主記憶データ書き換え処理を省略してもよい。また、バッテリ残量が上記閾値を下回った後にバッテリ部８３０が充電される場合を考慮し、主記憶データ書き換え処理の実行毎、或いは、バッテリ部８３０の充電を検知する毎に、上記最小起動間隔を再計算するようにしてもよい。
【００６８】
（第３の変形例）  
本実施形態の第３の変形例に係る主記憶データ書き換え装置１１０は、前述した第２の変形例に係る主記憶データ書き換え装置１１０と同様に、図８の情報処理装置８００のようなバッテリ部８３０を備える情報処理装置に搭載される。
【００６９】
ステップＳ２０２においてＯＳは、書き換え対象のデータ種別毎の優先度を書き換え条件に加える。上記優先度は、主記憶データ書き換え処理の実行対象としての優先度を表す。例えば、バッテリ残量が比較的少ない（基準値未満）状況において、消費電力節約の観点から低い（基準値に応じた段階に比べて低い）優先度を有するデータ種別に関する主記憶データ書き換え処理は省略される。優先度は、２段階で設定されてもよいし、３段階以上で設定されてもよい。尚、各データ種別に与えるべき優先度は一義的に定められるものでなく、情報書処理装置８００の設計内容次第で変わり得る。以降の説明では優先度を２段階で設定し、ＩＰアドレス及び当該ＩＰアドレスのリース期限に対して高い優先度を与え、暗号鍵及び当該暗号鍵の有効期限に対して低い優先度を与えた場合の、書き換え条件作成処理の内容を図９に例示する。
【００７０】
まず、ＯＳは、ネットワークインタフェース１０５に割り当てられているＩＰアドレスと、当該ＩＰアドレスのリース期限とを格納する主記憶部１０２上の物理アドレスを取得する（ステップＳ９０１）。また、ＯＳは、ネットワークインタフェース１０５が行う通信の暗号化に用いられる暗号鍵と、当該暗号鍵の有効期限とを格納する主記憶部１０２上の物理アドレスを取得する（ステップＳ９０２）。
【００７１】
次に、ＯＳは、ステップＳ９０１及びステップＳ９０２において取得した主記憶部１０２上の物理アドレスを、夫々補助記憶部１０３上の物理アドレスに変換する（ステップＳ９０３）。即ち、ＯＳは、書き換え対象データが情報処理装置８００の動作停止期間において待避される、補助記憶部１０３上の書き換え対象領域を示す物理アドレスを書き換え条件の一部として作成する。
【００７２】
次に、ＯＳは、バッテリ部８３０のバッテリ残量が所定の基準値未満であるか否かを判定する（ステップＳ９０４）。上記所定の基準値は、設計的に定められる。バッテリ残量が基準値未満であれば、優先度の低い暗号鍵及び当該暗号鍵の有効期限の書き換え処理は行われないので、処理はステップＳ９０５に進む。バッテリ残量が基準値以上であれば、優先度の低い暗号鍵及び当該暗号鍵の有効期限の書き換え処理も行われるので、処理はステップＳ９０６に進む。
【００７３】
ステップＳ９０５において、ＯＳは、優先度の高いＩＰアドレス及び当該ＩＰアドレスのリース期限のみが主記憶データ書き換え処理の対象となるので、ＩＰアドレスのリース期限のみに基づき次回起動時刻を算出し、処理は終了する。
【００７４】
ステップＳ９０６において、ＯＳは、優先度の高いＩＰアドレス及び当該ＩＰアドレスのリース期限のみならず、優先度の低い暗号鍵及び当該暗号鍵の有効期限も主記憶データ書き換え処理の対象となるので、ＩＰアドレスのリース期限と暗号鍵の有効期限とに基づき次回起動時刻を算出し、処理は終了する。  
尚、前述したステップＳ４０３において、環境データ処理部１１２は上記ステップＳ９０４乃至ステップＳ９０６と同様の処理を行うことが望ましい。
【００７５】
以上説明したように、本変形例に係る主記憶データ書き換え装置は、データ種別毎に主記憶データ書き換え処理の実行対象としての優先度を与えている。従って、本変形例に係る主記憶データ書き換え装置によれば、バッテリ残量が比較的少ない状況において主記憶データ書き換え処理の対象を優先度の比較的高いデータ種別に絞り込み、電力消費を効率化することができる。
【００７６】
（第２の実施形態）  
図１０に示すように、本発明の第２の実施形態に係る主記憶データ書き換え装置１１０を搭載する情報処理装置１０００は、上記図１に示す情報処理装置１００において、主記憶部１０２を主記憶部１００２に置き換えて構成される。以下の説明では、図１０において図１と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
【００７７】
主記憶部１００２には、ＭＰＵ１０１によって実行されるソフトウェアが必要とするデータが一時的に記憶される。主記憶部１００２は、不揮発性記憶媒体で構成され、電力供給の停止によっても記憶されているデータが消失しない。例えば、主記憶部１００２は、ＥＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＮＯＲ型フラッシュメモリ、ＮＡＮＤ型フラッシュメモリ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）等で構成される。特に、ＦｅＲＡＭ及びＭＲＡＭは、ＤＲＡＭと並ぶ高速処理性能、高い書き換え性能を期待できるので、高速かつ高頻度な読み書きが要求される主記憶部１００２として好適である。
【００７８】
上記図１の主記憶部１０２は揮発性記憶媒体で構成されているので、ＯＳはハイバネーションによる動作停止前に主記憶データ１２０を不揮発性記憶媒体で構成される補助記憶部１０３に待避させている。しかしながら、主記憶部１００２は不揮発性記憶媒体で構成されるので、主記憶データ１０２０を移動させる必要が無い。従って、ＭＰＵ１０１で実行中のＯＳによるハイバネーション移行処理は、図１１に示すように上記図２の処理内容からステップＳ２０５に相当する処理（主記憶データの待避処理）を除いたものとなる。
【００７９】
また、情報処理装置１０００において、書き換え対象領域は補助記憶部１０３上でなく主記憶部１００２上に存在する。従って、ＯＳが前述した図４のような書き換え条件作成処理を行う場合、図１２に示すようにステップＳ４０２に相当する処理（書き換え対象データが記憶されている主記憶部１００２上の物理アドレスを、補助記憶部１０３上の物理アドレスに変換する処理）が不要となる。
【００８０】
また、上記図１の情報処理装置１００において、ユーザ操作（例えば、電源ボタンの押下）により電源がＯＮとなると、ＯＳは動作再開のための処理として例えば補助記憶部１０３に記憶されている主記憶データ１２０を再び主記憶部１０２に書き込む処理を行う。しかしながら、情報処理装置１０００において、主記憶データ１０２０は主記憶部１００２に記憶されているので、ユーザ操作により電源がＯＮになると、ＯＳは当該主記憶データ１０２０をそのまま利用して動作を再開することができる。
【００８１】
以上説明したように、本実施形態に係る主記憶データ書き換え装置は、情報処理装置の動作停止前にＯＳが動作停止期間において書き換え対象となり得るデータ毎に作成した書き換え条件に従って、情報処理装置の動作停止期間において不揮発性記憶媒体で構成された主記憶部に保持されている主記憶データを書き換えるようにしている。従って、本実施形態に係る主記憶データ書き換え装置によれば、情報処理装置の動作停止期間において不揮発性記憶媒体に保持されている主記憶データを書き換えることが可能となる。即ち、本実施形態に係る主記憶データ書き換え装置によれば、情報処理装置の動作再開を高速化させることができる。
【００８２】
（第３の実施形態）  
図１３に示すように、本発明の第３の実施形態に係る主記憶データ書き換えプログラム１３１０を実行する情報処理装置１３００は、上記図１に示す情報処理装置１００において、主記憶データ書き換え装置１１０を除いて構成される。以下の説明では、図１３において図１と同一部分には同一符号を付して示し、異なる部分を中心に述べる。
【００８３】
主記憶データ書き換えプログラム１３１０は、ＭＰＵ１０１を前述した主記憶データ書き換え装置１１０として動作させるためのプログラムである。主記憶データ書き換えプログラム１３１０は、情報処理装置１３００に備えられる不揮発性記憶媒体（補助記憶部１０３、起動用ファームウェア記憶部１０６等）によって保持されてもよいし、磁気ディスク、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＡＭ等の光ディスク、ＭＯ等の光磁気ディスク、半導体メモリ等のリムーバルメディアによって保持されてもよいし、ネットワークを介して配布されインストールされてもよい。
【００８４】
主記憶データ書き換えプログラム１３１０は、ＭＰＵ１０１を前述した書き換え条件解析部１１１として動作させるための書き換え条件解析サブルーチン１３１１と、ＭＰＵ１０１を前述した環境データ処理部１１２として動作させるための環境データ処理サブルーチン１３１２と、ＭＰＵ１０１を前述した書き換え処理部１１３として動作させるための書き換え処理サブルーチン１３１３とを含む。
【００８５】
尚、図１３において、上記書き換え条件解析サブルーチン１３１１、環境データ処理サブルーチン１３１２及び書き換え処理サブルーチン１３１３がＭＰＵ１０１によって同時に実行されているかのように描かれているが、全てのサブルーチンがＭＰＵ１０１によって同時に実行される必要は無い。また、主記憶データ書き換えプログラム１３１０は、起動用ファームウェアによって起動されるプログラムとして実装されてもよいし、起動用ファームウェアに主記憶データ書き換えプログラム１３１０の機能を組み込むように実装されてもよい。
【００８６】
また、ＭＰＵ１０１が複数のコアを有する場合、若しくは、情報処理装置１３００にＭＰＵ１０１と同様のプロセッサが複数搭載されている場合において、いずれのコア若しくはプロセッサによって主記憶データ書き換えプログラム１３１０が実行されてもよい。また、原則として主記憶データ書き換えプログラム１３１０及びＯＳは同時に実行せずともよいが、書き換え条件解析サブルーチン１３１１及びＯＳは並行して実行する必要がある。
【００８７】
以上説明したように、本実施形態に係る主記憶データ書き換えプログラムは、情報処理装置の動作停止前にＯＳが動作停止期間において書き換え対象となり得るデータ毎に作成した書き換え条件に従って、情報処理装置の動作停止期間において補助記憶部に待避されている主記憶データを書き換えるようにしている。従って、本実施形態に係る主記憶データ書き換えプログラムによれば、情報処理装置の動作停止期間において不揮発性記憶媒体に保持されている主記憶データを書き換えることが可能となる。即ち、本実施形態に係る主記憶データ書き換えプログラムによれば、情報処理装置の動作再開を高速化させることができる。
【００８８】
（第４の実施形態）  
図１４に示すように、本発明の第４の実施形態に係る主記憶データ書き換えプログラム１３１０を実行する情報処理装置１４００は、上記図１０に示す情報処理装置１０００において、主記憶データ書き換え装置１１０を除いて構成される。
【００８９】
本実施形態に係る主記憶データ書き換えプログラムは、情報処理装置の動作停止前にＯＳが動作停止期間において書き換え対象となり得るデータ毎に作成した書き換え条件に従って、情報処理装置の動作停止期間において不揮発性記憶媒体で構成された主記憶部に保持されている主記憶データを書き換えるようにしている。従って、本実施形態に係る主記憶データ書き換えプログラムによれば、情報処理装置の動作停止期間において不揮発性記憶媒体に保持されている主記憶データを書き換えることが可能となる。即ち、本実施形態に係る主記憶データ書き換えプログラムによれば、情報処理装置の動作再開を高速化させることができる。
【００９０】
尚、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【００９１】
その一例として例えば、上記各実施形態に係る情報処理装置において、外部の物理的環境に関する情報を取得するためのセンサが搭載されてもよい。上記センサは、例えば、温度センサ、湿度センサ、気圧センサ（高度センサ）、加速度センサ、位置センサ、照度センサ（光度センサ）、生体センサ（例えば、指紋センサ、指静脈センサ、掌静脈センサ、虹彩センサ、顔センサ等）等のうちいずれか１つであってもよいし、これらを適宜組み合わせたものであってもよい。上記センサを用いて情報処理装置の物理的移動を検出し、環境データ処理部（または、環境データ処理サブルーチン）が、当該物理的移動の検出をトリガとして他のセンサまたは前述したネットワークインタフェースを介して環境データを取得するようにしてもよい。
【００９２】
更に、上記情報処理装置において、各構成要素が共有バスを介して接続されているが、上記共有バスが複数の配線で接続されてもよいし、階層構造を有する配線で接続されてもよいし、クロスバー（cross bar switch）と呼ばれる配線で接続されてもよい。また、上記各構成要素のいくつかが同一の半導体チップ上に搭載されたＳｏＣ（System on Chip）で構成されてもよい。
【００９３】
その他、本発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。
【図面の簡単な説明】
【００９４】
【図１】第１の実施形態に係る主記憶データ書き換え装置を搭載する情報処理装置を示すブロック図。
【図２】図１のＭＰＵで実行中のＯＳによるハイバネーション移行処理を示すフローチャート。
【図３】図１の書き換え条件解析部の動作を示すフローチャート。
【図４】図１のＭＰＵで実行中のＯＳによる書き換え条件作成処理の具体例を示すフローチャート。
【図５】図１の環境データ処理部の動作を示すフローチャート。
【図６】図１の書き換え処理部の動作を示すフローチャート。
【図７】図６の変形例を示すフローチャート。
【図８】図１の変形例を示すブロック図。
【図９】図８のＭＰＵで実行中のＯＳによる書き換え条件作成処理の具体例を示すフローチャート。
【図１０】第２の実施形態に係る主記憶データ書き換え装置を搭載する情報処理装置を示すブロック図。
【図１１】図１０のＭＰＵで実行中のＯＳによるハイバネーション移行処理を示すフローチャート。
【図１２】図１０のＭＰＵで実行中のＯＳによる書き換え条件作成処理の具体例を示すフローチャート。
【図１３】第３の実施形態に係る主記憶データ書き換えプログラムを実行する情報処理装置を示すブロック図。
【図１４】第４の実施形態に係る主記憶データ書き換えプログラムを実行する情報処理装置を示すブロック図。
【符号の説明】
【００９５】
１００・・・情報処理装置
１０１・・・ＭＰＵ
１０２・・・主記憶部
１０３・・・補助記憶部
１０４・・・タイマ部
１０５・・・ネットワークインタフェース
１０６・・・起動用ファームウェア記憶部
１１０・・・主記憶データ書き換え装置
１１１・・・書き換え条件解析部
１１２・・・環境データ処理部
１１３・・・書き換え処理部
１２０・・・主記憶データ
８００・・・情報処理装置
８３０・・・バッテリ部
１０００・・・情報処理装置
１００２・・・主記憶部
１０２０・・・主記憶データ
１３００・・・情報処理装置
１３１０・・・主記憶データ書き換えプログラム
１３１１・・・書き換え条件解析サブルーチン
１３１２・・・環境データ処理サブルーチン
１３１３・・・書き換え処理サブルーチン
１４００・・・情報処理装置
【図１】
2010117984.tif 000005
【図２】
2010117984.tif 000006
【図３】
2010117984.tif 000007
【図４】
2010117984.tif 000008
【図５】
2010117984.tif 000009
【図６】
2010117984.tif 000010
【図７】
2010117984.tif 000011
【図８】
2010117984.tif 000012
【図９】
2010117984.tif 000013
【図１０】
2010117984.tif 000014
【図１１】
2010117984.tif 000015
【図１２】
2010117984.tif 000016
【図１３】
2010117984.tif 000017
【図１４】
2010117984.tif 000018