(57)【要約】【課題】効率的な回路構成により効率的な低消費電力化が可能な演算処理装置を提供する。【解決手段】演算処理装置は、複数の演算処理部と、演算処理部の個数よりも少ない個数の複数の電源からの電源電圧を受け取り、複数の演算処理部の少なくとも1つの演算処理部に対し、複数の電源からの電源電圧の1つを選択して供給するセレクタ回路と、複数の電源の少なくとも1つの出力電圧を可変に制御する電源制御回路を含む。【選択図】図１Ａ
2014067191.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算処理部と、
前記演算処理部の個数よりも少ない個数の複数の電源と、前記複数の演算処理部に対し、前記複数の電源から1つを選択して接続する複数のセレクタ回路と、
前記複数のセレクタ回路に入力される前記複数の電源の少なくとも1つの出力電圧を可変に制御する電源制御回路と
を含む演算処理回路。
【請求項２】
前記電源制御回路は、前記複数の演算処理部の使用率及びあるいは動作モードを入手し、入手した前記使用率及び動作モードに応じて前記出力電圧を可変に制御する電源の出力電圧を決定する請求項１記載の演算処理回路。
【請求項３】
前記電源制御回路は、前記少なくとも1つの選択された演算処理部の使用率及び動作モードに応じて前記複数のセレクタ回路のうち前記選択された演算処理部に対応するセレクタ回路を制御することにより、前記複数の電源からの電源電圧の1つを選択させる請求項１記載の演算処理回路。
【請求項４】
前記各セレクタ回路は、前記複数の電源からの電源電圧を全て遮断するかまたは出力電圧をゼロボルトに設定することが可能である請求項１乃至３記載の演算処理回路。
【請求項５】
複数の演算処理部の個々の使用率及び動作モードを入手する段階と、
入手した前記使用率及び現在の動作モードに応じて前記複数の演算処理部の個々の次の動作モードを決定する段階と、
前記決定された次の動作モードに応じて、前記演算処理部の個数よりも少ない個数の複数の電源の少なくとも1つの出力電圧を可変に制御する段階と、
前記決定された次の動作モードに応じて、前記複数の演算処理部のうち少なくとも1つの演算処理部を選択する段階と、
前記複数の演算処理部に対応して電圧を供給する複数の電圧選択回路のうち、前記選択された演算処理部に対応した前記電圧選択回路に対し、前記決定された次の動作モードのうち前記選択された演算処理部に関する前記次の動作モードに応じて、前記選択された選択回路に入力される前記出力電圧可変電源を含む前記複数の電源からの電源電圧の1つを選択して供給する段階と、を含む演算処理回路における電源制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、演算処理回路及び演算処理回路における電源制御方法に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）の省電力化技術として、Dynamic Voltage Frequency Scalingという技術がある。この技術では、ＣＰＵの稼働率が低いときには、ＣＰＵに供給するクロック周波数及び電源電圧を下げることにより、電力の削減を図ることができる。この技術は、ＣＰＵコアを複数集積化したマルチコアプロセッサにおいても有効であり、単純な構成としては、全てのコアへの電源電圧を同時に変更する方法がある。またより細かく低消費電力制御を行うために、個々のＣＰＵコアに対して別個に電源供給線を設け、それぞれの電源供給線上に設けたＤＣ−ＤＣ変換器により電圧設定することで、それぞれのＣＰＵコアに対して別電圧を供給する方法がある（例えば特許文献１参照）。しかしこの方法では、ＣＰＵコアに等しい数の電源供給線及びＤＣ−ＤＣ変換器が設けられることになり、装置の小型化の要求を満たすことが困難になる。
【０００３】
またＣＰＵに対象を限ることなく一般に電源供給を制御する技術としては、複数の回路ブロックに対し、複数の電源から選択的に電源電圧を供給することで低電力化を図る方法がある（例えば特許文献２，３参照）。この方法では、全ての回路ブロックが高電圧を要求した場合、高電圧供給電源側は、それに応じた電流供給能力を有している必要がある。また全ての回路ブロックが低電圧を要求した場合、低電圧供給電源側もそれに応じた供給能力を有している必要がある。即ち、電源回路が冗長であり、その分だけ装置の小型化の妨げとなっている。
【０００４】
また負荷状態に応じて電源を最適化するため、メインの電源系と補助電源とを組み合わせ、補助電源の出力電圧を可変にし、メイン電源と並列接続できるようにすることで、負荷電流の変化に対応する方法がある（例えば特許文献４参照）。この方法ではメインの電源の出力電圧は固定であり、その出力の接続先も固定されている。このため、高出力電圧を要求する素子が減っても、メイン電源の電力の削減量には限界がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−９９４３３号公報
【特許文献２】特開２００４−１１１６５９号公報
【特許文献３】特開２００７−１９４４５号公報
【特許文献４】特開２００９−２３２５２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上を鑑みると、効率的な回路構成により効率的な低消費電力化が可能な演算処理装置が望まれる。
【課題を解決するための手段】
【０００７】
演算処理装置は、複数の演算処理部と、前記演算処理部の個数よりも少ない個数の複数の電源からの電源電圧を受け取り、前記複数の演算処理部の少なくとも1つの演算処理部に対し、前記複数の電源からの電源電圧の1つを選択して供給するセレクタ回路と、前記複数の電源の少なくとも1つの出力電圧を可変に制御する電源制御回路を含む。
【０００８】
演算処理回路における電源制御方法は、複数の演算処理部の個々の使用率及び現在の動作モードに応じて前記複数の演算処理部の個々の次の動作モードを決定し、前記決定された次の動作モードに応じて、前記演算処理部の個数よりも少ない個数の複数の電源の少なくとも1つの出力電圧を可変に制御し、前記決定された次の動作モードに応じて、前記複数の演算処理部の少なくとも1つの演算処理部に対し、前記複数の電源からの電源電圧の1つを選択して供給する各段階を含む。
【発明の効果】
【０００９】
少なくとも１つの実施例によれば、のちに詳細に説明するように、演算処理部の個数よりも少ない個数の電源を用いても、個々の演算処理部ごとに個別の電源を設けて制御するのに近い効率的な低消費電力化が可能な演算処理回路を提供することができる。
【図面の簡単な説明】
【００１０】
【図１Ａ】演算処理装置のシステムの構成の一例を示す図である。
【図１Ｂ】演算処理装置のシステムの概略フローの一例を示す図である。
【図２】最大性能動作モード及びスタンバイモードの２つの動作モードを用いる場合の電源制御の一例を示す表である。
【図３】電源回路の個数が３個でありＣＰＵコア回路の数が１５個の場合の演算処理装置の構成の一例を示す図である。
【図４】図３の演算処理装置の電源制御の一例を示す表である。
【図５】電源回路の個数が２個でありＣＰＵコア回路の数が１６個の場合の演算処理装置の構成の一例を示す図である。
【図６】図５の演算処理装置の電源制御の一例を示す表である。
【図７】電源制御と共にクロック制御を行う演算処理装置の構成の一例を示す図である。
【図８】図７の演算処理装置の電源制御及びクロック制御の一例を示す表である。
【図９】電源電圧を遮断することが可能な構成の一例を示す図である。
【図１０】本発明の効果の一例を示す表である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１２】
図1Aは、演算処理装置の構成の一例を示す図である。図1Aに示す演算処理装置１０は、電源回路２０−１及び２０−２並びにメモリ２３に接続される。マルチコアプロセッサである演算処理装置１０は、電源制御回路１１、セレクタ回路１２−１乃至１２−４、ＣＰＵコア回路１３−１乃至１３−４、及び複数の電源配線１４を含む。この例では、演算処理部であるＣＰＵコア回路１３−１乃至１３−４の個数は４個であり、電源回路２０−１及び２０−２の個数は２個である。演算処理装置１０において、電源回路２０−１及び２０−２の個数がＣＰＵコア回路１３−１乃至１３−４の個数よりも少なければよく、それぞれの個数は特定の数に限定されるものではない。電源配線１４は、ＣＰＵコア回路１３−１乃至１３−４の個数よりも少ない個数の電源回路２０−１及び２０−２からの電源を供給する。従って、電源配線１４の本数は、ＣＰＵコア回路１３−１乃至１３−４の個数よりも少ない。
【００１３】
図1Aの例において、電源回路２０−１の出力電圧は固定であり、電源回路２０−２の出力電圧は可変である。電源制御回路１１が、複数の電源の少なくとも1つの電源（この場合は電源回路２０−２）の出力電圧を可変に制御する（即ち少なくとも２つの０Ｖでない出力電圧を設定できる）。例えば電源回路２０−１の出力電圧は高電圧（例えば１．０Ｖ）に固定であり、電源回路２０−２の出力電圧は高電圧（１．０Ｖ）と低電圧（例えば０．６Ｖ）との何れか一方に可変に設定されてよい。また電源制御回路１１は、電源回路２０−１及び２０−２のオン又はオフ（駆動又は非駆動）を制御してよい。
【００１４】
セレクタ回路１２−１乃至１２−４は、ＣＰＵコア回路１３−１乃至１３−４の個数よりも少ない個数の複数の電源回路２０−１及び２０−２からの電源電圧を受け取る。セレクタ回路１２−１乃至１２−４は、複数のＣＰＵコア回路１３−１乃至１３−４の対応するＣＰＵコア回路に対し、複数の電源回路２０−１及び２０−２からの電源電圧の1つを選択して供給（印加）する。セレクタ回路１２−１乃至１２−４が何れの電源電圧を選択するかは、電源制御回路１１からの制御信号に応じて決まる。
【００１５】
仮にセレクタ回路がなく、出力電圧可変電源である電源回路２０−２の出力のみが全てのＣＰＵコア回路１３−１乃至１３−４に供給されるとすると、全てのＣＰＵコア回路が高電圧で動作するか、又は、低電圧で動作するか、の何れかの動作形態しか存在しない。従って、あるＣＰＵコア回路は高電圧で動作し、他のＣＰＵコア回路は低電圧で動作する、という動作形態を実現できない。またセレクタ回路が設けられていても、仮に電源回路２０−１及び２０−２の出力電圧がそれぞれ高電圧及び低電圧に固定されているとすると、全てのＣＰＵコア回路が高電圧で動作するときに、電源回路２０−１にはそれに応じた電源容量（電流供給能力）が必要になる。即ち、ＣＰＵコア回路１３−１乃至１３−４の全てが高電圧で動作するときに、電源回路２０−１はこれら４個のＣＰＵコア回路を駆動するために必要な電源容量（電流供給能力）を有していることが必要になる。
【００１６】
図1Aの構成のように、セレクタ回路１２−１乃至１２−４を設けることにより、あるＣＰＵコア回路は高電圧で動作し、他のＣＰＵコア回路は低電圧で動作する、という動作形態を実現し、効率的な低消費電力化を実現することができる。また更に、電源回路２０−２の出力電圧を可変にすることにより、４個のＣＰＵコア回路１３−１乃至１３−４の全てが高電圧で動作する場合であっても、電源回路２０−１及び２０−２の合計の電源容量が４個のＣＰＵコア回路を駆動できさえすればよい。このように、セレクタ回路１２−１乃至１２−４を設け且つ電源回路２０−２の出力電圧を可変にすれば、電源回路に冗長性のない効率的な回路構成により、所望のＣＰＵコア回路を低電圧で動作させる効率的な低消費電力化を実現することができる。
【００１７】
図1Aの例では、セレクタ回路１２−１乃至１２−４がＣＰＵコア回路１３−１乃至１３−４のそれぞれに対して設けられているが、セレクタ回路が全てのＣＰＵコア回路に対して設けられている必要はない。即ち、セレクタ回路は、複数のＣＰＵコア回路１３−１乃至１３−４の少なくとも1つのＣＰＵコア回路に対し、複数の電源回路２０−１及び２０−２からの電源電圧の1つを選択して供給（印加）してよい。即ち例えば、セレクタ回路１２−１乃至１２−３が設けられているが、セレクタ回路１２−４が設けられてなく、ＣＰＵコア回路１３−４が常に電源回路２０−１からの電源により動作してもよい。また例えば、セレクタ回路１２−１が設けられているが、セレクタ回路１２−２乃至１２−４が設けられてなく、ＣＰＵコア回路１３−２乃至１３−４が常に電源回路２０−１からの電源により動作してもよい。このような構成の違いは、実現できる低消費電力化の度合いを左右するものに過ぎない。即ち、少なくとも1つのＣＰＵコア回路に対してセレクタ回路が設けられていれば、少なくとも当該ＣＰＵコア回路に対しては、電源電圧を制御することにより低消費電力化を図ることができる。セレクタ回路が設けられているＣＰＵコア回路の割合が増えれば増えるほど、消費電力削減の効果が増えることになる。
【００１８】
演算処理装置１０は、電源回路２０−１及び２０−２からの電源電圧により動作し、所望の演算処理動作を実行する。演算処理装置１０が必要に応じてメモリ２３にアクセスすることにより、演算処理装置１０が実行するプログラムや演算対象のデータをメモリ２３から読み出したり、演算結果のデータをメモリ２３に書き込んだりしてよい。メモリ２３は使用率記憶部２４を含む。この使用率記憶部２４には、各ＣＰＵコア回路１３−１乃至１３−４の使用率（稼働率）が記憶される。各ＣＰＵコア回路１３−１乃至１３−４が自らの使用率を検出し、検出した使用率を使用率記憶部２４に書き込んでよい。或いは、ＣＰＵコア１３−１乃至１３−４がＯＳを共通に実行している、いわゆるSMP(Symmetric Multiprocessor )である場合には、OSは各ＣＰＵコアの使用率を検出して、検出した使用率を使用率記憶部２４に書き込んでよい。使用率としては、着目ＣＰＵコア回路におけるアプリケーションが動作している時間とウェイティングしている時間との合計に対するアプリケーションが動作している時間の割合を検出してよい。即ち、所定の期間において、アプリケーションが動作している時間の割合が３０％であり、ウェイティングしている時間の割合が７０％であれば、使用率を３０％としてよい。なお使用率の書き込みは定期的に行われる。
【００１９】
電源制御回路１１は、メモリ２３から各ＣＰＵコア回路１３−１乃至１３−４の使用率を読み出して、ＣＰＵコア回路１３−１乃至１３−４の使用率及び動作モードに応じて、電源回路２０−２の出力電圧を可変に制御する。また電源制御回路１１は、ＣＰＵコア回路１３−１乃至１３−４の使用率及び動作モードに応じて、セレクタ回路１２−１乃至１２−４を制御し、複数の電源回路２０−１及び２０−２からの電源電圧の1つを選択させる。また電源制御回路１１は、ＣＰＵコア回路１３−１乃至１３−４に対し動作モード：最大性能動作／スタンバイかの設定も行う。なお電源制御回路１１からのこれらの指令はOSと密に連絡し実行され、各CPU上でOSが動作している時にその設定が有効になるようになされる。
【００２０】
より具体的には、電源制御回路１１は、ＣＰＵコア回路１３−１乃至１３−４の個々の使用率に応じてＣＰＵコア回路１３−１乃至１３−４の個々の次の動作モードを決定する。更に電源制御回路１１は、上記のようにして決定された次の動作モードに応じて、ＣＰＵコア回路１３−１乃至１３−４の個数よりも少ない個数の複数の電源回路２０−１及び２０−２の少なくとも1つ（この例では電源回路２０−２）の出力電圧を可変に制御する。また更に電源制御回路１１は、上記の決定された次の動作モードに応じてセレクタ回路１２−１乃至１２−４を制御することにより、ＣＰＵコア回路１３−１乃至１３−４に対し、複数の電源回路２０−１及び２０−２からの電源電圧の1つを選択して供給（印加）する。
【００２１】
電源制御回路１１はさらに具体的にいうと、4本の電源制御信号を持つ、Pow3~0であり、Pow0は電源AのOn/Offを制御：1でOn、0でOff、Pow1は電源Aの出力電圧を制御：1で高電圧0で低電圧、Pow2は電源BのOn/Offを制御：1でOn、0でOff、Pow3は電源Bの出力電圧を制御：1で高電圧0で低電圧となる。
【００２２】
また4本の電源セレクタ制御信号を持つ、Sel3~0である。Sel0はCPU1への供給する電源を選択する、1で電源Aを0で電源Bを選択する。Sel1はCPU2への供給する電源を選択する。Sel2はCPU3への供給する電源を選択する。Sel3はCPU4への供給する電源を選択する。
【００２３】
また4本のCPU動作モード設定信号をもつ、Mod3~0である。Mod0はCPU1の動作モードを設定する。1で最大性能動作モード、0でスタンバイである。Mod1はCPU2の動作モードを設定する。Mod2はCPU3の動作モードを設定する。Mod3はCPU4の動作モードを設定する。なおこのCPU動作モード設定信号は各CPUへ供給されるクロックの選択信号として用いられてもよい。図７のクロック供給制御部から出力される信号は、その例である。
【００２４】
またメインメモリ２３からデータを読み出すためのバスとのインターフェース信号Bus-I/Fを持つ。電源制御回路１１の動作について図１Bのフローチャートを用いて説明する。
【００２５】
1)装置全体のリセット時、２）Pow=1111つまり両電源ともOn,高電圧出力、Sel=0011つまりCPU1,2は電源AへCPU3,4は電源Bへ接続、Mod=1111つまり全CPUとも高性能動作モードへ設定される。
【００２６】
そして３)OSが立ち上がった後電源制御回路１１はBus-I/Fを通して各CPUの使用率を把握するためメインメモリ２３内の使用率記憶部を読み出す。なおOSは各CPUの使用率を既に使用率記憶部へ書き込んでいるものとする。
【００２７】
読み出したデータを元に各CPUのURを決定する。URは使用率が0％ときは0、1%~30%のときは1、31%~70%の時は2、70%を超えるときは3となる。なおURが0となるのはCPUの使用率が0%つまりスタンバイの時のみである。
【００２８】
４)決定したUR0~UR3について値が3であるCPUが一つあり他のURがすべて0、つまりスタンバイである場合、一つのCPUが最大使用率に近い状態で動作しているので、もう一つのCPUに対し即動作可能になるよう高電圧が印加できるようセレクタを設定し動作モードを高性能動作モードになるよう設定する。この時電源の一方は高電圧を供給し他方は定電圧を供給しているはずなので電源電圧の設定は行わない。なおUR=3以外のCPUのうち1つ以上がUR=1またはUR=2の場合は負荷が増えてもそのCPUの余力があるので特に何もしない。
【００２９】
5)決定したUR0~UR3について値が3であるCPUが２つあり、他のURがすべて0、つまりスタンバイである場合、２つのCPUが最大使用率に近い状態で動作しているので、もう一つのCPUに対し即動作可能になるよう両電源とも高電圧を出力するよう設定し動作モードを高性能動作モードになるよう設定する。なおUR=3以外のCPUのうち1つ以上がUR=1またはUR=2の場合は負荷が増えてもそのCPUの余力がまだあるので特に何もしない。
【００３０】
6) 決定したUR0~UR3について値が3であるCPUが3つあり残りのURが0、つまりスタンバイである場合、３つのCPUが最大使用率に近い状態で動作しているので、残り一つのCPUに対しても即動作可能になるよう動作モードを高性能動作モードになるよう設定する。この時は既に両電源とも高電圧を出力しているはずなので、電源の制御はしない。
【００３１】
7) 決定したUR0~3についてUR=1のCPUが2つあるとき、これは使用率30%以下のCPUが2つあるということなので片方のCPUをスタンバイにすべく動作モード0に設定する。またその時低電圧を供給している電源があればこのCPUをその電源に接続すべくセレクタを設定する。もし定電圧を供給している電源がなくかつ他にMod=0スタンバイのCPUがなければ、そのCPUをスタンバイ動作にするのみである、もしMod=0のCPUがあれば、対象のCPUをスタンバイにするとともに既にスタンバイであるCPUと同一の電源から電力を供給されるようセレクタを設定するとともに当電源の出力を低電圧にする。
【００３２】
8) 決定したUR0~3についてUR=1のCPUが3つあるとき、これは使用率30%以下のCPUが3つあるということなので1つのCPUをスタンバイにすべく動作モード0に設定する。このとき残りのCPUのUR=0つまりスタンバイなら、対象のCPUをスタンバイにするとともに既にスタンバイであるCPUと同一の電源から電力を供給されるようセレクタを設定するとともに当電源の出力を低電圧にする。もし残りのCPUもUR=0でないなら対象のCPUをスンバイモードに設定するのみである。
【００３３】
9) 決定したUR0~3についてUR=1のCPUが4つあるとき、これは使用率30%以下のCPUが4つあるということなので2つのCPUをスタンバイにすべく動作モード0に設定する。また対象の２つのCPUを同一の電源から電力を供給されるようセレクタを設定するとともに当電源の出力を低電圧にする。以上が終了後また、３）へ戻る。
【００３４】
ＣＰＵコア回路１３−１乃至１３−４の動作モードとしては、例えば、最大性能動作モード、低性能動作モード、及びスタンバイモードがあってよい。このように３つの動作モードがある場合、電源回路２０−２の出力電圧は、高電圧（例えば１．０Ｖ）と、中間電圧（例えば０．８Ｖ）と、低電圧（例えば０．６Ｖ）との何れか１つに可変に設定されてよい。最大性能動作モードにおいて、ＣＰＵコア回路は、高電圧（例えば１．０Ｖ）で動作し、大きな電力（例えば１０Ｗ）を消費する。低性能動作モードにおいて、ＣＰＵコア回路は、中間電圧（例えば０．８Ｖ）で動作し、中程度の電力（例えば１Ｗ）を消費する。スタンバイモードにおいて、ＣＰＵコア回路は、低電圧（例えば０．６Ｖ）で動作し、低電力（例えば０．１Ｗ）を消費する。例えばスタンバイモードでは、ＣＰＵコア回路の各素子はクロックによる遷移動作をすることなく、ＳＲＡＭ（Static Random Access Memory）等の記憶素子（レジスタ）に格納されたデータを保持するために電源電圧が消費されてよい。
【００３５】
なお図1Aには、電源制御の構成のみが示されており、クロック制御の構成については示されていない。後程図７を参照して説明するように、ＣＰＵコア回路１３−１乃至１３−４に供給するクロック周波数についても、各動作モード毎に異ならせてよい。例えば、最大性能動作モードにおいて、ＣＰＵコア回路は、高速クロック（例えば１ＧＨｚ）により高電圧（例えば１．０Ｖ）で動作し、大きな電力（例えば１０Ｗ）を消費してよい。低性能動作モードにおいて、ＣＰＵコア回路は、中速クロック（例えば５００ＭＨｚ）により中間電圧（例えば０．８Ｖ）で動作し、中程度の電力（例えば１Ｗ）を消費してよい。スタンバイモードにおいて、ＣＰＵコア回路は、クロックの供給が停止され低電圧（例えば０．６Ｖ）で動作し、低電力（例えば０．１Ｗ）を消費してよい。クロック制御については、図７に示す演算処理装置を説明する際に説明する。
【００３６】
図1Aにおいて、ＣＰＵコア回路１３−１乃至１３−４の個々の使用率及び現在の動作モードに応じてＣＰＵコア回路１３−１乃至１３−４の個々の次の動作モードを決定する方法の一例として、以下のようなアルゴリズムを用いてよい。なおＣＰＵコア回路の使用率をＲａｃｔとする。まず最大性能動作モードのＣＰＵコア回路については、Ｒａｃｔが２０％より下がった時、低性能動作モードに遷移する。また低性能動作モードのＣＰＵコア回路については、Ｒａｃｔが０％である状態が所定の時間以上経過した時、スタンバイモードへ遷移する。低性能動作モードのＣＰＵコア回路については更に、Ｒａｃｔが６０％を超えた時、最大性能動作モードへ遷移する。またスタンバイモードのＣＰＵコア回路については、他の３つのＣＰＵコア回路が最大性能動作モードであり且つＲａｃｔが８０％以上である状態において新規ジョブ要求が発生した場合、最大性能動作に遷移する。
【００３７】
上記の説明では、最大性能動作モード、低性能動作モード、及びスタンバイモードの３つの動作モードがある場合について説明したが、動作モードの数は３個に限られるものではない。例えば、最大性能動作モード及びスタンバイモードの２つの動作モードのみが存在する構成であってもよい。
【００３８】
図２は、最大性能動作モード及びスタンバイモードの２つの動作モードを用いる場合の電源制御の一例を示す表である。図２において、電源Ａは電源回路２０−１のことであり、電源Ｂは電源回路２０−２のことである。またＶｈは高電圧（例えば１．０Ｖ）のことであり、Ｖｌは低電圧（例えば０．６Ｖ）のことである。また４個のＣＰＵコア回路１３−１乃至１３−４が設けられているとする。なお各電源は、２個の最大性能動作モードのＣＰＵコア回路を駆動するために必要な電流供給能力があるとする。
【００３９】
０個のＣＰＵコア回路が最大性能動作モードであり且つ４個のＣＰＵコア回路がスタンバイモードである場合、電源Ａの出力電圧は０Ｖ（即ち電源ＯＦＦ）となり、電源Ｂの出力電圧はＶｌとなる。この電源Ｂの出力電圧Ｖｌがセレクタ回路を介して４個のＣＰＵコア回路に供給される。また１〜２個のＣＰＵコア回路が最大性能動作モードであり且つ３〜２個のＣＰＵコア回路がスタンバイモードである場合、電源Ａの出力電圧はＶｈとなり、電源Ｂの出力電圧はＶｌとなる。電源Ａの出力電圧Ｖｈがセレクタ回路を介して最大性能動作モードのＣＰＵコア回路に供給され、電源Ｂの出力電圧Ｖｌがセレクタ回路を介してスタンバイモードのＣＰＵコア回路に供給される。
【００４０】
また３個のＣＰＵコア回路が最大性能動作モードであり且つ１個のＣＰＵコア回路がスタンバイモードである場合、電源Ａの出力電圧はＶｈとなり、電源Ｂの出力電圧もＶｈとなる。電源Ａの出力電圧Ｖｈがセレクタ回路を介して最大性能動作モードの２個のＣＰＵコア回路に供給され、電源Ｂの出力電圧Ｖｈがセレクタ回路を介して最大性能動作モードの１個のＣＰＵコア回路及びスタンバイモードの１個のＣＰＵコア回路に供給される。この時スタンバイモードの１個のＣＰＵコア回路の電源電圧がＶｈとなってしまうが、動作モードがスタンバイモードであるので、消費電力の上昇は比較的小さい。また４個のＣＰＵコア回路が最大性能動作モードであり且つ０個のＣＰＵコア回路がスタンバイモードである場合、電源Ａの出力電圧はＶｈとなり、電源Ｂの出力電圧もＶｈとなる。電源Ａの出力電圧Ｖｈがセレクタ回路を介して最大性能動作モードの２個のＣＰＵコア回路に供給され、電源Ｂの出力電圧Ｖｈがセレクタ回路を介して最大性能動作モードの２個のＣＰＵコア回路に供給される。
【００４１】
図３は、電源回路の個数が３個でありＣＰＵコア回路の数が１５個の場合の演算処理装置の構成の一例を示す図である。図３において、図１と同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。また図３においても、図１と同様に演算処理装置１０Ａはメモリに接続されているが、メモリの図示を省略してある。
【００４２】
演算処理装置１０Ａは、電源制御回路１１、セレクタ回路１２−１乃至１２−１５、及びＣＰＵコア回路１３−１乃至１３−１５を含む。電源回路２０−１の出力電圧は固定であり、電源回路２０−２及び２０−３の出力電圧は可変である。ＣＰＵコア回路１３−１乃至１３−１５は、最大性能動作モード、低性能動作モード、及びスタンバイモードの３つの動作モードの何れか１つで動作する。
【００４３】
電源制御回路１１が、電源回路２０−２及び２０−３の出力電圧を可変に制御する（即ち少なくとも２つの０Ｖでない出力電圧を設定できる）。電源回路２０−１の出力電圧は高電圧Ｖｈ（例えば１．０Ｖ）に固定である。電源回路２０−２の出力電圧は高電圧Ｖｈ（１．０Ｖ）と中間電圧Ｖｍ（例えば０．８Ｖ）との何れか一方に可変に設定される。また電源回路２０−３の出力電圧は高電圧Ｖｈ（１．０Ｖ）と、中間電圧Ｖｍ（例えば０．８Ｖ）と、低電圧Ｖｌ（例えば０．６Ｖ）との何れか１つに可変に設定される。また電源制御回路１１は、電源回路２０−１乃至２０−３のオン又はオフ（駆動又は非駆動）を制御してよい。
【００４４】
図４は、図３の演算処理装置の電源制御の一例を示す表である。電源Ａは電源回路２０−１のことであり、電源Ｂは電源回路２０−２のことであり、電源Ｃは電源回路２０−３のことである。この例において、最大性能動作モードのとき、低性能動作モードのとき、及びスタンバイモードのときのＣＰＵコア回路の消費電流の比率は、１５：５：１と仮定している。また各電源回路は、最大性能動作モードで動作する１個のＣＰＵコア回路の消費電流の５倍の電流供給能力があるとする。従って、１つの電源回路で、最大性能動作モードで動作する５個のＣＰＵコア回路を駆動できる。また１つの電源回路で、低性能動作モードで動作する１５個のＣＰＵコア回路を駆動できる。また１つの電源回路で、スタンバイモードで動作する７５個のＣＰＵコア回路を駆動できる。
【００４５】
この場合、全てのＣＰＵコア回路１３−１乃至１３−１５が最大性能動作モードにあるときには、３個の電源Ａ乃至Ｃがそれぞれ５個のＣＰＵコア回路に高電圧Ｖｈを供給（印加）すればよい。また例えば最大性能動作モードのＣＰＵコア回路が１０個、低性能動作モードのＣＰＵコア回路が３個、スタンバイモードのＣＰＵコア回路が２個である場合、電源Ａ及びＢが高電圧Ｖｈを出力し、電源Ｃが中間電圧Ｖｍを出力すればよい。このとき、電源Ａ及びＢがそれぞれ５個の最大性能動作モードのＣＰＵコア回路に高電圧Ｖｈを供給（印加）し、電源Ｃが低性能動作モードのＣＰＵコア回路及びスタンバイモードのＣＰＵコア回路に中間電圧Ｖｍを供給すればよい。
【００４６】
また例えば最大性能動作モードのＣＰＵコア回路が１個、低性能動作モードのＣＰＵコア回路が０個、スタンバイモードのＣＰＵコア回路が１４個である場合、電源Ａが高電圧Ｖｈを出力し、電源Ｂがオフであり、電源Ｃが低電圧Ｖｌを出力すればよい。このとき、電源Ａが１個の最大性能動作モードのＣＰＵコア回路に高電圧Ｖｈを供給し、電源Ｃが１４個のスタンバイモードのＣＰＵコア回路に低電圧Ｖｌを供給すればよい。また例えば最大性能動作モードのＣＰＵコア回路が０個、低性能動作モードのＣＰＵコア回路が１０個、スタンバイモードのＣＰＵコア回路が５個である場合、電源Ａがオフであり、電源Ｂが中間電圧Ｖｍを出力し、電源Ｃが低電圧Ｖｌを出力すればよい。このとき、電源Ｂが１０個の低性能動作モードのＣＰＵコア回路に中間電圧Ｖｍを供給し、電源Ｃが５個のスタンバイモードのＣＰＵコア回路に低電圧Ｖｌを供給すればよい。
【００４７】
図５は、電源回路の個数が２個でありＣＰＵコア回路の数が１６個の場合の演算処理装置の構成の一例を示す図である。図５において、図1Aと同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。また図５においても、図1Aと同様に演算処理装置１０Ｂはメモリに接続されているが、メモリの図示を省略してある。
【００４８】
演算処理装置１０Ｂは、電源制御回路１１、セレクタ回路１２−１乃至１２−１６、及びＣＰＵコア回路１３−１乃至１３−１６を含む。電源回路２０−１の出力電圧は固定であり、電源回路２０−２の出力電圧は可変である。ＣＰＵコア回路１３−１乃至１３−１６は、最大性能動作モード、低性能動作モード、及びスタンバイモードの３つの動作モードの何れか１つで動作する。
【００４９】
電源制御回路１１が、電源回路２０−２の出力電圧を可変に制御する（即ち少なくとも２つの０Ｖでない出力電圧を設定できる）。電源回路２０−１の出力電圧は高電圧Ｖｈ（例えば１．０Ｖ）に固定である。電源回路２０−２の出力電圧は高電圧Ｖｈ（１．０Ｖ）と中間電圧Ｖｍ（例えば０．８Ｖ）との何れか一方に可変に設定される。また電源制御回路１１は、電源回路２０−１及び２０−２のオン又はオフ（駆動又は非駆動）を制御してよい。
【００５０】
図６は、図５の演算処理装置の電源制御の一例を示す表である。電源Ａは電源回路２０−１のことであり、電源Ｂは電源回路２０−２のことである。この例において、最大性能動作モードのとき、低性能動作モードのとき、及びスタンバイモードのときのＣＰＵコア回路の消費電流の比率は、１５：５：１と仮定している。また各電源回路は、最大性能動作モードで動作する１個のＣＰＵコア回路の消費電流の８倍の電流供給能力があるとする。従って、１つの電源回路で、最大性能動作モードで動作する８個のＣＰＵコア回路を駆動できる。また１つの電源回路で、低性能動作モードで動作する２４個のＣＰＵコア回路を駆動できる。また１つの電源回路で、スタンバイモードで動作する１２０個のＣＰＵコア回路を駆動できる。
【００５１】
この場合、例えば全てのＣＰＵコア回路１３−１乃至１３−１６が最大性能動作モードにあるときには、２個の電源Ａ及びＢがそれぞれ８個のＣＰＵコア回路に高電圧Ｖｈを供給（印加）すればよい。また例えば最大性能動作モードのＣＰＵコア回路が０個であり、低性能動作モード又はスタンバイモードのＣＰＵコア回路が１６個である場合、電源Ａがオフであり、電源Ｂが中間電圧Ｖｍを出力すればよい。このとき、電源Ｂのみにより、低性能動作モード又はスタンバイモードにある全てのＣＰＵコア回路を駆動させることができる。
【００５２】
図７は、図1AにおけるCPU動作モード設定信号を各CPUへ供給されるクロックの選択信号として用いたものである。この例では、演算処理装置に対し電源制御と共にクロック制御を行っている。図７において、図1Aと同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。また図７においても、図1Aと同様に演算処理装置１０Ｃはメモリに接続されているが、メモリの図示を省略してある。
【００５３】
演算処理装置１０Ｃは、電源制御回路１１、セレクタ回路１２−１乃至１２−４、ＣＰＵコア回路１３−１乃至１３−４、及びセレクタ回路１５−１乃至１５−４を含む。電源回路２０−１の出力電圧は固定であり、電源回路２０−２の出力電圧は可変である。ＣＰＵコア回路１３−１乃至１３−４は、最大性能動作モード及びスタンバイモードの２つの動作モードの何れか１つで動作する。
【００５４】
電源制御回路１１が、電源回路２０−２の出力電圧を可変に制御する（即ち少なくとも２つの０Ｖでない出力電圧を設定できる）。電源回路２０−１の出力電圧は高電圧Ｖｈ（例えば１．０Ｖ）に固定である。電源回路２０−２の出力電圧は高電圧Ｖｈ（１．０Ｖ）と低電圧Ｖｌ（例えば０．６Ｖ）との何れか一方に可変に設定される。また電源制御回路１１は、電源回路２０−１及び２０−２のオン又はオフ（駆動又は非駆動）を制御してよい。
【００５５】
セレクタ回路１５−１乃至１５−４は、複数の異なるクロック信号ＣＬＫ−Ａ及びＣＬＫ−Ｂを受け取る。セレクタ回路１５−１乃至１５−４は、複数のＣＰＵコア回路１３−１乃至１３−４の対応するＣＰＵコア回路に対し、複数のクロック信号ＣＬＫ−Ａ及びＣＬＫ−Ｂの1つを選択して供給（印加）する。セレクタ回路１５−１乃至１５−４が何れのクロック信号を選択するかは、電源制御回路１１からの制御信号に応じて決まる。なお電源制御回路１１は、セレクタ回路１２−１乃至１２−４を制御する電源供給制御部３０、セレクタ回路１５−１乃至１５−４を制御するクロック供給制御部３１、及び各ＣＰＵの使用率及び動作状態（モード）を取得するＣＰＵ情報検出部３２を含む。
【００５６】
ＣＭＯＳ素子を用いた回路では動作電圧と動作周波数との間には密接な関係があり、通常、動作電圧が高電圧であるほど動作周波数を高くできる。また消費電力は電源電圧の２乗に比例し、動作周波数に比例して大きくなる。図７に示す構成では、最大処理能力が必要ない場合には、ＣＰＵコア回路に供給する電源電圧を低下させると共に、ＣＰＵコア回路に供給するクロック周波数も低下させる。
【００５７】
各ＣＰＵがどちらのモードで動作するかは、各ＣＰＵ上で共通に動作しているＯＳ（Operating System）が司る。またＯＳは各ＣＰＵの動作率も把握する。CPU情報検出部はこれらの情報を下に各CPUに対する電圧、クロックを決定する。
【００５８】
図８は、図７の演算処理装置において各ＣＰＵの動作モードにおける電源制御及びクロック制御の一例を示す表である。電源制御については、図２に示す表の場合と同様の制御を行っている。クロック信号ＣＬＫ−Ａは最大性能動作モードで使用する高周波クロック、クロック信号ＣＬＫ−Ｂはスタンバイモードで使用する低周波クロックである。なおスタンバイモードでは、ＣＰＵコア回路の殆どの部分においてクロック信号を必要としないが、本実施例では、スタンバイモードから復帰するためにクロック信号を供給している。
【００５９】
図８において、最大性能動作モードであるＣＰＵコア回路が０個であり、スタンバイモードであるＣＰＵコア回路が４個の場合、電源Ａはオフとなり、電源Ｂの出力電圧は低電圧Ｖｌとなる。４個のスタンバイモードのＣＰＵコア回路には、電源Ｂからの電圧Ｖｌが供給される。またこれら４個のスタンバイモードのＣＰＵコア回路には、低速クロック信号ＣＬＫ−Ｂが供給される。・・・（１）（図では丸内数字で表した）
最大性能動作モードであるＣＰＵコア回路が１個であり、スタンバイモードであるＣＰＵコア回路が３個の場合、電源Ａの出力電圧は高電圧Ｖｈとなり、電源Ｂの出力電圧は低電圧Ｖｌとなる。１個の最大性能動作モードのＣＰＵコア回路には、電源Ａからの電圧Ｖｈが供給されると共に、高速クロック信号ＣＬＫ−Ａが供給される。また３個のスタンバイモードのＣＰＵコア回路には、電源Ｂからの電圧Ｖｌが供給されると共に、低速クロック信号ＣＬＫ−Ｂが供給される。・・・（２）
最大性能動作モードであるＣＰＵコア回路が２個であり、スタンバイモードであるＣＰＵコア回路が２個の場合、電源Ａの出力電圧は高電圧Ｖｈとなり、電源Ｂの出力電圧は低電圧Ｖｌとなる。２個の最大性能動作モードのＣＰＵコア回路には、電源Ａからの電圧Ｖｈが供給されると共に、高速クロック信号ＣＬＫ−Ａが供給される。また２個のスタンバイモードのＣＰＵコア回路には、電源Ｂからの電圧Ｖｌが供給されると共に、低速クロック信号ＣＬＫ−Ｂが供給される。・・・（３）
最大性能動作モードであるＣＰＵコア回路が３個であり、スタンバイモードであるＣＰＵコア回路が１個の場合、電源Ａの出力電圧は高電圧Ｖｈとなり、電源Ｂの出力電圧も高電圧Ｖｈとなる。３個の最大性能動作モードのＣＰＵコア回路のうちの２個のＣＰＵコア回路には、電源Ａからの電圧Ｖｈが供給されると共に、高速クロック信号ＣＬＫ−Ａが供給される。３個の最大性能動作モードのＣＰＵコア回路のうちの残りの１個のＣＰＵコア回路には、電源Ｂからの電圧Ｖｈが供給されると共に、高速クロック信号ＣＬＫ−Ａが供給される。また１個のスタンバイモードのＣＰＵコア回路には、電源Ｂからの電圧Ｖｈが供給されると共に、低速クロック信号ＣＬＫ−Ｂが供給される。このスタンバイモードのＣＰＵコア回路では、動作電圧が高電圧Ｖｈであるが、クロック信号が低速であるので、ある程度の消費電力削減を図ることができる。・・・（４）
最大性能動作モードであるＣＰＵコア回路が４個であり、スタンバイモードであるＣＰＵコア回路が０個の場合、電源Ａの出力電圧は高電圧Ｖｈとなり、電源Ｂの出力電圧も高電圧Ｖｈとなる。４個の最大性能動作モードのＣＰＵコア回路のうちの２個のＣＰＵコア回路には、電源Ａからの電圧Ｖｈが供給されると共に、高速クロック信号ＣＬＫ−Ａが供給される。４個の最大性能動作モードのＣＰＵコア回路のうちの残りの２個のＣＰＵコア回路には、電源Ｂからの電圧Ｖｈが供給されると共に、高速クロック信号ＣＬＫ−Ａが供給される。・・・（５）
以上の（１）から（５）までの状態がどう遷移するか説明する。先に述べたがＯＳは各ＣＰＵの動作率を把握すると共にその動作率に応じて各ＣＰＵを最大性能動作モードからスタンバイモードへ、あるいはスタンバイモードから最大性能動作モードへ遷移させる。具体的には図１Bを用いて説明したのと同様になる。ＯＳは検出した各ＣＰＵの使用率から使用率：ＵＲを決定しその結果から各ＣＰＵの動作モードを決定する。ただし図１Bでは電源制御部が動作モードを決定となっているがこれをＯＳ決定する。そしてＯＳは各ＣＰＵの動作モードをＣＰＵ情報検出部３２へ伝達し、電源制御部は各電源の電圧、各ＣＰＵへの供給電源の選択、各ＣＰＵへの供給クロックの選択を行う。
【００６０】
なお上記の例では、スタンバイモードのＣＰＵコア回路に対して低速クロック信号ＣＬＫ−Ｂが供給される装置構成としたが、スタンバイモードのＣＰＵコア回路に対してはクロック信号ＣＬＫ−Ａ及びＣＬＫ−Ｂの何れも供給されない装置構成としてもよい。そのような構成により、更なる低消費電力化を図ることができる。
【００６１】
図９は、電源電圧を遮断することが可能な構成の一例を示す図である。図1Aと同一又は対応する構成要素は同一又は対応する番号で参照し、その説明は適宜省略する。また図９においても、図1Aと同様に演算処理装置１０Ｄはメモリに接続されているが、メモリの図示を省略してある。
【００６２】
演算処理装置１０Ｄは、電源制御回路１１、セレクタ回路１２−１乃至１２−４、及びＣＰＵコア回路１３−１乃至１３−４を含む。セレクタ回路１２−１は、ＰＭＯＳトランジスタ１２−１ａ乃至１２−１ｃを含む。セレクタ回路１２−２は、ＰＭＯＳトランジスタ１２−２ａ乃至１２−２ｃを含む。セレクタ回路１２−３は、ＰＭＯＳトランジスタ１２−３ａ乃至１２−３ｃを含む。セレクタ回路１２−４は、ＰＭＯＳトランジスタ１２−４ａ乃至１２−４ｃを含む。電源制御回路１１からの制御信号が各ＰＭＯＳトランジスタのゲートに印加されており、この制御信号により各ＰＭＯＳトランジスタの導通及び非導通を個別に制御することができる。例えばセレクタ回路１２−１において、ＰＭＯＳトランジスタ１２−１ａ乃至１２−１ｃの何れか１つを導通させることにより、３つの電源のうちの１つを選択して、その電源からの電圧をＣＰＵコア回路１３−１に印加することができる。
【００６３】
ＣＭＯＳ回路では、クロックが停止してもリーク電流が流れ電力を消費することが知られている。図９に示す演算処理装置１０Ｄでは、セレクタ回路１２−１乃至１２−４の各々により、何れか１つの電源電圧を選択することが可能であると共に、全ての電源電圧を遮断することも可能となっている。この構成により、例えば、全ての電源回路の出力を高電圧に設定しているがスタンバイモードのＣＰＵコア回路が存在するような場合であっても、スタンバイモードのＣＰＵコア回路への電源電圧を遮断して、リーク電流を無くすことができる。これにより、更なる低消費電力化をはかることができる。
【００６４】
本発明により得られる効果を簡単な例を用いて図１０により説明する。
【００６５】
CPUコア数16とし、各コアの高性能動作時は電源電圧１Vで１Wの消費電力とする。このコアは低性能動作では、半分の動作周波数にすることで電源電圧は0.7Vで動作し0.25Wとなるが、1.0Vままだと0.5Wの消費電力となる。この例は一般にCMOS回路の消費電力は動作周波数に比例し電圧の２乗に比例するということに基づいている。この処理装置に対し本発明の方式：4つの電源で電力供給、1つの電源ですべてのCPUコアに電力供給、個々のCPUコアに対し別個に電源を用意し電力を供給。以上３方式において、高性能動作CPUの数と低性能CPUの数を変えてその消費電力を計算すると下表のようになる。各CPUを別個の電源で供給する方式(16電源)では各電源に接続されているCPUコアの動作が低性能動作になれば電圧を個々に0.7Vにさげられるので、低性能動作のCPUコアの増加とともにその消費電力は急激に下がっている。これに対し１つの電源ですべてのCPUコアに電力を供給する方式(単電源)では、供給電圧は、１つでもCPUが高性能動作状態であれば1.0Vを供給しなければならず低性能動作CPUの数が増加しても電力低下の具合はそれ程急でない。つまり消費電力で見ると16電源方式が優位である。これに対し本発明の方式(4電源)でもほぼ16電源方式と同一である。
【００６６】
また製造コストやスペースの点から考察すると、単電源方式の方が優位であることは明らかである。しかし本発明も単電源方式と比較しそれ程劣っているわけではなく。消費電力の観点も含めれば本発明の方式に利点があることがわかる。
【００６７】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【符号の説明】
【００６８】
１０  演算処理装置
１１  電源制御回路
１２−１〜１２−４  セレクタ回路
１３−１〜１３−４  ＣＰＵコア回路
１４  電源配線
２０−１及び２０−２  電源回路
２３  メモリ
【図１Ａ】
2014067191.tif 000003
【図１Ｂ】
2014067191.tif 000004
【図２】
2014067191.tif 000005
【図３】
2014067191.tif 000006
【図４】
2014067191.tif 000007
【図５】
2014067191.tif 000008
【図６】
2014067191.tif 000009
【図７】
2014067191.tif 000010
【図８】
2014067191.tif 000011
【図９】
2014067191.tif 000012
【図１０】
2014067191.tif 000013