(57)【要約】【課題】  メモリの使用量の抑制をする機能、および、メモリモジュール単位で給電を制御するための機構を追加することにより、メモリモジュール単位の空き領域を確保し、メモリモジュール単位で給電を停止して消費電力を低減する。【解決手段】  メモリの使用量を抑制するために、複数のアプリケーションの同時動作を禁止する機能、および、不要なプロセスやデバイスドライバを休止しスワップアウトする機能、および、画面出力用ピクセルマップを共用化する機能、および、メモリモジュール単位で給電を制御するための機構を設ける。【選択図】図１
2008046940.tif 000002
【特許請求の範囲】
【請求項１】
揮発性メモリを主記憶装置とする情報処理装置において、使用可能な主記憶装置の使用量を制限するモードを設け、そのモードでは未使用状態の主記憶装置への給電を停止することにより消費電力を低減することを特徴とする情報処理装置。
【請求項２】
請求項１に記載された主記憶装置の使用量を制限するモードであり、そのモードに入る時に、ユーザからのアクセスが一定時間ないアプリケーションを２次記憶装置にスワップアウトすることにより主記憶装置の使用量を削減するモードを有することを特徴とする情報処理装置。
【請求項３】
請求項２に記載された主記憶装置の使用量を制限するモードにおいて、スワップアウトしないアプリケーションに必要なライブラリやドライバなどもスワップアウトしないことを特徴とする情報処理装置。
【請求項４】
請求項３に記載されたスワップアウトしないアプリケーションとそれに関連してスワップアウトしないライブラリやドライバなどの関連を示す関連テーブルを、アプリケーションのインストール時に作成し、主記憶装置の使用量を制限するモードに遷移するときにこの関連テーブルを参照し、スワップアウトするプロセスを決定することを特徴とする情報処理装置。
【請求項５】
請求項１に記載された主記憶装置の使用量を制限するモードにおいて、このモードに遷移するときにはスワップアウトしないアプリケーションを単一とし、そのアプリケーションの画面表示を全画面表示として、ＯＳのピクセルマップもスワップアウトの対象とすることを特徴とする情報処理装置。
【請求項６】
請求項１に記載された主記憶装置の使用量を制限するモードへ移行において、電源供給元が主電源装置から補助電源装置へ変更された場合、または、ユーザによる操作対象が一定時間単一アプリケーションである場合、または、ユーザによる主記憶装置の使用量を制限するモードへ移行指示、または、ユーザが指定した特定のアプリケーションの起動、のときに状態遷移することを特徴とする情報処理装置。
【請求項７】
請求項１に記載された主記憶装置の使用量を制限するモードからの復帰において、電力の供給元が補助電源装置から主電源装置へ変更された場合、または、ユーザによる特定の操作を示す信号、または、ユーザが指定した特定のアプリケーションの起動、のときに状態遷移することを特徴とする情報処理装置。
【請求項８】
複数の揮発性メモリを主記憶装置とする情報処理装置において、それぞれの揮発性メモリごとに給電を制御するためのスイッチを有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に搭載された主記憶装置（本明細書ではＤＲＡＭを指す。以下メモリと表記）の消費電力を低減するための手法に関するものである。
【背景技術】
【０００２】
現在の情報処理装置では、搭載されているメモリを最大限に活用するようＯＳが設計されている。したがって、情報処理装置が動作している間は搭載されている全メモリがＤＲＡＭのリフレッシュ対象となり、リフレッシュ電力を消費することになる。
【０００３】
このリフレッシュ電力を削減する方法として、次のような技術が知られている。１つは、たとえばＭＳ−Ｗｉｎｄｏｗｓ（登録商標）ＯＳに実装されている休止状態である。
【０００４】
休止状態では、ＰＣを一使用しない状況になった場合、メモリの全内容をＨＤＤへ退避し、メモリも含めたシステム全体への給電を停止することにより消費電力を低減している。
しかし、休止状態はその情報処理装置を一旦使わない状態にするが、後で使うときに素早く以前の状態に戻すことが目的であり、休止状態でその情報処理装置を使うことは考慮されていない。
【０００５】
また、特許文献１では、アクセス頻度の低いメモリ上のデータをフラッシュメモリへ退避（スワップアウト）し、メモリの空き領域を増やして、その空き領域のリフレッシュを停止することにより消費電力を低減する技術が開示されている。
しかし、通常ＤＲＡＭに比べフラッシュメモリの容量は小さく、アクセス速度も遅いため、メモリモジュール単位でスワップアウトする場合、部品数の増加やそれによるコストの増大という問題がある。また、スワップイン、スワップアウトに要する時間のオーバーヘッドも大きいという課題がある。
【０００６】
また、特許文献２では、メモリコンパクション（メモリのフラグメンテーションを解消する機能）を実行しデータを特定のバンクに集中することにより、バンク単位の空き領域を確保し、バンク単位でリフレッシュを停止して消費電力を低減する技術が開示されている。
【０００７】
しかし、通常ＯＳはメモリを最大限に活用しようとするため、単にメモリコンパクションを行うだけでは、大きなメモリ領域を空けられる可能性は小さく、十分な省電力効果を期待することは難しい。また、メモリバンクはメモリインタリーブによるメモリ性能向上に利用されることが多く、メモリバンク単位で空き領域を作るとメモリインタリーブによるメモリ性能の向上は期待できなくなってしまう。
【０００８】
【特許文献１】特開２００２−１３２５９１号公報
【特許文献２】特開２００４−４７０５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
例えば、ユーザが交通機関で移動中にバッテリー駆動のＰＣを使う場合を考えると、ワープロを使用した文章の作成、ゲーム、ビュアーを使用した動画の視聴、等が考えられるが、このような使い方では、ひとつのアプリケーション(以下アプリと表記)をある程度長い時間続けて使っており、この性質を利用して消費電力を削減することが考えられる。
【００１０】
他のケースでもユーザがＰＣを使う場合に、同時に複数のアプリを起動しておくことはあっても、短い間隔で複数のアプリを切り替えながら使うことは少なく、一定の時間は１つのアプリしか使わないことが多いという性質がある。
【００１１】
そこで本発明が解決しようとする課題は、この性質を利用し、ユーザの使い勝手を下げることなくメモリリフレッシュによる消費電力の低減を図ることにある。
【課題を解決するための手段】
【００１２】
現行の情報処理装置におけるメモリへの給電は、メモリモジュール共用の電源回路から直接なされており、かつ、スイッチがメモリモジュールごとに設置されていないため、メモリモジュールごとの給電制御が不可能である。そこで、メモリモジュール毎に独立に電源を供給し、ＯＳからの制御で個別に給電を制御できるようにスイッチを設ける。
【００１３】
また、単一のアプリしか使っていない場合、他のアプリをスワップアウトすることにより必要なメモリ領域を削減し、メモリコンパクションによって使われていないメモリを集め、メモリモジュール単位に給電を抑止するモード（以下単一アプリモードと表記）をＯＳに設ける。
【００１４】
単一アプリモードへの遷移時、アプリの動作とは関係のないライブラリやデバイスドライバ(以下ドライバと表記)を自動的にメモリからスワップアウトすることにより、空き領域を確保する。
【００１５】
単一アプリモードで動作させるアプリに関連しておりスワップアウトせずにメモリ上に残すことが望ましいライブラリやドライバを判別するために、アプリのインストール時にそのアプリに関連するライブラリやドライバを記述したテーブルを作成し、単一アプリモードに遷移するときにこのテーブルを参照してスワップアウトしないライブラリやドライバを決定する。
【００１６】
マルチウィンドウシステムを採用しているＯＳでは、ＯＳを含むさまざまなプロセスに対し、画面出力用ピクセルマップをメモリに割り当てている。図２のように、アプリの画面とＯＳのメイン画面を同時に表示する場合、重複して見えない部分の画面情報も保持しているため、メモリを無駄使いしている。一方、アプリを全画面表示すれば、他のアプリが使用しているピクセルマップは不要となるため、メモリの無駄使いがなくなる。
また、あるアプリが全画面表示している間は、ＯＳのメイン画面もスワップアウトすることができる。
【発明の効果】
【００１７】
メモリの消費電力をメモリモジュール単位で低減することができる。
【発明を実施するための最良の形態】
【００１８】
本発明をもっとも有効に活用できる１つの例として、複数のメモリモジュールおよびバッテリーを搭載したノートブック型パソコンを実施例に本発明を詳細に説明する。
【００１９】
なお、実施例１〜２において、本発明の省電力機能が実行中である状態を「単一アプリモード」と表記し、本発明に特有の単一アプリモードを実現するために電源供給やＯＳを制御する機構を「省電力制御プロセス」と表記する。
【００２０】
また、複数のアプリを同時に実行可能な通常の動作状態を「通常動作モード」と表記する。通常動作モードから単一アプリモードへ遷移することを「単一アプリモードへの移行」と表記する。同様に、単一アプリモードから通常動作モードへ遷移することを「単一アプリモードからの復帰」と表記する。
【実施例１】
【００２１】
本発明をパソコンへ適用する例を示す。実施例１で想定するパソコンは、電源投入直後、ユーザがパソコンを操作可能な状態になった時点において、搭載されるメモリの全容量が使用可能、かつ接続される全デバイスが有効となるもの、である。
以下、単一アプリモードへの移行、および単一アプリモード実行中のアプリの動作、および単一アプリモードからの復帰、を実施する例を説明する。
【００２２】
図１に示すように本発明に大きく関与するハードウェアは、電源装置、制御装置、メモリ、演算装置、外部記憶装置の５つである。
【００２３】
電源装置は、コンセントからパソコンの電源を給電するための主電源装置００１１、および、主電源装置００１１からの給電が停止した際にパソコンの電源を得るための補助電源であるバッテリー００１２で構成される。
【００２４】
制御装置は、メモリを制御するためのＭＣＵ００２１、および、補助記憶装置を制御するためのコントローラ００２２で構成される。
【００２５】
ＭＣＵ００２１は、通常、ノースブリッジの機能の一部として実装される。また、コントローラ００２２は、通常、サウスブリッジの機能の一部として実装される。
【００２６】
現行のパソコンでは、メモリの給電は電源回路から直接なされる。しかし、図１におけるメモリへの給電は省電力制御プロセスの指示に従いＭＣＵ００２１が制御する。
ＭＣＵ００２１内部にはメモリモジュール別の給電制御スイッチを設ける。更に、ＭＣＵとメモリモジュールとを接続する電源ライン００３１１、００３２１もメモリモジュール毎に設ける。
【００２７】
ＭＣＵ００２１内部にメモリへの給電を制御する機能を持たせず、電源回路とメモリモジュールを接続する回路の途中にスイッチを配置し、制御してもよい。
また、電源ラインをメモリモジュール毎に設けずに、それぞれのメモリモジュール内部にスイッチを設け、個別に制御してもよい。
【００２８】
メモリはメモリモジュール００３１、００３２で構成される。図１におけるメモリは２個の独立したメモリモジュールとして表記されているが、メモリの実装形態はメモリモジュールである必要はなく、マザーボードに直付けにしても良い。
【００２９】
演算装置は、プロセスを処理するためのＣＰＵ００４１で構成される。
【００３０】
外部記憶装置は、メモリへロードされる前の段階でプログラムやデータをファイルとして保存している装置で、実施例３ではＨＤＤ００５１で構成される。
外部記憶装置は給電が停止されても、そこに保持されているプログラムやデータは消えない。外部記憶装置はフラッシュメモリ、ＦＤＤであってもよい。
【００３１】
次に、通常動作モード実行時のメモリマップの状態を説明する。図２はＯＳ（０１０１）およびワープロソフト（０１０２）とメーラ（０１０３）の2種類のアプリが動作している状態の画面を示している。図３は、メモリがどのソフトに割り当てられているかを示すメモリマップの状態遷移を示している。ここで、図２に対応する初期状態のメモリマップが図３の「Ｓｔ０」に示されている。ＯＳの画面０１０１はピクセルマップ「ｐ０」を使用して画面出力されている。同様に、ワープロソフトは「ｐ１」、メーラは「ｐ２」を使用して画面出力されている。
【００３２】
次に、通常動作モードから単一アプリモードへ遷移する例のメモリマップの状態遷移について説明する。例えばＭＣＵ００２１への電源の供給元が、主電源装置００１１からバッテリー００１２に変更されたという条件で単一アプリモードへ移行する場合、この電源供給元が変更されたことが、省電力制御プロセスに通知され、省電力制御プロセスの指示に従って本実施例のパソコンは単一アプリモードへ移行する。
【００３３】
単一アプリモードへ移行する条件としては、単一アプリの一定時間以上の連続操作、ユーザによるショートカットキーの押下、ユーザによるコマンド入力、ユーザが指定したアプリの起動などでも良いし、これらの組合せによって単一アプリモードへ移行するようにしても良い。
【００３４】
例えばユーザが指定したアプリの起動で移行する例では、ユーザが予め特定のアプリを省電力制御プロセスへ登録し、アプリの起動と連動して単一アプリモードへ移行するようにしても良い。さらに、このアプリ登録を自動化する手法の例として、一定時間、単独で動作したアプリを自動的に登録するようにしても良い。
【００３５】
また、複数のアプリが同時に動作している状態から単一アプリモードへ移行する場合、継続操作するアプリをユーザに選択させて単一アプリモードへ移行するようにしても良い。例えば、図４に示すようにタスクバーに表示されたアプリへカーソルを合わせた上でのユーザのキー操作（例：マウス左右キー同時押下）により単一アプリモードへ移行しても良い。
【００３６】
省電力制御プロセスが単一アプリモードへの移行の条件を検知すると、ユーザに対し、単一アプリモードへ移行するかどうかを確認する図５に示すような画面を表示する。この確認画面により、ごく短時間の補助電源駆動（例：事務所から会議室への移動）を予定する場合、通常動作モードから単一アプリモードへの状態遷移をしないことを選択できるようになる。なお、本確認画面の表示はスキップしても良い。
【００３７】
単一アプリモードに移行する場合、継続実行されるプロセス以外のプロセスは終了させるか休止させることによって、メモリの使用量を減少させる(以降パージすると呼ぶ)。ここで、プロセスの休止とはそのプロセスにかかわるメモリを必要に応じメモリに戻せるようＨＤＤに退避すると共に、そのプロセスにＣＰＵ割り当てを行わない状態にすることを言う(メモリスワップの一種として本明細ではスワップアウトと呼ぶ)。
継続実行されるプロセスがアプリである場合、ＯＳが利用していたメモリでアプリの実行に関係のないメモリをスワップアウトすることでメモリの使用量を減少させる。
図３の「Ｓｔ０」から「Ｓｔ１」への遷移では、継続実行されるプロセスとしてＯＳ（０１０１）が選択され、ワープロソフト（０１０２）とメーラ（０１０３）の2種類のアプリがパージされ、空き領域が増加していることを示している。
【００３８】
さらに、単一アプリモードで実行するアプリの操作には関係のない自動処理プロセスを自動的にメモリモジュール００３１、００３２からパージし、メモリの使用量を減少させる。自動処理プロセスのパージ処理も、終了またはＨＤＤ００５１へのスワップアウトのどちらでも良い。なお、パージする自動処理プロセス、パージしない自動処理プロセスの選択は、ユーザに選択可能にすることが望ましい。
【００３９】
図３の「Ｓｔ１」から「Ｓｔ２」への遷移では、アンチウイルスのためのプロセス「対ウイルス」、およびネットワーク管理のためのプロセス「Ｎ管理」がパージされ、空き領域が増加していることを示している。パージする自動処理プロセスとしてはセキュリティーソフト、デバイスユーティリティーソフトなどが考えられる。
【００４０】
さらに、継続実行するプロセスに不要なデバイスドライバをメモリモジュール００３１、００３２からパージする。図３の「Ｓｔ２」から「Ｓｔ３」への遷移では、音響デバイスドライバ「Ｄ０」、およびＴＶチューナドライバ「Ｄ３」がメモリモジュール００３１からパージされたことを示めしている。
【００４１】
ここで、各プロセスに必要なデバイスドライバは、図６に示すようにプロセスとドライバの関連を示すリンクテーブルとしてＨＤＤ００５１に保存している。説明を簡単にするため、本実施例では動画再生ソフトには音響デバイスとマウスのドライバ、ワープロソフトにはキーボードとマウスのドライバ、ＴＶ鑑賞ソフトでは音響デバイス、マウス、ＴＶチューナのドライバ、ＤＶＤ再生ソフトでは音響デバイスとマウスのドライバが必要なものとして関連付けられている。図６では省略されているがＯＳ実行中に必要なドライバはキーボードとマウスであると仮定している。
【００４２】
これらのパージ処理の後、メモリコンパクションを実行し、使用していないメモリモジュールがあれば、このメモリモジュールへの給電を停止する。図３の「Ｓｔ３」から「Ｓｔ４」への遷移では、メモリモジュール００３１、００３２に散在する未使用領域をメモリモジュール００３２へ集約した結果、メモリモジュール００３２を使用する必要がなくなったため、メモリモジュール００３２への給電を停止し、ＯＳの使用可能な最大メモリ量の値を変更する。
【００４３】
次に、単一アプリモードでＯＳの実行中にユーザがＤＶＤ再生ソフトを起動させる場合のメモリマップの状態遷移について説明する。単一アプリモードでは、ＯＳは実行中のアプリ以外を終了するか、スワップアウトし実行しない状態にしている。実行中のアプリを終了しＯＳ実行状態にするか、明示的に次のアプリを起動しない限り、実行中のアプリ以外のアプリは実行されない。明示的に次のアプリを起動した場合、実行中のアプリを終了またはスワップアウトした後、起動したアプリの実行が開始される。
【００４４】
ユーザがアプリを起動すると、ＯＳはリンクテーブル０２１１を参照し、そのアプリに関連付けられていないデバイスドライバをパージした後(Ｓｔ５)、そのアプリのプログラム本体、ライブラリ、必要なデバイスドライバ等をＨＤＤ００５１からロードし(Ｓｔ６)、そのアプリを起動する。
【００４５】
ここで、ＤＶＤ再生ソフト用のピクセルマップがメモリモジュールにないのは、単一アプリモードではアプリを全画面表示モードでのみ実行することで、ＯＳ用のピクセルマップをアプリに割り当てることを可能にしているためである。これにより、ピクセルマップ領域が１つで済むため、メモリの使用量が抑制される。
【００４６】
メモリモジュール００３２への給電を停止した状態にあるとき、実行中のアプリがメモリモジュール００３１のメモリ容量より多くのメモリを必要とすると、メモリスワップが頻発することになる。省電力制御プロセスは単位時間当たりのメモリスワップ回数などを監視し一定値を超えた場合、メモリモジュール００３２への給電を再開し、メモリモジュールの初期化などを行い、ＯＳの使用可能な最大メモリ量の値を変更することで使用するメモリ量を増やす。あるいはメモリスワップ回数が一定値を超えた場合は通常動作モードに復帰するようにしても良い。メモリスワップの頻度でなく、単純にメモリ使用量が一定の量を超過したときにメモリ量を増やすようにしても良い。
【００４７】
次に単一アプリモードから通常動作モードへ遷移する例のメモリマップの状態遷移について説明する。
【００４８】
単一アプリモードからの復帰の条件としてはＭＣＵ００２１へ供給される電源の供給元が、バッテリー００１２から主電源装置００１１に変更されたとき、とする。あるいは、上述の必要メモリ量の増加やユーザによるショートカットキーの押下、ユーザによるコマンド入力、ユーザが指定したソフトウェアの起動であってもよい。
【００４９】
給電を停止したメモリモジュール００３２を、ＭＳ−Ｗｉｎｄｏｗｓ（登録商標）の休止状態からの復帰、と同一の要領で初期化する。次にパソコンに接続されている全デバイスを有効にすると共にスワップアウトしていたアプリや自動処理プロセスをスワップインした後、通常動作モードに復帰する(Ｓｔ７)。
【実施例２】
【００５０】
実施例１では従来のパソコンの操作性を損なわないよう、通常動作モードをベースに単一アプリモードに遷移、復帰する実施例について示した。しかし、通常は１つのアプリしか動作しないような利用法をしている場合には、単一アプリモードを通常状態とし、複数アプリを同時に動作させるときにだけ通常動作モードにする方が、消費電力を削減するために望ましい。実施例２で示すパソコンは、電源投入直後、ユーザがパソコンを操作可能な状態になった時点において、使用可能なメモリ領域が任意のメモリモジュール単位で制限され、かつ最低限のデバイスが有効となるもの、である。
実施例２では主電源装置００１１から電源を供給された状態でパソコンが起動しても、初期状態が単一アプリモードとなる。
【００５１】
ＰＤＡ、ポケットＰＣなど、ＡＣ電源駆動よりもバッテリー駆動が主となる情報処理装置では、実施例２のように起動時は制限されたメモリで立ち上がり、必要に応じて利用可能なメモリ量を増やすようにしても使用上問題はなく、消費電力の削減の観点からはむしろ望ましい。
【００５２】
アプリが起動されると、リンクテーブル０２１１を参照し、アプリの動作に必要なデバイスのみを有効にする。アプリを終了する場合、プログラム本体、およびライブラリ、およびデバイスドライバをメモリからパージし、起動直後の状態に戻す。
【００５３】
一方、メモリスワップの頻度が高いときや、メモリ使用量が一定の量を超過したときにメモリ量を増やす。
【００５４】
ユーザが複数のアプリを起動した場合、一旦通常動作モードに遷移し、一定時間アクセスのなかったアプリは自動的にスワップアウトし、単一アプリモードに遷移するようにすれば、ユーザにモードの違いを感じさせることなく、単一アプリモードと通常動作モードをシームレスに遷移することができる。
【図面の簡単な説明】
【００５５】
【図１】実施例のパソコンのハードウェア構成例である。
【図２】通常動作モードにおいてＯＳとアプリのウィンドウが表示されている画面の例である。
【図３】メモリマップの状態遷移の例である。
【図４】継続操作するアプリの選択画面の例である。
【図５】単一アプリモードへの移行可否をユーザに確認する画面の例である。
【図６】アプリの動作に必要なデバイスを関連付けるテーブルの例である。
【符号の説明】
【００５６】
００１１：主電源装置
００１２：バッテリー（補助電源装置）
００２１：ＭＣＵ（主記憶制御装置）
００２２：コントローラ（補助記憶制御装置）
００３１：メモリモジュール（主記憶装置１）
００３２：メモリモジュール（主記憶装置２）
００３００：メモリモジュール共用データバス
００３１１：メモリモジュール００３１用電源ライン
００３２１：メモリモジュール００３２用電源ライン
００４１：ＣＰＵ（演算装置）
００５１：ＨＤＤ（外部記憶装置）
０１０１：ＯＳのメイン画面
０１０２：ワープロソフトの画面
０１０３：メーラの画面
０２１１：リンクテーブル
【図１】
2008046940.tif 000003
【図２】
2008046940.tif 000004
【図３】
2008046940.tif 000005
【図４】
2008046940.tif 000006
【図５】
2008046940.tif 000007
【図６】
2008046940.tif 000008