(57)【要約】【課題】主メモリよりも小さい容量の不揮発性メモリで、ハイバネーション／レジューム機能を効率的に実現する情報処理装置を提供する。【解決手段】ハイバネーションユーティリティ１５０は、電源オン状態へ移行した後の主メモリ２の各ページに対するアクセスの発生順序を記録しておき、電源オフ状態への移行時に、予め定められた範囲内の順序が記録されたページのデータを非圧縮でＮＯＲ  ＦＬＡＳＨ３に退避し、一方、その他のページのデータは、圧縮してＮＯＲ  ＦＬＡＳＨ３に退避する。【選択図】      図１
2010055184.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
前記ＣＰＵがアクセス可能な記憶領域が割り当てられる揮発性の第１のメモリと、
前記第１のメモリよりも容量の小さい不揮発性の第２のメモリと、
電源オフ状態への移行時、前記第１のメモリに格納されたデータを前記第２のメモリに退避し、電源オン状態への移行時、前記第２のメモリに退避したデータを前記第１のメモリに復元するハイバネーション／レジューム手段と、
を具備し、
前記ハイバネーション／レジューム手段は、
電源オン状態へ移行した後の前記第１のメモリ上の各記憶領域に対するアクセスの発生順序を記録するアクセスログ記録手段と、
電源オフ状態への移行時、予め定められた範囲内の順序が前記アクセスログ記録手段により記録された記憶領域に対応するデータを非圧縮で前記第２のメモリに退避し、その他の記憶領域に対応するデータを圧縮して前記第２のメモリに退避するメモリ管理手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記アクセスログ記録手段は、前記ＣＰＵによって実行されるプログラムから所定の通知を受信した場合、前記アクセスの発生順序の記録を停止し、
前記メモリ管理手段は、前記アクセスの発生順序が前記アクセスログ記録手段により記録された記憶領域に対応するデータを非圧縮で前記第２のメモリに退避し、その他の記憶領域に対応するデータを圧縮して前記第２のメモリに退避する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記アクセスログ記録手段は、予め定められた値に達するまで前記アクセスの発生順序を記録し、
前記メモリ管理手段は、前記アクセスの発生順序が前記アクセスログ記録手段により記録された記憶領域に対応するを非圧縮で前記第２のメモリに退避し、その他の記憶領域に対応するデータを圧縮して前記第２のメモリに退避する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記メモリ管理手段は、前記その他の記憶領域に対応するデータを圧縮して前記第２のメモリに退避した後、前記予め定められた範囲内の順序が記録された記憶領域に対応するデータであって前記第２のメモリに未退避のデータの総データ量が前記第２のメモリの空き容量以下となるまで、前記予め定められた範囲内の順序が記録された記憶領域に対応するデータの中からその順序を降順に選択して当該データを圧縮して前記第２のメモリに退避していくことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記メモリ管理手段は、前記予め定められた範囲内の順序が記録された記憶領域に対応するデータを圧縮して前記第２のメモリに退避する場合、前記その他の記憶領域に対応するデータを圧縮して前記第２のメモリに退避する場合よりも低い圧縮率で圧縮を行うことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記メモリ管理手段は、前記予め定められた範囲内の順序が記録された記憶領域に対応するデータを圧縮して前記第２のメモリに退避する場合、その順序が後ろの記憶領域に対応するのデータほど圧縮率を高くして圧縮を行うことを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記メモリ管理手段は、電源オン状態へ移行した後、前記第２のメモリに退避されたデータが復元されていない前記第１のメモリ上の記憶領域に対するアクセスが発生した際、そのデータが非圧縮で退避されており、かつ、そのアクセスが当該記憶領域内のデータ読み出しであった場合、前記第１のメモリへの復元を経ずに、前記第２のメモリに退避されたデータを読み出させることを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記メモリ管理手段は、電源オン状態へ移行した後、前記ＣＰＵがアイドル状態にある場合に、前記第１のメモリに復元されていない前記第２のメモリに退避したデータを前記第１のメモリに復元することを特徴とする請求項１記載の情報処理装置。
【請求項９】
前記メモリ管理手段は、前記ＣＰＵがアイドル状態にある場合におけるデータの復元については、圧縮されて退避されているデータの復元を非圧縮で退避されているデータの復元よりも優先して実施することを特徴とする請求項６記載の情報処理装置。
【請求項１０】
ＣＰＵと、前記ＣＰＵがアクセス可能な記憶領域が割り当てられる揮発性の第１のメモリと、前記第１のメモリよりも容量の小さい不揮発性の第２のメモリと、電源オフ状態への移行時、前記第１のメモリに格納されたデータを前記第２のメモリに退避し、電源オン状態への移行時、前記第２のメモリに退避したデータを前記第１のメモリに復元するハイバネーション／レジューム手段とを具備する情報処理装置のメモリ管理方法であって、
前記情報処理装置は、
前記ハイバネーション／レジューム手段によって電源オン状態へ移行した後の前記第１のメモリ上の各記憶領域に対するアクセスの発生順序を記録し、
前記ハイバネーション／レジューム手段による電源オフ状態への移行時、予め定められた範囲内の順序が記録された記憶領域に対応するデータを非圧縮で前記第２のメモリに退避し、その他の記憶領域に対応するデータを圧縮して前記第２のメモリに退避する、
ことを特徴とするメモリ管理方法。
【請求項１１】
前記情報処理装置は、
前記ハイバネーション／レジューム手段によって電源オン状態へ移行した後、前記第２のメモリに退避されたデータが復元されていない前記第１のメモリ上の記憶領域に対するアクセスが発生した際、そのデータが非圧縮で退避されており、かつ、そのアクセスが当該記憶領域内のデータ読み出しであった場合、前記第１のメモリへの復元を経ずに、前記第２のメモリに退避されたデータを読み出させる、
ことを特徴とする請求項１０記載のメモリ管理方法。
【請求項１２】
前記情報処理装置は、
前記ハイバネーション／レジューム手段によって電源オン状態へ移行した後、前記ＣＰＵがアイドル状態にある場合に、前記第１のメモリに復元されていない前記第２のメモリに退避したデータを前記第１のメモリに復元する、
ことを特徴とする請求項１０記載のメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、前回の作業中断時の状態を電源オン時に復元する機能を有する情報処理装置に適用して好適なメモリ管理技術に関する。
【背景技術】
【０００２】
近年、様々な家庭電化製品が、ＣＰＵとメモリとを搭載し、プログラムによって多機能化を実現している。この種の家庭電化製品の多くは、前回の電源オフ操作時の状態を電源オン時に復元するいわゆるハイバネーション／レジューム機能を備えている。
【０００３】
このハイバネーション／レジューム機能によれば、プログラムをメモリにロードする手続きや当該プログラムによる初期化ルーチンの実行などが省かれるので、電源オン操作が行われてから利用可能な状態となるまでの時間を短縮することも実現される。また、メモリに対する電力供給が電源オフ中も継続されるサスペンド／レジューム機能と比べて、このハイバネーション／レジューム機能は、省電力化も図られる。そして、このハイバネーション／レジューム機能を効率的に作動させるための提案が、これまでも種々なされている（例えば特許文献１等参照）。
【特許文献１】特開２００１−２２４６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、最近では、ハイバネーション／レジューム機能におけるデータの退避先として、従来のハーディスクに代えて、ＮＯＲ  ＦＬＡＳＨ等の不揮発性メモリを利用することが行われ始めている。不揮発性メモリは、ハードディスクと比べて、データアクセスを高速に行えるため、電源オン操作が行われてから利用可能な状態となるまでの時間をさらに短縮することが可能となる。
【０００５】
一方で、不揮発性メモリは高価であるので、主メモリと同容量の不揮発性メモリをハイバネーション／レジューム機能用に搭載するのは、現状では、コスト面から現実的とはいえない。そのため、主メモリよりも小さい容量の不揮発性メモリで、ハイバネーション／レジューム機能を効率的に実現するための仕組みが求められる。
【０００６】
この発明は、このような事情を考慮してなされたものであり、主メモリよりも小さい容量の不揮発性メモリで、ハイバネーション／レジューム機能を効率的に実現する情報処理装置およびメモリ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前述した目的を達成するために、この発明の情報処理装置は、ＣＰＵと、前記ＣＰＵがアクセス可能な記憶領域が割り当てられる揮発性の第１のメモリと、前記第１のメモリよりも容量の小さい不揮発性の第２のメモリと、電源オフ状態への移行時、前記第１のメモリに格納されたデータを前記第２のメモリに退避し、電源オン状態への移行時、前記第２のメモリに退避したデータを前記第１のメモリに復元するハイバネーション／レジューム手段と、を具備し、前記ハイバネーション／レジューム手段は、電源オン状態へ移行した後の前記第１のメモリ上の各記憶領域に対するアクセスの発生順序を記録するアクセスログ記録手段と、電源オフ状態への移行時、予め定められた範囲内の順序が前記アクセスログ記録手段により記録された記憶領域に対応するデータを非圧縮で前記第２のメモリに退避し、その他の記憶領域に対応するデータを圧縮して前記第２のメモリに退避するメモリ管理手段と、を有することを特徴とする。
【０００８】
また、この発明のメモリ管理方法は、ＣＰＵと、前記ＣＰＵがアクセス可能な記憶領域が割り当てられる揮発性の第１のメモリと、前記第１のメモリよりも容量の小さい不揮発性の第２のメモリと、電源オフ状態への移行時、前記第１のメモリに格納されたデータを前記第２のメモリに退避し、電源オン状態への移行時、前記第２のメモリに退避したデータを前記第１のメモリに復元するハイバネーション／レジューム手段とを具備する情報処理装置のメモリ管理方法であって、前記情報処理装置は、前記ハイバネーション／レジューム手段によって電源オン状態へ移行した後の前記第１のメモリ上の各記憶領域に対するアクセスの発生順序を記録し、前記ハイバネーション／レジューム手段による電源オフ状態への移行時、予め定められた範囲内の順序が記録された記憶領域に対応するデータを非圧縮で前記第２のメモリに退避し、その他の記憶領域に対応するデータを圧縮して前記第２のメモリに退避する、ことを特徴とする。
【発明の効果】
【０００９】
この発明によれば、主メモリよりも小さい容量の不揮発性メモリで、ハイバネーション／レジューム機能を効率的に実現する情報処理装置およびメモリ管理方法を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の一実施形態を説明する。
【００１１】
図１は、本実施形態に係る情報処理装置の概略構成を示す図である。
【００１２】
この情報処理装置は、図１に示すように、ＣＰＵ１、主メモリ２、ＮＯＲ  ＦＬＡＳＨ３がシステムバス４を介して相互に接続されている。
【００１３】
ＣＰＵ１は、主メモリ２にロードした各種プログラムを実行することにより、本情報処理装置に所期の動作を行わせるためのプロセッサである。主メモリ２には、オペレーティングシステム（ＯＳ）１００や、このＯＳ１００の制御下で動作する、後述するハイバネーションユーティリティ１５０およびアプリケーションプログラム２００といった各種プログラムと、これらのプログラムで用いられるデータとが格納される。
【００１４】
つまり、主メモリ２には、ＣＰＵ１がアクセス可能なメモリ空間が割り当てられているわけであり、このメモリ空間上の仮想アドレスと主メモリ２上の物理アドレスとの対応がＯＳ１００の仮想記憶管理モジュール１０１によって管理されている。
【００１５】
ＮＯＲ  ＦＬＡＳＨ３は、リニアにアクセス可能（アドレス単位でアクセス可能）な不揮発性メモリである。本情報処理装置は、このＮＯＲ  ＦＬＡＳＨ３を、主メモリ２に格納された（プログラムを含む）データの退避領域として用いて、前回の電源オフ操作時の状態を電源オン時に復元するいわゆるハイバネーション／レジューム機能を提供する。ハイバネーションユーティリティ１５０は、このハイバネーション／レジューム機能を実現するためのプログラムである。なお、ここでは、データの退避領域として、ＮＯＲ  ＦＬＡＳＨ３を用いるが、これに限られず、同じくリニアにアクセス可能（アドレス単位でアクセス可能）な不揮発性メモリであるＳＲＡＭやＭＲＡＭなどに代替可能である。
【００１６】
本情報処理装置では、コスト面を考慮して、主メモリ２よりも小さい容量のＮＯＲ  ＦＬＡＳＨ３が搭載されている。そして、本情報処理装置は、この主メモリ２よりも小さい容量のＮＯＲ  ＦＬＡＳＨ３で、ハイバネーション／レジューム機能を効率的に実現する仕組みを備えたものであり、以下、この点について詳述する。
【００１７】
まず、図２を参照しながら、最初にハイバネーション／レジューム機能により本情報処理装置が電源オフ状態に移行する時のハイバネーションユーティリティ１５０の動作原理について説明する。なお、ここでいう最初とは、前回の電源オフ状態への移行および電源オン状態への移行が、ハイバネーション／レジューム機能によらずに通常手続きを踏んで行われていた場合をいう。
【００１８】
この場合、ハイバネーションユーティリティ１５０は、主メモリ２上の有効データが配置されたすべてのページを、各々圧縮してＮＯＲ  ＦＬＡＳＨ３に格納すると共に、（主メモリ２に配置されている）メモリ空間上の仮想アドレスと主メモリ２上の物理アドレスとの対応を示す情報が保持されるページテーブルを非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納する。このページテーブルには、データ退避時の圧縮／非圧縮を示す情報（フラグ）も保持され、この最初のハイバネーション／レジューム機能による電源オフ状態への移行時には、すべてのページについて圧縮を示す情報が保持されることになる。また、このページテーブルには、後述するアクセス順序を示す情報も保持される。ハイバネーションユーティリティ１５０は、主メモリ２上の各ページのＮＯＲ  ＦＬＡＳＨ３上への退避先を示す情報を管理し、また、ページテーブルが配置されるページの主メモリ２の位置と、そのＮＯＲ  ＦＬＡＳＨ３上での退避位置とを管理する。
【００１９】
図３は、この最初にハイバネーション／レジューム機能により本情報処理装置が電源オフ状態に移行する時のハイバネーションユーティリティ１５０の動作手順を示すフローチャートである。
【００２０】
まず、ハイバネーションユーティリティ１５０は、主メモリ２上の、有効データが配置されたページであって、ＮＯＲ  ＦＬＡＳＨ３に退避していないページが存在していないかを調べる（ステップＡ１）。存在すれば（ステップＡ２のＹＥＳ）、ハイバネーションユーティリティ１５０は、そのページを圧縮してＮＯＲ  ＦＬＡＳＨ３に格納する（ステップＡ３）。ハイバネーションユーティリティ１５０は、このＮＯＲ  ＦＬＡＳＨ３への格納が正常終了したか否かを調べ（ステップＡ４）、正常終了していれば（ステップＡ５のＹＥＳ）、ページテーブルの圧縮フラグを立て（ステップＡ６）、ステップＡ１からの処理を繰り返す。
【００２１】
もし、このＮＯＲ  ＦＬＡＳＨ３への格納が正常終了しなかった場合には（ステップＡ５のＮＯ）、ハイバネーションユーティリティ１５０は、ハイバネーション／レジューム機能による電源オフ状態への移行をエラー終了させるか、または、次回の電源オンへの移行が通常手続きを踏んで行われるように本情報処理装置を電源オフ状態へ移行させる（ステップＡ７）。このステップＡ７において、いずれを実施するかは、仕様によって定めても良いし、ユーザによって設定できるようにしても良い。
【００２２】
一方、ＮＯＲ  ＦＬＡＳＨ３に退避していないページが存在しない場合、即ち、退避を完了させたら（ステップＡ２のＮＯ）、ハイバネーションユーティリティ１５０は、ページテーブルを非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納し（ステップＡ８）、次回の電源オンへの移行がハイバネーション／レジューム機能により行われるように本情報処理装置を電源オフ状態へ移行させる（ステップＡ９）。
【００２３】
次に、図４を参照しながら、ハイバネーション／レジューム機能により電源オフ状態に移行した（図２に示す状態にある）本情報処理装置が電源オン状態に移行する時のハイバネーションユーティリティ１５０の動作原理について説明する。
【００２４】
ハイバネーションユーティリティ１５０は、まず、ページテーブルを、ＮＯＲ  ＦＬＡＳＨ３から読み出して主メモリ２上に復元する。ページテーブルが復元されると、仮想アドレス指定による主メモリ２へのアクセス要求が発生し始めるので、ハイバネーションユーティリティ１５０は、アクセスが要求される順に、各ページをＮＯＲ  ＦＬＡＳＨ３から読み出し、（この時点ではすべての圧縮フラグが立っているので）伸長して、主メモリ２上に復元する。そして、ハイバネーションユーティリティ１５０は、このアクセス順序をページテーブルに記録していく。ハイバネーションユーティリティ１５０は、アプリケーションプログラム２００から所定の通知を受信するまで、このアクセス順序のページテーブルへの記録を継続する。アプリケーションプログラム２００は、例えば所定のアプリケーション画面の出力が完了した時点で、この通知をハイバネーションユーティリティ１５０に送信する。
【００２５】
また、ハイバネーションユーティリティ１５０は、レジューム起動後からＣＰＵ１がアイドル状態にあるか否かを監視し、ＣＰＵ１がアイドル状態にあったならば、主メモリ２上に復元されていないページをＮＯＲ  ＦＬＡＳＨ３から読み出し、伸長して、主メモリ２上に復元する処理も併せて実行する。
【００２６】
続いて、図５を参照しながら、上記のようにアクセス順序がページテーブルに記録されつつ（ハイバネーション／レジューム機能により）電源オン状態に移行した本情報処理装置が、２回目以降、ハイバネーション／レジューム機能により電源オフ状態に移行する時のハイバネーションユーティリティ１５０の動作原理について説明する。
【００２７】
この場合、ハイバネーションユーティリティ１５０は、まず、ページテーブルにアクセス順序が記録されていないページ、即ち、電源オン状態への移行時において所定の順序内にアクセス要求がなされなかったページを検索し、それらを圧縮してＮＯＲ  ＦＬＡＳＨ３に格納する。ここまでの圧縮を伴う退避処理によって、これから退避すべき残りのページの総容量がＮＯＲ  ＦＬＡＳＨ３の空き容量以下となっていたならば、ハイバネーションユーティリティ１５０は、それらすべてを非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納する。
【００２８】
一方、ＮＯＲ  ＦＬＡＳＨ３の空き容量以下となっていなければ、ハイバネーションユーティリティ１５０は、これから退避すべき残りのページの総容量がＮＯＲ  ＦＬＡＳＨ３の空き容量以下となるまで、アクセス順序が後ろのページから、即ち、電源オン状態への移行時におけるアクセス要求が遅かった順に、１ページずつ圧縮してＮＯＲ  ＦＬＡＳＨ３に格納していく。そして、ＮＯＲ  ＦＬＡＳＨ３の空き容量以下となったら、残りのページすべてを非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納する。
【００２９】
ハイバネーションユーティリティ１５０は、このＮＯＲ  ＦＬＡＳＨ３への退避時の圧縮／非圧縮を圧縮フラグとしてページテーブルに記録するが、さらに、非圧縮のページについては、暫定的に、その物理アドレスをＮＯＲ  ＦＬＡＳＨ３上での退避位置を示すように更新しておく。そして、最後に、ハイバネーションユーティリティ１５０は、このページテーブルを非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納する。
【００３０】
ここで、ハイバネーション／レジューム機能により電源オフ状態に移行した（図５に示す状態にある）本情報処理装置が電源オン状態に移行する時のハイバネーションユーティリティ１５０の動作原理についてさらに説明すると、前回の電源オン状態への移行時における主メモリ２へのアクセス要求の発生順序と、今回の電源オン状態への移行時における主メモリ２へのアクセス要求の発生順序とは、ほぼ同じであることが期待されるので、当初は、非圧縮でＮＯＲ  ＦＬＡＳＨ３に退避されたページへのアクセス要求が発生する確立は高いと考えられる。
【００３１】
そして、ハイバネーションユーティリティ１５０は、このアクセス要求がReadアクセスであったならば、ページテーブルに暫定的に記録したＮＯＲ  ＦＬＡＳＨ３上のアドレスをそのまま活かして、このＮＯＲ  ＦＬＡＳＨ３へのアクセスで当該アクセス要求を処理する。よって、例えばアプリケーションプログラム２００が所定のアプリケーション画面の出力を完了させるまでのReadアクセスにおいて、ＮＯＲ  ＦＬＡＳＨ３から主メモリ２へのデータの復元が不要となるので、電源オン操作が行われてから利用可能な状態となるまでの時間を大幅に短縮することが実現される。
【００３２】
また、アプリケーションプログラム２００が画面出力を完了させた後、ＣＰＵ１がアイドル状態になったならば、その期間を活用して、ハイバネーションユーティリティ１５０は、第１に、圧縮されてＮＯＲ  ＦＬＡＳＨ３に格納され、いまだ主メモリ２に復元されていないページの主メモリ２への復元を行い、第２に、非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納され、いまだ主メモリ２に復元されていないページの主メモリ２への復元およびページテーブルの（本来の主メモリ２上のアドレスを示すように）アドレス更新を行う。
【００３３】
これにより、例えばアプリケーションプログラム２００が出力した画面を見てユーザが何らかの操作を開始する時には、ＮＯＲ  ＦＬＡＳＨ３に（一部圧縮して）退避したページの主メモリ２への復元を完了させることが期待できる。よって、主メモリ２よりも小さい容量のＮＯＲ  ＦＬＡＳＨ３で、ハイバネーション／レジューム機能が効率的に実現されることになる。なお、いまだ主メモリ２に復元されていない非圧縮でＮＯＲ  ＦＬＡＳＨ３に退避されたページへのWriteアクセス要求が発生した場合、および、いまだ主メモリ２に復元されていない圧縮してＮＯＲ  ＦＬＡＳＨ３に退避されたページへのアクセス要求が発生した場合には、ハイバネーションユーティリティ１５０は、その時々で、該当ページの主メモリ２への復元を個別的に実施する。
【００３４】
図６は、ハイバネーション／レジューム機能により電源オフ状態に移行した本情報処理装置が電源オン状態に移行する時のハイバネーションユーティリティ１５０の動作手順を示すフローチャートである。
【００３５】
まず、ハイバネーションユーティリティ１５０は、ページテーブルを、ＮＯＲ  ＦＬＡＳＨ３から読み出して主メモリ２上に復元する（ステップＢ１）。このページテーブルの復元後、主メモリ２へのアクセス要求が発生したら（ステップＢ２のＹＥＳ）、レジューム起動後から所定のポイントを通過したか否か、即ち、アプリケーションプログラム２００から所定の通知を受信済みか否かを調べ（ステップＢ３）、受信していなければ（ステップＢ３のＮＯ）、このページに対するアクセス要求が何番目であったのかをページテーブルに記録する（ステップＢ４）。
【００３６】
アプリケーションプログラム２００から所定の通知を受信済みであれば（ステップＢ３のＹＥＳ）、ハイバネーションユーティリティ１５０は、このアクセス順序のページテーブルへの記録を行わない。なお、ここでは、アプセス順序のページテーブルへの記録有無の判断基準を、アプリケーションプログラム２００からの所定の通知の受信有無としているが、これに代えて、例えば主メモリ２の容量とＮＯＲ  ＦＬＡＳＨ３の容量とから導き出される予め定められた値に達したか否かとすることも可能である。
【００３７】
次に、ハイバネーションユーティリティ１５０は、このアクセス要求が圧縮されてＮＯＲ  ＦＬＡＳＨ３に格納されたページに対するものか否かを調べ（ステップＢ５）、圧縮されてＮＯＲ  ＦＬＡＳＨ３に格納されたページに対するものであったならば（ステップＢ５のＹＥＳ）、当該ページの主メモリ２への復元を実行する（ステップＢ６）。この復元は、伸長を伴うものである。
【００３８】
一方、非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納されたページに対するものであったならば（ステップＢ５のＮＯ）、ハイバネーションユーティリティ１５０は、続いて、このアクセス要求がWriteアクセス要求か否かを調べる（ステップＢ７）。そして、Writeアクセス要求であったならば（ステップＢ７のＹＥＳ）、ハイバネーションユーティリティ１５０は、当該ページの主メモリ２への復元を実行する（ステップＢ８）。この復元は、伸長を伴わない、いわゆるコピーとなる。また、Readアクセス要求であったならば（ステップ７のＮＯ）、ハイバネーションユーティリティ１５０は、退避先のＮＯＲ  ＦＬＡＳＨ３にそのままアクセスさせる（ステップＢ９）。
【００３９】
主メモリ２へのアクセス要求が発生していない場合（ステップＢ２のＮＯ）、ハイバネーションユーティリティ１５０は、ＣＰＵ１がアイドル状態にあるか否かを調べる（ステップＢ１０）。そして、アイドル状態にあれば（ステップＢ１０のＹＥＳ）、ハイバネーションユーティリティ１５０は、続いて、退避先のＮＯＲ  ＦＬＡＳＨ３からいまだ主メモリ２に復元されていないページが残っているか否かを調べる（ステップＢ１１）。この時、ハイバネーションユーティリティ１５０は、圧縮されてＮＯＲ  ＦＬＡＳＨ３に格納されている残ページを優先して検索し、次に、非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納されている残ページを検索する。
【００４０】
そして、残ページが検出されたら（ステップＢ１１のＹＥＳ）、当該ページの主メモリ２への復元を実行し（ステップＢ１２）、すべてのページが復元済みであれば（ステップＢ１１のＮＯ）、この処理を終了する。
【００４１】
また、図７は、２回目以降、ハイバネーション／レジューム機能により本情報処理装置が電源オフ状態に移行する時のハイバネーションユーティリティ１５０の動作手順を示すフローチャートである。
【００４２】
まず、ハイバネーションユーティリティ１５０は、ページテーブルにアクセス順序が記録されておらず、かつ、ＮＯＲ  ＦＬＡＳＨ３に退避されていないページが存在するか否かを調べ（ステップＣ１）、該当するページが存在したら（ステップＣ２のＹＥＳ）、そのページを圧縮してＮＯＲ  ＦＬＡＳＨ３に格納する（ステップＣ３）。ハイバネーションユーティリティ１５０は、このＮＯＲ  ＦＬＡＳＨ３への格納が正常終了したか否かを調べ（ステップＣ４）、正常終了していれば（ステップＣ５のＹＥＳ）、ページテーブルの圧縮フラグを立て（ステップＣ６）、ステップＣ１からの処理を繰り返す。
【００４３】
もし、このＮＯＲ  ＦＬＡＳＨ３への格納が正常終了しなかった場合には（ステップＣ５のＮＯ）、ハイバネーションユーティリティ１５０は、ハイバネーション／レジューム機能による電源オフ状態への移行をエラー終了させるか、または、次回の電源オンへの移行が通常手続きを踏んで行われるように本情報処理装置を電源オフ状態へ移行させる（ステップＣ７）。
【００４４】
一方、ページテーブルにアクセス順序が記録されておらず、かつ、ＮＯＲ  ＦＬＡＳＨ３に退避されていないページが無くなった場合（ステップＣ２のＮＯ）、ハイバネーションユーティリティ１５０は、今度は、ページテーブルにアクセス順序が記録されていて、かつ、ＮＯＲ  ＦＬＡＳＨ３に退避されていないページが存在するか否かを調べる（ステップＣ８）。該当するページが存在したら（ステップＣ９のＹＥＳ）、ハイバネーションユーティリティ１５０は、まず、残ページの総容量がＮＯＲ  ＦＬＡＳＨ３の空き容量以下となるまで、アクセス順序が後ろのページから圧縮してＮＯＲ  ＦＬＡＳＨ３に格納していき、ＮＯＲ  ＦＬＡＳＨ３の空き容量以下となったら、残ページすべてを非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納する（ステップＣ１０）。
【００４５】
なお、ページテーブルにアクセス順序が記録されているページを圧縮してＮＯＲ  ＦＬＡＳＨ３に退避する時、ハイバネーションユーティリティ１５０は、ページテーブルにアクセス順序が記録されていないページを圧縮してＮＯＲ  ＦＬＡＳＨ３に退避する場合と比較して、その圧縮率を低くするようにしても良い。これらのページについては、その伸長時の処理時間を少しでも短縮させるわけである。また、さらに、アクセス順序が後ろのページから前のページへと向かうにつれて、その圧縮率を低くすることも有効である。つまり、次回の電源オン状態への移行時にアクセス要求がより早く発生すると推測されるページの伸長時の処理時間をより短縮させるようにする。
【００４６】
ハイバネーションユーティリティ１５０は、このＮＯＲ  ＦＬＡＳＨ３への格納が正常終了したか否かを調べ（ステップＣ１１）、正常終了していれば（ステップＣ１２のＹＥＳ）、ページテーブルを非圧縮でＮＯＲ  ＦＬＡＳＨ３に格納し（ステップＣ１３）、次回の電源オンへの移行がハイバネーション／レジューム機能により行われるように本情報処理装置を電源オフ状態へ移行させる（ステップＣ１４）。一方、正常終了しなかった場合には（ステップＣ１２のＮＯ）、ハイバネーションユーティリティ１５０は、ハイバネーション／レジューム機能による電源オフ状態への移行をエラー終了させるか、または、次回の電源オンへの移行が通常手続きを踏んで行われるように本情報処理装置を電源オフ状態へ移行させる（ステップＣ７）。
【００４７】
このように、本情報処理装置によれば、主メモリ２よりも小さい容量のＮＯＲ  ＦＬＡＳＨ３で、ハイバネーション／レジューム機能を効率的に実現する。
【００４８】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４９】
【図１】この発明の一実施形態に係る情報処理装置の概略構成を示す図
【図２】同実施形態の情報処理装置における最初にハイバネーション／レジューム機能により電源オフ状態に移行する時のハイバネーションユーティリティの動作原理を説明するための図
【図３】同実施形態の情報処理装置における最初にハイバネーション／レジューム機能により電源オフ状態に移行する時のハイバネーションユーティリティの動作手順を示すフローチャート
【図４】同実施形態の情報処理装置におけるハイバネーション／レジューム機能により電源オフ状態に移行した後に電源オン状態に移行する時のハイバネーションユーティリティの動作原理を説明するための図
【図５】同実施形態の情報処理装置におけるハイバネーション／レジューム機能により電源オン状態に移行した後に電源オフ状態に移行する時のハイバネーションユーティリティの動作原理を説明するための図
【図６】同実施形態の情報処理装置におけるハイバネーション／レジューム機能により電源オフ状態に移行した後に電源オン状態に移行する時のハイバネーションユーティリティの動作手順を示すフローチャート
【図７】同実施形態の情報処理装置におけるハイバネーション／レジューム機能により電源オン状態に移行した後に電源オフ状態に移行する時のハイバネーションユーティリティの動作手順を示すフローチャート
【符号の説明】
【００５０】
１…ＣＰＵ、２…主メモリ、３…ＮＯＲ  ＦＬＡＳＨ、４…システムバス、１００…オペレーティングシステム（ＯＳ）、１０１…仮想記憶管理モジュール、１５０…ハイバネーションユーティリティ、２００…アプリケーションプログラム。
【図１】
2010055184.tif 000003
【図２】
2010055184.tif 000004
【図３】
2010055184.tif 000005
【図４】
2010055184.tif 000006
【図５】
2010055184.tif 000007
【図６】
2010055184.tif 000008
【図７】
2010055184.tif 000009