(57)【要約】【課題】オン状態からサスペンド状態への遷移に要する時間を削減する。【解決手段】電子機器１は、メモリＭ１及びメモリＭ２と、メモリＭ２への電流の供給を遮断する制御をする電流制御部１６と、メモリＭ１に優先的に割り当てられるべきメモリ領域を示す優先情報に基づいて、メモリＭ１及びメモリＭ２のいずれかにメモリ領域を割り当てるメモリ管理部２０とを備える。例えば、優先情報は、アプリケーションが利用するメモリ領域をメモリＭ１に優先的に割り当てるべき度合いである第一優先度との対応付けを含み、メモリ管理部２０は、アプリケーションからメモリ領域の割り当ての要求を受けた場合に、アプリケーションに優先情報により対応付けられている第一優先度が高いほど、より優先的に、メモリＭ１にメモリ領域を割り当てる。【選択図】図２
2019179378.tif 000002
【特許請求の範囲】
【請求項１】
第一メモリ及び第二メモリを含む複数の揮発性メモリと、
前記第二メモリへの電流の供給を遮断する制御をする電流制御部と、
前記第一メモリに優先的に割り当てられるべきメモリ領域を示す優先情報に基づいて、前記第一メモリ及び前記第二メモリのいずれかにメモリ領域を割り当てるメモリ管理部とを備える
電子機器。
【請求項２】
前記優先情報は、前記複数の揮発性メモリを利用して動作するアプリケーションと、当該アプリケーションが利用するメモリ領域を前記第一メモリに優先的に割り当てるべき度合いである第一優先度との対応付けを含み、
前記メモリ管理部は、アプリケーションからメモリ領域の割り当ての要求を受けた場合に、前記アプリケーションに前記優先情報により対応付けられている前記第一優先度が高いほど、より優先的に、前記第一メモリにメモリ領域を割り当てる
請求項１に記載の電子機器。
【請求項３】
前記メモリ管理部は、さらに、
前記アプリケーションが起動される頻度を取得し、取得した前記頻度が高いほど、前記第一優先度を高くする調整をする
請求項２に記載の電子機器。
【請求項４】
前記優先情報は、前記複数の揮発性メモリに配置されるファイルと、当該ファイルが配置されるメモリ領域を前記第一メモリに優先的に割り当てるべき度合いである第二優先度との対応付けを含み、
前記メモリ管理部は、ファイルが配置されるべきメモリ領域の割り当ての要求を受けた場合に、前記ファイルに前記優先情報により対応付けられている前記第二優先度が高いほど、より優先的に、前記第一メモリにメモリ領域を割り当てる
請求項１〜３のいずれか１項に記載の電子機器。
【請求項５】
前記メモリ管理部は、前記電流制御部が前記第二メモリへの電流の供給を遮断する前に、前記第二メモリに記憶されているデータを前記第一メモリにコピーする
請求項１〜４のいずれか１項に記載の電子機器。
【請求項６】
前記メモリ管理部は、
前記複数の揮発性メモリのうちの、前記第二メモリを含む二以上の不揮発性メモリに亘ってメモリ領域を割り当てた場合には、
前記電流制御部が前記第二メモリへの電流の供給を遮断する前に、割り当てた前記メモリ領域のうち前記第二メモリに含まれている部分領域に記憶されているデータを前記第一メモリにコピーする
請求項１〜５のいずれか１項に記載の電子機器。
【請求項７】
前記電流制御部は、さらに、前記電子機器が備える１以上のハードウェアのうちの予め定められた被制御ハードウェアへの電流の供給を遮断する制御をし、
前記メモリ管理部は、さらに、
前記電流制御部が前記被制御ハードウェアへの電流の供給を遮断する前に、前記被制御ハードウェアを制御するドライバの状態を示す状態情報を前記第一メモリに記憶させ、
前記電流制御部が前記被制御ハードウェアへの電流の供給を復旧した後に、前記状態情報を前記ドライバにコピーする
請求項１〜６のいずれか１項に記載の電子機器。
【請求項８】
前記メモリ管理部は、さらに、
前記電流制御部が前記被制御ハードウェアへの電流の供給を遮断する前に、前記記憶が完了したことを示す完了情報を前記第一メモリに記憶させ、
前記電流制御部が前記被制御ハードウェアへの電流の供給を復旧した後に、前記第一メモリに前記完了情報が記憶されていると判定した場合に前記状態情報を前記ドライバにコピーする
請求項７に記載の電子機器。
【請求項９】
前記メモリ管理部は、さらに、
前記電流制御部が前記被制御ハードウェアへの電流の供給を遮断する前に、複数の前記ドライバのうちの１以上のドライバの状態を示す状態情報を前記第一メモリに記憶させるたびに、前記記憶が完了したことを示す部分完了情報を前記第一メモリに記憶させ、
前記電流制御部が前記被制御ハードウェアへの電流の供給を復旧した後に、前記第一メモリに記憶されている前記部分完了情報を参照し、
（ａ）複数の前記ドライバのうち、前記状態情報が前記第一メモリに記憶されているドライバに前記状態情報を戻し、
（ｂ）複数の前記ドライバのうち、前記状態情報が前記第一メモリに記憶されていないドライバを初期状態にする
請求項７又は８に記載の電子機器。
【請求項１０】
前記電子機器は、さらに、
ユーザによる、前記電子機器をオフ状態からオン状態に遷移させる操作を受ける操作部を備え、
前記メモリ管理部は、さらに、
現時点より後に前記電子機器がオフ状態からオン状態に遷移する時点である推定オン時点を推定し、
前記電流制御部は、さらに、
現時点から前記推定オン時点までの時間長が所定より大きい場合に、前記第二メモリへの電流の供給を遮断する制御をし、
現時点から前記推定オン時点までの時間長が所定より小さくなった場合に、前記第二メモリへの電流の供給を復旧する制御をする
請求項１〜９のいずれか１項に記載の電子機器。
【請求項１１】
第一メモリ及び第二メモリを含む複数の揮発性メモリを備える電子機器の制御方法であって、
前記第二メモリへの電流の供給を遮断する制御をする電流制御ステップと、
前記第一メモリに優先的に割り当てられるべきメモリ領域を示す優先情報に基づいて、前記第一メモリ及び前記第二メモリのいずれかにメモリ領域を割り当てるメモリ管理ステップとを含む
制御方法。
【請求項１２】
請求項１１に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータの待機時の電力消費を抑えるＳｕｓｐｅｎｄ  ｔｏ  ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）技術がある。Ｓｕｓｐｅｎｄ  ｔｏ  ＲＡＭ技術は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）上に情報を保持したうえでＤＲＡＭ以外への電流の供給を遮断し待機（サスペンド）することで、待機時の消費電力を削減しつつ、次回の起動時に高速に処理を再開できる。
【０００３】
さらに、例えば２つのチャネルのＤＲＡＭのうち、１つのチャネルのＤＲＡＭへの電流の供給を遮断することで、待機時の消費電力をより一層削減することができる。
【０００４】
従来、ＲＡＭに記憶されたデータを圧縮し、記憶データを保持する必要がないＲＡＭへの電流の供給を遮断する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２８２５８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、オン状態からサスペンド状態に遷移する際に、記憶データの圧縮、及び、記憶容量の算出などの処理のための時間を要する。そのため、サスペンド状態への遷移を短時間で行うことができないという問題がある。
【０００７】
そこで、本発明は、オン状態からサスペンド状態への遷移に要する時間を削減する電子機器等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る電子機器は、第一メモリ及び第二メモリを含む複数の揮発性メモリと、前記第二メモリへの電流の供給を遮断する制御をする電流制御部と、前記第一メモリに優先的に割り当てられるべきメモリ領域を示す優先情報に基づいて、前記第一メモリ及び前記第二メモリのいずれかにメモリ領域を割り当てるメモリ管理部とを備える。
【０００９】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【００１０】
本発明に係る電子機器は、オン状態からサスペンド状態への遷移に要する時間を削減できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態１に係る電子機器の動作モードの説明図である。
【図２】図２は、実施の形態１に係る電子機器の構成を示すブロック図である。
【図３】図３は、実施の形態１に係る電子機器のメモリ領域の説明図である。
【図４】図４は、実施の形態１に係るアプリケーションごとのメモリ領域の優先度と閾値とを示す説明図である。
【図５】図５は、実施の形態１に係る優先度の調整方法を示す説明図である。
【図６】図６は、実施の形態１に係るアプリケーションと、アプリケーションが使用するファイルとの対応を示す対応表である。
【図７】図７は、実施の形態１に係るファイルと、ファイルの優先度との対応を示す対応表である。
【図８】図８は、実施の形態１に係る電子機器のメモリ割り当て処理を示すフロー図である。
【図９】図９は、実施の形態１に係る電子機器の電流遮断処理をフロー図である。
【図１０】図１０は、実施の形態１に係る電子機器の電流復旧処理を示すフロー図である。
【図１１】図１１は、実施の形態２に係る電子機器の電流遮断処理を示すフロー図である。
【図１２】図１２は、実施の形態２に係る電子機器の電流復旧処理を示すフロー図である。
【図１３】図１３は、実施の形態３に係る電子機器のメモリ領域の説明図である。
【図１４】図１４は、実施の形態３に係る電子機器の電流遮断処理を示すフロー図である。
【図１５】図１５は、実施の形態３に係る電子機器の電流復旧処理を示すフロー図である。
【図１６】図１６は、実施の形態４に係る電子機器の動作時間の履歴を示す説明図である。
【図１７】図１７は、実施の形態４に係る電子機器の状態遷移に関する処理を示す説明図である。
【発明を実施するための形態】
【００１２】
本発明の一態様に係る電子機器は、第一メモリ及び第二メモリを含む複数の揮発性メモリと、前記第二メモリへの電流の供給を遮断する制御をする電流制御部と、前記第一メモリに優先的に割り当てられるべきメモリ領域を示す優先情報に基づいて、前記第一メモリ及び前記第二メモリのいずれかにメモリ領域を割り当てるメモリ管理部とを備える。
【００１３】
上記態様によれば、電子機器は、電流の供給が遮断されない第一メモリに割り当てられるべきメモリ領域を、優先情報に基づいて優先的に第一メモリに割り当てることができ、第一メモリに割り当てられるべきメモリ領域が第二メモリに割り当てられることが抑制される。第二メモリへの電流の供給を遮断する際には、第二メモリに記憶されているデータを第一メモリにコピーする処理などのために時間を要する。そのため、第二メモリへの電流の供給を遮断してサスペンド状態に遷移するときに、第一メモリに割り当てられるべきメモリ領域が第二メモリに割り当てられる場合に比べて、オン状態からサスペンド状態への遷移に要する時間を削減できる。このように、電子機器は、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【００１４】
例えば、前記優先情報は、前記複数の揮発性メモリを利用して動作するアプリケーションと、当該アプリケーションが利用するメモリ領域を前記第一メモリに優先的に割り当てるべき度合いである第一優先度との対応付けを含み、前記メモリ管理部は、アプリケーションからメモリ領域の割り当ての要求を受けた場合に、前記アプリケーションに前記優先情報により対応付けられている前記第一優先度が高いほど、より優先的に、前記第一メモリにメモリ領域を割り当ててもよい。
【００１５】
上記態様によれば、電子機器は、アプリケーションごとに定められている優先度を用いて優先的に第一メモリに割り当てられるべきメモリ領域を第一メモリに割り当てる。このように、電子機器は、アプリケーションごとにメモリ領域の割り当てを制御することで、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【００１６】
例えば、前記メモリ管理部は、さらに、前記アプリケーションが起動される頻度を取得し、取得した前記頻度が高いほど、前記第一優先度を高くする調整をしてもよい。
【００１７】
上記態様によれば、電子機器は、アプリケーションが起動される頻度に応じて調整された優先度を用いて、優先的に第一メモリに割り当てられるべきメモリ領域を第一メモリに割り当てることができる。
【００１８】
例えば、前記優先情報は、前記複数の揮発性メモリに配置されるファイルと、当該ファイルが配置されるメモリ領域を前記第一メモリに優先的に割り当てるべき度合いである第二優先度との対応付けを含み、前記メモリ管理部は、ファイルが配置されるべきメモリ領域の割り当ての要求を受けた場合に、前記ファイルに前記優先情報により対応付けられている前記第二優先度が高いほど、より優先的に、前記第一メモリにメモリ領域を割り当ててもよい。
【００１９】
上記態様によれば、電子機器は、ファイルごとに定められている優先度を用いて、優先的に第一メモリに割り当てられるべきメモリ領域を第一メモリに割り当てる。このように、電子機器は、ファイルごとにメモリ領域の割り当てを制御することで、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【００２０】
例えば、前記メモリ管理部は、前記電流制御部が前記第二メモリへの電流の供給を遮断する前に、前記第二メモリに記憶されているデータを前記第一メモリにコピーしてもよい。
【００２１】
上記態様によれば、電子機器は、第二メモリへの電力の供給を遮断してオン状態からサスペンド状態に遷移するときに、第二メモリに記憶されているデータを第一メモリにコピーするので、第二メモリに記憶されたデータもサスペンド状態の後に維持される。また、サスペンド状態の後に維持されることが望まれるデータが、優先情報に基づいて第一メモリに既に割り当てられていれば、上記コピーに要する時間が削減される効果もある。このように、電子機器は、サスペンド状態の後に、より多くのデータを維持するとともに、オン状態からサスペンド状態への遷移に要する時間をより一層削減することができる。
【００２２】
例えば、前記メモリ管理部は、前記複数の揮発性メモリのうちの、前記第二メモリを含む二以上の不揮発性メモリに亘ってメモリ領域を割り当てた場合には、前記電流制御部が前記第二メモリへの電流の供給を遮断する前に、割り当てた前記メモリ領域のうち前記第二メモリに含まれている部分領域に記憶されているデータを前記第一メモリにコピーしてもよい。
【００２３】
上記態様によれば、電子機器は、第二メモリを含む二以上の不揮発性メモリに亘って割り当てられたメモリ領域を、サスペンド状態の後に維持することができる。このように、電子機器は、二以上の不揮発性メモリに亘って割り当てられたメモリ領域をサスペンド状態の後に維持するとともに、オン状態からサスペンド状態への遷移に要する時間を削減することができる。また、このデータのコピーは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によってなされてもよく、これによりＣＰＵの処理負荷を軽減することで、起動処理に要する時間を削減することができる。
【００２４】
例えば、前記電流制御部は、さらに、前記電子機器が備える１以上のハードウェアのうちの予め定められた被制御ハードウェアへの電流の供給を遮断する制御をし、前記メモリ管理部は、さらに、前記電流制御部が前記被制御ハードウェアへの電流の供給を遮断する前に、前記被制御ハードウェアを制御するドライバの状態を示す状態情報を前記第一メモリに記憶させ、前記電流制御部が前記被制御ハードウェアへの電流の供給を復旧した後に、前記状態情報を前記ドライバにコピーしてもよい。
【００２５】
上記態様によれば、電子機器は、ハードウェアへの電流の供給を遮断し、その後にハードウェアへの電流の供給を復旧するときに、その遮断前の状態を維持することができる。このように、電子機器は、ハードウェアの状態をサスペンド状態の後に維持できるとともに、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【００２６】
例えば、前記メモリ管理部は、さらに、前記電流制御部が前記被制御ハードウェアへの電流の供給を遮断する前に、前記記憶が完了したことを示す完了情報を前記第一メモリに記憶させ、前記電流制御部が前記被制御ハードウェアへの電流の供給を復旧した後に、前記第一メモリに前記完了情報が記憶されていると判定した場合に前記状態情報を前記ドライバにコピーしてもよい。
【００２７】
上記態様によれば、電子機器は、サスペンド状態に遷移する処理が正常に完了したか否かを判定し、正常に完了した場合には第一メモリに記憶された情報を用いて短時間で起動し、正常に完了しなかった場合には、通常の起動処理を用いて起動する。よって、電子機器は、オン状態からサスペンド状態への遷移に係る処理が正常に完了できなかった場合でもその後に正常に起動できるようにしながら、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【００２８】
例えば、前記メモリ管理部は、さらに、前記電流制御部が前記被制御ハードウェアへの電流の供給を遮断する前に、複数の前記ドライバのうちの１以上のドライバの状態を示す状態情報を前記第一メモリに記憶させるたびに、前記記憶が完了したことを示す部分完了情報を前記第一メモリに記憶させ、前記電流制御部が前記被制御ハードウェアへの電流の供給を復旧した後に、前記第一メモリに記憶されている前記部分完了情報を参照し、（ａ）複数の前記ドライバのうち、前記状態情報が前記第一メモリに記憶されているドライバに前記状態情報を戻し、（ｂ）複数の前記ドライバのうち、前記状態情報が前記第一メモリに記憶されていないドライバを初期状態にしてもよい。
【００２９】
上記態様によれば、電子機器は、サスペンド状態に遷移する処理のうちの複数の時点で処理が正常に完了したか否かを判定し、正常に完了した処理については第一メモリに記憶された情報を用いて短時間でハードウェアの状態を復帰し、正常に完了しなかった処理については、通常の起動処理を用いて起動する。よって、電子機器は、オン状態からサスペンド状態への遷移に係る処理が正常に完了できなかった処理があってもその処理だけを通常起動により起動させながら、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【００３０】
例えば、前記電子機器は、さらに、ユーザによる、前記電子機器をオフ状態からオン状態に遷移させる操作を受ける操作部を備え、前記メモリ管理部は、さらに、現時点より後に前記電子機器がオフ状態からオン状態に遷移する時点である推定オン時点を推定し、前記電流制御部は、さらに、現時点から前記推定オン時点までの時間長が所定より大きい場合に、前記第二メモリへの電流の供給を遮断する制御をし、現時点から前記推定オン時点までの時間長が所定より小さくなった場合に、前記第二メモリへの電流の供給を復旧する制御をしてもよい。
【００３１】
上記態様によれば、電子機器は、電子機器の起動が比較的長い時間サスペンド状態を維持すると推定される場合に、一旦電源オフ状態をとることで消費電力を削減する。また、一旦電源オフ状態をとることで、仮にアプリケーションにメモリリークなどの不具合がある場合でも、その影響を抑制し、その後の動作を正常に行うことができる。よって、電子機器は、より一層消費電力を削減し、メモリリークなどの影響を回避しながら、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【００３２】
また、本発明の一態様に係る電子機器の制御方法は、第一メモリ及び第二メモリを含む複数の揮発性メモリを備える電子機器の制御方法であって、前記第二メモリへの電流の供給を遮断する制御をする電流制御ステップと、前記第一メモリに優先的に割り当てられるべきメモリ領域を示す優先情報に基づいて、前記第一メモリ及び前記第二メモリのいずれかにメモリ領域を割り当てるメモリ管理ステップとを含む。
【００３３】
これにより、上記電子機器と同様の効果を奏する。
【００３４】
また、本発明の一態様に係るプログラムは、上記の制御方法をコンピュータに実行させるためのプログラムである。
【００３５】
これにより、上記電子機器と同様の効果を奏する。
【００３６】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【００３７】
以下、実施の形態について、図面を参照しながら具体的に説明する。
【００３８】
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００３９】
（実施の形態１）
本実施の形態において、オン状態からサスペンド状態への遷移に要する時間を削減する電子機器について説明する。
【００４０】
図１は、本実施の形態に係る電子機器１の動作モードの説明図である。電子機器１は、例えば、車両のナビゲーション装置を含むインフォテインメントシステムであるが、これに限定されず、ＲＡＭを備えるコンピュータ、具体的には、パーソナルコンピュータ、スマートフォンなどでもよい。
【００４１】
図１に示されるように、電子機器１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、表示装置１３と、揮発性メモリであるメモリＭ１およびＭ２とを備える。各構成要素は、供給される電流により駆動する。各構成要素の機能は、後で詳しく説明する。
【００４２】
電子機器１は、ユーザによる操作に基づいてオン状態とオフ状態とに相互に遷移する。オン状態とは、電子機器１が稼働している状態であり、オフ状態とは、電子機器１が稼働していない状態である。例えば、電子機器１のオン状態及びオフ状態は、車両の状態と連動する。車両の状態が「ＬＯＣＫ」、「ＡＣＣ（アクセサリ）」、「ＯＮ」、及び、「ＳＴＡＲＴ」で表現される場合、車両が「ＬＯＣＫ」状態のときに、電子機器１がオフ状態であり、車両の「ＡＣＣ（アクセサリ）」、「ＯＮ」、及び、「ＳＴＡＲＴ」の各状態のときに、電子機器１がオン状態であるように連動する。
【００４３】
オン状態では、ＣＰＵ１１、表示装置１３、並びに、メモリＭ１およびＭ２に電流が供給される。
【００４４】
オフ状態では、電子機器１の構成要素の一部又は全部への電流の供給が遮断される。オフ状態は、さらに３つの状態、スリープ状態、サスペンド状態および電源オフ状態に細分化される。
【００４５】
スリープ状態では、表示装置１３への電流の供給が遮断され、ＣＰＵ１１およびメモリＭ１およびＭ２への電流の供給が維持される。
【００４６】
サスペンド状態では、表示装置１３、ＣＰＵ１１およびメモリＭ２への電流の供給が遮断され、メモリＭ１への電流の供給が維持される。
【００４７】
電源オフ状態では、表示装置１３、ＣＰＵ１１およびメモリＭ１及びＭ２への電流の供給が遮断される。
【００４８】
オフ状態に含まれる３つの状態の中では、電子機器１の消費電力は、スリープ状態において最も大きく、電源オフ状態において最も小さい。一方、オン状態に遷移するのに要する時間は、スリープ状態において最も小さく、電源オフ状態において最も大きい。
【００４９】
そこで、電子機器１は、車両が「ＬＯＣＫ」状態であり、ユーザにより利用されないときには、サスペンド状態をとる。これにより、電子機器１は、消費電力を低減しながら、オン状態に短時間で遷移できる状態を維持することができる。
【００５０】
しかしながら、メモリＭ１及びＭ２に配置されるメモリ領域いかんによっては、オン状態からサスペンド状態への遷移に多くの時間を要する場合がある。そこで、電子機器１は、メモリＭ１に配置するメモリ領域を工夫することによって、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【００５１】
このような電子機器１の構成について、以降で詳しく説明する。
【００５２】
図２は、本実施の形態に係る電子機器１の構成を示すブロック図である。
【００５３】
図２に示されるように、電子機器１は、ＣＰＵ１１と、メモリ１２と、表示装置１３と、入力装置１４と、操作部１５と、電流制御部１６と、電圧監視ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１７とを備える。
【００５４】
ＣＰＵ１１は、所定のプログラムをメモリ１２を用いて実行するプロセッサである。ＣＰＵ１１は、所定のプログラムを実行することでメモリ管理部２０の機能を実現する。また、ＣＰＵ１１は、所定のプログラムを実行することでアプリケーションを動作させる。ここで、アプリケーションとは、例えば、車両のナビゲーション、音楽の再生、ラジオの受信及び再生、音声認識、ハンズフリー通話などである。
【００５５】
メモリ１２は、ＣＰＵ１１がプログラムを実行するときにワークエリアとして使用される揮発性メモリである。メモリ１２は、複数の揮発性メモリを有する。ここでは、メモリ１２が２つの揮発性メモリであるメモリＭ１及びＭ２を有する場合を説明するが、これに限定されない。
【００５６】
２つの揮発性メモリの一部は、サスペンド状態において、供給される電流が電流制御部１６による制御によって遮断又は復旧される。これに対し、２つの揮発性メモリの残部は、電流制御部１６による上記制御がなされない。電流制御部１６による制御がなされるメモリをメモリＭ２とし、上記制御がなされないメモリをＭ１とする。
【００５７】
表示装置１３は、画像を表示する表示装置である。表示装置１３は、例えば、液晶ディスプレイ又は有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイである。
【００５８】
入力装置１４は、ユーザからの操作の入力を受ける入力インタフェース装置である。入力装置１４は、例えば、タッチパッド、キーボード又はマウスなどである。また、入力装置１４と表示装置１３とがタッチパネルとして実現されてもよい。
【００５９】
操作部１５は、オン状態とオフ状態との遷移のユーザによる操作を受ける。操作部１５は、例えば、車両の状態を変更するための車両のキーによる操作、又は、ボタンの押下による操作を上記操作として受ける。
【００６０】
電流制御部１６は、メモリＭ２の駆動電流を制御する制御部である。電流制御部１６は、メモリＭ２の駆動に必要な電流を供給の遮断及び復旧を制御する。また、電流制御部１６は、表示装置１３及び入力装置１４、並びにその他のハードウェア（不図示）への電流の供給の遮断及び復旧を制御する。その他のハードウェアとは、例えばＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ）などが含まれる。電流制御部１６によって電流の供給の遮断及び復旧が制御されるハードウェアを、被制御ハードウェアともいう。
【００６１】
電圧監視ＩＣ１７は、メモリＭ１の受電端子の電圧を監視するＩＣである。具体的には、電圧監視ＩＣ１７は、サスペンド状態においてメモリＭ１の受電端子の電圧を監視しており、サスペンド状態の当初から現時点まで受電端子の電圧が適正範囲に維持されていたか、又は、そうでなかったかを、電圧値として出力する。適正範囲は、メモリＭ１が正常にデータを保持するのに適した電圧値の範囲であり、例えば１．０５Ｖ〜１．１５Ｖである。
【００６２】
メモリ管理部２０は、ＣＰＵ１１が所定のプログラムを実行することで実現される機能である。メモリ管理部２０は、メモリＭ１に優先的に割り当てられるべきメモリ領域を示す優先情報に基づいて、メモリＭ１及びメモリＭ２のいずれかにメモリ領域を割り当てる。具体的には、メモリ管理部２０は、電子機器１において動作するアプリケーションによりメモリの割り当ての要求を受け、その要求に応じて、要求元のアプリケーションが使用するメモリ領域を割り当てることで、メモリの割り当てを行う。このとき、メモリ管理部２０は、優先情報に基づいてメモリＭ１又はＭ２のいずれかのメモリ領域を割り当てる。優先情報の具体例については後で説明する。なお、上記のアプリケーションは、ハードウェアを制御するソフトウェアであるドライバ、又は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の一機能として動作するソフトウェアも含む。
【００６３】
また、メモリ管理部２０は、オン状態とサスペンド状態との遷移の際に、メモリＭ１及びＭ２の記憶データのコピー等の処理を行う。メモリ管理部２０は、操作部１５が「ＡＣＣ」状態から「ＬＯＣＫ」状態への遷移の操作を受けた場合に、電子機器１をオン状態からサスペンド状態に遷移させる処理を行う。また、メモリ管理部２０は、操作部１５が「ＬＯＣＫ」状態から「ＡＣＣ」状態への遷移の操作を受けた場合に、電子機器１をサスペンド状態からオン状態に遷移させる処理を行う。メモリ管理部２０は、電流制御部１６がメモリＭ２への電流の供給を遮断する前に、メモリＭ２に記憶されているデータをメモリＭ１にコピーする。これらの処理については後で詳しく説明する。
【００６４】
また、メモリ管理部２０は、電流制御部１６がハードウェアへの電流の供給を遮断する前に、ハードウェアを制御するドライバの状態を示す状態情報をメモリＭ１に記憶させる。その場合、メモリ管理部２０は、電流制御部１６がハードウェアへの電流の供給を復旧した後に、メモリＭ１に記憶させた状態情報をドライバにコピーする。
【００６５】
図３は、本実施の形態に係る電子機器１のメモリ領域の説明図である。図３には、メモリ管理部２０がアプリケーションなどに割り当てたメモリ領域を示している。
【００６６】
図３に示される例では、アプリケーションＡ１の領域１０１、アプリケーションＡ３の領域１０３、ドライバＤ１の領域１２１、サスペンド完了フラグ１３１、及び、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）領域１４１がメモリＭ１に割り当てられている。また、アプリケーションＡ２の領域１０２、アプリケーションＡ４の領域１０４、アプリケーションＡ５の領域１０５、及び、ドライバＤ２領域１２２がメモリＭ２に割り当てられている。
【００６７】
優先情報を用いたメモリ領域の割り当て方法について、アプリケーションごとの優先度を用いる例と、ファイルごとの優先度を用いる例とを説明する。
【００６８】
（１）アプリケーションごとの優先度を用いる例
この例では、優先情報は、メモリ１２を利用して動作するアプリケーションと、当該アプリケーションが利用するメモリ領域をメモリＭ１に優先的に割り当てるべき度合いである第一優先度との対応付けを含む。その場合、メモリ管理部２０は、アプリケーションからメモリ領域の割り当ての要求を受けた場合に、アプリケーションに優先情報により対応付けられている第一優先度が高いほど、より優先的に、メモリＭ１にメモリ領域を割り当てる。より具体的には、優先度が所定の閾値以上であるアプリケーションのメモリ領域をメモリＭ１に割り当て、優先度が所定の閾値未満であるアプリケーションのメモリ領域をメモリＭ２に割り当てる。
【００６９】
図４は、本実施の形態に係るアプリケーションごとのメモリ領域の優先度と閾値とを示す説明図である。この優先度は、第一優先度に相当する。
【００７０】
図４の（ａ）は、電子機器１で動作し得るアプリケーションそれぞれについての優先度を示している。ここで、優先度は、一例として、０〜１００の範囲の整数値で表現され、１００が最も高い優先度を示し、０が最も低い優先度を示すとする。
【００７１】
例えば、アプリケーションＡ１の優先度が１００であり、アプリケーションＡ２の優先度が４０である。なお、ハードウェアを制御するソフトウェアであるドライバもアプリケーションと同様に扱われ得る。例えば、ドライバＤ１の優先度が９０であり、ドライバＤ２の優先度が０（ゼロ）である。
【００７２】
また、図４の（ｂ）は、優先度の閾値が６０であることを示している。
【００７３】
このような優先度と閾値とが設定されている場合に、メモリ管理部２０は、図３に示されるメモリ領域の割り当てをする。
【００７４】
なお、アプリケーションごとの優先度は、当該アプリケーションごとの起動回数によって調整されてもよい。言い換えれば、メモリ管理部２０は、アプリケーションそれぞれが起動される頻度を取得し、取得した頻度が高いほど、第一優先度を高くする調整をしてもよい。ここで、頻度は、例えば所定時間内の起動回数により表現され得る。所定時間は、例えば１週間〜４週間程度を採用し得る。
【００７５】
なお、アプリケーションごとの優先度は、当該アプリケーションごとの使用時間によって調整されてもよい。メモリ管理部２０は、アプリケーションそれぞれが起動されてから終了されるまでの時間を累積した累積時間を取得し、取得した累積時間が長いほど、第一優先度を高くする調整をしてもよい。車両を使用する頻度が比較的低いユーザが想定される場合には、アプリケーションごとの起動回数よりも、アプリケーションごとの使用時間によって調整されるほうが優先度が決定されるほうが適切となり得る。
【００７６】
図５は、本実施の形態に係る優先度の調整方法を示す説明図である。図４に示されるアプリケーションごとの優先度は、当該アプリケーションの起動の頻度によって調整され得る。この調整では、頻度が高いほど第一優先度を高くする、言い換えれば、頻度が低いほど第一優先度を低くする調整をする。
【００７７】
図５の（ａ）及び（ｂ）には、それぞれ、予め定められたアプリケーションごとの頻度、及び、予め定められた閾値が示されている。これらの頻度及び閾値を、調整前の頻度及び閾値ともいう。
【００７８】
また、図５の（ａ）には、メモリ管理部２０が、アプリケーション及びドライバのメモリ領域を割り当てるメモリが、メモリＭ１及びＭ２のいずれであるかが示されている。例えば、メモリ管理部２０が、アプリケーションＡ１のメモリ領域をメモリＭ１に割り当て、アプリケーションＡ２のメモリ領域をメモリＭ２に割り当てることが示されている。
【００７９】
図５の（ｃ）及び（ｄ）には、それぞれ、メモリ管理部２０によるアプリケーションごとの頻度を示す所定時間内の起動回数、調整後の優先度、及び、調整後の閾値が示されている。
【００８０】
調整後の優先度Ｂは、一例として、調整前の優先度Ａと、起動回数Ｎとを用いて以下のように算出される。
【００８１】
Ｂ＝Ａ＋Ｎ×０．１
【００８２】
また、調整後の閾値Ｕは、一例として、調整前の閾値Ｔと、アプリケーション及びドライバの起動回数の合計値Ｍ、管理対象の領域の個数Ｌを用いて以下のように算出される。
【００８３】
Ｕ＝Ｔ＋Ｍ／Ｌ×０．１
【００８４】
そして、メモリ管理部２０は、上記のように調整した後のアプリケーションごとの優先度と閾値とを用いて、アプリケーションＡ１のメモリ領域をメモリＭ１に割り当て、アプリケーションＡ２のメモリ領域をメモリＭ２に割り当てる。
【００８５】
このようにすることで、アプリケーションの頻度に基づいて、起動の頻度が高いアプリケーションが使用するメモリ領域が、より優先的にメモリＭ１に割り当てられる。
【００８６】
なお、メモリ管理部２０は、１００の優先度が対応付けられたアプリケーションのメモリ領域を常にメモリＭ１に割り当て、又は、０の優先度が対応付けられたアプリケーションのメモリ領域を常にメモリＭ２に割り当ててもよい。
【００８７】
（２）ファイルごとの優先度を用いる例
この例では、優先情報は、メモリ１２に配置されるファイルと、当該ファイルが配置されるメモリ領域をメモリＭ１に優先的に割り当てるべき度合いである第二優先度との対応付けを含む。その場合、メモリ管理部２０は、ファイルが配置されるべきメモリ領域の割り当ての要求を受けた場合に、ファイルに優先情報により対応付けられている第二優先度が高いほど、より優先的に、メモリＭ１にメモリ領域を割り当てる。より具体的には、優先度が所定の閾値以上であるファイルが配置されるメモリ領域をメモリＭ１に割り当て、優先度が所定の閾値未満であるファイルが配置されるメモリ領域をメモリＭ２に割り当てる。
【００８８】
図６は、本実施の形態に係るアプリケーションと、アプリケーションが使用するファイルとの対応を示す対応表である。図７は、本実施の形態に係るファイルと、ファイルの優先度との対応を示す対応表である。この優先度は、第二優先度に相当する。
【００８９】
図６は、電子機器１で動作し得るアプリケーションそれぞれが使用するファイルを示している。例えば、アプリケーションＡ１は、４つのファイル「/bin/appl1」、「/lib/libc.so」、「/lib/libpthread.so」及び「/data/meter.dat」を使用する。
【００９０】
図７の（ａ）は、電子機器１で動作し得るアプリケーションが使用するファイルそれぞれについての優先度を示している。例えば、ファイル「/bin/appl1」の優先度が８０であり、ファイル「/lib/libc.so」の優先度が１００であり、ファイル「/lib/libpthread.so」の優先度が９０であり、ファイル「/data/meter.dat」の優先度が７０である。また、図７の（ｂ）は、優先度の閾値が６０であることを示している。
【００９１】
このようなファイルごとの優先度と閾値とが設定されている場合、メモリ管理部２０は、優先度が閾値６０以上であるファイルを配置するためのメモリ領域をメモリＭ１に割り当てる。一方、メモリ管理部２０は、優先度が閾値６０未満であるファイルを配置するためのメモリ領域をメモリＭ２に割り当てる。
【００９２】
なお、上記では、優先情報として、アプリケーションごとの優先度を用いる例と、ファイルごとの優先度を用いる例とを説明したが、これらの両方の特徴を有する優先情報を用いることもできる。
【００９３】
以上のように構成された電子機器１の処理の流れについて説明する。
【００９４】
図８は、本実施の形態に係る電子機器１のメモリ割り当て処理を示すフロー図である。図８に示されるメモリ割り当て処理は、例えば、電子機器１において新たなアプリケーションが起動するときに実行される。
【００９５】
図８に示されるように、ステップＳ１０１において、メモリ管理部２０は、アプリケーションからメモリ領域の割り当ての要求を受ける。メモリ割り当ての要求には、要求するメモリのサイズ（容量）が含まれている。
【００９６】
ステップＳ１０２において、メモリ管理部２０は、アプリケーションごとのメモリ領域の優先度と閾値（図４参照）に基づいて、ステップＳ１０１で受けた要求の要求元のアプリケーションの優先度と、閾値とを取得する。
【００９７】
ステップＳ１０３において、メモリ管理部２０は、ステップＳ１０２で取得した優先度と閾値とを用いて、優先度が閾値以上であるか否かを判定する。優先度が閾値以上である場合（ステップＳ１０３でＹｅｓ）には、ステップＳ１０４に進み、そうでない場合（ステップＳ１０３でＮｏ）には、ステップＳ１１１に進む。
【００９８】
ステップＳ１０４において、メモリ管理部２０は、ステップＳ１０１で受けた要求に含まれるメモリのサイズを確保するのに十分な空き領域がメモリＭ１にあるか否かを判定する。十分な空き領域がある場合（ステップＳ１０４でＹｅｓ）には、ステップＳ１０５に進み、そうでない場合（ステップＳ１０４でＮｏ）には、ステップＳ３１１に進む。
【００９９】
ステップＳ１０５において、メモリ管理部２０は、ステップＳ１０１で受けた要求に応じて、メモリＭ１にメモリ領域を割り当てる。
【０１００】
ステップＳ１０６において、メモリ管理部２０は、ステップＳ１０１で受けた要求に応じて、メモリＭ１に割り当てた領域の先頭アドレスとサイズとを要求元のアプリケーションに通知する。
【０１０１】
ステップＳ１１１において、メモリ管理部２０は、ステップＳ１０１で受けた要求に含まれるメモリのサイズを確保するのに十分な空き領域がメモリＭ２にあるか否かを判定する。十分な空き領域がある場合（ステップＳ１１１でＹｅｓ）には、ステップＳ１１２に進み、そうでない場合（ステップＳ１１１でＮｏ）には、ステップＳ１２１に進む。
【０１０２】
ステップＳ１１２において、メモリ管理部２０は、ステップＳ１０１で受けた要求に応じて、メモリＭ２にメモリ領域を割り当てる。
【０１０３】
ステップＳ１１３において、メモリ管理部２０は、ステップＳ１０１で受けた要求に応じて、メモリＭ２に割り当てた領域の先頭アドレスとサイズとを要求元のアプリケーションに通知する。
【０１０４】
ステップＳ１２１において、メモリ管理部２０は、ステップＳ１０１で受けた要求に応じて、メモリ割り当てをすることができないことを通知する。
【０１０５】
図８に示される一連の流れにより、メモリ管理部２０は、新たに起動するアプリケーションに優先度に応じてメモリ領域を割り当てる。
【０１０６】
図９は、本実施の形態に係る電子機器１の電流遮断処理を示すフロー図である。図９に示される電流遮断処理は、オン状態からサスペンド状態に遷移するときに実行される。
【０１０７】
図９に示されるように、ステップＳ２０１において、メモリ管理部２０は、サスペンド完了フラグを初期化する。サスペンド完了フラグは、オン状態からサスペンド状態への遷移が完了したことを示すためのフラグであり、完了情報に相当する。
【０１０８】
ステップＳ２０２において、メモリ管理部２０は、電子機器１において動作している所定のアプリケーションを終了させる。これにより、メモリ管理部２０は、終了させたアプリケーションに割り当てられていたメモリ領域を解放する。なお、ステップＳ２０２で終了される所定のアプリケーションは、例えば比較的短い時間で起動処理が完了するアプリケーションである。この所定のアプリケーションは、後でサスペンド状態からオン状態に遷移するときに再び起動される（後述する図１０のステップＳ３０６）。
【０１０９】
ステップＳ２０３において、メモリ管理部２０は、メモリＭ２に割り当てられているメモリ領域に記憶されているデータを、メモリＭ１へコピーする。
【０１１０】
ステップＳ２０４において、メモリ管理部２０は、メモリＭ２を無効化する。メモリＭ２が無効化されることで、メモリＭ２がＯＳの管理対象外になる。
【０１１１】
ステップＳ２０５において、メモリ管理部２０は、ドライバの状態情報をドライバ領域１２１にコピーする。
【０１１２】
ステップＳ２０６において、電流制御部１６は、メモリＭ２への電流の供給を遮断する。
【０１１３】
ステップＳ２０７において、メモリ管理部２０は、サスペンド完了フラグをセットする。
【０１１４】
以上の一連の処理によって、電子機器１は、メモリＭ２への電流の供給を遮断して、オン状態からサスペンド状態に遷移する。
【０１１５】
仮に図９に示される一連の処理の途中で、電源電圧の降下などにより処理が中断した場合、サスペンド完了フラグがセットされないでサスペンド状態となることがある。上記一連の処理では、サスペンド完了フラグをステップＳ２０１で初期化し、ステップＳ２０７でセットするので、一連の処理が完了したか、又は、一連の処理の途中で処理が中断したかをサスペンド完了フラグによって判別できる。
【０１１６】
図１０は、本実施の形態に係る電子機器１の電流復旧処理を示すフロー図である。図１０に示される電流復旧処理は、図９の処理によって電子機器１がサスペンド状態に遷移した後、サスペンド状態からオン状態に遷移するときに実行する処理である。
【０１１７】
図１０に示されるように、ステップＳ３０１において、メモリ管理部２０は、電圧監視ＩＣ１７を参照してメモリＭ１がデータを保持しているか否かを判定する。具体的には、メモリ管理部２０は、サスペンド状態に遷移（図９のステップＳ２０７）してから現時点までの間、メモリＭ１の受電端子の電圧が適正範囲に維持されていたか否かを判定し、適正範囲に維持されていた場合に、メモリＭ１がデータを保持していると判定する。メモリＭ１がデータを保持していると判定した場合（ステップＳ３０１でＹｅｓ）にはステップＳ３０２に進み、そうでない場合（ステップＳ３０１でＮｏ）には、ステップＳ３１１に進む。
【０１１８】
ステップＳ３０２において、メモリ管理部２０は、サスペンド完了フラグがセットされているか否かを判定する。サスペンド完了フラグがセットされていると判定した場合（Ｓ３０２でＹｅｓ）にはステップＳ３０３に進み、そうでない場合にはステップＳ３１１に進む。
【０１１９】
ステップＳ３０３において、電流制御部１６は、メモリＭ２への電流の供給を復旧する。
【０１２０】
ステップＳ３０４において、メモリ管理部２０は、メモリＭ１のドライバ領域１２１からドライバの状態情報を読み出し、ドライバにコピーする。
【０１２１】
ステップＳ３０５において、メモリ管理部２０は、メモリＭ２を有効化する。メモリＭ２が有効化されることで、メモリＭ２がＯＳの管理対象となる。
【０１２２】
ステップＳ３０６において、メモリ管理部２０は、所定のアプリケーションを起動する。起動される所定のアプリケーションは、図９のステップＳ２０２で終了させたアプリケーションである。
【０１２３】
なお、ステップＳ３０３からＳ３０６までの処理は、サスペンド状態から、メモリＭ１に記憶されているデータを使用して短時間でオン状態に遷移する処理、いわゆるホットスタート処理である。
【０１２４】
ステップＳ３１１において、電子機器１は、電源オフ状態からオン状態に遷移する処理、いわゆるコールドスタート処理を実行する。コールドスタート処理では、メモリＭ１及びＭ２のすべてのメモリ領域の初期化、及び、アプリケーションの起動処理などが実行される。
【０１２５】
上記ステップＳ３１１が実行されるのは、サスペンド状態に遷移した後にメモリＭ１への電流の供給が適正になされなかった場合、又は、サスペンド完了フラグがセットされていない、つまり、図９に示されるオン状態からサスペンド状態への遷移の一連の処理が途中で中断した場合であり、メモリＭ１に記憶されているデータを使用した起動処理ができない場合である。このような場合には、電子機器１は、電源オフ状態からオン状態に遷移する処理によって、オン状態に遷移する。
【０１２６】
以上の一連の処理によって、電子機器１は、メモリＭ２への電流の供給を復旧して、サスペンド状態からオン状態に遷移する。
【０１２７】
なお、以上の説明では、電流制御部１６がメモリＭ２への電流の供給の遮断及び復旧を制御する技術を説明したが、電流制御部１６は、電流の供給の遮断及び復旧の制御をメモリＭ２内のバンク単位で行ってもよい。この場合、メモリ管理部２０がバンク単位でメモリ領域の割り当てを行うようにすれば、バンク単位での電流の供給の遮断及び復旧の制御に基づいて、電子機器によるオン状態からサスペンド状態への遷移に要する時間を削減することができる。
【０１２８】
以上のように、本実施の形態の電子機器は、電流の供給が遮断されない第一メモリに割り当てられるべきメモリ領域を、優先情報に基づいて優先的に第一メモリに割り当てることができ、第一メモリに割り当てられるべきメモリ領域が第二メモリに割り当てられることが抑制される。第二メモリへの電流の供給を遮断する際には、第二メモリに記憶されているデータを第一メモリにコピーする処理などのために時間を要する。そのため、第二メモリへの電流の供給を遮断してサスペンド状態に遷移するときに、第一メモリに割り当てられるべきメモリ領域が第二メモリに割り当てられる場合に比べて、オン状態からサスペンド状態への遷移に要する時間を削減できる。このように、電子機器は、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【０１２９】
また、電子機器は、アプリケーションごとに定められている優先度を用いて優先的に第一メモリに割り当てられるべきメモリ領域を第一メモリに割り当てる。このように、電子機器は、アプリケーションごとにメモリ領域の割り当てを制御することで、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【０１３０】
また、電子機器は、アプリケーションが起動される頻度に応じて調整された優先度を用いて、優先的に第一メモリに割り当てられるべきメモリ領域を第一メモリに割り当てることができる。
【０１３１】
また、電子機器は、ファイルごとに定められている優先度を用いて、優先的に第一メモリに割り当てられるべきメモリ領域を第一メモリに割り当てる。このように、電子機器は、ファイルごとにメモリ領域の割り当てを制御することで、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【０１３２】
また、電子機器は、第二メモリへの電力の供給を遮断してオン状態からサスペンド状態に遷移するときに、第二メモリに記憶されているデータを第一メモリにコピーするので、第二メモリに記憶されたデータもサスペンド状態の後に維持される。また、サスペンド状態の後に維持されることが望まれるデータが、優先情報に基づいて第一メモリに既に割り当てられていれば、上記コピーに要する時間が削減される効果もある。このように、電子機器は、サスペンド状態の後に、より多くのデータを維持するとともに、オン状態からサスペンド状態への遷移に要する時間をより一層削減することができる。
【０１３３】
また、電子機器は、ハードウェアへの電流の供給を遮断し、その後にハードウェアへの電流の供給を復旧するときに、その遮断前の状態を維持することができる。このように、電子機器は、ハードウェアの状態をサスペンド状態の後に維持できるとともに、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【０１３４】
また、電子機器は、サスペンド状態に遷移する処理が正常に完了したか否かを判定し、正常に完了した場合には第一メモリに記憶された情報を用いて短時間で起動し、正常に完了しなかった場合には、通常の起動処理を用いて起動する。よって、電子機器は、オン状態からサスペンド状態への遷移に係る処理が正常に完了できなかった場合でもその後に正常に起動できるようにしながら、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【０１３５】
（実施の形態２）
本実施の形態において、オン状態からサスペンド状態への遷移に要する時間を削減する電子機器において、電流遮断処理の途中の状態をより詳細に管理し、起動時の処理を改善する技術を説明する。具体的には、実施の形態１のサスペンド完了フラグに代えて、多段階の完了状態を表現し得るサスペンド完了コードを用いる。また、複数のドライバを、１以上のドライバを含むグループに区分し、グループ単位でドライバの状態をメモリＭ１に記憶させたか否かを管理する。サスペンド完了コードは、完了情報に相当する。
【０１３６】
本実施の形態では、メモリ管理部２０は、電流制御部１６が被制御ハードウェアへの電流の供給を遮断する前に、１以上のドライバの状態を示す状態情報をメモリＭ１に記憶させるたびに、記憶が完了したことを示す部分完了情報をメモリＭ１に記憶させる。そして、電流制御部１６が被制御ハードウェアへの電流の供給を復旧した後に、メモリＭ１に記憶されている部分完了情報を参照し、（ａ）複数のドライバのうち、状態情報がメモリＭ１に記憶されているドライバに状態情報を戻し、（ｂ）複数のドライバのうち、状態情報がメモリＭ１に記憶されていないドライバを初期状態にする。
【０１３７】
以降において、詳しく説明する。ここでは、複数のドライバが３つのグループＧ１、Ｇ２及びＧ３に属している場合を例として説明するが、これに限定されない。
【０１３８】
図１１は、本実施の形態に係る電子機器１の電流遮断処理を示すフロー図である。図１１に示される電流遮断処理は、スリープ状態からサスペンド状態に遷移するときに電子機器１が実行する処理である。
【０１３９】
図１１に示されるように、ステップＳ４０１において、メモリ管理部２０は、サスペンド完了コードを０にすることで初期化する。
【０１４０】
ステップＳ４０２において、メモリ管理部２０は、電子機器１において動作している所定のアプリケーションを終了させる。この処理は、図９のステップＳ２０２と同様である。
【０１４１】
ステップＳ４０３において、メモリ管理部２０は、メモリＭ２に割り当てられているメモリ領域に記憶されているデータを、メモリＭ１へコピーする。
【０１４２】
ステップＳ４０４において、メモリ管理部２０は、メモリＭ２を無効化する。
【０１４３】
ステップＳ４０５において、メモリ管理部２０は、サスペンド完了コードを１にする。
【０１４４】
ステップＳ４０６において、メモリ管理部２０は、グループＧ１に属するドライバの状態情報をメモリＭ１のドライバ領域にコピーする。
【０１４５】
ステップＳ４０７において、メモリ管理部２０は、サスペンド完了コードを２にする。
【０１４６】
ステップＳ４０８において、メモリ管理部２０は、グループＧ２に属するドライバの状態情報をメモリＭ１のドライバ領域にコピーする。
【０１４７】
ステップＳ４０９において、メモリ管理部２０は、サスペンド完了コードを３にする。
【０１４８】
ステップＳ４１０において、メモリ管理部２０は、グループＧ３に属するドライバの状態情報をメモリＭ１のドライバ領域にコピーする。
【０１４９】
ステップＳ４１１において、メモリ管理部２０は、サスペンド完了コードを４にする。
【０１５０】
ステップＳ４１２において、メモリ管理部２０は、電流制御部１６は、メモリＭ２への電流の供給を遮断する。
【０１５１】
ステップＳ４１３において、メモリ管理部２０は、サスペンド完了コードを５にする。
【０１５２】
仮に図１１に示される一連の処理の途中で、電源電圧の降下などにより処理が中断した場合、中断した時点に応じて異なるサスペンド完了コードが設定された状態となる。よって、あとで行われる復帰処理においてどの時点で処理が中断したかを判別することができ、復帰に必要な処理を行う一方、不要な処理を行うことを抑制することができる利点がある。
【０１５３】
図１２は、本実施の形態に係る電子機器１の電流復旧処理を示すフロー図である。図１２に示される電流復旧処理は、図１１の処理によって電子機器１がサスペンド状態に遷移した後、サスペンド状態からオン状態に遷移するときに実行する処理である。
【０１５４】
図１２に示されるように、ステップＳ５０１において、メモリ管理部２０は、電圧監視ＩＣ１７を参照してメモリＭ１がデータを保持しているか否かを判定する。この処理は、ステップＳ３０１と同様である。
【０１５５】
ステップＳ５０２において、メモリ管理部２０は、サスペンド完了コードの値によって処理を分岐する。サスペンド完了コードが４又は５である場合（ステップＳ５０２で「＝４ｏｒ５」）にはステップＳ５０３に進み、サスペンド完了コードが３である場合（ステップＳ５０２で「＝３」）にはステップＳ５１１に進み、サスペンド完了コードが２である場合（ステップＳ５０２で「＝２」）にはステップＳ５２１に進み、サスペンド完了コードが１である場合（ステップＳ５０２で「＝１）にはステップＳ５３１に進み、サスペンド完了コードが０である場合（ステップＳ５０２で「＝０」）にはステップＳ５４１に進む。
【０１５６】
ステップＳ５０３において、電流制御部１６は、メモリＭ２への電流の供給を復旧する。
【０１５７】
ステップＳ５０４において、メモリ管理部２０は、メモリＭ１のドライバ領域１２１からグループＧ３に属するドライバの状態情報を読み出し、ドライバにコピーする。
【０１５８】
ステップＳ５０５において、メモリ管理部２０は、メモリＭ１のドライバ領域１２１からグループＧ２に属するドライバの状態情報を読み出し、ドライバにコピーする。
【０１５９】
ステップＳ５０６において、メモリ管理部２０は、メモリＭ１のドライバ領域１２１からグループＧ１に属するドライバの状態情報を読み出し、ドライバにコピーする。
【０１６０】
ステップＳ５０７において、メモリ管理部２０は、メモリＭ２を有効化する。
【０１６１】
ステップＳ５０８において、メモリ管理部２０は、所定のアプリケーションを起動する。
【０１６２】
ステップＳ５１１において、電流制御部１６は、メモリＭ２への電流の供給を復旧する。
【０１６３】
ステップＳ５１２において、メモリ管理部２０は、グループＧ３に属するドライバを初期化する。ステップＳ５１２の後、ステップＳ５０５に進む。
【０１６４】
ステップＳ５２１において、電流制御部１６は、メモリＭ２への電流の供給を復旧する。
【０１６５】
ステップＳ５２２において、メモリ管理部２０は、グループＧ３に属するドライバを初期化する。
【０１６６】
ステップＳ５２３において、メモリ管理部２０は、グループＧ２に属するドライバを初期化する。ステップＳ５２３の後、ステップＳ５０６に進む。
【０１６７】
ステップＳ５３１において、電流制御部１６は、メモリＭ２への電流の供給を復旧する。
【０１６８】
ステップＳ５３２において、メモリ管理部２０は、グループＧ３に属するドライバを初期化する。
【０１６９】
ステップＳ５３３において、メモリ管理部２０は、グループＧ２に属するドライバを初期化する。
【０１７０】
ステップＳ５３４において、メモリ管理部２０は、グループＧ１に属するドライバを初期化する。ステップＳ５３４の後、ステップＳ５０７に進む。
【０１７１】
ステップＳ５４１において、電子機器１は、電源オフ状態からオン状態に遷移する処理、いわゆるコールドスタート処理を実行する。ステップＳ５４１が実行されるのは、サスペンド状態に遷移した後にメモリＭ１への電流の供給が適正になされなかった場合、又は、サスペンド完了コードが０である、つまり、図１１に示されるステップＳ４０１より後で、かつ、ステップＳ４０５より前である場合である。この場合、メモリＭ１に記憶されているデータを使用した起動処理ができない。このような場合には、電子機器１は、電源オフ状態からオン状態に遷移する処理によって、オン状態に遷移する。
【０１７２】
なお、上記ハードウェアがＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）の一部として実現されている場合、電流制御部１６が当該ＳｏＣのレジスタの部分の電流の供給を維持する場合には、本実施の形態の制御は不要である。
【０１７３】
以上のように、本実施の形態の電子機器は、サスペンド状態に遷移する処理のうちの複数の時点で処理が正常に完了したか否かを判定し、正常に完了した処理については第一メモリに記憶された情報を用いて短時間でハードウェアの状態を復帰し、正常に完了しなかった処理については、通常の起動処理を用いて起動する。よって、電子機器は、オン状態からサスペンド状態への遷移に係る処理が正常に完了できなかった処理があってもその処理だけを通常起動により起動させながら、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【０１７４】
（実施の形態３）
本実施の形態において、オン状態からサスペンド状態への遷移に要する時間を削減する電子機器において、アプリケーションが複数のメモリに亘ってメモリ領域を割り当てる場合に、オン状態からサスペンド状態への遷移に要する時間を削減する技術を説明する。
【０１７５】
図１３は、実施の形態３に係る電子機器１のメモリ領域の説明図である。図１３では、実施の形態１における図３と同様に、アプリケーションＡ１領域１０１などがメモリＭ１に割り当てられており、アプリケーションＡ２領域１０２などがメモリＭ２に割り当てられている。そして、ビデオメモリ用領域がメモリＭ１及びＭ２に亘って割り当てられている。具体的には、メモリＭ１にビデオメモリ用領域１５１が割り当てられており、メモリＭ２にビデオメモリ用領域１５２が割り当てられている。
【０１７６】
このような場合に、メモリＭ２への電流の供給を遮断するときの処理について説明する。具体的には、メモリ管理部２０は、メモリＭ２への電流の供給を遮断する前に、ビデオメモリ用領域１５２に記憶されているデータを、メモリＭ１にあるビデオメモリ退避領域１５５にコピーすることで退避する。そして、メモリＭ２への電流の供給を復旧した後に、ビデオメモリ退避領域１５５に記憶されているデータをビデオメモリ用領域１５２にコピーする。
【０１７７】
図１４は、本実施の形態に係る電子機器１の電流遮断処理を示すフロー図である。なお、図１４におけるフロー図において、図９のフロー図と同じ処理には同じ符号を付して詳細な説明を省略する。
【０１７８】
メモリ管理部２０は、サスペンド完了フラグの初期化、及び、所定のアプリケーションの終了（ステップＳ２０１及びＳ２０２）の後に、メモリＭ２内のビデオメモリ用領域１５２に記憶されているデータのビデオメモリ退避領域１５５へのコピーを開始する（ステップＳ２０２Ａ）。ここで、ビデオメモリ用領域１５２に記憶されているデータのコピーは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によるコピーであってもよい。この場合、メモリ管理部２０は、ＤＭＡコントローラ（不図示）にコピーの開始を指示する。ＤＭＡコントローラは、この指示を受けてコピーを行う（ステップＳ２０２Ｂ）。ＤＭＡによるコピーを用いれば、コピーの最中にＣＰＵ１１が他の情報処理を行うことができる利点がある。なお、上記のコピーを、ＣＰＵ１１によるコピーを用いてもよい。
【０１７９】
そして、メモリ管理部２０は、メモリＭ２に割り当てられているメモリ領域に記憶されているデータのメモリＭ１へのコピー、メモリＭ２の無効化、ドライバの状態情報のコピーを行う（ステップＳ２０３、Ｓ２０４及びＳ２０５）。
【０１８０】
次に、メモリ管理部２０は、ビデオメモリ用領域１５２に記憶されているデータのコピーが完了したか否かを判定し、コピーが完了するまでステップＳ２０５Ａで待機する。
【０１８１】
その後、電流制御部１６がメモリＭ２への電流の供給を遮断し、メモリ管理部２０がサスペンド完了フラグをセットする（ステップＳ２０６及びＳ２０７）。
【０１８２】
図１５は、本実施の形態に係る電子機器１の電流復旧処理を示すフロー図である。なお、図１５におけるフロー図において、図１０のフロー図と同じ処理には同じ符号を付して詳細な説明を省略する。
【０１８３】
メモリ管理部２０は、メモリＭ１がデータを保持しているか否かの判定、サスペンド完了フラグがセットされているか否かの判定、及び、メモリＭ２への電流の供給の復旧をする（ステップＳ３０１、Ｓ３０２及びＳ３０３）。
【０１８４】
メモリ管理部２０は、メモリＭ１内のビデオメモリ退避領域１５５に記憶されているデータのビデオメモリ用領域１５２へのコピーを開始する（ステップＳ３０３Ａ）。ここで、ビデオメモリ退避領域１５５に記憶されているデータのコピーは、ＤＭＡによるコピーであってもよい。この場合、メモリ管理部２０は、ＤＭＡコントローラにコピーの開始を指示する。ＤＭＡコントローラは、この指示を受けてコピーを行う（ステップＳ３０３Ｂ）。
【０１８５】
次に、メモリ管理部２０は、ビデオメモリ退避領域１５５に記憶されているデータのコピーが完了したか否かを判定し、コピーが完了するまでステップＳ３０３Ｃで待機する。
【０１８６】
なお、Ｓ３０３Ｂの処理がＤＭＡによってなされる場合、ステップＳ３０３Ｂの処理は、ステップＳ３０４の処理と並行してなされ得る。つまり、ステップＳ３０４は、ステップＳ３０３Ｃより前に実行されてもよい。これにより、上記一連の処理に要する時間を削減できる。
【０１８７】
以上のように、本実施の形態の電子機器は、第二メモリを含む二以上の不揮発性メモリに亘って割り当てられたメモリ領域を、サスペンド状態の後に維持することができる。このように、電子機器は、二以上の不揮発性メモリに亘って割り当てられたメモリ領域をサスペンド状態の後に維持するとともに、オン状態からサスペンド状態への遷移に要する時間を削減することができる。また、このデータのコピーは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によってなされてもよく、これによりＣＰＵの処理負荷を軽減することで、起動処理に要する時間を削減することができる。
【０１８８】
（実施の形態４）
本実施の形態において、オン状態からサスペンド状態への遷移に要する時間を削減する電子機器において、サスペンド状態から電源オフ状態に遷移することでさらに電力消費を削減する技術を説明する。
【０１８９】
本実施の形態に係る電子機器１は、電子機器１の動作時間の履歴を利用して、次に電子機器１の動作が開始される時点を推定し、その時点までの時間が比較的長い場合に電源オフ状態に遷移することで、電力消費をより一層削減する。
【０１９０】
具体的には、メモリ管理部２０は、現時点より後に電子機器１がオフ状態からオン状態に遷移する時点である推定オン時点を推定する。電流制御部１６は、現時点から推定オン時点までの時間長が所定より大きい場合に、メモリＭ２への電流の供給を遮断する制御をし、現時点から推定オン時点までの時間長が所定より小さくなった場合に、メモリＭ２への電流の供給を復旧する制御をする。
【０１９１】
図１６は、本実施の形態に係る電子機器１の動作時間の履歴を示す説明図である。
【０１９２】
メモリ管理部２０は、電子機器１の動作時間を取得し、履歴として保持する。動作時間の履歴の一例が図１６に示されている。
【０１９３】
図１６には、例えば、日付「２０１８月２月１日」の時刻「６時４分」に電子機器１の動作が開始され、同じ日の時刻「２０時４分」に動作が終了したことが示されている。
【０１９４】
図１７は、本実施の形態に係る電子機器１の状態遷移に関する処理を示す説明図である。
【０１９５】
図１７に示されるように、ステップＳ６０１において、メモリ管理部２０は、電子機器１の動作時間の履歴を取得する。
【０１９６】
ステップＳ６０２において、メモリ管理部２０は、ステップＳ６０１で取得した動作時間の履歴に基づいて、次に電子機器１の動作が開始される時点を推定する。この時間を推定オン時点ともいう。
【０１９７】
ステップＳ６０３において、メモリ管理部２０は、現時点から推定オン時点までの時間が、予め定められた時間Ｔ１より長いか否かを判定する。現時点から推定オン時点までの時間が時間Ｔ１より長い場合（ステップＳ６０３でＹｅｓ）、ステップＳ６０４に進み、そうでない場合（ステップＳ６０３でＮｏ）、図１７に示される一連の処理を終了する。
【０１９８】
ステップＳ６０４において、メモリ管理部２０は、電源オフ状態に遷移する。
【０１９９】
ステップＳ６０５において、メモリ管理部２０は、現時点から推定オン時点までの時間が、予め定められた時間Ｔ２より短くなったか否かを判定する。現時点から推定オン時点までの時間が時間Ｔ２より短くなった場合（ステップＳ６０５でＹｅｓ）、ステップＳ６０６に進み、そうでない場合（ステップＳ６０５でＮｏ）、ステップＳ６０５を再び実行する。つまり、メモリ管理部２０は、現時点から推定オン時点までの時間が時間Ｔ２より短くなるまでステップＳ６０５で待機する。
【０２００】
ステップＳ６０６において、メモリ管理部２０は、サスペンド状態に遷移する。
【０２０１】
このように、サスペンド状態から電源オフ状態にすることで、メモリリークの問題を回避できる利点もある。
【０２０２】
以上のように、本実施の形態の電子機器は、電子機器の起動が比較的長い時間サスペンド状態を維持すると推定される場合に、一旦電源オフ状態をとることで消費電力を削減する。また、一旦電源オフ状態をとることで、仮にアプリケーションにメモリリークなどの不具合がある場合でも、その影響を抑制し、その後の動作を正常に行うことができる。よって、電子機器は、より一層消費電力を削減し、メモリリークなどの影響を回避しながら、オン状態からサスペンド状態への遷移に要する時間を削減することができる。
【０２０３】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の電子機器などを実現するソフトウェアは、次のようなプログラムである。
【０２０４】
すなわち、このプログラムは、コンピュータに、第一メモリ及び第二メモリを含む複数の揮発性メモリを備える電子機器の制御方法であって、前記第二メモリへの電流の供給を遮断する制御をする電流制御ステップと、前記第一メモリに優先的に割り当てられるべきメモリ領域を示す優先情報に基づいて、前記第一メモリ及び前記第二メモリのいずれかにメモリ領域を割り当てるメモリ管理ステップとを含む制御方法を実行させる。
【０２０５】
以上、一つまたは複数の態様に係る電子機器などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【０２０６】
本発明は、オン状態からサスペンド状態への遷移に要する時間を削減する電子機器に利用可能である。具体的には、車両のインフォテインメントシステムに利用可能である。
【符号の説明】
【０２０７】
１    電子機器
１１    ＣＰＵ
１２、Ｍ１、Ｍ２    メモリ
１３    表示装置
１４    入力装置
１５    操作部
１６    電流制御部
１７    電圧監視ＩＣ
２０    メモリ管理部
１０１、１０２、１０３、１０４、１０５、１２１、１２２、１４１    領域
１３１    サスペンド完了フラグ
１４１    ＯＳ領域
１５１、１５２    ビデオメモリ用領域
１５５    ビデオメモリ退避領域
Ａ１、Ａ２、Ａ３、Ａ４、Ａ５    アプリケーション
Ｄ１、Ｄ２    ドライバ
【図１】
2019179378.tif 000003
【図２】
2019179378.tif 000004
【図３】
2019179378.tif 000005
【図４】
2019179378.tif 000006
【図５】
2019179378.tif 000007
【図６】
2019179378.tif 000008
【図７】
2019179378.tif 000009
【図８】
2019179378.tif 000010
【図９】
2019179378.tif 000011
【図１０】
2019179378.tif 000012
【図１１】
2019179378.tif 000013
【図１２】
2019179378.tif 000014
【図１３】
2019179378.tif 000015
【図１４】
2019179378.tif 000016
【図１５】
2019179378.tif 000017
【図１６】
2019179378.tif 000018
【図１７】
2019179378.tif 000019