(57)【特許請求の範囲】
【請求項１】
メモリと；
前記メモリに保持されているデータの配置情報を取得するＯＳと；
前記ＯＳにより取得された前記配置情報を参照して、前記メモリを電源節約状態に遷移させるための電源制御を行うＢＩＯＳと；
を備え、
前記ＢＩＯＳは、前記配置情報に基づいて電源制御を行う機能を有する旨を示す第１のフラグを設定するフラグ設定部を有し、
前記ＯＳは、前記ＢＩＯＳにより前記第１のフラグが設定されている場合に前記配置情報を取得し、
前記ＯＳは、前記電源節約状態への遷移時に前記配置情報を取得したか否かを示す第２のフラグを設定するフラグ設定部を有し、
前記ＢＩＯＳは、前記ＯＳにより前記第２のフラグが設定されている場合に前記配置情報に基づく電源制御を行う、情報処理装置。
【請求項２】
前記メモリは複数のメモリ区域からなり、
前記ＢＩＯＳは、
前記メモリの電源制御を前記複数のメモリ区域ごとに行うメモリ状態制御部を有する、請求項１に記載の情報処理装置。
【請求項３】
前記メモリ状態制御部は、前記複数のメモリ区域のうちで、前記電源節約状態時に保持する保持用データが存在するメモリ区域に対してはセルフリフレッシュを行うように制御し、他のメモリ区域に対してはセルフリフレッシュを行わないように制御する、請求項２に記載の情報処理装置。
【請求項４】
前記ＢＩＯＳは、
前記ＯＳにより取得された前記配置情報を参照して、前記保持用データを保持するメモリ区域の数が減少するように前記保持用データの配置を変更する配置変更部を有し、
前記メモリ状態制御部は、前記配置変更部による配置変更後の前記保持用データの配置に基づいて前記メモリの電源制御を行う、請求項３に記載の情報処理装置。
【請求項５】
前記ＢＩＯＳは、
前記保持用データを圧縮する圧縮部を有し、
前記メモリ状態制御部は、前記配置変更部による配置変更、および前記圧縮部によるデータ圧縮の双方の後の前記保持用データの配置に基づいて前記メモリの電源制御を行う、請求項４に記載の情報処理装置。
【請求項６】
前記メモリ状態制御部は、前記メモリを前記電源節約状態から復帰させるための電源制御を行い、
前記配置変更部は、前記電源節約状態からの復帰時に、前記保持用データの配置を前記電源節約状態への遷移前の配置に変更する、請求項５に記載の情報処理装置。
【請求項７】
前記ＯＳは、
前記保持用データを保持するメモリ区域の数が減少するように前記保持用データの配置を変更する配置変更部と、
前記配置変更部による配置変更後のデータの配置情報を取得するデータ配置調査部と、
を有する、請求項４に記載の情報処理装置。
【請求項８】
前記ＯＳは、
前記保持用データを圧縮する圧縮部を有し、
前記データ配置調査部は、前記配置変更部による配置変更、および前記圧縮部によるデータ圧縮の双方の後のデータの配置情報を取得する、請求項７に記載の情報処理装置。
【請求項９】
前記メモリ状態制御部は、前記メモリを前記電源節約状態から復帰させるための電源制御を行い、
前記配置変更部は、前記電源節約状態からの復帰時に、前記保持用データの配置を前記電源節約状態への遷移前の配置に変更する、請求項８に記載の情報処理装置。
【請求項１０】
前記情報処理装置は、
不揮発性記憶媒体をさらに備え、
前記ＢＩＯＳは、
前記ＯＳにより取得された前記配置情報を用いて、前記電源節約状態時に保持する保持用データを前記不揮発性記憶媒体に記録するための記録制御部と、
前記メモリへの電源供給を停止させて前記メモリを電源節約状態に遷移させるメモリ状態制御部と、
を有する、請求項１に記載の情報処理装置。
【請求項１１】
前記ＢＩＯＳは、
前記ＯＳにより取得された前記配置情報を参照して、前記保持用データを前記メモリの一部分に集中させる配置変更部を有し、
前記記録制御部は、前記配置変更部により前記メモリの一部分に集中された前記保持用データを前記不揮発性記憶媒体に記録するための制御を行う、請求項１０に記載の情報処理装置。
【請求項１２】
前記ＢＩＯＳは、
前記保持用データを圧縮する圧縮部を有し、
前記記録制御部は、前記配置変更部および前記圧縮部による処理後の前記保持用データを前記不揮発性記憶媒体に記録するための制御を行う、請求項１１に記載の情報処理装置。
【請求項１３】
前記メモリ状態制御部は、前記メモリを前記電源節約状態から復帰させるための電源制御を行い、
前記配置変更部は、前記電源節約状態からの復帰時に、前記保持用データの配置を前記電源節約状態への遷移前の配置に変更する、請求項１２に記載の情報処理装置。
【請求項１４】
前記ＯＳは、
前記保持用データを前記メモリの一部分に集中させる配置変更部と、
前記配置変更部による処理後のデータの配置情報を取得するデータ配置調査部と、
を有する、請求項１０に記載の情報処理装置。
【請求項１５】
前記ＯＳは、
前記保持用データを圧縮する圧縮部を有し、
前記データ配置調査部は、前記配置変更部および前記圧縮部による処理後のデータの配置情報を取得する、請求項１４に記載の情報処理装置。
【請求項１６】
前記配置情報は、前記メモリ内の各データの配置位置を示す情報、および前記各データが前記保持用データであるか否かを示す情報を含む、請求項３に記載の情報処理装置。
【請求項１７】
情報処理装置に設けられたメモリに保持されているデータの配置情報をＯＳが取得するステップと；
前記ＯＳにより取得された前記配置情報を参照して、前記メモリを電源節約状態に遷移させるための電源制御をＢＩＯＳが行うステップと；
前記配置情報に基づいて電源制御を行う機能を有する旨を示す第１のフラグを前記ＢＩＯＳが設定するステップと；
前記電源節約状態への遷移時に前記配置情報を取得したか否かを示す第２のフラグを前記ＯＳが設定するステップと；
を含み、
前記ＯＳは、前記ＢＩＯＳにより前記第１のフラグが設定されている場合に前記配置情報を取得し、
前記ＢＩＯＳは、前記ＯＳにより前記第２のフラグが設定されている場合に前記配置情報に基づく電源制御を行う、電源制御方法。
【請求項１８】
コンピュータに、
メモリに保持されているデータの配置情報をＯＳが取得するステップと；
前記ＯＳにより取得された前記配置情報を参照して、前記メモリを電源節約状態に遷移させるための電源制御をＢＩＯＳが行うステップと；
前記配置情報に基づいて電源制御を行う機能を有する旨を示す第１のフラグを前記ＢＩＯＳが設定するステップと；
前記電源節約状態への遷移時に前記配置情報を取得したか否かを示す第２のフラグを前記ＯＳが設定するステップと；
を実行させ、
前記ＯＳに、前記ＢＩＯＳにより前記第１のフラグが設定されている場合に前記配置情報を取得させ、
前記ＢＩＯＳに、前記ＯＳにより前記第２のフラグが設定されている場合に前記配置情報に基づく電源制御を行わせるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、電源制御方法、およびプログラムに関する。
【背景技術】
【０００２】
近日、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、携帯電話およびゲーム機器など、多様な情報処理装置が広く普及している。これらの情報処理装置は、ＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）およびメモリを備え、ＣＰＵがメモリを作業領域として利用することによりＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションプログラムなどが実行される。
【０００３】
また、携帯型の情報処理装置の普及に伴い、情報処理装置の低消費電力化に関する技術が注目されている。例えば、情報処理装置の不使用時の消費電力を削減するための電源節約状態として、サスペンド状態やハイバネーション状態などが知られている。
【０００４】
サスペンド状態は、メモリにデータを保持しつつ、ＣＰＵ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、およびＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などのデバイスをオフまたは停止することで、装置全体の消費電力を削減する状態である。このサスペンド状態では、上記のようにメモリにデータが保持されているので、情報処理装置はサスペンド状態から通常動作状態に高速に復帰することが可能である。ただし、サスペンド状態では、メモリがセルフリフレッシュを行うための電力が消費される。なお、リフレッシュ動作については例えば特許文献１に記載されている。
【０００５】
一方、ハイバネーション状態は、メモリのデータをＨＤＤなどの不揮発性メモリに退避させることで、ＣＰＵ、ＨＤＤ、およびＬＣＤなどのデバイスに加え、メモリもオフまたは停止された状態である。このハイバネーション状態では、情報処理装置の電源を完全にオフすることも可能であるので、サスペンド状態よりもさらに消費電力を削減できる利点がある。ただし、メモリのデータがＨＤＤなどの不揮発性メモリに退避されているので、ハイバネーション状態から通常動作状態への復帰には、サスペンド状態から通常動作状態への復帰よりも時間を要する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１７１６６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、通常状態から電源節約状態への遷移の判断はＯＳが行い、ＣＰＵおよびメモリなどの電源制御はＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）がＯＳによる判断に基づいて行うことが一般的である。
【０００８】
しかし、ＢＩＯＳは、メモリ構成、メモリコントローラおよび周辺回路などを制御することはできるが、ＯＳがメモリ上で管理しているプログラムやデータなどの配置を把握していない。このため、ＢＩＯＳは、サスペンド状態への遷移に際してメモリ全体がセルフリフレッシュを行うように制御するので、メモリにおいて不要に電力が消費されてしまう場合があった。また、ＢＩＯＳがハイバネーション状態への遷移を制御する場合、一般に、メモリ全体のデータが不揮発性メモリに退避されるよう制御するので、ハイバネーション状態への遷移およびハイバネーション状態からの復帰に要する時間が長期化してしまうという問題があった。
【０００９】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、メモリに保持されているデータの配置情報を参照してＢＩＯＳが電源制御を行うことが可能な、新規かつ改良された情報処理装置、電源制御方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある観点によれば、メモリと、前記メモリに保持されているデータの配置情報を取得するＯＳと、前記ＯＳにより取得された前記配置情報を参照して、前記メモリを電源節約状態に遷移させるための電源制御を行うＢＩＯＳと、
を備える情報処理装置が提供される。
【００１１】
前記メモリは複数のメモリ区域からなり、前記ＢＩＯＳは、前記メモリの電源制御を前記複数のメモリ区域ごとに行うメモリ状態制御部を有してもよい
【００１２】
前記メモリ状態制御部は、前記複数のメモリ区域のうちで、前記電源節約状態時に保持する保持用データが存在するメモリ区域に対してはセルフリフレッシュを行うように制御し、他のメモリ区域に対してはセルフリフレッシュを行わないように制御してもよい。
【００１３】
前記ＢＩＯＳは、前記ＯＳにより取得された前記配置情報を参照して、前記保持用データを保持するメモリ区域の数が減少するように前記保持用データの配置を変更する配置変更部を有し、前記メモリ状態制御部は、前記配置変更部による配置変更後の前記保持用データの配置に基づいて前記メモリの電源制御を行なってもよい。
【００１４】
前記ＢＩＯＳは、前記保持用データを圧縮する圧縮部を有し、前記メモリ状態制御部は、前記配置変更部による配置変更、および前記圧縮部によるデータ圧縮の双方の後の前記保持用データの配置に基づいて前記メモリの電源制御を行なってもよい。
【００１５】
前記メモリ状態制御部は、前記メモリを前記電源節約状態から復帰させるための電源制御を行い、前記配置変更部は、前記電源節約状態からの復帰時に、前記保持用データの配置を前記電源節約状態への遷移前の配置に変更してもよい。
【００１６】
前記ＯＳは、前記保持用データを保持するメモリ区域の数が減少するように前記保持用データの配置を変更する配置変更部と、前記配置変更部による配置変更後のデータの配置情報を取得するデータ配置調査部と、を有してもよい。
【００１７】
前記ＯＳは、前記保持用データを圧縮する圧縮部を有し、前記データ配置調査部は、前記配置変更部による配置変更、および前記圧縮部によるデータ圧縮の双方の後のデータの配置情報を取得してもよい。
【００１８】
前記メモリ状態制御部は、前記メモリを前記電源節約状態から復帰させるための電源制御を行い、前記配置変更部は、前記電源節約状態からの復帰時に、前記保持用データの配置を前記電源節約状態への遷移前の配置に変更してもよい。
【００１９】
前記情報処理装置は、不揮発性記憶媒体をさらに備え、前記ＢＩＯＳは、前記ＯＳにより取得された前記配置情報を用いて、前記電源節約状態時に保持する保持用データを前記不揮発性記憶媒体に記録するための記録制御部と、前記メモリへの電源供給を停止させて前記メモリを電源節約状態に遷移させるメモリ状態制御部と、を有してもよい
【００２０】
前記ＢＩＯＳは、前記ＯＳにより取得された前記配置情報を参照して、前記保持用データを前記メモリの一部分に集中させる配置変更部を有し、前記記録制御部は、前記配置変更部により前記メモリの一部分に集中された前記保持用データを前記不揮発性記憶媒体に記録するための制御を行なってもよい。
【００２１】
前記ＢＩＯＳは、前記保持用データを圧縮する圧縮部を有し、前記記録制御部は、前記配置変更部および前記圧縮部による処理後の前記保持用データを前記不揮発性記憶媒体に記録するための制御を行なってもよい。
【００２２】
前記メモリ状態制御部は、前記メモリを前記電源節約状態から復帰させるための電源制御を行い、前記配置変更部は、前記電源節約状態からの復帰時に、前記保持用データの配置を前記電源節約状態への遷移前の配置に変更してもよい。
【００２３】
前記ＯＳは、前記保持用データを前記メモリの一部分に集中させる配置変更部と、前記配置変更部による処理後のデータの配置情報を取得するデータ配置調査部と、を有してもよい。
【００２４】
前記ＯＳは、前記保持用データを圧縮する圧縮部を有し、前記データ配置調査部は、前記配置変更部および前記圧縮部による処理後のデータの配置情報を取得してもよい。
【００２５】
前記配置情報は、前記メモリ内の各データの配置位置を示す情報、および前記各データが前記保持用データであるか否かを示す情報を含んでもよい。
【００２６】
前記ＢＩＯＳは、前記配置情報に基づいて電源制御を行う機能を有する旨を示すフラグを設定するフラグ設定部をさらに備え、前記ＯＳは、前記ＢＩＯＳにより前記フラグが設定されている場合に前記配置情報を取得してもよい。
【００２７】
前記ＯＳは、前記電源節約状態への遷移時に前記配置情報を取得したか否かを示すフラグを設定するフラグ設定部をさらに備え、前記ＢＩＯＳは、前記ＯＳにより前記フラグが設定されている場合に前記配置情報に基づく電源制御を行なってもよい。
【００２８】
また、上記課題を解決するために、本発明の別の観点によれば、情報処理装置に設けられたメモリに保持されているデータの配置情報をＯＳが取得するステップと、前記ＯＳにより取得された前記配置情報を参照して、前記メモリを電源節約状態に遷移させるための電源制御をＢＩＯＳが行うステップと、を含む電源制御方法が提供される。
【００２９】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータに、メモリに保持されているデータの配置情報をＯＳが取得するステップと、前記ＯＳにより取得された前記配置情報を参照して、前記メモリを電源節約状態に遷移させるための電源制御をＢＩＯＳが行うステップと、を実行させるためのプログラムが提供される。
【発明の効果】
【００３０】
以上説明したように本発明によれば、メモリに保持されているデータの配置情報を参照してＢＩＯＳが電源制御を行うことが可能となる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態による情報処理装置の外観を示した説明図である。
【図２】情報処理装置の内部構成を示した説明図である。
【図３】情報処理装置の各動作状態を示した説明図である。
【図４】第１の実施形態によるＯＳおよびＢＩＯＳに実装される機能を示した説明図である。
【図５】本実施形態によるＦＡＣＳの構成例を示した説明図である。
【図６】Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓの内容を示した説明図である。
【図７】Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部により作成されるＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの具体例を示した説明図である
【図８】Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部により作成されるＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの変形例を示した説明図である。
【図９】サスペンド状態への遷移時に行われる処理の具体例を示した説明図である。
【図１０】情報処理装置１の起動時におけるＢＩＯＳの動作を示したフローチャートである。
【図１１】サスペンド状態への遷移時のＯＳによる動作を示したフローチャートである。
【図１２】サスペンド状態への遷移時のＢＩＯＳによる動作を示したフローチャートである。
【図１３】サスペンド状態から通常動作状態への復帰時のＢＩＯＳによる動作を示したフローチャートである。
【図１４】ＯＳおよびＢＩＯＳによる一連の動作を示したシーケンス図である。
【図１５】第２の実施形態によるＯＳおよびＢＩＯＳに実装される機能を示した説明図である。
【図１６】サスペンド状態への遷移時のＯＳによる動作を示したフローチャートである。
【図１７】サスペンド状態への遷移時のＢＩＯＳによる動作を示したフローチャートである。
【図１８】第３の実施形態によるＯＳおよびＢＩＯＳに実装される機能を示した説明図である。
【図１９】ハイバネーション状態への遷移時に行われる処理の具体例を示した説明図である。
【図２０】ハイバネーション状態への遷移時のＢＩＯＳによる動作を示したフローチャートである。
【図２１】第４の実施形態によるＯＳおよびＢＩＯＳに実装される機能を示した説明図である。
【図２２】ハイバネーション状態への遷移時のＢＩＯＳによる動作を示したフローチャートである。
【発明を実施するための形態】
【００３２】
以下に添付図面を参照しながら、本発明の実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００３３】
また、本明細書及び図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なるアルファベットを付して区別する場合もある。ただし、実質的に同一の機能構成を有する複数の構成要素の各々を特に区別する必要がない場合、同一符号のみを付する。
【００３４】
また、以下に示す項目順序に従って当該「発明を実施するための形態」を説明する。
１．情報処理装置の基本構成
２．第１の実施形態
２−１．第１の実施形態によるＯＳおよびＢＩＯＳの機能
２−２．第１の実施形態によるＯＳおよびＢＩＯＳの動作
３．第２の実施形態
３−１．第２の実施形態によるＯＳおよびＢＩＯＳの機能
３−２．第２の実施形態によるＯＳおよびＢＩＯＳの動作
４．第３の実施形態
４−１．第３の実施形態によるＯＳおよびＢＩＯＳの機能
４−２．第３の実施形態によるＢＩＯＳの動作
５．第４の実施形態
５−１．第４の実施形態によるＯＳおよびＢＩＯＳの機能
５−２．第４の実施形態によるＢＩＯＳの動作
６．まとめ
【００３５】
＜１．情報処理装置の基本構成＞
本発明は、一例として「２．第１の実施形態」〜「５．第４の実施形態」において詳細に説明するように、多様な形態で実施される。また、各実施形態による情報処理装置は、メモリと、メモリに保持されているデータの配置情報であるＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを取得するＯＳと、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照して、メモリをサスペンド状態またはハイバネーション状態などの電源節約状態に遷移させるための電源制御を行うＢＩＯＳと、を含む。以下では、まず、このような各実施形態による情報処理装置おいて共通する基本構成について図１〜図３を参照して説明する。
【００３６】
（情報処理装置の外観）
図１は、本発明の実施形態による情報処理装置１の外観を示した説明図である。図１に示したように、本発明の実施形態による情報処理装置１は、本体部１０、キーボード１２、電源スイッチ１４、遷移用スイッチ１６、およびＬＣＤ１８を備える。なお、図１においては情報処理装置１の一例としてＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）を示しているが、情報処理装置１はＰＣに限定されない。例えば、情報処理装置１は、家庭用映像処理装置（ＤＶＤレコーダ、ビデオデッキなど）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、家庭用ゲーム機器、家電機器、携帯電話、携帯用音楽再生装置、携帯用映像処理装置、携帯用ゲーム機器などであってもよい。
【００３７】
本体部１０は、図２を参照して後述するＣＰＵ２０、メモリ２６、およびＨＤＤ２８などのハードウェアを格納する筐体である。キーボード１２、電源スイッチ１４および遷移用スイッチ１６はこの本体部１０上に設けられる。
【００３８】
キーボード１２は、ユーザによる情報や指示の入力操作を検出する。電源スイッチ１４および遷移用スイッチ１６はユーザにより押圧されるボタンである。情報処理装置１は、電源スイッチ１４をユーザにより押圧されると動作を開始し、遷移用スイッチ１６をユーザにより押圧されると動作状態を遷移させる。なお、動作状態は、図３を参照して後述するように、通常動作状態、サスペンド状態、ハイバネーション状態、およびシャットダウン状態などを含む。また、情報処理装置１が動作状態を遷移させるトリガは、遷移用スイッチ１６をユーザにより押圧された場合に限定されない。例えば、情報処理装置１は、通常動作状態中に長時間にわたってユーザ操作が検出されなかった場合、動作状態をサスペンド状態に遷移させてもよい。
【００３９】
ＬＣＤ１８は、情報処理装置１において生成された表示画面を表示する表示部として機能する。なお、ＬＣＤ１８は表示部の一例として例示したに過ぎず、表示部は、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、またはＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）装置であってもよい。
【００４０】
以上、図１を参照して情報処理装置１の外観構成を説明した。続いて、図２を参照し、情報処理装置１の内部構成を説明する。
【００４１】
（情報処理装置の内部構成）
図２は、情報処理装置１の内部構成を示した説明図である。図２に示したように、情報処理装置１は、ＣＰＵ２０と、ＢＩＯＳ−ＲＯＭ２２と、メモリコントローラ２４と、複数のメモリバス２５と、メモリ２６と、ＨＤＤ２８と、二次電池３０と、電源コントローラ３２と、を備える。
【００４２】
ＣＰＵ２０は、情報処理装置１を制御するメインプロセッサであり、ＨＤＤ２８からメモリ２６に読み出されたＯＳやアプリケーションプログラムを実行する。また、ＣＰＵ２０は、ＢＩＯＳ−ＲＯＭ２２からメモリ２６に読み出されたＢＩＯＳを実行する。
【００４３】
ＢＩＯＳ−ＲＯＭ２２は、ＣＰＵ２０が実行するためのＢＩＯＳを記憶している不揮発性メモリである。ＢＩＯＳは、情報処理装置１内のキーボード１２、メモリコントローラ２４、およびＨＤＤ２８などのハードウェアを制御する機能（プログラム群）を有する。また、ＢＩＯＳは、情報処理装置１の動作状態の遷移時に、各ハードウェアに対する電源供給を制御する機能を有する。ＢＩＯＳによる電源制御については、「２．第１の実施形態」〜「５．第４の実施形態」において詳細に説明する。
【００４４】
メモリコントローラ２４は、ＣＰＵ２０からの指示に従い、メモリ２６へのデータの書き込み、および、メモリ２６からのデータの読み出しなどを制御する。ここで、メモリ２６には、例えば、コンデンサの電荷の有無によって１ビットの情報を記憶することを動作原理とするＤＲＡＭが使用される。また、コンデンサ内の電荷は時間の経過と共に失われる。このため、通常動作中に関しては、メモリコントローラ２４が、メモリ２６内の各コンデンサの電荷を定期的に充電し直すリフレッシュ動作を制御する。
【００４５】
メモリ２６は、ＣＰＵ２０による作業領域として用いられる揮発性メモリである。このメモリ２６は、図２に示したようにメモリコントローラ２４と複数のメモリバス２５により接続されているので、複数系列のデータを並列的に入出力することができる。
【００４６】
また、メモリ２６は、電源状態を独立して制御可能な複数のメモリ区域から構成される。メモリ区域の単位としては、１のメモリバスに対応する領域であるチャンネルや、チャンネルより細かな区域であるランクまたはバンクなどが挙げられる。例えば、メモリ２６がチャンネルＡおよびチャンネルＢから構成される場合、チャンネルＡには電源が供給され、チャンネルＢには電源が供給されないように制御することが可能である。
【００４７】
ＨＤＤ２８は、磁気記憶装置であり、ＣＰＵ２０が実行するためのＯＳや各種アプリケーションプログラムなどを記憶する。なお、ＨＤＤ２８は不揮発性メモリの一例として記載したに過ぎず、情報処理装置１に設けられる不揮発性メモリはＨＤＤ２８に限定されない。
【００４８】
二次電池３０は、情報処理装置１の各ハードウェアを動作させるために必要な電源を供給するバッテリである。なお、情報処理装置１は、ＡＣアダプタと接続されている場合、ＡＣアダプタから供給される電源に基づいて動作することも可能である。
【００４９】
電源コントローラ３２は、ＣＰＵ２０からの指示があった場合には当該指示を加味し、ＣＰＵ２０、メモリ２６およびＬＣＤ１８などのハードウェアへの電源供給を制御する。以下、情報処理装置１の各動作状態において電源コントローラ３２が行う電源制御について図３を参照して説明する。
【００５０】
（情報処理装置の状態遷移）
図３は、情報処理装置１の各動作状態を示した説明図である。図３に示したように、情報処理装置１の動作状態としては、シャットダウン状態ＳＴ１、通常動作状態ＳＴ２、サスペンド状態ＳＴ３、およびハイバネーション状態ＳＴ４が一例として挙げられる。
【００５１】
シャットダウン状態ＳＴ１においては、図３に示したように、電源コントローラ３２はメモリ２６やＣＰＵ２０などに電源を供給しない（電源オフ）。このシャットダウン状態ＳＴ１において例えば電源スイッチ１４の押圧により情報処理装置１が通常動作状態ＳＴ２に遷移すると、電源コントローラ３２は図３に示したようにメモリ２６やＣＰＵ２０などへの電源供給を開始する（電源オン）。
【００５２】
その後、情報処理装置１がサスペンド状態ＳＴ３に遷移すると、電源コントローラ３２はＣＰＵ２０への電源供給を停止する。一方、電源コントローラ３２は、メモリ２６がメモリコントローラ２４からの制御に従ってセルフリフレッシュを行えるように、メモリ２６への電源供給は継続する。ここで、電源コントローラ３２は、メモリ２６への電源供給をメモリ区域ごとに制御することが可能である。例えば、電源コントローラ３２は、ＣＰＵ２０（ＢＩＯＳ）からの指示に従い、メモリ２６の一部のメモリ区域には電源を供給し、他のメモリ区域への電源供給を停止することが可能である。なお、メモリ２６は、メモリコントローラ２４からの制御に従い、電源が供給されるメモリ区域においてセルフリフレッシュを行うことができる。
【００５３】
このサスペンド状態ＳＴ３では、通常動作状態ＳＴ２よりも消費電力が抑制される点、ハイバネーション状態ＳＴ４よりも通常動作状態ＳＴ２への復帰時間が短い点で有用である。
【００５４】
また、情報処理装置１がハイバネーション状態ＳＴ４に遷移すると、電源コントローラ３２はＣＰＵ２０およびメモリ２６への電源供給を停止する。ここで、メモリ２６に保持されていたデータはＣＰＵ２０によりＨＤＤ２８に退避させられる。このため、ハイバネーション状態ＳＴ４では、サスペンド状態ＳＴ３よりも通常動作状態ＳＴ２への復帰時間が長くなるが、メモリ２６への電源供給が停止されるので、サスペンド状態ＳＴ３よりもさらに消費電力が抑制される点で有用である。
【００５５】
（本発明の実施形態に至る経緯）
ここで、通常状態ＳＴ２からサスペンド状態ＳＴ３やハイバネーション状態ＳＴ４などの電源節約状態への遷移の判断はＯＳが行い、ＣＰＵ２０およびメモリ２６などの電源制御はＢＩＯＳがＯＳによる判断に基づいて行うことが一般的である。
【００５６】
しかし、一般的なＢＩＯＳは、メモリ２６の構成、メモリコントローラ２４および周辺回路などを制御することはできるが、ＯＳがメモリ上で管理しているプログラムやデータなどの配置を把握していない。
【００５７】
このため、一般的なＢＩＯＳは、メモリ区域ごとに電源制御を行う機能を有するものの、サスペンド状態ＳＴ３への遷移に際してメモリ２６全体がセルフリフレッシュを行うように制御するので、メモリ２６において不要に電力が消費されてしまう場合があった。
【００５８】
また、ＢＩＯＳがハイバネーション状態への遷移を制御する場合、一般に、ハイバネーション状態ＳＴ４への遷移に際してメモリ２６全体のデータがＨＤＤ２８に退避されるよう制御するので、ハイバネーション状態ＳＴ４への遷移およびハイバネーション状態ＳＴ４からの復帰に要する時間が長期化してしまうという問題があった。
【００５９】
そこで、上記事情を一着眼点にして本発明の実施形態を創作するに至った。本発明の第１および第２の実施形態によれば、サスペンド状態において一部のメモリ区域にセルフリフレッシュを行わせ、他のメモリ区域への電源供給を停止することにより、消費電力を一層削減することが可能である。また、本発明の第３および第４の実施形態によれば、ハイバネーション状態においてメモリ２６に保持されているデータを選択的にＨＤＤ２８に退避させることにより、ハイバネーション状態への遷移およびハイバネーション状態からの復帰に要する時間を短縮することが可能である。以下、このような各実施形態について詳細に説明する。
【００６０】
＜２．第１の実施形態＞
［２−１．第１の実施形態によるＯＳおよびＢＩＯＳの機能］
図４は、第１の実施形態によるＯＳ１００およびＢＩＯＳ２００に実装される機能を示した説明図である。図４に示したように、ＯＳ１００は、ＦＡＣＳ（Ｆｉｒｍｗａｒｅ  ＡＣＰＩ  Ｃｏｎｔｒｏｌ  Ｓｔｒｕｃｔｕｒｅ）管理部１１０、状態遷移制御部１２０、データ配置調査部１３０、およびＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０を有する。
【００６１】
ＦＡＣＳ管理部１１０（フラグ設定部）は、ＢＩＯＳ２００との相互作用のために利用されるＦＡＣＳを管理する。本実施形態におけるＦＡＣＳは、パーソナルコンピュータの電量制御と構成要素に関する公開された規格であるＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ）で定義されるＦＡＣＳを拡張したものである。ここで、図５を参照し、このような本実施形態によるＦＡＣＳの構成例を説明する。
【００６２】
図５は、本実施形態によるＦＡＣＳの構成例を示した説明図である。図５に示したように、ＦＡＣＳは、Ｓｉｇｎａｔｕｒｅ、Ｌｅｎｇｔｈ、Ｈａｒｄｗａｒｅ  Ｓｉｇｎａｔｕｒｅ、Ｆｉｒｍｗａｒｅ  Ｗａｋｉｎｇ  Ｖｅｃｔｏｒ、Ｇｌｏｂａｌ  Ｌｏｃｋ、Ｆｌａｇｓ、Ｘ  Ｆｉｒｍｗａｒｅ  Ｗａｋｉｎｇ  Ｖｅｃｔｏｒ、Ｖｅｒｓｉｏｎ、Ｒｅｓｅｒｖｅｄ、ＯＳＰＭ  Ｆｌａｇｓ、およびＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓなどのフィールドを含む。
【００６３】
上記構成例における、ＦｌａｇｓおよびＯＳＰＭ  Ｆｌａｇｓの中身、およびＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓが新規な構成である。具体的には、Ｆｌａｇｓには、図５に示したように、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆというフラグを含む。このＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆは、ＢＩＯＳ２００が後述するＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐに基づいて電源制御を行う機能を有するか否かを示すフラグである。ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆは、情報処理装置１の起動時にＢＩＯＳ２００により設定される。
【００６４】
また、ＯＳＰＭ  Ｆｌａｇｓは、図５に示したように、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆというフラグを含む。このＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆは、ＯＳ１００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成し、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  ＡｄｄｒｅｓｓにＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐのアドレスを格納したか否かを示すフラグである。ＦＡＣＳ管理部１１０は、通常状態からサスペンド状態やハイバネーション状態などの電源節約状態への遷移時に、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成などをトリガにしてＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆを設定する。
【００６５】
なお、ＡＣＰＩにおいてＦｌａｇｓおよびＯＳＰＭ  ＦｌａｇｓのＲｅｓｅｒｖｅｄ領域は「０」と定義されている。このため、ＯＳがＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成機能を有さない場合、またはＢＩＯＳ２００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐに基づいて電源制御を行う機能を有さない場合には、ＦｌａｇｓまたはＯＳＰＭ  Ｆｌａｇｓにおいて当該機能が無いこと、または無効であることが保障される。例えば、ＢＩＯＳが上記電源制御のための機能を有さず、ＯＳがＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成機能などを有する場合、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆが「０」となるので、ＯＳはＢＩＯＳに当該機能が無いと判断できる。一方、ＢＩＯＳが上記電源制御のための機能を有し、ＯＳがＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成機能などを有さない場合、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆが「０」となるので、ＢＩＯＳはＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照しない。このように、本実施形態によるＦＡＣＳを用いることにより、ＢＩＯＳまたはＯＳの一方が上記機能を有さない場合にも情報処理装置１の正常な動作が保障される。さらに、ＯＳがＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成機能などを有さないことや、ＢＩＯＳが上記電源制御のための機能を有さないことを示すための追加実装が不要である。
【００６６】
また、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに関し、図６を参照して説明する。
【００６７】
図６は、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓの内容を示した説明図である。図６に示したように、ＦＡＣＳに含まれるＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓは、メモリ２６内にＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０により作成されたＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの位置を示すアドレス情報が記載される。したがって、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに基づいてＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照することが可能である。
【００６８】
ここで、図４を参照してＯＳ１００の構成の説明に戻ると、状態遷移制御部１２０は、情報処理装置１の状態遷移の判断、および状態遷移のための準備処理などを行う。例えば、状態遷移制御部１２０は、動作状態を遷移するか否かを、ユーザによる遷移用スイッチ１６の押圧の有無に基づいて判断してもよいし、ユーザによる情報処理装置１の使用状況に基づいて決定してもよい。より具体的には、状態遷移制御部１２０は、情報処理装置１がユーザにより所定時間にわたって使用されなかった場合、通常動作状態からサスペンド状態またはハイバネーション状態への遷移を決定してもよい。
【００６９】
また、状態遷移制御部１２０によるサスペンド遷移時（サスペンド状態への遷移時）の準備処理としては、ドライバー／アプリケーションへのサスペンド遷移の通知、デバイスのレジスタ保存、デバイスの電源制御、Ｗａｋｅ設定、割り込み禁止、バスマスタ転送禁止などが挙げられる。
【００７０】
データ配置調査部１３０は、状態遷移制御部１２０により通常動作状態からサスペンド状態への遷移が決定された場合、メモリ２６に保持されているデータの配置を調査する。また、データ配置調査部１３０は、各データがサスペンド状態時にメモリ２６に保持されるべき要保持データ（保持用データ）であるか否かを調査する。
【００７１】
ここで、上記調査はＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成のために行われるので、ＢＩＯＳ２００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐに基づいて電源制御を行う機能を有さない場合、当該調査は不要な処理となる。そこで、データ配置調査部１３０は、ＦＡＣＳを参照し、ＢＩＯＳによりＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆが設定されている場合に上記調査を行ってもよい。
【００７２】
Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０は、データ配置調査部１３０による調査結果に基づき、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ（配置情報）を作成する。このＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐは、メモリ２６に保持されている各データの配置位置および属性（要保持データであるか否か）を示す情報である。以下、このようなＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの具体例を説明する。
【００７３】
図７は、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０により作成されるＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの具体例を示した説明図である。図７に示したように、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの各エントリは、アドレス、サイズ、および属性に関する情報を含む。例えば、アドレスＡ１を起点とするサイズＬ１のデータは、ＯＳ管理下の要保持データであるので、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０は、当該データの属性として「要」と記載する。
【００７４】
ここで、ＯＳ管理下の要保持データは、例えば、ＯＳ１００のプログラム、アプリケーションプログラム、およびアプリケーションデータなどを含む。一方、ディスクキャッシュ要のデータは要保持データに含まれなくてもよい。
【００７５】
また、アドレスＡ５を起点とするサイズＬ５のデータは、ＢＩＯＳ２００による管理領域であり、ＯＳ１００側で保持の要否を判断できないので、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０は、当該データの属性として「ｒｅｓｅｒｖｅｄ」と記載する。
【００７６】
なお、図７においては、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐがメモリ２６上の全てのデータの配置情報を含む例を説明したが、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐはかかる例に限定されない。例えば、図８に示したように、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐは、ＯＳ管理領域の情報を含み、ＢＩＯＳ管理領域の情報を含まなくてもよい。
【００７７】
ＯＳ１００は、サスペンド遷移時、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０によるＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成など、ＯＳ１００側での準備処理が完了すると、ＢＩＯＳ２００にサスペンド遷移を通知する。
【００７８】
ここで、図４を参照してＢＩＯＳ２００の機能の説明に戻る。ＢＩＯＳ２００は、図４に示したように、ＦＡＣＳ管理部２１０、データ再配置部２２０、データ圧縮部２３０、メモリ状態制御部２４０、およびデータ展開部２５０を有する。
【００７９】
ＦＡＣＳ管理部２１０（フラグ設定部）は、ＯＳ１００との相互作用のために利用されるＦＡＣＳを管理する。例えば、ＦＡＣＳ管理部２１０は、ＢＩＯＳ２００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐに基づく電源制御に対応しているので、情報処理装置１の起動時に、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆにフラグを設定する。
【００８０】
データ再配置部２２０（配置変更部）は、通常動作状態からサスペンド状態への遷移時、または、サスペンド状態から通常動作状態への復帰時に、メモリ２６内のデータ配置を変更する。
【００８１】
具体的には、データ再配置部２２０は、通常動作状態からサスペンド状態への遷移時、ＦＡＣＳのＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆを確認する。そして、データ再配置部２２０は、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグが設定されている場合、すなわち、ＯＳ１００によりＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐが作成され、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  ＡｄｄｒｅｓｓにＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐのアドレスが格納された場合、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓを確認する。
【００８２】
続いて、データ再配置部２２０は、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに基づいてＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照し、メモリ２６において要保持データを保持するメモリ区域の数が減少するように要保持データの配置を変更する（要保持データのデフラグメンテ―ション）。
【００８３】
また、データ再配置部２２０は、サスペンド状態から通常動作状態への復帰時に、メモリ２６内の要保持データの配置を、サスペンド状態への遷移前と同じ配置になるように変更する。このために、データ再配置部２２０は、通常動作状態からサスペンド状態への遷移時に行った配置変更の内容を保持していてもよい。
【００８４】
データ圧縮部２３０は、通常動作状態からサスペンド状態への遷移時に、要保持データを圧縮する。なお、本明細書においては、要保持データの圧縮をデータ再配置部２２０による配置変更後に行う例を説明するが、要保持データの圧縮をデータ再配置部２２０による配置変更前に行ってもよい。
【００８５】
メモリ状態制御部２４０は、データ再配置部２２０およびデータ圧縮部２３０による処理後に、メモリコントローラ２４や電源コントローラ３２に指示を出すことにより、メモリ２６の電力制御をメモリ区域ごとに行う。
【００８６】
具体的には、メモリ状態制御部２４０は、メモリ２６を構成する複数のメモリ区域のうちで、要保持データが存在するメモリ区域に対してはセルフリフレッシュを行うように制御し、他のメモリ区域に対してはセルフリフレッシュを行わないように制御する。すなわち、メモリ状態制御部２４０は、要保持データが存在しないメモリ区域への電源供給を停止するようにメモリコントローラ２４または電源コントローラ３２に指示を出す。
【００８７】
データ展開部２５０は、サスペンド状態から通常動作状態への復帰時に、データ圧縮部２３０により圧縮されたデータを展開する。
【００８８】
以上の構成により、サスペンド状態において、メモリ２６の全体でなく、メモリ２６において要保持データを保持するメモリ区域のみにセルフリフレッシュを行わせることが可能となるので、消費電力を削減することが可能である。以下、データ再配置部２２０、データ圧縮部２３０、およびメモリ状態制御部２４０による処理について図９を参照してより具体的に説明する。
【００８９】
図９は、サスペンド状態への遷移時に行われる処理の具体例を示した説明図である。図９の左部に示したように要保持データがメモリ２６上のチャンネルＡおよびＢに分散して配置されている場合、データ再配置部２２０は、図９の中部に示したように、要保持データがメモリ２６の一部に集中するように各要保持データの配置を変更する。
【００９０】
さらに、データ圧縮部２３０は、図９の右部に示したように要保持データを圧縮する。その結果、図９の右部に示したように要保持データがチャンネルＡのみに存在する場合、メモリ状態制御部２４０は、チャンネルＡに対してはセルフリフレッシュを行うように制御する。一方、メモリ状態制御部２４０は、チャンネルＢに対する電源供給を電源コントローラ３２に停止させ、チャンネルＢをオフさせる。かかる構成により、サスペンド状態時のメモリ２６における消費電力を大幅に削減することが可能となる。
【００９１】
また、サスペンド状態から通常動作状態への復帰時には、図９の中部に示したように、データ展開部２５０がメモリ２６に保持されている圧縮された要保持データを展開する。さらに、データ再配置部２２０が、メモリ２６内の要保持データの配置を、サスペンド状態への遷移前と同じ配置になるように変更する。かかる構成により、メモリ２６内の要保持データの配置を、ＯＳ１００が把握している通りのデータ配置に戻すことができるので、情報処理装置１は正常に通常動作状態に復帰することが可能である。
【００９２】
［２−２．第１の実施形態によるＯＳおよびＢＩＯＳの動作］
以上、第１の実施形態によるＯＳおよびＢＩＯＳの機能を説明した。続いて、図１０〜図１４を参照し、第１の実施形態によるＯＳおよびＢＩＯＳの動作を説明する。
【００９３】
（起動時のＢＩＯＳ２００の動作）
図１０は、情報処理装置１の起動時におけるＢＩＯＳ２００の動作を示したフローチャートである。図１０に示したように、ＢＩＯＳ２００のＦＡＣＳ管理部２１０は、まず、ＦＡＣＳを作成する（Ｓ３０４）。
【００９４】
さらに、ＦＡＣＳ管理部２１０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆにフラグを設定する（Ｓ３０８）。その後、ＢＩＯＳ２００は、サスペンド状態への遷移のためのトラップを設定する（Ｓ３１２）。なお、ＢＩＯＳ２００による起動時のこのような動作は第２〜第４の実施形態にも適用される。
【００９５】
（サスペンド遷移時のＯＳ１００の動作）
図１１は、サスペンド状態への遷移時のＯＳ１００による動作を示したフローチャートである。図１１に示したように、ＯＳ１００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ機能を利用する場合（Ｓ４０４）、データ配置調査部１３０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆを確認する（Ｓ４０８）。
【００９６】
そして、データ配置調査部１３０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆにフラグが設定されている場合（Ｓ４１２）、メモリ２６上のデータ配置を調査する（Ｓ４１６）。
【００９７】
その後、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０が、データ配置調査部１３０による調査結果に基づき、図８を参照して説明したＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成する（Ｓ４２０）。
【００９８】
さらに、ＦＡＣＳ管理部１１０が、ＦＡＣＳ中のＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  ＡｄｄｒｅｓｓにＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐのアドレス情報を記載する（Ｓ４２４）。また、ＦＡＣＳ管理部１１０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグを設定する（Ｓ４２８）。その後、ＯＳ１００からＢＩＯＳ２００にサスペンド状態への遷移が通知される。
【００９９】
一方、ＯＳ１００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ機能を利用しない場合（Ｓ４０４）、または、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆにフラグが設定されていない場合（Ｓ４１２）も考えられる。この場合、ＦＡＣＳ管理部１１０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆをクリアする（Ｓ４３２）。
【０１００】
（サスペンド遷移時のＢＩＯＳ２００の動作）
図１２は、サスペンド状態への遷移時のＢＩＯＳ２００による動作を示したフローチャートである。図１２に示したように、まず、ＢＩＯＳ２００のデータ再配置部２２０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆを確認する（Ｓ４４４）。
【０１０１】
そして、データ再配置部２２０は、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグが設定されている場合（Ｓ４４８）、ＦＡＣＳ中のＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに基づき、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを取得する（Ｓ４５２）。
【０１０２】
その後、データ再配置部２２０が要保持データの配置変更を行い、データ圧縮部２３０が要保持データを圧縮する（Ｓ４５６）。
【０１０３】
続いて、メモリ状態制御部２４０は、メモリ２６を構成する複数のメモリ区域のうちで、要保持データが存在するメモリ区域に対してはセルフリフレッシュを行うように制御し、他のメモリ区域に対してはセルフリフレッシュを行わないように制御する（Ｓ４６０）。すなわち、メモリ状態制御部２４０は、要保持データが存在しないメモリ区域への電源供給を停止するように電源コントローラ３２に指示を出す。
【０１０４】
かかる構成により、サスペンド状態において、メモリ２６の全体でなく、メモリ２６において要保持データを保持するメモリ区域のみにセルフリフレッシュを行わせることが可能となるので、消費電力を削減することが可能である。
【０１０５】
（通常動作状態への復帰時のＢＩＯＳ２００の動作）
図１３は、サスペンド状態から通常動作状態への復帰時のＢＩＯＳ２００による動作を示したフローチャートである。図１３に示したように、ＢＩＯＳ２００のメモリ状態制御部２４０は、メモリ２６の全体への電源供給を再開するように電源コントローラ３２に指示を出すことにより、メモリの電源を復帰させる（Ｓ４６４）。
【０１０６】
その後、データ展開部２５０がメモリ２６内の圧縮された要保持データを展開し、データ再配置部２２０がメモリ２６内の要保持データの配置を、サスペンド状態への遷移前と同じ配置になるように変更する（Ｓ４６８）。かかる構成により、メモリ２６内の要保持データの配置を、ＯＳ１００が把握している通りのデータ配置に戻すことができるので、情報処理装置１は正常に通常動作状態に復帰することが可能である。
【０１０７】
（ＯＳ１００およびＢＩＯＳ２００による一連の動作）
図１４は、ＯＳ１００およびＢＩＯＳ２００による一連の動作を示したシーケンス図である。まず、ＯＳ１００の状態遷移制御部１２０が通常動作状態からサスペンド状態への遷移を決定すると（Ｓ５０４）、ＯＳ１００はサスペンド状態への遷移のための準備処理を行う（Ｓ５０８）。そして、ＯＳ１００は、準備処理が終了するとＢＩＯＳ２００にサスペンド状態への遷移を通知する（Ｓ５１２）。
【０１０８】
ここで、ＯＳ１００による準備処理は、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０によるＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成を含む。また、ＯＳ１００による準備処理は、ドライバー／アプリケーションへのサスペンド遷移の通知、デバイスのレジスタ保存、デバイスの電源制御、Ｗａｋｅ設定、割り込み禁止、バスマスタ転送禁止などを含んでもよい。
【０１０９】
その後、ＢＩＯＳ２００が、サスペンド状態への遷移のための準備処理を行う（Ｓ５１６）。そして、メモリ状態制御部２４０は、準備処理が完了するとメモリ２６の電源制御をメモリ区域ごとに行い、情報処理装置１をサスペンド状態へ移行させる（Ｓ５２０）。
【０１１０】
ここで、ＢＩＯＳ２００による準備処理は、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを利用したデータ再配置部２２０による要保持データの配置変更を含む。また、ＢＩＯＳ２００による準備処理は、デバイスのレジスタ保存、デバイスの電源制御、Ｗａｋｅ設定、割り込み禁止、バスマスタ転送禁止などを含んでもよい。
【０１１１】
その後、レジュ―ムイベントが発生すると（Ｓ５２４）、ＢＩＯＳ２００は通常動作状態への復帰のための準備処理を行う（Ｓ５２８）。ここで、ＢＩＯＳ２００による準備処理は、データ再配置部２２０による要保持データの再配置を含む。また、ＢＩＯＳ２００による準備処理は、デバイスの電源制御、デバイスの初期化、デバイスのレジスタの復元、およびＷａｋｅ要因の確認などを含んでもよい。
【０１１２】
そして、ＢＩＯＳ２００による準備処理が終了すると、Ｗａｋｉｎｇ  Ｖｅｃｔｏｒへのｊｕｍｐが行われ（Ｓ５３２）、ＯＳ１００が通常動作状態への復帰のための準備処理を行い（Ｓ５３６）、通常動作状態への復帰が完了する（Ｓ５４０）。
【０１１３】
ここで、ＯＳ１００による準備処理は、デバイスの初期化、デバイスのレジスタの復元、Ｗａｋｅ要因の確認、およびドライバー／アプリケーションへの復帰通知などを含んでもよい。
【０１１４】
以上説明したように、本発明の第１の実施形態によれば、サスペンド状態において、メモリ２６の全体でなく、メモリ２６において要保持データを保持するメモリ区域のみにセルフリフレッシュを行わせることが可能となるので、消費電力を削減することが可能である。
【０１１５】
＜３．第２の実施形態＞
続いて、本発明の第２の実施形態を説明する。本発明の第２の実施形態では、以下に説明するように、ＯＳ１００とＢＩＯＳ２００の機能分担が第１の実施形態と異なるが、第１の実施形態と同様に、サスペンド状態における消費電力を抑制することが可能である。
【０１１６】
［３−１．第２の実施形態によるＯＳおよびＢＩＯＳの機能］
図１５は、第２の実施形態によるＯＳ１００およびＢＩＯＳ２００に実装される機能を示した説明図である。図１５に示したように、ＯＳ１００は、ＦＡＣＳ管理部１１０、状態遷移制御部１２０、データ配置調査部１３０、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０、データ再配置部１５０、データ圧縮部１６０、およびデータ展開部１７０を有する。ＦＡＣＳ管理部１１０、状態遷移制御部１２０、およびＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０の構成は第１の実施形態で説明したので、以下では第１の実施形態と相違する構成に重きをおいて説明する。
【０１１７】
データ再配置部１５０は、状態遷移制御部１２０により通常動作状態からサスペンド状態への遷移が決定された場合、メモリ２６に保持されているデータのデフラグメンテ―ションを行う。なお、データ再配置部１５０は、メモリ２６に保持されている各データが要保持データであるか否かを把握できる場合、要保持データを保持するメモリ区域の数が減少するように要保持データの配置を変更してもよい（要保持データのデフラグメンテ―ション）。
【０１１８】
データ圧縮部１６０は、状態遷移制御部１２０により通常動作状態からサスペンド状態への遷移が決定された場合、メモリ２６に保持されているデータを圧縮する。なお、データ圧縮部１６０は、メモリ２６に保持されている各データが要保持データであるか否かを把握できる場合、要保持データを圧縮してもよい。また、データ再配置部１５０による処理とデータ圧縮部１６０による処理との前後関係は特に限定されない。また、データ圧縮部１６０により圧縮されたデータは、通常動作状態への復帰時に、データ展開部１７０により展開される。
【０１１９】
データ配置調査部１３０は、データ再配置部１５０およびデータ圧縮部１６０による処理後のメモリ２６に保持されているデータの配置を調査する。また、データ配置調査部１３０は、各データがサスペンド状態時にメモリ２６に保持されるべき要保持データであるか否かを調査する。
【０１２０】
Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０は、第１の実施形態と同様に、データ配置調査部１３０による調査結果に基づき、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成する。
【０１２１】
また、図１５に示したように、第２の実施形態によるＢＩＯＳ２００は、ＦＡＣＳ管理部２１０およびメモリ状態制御部２４０を有する。
【０１２２】
ＦＡＣＳ管理部２１０は、第１の実施形態と同様に、ＯＳ１００との相互作用のために利用されるＦＡＣＳを管理する。例えば、ＦＡＣＳ管理部２１０は、ＢＩＯＳ２００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐに基づく電源制御に対応しているので、情報処理装置１の起動時に、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆにフラグを設定する。
【０１２３】
メモリ状態制御部２４０は、通常動作状態からサスペンド状態への遷移時、ＦＡＣＳのＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆを確認する。そして、メモリ状態制御部２４０は、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグが設定されている場合、すなわち、ＯＳ１００によりＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐが作成され、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  ＡｄｄｒｅｓｓにＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐのアドレスが格納された場合、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓを確認する。
【０１２４】
続いて、メモリ状態制御部２４０は、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに基づいてＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照し、要保持データが存在するメモリ区域と、要保持データが存在しないメモリ区域とを判断する。
【０１２５】
そして、メモリ２６を構成する複数のメモリ区域のうちで、要保持データが存在するメモリ区域に対してはセルフリフレッシュを行うように制御し、他のメモリ区域に対してはセルフリフレッシュを行わないように制御する。すなわち、メモリ状態制御部２４０は、要保持データが存在しないメモリ区域への電源供給を停止するように電源コントローラ３２に指示を出す。
【０１２６】
以上説明した第２の実施形態のように、データ配置の変更およびデータ圧縮をＯＳ１００側で行うことも可能である。この場合でも、メモリ２６の全体でなく、メモリ２６において要保持データを保持するメモリ区域のみにセルフリフレッシュを行わせることが可能となるので、第１の実施形態と同様に消費電力を削減することが可能である。
【０１２７】
［３−２．第２の実施形態によるＯＳおよびＢＩＯＳの動作］
図１６は、サスペンド状態への遷移時のＯＳ１００による動作を示したフローチャートである。図１６に示したように、ＯＳ１００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ機能を利用する場合（Ｓ６０４）、データ再配置部１５０またはデータ圧縮部１６０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆを確認する（Ｓ６０８）。
【０１２８】
そして、データ再配置部１５０およびデータ圧縮部１６０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆにフラグが設定されている場合（Ｓ６１２）、メモリ２６に保持されているデータの配置変更および圧縮などの処理を実施する（Ｓ６１６）。
【０１２９】
その後、データ配置調査部１３０がメモリ２６上のデータ配置を調査し（Ｓ６２０）、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０が、データ配置調査部１３０による調査結果に基づき、図８を参照して説明したＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成する（Ｓ６２４）。
【０１３０】
さらに、ＦＡＣＳ管理部１１０が、ＦＡＣＳ中のＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  ＡｄｄｒｅｓｓにＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐのアドレス情報を記載する（Ｓ６２８）。また、ＦＡＣＳ管理部１１０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグを設定する（Ｓ６３２）。その後、ＯＳ１００からＢＩＯＳ２００にサスペンド状態への遷移が通知される。
【０１３１】
一方、ＯＳ１００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ機能を利用しない場合（Ｓ６０４）、または、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿ＳＵＰＰＯＲＴＥＤ＿Ｆにフラグが設定されていない場合（Ｓ６１２）も考えられる。この場合、ＦＡＣＳ管理部１１０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆをクリアする（Ｓ６３６）。
【０１３２】
（サスペンド遷移時のＢＩＯＳ２００の動作）
図１７は、サスペンド状態への遷移時のＢＩＯＳ２００による動作を示したフローチャートである。図１７に示したように、まず、ＢＩＯＳ２００のメモリ状態制御部２４０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆを確認する（Ｓ６４４）。
【０１３３】
そして、メモリ状態制御部２４０は、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグが設定されている場合（Ｓ６４８）、ＦＡＣＳ中のＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに基づき、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを取得する（Ｓ６５２）。
【０１３４】
続いて、メモリ状態制御部２４０は、メモリ２６を構成する複数のメモリ区域のうちで、要保持データが存在するメモリ区域に対してはセルフリフレッシュを行うように制御し、他のメモリ区域に対してはセルフリフレッシュを行わないように制御する（Ｓ６５６）。すなわち、メモリ状態制御部２４０は、要保持データが存在しないメモリ区域への電源供給を停止するようにメモリコントローラ２４または電源コントローラ３２に指示を出す。
【０１３５】
かかる構成により、サスペンド状態において、メモリ２６の全体でなく、メモリ２６において要保持データを保持するメモリ区域のみにセルフリフレッシュを行わせることが可能となるので、消費電力を削減することが可能である。
【０１３６】
＜４．第３の実施形態＞
次に、本発明の第３の実施形態を説明する。本発明の第３の実施形態は、ハイバネーション状態への遷移時の処理に関する点で、サスペンド状態への遷移時に関する第１の実施形態および第２の実施形態と相違する。
【０１３７】
［４−１．第３の実施形態によるＯＳおよびＢＩＯＳの機能］
図１８は、第３の実施形態によるＯＳ１００およびＢＩＯＳ２００に実装される機能を示した説明図である。図１８に示したように、ＯＳ１００は、ＦＡＣＳ管理部１１０、状態遷移制御部１２０、データ配置調査部１３０、およびＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０を有する。
【０１３８】
このようなＯＳ１００は、ハイバネーション状態への遷移時にも、第１の実施形態と同様にＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成する。すなわち、状態遷移制御部１２０によりハイバネーション状態への遷移が決定されると、データ配置調査部１３０がメモリ２６のデータ配置を調査し、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成する。なお、状態遷移制御部１２０がサスペンド状態への遷移が決定しても、ＢＩＯＳ２００がハイバネーション状態への遷移を実行する場合もある。本実施形態においては、このように状態遷移制御部１２０によりサスペンド状態への遷移が決定された場合でも、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成するので、ＢＩＯＳ２００はＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照してハイバネーション状態への遷移を実行することが可能である。
【０１３９】
また、ＢＩＯＳ２００は、図１８に示したように、ＦＡＣＳ管理部２１０、データ再配置部２２０、データ圧縮部２３０、メモリ状態制御部２４０、データ展開部２５０、およびＨＤＤドライバ２６０を有する。
【０１４０】
データ再配置部２２０およびデータ圧縮部２３０は、第１の実施形態と同様に、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照してメモリ２６上の要保持データの配置変更および圧縮などを行う。また、データ再配置部２２０およびデータ展開部２５０は、第１の実施形態と同様に、通常動作状態への復帰時に要保持データの展開や再配置などを行う。
【０１４１】
ＨＤＤドライバ２６０は、データ再配置部２２０およびデータ圧縮部２３０による処理後のメモリ２６上の要保持データを、ＨＤＤ２８に退避させる。また、ＨＤＤドライバ２６０は、通常動作状態への復帰時に、ＨＤＤ２８に退避させた要保持データをメモリ２６に戻す。ここで、ＨＤＤ２８に退避させる要保持データは、データ圧縮部２３０による圧縮によりデータ量が軽減されているので、退避のための時間、およびメモリ２６に要保持データを戻すための時間を削減することができる。
【０１４２】
また、ＨＤＤ２８へのデータの書き込みは所定量のデータ単位（例えば５１２Ｋｂｙｔｅ）で行われる。このため、要保持データが分散しており、各要保持データのデータ量が所定量に満たない場合、ＨＤＤ２８に空白部分が生じてしまう。例えば、ある要保持データが１００Ｋｂｙｔｅであった場合、ＨＤＤ２８に４１２Ｋｂｙｔｅ分の空白部分が生じてしまう。
【０１４３】
この点に関し、本実施形態においては、データ再配置部２２０が要保持データのデフラグメンテ―ションを行うので、要保持データはメモリ２６の一部分に集中的に配置される。その結果、上記のような問題を防止し、効率的に要保持データをＨＤＤ２８に退避させることが可能となる。
【０１４４】
メモリ状態制御部２４０は、ＨＤＤ２８への要保持データの退避後、電源コントローラ３２に指示を出すことにより、メモリ２６の電力制御を行う。具体的には、メモリ状態制御部２４０は、メモリ２６全体への電源供給を停止するように電源コントローラ３２に指示を出す。これにより、情報処理装置１がハイバネーション状態へ遷移する。
【０１４５】
なお、要保持データを退避させるための十分な領域をＨＤＤ２８で確保できないなどの理由により、全ての要保持データをＨＤＤ２８に退避させることが困難である場合、ＨＤＤドライバ２６０は要保持データの一部分をＨＤＤ２８に退避させ、一部分をメモリ２６に残してもよい。この場合、メモリ状態制御部２４０は、要保持データが残っているメモリ区域にはセルフリフレッシュを行わせ、要保持データが存在しないメモリ区域はオフさせてもよい。
【０１４６】
以上の構成により、ハイバネーション状態への遷移を効率的に行うことが可能となる。以下、データ再配置部２２０、メモリ状態制御部２４０、およびＨＤＤドライバ２６０などによる処理について図１９を参照してより具体的に説明する。
【０１４７】
図１９は、ハイバネーション状態への遷移時に行われる処理の具体例を示した説明図である。図１９の左部に示したように要保持データがメモリ２６上に分散して配置されている場合、データ再配置部２２０は、図１９の中部に示したように、要保持データがメモリ２６の一部に集中するように各要保持データの配置を変更する。また、図１９おいては記載を省略しているが、データ圧縮部２３０が要保持データを圧縮する。
【０１４８】
その後、ＨＤＤドライバ２６０が、図１９の右部に示したように、要保持データをＨＤＤ２８に退避させる。そして、メモリ状態制御部２４０は、メモリ２６全体への電源供給を停止するように電源コントローラ３２に指示を出す。これにより、情報処理装置１がハイバネーション状態へ遷移する。
【０１４９】
また、ハイバネーション状態から通常動作状態への復帰時には、図１９の中部に示したように、ＨＤＤ２８に退避された要保持データをＨＤＤドライバ２６０がメモリ２６に戻す。そして、データ再配置部２２０が、メモリ２６内の要保持データの配置を、ハイバネーション状態への遷移前と同じ配置になるように変更する。かかる構成により、メモリ２６内の要保持データの配置を、ＯＳ１００が把握している通りのデータ配置に戻すことができるので、情報処理装置１は正常に通常動作状態に復帰することが可能である。
【０１５０】
［４−２．第３の実施形態によるＢＩＯＳの動作］
続いて、図２０を参照し、第３の実施形態によるＢＩＯＳ２００の動作を説明する。なお、第３の実施形態によるＯＳ１００の動作には、第１の実施形態において図８を参照して説明した動作を適用してもよい。
【０１５１】
（ハイバネーション遷移時のＢＩＯＳ２００の動作）
図２０は、ハイバネーション状態への遷移時のＢＩＯＳ２００による動作を示したフローチャートである。図２０に示したように、まず、ＢＩＯＳ２００のデータ再配置部２２０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆを確認する（Ｓ７０４）。
【０１５２】
そして、データ再配置部２２０は、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグが設定されている場合（Ｓ７０８）、ＦＡＣＳ中のＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに基づき、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを取得する（Ｓ７１２）。
【０１５３】
その後、データ再配置部２２０が要保持データの配置変更を行い、データ圧縮部２３０が要保持データを圧縮する（Ｓ７１６）。
【０１５４】
続いて、ＨＤＤドライバ２６０が、データ再配置部２２０およびデータ圧縮部２３０による処理後の要保持データをＨＤＤ２８に退避させる（Ｓ７２０）。そして、メモリ状態制御部２４０は、メモリ２６全体への電源供給を停止するように電源コントローラ３２に指示を出す（Ｓ７２４）。これにより、メモリ２６がオフされ、情報処理装置１がハイバネーション状態へ遷移する。
【０１５５】
以上説説明したように、第３の実施形態によれば、要保持データを効率的にＨＤＤ２８に退避させてハイバネーション状態に遷移することが可能である。例えば、ＨＤＤ２８への要保持データの退避のための時間、およびＨＤＤ２８からメモリ２６へ要保持データを戻すための時間などを削減することができる。
【０１５６】
＜５．第４の実施形態＞
次に、本発明の第４の実施形態を説明する。本発明の第４の実施形態では、以下に説明するように、ＯＳ１００とＢＩＯＳ２００の機能分担が第３の実施形態と異なるが、第３の実施形態と同様に、ハイバネーション状態への遷移を効率的に行うことが可能である。
【０１５７】
［５−１．第４の実施形態によるＯＳおよびＢＩＯＳの機能］
図２１は、第４の実施形態によるＯＳ１００およびＢＩＯＳ２００に実装される機能を示した説明図である。図２１に示したように、ＯＳ１００は、ＦＡＣＳ管理部１１０、状態遷移制御部１２０、データ配置調査部１３０、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０、データ再配置部１５０、データ圧縮部１６０、およびデータ展開部１７０を有する。
【０１５８】
このようなＯＳ１００は、ハイバネーション状態への遷移時にも、第２の実施形態と同様にデータの配置変更および圧縮を行った後にＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成する。すなわち、状態遷移制御部１２０によりハイバネーション状態への遷移が決定されると、データ再配置部１５０はメモリ２６のデータ配置を変更し、データ圧縮部１６０がメモリ２６のデータを圧縮する。そして、データ配置調査部１３０がメモリ２６のデータ配置を調査し、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成する。なお、状態遷移制御部１２０がサスペンド状態への遷移が決定しても、ＢＩＯＳ２００がハイバネーション状態への遷移を実行する場合もある。本実施形態においては、このように状態遷移制御部１２０によりサスペンド状態への遷移が決定された場合でも、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部１４０がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを作成するので、ＢＩＯＳ２００はＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照してハイバネーション状態への遷移を実行することが可能である。
【０１５９】
また、図２１に示したように、第４の実施形態によるＢＩＯＳ２００は、ＦＡＣＳ管理部２１０、メモリ状態制御部２４０およびＨＤＤドライバ２６０を有する。
【０１６０】
ＨＤＤドライバ２６０は、通常動作状態からハイバネーション状態への遷移時、ＦＡＣＳのＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆを確認する。そして、ＨＤＤドライバ２６０は、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグが設定されている場合、すなわち、ＯＳ１００がＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐの作成機能を有する場合、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓを確認する。
【０１６１】
続いて、ＨＤＤドライバ２６０は、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに基づいてＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを参照し、メモリ２６における要保持データの配置を確認する。そして、ＨＤＤドライバ２６０は、要保持データをＨＤＤ２８に退避させる。
【０１６２】
メモリ状態制御部２４０は、ＨＤＤ２８への要保持データの退避後、電源コントローラ３２に指示を出すことにより、メモリ２６の電力制御を行う。具体的には、メモリ状態制御部２４０は、メモリ２６全体への電源供給を停止するように電源コントローラ３２に指示を出す。これにより、情報処理装置１がハイバネーション状態へ遷移する。
【０１６３】
［５−２．第４の実施形態によるＢＩＯＳの動作］
続いて、図２２を参照し、第４の実施形態によるＢＩＯＳ２００の動作を説明する。なお、第４の実施形態によるＯＳ１００の動作には、第２の実施形態において図１６を参照して説明した動作を適用してもよい。
【０１６４】
（ハイバネーション遷移時のＢＩＯＳ２００の動作）
図２２は、ハイバネーション状態への遷移時のＢＩＯＳ２００による動作を示したフローチャートである。図２２に示したように、まず、ＢＩＯＳ２００のＨＤＤドライバ２６０は、ＦＡＣＳ中のＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆを確認する（Ｓ８０４）。
【０１６５】
そして、ＨＤＤドライバ２６０は、ＰＲＥＳＥＲＶＡＴＩＯＮ＿ＭＡＰ＿Ｆにフラグが設定されている場合（Ｓ８０８）、ＦＡＣＳ中のＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ  Ａｄｄｒｅｓｓに基づき、Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐを取得する（Ｓ８１２）。その後、ＨＤＤドライバ２６０は、要保持データをＨＤＤ２８に退避させる（Ｓ８１６）。
【０１６６】
そして、メモリ状態制御部２４０は、メモリ２６全体への電源供給を停止するように電源コントローラ３２に指示を出す（Ｓ８２０）。これにより、メモリ２６がオフされ、情報処理装置１がハイバネーション状態へ遷移する。
【０１６７】
以上説明した第４の実施形態のように、データ配置の変更およびデータ圧縮をＯＳ１００側で行うことも可能である。この場合でも、第３の実施形態と同様に、ＨＤＤ２８への要保持データの退避のための時間、およびＨＤＤ２８からメモリ２６へ要保持データを戻すための時間などを削減することができる。
【０１６８】
＜６．まとめ＞
以上説明したように、本発明の各実施形態によれば、メモリ２６中の要保持データの配置を示すＰｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐに基づいてＢＩＯＳ２００がメモリ２６の電源制御を行うことが可能である。
【０１６９】
より詳細に説明すると、本発明の第１および第２の実施形態によれば、サスペンド状態において一部のメモリ区域にセルフリフレッシュを行わせ、他のメモリ区域への電源供給を停止することにより、消費電力を一層削減することが可能である。
【０１７０】
また、本発明の第３および第４の実施形態によれば、ハイバネーション状態においてメモリ２６に保持されているデータを選択的にＨＤＤ２８に退避させることにより、ハイバネーション状態への遷移およびハイバネーション状態からの復帰に要する時間を短縮することが可能である。
【０１７１】
なお、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【０１７２】
例えば、本明細書のＯＳ１００およびＢＩＯＳ２００の処理における各ステップは、必ずしもシーケンス図またはフローチャートとして記載された順序に沿って時系列に処理する必要はない。例えば、ＯＳ１００およびＢＩＯＳ２００の処理における各ステップは、フローチャートとして記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
【０１７３】
また、情報処理装置１に内蔵されるＣＰＵ２０、およびメモリ２６などのハードウェアに、上述したＯＳ１００およびＢＩＯＳ２００の機能を実行させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供される。
【符号の説明】
【０１７４】
１      情報処理装置
１０    本体部
１２    キーボード
１４    電源スイッチ
１６    遷移用スイッチ
１８    ＬＣＤ
２０    ＣＰＵ
２２    ＢＩＯＳ−ＲＯＭ
２４    メモリコントローラ
２６    メモリ
２８    ＨＤＤ
３０    二次電池
３２    電源コントローラ
１００  ＯＳ
１１０、２１０  ＦＡＣＳ管理部
１２０  状態遷移制御部
１３０  データ配置調査部
１４０  Ｐｒｅｓｅｒｖａｔｉｏｎ  Ｍａｐ作成部
１５０、２２０  データ再配置部
１６０、２３０  データ圧縮部
１７０、２５０  データ展開部
２４０  メモリ状態制御部
２６０  ＨＤＤドライバ
【図１】
0005598144.tif 000002
【図２】
0005598144.tif 000003
【図３】
0005598144.tif 000004
【図４】
0005598144.tif 000005
【図５】
0005598144.tif 000006
【図６】
0005598144.tif 000007
【図７】
0005598144.tif 000008
【図８】
0005598144.tif 000009
【図９】
0005598144.tif 000010
【図１０】
0005598144.tif 000011
【図１１】
0005598144.tif 000012
【図１２】
0005598144.tif 000013
【図１３】
0005598144.tif 000014
【図１４】
0005598144.tif 000015
【図１５】
0005598144.tif 000016
【図１６】
0005598144.tif 000017
【図１７】
0005598144.tif 000018
【図１８】
0005598144.tif 000019
【図１９】
0005598144.tif 000020
【図２０】
0005598144.tif 000021
【図２１】
0005598144.tif 000022
【図２２】
0005598144.tif 000023