(57)【要約】【課題】電力非供給状態に移行する際のデータの退避に要する時間を短縮する。【解決手段】ＣＰＵ１０は、メモリアクセス監視装置７０からデータ退避処理を開始する旨の指示を受けると、アクセス管理テーブル７１のうち退避済フラグが「０」のレコードのみについて、そのアクセス頻度を参照し、アクセス頻度の少ないレコードから順に、そのページＩＤをＲＡＭ３０に記憶する。このＲＡＭ３０上に記憶されたページＩＤの順列が退避キューである。次に、ＣＰＵ１０は、ＲＡＭ３０に作成された退避キューの先頭にあるページＩＤを読み出し、アクセス管理テーブル７１を参照してメモリアドレスを特定して、そのページＩＤに対応するページをフラッシュメモリ４０に退避させる。そしてＣＰＵ１０は、退避したページのページＩＤを退避キューから削除し、アクセス管理テーブルの対応する退避済フラグを「１」にする。【選択図】図１
2009129026.tif 000002
【特許請求の範囲】
【請求項１】
電力供給を受けて、データを記憶した状態を維持する第１の記憶手段と、
電力供給を受けずに、データを記憶した状態を維持する第２の記憶手段と、
前記第１の記憶手段に電力を供給する電力供給状態、又は、前記第１の記憶手段に電力を供給しない電力非供給状態のいずれかに移行させる状態移行手段と、
前記電力供給状態において、前記第１の記憶手段に記憶されているデータを用いて処理を実行する処理実行手段と、
前記電力供給状態から前記電力非供給状態に移行する指示があるまでに、前記第１の記憶手段に記憶されているデータを一部分ずつ、それぞれ異なる時期に読み出して前記第２の記憶手段に記憶させる退避処理を行う退避手段とを備え、
前記状態移行手段は、前記第１の記憶手段に記憶されているデータに対して前記退避手段による前記退避処理が行われてから、前記電力供給状態から前記電力非供給状態に移行させる
ことを特徴とするデータ管理装置。
【請求項２】
前記退避手段は、前記処理実行手段による実行の単位となる処理が完了するたびに前記退避処理を開始する
ことを特徴とする請求項１記載のデータ管理装置。
【請求項３】
前記退避手段は、前記処理実行手段により処理が実行されていない期間に当該退避処理を行う
ことを特徴とする請求項２に記載のデータ管理装置。
【請求項４】
前記処理実行手段は、実行の単位となる処理を開始してから完了するまでに、当該処理の実行を一時中断し、
前記退避手段は、前記処理実行手段が前記処理の実行を一時中断している期間に、前記退避処理を行う
ことを特徴とする請求項１記載のデータ管理装置。
【請求項５】
前記処理実行手段は、プログラムに記述された手順に従って処理を実行するＣＰＵであり、
前記処理実行手段による実行の単位となる処理は、前記プログラムに記述された手順に従ってＣＰＵが実行する処理の単位となるタスクである
ことを特徴とする請求項２〜４のいずれか１項に記載のデータ管理装置。
【請求項６】
前記データが複数の部分データに区分されている場合に、前記処理実行手段が前記第１の記憶手段に記憶された前記部分データを用いた回数を、当該部分データ毎に記憶する回数記憶手段を備え、
前記退避手段は、前記回数記憶手段によって記憶されている回数が少ない部分データに対して、当該回数が多い部分データよりも先に前記退避処理を行う
ことを特徴とする請求項１に記載のデータ管理装置。
【請求項７】
前記退避手段は、前記回数記憶手段によって記憶されている前記回数の合計が第１の閾値以上である場合に、前記退避処理を行う
ことを特徴とする請求項６に記載のデータ管理装置。
【請求項８】
前記退避手段は、前記回数記憶手段によって記憶されている前記回数の合計が第１の閾値以上である場合には、前記処理実行手段により処理が実行されていない期間において前記退避処理を行い、前記回数記憶手段によって記憶されている前記回数の合計が、前記第１の閾値よりも大きい第２の閾値以上である場合には、前記処理実行手段により処理が実行されている期間においても前記退避処理を行う
ことを特徴とする請求項６に記載のデータ管理装置。
【請求項９】
前記退避手段は、前記電力供給状態から前記電力非供給状態に移行する指示があるまでに、前記第１の記憶手段に記憶されているデータを全て退避することができなかった場合には、当該指示があった後に、退避していないデータを前記第１の記憶手段から読み出して前記第２の記憶手段に記憶させる
ことを特徴とする請求項１に記載のデータ管理装置。
【請求項１０】
前記電力供給状態において、前記処理実行手段が実行する処理に用いるデータが前記第１の記憶手段に記憶されていない場合に、前記第２の記憶手段に記憶されている当該データを読み出し、前記第１の記憶手段に記憶させる復元処理を行うとともに、前記第２の記憶手段において、当該データに関連した関連データの復元順を記憶する第１の復元手段と、
前記処理実行手段により処理が実行されていない期間において、前記第１の復元手段が記憶した復元順に基づいて、前記第２の記憶手段に記憶されている前記関連データを読み出し、前記第１の記憶手段に記憶させる第２の復元手段と
を備えることを特徴とする請求項１に記載のデータ管理装置。
【請求項１１】
前記関連データのデータサイズは、前記処理実行手段が実行する処理毎に定められている
ことを特徴とする請求項１０に記載のデータ管理装置。
【請求項１２】
請求項１ないし１１のいずれか１項に記載のデータ管理装置と、
前記処理実行手段によって処理された結果を出力する出力手段と
を具備することを特徴とする情報処理装置。
【請求項１３】
電力供給を受けてデータを記憶した状態を維持する第１の記憶手段と、電力供給を受けずにデータを記憶した状態を維持する第２の記憶手段とを備えたコンピュータを、
前記第１の記憶手段に電力を供給する電力供給状態、又は、前記第１の記憶手段に電力を供給しない電力非供給状態のいずれかに移行させる状態移行手段と、
前記電力供給状態において、前記第１の記憶手段に記憶されているデータを用いて処理を実行する処理実行手段と、
前記電力供給状態において、前記第１の記憶手段に記憶されているデータを一部分ずつ、それぞれ異なる時期に読み出して前記第２の記憶手段に記憶させる退避処理を行う退避手段として機能させ、
さらに前記状態移行手段は、前記第１の記憶手段に記憶されているデータに対して前記退避手段による前記退避処理が行われてから、前記電力供給状態から前記電力非供給状態に移行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力供給を受けてデータを記憶した状態を維持する記憶手段と、電力供給を受けずにデータを記憶した状態を維持する記憶手段との間でデータを移動させる技術に関する。
【背景技術】
【０００２】
コンピュータの電源を投入したときにそれ以前に電源を切った時の作業内容が復元される、ハイバネーションという技術が知られている。例えば、特許文献１には、電源を切る前に揮発性メモリ内のデータを不揮発性メモリに書き込んでおいてから、電源オフの電力非供給状態に移行し、電源が再度投入されたときには、不揮発性メモリに書き込まれたデータを揮発性メモリに書き戻す技術が開示されている。また、特許文献２には、スリープモードに移行する前に、揮発性メモリ内のデータのうち、データ領域とバックアップ領域に保存されているデータのみを不揮発性メモリに書き込む技術が開示されている。特許文献２に開示された技術によれば、揮発性メモリ内の全てのデータを書き戻す場合と比べて、不揮発性メモリに書き込むデータの量が少なくなるため、不揮発性メモリに記憶されているデータを短時間で揮発性メモリに書き戻すことができる。
【特許文献１】特開２００５−１１５７２０号公報
【特許文献２】特開２００７−３８５８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のように電力非供給状態に移行するときには、揮発性メモリに記憶された全てのデータを不揮発性メモリに書き込むようになっている。一般に、不揮発性メモリに対するデータの読み書きに要する時間は、揮発性メモリに対するデータの読み書きに要する時間よりも長いため、揮発性メモリに記憶された全てのデータを不揮発性メモリに書き込むのには相当の時間を要するという問題がある。特に携帯端末のように小型の電源を搭載している装置の場合には、電力の残量に余裕がないため、電力非供給状態に移行するときに揮発性メモリに記憶された全てのデータを不揮発性メモリに書き込むことができなかった、という事態を招く虞もある。
【０００４】
本発明は、このような背景に鑑みてなされたものであり、その目的は、電力非供給状態に移行するのに要する時間を短縮することにある。
【課題を解決するための手段】
【０００５】
上述した課題を解決するため、本発明に係るデータ管理装置は、電力供給を受けて、データを記憶した状態を維持する第１の記憶手段と、電力供給を受けずに、データを記憶した状態を維持する第２の記憶手段と、前記第１の記憶手段に電力を供給する電力供給状態、又は、前記第１の記憶手段に電力を供給しない電力非供給状態のいずれかに移行させる状態移行手段と、前記電力供給状態において、前記第１の記憶手段に記憶されているデータを用いて処理を実行する処理実行手段と、前記電力供給状態から前記電力非供給状態に移行する指示があるまでに、前記第１の記憶手段に記憶されているデータを一部分ずつ、それぞれ異なる時期に読み出して前記第２の記憶手段に記憶させる退避処理を行う退避手段とを備え、前記状態移行手段は、前記第１の記憶手段に記憶されているデータに対して前記退避手段による前記退避処理が行われてから、前記電力供給状態から前記電力非供給状態に移行させることを特徴とする。
本発明によれば、電力供給状態から電力非供給状態に移行する指示があるまでに、第１の記憶手段に記憶されているデータを一部分ずつ、それぞれ異なる時期に読み出して第２の記憶手段に記憶させる退避処理を行うので、電力非供給状態に移行するのに要する時間を短縮することができる。
【０００６】
前記退避手段は、前記処理実行手段による実行の単位となる処理が完了するたびに前記退避処理を開始してもよく、前記処理実行手段により処理が実行されていない期間に当該退避処理を行うとしてもよい。このようにすると、退避処理がその退避処理以外の処理に対して負荷をかけないようにすることができる。
【０００７】
また、前記処理実行手段は、実行の単位となる処理を開始してから完了するまでに、当該処理の実行を一時中断し、前記退避手段は、前記処理実行手段が前記処理の実行を一時中断している期間に、前記退避処理を行ってもよい。このようにすると、退避処理以外の処理が実行されている期間であっても、退避処理を行うことができる。
【０００８】
また、上述の態様において、前記処理実行手段は、プログラムに記述された手順に従って処理を実行するＣＰＵであり、前記処理実行手段による実行の単位となる処理は、前記プログラムに記述された手順に従ってＣＰＵが実行する処理の単位となるタスクであることが望ましい。
【０００９】
また、好ましくは、前記データが複数の部分データに区分されている場合に、前記処理実行手段が前記第１の記憶手段に記憶された前記部分データを用いた回数を、当該部分データ毎に記憶する回数記憶手段を備え、前記退避手段は、前記回数記憶手段によって記憶されている回数が少ない部分データに対して、当該回数が多い部分データよりも先に前記退避処理を行うとよい。このようにすると、部分データの利用回数から、退避の優先順位を決定することができるため、より効率的な退避処理を行うことができる。
【００１０】
また、好ましくは、前記退避手段は、前記回数記憶手段によって記憶されている前記回数の合計が第１の閾値以上である場合に、前記退避処理を行うとよい。このようにすると、データの利用回数の合計が閾値以下の場合に、不揮発性記憶装置へ記憶することがないため、退避処理によって、その退避処理以外の処理の実行速度を低下させないようにできる。
【００１１】
また、好ましくは、前記退避手段は、前記回数記憶手段によって記憶されている前記回数の合計が第１の閾値以上である場合には、前記処理実行手段により処理が実行されていない期間において前記退避処理を行い、前記回数記憶手段によって記憶されている前記回数の合計が、前記第１の閾値よりも大きい第２の閾値以上である場合には、前記処理実行手段により処理が実行されている期間においても前記退避処理を行うとよい。このようにすると、データの利用回数の合計に応じて、その値が第１の閾値になるまでは「退避の必要のない状態」、第１の閾値から第２の閾値までは「処理実行手段による処理が行われていない場合には退避処理を行う状態」、第２の閾値以上では「処理実行手段による処理が行われている場合であっても強制的に退避処理を行う状態」に分けることができ、データの利用回数の合計に応じた適切な退避処理をさせることができる。
【００１２】
また、好ましくは、前記退避手段は、前記電力供給状態から前記電力非供給状態に移行する指示があるまでに、前記第１の記憶手段に記憶されているデータを全て退避することができなかった場合には、当該指示があった後に、退避していないデータを前記第１の記憶手段から読み出して前記第２の記憶手段に記憶させるとよい。このようにすると、電力非供給状態への移行指示があってから、第１の記憶手段の記憶内容が変更されても、その変更を反映した退避処理を行うことができる。
【００１３】
また、好ましくは、前記電力供給状態において、前記処理実行手段が実行する処理に用いるデータが前記第１の記憶手段に記憶されていない場合に、前記第２の記憶手段に記憶されている当該データを読み出し、前記第１の記憶手段に記憶させる復元処理を行うとともに、前記第２の記憶手段において、当該データに関連した関連データの復元順を記憶する第１の復元手段と、前記処理実行手段により処理が実行されていない期間において、前記第１の復元手段が記憶した復元順に基づいて、前記第２の記憶手段に記憶されている前記関連データを読み出し、前記第１の記憶手段に記憶させる第２の復元手段とを備えるとよい。このようにすると、電力非供給状態から電力供給状態へ移行したときに、迅速に復元すべきデータを復元するとともに、復元したデータに基づいて、次に復元が必要となるデータを類推して関連データとして記憶しておき、これを優先的に復元させるので、データ復元処理を効率的に分散化することができる。
【００１４】
また、好ましくは、前記関連データのデータサイズは、前記処理実行手段が実行する処理毎に定められているとよい。処理ごとに、関連データのサイズが異なっている場合もあるからである。
【００１５】
また、本発明に係る情報処理装置は、上述のデータ管理装置と、前記処理実行手段によって処理された結果を出力する出力手段とを具備することを特徴とする。
【００１６】
また、本発明に係るプログラムは、電力供給を受けてデータを記憶した状態を維持する第１の記憶手段と、電力供給を受けずにデータを記憶した状態を維持する第２の記憶手段とを備えたコンピュータを、前記第１の記憶手段に電力を供給する電力供給状態、又は、前記第１の記憶手段に電力を供給しない電力非供給状態のいずれかに移行させる状態移行手段と、前記電力供給状態において、前記第１の記憶手段に記憶されているデータを用いて処理を実行する処理実行手段と、前記電力供給状態において、前記第１の記憶手段に記憶されているデータを一部分ずつ、それぞれ異なる時期に読み出して前記第２の記憶手段に記憶させる退避処理を行う退避手段として機能させ、さらに前記状態移行手段は、前記第１の記憶手段に記憶されているデータに対して前記退避手段による前記退避処理が行われてから、前記電力供給状態から前記電力非供給状態に移行させるプログラムである。
本発明によれば、電力供給状態から電力非供給状態に移行する指示があるまでに、第１の記憶手段に記憶されているデータを一部分ずつ、それぞれ異なる時期に読み出して第２の記憶手段に記憶させる退避処理を行うので、電力非供給状態に移行するのに要する時間を短縮することができる。
【発明を実施するための最良の形態】
【００１７】
［Ａ：構成］
［Ａ−１：表示装置の全体構成］
図１は、本実施形態に係る表示装置１の構成を示す図である。同図に示すように、表示装置１は、ＣＰＵ（Central Processing Unit）１０と、ＲＯＭ（Read Only Memory）２０と、ＲＡＭ（Random Access Memory）３０と、フラッシュメモリ４０と、操作部５０と、表示部６０と、メモリアクセス監視装置７０と、電源部８０とを備えている。ＣＰＵ１０と、ＲＯＭ２０と、ＲＡＭ３０と、フラッシュメモリ４０と、操作部５０と、表示部６０と、メモリアクセス監視装置７０は、バス９０を介して接続されている。また、これらの各部１０〜７０と電源部８０とは図示せぬ電源線を介して接続されている。電源部８０は、例えば充電可能な電池や電源制御回路を備えており、表示装置１を構成する各部に対し、上記電源線を介して電力を供給する。
【００１８】
ＲＯＭ２０は、読み出し専用のメモリであり、表示装置１の起動処理を司るブートプログラムやＯＳ（Operation System）などの各種制御プログラムなどを記憶している。ＣＰＵ１０は、ＲＯＭ２０に記憶されている制御プログラムや、フラッシュメモリ４０に記憶されている各種処理プログラムを実行することにより、表示装置１の動作を制御したり、各種の処理を行ってその処理結果を表示部６０によって出力したりする。
【００１９】
ＲＡＭ３０は、電源部８０から電力供給を受けて、データを記憶した状態を維持する揮発性メモリである。すなわち、ＲＡＭ３０に記憶されたデータは、電源部８０からＲＡＭ３０に電力が供給されている期間にわたっては記憶され続けるが、電源部８０からの電力供給がなくなると消去される。このＲＡＭ３０は、ＣＰＵ１０のワークエリアとして使用され、例えばＣＰＵ１０が実行中の処理において用いられるデータを記憶する。このデータには、ＲＯＭ２０やフラッシュメモリ４０から読み出されてＲＡＭ３０にロードされた各種のプログラムや関数のほか、実行中の処理で用いられている各種の値や引数などが含まれている。以下では、ＲＡＭ３０に記憶されているこれらのデータを「処理データ」と総称する。
【００２０】
フラッシュメモリ４０は、電源部８０から電力供給を受けなくても、データを記憶した状態を維持し得る不揮発性メモリである。このフラッシュメモリ４０には、上述した処理プログラムが記憶されているほか、ＣＰＵ１０が処理実行中のＲＡＭ３０上の処理データを記憶するための記憶領域が設けられている。このように、ＲＡＭ３０は、電力供給を受けて、処理データを記憶した状態を維持する第１の記憶手段として機能するの対し、フラッシュメモリ４０は、電力供給を受けずに、処理データを記憶した状態を維持する第２の記憶手段として機能する。
【００２１】
操作部５０は、例えばペンデバイスやジョイスティックなどを備え、利用者の操作に応じた操作信号をＣＰＵ１０に供給する。表示部６０は、例えばコレステリック液晶や電気泳動などを利用した記憶性液晶表示体や表示制御回路を備え、ＣＰＵ１０による指示の下で各種の画像を表示する。メモリアクセス監視装置７０は、ＣＰＵ１０のＲＡＭ３０に対するアクセス状況を監視する装置であり、自身が備える揮発性メモリにアクセス管理テーブル７１を記憶している。このアクセス管理テーブル７１は、上記の監視結果が記述されたテーブルである。
【００２２】
［Ａ−２：アクセス管理テーブルの構成］
図２は、このアクセス管理テーブル７１の一例を示した図である。
図２に示すように、アクセス管理テーブル７１は、退避済フラグ、復元済フラグ、処理データの記憶場所を表すＲＡＭ３０のメモリアドレス、アクセス頻度、およびページＩＤといった各フィールドを有するテーブルである。さらに、このアクセス管理テーブル７１には、上記アクセス頻度の総計が記述されるアクセス頻度総数のフィールドを備えている。この表示装置１においては、ＲＡＭ３０とフラッシュメモリ４０との間では「ページ」と呼ばれる単位でデータが遣り取りされる。アクセス管理テーブル７１の「メモリアドレス」とは、これらの各ページが処理データとしてＲＡＭ３０に記憶されているときのその記憶領域の先頭アドレスである。また、「アクセス頻度」とは、ＣＰＵ１０が、そのメモリアドレスで示されるページにアクセスした回数である。この回数は、メモリアクセス監視装置７０によって常時、計数され、該当ページに対応するアクセス頻度のフィールドに記述される。「ページＩＤ」は、各ページに割り当てられた識別情報である。「退避済フラグ」は、ＲＡＭ３０に記憶されている各ページをフラッシュメモリ４０に記憶させること、つまりページの退避が行われた否かを示す情報であり、「１」が退避済みで「０」が未退避を意味している。また、「復元済フラグ」は、フラッシュメモリ４０に記憶されている各ページをＲＡＭ３０に記憶させること、つまりページの復元が行われた否かを示す情報であり、「１」が復元済みで「０」が未復元を意味している。
【００２３】
［Ａ−３：表示装置の起動状態］
ここで、表示装置１の起動状態について説明する。表示装置１は、「オン状態」、「スリープ状態」、「オフ状態」の３つの起動状態を有しており、これらのうちのいずれかの１つの起動状態をとるようになっている。まず、「オン状態」は、表示装置１の各部に電力が供給される電力供給状態であり、表示装置１が通常の動作を行う状態である。この「オン状態」では、ＣＰＵ１０によって各種の処理が行われることになる。次に、「スリープ状態」は、表示装置１の限られた部品のみに電力が供給され、表示装置１の一部が動作しない状態である。この「スリープ状態」では、ＣＰＵ１０や表示部６０には電力が供給されないが、それ以外の部品（ＲＡＭ３０を含む）には電力が供給される。よって、「オン状態」は、消費電力が多い第１の電力供給状態であるし、「スリープ状態」は、消費電力が少ない第２の電力供給状態であると言える。そして、「オフ状態」は、電源部８０がオフになったときの状態である。この「オフ状態」では、表示装置１の各部に電力が供給されないので、表示装置１はいっさい動作しない。上述した「オン状態」から「スリープ状態」への移行は、例えば「オン状態」においてＣＰＵ１０が処理を行わない待機時間が所定時間以上になった時に行われる。また、「スリープ状態」から「オン状態」への移行は、例えば操作部５０が操作された時に行われる。このように、「オン状態」及び「スリープ状態」は、表示装置１の各部のうち少なくともＲＡＭ３０に電力を供給する「電力供給状態」であるのに対し、「オフ状態」はＲＡＭ３０に電力を供給しない「電力非供給状態」である。
【００２４】
［Ｂ：動作］
次に、表示装置１の動作について説明する。
［Ｂ−１：アクセス頻度集計処理］
図３は、メモリアクセス監視装置７０が実行するアクセス頻度集計処理の流れを示すフローチャートである。この図３を参照して、ＲＡＭ３０に記憶されているデータを退避させる優先順位を決定するためのアクセス頻度集計処理について説明する。例えば表示装置１が「オン状態」の時に、利用者が操作部５０を操作して、文書データによって表わされる文書を閲覧している場合を想定する。ＣＰＵ１０は、この操作に応じて、各々の処理に用いる処理データを生成したり又はフラッシュメモリ４０から読み出したりしてＲＡＭ３０に記憶し、これらの処理データを用いて、文書を表示する処理を実行する。このとき、ＣＰＵ１０は、タスクと呼ばれる単位で処理を実行する。
【００２５】
ＣＰＵ１０が例えば上記のような表示処理を実行したときに、フラッシュメモリ４０から読み出されたデータ（ページデータの集合）が処理データとしてＲＡＭ３０に記憶されるが、このとき、メモリアクセス監視装置７０は、図２に示すようなフォーマットのアクセス管理テーブル７１を生成して自身の揮発性メモリに記憶する。ただし、初期の状態では、各メモリアドレスに対応するアクセス頻度およびアクセス頻度総数には０が記述されている。
【００２６】
メモリアクセス監視装置７０は、これらのメモリアドレスが示すページを監視して、ＣＰＵ１０によるメモリアクセスが発生したか否かを判断する（ステップＳａ１１）。ここで、メモリアクセスとは、ＣＰＵ１０がページを読み出したり、書き込んだりする両方の動作のことをいうが、特に書き込みがあったときに限定してメモリアクセスとしてもよい。ページの読み出しのみを行った場合には、当該ページの内容は変化せず、これを新たに退避する必要が生じないからである。メモリアクセスの発生がない間は（ステップＳａ１１；ＮＯ）、メモリアクセス監視装置７０は、ページの監視を続ける（ステップＳａ１１）。一方、ＣＰＵ１０がいずれかのページにアクセスすると、メモリアクセス監視装置７０は、メモリアクセスが発生したと判断して（ステップＳａ１１；ＹＥＳ）、アクセスされたページに対応する退避済フラグを「０」にし（ステップＳａ１２）、アクセス頻度を１増加させ（ステップＳａ１３）、アクセス頻度総数を１増加させる（ステップＳａ１４）。
【００２７】
次に、メモリアクセス監視装置７０は、アクセス頻度総数と予め定められた閾値Ｌｉｍ１（例えば１０００回）とを比較し、アクセス頻度総数が閾値Ｌｉｍ１以上であるか否かを判断する（ステップＳａ１５）。アクセス頻度総数が閾値Ｌｉｍ１以上でない場合には（ステップＳａ１５；ＮＯ）、メモリアクセス監視装置７０は、ページの監視を続ける（ステップＳａ１１）。これにより、アクセス頻度総数が閾値Ｌｉｍ１以上になるまでの間は、各ページのアクセス頻度が逐一集計されることになる。
【００２８】
一方、アクセス頻度総数が閾値Ｌｉｍ１以上である場合には（ステップＳａ１５；ＹＥＳ）、メモリアクセス監視装置７０は、ＣＰＵ１０がアイドル状態か否かを判断する（ステップＳａ１６）。アイドル状態とはＣＰＵ１０がいずれのタスクも実行していない状態を言う。ＣＰＵ１０がアイドル状態ではないと判断すると（ステップＳａ１６；ＮＯ）、メモリアクセス監視装置７０は、アクセス頻度総数と予め定められた閾値Ｌｉｍ２（閾値Ｌｉｍ１より大きい数値であり、例えば２０００回）とを比較し、アクセス頻度総数が閾値Ｌｉｍ２以上であるか否かを判断する（ステップＳａ１７）。アクセス頻度総数が閾値Ｌｉｍ２以上でない場合には（ステップＳａ１７；ＮＯ）、メモリアクセス監視装置７０は、ページの監視を続ける（ステップＳａ１１）。これにより、アクセス頻度総数が閾値Ｌｉｍ１以上になったとしても、ＣＰＵ１０によりタスクが実行されていれば、ＣＰＵ１０は、退避処理よりもそのタスクの処理を優先して、そのタスクの処理を継続することになる。ただし、これはアクセス頻度総数が閾値Ｌｉｍ２以上になるまでの間である。
【００２９】
一方、ＣＰＵ１０がアイドル状態であると判断されたとき（ステップＳａ１６；ＹＥＳ）、および、アクセス頻度総数が閾値Ｌｉｍ２以上であると判断されたとき（ステップＳａ１７；ＹＥＳ）には、メモリアクセス監視装置７０は、ＣＰＵ１０にデータ退避処理の開始を指示する（ステップＳａ１８）。よって、アクセス頻度総数が閾値Ｌｉｍ２以上であって退避の必要性が増した状態にあっては、ＣＰＵ１０によってタスクが実行されていても、これを中断して、退避処理にＣＰＵ１０の計算資源を割り当てることになる。
【００３０】
［Ｂ−２：データ退避処理］
次に、ＣＰＵ１０によるデータ退避処理について、図４を参照しながら説明する。ここでいうデータの退避とは、ＲＡＭ３０に記憶されているデータをフラッシュメモリ４０に記憶させることである。図４は、データ退避処理の流れを示すフローチャートである。ＣＰＵ１０は、メモリアクセス監視装置７０からデータ退避処理を開始する旨の指示を受けると、アクセス管理テーブル７１に基づいて、退避すべきページの順序を記述する退避キューを、ＲＡＭ３０に作成する（ステップＳｂ１１）。具体的には、ＣＰＵ１０は、アクセス管理テーブル７１のうち退避済フラグが「０」のレコードについて、そのアクセス頻度を参照し、アクセス頻度の少ないレコードから順に、そのページＩＤをＲＡＭ３０に記憶する。このＲＡＭ３０上に記憶されたページＩＤの順列が退避キューである。
【００３１】
図５は、この退避キューの一例を示す図である。
図２において、ページＡ１、ページＡ２およびページＡ３の退避済フラグは「０」であるから、これらは全てＣＰＵ１０による退避の対象として扱われる。そして、ページＡ１のアクセス頻度は１５回、ページＡ２のアクセス頻度は０回、ページＡ３のアクセス頻度は１２回であるから、これらのデータをアクセス頻度の少ない方から並べると、ページＡ２→ページＡ３→ページＡ１となる。したがって、ＣＰＵ１０は、図５に示すような順序の退避キューをＲＡＭ３０に作成する。この退避キューにおけるページＩＤの順番が、そのページＩＤのページの退避順を意味している
【００３２】
次に、ＣＰＵ１０は、ＲＡＭ３０に作成された退避キューの先頭にあるページＩＤを読み出し、アクセス管理テーブル７１を参照してメモリアドレスを特定して、そのページＩＤに対応するページをフラッシュメモリ４０に退避させる（ステップＳｂ１２）。そしてＣＰＵ１０は、退避したページのページＩＤを退避キューから削除し（ステップＳｂ１３）、アクセス管理テーブル７１においてそのページＩＤに対応する退避済フラグを「１」にする（ステップＳｂ１４）。例えば、図５に示す退避キューの場合には、ステップＳｂ１２において、ＣＰＵ１０は、ページＡ２が記憶されているメモリアドレス「１Ａ８０」で示されるページをフラッシュメモリ４０に退避する。退避が完了すると、ＣＰＵ１０は、ステップＳｂ１３において、退避キューからページＩＤ「ページＡ２」を削除し、ステップＳｂ１４において、アクセス管理テーブルのうちページＩＤ「ページＡ２」に対応する退避済フラグを「１」にする。
【００３３】
次に、ＣＰＵ１０は、退避キューが空か否かを判断する（ステップＳｂ１５）。退避キューが空でない場合（ステップＳｂ１５；ＮＯ）には、ＣＰＵ１０は、割り込み処理が有るか否かを判断する（ステップＳｂ１６）。ここでいう割り込み処理とは、この退避処理とは別の処理ことであり、例えば利用者の何らかの操作に応じた処理などが含まれる。割り込み処理がない場合（ステップＳｂ１６；ＮＯ）には、ＣＰＵ１０は、上述した退避キューを参照して、データ退避処理を続ける（ステップＳｂ１２）。一方、退避キューが空である場合（ステップＳｂ１５；ＹＥＳ）、および割り込み処理がある場合（ステップＳｂ１６；ＹＥＳ）には、ＣＰＵ１０はデータ退避処理を中断し、処理待ち状態に移行するか、または割り込み処理の実行に移行する。
このような退避処理を行うことにより、ＣＰＵ１０は、ＲＡＭ３０に記憶されている処理データを、その処理データに含まれるページ単位ずつ、それぞれ異なる読み出しタイミングで読み出してフラッシュメモリ４０に記憶させることができる。
【００３４】
［Ｂ−３：状態移行処理］
次に、ＣＰＵ１０による状態移行処理について、図６を参照しながら説明する。図６は、電源供給状態から電源非供給状態に移行する処理の流れを説明するためのフローチャートである。
ＣＰＵ１０は、所定の割り込み処理により、電源非供給状態への移行が指示されているか否かを判断する（ステップＳｃ１１）。ここで電源非供給状態へ移行する旨の指示には、様々な態様がある。例えば、ＣＰＵ１０が、利用者から操作部５０を介して移行の指示を受けた場合や、所定の条件を自動的に検知したときに、ＣＰＵ１０自身が上記移行の指示を発生させる場合などである。後者の所定の条件としては、例えば、上述した退避処理が終了してから、所定時間以上ＣＰＵ１０がアイドル状態に置かれた場合などが挙げられる。上記の移行が指示されていないときは（ステップＳｃ１１；ＮＯ）、ＣＰＵ１０はこの判断を継続する（ステップＳｃ１１）。
【００３５】
一方、上記の移行が指示されたときは（ステップＳｃ１１；ＹＥＳ）、ＣＰＵ１０は、アクセス管理テーブル７１を参照して、ＲＡＭ３０上の全てのページが退避済であるか否かを判断する（ステップＳｃ１２）。アクセス管理テーブル７１における退避済フラグのうち少なくともいずれか１つが「０」であれば、ＣＰＵ１０は、退避済でないページが１つ以上あると判断して（ステップＳｃ１２；ＮＯ）、図４に示した処理を実行する。一方、アクセス管理テーブル７１における退避済フラグが全て「１」であれば、ＣＰＵ１０は、全てのページが退避済であると判断して（ステップＳｃ１２；ＹＥＳ）、メモリアクセス監視装置７０に指示して、アクセス管理テーブル７１をフラッシュメモリ４０に退避させる（ステップＳｃ１３）。そして、ＣＰＵ１０はアクセス管理テーブル７１のハッシュ値を計算し、これをフラッシュメモリ４０に記憶する（ステップＳｃ１４）。これは、フラッシュメモリ４０に記憶されたアクセス管理テーブル７１の信頼性を、後述するデータ復元処理の際に確認するためである。以上の処理に続いてＣＰＵ１０は、電源部８０の電力供給を停止させ、電源非供給状態に移行する（ステップＳｃ１５）。
【００３６】
ここで、状態移行指示の具体的な例を挙げて、上述した退避処理および状態移行処理の具体例を説明する。図７は、利用者から操作部５０を介して移行の指示を受けた場合のタイムチャートである。図７の上段は割り込み処理を、中段は一般のタスクを、下段は退避処理をそれぞれ表している。
まず、ＣＰＵ１０は、或るタスクＡを時刻ｔ１から時刻ｔ２までの間に実行する。この間に、メモリアクセス監視装置７０は、ＣＰＵ１０のメモリアクセスが発生したか否かを判断し（図３のステップＳａ１１）、上記タスクＡにおいてメモリアクセスが発生するたびに（図３のステップＳａ１１；ＹＥＳ）、アクセスされたページに対応する退避済フラグを「０」にし（図３のステップＳａ１２）、アクセス頻度を１増加させ（図３のステップＳａ１３）、さらにアクセス頻度総数を１増加させる（図３のステップＳａ１４）。次に、メモリアクセス監視装置７０は、アクセス頻度総数と予め定められた閾値Ｌｉｍ１とを比較し、アクセス頻度総数が閾値Ｌｉｍ１以上であるか否かを判断する（図３のステップＳａ１５）。ここで、時刻ｔ１から時刻ｔ２までの間には、アクセス頻度総数はＬｉｍ１（例えば１０００回）以上になっていないものとする。よって、時刻ｔ２では退避処理は開始されない。
【００３７】
続いてＣＰＵ１０は、別のタスクＢを時刻ｔ３から時刻ｔ５までの間に実行する。上述と同様に、ＣＰＵ１０は、このタスクＢが実行されている期間においてもメモリアクセスの発生を判断して、図３のステップＳａ１２〜Ｓａ１４の処理を行う。ここで、時刻ｔ３から時刻ｔ５までの間の或る時刻ｔ４において、アクセス頻度総数がＬｉｍ１以上になったとする。メモリアクセス監視装置７０は、時刻ｔ４において、これを検知すると（図３のステップＳａ１５；ＹＥＳ）、ＣＰＵ１０がアイドル状態か否かを判断する（図３のステップＳａ１６）。ＣＰＵ１０は時刻ｔ５になるまでタスクＢを実行しており、アイドル状態ではないため、メモリアクセス監視装置７０は、時刻ｔ４から時刻ｔ５までの間、ＣＰＵ１０がアイドル状態ではないと判断し（図３のステップＳａ１６；ＮＯ）、アクセス頻度総数が閾値Ｌｉｍ２以上であるか否かを判断する（図３のステップＳａ１７）。ここで、時刻ｔ５までの間にアクセス頻度総数は閾値Ｌｉｍ２以上にならないとすると、メモリアクセス監視装置７０は、ＣＰＵ１０がアイドル状態になる（図３のステップＳａ１６；ＹＥＳ）時刻ｔ５になった時点で、ＣＰＵ１０にデータ退避処理の開始を指示する（図３のステップＳａ１８）。この退避処理は、退避キューが空になる時刻ｔ６において完了する。
【００３８】
続いてＣＰＵ１０は、さらに別のタスクＣを時刻ｔ７から時刻ｔ１０までの間に実行する。上述と同様に、ＣＰＵ１０は、このタスクＣが実行されている期間においてもメモリアクセスの発生を判断して、図３のステップＳａ１２〜Ｓａ１４の処理を行う。ここで、時刻ｔ７から時刻ｔ１０までの間の或る時刻ｔ８において、アクセス頻度総数がＬｉｍ２以上になったとする。メモリアクセス監視装置７０は、時刻ｔ８において、これを検知すると（図３のステップＳａ１７；ＹＥＳ）、ＣＰＵ１０がアイドル状態でないにも関わらず、すぐにタスクＣを中断して、データ退避処理を開始するようＣＰＵ１０に指示する（図３のステップＳａ１８）。この指示に応じて、ＣＰＵ１０は、直ちにタスクＣを中断し、退避処理に移行する。そしてＣＰＵ１０は、時刻ｔ８から時刻ｔ９までの間に退避処理を完了すると、中断していたタスクＣを再開する。そして、時刻ｔ１０においてタスクＣが終了すると、ＣＰＵ１０は、時刻ｔ９から時刻ｔ１０までの間にタスクＣにおいて発生したメモリアクセスに対する退避処理を開始し、これを時刻ｔ１１に完了する。
【００３９】
そして、時刻ｔ１２において、利用者が操作部５０を介して、電力供給状態から電力非供給状態への移行を指示したとする。ＣＰＵ１０は、電力供給状態から電源非供給状態への移行が指示されているか否かを判断しているから（図６のステップＳｃ１１）、時刻ｔ１２に上記指示を受けると（図６のステップＳｃ１１；ＹＥＳ）、アクセス管理テーブル７１を参照して、全てのページが退避済であるか否かを判断する（図６のステップＳｃ１２）。この場合には、全ての退避処理は時刻ｔ１１において終了しており、時刻ｔ１２までの間にメモリアクセスを発生させるタスクは行われていない。よって、ＣＰＵ１０は、アクセス管理テーブル７１をフラッシュメモリ４０に退避させる（図６のステップＳｃ１３）。そしてＣＰＵ１０は、アクセス管理テーブル７１のハッシュ値を計算し、これをフラッシュメモリ４０に記憶する（図６のステップＳｃ１４）。最後にＣＰＵ１０は、電源部８０の電力供給を停止させ、電源非供給状態に移行する（図６のステップＳｃ１５）。
【００４０】
このように、ＣＰＵ１０は、ＲＡＭ３０に記憶されている処理データを一部分ずつ時間的に分散して退避させているので、電力非供給状態に移行するときまでには、ＲＡＭ３０に記憶されている処理データの少なくとも一部を退避済みにしておくことができる。よって、電力非供給状態に移行するときに退避させるデータの量をより少なくすることができ、状態移行に要する時間を短縮することが可能となる。
なお、電力供給状態から電力非供給状態に移行する指示があるまでに、ＲＡＭ３０に記憶されているデータを全てフラッシュメモリ４０に退避することができなかった場合には、ＣＰＵ１０は、その指示があった後に、まだ退避していないデータをＲＡＭ３０から読み出してフラッシュメモリ４０に退避させればよい。
【００４１】
次に、図８は、電力非供給状態への移行の別の例を示すタイムチャートである。ＣＰＵ１０は、時刻ｔ１４から時刻ｔ１５の間に或るタスクＤを実行する。上述したタスクＢやタスクＣの場合と同様に、タスクＤが終了する時刻ｔ１５から、ＣＰＵ１０は退避処理を開始し、時刻ｔ１６に、その退避処理を完了する。そして、ＣＰＵ１０は、この時刻ｔ１６の時点からの経過時間を計測し、これが所定時間Δｔ（例えば１分など）以上になったことを検知すると、アクセス管理テーブル７１の退避処理（図６のステップＳｃ１２，ステップＳｃ１３，およびステップＳｃ１４）を行う。そして、上述と同様に最後にＣＰＵ１０は、電源部８０の電力供給を停止させ、電力非供給状態に移行する（ステップＳｃ１５）。
このように、ＣＰＵ１０は、電力非供給状態に移行するときまでには、ＲＡＭ３０に記憶されている処理データを退避済みにしておくことで、電力非供給状態に移行するときに退避させるデータの量をより少なくすることができる。よって、状態移行に要する時間を短縮することが可能となる。
【００４２】
［Ｂ−４：データ復元処理］
続いて、図９を参照して、表示装置１の起動状態が「オフ状態」から「オン状態」に復帰させられたときに、フラッシュメモリ４０に退避させていたデータを復元させるデータ復元処理について説明する。ここでいう起動状態の復帰とは、表示装置１の起動状態が、「電力供給状態」から「電力非供給状態」に移行させられた後に、「電力非供給状態」から再び「電力供給状態」に移行させられることをいう。また、データの復元とは、前述のとおり、ＲＡＭ３０からフラッシュメモリ４０に退避させていたデータを再びＲＡＭ３０に記憶させることである。
【００４３】
利用者によって操作部５０の電源ボタンがオンにされると（ステップＳｄ１１）、ＣＰＵ１０は、ＲＯＭ２０に記憶されている制御プログラムを実行して、表示装置１を起動させる（ステップＳｄ１２）。これにより、表示装置１の起動状態が「オフ状態」から「オン状態」に移行させられる。表示装置１が「オン状態」になると、利用者は、操作部５０を操作して、所望するプログラムを指定し、それを実行するよう指示する。
【００４４】
ＣＰＵ１０は、フラッシュメモリ４０に記憶されたアクセス管理テーブル７１を読み出してメモリアクセス監視装置７０の揮発性メモリに記憶させる（ステップＳｄ１３）。これをアクセス管理テーブル７１の復元という。そして、ＣＰＵ１０は、復元したアクセス管理テーブル７１からハッシュ値を計算し（ステップＳｄ１４）、フラッシュメモリ４０に記憶されているハッシュ値と比較する（ステップＳｄ１５）。このハッシュ値が等しくない場合（ステップＳｄ１５；ＮＯ）には、ＣＰＵ１０は、利用者に注意を促す警告処理を行う（ステップＳｄ１６）。このような場合には、図６で説明したデータ退避処理のうち、ステップＳｃ１３からステップＳｃ１４までの間に何らかの障害が発生し、正しくアクセス管理テーブル７１が退避されなかった可能性があるからである。
【００４５】
一方、この比較したハッシュ値同士が等しい場合（ステップＳｄ１５；ＹＥＳ）には、ＣＰＵ１０は復元したアクセス管理テーブル７１の復元済フラグを全て「０」にする（ステップＳｄ１７）。図１０は、復元したアクセス管理テーブル７１の一例を示す図である。アクセス管理テーブル７１は、図に示すように「データＢ３」、「データＢ４」、および「データＢ５」を記憶したページについて、それぞれ退避済フラグ、復元済フラグ、メモリアドレス及びアクセス頻度を記憶している。なお、このデータ復元処理においては、復元済フラグ、メモリアドレスおよびページＩＤ以外のデータは利用しない。以下、この図１０に示したアクセス管理テーブル７１がメモリアクセス監視装置７０に復元されていることを想定して、説明を続ける。
【００４６】
図９の説明に戻る。利用者が操作部５０を介して、処理を指示すると、ＣＰＵ１０は指示された処理のタスクを開始する（ステップＳｄ１８）。タスクが開始されると、メモリアクセス監視装置７０は、ＣＰＵ１０のメモリアクセスが発生したか否かを判断する（ステップＳｄ１９）。ＣＰＵ１０のメモリアクセスが発生していないうちは（ステップＳｄ１９；ＮＯ）、メモリアクセス監視装置７０は、この判断を継続する（ステップＳｄ１９）。
【００４７】
一方、ＣＰＵ１０のメモリアクセスが発生すると、メモリアクセス監視装置７０は、アクセス管理テーブルにおいて、アクセスが発生したページに対応する復元済フラグが「０」であるか否かを判断する（ステップＳｄ２０）。ここで、上記の復元済フラグが「０」でない、すなわち「１」である場合（ステップＳｄ２０；ＮＯ）には、アクセスが発生したページは既に復元されているため、メモリアクセス監視装置７０は、ＣＰＵ１０によるメモリアクセス発生の監視を継続する（ステップＳｄ１９）。
【００４８】
一方、上記の復元済フラグが「０」である場合（ステップＳｄ２０；ＹＥＳ）には、メモリアクセス監視装置７０は、ページフォールト信号を発生する（ステップＳｄ２１）。この信号を受けてＣＰＵ１０は、アクセス管理テーブル７１を参照して、アクセスが発生したページのメモリアドレスを特定し、当該ページをフラッシュメモリ４０からＲＡＭ３０へ復元する（ステップＳｄ２２）。そして、メモリアクセス監視装置７０は、アクセス管理テーブル７１の対応する復元済フラグを「１」に書き換え（ステップＳｄ２３）、後述する復元キューに、上記のアクセスが発生したページの周辺に記憶されているページのページＩＤを追加する（ステップＳｄ２４）。
【００４９】
例えば、ＣＰＵ１０がタスクを実行することにより、図１０に示すページＢ４に対して、メモリアクセスが発生したことを想定する。すると、ＣＰＵ１０は、ページＢ４に対応する復元済フラグが「０」であるか否かを判断する（ステップＳｄ２０）。ページＢ４に対応する復元済フラグは「０」であるから（ステップＳｄ２０；ＹＥＳ）、メモリアクセス監視装置７０は、ページフォールト信号を発生する（ステップＳｄ２１）。そしてＣＰＵ１０は、ページＢ４が記憶されたページをフラッシュメモリ４０から読み出し、ページＢ４に対応するＲＡＭ３０のメモリアドレス「２Ａ８０」に復元する（ステップＳｄ２２）。
【００５０】
そして、メモリアクセス監視装置７０は、ページＢ４に対応する復元済フラグを「１」に書き換え（ステップＳｄ２３）、さらに、そのページＢ４のメモリアドレスの前後のメモリアドレスに記憶されているページである「ページＢ３」と「ページＢ５」のページＩＤを、ＲＡＭ３０上の所定の位置に記憶した復元キューに追加する（ステップＳｄ２４）。図１１は、このようにして作成された復元キューを示す図である。復元キューは、図中左側ほど復元の優先順位の高い。優先順位が高いページは、優先順位が低いページよりも先に復元される。したがって、図１１に示す復元キューにおいては、「ページＢ３」の方が「ページＢ５」よりも先に復元されることになる。
ページフォールト信号が発生した瞬間にＲＡＭ３０上に必要なページは「ページＢ４」のみであるが、「ページＢ４」が要求されたことから、「ページＢ３」および「ページＢ５」もこの後、要求される可能性が高い。なぜなら、ユーザが利用するデータの位置は特定の箇所に集中する傾向があるからである。このようにすれば、「ページＢ３」または「ページＢ５」を要求するページフォールト信号を発生させることなく、先回りしてこれらのページを復元させておくことができるので、表示装置１は、迅速な復帰を行うことができる。なお、「ページＢ３」と「ページＢ５」のどちらを優先的に復元されるべきかについては、任意に定めることができるが、例えばアクセス管理テーブル７１のそれぞれのアクセス頻度に基づいて定めてもよい。この場合、図１０に示すように、「ページＢ３」のアクセス頻度は「１２」であり、「ページＢ５」のアクセス頻度は「３」であるから、「ページＢ３」の方が「ページＢ５」よりもアクセス頻度が多い。ＣＰＵ１０は、これを判断して、「ページＢ３」の優先順位が「ページＢ５」よりも高くなるように復元キューを作成すればよい。退避前までにアクセスが頻繁に行われたページは、復帰後にも頻繁にアクセスされる可能性が高く、優先して復元すべきだからである。
【００５１】
ここで、図１２は、ＣＰＵ１０がデータ復元処理を実行するときの処理の手順を示したフローチャートである。この図１２を参照して、ＣＰＵ１０が所定の周期で、一般の処理に割り込んで実行するデータ復元処理について説明する。
ＣＰＵ１０は、アイドル期間中に所定の周期で、図１１に示したような復元キューに基づいてデータ復元処理を実行する。具体的には、ＣＰＵ１０は、復元キューの先頭のデータＩＤが示すデータを復元し（ステップＳｅ１１）、そのデータＩＤを復元キューから削除する（ステップＳｅ１２）。この場合、先頭は「ページＢ３」であるから、ＲＡＭ３０のメモリアドレス「２Ａ００」には「ページＢ３」が記憶されたページが、フラッシュメモリ４０から復元される。次にＣＰＵ１０は、アクセス管理テーブルの「ページＢ３」に対応する復元済フラグを「１」にする（ステップＳｅ１３）。そして、ＣＰＵ１０はＲＡＭ３０の所定の領域に作成された復元キューが空であるか否かを判断する（ステップＳｅ１４）。復元キューが空でない場合（ステップＳｅ１４；ＮＯ）には、ＣＰＵ１０は、割り込み処理が存在するか否かを判断する（ステップＳｅ１５）。そして、割り込み処理が存在しない場合（ステップＳｅ１５；ＮＯ）には、データ復元処理を繰り返す（ステップＳｅ１１）。一方、復元キューが空である場合（ステップＳｅ１４；ＹＥＳ）、および割り込み処理が存在する場合（ステップＳｅ１５；ＹＥＳ）には、ＣＰＵ１０は、このデータ復元処理を終了する。
【００５２】
以上説明したように、実施形態の表示装置１は、電力非供給状態に移行する前に一部の退避処理が既に行われているため、電力非供給状態に移行するときの退避処理による負荷を低減し、電力非供給状態に移行するのに要する時間を短縮することができる。
また、ページに対するアクセス頻度（部分データの利用回数）から、退避の優先順位を決定することができるため、より効率的な退避処理を行うことができる。そして、アクセス頻度総数から、退避処理以外のタスクと退避処理とのいずれを優先すべきかを決定することができる。
また、電力供給状態に移行する際に、復元したデータに基づいて、次に復元が必要となるデータを類推し、これを優先的に復元させるので、データ復元処理を効率的に分散化することができる。
【００５３】
［Ｃ：変形例］
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を適宜組み合わせてもよい。
（変形例１）
上述した実施形態では、ＣＰＵ１０とメモリアクセス監視装置７０とは別のプロセッサであり、メモリアクセスの監視は、ＣＰＵ１０とは別体のハードウェアにより実現されていた。このメモリアクセスの監視は、ＣＰＵ１０において行ってもよい。すなわち、ＣＰＵ１０に読み込むプログラムに上述したメモリアクセスの監視の手続を記述し、ＣＰＵ１０がこれを実行すればよい。
【００５４】
（変形例２）
上述した実施形態では、ＲＡＭ３０に記憶されている処理データを、ページと呼ばれる単位で区分して退避及び復元を行っていた。このようにＲＡＭ３０とフラッシュメモリ４０との間で遣り取りされる処理データの単位は、ページと呼ばれるものに限らず、ＣＰＵ１０の１つのタスクで取り扱われるデータ単位であってもよいし、それよりも小さな単位、例えば処理を実現する処理プログラムのプロセス単位や関数単位であってもよい。要するに、処理データを複数に区分した部分データであればよい。
【００５５】
（変形例３）
上述した実施形態では、アクセス管理テーブル７１に記憶されたアクセス頻度総数が、閾値Ｌｉｍ１以上にならない限り退避処理は行われなかったが、このような閾値は設けなくてもよい。すなわち、ＣＰＵ１０はタスクが完了するたびに、退避処理を開始してもよい。
【００５６】
（変形例４）
上述した実施形態では、ハッシュ値を計算して、退避前のアクセス管理テーブル７１と復元後のアクセス管理テーブル７１が一致するか否かを確認したが、この確認には、ハッシュ値を計算する以外の方法（パリティビットやチェックサム等）を用いてもよい。また、この確認を行わなくてもよい。
【００５７】
（変形例５）
上述した実施形態では、ページフォールト信号に伴って、これを発生させたページを復元する際に、そのページの前後のメモリアドレスに記憶された１つずつのページを関連ページとして、復元キューに追加した。しかし、関連ページとして復元キューに追加するページの数はこれに限られない。例えば、２つずつ、３つずつなどでもよい。また、当該ページフォールト信号を発生させたときにＣＰＵ１０が実行しているタスクに応じて、この関連ページの数を決定してもよい。この場合には、予め、タスク毎に関連ページとして復元キューに追加するページの数が定められており、この数が記述されたテーブルをフラッシュメモリ４０から読み出して、当該数を決定すればよい。
【００５８】
図１３は、この変形例におけるタスクごとの関連ページ数を記述したテーブルの一例を示す図である。図に示すように、ＲＯＭ２０から読み込まれるＯＳには、予めタスクごとに関連ページ数（つまり関連データのデータサイズ）が定められたテーブルが含まれており、このＯＳがＲＡＭ３０に読み込まれることにより、このテーブルはＲＡＭ３０上に記憶される。ここで「前方」とは、ページのメモリアドレスが小さい方向を意味し、「後方」とはページのメモリアドレスが大きい方向を意味する。したがって、例えば、タスクＡの場合は、当該ページよりメモリアドレスが小さい方向の１ページと大きい方向の４ページが関連ページである。ＣＰＵ１０は、ページフォールト信号が発生したときには、このテーブルにおいて、ページフォールト信号の発生時に要求されたタスクに対応する関連ページ数を参照し、その関連ページ数に基づいて上述の復元キューに追加すべき関連ページを特定すればよい。
また、図１３はタスク毎に関連ページ数を定義した例であったが、これらのタスクの手順の集合とも言えるプログラム毎に関連ページ数を定義してもよい。この場合、ＣＰＵ１０は、ページフォールト信号が発生したときには、このテーブルにおいて、ページフォールト信号の発生時に実行されているプログラムに対応する関連ページ数を参照し、その関連ページ数に基づいて上述の復元キューに追加すべき関連ページを特定する。
タスク毎であってもプログラム毎であっても、いずれにせよ関連データのデータサイズはＣＰＵが実行する処理毎に定められていればよい。
【００５９】
また、実施形態では、ページを１単位としていたため、その関連ページは、そのページの前後のページであった。要するに、復元したデータに関連したデータであれば、復元したデータの後にアクセスがなされる可能性が高いから、ＣＰＵ１０は、復元したデータに何らかのルールに従って関連すると思われる関連データの復元順を復元キューに記憶すればよい。
【００６０】
（変形例６）
上述した実施形態では、電力供給を受けてデータを記憶した状態を維持する第１の記憶手段としてＲＡＭ３０を例示し、電力供給を受けずにデータを記憶した状態を維持する第２の記憶手段としてフラッシュメモリ４０を例示していたが、これら記憶手段の具体例は、実施形態の例示に限定されることはない。
【００６１】
（変形例７）
上述の実施形態では、表示装置１に備えられた不揮発性メモリは、フラッシュメモリ４０のみの１種類だけであったが、表示装置１は２種類以上の不揮発性メモリを備えていてもよい。また、この２種類以上の不揮発性メモリにおいて、記憶内容の読み書きの速度に差がある場合には、ＲＡＭ３０上の処理データの退避先を異ならせてもよい。例えばアクセス管理テーブル７１に記憶されたページのうち、アクセス頻度が少ないページは、読み書きの速度の遅い不揮発性メモリに記憶し、アクセス頻度が多いページは読み書きの速度の速い不揮発性メモリに記憶してもよい。このようにすると、頻繁にアクセスするページは、より読み書きの速度の速い不揮発性メモリに記憶されるので、退避処理および復元処理を迅速に行うことができる。なお、このアクセス頻度が多いか少ないかの判断には、予め閾値を定めておいてもよいし、集計したアクセス頻度の平均値等（相加平均、相乗平均、最頻値）と比較してもよい。
【００６２】
（変形例８）
上述の実施形態では、アクセス管理テーブル７１の全てのフィールドを退避させていたが、メモリアドレスとページＩＤのみを退避させてもよい。退避済フラグは退避時にのみ用いており、復元済フラグは復元時に初期化し、アクセス頻度およびアクセス頻度総数は復元時には用いないからである。
【００６３】
（変形例９）
実施形態では、ＣＰＵ１０がアイドル時になったときに退避処理を開始していたが、その開始タイミングは、アイドル時になったタイミングには限定されない。要するに、ＣＰＵ１０のアイドル時である期間に退避処理を行えばよく、その退避開始のタイミングは、アイドル時になったタイミングから遅れてもよい。
【００６４】
（変形例１０）
また、上述した表示装置１のＣＰＵ１０が実行するプログラムは、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk）、ＲＡＭなどの記録媒体に記録した状態で提供し得る。また、インターネットなどのネットワーク経由で表示装置１にダウンロードさせることも可能である。即ち、本発明をプログラムとして実現することもできる。
【図面の簡単な説明】
【００６５】
【図１】本実施形態に係る表示装置の構成を示す図である。
【図２】アクセス管理テーブルの一例を示した図である。
【図３】アクセス頻度集計処理の流れを示すフローチャートである。
【図４】データ退避処理の流れを示すフローチャートである。
【図５】退避キューの一例を示す図である。
【図６】電源供給状態から電源非供給状態に移行する処理の流れを説明するためのフローチャートである。
【図７】利用者から操作部を介して移行の指示を受けた場合のタイムチャートである。
【図８】電源非供給状態への移行の別の例を示すタイムチャートである。
【図９】表示装置の復帰時に、フラッシュメモリに退避させていたデータを復元させるデータ復元処理の流れを示すフローチャートである。
【図１０】復元したアクセス管理テーブルの一例を示す図である。
【図１１】復元キューを示す図である。
【図１２】ＣＰＵが所定の周期で一般の処理に割り込んで実行するデータ復元処理の流れを示すフローチャートである。
【図１３】変形例におけるタスクごとの関連ページ数を記述したテーブルの一例を示す図である。
【符号の説明】
【００６６】
１…表示装置、１０…ＣＰＵ、２０…ＲＯＭ、３０…ＲＡＭ、４０…フラッシュメモリ、５０…操作部、６０…表示部、７０…メモリアクセス監視装置、７１…アクセス管理テーブル、８０…電源部、９０…バス
【図１】
2009129026.tif 000003
【図２】
2009129026.tif 000004
【図３】
2009129026.tif 000005
【図４】
2009129026.tif 000006
【図５】
2009129026.tif 000007
【図６】
2009129026.tif 000008
【図７】
2009129026.tif 000009
【図８】
2009129026.tif 000010
【図９】
2009129026.tif 000011
【図１０】
2009129026.tif 000012
【図１１】
2009129026.tif 000013
【図１２】
2009129026.tif 000014
【図１３】
2009129026.tif 000015