(57)【要約】【課題】マルチプロセッサシステムの稼働状況に応じてメモリデバイスの消費電力を低減することを実現した情報処理装置同一構成の複数のプロセッサを効率的に使い分けることを実現した情報処理装置を提供する。【解決手段】ＥＣ／ＫＢＣ２１は、ＣＰＵ１１が内蔵する複数のコア１１ａ〜１１ｂの稼働数を監視し、このコア１１ａ〜１１ｂの稼働数に応じて、省電力化のためのメインメモリ１３の制御を当該メインメモリ１３のメモリ構成単位毎に実行する。【選択図】      図１
2008243049.tif 000002
【特許請求の範囲】
【請求項１】
複数の命令処理部を有するＣＰＵと、
複数のメモリ構成単位からなるメモリデバイスと、
前記ＣＰＵ上での前記複数の命令処理部の稼働数に応じて、前記メモリデバイスの動作制御を前記複数のメモリ構成単位毎に実行するメモリ制御手段と、
を具備することを特徴とする情報処理装置。
【請求項２】
前記ＣＰＵ上での前記複数の命令処理部の稼働数に応じて前記メモリ制御手段に実行させる前記メモリデバイスの動作制御内容を設定する設定手段をさらに具備することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記メモリデバイスに対する動作用電力の供給制御を前記複数のメモリ構成単位毎に実行する電力供給手段を具備し、
前記メモリ制御手段は、前記電力供給手段を介して、前記複数のメモリ構成単位それぞれを電源オンまたは電源オフすることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記メモリデバイスに対する動作用クロックの供給制御を前記複数のメモリ構成単位毎に実行するクロック供給手段を具備し、
前記メモリ制御手段は、前記クロック供給手段を介して、前記複数のメモリ構成単位それぞれのクロック周波数を切り替えることを特徴とする請求項１記載の情報処理装置。
【請求項５】
電源オフするメモリ構成単位上のデータを電源オン状態が維持される他のメモリ構成単位に再配置する手段を含むことを特徴とする請求項３記載の情報処理装置。
【請求項６】
クロックが低速化されたメモリ構成単位よりも通常のクロックで動作するメモリ構成単位を優先してデータを配置するように制御する手段を含むことを特徴とする請求項４記載の情報処理装置。
【請求項７】
複数の命令処理部を有するＣＰＵと、複数のメモリ構成単位からなるメモリデバイスとを搭載する情報処理装置のメモリ制御方法であって、
前記ＣＰＵ上での前記複数の命令処理部の稼働数に応じて、前記メモリデバイスの動作制御を前記複数のメモリ構成単位毎に実行する、
ことを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばマルチコアＣＰＵなどと称される複数の命令処理部（コア）を有するＣＰＵを搭載するパーソナルコンピュータ等の情報処理装置に適用して好適なメモリ制御技術に関する。
【背景技術】
【０００２】
近年、例えばノートブックタイプのパーソナルコンピュータなど、バッテリ駆動が可能で携行容易な情報処理装置が広く普及している。最近では、無線通信環境が整備されてきたことから、この種の情報処理装置を携帯していれば、外出先や移動中でも、最新のデータを取得して作業を行うことが可能となっている。
【０００３】
この種の情報処理装置は、例えばスクランブル化されて放送されるテレビジョン番組データを受信・視聴する機能など、搭載が期待される機能が高度化する傾向にある。この高機能化に対応するために、この種の情報処理装置に関しては、その処理性能を向上させるための工夫が日々図られている。例えばマルチプロセッサシステムは、複数のプロセッサを搭載することにより、多彩かつ高度な複数の処理を短時間に実行することを可能とするものである。その一方で、この種の情報処理装置は、外出先や移動中に使用されることを前提としているので、バッテリ駆動時の連続稼働可能時間を如何に確保するか、つまり省電力化を如何に図るかが非常に重要な問題である。このようなことから、マルチプロセッサシステムにおいて省電力化を図るための提案もこれまで種々なされている（例えば特許文献１等参照）。この特許文献１の電子計算機は、電源の状況やＣＰＵの負荷等に応じて並列度の制御を行うことにより、処理性能への影響を抑えつつ消費電力の低減を図ることを実現している。
【特許文献１】特開平９−１３８７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、この種の情報処理装置でさらなる省電力化を図るためには、ＣＰＵの作業領域となるメモリデバイスの動作を制御することも必要となる。メモリデバイスにおける省電力制御は、一定時間を越えてアクセスが途絶えたら、何らかの省電力動作を開始するというのが一般的である。従って、この従前の省電力制御では、例えば４台のＣＰＵを搭載するマルチプロセッサシステムにおいて、３台のＣＰＵを停止させて１台のＣＰＵのみで動作する省電力モードに移行したとしても、この１台のＣＰＵからのアクセスが継続する限り、メモリデバイスは省電力動作を開始できないことになる。
【０００５】
また、最近では、複数の命令処理部（コア）を有する、マルチコアＣＰＵなどと称される新しいタイプのＣＰＵが開発されるに至っている。これにより、マルチプロセッサシステムが１つのＣＰＵで実現可能となっている。この場合、例えば４つのコア中の１つのコアのみで動作する省電力モードに移行したとしても、外部からは、ハードウェア的に一つのチップであるマルチコアＣＰＵは常時動作中に見えてしまう。従って、特にマルチコアＣＰＵからアクセスされるメモリデバイスに関しては、省電力化のための新たな動作制御の手法が強く望まれる。
【０００６】
この発明は、このような事情を考慮してなされたものであり、マルチプロセッサシステムの稼働状況に応じてメモリデバイスの消費電力を低減することを実現した情報処理装置およびメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この目的を達成するために、本発明の情報処理装置は、複数の命令処理部を有するＣＰＵと、複数のメモリ構成単位からなるメモリデバイスと、前記ＣＰＵ上での前記複数の命令処理部の稼働数に応じて、前記メモリデバイスの動作制御を前記複数のメモリ構成単位毎に実行するメモリ制御手段と、を具備することを特徴とする。
【０００８】
また、本発明のメモリ制御方法は、複数の命令処理部を有するＣＰＵと、複数のメモリ構成単位からなるメモリデバイスとを搭載する情報処理装置のメモリ制御方法であって、前記ＣＰＵ上での前記複数の命令処理部の稼働数に応じて、前記メモリデバイスの動作制御を前記複数のメモリ構成単位毎に実行する、ことを特徴とする。
【発明の効果】
【０００９】
この発明によれば、マルチプロセッサシステムの稼働状況に応じてメモリデバイスの消費電力を低減することを実現した情報処理装置およびメモリ制御方法を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、この発明の一実施形態を説明する。図１には、本実施形態に係る情報処理装置のハードウェア構成例が示されている。この情報処理装置は、例えばバッテリ駆動可能で携行容易なノートブックタイプのパーソナルコンピュータ１として実現されている。
【００１１】
本コンピュータ１は、図１に示すように、コア（１）１１ａ，コア（２）１１ｂ，コア（３）１１ｃ，コア（４）１１ｄの４つの命令処理部（実行コア）を内蔵したＣＰＵ１１を搭載するマルチコアＣＰＵ搭載システムである。なお、本実施形態で説明する本発明のメモリ制御手法は、実行コアを２つ内蔵するいわゆるデュアルコアＣＰＵを搭載するデュアルコアＣＰＵ搭載システムのほか、４以外の複数の実行コアを内蔵するいずれのタイプのＣＰＵを搭載するマルチコアＣＰＵ搭載システムにおいても適用可能である。
【００１２】
そして、図１に示すように、本コンピュータ１は、このＣＰＵ１１をはじめとして、ホストコントローラ１２、メインメモリ１３、表示コントローラ１４、表示装置１５、表示用メモリ１６、Ｉ／Ｏコントローラ１７、記憶装置１８、電源コントローラ１９、クロックジェネレータ２０、エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）２１、キーボード２２等を備えている。
【００１３】
ＣＰＵ１１は、本コンピュータ１内の各部の動作を統合的に管理・制御するためのプロセッサであり、記憶装置１８からメインメモリ１３にロードされるオペレーティングシステム（ＯＳ）や、このＯＳの制御下で動作する、ユーティリティを含む各種アプリケーションプログラムを実行する。この各種アプリケーションプログラムの中には、後述するメモリ管理ユーティリティプログラム１０１が含まれている。これらＯＳやメモリ管理ユーティリティプログラム１０１を含む種々のアプリケーションプログラムは、予め記憶装置１８にインストールされている。
【００１４】
ホストコントローラ１２は、ＣＰＵ１１のローカルバスとＩ／Ｏコントローラ１７との間を接続するブリッジデバイスである。ホストコントローラ１２は、バスを介して表示コントローラ１４との通信を実行する機能を有しており、また、メインメモリ１３をアクセス制御するメモリコントローラも内蔵されている。
【００１５】
表示コントローラ１４は、本コンピュータ１のディスプレイモニタとして使用される表示装置１５を制御する。表示コントローラ１４には表示用メモリ１６が接続されており、ＯＳや各種アプリケーションプログラムによって表示用メモリ１６に書き込まれた画像データから表示装置１５に送出すべき表示信号を生成する。
【００１６】
Ｉ／Ｏコントローラ１７には、記憶装置１８を制御するためのコントローラが内蔵されている。また、Ｉ／Ｏコントローラ１７は、電源コントローラ１９、クロックジェネレータ２０、ＥＣ／ＫＢＣ２１の制御も行う。
【００１７】
電源コントローラ１９は、ＣＰＵ１１およびメインメモリ１３の動作電力を供給制御する。また、クロックジェネレータ２０は、ＣＰＵ１１およびメインメモリ１３の動作クロックを供給制御する。この電源コントローラ１９による動作電力の供給制御およびクロックジェネレータ２０による動作クロックの供給制御は、Ｉ／Ｏコントローラ１７から出力される動作コマンドによって行われる。
【００１８】
ＥＣ／ＫＢＣ２１は、バッテリまたは外部ＡＣ電源からの電力を各部に供給制御する電力管理のための組み込みコントローラと、キーボード２２を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。そして、このＥＣ／ＫＢＣ２１によって、本コンピュータ１は、メインメモリ１３の動作制御がＣＰＵ１１の動作状況に応じて実行される。以下、この点について詳述する。
【００１９】
図２は、本コンピュータ１が搭載するメインメモリ１３および当該メインメモリ１３をアクセス制御するホストコントローラ１２の構成を示す図である。なお、本コンピュータ１では、ＯＳの一機能によって、このメインメモリ１３と記憶装置１８とによる仮想記憶方式でのメモリ管理が実行されている。
【００２０】
図２に示すように、メインメモリ１３は、メモリユニット（Ａ）１３ａ，メモリユニット（Ｂ）１３ｂ，メモリユニット（Ｃ）１３ｃ，メモリユニット（Ｄ）１３ｄの４つのメモリ構成単位からなっている。各メモリユニット１３ａ〜１３ｄは、８バイト単位でアクセス処理され、また、各メモリユニット１３ａ〜１３ｄは、ホストコントローラ１２の制御の下、電源オン状態または電源オフ状態のいずれかの状態を持ち、かつ、電源オン状態時においては、さらに、通常のクロックが供給された状態または低速化されたクロックが供給された状態のいずれかの状態を持つ。ここでは、前者を状態を通常動作状態、後者を省電力動作状態と称する。もし、省電力動作状態にあるメモリユニットへのアクセスが発生すると、ホストコントローラ１２は、当該メモリユニットのクロックを通常速度に戻し（即ち、一旦、通常動作状態に復帰させ）、そのアクセスの終了後、一定時間を越えて当該メモリユニットへのアクセスが途絶えたら、クロックを再度低速化させる。元来より通常動作状態のメモリユニットへのアクセスが一定時間を越えて途絶えたとしても、ホストコントローラ１２は、当該メモリユニットのクロックを低速化させることは行わない。
【００２１】
一方、ホストコントローラ１２は、データの書き込みまたはデータの読み出しをＣＰＵ１１から要求されると、１６バイト単位で、いずれのメモリユニットへアクセスして当該データの書き込みまたはデータの読み出しを処理するかを制御する。ホストコントローラ１２は、メモリユニット（Ａ）１３ａまたはメモリユニット（Ｃ）１３ｃと、メモリユニット（Ｂ）１３ｂまたはメモリユニット（Ｄ）１３ｄとについて、独立してアクセスすることができる。例えばメモリユニット（Ａ）１３ａとメモリユニット（Ｂ）１３ｂとに対しては、同時にアクセスすることが可能である。
【００２２】
また、ホストコントローラ１２は、各メモリユニット１３ａ〜１３ｄの状態を個別に通常動作状態および省電力状態間で移行させるべく制御し、また、メモリユニット（Ａ）１３ａ，メモリユニット（Ｃ）１３ｃまたはメモリユニット（Ｂ）１３ｂ，メモリユニット（Ｄ）１３ｄの２系統で、電源オンおよび電源オフすべく制御する。即ち、ホストコントローラ１２は、電源コントローラ１９に動作コマンドを投入するためのＩ／Ｏコントローラ１７への指示を、メモリユニット（Ａ）１３ａ，メモリユニット（Ｃ）１３ｃまたはメモリユニット（Ｂ）１３ｂ，メモリユニット（Ｄ）１３ｄの単位で行い、クロックジェネレータ２０に動作コマンドを投入するためのＩ／Ｏコントローラ１７への指示を、各メモリユニット１３ａ〜１３ｄ毎の個別単位で行うことができる。
【００２３】
さらに、（前述のように、本コンピュータ１では、仮想記憶方式でのメモリ管理が実行されているが、）ホストコントローラ１２は、メインメモリ空間をどのように各メモリユニット１３ａ〜１３ｄ上に配置するかを制御することができる。そのために、ホストコントローラ１２は、メインメモリ空間配置制御部１２１を有している。
【００２４】
そして、このような構成をもつメインメモリ１３について、ＥＣ／ＫＢＣ２１は、ＣＰＵ１１上でのコア１１ａ〜１１ｄの稼働数に応じて、以下の制御を実行する。メモリ管理ユーティリティプログラム１０１は、コア１１ａ〜１１ｄの稼働数に対応させて実施したいメモリ制御の内容をユーザが任意に設定するためのインタフェースを提供するソフトウェアであり、その内容は、設定情報としてＥＣ／ＫＢＣ２１に保持される。即ち、以下に説明する制御内容は、ある時点での設定情報に基づく一例であり、本願発明のメモリ制御手法は、これに限定されるものではない。
【００２５】
なお、コア１１ａ〜コア１１ｄの稼働数は、例えばバッテリ駆動時におけるバッテリ残量やＣＰＵ１１の負荷等に応じて別途制御されるものであり、その制御結果がＥＣ／ＫＢＣ２１に通知されるようになっている。
【００２６】
（１）稼働コア数が４または３になった場合
稼働コア数が４または３になった場合、ＥＣ／ＫＢＣ２１は、すべてのメモリユニット１３ａ〜１３ｄを電源オン状態、通常動作状態とするよう、ホストコントローラ１２に指示を与える。また、この時、ＥＣ／ＫＢＣ２１は、メインメモリ空間が、図３（Ａ）に示すように配置されるよう、ホストコントローラ１２に指示を与える。即ち、各メモリユニット１３ａ〜１３ｄを１２８バイト単位で均等に割り当てるように指示する。
【００２７】
そして、ホストコントローラ１２は、メインメモリ１３へのデータの書き込みやデータの読み出しを、１６バイト単位で、メモリユニット（Ａ）１３ａとメモリユニット（Ｂ）１３ｂ、またはメモリユニット（Ｃ）１３ｃとメモリユニット（Ｄ）１３ｄに同時にアクセスして処理する。
【００２８】
（２）稼働コア数が２になった場合
稼働コア数が２になると、ＥＣ／ＫＢＣ２１は、メモリユニット（Ａ）１３ａ，メモリユニット（Ｂ）１３ｂについては、電源オン状態、通常動作状態とし、また、メモリユニット（Ｃ）１３ｃ，メモリユニット（Ｄ）１３ｄについては、電源オン状態、省電力動作状態とするよう、ホストコントローラ１２に指示を与える。また、この時、ＥＣ／ＫＢＣ２１は、メインメモリ空間が、図３（Ｂ）に示すように配置されるよう、ホストコントローラ１２に指示を与える。即ち、メモリユニット（Ａ）１３ａ，メモリユニット（Ｂ）１３ｂと、メモリユニット（Ｃ）１３ｃ，メモリユニット（Ｄ）１３ｄとに分け、かつ、通常動作状態にあるメモリユニット（Ａ）１３ａ，メモリユニット（Ｂ）１３ｂを優先して割り当てるように指示する。より具体的には、新たに実メモリ領域をメインメモリ空間に割り当てる場合、メモリユニット（Ａ）１３ａ，メモリユニット（Ｂ）１３ｂから優先して確保させる。
【００２９】
そして、ホストコントローラ１２は、メインメモリ１３へのデータの書き込みやデータの読み出しを、１６バイト単位で、メモリユニット（Ａ）１３ａとメモリユニット（Ｂ）１３ｂ、またはメモリユニット（Ｃ）１３ｃとメモリユニット（Ｄ）に同時にアクセスして処理する。
【００３０】
（３）稼働コア数が１になった場合
稼働コア数が１になると、ＥＣ／ＫＢＣ２１は、メインメモリ空間に割り当てられる実メモリ領域の確保先を、メモリユニット（Ａ）１３ａ，メモリユニット（Ｂ）１３ｂのみとして、メインメモリ空間が、図３（Ｃ）に示すよう、ホストコントローラ１２に指示を与える。即ち、メモリユニット（Ａ）１３ａとメモリユニット（Ｃ）とに分け、かつ、メモリユニット（Ａ）１３ａを優先して割り当てるように指示する。
【００３１】
ホストコントローラ１２は、この指示を受けると、メモリユニット（Ｂ）１３ｂ，メモリユニット（Ｄ）の実メモリ領域が割り当てられているメインメモリ空間上のエントリにメモリユニット（Ａ）１３ａ，メモリユニット（Ｃ）１３ｃの実メモリ領域を割り当て直すべく再配置を実行すると共に、新たに実メモリ領域をメインメモリ空間に割り当てる場合には、メモリユニット（Ａ）１３ａを優先的に、メモリユニット（Ａ）１３ａ，メモリユニット（Ｃ）１３ｂのみから確保する。
【００３２】
また、この際、ＥＣ／ＫＢＣ２１は、メモリユニット（Ａ）１３ａについては、電源オン状態、通常動作状態とし、メモリユニット（Ｃ）１３ｃについては、電源オン状態、省電力動作状態とするよう、ホストコントローラ１２に指示を与える。さらに、ＥＣ／ＫＢＣ２１は、未使用となったメモリユニット（Ｂ）１３ｂ，メモリユニット（Ｄ）１３ｄを電源オフ状態とするよう、ホストコントローラ１２に指示を与える。
【００３３】
そして、ホストコントローラ１２は、メインメモリ１３へのデータの書き込みやデータの読み出しを、８バイト単位で２回ずつ、メモリユニット（Ａ）１３ａまたはメモリユニット（Ｃ）に単独でアクセスして処理する。
【００３４】
このように、本コンピュータ１では、ＣＰＵ１１上でのコア１１ａ〜１１ｄの稼働数に応じて、省電力化のためのメインメモリ１３の動作制御が適宜に実行される。
【００３５】
図４は、本コンピュータ１で実行されるマルチコアＣＰＵのコア稼働数に応じたメモリ制御の手順を示すフローチャートである。
【００３６】
ＥＣ／ＫＢＣ２１は、ＣＰＵ１１上でのコア１１ａ〜１１ｄの稼働数が３または４になると（ステップＡ１のＹＥＳ）、まず、メインメモリ１３のメモリユニット１３ａ〜１３ｄすべてを電源オン状態、通常動作状態に設定するよう、ホストコントローラ１２に指示を与える（ステップＡ２）。そして、ＥＣ／ＫＢＣ２１は、メインメモリ空間がメモリユニット１３ａ〜１３ｄに均等に配置されるよう、ホストコントローラ１２に指示を与える（ステップＡ３）。
【００３７】
また、ＣＰＵ１１上でのコア１１ａ〜１１ｄの稼働数が２になると（ステップＡ１のＮＯ，ステップＡ４のＹＥＳ）、ＥＣ／ＫＢＣ２１は、メインメモリ１３のメモリユニット（Ａ）１３ａ，メモリユニット（Ｂ）１３ｂは電源オン状態、通常動作状態に設定し、一方、メモリユニット（Ｃ）１３ｃ，メモリユニット（Ｄ）１３ｄは電源オン状態、省電力状態に設定するよう、ホストコントローラ１２に指示を与える（ステップＡ５，ステップＡ６）。そして、ＥＣ／ＫＢＣ２１は、メインメモリ空間がメモリユニット（Ａ）１３ａ，メモリユニット（Ｂ）１３ｂに優先的に配置されるよう、ホストコントローラ１２に指示を与える（ステップＡ７）。
【００３８】
さらに、ＣＰＵ１１上でのコア１１ａ〜１１ｄの稼働数が１になると（ステップＡ４のＮＯ，ステップＡ８のＹＥＳ）、ＥＣ／ＫＢＣ２１は、メインメモリ１３のメモリユニット（Ａ）１３ａは電源オン状態、通常動作状態に設定し、メモリユニット（Ｃ）１３ｃは電源オン状態、省電力状態に設定するよう、ホストコントローラ１２に指示を与える（ステップＡ１０，ステップＡ１１）。また、この時、ＥＣ／ＫＢＣ２１は、メモリユニット（Ｂ）１３ｂ，メモリユニット（Ｄ）１３ｄは電源オフ状態に設定するよう、ホストコントローラ１２に指示を与える（ステップＡ１１）。そして、ＥＣ／ＫＢＣ２１は、メインメモリ空間がメモリユニット（Ａ）１３ａに優先的に配置されるよう、ホストコントローラ１２に指示を与える（ステップＡ１２）。
【００３９】
以上のように、本コンピュータ１によれば、マルチプロセッサシステムの稼働状況に応じてメモリデバイスの消費電力を低減することが実現される。
【００４０】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４１】
【図１】この発明の一実施形態に係る情報処理装置（パーソナルコンピュータ）のハードウェア構成例を示す図
【図２】同実施形態のコンピュータが搭載するメインメモリおよび当該メインメモリをアクセス制御するホストコントローラの構成を示す図
【図３】同実施形態のコンピュータにおけるメインメモリ空間の割り当て原理を説明するための図
【図４】同実施形態のコンピュータで実行されるマルチコアＣＰＵのコア稼働数に応じたメモリ制御の手順を示すフローチャート
【符号の説明】
【００４２】
１…情報処理装置（コンピュータ）、１１…ＣＰＵ、１１ａ〜１１ｄ…コア、１２…ホストコントローラ、１３…メインメモリ、１３ａ〜１３ｄ…メモリユニット、１４…表示コントローラ、１５…表示装置、１６…表示用メモリ、１７…Ｉ／Ｏコントローラ、１８…記憶装置、１９…電源コントローラ、２０…クロックジェネレータ、２１…エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）、２２…キーボード、１０１…メモリ管理ユーティリティプログラム、１２１…メインメモリ空間配置制御部。
【図１】
2008243049.tif 000003
【図２】
2008243049.tif 000004
【図３】
2008243049.tif 000005
【図４】
2008243049.tif 000006