(57)【要約】【課題】不揮発性メモリへのデータ保存処理を適切に制御すること。【解決手段】情報処理装置は、所定のプログラムに基づいて処理を実行するとともに、該処理を実行するために必要なデータを不揮発性メモリ内の特定のデータ領域に書き込む処理部と、処理部による処理に基づいて表示部に表示する表示情報を出力する表示制御部と、処理部による処理が実行中の第１の状態から少なくとも表示制御部が表示情報を出力しない第２の状態に遷移したことに基づいて、特定のデータ領域に書き込まれているデータのうち少なくとも処理に不要な無効データを消去するメモリ制御部と、を備える。【選択図】図１
2020071632.tif 000002
【特許請求の範囲】
【請求項１】
所定のプログラムに基づいて処理を実行するとともに、該処理を実行するために必要なデータを不揮発性メモリ内の特定のデータ領域に書き込む処理部と、
前記処理部による前記処理に基づいて表示部に表示する表示情報を出力する表示制御部と、
前記処理部による前記処理が実行中の第１の状態から少なくとも前記表示制御部が表示情報を出力しない第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去するメモリ制御部と、
を備える情報処理装置。
【請求項２】
前記メモリ制御部は、
前記特定のデータ領域へのデータの書き込み状態と前記第１の状態から前記第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去する、
請求項１に記載の情報処理装置。
【請求項３】
前記メモリ制御部は、
前記特定のデータ領域に書き込まれたデータ量が第１の閾値以上であると判定した場合、前記第１の状態から前記第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去する、
請求項２に記載の情報処理装置。
【請求項４】
前記メモリ制御部は、
前記特定のデータ領域に書き込まれたデータ量が第１の閾値以上であると判定した場合、該判定に基づいて通知するための表示情報を前記表示制御部に出力させる、
請求項３に記載の情報処理装置。
【請求項５】
前記処理部は、
前記情報処理装置を起動させる際に、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）設定情報に基づいてＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）処理を実行し、
前記メモリ制御部は、
前記特定のデータ領域に書き込まれたデータ量が第２の閾値以上であると判定した場合、前記ＰＯＳＴ処理の開始から終了までの間の所定のタイミングで、前記特定のデータ領域に書き込まれているデータのうち前記処理に不要な無効データを消去する、
請求項３または請求項４に記載の情報処理装置。
【請求項６】
前記第１の閾値は、前記第２の閾値より大きい値に設定される、
請求項５に記載の情報処理装置。
【請求項７】
前記メモリ制御部は、
前記無効データを消去する場合、前記特定のデータ領域に書き込まれているデータのうち前記処理に必要な有効データを前記特定のデータ領域以外のデータ領域に保存してから前記特定のデータ領域に書き込まれているデータを消去し、消去後に前記特定のデータ領域内の所定の位置に前記有効データを書き込む、
請求項１から請求項６のいずれか一項に記載の情報処理装置。
【請求項８】
前記メモリ制御部は、
前記第２の状態に遷移したことに応じた所定のタイミングで、前記無効データを消去する、
請求項１から請求項７のいずれか一項に記載の情報処理装置。
【請求項９】
前記メモリ制御部は、
前記第２の状態に遷移した後、前記第２の状態から前記第１の状態に復帰するタイミングに応じて、前記第１の状態に復帰する前に前記無効データを消去する、
請求項１から請求項７のいずれか一項に記載の情報処理装置。
【請求項１０】
前記処理部は、
前記処理を実行するために必要なデータを、前記特定のデータ領域と揮発性メモリ内の所定の領域とに書き込み、
前記メモリ制御部は、
前記第１の状態から前記第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータを消去し、該消去した後に、前記揮発性メモリ内の所定の領域に書き込まれているデータのうち前記処理を実行するために必要なデータを、前記特定のデータ領域に書き込む、
請求項１から請求項４のいずれか一項に記載の情報処理装置。
【請求項１１】
前記処理部は、
前記特定のデータ領域へのデータの書き込み状態に基づいて、前記処理を実行するために必要なデータの書き込み先を、前記特定のデータ領域と前記揮発性メモリ内の所定の領域とのいずれかに切り替える、
請求項１０に記載の情報処理装置。
【請求項１２】
前記処理部は、
前記特定のデータ領域に書き込まれたデータ量が第１の閾値未満である場合には前記処理を実行するために必要なデータを前記特定のデータ領域に書き込み、前記特定のデータ領域に書き込まれたデータ量が前記第１の閾値以上である場合には前記揮発性メモリ内の所定の領域に書き込む、
請求項１１に記載の情報処理装置。
【請求項１３】
前記メモリ制御部は、
前記特定のデータ領域に書き込まれたデータ量が前記第１の閾値以上であると判定した場合、前記特定のデータ領域に書き込まれたデータの少なくとも一部を読み出して前記揮発性メモリ内の所定の領域に書き込む、
請求項１０から請求項１２のいずれか一項に記載の情報処理装置。
【請求項１４】
情報処理装置の制御方法であって、
処理部が、所定のプログラムに基づいて処理を実行するとともに、該処理を実行するために必要なデータを不揮発性メモリ内の特定のデータ領域に書き込むステップと、
表示制御部が、前記処理部による前記処理に基づいて表示部に表示する表示情報を出力するステップと、
メモリ制御部が、前記処理部による前記処理が実行中の第１の状態から少なくとも前記表示制御部が表示情報を出力しない第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去するステップと、
を有する制御方法。
【請求項１５】
コンピュータに、
所定のプログラムに基づいて処理を実行するとともに、該処理を実行するために必要なデータを不揮発性メモリ内の特定のデータ領域に書き込むステップと、
前記処理が実行中の第１の状態において、前記処理に基づいて表示部に表示する表示情報を出力するステップと、
第２の状態において、少なくとも前記表示情報を出力しないように制御するステップと、
前記第１の状態から前記第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムにおいて、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）  Ｆｌａｓｈメモリなどの不揮発性メモリをデータの保存先として利用するものがある。ＦｌａｓｈメモリのＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）領域には、ＢＩＯＳのコードが保存される領域と、データが保存されるデータ保存領域（Ｖａｒｉａｂｌｅ領域）とがある。このデータ保存領域には、ＢＩＯＳによるブート時のＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）処理に必要なＢＩＯＳ設定情報などが保存されるだけでなく、ＰＯＳＴ処理後もＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などのソフトウェアプログラムによって各種のデータが読み書きされる。
【０００３】
ここで、上記のデータ保存領域は、Ｆｌａｓｈメモリ内の予め設定された特定のデータ領域であり、有限の領域である。同じデータの更新は、前回書き込んだデータを無効にし、新たな領域にデータ（有効なデータ）を書き込むことにより行われる。そのため、データが更新されるたびに、データ保存領域に書き込まれているデータ量が多くなり、空き容量が減少する。データ保存領域の空き容量が不足すると、実行中の処理が正常に続けられなくなり、例えばブルー画面にエラー情報が表示されるＢＳＯＤ（Ｂｌｕｅ  Ｓｃｒｅｅｎ  ｏｆ  Ｄｅａｔｈ）となることがある。そこで、データ保存領域に書き込まれているデータを消去し各データの最新データのみに整理するガベージコレクション処理を行うことで、Ｆｌａｓｈメモリ内のデータ保存領域の空き容量を増やす技術が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１３２５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、近年、コンピュータで行われる処理の高機能化などにより、ガベージコレクション処理にかかる時間が長くなってきている。ガベージコレクション処理は、ＳＭＩ（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｒｕｐｔ）で実行されるため、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を占有してしまい他の処理を実行できなくなる。そのため、通常動作状態ではガベージコレクション処理を実行せず、他の処理を一時的に実行できなくても影響の少ないＰＯＳＴ処理においてのみガベージコレクション処理を実行するようになってきている。
【０００６】
ところが、コンピュータを使用しないときにシャットダウンを行わないでスタンバイ（又はスリープ）モードに入れるだけで再び使用する利用方法が一般的になってきている。この利用方法では、シャットダウンされる頻度が低いため、ＰＯＳＴ処理が実行される機会が少なくなり、ガベージコレクション処理が実行される機会が少なくなる。シャットダウンされないままの状態で継続的にコンピュータが使用されると、いずれデータ保存領域の空き容量が不足し、データの読み込みはできるが、データの更新や新規データの書き込みができなくなる。このように、Ｆｌａｓｈメモリへのデータ保存処理を行えなくなる懸念があった。
【０００７】
本発明は、上記した事情に鑑みてなされたもので、不揮発性メモリへのデータ保存処理を適切に制御することができる情報処理装置、制御方法、及びプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００８】
本発明は上記の課題を解決するためになされたものであり、本発明の第１態様に係る情報処理装置は、所定のプログラムに基づいて処理を実行するとともに、該処理を実行するために必要なデータを不揮発性メモリ内の特定のデータ領域に書き込む処理部と、前記処理部による前記処理に基づいて表示部に表示する表示情報を出力する表示制御部と、前記処理部による前記処理が実行中の第１の状態から少なくとも前記表示制御部が表示情報を出力しない第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去するメモリ制御部と、を備える。
【０００９】
上記情報処理装置において、前記メモリ制御部は、前記特定のデータ領域へのデータの書き込み状態と前記第１の状態から前記第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去してもよい。
【００１０】
上記情報処理装置において、前記メモリ制御部は、前記特定のデータ領域に書き込まれたデータ量が第１の閾値以上であると判定した場合、前記第１の状態から前記第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去してもよい。
【００１１】
上記情報処理装置において、前記メモリ制御部は、前記特定のデータ領域に書き込まれたデータ量が第１の閾値以上であると判定した場合、該判定に基づいて通知するための表示情報を前記表示制御部に出力させてもよい。
【００１２】
上記情報処理装置において、前記処理部は、前記情報処理装置を起動させる際に、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）設定情報に基づいてＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）処理を実行し、前記メモリ制御部は、前記特定のデータ領域に書き込まれたデータ量が第２の閾値以上であると判定した場合、前記ＰＯＳＴ処理の開始から終了までの間の所定のタイミングで、前記特定のデータ領域に書き込まれているデータのうち前記処理に不要な無効データを消去してもよい。
【００１３】
上記情報処理装置において、前記第１の閾値は、前記第２の閾値より大きい値に設定されてもよい。
【００１４】
上記情報処理装置において、前記メモリ制御部は、前記無効データを消去する場合、前記特定のデータ領域に書き込まれているデータのうち前記処理に必要な有効データを前記特定のデータ領域以外のデータ領域に保存してから前記特定のデータ領域に書き込まれているデータを消去し、消去後に前記特定のデータ領域内の所定の位置に前記有効データを書き込んでもよい。
【００１５】
上記情報処理装置において、前記メモリ制御部は、前記第２の状態に遷移したことに応じた所定のタイミングで、前記無効データを消去してもよい。
【００１６】
上記情報処理装置において、前記メモリ制御部は、前記第２の状態に遷移した後、前記第２の状態から前記第１の状態に復帰するタイミングに応じて、前記第１の状態に復帰する前に前記無効データを消去してもよい。
【００１７】
上記情報処理装置において、前記処理部は、前記処理を実行するために必要なデータを、前記特定のデータ領域と揮発性メモリ内の所定の領域とに書き込み、前記メモリ制御部は、前記第１の状態から前記第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータを消去し、該消去した後に、前記揮発性メモリ内の所定の領域に書き込まれているデータのうち前記処理を実行するために必要なデータを、前記特定のデータ領域に書き込んでもよい。
【００１８】
上記情報処理装置において、前記処理部は、前記特定のデータ領域へのデータの書き込み状態に基づいて、前記処理を実行するために必要なデータの書き込み先を、前記特定のデータ領域と前記揮発性メモリ内の所定の領域とのいずれかに切り替えてもよい。
【００１９】
上記情報処理装置において、前記処理部は、前記特定のデータ領域に書き込まれたデータ量が第１の閾値未満である場合には前記処理を実行するために必要なデータを前記特定のデータ領域に書き込み、前記特定のデータ領域に書き込まれたデータ量が前記第１の閾値以上である場合には前記揮発性メモリ内の所定の領域に書き込んでもよい。
【００２０】
上記情報処理装置において、前記メモリ制御部は、前記特定のデータ領域に書き込まれたデータ量が前記第１の閾値以上であると判定した場合、前記特定のデータ領域に書き込まれたデータの少なくとも一部を読み出して前記揮発性メモリ内の所定の領域に書き込んでもよい。
【００２１】
また、本発明の第２態様に係る情報処理装置の制御方法は、処理部が、所定のプログラムに基づいて処理を実行するとともに、該処理を実行するために必要なデータを不揮発性メモリ内の特定のデータ領域に書き込むステップと、表示制御部が、前記処理部による前記処理に基づいて表示部に表示する表示情報を出力するステップと、メモリ制御部が、前記処理部による前記処理が実行中の第１の状態から少なくとも前記表示制御部が表示情報を出力しない第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去するステップと、を有する。
【００２２】
また、本発明の第３態様に係るプログラムは、情報処理装置としてのコンピュータに、所定のプログラムに基づいて処理を実行するとともに、該処理を実行するために必要なデータを不揮発性メモリ内の特定のデータ領域に書き込むステップと、前記処理が実行中の第１の状態において、前記処理に基づいて表示部に表示する表示情報を出力するステップと、第２の状態において、少なくとも前記表示情報を出力しないように制御するステップと、前記第１の状態から前記第２の状態に遷移したことに基づいて、前記特定のデータ領域に書き込まれているデータのうち少なくとも前記処理に不要な無効データを消去するステップと、を実行させる。
【発明の効果】
【００２３】
本発明の上記態様によれば、不揮発性メモリへのデータ保存処理を適切に制御することができる。
【図面の簡単な説明】
【００２４】
【図１】第１の実施形態に係る情報処理装置の構成例を示すブロック図。
【図２】ガベージコレクションの概要を示す概念図。
【図３】第１の実施形態に係るＰＯＳＴ処理におけるガベージコレクション処理の一例を示すフローチャート。
【図４】第１の実施形態に係る通常動作状態におけるガベージコレクションの通知処理の一例を示すフローチャート。
【図５】第１の実施形態に係るスタンバイにおけるガベージコレクション処理の一例を示すフローチャート。
【図６】第２の実施形態に係る通常動作状態におけるガベージコレクションの処理の一例を示すフローチャート。
【図７】第２の実施形態に係るスタンバイにおけるガベージコレクション処理の一例を示すフローチャート。
【発明を実施するための形態】
【００２５】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
【００２６】
［第１の実施形態］
（情報処理装置１０の構成）
まず、本発明の第１の実施形態について説明する。
図１は、本実施形態に係る情報処理装置１０の構成例を示すブロック図である。情報処理装置１０は、例えば、パーソナルコンピュータである。情報処理装置１０は、デスクトップ型、ラップトップ型、タブレット型等いずれのパーソナルコンピュータであってもよい。例えば、情報処理装置１０は、通信部１１と、入力部１２と、表示部１３と、スピーカ１４と、制御部１５と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６と、Ｆｌａｓｈメモリ１７とを備えている。これらの各部は、バスを介して通信可能に接続されている。
【００２７】
通信部１１は、例えば、複数のイーサネット（登録商標）ポートや複数のＵＳＢ等のデジタル入出力ポート、ＷｉＦｉ（登録商標）等の無線通信等を含んで構成される。
【００２８】
入力部１２は、パーソナルコンピュータ１００に設けられたキーボードやタッチパッドに対するユーザの操作入力が入力される。入力部１２は、入力された操作入力に基づく入力信号を出力する。なお、入力部１２は、表示部１３の表示画面に対する操作を検出するタッチパネルとして表示部１３と一体に構成されてもよい。また、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などにより接続されるキーボードやマウスなど、外付けの操作デバイスに対するユーザの操作入力が入力されてもよい。
【００２９】
表示部１３は、映像、画像、テキスト等を表示するディスプレイであり、例えば、液晶ディスプレイパネル、有機ＥＬディスプレイパネルなどを含んで構成される。スピーカ１４は、電子音や音声などを出力する。
【００３０】
制御部１５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などを含んで構成される。制御部１５は、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、または各種のアプリケーションなどのプログラムを実行することにより、各種の演算や処理などを行う。また、制御部１５は、ＲＡＭ１６、Ｆｌａｓｈメモリ１７などに対してデータの読み書きや消去などのメモリ制御を行う。
【００３１】
ＲＡＭ１６は、制御部１５が演算や制御、処理などを行うプログラムやデータが展開され、適宜、各種データの保存または消去が行われる。なお、ＲＡＭ１６は、揮発性メモリであるため、給電が停止されるとデータを保持できない。
【００３２】
Ｆｌａｓｈメモリ１７は、Ｆｌａｓｈ−ＲＯＭ（Ｒｅｓａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの不揮発性メモリである。つまり、Ｆｌａｓｈメモリ１７は、給電が停止されでもデータを保持できる。例えば、Ｆｌａｓｈメモリ１７は、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）  Ｆｌａｓｈメモリである。例えば、Ｆｌａｓｈメモリ１７は、ＢＩＯＳのコードを保存する領域や、制御部１５が実行する処理に必要なデータを保存するデータ領域（以下、「データ保存領域」）など、複数の領域に区分されている。
【００３３】
データ保存領域には、ＢＩＯＳによるブート時のＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）処理に必要なＢＩＯＳ設定情報などが保存されるだけでなく、ＰＯＳＴ処理後もＯＳなどのソフトウェアプログラムによって各種のデータが読み書きされる。同じデータの更新は、前回書き込んだデータを無効にし、新たな領域（データ保存領域内のまだ書き込みされていない領域）にデータを書き込むことにより行われる。そのため、データが更新されるたびに無効データが多くなるので、データ保存領域に書き込まれているデータ量が多くなり、空き容量が減少する。そのため、制御部１５は、所定のタイミングで、ガベージコレクションを実行する。
【００３４】
（ガベージコレクションの概要）
ここで、図２を参照して、ガベージコレクションの処理について説明する。図２は、ガベージコレクションの概要を示す概念図である。図２の（ａ）〜（ｆ）に示す図は、データ保存領域に書き込まれるデータの状態を時系列に表している。Ｆｌａｓｈメモリ１７は、データの読み出し及び書き込みがページ単位で行われ、データの消去が複数のページをまとめたブロック単位で行われる。例えば、１ブロック６４ページなどで構成されるが、ここでは、簡易的に１ブロック１５ページとしてデータ保存領域を表している。以下、（ａ）〜（ｆ）に示す図の順に従って説明する。
【００３５】
（ａ）データ保存領域に何もデータが書き込まれていない状態（消去された状態）で、制御部１５は、Ａ及びＢのデータとして「Ａ＝１」及び「Ｂ＝２」をデータ保存領域に書き込む。書き込んだ最新のデータを有効データとも称する。これにより、１５ページ中２ページ分の領域にデータが書き込まれている状態となる。
【００３６】
（ｂ）次に、制御部１５は、Ａ及びＢのデータを「Ａ＝２」及び「Ｂ＝０」に更新し、且つ新たにＣのデータとして「Ｃ＝５」をデータ保存領域に書き込む場合、前回書き込んだ「Ａ＝１」及び「Ｂ＝２」を無効データとし、新たな領域（ページ）に「Ａ＝２」及び「Ｂ＝０」、そして「Ｃ＝５」を書き込む。つまり、「Ａ＝２」、「Ｂ＝０」、及び「Ｃ＝５」が有効データとなる。制御部１５は、各データを読み出す場合には、無効データは読み出さず有効データを読み出すことになる。これにより、１５ページ中５ページ分の領域にデータが書き込まれている状態となる。
【００３７】
（ｃ）さらに、制御部１５は、Ａ及びＣのデータを「Ａ＝０」及び「Ｃ＝３」に更新する場合、前回書き込んだ「Ａ＝２」及び「Ｃ＝５」を無効データとし、新たな領域（ページ）に「Ａ＝０」及び「Ｃ＝３」を書き込む。つまり、「Ａ＝０」、「Ｂ＝０」、及び「Ｃ＝３」が有効データとなる。これにより、１５ページ中７ページ分の領域にデータが書き込まれている状態となる。
【００３８】
（ｄ）データの書き込み（更新）を繰り返すと、ブロック内の無効データが増え、書き込み済みの領域が増加する。これにより、新たに書き込める領域（ページ）が少なくなり、空き容量が減少する。図示する例では、有効データは３ページ分であるが無効データが９ページ分あり、１５ページ中１２ページ分の領域にデータが書き込まれている状態となっている。この状態では、新たに書き込める領域は３ページ分しかなく、ほぼ容量いっぱい（Ａｌｍｏｓｔ  Ｆｕｌｌ）に書き込まれている状態と判定される。このように、データ保存領域がいっぱいになりそうな場合（空き容量が不足しそうな場合）、制御部１５は、ガベージコレクションを実行する。なお、このガベージコレクションを実行する状態は、例えば、書き込まれているデータ量が所定の閾値以上であるか否かによって判定される。
【００３９】
（ｅ）ガベージコレクションの処理では、まず、制御部１５は、データ保存領域に書き込まれているデータのうちの有効データ（「Ａ＝０」、「Ｃ＝３」、「Ｂ＝２」）を、Ｆｌａｓｈメモリ１７のデータ保存領域以外の所定のデータ領域に書き込むことにより移動させてから、データ保存領域に対して消去を行う。これにより、１５ページすべての領域にデータが書き込まれていない状態（すなわち、データの書き込みが可能な状態）となる。
【００４０】
（ｆ）次に、ガベージコレクションの処理では、制御部１５は、他の領域に移動させておいた有効データ（「Ａ＝０」、「Ｃ＝３」、「Ｂ＝２」）を、データ保存領域に書き戻す。有効データを書き戻す際のデータ保存領域は、全ページが書き込まれていない空き領域の状態となっているため、空き領域（全領域）の端のページから詰めて有効データを書き込む。つまり、制御部１５は、ガベージコレクションを実行することにより、（ｄ）に示すデータ保存領域に書き込まれているデータのうち無効データを消去し、且つ有効データを端に移動させることで、まとまった空き領域（書き込み可能な領域）を確保する。
【００４１】
これにより、データ保存領域に空き領域が確保され、引き続きデータの書き込み（更新）が可能になる。ここで、ガベージコレクションの処理は、ＳＭＩ（Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｒｕｐｔ）で実行されるため、ＣＰＵを占有してしまい他の処理を実行できなくなる。そのため、通常動作状態（例えば、ＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）で規定されているＳ０状態）のときにガベージコレクションを実行してしまうと、実行中のアプリケーションが一時的に停止してしまうため好ましくない。
【００４２】
そこで、本実施形態では、他の処理が一時的に行えなくても影響の少ないＰＯＳＴ処理のタイミングでガベージコレクションを実行するとともに、それに加えて、通常動作状態からスタンバイに遷移した場合にガベージコレクションを実行する。ここで、本実施形態におけるスタンバイとは、通常動作状態よりも消費電力が低く、少なくとも表示情報を出力しない状態（即ち、画面ＯＦＦの状態）であり、迅速に通常動作状態に復帰可能な動作状態のことである。例えば、スタンバイは、画面ＯＦＦ以外の動作が通常動作状態と同じであってもよいし、画面ＯＦＦに加えて少なくとも一部のハードウェアが通常動作状態より低消費電力で動作する状態であってもよいし、メモリ関連以外への給電が停止される状態であってもよい。具体的には、スタンバイは、例えば、Ｗｉｎｄｏｗｓ（登録商標）におけるモダンスタンバイである。また、スタンバイは、例えば、ＡＣＰＩで規定されているＳ３（スリープ）状態であってもよいが、通常動作状態への復帰時にＰＯＳＴ処理（ブート処理）を行うＳ４状態やＳ５状態は含まなくてもよい。
【００４３】
（制御部１５の構成）
以下、本実施形態において、ＰＯＳＴ処理とスタンバイとにおいてガベージコレクションを実行する制御部１５の構成について詳細に説明する。
図１に戻り、制御部１５は、処理部１５１と、表示制御部１５２と、電源管理部１５３と、メモリ制御部１５４とを備えている。
【００４４】
処理部１５１は、ＢＩＯＳ、ＯＳ、ＯＳ上で動作するアプリケーションなどのプログラムに基づいて各種の演算や処理を実行する。処理部１５１は、各処理に応じた表示情報を表示部１３に表示する際には、その旨を表示制御部１５２へ指示する。また、処理部１５１は、消去及び書き込みが可能なＦｌａｓｈメモリ１７内のデータ保存領域に、上記の各処理の実行中に、各処理を実行するために必要なデータを書き込む。ここで、処理部１５１は、図２の（ａ）〜（ｄ）を参照して説明したように、データ保存領域にデータを書き込む場合には、以前のデータを無効にし、新たに領域にデータを書き込む。また、処理部１５１は、電源管理部１５３からの指示に応じて、情報処理装置１０の起動やシャットダウン、及びスタンバイへの遷移、スタンバイからの復帰などに伴う処理（ＢＩＯＳによるＰＯＳＴ処理、ＯＳの起動またはシャットダウン処理、動作状態をスタンバイにする処理またはスタンバイから復帰させる処理など）を実行する。
【００４５】
表示制御部１５２は、処理部１５１からの指示に基づいて表示部１３に表示する各種の表示情報を出力する制御を行う。例えば、表示制御部１５２は、処理部１５１による処理に基づいて表示部１３に表示する表示情報を出力する。また、表示制御部１５２は、処理部１５１からの指示に基づいて、表示情報の出力のＯＮ／ＯＦＦ（即ち、画面のＯＮ／ＯＦＦ）を制御する。なお、表示部１３がバックライトを用いた液晶ディスプレイパネルを含んで構成されている場合、表示情報の出力のＯＮ／ＯＦＦの制御にはバックライトのＯＮ／ＯＦＦの制御も含まれる。
【００４６】
電源管理部１５３は、情報処理装置１０の起動やシャットダウン、及びスタンバイへの遷移、スタンバイからの復帰などを制御する。例えば、電源ＯＦＦの状態で電源ボタンに対する操作入力が入力部１２に入力されると、電源管理部１５３は、起動の指示を処理部１５１へ受け渡す。また、通常動作状態でシャットダウンを選択する操作入力が入力部１２に入力されると、電源管理部１５３は、シャットダウンの指示を処理部１５１へ受け渡す。また、通常動作状態からスタンバイに遷移させる操作入力（例えば、電源ボタンを押下する操作入力またはスタンバイを選択する操作入力）が入力部１２に入力されると、電源管理部１５３は、スタンバイへ遷移させる指示を処理部１５１へ受け渡す。なお、操作入力が一定時間ないことを条件にスタンバイへ遷移させる設定がなされている場合、電源管理部１５３は、当該条件が満たされたことに応じて、スタンバイへ遷移させる指示を処理部１５１へ受け渡してもよい。また、スタンバイの状態でスタンバイを解除する操作入力（例えば、電源ボタンを押下する操作入力）が入力部１２に入力されると、電源管理部１５３は、スタンバイから通常動作状態へ復帰させる指示（スタンバイを解除する指示）を処理部１５１へ受け渡す。
【００４７】
メモリ制御部１５４は、Ｆｌａｓｈメモリ１７のデータ保存領域に対してガベージコレクションを実行する。ガベージコレクションとは、上述したように、データ保存領域に書き込まれているデータのうち処理に不要な無効データを消去する処理である。具体的には、図２を参照して説明したように、メモリ制御部１５４は、データ保存領域に書き込まれているデータのうち処理に必要な有効データをデータ保存領域以外のデータ領域に保存してからデータ保存領域のすべてを消去し、消去後にデータ保存領域内の所定の位置に有効データを書き込む（書き戻す）。
【００４８】
例えば、メモリ制御部１５４は、データ保存領域へのデータの書き込み状態と所定のタイミングとに基づいてガベージコレクションを実行する。ここで、データ保存領域へのデータの書き込み状態とは、例えば、データ保存領域に書き込まれたデータ量、またはデータ保存領域の空き容量（空き領域の量）などの状態である。例えば、メモリ制御部１５４は、データ保存領域へのデータの書き込み状態として、データ保存領域に書き込まれたデータ量が予め設定された閾値以上であるか否かを判定する。また、所定のタイミングとは、ＰＯＳＴ処理の実行に基づくタイミング、または、通常動作状態からスタンバイに遷移したことに基づくタイミングである。
【００４９】
以下では、ＰＯＳＴ処理に基づくタイミングでガベージコレクションを実行するか否かを判定するための閾値を「閾値ＨＰ」と称する。一方、スタンバイに基づくタイミングでガベージコレクションを実行するか否かを判定するための閾値を「閾値ＨＳ」と称する。
【００５０】
例えば、メモリ制御部１５４は、データ保存領域に書き込まれたデータ量が閾値ＨＰ以上であると判定した場合、ＰＯＳＴ処理の開始から終了までの間の所定のタイミングでガベージコレクションを実行する。一方、メモリ制御部１５４は、データ保存領域に書き込まれたデータ量が閾値ＨＰ未満であると判定した場合、ガベージコレクションを実行しない。
【００５１】
また、メモリ制御部１５４は、データ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合、処理部１５１による処理が実行中の通常動作状態からスタンバイに遷移したことに基づいて、ガベージコレクションを実行する。例えば、メモリ制御部１５４は、スタンバイに遷移したことに応じた所定のタイミングでガベージコレクションを実行する。また、メモリ制御部１５４は、スタンバイに遷移した後、スタンバイから通常動作状態に復帰するタイミングに応じて、通常動作状態に復帰する前にガベージコレクションを実行してもよい。つまり、メモリ制御部１５４は、スタンバイに入ったときにガベージコレクションを実行してもよいし、スタンバイから復帰するときにガベージコレクションを実行してもよい。これにより、少なくとも画面ＯＦＦとなるスタンバイ期間にガベージコレクションが実行されるため、ユーザへの影響が少ない。
【００５２】
閾値ＨＰ及び閾値ＨＳは、データ保存領域がいっぱいになって処理が行えなくなってしまう状態を回避するために、ガベージコレクションを実行させるか否かを判定する閾値である。但し、ＰＯＳＴ処理における閾値ＨＰは、ＰＯＳＴ処理を一時的に止めてもユーザへの影響が少ないため、起動後にガベージコレクションがなるべく必要にならないように、データ保存領域の空き容量にある程度余裕がある段階でも積極的にガベージコレクションが実行されるように設定されてもよい。一方、スタンバイにおける閾値ＨＳは、起動後であるため、通常動作をなるべく妨げないようにデータ保存領域がある程度いっぱいになった段階で、ガベージコレクションが実行されるように設定されてもよい。つまり、例えば閾値ＨＳは閾値ＨＰより大きい値に設定されている。
【００５３】
なお、閾値ＨＳと閾値ＨＰとの関係は上記に限られるものではなく、例えば閾値ＨＳと閾値ＨＰとは同じ値に設定されてもよいし、閾値ＨＰが閾値ＨＳより大きい値に設定されてもよい。
【００５４】
また、メモリ制御部１５４は、データ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合、該判定に基づいて通知するための表示情報を表示制御部１５２に出力させ、表示部１３に表示させてもよい。
【００５５】
例えば、メモリ制御部１５４は、データ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合、スタンバイに入るとき又はスタンバイから復帰するときにガベージコレクションを行う旨の通知を示す表示情報を表示部１３に表示させてもよい。ガベージコレクションを行う旨の通知とは、例えば、「次回のスタンバイ時にメモリ内の使用していないデータを消去します」、「次回のスタンバイ時にメモリをクリーンアップします」などである。
【００５６】
また、メモリ制御部１５４は、データ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合、メモリが不足している旨の通知を表示情報として、表示部１３に表示させてもよい。また、メモリ制御部１５４は、メモリが不足している旨の通知に代えて、又は加えて、スタンバイ、再起動などをユーザに促す通知を表示情報として、表示部１３に表示させてもよい。
【００５７】
（第１の実施形態における処理の動作）
次に、ガベージコレクションに関連する処理の動作について説明する。
（ＰＯＳＴ処理時における処理の動作）
まず、制御部１５が起動時のＰＯＳＴ処理においてガベージコレクションを実行する処理の動作について説明する。
図３は、本実施形態に係るＰＯＳＴ処理におけるガベージコレクション処理の一例を示すフローチャートである。
【００５８】
（ステップＳ１０１）制御部１５は、ＢＩＯＳのプログラムを実行することによりＰＯＳＴ処理を開始し、メモリのイニシャライズを実行する。そして、ステップＳ１０３の処理に進む。
【００５９】
（ステップＳ１０３）制御部１５は、接続されているデバイスに関する情報（例えば、ベンダー情報、デバイス情報、及び通信確立情報）を取得し、取得した情報に基づいてＴＢＴに接続されているデバイスを検出し、イニシャライズを実行する。そして、ステップＳ１０５の処理に進む。
【００６０】
（ステップＳ１０５）制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれているデータ量が閾値ＨＰ以上であるか否かを判定する。例えば、制御部１５は、データ保存領域に書き込まれたデータ量が閾値ＨＰ以上であると判定した場合（ＹＥＳ）、ステップＳ１０７の処理に進む。一方、制御部１５は、データ保存領域に書き込まれたデータ量が閾値ＨＰ未満であると判定した場合（ＮＯ）、ステップＳ１０７の処理を行わずに、ＰＯＳＴ処理を終了する。
【００６１】
（ステップＳ１０７）制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に対してガベージコレクションを実行してから、ＰＯＳＴ処理を終了する。
【００６２】
（通常動作状態における処理の操作）
次に、通常動作状態において、データ保存領域に書き込まれているデータ量が閾値ＨＳ以上になった場合に、制御部１５がガベージコレクションを行う旨をユーザに通知する処理の動作について説明する。
図４は、本実施形態に係る通常動作状態におけるガベージコレクションの通知処理の一例を示すフローチャートである。
【００６３】
（ステップＳ１１１）制御部１５は、通常動作状態において、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ以上であるか否かを判定する。例えば、制御部１５は、データ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合（ＹＥＳ）、即ち、データ保存領域が「Ａｌｍｏｓｔ  Ｆｕｌｌ」になったと判定した場合、ステップＳ１１３の処理に進む。一方、制御部１５は、データ保存領域に書き込まれたデータ量が閾値ＨＳ未満であると判定した場合（ＮＯ）、ステップＳ１１３〜Ｓ１１５の処理を行わずに、ステップＳ１１７の処理に進む。
【００６４】
（ステップＳ１１３）制御部１５は、ステップＳ１１１の判定に基づいて通知するための表示情報を出力し、表示部１３に表示させる。例えば、制御部１５は、スタンバイに入るとき又はスタンバイから復帰するときにガベージコレクションを行う旨の通知を示す表示情報を表示部１３に表示させる。そして、ステップＳ１１５の処理に進む。
【００６５】
（ステップＳ１１５）制御部１５は、データ保存領域の空き領域がなくなったか否か（即ち、データ保存領域が「Ｆｕｌｌ」になったか否か）を判定する。例えば、制御部１５は、データ保存領域の空き領域がなくなったと判定した場合（ＹＥＳ）、正常動作を行えなくなり、エラーで終了する。一方、制御部１５は、データ保存領域の空き領域がなくなっていないと判定した場合（ＮＯ）、ステップＳ１１７の処理に進む。
【００６６】
（ステップＳ１１７）制御部１５は、実行中の処理に応じて、処理に必要なデータを適宜Ｆｌａｓｈメモリ１７のデータ保存領域に書き込む。
【００６７】
（スタンバイ時における処理の動作）
次に、制御部１５が通常動作状態からスタンバイに遷移した場合にガベージコレクションを実行する処理の動作について説明する。
図５は、本実施形態に係るスタンバイにおけるガベージコレクション処理の一例を示すフローチャートである。
【００６８】
（ステップＳ１２１）制御部１５は、通常動作状態において、スタンバイへ遷移させる操作入力（電源ボタンへの押下など）の有無を判定する。例えば、制御部１５は、スタンバイへ遷移させる操作入力が無いと判定した場合（ＮＯ）、再びステップＳ１２１の処理を行う。一方、制御部１５は、スタンバイへ遷移させる操作入力があったと判定した場合（ＹＥＳ）、ステップＳ１２３の処理に進む。
【００６９】
（ステップＳ１２３）制御部１５は、通常動作状態からスタンバイへ遷移させる。例えば、制御部１５は、少なくとも表示情報の出力を停止し、表示部１３を画面ＯＦＦに制御する。そして、ステップＳ１２５の処理に進む。
【００７０】
（ステップＳ１２５）制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれているデータ量が閾値ＨＳ以上であるか否かを判定する。例えば、制御部１５は、データ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合（ＹＥＳ）、ステップＳ１２７の処理に進む。一方、制御部１５は、データ保存領域に書き込まれたデータ量が閾値ＨＳ未満であると判定した場合（ＮＯ）、ステップＳ１２７の処理を行わずに、ステップＳ１２８の処理に進む。
【００７１】
（ステップＳ１２７）制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に対してガベージコレクションを実行し、ステップＳ１２８の処理に進む。
【００７２】
（ステップＳ１２８）制御部１５は、スタンバイの状態において、スタンバイを解除する操作入力（電源ボタンへの押下など）の有無を判定する。例えば、制御部１５は、スタンバイ解除する操作入力が無いと判定した場合（ＮＯ）、再びステップＳ１２８の処理を行う。一方、制御部１５は、スタンバイを解除する操作入力があったと判定した場合（ＹＥＳ）、ステップＳ１２９の処理に進む。
【００７３】
（ステップＳ１２９）制御部１５は、スタンバイから通常動作状態へ遷移させ、画面ＯＮに制御する。
【００７４】
なお、図５に示す処理では、スタンバイに入ったときにガベージコレクションを実行する例を説明したが、スタンバイから復帰するときにガベージコレクションを実行してもよい。その場合、図５に示すステップＳ１２７の処理とステップＳ１２８の処理との順を入れ替え、制御部１５は、スタンバイを解除する操作入力があったと判定した場合、ガベージコレクションを実行してから、通常動作状態へ遷移させ、画面ＯＮに制御する。
【００７５】
また、図４を参照して説明した通常動作状態における処理において、制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合に、該判定に基づく通知を表示部１３に表示させたが、該判定に基づく通知を表示させなくてもよい。つまり、制御部１５は、ユーザに通知することなく、スタンバイに遷移したときに、ガベージコレクションを実行してもよい。
【００７６】
また、制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれているデータ量を確認せずに、ガベージコレクションを実行してもよい。例えば、制御部１５は、ＰＯＳＴ処理とスタンバイに遷移したときには、データ保存領域に書き込まれているデータ量を確認せずに、ガベージコレクションを実行してもよい。
【００７７】
以上説明したように、本実施形態に係る情報処理装置１０は、処理部１５１と、表示制御部１５２と、メモリ制御部１５４とを備えている。処理部１５１は、所定のプログラムに基づいて処理を実行するとともに、該処理を実行するために必要なデータをＦｌａｓｈメモリ１７（不揮発性メモリの一例）内のデータ保存領域（特定のデータ領域の一例）に書き込む。表示制御部１５２は、処理部１５１による処理に基づいて表示部１３に表示する表示情報を出力する。メモリ制御部１５４は、処理部１５１による処理が実行中の通常動作状態（第１の状態の一例）から少なくとも表示制御部１５２が表示情報を出力しないスタンバイ（第２の状態の一例）に遷移したことに基づいて、データ保存領域に書き込まれているデータのうち少なくとも処理に不要な無効データを消去する。
【００７８】
これにより、情報処理装置１０は、通常動作状態で実行中の処理を一旦中断させることなく、スタンバイに遷移したときに、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれている無効データを消去することにより空き容量を増やすことができる。よって、情報処理装置１０は、使用しないときにシャットダウンを行わないでスタンバイにするだけで再び使用するような利用方法であっても、通常動作状態での処理を妨げることなくデータ保存領域の空き容量が不足してしまうことを抑制できるため、Ｆｌａｓｈメモリ１７へのデータ保存処理を適切に制御することができる。
【００７９】
例えば、メモリ制御部１５４は、データ保存領域（特定のデータ領域の一例）へのデータの書き込み状態と通常動作状態（第１の状態の一例）からスタンバイ（第２の状態の一例）に遷移したことに基づいて、データ保存領域に書き込まれているデータのうち少なくとも処理に不要な無効データを消去する。ここでデータの書き込み状態とは、上述したように、データ保存領域に書き込まれたデータ量、またはデータ保存領域の空き容量（空き領域の量）などの状態である。
【００８０】
これにより、情報処理装置１０は、Ｆｌａｓｈメモリ１７のデータ保存領域がいっぱいになる前に、スタンバイに遷移したことに基づいてデータ保存領域に書き込まれている無効データを消去することにより空き容量を増やすことができる。
【００８１】
例えば、メモリ制御部１５４は、データ保存領域（特定のデータ領域の一例）に書き込まれたデータ量が閾値ＨＳ（第１の閾値）以上であると判定した場合、通常動作状態（第１の状態の一例）からスタンバイ（第２の状態の一例）に遷移したことに基づいて、データ保存領域に書き込まれているデータのうち少なくとも処理に不要な無効データを消去する。
【００８２】
これにより、情報処理装置１０は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が一定値を超えた場合、スタンバイに遷移したときに、データ保存領域に書き込まれている無効データを消去することにより空き容量を増やすことができる。つまり、情報処理装置１０は、データ保存領域がＦｕｌｌになりそうなときには、スタンバイ中に空き容量を増やし、スタンバイから復帰した後にデータ保存領域の空き容量が増えた状態で動作を継続することができる。
【００８３】
なお、メモリ制御部１５４は、データ保存領域の空き容量が所定の閾値未満であるか否かを判定し、所定の閾値未満であると判定した場合、通常動作状態（第１の状態の一例）からスタンバイ（第２の状態の一例）に遷移したことに基づいて、データ保存領域に書き込まれているデータのうち少なくとも処理に不要な無効データを消去してもよい。
【００８４】
また、具体的には、メモリ制御部１５４は、無効データを消去する場合、データ保存領域（特定のデータ領域の一例）に書き込まれているデータのうち処理に必要な有効データをデータ保存領域以外のデータ領域に保存してからデータ保存領域に書き込まれているデータを消去し、消去後にデータ保存領域内の所定の位置に有効データを書き込む。
【００８５】
これにより、情報処理装置１０は、Ｆｌａｓｈメモリ１７に書き込んだデータのうち有効データを残し、無効データの分を空き領域としてデータの書き込みが可能なようにすることができる。
【００８６】
また、メモリ制御部１５４は、スタンバイ（第２の状態の一例）に遷移したことに応じた所定のタイミングで、データ保存領域内の無効データを消去する。
【００８７】
これにより、情報処理装置１０は、スタンバイに入ったときに、データ保存領域内の無効データを消去して空き容量を増やすことができる。
【００８８】
なお、メモリ制御部１５４は、スタンバイ（第２の状態の一例）に遷移した後、スタンバイから通常動作状態（第１の状態の一例）に復帰するタイミングに応じて、通常動作状態に復帰する前に、データ保存領域内の無効データを消去してもよい。
【００８９】
これにより、情報処理装置１０は、スタンバイから復帰するときに、データ保存領域内の無効データを消去して空き容量を増やすことができる。
【００９０】
また、メモリ制御部１５４は、データ保存領域（特定のデータ領域の一例）に書き込まれたデータ量が閾値ＨＳ（第１の閾値）以上であると判定した場合、該判定に基づいて通知するための表示情報を表示制御部１５２に出力させる。
【００９１】
これにより、情報処理装置１０は、データ保存領域がＦｕｌｌに近づいていること、または、次にスタンバイに遷移したときに、ガベージコレクションが実行されること（メモリのクリーンアップが行われること）などをユーザに通知することができる。また、情報処理装置１０は、メモリが不足している旨の通知を行うことにより、メモリ不足によりエラーが発生しないように、スタンバイへの遷移をユーザに促すことができる。
【００９２】
なお、情報処理装置１０は、データ保存領域に書き込まれたデータ量を判定する閾値を複数設けることにより、データ量が増加するに従って、段階的にユーザに通知をおこなってもよい。
【００９３】
また、処理部１５１は、情報処理装置１０を起動させる際に、ＢＩＯＳ設定情報に基づいてＰＯＳＴ処理を実行する。そして、メモリ制御部１５４は、データ保存領域（特定のデータ領域の一例）に書き込まれたデータ量が閾値ＨＰ（第２の閾値）以上であると判定した場合、ＰＯＳＴ処理の開始から終了までの間の所定のタイミングで、データ保存領域に書き込まれているデータのうち処理に不要な無効データを消去する。
【００９４】
これにより、情報処理装置１０は、シャットダウンされた場合にはその後の起動時に、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれている無効データを消去することにより空き容量を増やすことができる。
【００９５】
例えば、上記スタンバイにおける閾値ＨＳ（第１の閾値）は、上記ＰＯＳＴ処理における閾値ＨＰ（第２の閾値）より大きい値に設定される。
【００９６】
これにより、情報処理装置１０は、ＰＯＳＴ処理では、ガベージコレクションを行ってもユーザへの影響が少ないため、データ保存領域の空き容量にある程度余裕がある段階でも積極的にデータ保存領域に書き込まれている無効データを消去して空き容量を増やし、スタンバイでは、通常動作をなるべく妨げないようにデータ保存領域がある程度いっぱいになった段階でデータ保存領域に書き込まれている無効データを消去して空き容量を増やすことができる。
【００９７】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。第１の実施形態では、スタンバイ中にＦｌａｓｈメモリ１７のデータ保存領域に対してガベージコレクションを行うことにより、通常動作状態での処理を妨げることなくデータ保存領域の空き容量を確保したが、通常動作状態からスタンバイに遷移した際に一部の処理が継続して実行されるものがある。例えば、音楽を再生中にスタンバイになってもその音楽の再生処理が継続される場合がある。このような場合にガベージコレクションを行うと、一時的に再生処理を中断する必要がありデータ量によっては中断時間が長くなる。ユーザが音楽を聴いている途中でスタンバイになった際に、再生が中断される時間が長くなることは望ましくない。そこで、本実施形態では、スタンバイ中にガベージコレクションを行う場合、ガベージコレクションにかかる時間をなるべく短くする処理について説明する。具体的には、本実施形態では、ＲＡＭ１６を仮想Ｆｌａｓｈメモリとして利用することにより、Ｆｌａｓｈメモリ１７に対して行うガベージコレクションに係る時間を削減する。
【００９８】
なお、本実施形態に係る情報処理装置１０の基本的な構成は、第１の実施形態で説明した図１に示す構成と同様であり、ここでは、第１の実施形態と異なる処理について説明する。制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に対してガベージコレクションを行う際に、ＲＡＭ１６を利用する。
【００９９】
具体的には、処理部１５１は、処理を実行するために必要なデータを、データ保存領域に書き込むとともに、所定の条件を満たした場合にはＲＡＭ１６内の所定の領域に書き込む。ここで、所定の領域とは、仮想Ｆｌａｓｈメモリとして利用する領域としてＲＡＭ１６内に予め設定された領域である。例えば、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ以上である場合には、処理部１５１は、処理を実行するために必要なデータをデータ保存領域に書き込まないで、ＲＡＭ１６内の所定の領域に書き込む。一方、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ未満である場合には、処理部１５１は、処理を実行するために必要なデータをＦｌａｓｈメモリ１７のデータ保存領域に書き込む。
【０１００】
例えば、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ未満である場合には、処理部１５１は、処理を実行するために必要なデータをＦｌａｓｈメモリ１７のデータ保存領域に書き込む。メモリ制御部は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合、データ保存領域に書き込まれたデータを読み出してＲＡＭ１６内の所定の領域に書き込む。つまり、メモリ制御部は、データ保存領域に書き込まれたデータをＲＡＭ１６内の所定の領域にコピーする。また、メモリ制御部１５４は、ＲＡＭ１６にコピーしたデータのうち無効データを消去し、有効データを抽出して上記所定の領域の所定の位置に（例えば、端から詰めて）書き込む。そして、メモリ制御部は、ＲＡＭ１６を仮想Ｆｌａｓｈメモリとして機能させるように切り替える。以下では、ＲＡＭ１６を仮想Ｆｌａｓｈメモリとして機能させるように切り替える制御のことを、「仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＮ」ともいう。逆にＲＡＭ１６を仮想Ｆｌａｓｈメモリとして機能させなくする制御を「仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＦＦ」ともいう。
【０１０１】
メモリ制御部１５４により仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＮに制御されると、処理部１５１は、処理を実行するために必要なデータをデータ保存領域に書き込まないで、ＲＡＭ１６内の所定の領域に書き込む。即ち、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ以上である場合には、処理部１５１は、処理を実行するために必要なデータをデータ保存領域に書き込まないで、ＲＡＭ１６内の所定の領域に書き込む。
【０１０２】
その後、メモリ制御部１５４は、通常動作状態からスタンバイに遷移したことに基づいて、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれているデータを消去する。そして、メモリ制御部１５４は、データ保存領域に書き込まれているデータを消去した後に、ＲＡＭ１６内の所定の領域に書き込まれているデータのうち、処理を実行するために必要な有効データを、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込む。
【０１０３】
これにより、Ｆｌａｓｈメモリ１７のデータ保存領域が整理され空き領域が確保される。また、本実施形態におけるスタンバイ時のガベージコレクションの処理は、Ｆｌａｓｈメモリ１７のデータ保存領域のデータを消去してＲＡＭ１６から有効データを書き込むだけの処理である。そのため、本実施形態では、第１の実施形態におけるスタンバイ時のガベージコレクションの処理のようにＦｌａｓｈメモリ１７において有効データを一旦移動させてからデータ消去と有効データの書き戻しを行うよりも処理に係る時間を削減することができる。また、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ以上である場合、処理部１５１は、処理を実行するために必要なデータをＲＡＭ１６内の所定の領域に書き込むため、仮に通常動作状態が継続されても、Ｆｌａｓｈメモリ１７のデータ保存領域の空き容量不足により実行中の処理が正常に続けられなくなってしまうことを防止できる。
【０１０４】
（第２の実施形態における処理の動作）
次に、本実施形態に係るガベージコレクションに関連する処理の動作について説明する。なお、ＰＯＳＴ処理時の動作は、第１の実施形態と同様であるためその説明を省略し、ここでは、通常動作状態における処理の動作と、スタンバイ時の処理の動作について説明する。
【０１０５】
上述したように、本実施形態では、制御部１５は、通常動作状態においてＦｌａｓｈメモリ１７に書き込まれたデータ量が閾値ＨＳ以上になると、ＲＡＭ１６内の所定の領域へデータを移動し、当該所定の領域を仮想Ｆｌａｓｈメモリの領域として利用する。また、制御部１５は、スタンバイ時にＦｌａｓｈメモリ１７のデータ保存領域に書き込まれているデータを消去し、消去後にＲＡＭ１６からＦｌａｓｈメモリ１７へ有効データを書き込むガベージコレクションを行う。まず、通常動作状態におけるガベージコレクションに関連する処理の動作について説明する。
【０１０６】
（通常動作状態における処理の動作）
図６は、本実施形態に係る通常動作状態におけるガベージコレクションの処理の一例を示すフローチャートである。
（ステップＳ２１１）制御部１５は、通常動作状態において、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ以上であるか否かを判定する。例えば、制御部１５は、データ保存領域に書き込まれたデータ量が閾値ＨＳ以上であると判定した場合（ＹＥＳ）、即ち、データ保存領域が「Ａｌｍｏｓｔ  Ｆｕｌｌ」になったと判定した場合、ステップＳ２１３の処理に進む。一方、制御部１５は、データ保存領域に書き込まれたデータ量が閾値ＨＳ未満であると判定した場合（ＮＯ）、ステップＳ２１９の処理に進む。
【０１０７】
（ステップＳ２１３）制御部１５は、仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＮであるか否かを判定する。すでに仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＮであると判定された場合（ＹＥＳ）、ステップＳ２１８の処理に進む。一方、仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＦＦであると判定された場合（ＮＯ）、ステップＳ２１５の処理に進む。
【０１０８】
（ステップＳ２１５）制御部１５は、ステップＳ２１３の判定に基づいて通知するための表示情報を出力し、表示部１３に表示させる。例えば、制御部１５は、スタンバイに入るとき又はスタンバイから復帰するときにガベージコレクションを行う旨の通知を示す表示情報を表示部１３に表示させる。そして、ステップＳ２１７の処理に進む。
【０１０９】
（ステップＳ２１７）制御部１５は、ＲＡＭ１６を仮想Ｆｌａｓｈメモリとして機能させるように切り替えるメモリ切替処理を行う。具体的には、制御部１５は、次に示すステップＳ２１７１〜ステップＳ２１７７の処理を実行する。
【０１１０】
（ステップＳ２１７１）制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータを読み出してＲＡＭ１６内の所定の領域に書き込む（コピーする）。そして、ステップＳ２１７３の処理に進む。
【０１１１】
（ステップＳ２１７３）制御部１５は、ＲＡＭ１６にコピーしたデータのうち無効データを消去し、ステップＳ２１７５の処理に進む。
【０１１２】
（ステップＳ２１７５）制御部１５は、ＲＡＭ１６にコピーしたデータのうち有効データを抽出して上記所定の領域の所定の位置に（例えば、端から詰めて）書き込む。そして、ステップＳ２１７７の処理に進む。
【０１１３】
（ステップＳ２１７７）制御部１５は、仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＮに制御し、ＲＡＭ１６を仮想Ｆｌａｓｈメモリとして機能させるように切り替える。
【０１１４】
（ステップＳ２１８）制御部１５は、仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＮの状態では（ステップＳ２１３がＹＥＳの場合、またはステップＳ２１７７の処理後）、実行中の処理に応じて、処理に必要なデータを適宜ＲＡＭ１６の所定の領域に書き込む。
【０１１５】
（ステップＳ２１９）仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＦＦの場合には（ステップＳ２２１がＮＯ）、制御部１５は、実行中の処理に応じて、処理に必要なデータを適宜Ｆｌａｓｈメモリ１７のデータ保存領域に書き込む。
【０１１６】
なお、図６に示すステップＳ２１７のメモリ切替処理において、制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータのうち有効データのみを抽出して、ＲＡＭ１６の所定の領域の所定の位置に（例えば、端から詰めて）書き込んでもよい。
【０１１７】
（スタンバイ時における処理の動作）
次に、スタンバイにおけるガベージコレクションの処理の動作について説明する。
図７は、本実施形態に係るスタンバイにおけるガベージコレクション処理の一例を示すフローチャートである。
【０１１８】
（ステップＳ２２１）制御部１５は、通常動作状態において、スタンバイへ遷移させる操作入力（電源ボタンへの押下など）の有無を判定する。例えば、制御部１５は、スタンバイへ遷移させる操作入力が無いと判定した場合（ＮＯ）、再びステップＳ２２１の処理を行う。一方、制御部１５は、スタンバイへ遷移させる操作入力があったと判定した場合（ＹＥＳ）、ステップＳ２２３の処理に進む。
【０１１９】
（ステップＳ２２３）制御部１５は、通常動作状態からスタンバイへ遷移させる。例えば、制御部１５は、少なくとも表示情報の出力を停止し、表示部１３を画面ＯＦＦに制御する。そして、ステップＳ２２５の処理に進む。
【０１２０】
（ステップＳ２２５）制御部１５は、仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＮであるか否かを判定する。仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＮであると判定された場合（ＹＥＳ）、ステップＳ２２７の処理に進みガベージコレクションを実行する。一方、仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＦＦであると判定された場合（ＮＯ）、制御部１５は、ガベージコレクションを実行しないで、ステップＳ２２９の処理に進む。
【０１２１】
（ステップＳ２２７）制御部１５は、Ｆｌａｓｈメモリ１７に対してガベージコレクションを実行する。具体的には、制御部１５は、次に示すステップＳ２２７１〜ステップＳ２２７５の処理を実行する。
【０１２２】
（ステップＳ２２７１）制御部１５は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれているデータを消去し、ステップＳ２２７３の処理に進む。
【０１２３】
（ステップＳ２２７３）制御部１５は、ＲＡＭ１６内の所定の領域に書き込まれている有効データを、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込み、ステップＳ２２７５の処理に進む。
【０１２４】
（ステップＳ２２７５）制御部１５は、仮想Ｆｌａｓｈメモリ（ＲＡＭ）スイッチＯＦＦに制御し、ＲＡＭ１６を仮想Ｆｌａｓｈメモリとして機能させなくする。つまり、以降の処理では、制御部１５は、処理を実行するために必要なデータをＦｌａｓｈメモリ１７のデータ保存領域に書き込む。
【０１２５】
（ステップＳ２２８）制御部１５は、スタンバイの状態において、スタンバイを解除する操作入力（電源ボタンへの押下など）の有無を判定する。例えば、制御部１５は、スタンバイ解除する操作入力が無いと判定した場合（ＮＯ）、再びステップＳ２２８の処理を行う。一方、制御部１５は、スタンバイを解除する操作入力があったと判定した場合（ＹＥＳ）、ステップＳ２２９の処理に進む。
【０１２６】
（ステップＳ２２９）制御部１５は、スタンバイから通常動作状態へ遷移させ、画面ＯＮに制御する。
【０１２７】
なお、図７に示す処理では、スタンバイに入ったときにガベージコレクションを実行する例を説明したが、スタンバイから復帰するときにガベージコレクションを実行してもよい。その場合、図７に示すステップＳ２２７の処理とステップＳ２２８の処理との順を入れ替え、制御部１５は、スタンバイを解除する操作入力があったと判定した場合、ガベージコレクションを実行してから、通常動作状態へ遷移させ、画面ＯＮに制御する。
【０１２８】
以上説明したように、本実施形態に係る情報処理装置１０において、処理部１５１は、前記処理を実行するために必要なデータを、Ｆｌａｓｈメモリ１７（不揮発性メモリの一例）内のデータ保存領域（特定のデータ領域の一例）とＲＡＭ１６（揮発性メモリの一例）内の所定の領域とに書き込む。具体的には、処理部１５１は、データ保存領域に書き込み状態に基づいて、データの書き込み先をＦｌａｓｈメモリ１７内のデータ保存領域とＲＡＭ１６内の所定の領域とのいずれかに切り替える。一方、処理部１５１は、データ保存領域に書き込まれたデータ量が閾値ＨＳ（第１の閾値）以上である場合にはＲＡＭ１６内の所定の領域に書き込む。
【０１２９】
これにより、情報処理装置１０は、Ｆｌａｓｈメモリ１７のデータ保存領域がいっぱいになる前に、データの書き込み先をＲＭＡ１６に切り替えるため、通常動作状態が継続しても、Ｆｌａｓｈメモリ１７のデータ保存領域の空き容量不足により実行中の処理が正常に続けられなくなってしまうことを防止できる。よって、情報処理装置１０はＦｌａｓｈメモリ１７へのデータ保存処理を適切に制御することができる。
【０１３０】
また、メモリ制御部１５４は、Ｆｌａｓｈメモリ１７のデータ保存領域に書き込まれたデータ量が閾値ＨＳ（第１の閾値）以上であると判定した場合、データ保存領域に書き込まれたデータの少なくとも一部を読み出してＲＭＡ１６内の所定の領域に書き込む。
【０１３１】
これにより、情報処理装置１０は、ＲＭＡ１６に切り替える前にＦｌａｓｈメモリ１７のデータ保存領域に保存された有効データとＲＭＡ１６に切り替えた後にＲＭＡ１６の所定の領域に書き込まれた有効データとを合わせてＲＭＡ１６に保存することができる。
【０１３２】
そして、メモリ制御部１５４は、通常動作状態（第１の状態の一例）からスタンバイ（第２の状態の一例）に遷移したことに基づいて、データ保存領域に書き込まれているデータを消去し、該消去した後に、ＲＡＭ１６内の所定の領域に書き込まれている有効データをデータ保存領域に書き込む。即ち、メモリ制御部１５４は、ＲＡＭ１６の有効データを用いてＦｌａｓｈメモリ１７のデータ保存領域に対してガベージコレクションを実行する。
【０１３３】
これにより、情報処理装置１０は、スタンバイに遷移したタイミングでＦｌａｓｈメモリ１７のデータ保存領域を整理して空き領域を確保することができる。また、情報処理装置１０は、一時的にＲＭＡ１６を利用してデータの保存を行うが、給電が停止されるとＲＭＡ１６にはデータを保存できないため、スタンバイに遷移したタイミングでガベージコレクションを実行することによりデータの保存先をＦｌａｓｈメモリ１７に戻すことができ、安全性を高めることができる。なお、仮にデータの保存先をＦｌａｓｈメモリ１７に戻す前に給電停止が発生した場合でも、データの保存先をＲＭＡ１６に切り替える前にＦｌａｓｈメモリ１７に保存していたデータは残っているため、その時のデータで復帰させることが可能である。
【０１３４】
また、本実施形態におけるスタンバイ時に実行するガベージコレクションの処理は、Ｆｌａｓｈメモリ１７のデータ保存領域のデータを消去してＲＡＭ１６から有効データを書き込むだけであるため、第１の実施形態よりもガベージコレクションの処理時間を短縮することができる。
【０１３５】
以上、図面を参照してこの発明の第１及び第２の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。例えば、第１及び第２の実施形態で説明した構成は、任意に組み合わせてもよい。
【０１３６】
また、上記実施形態では、情報処理装置１０は、Ｆｌａｓｈメモリ１７のデータ保存領域へのデータの書き込み状態に基づいてガベージコレクションを実行する際に、書き込まれたデータ量が一定値を超えたか否かによってガベージコレクションを実行するか否かを判定したが、データ保存領域の空き容量に基づいてガベージコレクションを実行するか否かを判定してもよい。例えば、情報処理装置１０は、データ保存領域の空き容量が所定の閾値未満になった場合に、ＰＯＳＴ処理またはスタンバイのタイミングでガベージコレクションを実行し、データ保存領域の空き容量が所定の閾値以上ある場合にはガベージコレクションを実行しないように制御してもよい。つまり、データ保存領域へのデータの書き込み状態は、書き込まれたデータ量についての状態であってもよいし、データ保存領域の空き容量についての状態であってもよい。
【０１３７】
また、上記実施形態では、情報処理装置１０は、Ｆｌａｓｈメモリ１７のデータ保存領域へのデータの書き込み状態に基づいてガベージコレクションを実行したが、データ保存領域へのデータの書き込み状態にかかわらず、ＰＯＳＴ処理時またはスタンバイ時には常にガベージコレクションを実行してもよい。
【０１３８】
なお、上述した情報処理装置１０は、内部にコンピュータシステムを有している。そして、上述した情報処理装置１０が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した情報処理装置１０が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【０１３９】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に情報処理装置１０が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１４０】
また、上述した実施形態における情報処理装置１０が備える各機能の一部、または全部を、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路として実現してもよい。各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【０１４１】
１０  情報処理装置、１１  通信部、１２  入力部、１３  表示部、１４  スピーカ、１５  制御部、１６  ＲＡＭ、１７  Ｆｌａｓｈメモリ、１５１  処理部、１５２  表示制御部、１５３  電源管理部、１５４  メモリ制御部
【図１】
2020071632.tif 000003
【図２】
2020071632.tif 000004
【図３】
2020071632.tif 000005
【図４】
2020071632.tif 000006
【図５】
2020071632.tif 000007
【図６】
2020071632.tif 000008
【図７】
2020071632.tif 000009