(57)【要約】【課題】サスペンドの処理に係る時間を短縮する。【解決手段】主記憶装置と２次記憶装置を備え、主記憶装置は、不揮発性記憶部と揮発性記憶部を備え、揮発性記憶部は、２次記憶装置の所定の領域と同期される同期領域を有し、揮発性記憶部が動作時に、同期領域に置かれたページは、２次記憶装置に同期して記憶される。同期領域に置かれたページは、サスペンド処理時に２次記憶装置に退避する必要があるページである。本技術は、バッテリ駆動型のパーソナルコンピュータなどの形態端末に適用できる。【選択図】図４
2014186622.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置と２次記憶装置を備え、
前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備え、
前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、
前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶される
情報処理装置。
【請求項２】
前記同期領域に置かれたページは、サスペンド処理終了より前に前記２次記憶装置に退避する必要があるページである
請求項１に記載の情報処理装置。
【請求項３】
前記不揮発性記憶部に記憶されるページを管理する第１のリストと、前記揮発性記憶部と前記２次記憶装置に同期されて記憶されるページを管理する第２のリストをさらに備える
請求項１に記載の情報処理装置。
【請求項４】
前記２次記憶装置に記憶されるページを管理する第３のリストをさらに備える
請求項３に記載の情報処理装置。
【請求項５】
前記ページは、前記ページに対する書き換え頻度により前記第１のリスト、前記第２のリスト、および前記第３のリストのうちのいずれかのリストに振り分けられる
請求項４に記載の情報処理装置。
【請求項６】
前記第２のリストまたは前記第３のリストにより管理されているページに対して書き換えが行われた場合、書き換えが行われた前記ページは、前記第１のリストが管理するページに変更され、前記不揮発性記憶部に移動される
請求項４に記載の情報処理装置。
【請求項７】
前記揮発性記憶部は、最も書き換え頻度が高いページであり、サスペンド処理時に前記不揮発性記憶部に退避するページを記憶する退避対象領域を有し、
前記不揮発性記憶部は、サスペンド処理時に、前記退避対象領域に記憶されているページが退避される退避用領域を有し、
前記退避対象領域に記憶されているページを管理する第４のリストをさらに備える
請求項４に記載の情報処理装置。
【請求項８】
前記第１のリスト乃至前記第３のリストのいずれかに管理されているページに対して書き換えが行われた場合、書き換えが行われた前記ページは、前記第４のリストが管理するページに変更され、前記退避対象領域に移動される
請求項７に記載の情報処理装置。
【請求項９】
主記憶装置と２次記憶装置を備え、
前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、
前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、
前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶されるための処理を行うステップを含む
情報処理方法。
【請求項１０】
主記憶装置と２次記憶装置を備え、
前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備える情報処理装置に、
前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、
前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶されるための処理を行うステップを含む
処理をコンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法、並びに記録媒体に関する。詳しくは、サスペンドなどの状態に移行する際の時間を短縮することができる情報処理装置、情報処理方法、並びに記録媒体に関する。
【背景技術】
【０００２】
デスクトップ型、ノートブック型、タブレット型などの各種パーソナルコンピュータや、スマートフォンやモバイル端末機などが普及している。ノートブック型やタブレット型などのパーソナルコンピュータやモバイル端末機などは、内蔵したバッテリでも駆動できるバッテリ駆動型であり、持ち運びが容易にできる構造とされている。
【０００３】
バッテリの駆動時間は限られており、バッテリでの駆動時間を長くするための節電のためのさまざまな工夫が提案されている。モバイル端末機に限らず、デスクトップ型のパーソナルコンピュータにおいても節電はなされている。
【０００４】
節電の仕方の１つとして、システムの使用状況が低下したことに応答してシステムの一部又は全体への電力供給を適宜低下若しくは遮断する方法が考えられる。ただし、電源を遮断することによりタスクが中断されることから、電源再投入時に中断した時点からタスクを再開できるように、電源を遮断する前にシステムの状態情報を退避し、電源再投入時に退避した状態情報を復元する必要がある。システムの状態情報を退避してタスクを中断する動作のことを「サスペンド」と称し、状態情報を復元してタスクを再開する動作のことを「レジューム」と称する。
【０００５】
サスペンド・レジューム機能を実現するために、２通りの方法が挙げられる。１つは、端末の電源切断前後で揮発性の主記憶装置などに電源を供給し続けてシステムの状態情報を保持する方式である。また、もう１つは、主記憶装置などに展開されているシステムの状態情報を電源切断時に不揮発性の２次記憶装置に退避し、電源投入時に退避した状態情報を主記憶装置などに復元する方式である。
【０００６】
前者の方式では、バッテリ・バックアップされた揮発性の主記憶装置などにシステムの状態情報を保存する。このため、端末の退避・復帰の処理が非常に高速であるが、端末の停止中も主記憶装置による記憶保持動作のために電力を消費するため、節電の効果は低い。一方、後者の場合、タスク再開に必要なシステムの状態情報を不揮発性の２次記憶装置で保存するため、端末内のほとんどすべてのコンポーネントの電源遮断することができ、節電の効果が高い。
【０００７】
しかしながら、２次記憶装置としてのハードディスクドライブ（あるいはフラッシュメモリ）は、一般に主記憶装置よりもアクセス速度が低い。主記憶装置上のメモリイメージを２次記憶装置に格納したり展開したりする処理動作が含まれると、多くの時間を要するという欠点がある。
【０００８】
このように、システムの主記憶装置は揮発性だったため、主記憶装置を含むシステムの全電源を遮断して休止（サスペンド）状態に移行するためには、主記憶装置の内容を２次記憶装置に退避する必要があった(サスペンド・トゥ・ディスクもしくはハイバネーションと呼ばれる処理)。
【０００９】
これに対し、主記憶装置の一部に不揮発性のデバイスを用いることで、不揮発性記憶部のデータ退避を不要とし、サスペンド処理に必要となる時間を短くする手法が提案されている。（例えば、特許文献１参照）
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−３６２４２６
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１においては、レジューム処理に必要なページに優先度を付け、サスペンド時に優先度の高い順に不揮発性記憶部にページを移動し、不揮発性記憶部に記憶できずにあふれ出たページを２次記憶装置に移動する。そしてレジューム処理時には、２次記憶装置に記憶されたページを揮発性記憶部に読み出すことで行われる。
【００１２】
しかしながら、特許文献１においては、揮発性記憶部から不揮発性記憶部や２次記憶装置にページをサスペンド時に行うため、そのページの退避にかかる時間を短縮することは困難である。例えば、揮発性記憶部に置かれているページが多い場合、サスペンドの処理時に、移動させるページが多く、時間がかかってしまうため、ページの退避にかかる時間を短縮することは困難となる。
【００１３】
サスペンドの処理に係る時間を短縮することで、節電などの効果も望めるため、サスペンドの処理に係る時間の短縮が望まれている。
【００１４】
本技術は、このような状況に鑑みてなされたものであり、サスペンドの処理に係る時間を短縮することができるようにするものである。
【課題を解決するための手段】
【００１５】
本技術の一側面の情報処理装置は、主記憶装置と２次記憶装置を備え、前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備え、前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶される。
【００１６】
前記同期領域に置かれたページは、サスペンド処理終了より前に前記２次記憶装置に退避する必要があるページであるようにすることができる。
【００１７】
前記不揮発性記憶部に記憶されるページを管理する第１のリストと、前記揮発性記憶部と前記２次記憶装置に同期されて記憶されるページを管理する第２のリストをさらに備えるようにすることができる。
【００１８】
前記２次記憶装置に記憶されるページを管理する第３のリストをさらに備えるようにすることができる。
【００１９】
前記ページは、前記ページに対する書き換え頻度により前記第１のリスト、前記第２のリスト、および前記第３のリストのうちのいずれかのリストに振り分けられるようにすることができる。
【００２０】
前記第２のリストまたは前記第３のリストにより管理されているページに対して書き換えが行われた場合、書き換えが行われた前記ページは、前記第１のリストが管理するページに変更され、前記不揮発性記憶部に移動されるようにすることができる。
【００２１】
前記揮発性記憶部は、最も書き換え頻度が高いページであり、サスペンド処理時に前記不揮発性記憶部に退避するページを記憶する退避対象領域を有し、前記不揮発性記憶部は、サスペンド処理時に、前記退避対象領域に記憶されているページが退避される退避用領域を有し、前記退避対象領域に記憶されているページを管理する第４のリストをさらに備えるようにすることができる。
【００２２】
前記第１のリスト乃至前記第３のリストのいずれかに管理されているページに対して書き換えが行われた場合、書き換えが行われた前記ページは、前記第４のリストが管理するページに変更され、前記退避対象領域に移動されるようにすることができる。
【００２３】
本技術の一側面の情報処理方法は、主記憶装置と２次記憶装置を備え、前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶されるための処理を行うステップを含む。
【００２４】
本技術の一側面の記録媒体は、主記憶装置と２次記憶装置を備え、前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備える情報処理装置に、前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶されるための処理を行うステップを含む処理をコンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体である。
【００２５】
本技術の一側面の情報処理装置、情報処理方法、並びに記録媒体においては、主記憶装置と２次記憶装置が備えられ、主記憶装置には、不揮発性記憶部と揮発性記憶部が備えられる。揮発性記憶部には、２次記憶装置の所定の領域と同期される同期領域が設けられ、揮発性記憶部が動作時に、同期領域に置かれたページは、２次記憶装置に同期して記憶されるための処理が行われる。
【発明の効果】
【００２６】
本技術の一側面によれば、サスペンドの処理に係る時間を短縮することができる。
【図面の簡単な説明】
【００２７】
【図１】従来の情報処理装置の一例を示す図である。
【図２】従来のサスペンド時の処理について説明するためのフローチャートである。
【図３】本技術を適用した情報処理装置の一実施の形態の構成を示す図である。
【図４】情報処理装置の機能を示す図である。
【図５】サスペンド処理時のページの退避について説明するための図である。
【図６】サスペンド時の処理について説明するためのフローチャートである。
【図７】情報処理装置の他の構成を示す図である。
【図８】ページの同期について説明するための図である。
【図９】ページとリストの関係について説明するための図である。
【図１０】ページの移動について説明するための図である。
【図１１】ページのリスト間の遷移について説明するための図である。
【図１２】ページ移動時のデータ構造の変化について説明するための図である。
【図１３】ページが書き換えられたときの処理について説明するためのフローチャートである。
【図１４】ページが書き換えられたときの処理について説明するためのフローチャートである。
【図１５】情報処理装置のさらに他の構成を示す図である。
【図１６】ページの移動について説明するための図である。
【図１７】ページとリストの関係について説明するための図である。
【図１８】ページのリスト間の遷移について説明するための図である。
【図１９】サスペンド時の処理について説明するためのフローチャートである。
【図２０】記録媒体について説明するための図である。
【発明を実施するための形態】
【００２８】
以下に、本技術を実施するための形態（以下、実施の形態という）について説明する。なお、説明は、以下の順序で行う。
１．従来のサスペンドに係わる処理
２．本技術を適用した第１の実施の形態における情報処理装置の構成
３．第１の実施の形態におけるサスペンドの処理
４．第２の実施の形態における情報処理装置の構成
５．第２の実施の形態におけるページの移動、リストの更新
６．第３の実施の形態における情報処理装置の構成
７．第３の実施の形態におけるサスペンドの処理
８．他の構成について
９．記録媒体について
【００２９】
＜従来のサスペンドに係わる処理＞
本技術と従来技術との差異を明確にするために、まず従来技術における情報処理装置と、その情報処理装置におけるサスペンド時の処理について説明する。図１は、従来技術における情報処理装置の構成を示す図であり、図２は、図１に示した情報処理装置におけるサスペンド時の処理について説明するためのフローチャートである。
【００３０】
図１に示した情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１、主記憶装置１０２、２次記憶装置１０３、入出力部１０４、およびシステムバス１０５を備えている。
【００３１】
ＣＰＵ１０１は、オペレーティングシステム（ＯＳ）の制御下で、各種プログラムを実行する。ＣＰＵ１０１は、データ信号線、アドレス信号線、コントロール信号線などからなる共通信号伝送路であるシステムバス１０５を介して情報処理装置１００内の各部を制御する。
【００３２】
主記憶装置１０２は、ＣＰＵ１０１が実行する各プログラム（ＯＳやアプリケーションプログラムなど）をロードしたり、ＣＰＵ１０１が作業領域として用いたりするために使用される。２次記憶装置１０３は、ハードディスクドライブ（ＨＤＤ）やフラッシュメモリなどの不揮発性の記憶部で構成される。２次記憶装置１０３は、主記憶装置１０２に比べてアクセス速度は低速であるが、大容量であり、主記憶装置１０２を補助するために装備されている。
【００３３】
ＨＤＤは、磁気ディスクを固定的に搭載した外部記憶部であり、記憶容量やデータ転送速度などの点でＣＤ／ＤＶＤなど他のディスク型記憶装置よりも優れている。通常、ＨＤＤには、ＣＰＵ１０１が実行すべきオペレーティングシステムのプログラムコードや、アプリケーションプログラム、デバイスドライバなどが不揮発的に格納されている。
【００３４】
入出力部１０４には、キーボードやマウスなどのユーザ入力装置、ディスプレイやプリンタなどの出力装置、ネットワーク装置やその他の外部機器との接続インタフェースなどを含む。ディスプレイ上の描画データは、一旦ビデオＲＡＭ（ＶＲＡＭ）（不図示）に一旦書き込まれた後、表示出力される。
【００３５】
システムバス１０５上の各デバイスには、Ｉ／Ｏ空間上の固有のアドレス（Ｉ／Ｏアドレス）が割り振られており、Ｉ／Ｏアドレスの指定によって各デバイスへのアクセスが実現される。また、各デバイスのバス・インターフェースはＩ／Ｏレジスタ（不図示）を備えており、デバイスへの書き込みデータやコマンド、デバイスからの読み出しデータ、デバイス状態などは一旦Ｉ／Ｏレジスタに書き込まれた後、バス転送が行なわれる。
【００３６】
なお、図１に示した情報処理装置１００の構成は、以下の説明に必要な構成を示し、他の機能を実現するための構成については図示していない。
【００３７】
図２のフローチャートを参照し、図１に示した情報処理装置１００におけるサスペンド時の処理について説明する。
【００３８】
ステップＳ１１において、管理しているページテーブルが確認され、主記憶装置１０２を使用している仮想ページがあるかが確認される。ステップＳ１２において、ステップＳ１１における確認の結果、主記憶装置１０２を使用中の仮想ページがあるか否かが判断される。ステップＳ１２において、主記憶装置１０２を使用中の仮想ページがあると判断された場合、ステップＳ１３に処理が進められる。主記憶装置１０２を使用している仮想ページが見つかった場合、そのページを２次記憶装置１０３へ退避するための処理が開始される。
【００３９】
ステップＳ１３において、主記憶装置１０２を使用している仮想ページを退避させるために、２次記憶装置１０３の空き領域が確保される。例えば、オペレーティングシステムのスワップ管理機能が、スワップ領域から１ページ分の未使用領域を探し出すことで、２次記憶装置１０３の空き領域が確保される。
【００４０】
ステップＳ１４において、確保された２次記憶装置１０３の空き領域に、主記憶装置１０２を使用中のページが退避される。例えば、前述のスワップ管理機能が、確保した空き領域にページをコピーすることで行われる。
【００４１】
ステップＳ１５において、ページテーブルが更新され、退避されたページをマッピングしている仮想アドレスが無効化される。また、退避されたページが解放され、空き領域とされる。
【００４２】
ステップＳ１１乃至Ｓ１５の処理が繰り返されることで、主記憶装置１０２を使用しているページがなくなるまで繰り返し行われることで、主記憶装置１０２を使用中のページの退避が行われる。
【００４３】
そしてステップＳ１２において、主記憶装置１０２を使用中のページはないと判断された場合、ステップＳ１６に処理が進められ、システムの電源が遮断される。
【００４４】
このようにしてサスペンド時の処理が行われ、レジューム時には、退避されたデータが、２次記憶装置１０３から主記憶装置１０２に戻されることで、システムの電源が遮断される前の状態に復帰される。
【００４５】
このようにしてサスペンド時の処理が行われるため、サスペンドの処理が開始されるときに、主記憶装置１０２を使用しているデータ量が多いと、２次記憶装置１０３へのデータの退避にかかる時間が長くなる。すなわち、ステップＳ１３やステップＳ１４の処理が繰り返し行われると、サスペンドの処理が終了するまでに時間がかかってしまう。
【００４６】
例えば、ユーザが、サスペンドを指示し、電源が遮断されるのを確認するような場合、指示から電源が遮断されるまでの時間が長くなり、ユーザがいらついたりしてしまう可能性がある。また、ユーザが間違ってサスペンドを指示してしまったような場合、サスペンドが終了した後、レジュームが指示され、サスペンドが開始される前の状態に復帰後、正しい指示が出されることになるが、このような処理がなされる間の時間がかかってしまい、上記した場合と同じく、ユーザがいらついたりしてしまう可能性がある。
【００４７】
また、情報処理装置１００を利用しない時間を、サスペンドの状態とすることで、節電効果を期待できるが、サスペンドの処理が終了するまでの時間がかかると、その節電効果も薄れてしまう。このようなことから、サスペンドそのものが利用されなくなる可能性もある。よって、サスペンドにかかる時間が短縮されることにより、これらの可能性を低くすることができる。そこで、以下に、サスペンドの処理に係る時間を短縮することができる本技術の実施の形態について説明する。
【００４８】
＜本技術を適用した第１の実施の形態における情報処理装置の構成＞
図３は、本技術を適用した第１の実施の形態における情報処理装置のハードウエアの構成を示す図である。図３に示した情報処理装置２００は、ＣＰＵ２０１、主記憶装置２０２、２次記憶装置２０３、入出力部２０４、およびシステムバス２０５を備えている。また、図２に示した情報処理装置２００の主記憶装置２０２は、不揮発性記憶部２１１と揮発性記憶部２１２を備えている。
【００４９】
情報処理装置２００は、例えば、デスクトップ型、ノートブック型、タブレット型などの各種パーソナルコンピュータや、スマートフォンやモバイル端末機などである。
【００５０】
ＣＰＵ２０１は、オペレーティングシステム（ＯＳ）の制御下で、各種プログラムを実行する。ＣＰＵ２０１は、データ信号線、アドレス信号線、コントロール信号線などからなる共通信号伝送路であるシステムバス２０５を介して情報処理装置２００内の各部を制御する。
【００５１】
主記憶装置２０２は、ＣＰＵ２０１が実行する各プログラム（ＯＳやアプリケーションプログラムなど）をロードしたり、ＣＰＵ２０１が作業領域として用いたりするために使用される。２次記憶装置２０３は、ハードディスクドライブ（ＨＤＤ）やフラッシュメモリなどの不揮発性の記憶部で構成される。２次記憶装置２０３は、主記憶装置２０２に比べてアクセス速度は低速であるが、大容量であり、主記憶装置２０２を補助するために装備されている。
【００５２】
入出力部２０４には、キーボードやマウスなどのユーザ入力装置、ディスプレイやプリンタなどの出力装置、ネットワーク装置やその他の外部機器との接続インタフェースなどを含む。ディスプレイ上の描画データは、一旦ビデオＲＡＭ（ＶＲＡＭ）（不図示）に一旦書き込まれた後、表示出力される。
【００５３】
システムバス２０５上の各デバイスには、Ｉ／Ｏ空間上の固有のアドレス（Ｉ／Ｏアドレス）が割り振られており、Ｉ／Ｏアドレスの指定によって各デバイスへのアクセスが実現される。また、各デバイスのバス・インターフェースはＩ／Ｏレジスタ（不図示）を備えており、デバイスへの書き込みデータやコマンド、デバイスからの読み出しデータ、デバイス状態などは一旦Ｉ／Ｏレジスタに書き込まれた後、バス転送が行なわれる。
【００５４】
なお、図２に示した情報処理装置２００の構成は、以下の説明に必要な構成を示し、他の機能を実現するための構成については図示していない。
【００５５】
図１に示した情報処理装置１００と図３に示した情報処理装置２００を比較する。図１に示した従来の情報処理装置１００における主記憶装置１０２は、揮発性記憶部で構成されているのに対し、図３に示した情報処理装置２００は、主記憶装置２０２が不揮発性記憶部２１１と揮発性記憶部２１２から構成されている点が異なる。
【００５６】
不揮発性記憶部２１１は、主記憶装置２０２のうち、情報処理装置２００の電源を遮断してもデータが消えない領域である。具体的にはMRAMやReRAMなどの不揮発性メモリ素子を使ったデバイスを用いても良い。
【００５７】
MRAM（Magnetic RAM）は、トンネル磁気抵抗効果を利用したTMR（Tunneling Magneto Resistance）素子で構成され、電子の電荷ではなく電子のスピンで情報を保持することができる。ＭＲＡＭは、書き換え／読み出しなどのアクセス速度、集積度、消費電力、ビット単価などの点で主記憶装置２０２としての条件をほぼ満足する他、不揮発性であるという特徴を持つ。
【００５８】
また、ReRAM（Resistance RAM）は、電圧の印加による電気抵抗の変化を利用した不揮発性メモリであり、電圧で書き換えるため（電流が微量で）消費電力が小さい、セル面積が小さく、高密度化が可能であるという特徴があり、MRAM同様に主記憶装置としての条件をほぼ満足する。よって、具体的には、MRAMやReRAMなどの不揮発性メモリ素子を使ったデバイスを主記憶装置２０２の不揮発性記憶部２１１に用いることができるが、一例であり、限定を示す記載ではない。
【００５９】
また主記憶装置２０２の不揮発性記憶部２１１として、DRAM（Dynamic Random Access Memory）などの揮発性メモリ素子を用いたデバイスに、バックアップ用の電池を付加して実現することも可能である。
【００６０】
不揮発性記憶部２１１に対し、揮発性記憶部２１２は、主記憶装置２０２のうち、情報処理装置２００の電源を遮断したときにデータが消えてしまう領域である。
【００６１】
図４は、図３に示したハードウエアの構成を有する情報処理装置２００の機能ブロック図である。図４に示した情報処理装置２００は、ハードウエアの構成と、ＣＰＵ２０１が所定のプログラムを実行することで実現される機能を合わせて図示してある。
【００６２】
図４に示した情報処理装置２００は、２次記憶装置２０３、不揮発性記憶部２１１、揮発性記憶部２１２、サスペンド指示部２５１、ページテーブル管理部２５２、物理メモリ割り当て管理部２５３、ページ移動部２５４、ページ移動指示部２５５、常時同期領域管理部２５６、および常時同期領域２６１を備える。
【００６３】
２次記憶装置２０３、不揮発性記憶部２１１、揮発性記憶部２１２は、図３に示した２次記憶装置２０３、不揮発性記憶部２１１、揮発性記憶部２１２である。２次記憶装置２０３は、フラッシュメモリやハードディスクなど、電源を切ってもデータを保持し続けるデバイスである。２次記憶装置２０３は、通常主記憶装置２０２より記憶容量が大きく、アクセス速度が遅くても良い。
【００６４】
２次記憶装置２０３は、ファイルシステムやデータベースのような永続的データが保存される領域である。加えて、２次記憶装置２０３に主記憶装置２０２の情報を退避する領域（以下、適宜、スワップ領域と記述する）を設け、システムの動作中に主記憶装置２０２に収まらなくなったデータを退避したり、常時同期領域２６１が保持するデータのコピーを保存したりする。
【００６５】
サスペンド指示部２５１は、ユーザが入出力部２０４（図３）を操作してサスペンドを指示したとき、サスペンド時に処理を行う箇所に対し、サスペンド処理の開始を通知する。
【００６６】
ページテーブル管理部２５２は、物理アドレスと仮想アドレスのマッピングを行うためのページテーブルを管理する。ページテーブルは、MMU（Memory Management Unit;メモリ管理ユニット）が物理アドレスと仮想アドレスを変換するために参照するテーブルであり、仮想アドレス空間毎に、複数存在する。
【００６７】
ページテーブル管理部２５２は、ページ移動部２５４がページを移動した際、その移動元と移動先の物理アドレスを受け取り、その物理アドレスをマッピングしているページテーブルのデータを更新する。またページテーブル管理部２５２は、サスペンド指示部２５１からサスペンド処理開始の通知を受け取った場合、揮発性記憶部２１２をマッピングしている仮想アドレスを無効化する。
【００６８】
物理メモリ割り当て管理部２５３は、物理メモリのどのページが使用中で、どのページが空いているかを管理する。物理メモリ割り当て管理部２５３は、ページ移動部２５４が、ページを移動する際に、移動先のページを空き領域から確保し、その位置をページ移動部２５４に通知する。移動が終了したあとは、移動元のページを空き領域にする。
【００６９】
ページ移動部２５４は、ページ移動指示部２５５に指定されたページのデータを、主記憶装置２０２上の他の領域、もしくは２次記憶装置２０３に移動する。例えば、所定のページのデータを揮発性記憶部２１２から不揮発性記憶部２１１へコピーし、物理メモリ割り当て管理部２５３に依頼してコピー元のメモリを解放し、コピー先のメモリを使用中にする。ページの移動に伴い、ページテーブル管理部２５２に移動元と移動先の物理アドレスを通知する。
【００７０】
ページ移動指示部２５５は、ページ移動部２５４に対して主記憶装置２０２上のデータの移動を指示する。
【００７１】
常時同期領域管理部２５６は、揮発性記憶部２１２に設けられている常時同期領域２６１のうち、まだ２次記憶装置２０３と同期されていない使用中のページを、２次記憶装置２０３と同期させるための処理を行う。２次記憶装置２０３の主記憶装置２０２のデータ退避用領域に、ページのデータをコピーする。
【００７２】
常時同期領域２６１は、揮発性記憶部２１２に設けられる。常時同期領域２６１は、揮発性記憶部２１２のうち、２次記憶装置２０３と常に同期させるように定められた領域である。常時同期領域２６１は、揮発性記憶部２１２の所定の領域が固定的に割り当てられた領域とすることができる。または、例えばオペレーティングシステムがページ(メモリを管理する単位)毎に、常時同期領域２６１か否かを示すフラグをつけ、論理的に判別される領域とすることも可能である。
【００７３】
揮発性記憶部２１２上に置かれるデータのうち、通常であればサスペンド処理中に退避が必要とされる一時的データ（例えばアプリケーションが動的に確保したメモリのデータなど）は、常時同期領域２６１に置かれる。揮発性記憶部２１２の常時同期領域２６１以外の領域には、退避が不要なデータ（例えばファイルデータのキャッシュなど）が置かれる。
【００７４】
このように、本実施の形態における情報処理装置２００は、主記憶装置２０２に不揮発性記憶部２１１と揮発性記憶部２１２を有し、揮発性記憶部２１２に、常時同期領域２６１が設けられている。常時同期領域２６１は、サスペンドの処理が開始された場合に、揮発性記憶部２１２から、２次記憶装置２０３に移動されるデータが、サスペンドの処理に係わらず書き込まれている。このことについて、図５を参照して説明する。
【００７５】
図５の左図は、サスペンド処理開始時（前）の不揮発性記憶部２１１、常時同期領域２６１、および２次記憶装置２０３のそれぞれが記憶しているデータを表す。図５の右図は、サスペンド処理終了後の不揮発性記憶部２１１、常時同期領域２６１、および２次記憶装置２０３のそれぞれが記憶しているデータを表す。
【００７６】
不揮発性記憶部２１１には、ページ(Page)１乃至３が記憶されている。この状態は、サスペンド処理の前後で同じである。サスペンド処理開始時に、揮発性記憶部２１２の常時同期領域２６１には、ページ４乃至７が記憶されている。２次記憶装置２０３にもページ４乃至７が記憶されている。これは、常時同期領域２６１にページ４乃至７が記憶されている状態であり、この常時同期領域２６１の記憶の状態と同期された結果、２次記憶装置２０３にも、ページ４乃至７が記憶されるからである。
【００７７】
２次記憶装置２０３と常時同期領域２６１の同期は、情報処理装置２００が起動されている状態のときに常に行われる。情報処理装置２００が起動されているときには、揮発性記憶部２１２もページを記憶する動作中であり、そのような揮発性記憶部２１２が動作中であるときに、２次記憶装置２０３と常時同期領域２６１の同期は行われる。
【００７８】
また、同期されるページ（データ）は、サスペンド処理時に２次記憶装置２０３に退避する必要があるページである。
【００７９】
サスペンドの処理が開始されたとき、既に、常時同期領域２６１(揮発性記憶部２１２)から２次記憶装置２０３にコピーすべきページのデータはコピー済の状態であるため、サスペンドの処理時に、揮発性記憶部２１２から２次記憶装置２０３にデータをコピーするための時間をなくすことが可能となる。すなわち、サスペンド時の処理時間の短縮を実現することができる。このことについて、図６のフローチャートを参照して説明する。
【００８０】
＜第１の実施の形態におけるサスペンドの処理＞
図６に示したフローチャートの処理は、ユーザからのサスペンドの処理の開始が指示され、サスペンド指示部２５１により、情報処理装置２００の各部にサスペンドの処理の開始が指示されたときに開始される。
【００８１】
ステップＳ１０１において、ページテーブル管理部２５２は、管理しているページテーブルを確認し、揮発性記憶部２１２を使用している仮想ページがあるか確認する。
【００８２】
ステップＳ１０２において、ページテーブル管理部２５２の確認の結果が用いられ、揮発性記憶部２１２を使用している仮想ページがあるか否かが判断される。ステップＳ１０２において、揮発性記憶部２１２を使用している仮想ページがあると判断された場合、ステップＳ１０３に処理が進められる。
【００８３】
ステップＳ１０３において、揮発性記憶部２１２を使用している仮想ページがあると判断された仮想ページをマッピングしている仮想アドレスを無効化する処理が実行される。すなわち、ページテーブル管理部２５２は、ページテーブルを更新し、退避したページをマッピングしている仮想アドレスを無効化する。
【００８４】
また物理メモリ割り当て管理部２５３は、退避したページを解放し、空き領域にする。そして、処理は、ステップＳ１０１に戻され、それ以降の処理が繰り返される。
【００８５】
一方、ステップＳ１０２において、揮発性記憶部２１２を使用している仮想ページはないと判断された場合、ステップＳ１０４に処理が進められる。ステップＳ１０４において、情報処理装置２００の電源が遮断され、サスペンドの処理が終了される。
【００８６】
ここで、図２に示した従来のサスペンドの処理と、図６に示した本技術によるサスペンドの処理を比較する。図２に示した従来のサスペンドの処理によると、ステップＳ１３において、２次記憶装置１０３の空き容量が確保され、ステップＳ１４において、主記憶装置１０２から２次記憶装置１０３にページがコピーされるという処理が含まれる。
【００８７】
図６に示した本技術によるサスペンドの処理によると、ステップＳ１３とステップＳ１４において実行される処理に該当する処理が実行されない。すなわち、ステップＳ１２とステップＳ１３において実行される処理に該当する処理を省略することができる。
【００８８】
ステップＳ１４において実行される処理は、アクセス速度の遅い２次記憶装置２０３への書き込みが発生するため、時間のかかる処理である。この時間のかかる処理を省略することが、図４乃至図６を参照して説明した実施の形態によれば可能となるため、サスペンド処理を短時間で終了することが可能となる。
【００８９】
＜第２の実施の形態における情報処理装置の構成＞
第１の実施の形態においては、主記憶装置２０２の揮発性記憶部２１２に記憶されているデータを２次記憶装置２０３にコピーすることで、揮発性記憶部２１２に記憶されているデータと２次記憶装置２０３に記憶されているデータを同期させ、サスペンド時の処理時間を短縮することについて説明した。
【００９０】
ところで、揮発性記憶部２１２に記憶されているデータを２次記憶装置２０３にコピーするという処理が、情報処理装置２００が動作中に頻繁に行われたり、コピーされるデータ量が多かったりすると、情報処理装置２００の実行速度が低下してしまう可能性がある。例えば、起動されているアプリケーションの処理速度が、揮発性記憶部２１２から２次記憶装置２０３へのデータのコピーの処理により低下してしまう可能性がある。このような処理速度の低下は発生しないのが良い。
【００９１】
また、２次記憶装置２０３を、例えば、NANDフラッシュメモリで構成した場合、NANDフラッシュメモリの書き換え寿命を縮めてしまう可能性がある。NANDフラッシュメモリは、動作原理上絶縁体となる酸化膜が貫通する電子によって劣化するため、消去や書き込みの可能回数が限られている。そのため、例えば、NANDフラッシュメモリで構成された２次記憶装置２０３は、ハードディスクなどで構成された２次記憶装置２０３に比べて書き換え寿命が短い。このようなことを考慮すると、２次記憶装置２０３への書き換えは少ないのが好ましく、揮発性記憶部２１２から２次記憶装置２０３へのデータのコピーの回数は少ないのが良いと考えられる。
【００９２】
このようなことを考慮し、２次記憶装置２０３への書き換え回数が少なくなる、換言すれば、揮発性記憶部２１２から２次記憶装置２０３へコピーされるデータの総量が少なくなる第２の実施の形態について説明する。
【００９３】
以下に説明する第２の実施の形態においては、不揮発性記憶部２１１と揮発性記憶部２１２との間で、ページを交換し、書き換え回数が多くなりそうなページが、不揮発性記憶部２１１に集まるように制御される。
【００９４】
また、第１の実施の形態と同じく、揮発性記憶部２１２に記憶されているページと、２次記憶装置２０３に記憶されているページは同期されている状態とされる。しかしながら、第２の実施の形態においては、揮発性記憶部２１２に記憶されているページは、比較的書き換え回数が少なく、書き換えられる可能性が低いページであるため、２次記憶装置２０３に書き込まれる回数自体を少なくすることができるように構成されている。
【００９５】
図７は、第２の実施の形態における情報処理装置３００の構成を示す図である。図４に示した情報処理装置２００と同一の機能を有する部分には、同一の符号を付し、その説明は適宜省略する。
【００９６】
図７に示した情報処理装置３００は、２次記憶装置２０３、不揮発性記憶部２１１、揮発性記憶部２１２、サスペンド指示部２５１、ページテーブル管理部２５２、物理メモリ割り当て管理部２５３、常時同期領域２６１、ページ移動部３１１、ページ移動指示部３１２、書き換え頻度推定部３１３、ページリスト管理部３１４、レベル１リスト３１５、レベル２リスト３１６、およびレベル３リスト３１７を備える。
【００９７】
情報処理装置３００の２次記憶装置２０３、不揮発性記憶部２１１、揮発性記憶部２１２、サスペンド指示部２５１、ページテーブル管理部２５２、物理メモリ割り当て管理部２５３、および常時同期領域２６１は、図４に示した情報処理装置２００の該当する部分と同一である。
【００９８】
情報処理装置３００のページ移動部３１１、ページ移動指示部３１２は、図４に示した情報処理装置２００のページ移動部２５４、ページ移動指示部２５５と基本的に同一であるが、参照する部分や指示を出す部分などが異なる。
【００９９】
情報処理装置３００の、書き換え頻度推定部３１３、ページリスト管理部３１４、レベル１リスト３１５、レベル２リスト３１６、およびレベル３リスト３１７は、図４に示した情報処理装置２００の構成に追加した部分である。
【０１００】
ページ移動部３１１は、書き換え頻度推定部３１３から得たページの書き換え頻度に応じて、ページを不揮発性記憶部２１１または揮発性記憶部２１２(常時同期領域２６１)のどちらかに移動する。
【０１０１】
ページの書き換え頻度が高いと推定された場合、そのページは、不揮発性記憶部２１１に移動される。ページの書き換え頻度が中程度と推定された場合、そのページは、揮発性記憶部２１２の常時同期領域２６１に移動される。ページの書き換え頻度が低いと推定された場合、ページデータの物理的移動は行わない。ページ移動部３１１は、ページ移動指示部３１２からのこれらの指示に基づき、ページを移動し、ページを移動したのち、移動した先をページリスト管理部３１４に通知する。
【０１０２】
ページ移動指示部３１２は、ページリスト管理部３１４からの要求に応じてページの移動をページ移動部３１１に指示する。
【０１０３】
書き換え頻度推定部３１３は、指定されたページの書き換え頻度を推定する。書き換え頻度は、ページが論理的に、レベル１リスト３１５、レベル２リスト３１６、またはレベル３リスト３１７のうちのどのレベルのリストに移動されるかで判断する。
【０１０４】
レベル１リスト３１５、レベル２リスト３１６、またはレベル３リスト３１７は、後述するように、書き換え頻度毎にページを管理するためのリストであり、ここでは、レベル１リスト３１５、レベル２リスト３１６、レベル３リスト３１７の順で、書き換え頻度が高いページを管理するためのリストであるとする。
【０１０５】
書き換え頻度推定部３１３が、処理対象とするページを、レベル１リスト３１５へ移動するのであれば書き換え頻度高のページと推定したときであり、レベル２リスト３１６へ移動するのであれば書き換え頻度中のページと推定したときであり、レベル３リスト３１７へ移動するのであれば書き換え頻度低のページと推定したときである。
【０１０６】
ページの移動先となるリストの決定は、ページがどのレベルのリストに所属していたかと、そのページの移動要求がどのような操作により発生したかによって決定される。具体的な説明は、図８乃至図１０を参照して後述する。
【０１０７】
ページリスト管理部３１４は、ページを書き換え頻度ごとに管理するための論理的なリスト、ここでは、レベル１リスト３１５乃至レベル３リスト３１７を操作する。これらのリストに登録されるエントリの要素には、物理ページヘのポインタが含まれるページヘのアクセス要求が監視され、アクセスの種類によってリスト内エントリの順序が変更されたり、リストへのエントリ追加・削除が行われたりする。
【０１０８】
ページ移動部３１１により、ページが記憶するデータが物理的に移動すると、移動元のページを指していたエントリは、記載されていたリストから削除され、移動先のページを指すエントリが移動先に対応したリストに追加記載される。すなわち、所定のデータを指していたエントリが、リスト間を論理的に移動する。ページの論理的移動についても、図８乃至図１０を参照して後述する。
【０１０９】
レベル１リスト３１５は、書き換え頻度が高いと推定されるページを管理するリストである。リストは、LRU（Least Recently Used）方式で管理され、最近書き込まれたページほど論理的順序が後ろになるように管理される。レベル１リスト３１５で管理されているページは、全て不揮発性記憶部２１１に配置される。したがって、レベル１リスト３１５のサイズは、不揮発性記憶部２１１が記憶できるページ数以下に設定される。
【０１１０】
レベル２リスト３１６は、書き換え頻度が中程度と推定されるページを管理するリストである。レベル２リスト３１６も、LRU方式で管理され、書き換え頻度が中程度と推定されるページの中で、最近書き込まれたページほど論理的順序が後ろになるように管理される。レベル２リスト３１６で管理されているページは、全て揮発性記憶部２１２の常時同期領域２６１に配置される。
【０１１１】
したがって、レベル２リスト３１６のサイズは、常時同期領域２６１が記憶できるページ数以下に設定される。またレベル２リスト３１６で管理されているページは、常時同期領域管理部２５６により２次記憶装置２０３に内容が保存されるので、ページのデータは主記憶装置２０２と２次記憶装置２０３の両方に保持される。
【０１１２】
レベル３リスト３１７は、書き換え頻度が低いと推定されるページを管理するリストである。このレベル３リスト３１７は、LRU方式で管理される必要はない。レベル３リスト３１７で管理されるページは、全て２次記憶装置２０３上に退避されたページで、主記憶装置２０２上には存在しない。そのため、レベル３リストのエントリは、主記憶装置２０２の所定のページを退避している２次記憶装置２０３の一領域へのポインタを保持している。レベル３リスト３１７のサイズは、２次記憶装置２０３に保存できるページ数以下に設定される。
【０１１３】
＜第２の実施の形態におけるページの移動、リストの更新＞
図８を参照し、ページの移動について説明を加える。不揮発性記憶部２１１には、ページ(Page)１とページ２が記憶されている。ページ１とページ２は、それぞれのページで管理されているデータの書き換え頻度が高いと推定されたページである。揮発性記憶部２１２の常時同期領域２６１には、ページ４、ページ５、ページ６が記憶されている。ページ４、ページ５、ページ６は、それぞれのページで管理されているデータの書き換え頻度が中程度と推定されたページである。
【０１１４】
例えば、常時同期領域２６１に、ページ３が記憶されていたとする。このような状態のときに、ページ３で管理されているデータに対して書き換えが発生すると、ページ３は、書き換え頻度が中程度ではなく、高程度と推定が変更される。このような場合、常時同期領域２６１に記憶されているページ３は、書き換えられそうなページとして、不揮発性記憶部２１１に移動される。
【０１１５】
また例えば、不揮発性記憶部２１１に、ページ７が記憶されていたとする。しかしながら、ページ７は、書き換え頻度が高程度でなく、中程度であると推定が変更されたとする。このような場合、不揮発性記憶部２１１に記憶されているページ７は、書き換えられなさそうなページとして、常時同期領域２６１に移動される。
【０１１６】
常時同期領域２６１と２次記憶装置２０３は、同期されるため、２次記憶装置２０３にも、ページ４、ページ５、ページ６、ページ７が記憶される。ページ７は、不揮発性記憶部２１１から常時同期領域２６１に移動された後に、２次記憶装置２０３にコピーされる。ページ４乃至７に対して書き換えが発生した場合、２次記憶装置２０３に同期されて記憶されているページも書き換える必要がある。しかしながら、ページ４乃至７は、それぞれ、書き換え頻度が中程度であるため、書き換えられる回数自体が少なく、２次記憶装置２０３への書き込み回数を少なくすることができる。
【０１１７】
上記したように、不揮発性記憶部２１１に記憶されているページは、レベル１リスト３１５で管理され、常時同期領域２６１と２次記憶装置２０３に同期して記憶されるページは、レベル２リスト３１６で管理されている。このような管理であれば、レベル１リスト３１５とレベル２リスト３１６があれば管理できる。さらに、ここでは、レベル３リスト３１７を設け、レベル３リスト３１７も用いてページを管理している。
【０１１８】
図９を参照し、記憶部に記憶されているページと、リストの関係について説明を加える。図９に示した状態は、不揮発性記憶部２１１にページ１乃至ページ３が記憶されている状態である。このようなとき、不揮発性記憶部２１１に記憶されているページを管理するレベル１リスト３１５には、ページ１乃至ページ３に関する情報が記載されている。
【０１１９】
レベル１リスト３１５は、ＬＲＵ形式のリストであるため、論理的順序が後ろにあるページは、最近書き換えたページであり、書き換えが起こりそうなページとなっている。図９中では、上方向を、論理的順序が後ろとし、書き換えられる可能性が高いページが図示されるとする。
【０１２０】
また図９に示した状態は、揮発性記憶部２１２の常時同期領域２６１に、ページ４乃至ページ７が記憶されている状態である。この常時同期領域２６１に記憶されているページは、２次記憶装置２０３のスワップ領域にも記憶されるため、図９に示したように、２次記憶装置２０３にも、ページ４乃至ページ７が記憶されている。
【０１２１】
常時同期領域２６１と２次記憶装置２０３のうち常時同期領域２６１と同期されている領域を管理するレベル２リスト３１６には、ページ４乃至ページ７に関する情報が記載されている。レベル２リスト３１６は、ＬＲＵ形式のリストであるため、論理的順序が後ろにあるページは、レベル２リスト３１６の中では書き換えが起こりそうなページとなっている。
【０１２２】
２次記憶装置２０３のスワップ領域には、ページ８乃至１５も記憶されている。このページ８乃至１５は、サスペンド時に退避しておく必要があるページであるが、書き換え頻度が少ないと推定されたページである。２次記憶装置２０３にのみ記憶されるページは、レベル３リスト３１７により管理される。よって、レベル３リスト３１７には、ページ８乃至１５に関する情報が記載されている。レベル３リスト３１７は、ＬＲＵ形式のリストではない。
【０１２３】
このような記憶状態のときに、所定のページのデータに対して書き換えが行われた場合の処理について、図１０を参照して説明する。
【０１２４】
不揮発性記憶部２１１、常時同期領域２６１、２次記憶装置２０３にそれぞれ記憶されているページは、図９に示したときと同じであり、このような状態のときに、ページ５に対して書き換えが発生したとする。ページ５は、常時同期領域２６１に記憶されており、レベル２リスト３１６で管理されている。
【０１２５】
ページ５に対して書き換えが発生したことにより、ページ５は、最近書き換えられたページであり、書き換えが起こりそうなページに設定される。よって、ページ５は、レベル２リスト３１６での管理からレベル１リスト３１５での管理へと変更される。
【０１２６】
ページ５自体が、常時同期領域２６１から不揮発性記憶部２１１に移動される。その際、ページ５を記憶するための容量を空けるために、ページ３が、不揮発性記憶部２１１から常時同期領域２６１に移動される。このような処理の詳細については、図１３，１４のフローチャートを参照して後述する。
【０１２７】
このようなページの移動が行われることで、レベル１リスト３１５とレベル２リスト３１６のそれぞれも書き換えられる。ページ５の情報が、レベル１リスト３１５の論理的順序で後ろ（図中では、最上位）に追加される。またページ３の情報が、レベル１リスト３１５のリストから削除される。ページ３は、レベル１リスト３１５の論理的順序で最初（図中では最下位）に記載されていたため、不揮発性記憶部２１１から常時同期領域２６１への移動対象のページに設定され、移動される。
【０１２８】
レベル２リスト３１６に対しては、ページ５の情報が削除されるという書き換えが行われるとともに、ページ３の情報が追加される。ページ３の情報は、レベル２リスト３１６の論理的順序の後ろ（図中では、最上位）に追加される。
【０１２９】
レベル２リスト３１６にページ３の情報が追加されることで、常時同期領域２６１と２次記憶装置２０３に、ページ３が書き込まれる。すなわち、ページ３が常時同期領域２６１と２次記憶装置２０３との間で同期される。
【０１３０】
このようにして、ページの移動やページの移動にともなうリストの書き換えが行われる。
【０１３１】
図１１を参照し、ページの移動やページの移動にともなうリストの書き換えについてさらに説明を加える。レベル１リスト３１５で管理されているページに対して、書き換え（Writeアクセス）が発生した場合、その書き換えが発生したページの情報が、論理的順序で後ろに移動される場合があるが、ページの情報が、他のリストに移動する処理は行われない。また、書き換えが発生したページが、他の記憶部に移動されるという処理も行われず、そのページは、不揮発性記憶部２１１に記憶されている状態が維持される。
【０１３２】
レベル１リスト３１５が満杯になり、レベル１リスト３１５に記憶できないページの情報、換言すれば、不揮発性記憶部２１１の容量の関係で記憶できないページに関する情報は、レベル２リスト３１６に移動される。例えば、レベル１リスト３１５に、新たなページの情報が追加されることにより、レベル１リスト３１５に記憶ができなくなったリストの論理的順序の最上位のページ（レベル１リスト３１５で管理されているページのうち、書き換えが発生したのが最も昔のページ）の情報は、レベル２リスト３１６の論理的順序の最後尾に移動される。
【０１３３】
レベル２リスト３１６で管理されているページに対して、書き換え（Writeアクセス）が発生した場合、その書き換えが発生したページの情報は、レベル１リスト３１５の論理的順序の最後尾に移動される。また、書き換えが発生したページは、常時同期領域２６１から不揮発性記憶部２１１に移動される。
【０１３４】
同様にレベル３リスト３１７で管理されているページに対して、書き換え（Writeアクセス）が発生した場合、その書き換えが発生したページの情報は、レベル１リスト３１５の論理的順序の最後尾に移動される。また、書き換えが発生したページは、２次記憶装置２０３から不揮発性記憶部２１１に移動される。
【０１３５】
レベル２リスト３１６が満杯になった場合、レベル２リスト３１６の論理的順序で先頭にあるページ（レベル２リスト３１６で管理されているページのうち、書き換えが発生したのが最も昔のページ）の情報は、レベル３リスト３１７に移動される。レベル３リスト３１７は、ＬＲＵ形式のリストではないため、移動先の順位を考慮する必要はない。
【０１３６】
レベル１リスト３１５またはレベル２リスト３１６で管理されているページに対して、リード（Read）アクセスが発生した場合、ページの移動や、リストの書き換えの処理は行われない。これに対して、レベル３リスト３１７で管理されているページに対して、リードアクセスが発生した場合、レベル２リスト３１６にページの情報が移動され、２次記憶装置２０３から揮発性記憶部２１２（常時同期領域２６１）にページが移動される。
【０１３７】
これは、レベル３リスト３１７で管理されるページは、２次記憶装置２０３に存在し、主記憶装置２０２には存在しないため、２次記憶装置２０３から主記憶装置２０２に読み出しを行わないとアクセスができないためである。
【０１３８】
このように、ページに書き換えが発生するとレベル１へ移動され、書き換えが起こらなくなるにつれてレベル２、レベル３の順に移動していく。典型的なメモリアクセスには局所性があるため、ページのうち今後の書き換え頻度が高いと推察されるメモリから順に、レベル１、レベル２、レベル３に配置されることが期待できる。
【０１３９】
このように、本実施の形態においては、書き換え頻度に応じて、レベル１リスト３１５、レベル２リスト３１６、レベル３リスト３１７のいずれかのリストに振り分けられ、振り分け先のリストで管理されるページとされる。
【０１４０】
また、本実施の形態においては、書き換え頻度推定部３１３（図７）により、ページの書き換え頻度は、ページがどのレベルのリストに移動するかで判断される。またページ移動部３１１（図７）との組み合わせにより、論理的にレベル１へ移動するページは物理的に不揮発性記憶部２１１へ、レベル２へ移動するページは物理的に常時同期領域２６１へ、それぞれデータが移動される。
【０１４１】
すなわち、書き換え頻度が高くなると不揮発性記憶部２１１に移動され、頻繁に書き換えられる間は、不揮発性記憶部２１１に留まることになる。そして書き換え頻度が下がり、レベル１からレベル２へ移動する時点で常時同期領域２６１へデータが移動し、２次記憶装置２０３と同期される。
【０１４２】
図１２を参照し、ページが移動するときに物理的なデータの配置と論理的なリスト構造がどのように変化するかについて説明する。
【０１４３】
図１２に示す例では、データＥを保持するページが論理的にレベル２からレベル１へ、データＡを保持するページが論理的にレベル１からレベル２へ移動している。移動前、データＥはページ番号５に保持されている。データＥを保持するページを示すエントリは、レベル２リスト３１６に所属し、ページ番号５をポイントしている。
【０１４４】
移動後、データＥは、ページ番号１に保持されている。データＥを保持するページを示すエントリは、レベル１リスト３１５に所属し、ポイントするページ番号は、移動前の５から１に変更されている。
【０１４５】
同様に移動前、データＡは、ページ番号１に保持されている。データＡを保持するページを示すエントリは、レベル１リスト３１５に所属し、ページ番号１をポイントしている。移動後、データＡは、ページ番号５に保持されている。データＡを保持するページを示すエントリは、レベル２リスト３１６に所属し、ポイントするページ番号は、移動前の１から５に変更されている。
【０１４６】
さらに、図１３、図１４を参照し、ページが論理的・物理的に移動する際の動作について説明を加える。まず図１３のフローチャートを参照し、所定のアプリケーションプログラムがレベル１のページを書きかえようとした時を例にあげ、ページが論理的・物理的に移動する際の動作について説明する。
【０１４７】
レベル１リスト３１５で管理されているページ、すなわち不揮発性記憶部２１１に記憶されているページに対して書き換えが発生した場合、ステップＳ２０１において、その書き換えが発生したページに対応するレベル１リスト３１５内の情報が、論理的順序で末尾に移動される。
【０１４８】
ステップＳ２０２において、書き換えデータを書き換え対象ページに書き込むことで、処理は終了される。
【０１４９】
次に図１４のフローチャートを参照し、所定のアプリケーションプログラムがレベル２のページを書きかえようとした時を例にあげ、ページが論理的・物理的に移動する際の動作について説明する。
【０１５０】
レベル２リスト３１６で管理されているページ、すなわち常時同期領域２６１とその常時同期領域２６１と同期されている２次記憶装置２０３の所定の領域に記憶されているページに対して書き換えが発生した場合、ステップＳ２５１において、ページリスト管理部３１４（図７）は、移動先となるレベル１リスト３１５に空きがあるか否かを判断する。
【０１５１】
ステップＳ２５１において、ページリスト管理部３１４が、レベル１リスト３１５に空きがないと判断した場合、ステップＳ２５２に処理が進められる。ステップＳ２５２において、レベル２リスト３１６に空きがあるか否かが判断される。この場合、レベル１リスト３１５からレベル２リスト３１６にページを移動することでレベル１リスト３１５に空きを作る必要がある。ページリスト管理部３１４は、移動先のレベル２リスト３１６に空きがあるか否かを確認する。
【０１５２】
ステップＳ２５２において、空きは無いと判断された場合、ステップＳ２５３に処理は進められる。ステップＳ２５３において、レベル２リスト３１６からレベル３リスト３１７にページを移動することで、レベル２リスト３１６に空きを作るための処理が実行される。
【０１５３】
ページリスト管理部３１４は、レベル２リスト３１６の論理的順序で先頭にある、書き換えられた時間が一番古いページを移動するようにページ移動指示部３１２に依頼する。ページ移動指示部３１２は、依頼されたページの移動をページ移動部３１１に指示する。
【０１５４】
ページ移動部３１１は、移動が指示されたページの書き換え頻度を書き換え頻度推定部３１３に問合せる。書き換え頻度推定部３１３は、移動対象がレベル２リスト３１６のページであること、レベル２リスト３１６が満杯なのをきっかけに移動が指示されたことを確認し、書き換え頻度が低であることをページ移動部３１１に通知する。
【０１５５】
ページ移動部３１１は、移動対象のページのデータをコピーせずに、移動が完了したことをページリスト管理部３１４に通知する。この場合、常時同期領域２６１に記憶されているページは、２次記憶部２０３に既に同期して記憶されているため、物理的にページの移動などの処理が実行される必要はないため、移動対象のページはコピーされずに、移動が完了したことがページリスト管理部３１４に通知される。
【０１５６】
ページリスト管理部３１４は、移動対象のページを指すエントリをレベル２リスト３１６から削除し、移動対象のページデータを同期している２次記憶装置２０３の一領域を指すエントリをレベル３リスト３１７に追加する。
【０１５７】
ステップＳ２５４において、ページ移動部３１１は、ページテーブル管理部２５２および物理メモリ割り当て管理部２５３に、移動対象のページが常時同期領域２６１から２次記憶装置２０３へ移動したことを通知する。ページテーブル管理部２５２は、移動対象のページをマップしていた仮想アドレスへのアクセスを無効化し、そこにあったデータが２次記憶装置２０３のどこへ移動したかを判別する情報を記録する。同時に、物理メモリ割り当て管理部２５３は、移動対象のページを空き領域として記録する。
【０１５８】
ステップＳ２５４において、古いページが解放されると、ステップＳ２５５に処理が進められる。ステップＳ２５５には、ステップＳ２５２において、レベル２リスト３１６に空きがあると判断されたときにもくる。ステップＳ２５５において、ページリスト管理部３１４は、レベル１リスト３１５の先頭にある、書き換えられた時間が一番昔のページを移動するようにページ移動指示部３１２に依頼する。
【０１５９】
ページ移動指示部３１２は、依頼されたページの移動をページ移動部３１１に指示する。ページ移動部３１１は、移動を指示されたページの書き換え頻度を書き換え頻度推定部３１３に問合せる。書き換え頻度推定部３１３は、移動対象がレベル１リスト３１５で管理されているページであること、レベル１リスト３１５が満杯なのをきっかけに移動が指示されたことを確認し、書き換え頻度が中であることをページ移動部３１１に通知する。
【０１６０】
ページ移動部３１１は、移動先を確保するため、物理メモリ割り当て管理部２５３に常時同期領域２６１の割り当てを要求する。物理メモリ割り当て管理部２５３は、常時同期領域２６１の空き領域から１ページを選んで使用中にし、ページ移動部３１１に通知する。ページ移動部３１１は、確保した移動先のページをレベル２リスト３１６に登録するようにページリスト管理部３１４に要求する。ページリスト管理部３１４は、レベル２リスト３１６の末尾に、一番最近書き換えられたページとして移動先のページを登録する。
【０１６１】
ステップＳ２５６において、ページ移動部３１１は、確保した移動先のページに移動対象のページをコピーする。常時同期領域管理部２５６は、常時同期領域２６１のデータが書き換えられたことを検知し、ページのデータを２次記憶装置２０３の所定の領域にコピーする。
【０１６２】
ステップＳ２５７において、ページ移動部３１１は、ページの移動が完了したことをページリスト管理部３１４に通知する。ページリスト管理部３１４は、移動対象のページをレベル１リスト３１５から削除する。
【０１６３】
ステップＳ２５８において、ページ移動部３１１は、ページテーブル管理部２５２および物理メモリ割り当て管理部２５３に、移動対象のページが不揮発性記憶部２１１から常時同期領域２６１に移動したことを通知する。ページテーブル管理部２５２は、移動対象のページをマップしている仮想アドレスが、移動先のページをマップするように変更する。物理メモリ割り当て管理部２５３は、移動対象のページを解放し、空き領域にする。
【０１６４】
一方、ステップＳ２５１において、レベル１リスト３１５に空きがあると判断された場合、または、ステップＳ２５８の処理が終了することで、レベル１リスト３１５に空きができた場合、ステップＳ２５９に処理が進められる。
【０１６５】
ステップＳ２５９において、レベル１リスト３１５に空きがある場合、ページリスト管理部３１４は、書き換えが発生したページを移動するようにページ移動指示部３１２に依頼する。ページ移動指示部３１２は、依頼されたページの移動をページ移動部３１１に指示する。ページ移動部３１１は、移動が指示されたページの書き換え頻度を、書き換え頻度推定部３１３に問合せる。
【０１６６】
書き換え頻度推定部３１３は、ページヘの書き換えをきっかけに移動が指示されたことを確認し、書き換え頻度が高であることをページ移動部３１１に通知する。ページ移動部３１１は移動先を確保するため、物理メモリ割り当て管理部２５３に不揮発性記憶部２１１の割り当てを要求する。
【０１６７】
物理メモリ割り当て管理部２５３は、不揮発性記憶部２１１の空き領域から１ページを選んで使用中にし、ページ移動部３１１に通知する。ページ移動部３１１は、確保した移動先のページを、レベル１リスト３１５に登録するようにページリスト管理部３１４に要求する。ページリスト管理部３１４は、レベル１リスト３１５の末尾に、一番最近書き換えられたページとして移動先のページを登録する。
【０１６８】
ステップＳ２６０において、ページ移動部３１１は、確保した移動先のページに書き換え対象のページをコピーする。ステップＳ２６１において、ページ移動部３１１は、ページの移動が完了したことをページリスト管理部３１４に通知する。ページリスト管理部３１４は、移動対象のページの情報を、レベル２リスト３１６から削除する。
【０１６９】
ステップＳ２６２において、ページ移動部３１１は、ページテーブル管理部２５２および物理メモリ割り当て管理部２５３に、移動対象のページを、常時同期領域２６１から不揮発性記憶部２１１に移動したことを通知する。
【０１７０】
ページテーブル管理部２５２は、移動対象のページをマップしている仮想アドレスが、移動先のページをマップするように変更する。物理メモリ割り当て管理部２５３は、移動対象のページを解放し、空き領域にする。ステップＳ２６３において、アプリケーションプログラムは、移動先のページにデータを書き込む。
【０１７１】
このようにして、レベル２リスト３１６で管理されているページに書き換えが発生した場合、常時同期領域２６１に記憶されているページが、不揮発性記憶部２１１に記憶されるようにページの移動が実行される。
【０１７２】
レベル３リスト３１７で管理されているページに対して書き換えが発生した場合、基本的な処理の流れは、図１４に示したレベル２リスト３１６で管理されているページに対して書き換えが発生した場合と同様に行われるので、その説明は省略する。
【０１７３】
またサスペンド時の処理は、図６に示したフローチャートに基づき行うことが可能である。第２の実施の形態においても、第１の実施の形態と同じく、サスペンドの処理が開始される時点で、既に、揮発性記憶部２１２に記憶されているページは、２次記憶装置２０３に記憶されている状態なので、ページをコピー（退避）するといった処理を省略することができる。よって、第２の実施の形態においても、サスペンド時の処理にかかる時間を短縮することができる。
【０１７４】
＜第３の実施の形態における情報処理装置の構成＞
次に、第３の実施の形態における情報処理装置の構成や、サスペンド時の処理について説明を加える。一般的に、例えばDRAMで構成される揮発性記憶部２１２よりも、例えばNVRAMで構成される不揮発性記憶部２１１の方が、書き換え寿命が短く、書き換えに必要な電力が大きい。第３の実施の形態においては、このような状況に適した実施の形態について説明する。
【０１７５】
第２の実施の形態によると、不揮発性記憶部２１１に、ある時点で最も頻繁に書き換えられるデータ（ページ）が集まる。その結果、不揮発性記憶部２１１への書き換え回数が、揮発性記憶部２１２と比較して多くなる。したがって、上記した理由から、不揮発性記憶部２１１の書き換え寿命に影響を与えてしまう可能性がある。
【０１７６】
また、不揮発性記憶部２１１への書き換え回数が、揮発性記憶部２１２と比較して多くなることで、書き換えに必要な電力が大きい不揮発性記憶部２１１への書き換えが多くなるため、消費電力が大きくなる可能性がある。
【０１７７】
そこで、第３の実施の形態においては、不揮発性記憶部２１１への書き換え頻度を低減し、かつ、上記した実施の形態と同じく、サスペンド時の処理時間を短縮する情報処理装置について説明する。
【０１７８】
第３の実施の形態における情報処理装置においては、一番書き換え頻度が高そうなページは揮発性記憶部２１２に集まるようにし、サスペンド時、揮発性記憶部２１２に集まった書き換え頻度が高いページを短時間で退避できるように準備しておく。また、書き換え頻度が低いページは、上記した実施の形態と同じく、揮発性記憶部と２次記憶装置との間で同期しておく。
【０１７９】
図１５は、第３の実施の形態における情報処理装置４００の構成を示す図である。図７に示した情報処理装置３００と同一の機能を有する部分には、同一の符号を付し、その説明は適宜省略する。
【０１８０】
図１５に示した情報処理装置４００は、２次記憶装置２０３、不揮発性記憶部２１１、揮発性記憶部２１２、常時同期領域２６１、ページ移動部３１１、ページ移動指示部３１２、書き換え頻度推定部３１３、レベル１リスト３１５、レベル２リスト３１６、およびレベル３リスト３１７を、図７に示した情報処理装置３００と同じく備える。これらの各部は、図７に示した情報処理装置３００の各部と同一である。
【０１８１】
また情報処理装置４００は、サスペンド指示部４１１、ページテーブル管理部４１２、物理メモリ割り当て管理部４１３、ページリスト管理部４１４も備える。これらの各部は、図７に示した情報処理装置３００の対応する部分と同一であるが、参照する部分や指示を出す部分などが異なる。
【０１８２】
情報処理装置４００の、高速退避処理部４１５、退避用予約領域４１６、高速退避対象領域４１７、レベル０リスト４１８は、図７に示した情報処理装置３００の構成に追加した部分である。
【０１８３】
高速退避処理部４１５は、サスペンド処理実行時に、高速退避対象領域４１７のデータを退避用予約領域４１６に退避する機能を有する。退避用予約領域４１６は、不揮発性記憶部２１１に設けられ、高速退避対象領域４１７は、揮発性記憶部２１２に設けられる。レベル０リスト４１８は、高速退避対象領域４１７に記憶されるページを管理する。
【０１８４】
レベル０リスト４１８は、レベル１リスト３１５よりも書き換え頻度が高いページを管理する。物理的には、このレベル０リスト４１８に含まれるページは、揮発性記憶部２１２の高速退避対象領域４１７のページである。すなわち、図１６に示すように、最も書き換え頻度が高いページのグループは揮発性記憶部２１２上に置かれる。したがって、不揮発性記憶部２１１への書き込みの集中を低減することができ、消費電力の削減に寄与する構成となっている。
【０１８５】
一方、レベル０リスト４１８で管理されているページは、図１６に示すように、揮発性記憶部２１２の高速退避対象領域４１７に記憶されるので、サスペンド処理時にデータの退避が必要である。この退避を短時間に終了させるため、高速退避対象領域４１７の大きさは十分に小さくする（記憶されるページ数を少なくする）。さらに、退避を高速に行うために、不揮発性記憶部２１１上に退避用予約領域４１６を確保し、高速退避対象領域４１７のデータを退避できるようにする。不揮発性記憶部２１１の書き込み速度は２次記憶装置２０３に比べ高速なので、退避を短時間で終了することができる。
【０１８６】
退避用予約領域４１６は、サスペンド処理開始時に即時利用可能であればよい。通常動作中は使用しないようにしても良いし、退避が不要なデータ（例えばファイルデータのキャッシュなど）の置き場として使用しても良い。
【０１８７】
図１７を参照し、記憶部に記憶されているページと、リストの関係について説明を加える。図１７に示した状態は、不揮発性記憶部２１１にページ３乃至ページ５が記憶されている状態である。このようなとき、不揮発性記憶部２１１に記憶されているページを管理するレベル１リスト３１５には、ページ３乃至ページ５に関する情報が記載されている。
【０１８８】
不揮発性記憶部２１１には、退避用予約領域４１６が設けられている。この退避用予約領域４１６は、サスペンド時に揮発性記憶部２１２の高速退避対象領域４１７に記憶されているページが移動される領域である。図１７に示した状態では、高速退避対象領域４１７に、ページ１とページ２が記憶されている。このページ１とページ２は、サスペンドが指示された場合、不揮発性記憶部２１１の退避用予約領域４１６に退避される。
【０１８９】
またページ１とページ２は、レベル０リスト４１８により管理される。このようにレベル０リスト４１８は、高速退避対象領域４１７に記憶されているページを管理するためのリストとされる。
【０１９０】
また図１７に示した状態は、揮発性記憶部２１２の常時同期領域２６１に、ページ６乃至ページ９が記憶されている状態である。この常時同期領域２６１に記憶されているページは、２次記憶装置２０３のスワップ領域にも記憶されるため、図１７に示したように、２次記憶装置２０３にも、ページ６乃至ページ９が記憶されている。
【０１９１】
常時同期領域２６１と２次記憶装置２０３のうち常時同期領域２６１と同期されている領域を管理するレベル２リスト３１６には、ページ６乃至ページ９に関する情報が記載されている。
【０１９２】
レベル０リスト４１８、レベル１リスト３１５、およびレベル２リスト３１６は、ＬＲＵ形式のリストとされている。これらのリスト内で、論理的順序が後ろにあるページは、リスト内で最も書き換えが起こりそうなページとなっている。
【０１９３】
２次記憶装置２０３のスワップ領域には、ページ１０乃至１７も記憶されている。このページ１０乃至１７は、サスペンド時に退避しておく必要があるページであるが、書き換え頻度が少ないと推定されたページである。２次記憶装置２０３にのみ記憶されるページは、レベル３リスト３１７により管理される。よって、レベル３リスト３１７には、ページ１０乃至１７に関する情報が記載されている。レベル３リスト３１７は、ＬＲＵ形式のリストとする必要はない。
【０１９４】
次に、図１８を参照し、ページの移動やページの移動にともなうリストの書き換えについてさらに説明を加える。レベル２リスト３１６で管理されているページに対して書き換え（Writeアクセス）が発生した場合と、レベル３リスト３１７で管理されているページに対して書き換えが発生した場合は、図１１を参照して説明した場合と基本的に同様であるため、その説明は省略する。
【０１９５】
ただし、レベル２リスト３１６またはレベル３リスト３１７で管理されているページに対して書き換えが発生した場合、図１１を参照して説明した場合と異なり、レベル０リスト４１８で管理されるページに変更される。
【０１９６】
レベル１リスト３１５で管理されているページに対して書き換えが発生した場合、レベル０リスト４１８で管理されるページに、書き換えが発生したページは変更される。すなわち、レベル１リスト３１５で管理されているページに対して書き換えが発生した場合、その書き換えが発生したページの情報は、レベル０リスト４１８の論理的順序の最後尾に移動される。また、書き換えが発生したページは、不揮発性記憶部２１１から、揮発性記憶部２１２の高速退避対象領域４１７に移動される。
【０１９７】
レベル０リスト４１８で管理されているページに対して、書き換え（Writeアクセス）が発生した場合、その書き換えが発生したページの情報が、論理的順序で後ろに移動される場合はあるが、ページの情報が、他のリストに移動するといった処理は行われない。また、書き換えが発生したページが、他の記憶部に移動されるという処理も行われず、そのページは、揮発性記憶部２１２の高速退避対象領域４１７に記憶されている状態が維持される。
【０１９８】
レベル０リスト４１８が満杯になり、レベル０リスト４１８に記憶できないページの情報、換言すれば、揮発性記憶部２１２の高速退避対象領域４１７の容量の関係で記憶できないページに関する情報は、レベル１リスト３１５に移動される。
【０１９９】
このように、書き換え頻度が最も高いと推定されるページは、揮発性記憶部２１２の高速退避対象領域４１７に記憶され、次に書き換え頻度が高いと推定されるページは、不揮発性記憶部２１１に記憶される。さらに、揮発性記憶部２１２の常時同期領域２６１と２次記憶装置２０３に記憶されているページは同期されている。このような記憶を行う情報処理装置４００のサスペンド時の処理について説明する。
【０２００】
＜第３の実施の形態におけるサスペンドの処理＞
図１９は、情報処理装置４００のサスペンド時の処理について説明するためのフローチャートである。ステップＳ３０１において、高速退避処理部４１５は、退避用予約領域４１６を使用することを通知する。ページテーブル管理部４１２は、退避用予約領域４１６をマップしている仮想アドレスを無効化する。
【０２０１】
物理メモリ割り当て管理部４１３は、退避用予約領域４１６を全て空き領域にする。次に高速退避処理部４１５は、高速退避対象領域４１７のうち使用中のページを退避用予約領域４１６にコピーする。コピーが終了すると、高速退避処理部４１５は、データの移動を行ったページの箇所を、ページテーブル管理部４１２および物理メモリ割り当て管理部４１３に通知する。
【０２０２】
ページテーブル管理部４１２は、移動元のページをマップしていた仮想アドレスが移動先のページをマップするよう変更する。物理メモリ割り当て管理部４１３は、移動先として使用された退避用予約領域４１６のページを使用中とし、高速退避対象領域４１７の全ページを空き領域にする。
【０２０３】
ステップＳ３０２において、揮発性記憶部２１２に使用中のページがあるか否かが確認される。ステップＳ３０２乃至Ｓ３０５の処理は、図６に示したステップＳ１０１乃至Ｓ１０４の処理と同様に行われるため、その説明は省略する。
【０２０４】
サスペンドの処理の開始時に、ステップＳ３０１の処理が実行されることで、高速退避対象領域４１７から退避用予約領域４１６にページの退避が行われるが、高速退避対象領域４１７のサイズ（レベル０リスト４１８で管理するページの容量）が十分小さいため、高速退避対象領域４１７から退避用予約領域４１６にページを退避するための時間は短い。よって、サスペンドにかかる時間を短縮することができる。
【０２０５】
また仮に、高速退避対象領域４１７のサイズがある程度の大きさを有していても、主記憶装置２０２内の揮発性記憶部２１２から不揮発性記憶部２１１へのページの退避であるため、２次記憶装置２０３に退避させる場合と比べて、その退避にかかる時間は短いものとすることができる。よって、サスペンドにかかる時間を短縮できることに変わりはない。
【０２０６】
なお、レベル０リスト４１８のサイズや、その退避領域のサイズ（高速退避対象領域４１７のサイズ）は、サスペンド処理中にデータのコピーを行なっても支障がないサイズで設定される。例えば、データコピーを100MB/sで行うことができ、サスペンド処理中データコピーに使える時間を0.2秒確保すると設定した場合、20MB以下のサイズが設定される。
【０２０７】
また、単に空き領域を退避用予約領域４１６として予約すると、不揮発性記憶部２１１の空き領域を常に専有してしまい、有効利用することができない。そこで、サスペンド処理中に、瞬時に解放可能ならば、通常動作時に他の用途として使うことにしてもよい。例えば通常動作時は、退避用予約領域４１６を読み取り専用のページキャッシュ置き場として使用するように構成することも可能である。この場合、読み取り専用なのでキャッシュを退避する必要がなく、瞬時に解放でき、サスペンド処理中に解放して退避用予約領域４１６として使用することができる。
【０２０８】
＜他の構成について＞
上述した実施の形態においては、常時同期領域２６１のデータが２次記憶装置２０３に書き込まれるタイミングをページの書き換え直後としたが、必ずしもページの書き換え直後でなくても良い。例えば、定期的にレベル２リスト３１６をスキャンし、同期していないページを同期させるようにしても良い。
【０２０９】
また、ユーザが特定の操作を終えた時など、アプリケーション側から明示的に同期のタイミングを指示する構成とすることも可能である。また、特定の期間、アプリケーションが、スワップへの書き換えを禁止したり、その後許可したりできるように構成することも可能である。
【０２１０】
さらに、所定のページが特定の書き換え特性を持つことがわかっている場合、リストによるページ管理対象から外し、常に特定のメモリに置かれるようにしてもよい。例えば、所定のバッファを頻繁に書き換えることをアプリケーション自身が知っている場合、アプリケーションがそのページを不揮発性記憶部２１１に留めるようオペレーティングシステムに依頼できるように構成することも可能である。
【０２１１】
このように、本技術によれば、サスペンド時にかかる処理時間を短縮することが可能となる。また、サスペンドの処理時間が短縮されることで、節電の効果を期待することができる。
【０２１２】
＜記録媒体について＞
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０２１３】
図２０は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、ＣＰＵ（Central Processing Unit）１００１、ＲＯＭ（Read Only Memory）１００２、ＲＡＭ（Random Access Memory）１００３は、バス１００４により相互に接続されている。バス１００４には、さらに、入出力インタフェース１００５が接続されている。入出力インタフェース１００５には、入力部１００６、出力部１００７、記憶部１００８、通信部１００９、およびドライブ１０１０が接続されている。
【０２１４】
入力部１００６は、キーボード、マウス、マイクロフォンなどよりなる。出力部１００７は、ディスプレイ、スピーカなどよりなる。記憶部１００８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１００９は、ネットワークインタフェースなどよりなる。ドライブ１０１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア１０１１を駆動する。
【０２１５】
以上のように構成されるコンピュータでは、ＣＰＵ１００１が、例えば、記憶部１００８に記憶されているプログラムを、入出力インタフェース１００５およびバス１００４を介して、ＲＡＭ１００３にロードして実行することにより、上述した一連の処理が行われる。
【０２１６】
コンピュータ（ＣＰＵ１００１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１０１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０２１７】
コンピュータでは、プログラムは、リムーバブルメディア１０１１をドライブ１０１０に装着することにより、入出力インタフェース１００５を介して、記憶部１００８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１００９で受信し、記憶部１００８にインストールすることができる。その他、プログラムは、ＲＯＭ１００２や記憶部１００８に、予めインストールしておくことができる。
【０２１８】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２１９】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２２０】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２２１】
なお、本技術は以下のような構成も取ることができる。
【０２２２】
（１）
主記憶装置と２次記憶装置を備え、
前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備え、
前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、
前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶される
情報処理装置。
（２）
前記同期領域に置かれたページは、サスペンド処理終了より前に前記２次記憶装置に退避する必要があるページである
前記（１）に記載の情報処理装置。
（３）
前記不揮発性記憶部に記憶されるページを管理する第１のリストと、前記揮発性記憶部と前記２次記憶装置に同期されて記憶されるページを管理する第２のリストをさらに備える
前記（１）または（２）に記載の情報処理装置。
（４）
前記２次記憶装置に記憶されるページを管理する第３のリストをさらに備える
前記（３）に記載の情報処理装置。
（５）
前記ページは、前記ページに対する書き換え頻度により前記第１のリスト、前記第２のリスト、および前記第３のリストのうちのいずれかのリストに振り分けられる
前記（４）に記載の情報処理装置。
（６）
前記第２のリストまたは前記第３のリストにより管理されているページに対して書き換えが行われた場合、書き換えが行われた前記ページは、前記第１のリストが管理するページに変更され、前記不揮発性記憶部に移動される
前記（４）に記載の情報処理装置。
（７）
前記揮発性記憶部は、最も書き換え頻度が高いページであり、サスペンド処理時に前記不揮発性記憶部に退避するページを記憶する退避対象領域を有し、
前記不揮発性記憶部は、サスペンド処理時に、前記退避対象領域に記憶されているページが退避される退避用領域を有し、
前記退避対象領域に記憶されているページを管理する第４のリストをさらに備える
前記（４）に記載の情報処理装置。
（８）
前記第１のリスト乃至前記第３のリストのいずれかに管理されているページに対して書き換えが行われた場合、書き換えが行われた前記ページは、前記第４のリストが管理するページに変更され、前記退避対象領域に移動される
前記（７）に記載の情報処理装置。
（９）
主記憶装置と２次記憶装置を備え、
前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、
前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、
前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶されるための処理を行うステップを含む
情報処理方法。
（１０）
主記憶装置と２次記憶装置を備え、
前記主記憶装置は、不揮発性記憶部と揮発性記憶部を備える情報処理装置に、
前記揮発性記憶部は、前記２次記憶装置の所定の領域と同期される同期領域を有し、
前記揮発性記憶部が動作時に、前記同期領域に置かれたページは、前記２次記憶装置に同期して記憶されるための処理を行うステップを含む
処理をコンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
【符号の説明】
【０２２３】
２００  情報処理装置，２０３  ２次記憶装置，  ２１１  不揮発性記憶部，  ２１２  揮発性記憶部，  ２５１  サスペンド指示部，  ２５２  ページテーブル管理部，  ２５３  物理メモリ割り当て管理部，  ２５４  ページ移動部，  ２５５  ページ移動指示部，２５６  常時同期領域管理部，  ２６１  常時同期領域，  ３００  情報処理装置，  ３１１  ページ移動部，  ３１２  ページ移動指示部，  ３１３  書き換え頻度推定部，  ３１４  ページリスト管理部，  ３１５  レベル１リスト，  ３１６  レベル２リスト，  ３１７  レベル３リスト，  ４００  情報処理装置，  ４１１  サスペンド指示部，  ４１２  ページテーブル管理部，  ４１３  物理メモリ割り当て管理部，  ４１４  ページリスト管理部，  ４１５  高速退避処理部，  ４１６  退避用予約領域，  ４１７  高速退避対象領域，  ４１８  レベル０リスト
【図１】
2014186622.tif 000003
【図２】
2014186622.tif 000004
【図３】
2014186622.tif 000005
【図４】
2014186622.tif 000006
【図５】
2014186622.tif 000007
【図６】
2014186622.tif 000008
【図７】
2014186622.tif 000009
【図８】
2014186622.tif 000010
【図９】
2014186622.tif 000011
【図１０】
2014186622.tif 000012
【図１１】
2014186622.tif 000013
【図１２】
2014186622.tif 000014
【図１３】
2014186622.tif 000015
【図１４】
2014186622.tif 000016
【図１５】
2014186622.tif 000017
【図１６】
2014186622.tif 000018
【図１７】
2014186622.tif 000019
【図１８】
2014186622.tif 000020
【図１９】
2014186622.tif 000021
【図２０】
2014186622.tif 000022