(57)【要約】【課題】サスペンドの処理に係る時間を短縮する。【解決手段】主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、所定のタイミングで、不揮発性記憶部と揮発性記憶部との間で、ページに付与された優先度に基づき、ページを移動する。不揮発性記憶部に置かれるページは、レジューム後にアクセスされる可能性の高いページである。不揮発性記憶部には、サスペンドの処理が開始される前の時点で、レジューム後にアクセスされる可能性の高いページの大半が記憶されている。よって、サスペンドの処理時に、退避するページ数が少なく、サスペンドの処理に係る時間を短縮することができる。本技術は、バッテリ駆動型のパーソナルコンピュータなどの形態端末に適用できる。【選択図】図４
2014194634.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
情報処理装置。
【請求項２】
前記不揮発性記憶部に置かれるページは、レジューム後にアクセスされる可能性の高いページである
請求項１に記載の情報処理装置。
【請求項３】
レジューム後にアクセスする可能性が高いページの優先度を管理する第１のリストと、レジューム後にアクセスする可能性が低いページの優先度を管理する第２のリストをさらに備える
請求項１に記載の情報処理装置。
【請求項４】
前記第１のリストは、前記揮発性記憶部に記憶されているが、前記不揮発性記憶部に移動させる優先度が高いページを管理するリストであり、
前記第２のリストは、前記不揮発性記憶部に記憶されているが、前記揮発性記憶部に移動させる優先度が高いページを管理するリストである
請求項３に記載の情報処理装置。
【請求項５】
前記第１のリストと前記第２のリストは、システムの状態が変化するイベントが発生したときに更新される
請求項３に記載の情報処理装置。
【請求項６】
前記イベントは、所定のアプリケーションの起動または終了、所定のデバイスの使用の開始または終了、所定のモードへの切り替え、位置情報の変化、ネットワークへの接続状態の変化のうちの少なくとも１つのイベントである
請求項５に記載の情報処理装置。
【請求項７】
前記所定のタイミングとは、前記第１のリストと前記第２のリストが更新されたときである
請求項５に記載の情報処理装置。
【請求項８】
所定のアプリケーションが他のアプリケーションを呼び出す確率を管理する第３のリストと、所定のアプリケーションがレジューム後に必要とするページの情報を管理するプロファイルをさらに備え、
第１のアプリケーションによる画面が、第２のアプリケーションによる画面に切り換えられたとき、前記プロファイルが参照され、前記第２のアプリケーションがレジューム後に必要とするページが確認され、確認された前記ページに対して、前記第３のリストが参照され、前記第２のアプリケーションに係わる確率が付与され、
前記ページに付与された前記確率の値に基づき、前記第１のリストと前記第２のリストがそれぞれ更新される
請求項３に記載の情報処理装置。
【請求項９】
前記第１のリストまたは前記第２のリストに記載されているページの量に応じて、前記不揮発性記憶部と前記揮発性記憶部との間での前記ページの移動頻度を変化させる
請求項３に記載の情報処理装置。
【請求項１０】
主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
ステップを含む情報処理方法。
【請求項１１】
主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置を制御するコンピュータに、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
ステップを含む処理を実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法、並びに記録媒体に関する。詳しくは、サスペンドなどの状態に移行する際の時間を短縮することができる情報処理装置、情報処理方法、並びに記録媒体に関する。
【背景技術】
【０００２】
デスクトップ型、ノートブック型、タブレット型などの各種パーソナルコンピュータや、スマートフォンやモバイル端末機などが普及している。ノートブック型やタブレット型などのパーソナルコンピュータやモバイル端末機などは、内蔵したバッテリでも駆動できるバッテリ駆動型であり、持ち運びが容易にできる構造とされている。
【０００３】
バッテリの駆動時間は限られており、バッテリでの駆動時間を長くするための節電のためのさまざまな工夫が提案されている。モバイル端末機に限らず、デスクトップ型のパーソナルコンピュータにおいても節電はなされている。
【０００４】
節電の仕方の１つとして、システムの使用状況が低下したことに応答してシステムの一部または全体への電力供給を適宜低下若しくは遮断する方法が考えられる。ただし、電源を遮断することによりタスクが中断されることから、電源再投入時に中断した時点からタスクを再開できるように、電源を遮断する前にシステムの状態情報を退避し、電源再投入時に退避した状態情報を復元する必要がある。システムの状態情報を退避してタスクを中断する動作のことを「サスペンド」と称し、状態情報を復元してタスクを再開する動作のことを「レジューム」と称する。
【０００５】
サスペンド・レジューム機能を実現するために、２通りの方法が挙げられる。１つは、端末の電源切断前後で揮発性の主記憶装置などに電源を供給し続けてシステムの状態情報を保持する方式である。また、もう１つは、主記憶装置などに展開されているシステムの状態情報を電源切断時に不揮発性の２次記憶装置に退避し、電源投入時に退避した状態情報を主記憶装置などに復元する方式である。
【０００６】
前者の方式では、バッテリ・バックアップされた揮発性の主記憶装置などにシステムの状態情報を保存する。このため、端末の退避・復帰の処理が非常に高速であるが、端末の停止中も主記憶装置による記憶保持動作のために電力を消費するため、節電の効果は低い。一方、後者の場合、タスク再開に必要なシステムの状態情報を不揮発性の２次記憶装置で保存するため、端末内のほとんど全てのコンポーネントの電源遮断することができ、節電の効果が高い。
【０００７】
しかしながら、２次記憶装置としてのハードディスクドライブ（あるいはフラッシュメモリ）は、一般に主記憶装置よりもアクセス速度が低い。主記憶装置上のメモリイメージを２次記憶装置に格納したり展開したりする処理動作が含まれると、多くの時間を要するという欠点がある。
【０００８】
このように、システムの主記憶装置は揮発性だったため、主記憶装置を含むシステムの全電源を遮断して休止（サスペンド）状態に移行するためには、主記憶装置の内容を２次記憶装置に退避する必要があった(サスペンド・トゥ・ディスク若しくはハイバネーションと呼ばれる処理)。
【０００９】
これに対し、主記憶装置の一部に不揮発性のデバイスを用いることで、不揮発性記憶部のデータ退避を不要とし、サスペンド処理に必要となる時間を短くする手法が提案されている。（例えば、特許文献１参照）
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−３６２４２６
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１においては、レジューム処理に必要なページに優先度を付け、サスペンド時に優先度の高い順に不揮発性記憶部にページを移動し、不揮発性記憶部に記憶できずにあふれ出たページを２次記憶装置に移動する。そしてレジューム処理時には、２次記憶装置に記憶されたページを揮発性記憶部に読み出すことで行なわれる。
【００１２】
しかしながら、特許文献１においては、揮発性記憶部から不揮発性記憶部や２次記憶装置にページをサスペンド時に行うため、そのページの退避にかかる時間を短縮することは困難である。例えば、揮発性記憶部に置かれているページが多い場合、サスペンドの処理時に、移動させるページが多く、時間がかかってしまうため、ページの退避にかかる時間を短縮することは困難となる。
【００１３】
サスペンドの処理に係る時間を短縮することで、節電などの効果も望めるため、サスペンドの処理に係る時間の短縮が望まれている。
【００１４】
本技術は、このような状況に鑑みてなされたものであり、サスペンドの処理に係る時間を短縮することができるようにするものである。
【課題を解決するための手段】
【００１５】
本技術の一側面の情報処理装置は、主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する。
【００１６】
前記不揮発性記憶部に置かれるページは、レジューム後にアクセスされる可能性の高いページであるようにすることができる。
【００１７】
レジューム後にアクセスする可能性が高いページの優先度を管理する第１のリストと、レジューム後にアクセスする可能性が低いページの優先度を管理する第２のリストをさらに備えるようにすることができる。
【００１８】
前記第１のリストは、前記揮発性記憶部に記憶されているが、前記不揮発性記憶部に移動させる優先度が高いページを管理するリストであり、前記第２のリストは、前記不揮発性記憶部に記憶されているが、前記揮発性記憶部に移動させる優先度が高いページを管理するリストであるようにすることができる。
【００１９】
前記第１のリストと前記第２のリストは、システムの状態が変化するイベントが発生したときに更新されるようにすることができる。
【００２０】
前記イベントは、所定のアプリケーションの起動または終了、所定のデバイスの使用の開始または終了、所定のモードへの切り替え、位置情報の変化、ネットワークへの接続状態の変化のうちの少なくとも１つのイベントであるようにすることができる。
【００２１】
前記所定のタイミングとは、前記第１のリストと前記第２のリストが更新されたときであるようにすることができる。
【００２２】
所定のアプリケーションが他のアプリケーションを呼び出す確率を管理する第３のリストと、所定のアプリケーションがレジューム後に必要とするページの情報を管理するプロファイルをさらに備え、第１のアプリケーションによる画面が、第２のアプリケーションによる画面に切り換えられたとき、前記プロファイルが参照され、前記第２のアプリケーションがレジューム後に必要とするページが確認され、確認された前記ページに対して、前記第３のリストが参照され、前記第２のアプリケーションに係わる確率が付与され、前記ページに付与された前記確率の値に基づき、前記第１のリストと前記第２のリストがそれぞれ更新されるようにすることができる。
【００２３】
前記第１のリストまたは前記第２のリストに記載されているページの量に応じて、前記不揮発性記憶部と前記揮発性記憶部との間での前記ページの移動頻度を変化させるようにすることができる。
【００２４】
本技術の一側面の情報処理方法は、主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動するステップを含む。
【００２５】
本技術の一側面の記録媒体は、主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置を制御するコンピュータに、所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動するステップを含む処理を実行させるためのプログラムを記録している。
【００２６】
本技術の一側面の情報処理装置、情報処理方法、並びに記録媒体においては、主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、所定のタイミングで、不揮発性記憶部と揮発性記憶部との間で、ページに付与された優先度に基づき、ページの移動が行なわれる。
【発明の効果】
【００２７】
本技術の一側面によれば、サスペンドの処理に係る時間を短縮することができる。
【図面の簡単な説明】
【００２８】
【図１】従来の情報処理装置の一例を示す図である。
【図２】従来のサスペンド時の処理について説明するためのフローチャートである。
【図３】本技術を適用した情報処理装置の一実施の形態の構成を示す図である。
【図４】情報処理装置の機能を示す図である。
【図５】ページの移動について説明するための図である。
【図６】ページの移動について説明するための図である。
【図７】サスペンド時の処理について説明するためのフローチャートである。
【図８】ページの優先度の更新のタイミングについて説明するための図である。
【図９】情報処理装置の他の構成を示す図である。
【図１０】ページの移動速度について説明するための図である。
【図１１】ページの優先度の設定の仕方について説明するための図である。
【図１２】アプリケーションプロファイルについて説明するための図である。
【図１３】ページの優先度の設定の仕方について説明するためのフローチャートである。
【図１４】優先度の更新の処理について説明するためのフローチャートである。
【図１５】ページ移動の指示について説明するためのフローチャートである。
【図１６】記録媒体について説明するための図である。
【発明を実施するための形態】
【００２９】
以下に、本技術を実施するための形態（以下、実施の形態という）について説明する。なお、説明は、以下の順序で行う。
１．従来のサスペンドに係わる処理
２．本技術を適用した第１の実施の形態における情報処理装置の構成
３．第１の実施の形態におけるサスペンドの処理
４．第２の実施の形態における情報処理装置の構成
５．第２の実施の形態における優先度の付与に係わる処理
６．他の構成について
７．記録媒体について
【００３０】
＜従来のサスペンドに係わる処理＞
本技術と従来技術との差異を明確にするために、まず従来技術における情報処理装置と、その情報処理装置におけるサスペンド時の処理について説明する。図１は、従来技術における情報処理装置の構成を示す図であり、図２は、図１に示した情報処理装置におけるサスペンド時の処理について説明するためのフローチャートである。
【００３１】
図１に示した情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１、主記憶装置１０２、２次記憶装置１０３、入出力部１０４、およびシステムバス１０５を備えている。
【００３２】
ＣＰＵ１０１は、オペレーティングシステム（ＯＳ）の制御下で、各種プログラムを実行する。ＣＰＵ１０１は、データ信号線、アドレス信号線、コントロール信号線などからなる共通信号伝送路であるシステムバス１０５を介して情報処理装置１００内の各部を制御する。
【００３３】
主記憶装置１０２は、ＣＰＵ１０１が実行する各プログラム（ＯＳやアプリケーションプログラムなど）をロードしたり、ＣＰＵ１０１が作業領域として用いたりするために使用される。２次記憶装置１０３は、ハードディスクドライブ（ＨＤＤ）やフラッシュメモリなどの不揮発性の記憶部で構成される。２次記憶装置１０３は、主記憶装置１０２に比べてアクセス速度は低速であるが、大容量であり、主記憶装置１０２を補助するために装備されている。
【００３４】
ＨＤＤは、磁気ディスクを固定的に搭載した外部記憶部であり、記憶容量やデータ転送速度などの点でＣＤ／ＤＶＤなど他のディスク型記憶装置よりも優れている。通常、ＨＤＤには、ＣＰＵ１０１が実行すべきオペレーティングシステムのプログラムコードや、アプリケーションプログラム、デバイスドライバなどが不揮発的に格納されている。
【００３５】
入出力部１０４には、キーボードやマウスなどのユーザ入力装置、ディスプレイやプリンタなどの出力装置、ネットワーク装置やその他の外部機器との接続インタフェースなどを含む。ディスプレイ上の描画データは、一旦ビデオＲＡＭ（ＶＲＡＭ）（不図示）に一旦書き込まれた後、表示出力される。
【００３６】
システムバス１０５上の各デバイスには、Ｉ／Ｏ空間上の固有のアドレス（Ｉ／Ｏアドレス）が割り振られており、Ｉ／Ｏアドレスの指定によって各デバイスへのアクセスが実現される。また、各デバイスのバス・インターフェースはＩ／Ｏレジスタ（不図示）を備えており、デバイスへの書き込みデータやコマンド、デバイスからの読み出しデータ、デバイス状態などは一旦Ｉ／Ｏレジスタに書き込まれた後、バス転送が行なわれる。
【００３７】
なお、図１に示した情報処理装置１００の構成は、以下の説明に必要な構成を示し、他の機能を実現するための構成については図示していない。
【００３８】
図２のフローチャートを参照し、図１に示した情報処理装置１００におけるサスペンド時の処理について説明する。
【００３９】
ステップＳ１１において、管理しているページテーブルが確認され、主記憶装置１０２を使用している仮想ページがあるかが確認される。ステップＳ１２において、ステップＳ１１における確認の結果、主記憶装置１０２を使用中の仮想ページがあるか否かが判断される。ステップＳ１２において、主記憶装置１０２を使用中の仮想ページがあると判断された場合、ステップＳ１３に処理が進められる。主記憶装置１０２を使用している仮想ページが見つかった場合、そのページを２次記憶装置１０３へ退避するための処理が開始される。
【００４０】
ステップＳ１３において、主記憶装置１０２を使用している仮想ページを退避させるために、２次記憶装置１０３の空き領域が確保される。例えば、オペレーティングシステムのスワップ管理機能が、スワップ領域から１ページ分の未使用領域を探し出すことで、２次記憶装置１０３の空き領域が確保される。
【００４１】
ステップＳ１４において、確保された２次記憶装置１０３の空き領域に、主記憶装置１０２を使用中のページが退避される。例えば、前述のスワップ管理機能が、確保した空き領域にページをコピーすることで行なわれる。
【００４２】
ステップＳ１５において、ページテーブルが更新され、退避されたページをマッピングしている仮想アドレスが無効化される。また、退避されたページが解放され、空き領域とされる。
【００４３】
ステップＳ１１乃至Ｓ１５の処理が繰り返されることで、主記憶装置１０２を使用しているページがなくなるまで繰り返し行なわれることで、主記憶装置１０２を使用中のページの退避が行なわれる。
【００４４】
そしてステップＳ１２において、主記憶装置１０２を使用中のページはないと判断された場合、ステップＳ１６に処理が進められ、システムの電源が遮断される。
【００４５】
このようにしてサスペンド時の処理が行なわれ、レジューム時には、退避されたデータが、２次記憶装置１０３から主記憶装置１０２に戻されることで、システムの電源が遮断される前の状態に復帰される。
【００４６】
このようにしてサスペンド時の処理が行なわれるため、サスペンドの処理が開始されるときに、主記憶装置１０２を使用しているデータ量が多いと、２次記憶装置１０３へのデータの退避にかかる時間が長くなる。すなわち、ステップＳ１３やステップＳ１４の処理が繰り返し行なわれると、サスペンドの処理が終了するまでに時間がかかってしまう。
【００４７】
例えば、ユーザが、サスペンドを指示し、電源が遮断されるのを確認するような場合、指示から電源が遮断されるまでの時間が長くなり、ユーザがいらついたりしてしまう可能性がある。また、ユーザが間違ってサスペンドを指示してしまったような場合、サスペンドが終了した後、レジュームが指示され、サスペンドが開始される前の状態に復帰後、正しい指示が出されることになるが、このような処理がなされる間の時間がかかってしまい、上記した場合と同じく、ユーザがいらついたりしてしまう可能性がある。
【００４８】
また、情報処理装置１００を利用しない時間を、サスペンドの状態とすることで、節電効果を期待できるが、サスペンドの処理が終了するまでの時間がかかると、その節電効果も薄れてしまう。このようなことから、サスペンドそのものが利用されなくなる可能性もある。よって、サスペンドにかかる時間が短縮されることにより、これらの可能性を低くすることができる。そこで、以下に、サスペンドの処理に係る時間を短縮することができる本技術の実施の形態について説明する。
【００４９】
＜本技術を適用した第１の実施の形態における情報処理装置の構成＞
図３は、本技術を適用した第１の実施の形態における情報処理装置のハードウエアの構成を示す図である。図３に示した情報処理装置２００は、ＣＰＵ２０１、主記憶装置２０２、２次記憶装置２０３、入出力部２０４、およびシステムバス２０５を備えている。また、図２に示した情報処理装置２００の主記憶装置２０２は、不揮発性記憶部２１１と揮発性記憶部２１２を備えている。
【００５０】
情報処理装置２００は、例えば、デスクトップ型、ノートブック型、タブレット型などの各種パーソナルコンピュータや、スマートフォンやモバイル端末機などである。
【００５１】
ＣＰＵ２０１は、オペレーティングシステム（ＯＳ）の制御下で、各種プログラムを実行する。ＣＰＵ２０１は、データ信号線、アドレス信号線、コントロール信号線などからなる共通信号伝送路であるシステムバス２０５を介して情報処理装置２００内の各部を制御する。
【００５２】
主記憶装置２０２は、ＣＰＵ２０１が実行する各プログラム（ＯＳやアプリケーションプログラムなど）をロードしたり、ＣＰＵ２０１が作業領域として用いたりするために使用される。２次記憶装置２０３は、ハードディスクドライブ（ＨＤＤ）やフラッシュメモリなどの不揮発性の記憶部で構成される。２次記憶装置２０３は、主記憶装置２０２に比べてアクセス速度は低速であるが、大容量であり、主記憶装置２０２を補助するために装備されている。
【００５３】
入出力部２０４には、キーボードやマウスなどのユーザ入力装置、ディスプレイやプリンタなどの出力装置、ネットワーク装置やその他の外部機器との接続インタフェースなどを含む。ディスプレイ上の描画データは、一旦ビデオＲＡＭ（ＶＲＡＭ）（不図示）に一旦書き込まれた後、表示出力される。
【００５４】
システムバス２０５上の各デバイスには、Ｉ／Ｏ空間上の固有のアドレス（Ｉ／Ｏアドレス）が割り振られており、Ｉ／Ｏアドレスの指定によって各デバイスへのアクセスが実現される。また、各デバイスのバス・インターフェースはＩ／Ｏレジスタ（不図示）を備えており、デバイスへの書き込みデータやコマンド、デバイスからの読み出しデータ、デバイス状態などは一旦Ｉ／Ｏレジスタに書き込まれた後、バス転送が行なわれる。
【００５５】
なお、図２に示した情報処理装置２００の構成は、以下の説明に必要な構成を示し、他の機能を実現するための構成については図示していない。
【００５６】
図１に示した情報処理装置１００と図３に示した情報処理装置２００を比較する。図１に示した従来の情報処理装置１００における主記憶装置１０２は、揮発性記憶部で構成されているのに対し、図３に示した情報処理装置２００は、主記憶装置２０２が不揮発性記憶部２１１と揮発性記憶部２１２から構成されている点が異なる。
【００５７】
不揮発性記憶部２１１は、主記憶装置２０２のうち、情報処理装置２００の電源を遮断してもデータが消えない領域である。具体的にはMRAMやReRAMなどの不揮発性メモリ素子を使ったデバイスを用いても良い。
【００５８】
MRAM（Magnetic RAM）は、トンネル磁気抵抗効果を利用したTMR（Tunneling Magneto Resistance）素子で構成され、電子の電荷ではなく電子のスピンで情報を保持することができる。MRAMは、書き換え／読み出しなどのアクセス速度、集積度、消費電力、ビット単価などの点で主記憶装置２０２としての条件をほぼ満足する他、不揮発性であるという特徴を持つ。
【００５９】
また、ReRAM（Resistance RAM）は、電圧の印加による電気抵抗の変化を利用した不揮発性メモリであり、電圧で書き換えるため（電流が微量で）消費電力が小さい、セル面積が小さく、高密度化が可能であるという特徴があり、MRAM同様に主記憶装置としての条件をほぼ満足する。よって、具体的には、MRAMやReRAMなどの不揮発性メモリ素子を使ったデバイスを主記憶装置２０２の不揮発性記憶部２１１に用いることができるが、一例であり、限定を示す記載ではない。
【００６０】
また主記憶装置２０２の不揮発性記憶部２１１として、DRAM（Dynamic Random Access Memory）などの揮発性メモリ素子を用いたデバイスに、バックアップ用の電池を付加して実現することも可能である。
【００６１】
不揮発性記憶部２１１に対し、揮発性記憶部２１２は、主記憶装置２０２のうち、情報処理装置２００の電源を遮断したときにデータが消えてしまう領域である。
【００６２】
図４は、図３に示したハードウエアの構成を有する情報処理装置２００の機能ブロック図である。図４に示した情報処理装置２００は、ハードウエアの構成と、ＣＰＵ２０１が所定のプログラムを実行することで実現される機能を合わせて図示してある。
【００６３】
図４に示した情報処理装置２００は、不揮発性記憶部２１１、揮発性記憶部２１２、サスペンド指示部２５１、ページテーブル管理部２５２、ページ移動部２５３、ページ移動指示部２５４、ページ優先度推定部２５５、高優先ページリスト管理部２５６、低優先ページリスト管理部２５７、高優先ページリスト２５８、および低優先ページリスト２５９を備える。
【００６４】
不揮発性記憶部２１１と揮発性記憶部２１２は、図３に示した不揮発性記憶部２１１と揮発性記憶部２１２である。
【００６５】
サスペンド指示部２５１は、ユーザが入出力部２０４（図３）を操作してサスペンドを指示したとき、サスペンド時に処理を行う箇所に対し、サスペンド処理の開始を通知する。
【００６６】
ページテーブル管理部２５２は、物理アドレスと仮想アドレスのマッピングを行うためのページテーブルを管理する。ページテーブルは、MMU（Memory Management Unit;メモリ管理ユニット）が物理アドレスと仮想アドレスを変換するために参照するテーブルであり、仮想アドレス空間毎に、複数存在する。ページ移動部２５３がページを移動した際、その移動元と移動先の物理アドレスを受け取り、その物理アドレスをマッピングしているページテーブルのデータを更新する。サスペンド指示部２５１よりサスペンド処理開始の通知を受け取った際は、揮発性記憶部２１２をマッピングしている仮想アドレスを無効化する。
【００６７】
ページ移動部２５３は、ページ移動指示部２５４に指示されたタイミングで、不揮発性記憶部２１１と揮発性記憶部２１２の間でページを移動する。高優先ページリスト２５８で管理されるページを不揮発性記憶部２１１の空き領域に移動する。高優先ページを移動するための空き領域がないときは、低優先ページリスト２５９で管理されるページを揮発性記憶部２１２に移動し、不揮発性記憶部２１１に空き領域を作る。
【００６８】
ページ移動指示部２５４は、ページ移動部２５３に対してページの移動を指示する。ページの移動は情報処理装置２００の通常動作中に行なわれるため、主機能に大きな悪影響を及ぼさないようなタイミングで行なわれる。例えば、ＣＰＵ２０１（図３）の使用率が一定以下の場合にページ移動が行なわれる。
【００６９】
ページ優先度推定部２５５は、主記憶装置２０２に存在するページの優先度を推定する。ページの優先度が変わるようなイベントが発生した場合、ページの優先度を動的に再計算する。再計算の結果、ページの優先度が変わった場合、高優先ページリスト管理部２５６と低優先ページリスト管理部２５７に、それぞれが管理するページリストの更新を指示する。
【００７０】
ページの優先度が変わるのは、システムがレジューム後にアクセスするページのパターンが大きく変わった時である。例えば、新たにアプリケーションが起動した場合、そのアプリケーションは、レジューム後も動作を続ける可能性が高いので、そのアプリケーションが使用するページは優先度が高く設定される。
【００７１】
高優先ページリスト管理部２５６は、ページ優先度推定部２５５の指示に基づき、高優先ページリスト２５８の内容を更新する。高優先ページリスト管理部２５６は、優先度が高くなったページをリストに加え、優先度が低くなったページをリストから削除する。
【００７２】
低優先ページリスト管理部２５７は、ページ優先度推定部２５５の指示に基づき、低優先ページリスト２５９の内容を更新する。低優先ページリスト管理部２５７は、優先度が低くなったページをリストに加え、優先度が高くなったページをリストから削除する。
【００７３】
高優先ページリスト２５８は、揮発性記憶部２１２に記憶されているページのうち、不揮発性記憶部２１１に移動するべきページを管理するリストである。不揮発性記憶部２１１に移動するべきページとは、今後サスペンド・レジューム処理が発生したとき、レジューム直後にアクセスする可能性の高いデータを記憶しているページである。
【００７４】
これらのページが揮発性記憶部２１２に存在すると、サスペンド処理で主記憶装置２０２の電源を切る前に、そのデータは２次記憶装置２０３に退避され、レジューム直後は、主記憶装置２０２に存在しなくなる。これらのページがレジューム直後に主記憶装置２０２に存在しない場合、２次記憶装置２０３からページを読み込む必要が発生し、読み込み終了まで処理を続行できない。
【００７５】
レジューム直後のシステム動作を高速に行うために、これらのページは不揮発性記憶部２１１にとどめ、レジューム後すぐにアクセス可能にしておく必要がある。すなわちこれらのページは、不揮発性記憶部２１１に配置すべき優先度が高い。
【００７６】
低優先ページリスト２５９は、不揮発性記憶部２１１に記憶されているページのうち、揮発性記憶部２１２に移動させてもよいページを管理するリストである。揮発性記憶部２１２に移動させてもよいページとは、今後サスペンド・レジューム処理が発生した時、レジューム直後にアクセスする可能性の低いデータを記憶しているページである。
【００７７】
これらのページはレジューム直後にはアクセスしないので、必要になる時までに２次記憶装置２０３から主記憶装置２０２に読み出せば良い。したがって、システムの動作中にページを揮発性記憶部２１２に移動し、サスペンド処理中に２次記憶装置２０３へ退避しても、レジューム直後のシステムの動作速度には影響を及ぼさない。すなわちこれらのページは、不揮発性記憶部２１１に配置すべき優先度が低い。
【００７８】
このような構成を有する情報処理装置２００においては、レジューム時に主記憶装置２０２に記憶する必要があるページは、情報処理装置２００が動作中（サスペンドが開始される前）に、不揮発性記憶部２１１に予め記憶される。よって、サスペンドの処理が終了され、電源が遮断された後も、不揮発性記憶部２１１に記憶されているページは、記憶状態が維持され、レジューム時に、その記憶されているページを参照して、電源が遮断される前の状態に復帰することができる。
【００７９】
また、サスペンドの処理が開始される前の時点で、不揮発性記憶部２１１にサスペンド時に退避すべきページが記憶されているため、ページの退避にかかる時間を削減することができ、サスペンド時の処理に係る時間を短縮することができる。
【００８０】
このようなことから、情報処理装置２００が動作中に、不揮発性記憶部２１１と揮発性記憶部２１２にページが記憶される。この際、レジューム直後にアクセスされる可能性の高いページが不揮発性記憶部２１１に記憶され、レジューム直後にアクセスされる可能性の低いページが揮発性記憶部２１２に記憶される。
【００８１】
例えば、サスペンド処理時にページを移動する場合、サスペンド処理の開始時点で設定できる優先度に基づいて、ページが移動されればよい。しかしながら、サスペンドの処理が開始される前の時点、換言すれば、情報処理装置２００が動作中にページを移動する場合、優先度は一意に定まらず、状況により変化する。
【００８２】
すなわち、ある時点での優先度に基づきページを移動した後も情報処理装置２００は動作を続けるため、サスペンド処理開始時までに優先度が変わる場合がある。このことについて、図５を参照して説明する。
【００８３】
図５は、情報処理装置２００が動作中の時刻Ｔ１、時刻Ｔ２、時刻Ｔ３における不揮発性記憶部２１１と揮発性記憶部２１２にそれぞれ記憶されているページを模写的に表した図である。
【００８４】
時刻Ｔ１のとき、不揮発性記憶部２１１には、ページ３０１、ページ３０２、およびページ３０３が記憶され、揮発性記憶部２１２には、ページ３０４が記憶されている状態である。上記したように、不揮発性記憶部２１１に記憶されるページは、優先度が高いページであり、時刻Ｔ１のときには、ページ３０１、ページ３０２、およびページ３０３の優先度が高いと設定されている状態である。また、揮発性記憶部２１２に記憶されるページは、優先度が低いページであり、時刻Ｔ１のときには、ページ３０４は、優先度は低いと設定されている状態である。
【００８５】
時刻Ｔ２のとき、優先度に変更があり、優先度は高いに設定されていたページ３０２が、優先度が低いに設定し直され、優先度は低いに設定されていたページ３０４が、優先度が高いに設定し直されたとする。
【００８６】
例えば、ページ３０４を利用するアプリケーションが起動されたことにより、ページ３０４の優先度が低いから高いに変更されたため、揮発性記憶部２１２から不揮発性記憶部２１１に記憶先が変更される。このとき、不揮発性記憶部２１１にページ３０４を記憶する容量がない場合、ページ３０２の優先度が高いから低いに変更され、不揮発性記憶部２１１から揮発性記憶部２１２に記憶先が変更される。ページ３０２が、不揮発性記憶部２１１から揮発性記憶部２１２に移動されることで、不揮発性記憶部２１１に空きができるため、その領域にページ３０４が移動される。
【００８７】
時刻Ｔ２において、このようなページの移動が行なわれた後、時刻Ｔ３において、新たなアプリケーションが起動され、その新たに起動されたアプリケーションが、ページ３０２を参照するアプリケーションであったとする。
【００８８】
ページ３０２は、時刻Ｔ２において、優先度が、高いから低いに変更され、揮発性記憶部２１２に記憶が変更されたが、起動された新たなアプリケーションが参照するページであるため、優先度が再度、低いから高い状態に変更される。この結果、ページ３０２は、揮発性記憶部２１２から不揮発性記憶部２１１に移動され、ページ３０４は、不揮発性記憶部２１１から揮発性記憶部２１２に移動される。
【００８９】
このように、情報処理装置２００が動作している状態のときには、アプリケーションの起動や終了などに伴い、ページの優先度も動的に変化する。そのような動的な変化は、高優先ページリスト２５８と低優先ページリスト２５９が用いられて、高優先ページリスト管理部２５６と低優先ページリスト管理部２５７により管理される。
【００９０】
このような管理について、図６を参照して説明する。主記憶装置２０２に記憶されるページの優先度は、ページ優先度推定部２５５により推定される。ページ優先度推定部２５５の推定に基づいた優先度が、主記憶装置２０２上のページに付与され、高優先ページリスト２５８または低優先ページリスト２５９として管理される。ページ優先度推定部２５５は、レジューム後のアクセス可能性と、今後の情報処理装置２００（システム）の状態変化を考慮してページの優先度を決定する。
【００９１】
高優先ページリスト２５８は、揮発性記憶部２１２に置かれている優先度の高いページを管理し、低優先ページリスト２５９は、不揮発性記憶部２１１に置かれている優先度の低いページを管理するために設けられている。換言すれば、高優先ページリスト２５８は、揮発性記憶部２１２から不揮発性記憶部２１１に移動すべき優先度が高いページを管理し、低優先ページリスト２５９は、不揮発性記憶部２１１から揮発性記憶部２１２に移動すべき優先度が高いページを管理する。
【００９２】
ページ移動部２５３は、ページ移動指示部２５４の指示に基づき、また高優先ページリスト２５８と低優先ページリスト２５９を参照し、揮発性記憶部２１２上の優先度が高いページを、不揮発性記憶部２１１に移動し、不揮発性記憶部２１１上の優先度が高いページを、揮発性記憶部２１２に移動する。
【００９３】
このように、優先度に応じて、優先度が高い、すなわち、レジューム後に必要とされる可能性が高いページが、不揮発性記憶部２１１に記憶されることで、サスペンド時に、レジューム後に必要とされる可能性が高いページを不揮発性記憶部２１１に移動するという処理を省略することができる。よって、サスペンドの処理に係る時間を短くすることが可能となる。このことについて、図７のフローチャートを参照して説明する。
【００９４】
＜第１の実施の形態におけるサスペンドの処理＞
図７は、図３、図４に示した情報処理装置２００のサスペンド処理時の処理について説明するためのフローチャートである。サスペンドの処理は、例えば、情報処理装置２００の入出力部２０４が操作され、ユーザによりサスペンドが指示されたときに実行される。
【００９５】
ステップＳ１０１において、ページ移動部２５３は、高優先ページリスト２５８を確認し、揮発性記憶部２１２に高優先ページが残っているかを確認する。その確認の結果が用いられ、ステップＳ１０２において、揮発性記憶部２１２に高優先ページが残っているか否かが判断される。
【００９６】
ステップＳ１０２において、揮発性記憶部２１２に高優先ページが残っていると判断された場合、ステップＳ１０３に処理が進められる。ステップＳ１０３において、揮発性記憶部２１２に残っていると判断された高優先ページが、不揮発性記憶部２１１に退避される。
【００９７】
ページ移動部２５３は、揮発性記憶部２１２の高優先ページを、不揮発性記憶部２１１へ移動する。ページ移動部２５３は、高優先ページを移動するために、不揮発性記憶部２１１の空き領域を確保する。不揮発性記憶部２１１に空き領域がない場合、低優先ページリスト２５９が参照され、低優先ページに設定されているページが不揮発性記憶部２１１から揮発性記憶部２１２に移動され、空き領域が作り出される。
【００９８】
ページ移動部２５３が確保した空き領域に、高優先ページのデータがコピーされる。コピーが完了すると、ページテーブル管理部２５２は、移動元ページをマッピングしている仮想アドレスが移動先ページを参照するようにページテーブルを更新する。高優先ページリスト管理部２５６は、移動したページを高優先ページリスト２５８から削除する。また低優先ページリスト管理部２５７は、低優先ページリスト２５９に記載されているページのうち、不揮発性記憶部２１１の容量を確保するために移動したページがあった場合、そのページを低優先ページリスト２５９から削除する。
【００９９】
高優先に設定されているページが、揮発性記憶部２１２から不揮発性記憶部２１１に移動された後、ステップＳ１０１に処理が戻され、それ以降の処理が繰り返される。すなわち、揮発性記憶部２１２に高優先ページが残っている場合には、そのページを不揮発性記憶部２１１に移動する処理が繰り返し行なわれる。
【０１００】
一方で、ステップＳ１０２において、揮発性記憶部２１２には高優先ページは残っていないと判断された場合、ステップＳ１０４に処理が進められる。ステップＳ１０４において、揮発性記憶部２１２に残っているページ（データ）が、２次記憶装置２０３に退避される。この退避は、例えば、カーネルのスワップ機構が用いられ、ページが２次記憶装置２０３にコピー（スワップアウト）される。
【０１０１】
このようにして、サスペンド処理時に、揮発性記憶部２１２に記憶されているページが、不揮発性記憶部２１１または２次記憶装置２０３に退避されると、ステップＳ１０５において、電源が遮断される。
【０１０２】
このようにして、サスペンドの処理が実行される。
【０１０３】
ここで、図２に示した従来のサスペンドの処理と、図７に示した本技術によるサスペンドの処理を比較する。図２に示した従来のサスペンドの処理によると、ステップＳ１３において、２次記憶装置１０３の空き容量が確保され、ステップＳ１４において、主記憶装置１０２から２次記憶装置１０３にページがコピーされるという処理が含まれる。
【０１０４】
図７に示した本技術によるサスペンドの処理によると、ステップＳ１３とステップＳ１４において実行される処理に該当する処理は、ステップＳ１０２、ステップＳ１０３、ステップＳ１０４である。
【０１０５】
従来の技術によれば、ステップＳ１３とステップＳ１４は必ず行なわれる。ステップＳ１４において実行される処理は、アクセス速度の遅い２次記憶装置２０３への書き込みが発生するため、時間のかかる処理である。
【０１０６】
ステップＳ１０２とステップＳ１０３において、揮発性記憶部２１２から不揮発性記憶部２１１に高優先に設定されているページが移動されるが、高優先に設定されているページの大部分は、サスペンドの処理が開始される前の時点で、既に不揮発性記憶部２１１に記憶されている状態である。
【０１０７】
すなわち、上述した実施の形態においては、情報処理装置２００の通常動作中に高優先ページが不揮発性記憶部２１１に移動されているため、サスペンド処理が開始される時には、揮発性記憶部２１２には基本的に高優先ページは残っていない。よって、通常動作中に高優先ページを移動しきれなかった場合という例外をのぞけば、ステップＳ１０２において、揮発性記憶部２１２には高優先ページは残っていないと判断され、ステップＳ１０３の処理は実行されない。
【０１０８】
また、通常動作中に高優先ページを移動しきれなかったという例外の場合があるが、この場合は、高優先ページの移動は部分的に進んでいるので、ステップＳ１０３における揮発性記憶部２１２から不揮発性記憶部２１１にページを移動するという処理が繰り返される回数は少ない。すなわち、例外の場合も、ページの移動回数を減らすことができる。
【０１０９】
このようなことから、揮発性記憶部２１２から不揮発性記憶部２１１にページを移動するための処理にかかる時間を大幅に短縮することができる。
【０１１０】
さらに、ステップＳ１０４において、揮発性記憶部２１２を使用中のページが、２次記憶装置２０３に退避される処理が実行されるが、ステップＳ１０４の処理が実行される時点で、揮発性記憶部２１２を使用しているページは少ない。よって、ステップＳ１０４において、アクセス速度の遅い２次記憶装置２０３への書き込みが発生したとしても、書き込みするページ数（データ量）が少なく、その書き込みにかかる時間を短縮することができる。
【０１１１】
このようなことから、揮発性記憶部２１２から２次記憶装置２０３にページを移動するための処理にかかる時間を大幅に短縮することができる。結果として、図７に示したフローチャートに基づくサスペンド処理が開始されてから、終了されるまでの時間を短縮することができる。
【０１１２】
さらに、不揮発性記憶部２１１には、サスペンドの処理が指示された時点で、レジューム時に必要とされる可能性が高いページが記憶されている。よって、レジューム時に、サスペンドの処理が開始される前の時点に復帰するまでにかかる時間を大幅に短縮することができる。
【０１１３】
また復帰直後も、既に、レジューム時に必要とされる可能性が高いページが不揮発性記憶部２１１に記憶されているため、２次記憶装置２０３から揮発性記憶部２１２にページを移動させるという処理が必要なく、復帰後、即座に動作を開始できる。よって復帰直後の動作速度を速めることが可能となる。
【０１１４】
また仮に、２次記憶装置２０３から揮発性記憶部２１２にページを移動させる処理を行う必要があっても、２次記憶装置２０３に記憶されているページは、レジューム時に必要とされる可能性が低いページであるため、不揮発性記憶部２１１に記憶されているページを用いて処理を開始させることができる。そして、処理が開始された後に、必要に応じて２次記憶部２０３から揮発性記憶部２１２にページを移動させるようにしても、処理が滞ることはない。よって、復帰直後の動作速度を速めることが可能となる。
【０１１５】
＜第２の実施の形態における情報処理装置の構成＞
第１の実施の形態においては、優先度に応じて、情報処理装置２００が動作中に、主記憶装置２０２の不揮発性記憶部２１１と揮発性記憶部２１２に記憶することで、サスペンド時の処理時間を短縮することについて説明した。
【０１１６】
ところで、図５を参照して説明したように、情報処理装置２００が動作中に、ページに対して優先度を付与し、その優先度に応じて不揮発性記憶部２１１または揮発性記憶部２１２に記憶させるようにした場合、起動されているアプリケーションなどに応じて、優先度は動的に変化する。すなわち、レジューム後にアクセスするページの優先度を高く設定するだけでは、ページの移動が頻繁に行なわれる可能性があり、ページの移動回数が無駄に増えてしまう可能性がある。
【０１１７】
そこで、以下に説明するように、情報処理装置２００が動作中であっても、ページの移動が頻繁に行なわれることを防ぎ、ページの移動回数が無駄に増えてしまうことを防ぐことができるようにする。一例として、図８を参照し、アプリケーションの起動や終了をトリガーとして、高優先ページリスト２５８と低優先ページリスト２５９が更新される場合について説明する。
【０１１８】
ページ優先度推定部２５５は、システム（情報処理装置２００）の状態に応じて動的にページの優先度を推定する。優先度が変化した場合、高優先ページリスト管理部２５６と低優先ページリスト管理部２５７に高優先ページリスト２５８と低優先ページリスト２５９の更新をそれぞれ指示する。
【０１１９】
優先度が変化するタイミングは、レジューム後にアクセスするページのパターンが大きく変わるようなイベントが発生したときである。ここでは、イベントの一例として、アプリケーションの起動または終了をあげ、アプリケーションの起動または終了をキーに優先度を決定される場合を例に挙げて説明を続ける。
【０１２０】
図８に示したように、新しいアプリケーションＡが起動された場合、そのアプリケーションＡは、レジューム後に動作する可能性が高いと推定することができる。よって、アプリケーションＡがレジューム後に使用するが、今は揮発性記憶部２１２に置かれているページが、不揮発性記憶部２１１に移動される。
【０１２１】
このような処理が行なわれるようにするために、高優先ページリスト管理部２５６は、高優先ページリスト２５８に、アプリケーションＡでレジューム後に使用するページを追加し、低優先ページリスト管理部２５７は、低優先ページリスト２５９から、アプリケーションＡで使用するページを削除する。
【０１２２】
また図８に示したように、起動されていたアプリケーションＢが終了された場合、今後一定期間はそのアプリケーションＢが動作する可能性は低いと推定できる。よって、アプリケーションＢがレジューム後に使用するために不揮発性記憶部２１１に置いていたページが、揮発性記憶部２１２に移動される。
【０１２３】
このような処理が行なわれるようにするために、高優先ページリスト管理部２５６は、高優先ページリスト２５８から、アプリケーションＢで使用していたページを削除し、低優先ページリスト管理部２５７は、低優先ページリスト２５９に、アプリケーションＢで使用していたレジューム後にも使用するページを追加する。
【０１２４】
このように、所定のアプリケーションの起動または終了というイベントが発生したときに、高優先ページリスト２５８や低優先ページリスト２５９が更新されるように構成した場合、情報処理装置２００の構成は、図９に示したような構成となる。ここでは、図４に示した情報処理装置２００との差異を付けるために、図９に示す情報処理装置を、情報処理装置４００とする。
【０１２５】
図９に示した情報処理装置４００は、不揮発性記憶部２１１、揮発性記憶部２１２、サスペンド指示部２５１、ページテーブル管理部２５２、ページ移動部２５３、高優先ページリスト管理部２５６、低優先ページリスト管理部２５７、高優先ページリスト２５８、低優先ページリスト２５９、ページ移動指示部４０１、ページ優先度推定部４０２、表示中アプリケーション監視部４０３、アプリケーション呼び出し確率リスト４０４、およびアプリケーションプロファイル４０５を備える。
【０１２６】
情報処理装置４００の不揮発性記憶部２１１、揮発性記憶部２１２、サスペンド指示部２５１、ページテーブル管理部２５２、ページ移動部２５３、高優先ページリスト管理部２５６、低優先ページリスト管理部２５７、高優先ページリスト２５８、および低優先ページリスト２５９は、図４に示した情報処理装置２００の該当する部分と同一である。
【０１２７】
情報処理装置４００のページ移動指示部４０１とページ優先度推定部４０２は、図４に示した情報処理装置２００のページ移動指示部２５４とページ優先度推定部２５５と基本的に同一であるが、参照する部分や指示を出す部分などが異なる。
【０１２８】
情報処理装置４００の表示中アプリケーション監視部４０３、アプリケーション呼び出し確率リスト４０４、およびアプリケーションプロファイル４０５は、図４に示した情報処理装置２００の構成に追加した部分である。
【０１２９】
ページ移動指示部４０１は、高優先ページリスト２５８を監視し、高優先ページリストに含まれるページの数に応じてページを移動する速度を変更する。具体的には、カーネルスレッドとして実装されるページ移動部の実行開始・停止、およびその実行優先度を変化させる。
【０１３０】
例えば、高優先ページリスト２５８にページが登録された場合、ページ移動部２５３の実行を開始し、高優先ページリスト２５８が空になったとき、実行を停止する。ここで、図１０を参照し、実行優先度について説明を加える。
【０１３１】
図１０Ａに示したように、ページ移動の実行優先度を変化させるしきい値を、例えば、１０メガバイトと定め、高優先ページリスト２５８に１０メガバイト以上のページが含まれているときは、ページ移動部２５３の実行優先度を上げ、カーネルがより積極的にページ移動処理を実行するようにする。また図１０Ｂに示したように、高優先ページリスト２５８に含まれるページが１０メガバイトより少ない時は、ページ移動部２５３の実行優先度を下げる。
【０１３２】
実行優先度を上げるとは、起動されているアプリケーションと同等に扱い、そのアプリケーションとページ移動処理が、同じ優先度を持ってスケジューリングされるようにすることを意味する。また実行優先度を下げるとは、起動されているアプリケーションの処理を優先的に行うようにし、そのアプリケーションとページ移動処理が、異なる優先度を持ってスケジューリングされるようにすることを意味する。
【０１３３】
また実行優先度を下げられているときには、システムの負荷が低くなった時、例えば、起動されているアプリケーション（優先度が高いと設定されているアプリケーション）のＣＰＵ２０１（図３）の使用率が１０％以下の時などに、ページ移動処理が実行される。 
【０１３４】
なお、図９に示した情報処理装置４００は、図１０Ａの場合の構成を示し、ページ移動指示部４０１は、高優先ページリスト２５８を参照してページの移動速度を設定する構成を示している。
【０１３５】
このように、ページ移動指示部４０１を設け、ページの移動を行うタイミングを制御する。 このようなページの移動を行うタイミングを制御する理由は以下の通りである。
【０１３６】
情報処理装置４００が、通常動作中にページ移動を行う理由は、サスペンド時のページ移動を減らすためである。したがって、「サスペンド時に移動させる必要があるページ」が多いほど動作中のページ移動を積極的に行うのが好ましい。そこで、高優先ページリスト２５８に記載されているページ数（データ量）が大きいときには、積極的にページが移動されるようにする。
【０１３７】
仮に、起動されているアプリケーションの処理を考慮せずに、不揮発性記憶部２１１と揮発性記憶部２１２との間で、ページの移動が頻繁に行なわれたり、移動されるデータ量が多かったりすると、情報処理装置２００の実行速度が低下してしまう可能性がある。例えば、起動されているアプリケーションの処理速度が、不揮発性記憶部２１１と揮発性記憶部２１２との間のページの移動の処理により低下してしまう可能性がある。このような処理速度の低下は発生しないのが良い。よって、上記したように、ページ移動指示部４０１の処理により、適切なタイミングでページ移動処理が行なわれるのが良い。
【０１３８】
なお、上述した１０メガバイトとは、一例であり、しきい値としての値は、１０メガバイトに限定されるものではない。また、高優先ページリスト２５８に記載されているページのサイズが、一定サイズ以上になったときだけ、ページ移動処理が実行されるようにしたり、所定のサイズを超えたらページ移動処理が優先して実行されるようにしたりするスケジュール方法に変えるようにすることも可能である。
【０１３９】
図９に示した情報処理装置４００の構成の説明に戻る。ページ優先度推定部４０２は、 ページの優先度を決定する際、アプリケーション呼び出し確率リスト４０４とアプリケーションプロファイル４０５を参照する。ページの優先度の決定方法の詳細は後述する。
【０１４０】
表示中アプリケーション監視部４０３は、画面に表示されているアプリケーションの切り替わりを検知する。ユーザが新しいアプリケーションを起動したり、バックグラウンドで待機していたアプリケーションに画面表示を切り替えたりすることで、画面に表示中のアプリケーションが変化する。表示中アプリケーション監視部４０３は、画面に表示中のアプリケーションが切り替わった時、ページ優先度推定部４０２に優先度の更新を指示する。
【０１４１】
アプリケーション呼び出し確率リスト４０４は、所定のアプリケーションが他のアプリケーションを、どの位の確率で呼び出すかの情報を、アプリケーション単位でリスト化したものである。図１１に一例を挙げ、アプリケーション呼び出し確率リスト４０４について説明する。
【０１４２】
図１１は、ＳＮＳアプリケーションの呼び出し確率リストを例とする図である。ＳＮＳアプリケーション４５１は、ＳＮＳ（social networking service）を利用する際に起動されるアプリケーションであり、社会的ネットワークをインターネット上で構築するサービスを利用できる状態にするためのアプリケーションである。
【０１４３】
ブラウザ（browser）４５２は、コンピュータ上の情報を一定の目的に沿って表示し閲覧に供するソフトウエアであり、画像やテキスト、記録媒体上のファイルなどのブラウザが存在する。閲覧に特化することにより動作を軽快にしたり、利用者の目的に応じたさまざまな閲覧方法を得られたりすることができる。インターネット上のページを閲覧するウェブブラウザが一般的に用いられている。ここでは、ブラウザ４５２は、ウェブブラウザであるとして説明を続ける。
【０１４４】
ギャラリーアプリケーション４５３は、例えば、写真や動画などを閲覧するときに起動されるアプリケーションである。説明書アプリケーション４５４は、情報処理装置４００の取り扱い説明書であり、紙媒体ではなく、情報処理装置４００の入出力部２０４（図３）としてのディスプレイ（不図示）上で閲覧できる説明書である。
【０１４５】
ＳＮＳアプリケーション４５１が起動されているとき、ユーザは、ＳＮＳを利用することができる。ＳＮＳを利用しているとき、そのＳＮＳ内に、ウェブアドレスが記載されていることがある。このウェブアドレスが操作されると、ブラウザ４５２が起動され、アドレス先のページが閲覧できるように構成されている。このように構成されている場合、ＳＮＳアプリケーション４５１が起動されているときに、ＳＮＳアプリケーション４５１に呼び出されてブラウザ４５２が起動される可能性は大きい。
【０１４６】
このように、所定のアプリケーションから呼び出される可能性があるアプリケーションには、高い値が付与される。図１１に示した例では、ブラウザ４５２には、“０．７”という値が付与されている。
【０１４７】
同様に、ＳＮＳアプリケーション４５１が起動されているとき、ＳＮＳアプリケーション４５１からギャラリーアプリケーション４５３が呼び出される可能性は、中程度であるため、“０．２”との値が付与されている。そして、ＳＮＳアプリケーション４５１が起動されているとき、ＳＮＳアプリケーション４５１から説明書アプリケーション４５４が呼び出される可能性は、低いため、“０．１”との値が付与されている。
【０１４８】
このように、アプリケーション呼び出し確率リスト４０４は、実行中のアプリケーションから、所定のアプリケーションに遷移する可能性がどの位あるかを重みづけして数値で管理するためのリストである。図１１に示した例では、全体の重みの合計が“２”になるように重み付けされている。この場合、ＳＮＳアプリケーション４５１が実行され続ける可能性は高いので、自身への遷移の重みは“１”とされている。
【０１４９】
このような重み付けを実行されるアプリケーション単位で行なわれ、リストとして管理される。図１１では一例を示しただけだが、例えば、ブラウザ４５２が起動されているときに、ブラウザ４５２が呼び出すアプリケーションの重み付けのリスト、ギャラリーアプリケーション４５３が起動されているときに、ギャラリーアプリケーション４５３が呼び出すアプリケーションの重み付けのリスト、説明書アプリケーション４５４が起動されているときに、説明書アプリケーション４５４が呼び出すアプリケーションの重み付けのリストも、それぞれ用意され、管理されている。
【０１５０】
さらに、図１１では、ＳＮＳアプリケーション４５１が呼び出すアプリケーションとして、ブラウザ４５２、ギャラリーアプリケーション４５３、説明書アプリケーション４５４の３つのアプリケーションを例示したが、情報処理装置４００に記憶されている全てのアプリケーションを対象とし、それぞれのアプリケーションへの遷移する確率が記載されたリストとして管理されている。
【０１５１】
このようなアプリケーション呼び出し確率リスト４０４は、予め作成されていても良いし、学習などにより作成されるようにしても良い。例えば、所定のアプリケーションが起動され、そのアプリケーションから呼び出したアプリケーションがあった場合、その呼び出し回数の累計から、呼び出し確率を算出し、リスト化するようにしても良い。
【０１５２】
図９の情報処理装置４００の構成の説明に戻る。アプリケーションプロファイル４０５は、アプリケーションがレジューム直後に必要とするページの情報を、アプリケーション単位でリスト化したものである。レジューム直後に必要とするページは、例えば事前にアプリケーションを実行して、レジューム直後にアクセスするページを記録しておくことで知ることができる。
【０１５３】
ここで、アプリケーション毎のレジューム後に必要となるページリストについて、図１２を参照して説明する。図１２Ａを参照するに、アプリケーションが２次記憶装置２０３に記憶されているファイルにアクセスするとき、通常は主記憶装置２０２上にファイルのデータがコピーされ、このようなコピーは、ページキャッシュと称される。
【０１５４】
例えば、図１２Ａに示した例では、２次記憶装置２０３ファイルＸのデータのうち、データＸ−２は不揮発性記憶部２１１にコピーされ、データＸ−９９は揮発性記憶部２１２にコピーされている。このようなページキャッシュが行なわれるとき、オペレーティングシステムは、どのファイルのどの位置（オフセット）のデータを読み込んだかを記憶している。
【０１５５】
レジューム後にどのページキャッシュが必要になるかを、「ファイル名＋必要なデータの範囲」を１レコードとして示す。アプリケーションプロファイル４０５は、このレコードの集合として記録される。例えば、図１２Ｂに示したように、所定のアプリケーションＡに関するリストとして、「ファイルＸの３−５」、「ファイルＹの２−１０」、「ファイルＺの１−１１」という情報が書き込まれたリストが作成される。
【０１５６】
このようなレジューム後に必要なページキャッシュを知る手法としては、例えば、レジューム直後に、どのページキャッシュにアクセスしたかを記録しておく手法がある。他の手法として、既存の手法を適用することも可能である。
【０１５７】
＜第２の実施の形態における優先度の付与に係わる処理＞
このような構成を有する情報処理装置４００においては、上記したように、優先度に応じて、ページが不揮発性記憶部２１１または揮発性記憶部２１２に記憶される。ここで、ページの優先度の決定に関する処理について、図１３、図１４を参照して説明する。
【０１５８】
ページの優先度が更新される一例として、入出力部２０４（図３）を構成するディスプレイ（不図示）に表示中のアプリケーションが切り替わったタイミングがある。図１３に示したように、表示中アプリケーション監視部４０３は、ディスプレイに表示されているアプリケーションを監視し、表示されているアプリケーションが切り替わったときに、ページ優先度推定部４０２に、その切り替わりを通知する。
【０１５９】
ページ優先度推定部４０２は、表示中アプリケーション監視部４０３からの通知を受けると、優先度の更新を開始する。この更新の処理については図１４のフローチャートを参照し後述する。ページ優先度推定部４０２は、ページの優先度を更新する際、アプリケーション呼び出し確率リスト４０４とアプリケーションプロファイル４０５を確認する。
【０１６０】
上述したように、アプリケーション呼び出し確率リスト４０４は、所定のアプリケーションが他のアプリケーションを呼び出す確率をリスト化したものであり、個々のアプリケーション毎に、アプリケーションを呼び出す可能性が定められたリストである。
【０１６１】
また、上述したように、アプリケーションプロファイル４０５は、個々のアプリケーションに、そのアプリケーションがレジューム後に必要とするページのリストである。ページ優先度推定部４０２は、これらのリストやプロファイルを確認し、各ページの優先度を推定する。
【０１６２】
ユーザの操作などで画面に表示されるアプリケーションが切り替えられた場合、主記憶装置２０２上に存在している、動作中のアプリケーションが確認される。そしてアプリケーションの呼び出し可能性と「レジューム後に必要とするかどうか」に基づいて、ページに優先度が付けられる。
【０１６３】
ページの優先度は、そのページをレジューム後必要とするアプリケーションの動作可能性の和に基づいて決定される。例えば、図１１を参照して説明したように、画面表示中のアプリケーションの動作可能性を１、そのアプリケーション呼び出すアプリケーションの動作可能性が合計１になるように(可能性大を0.7 可能性中を0.2, 可能性なしを0.1)とする。
【０１６４】
結果、ページは、０乃至２の優先度を取る。全てのアプリケーションがレジューム後に必要とするページの優先度は２、ブラウザ４５２だけが必要とするページの優先度は０．７、説明書アプリケーション４５４だけが必要とするページは０．１、どのアプリケーションも必要としないが今は主記憶装置２０２上に載っているページは０となる。
【０１６５】
例えば、図１３に示したように、ＳＮＳアプリケーション４５１が画面上に表示されているときの優先度が決定される場合、アプリケーションプロファイル４０５が参照され、ブラウザ４５２は、ページＡとページＢがレジューム後に必要なページであると確認される。ＳＮＳアプリケーション４５１が表示されているときに、ブラウザ４５２が呼び出される確率は、“０．７”であることが、アプリケーション呼び出し確率リスト４０４から読み出される。その結果、ページＡとページＢには、それぞれ“０．７”が付与される。
【０１６６】
同じく、アプリケーションプロファイル４０５が参照され、ＳＮＳアプリケーション４５１は、ページＡとページＣがレジューム後に必要なページであると確認される。ＳＮＳアプリケーション４５１が表示されているときに、ＳＮＳアプリケーション４５１が呼び出される確率は、“１．０”であることが、アプリケーション呼び出し確率リスト４０４から読み出される。その結果、ページＡとページＣには、それぞれ“１．０”が付与される。
【０１６７】
ページＡには、“０．７”と“１．０”が付与されたことになる。よって、ページＡの値は、“１．７”となる。これが優先度を決定するときに参照される値となる。同様に、ページＢの値は、“０．７”、ページＣの値は、“１．０”となる。説明は省略するが、上記した同様の処理が行なわれることにより、ページＤの値は、“０．２”となり、ページＥの値は、“０．１”となる。
【０１６８】
このような結果が得られた場合、値が大きい順に、優先度が高いと設定される。よってこの場合、ページＡ、ページＣ、ページＢ、ページＤ、ページＥの順で、優先度が高いと設定される。このように優先度が設定されたときに、例えばページＡが揮発性記憶部２１２に記憶されていると、不揮発性記憶部２１１に、最優先で記憶させるべきページであるとして、高優先ページリスト２５８に書き込まれる。その結果、ページＡは、揮発性記憶部２１２から不揮発性記憶部２１１に移動される。
【０１６９】
このような処理について、再度、図１４と図１５のフローチャートを参照して説明する。まず図１４のフローチャートを参照し、優先度更新の処理について説明する。優先度更新の処理は、上述したように、ディスプレイ上に表示されているアプリケーションが切り替えられたタイミングで行なわれる。
【０１７０】
ステップＳ２０１において、初期化処理が行なわれる。初期化処理として、主記憶装置２０２に存在する全てのページの優先度が０に設定される。ステップＳ２０２において、表示中アプリケーション監視部４０３は、現在画面に表示されているアプリケーションを確認し、ページ優先度推定部４０２に通知する。
【０１７１】
ステップＳ２０３において、アプリケーション呼び出し確率リスト４０４から、１つのアプリケーションが選択される。ステップＳ２０４において、画面に表示されているアプリケーションのアプリケーション呼び出し確率リスト４０４に記載されているアプリケーションのうち、未処理のアプリケーションがあるか否かが判断される。
【０１７２】
例えば、図１３に示した例のように、ＳＮＳアプリケーション４５１による画面が表示されている場合、ＳＮＳアプリケーション４５１に関するアプリケーション呼び出し確率リスト４０４に記載されているアプリケーションは、ＳＮＳアプリケーション４５１、ブラウザ４５２、ギャラリーアプリケーション４５３、および説明書アプリケーション４５４である。これら４つのアプリケーションのうち、未処理のアプリケーションがあるか否かが、ステップＳ２０４において判断される。
【０１７３】
ステップＳ２０４において、未処理のアプリケーションがあると判断された場合、ステップＳ２０５に処理が進められる。ステップＳ２０５において、処理対象として選択されたアプリケーションのアプリケーションプロファイル４０５に含まれるページのうち、主記憶装置２０２に存在する全てのページが確認される。例えば、図１３に示した例の場合、ブラウザ４５２が処理対象として選択されると、アプリケーションプロファイル４０５が参照され、ブラウザ４５２に関するページとして、ページＡとページＢがあることが確認される。
【０１７４】
ステップＳ２０６において、ステップＳ２０５の処理で確認されたページの優先度に、ステップＳ２０３で選択されたアプリケーションの重みが加算される。例えば、図１３を参照して説明したように、ブラウザ４５２が処理対象とされているときには、ページＡとページＢにそれぞれ“０．７”が付与され、ＳＮＳアプリケーション４５１が処理されているときには、ページＡとページＣにそれぞれ“１．０”が付与される。仮に既に、ページＡに対して、“１．０”が付与されている状態のときに、“０．７”が付与された場合、それらの値が加算され、“１．７”が、ページＡの値とされる。
【０１７５】
このようなステップＳ２０３乃至Ｓ２０６の処理が繰り返され、画面に表示されているアプリケーションのアプリケーション呼び出し確率リスト４０４に記載されているアプリケーションの全てに対して処理が行なわれることで、全てのページに対して優先度が設定される。
【０１７６】
そして、ステップＳ２０４において、未処理のアプリケーションはないと判断された場合（ステップＳ２０３において、未処理のアプリケーションが選択されなかった場合）、ステップＳ２０７に処理が進められる。ステップＳ２０７において、ページリストが更新される。
【０１７７】
ステップＳ２０７において、アプリケーション呼び出し確率リスト４０４に含まれる全てのアプリケーションについて処理が終了すると、高優先ページリスト２５８と低優先ページリスト２５９が更新される。アプリケーション呼び出し確率リスト４０４の重みを加算していった結果、主記憶装置２０２上の全てのページには２から０の優先度が付与された状態となる。
【０１７８】
例えば全てのアプリケーションがレジューム後にアクセスするページには優先度２が、ＳＮＳアプリケーション４５１のみがアクセスするページには優先度１が、どのアプリケーションもレジューム後にアクセスしないページには優先度０が付与されている状態である。
【０１７９】
全てのページを優先度の高い順に並べていった時、先頭から不揮発性記憶部２１１の容量で収まる範囲、例えば、不揮発性記憶部２１１の容量が１２８MB の場合、優先度の高い順に１２８MB分のページが、最終的に不揮発性記憶部２１１に配置すべきデータとされる。
【０１８０】
ページ優先度推定部４０２は、この範囲のページのうち、揮発性記憶部２１２に存在するページを高優先ページリスト２５８に登録するように高優先ページリスト管理部２５６に指示する。また、ページ優先度推定部４０２は、優先度の低い順に並べていった時、先頭から揮発性記憶部２１２に収まる範囲のページのうち、不揮発性記憶部２１１に存在するページを、低優先ページリスト２５９に登録するように低優先ページリスト管理部２５７に指示する。
【０１８１】
このようにして、高優先ページリスト２５８と低優先ページリスト２５９が更新される。このようなリストの更新が行なわれた後にページの移動が行なわれるが、このページの移動に係わる処理について説明する。
【０１８２】
なお、ページの移動に係わる処理は、リストが更新された後に引き続き行なわれるようにしても良いし、図１０を参照して説明したように、高優先ページリスト２５８または低優先ページリスト２５９で管理されているページの量が、所定の量以上または以下になったときに、開始されるようにしても良い。また開始のタイミングだけでなく、ページの移動速度に関しても、図１０を参照して説明したように、高優先ページリスト２５８または低優先ページリスト２５９で管理されているページの量に応じた速度で行なわれるようにすることができる。
【０１８３】
図１５は、ページの移動に係わる処理について説明するためのフローチャートである。
【０１８４】
ステップＳ３０１において、ページ移動部２５３は、高優先ページリスト２５８を参照し、揮発性記憶部２１２に存在するページのうち最も優先度の高いページを移動対象として選択する。ステップＳ３０２において、ページ移動部２５３は、移動先となる不揮発性記憶部２１１上の空きページ（空き容量）を探す。
【０１８５】
ステップＳ３０３において、不揮発性記憶部２１１に空きページが見つかったか否かが判断される。ステップＳ３０３において、不揮発性記憶部２１１に空きページが見つからないと判断された場合、ステップＳ３０４に処理が進められる。この場合、不揮発性記憶部２１１に空きページが見つからないために、ページの移動ができないので、不揮発性記憶部２１１に空きを作るための処理が実行される。空きページが見つからない場合、不揮発性記憶部２１１上の優先度の低いページを揮発性記憶部２１２に移動することで空きページが確保される。
【０１８６】
ステップＳ３０４において、ページ移動部２５３は、低優先ページリスト２５９を参照し、不揮発性記憶部２１１上の最低優先度のページを選択する。ステップＳ３０５において、ページ移動部２５３は、ステップＳ７０３の処理で選択したページのデータを、揮発性記憶部２１２上の空きページヘコピーする。
【０１８７】
続いてページ移動部２５３は、ページテーブル管理部２５２に指示し、ステップＳ３０４の処理で選択したページを参照していた仮想アドレスが、揮発性記憶部２１２上のコピーされたデータを指すようにページテーブルを更新する。最後に、ステップＳ３０４の処理で選択したコピー元の領域が空き領域にされる。
【０１８８】
このようにして、不揮発性記憶部２１１に空き領域が作り出された場合、または、ステップＳ３０３において、不揮発性記憶部２１１に空き領域があると判断された場合、処理は、ステップＳ３０６に進められる。
【０１８９】
ステップＳ３０６において、ページ移動部２５３は、ステップＳ３０１の処理で選択したページを、不揮発性記憶部２１１上の空きページにコピーする。続いてページ移動部２５３は、ページテーブル管理部２５２に指示し、ステップＳ３０１の処理で選択したページ（不揮発性記憶部２１１にコピーしたページ）を参照していた仮想アドレスが、不揮発性記憶部２１１上のコピーされたデータを指すようにページテーブルを更新する。最後に、ステップＳ３０１の処理で選択されたコピー元の領域が空き領域にされる。
【０１９０】
このようにして、設定された優先度に応じて、ページの移動が行なわれる。このページの移動は、情報処理装置４００が動作中（揮発性記憶部２１２に電力が供給され、動作しているとき）に行なわれる。
【０１９１】
サスペンドの処理は、第１の実施の形態と同じく、図７に示したフローチャートに基づく処理として行うことができる。図７に示したフローチャートの説明は既にしたので、ここでは省略する。
【０１９２】
従来このようなページの移動は行なわれていなかったため、サスペンドの処理が指示されたときに、退避すべきページは、サスペンドの処理が開始された時点で退避されていた。しかしながら、上記したように、本実施の形態によれば、サスペンドの処理が指示されるより前の時点で、ページの退避が行なわれているため、サスペンドの処理が開始され時点では、ほぼページの退避は終了している状態とすることができる。
【０１９３】
このように、本技術によれば、サスペンド時にかかる処理時間を短縮することが可能となる。また、サスペンドの処理時間が短縮されることで、節電の効果を期待することができる。
【０１９４】
＜他の構成について＞
上述した実施の形態においては、ページの優先度が変わるタイミングとして、所定のアプリケーションの起動や終了（画面に表示されているアプリケーションの切り替わり）を例に挙げて説明した。ページの優先度が変わるのは、システムがレジューム後にアクセスするページのパターンが大きく変わるような、特定のイベントが発生した時である。その特定のイベントとして、アプリケーションの起動や画面表示を例に挙げた。
【０１９５】
このほかにも、ページの優先度が変わるイベントとして以下のようなイベントがあり、これらのイベントが発生したときに、ページの優先度が更新されるように構成することも可能である。所定のイベントとして、システムがアプリケーションを管理するために使っているステータスが変化するイベントして、例えば、アプリケーションの起動、終了、実行中、中断中、フォアグラウンド、バックグラウンドなどがある。
【０１９６】
また、アプリケーション自身が内部状態の変化をシステムに伝えるイベント、例えば、モードの切り替え、デバイスの使用の開始や終了宣言などのイベントもある。
【０１９７】
これらのイベントが発生したときに、上述したページの優先度の更新が行なわれるように構成することも可能である。これらの全てのイベントを対象とし、いずれか１つのイベントが発生したときに、ページの優先度の更新が行なわれるように構成することも可能であるし、これらのイベントのうちの１または複数のイベントを予め設定しておき、その設定されているイベントが発生したときに、ページの優先度の更新が行なわれるように構成することも可能である。
【０１９８】
イベントとして、待ち受けモードの開始を例に挙げて説明する。待ち受けモードとは、例えば携帯電話機などで、受信待ちの状態のモードである。アプリケーションが、所定の関数を呼び出し「待ち受けモード」に入ったことを宣言する。この宣言をイベントとする。
【０１９９】
待ち受けモードのときに動作しているアプリケーションは、サスペンド中に定期的にシステムをレジュームさせ、処理するべき情報、例えば新着メールがあるか否かを確認できる機能を有する。したがって、このアプリケーションが使用するページは、レジューム直後にアクセスされる可能性が高い。ページの優先度を決める際、この「待ち受けモード」に入ったアプリケーションが使用しているページは、優先度が高くなるように構成することができる。
【０２００】
次に、イベントとして、所定のデバイスの終了を例に挙げて説明する。アプリケーションが、所定の関数を呼び出し、特定のデバイスの使用を終えたことを宣言する。例えば、写真アップロードを行うアプリケーションがWi-Fiの使用を終えたときに、Wi-Fiに係わるデバイスの使用を終了したことを宣言する。
【０２０１】
このような所定のデバイスの使用の終了の宣言をイベントとする。このような宣言をしたアプリケーションは、しばらくの間、アクティブに処理を行わないと判断できる。したがって、このアプリケーションが使用するページが、レジューム直後に使われる可能性は低い。よって、ページの優先度を決める際、このようなアプリケーションが使っているページの優先度は、低く設定されるように構成することができる。
【０２０２】
さらに、ページの優先度の他の設定の仕方について説明する。例えば、アプリケーションが実行される確率を変化させるような、システムの外部や内部の環境変化が発生したときに、優先度が更新されたり、そのアプリケーションが使用するページの優先度が高く設定されたりするように構成することができる。システムの外部や内部の環境変化とは、例えば、位置の変化、システム設定の変化、ネットワーク状態の変化、時間の変化などがある。
【０２０３】
まず位置の変化をイベントとして捉え、ページの優先度が設定される場合について説明する。位置情報と、よく使用されるアプリケーションが紐付いているとする。例えば、情報処理装置４００が、携帯端末であり、会社や家で使用される端末であるとする。例えば、情報処理装置４００が会社で使用されているときには、文字入力に関するアプリケーションが起動され、家で使用されているときにはインターネット閲覧のためのアプリケーションが起動されていることが多いといったように、情報処理装置４００の位置により、起動されているアプリケーションにある程度の法則が見いだされることがある。
【０２０４】
このような法則がある場合、位置情報の変化をイベントとし、ページの優先度が設定されるように構成することができる。例えば、ＧＰＳ（Global Positioning System）を用い、ＧＰＳから位置情報を取得できるように構成する。そして、ＧＰＳから取得された位置情報に基づき、その位置情報が示す位置に紐付けられているアプリケーションが、近い将来実行される可能性が高いと推定できる。そこで、ページの優先度を決める際、このアプリケーションが使用しているページの優先度を高くする。逆に、所定のアプリケーションをよく使う地域から外れたと判断されるとき、そのアプリケーションが使用しているページの優先度が低く設定し直されるように構成することができる。
【０２０５】
次に、システムの設定の変更をイベントとして捉え、ページの優先度が設定される場合について説明する。ユーザによるモード変更をイベントとする。例えば、ユーザが設定で「カメラ高速起動モード」に切り替えたとする。このカメラ高速起動モードのときには、レジューム直後でもカメラに関するアプリケーションだけは高速に起動できるように、常に不揮発性記憶部２１１に留めることにする。モードが「カメラ高速起動モード」の場合は、ページの優先度を決める際、カメラに関するアプリケーションが使用するページの優先度が高く設定されるように構成することができる。
【０２０６】
次に、ネットワーク状態の変化をイベントとして捉え、ページの優先度が設定される場合について説明する。ネットワークへの接続や切断をイベントとする。例えば、システムのネットワーク接続が切断されたとする。このときネットワークを介する通信はできない状態となるので、そのようなネットワークを介する通信を必要とするアプリケーションは動作することができない。このような状態のときに、ページの優先度が判定される場合、通信を必要とするアプリケーションが使用するページの優先度が低く設定されるように構成することができる。
【０２０７】
このようなページの優先度を更新するタイミングや、ページの優先度の設定の仕方で情報処理装置４００を構成することも可能である。
【０２０８】
さらに、アプリケーションから明示的に、不揮発性記憶部２１１に置きたいページや、揮発性記憶部２１２に置きたいページを指定できる仕組みを設けることも可能である。例えば、所定の関数を呼び出して、初期化に時間がかかる領域を不揮発性記憶部２１１に固定したり、バッファとして使用していて中身が消えても良い領域を揮発性記憶部２１２に置きたいと指定したりすることができるように構成することができる。
【０２０９】
さらに特定の期間、ページの移動の処理を行わないようにアプリケーション側から指示できるようにしても良い。例えば、所定のアプリケーションが、広範囲のメモリにアクセスするようなとき、所定の関数を呼び出して、ページの移動の処理の一時停止を依頼できるように構成することもできる。
【０２１０】
このように、本技術によれば、サスペンド時にかかる処理時間を短縮することが可能となる。また、サスペンドの処理時間が短縮されることで、節電の効果を期待することができる。
【０２１１】
また本技術によれば、レジューム後に必要となるページ（データ）は、不揮発性記憶部２１１に記憶されているため、復帰までにかかる時間を短縮することが可能となる。
【０２１２】
また復帰直後も、既に、レジューム時に必要とされる可能性が高いページが不揮発性記憶部２１１に記憶されているため、２次記憶装置２０３から揮発性記憶部２１２にページを移動させるという処理が必要なく、復帰後、即座に動作を開始できる。よって復帰直後の動作速度を速めることが可能となる。
【０２１３】
また仮に、２次記憶装置２０３から揮発性記憶部２１２にページを移動させる処理を行う必要があっても、２次記憶装置２０３に記憶されているページは、レジューム時に必要とされる可能性が低いページであるため、不揮発性記憶部２１１に記憶されているページを用いて処理を開始させることができる。そして、処理が開始された後に、必要に応じて２次記憶部２０３から揮発性記憶部２１２にページを移動させるようにしても、処理が滞ることはない。よって、復帰直後の動作速度を速めることが可能となる。
【０２１４】
また本技術によれば、不揮発性記憶部２１１に、動作中のアプリケーションが必要とするページが記憶されているため、揮発性記憶部２１２の動作を停止することが可能となる。揮発性記憶部２１２の動作を停止することで、揮発性記憶部２１２への電力の供給を停止することができるため、省電力を実現することが可能となる。すなわち、本技術を適用して、省電力モードを実現することも可能となる。
【０２１５】
＜記録媒体について＞
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０２１６】
図１６は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、ＣＰＵ（Central Processing Unit）１００１、ＲＯＭ（Read Only Memory）１００２、ＲＡＭ（Random Access Memory）１００３は、バス１００４により相互に接続されている。バス１００４には、さらに、入出力インタフェース１００５が接続されている。入出力インタフェース１００５には、入力部１００６、出力部１００７、記憶部１００８、通信部１００９、およびドライブ１０１０が接続されている。
【０２１７】
入力部１００６は、キーボード、マウス、マイクロフォンなどよりなる。出力部１００７は、ディスプレイ、スピーカなどよりなる。記憶部１００８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１００９は、ネットワークインタフェースなどよりなる。ドライブ１０１０は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア１０１１を駆動する。
【０２１８】
以上のように構成されるコンピュータでは、ＣＰＵ１００１が、例えば、記憶部１００８に記憶されているプログラムを、入出力インタフェース１００５およびバス１００４を介して、ＲＡＭ１００３にロードして実行することにより、上述した一連の処理が行なわれる。
【０２１９】
コンピュータ（ＣＰＵ１００１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１０１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０２２０】
コンピュータでは、プログラムは、リムーバブルメディア１０１１をドライブ１０１０に装着することにより、入出力インタフェース１００５を介して、記憶部１００８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１００９で受信し、記憶部１００８にインストールすることができる。その他、プログラムは、ＲＯＭ１００２や記憶部１００８に、予めインストールしておくことができる。
【０２２１】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行なわれるプログラムであっても良いし、並列に、あるいは呼び出しが行なわれたとき等の必要なタイミングで処理が行なわれるプログラムであっても良い。
【０２２２】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２２３】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０２２４】
なお、本技術は以下のような構成も取ることができる。
【０２２５】
（１）
主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
情報処理装置。
（２）
前記不揮発性記憶部に置かれるページは、レジューム後にアクセスされる可能性の高いページである
前記（１）に記載の情報処理装置。
（３）
レジューム後にアクセスする可能性が高いページの優先度を管理する第１のリストと、レジューム後にアクセスする可能性が低いページの優先度を管理する第２のリストをさらに備える
前記（１）または（２）に記載の情報処理装置。
（４）
前記第１のリストは、前記揮発性記憶部に記憶されているが、前記不揮発性記憶部に移動させる優先度が高いページを管理するリストであり、
前記第２のリストは、前記不揮発性記憶部に記憶されているが、前記揮発性記憶部に移動させる優先度が高いページを管理するリストである
前記（３）に記載の情報処理装置。
（５）
前記第１のリストと前記第２のリストは、システムの状態が変化するイベントが発生したときに更新される
前記（３）または（４）に記載の情報処理装置。
（６）
前記イベントは、所定のアプリケーションの起動または終了、所定のデバイスの使用の開始または終了、所定のモードへの切り替え、位置情報の変化、ネットワークへの接続状態の変化のうちの少なくとも１つのイベントである
前記（５）に記載の情報処理装置。
（７）
前記所定のタイミングとは、前記第１のリストと前記第２のリストが更新されたときである
前記（５）または（６）に記載の情報処理装置。
（８）
所定のアプリケーションが他のアプリケーションを呼び出す確率を管理する第３のリストと、所定のアプリケーションがレジューム後に必要とするページの情報を管理するプロファイルをさらに備え、
第１のアプリケーションによる画面が、第２のアプリケーションによる画面に切り換えられたとき、前記プロファイルが参照され、前記第２のアプリケーションがレジューム後に必要とするページが確認され、確認された前記ページに対して、前記第３のリストが参照され、前記第２のアプリケーションに係わる確率が付与され、
前記ページに付与された前記確率の値に基づき、前記第１のリストと前記第２のリストがそれぞれ更新される
前記（３）乃至（７）のいずれかに記載の情報処理装置。
（９）
前記第１のリストまたは前記第２のリスト）に記載されているページの量に応じて、前記不揮発性記憶部と前記揮発性記憶部との間での前記ページの移動頻度を変化させる
前記（３）乃至（８）に記載の情報処理装置。
（１０）
主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
ステップを含む情報処理方法。
（１１）
主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置を制御するコンピュータに、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
ステップを含む処理を実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
【符号の説明】
【０２２６】
２００  情報処理装置，２０３  ２次記憶装置，  ２１１  不揮発性記憶部，  ２１２  揮発性記憶部，  ２５１  サスペンド指示部，  ２５２  ページテーブル管理部，  ２５３  ページ移動部，  ２５４  ページ移動指示部，  ２５５  ページ優先度推定部，  ２５６  高優先ページリスト管理部，  ２５７  低優先ページリスト管理部，  ２５８  高優先ページリスト，  ２５９  低優先ページリスト，  ４０１  ページ移動指示部，  ４０２  ページ優先度推定部，  ４０３  表示中アプリケーション監視部，  ４０４  アプリケーション呼び出し確率リスト，  ４０５  アプリケーションプロファイル
【図１】
2014194634.tif 000003
【図２】
2014194634.tif 000004
【図３】
2014194634.tif 000005
【図４】
2014194634.tif 000006
【図５】
2014194634.tif 000007
【図６】
2014194634.tif 000008
【図７】
2014194634.tif 000009
【図８】
2014194634.tif 000010
【図９】
2014194634.tif 000011
【図１０】
2014194634.tif 000012
【図１１】
2014194634.tif 000013
【図１２】
2014194634.tif 000014
【図１３】
2014194634.tif 000015
【図１４】
2014194634.tif 000016
【図１５】
2014194634.tif 000017
【図１６】
2014194634.tif 000018