JP2014194634A - 情報処理装置、情報処理方法、並びに記録媒体 - Google Patents

情報処理装置、情報処理方法、並びに記録媒体 Download PDF

Info

Publication number
JP2014194634A
JP2014194634A JP2013070440A JP2013070440A JP2014194634A JP 2014194634 A JP2014194634 A JP 2014194634A JP 2013070440 A JP2013070440 A JP 2013070440A JP 2013070440 A JP2013070440 A JP 2013070440A JP 2014194634 A JP2014194634 A JP 2014194634A
Authority
JP
Japan
Prior art keywords
page
storage unit
list
priority
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013070440A
Other languages
English (en)
Inventor
Tomohiro Katori
知浩 香取
Sei Iwasaki
聖 岩▲崎▼
Hiroki Nagahama
弘樹 長濱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2013070440A priority Critical patent/JP2014194634A/ja
Priority to US14/193,090 priority patent/US20140297927A1/en
Publication of JP2014194634A publication Critical patent/JP2014194634A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】サスペンドの処理に係る時間を短縮する。
【解決手段】主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、所定のタイミングで、不揮発性記憶部と揮発性記憶部との間で、ページに付与された優先度に基づき、ページを移動する。不揮発性記憶部に置かれるページは、レジューム後にアクセスされる可能性の高いページである。不揮発性記憶部には、サスペンドの処理が開始される前の時点で、レジューム後にアクセスされる可能性の高いページの大半が記憶されている。よって、サスペンドの処理時に、退避するページ数が少なく、サスペンドの処理に係る時間を短縮することができる。本技術は、バッテリ駆動型のパーソナルコンピュータなどの形態端末に適用できる。
【選択図】図4

Description

本技術は、情報処理装置、情報処理方法、並びに記録媒体に関する。詳しくは、サスペンドなどの状態に移行する際の時間を短縮することができる情報処理装置、情報処理方法、並びに記録媒体に関する。
デスクトップ型、ノートブック型、タブレット型などの各種パーソナルコンピュータや、スマートフォンやモバイル端末機などが普及している。ノートブック型やタブレット型などのパーソナルコンピュータやモバイル端末機などは、内蔵したバッテリでも駆動できるバッテリ駆動型であり、持ち運びが容易にできる構造とされている。
バッテリの駆動時間は限られており、バッテリでの駆動時間を長くするための節電のためのさまざまな工夫が提案されている。モバイル端末機に限らず、デスクトップ型のパーソナルコンピュータにおいても節電はなされている。
節電の仕方の1つとして、システムの使用状況が低下したことに応答してシステムの一部または全体への電力供給を適宜低下若しくは遮断する方法が考えられる。ただし、電源を遮断することによりタスクが中断されることから、電源再投入時に中断した時点からタスクを再開できるように、電源を遮断する前にシステムの状態情報を退避し、電源再投入時に退避した状態情報を復元する必要がある。システムの状態情報を退避してタスクを中断する動作のことを「サスペンド」と称し、状態情報を復元してタスクを再開する動作のことを「レジューム」と称する。
サスペンド・レジューム機能を実現するために、2通りの方法が挙げられる。1つは、端末の電源切断前後で揮発性の主記憶装置などに電源を供給し続けてシステムの状態情報を保持する方式である。また、もう1つは、主記憶装置などに展開されているシステムの状態情報を電源切断時に不揮発性の2次記憶装置に退避し、電源投入時に退避した状態情報を主記憶装置などに復元する方式である。
前者の方式では、バッテリ・バックアップされた揮発性の主記憶装置などにシステムの状態情報を保存する。このため、端末の退避・復帰の処理が非常に高速であるが、端末の停止中も主記憶装置による記憶保持動作のために電力を消費するため、節電の効果は低い。一方、後者の場合、タスク再開に必要なシステムの状態情報を不揮発性の2次記憶装置で保存するため、端末内のほとんど全てのコンポーネントの電源遮断することができ、節電の効果が高い。
しかしながら、2次記憶装置としてのハードディスクドライブ(あるいはフラッシュメモリ)は、一般に主記憶装置よりもアクセス速度が低い。主記憶装置上のメモリイメージを2次記憶装置に格納したり展開したりする処理動作が含まれると、多くの時間を要するという欠点がある。
このように、システムの主記憶装置は揮発性だったため、主記憶装置を含むシステムの全電源を遮断して休止(サスペンド)状態に移行するためには、主記憶装置の内容を2次記憶装置に退避する必要があった(サスペンド・トゥ・ディスク若しくはハイバネーションと呼ばれる処理)。
これに対し、主記憶装置の一部に不揮発性のデバイスを用いることで、不揮発性記憶部のデータ退避を不要とし、サスペンド処理に必要となる時間を短くする手法が提案されている。(例えば、特許文献1参照)
特開2004−362426
特許文献1においては、レジューム処理に必要なページに優先度を付け、サスペンド時に優先度の高い順に不揮発性記憶部にページを移動し、不揮発性記憶部に記憶できずにあふれ出たページを2次記憶装置に移動する。そしてレジューム処理時には、2次記憶装置に記憶されたページを揮発性記憶部に読み出すことで行なわれる。
しかしながら、特許文献1においては、揮発性記憶部から不揮発性記憶部や2次記憶装置にページをサスペンド時に行うため、そのページの退避にかかる時間を短縮することは困難である。例えば、揮発性記憶部に置かれているページが多い場合、サスペンドの処理時に、移動させるページが多く、時間がかかってしまうため、ページの退避にかかる時間を短縮することは困難となる。
サスペンドの処理に係る時間を短縮することで、節電などの効果も望めるため、サスペンドの処理に係る時間の短縮が望まれている。
本技術は、このような状況に鑑みてなされたものであり、サスペンドの処理に係る時間を短縮することができるようにするものである。
本技術の一側面の情報処理装置は、主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する。
前記不揮発性記憶部に置かれるページは、レジューム後にアクセスされる可能性の高いページであるようにすることができる。
レジューム後にアクセスする可能性が高いページの優先度を管理する第1のリストと、レジューム後にアクセスする可能性が低いページの優先度を管理する第2のリストをさらに備えるようにすることができる。
前記第1のリストは、前記揮発性記憶部に記憶されているが、前記不揮発性記憶部に移動させる優先度が高いページを管理するリストであり、前記第2のリストは、前記不揮発性記憶部に記憶されているが、前記揮発性記憶部に移動させる優先度が高いページを管理するリストであるようにすることができる。
前記第1のリストと前記第2のリストは、システムの状態が変化するイベントが発生したときに更新されるようにすることができる。
前記イベントは、所定のアプリケーションの起動または終了、所定のデバイスの使用の開始または終了、所定のモードへの切り替え、位置情報の変化、ネットワークへの接続状態の変化のうちの少なくとも1つのイベントであるようにすることができる。
前記所定のタイミングとは、前記第1のリストと前記第2のリストが更新されたときであるようにすることができる。
所定のアプリケーションが他のアプリケーションを呼び出す確率を管理する第3のリストと、所定のアプリケーションがレジューム後に必要とするページの情報を管理するプロファイルをさらに備え、第1のアプリケーションによる画面が、第2のアプリケーションによる画面に切り換えられたとき、前記プロファイルが参照され、前記第2のアプリケーションがレジューム後に必要とするページが確認され、確認された前記ページに対して、前記第3のリストが参照され、前記第2のアプリケーションに係わる確率が付与され、前記ページに付与された前記確率の値に基づき、前記第1のリストと前記第2のリストがそれぞれ更新されるようにすることができる。
前記第1のリストまたは前記第2のリストに記載されているページの量に応じて、前記不揮発性記憶部と前記揮発性記憶部との間での前記ページの移動頻度を変化させるようにすることができる。
本技術の一側面の情報処理方法は、主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動するステップを含む。
本技術の一側面の記録媒体は、主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置を制御するコンピュータに、所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動するステップを含む処理を実行させるためのプログラムを記録している。
本技術の一側面の情報処理装置、情報処理方法、並びに記録媒体においては、主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、所定のタイミングで、不揮発性記憶部と揮発性記憶部との間で、ページに付与された優先度に基づき、ページの移動が行なわれる。
本技術の一側面によれば、サスペンドの処理に係る時間を短縮することができる。
従来の情報処理装置の一例を示す図である。 従来のサスペンド時の処理について説明するためのフローチャートである。 本技術を適用した情報処理装置の一実施の形態の構成を示す図である。 情報処理装置の機能を示す図である。 ページの移動について説明するための図である。 ページの移動について説明するための図である。 サスペンド時の処理について説明するためのフローチャートである。 ページの優先度の更新のタイミングについて説明するための図である。 情報処理装置の他の構成を示す図である。 ページの移動速度について説明するための図である。 ページの優先度の設定の仕方について説明するための図である。 アプリケーションプロファイルについて説明するための図である。 ページの優先度の設定の仕方について説明するためのフローチャートである。 優先度の更新の処理について説明するためのフローチャートである。 ページ移動の指示について説明するためのフローチャートである。 記録媒体について説明するための図である。
以下に、本技術を実施するための形態(以下、実施の形態という)について説明する。なお、説明は、以下の順序で行う。
1.従来のサスペンドに係わる処理
2.本技術を適用した第1の実施の形態における情報処理装置の構成
3.第1の実施の形態におけるサスペンドの処理
4.第2の実施の形態における情報処理装置の構成
5.第2の実施の形態における優先度の付与に係わる処理
6.他の構成について
7.記録媒体について
<従来のサスペンドに係わる処理>
本技術と従来技術との差異を明確にするために、まず従来技術における情報処理装置と、その情報処理装置におけるサスペンド時の処理について説明する。図1は、従来技術における情報処理装置の構成を示す図であり、図2は、図1に示した情報処理装置におけるサスペンド時の処理について説明するためのフローチャートである。
図1に示した情報処理装置100は、CPU(Central Processing Unit)101、主記憶装置102、2次記憶装置103、入出力部104、およびシステムバス105を備えている。
CPU101は、オペレーティングシステム(OS)の制御下で、各種プログラムを実行する。CPU101は、データ信号線、アドレス信号線、コントロール信号線などからなる共通信号伝送路であるシステムバス105を介して情報処理装置100内の各部を制御する。
主記憶装置102は、CPU101が実行する各プログラム(OSやアプリケーションプログラムなど)をロードしたり、CPU101が作業領域として用いたりするために使用される。2次記憶装置103は、ハードディスクドライブ(HDD)やフラッシュメモリなどの不揮発性の記憶部で構成される。2次記憶装置103は、主記憶装置102に比べてアクセス速度は低速であるが、大容量であり、主記憶装置102を補助するために装備されている。
HDDは、磁気ディスクを固定的に搭載した外部記憶部であり、記憶容量やデータ転送速度などの点でCD/DVDなど他のディスク型記憶装置よりも優れている。通常、HDDには、CPU101が実行すべきオペレーティングシステムのプログラムコードや、アプリケーションプログラム、デバイスドライバなどが不揮発的に格納されている。
入出力部104には、キーボードやマウスなどのユーザ入力装置、ディスプレイやプリンタなどの出力装置、ネットワーク装置やその他の外部機器との接続インタフェースなどを含む。ディスプレイ上の描画データは、一旦ビデオRAM(VRAM)(不図示)に一旦書き込まれた後、表示出力される。
システムバス105上の各デバイスには、I/O空間上の固有のアドレス(I/Oアドレス)が割り振られており、I/Oアドレスの指定によって各デバイスへのアクセスが実現される。また、各デバイスのバス・インターフェースはI/Oレジスタ(不図示)を備えており、デバイスへの書き込みデータやコマンド、デバイスからの読み出しデータ、デバイス状態などは一旦I/Oレジスタに書き込まれた後、バス転送が行なわれる。
なお、図1に示した情報処理装置100の構成は、以下の説明に必要な構成を示し、他の機能を実現するための構成については図示していない。
図2のフローチャートを参照し、図1に示した情報処理装置100におけるサスペンド時の処理について説明する。
ステップS11において、管理しているページテーブルが確認され、主記憶装置102を使用している仮想ページがあるかが確認される。ステップS12において、ステップS11における確認の結果、主記憶装置102を使用中の仮想ページがあるか否かが判断される。ステップS12において、主記憶装置102を使用中の仮想ページがあると判断された場合、ステップS13に処理が進められる。主記憶装置102を使用している仮想ページが見つかった場合、そのページを2次記憶装置103へ退避するための処理が開始される。
ステップS13において、主記憶装置102を使用している仮想ページを退避させるために、2次記憶装置103の空き領域が確保される。例えば、オペレーティングシステムのスワップ管理機能が、スワップ領域から1ページ分の未使用領域を探し出すことで、2次記憶装置103の空き領域が確保される。
ステップS14において、確保された2次記憶装置103の空き領域に、主記憶装置102を使用中のページが退避される。例えば、前述のスワップ管理機能が、確保した空き領域にページをコピーすることで行なわれる。
ステップS15において、ページテーブルが更新され、退避されたページをマッピングしている仮想アドレスが無効化される。また、退避されたページが解放され、空き領域とされる。
ステップS11乃至S15の処理が繰り返されることで、主記憶装置102を使用しているページがなくなるまで繰り返し行なわれることで、主記憶装置102を使用中のページの退避が行なわれる。
そしてステップS12において、主記憶装置102を使用中のページはないと判断された場合、ステップS16に処理が進められ、システムの電源が遮断される。
このようにしてサスペンド時の処理が行なわれ、レジューム時には、退避されたデータが、2次記憶装置103から主記憶装置102に戻されることで、システムの電源が遮断される前の状態に復帰される。
このようにしてサスペンド時の処理が行なわれるため、サスペンドの処理が開始されるときに、主記憶装置102を使用しているデータ量が多いと、2次記憶装置103へのデータの退避にかかる時間が長くなる。すなわち、ステップS13やステップS14の処理が繰り返し行なわれると、サスペンドの処理が終了するまでに時間がかかってしまう。
例えば、ユーザが、サスペンドを指示し、電源が遮断されるのを確認するような場合、指示から電源が遮断されるまでの時間が長くなり、ユーザがいらついたりしてしまう可能性がある。また、ユーザが間違ってサスペンドを指示してしまったような場合、サスペンドが終了した後、レジュームが指示され、サスペンドが開始される前の状態に復帰後、正しい指示が出されることになるが、このような処理がなされる間の時間がかかってしまい、上記した場合と同じく、ユーザがいらついたりしてしまう可能性がある。
また、情報処理装置100を利用しない時間を、サスペンドの状態とすることで、節電効果を期待できるが、サスペンドの処理が終了するまでの時間がかかると、その節電効果も薄れてしまう。このようなことから、サスペンドそのものが利用されなくなる可能性もある。よって、サスペンドにかかる時間が短縮されることにより、これらの可能性を低くすることができる。そこで、以下に、サスペンドの処理に係る時間を短縮することができる本技術の実施の形態について説明する。
<本技術を適用した第1の実施の形態における情報処理装置の構成>
図3は、本技術を適用した第1の実施の形態における情報処理装置のハードウエアの構成を示す図である。図3に示した情報処理装置200は、CPU201、主記憶装置202、2次記憶装置203、入出力部204、およびシステムバス205を備えている。また、図2に示した情報処理装置200の主記憶装置202は、不揮発性記憶部211と揮発性記憶部212を備えている。
情報処理装置200は、例えば、デスクトップ型、ノートブック型、タブレット型などの各種パーソナルコンピュータや、スマートフォンやモバイル端末機などである。
CPU201は、オペレーティングシステム(OS)の制御下で、各種プログラムを実行する。CPU201は、データ信号線、アドレス信号線、コントロール信号線などからなる共通信号伝送路であるシステムバス205を介して情報処理装置200内の各部を制御する。
主記憶装置202は、CPU201が実行する各プログラム(OSやアプリケーションプログラムなど)をロードしたり、CPU201が作業領域として用いたりするために使用される。2次記憶装置203は、ハードディスクドライブ(HDD)やフラッシュメモリなどの不揮発性の記憶部で構成される。2次記憶装置203は、主記憶装置202に比べてアクセス速度は低速であるが、大容量であり、主記憶装置202を補助するために装備されている。
入出力部204には、キーボードやマウスなどのユーザ入力装置、ディスプレイやプリンタなどの出力装置、ネットワーク装置やその他の外部機器との接続インタフェースなどを含む。ディスプレイ上の描画データは、一旦ビデオRAM(VRAM)(不図示)に一旦書き込まれた後、表示出力される。
システムバス205上の各デバイスには、I/O空間上の固有のアドレス(I/Oアドレス)が割り振られており、I/Oアドレスの指定によって各デバイスへのアクセスが実現される。また、各デバイスのバス・インターフェースはI/Oレジスタ(不図示)を備えており、デバイスへの書き込みデータやコマンド、デバイスからの読み出しデータ、デバイス状態などは一旦I/Oレジスタに書き込まれた後、バス転送が行なわれる。
なお、図2に示した情報処理装置200の構成は、以下の説明に必要な構成を示し、他の機能を実現するための構成については図示していない。
図1に示した情報処理装置100と図3に示した情報処理装置200を比較する。図1に示した従来の情報処理装置100における主記憶装置102は、揮発性記憶部で構成されているのに対し、図3に示した情報処理装置200は、主記憶装置202が不揮発性記憶部211と揮発性記憶部212から構成されている点が異なる。
不揮発性記憶部211は、主記憶装置202のうち、情報処理装置200の電源を遮断してもデータが消えない領域である。具体的にはMRAMやReRAMなどの不揮発性メモリ素子を使ったデバイスを用いても良い。
MRAM(Magnetic RAM)は、トンネル磁気抵抗効果を利用したTMR(Tunneling Magneto Resistance)素子で構成され、電子の電荷ではなく電子のスピンで情報を保持することができる。MRAMは、書き換え/読み出しなどのアクセス速度、集積度、消費電力、ビット単価などの点で主記憶装置202としての条件をほぼ満足する他、不揮発性であるという特徴を持つ。
また、ReRAM(Resistance RAM)は、電圧の印加による電気抵抗の変化を利用した不揮発性メモリであり、電圧で書き換えるため(電流が微量で)消費電力が小さい、セル面積が小さく、高密度化が可能であるという特徴があり、MRAM同様に主記憶装置としての条件をほぼ満足する。よって、具体的には、MRAMやReRAMなどの不揮発性メモリ素子を使ったデバイスを主記憶装置202の不揮発性記憶部211に用いることができるが、一例であり、限定を示す記載ではない。
また主記憶装置202の不揮発性記憶部211として、DRAM(Dynamic Random Access Memory)などの揮発性メモリ素子を用いたデバイスに、バックアップ用の電池を付加して実現することも可能である。
不揮発性記憶部211に対し、揮発性記憶部212は、主記憶装置202のうち、情報処理装置200の電源を遮断したときにデータが消えてしまう領域である。
図4は、図3に示したハードウエアの構成を有する情報処理装置200の機能ブロック図である。図4に示した情報処理装置200は、ハードウエアの構成と、CPU201が所定のプログラムを実行することで実現される機能を合わせて図示してある。
図4に示した情報処理装置200は、不揮発性記憶部211、揮発性記憶部212、サスペンド指示部251、ページテーブル管理部252、ページ移動部253、ページ移動指示部254、ページ優先度推定部255、高優先ページリスト管理部256、低優先ページリスト管理部257、高優先ページリスト258、および低優先ページリスト259を備える。
不揮発性記憶部211と揮発性記憶部212は、図3に示した不揮発性記憶部211と揮発性記憶部212である。
サスペンド指示部251は、ユーザが入出力部204(図3)を操作してサスペンドを指示したとき、サスペンド時に処理を行う箇所に対し、サスペンド処理の開始を通知する。
ページテーブル管理部252は、物理アドレスと仮想アドレスのマッピングを行うためのページテーブルを管理する。ページテーブルは、MMU(Memory Management Unit;メモリ管理ユニット)が物理アドレスと仮想アドレスを変換するために参照するテーブルであり、仮想アドレス空間毎に、複数存在する。ページ移動部253がページを移動した際、その移動元と移動先の物理アドレスを受け取り、その物理アドレスをマッピングしているページテーブルのデータを更新する。サスペンド指示部251よりサスペンド処理開始の通知を受け取った際は、揮発性記憶部212をマッピングしている仮想アドレスを無効化する。
ページ移動部253は、ページ移動指示部254に指示されたタイミングで、不揮発性記憶部211と揮発性記憶部212の間でページを移動する。高優先ページリスト258で管理されるページを不揮発性記憶部211の空き領域に移動する。高優先ページを移動するための空き領域がないときは、低優先ページリスト259で管理されるページを揮発性記憶部212に移動し、不揮発性記憶部211に空き領域を作る。
ページ移動指示部254は、ページ移動部253に対してページの移動を指示する。ページの移動は情報処理装置200の通常動作中に行なわれるため、主機能に大きな悪影響を及ぼさないようなタイミングで行なわれる。例えば、CPU201(図3)の使用率が一定以下の場合にページ移動が行なわれる。
ページ優先度推定部255は、主記憶装置202に存在するページの優先度を推定する。ページの優先度が変わるようなイベントが発生した場合、ページの優先度を動的に再計算する。再計算の結果、ページの優先度が変わった場合、高優先ページリスト管理部256と低優先ページリスト管理部257に、それぞれが管理するページリストの更新を指示する。
ページの優先度が変わるのは、システムがレジューム後にアクセスするページのパターンが大きく変わった時である。例えば、新たにアプリケーションが起動した場合、そのアプリケーションは、レジューム後も動作を続ける可能性が高いので、そのアプリケーションが使用するページは優先度が高く設定される。
高優先ページリスト管理部256は、ページ優先度推定部255の指示に基づき、高優先ページリスト258の内容を更新する。高優先ページリスト管理部256は、優先度が高くなったページをリストに加え、優先度が低くなったページをリストから削除する。
低優先ページリスト管理部257は、ページ優先度推定部255の指示に基づき、低優先ページリスト259の内容を更新する。低優先ページリスト管理部257は、優先度が低くなったページをリストに加え、優先度が高くなったページをリストから削除する。
高優先ページリスト258は、揮発性記憶部212に記憶されているページのうち、不揮発性記憶部211に移動するべきページを管理するリストである。不揮発性記憶部211に移動するべきページとは、今後サスペンド・レジューム処理が発生したとき、レジューム直後にアクセスする可能性の高いデータを記憶しているページである。
これらのページが揮発性記憶部212に存在すると、サスペンド処理で主記憶装置202の電源を切る前に、そのデータは2次記憶装置203に退避され、レジューム直後は、主記憶装置202に存在しなくなる。これらのページがレジューム直後に主記憶装置202に存在しない場合、2次記憶装置203からページを読み込む必要が発生し、読み込み終了まで処理を続行できない。
レジューム直後のシステム動作を高速に行うために、これらのページは不揮発性記憶部211にとどめ、レジューム後すぐにアクセス可能にしておく必要がある。すなわちこれらのページは、不揮発性記憶部211に配置すべき優先度が高い。
低優先ページリスト259は、不揮発性記憶部211に記憶されているページのうち、揮発性記憶部212に移動させてもよいページを管理するリストである。揮発性記憶部212に移動させてもよいページとは、今後サスペンド・レジューム処理が発生した時、レジューム直後にアクセスする可能性の低いデータを記憶しているページである。
これらのページはレジューム直後にはアクセスしないので、必要になる時までに2次記憶装置203から主記憶装置202に読み出せば良い。したがって、システムの動作中にページを揮発性記憶部212に移動し、サスペンド処理中に2次記憶装置203へ退避しても、レジューム直後のシステムの動作速度には影響を及ぼさない。すなわちこれらのページは、不揮発性記憶部211に配置すべき優先度が低い。
このような構成を有する情報処理装置200においては、レジューム時に主記憶装置202に記憶する必要があるページは、情報処理装置200が動作中(サスペンドが開始される前)に、不揮発性記憶部211に予め記憶される。よって、サスペンドの処理が終了され、電源が遮断された後も、不揮発性記憶部211に記憶されているページは、記憶状態が維持され、レジューム時に、その記憶されているページを参照して、電源が遮断される前の状態に復帰することができる。
また、サスペンドの処理が開始される前の時点で、不揮発性記憶部211にサスペンド時に退避すべきページが記憶されているため、ページの退避にかかる時間を削減することができ、サスペンド時の処理に係る時間を短縮することができる。
このようなことから、情報処理装置200が動作中に、不揮発性記憶部211と揮発性記憶部212にページが記憶される。この際、レジューム直後にアクセスされる可能性の高いページが不揮発性記憶部211に記憶され、レジューム直後にアクセスされる可能性の低いページが揮発性記憶部212に記憶される。
例えば、サスペンド処理時にページを移動する場合、サスペンド処理の開始時点で設定できる優先度に基づいて、ページが移動されればよい。しかしながら、サスペンドの処理が開始される前の時点、換言すれば、情報処理装置200が動作中にページを移動する場合、優先度は一意に定まらず、状況により変化する。
すなわち、ある時点での優先度に基づきページを移動した後も情報処理装置200は動作を続けるため、サスペンド処理開始時までに優先度が変わる場合がある。このことについて、図5を参照して説明する。
図5は、情報処理装置200が動作中の時刻T1、時刻T2、時刻T3における不揮発性記憶部211と揮発性記憶部212にそれぞれ記憶されているページを模写的に表した図である。
時刻T1のとき、不揮発性記憶部211には、ページ301、ページ302、およびページ303が記憶され、揮発性記憶部212には、ページ304が記憶されている状態である。上記したように、不揮発性記憶部211に記憶されるページは、優先度が高いページであり、時刻T1のときには、ページ301、ページ302、およびページ303の優先度が高いと設定されている状態である。また、揮発性記憶部212に記憶されるページは、優先度が低いページであり、時刻T1のときには、ページ304は、優先度は低いと設定されている状態である。
時刻T2のとき、優先度に変更があり、優先度は高いに設定されていたページ302が、優先度が低いに設定し直され、優先度は低いに設定されていたページ304が、優先度が高いに設定し直されたとする。
例えば、ページ304を利用するアプリケーションが起動されたことにより、ページ304の優先度が低いから高いに変更されたため、揮発性記憶部212から不揮発性記憶部211に記憶先が変更される。このとき、不揮発性記憶部211にページ304を記憶する容量がない場合、ページ302の優先度が高いから低いに変更され、不揮発性記憶部211から揮発性記憶部212に記憶先が変更される。ページ302が、不揮発性記憶部211から揮発性記憶部212に移動されることで、不揮発性記憶部211に空きができるため、その領域にページ304が移動される。
時刻T2において、このようなページの移動が行なわれた後、時刻T3において、新たなアプリケーションが起動され、その新たに起動されたアプリケーションが、ページ302を参照するアプリケーションであったとする。
ページ302は、時刻T2において、優先度が、高いから低いに変更され、揮発性記憶部212に記憶が変更されたが、起動された新たなアプリケーションが参照するページであるため、優先度が再度、低いから高い状態に変更される。この結果、ページ302は、揮発性記憶部212から不揮発性記憶部211に移動され、ページ304は、不揮発性記憶部211から揮発性記憶部212に移動される。
このように、情報処理装置200が動作している状態のときには、アプリケーションの起動や終了などに伴い、ページの優先度も動的に変化する。そのような動的な変化は、高優先ページリスト258と低優先ページリスト259が用いられて、高優先ページリスト管理部256と低優先ページリスト管理部257により管理される。
このような管理について、図6を参照して説明する。主記憶装置202に記憶されるページの優先度は、ページ優先度推定部255により推定される。ページ優先度推定部255の推定に基づいた優先度が、主記憶装置202上のページに付与され、高優先ページリスト258または低優先ページリスト259として管理される。ページ優先度推定部255は、レジューム後のアクセス可能性と、今後の情報処理装置200(システム)の状態変化を考慮してページの優先度を決定する。
高優先ページリスト258は、揮発性記憶部212に置かれている優先度の高いページを管理し、低優先ページリスト259は、不揮発性記憶部211に置かれている優先度の低いページを管理するために設けられている。換言すれば、高優先ページリスト258は、揮発性記憶部212から不揮発性記憶部211に移動すべき優先度が高いページを管理し、低優先ページリスト259は、不揮発性記憶部211から揮発性記憶部212に移動すべき優先度が高いページを管理する。
ページ移動部253は、ページ移動指示部254の指示に基づき、また高優先ページリスト258と低優先ページリスト259を参照し、揮発性記憶部212上の優先度が高いページを、不揮発性記憶部211に移動し、不揮発性記憶部211上の優先度が高いページを、揮発性記憶部212に移動する。
このように、優先度に応じて、優先度が高い、すなわち、レジューム後に必要とされる可能性が高いページが、不揮発性記憶部211に記憶されることで、サスペンド時に、レジューム後に必要とされる可能性が高いページを不揮発性記憶部211に移動するという処理を省略することができる。よって、サスペンドの処理に係る時間を短くすることが可能となる。このことについて、図7のフローチャートを参照して説明する。
<第1の実施の形態におけるサスペンドの処理>
図7は、図3、図4に示した情報処理装置200のサスペンド処理時の処理について説明するためのフローチャートである。サスペンドの処理は、例えば、情報処理装置200の入出力部204が操作され、ユーザによりサスペンドが指示されたときに実行される。
ステップS101において、ページ移動部253は、高優先ページリスト258を確認し、揮発性記憶部212に高優先ページが残っているかを確認する。その確認の結果が用いられ、ステップS102において、揮発性記憶部212に高優先ページが残っているか否かが判断される。
ステップS102において、揮発性記憶部212に高優先ページが残っていると判断された場合、ステップS103に処理が進められる。ステップS103において、揮発性記憶部212に残っていると判断された高優先ページが、不揮発性記憶部211に退避される。
ページ移動部253は、揮発性記憶部212の高優先ページを、不揮発性記憶部211へ移動する。ページ移動部253は、高優先ページを移動するために、不揮発性記憶部211の空き領域を確保する。不揮発性記憶部211に空き領域がない場合、低優先ページリスト259が参照され、低優先ページに設定されているページが不揮発性記憶部211から揮発性記憶部212に移動され、空き領域が作り出される。
ページ移動部253が確保した空き領域に、高優先ページのデータがコピーされる。コピーが完了すると、ページテーブル管理部252は、移動元ページをマッピングしている仮想アドレスが移動先ページを参照するようにページテーブルを更新する。高優先ページリスト管理部256は、移動したページを高優先ページリスト258から削除する。また低優先ページリスト管理部257は、低優先ページリスト259に記載されているページのうち、不揮発性記憶部211の容量を確保するために移動したページがあった場合、そのページを低優先ページリスト259から削除する。
高優先に設定されているページが、揮発性記憶部212から不揮発性記憶部211に移動された後、ステップS101に処理が戻され、それ以降の処理が繰り返される。すなわち、揮発性記憶部212に高優先ページが残っている場合には、そのページを不揮発性記憶部211に移動する処理が繰り返し行なわれる。
一方で、ステップS102において、揮発性記憶部212には高優先ページは残っていないと判断された場合、ステップS104に処理が進められる。ステップS104において、揮発性記憶部212に残っているページ(データ)が、2次記憶装置203に退避される。この退避は、例えば、カーネルのスワップ機構が用いられ、ページが2次記憶装置203にコピー(スワップアウト)される。
このようにして、サスペンド処理時に、揮発性記憶部212に記憶されているページが、不揮発性記憶部211または2次記憶装置203に退避されると、ステップS105において、電源が遮断される。
このようにして、サスペンドの処理が実行される。
ここで、図2に示した従来のサスペンドの処理と、図7に示した本技術によるサスペンドの処理を比較する。図2に示した従来のサスペンドの処理によると、ステップS13において、2次記憶装置103の空き容量が確保され、ステップS14において、主記憶装置102から2次記憶装置103にページがコピーされるという処理が含まれる。
図7に示した本技術によるサスペンドの処理によると、ステップS13とステップS14において実行される処理に該当する処理は、ステップS102、ステップS103、ステップS104である。
従来の技術によれば、ステップS13とステップS14は必ず行なわれる。ステップS14において実行される処理は、アクセス速度の遅い2次記憶装置203への書き込みが発生するため、時間のかかる処理である。
ステップS102とステップS103において、揮発性記憶部212から不揮発性記憶部211に高優先に設定されているページが移動されるが、高優先に設定されているページの大部分は、サスペンドの処理が開始される前の時点で、既に不揮発性記憶部211に記憶されている状態である。
すなわち、上述した実施の形態においては、情報処理装置200の通常動作中に高優先ページが不揮発性記憶部211に移動されているため、サスペンド処理が開始される時には、揮発性記憶部212には基本的に高優先ページは残っていない。よって、通常動作中に高優先ページを移動しきれなかった場合という例外をのぞけば、ステップS102において、揮発性記憶部212には高優先ページは残っていないと判断され、ステップS103の処理は実行されない。
また、通常動作中に高優先ページを移動しきれなかったという例外の場合があるが、この場合は、高優先ページの移動は部分的に進んでいるので、ステップS103における揮発性記憶部212から不揮発性記憶部211にページを移動するという処理が繰り返される回数は少ない。すなわち、例外の場合も、ページの移動回数を減らすことができる。
このようなことから、揮発性記憶部212から不揮発性記憶部211にページを移動するための処理にかかる時間を大幅に短縮することができる。
さらに、ステップS104において、揮発性記憶部212を使用中のページが、2次記憶装置203に退避される処理が実行されるが、ステップS104の処理が実行される時点で、揮発性記憶部212を使用しているページは少ない。よって、ステップS104において、アクセス速度の遅い2次記憶装置203への書き込みが発生したとしても、書き込みするページ数(データ量)が少なく、その書き込みにかかる時間を短縮することができる。
このようなことから、揮発性記憶部212から2次記憶装置203にページを移動するための処理にかかる時間を大幅に短縮することができる。結果として、図7に示したフローチャートに基づくサスペンド処理が開始されてから、終了されるまでの時間を短縮することができる。
さらに、不揮発性記憶部211には、サスペンドの処理が指示された時点で、レジューム時に必要とされる可能性が高いページが記憶されている。よって、レジューム時に、サスペンドの処理が開始される前の時点に復帰するまでにかかる時間を大幅に短縮することができる。
また復帰直後も、既に、レジューム時に必要とされる可能性が高いページが不揮発性記憶部211に記憶されているため、2次記憶装置203から揮発性記憶部212にページを移動させるという処理が必要なく、復帰後、即座に動作を開始できる。よって復帰直後の動作速度を速めることが可能となる。
また仮に、2次記憶装置203から揮発性記憶部212にページを移動させる処理を行う必要があっても、2次記憶装置203に記憶されているページは、レジューム時に必要とされる可能性が低いページであるため、不揮発性記憶部211に記憶されているページを用いて処理を開始させることができる。そして、処理が開始された後に、必要に応じて2次記憶部203から揮発性記憶部212にページを移動させるようにしても、処理が滞ることはない。よって、復帰直後の動作速度を速めることが可能となる。
<第2の実施の形態における情報処理装置の構成>
第1の実施の形態においては、優先度に応じて、情報処理装置200が動作中に、主記憶装置202の不揮発性記憶部211と揮発性記憶部212に記憶することで、サスペンド時の処理時間を短縮することについて説明した。
ところで、図5を参照して説明したように、情報処理装置200が動作中に、ページに対して優先度を付与し、その優先度に応じて不揮発性記憶部211または揮発性記憶部212に記憶させるようにした場合、起動されているアプリケーションなどに応じて、優先度は動的に変化する。すなわち、レジューム後にアクセスするページの優先度を高く設定するだけでは、ページの移動が頻繁に行なわれる可能性があり、ページの移動回数が無駄に増えてしまう可能性がある。
そこで、以下に説明するように、情報処理装置200が動作中であっても、ページの移動が頻繁に行なわれることを防ぎ、ページの移動回数が無駄に増えてしまうことを防ぐことができるようにする。一例として、図8を参照し、アプリケーションの起動や終了をトリガーとして、高優先ページリスト258と低優先ページリスト259が更新される場合について説明する。
ページ優先度推定部255は、システム(情報処理装置200)の状態に応じて動的にページの優先度を推定する。優先度が変化した場合、高優先ページリスト管理部256と低優先ページリスト管理部257に高優先ページリスト258と低優先ページリスト259の更新をそれぞれ指示する。
優先度が変化するタイミングは、レジューム後にアクセスするページのパターンが大きく変わるようなイベントが発生したときである。ここでは、イベントの一例として、アプリケーションの起動または終了をあげ、アプリケーションの起動または終了をキーに優先度を決定される場合を例に挙げて説明を続ける。
図8に示したように、新しいアプリケーションAが起動された場合、そのアプリケーションAは、レジューム後に動作する可能性が高いと推定することができる。よって、アプリケーションAがレジューム後に使用するが、今は揮発性記憶部212に置かれているページが、不揮発性記憶部211に移動される。
このような処理が行なわれるようにするために、高優先ページリスト管理部256は、高優先ページリスト258に、アプリケーションAでレジューム後に使用するページを追加し、低優先ページリスト管理部257は、低優先ページリスト259から、アプリケーションAで使用するページを削除する。
また図8に示したように、起動されていたアプリケーションBが終了された場合、今後一定期間はそのアプリケーションBが動作する可能性は低いと推定できる。よって、アプリケーションBがレジューム後に使用するために不揮発性記憶部211に置いていたページが、揮発性記憶部212に移動される。
このような処理が行なわれるようにするために、高優先ページリスト管理部256は、高優先ページリスト258から、アプリケーションBで使用していたページを削除し、低優先ページリスト管理部257は、低優先ページリスト259に、アプリケーションBで使用していたレジューム後にも使用するページを追加する。
このように、所定のアプリケーションの起動または終了というイベントが発生したときに、高優先ページリスト258や低優先ページリスト259が更新されるように構成した場合、情報処理装置200の構成は、図9に示したような構成となる。ここでは、図4に示した情報処理装置200との差異を付けるために、図9に示す情報処理装置を、情報処理装置400とする。
図9に示した情報処理装置400は、不揮発性記憶部211、揮発性記憶部212、サスペンド指示部251、ページテーブル管理部252、ページ移動部253、高優先ページリスト管理部256、低優先ページリスト管理部257、高優先ページリスト258、低優先ページリスト259、ページ移動指示部401、ページ優先度推定部402、表示中アプリケーション監視部403、アプリケーション呼び出し確率リスト404、およびアプリケーションプロファイル405を備える。
情報処理装置400の不揮発性記憶部211、揮発性記憶部212、サスペンド指示部251、ページテーブル管理部252、ページ移動部253、高優先ページリスト管理部256、低優先ページリスト管理部257、高優先ページリスト258、および低優先ページリスト259は、図4に示した情報処理装置200の該当する部分と同一である。
情報処理装置400のページ移動指示部401とページ優先度推定部402は、図4に示した情報処理装置200のページ移動指示部254とページ優先度推定部255と基本的に同一であるが、参照する部分や指示を出す部分などが異なる。
情報処理装置400の表示中アプリケーション監視部403、アプリケーション呼び出し確率リスト404、およびアプリケーションプロファイル405は、図4に示した情報処理装置200の構成に追加した部分である。
ページ移動指示部401は、高優先ページリスト258を監視し、高優先ページリストに含まれるページの数に応じてページを移動する速度を変更する。具体的には、カーネルスレッドとして実装されるページ移動部の実行開始・停止、およびその実行優先度を変化させる。
例えば、高優先ページリスト258にページが登録された場合、ページ移動部253の実行を開始し、高優先ページリスト258が空になったとき、実行を停止する。ここで、図10を参照し、実行優先度について説明を加える。
図10Aに示したように、ページ移動の実行優先度を変化させるしきい値を、例えば、10メガバイトと定め、高優先ページリスト258に10メガバイト以上のページが含まれているときは、ページ移動部253の実行優先度を上げ、カーネルがより積極的にページ移動処理を実行するようにする。また図10Bに示したように、高優先ページリスト258に含まれるページが10メガバイトより少ない時は、ページ移動部253の実行優先度を下げる。
実行優先度を上げるとは、起動されているアプリケーションと同等に扱い、そのアプリケーションとページ移動処理が、同じ優先度を持ってスケジューリングされるようにすることを意味する。また実行優先度を下げるとは、起動されているアプリケーションの処理を優先的に行うようにし、そのアプリケーションとページ移動処理が、異なる優先度を持ってスケジューリングされるようにすることを意味する。
また実行優先度を下げられているときには、システムの負荷が低くなった時、例えば、起動されているアプリケーション(優先度が高いと設定されているアプリケーション)のCPU201(図3)の使用率が10%以下の時などに、ページ移動処理が実行される。
なお、図9に示した情報処理装置400は、図10Aの場合の構成を示し、ページ移動指示部401は、高優先ページリスト258を参照してページの移動速度を設定する構成を示している。
このように、ページ移動指示部401を設け、ページの移動を行うタイミングを制御する。 このようなページの移動を行うタイミングを制御する理由は以下の通りである。
情報処理装置400が、通常動作中にページ移動を行う理由は、サスペンド時のページ移動を減らすためである。したがって、「サスペンド時に移動させる必要があるページ」が多いほど動作中のページ移動を積極的に行うのが好ましい。そこで、高優先ページリスト258に記載されているページ数(データ量)が大きいときには、積極的にページが移動されるようにする。
仮に、起動されているアプリケーションの処理を考慮せずに、不揮発性記憶部211と揮発性記憶部212との間で、ページの移動が頻繁に行なわれたり、移動されるデータ量が多かったりすると、情報処理装置200の実行速度が低下してしまう可能性がある。例えば、起動されているアプリケーションの処理速度が、不揮発性記憶部211と揮発性記憶部212との間のページの移動の処理により低下してしまう可能性がある。このような処理速度の低下は発生しないのが良い。よって、上記したように、ページ移動指示部401の処理により、適切なタイミングでページ移動処理が行なわれるのが良い。
なお、上述した10メガバイトとは、一例であり、しきい値としての値は、10メガバイトに限定されるものではない。また、高優先ページリスト258に記載されているページのサイズが、一定サイズ以上になったときだけ、ページ移動処理が実行されるようにしたり、所定のサイズを超えたらページ移動処理が優先して実行されるようにしたりするスケジュール方法に変えるようにすることも可能である。
図9に示した情報処理装置400の構成の説明に戻る。ページ優先度推定部402は、 ページの優先度を決定する際、アプリケーション呼び出し確率リスト404とアプリケーションプロファイル405を参照する。ページの優先度の決定方法の詳細は後述する。
表示中アプリケーション監視部403は、画面に表示されているアプリケーションの切り替わりを検知する。ユーザが新しいアプリケーションを起動したり、バックグラウンドで待機していたアプリケーションに画面表示を切り替えたりすることで、画面に表示中のアプリケーションが変化する。表示中アプリケーション監視部403は、画面に表示中のアプリケーションが切り替わった時、ページ優先度推定部402に優先度の更新を指示する。
アプリケーション呼び出し確率リスト404は、所定のアプリケーションが他のアプリケーションを、どの位の確率で呼び出すかの情報を、アプリケーション単位でリスト化したものである。図11に一例を挙げ、アプリケーション呼び出し確率リスト404について説明する。
図11は、SNSアプリケーションの呼び出し確率リストを例とする図である。SNSアプリケーション451は、SNS(social networking service)を利用する際に起動されるアプリケーションであり、社会的ネットワークをインターネット上で構築するサービスを利用できる状態にするためのアプリケーションである。
ブラウザ(browser)452は、コンピュータ上の情報を一定の目的に沿って表示し閲覧に供するソフトウエアであり、画像やテキスト、記録媒体上のファイルなどのブラウザが存在する。閲覧に特化することにより動作を軽快にしたり、利用者の目的に応じたさまざまな閲覧方法を得られたりすることができる。インターネット上のページを閲覧するウェブブラウザが一般的に用いられている。ここでは、ブラウザ452は、ウェブブラウザであるとして説明を続ける。
ギャラリーアプリケーション453は、例えば、写真や動画などを閲覧するときに起動されるアプリケーションである。説明書アプリケーション454は、情報処理装置400の取り扱い説明書であり、紙媒体ではなく、情報処理装置400の入出力部204(図3)としてのディスプレイ(不図示)上で閲覧できる説明書である。
SNSアプリケーション451が起動されているとき、ユーザは、SNSを利用することができる。SNSを利用しているとき、そのSNS内に、ウェブアドレスが記載されていることがある。このウェブアドレスが操作されると、ブラウザ452が起動され、アドレス先のページが閲覧できるように構成されている。このように構成されている場合、SNSアプリケーション451が起動されているときに、SNSアプリケーション451に呼び出されてブラウザ452が起動される可能性は大きい。
このように、所定のアプリケーションから呼び出される可能性があるアプリケーションには、高い値が付与される。図11に示した例では、ブラウザ452には、“0.7”という値が付与されている。
同様に、SNSアプリケーション451が起動されているとき、SNSアプリケーション451からギャラリーアプリケーション453が呼び出される可能性は、中程度であるため、“0.2”との値が付与されている。そして、SNSアプリケーション451が起動されているとき、SNSアプリケーション451から説明書アプリケーション454が呼び出される可能性は、低いため、“0.1”との値が付与されている。
このように、アプリケーション呼び出し確率リスト404は、実行中のアプリケーションから、所定のアプリケーションに遷移する可能性がどの位あるかを重みづけして数値で管理するためのリストである。図11に示した例では、全体の重みの合計が“2”になるように重み付けされている。この場合、SNSアプリケーション451が実行され続ける可能性は高いので、自身への遷移の重みは“1”とされている。
このような重み付けを実行されるアプリケーション単位で行なわれ、リストとして管理される。図11では一例を示しただけだが、例えば、ブラウザ452が起動されているときに、ブラウザ452が呼び出すアプリケーションの重み付けのリスト、ギャラリーアプリケーション453が起動されているときに、ギャラリーアプリケーション453が呼び出すアプリケーションの重み付けのリスト、説明書アプリケーション454が起動されているときに、説明書アプリケーション454が呼び出すアプリケーションの重み付けのリストも、それぞれ用意され、管理されている。
さらに、図11では、SNSアプリケーション451が呼び出すアプリケーションとして、ブラウザ452、ギャラリーアプリケーション453、説明書アプリケーション454の3つのアプリケーションを例示したが、情報処理装置400に記憶されている全てのアプリケーションを対象とし、それぞれのアプリケーションへの遷移する確率が記載されたリストとして管理されている。
このようなアプリケーション呼び出し確率リスト404は、予め作成されていても良いし、学習などにより作成されるようにしても良い。例えば、所定のアプリケーションが起動され、そのアプリケーションから呼び出したアプリケーションがあった場合、その呼び出し回数の累計から、呼び出し確率を算出し、リスト化するようにしても良い。
図9の情報処理装置400の構成の説明に戻る。アプリケーションプロファイル405は、アプリケーションがレジューム直後に必要とするページの情報を、アプリケーション単位でリスト化したものである。レジューム直後に必要とするページは、例えば事前にアプリケーションを実行して、レジューム直後にアクセスするページを記録しておくことで知ることができる。
ここで、アプリケーション毎のレジューム後に必要となるページリストについて、図12を参照して説明する。図12Aを参照するに、アプリケーションが2次記憶装置203に記憶されているファイルにアクセスするとき、通常は主記憶装置202上にファイルのデータがコピーされ、このようなコピーは、ページキャッシュと称される。
例えば、図12Aに示した例では、2次記憶装置203ファイルXのデータのうち、データX−2は不揮発性記憶部211にコピーされ、データX−99は揮発性記憶部212にコピーされている。このようなページキャッシュが行なわれるとき、オペレーティングシステムは、どのファイルのどの位置(オフセット)のデータを読み込んだかを記憶している。
レジューム後にどのページキャッシュが必要になるかを、「ファイル名+必要なデータの範囲」を1レコードとして示す。アプリケーションプロファイル405は、このレコードの集合として記録される。例えば、図12Bに示したように、所定のアプリケーションAに関するリストとして、「ファイルXの3−5」、「ファイルYの2−10」、「ファイルZの1−11」という情報が書き込まれたリストが作成される。
このようなレジューム後に必要なページキャッシュを知る手法としては、例えば、レジューム直後に、どのページキャッシュにアクセスしたかを記録しておく手法がある。他の手法として、既存の手法を適用することも可能である。
<第2の実施の形態における優先度の付与に係わる処理>
このような構成を有する情報処理装置400においては、上記したように、優先度に応じて、ページが不揮発性記憶部211または揮発性記憶部212に記憶される。ここで、ページの優先度の決定に関する処理について、図13、図14を参照して説明する。
ページの優先度が更新される一例として、入出力部204(図3)を構成するディスプレイ(不図示)に表示中のアプリケーションが切り替わったタイミングがある。図13に示したように、表示中アプリケーション監視部403は、ディスプレイに表示されているアプリケーションを監視し、表示されているアプリケーションが切り替わったときに、ページ優先度推定部402に、その切り替わりを通知する。
ページ優先度推定部402は、表示中アプリケーション監視部403からの通知を受けると、優先度の更新を開始する。この更新の処理については図14のフローチャートを参照し後述する。ページ優先度推定部402は、ページの優先度を更新する際、アプリケーション呼び出し確率リスト404とアプリケーションプロファイル405を確認する。
上述したように、アプリケーション呼び出し確率リスト404は、所定のアプリケーションが他のアプリケーションを呼び出す確率をリスト化したものであり、個々のアプリケーション毎に、アプリケーションを呼び出す可能性が定められたリストである。
また、上述したように、アプリケーションプロファイル405は、個々のアプリケーションに、そのアプリケーションがレジューム後に必要とするページのリストである。ページ優先度推定部402は、これらのリストやプロファイルを確認し、各ページの優先度を推定する。
ユーザの操作などで画面に表示されるアプリケーションが切り替えられた場合、主記憶装置202上に存在している、動作中のアプリケーションが確認される。そしてアプリケーションの呼び出し可能性と「レジューム後に必要とするかどうか」に基づいて、ページに優先度が付けられる。
ページの優先度は、そのページをレジューム後必要とするアプリケーションの動作可能性の和に基づいて決定される。例えば、図11を参照して説明したように、画面表示中のアプリケーションの動作可能性を1、そのアプリケーション呼び出すアプリケーションの動作可能性が合計1になるように(可能性大を0.7 可能性中を0.2, 可能性なしを0.1)とする。
結果、ページは、0乃至2の優先度を取る。全てのアプリケーションがレジューム後に必要とするページの優先度は2、ブラウザ452だけが必要とするページの優先度は0.7、説明書アプリケーション454だけが必要とするページは0.1、どのアプリケーションも必要としないが今は主記憶装置202上に載っているページは0となる。
例えば、図13に示したように、SNSアプリケーション451が画面上に表示されているときの優先度が決定される場合、アプリケーションプロファイル405が参照され、ブラウザ452は、ページAとページBがレジューム後に必要なページであると確認される。SNSアプリケーション451が表示されているときに、ブラウザ452が呼び出される確率は、“0.7”であることが、アプリケーション呼び出し確率リスト404から読み出される。その結果、ページAとページBには、それぞれ“0.7”が付与される。
同じく、アプリケーションプロファイル405が参照され、SNSアプリケーション451は、ページAとページCがレジューム後に必要なページであると確認される。SNSアプリケーション451が表示されているときに、SNSアプリケーション451が呼び出される確率は、“1.0”であることが、アプリケーション呼び出し確率リスト404から読み出される。その結果、ページAとページCには、それぞれ“1.0”が付与される。
ページAには、“0.7”と“1.0”が付与されたことになる。よって、ページAの値は、“1.7”となる。これが優先度を決定するときに参照される値となる。同様に、ページBの値は、“0.7”、ページCの値は、“1.0”となる。説明は省略するが、上記した同様の処理が行なわれることにより、ページDの値は、“0.2”となり、ページEの値は、“0.1”となる。
このような結果が得られた場合、値が大きい順に、優先度が高いと設定される。よってこの場合、ページA、ページC、ページB、ページD、ページEの順で、優先度が高いと設定される。このように優先度が設定されたときに、例えばページAが揮発性記憶部212に記憶されていると、不揮発性記憶部211に、最優先で記憶させるべきページであるとして、高優先ページリスト258に書き込まれる。その結果、ページAは、揮発性記憶部212から不揮発性記憶部211に移動される。
このような処理について、再度、図14と図15のフローチャートを参照して説明する。まず図14のフローチャートを参照し、優先度更新の処理について説明する。優先度更新の処理は、上述したように、ディスプレイ上に表示されているアプリケーションが切り替えられたタイミングで行なわれる。
ステップS201において、初期化処理が行なわれる。初期化処理として、主記憶装置202に存在する全てのページの優先度が0に設定される。ステップS202において、表示中アプリケーション監視部403は、現在画面に表示されているアプリケーションを確認し、ページ優先度推定部402に通知する。
ステップS203において、アプリケーション呼び出し確率リスト404から、1つのアプリケーションが選択される。ステップS204において、画面に表示されているアプリケーションのアプリケーション呼び出し確率リスト404に記載されているアプリケーションのうち、未処理のアプリケーションがあるか否かが判断される。
例えば、図13に示した例のように、SNSアプリケーション451による画面が表示されている場合、SNSアプリケーション451に関するアプリケーション呼び出し確率リスト404に記載されているアプリケーションは、SNSアプリケーション451、ブラウザ452、ギャラリーアプリケーション453、および説明書アプリケーション454である。これら4つのアプリケーションのうち、未処理のアプリケーションがあるか否かが、ステップS204において判断される。
ステップS204において、未処理のアプリケーションがあると判断された場合、ステップS205に処理が進められる。ステップS205において、処理対象として選択されたアプリケーションのアプリケーションプロファイル405に含まれるページのうち、主記憶装置202に存在する全てのページが確認される。例えば、図13に示した例の場合、ブラウザ452が処理対象として選択されると、アプリケーションプロファイル405が参照され、ブラウザ452に関するページとして、ページAとページBがあることが確認される。
ステップS206において、ステップS205の処理で確認されたページの優先度に、ステップS203で選択されたアプリケーションの重みが加算される。例えば、図13を参照して説明したように、ブラウザ452が処理対象とされているときには、ページAとページBにそれぞれ“0.7”が付与され、SNSアプリケーション451が処理されているときには、ページAとページCにそれぞれ“1.0”が付与される。仮に既に、ページAに対して、“1.0”が付与されている状態のときに、“0.7”が付与された場合、それらの値が加算され、“1.7”が、ページAの値とされる。
このようなステップS203乃至S206の処理が繰り返され、画面に表示されているアプリケーションのアプリケーション呼び出し確率リスト404に記載されているアプリケーションの全てに対して処理が行なわれることで、全てのページに対して優先度が設定される。
そして、ステップS204において、未処理のアプリケーションはないと判断された場合(ステップS203において、未処理のアプリケーションが選択されなかった場合)、ステップS207に処理が進められる。ステップS207において、ページリストが更新される。
ステップS207において、アプリケーション呼び出し確率リスト404に含まれる全てのアプリケーションについて処理が終了すると、高優先ページリスト258と低優先ページリスト259が更新される。アプリケーション呼び出し確率リスト404の重みを加算していった結果、主記憶装置202上の全てのページには2から0の優先度が付与された状態となる。
例えば全てのアプリケーションがレジューム後にアクセスするページには優先度2が、SNSアプリケーション451のみがアクセスするページには優先度1が、どのアプリケーションもレジューム後にアクセスしないページには優先度0が付与されている状態である。
全てのページを優先度の高い順に並べていった時、先頭から不揮発性記憶部211の容量で収まる範囲、例えば、不揮発性記憶部211の容量が128MB の場合、優先度の高い順に128MB分のページが、最終的に不揮発性記憶部211に配置すべきデータとされる。
ページ優先度推定部402は、この範囲のページのうち、揮発性記憶部212に存在するページを高優先ページリスト258に登録するように高優先ページリスト管理部256に指示する。また、ページ優先度推定部402は、優先度の低い順に並べていった時、先頭から揮発性記憶部212に収まる範囲のページのうち、不揮発性記憶部211に存在するページを、低優先ページリスト259に登録するように低優先ページリスト管理部257に指示する。
このようにして、高優先ページリスト258と低優先ページリスト259が更新される。このようなリストの更新が行なわれた後にページの移動が行なわれるが、このページの移動に係わる処理について説明する。
なお、ページの移動に係わる処理は、リストが更新された後に引き続き行なわれるようにしても良いし、図10を参照して説明したように、高優先ページリスト258または低優先ページリスト259で管理されているページの量が、所定の量以上または以下になったときに、開始されるようにしても良い。また開始のタイミングだけでなく、ページの移動速度に関しても、図10を参照して説明したように、高優先ページリスト258または低優先ページリスト259で管理されているページの量に応じた速度で行なわれるようにすることができる。
図15は、ページの移動に係わる処理について説明するためのフローチャートである。
ステップS301において、ページ移動部253は、高優先ページリスト258を参照し、揮発性記憶部212に存在するページのうち最も優先度の高いページを移動対象として選択する。ステップS302において、ページ移動部253は、移動先となる不揮発性記憶部211上の空きページ(空き容量)を探す。
ステップS303において、不揮発性記憶部211に空きページが見つかったか否かが判断される。ステップS303において、不揮発性記憶部211に空きページが見つからないと判断された場合、ステップS304に処理が進められる。この場合、不揮発性記憶部211に空きページが見つからないために、ページの移動ができないので、不揮発性記憶部211に空きを作るための処理が実行される。空きページが見つからない場合、不揮発性記憶部211上の優先度の低いページを揮発性記憶部212に移動することで空きページが確保される。
ステップS304において、ページ移動部253は、低優先ページリスト259を参照し、不揮発性記憶部211上の最低優先度のページを選択する。ステップS305において、ページ移動部253は、ステップS703の処理で選択したページのデータを、揮発性記憶部212上の空きページヘコピーする。
続いてページ移動部253は、ページテーブル管理部252に指示し、ステップS304の処理で選択したページを参照していた仮想アドレスが、揮発性記憶部212上のコピーされたデータを指すようにページテーブルを更新する。最後に、ステップS304の処理で選択したコピー元の領域が空き領域にされる。
このようにして、不揮発性記憶部211に空き領域が作り出された場合、または、ステップS303において、不揮発性記憶部211に空き領域があると判断された場合、処理は、ステップS306に進められる。
ステップS306において、ページ移動部253は、ステップS301の処理で選択したページを、不揮発性記憶部211上の空きページにコピーする。続いてページ移動部253は、ページテーブル管理部252に指示し、ステップS301の処理で選択したページ(不揮発性記憶部211にコピーしたページ)を参照していた仮想アドレスが、不揮発性記憶部211上のコピーされたデータを指すようにページテーブルを更新する。最後に、ステップS301の処理で選択されたコピー元の領域が空き領域にされる。
このようにして、設定された優先度に応じて、ページの移動が行なわれる。このページの移動は、情報処理装置400が動作中(揮発性記憶部212に電力が供給され、動作しているとき)に行なわれる。
サスペンドの処理は、第1の実施の形態と同じく、図7に示したフローチャートに基づく処理として行うことができる。図7に示したフローチャートの説明は既にしたので、ここでは省略する。
従来このようなページの移動は行なわれていなかったため、サスペンドの処理が指示されたときに、退避すべきページは、サスペンドの処理が開始された時点で退避されていた。しかしながら、上記したように、本実施の形態によれば、サスペンドの処理が指示されるより前の時点で、ページの退避が行なわれているため、サスペンドの処理が開始され時点では、ほぼページの退避は終了している状態とすることができる。
このように、本技術によれば、サスペンド時にかかる処理時間を短縮することが可能となる。また、サスペンドの処理時間が短縮されることで、節電の効果を期待することができる。
<他の構成について>
上述した実施の形態においては、ページの優先度が変わるタイミングとして、所定のアプリケーションの起動や終了(画面に表示されているアプリケーションの切り替わり)を例に挙げて説明した。ページの優先度が変わるのは、システムがレジューム後にアクセスするページのパターンが大きく変わるような、特定のイベントが発生した時である。その特定のイベントとして、アプリケーションの起動や画面表示を例に挙げた。
このほかにも、ページの優先度が変わるイベントとして以下のようなイベントがあり、これらのイベントが発生したときに、ページの優先度が更新されるように構成することも可能である。所定のイベントとして、システムがアプリケーションを管理するために使っているステータスが変化するイベントして、例えば、アプリケーションの起動、終了、実行中、中断中、フォアグラウンド、バックグラウンドなどがある。
また、アプリケーション自身が内部状態の変化をシステムに伝えるイベント、例えば、モードの切り替え、デバイスの使用の開始や終了宣言などのイベントもある。
これらのイベントが発生したときに、上述したページの優先度の更新が行なわれるように構成することも可能である。これらの全てのイベントを対象とし、いずれか1つのイベントが発生したときに、ページの優先度の更新が行なわれるように構成することも可能であるし、これらのイベントのうちの1または複数のイベントを予め設定しておき、その設定されているイベントが発生したときに、ページの優先度の更新が行なわれるように構成することも可能である。
イベントとして、待ち受けモードの開始を例に挙げて説明する。待ち受けモードとは、例えば携帯電話機などで、受信待ちの状態のモードである。アプリケーションが、所定の関数を呼び出し「待ち受けモード」に入ったことを宣言する。この宣言をイベントとする。
待ち受けモードのときに動作しているアプリケーションは、サスペンド中に定期的にシステムをレジュームさせ、処理するべき情報、例えば新着メールがあるか否かを確認できる機能を有する。したがって、このアプリケーションが使用するページは、レジューム直後にアクセスされる可能性が高い。ページの優先度を決める際、この「待ち受けモード」に入ったアプリケーションが使用しているページは、優先度が高くなるように構成することができる。
次に、イベントとして、所定のデバイスの終了を例に挙げて説明する。アプリケーションが、所定の関数を呼び出し、特定のデバイスの使用を終えたことを宣言する。例えば、写真アップロードを行うアプリケーションがWi-Fiの使用を終えたときに、Wi-Fiに係わるデバイスの使用を終了したことを宣言する。
このような所定のデバイスの使用の終了の宣言をイベントとする。このような宣言をしたアプリケーションは、しばらくの間、アクティブに処理を行わないと判断できる。したがって、このアプリケーションが使用するページが、レジューム直後に使われる可能性は低い。よって、ページの優先度を決める際、このようなアプリケーションが使っているページの優先度は、低く設定されるように構成することができる。
さらに、ページの優先度の他の設定の仕方について説明する。例えば、アプリケーションが実行される確率を変化させるような、システムの外部や内部の環境変化が発生したときに、優先度が更新されたり、そのアプリケーションが使用するページの優先度が高く設定されたりするように構成することができる。システムの外部や内部の環境変化とは、例えば、位置の変化、システム設定の変化、ネットワーク状態の変化、時間の変化などがある。
まず位置の変化をイベントとして捉え、ページの優先度が設定される場合について説明する。位置情報と、よく使用されるアプリケーションが紐付いているとする。例えば、情報処理装置400が、携帯端末であり、会社や家で使用される端末であるとする。例えば、情報処理装置400が会社で使用されているときには、文字入力に関するアプリケーションが起動され、家で使用されているときにはインターネット閲覧のためのアプリケーションが起動されていることが多いといったように、情報処理装置400の位置により、起動されているアプリケーションにある程度の法則が見いだされることがある。
このような法則がある場合、位置情報の変化をイベントとし、ページの優先度が設定されるように構成することができる。例えば、GPS(Global Positioning System)を用い、GPSから位置情報を取得できるように構成する。そして、GPSから取得された位置情報に基づき、その位置情報が示す位置に紐付けられているアプリケーションが、近い将来実行される可能性が高いと推定できる。そこで、ページの優先度を決める際、このアプリケーションが使用しているページの優先度を高くする。逆に、所定のアプリケーションをよく使う地域から外れたと判断されるとき、そのアプリケーションが使用しているページの優先度が低く設定し直されるように構成することができる。
次に、システムの設定の変更をイベントとして捉え、ページの優先度が設定される場合について説明する。ユーザによるモード変更をイベントとする。例えば、ユーザが設定で「カメラ高速起動モード」に切り替えたとする。このカメラ高速起動モードのときには、レジューム直後でもカメラに関するアプリケーションだけは高速に起動できるように、常に不揮発性記憶部211に留めることにする。モードが「カメラ高速起動モード」の場合は、ページの優先度を決める際、カメラに関するアプリケーションが使用するページの優先度が高く設定されるように構成することができる。
次に、ネットワーク状態の変化をイベントとして捉え、ページの優先度が設定される場合について説明する。ネットワークへの接続や切断をイベントとする。例えば、システムのネットワーク接続が切断されたとする。このときネットワークを介する通信はできない状態となるので、そのようなネットワークを介する通信を必要とするアプリケーションは動作することができない。このような状態のときに、ページの優先度が判定される場合、通信を必要とするアプリケーションが使用するページの優先度が低く設定されるように構成することができる。
このようなページの優先度を更新するタイミングや、ページの優先度の設定の仕方で情報処理装置400を構成することも可能である。
さらに、アプリケーションから明示的に、不揮発性記憶部211に置きたいページや、揮発性記憶部212に置きたいページを指定できる仕組みを設けることも可能である。例えば、所定の関数を呼び出して、初期化に時間がかかる領域を不揮発性記憶部211に固定したり、バッファとして使用していて中身が消えても良い領域を揮発性記憶部212に置きたいと指定したりすることができるように構成することができる。
さらに特定の期間、ページの移動の処理を行わないようにアプリケーション側から指示できるようにしても良い。例えば、所定のアプリケーションが、広範囲のメモリにアクセスするようなとき、所定の関数を呼び出して、ページの移動の処理の一時停止を依頼できるように構成することもできる。
このように、本技術によれば、サスペンド時にかかる処理時間を短縮することが可能となる。また、サスペンドの処理時間が短縮されることで、節電の効果を期待することができる。
また本技術によれば、レジューム後に必要となるページ(データ)は、不揮発性記憶部211に記憶されているため、復帰までにかかる時間を短縮することが可能となる。
また復帰直後も、既に、レジューム時に必要とされる可能性が高いページが不揮発性記憶部211に記憶されているため、2次記憶装置203から揮発性記憶部212にページを移動させるという処理が必要なく、復帰後、即座に動作を開始できる。よって復帰直後の動作速度を速めることが可能となる。
また仮に、2次記憶装置203から揮発性記憶部212にページを移動させる処理を行う必要があっても、2次記憶装置203に記憶されているページは、レジューム時に必要とされる可能性が低いページであるため、不揮発性記憶部211に記憶されているページを用いて処理を開始させることができる。そして、処理が開始された後に、必要に応じて2次記憶部203から揮発性記憶部212にページを移動させるようにしても、処理が滞ることはない。よって、復帰直後の動作速度を速めることが可能となる。
また本技術によれば、不揮発性記憶部211に、動作中のアプリケーションが必要とするページが記憶されているため、揮発性記憶部212の動作を停止することが可能となる。揮発性記憶部212の動作を停止することで、揮発性記憶部212への電力の供給を停止することができるため、省電力を実現することが可能となる。すなわち、本技術を適用して、省電力モードを実現することも可能となる。
<記録媒体について>
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図16は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、入力部1006、出力部1007、記憶部1008、通信部1009、およびドライブ1010が接続されている。
入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記憶部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインタフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア1011を駆動する。
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005およびバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行なわれる。
コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、予めインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行なわれるプログラムであっても良いし、並列に、あるいは呼び出しが行なわれたとき等の必要なタイミングで処理が行なわれるプログラムであっても良い。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
なお、本技術は以下のような構成も取ることができる。
(1)
主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
情報処理装置。
(2)
前記不揮発性記憶部に置かれるページは、レジューム後にアクセスされる可能性の高いページである
前記(1)に記載の情報処理装置。
(3)
レジューム後にアクセスする可能性が高いページの優先度を管理する第1のリストと、レジューム後にアクセスする可能性が低いページの優先度を管理する第2のリストをさらに備える
前記(1)または(2)に記載の情報処理装置。
(4)
前記第1のリストは、前記揮発性記憶部に記憶されているが、前記不揮発性記憶部に移動させる優先度が高いページを管理するリストであり、
前記第2のリストは、前記不揮発性記憶部に記憶されているが、前記揮発性記憶部に移動させる優先度が高いページを管理するリストである
前記(3)に記載の情報処理装置。
(5)
前記第1のリストと前記第2のリストは、システムの状態が変化するイベントが発生したときに更新される
前記(3)または(4)に記載の情報処理装置。
(6)
前記イベントは、所定のアプリケーションの起動または終了、所定のデバイスの使用の開始または終了、所定のモードへの切り替え、位置情報の変化、ネットワークへの接続状態の変化のうちの少なくとも1つのイベントである
前記(5)に記載の情報処理装置。
(7)
前記所定のタイミングとは、前記第1のリストと前記第2のリストが更新されたときである
前記(5)または(6)に記載の情報処理装置。
(8)
所定のアプリケーションが他のアプリケーションを呼び出す確率を管理する第3のリストと、所定のアプリケーションがレジューム後に必要とするページの情報を管理するプロファイルをさらに備え、
第1のアプリケーションによる画面が、第2のアプリケーションによる画面に切り換えられたとき、前記プロファイルが参照され、前記第2のアプリケーションがレジューム後に必要とするページが確認され、確認された前記ページに対して、前記第3のリストが参照され、前記第2のアプリケーションに係わる確率が付与され、
前記ページに付与された前記確率の値に基づき、前記第1のリストと前記第2のリストがそれぞれ更新される
前記(3)乃至(7)のいずれかに記載の情報処理装置。
(9)
前記第1のリストまたは前記第2のリスト)に記載されているページの量に応じて、前記不揮発性記憶部と前記揮発性記憶部との間での前記ページの移動頻度を変化させる
前記(3)乃至(8)に記載の情報処理装置。
(10)
主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
ステップを含む情報処理方法。
(11)
主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置を制御するコンピュータに、
所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
ステップを含む処理を実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
200 情報処理装置,203 2次記憶装置, 211 不揮発性記憶部, 212 揮発性記憶部, 251 サスペンド指示部, 252 ページテーブル管理部, 253 ページ移動部, 254 ページ移動指示部, 255 ページ優先度推定部, 256 高優先ページリスト管理部, 257 低優先ページリスト管理部, 258 高優先ページリスト, 259 低優先ページリスト, 401 ページ移動指示部, 402 ページ優先度推定部, 403 表示中アプリケーション監視部, 404 アプリケーション呼び出し確率リスト, 405 アプリケーションプロファイル

Claims (11)

  1. 主記憶装置が、不揮発性記憶部と揮発性記憶部を備え、
    所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
    情報処理装置。
  2. 前記不揮発性記憶部に置かれるページは、レジューム後にアクセスされる可能性の高いページである
    請求項1に記載の情報処理装置。
  3. レジューム後にアクセスする可能性が高いページの優先度を管理する第1のリストと、レジューム後にアクセスする可能性が低いページの優先度を管理する第2のリストをさらに備える
    請求項1に記載の情報処理装置。
  4. 前記第1のリストは、前記揮発性記憶部に記憶されているが、前記不揮発性記憶部に移動させる優先度が高いページを管理するリストであり、
    前記第2のリストは、前記不揮発性記憶部に記憶されているが、前記揮発性記憶部に移動させる優先度が高いページを管理するリストである
    請求項3に記載の情報処理装置。
  5. 前記第1のリストと前記第2のリストは、システムの状態が変化するイベントが発生したときに更新される
    請求項3に記載の情報処理装置。
  6. 前記イベントは、所定のアプリケーションの起動または終了、所定のデバイスの使用の開始または終了、所定のモードへの切り替え、位置情報の変化、ネットワークへの接続状態の変化のうちの少なくとも1つのイベントである
    請求項5に記載の情報処理装置。
  7. 前記所定のタイミングとは、前記第1のリストと前記第2のリストが更新されたときである
    請求項5に記載の情報処理装置。
  8. 所定のアプリケーションが他のアプリケーションを呼び出す確率を管理する第3のリストと、所定のアプリケーションがレジューム後に必要とするページの情報を管理するプロファイルをさらに備え、
    第1のアプリケーションによる画面が、第2のアプリケーションによる画面に切り換えられたとき、前記プロファイルが参照され、前記第2のアプリケーションがレジューム後に必要とするページが確認され、確認された前記ページに対して、前記第3のリストが参照され、前記第2のアプリケーションに係わる確率が付与され、
    前記ページに付与された前記確率の値に基づき、前記第1のリストと前記第2のリストがそれぞれ更新される
    請求項3に記載の情報処理装置。
  9. 前記第1のリストまたは前記第2のリストに記載されているページの量に応じて、前記不揮発性記憶部と前記揮発性記憶部との間での前記ページの移動頻度を変化させる
    請求項3に記載の情報処理装置。
  10. 主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置の情報処理方法において、
    所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
    ステップを含む情報処理方法。
  11. 主記憶装置が、不揮発性記憶部と揮発性記憶部を備える情報処理装置を制御するコンピュータに、
    所定のタイミングで、前記不揮発性記憶部と前記揮発性記憶部との間で、ページに付与された優先度に基づき、前記ページを移動する
    ステップを含む処理を実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。
JP2013070440A 2013-03-28 2013-03-28 情報処理装置、情報処理方法、並びに記録媒体 Pending JP2014194634A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013070440A JP2014194634A (ja) 2013-03-28 2013-03-28 情報処理装置、情報処理方法、並びに記録媒体
US14/193,090 US20140297927A1 (en) 2013-03-28 2014-02-28 Information processing apparatus, information processing method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070440A JP2014194634A (ja) 2013-03-28 2013-03-28 情報処理装置、情報処理方法、並びに記録媒体

Publications (1)

Publication Number Publication Date
JP2014194634A true JP2014194634A (ja) 2014-10-09

Family

ID=51621994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070440A Pending JP2014194634A (ja) 2013-03-28 2013-03-28 情報処理装置、情報処理方法、並びに記録媒体

Country Status (2)

Country Link
US (1) US20140297927A1 (ja)
JP (1) JP2014194634A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102094163B1 (ko) * 2013-08-28 2020-03-27 삼성전자 주식회사 하이브리드 캐시 기반의 메모리 시스템에서 캐시를 관리하는 장치 및 방법과, 그 메모리 시스템
US9871895B2 (en) * 2015-04-24 2018-01-16 Google Llc Apparatus and methods for optimizing dirty memory pages in embedded devices
TWI610163B (zh) * 2016-01-05 2018-01-01 利用分群以利於快速開關機之方法
US10115442B2 (en) * 2016-01-22 2018-10-30 Microsoft Technology Licensing, Llc Demand-based provisioning of volatile memory for use as non-volatile memory
JP2017157156A (ja) * 2016-03-04 2017-09-07 富士通株式会社 スマート装置、データ退避処理方法及びデータ退避処理プログラム
TWI679534B (zh) * 2017-09-18 2019-12-11 慧榮科技股份有限公司 資料儲存裝置以及資料儲存方法
DE102018009604A1 (de) * 2018-12-06 2020-06-10 Giesecke+Devrient Mobile Security Gmbh Verfahren zum energiesparenden Betreiben eines Sicherheitselements einer Ein-Chip-System-Vorrichtung, und Ein-Chip-System-Vorrichtung

Also Published As

Publication number Publication date
US20140297927A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
JP2014194634A (ja) 情報処理装置、情報処理方法、並びに記録媒体
JP4281421B2 (ja) 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
US20120246390A1 (en) Information processing apparatus, program product, and data writing method
US10255118B2 (en) Processing system including a plurality of cores and method of operating the same
US9928168B2 (en) Non-volatile random access system memory with DRAM program caching
US20090193178A1 (en) Systems and methods for power management in relation to a wireless storage device
CN105637470B (zh) 用于脏数据管理的方法和计算设备
US20080301673A1 (en) Information Terminal, Computer Resource Managine Method, and Virtual Machine Execution Switching Method
JP2012220990A (ja) ハイパーバイザ置き換え方法および情報処理装置
JP2009122733A (ja) 電力制御方法、計算機システム、及びプログラム
JP2013222321A (ja) メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラム
WO2015142974A1 (en) Asynchronously prefetching sharable memory pages
JP6054203B2 (ja) 情報処理装置、デバイス制御方法及びプログラム
JP5166211B2 (ja) 不揮発性メモリを主記憶に用いた装置
JP2016085677A (ja) メモリ管理方法、メモリ管理プログラム及び情報処理装置
JP2014186622A (ja) 情報処理装置、情報処理方法、並びに記録媒体
JP2008262451A (ja) メモリ電源管理装置及びメモリ電源管理方法
JP4156470B2 (ja) ノード移送装置、ノード代替装置及びそのプログラム
JP2009020776A (ja) スワップアウト制御装置
US10540112B2 (en) System and method for migrating virtual machines with storage while in use
JP2017162311A (ja) スマート装置、優先処理方法及び優先処理プログラム
JP2011090531A (ja) 情報記憶装置
JP5231496B2 (ja) 情報処理装置及びそのサスペンド/リジューム方法
JP2008166899A (ja) 画像形成装置、制御方法、およびプログラム
JP5382471B2 (ja) 電力制御方法、計算機システム、及びプログラム