(57)【要約】      （修正有）【課題】システムの起動時間を短縮させるだけでなく、コンピュータ上のシステムの安定性を高めるのに有効な情報処理装置を提供する。【解決手段】情報処理装置１００において、判定部２０３は、システムがスリープ状態に移行した際に、システムを再起動する必要があるか否かを所定の判定条件を用いて判定する。制御部２０４は、判定部２０３の判定結果に従って、システムの状態を移行させる。制御部２０４は、システムが再起動する必要があると判定した場合は、システムを再起動状態に移行させた後、スリープ状態に移行させる。【選択図】図２
2018055532.tif 000002
【特許請求の範囲】
【請求項１】
システムがスリープ状態に移行した際に、
前記システムを再起動する必要があるか否かを所定の判定条件を用いて判定する判定部と、
前記判定部の判定結果に従って、前記システムの状態を移行させる制御部とを備え、
前記制御部は、前記システムが再起動する必要があると判定した場合は、前記システムを再起動状態に移行させた後、前記スリープ状態に移行させる情報処理装置。
【請求項２】
前記システム内のデバイスへの電源供給を制御する電源制御部と、
揮発性メモリを備え、
前記判定部が、所定期間再起動を必要としない状態が継続したと判定した場合、前記制御部は前記システムをサスペンド状態に移行させ、前記電源制御部は、前記揮発性メモリ以外のデバイスへの電源供給を停止する請求項１記載の情報処理装置。
【請求項３】
所定の判定条件は、前記システムがコールドスタートした時点からの積算動作時間が所定時間を超えたか否かであり、
前記判定部は、前記積算動作時間が前記所定時間を超えた場合には、前記システムを再起動する必要があると判定する請求項１記載の情報処理装置。
【請求項４】
前記所定の判定条件は、前記システムのホットスタートによる起動回数が所定回数を超えたか否かであり、
前記判定部は、前記起動回数が前記所定回数を超えた場合には、前記システムを再起動する必要があると判定する請求項１記載の情報処理装置。
【請求項５】
揮発性メモリを備え、
前記所定の判定条件は、前記揮発性メモリの残物理メモリ容量が所定のメモリ容量より大きいか否かであり、
前記判定部は、前記残物理メモリ容量が所定のメモリ容量より大きい場合には、前記システムを再起動する必要があると判定する請求項１記載の情報処理装置。
【請求項６】
前記所定の判定条件は、電源ＯＮ時のＯＳによる物理メモリの獲得状況であり、
前記判定部は、前記ＯＳが物理メモリの獲得に失敗したと判定した場合には、前記システムを再起動する必要があると判定する請求項１記載の情報処理装置。
【請求項７】
前記所定の判定条件は、電源ＯＮ後に起動する特定のアプリケーションの起動時間であり、
前記判定部は、前記起動時間が所定の起動時間より大きいと判定した場合には、前記システムを再起動する必要があると判定する請求項１記載の情報処理装置。
【請求項８】
揮発性メモリと、
複数のデータを記憶した外部媒体と接続する外部ストレージ部を備え、
前記制御部は、前記揮発性メモリの所定の領域に、前記複数のデータの中で、システム上で動作中のアプリケーションが使用中のカレントデータと前記カレントデータと前後関係にあるデータを前記所定の領域に保存すると共に、前記揮発性メモリに前記システムがサスペンド状態に移行しても電源を供給し、
前記システムがサスペンド状態から再起動され、前記アプリケーションが再動作した場合、前記外部媒体がマウントされるまで、前記アプリケーションに前記所定の領域に保存したデータを使用させる請求項１記載の情報処理装置。
【請求項９】
前記制御部は、前記複数のデータから、前記カレントデータと前後関係にあるデータを、前記複数のデータの整列パターンを用いて決定する請求項８記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、システムの起動を高速化するために用いるサスペンド／レジューム機能を有する情報処理装置に関する。
【背景技術】
【０００２】
特許文献１は、サスペンド／レジューム処理を繰り返し行うことで発生するメモリの断片化を防止する情報処理装置を開示する。この情報処理装置は、アプリケーション毎の休止指示回数を記憶する記憶手段と、休止指示を受け付けた際に処理される休止指示回数を更新する更新手段と、休止指示回数が再起動規定数を含む初期化条件に満たすか判断する判断手段と、休止指示を受け付けると休止状態にする休止手段とを備える。これにより、メモリの断片化を防止することで、パソコン上のシステムの安定性を高めることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１４０１９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、システムの起動時間を短縮させるだけでなく、コンピュータ上のシステムの安定性を高めるのに有効な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本開示における情報処理装置は、システムがスリープ状態に移行した際に、システムを再起動する必要があるか否かを所定の判定条件を用いて判定する判定部と、判定部の判定結果に従って、システムの状態を移行させる制御部とを備え、制御部は、システムが再起動する必要があると判定した場合は、システムを再起動状態に移行させた後、スリープ状態に移行させる。
【０００６】
また、本開示における情報処理装置は、システム内のデバイスへの電源供給を制御する電源制御部と、揮発性メモリを備え、判定部が所定期間再起動を必要としない状態が継続したと判定した場合、制御部はシステムをサスペンド状態に移行させ、電源制御部は、判定部と制御部と揮発性メモリ以外のデバイスへの電源供給を停止する。
【発明の効果】
【０００７】
本開示における情報処理装置は、システムの起動時間を短縮させるだけでなく、コンピュータ上のシステムの安定性を高めるのに有効である。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【図２】図２は、実施の形態１に係る情報処理装置のソフトウェア構成の一例を示すブロック図である。
【図３】図３は、実施の形態１に係るシステムの状態遷移図である。
【図４】図４は、判定条件１を用いた場合の判定部の判定方法を説明するフローチャートである。
【図５】図５は、判定条件２を用いた場合の判定部の判定方法を説明するフローチャートである。
【図６】図６は、判定条件３を用いた場合の判定部の判定方法を説明するフローチャートである。
【図７】図７は、判定条件４を用いた場合の判定部の判定方法を説明するフローチャートである。
【図８】図８は、判定条件５を用いた場合の判定部の判定方法を説明するフローチャートである。
【図９】図９は、実施の形態２に係る情報処理装置のハードウェア構成の一例を示すブロック図
【図１０】図１０は、実施の形態２に係る情報処理装置のソフトウェア構成の一例を示すブロック図である。
【図１１】図１１は、実施の形態２に係るメディアプレーヤーの表示画面の一例を示す図である。
【図１２Ａ】図１２Ａは、実施の形態２に係るリスト画面の一例を示す図である。
【図１２Ｂ】図１２Ｂは、実施の形態２に係るリスト画面の一例を示す図である。
【図１２Ｃ】図１２Ｃは、実施の形態２に係るリスト画面の一例を示す図である。
【図１３】図１３は、実施の形態２に情報処理装置１００のデータの読込動作を説明するためのフローチャートである。
【図１４】図１４は、実施の形態２における情報処理装置１１０のデータ更新動作を説明するためのフローチャートである。
【図１５Ａ】図１５Ａは、実施の形態２におけるＲＡＭＤＩＳＫのデータ格納状況を示す概略図である。
【図１５Ｂ】図１５Ｂは、実施の形態２におけるＲＡＭＤＩＳＫのデータ格納状況を示す概略図である。
【図１５Ｃ】図１５Ｃは、実施の形態２におけるＲＡＭＤＩＳＫのデータ格納状況を示す概略図である。
【図１５Ｄ】図１５Ｄは、実施の形態２におけるＲＡＭＤＩＳＫのデータ格納状況を示す概略図である。
【図１６】図１６は再生テーブルの一例を示す図である。
【図１７Ａ】図１７Ａは複数データを保存した場合の格納例を示す図である。
【図１７Ｂ】図１７Ｂは複数データを保存した場合の格納例を示す図である。
【図１８】図１８は、サスペンド／レジューム機能後にアプリケーションの起動時間を短縮する手順を示すフローチャートである。
【図１９】ダイレクトセレクトでミュージックデータを選択した際の再生順の決定方法を示したフローチャートである。
【発明を実施するための形態】
【０００９】
（発明の基礎となった知見）
サスペンド／レジューム機能とは、ユーザがシステムの電源をＯＦＦにした時に、揮発性メモリ内に保存されている現在の作業状態を示しているレジスタの値を不揮発性メモリに保存し、電源をＯＮした時に、不揮発性メモリに保存されたレジスタの値をハードウェアのレジスタに設定することで、リセット前の作業状態を再現するものである。この機能を使用すると、電源をＯＦＦする場合や電源を再度ＯＮする場合に、ＯＳ及びアプリケーションの停止又は再起動をするための操作を行うことが不要となり、システムの起動時間を短縮することができる。
【００１０】
ところが、サスペンド／レジューム機能を１〜２ヶ月という長期間で利用する場合、アプリケーションの休止指示回数が再起動規定数に達していない状態になると、メモリの断片化やソフトエラーによるデータ化けなどが原因で数回に一度再起動が遅くなるという課題が生じる。
【００１１】
上記課題から、システムの起動時間を短縮させるだけでなく、システムの安定性を高めるのに有効な情報処理装置を検討した。
【００１２】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１３】
なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために、提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【００１４】
（実施の形態１）
以下、図１〜図８を用いて実施の形態１を説明する。
【００１５】
［１−１．構成］
以下、本開示の実施の形態について、図面を用いて説明する。
【００１６】
［１−１−１．ハードウェア構成］
図１は本開示の実施の形態１に係る情報処理装置１００のハードウェアの一構成例を示すブロック図である。
【００１７】
情報処理装置１００は、電源ユニット１０１と、電源制御ユニット１０２と、アプリケーションプロセッサ１０３と、揮発性メモリ１０４と、不揮発性メモリ１０５と、表示部１０６と、音声出力部１０７とを備える。
【００１８】
電源ユニット１０１は、電源ＯＮ時に電源制御ユニット１０２に電力供給を行う。
【００１９】
電源制御ユニット１０２は、情報処理装置１００内の各デバイスへの電源供給を制御する。実施の形態１においては、電源制御ユニット１０２は、アプリケーションプロセッサ１０３、揮発性メモリ１０４、不揮発性メモリ１０５、表示部１０６、音声出力部１０７への電源供給を制御する。電源制御ユニット１０２は、電源ＯＮ時には情報処理装置１００内の各部に電力供給を行い、電源ＯＦＦ時にはアプリケーションプロセッサ１０３と揮発性メモリ１０４、不揮発性メモリ１０５の中からシステム状態に応じた電源供給を行う。また、電源制御ユニット１０２は、電源ユニット１０１からの電力供給状態とシステム状態に応じて、アプリケーションプロセッサ１０３が次に移行するべきシステム状態を示す状態情報を生成して送信する。
【００２０】
揮発性メモリ１０４は、アプリケーションプロセッサの主メモリ、ワークメモリとして機能する。揮発性メモリ１０４は、例えばＤＲＡＭである。
【００２１】
不揮発性メモリ１０５は、ＯＳやユーザが実行する機能を実現するためのアプリケーション（プログラム）を記憶する。また、不揮発性メモリ１０５は、作業状態を示す情報、システムの状態を判定するために用いる各種情報の閾値などを記憶する。不揮発性メモリ１０５は、例えば、ｅＭＭＣ（Ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉ  Ｍｅｄｉａ  Ｃａｒｄ）やフラッシュメモリである。
【００２２】
アプリケーションプロセッサ１０３は情報処理装置１００内、及び情報処理装置１００に接続された各デバイスや、アプリケーションプロセッサ１０３内部の各部の動作を制御する。アプリケーションプロセッサ１０３は、不揮発性メモリ１０５が記憶しているアプリケーションの起動や処理、アプリケーションにより出力される映像や音声の出力を制御する。また、アプリケーションプロセッサ１０３は電源制御ユニット１０２から受信した状態情報に従ってシステム状態を制御する。
【００２３】
表示部１０６は、アプリケーションプロセッサ１０３の制御に応じて、情報処理装置１００内で実行されるアプリケーションから出力される映像を制御する。表示部１０６は、例えば液晶ディスプレイである。
【００２４】
音声出力部１０７は、アプリケーションプロセッサ１０３の制御に応じて、情報処理装置１００内で実行されるアプリケーションから出力される音声を出力する。音声出力部１０７は、例えば、情報処理装置１００の内部スピーカである。
【００２５】
［１−１−２．ソフトウェア構成］
図２は、実施の形態１の情報処理装置１００のソフトウェアの機能構成を示すブロック図である。
【００２６】
情報処理装置１００は、電源制御部２０１と、ＣＰＵ２０２と、揮発性メモリ１０４と、不揮発性メモリ１０５とを備える。ＣＰＵ２０２は、判定部２０３と、制御部２０４とを備える。なお、図１と同じ構成要素には同符号を付与し、説明を省略する。
【００２７】
電源制御部２０１は、ＣＰＵ２０２、揮発性メモリ１０４、不揮発性メモリ１０５、表示部１０６、音声出力部１０７、及び情報処理装置１００内の各デバイスへの電源供給を行う。電源制御部２０１は、電源ユニット１０１からの電力供給状態とシステム状態に応じて、ＣＰＵ２０２に次に移行するべきシステム状態を示す状態情報を生成して送信する。電源制御部２０１は、電源ＯＮ時には情報処理装置１００内の各部に電力供給を行い、電源ＯＦＦ時にはアプリケーションプロセッサ１０３と揮発性メモリ１０４に電源供給を行う。
【００２８】
ＣＰＵ２０２は、電源制御部２０１から受信した状態情報に従い、システム状態を移行させる。
【００２９】
判定部２０３は、システムがスリープ状態に移行した際に、システムを再起動する必要があるか否かを所定の判定条件を用いて判定する。
【００３０】
制御部２０４は、ＣＰＵ２０２の制御又は判定部２０３の判定結果に従ってシステムの状態を移行させる。例えば、制御部２０４は、判定部２０３が、システムが再起動する必要があると判定した場合は、システムを再起動させた後、スリープ状態に移行させる。また、制御部２０４は、情報処理装置１００内の各デバイスの制御を行う。
【００３１】
［１−２．動作］
以上のように構成された情報処理装置１００について、その動作を以下に説明する。
【００３２】
［１−２−１．状態遷移］
図３は実施の形態１におけるシステムの状態遷移図である。
【００３３】
図３に示すように、システム状態には、電源ＯＮ状態３１０と、スリープ状態３２０と、サスペンド状態３３０と、電源ＯＦＦ状態３４０と、再起動状態３５０とがある。なお、ユーザには、電源ＯＮ状態３１０と電源ＯＦＦ状態３４０のみが見えており、それ以外の状態はシステム内部の状態である。
【００３４】
電源ＯＮ状態３１０は、電源ユニット１０１からシステム内の各デバイスに電源が供給された状態である。電源ＯＮ状態３１０において、電源制御部２０１はユーザの電源ＯＦＦ操作により、電源ユニット１０１から供給された電源を表示部１０６及び音声出力部１０７へ供給せず（電源ＯＦＦ）、ＣＰＵ２０２に、スリープ状態３２０を示す状態情報を送信する。ＣＰＵ２０２は、電源制御部２０１から状態情報を受信すると、制御部２０４にシステムをスリープ状態３２０に移行させるスリープ処理を行わせる（ステップＳ３１１）。制御部２０４は、現在の動作状態を揮発性メモリ１０４に保存した状態で、動作を中断させる。ＣＰＵ２０２は、電源制御部２０１にシステムがスリープ状態３２０に移行したことを通知する。
【００３５】
スリープ状態３２０は、電源制御部２０１から表示部１０６及び音声出力部１０７へ電源を供給していない状態である。この時、表示部１０６への映像表示や、音声出力部１０７への音声出力は停止されるため、ユーザは操作不可になる。スリープ状態３２０では、表示部１０６及び音声出力部１０７以外のデバイスには電源の供給は継続されている。すなわち、実質的には電源ＯＮ状態３１０が継続されている状態である。電源制御部２０１は、スリープ状態３２０でユーザの電源ＯＮ操作が行われると、表示部１０６及び音声出力部１０７へ電源ユニット１０１から電源を供給し、ＣＰＵ２０２に電源ＯＮ状態３１０を示す状態情報を送信する。ＣＰＵ２０２は、受信した状態情報に応じて、制御部２０４にシステムを電源ＯＮ状態に移行させる（ステップＳ３２３）。制御部２０４は、揮発性メモリ１０４に保存している動作状態を用いて、動作を再開させ、表示部１０６の映像表示や、音声出力部１０７の音声出力を再開させる。ＣＰＵ２０２は、電源制御部２０１にシステムが電源ＯＮ状態３１０に移行したことを通知する。
【００３６】
スリープ状態３２０において、電源制御部２０１は、ユーザから何も操作されない状態が所定期間続いたと判定すると、ＣＰＵ２０２にサスペンド状態３３０を示す状態情報を送信する。ＣＰＵ２０２は電源制御部２０１から状態情報を受信すると、制御部２０４にシステムをサスペンド状態３３０に移行させる（ステップ３２１）。ここで所定期間とは例えば数十分（ここでいう数十分とは１０〜２０分間）のことである。制御部２０４は、サスペンド状態３３０に移行する前のハードウェアのレジスタの値が保存されている揮発性メモリ１０４内のレジスタの値を不揮発性メモリ１０５に保存する。ＣＰＵ２０２は、電源制御部２０１にシステムがサスペンド状態３３０に移行したことを通知する。
【００３７】
サスペンド状態３３０は、電源制御部２０１が表示部１０６及び音声出力部１０７に加え、特定のデバイス以外への電源供給を停止している状態である。制御部２０４は、サスペンド状態３３０では、電源供給停止前の状態に関わるモジュールを継続起動させる。このようにすることで、ユーザから電源ＯＮ操作がなされた場合、電源ＯＮ状態３１０に早期復帰できる（ステップＳ３３２）。従って、サスペンド／レジューム機能による起動時間の短縮を実現できる。また、消費電力も低減することができる。実施の形態１では、電源制御ユニット１０２と揮発性メモリ１０４が特定のデバイスであり、電源供給停止前のスリープ状態３２０のシステムの情報を保持している。
【００３８】
電源制御部２０１は、サスペンド状態３３０で、ユーザからの電源ＯＮの操作が行われると、表示部１０６へ及び音声出力部１０７へ電源ユニット１０１からの電源を供給し、ＣＰＵ２０２に電源ＯＮ状態を示す状態情報を送信する。ＣＰＵ２０２は、電源制御部２０１から状態情報を受信すると、制御部２０４にサスペンド／レジューム機能を用いて、システムを電源ＯＦＦ前の状態へ復帰させる処理を行い、電源ＯＮ状態３１０へ移行させる（ステップＳ３３２）。
【００３９】
電源制御部２０１は、サスペンド状態３３０で、ユーザから電源ＯＮの操作がない状態が所定期間経過したと判定すると、特定のデバイスも含めシステム内の各デバイスへの電源供給を完全に停止する。電源制御部２０１は、電源供給停止状態になると、ＣＰＵ２０２に電源ＯＦＦ状態３４０を示す状態情報を送信する。この場合の所定期間とは数日（ここでいう数日とは２〜３日間）のことである。電源ＯＦＦ状態３４０は、特定のデバイスも含めシステム内の各デバイスへの電源供給を完全に停止し、その動作を停止させている状態である。ＣＰＵ２０２は、制御部２０４にシステムを電源ＯＦＦ状態に移行させる。制御部２０４は、動作中のプログラムなどを全て終了させる。ＣＰＵ２０２は、電源制御部２０１にシステムが電源ＯＦＦ状態３４０に移行したことを通知する。
【００４０】
電源制御部２０１は、電源ＯＦＦ３４０の状態で、ユーザから電源ＯＮの操作が行われ、電源ユニット１０１から電源が供給されると、情報処理装置１００内の各デバイスに電源を供給し、システムが通常起動すると、ＣＰＵ２０２に電源ＯＮ状態３１０を示す状態情報を送信する。ここで、通常起動とは、ハードウェアのレジスタの値が初期化された状態での起動であり、揮発性メモリ１０４やＯＳの完全な初期化動作が行われることである。このように、システムが電源ＯＦＦ状態３４０から、ハードウェアが初期化され起動され、電源ＯＮ状態３１０に移行することをコールドスタートという。これに対して、電源を切らず、揮発性メモリ１０４に前回の動作状態をバックアップしたデータを利用して起動することをホットスタートといい、サスペンド／レジューム機能がこれに当たる。具体的には、サスペンド状態３３０から電源ＯＮ状態３１０に移行することである。
【００４１】
ＣＰＵ２０２の判定部２０３は、スリープ状態３２０において、システムの再起動が必要であるか否かを、不揮発性メモリ１０５に予め記憶されている所定の判定条件を用いて判定する。判定部２０３は再起動が必要であると判定した場合、制御部２０４にシステムを再起動させる（ステップＳ３２４）。再起動処理はアプリケーションプロセッサがハードウェアのレジスタの値が保存されている揮発性メモリ１０４内のレジスタの値を不揮発性メモリ１０５に保存し、システムを起動させる処理である。ＣＰＵ２０２は、システムが再起動状態３５０になると、制御部２０４にレジューム処理を行わせ、システムをスリープ状態３２０に移行させる（ステップＳ３２２）。
【００４２】
ここで、レジューム処理とは、不揮発性メモリ１０５に記憶されている前回のレジスタ状態をハードウェアのレジスタに設定することで、電源ＯＦＦ前のハードウェア状態を再現し、システムを再起動前のスリープ状態３２０に移行させる処理である。
【００４３】
以下、判定部２０３が用いる判定条件について説明する。
【００４４】
［１−２−２．判定条件１］
図４は、判定条件１を用いた場合の判定部２０３の動作を示すフローチャートである。判定条件１は、システムの積算動作時間に着目した条件である。
【００４５】
ＣＰＵ２０２の判定部２０３は、今回の起動がコールドスタートであるか否かを判定する（ステップＳ４０１）。コールドスタートであるか否かは、起動直後に動作するブートローダにより設定されるコールドスタート用フラグの値で判定する。例えば、コールドスタートした場合、コールドスタート用フラグには、ブートローダにより１が設定される。コールドスタート用フラグは不揮発性メモリ１０５に記憶される。
【００４６】
判定部２０３は、ステップＳ４０１において、システム起動がコールドスタートによる起動であると判定した場合（ステップＳ４０１でＹＥＳである場合）、システムの積算動作時間を計測するカウンタｃの値をｃ＝０として初期化する（ステップＳ４０２）。判定部２０３は、ステップＳ４０１において、システム起動がホットスタートによる起動であると判定した場合（ステップＳ４０１でＮＯである場合）、不揮発性メモリ１０５に記憶されている前回のコールドスタートによる起動からの積算動作時間ａｄｄ＿ｔｉｍｅを初期値、すなわちｃ＝ａｄｄ＿ｔｉｍｅとする。判定部２０３は、初期値を設定するとカウンタｃの計測をスタートする（ステップＳ４０４）。
【００４７】
判定部２０３は、電源制御部２０１から電源ＯＦＦ操作が行われたスリープ状態３２０を示す状態情報を受信したかどうかを判定する（ステップＳ４０５）。判定部２０３は電源ＯＦＦ操作を示す情報を受信した場合（ステップＳ４０５でＹＥＳである場合）、カウンタｃの計測をストップする（ステップＳ４０６）。判定部２０３は、電源ＯＦＦを示す状態情報を受信していないと判定した場合（ステップＳ４０５でＮＯである場合）、カウンタｃの計測を継続する。ＣＰＵ２０２は、制御部２０４に、システムを電源ＯＮ３１０状態からスリープ状態３２０に移行させるスリープ処理を行わせる。スリープ状態３２０では、表示部１０６は画面出力が停止した状態になり、音声出力部１０７は音声出力が停止した状態となる。この時、ユーザは操作停止状態となる（ステップＳ４０７）。
【００４８】
判定部２０３は、システムがスリープ状態３２０に移行すると、不揮発性メモリ１０５に記憶されている積算動作時間の閾値Ｔ１を取得する。閾値Ｔ１は、例えば、１０００時間である。判定部２０３は、計測したカウンタｃの値と閾値Ｔ１を比較する（ステップＳ４０８）。判定部２０３は、ステップＳ４０８において、ｃ＞Ｔ１であると判定した場合（ステップＳ４０８でＹＥＳである場合）、再起動が必要であると判定し、カウンタｃをクリア（ｃ＝０）する（ステップＳ４０９）。判定部２０３は、制御部２０４に再起動処理を実行させ、システムを再起動状態３５０に移行させる（ステップＳ４１０）。再起動後、判定部２０３は、制御部２０４にレジューム処理を実行させ、システムをスリープ状態３２０に移行させる（ステップＳ４１１）。
【００４９】
判定部２０３は、ステップＳ４０８において、ｔ＞Ｔ１ではないと判定した場合（ステップＳ４０８において、ＮＯである場合）、すなわち再起動不要と判定した場合、不揮発性メモリ１０５に記憶されているＡｄｄ＿ｔｉｍｅの値をｃに更新する（ステップＳ４１２）。
【００５０】
［１−２−３．判定条件２］
図５は判定条件２を用いた場合の判定部２０３の判定方法を説明するフローチャートである。
判定条件２は、システムの起動回数に着目した条件である。図５において、図４における動作と同じ動作を行うステップに同符号を付与し、説明を簡略化する。
【００５１】
ＣＰＵ２０２の判定部２０３は、電源ＯＮによりシステムが起動すると、コールドスタート用フラグを用いて、今回の起動がコールドスタートであるか否かを判定する（ステップＳ５０１）。ＣＰＵはステップＳ５０１において、システム起動がコールドスタートによる起動であると判断した場合（ステップＳ５０１でＹＥＳである場合）、システムの起動回数を計測するカウンタｃの値をｃ＝０として初期化する（ステップＳ５０２）。判定部２０３は、ステップＳ５０１において、システム起動がホットスタートによる起動であると判定した場合（ステップＳ５０１でＮＯである場合）、不揮発性メモリ１０５に記憶されている前回までのスリープ移行回数Ｎｕｍを初期値、すなわちｃ＝Ｎｕｍとする。ＣＰＵはカウンタｃの計測をスタートする（ステップＳ５０４）。
【００５２】
判定部２０３は、電源制御部２０１から電源ＯＦＦ操作が行われたことを示すスリープ状態３２０を示す状態情報を受信したかどうかを判定する（ステップＳ５０５）。判定部２０３は電源ＯＦＦ操作を示す情報を受信した場合（ステップＳ５０５でＹＥＳである場合）、カウンタｃのカウント値を１つ増やし、計測を終了する（ステップＳ５０６）。ＣＰＵは、電源ＯＦＦの操作が行われていないと判定した場合（ステップＳ５０５でＮＯである場合）、ｃの計測を継続する。
【００５３】
判定部２０３は、ステップＳ５０６でカウンタｃの計測を終了すると、制御部２０４にシステムをスリープ状態３２０に移行させるスリープ処理を行わせる（ステップＳ４０７）。
【００５４】
判定部２０３は、システムが電源ＯＮ状態３１０からスリープ状態３２０に移行すると、不揮発性メモリ１０５に記憶されているスリープ移行回数の閾値Ｔ２を取得する。閾値Ｔ２は、例えば、５０回である。判定部２０３は、計測したカウンタｃの値と閾値Ｔ２を比較する（ステップＳ５０８）。判定部２０３は、ステップＳ５０８において、ｃ＞Ｔ２であると判定した場合（ステップＳ５０８でＹＥＳである場合）、判定部２０３は、カウンタｃをｃ＝０、Ｎｕｍ＝０にクリアする（ステップＳ５０９）。判定部２０３は、制御部２０４に再起動処理を実行させ、システムを再起動状態３５０に移行させる（ステップＳ４１０）。判定部２０３は、制御部２０４にレジューム処理を実行させ、システムをスリープ状態３２０に移行させる（ステップＳ４１１）。このときカウンタｃの値は増加させない。
【００５５】
判定部２０３は、ステップＳ５０８において、ｃ＞Ｔ２ではないと判定した場合は（ステップＳ５０８において、ＮＯである場合）、不揮発性メモリ１０５に記憶されているＮｕｍの値をｃに更新する（ステップＳ５１２）。
【００５６】
［１−２−４．判定条件３］
図６は判定条件３を用いた場合の判定部２０３の判定方法を説明するフローチャートである。判定条件３は、揮発性メモリ１０４の残物理メモリ容量に着目した条件である。図６において、図４における動作と同じ動作を行うステップに同符号を付与し、説明を簡略化する。
【００５７】
ＣＰＵ２０２の判定部２０３は、電源制御部２０１より電源ＯＦＦを示すスリープ状態３２０を示す状態情報を受信したか否かを判定する（ステップＳ６０１）。判定部２０３は、電源ＯＦＦの操作が行われたと判定した場合（ステップＳ６０１でＹＥＳである場合）、制御部２０４にスリープ処理を行わせ、システムをスリープ状態３２０に移行させる（ステップＳ４０７）。判定部２０３は、電源ＯＦＦの操作が行われていないと判定した場合（ステップＳ６０１でＮＯである場合）、ステップＳ６０１に戻る。
【００５８】
判定部２０３は、不揮発性メモリ１０５に記憶されている残物理メモリ容量の閾値Ｔ３と、揮発性メモリ１０４の残物理メモリ容量ｍを取得する。判定部２０３は残物理メモリ容量を確認することで、メモリリークの可能性があるか否かを判定する。ここで、メモリリークとはプログラムがメモリの一部、または全部を解放するのを忘れ、確保したままになってしまい、利用可能なメモリ量が減少することを意味する。
【００５９】
判定部２０３は、ステップＳ６０４において、ｍ＞Ｔ３であると判定した場合（ステップＳ６０４でＹＥＳである場合）、制御部２０４に再起動処理を実行させ、システムを再起動状態３５０に移行させる（ステップＳ４１０）。判定部２０３は、制御部２０４にレジューム処理を実行させ、システムをスリープ状態３２０に移行させる（ステップＳ４１１）。判定部２０３は、ステップＳ６０４において、ｍ＞Ｔ３ではない場合は（ステップＳ６０４において、ＮＯである場合）、処理を終了する。
【００６０】
［１−２−５．判定条件４］
図７は判定条件４を用いた場合の判定部２０３の判定方法を説明するフローチャートである。判定条件４は、ＯＳによる物理メモリの獲得状況に着目した判定条件である。図７において、図４における動作と同じ動作を行うステップに同符号を付与し、説明を簡略化する。
【００６１】
ＣＰＵ２０２の判定部２０３は、電源ＯＮによりシステムが起動した後、物理メモリの確保要求があるか否かを判定する（ステップＳ７０１）。判定部２０３は、物理メモリの確保要求があると判定すると（ステップＳ７０１でＹＥＳである場合）、ＯＳに物理メモリを割り当てる（ステップＳ７０２）。判定部２０３は、物理メモリを確保できたかを判定する（ステップＳ７０３）。判定部２０３は、ステップＳ７０３で物理メモリが正常に獲得されていないと判定した場合（ステップＳ７０３でＮＯである場合）、メモリ獲得フラグｆｌａｇ＝１とする。判定部２０３は、ステップＳ７０３で物理メモリが正常に獲得されたと判定した場合（ステップＳ８０３でＹＥＳである場合）、ｆｌａｇ＝０とする。なお、メモリ獲得フラグは、不揮発性メモリ１０５に保存される。
【００６２】
判定部２０３は、電源制御部２０１からの状態情報から、ユーザが電源ＯＦＦの操作を行ったかどうかを判定する（ステップＳ７０６）。判定部２０３は電源ＯＦＦの操作が行われたと判定した場合（ステップＳ７０６でＹＥＳである場合）、制御部２０４にスリープ処理を行わせる（ステップＳ４０７）。判定部２０３は、電源ＯＦＦの操作が行われていないと判定した場合（ステップＳ７０６でＮＯである場合）、ステップＳ７０６に戻る。
【００６３】
判定部２０３は、システムがスリープ状態３２０になると、メモリ獲得フラグを取得し、前回起動時にＯＳによるメモリの割り当てが失敗であったか否かを判定する（ステップＳ７０８）。具体的には、判定部２０３は、ｆｌａｇ＝１であるかどうかを判定し、ｆｌａｇ＝１である場合（ステップＳ７０８でＹＥＳである場合）、すなわち、メモリ割り当てを失敗している場合は、メモリ獲得フラグを初期化（ｆｌａｇ＝０）する。判定部２０３は、制御部２０４に再起動処理を実行させ、システムを再起動状態３５０に移行させる（ステップＳ４１０）。判定部２０３は、制御部２０４にレジューム処理を実行させ、システムをスリープ状態３２０に移行させる（ステップＳ４１１）。判定部２０３は、ステップＳ７０８において、ｆｌａｇ＝１ではない場合は（ステップＳ７０８において、ＮＯである場合）、処理を終了する。
【００６４】
［１−２−５．判定条件５］
図８は判定条件５を用いた場合の判定部２０３の判定方法を説明するフローチャートである。判定条件５は、アプリケーションの立ち上がり時間に着目した判定条件である。図８において、図４における動作と同じ動作を行うステップに同符号を付与し、説明を簡略化する。
【００６５】
電源ＯＮによりシステムが起動すると、自動的に所定のアプリケーションが起動する（ステップＳ８０１）。判定部２０３は、クロックジェネレータによって生成された計測カウンタｃによる計測をスタートする（ステップＳ８０２）。判定部２０３は、アプリケーションの起動が完了すると（ステップＳ８０３）、計測カウンタｃをストップする（ステップＳ８０４）。
【００６６】
判定部２０３、電源制御部２０１からの状態情報により、ユーザが電源ＯＦＦの操作を行ったかどうかを判定する（ステップＳ８０５）。判定部２０３は電源ＯＦＦの操作が行われたと判定した場合（ステップＳ８０５でＹＥＳである場合）、制御部２０４にスリープ処理を行わせる（ステップＳ４０７）。判定部２０３は、電源ＯＦＦの操作が行われていないと判定した場合（ステップＳ８０５でＮＯである場合）、ステップＳ８０５に戻る。
【００６７】
判定部２０３は、アプリケーションの起動時間の閾値として予め不揮発性メモリ１０５に保存されている閾値Ｔ４を取得する（ステップＳ８０８）。例えば、Ｔ４は１０秒である。
【００６８】
判定部２０３は、ステップＳ８０８において、ｃ＞Ｔ４であると判定した場合（ステップＳ８０８でＹＥＳである場合）、計測カウンタｃを初期化（ｃ＝０）し、制御部２０４に再起動処理を実行させ、システムを再起動状態３５０に移行させる（ステップＳ４１０）。判定部２０３は、制御部２０４にレジューム処理を実行させ、システムをスリープ状態３２０に移行させる（ステップＳ４１１）。ステップＳ８０８において、判定部２０３は、ｔ＞Ｔ４ではないと判定した場合（ステップＳ８０８でＮＯである場合）、計測カウンタｃを初期化（ｃ＝０）し（ステップＳ８０９）、処理を終了する。
【００６９】
［１−３．効果等］
以上のように、本実施の形態の情報処理装置は、判定部２０３は、システムがスリープ状態に移行した際に、システムを再起動する必要があるか否かを所定の判定条件を用いて判定する。制御部２０４は、判定部２０３の判定結果に従って、システムの状態を移行させる。制御部２０４は、判定部２０３が、システムを再起動する必要があると判定した場合は、システムを再起動状態に移行させた後、スリープ状態に移行させる。
【００７０】
これにより、システムがスリープ状態にある期間を利用して、システムを再起動し、メモリの断片化の解消やソフトエラーなどの回復を行うことができる。そのため、システムの安定性を高めることが可能となる。
【００７１】
また、本実施の形態において、判定部２０３は、再起動が必要ではない状態が所定期間継続したと判定した場合、制御部２０４はシステムをサスペンド状態に移行させる。電源制御部２０１は、判定部２０３と制御部２０４を含むアプリケーションプロセッサ１０３と揮発性メモリ１０４以外のデバイスへの電源供給を停止する。
【００７２】
これにより、システムは、揮発性メモリ１０４にスリープ状態３２０前の動作状態を保存したままサスペンド状態３３０に移行する。そのため、サスペンド状態３３０から電源ＯＮ状態３１０へ移行する際のシステムの起動時間を短縮することが可能となる。
【００７３】
また、所定の判定条件は、システムがコールドスタートした時点からの積算動作時間が所定時間を超えたか否かであり、判定部は、前記積算動作時間が前記所定時間を超えた場合には、システムを再起動する必要があると判定する。
【００７４】
また、所定の判定条件は、システムのホットスタートによる起動回数が所定回数を超えたか否かであり、判定部は、起動回数が所定回数を超えた場合には、システムを再起動する必要があると判定する。
【００７５】
所定の判定条件は、揮発性メモリ１０４の残物理メモリ容量が所定のメモリ容量より大きいか否かであり、判定部は、残物理メモリ容量が所定のメモリ容量より大きい場合には、システムを再起動する必要があると判定する。
【００７６】
所定の判定条件は、電源ＯＮ時のＯＳによる物理メモリの獲得状況であり、判定部は、ＯＳが物理メモリの獲得に失敗したと判定した場合には、システムを再起動する必要があると判定する。
【００７７】
所定の判定条件は、電源ＯＮ後に起動する特定のアプリケーションの起動時間であり、
判定部は、起動時間が所定の起動時間より大きいと判定した場合には、システムを再起動する必要があると判定する。
【００７８】
上記各所定の判定条件を設けることで、メモリの断片化やソフトエラーを回避することができる。そのため、システムの安定性を高めることが可能となる。
（実施の形態２）
実施の形態２では、サスペンド／レジューム機能を利用できないデバイスが接続された場合に、サスペンド／レジューム機能を行う情報処理装置の動作について説明する。
【００７９】
以下、図９〜図１９を用いて実施の形態２を説明する。
【００８０】
［２−１．構成］
以下、本開示の実施の形態２について、図面を用いて説明する。
【００８１】
［２−１−１．ハードウェア構成］
図９は本開示の実施の形態２に係る情報処理装置１１０のハードウェアの一構成例を示すブロック図である。図９において、実施の形態１の図１の情報処理装置１００と同じ動作を行う構成要素に対しては、同符号を付与し、説明を省略する。
【００８２】
情報処理装置１１０は、電源ユニット１０１と、電源制御ユニット１１２と、アプリケーションプロセッサ１１３と、揮発性メモリ１１４と、不揮発性メモリ１０５と、表示部１０６と、音声出力部１０７と、外部ストレージ部１０８とを備える。また、揮発性メモリ１１４は、所定の領域にＲＡＭＤＩＳＫ１２４を設ける。
【００８３】
アプリケーションプロセッサ１１３は、実施の形態１の動作に加え、外部ストレージ部１０８を制御する。アプリケーションプロセッサ１１３は、動作中のアプリケーションが使用しているデータと処理上前後関係にあるデータをＲＡＭＤＩＳＫ１２４に保存する。
【００８４】
揮発性メモリ１１４は、アプリケーションプロセッサ１１３の主メモリ、ワークメモリとして機能する。揮発性メモリ１１４は、例えばＤＲＡＭである。
【００８５】
ＲＡＭＤＩＳＫ１２４は、揮発性メモリ１１４内の所定の領域に設けられ、揮発性メモリ１１４のバックアップ用の領域として使用される。揮発性メモリ１１４には、サスペンド時にも電源制御ユニット１０２より電源が供給されるため、ＲＡＭＤＩＳＫ１２４に保存されたデータはサスペンドによって失われることはない。すなわち、ＲＡＭＤＩＳＫ１２４はサスペンド／レジューム機能可能な領域である。
【００８６】
外部ストレージ部１０８は、ＵＳＢメモリやＳＤカードなどの外部媒体が装着される。外部ストレージ部１０８は外部媒体と接続し、アプリケーションの要求に応じて、外部媒体に格納されているデータを読出す。
［２−１−２．ソフトウェア構成］
図１０は、実施の形態２の情報処理装置１１０のソフトウェアの機能構成を示すブロック図である。図１０において、実施の形態１と同様の動作を行う構成要素に関しては、同符号を付与し、説明を省略する。
【００８７】
電源制御部２１１は、実施の形態１の動作に加え、外部ストレージ部１０８への電源供給の制御を行う。
【００８８】
制御部２１４は、実施の形態１の動作に加え、外部ストレージ部１０８に接続された外部媒体やＲＡＭＤＩＳＫ１２４に対する制御を行う。制御部２１４は、外部ストレージ部１０８に接続された外部媒体がマウントされたかどうかを判定し、マウント状態を示すアクセスフラグを設定する。制御部２１４はマウントしている場合は１、マウントしていない場合は０をアクセスフラグに設定する。アクセスフラグは不揮発性メモリ１０５に保存する。また、制御部２１４は、ＲＡＭＤＩＳＫ１２４にアプリケーションが使用中のデータとそのデータと処理上前後関係にあるデータを保存する。
【００８９】
［２−２．動作］
実施の形態２では、アプリケーションプロセッサ１１３がアプリケーションとしてメディアプレーヤーを起動させている場合を一例として説明する。メディアプレーヤーは不揮発性メモリ１０５に記憶されている。また、外部ストレージ部１０８には複数のミュージックデータを格納したＵＳＢメモリ（不図示）が接続されているとする。メディアプレーヤーは、ＵＳＢメモリに格納されているミュージックデータをユーザの操作に応じて再生する。また、実施の形態２において、制御部２１４は、メディアプレーヤーから現在の操作情報を通知されているとして説明する。
【００９０】
［２−２−１．メディアプレーヤー］
図１１は、実施の形態２におけるメディアプレーヤーの表示画面の一例を示す図である。表示画面は制御部２１４の制御により、表示部１０６に表示される。実施の形態２ではメディアプレーヤーはコンテンツデータとしてミュージックデータを再生するアプリケーションである。再生されたミュージックデータは、制御部２１４の制御により音声出力部１０７から出力される。図１２Ａ〜図１２Ｃは、実施の形態２に係るリスト画面の一例である。
【００９１】
カレントミュージックインフォメーション１１０１は、現在再生されているミュージックデータ（カレントミュージック）の曲名やアーティスト名、再生時間などのインフォメーションを表示する。
【００９２】
スタート／ストップボタン１１０２は、カレントミュージックのミュージックデータ（カレントデータ）の再生と停止を操作できるボタンである。
【００９３】
プリビュースボタン１１０３は、カレントミュージックの１つ前のミュージックデータ（プリビュースデータ）を再生するボタンである。
【００９４】
ネクストボタン１１０４は、カレントミュージックの１つ後のミュージックデータ（ネクストデータ）を再生するボタンである。
【００９５】
リストボタン１１０５は、ＵＳＢメモリに格納されているミュージックデータのリストを表示させるボタンである。
【００９６】
図１２Ａ〜図１２Ｃにリスト画面の一例を示す。図１２ＡはユーザがＵＳＢメモリ内のミュージックデータを確認できるリスト画面である。図１２Ａに示すように、リスト画面にはアルバム１、アルバム２に示すアルバムのタイトルリストやプレイリスト１、プレイリスト２に示すプレイリストが表示される。また、リスト画面には、例えば、図１２Ｂに示すように、アルバム１に含まれる８個のミュージックデータ（トラック０〜トラック８）のリストや、図１２Ｃに示すプレイリスト１に含まれる９個のミュージックデータ（トラック０〜トラック８）のリストを表示することも可能である。ここでプレイリストとは、ユーザが任意でミュージックデータや再生順番を決定したリストである。
【００９７】
メディアプレーヤーは、各ボタンが押下されると、押下されたボタンに対する操作情報を制御部２１４に送信する。制御部２１４は受信した操作情報に応じた動作を行う。
【００９８】
［２−２−２．データの読込］
図１３は、実施の形態２に情報処理装置１１０のデータの読込動作を説明するためのフローチャートである。図１３は、ＣＰＵ２１２が行う処理である。図１３はコールドスタートからメディアプレーヤーがＲＡＭＤＩＳＫ１２４にＵＳＢメモリ内のミュージックデータを保存する手順を示すフローチャートである。
【００９９】
コールドスタートからスタートし、ＣＰＵ２１２がリセット状態からリセット解除状態になると、ブートローダプログラムがスタートする（ステップＳ１３０１）。ブートローダは起動するＯＳを決定すると、不揮発性メモリ１０５からＯＳを揮発性メモリ１１４にロードする（ステップＳ１３０２）。ＯＳ（カーネル）が起動すると、揮発性メモリ１０４を初期化して設定し、アプリケーションプロセッサ１１３、揮発性メモリ１１４，不揮発性メモリ１０５を含むシステムに接続されている各種ハードウェアを設定する（ステップＳ１３０３）。
【０１００】
カーネルは揮発性メモリ１１４内の一部領域にサスペンド／レジューム機能可能なＲＡＭＤＩＳＫ１２４を作成する（Ｓ１３０４）。カーネルは、ミュージックデータを格納したＵＳＢメモリをマウントする。制御部２１４はＵＳＢメモリがマウントされると、アクセスフラグをＵＳＢメモリがマウントされていることを示す１に設定する。
【０１０１】
ここで、ユーザ操作によりメディアプレーヤーが起動されたとする。ＣＰＵ２１２の制御部２１４は、メディアプレーヤーを起動させ、ＵＳＢメモリ内のミュージックデータを読み込み、ユーザ操作に応じたミュージックデータの再生を行う。この時、制御部２１４は、ＲＡＭＤＩＳＫ１２４にメディアプレーヤーが再生中のミュージックデータと、再生中のミュージックデータと再生順で前後関係にあるデータを保存する。また、制御部２１４は、ＲＡＭＤＩＳＫ１２４上に、読み込んだミュージックデータのトラック番号（インデックス番号）とＲＡＭＤＩＳＫ１２４内のアドレス（絶対パス）を対応付けた再生テーブルを作成する。
【０１０２】
［２−２−２．データの更新］
図１４は、実施の形態２における情報処理装置１１０のデータ更新動作を説明するためのフローチャートである。図１５Ａ〜図１５Ｄは、実施の形態２におけるＲＡＭＤＩＳＫ１２４のデータ格納状況を示す概略図である。ここでは、メディアプレーヤーに対して図１２Ｂに示すアルバム１に対する再生操作を例に取って説明する。図１６は再生テーブルの一例を示す図である。
【０１０３】
メディアプレーヤーにアルバム１のトラックｎを再生する操作が行われると、制御部２１４はＵＳＢメモリからトラックｎのミュージックデータとその前後のミュージックデータであるトラックｎ−１とトラックｎ＋１を読み込み、ＲＡＭＤＩＳＫ１２４に保存する。制御部２１４は、トラックｎ−１をプリビュースデータ（Ｐｒｅ＿ｄａｔａ）、トラックｎをカレントデータ（Ｃｕｒ＿ｄａｔａ）、トラックｎ＋１をネクストデータ（Ｎｅｘｔ＿ｄａｔａ）として格納する（ステップＳ１４０１）。また、制御部２１４は、保存したデータの再生テーブルを作成する。
【０１０４】
例えば、トラック２の再生操作がなされた場合、制御部２１４は、トラック１、トラック２、トラック３を読み込み、トラック１をＰｒｅ＿ｄａｔａ、トラック２をＣｕｒ＿ｄａｔａ、トラック３をＮｅｘｔ＿ｄａｔａとして格納する（ステップＳ１５０１）。制御部２１４は、再生テーブルを生成する。この時の再生テーブルは、図１６に示すように、トラック１、トラック２、トラック３のトラック番号と各トラックが格納されているＲＡＭＤＩＳＫ１２４内の絶対パスが対応付けて格納する。
【０１０５】
メディアプレーヤーは、トラックｎを再生する（ステップＳ１４０２）。メディアプレーヤーはＵＳＢメモリに格納されている再生テーブルからトラックｎの格納先（絶対パス）を読出し、ＵＳＢメモリからトラックｎを読出して再生する。この時、メディアプレーヤーはリスト画面に図１１に示すようにアルバム１のトラック２が再生されていることを示す。
【０１０６】
メディアプレーヤーは、トラックｎの再生が終了したか否かを判定する（ステップＳ１４０３）。メディアプレーヤーは、ステップ１４０３において、トラックｎの再生が終了していると判定すると（ステップＳ１４０３でＹＥＳである場合）、Ｎｅｘｔ＿ｄａｔａのトラックｎ＋１を再生する（ステップＳ１４０４）。この場合、トラック３が再生され、メディアプレーヤーは、リスト画面にトラック３が再生されていることを示す。制御部２１４はＲＡＭＤＩＳＫ１２４内に保存されていたＰｒｅ＿ｄａｔａであるトラックｎ−１を削除する（ステップＳ１４０５）。この場合、ＲＡＭＤＩＳＫ１２４のＰｒｅ＿ｄａｔａからトラック１が削除される（ステップＳ１５０２）。
【０１０７】
制御部２１４は、トラックｎをＰｒｅ＿ｄａｔａ、トラックｎ＋１をＣｕｒ＿ｄａｔａとして更新し、ＵＳＢメモリからトラックｎ＋２を読み込んでＮｅｘｔ＿ｄａｔａに格納する（ステップＳ１４０６）。この場合、ＲＡＭＤＩＳＫ１２４にはＰｒｅ＿ｄａｔａにトラック２、Ｃｕｒ＿ｄａｔａにトラック３が格納され（ステップＳ１５０３）、Ｎｅｘｔ＿ｄａｔａにトラック４が格納される（ステップＳ１５０４）。この時、制御部２１４は、再生テーブルも更新する。
【０１０８】
ステップＳ１４０３において、制御部２１４はトラックｎの再生が終了していないと判定した場合（ステップＳ１４０３でＮＯである場合）、ネクストボタン１１０４が押下されたかを判定する（ステップＳ１４０７）。制御部２１４は、ネクストボタン１１０４が押下されたと判定すると（ステップＳ１４０７でＹＥＳである場合）、ステップＳ１３０４以降の動作を行う。この場合、トラック３の再生を開始する。
【０１０９】
ステップＳ１４０７において、制御部２１４は、ネクストボタン１１０４が押下されていないと判定すると（ステップＳ１４０７でＮＯである場合）、プリビュースボタン１１０３が押下されたかを判定する（ステップＳ１４０８）。制御部２１４は、プリビュースボタン１１０３が押下されたと判定すると（ステップＳ１４０８でＹＥＳである場合）、トラックｎ−１を再生する（ステップＳ１４０９）。この場合、トラック１が再生され、メディアプレーヤーは、リスト画面にトラック１が再生されていることを示す。制御部２１４はＲＡＭＤＩＳＫ１２４内に保存されていたＮｅｘｔ＿ｄａｔａであるトラックｎ＋１を削除する（ステップＳ１４１０）。この場合、ＲＡＭＤＩＳＫ１２４のＮｅｘｔ＿ｄａｔａからトラック３が削除される（ステップＳ１５０５）。制御部２１４は、再生テーブルを更新する。
【０１１０】
制御部２１４は、トラックｎ−１をＣｕｒ＿ｄａｔａ、トラックｎをＮｅｘｔ＿ｄａｔａとして更新し、ＵＳＢメモリからトラックｎ―２を読み込んでＰｒｅ＿ｄａｔａに格納する（ステップＳ１４１１）。この場合、ＲＡＭＤＩＳＫ１２４にはＣｕｒ＿ｄａｔａにトラック１、Ｎｅｘｔ＿ｄａｔａにトラック２が格納され（ステップＳ１５０６）、Ｐｒｅ＿ｄａｔａにトラック０が格納される（ステップＳ１５０７）。
【０１１１】
ステップＳ１４０８において、制御部２１４は、プリビュースボタン１１０３が押下されていないと判定すると（ステップＳ１４０８でＮＯである場合）、プレイリストでミュージックデータ（トラックｐ）が押下されたかを判定する（ステップＳ１４１２）。制御部２１４は、トラックｐが押下されたと判定すると（ステップＳ１４１２でＹＥＳである場合）、トラックｐを再生する（ステップＳ１４１３）。制御部２１４はＲＡＭＤＩＳＫ１２４内の全データを削除する（ステップＳ１４１４）。制御部２１４は、ＵＳＢメモリからトラックｐ―１、トラックｐ、トラックｐ＋１を読み込み、それぞれ、Ｐｒｅ＿ｄａｔａ、Ｃｕｒ＿ｄａｔａ、Ｎｅｘｔ＿ｄａｔａに格納する（ステップＳ１４１５）。制御部２１４は、再生テーブルを更新する。
【０１１２】
例えば、図１２Ｃに示すプレイリスト１におけるトラック４が押下された場合、トラック４が再生され、メディアプレーヤーは、リスト画面にトラック４が再生されていることを示す。制御部２１４は、ＲＡＭＤＩＳＫ１２４からトラック１〜トラック３のデータを削除する（ステップＳ１５０８）。制御部２１４は、ＲＡＭＤＩＳＫ１２４のＰｒｅ＿ｄａｔａにトラック９、Ｃｕｒ＿ｄａｔａにトラック４、Ｎｅｘｔ＿ｄａｔａにトラック６を格納する（ステップＳ１５０９）。制御部２１４は、再生テーブルを更新する。
【０１１３】
ステップＳ１４１２において、制御部２１４は、トラックｐが押下されていないと判定すると（ステップＳ１４１２でＮＯである場合）、ステップＳ１４０３に戻る。
【０１１４】
また、ユーザが聴きたいミュージックデータを直接選択するダイレクトセレクトでミュージックデータ（例えば、トラック７）が押下された場合、トラック７が再生され、メディアプレーヤーは、リスト画面にトラック７が再生されていることを示す。ダイレクトセレクトで選択された場合、制御部２１４は、ＲＡＭＤＩＳＫ１２４内にある全データを削除し（ステップＳ１５０８）、トラック７はアルバム１に格納されているので、Ｐｒｅ＿ｄａｔａにトラック６、Ｃｕｒ＿ｄａｔａにトラック７、Ｎｅｘｔ＿ｄａｔａにトラック８をＵＳＢメモリから読み込んで格納する（ステップＳ１５１０）。制御部２１４は、再生テーブルを更新する。
【０１１５】
なお、実施の形態２では、ネクストデータとプリビュースデータは、ＲＡＭＤＩＳＫ１２４に１つずつ保存したが、各々複数のデータを保存しても構わない。プリビュースデータとネクストデータは、必要数をリストと同様の並びで保存する。
【０１１６】
図１７Ａは複数データを保存した場合の格納例を示す図である。図１７Ｂは複数データを保存した場合の格納例を示す図である。図１７Ａ、図１７Ｂは、カレントデータ１つとネクストデータ２つ、プリビュースデータ２つを保存した場合を示す。
【０１１７】
図１７Ａは、図１２Ｂのアルバム１において、トラック３が再生される場合のＲＡＭＤＩＳＫ１２４の格納されているデータを示す。図１７Ａに示すように、トラック３が再生されている時は、Ｃｕｒ＿ｄａｔａにトラック３、Ｐｒｅ＿ｄａｔａにトラック１、トラック２、Ｎｅｘｔ＿ｄａｔａにトラック４、トラック５が格納されている（ステップＳ１７０１）。ネクストデータとプリビュースデータが増加した場合もデータの移り変わりは同様である。トラック３の再生が終了、またはネクストボタン１１０４が押下されると、トラック４が再生される。この場合、ＲＡＭＤＩＳＫ１２４内に保存されていたトラック１が削除され（ステップＳ１７０２）、Ｐｒｅ＿ｄａｔａがトラック２とトラック３、Ｃｕｒ＿ｄａｔａがトラック４に更新される（ステップＳ１７０３）。Ｎｅｘｔ＿ｄａｔａには、トラック５とＵＳＢメモリから読み込んだトラック６に更新される（ステップＳ１７０４）。
【０１１８】
また、図１７Ｂに示すように、トラック３を再生している状態で、プリビュースボタン１１０３が押下された場合、トラック３のプリビュースデータであるトラック２が再生される。この時、ＲＡＭＤＩＳＫ１２４においては、トラック５が削除され（ステップＳ１７０５）、Ｃｕｒ＿ｄａｔａがトラック２、Ｎｅｘｔ＿ｄａｔａがトラック３とトラック４に更新される（ステップＳ１７０６）。また、Ｐｒｅ＿ｄａｔａは、トラック１と、ＵＳＢメモリから読み込んだトラック０に更新される（ステップＳ１７０７）。
【０１１９】
［２−２−３．再起動時の動作］
図１８は、サスペンド／レジューム機能後にアプリケーションの起動時間を短縮する手順を示すフローチャートである。図１８において、図１と同じ動作を行うステップについては同符号を付与し、説明を省略する。
【０１２０】
サスペンド状態３３０でユーザが電源ＯＮ操作を行うと、ＣＰＵ２１２のリセット状態が解除され、ブートローダプログラムがスタートする（ステップＳ１３０１）。ブートローダは起動するＯＳを決定すると、不揮発性メモリ１０５からＯＳを揮発性メモリ１１４にロードする（ステップＳ１３０２）。
【０１２１】
ＯＳ（カーネル）が起動すると（ステップＳ１３０３）、ＣＰＵ２１２は、揮発性メモリ１１４に記憶されている情報を利用して、情報処理装置１１０内の各デバイスをサスペンド前のハードウェア状態へ復帰するようにレジューム起動する（ステップＳ１８０４）。ＣＰＵ２１２は、サスペンドレジューム機能が非対応のアプリケーションは、ＲＡＭＤＩＳＫ１２４内の情報を読み込み、電源ＯＦＦ前の状態からアプリケーション機能を実行する。例えば、サスペンド前にメディアプレーヤーでＵＳＢメモリ内のミュージックデータを再生していたとすると、ＣＰＵ２１２は、レジューム起動時にメディアプレーヤーを起動する。ＵＳＢメモリは、サスペンド／レジューム機能非対応の媒体である。
【０１２２】
制御部２１４は、ＵＳＢメモリがマウントされたか否かを判定する（ステップＳ１８０５）。制御部２１４は、ステップＳ１８０５で、ＵＳＢメモリがマウントされていないと判定した場合（ステップＳ１８０５でＮＯである場合）、アクセスフラグをＵＳＢメモリがマウントされていないことを示す０に設定する。アクセスフラグは起動時に０に設定されているので、この場合、制御部２１４は何も動作しないとしてもよい。メディアプレーヤーは、アクセスフラグを読み出し、ＵＳＢメモリがマウントされていないことを確認し、ＲＡＭＤＩＳＫ１２４内に保存されているカレントデータやプリビュースデータ、ネクストデータといったミュージックデータを読み込む（ステップＳ１８０６）。
【０１２３】
メディアプレーヤーはカレントデータのミュージックを再生する。メディアプレーヤーは、サスペンド前がカレントデータの途中で終わっている場合、続きから再生する（ステップＳ１８０７）。メディアプレーヤーは、カレントミュージックデータの再生が終了したか、またはユーザがプリビュースボタン１１０３や、ネクストボタン１１０４や、プレイリスト内のミュージックデータや、ダイレクトセレクトでアルバムリスト内のミュージックデータを押下されると、操作内容に応じた動作を行う（ステップＳ１８０８）。制御部２１４は、ＵＳＢメモリがマウントされたと判定するまで、判定処理を繰り返す（ステップＳ１８０５に戻る）。
【０１２４】
Ｓ１８０５で、制御部２１４はＵＳＢメモリがマウントされたと判定した場合（ステップＳ１８０５でＹＥＳの場合）、アクセスフラグを１に設定する。メディアプレーヤーはアクセスフラグを読出し、ＵＳＢメモリがマウントされていることを確認する。メディアプレーヤーはマウントされたＵＳＢメモリがサスペンド前にマウントされていたＵＳＢメモリと同一であるかを各々のＵＳＢメモリのデバイスＩＤを比較し判定する。また、制御部２１４は、各々のＵＳＢメモリに同一のミュージックデータが存在するか否かを判定するために、ＲＡＭＤＩＳＫ１２４内のカレントデータの絶対パス／曲名とＵＳＢメモリの絶対パス／曲名を比較する（ステップＳ１８０９）。
【０１２５】
メディアプレーヤーは、ＵＳＢメモリが同一でないと判定した場合（ステップＳ１８０９でＮＯである場合）、現在マウントされているＵＳＢメモリ内にあるミュージックデータを読み込み（ステップＳ１８１０）、ルートディレクトリから一番上にある先頭のミュージックデータから再生する（ステップＳ１８１１）。
【０１２６】
メディアプレーヤーは、マウントされたＵＳＢメモリがサスペンド前にマウントされていたＵＳＢメモリと同一であると判定した場合（ステップＳ１８０９でＹＥＳである場合）、ＵＳＢメモリ内のミュージックデータを読み込み（ステップＳ１８１２）、ユーザがステップＳ１８０９で選択したミュージックデータを再生する（ステップＳ１８１３）。
【０１２７】
［２−２−４．整列パターン］
制御部２１４は、ミュージックデータがダイレクトセレクトで選択された場合、Ｐｒｅ＿ｄａｔａ、Ｎｅｘｔ＿ｄａｔａは、ミュージックデータの整列パターンに応じて決定する。
【０１２８】
図１９は、ダイレクトセレクトでミュージックデータを選択した際の再生順序の決定方法を示したフローチャートである。ここでは、名前順（曲名順）と日付順（ＵＳＢメモリへの格納日時）を整列パターンの一例として説明する。
【０１２９】
まず、メディアプレーヤーにおいて、ダイレクトセレクトによりデータが再生される（ステップＳ１９０１）。
【０１３０】
制御部２１４は、整列パターンがアルファベットや“あいうえお”といった名前順でソートされているか否かを判定する（ステップＳ１９０２）。制御部２１４は、名前順でソートされていると判定した場合（ステップＳ１９０２でＹＥＳである場合）、制御部２１４は、ＲＡＭＤＩＳＫ１２４にＰｒｅ＿ｄａｔａにＣｕｒ＿ｄａｔａの名前よりも１つ前の名前のデータを保存する（ステップＳ１９０３）。制御部２１４は、Ｎｅｘｔ＿ｄａｔａにＣｕｒ＿ｄａｔａの名前よりも１つ後の名前のデータを保存する（ステップＳ１９０４）。
【０１３１】
制御部２１４は、ステップＳ１９０２で整列パターンが名前順でないと判定した場合（ステップＳ１９０２でＮＯである場合）、整列パターンがＵＳＢメモリに登録された日付順であるか否かを判定する（ステップＳ１９０５）。制御部２１４は、ステップＳ１９０５で、整列パターンが登録日付順であると判定した場合（ステップＳ１９０５でＹＥＳである場合）、Ｐｒｅ＿ｄａｔａにＣｕｒ＿ｄａｔａの日付よりも１つ前の日付のデータを保存する（ステップＳ１９０６）。制御部２１４は、Ｎｅｘｔ＿ｄａｔａにＣｕｒ＿ｄａｔａの日付よりも１つ後の日付のデータ保存する（ステップＳ１９０７）。
【０１３２】
制御部２１４は、ステップＳ１９０５において、整列パターンが登録日付順ではないと判定した場合（ステップＳ１９０５でＮＯである場合）、整列パターンはランダムであると判定する。制御部２１４は、乱択アルゴリズムを用いて無作為に取得したミュージックデータをＣｕｒ＿ｄａｔａ、Ｐｒｅ＿ｄａｔａ、Ｎｅｘｔ＿ｄａｔａに保存する（ステップＳ１９０８）。
【０１３３】
乱択アルゴリズムの一例として、ＵＳＢメモリ内のミュージックデータがＮ個保存され、乱択アルゴリズムによって０〜Ｎ−１にナンバリングされている場合で説明する。制御部２１４は、Ｎｏ．０のデータをＣｕｒ＿ｄａｔａとして保存する。制御部２１４は、Ｎｏ．１をＰｒｅ＿ｄａｔａとして保存し、Ｐｒｅ＿ｄａｔａが複数個（例えばＭ個）必要な場合は、Ｎｏ．２からＭ個のデータを保存する。制御部２１４は、Ｎｅｘｔ＿ｄａｔａとして、Ｎｏ．Ｍ＋１を保存し、Ｎｅｘｔ＿ｄａｔａが複数個（例えば、Ｌ個）必要な場合はＮｏ．Ｍ＋１からＬ個のデータを保存する。この場合、Ｌ、Ｍ、Ｎには次の関係が成り立つ。Ｐｒｅ＿ｄａｔａをＭ個（０＜Ｍ＜Ｎ−１）保存すると、Ｎｅｘｔ＿ｄａｔａはＬ個（０＜Ｌ＜Ｎ−Ｍ）保存する。
【０１３４】
［２−３．効果等］
以上のように、本実施の形態において、制御部２１４は、揮発性メモリ１１４に設けたＲＡＭＤＩＳＫ１２４に、複数のデータの中で、システム上で動作中のアプリケーションが使用中のカレントデータと、カレントデータと前後関係にあるプリビュースデータとネクストデータを保存する。また、電源制御部２１１は、揮発性メモリ１１４にシステムがサスペンド状態に移行しても電源を供給する。制御部２１４は、システムがサスペンド状態から再起動され、アプリケーションが再動作した場合、外部媒体がマウントされるまで、アプリケーションにＲＡＭＤＩＳＫ１２４に保存したデータを使用させる。
【０１３５】
これにより、サスペンド／レジューム機能によりシステムが起動した場合に、ＵＳＢメモリがマウントされていない状態でも、ＵＳＢメモリがマウントされるまで、ＲＡＭＤＩＳＫ１２４に保存されているデータを用いて、サスペンド前の状態を再現することができる。そのため、消費電力を低減しつつ、サスペンド／レジューム機能がないデバイスが接続されている場合でも、起動時間の短縮を実現できる。すなわち、システムの安定性を高めることができる。
【０１３６】
また、本実施の形態において、制御部２１４は、複数のデータから、プリビュースデータとネクストデータを、複数のデータの整列パターンを用いて決定する。
【０１３７】
これにより、ダイレクトセレクトでデータの再生を行う場合に、プレビュースデータとネクストデータを自動的に設定することができる。
【０１３８】
（他の実施の形態）
以上のように、本出願において開示する技術の例示として、実施の形態１〜２を説明した。しかしながら、本開示における技術は、これに限定されず、変更、置き換え、付加、省略などを行った実施の形態にも適用できる。また、上記実施の形態１で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
【０１３９】
そこで、以下、他の実施の形態を例示する。
【０１４０】
本開示では、電源ユニット１０１は単体であったが、電源ＯＮ時に電源制御ユニット１０２に電力供給を行うユニットと、電源ＯＦＦ時に電源制御ユニット１０２に電力供給を行うユニットを別体としてもよい。例えば、電源ＯＦＦ時のユニットとして、バッテリーユニットを用いてもよい。
【０１４１】
実施の形態１における閾値Ｔ１〜Ｔ３の値は、実施の形態１で説明した値に限定する物ではなく、システムに応じて適宜設定すればよい。
【０１４２】
実施の形態２では、コンテンツデータとしてミュージックデータを一例として説明したが、コンテンツデータはミュージックデータだけに限定せず、ピクチャーデータやムービーデータなどでも構わない。
【０１４３】
実施の形態２では、外部デバイスがＵＳＢメモリである場合を説明したが、これに限定するものではなく、ＳＤカードなど上記データを保存できる外部ストレージメモリなら種類は問わない。
【０１４４】
実施の形態２では、アプリケーションの一例としてメディアプレーヤーを用いたが、これに限定するものではなく、ピクチャーデータを再生するフォトビューアーなど、データを再生するアプリケーションであれば種類は問わない。言い換えると、データを所定の順序に従ってアクセスし、カレントデータ、プレビューデータ、ネクストデータを特定できるアプリケーションに適応可能である。
【産業上の利用可能性】
【０１４５】
本開示は、具体的には、車載表示装置、スマートフォン、タブレット、ＰＣなどの一般的な情報処理装置などに、本開示は適用可能である。
【符号の説明】
【０１４６】
１００、１１０  情報処理装置
１０１  電源ユニット
１０２、１１２  電源制御ユニット
１０３、１１３  アプリケーションプロセッサ
１０４、１１４  揮発性メモリ
１０５  不揮発性メモリ
１０６  表示部
１０７  音声出力部
１０８  外部ストレージ部
１２４  ＲＡＭＤＩＳＫ
２０１、２１１  電源制御部
２０２、２１２  ＣＰＵ
２０３  判定部
２０４、２１４  制御部
３１０  電源ＯＮ状態
３２０  スリープ状態
３３０  サスペンド状態
３４０  電源ＯＦＦ状態
３５０  再起動状態
１１０１  カレントミュージックインフォメーション
１１０２  スタート／ストップボタン
１１０３  プリビュースボタン
１１０４  ネクストボタン
１１０５  リストボタン
【図１】
2018055532.tif 000003
【図２】
2018055532.tif 000004
【図３】
2018055532.tif 000005
【図４】
2018055532.tif 000006
【図５】
2018055532.tif 000007
【図６】
2018055532.tif 000008
【図７】
2018055532.tif 000009
【図８】
2018055532.tif 000010
【図９】
2018055532.tif 000011
【図１０】
2018055532.tif 000012
【図１１】
2018055532.tif 000013
【図１２Ａ】
2018055532.tif 000014
【図１２Ｂ】
2018055532.tif 000015
【図１２Ｃ】
2018055532.tif 000016
【図１３】
2018055532.tif 000017
【図１４】
2018055532.tif 000018
【図１５Ａ】
2018055532.tif 000019
【図１５Ｂ】
2018055532.tif 000020
【図１５Ｃ】
2018055532.tif 000021
【図１５Ｄ】
2018055532.tif 000022
【図１６】
2018055532.tif 000023
【図１７Ａ】
2018055532.tif 000024
【図１７Ｂ】
2018055532.tif 000025
【図１８】
2018055532.tif 000026
【図１９】
2018055532.tif 000027