(57)【特許請求の範囲】
【請求項１】
２ｎ個（ｎは２以上の自然数）のコアを有するプロセッサと、
前記プロセッサ内に設けられ、前記２ｎ個のコアに電源を供給するｎ＋１個のパワープレーンであって、前記ｎ＋１個のパワープレーンの内のｎ個のパワープレーンはそれぞれ電源を供給するコアの個数が互いに異なるように構成されている、ｎ＋１個のパワープレーンと、
前記２ｎ個のコアの内で動作させるべきコアの個数に応じて、前記ｎ＋１個のパワープレーンに選択的に電源を供給する電源管理手段とを具備することを特徴とする電源管理装置。
【請求項２】
前記ｎ＋１個のパワープレーンは前記プロセッサを構成するＩＣチップ内に設けられ、前記２ｎ個のコアは前記ｎ＋１個のパワープレーン上に分散して配置され、且つ前記ｎ個のパワープレーンの面積は互いに異なることを特徴とする請求項１記載の電源管理装置。
【請求項３】
前記電源管理手段は、前記プロセッサ内に設けられていることを特徴とする請求項１記載の電源管理装置。
【請求項４】
前記電源管理手段は、動作させるべきコアの個数に応じて、前記ｎ＋１個のパワープレーンの内で電源が供給されるべきパワープレーンの組み合わせを変更することを特徴とする請求項１記載の電源管理装置。
【請求項５】
２ｎ個（ｎは２以上の自然数）のコアを有するプロセッサの電源を管理する電源管理方法であって、
前記プロセッサ内には前記２ｎ個のコアに電源を供給するｎ＋１個のパワープレーンが設けられ、且つ前記ｎ＋１個のパワープレーンの内のｎ個のパワープレーンはそれぞれ電源を供給するコアの個数が互いに異なるように構成されており、
前記プロセッサの負荷に応じて前記２ｎ個のコアの内で動作させるべきコアの個数を決定するステップと、
前記動作させるべきコアの個数に応じて、前記ｎ＋１個のパワープレーンに選択的に電源を供給する電源管理ステップとを具備することを特徴とする電源管理方法。
【請求項６】
前記電源管理ステップは、動作させるべきコアの個数に応じて、前記ｎ＋１個のパワープレーンの内で電源が供給されるべきパワープレーンの組み合わせを変更することを特徴とする請求項５記載の電源管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、マルチコアプロセッサの電源を管理する電源管理装置及び電源管理方法に関する。
【背景技術】
【０００２】
近年、プロセッサ（ＣＰＵ）又はコンピュータに対する高性能化への要請は、増加の一途を辿っている。こうした要請に応えるべく、コンピュータに関しては、１つのコンピュータに複数個のプロセッサを搭載して、性能の向上を図るマルチプロセッサ技術が開発されている。また、プロセッサに関しては、マルチコア化が進んでいる。
【０００３】
マルチコアプロセッサとは、１つのＩＣチップ（ダイ）上に複数個のコアを実装したプロセッサをいう。例えば、１つのプロセッサに２つのコアを実装したデュアルコアプロセッサ、１つのプロセッサに４つのコアを実装したクアッドコア、１つのプロセッサに８つのコアを実装したオクタプロセッサ等がある。
【０００４】
従来は、１つのコアを実装したシングルコアプロセッサが普及しており、このシングルコアプロセッサの性能は、例えばクロック周波数を高くすることで改善されてきた。しかし、クロック周波数を高くすると、発熱量が増加し、リーク電流に起因して消費電力も増加してしまう。そこで、マルチコアプロセッサでは、クロック周波数を抑えつつ、プロセッサあたりのコアの数を増加させることで、性能を向上させている。
【０００５】
また、プロセッサ又はコンピュータにおいては、性能の向上のみならず、消費電力の低減も求められている。例えば、特許文献１は、複数のＣＰＵそれぞれの動作・動作停止を制御して、同時動作するＣＰＵの数を切り替える並列度切り替え手段を具備し、電源供給元の種類や発熱量といった種々のパラメータに応じて前記並列度を高くまたは低く設定できる電子計算機を開示している。
【特許文献１】特開平９−１３８７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載された電子計算機では、複数のＣＰＵそれぞれについて動作・動作停止を制御しているため、構成が複雑になる。また、特許文献１には、マルチコアプロセッサにおける消費電力の低減に関する技術は記載されていない。
【０００７】
なお、マルチコアプロセッサは、複数のパワープレーンを備えることもできる。この場合、各パワープレーンが電源を供給するコアの数は同数である。
【０００８】
例えば、６４個のコアと８個のパワープレーンを備えるプロセッサの場合、各パワープレーンは８個のコアに対して電源を供給する。従って、このプロセッサにおいて電源をオン又はオフにできるコアの数は、８の倍数、即ち、０個、８個、１６個、２４個、３２個、４０個、５６個、又は６４個に限定される。
【０００９】
このため、例えば１７個のコアで処理できるプログラムを動作させる場合、６４個のコアのうち、４０個のコアの電源をオフにし、２４個のコアの電源をオンにする必要がある。
【００１０】
実際に必要なコアは１７個であるので、電源がオンになっている２４個のコアのうち、７個のコアの消費電力が無駄になってしまう。
【００１１】
そこで、本発明は、複数のコアを備えるプロセッサの消費電力を簡単な構成でより低減することができる電源管理装置及び電源管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の一つの面によれば、２ｎ個（ｎは２以上の自然数）のコアを有するプロセッサと、前記プロセッサ内に設けられ、前記２ｎ個のコアに電源を供給するｎ＋１個のパワープレーンであって、前記ｎ＋１個のパワープレーンの内のｎ個のパワープレーンはそれぞれ電源を供給するコアの個数が互いに異なるように構成されている、ｎ＋１個のパワープレーンと、前記２ｎ個のコアの内で動作させるべきコアの個数に応じて、前記ｎ＋１個のパワープレーンに選択的に電源を供給する電源管理手段とを具備することを特徴とする電源管理装置が提供される。
【００１３】
また、本発明の他の一つの面によれば、２ｎ個（ｎは２以上の自然数）のコアを有するプロセッサの電源を管理する電源管理方法であって、前記プロセッサ内には前記２ｎ個のコアに電源を供給するｎ＋１個のパワープレーンが設けられ、且つ前記ｎ＋１個のパワープレーンの内のｎ個のパワープレーンはそれぞれ電源を供給するコアの個数が互いに異なるように構成されており、前記プロセッサの負荷に応じて前記２ｎ個のコアの内で動作させるべきコアの個数を決定するステップと、前記動作させるべきコアの個数に応じて、前記ｎ＋１個のパワープレーンに選択的に電源を供給する電源管理ステップとを具備することを特徴とする電源管理方法が提供される。
【発明の効果】
【００１４】
本発明によれば、複数のコアを備えるプロセッサの消費電力を簡単な構成でより低減できる電源管理装置及び電源管理方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しつつ、本発明の実施形態について説明する。
【００１６】
図１は、本発明の一実施形態に係る電源管理装置を適用した情報処理装置１０の構成を概略的に示すブロック図である。情報処理装置１０は例えばパーソナルコンピュータとして実現されており、電源ユニット２０、マルチコアプロセッサ１００、および電源管理部２００等を備えている。
【００１７】
電源ユニット２０は、情報処理装置１０内の各コンポーネントに電源を供給する。より具体的には、電源ユニット２０は、電源管理部２００を介して、マルチコアプロセッサ１００に電源を供給する。電源ユニット２０は、バッテリ電源ユニットであっても、交流電源を直流電源に変換するための電源ユニットであってもよい。
【００１８】
マルチコアプロセッサ１００は、複数個のコアを備える。例えば、マルチコアプロセッサ１００は、２ｎ個（ｎは自然数）のコアを備えることができる。図１には、マルチコアプロセッサ１００が、４×４のマトリクス状に配置された１６個（＝２４）のコア、即ち、コア１０１乃至１１６を備える場合が示されている。これらのコア１０１乃至１１６は、例えば、同種のコアであり、各コアは同等の処理能力を有するものとする。なお、マルチコアプロセッサ１００に搭載されるコアの数は１６個に限定されるものではない。マルチコアプロセッサ１００には、２以上の任意の数のコアを搭載することができる。
【００１９】
マルチコアプロセッサ１００においては、２ｎ個のコアに対してｎ＋１個のパワープレーンが設けられている。電源管理部２００は、２ｎ個のコアの内で動作させるべきコアの個数に応じて、ｎ＋１個のパワープレーンに選択的に電源を供給する。具体的には、電源管理部２００は、動作させるべきコアの個数に応じて、電源を供給するパワープレーンの組み合わせを変更する。この結果、電源オン／オフされるコアの数を、１個単位で増減することができる。
【００２０】
すなわち、本実施形態では、２n個のコアに対して以下のようなｎ＋１個のパワープレーンが用意される。
【００２１】
・１個のコアに電源を供給するパワープレーン（パワープレーン０とする）  
・１個のコアに電源を供給するパワープレーン（パワープレーン１とする）  
・２個のＣＰＵコアに電源を供給するパワープレーン（パワープレーン２とする）  
・２２個のコアに電源を供給するパワープレーン（パワープレーン２２とする）  
・２３個のコアに電源を供給するパワープレーン（パワープレーン２３とする）  
……  
・２ｎ−１個のコアに電源を供給するパワープレーン（パワープレーン２ｎ−１とする）
合計コア数は、１＋１＋２＋２２＋２３＋…＋２ｎ−１＝１＋（１−２ｎ）／（１−２）＝２ｎとなる。これらのパワープレーンのオン／オフを切り替えることで、０〜２ｎ個のコアの電源をオン／オフできる。つまり、  
・１個のコアの電源を切りたいときはパワープレーン１の電源を切ればよい。  
・２個のコアの電源を切りたいときはパワープレーン２の電源を切ればよい。  
・３個のコアの電源を切りたいときはパワープレーン１、２の電源を切ればよい。  
・４個のコアの電源を切りたいときはパワープレーン２２の電源を切ればよい。  
・５個のコアの電源を切りたいときはパワープレーン１、２２の電源を切ればよい。
【００２２】
・６個のコアの電源を切りたいときはパワープレーン２、２２の電源を切ればよい。
【００２３】
このように、コア毎に個別にパワープレーンを設けることなく、０、１、２、３、…２ｎ−１、２ｎ個の内の任意の個数のコアを電源オン／オフすることが可能となる。なお、ｎ＝１の場合は、２つのコアそれぞれに対応する２つのパワープレーンが設けられる構成となるので、本実施形態は、ｎ＝２以上の場合に特に有効である。
【００２４】
図２は、図１に示されるマルチコアプロセッサ１００が備えるパワープレーンの構成例を示す概略図である。パワープレーンは、金属層のような導電層で構成され、パワープレーンに電気的に接続された回路等に電圧を供給する。図２に示された構成例では、マルチコアプロセッサ１００は、コア１０１乃至１１６に電源を供給するパワープレーン１２１乃至１２５を備える。なお、図２では、電源管理部２００とマルチコアプロセッサ１００との間の接続関係がより詳細に示されている。
【００２５】
パワープレーン１２１乃至１２５は、例えば、コア１０１乃至１１６の下に設けられて、コア１０１乃至１１６に電気的に接続される。なお、本実施形態において、マルチプロセッサ１００に設けられるパワープレーンの数は、上述したように、２ｎ個のコア（又はＣＰＵ）に対してｎ＋１個である。これらｎ＋１個のパワープレーンは、マルチコアプロセッサ１００を構成するＩＣチップ（ダイ）内に設けられている。これらｎ＋１個のパワープレーン上に、２ｎ個のコアが分散配置される。
【００２６】
例えば、図１及び図２は、ｎ＝４の場合を示している。即ち、マルチコアプロセッサ１００においては、２４＝１６個のコア（コア１０１乃至１１６）に対して、４＋１＝５個のパワープレーン（パワープレーン１２１乃至１２５）が設けられている。なお、マルチコアプロセッサ１００に搭載されるパワープレーンの数は５つに限定されるものではない。マルチコアプロセッサ１００には、２以上の任意の数のパワープレーンを搭載することができる。
【００２７】
パワープレーン１２１乃至１２５の各々は、それぞれ電源供給ライン２０１乃至２０５を介して電源管理部２００に接続されている。電源は、電源ユニット２０から電源管理部２００を介してパワープレーン１２１乃至１２５の各々に供給される。パワープレーン１２１乃至１２５の各々は、図１に示すコア１０１乃至１１６のうちの１以上の対応するコアと電気的に接続されている。なお、本実施形態では、パワープレーン１２１乃至１２５の各々に対して、２０、２１、２２、・・・、２ｎ個のコアが割り当てられる。例えば、パワープレーン１２１上には、２０＝１つのコア（例えば、コア１０１）が配置されている。パワープレーン１２２上には、２０＝１つのコア（例えば、コア１０２）が配置されている。パワープレーン１２３上には、２１＝２つのコア（例えば、コア１０３及び１０４）が配置されている。パワープレーン１２４上には、２２＝４つのコア（例えば、コア１０５乃至１０８）が配置されている。パワープレーン１２５上には、２３＝８つのコア（例えば、コア１０９乃至１１６）が配置されている。
【００２８】
パワープレーン１２１は、２０＝１つのコア（例えば、コア１０１）に電源を供給する。パワープレーン１２２は、２０＝１つのコア（例えば、コア１０２）に電源を供給する。パワープレーン１２３は、２１＝２つのコア（例えば、コア１０３及び１０４）に電源を供給する。パワープレーン１２４は、２２＝４つのコア（例えば、コア１０５乃至１０８）に電源を供給する。パワープレーン１２５は、２３＝８つのコア（例えば、コア１０９乃至１１６）に電源を供給する。
【００２９】
このように、ｎ＋１個のパワープレーンの内のｎ個のパワープレーンについては、電源を供給するコアの個数が互いに異なっている。これらｎ個のパワープレーンの面積も互いに異なっており、割り当てられるコアの個数が多いパワープレーンほど、その面積は大きい。
【００３０】
電源管理部２００は、動作させるべきコアの個数に応じて、パワープレーン１２１乃至１２５の各々の電源をオン又はオフする動作を行う。より具体的には、電源管理部２００は、マルチコアプロセッサ１００の動作状態を判定し、判定結果に基づいて、マルチコアプロセッサ１００のパワープレーン１２１乃至１２５の各々の電源をオン又はオフする動作を行う。
【００３１】
マルチコアプロセッサ１００の動作状態は、マルチコアプロセッサ１００の処理負荷、使用率、温度といった各種の周知のパラメータに基づいて判定することができる。なお、本明細書では、説明を簡略化するため、マルチコアプロセッサ１００の動作状態は、マルチコアプロセッサ１００の処理負荷（単に負荷とも云う）に基づいて判定されるものとする。また、マルチコアプロセッサ１００の処理負荷とは、例えば、単位時間当たりに必要な演算処理量であるとする。マルチコアプロセッサ１００の処理負荷、つまり必要な演算処理量に応じて、コア１０１乃至１１６のうちで動作させるべきコアの個数を決定することができる。マルチコアプロセッサ１００の処理負荷が増加すれば、動作させるべきコアの数も増加し、処理負荷が減少すれば、動作させるべきコアの数も減少する。なお、マルチコアプロセッサ１００の処理負荷と、動作させるべきコアの数との間の関係を格納した判定テーブル４００を予め用意しておき、電源管理部２００による判定を、判定テーブル４００を参照して行ってもよい。この場合、電源管理部２００は、マルチコアプロセッサ１００における現在の処理負荷を取得し、取得された処理負荷の下で動作させるべきコアの個数を判定テーブル４００を参照して決定し、決定された個数のコアを動作させるようにパワープレーン１２１乃至１２５を制御する。さらに、動作させるべきコアの個数と、電源を供給すべき（または電源の供給を停止すべき）パワープレーンの組み合わせとの間の関係を示す情報を判定テーブル４００に格納してもよい。この場合、電源管理部２００は、判定テーブル４００を参照して電源オンすべき（または電源オフすべき）パワープレーンの組み合わせを決定し、その決定した組み合わせに応じてパワープレーン１２１乃至１２５に選択的に電源を供給する。
【００３２】
５つのパワープレーン１２１乃至１２５のオン／オフにより、０〜１６個のコアの電源を以下のようにオン/オフすることができる。つまり、
・１個のコアの電源を切りたいときはパワープレーン１２２の電源を切ればよい。  
・２個のコアの電源を切りたいときはパワープレーン１２３の電源を切ればよい。  
・３個のコアの電源を切りたいときはパワープレーン１２２、１２３の電源を切ればよい。  
・４個のコアの電源を切りたいときはパワープレーン１２４の電源を切ればよい。  
・５個のコアの電源を切りたいときはパワープレーン１２２、１２４の電源を切ればよい。  
・６個のコアの電源を切りたいときはパワープレーン１２３、１２４の電源を切ればよい。  
・７個のコアの電源を切りたいときはパワープレーン１２２、１２３、１２４の電源を切ればよい。  
・８個のコアの電源を切りたいときはパワープレーン１２５の電源を切ればよい。  
・９個のコアの電源を切りたいときはパワープレーン１２２、１２５の電源を切ればよい。  
・１０個のコアの電源を切りたいときはパワープレーン１２３、１２５電源を切ればよい。  
・１１個のコアの電源を切りたいときはパワープレーン１２２、１２３、１２５の電源を切ればよい。  
・１２個のコアの電源を切りたいときはパワープレーン１２４、１２５の電源を切ればよい。  
・１３個のコアの電源を切りたいときはパワープレーン１２２、１２４、１２５の電源を切ればよい。  
・１４個のコアの電源を切りたいときはパワープレーン１２３、１２４、１２５の電源を切ればよい。  
・１５個のコアの電源を切りたいときはパワープレーン１２２、１２３、１２４、１２５の電源を切ればよい。  
・１６個のコアの電源を切りたいときはパワープレーン１２１、１２２、１２３、１２４、１２５の電源を切ればよい。
【００３３】
電源オンすべきコアの個数を増やす場合においても、上述と同様の制御が行われる。
【００３４】
このように、本実施形態では、電源オンまたは電源オフされるパワープレーンの組み合わせは、動作させるべきコアの個数に応じて変更される。
【００３５】
なお、１６個のコアの内の１つは、オペレーティングシステムの実行等の処理のために常に必要となる場合もある。この場合、例えば、コア１０１を常に電源オンしておき、他の１５のコアを選択的に電源オン／電源オフするといった制御を用いてもよい。
【００３６】
次に、図３に示すフローチャートを参照しつつ、マルチコアプロセッサ１００の電源管理部２００の動作例を説明する。
【００３７】
まず、電源管理部２００は、コア１０１を動作させるべく、対応するパワープレーン１２１の電源をオンにする（ステップＳ３０２）。次いで、電源管理部２００は、オペレーティングシステム等からマルチコアプロセッサ１００の処理負荷を取得し（ステップＳ３０４）、そして、処理負荷に応じて、２ｎ個のコアの内で、動作させるべきコアの個数を決定すると共に、電源オンすべきパワープレーンを決定する（ステップＳ３０６）。電源オン（または電源オフ）すべきパワープレーンの組み合わせは、上述したように、動作させるべきコアの個数によって決定される。
【００３８】
次いで、電源管理部２００は、電源オンすべきことが決定された各パワープレーンに電源を供給し、他のパワープレーンに対する電源の供給をオフする（ステップＳ３０８）。ステップＳ３０４〜Ｓ３０８の処理は、繰り返し実行される。
【００３９】
なお、図４に示すように、電源管理部２００および判定テーブル４００はマルチコアプロセッサ１００のＩＣチップ内に内蔵してもよい。
【００４０】
以上のように、本実施形態によれば、２ｎ（ｎは２以上の自然数）個のコアに対してｎ＋１個のパワープレーンが設けられており、動作させるべきコアの個数に応じてｎ＋１個のパワープレーンに対して選択的に電源が供給される。したがって、２ｎ（ｎは２以上の自然数）個のコアそれぞれに対して個別にパワープレーンを設けることなく、電源オン／オフされるコアの数を１個単位で増減することが可能となり、簡単な構成できめ細かな省電力制御を実現することが可能となる。
【００４１】
なお、本実施形態の構成は、プリント回路基板上に設けられた複数のプロセッサ（ＣＰＵ）に対する電源管理に適用することもできる。この場合においては、２ｎ（ｎは２以上の自然数）個のプロセッサ（ＣＰＵ）に対してｎ＋１個のパワープレーンがプリント回路基板内の電源層等に設けられる。
【００４２】
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態に係る電源管理装置が適用された情報処理装置の構成を概略的に示すブロック図。
【図２】同実施形態の電源管理装置が備えるパワープレーンの構成例を示す図。
【図３】同実施形態の電源管理装置に適用される電源管理方法の手順を示すフローチャート。
【図４】同実施形態の電源管理装置の他の構成例を示すブロック図。
【符号の説明】
【００４４】
１０…情報処理装置、２０…電源ユニット、１００…マルチコアプロセッサ、２００…電源管理部、４００…判定テーブル。
【図１】
0004834625.tif 000002
【図２】
0004834625.tif 000003
【図３】
0004834625.tif 000004
【図４】
0004834625.tif 000005