(57)【要約】【課題】低消費電力と低コストの両立を図りながら、マルチプロセッサの消費電力を低減できるマイクロプロセッサ、電子制御ユニット及び電源制御方法を提供すること。【解決手段】  Ｎ個のプロセッサ１９と、複数のグループに分けられたＮ個のプロセッサに、グループ毎に共通の電源電圧を供給する電源回路１７と、グループ毎に共通のクロック周波数のクロックを供給する、電源回路と対のクロック生成回路１８と、プロセッサの負荷に基づき、グループ毎に電源電圧とクロック周波数を制御する制御回路１４と、を有し、電源回路１７の数の合計がＮ個より小さいＭ個であり、電源回路１７の数の合計又はクロック生成回路１８の数の合計が、Ｎ個より小さいＭ個である、ことを特徴とするマイクロプロセッサ１００又はチップセット１００を提供する。【選択図】図１
2012043254.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個のプロセッサと
複数のグループに分けられたＮ個のプロセッサに、グループ毎に共通の電源電圧を供給する電源回路と、
前記グループ毎に共通のクロック周波数のクロックを供給する、前記電源回路と対のクロック生成回路と、
前記プロセッサの負荷に基づき、グループ毎に前記電源電圧と前記クロック周波数を制御する制御回路と、を有し、
前記電源回路の数の合計又は前記クロック生成回路の数の合計が、Ｎ個より小さいＭ個である、
ことを特徴とするマイクロプロセッサ又はチップセット。
【請求項２】
Ｎ個の前記プロセッサと、Ｍ個の前記電源回路及びＭ個の前記クロック生成回路の接続を前記プロセッサ毎に切り替える切り替え回路を有し、
前記制御回路は、前記プロセッサの負荷が互いに近いものを優先的に、１つの前記電源回路及び１つの前記クロック生成回路に割り当てるように、前記切り替え回路を制御する、ことを特徴とする請求項１記載のマイクロプロセッサ又はチップセット。
【請求項３】
前記切り替え回路は、Ｎ個の前記プロセッサとＭ個の前記電源回路の接続を切り替える電源系統切り替え回路と、
Ｎ個の前記プロセッサとＭ個の前記クロック生成回路の接続を切り替えるクロック切り替え回路と、を有し、
前記電源系統切り替え回路は、前記プロセッサと前記電源回路の接続が切断された際に該プロセッサに電力を供給するＮ個の出力電圧安定化手段を有し、
前記クロック切り替え回路は、前記プロセッサと前記クロック生成回路の接続が切断された際に該プロセッサのクロックをＬｏｗに維持するＮ個のプルダウン手段を有する、
ことを特徴とする請求項２記載のマイクロプロセッサ又はチップセット。
【請求項４】
前記電源系統切り替え回路は、Ｎ個ではなくＭ個の前記出力電圧安定化手段と、Ｎ個の前記プロセッサの接続を切り替える出力電圧安定化素子切り替え回路を有する、
ことを特徴とする請求項３記載のマイクロプロセッサ又はチップセット。
【請求項５】
前記切り替え回路は、複数個に分割されており、
それぞれの前記切り替え回路が、Ｍ＝Σｍｉ及びＮ＝Σｎｉ（ｉは自然数）を満たすｍｉ個の前記電源回路及びｍｉ個の前記クロック生成回路と、ｎｉ個のプロセッサとの接続を切り替える、
ことを特徴とする請求項２記載のマイクロプロセッサ又はチップセット。
【請求項６】
それぞれの前記切り替え回路は、ｎｉ個の前記プロセッサとｍｉ個の前記電源回路の接続を切り替える電源系統切り替え回路と、
ｎｉ個の前記プロセッサとｍｉ個の前記クロック生成回路の接続を切り替えるクロック切り替え回路と、を有し、
前記電源系統切り替え回路は、前記プロセッサと前記電源回路の接続が切断された際に該プロセッサに電力を供給するｎｉ個の出力電圧安定化手段を有し、
前記クロック切り替え回路は、前記プロセッサと前記クロック生成回路の接続が切断された際に該プロセッサのクロックをＬｏｗにするｎｉ個のプルダウン手段を有する、
ことを特徴とする請求項５記載のマイクロプロセッサ又はチップセット。
【請求項７】
それぞれの前記電源系統切り替え回路は、ｎｉ個でなくｍｉ個の前記出力電圧安定化手段と、ｎｉ個の前記プロセッサの接続を切り替える出力電圧安定化素子切り替え回路を有する、
ことを特徴とする請求項６記載のマイクロプロセッサ又はチップセット。
【請求項８】
前記電源系統切り替え回路と前記出力電圧安定化素子切り替え回路は１つのＩＣに集積され、Ｍ個の前記出力電圧安定化手段は前記ＩＣに外付けされている、
ことを特徴とする請求項４又は７記載のマイクロプロセッサ又はチップセット。
【請求項９】
前記制御回路は、
前記プロセッサとＭ個の前記電源回路及びＭ個の前記クロック生成回路の接続を切り替えた後、
前記プロセッサと前記前記電源回路との接続をオン・オフする前記電源系統切り替え回路の各スイッチの状態と、
前記プロセッサと前記出力電圧安定化手段との接続をオン・オフする前記出力電圧安定化素子切り替え回路の各スイッチの状態とを、同相に維持する、
ことを特徴とする請求項４又は７記載のマイクロプロセッサ又はチップセット。
【請求項１０】
前記制御回路は、
第１の電源回路及び第１のクロック生成回路に接続された前記プロセッサを、第２の電源回路及び第２のクロック生成回路に切り替えて接続する際、
切り替え対象以外の前記プロセッサと前記出力電圧安定化手段との接続をオン・オフする、前記出力電圧安定化素子切り替え回路のスイッチを全てオフにする、
ことを特徴とする請求項７記載のマイクロプロセッサ又はチップセット。
【請求項１１】
前記制御回路は、１つの前記電源回路及び１つの前記クロック生成回路に接続された２以上の前記プロセッサのうち、最も負荷が大きい前記プロセッサの消費電力を賄うように前記電源電圧を決定する、
ことを特徴とする請求項１〜１１いずれか1項記載のマイクロプロセッサ又はチップセット。
【請求項１２】
前記制御回路は、前記プロセッサの負荷が高くなった場合、
前記電源回路が負荷に対応した前記電源電圧を出力するまで待機した後、
前記クロック生成回路に負荷に対応した前記クロック周波数の出力を要求する、
ことを特徴とする請求項１項記載のマイクロプロセッサ又はチップセット。
【請求項１３】
請求項１〜１２いずれか１項記載のマイクロプロセッサ又はチップセットと、
プログラムを記憶した記憶手段と、
各プロセッサの起動を管理する起動管理回路と、
を有する電子制御ユニット。
【請求項１４】
Ｎ個のプロセッサと、Ｎ個より小さいＭ個の電源回路と、前記電源回路と対のＭ個のクロック生成回路と、を有するマイクロプロセッサの電源制御方法において、
制御回路が、複数のグループに分けられた前記プロセッサの負荷に基づき、グループ毎に前記電源電圧と前記クロック周波数を決定するステップと、
電源回路が、グループ毎に共通の電源電圧を供給するステップと、
クロック生成回路が、前記グループ毎に共通のクロック周波数のクロックを供給するステップと、を有する電源制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサ系のマイクロプロセッサに関し、特に、消費電力が低減されたマイクロプロセッサ、電子制御ユニット及び電源制御方法に関する。
【背景技術】
【０００２】
車両の安全性、快適性及び環境性能等を向上させるために、車両に搭載される車載装置の多くに電子制御が活用されるようになった。一方、燃費の改善や電気自動車の出現により、電子制御を司る電子制御ユニットの消費電力を低減したいとする要求が高まっている。電子制御ユニットの消費電力は、マイコン（マルチプロセッサマイコン、マルチコアマイコン）に搭載されたプロセッサによりその多くが占められる。増大する制御処理を少ない消費電力でカバーするため、複数のプロセッサを搭載したマイコンを電子制御ユニットに応用する検討が進められている。しかし、その応用検討は始まってまだ日が浅く、最適な応用技術はまだ確立されていない。
【０００３】
プロセッサの消費電力は、電源電圧の二乗とクロック周波数におおよそ比例する。また、高いクロック周波数でプロセッサを動作させると単位時間当たりの処理量を高めることができるが、クロック周波数に比例して電源電圧を高める必要があり、単位処理量当たりの消費電力は増加してしまう。逆に、低いクロック周波数では、単位時間当たりの処理量は減るがプロセッサの電源電圧を下げることができ、単位処理量当たりの消費電力を低減できる。このように、単位処理量当たりの消費電力を低減するには、クロック周波数を下げるだけでなく、クロック周波数と電源電圧の管理を適切に行うことが重要になる。
【０００４】
また、制御処理では処理のデッドラインが厳密に定められており、プロセッサが処理をデッドラインまでに終了しないと、最適な制御に影響を及ぼす可能性がある。このため、制御処理ではデッドラインを守りながらいかに低消費電力にできるかが課題になる。ここで、電子制御ユニットの制御では、プログラムの開発時に処理要求の発生タイミングが正確には分からないことがあり、デッドラインまでに残された処理時間が厳しく制約されるという特徴がある。
【０００５】
従来の技術として、プロセッサのクロック周波数は固定しておき、最高処理速度で処理を行い、処理を行う必要のなくなった余裕時間帯でプロセッサを停止させることで消費電力を低減する技術があった（例えば、特許文献１参照。）。特許文献１には、タスクが実行されていない期間にスリープ状態となるプロセッサが開示されている。しかし、高いクロック周波数を使用するこの方法は、同じ処理をデッドライン近くまで低クロック周波数で実行する場合と比べ消費電力を増やしてしまう。
【０００６】
このような検討を踏まえると、デッドラインを守りながら必要な処理をいかに低いクロック周波数（つまり低い電源電圧）で実行するかが課題となる。従来の技術に、タイムスロット毎に処理を保証する時間内に終了するクロック周波数を決定して、そのクロックに基づいて電源電圧を決定するパワー制御装置が考案されている（例えば、特許文献２参照。）。しかし、特許文献２ではソフトウェアにより電源電圧を決定するため、スケジューリングを行うことでプロセッサの処理時間を消費してしまう。
【０００７】
また、これまでは１つのプロセッサに対しスケジューリングを行えばよかったが、複数のプロセッサに対しスケジューリングを行うことは、スケジューリングの複雑さを増大させてしまう。複数の処理を並行して実行させる制御装置では、これら複数の処理をどの順番で実行させるか、及び、その時のクロック周波数と電源電圧を決定する手順（スケジューリング）が重要となる。処理を実行する順序により、ある一つの処理にかけられる時間が異なるからである。
【０００８】
複数個のプロセッサを使えば、処理を個別のプロセッサに振り分けることができ、プロセッサ当たりの処理量が減ることからクロック周波数を下げると共に、電源電圧を下げることで低消費電力化が可能になる（例えば、特許文献３参照。）。特許文献３には、コンパイラにより処理対象となる入力プログラムから自動的に並列性を持つタスクを抽出し、各プロセッサユニットの特性に合わせて当該タスクを配置するマルチプロセッサシステムが開示されている。このマルチプロセッサシステムは、さらにプロセッサユニットの処理量を見積もることで動作周波数や電源電圧を最適化する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００３−２７１４０１号公報
【特許文献２】特許３１３８７３７号公報
【特許文献３】特開２００７−３０５１４８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献３に開示されたマルチプロセッサシステムは、プロセッサ毎に電源とクロック生成回路を備えることを前提としているので、高コストである。低消費電力化という意味で最適にプロセッサを動作させるためには、プロセッサ毎に独立に電源電圧及びクロック周波数を制御することが適当である。しかし、同一の電源電圧・クロック周波数で動作するタスクは同時に複数あることがあり、また、最適条件でなくとも最適に近い条件であれば低消費電力化を図ることが可能である。このため、特許文献３のように、プロセッサの電源電圧・クロック周波数を、プロセッサ毎に個別制御する必要は必ずしもない。
【００１１】
すなわち、恒常的な要求として、電子制御ユニットは低価格であることが要求されるが、低消費電力と低価格は必ずしも両立しないので、電源電圧・クロック周波数の最適化とコストの適切なトレードオフ点を探すことが好ましい。
【００１２】
また、車両制御では不定期に発生する処理要求をスケジューリングしなければならないという特殊性もある。この点、特許文献３では、コンパイル時にタスクを解析するので、外的要因により負荷が変化する際に対応できない。
【００１３】
本発明は、上記課題に鑑み、低消費電力と低コストの両立を図りながら、マルチプロセッサの消費電力を低減できるマイクロプロセッサ、電子制御ユニット及び電源制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、Ｎ個のプロセッサと、複数のグループに分けられたＮ個のプロセッサに、グループ毎に共通の電源電圧を供給する電源回路と、グループ毎に共通のクロック周波数のクロックを供給する、電源回路と対のクロック生成回路と、プロセッサの負荷に基づき、グループ毎に電源電圧とクロック周波数を制御する制御回路と、を有し、電源回路の数の合計がＮ個より小さいＭ個であり、電源回路の数の合計又はクロック生成回路の数の合計が、Ｎ個より小さいＭ個である、ことを特徴とするマイクロプロセッサを提供する。
【発明の効果】
【００１５】
低消費電力と低コストの両立を図りながら、マルチプロセッサの消費電力を低減できるマイクロプロセッサ、電子制御ユニット及び電源制御方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】マルチプロセッサシステムの概略構成図の一例である。
【図２】ＣＮＴの概略構成図の一例である。
【図３】ＰＳの概略構成図の一例である。
【図４】ＣＧの概略構成図の一例である。
【図５】ＰＥの概略構成図の一例である。
【図６】ＷＵＰの概略構成図の一例である。
【図７】給電ロジック回路が制御する給電ロジックの状態遷移図の一例である。
【図８】ＭＰＳの起動シーケンスの一例を示す図である。
【図９】「電源給電」状態のＭＰＳがクロック周波数を変更する手順を示すシーケンス図の一例である。
【図１０】ＰＥ-ｋを停止させる手順を示すシーケンス図の一例である。
【図１１】ＰＥ-ｋを再起動させる手順を示すシーケンス図の一例である。
【図１２】ＭＰＳの停止シーケンスの一例を示す図である。
【図１３】ＭＰＳの効果を説明する図の一例である。
【図１４】ＭＰＳの概略構成図の一例である（実施例２）。
【図１５】ＰＳ側のＳＷＭＸの構成（電源系統切り替え回路）を模式的に示す図の一例である。
【図１６】ＣＧ側のＳＷＭＸの構成構成（クロック切り替え回路）を模式的に示す図の一例である。
【図１７】ＣＮＴの概略構成図の一例である。
【図１８】ＰＥ及びＣＮＴによるＳＷＭＸの切り替え処理の手順を示すシーケンス図の一例である。
【図１９】電源系統切り替え回路の遷移を説明する図の一例である。
【図２０】ＭＰＳの効果を説明する図の一例である（実施例２）。
【図２１】ＭＰＳの概略構成図の一例である（実施例３）。
【図２２】ＳＷＭＸ２及びＳＷＭＸ４の概略構成図の一例である。
【図２３】ＰＳ側のＳＷＭＸの概略構成図の一例である（実施例４）。
【図２４】出力電圧安定化素子切り替え回路の遷移を説明する図の一例である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例１】
【００１８】
図１は、マルチプロセッサシステム１００の概略構成図の一例を示す。まず、概略を説明する。本実施例のマルチプロセッサシステム（以下、ＭＰＳ１００）は、１つ以上のプロセッサエレメント（以下、ＰＥ１９といい、区別する場合「ＰＥ−番号」で示す。なお、ＰＥの符号「１９」は以下、省略する。）を含むＰＥのグループ毎に、電源電圧及びクロック周波数を制御する。すなわち、ＰＥの数をＮ個、電源電圧及びクロック周波数を制御する制御ユニット１３の数をＭ個とした場合、Ｎ＞Ｍである。本実施例ではグループは２つ以上あるとするので、Ｎ＞Ｍ＞２である。
【００１９】
ＰＥは、同じグループのＰＥが同程度の負荷となるようにグループ化される。このようなグループ化は、タスクの割り当てやシミュレーションなどにより十分な精度で実現される。同程度の負荷の複数のＰＥを１つにグループ化することで、Ｎ個より少ないＭ個の各制御ユニット１３が、グループのトータルの消費電力が最も少なくなるようにグループ内の各ＰＥの電源電圧とクロック周波数を制御するので、低消費電力と低価格の両立が可能になる。
【００２０】
以下、詳細に説明する。各ＰＥは、システムＢｕｓ２０を介して制御回路（以下、ＣＮＴという）１４、ＲＯＭ１５、ＲＡＭ１６及び起動回路（以下、ＷＵＰという）１１と接続されている。また、ＣＮＴ１４は、システムＢｕｓ２０を介して、各制御ユニット１３と接続されている。
【００２１】
制御ユニット１３は、電源回路（以下、ＰＳといい、区別する場合「ＰＳ−番号」で示す）１７とクロック発生回路（以下、ＣＧといい、区別する場合「ＣＧ−番号」で示す）１８を有する。各ＰＳ１７は、給電線7を介してＷＵＰ１１と接続され、各ＣＧ１８はクロック供給線６を介してクロック元発振回路（以下、ＯＳＣという）１２と接続されている。
【００２２】
また、ＭＰＳ１００は、図示する他、バスブリッジ等を有し、バスブリッジには、他のＭＰＳ（車載されると電子制御ユニットと称されることがある）１００と通信するための通信コントローラや入出力インタフェースが接続されている。入出力インタフェースには各種のセンサやアクチュエータが接続される。ＭＰＳ１００は、車載装置を制御する電子制御ユニットに好適に適用される。
【００２３】
なお、ＭＰＳ１００の構成は、ＣＰＵに代表されるプロセッサだけでなくチップセットなどの周辺ＬＳＩにも好適に適用される。
【００２４】
＜ＣＮＴ１４＞
図２は、ＣＮＴ１４の概略構成図の一例を示す。ＣＮＴ１４は、バスインタフェース２２、レジスタ２３、クロック周波数−電源電圧テーブル２４、電源電圧設定値出力回路２５、給電許可出力回路２６、クロック周波数設定値出力回路２７、タイミング発生回路２８、及び、順序回路２９を有する。ＣＮＴ１４は、各ＰＥから通知された要求クロック周波数に基づき、クロック周波数選択信号と電源電圧設定信号、及び、ＰＥ給電許可信号を各制御ユニット１３に出力する。
【００２５】
この要求クロック周波数は、ＰＥが負荷レベルに応じて、直接又はＰＥ-１を介して書き込んだレジスタ２３の「設定周波数」である（順序回路２９がＰＥから要求クロック周波数を受信し、レジスタ２３に登録してもよい。）。負荷が高ければ又は高くなることが予測されれば、ＰＥは高い要求クロック周波数を書き込み、負荷が低ければ又は低くなることが予測されれば、ＰＥは低い要求クロック周波数を書き込む。
【００２６】
レジスタ２３は、グループ毎に、「給電許可」、「設定周波数」及び「現在周波数」を記憶する。「給電許可」はグループへの給電が許可されているか否かを示す情報である。各グループの「給電許可」は、特定の起動プロセッサ（本実施例ではＰＥ-１）からの許可により「オン（図ではＹｅｓ）」になる。
「設定周波数」はＰＥが要求した要求クロック周波数を示す情報である。「設定周波数」に設定されている複数の値（要求クロック周波数）は、各グループの各ＰＥが最後に書き込んだ要求クロック周波数である。「現在周波数」は、グループに実際に（現在）供給されているクロック周波数を示す情報であり、「設定周波数」のうち最も大きい要求クロック周波数と等しい（又は最も大きい要求クロック周波数に相当する周波数と等しい）。
【００２７】
クロック周波数−電源電圧テーブル２４は、クロック周波数と電源電圧の対応を示すテーブルである。クロック周波数に比例して大きくなる電源電圧が、各クロック周波数に対応づけて登録されている。登録されるクロック周波数の数はＣＧ１８がＰＥに供給可能なクロック周波数の数に対応していてもよいし、いくつかのクロック周波数を登録しておき、ＰＥに供給されうるクロック周波数は内挿により算出して決定してもよい。
【００２８】
給電許可出力回路２６は、各制御ユニット１３にＰＥ給電許可信号を出力する。ＰＥ給電許可信号は、各制御ユニット１３に給電を許可する信号である。電源電圧設定値出力回路２５は、電源電圧設定信号を各制御ユニット１３に出力する。電源電圧設定信号は、各グループに供給される電源電圧を指示する信号であり、クロック周波数−電源電圧テーブル２４に基づき決定された値を指示する。クロック周波数設定値出力回路２７は、ＰＥが要求した要求クロック周波数に対応するクロック周波数選択信号を各制御ユニット１３に出力する。
【００２９】
順序回路２９について、給電許可出力回路２６、電源電圧設定値出力回路２５、及び、クロック周波数設定値出力回路２７の処理手順を含めて説明する。順序回路２９は、タイミング発生回路２８が通知するタイミング指示に基づき、ＣＮＴ１４内の各回路（電源電圧設定値出力回路２５、給電許可出力回路２６、クロック周波数設定値出力回路２７）に処理を要求する。すなわち、順序回路２９は、ＣＮＴ１４が行うべき処理の手順を制御する。
【００３０】
ＰＥが最後に書き込んだ要求クロック周波数が、そのグループの他のＰＥの要求クロック周波数より高ければ、最後に書き込んだＰＥの要求クロック周波数にＣＧ１８のクロック周波数を上げればよい。しかし、ＰＥが最後に書き込んだ要求クロック周波数より、そのグループの他のＰＥの要求クロック周波数が高ければ、最後に書き込んだＰＥの要求クロック周波数に従いＣＧ１８のクロック周波数を下げることができない。
【００３１】
このため、順序回路２９は、レジスタ２３に書き込んだＰＥの要求クロック周波数を含めそのＰＥが属するグループの全ての「設定周波数」のうち最も大きな「設定周波数」と、レジスタ２３の「現在周波数」とを比較し、比較結果に応じてＣＧ１８のクロックを制御する。
【００３２】
まず、ＣＮＴ１４がＣＧ１８のクロック周波数を上げる場合を説明する。順序回路２９は、ＰＥがシステムＢｕｓ２０を介して要求クロック周波数をレジスタ２３の「設定周波数」に書き込んだことを検出する。順序回路２９にとって、要求クロック周波数を書き込んだＰＥは既知である。
【００３３】
順序回路２９は、レジスタ２３を参照し、レジスタ２３に書き込んだＰＥの要求クロック周波数を含めそのＰＥが属するグループの全ての「設定周波数」のうち最も大きな「設定周波数」と「現在周波数」の大小を比較する。「設定周波数」と「現在周波数」の大きさが同じ場合、順序回路２９は何も行わない。
【００３４】
「現在周波数」に対し「設定周波数」の方が大きい場合、順序回路２９は、電源電圧設定値出力回路２５に電源電圧設定信号の出力を要求する。電源電圧設定値出力回路２５は、「設定周波数」に基づきクロック周波数−電源電圧テーブル２４から決定した電源電圧を指示する電源電圧設定信号を制御ユニット１３に出力する。
【００３５】
そして、順序回路２９は、タイミング発生回路２８が通知する予め定められた時間だけ待機して、クロック周波数設定値出力回路２７にクロック周波数選択信号の出力を要求する。待機するのは、クロックに対応した電源電圧が安定して得られるまで時間がかかるためである。要求を受けたクロック周波数設定値出力回路２７は、「設定周波数」を表すクロック周波数選択信号を制御ユニット１３に出力する。順序回路２９は、「現在周波数」を「設定周波数」にて更新する。
【００３６】
また、「現在周波数」に対し「設定周波数」の方が小さい場合、順序回路２９は、電源電圧設定値出力回路２５に電源電圧設定信号の出力を要求する。電源電圧設定値出力回路２５は、最も大きな「設定周波数」に基づきクロック周波数−電源電圧テーブル２４から決定した電源電圧を指示する電源電圧設定信号を制御ユニット１３に出力する。
【００３７】
次に、順序回路２９は、待機することなく、クロック周波数設定値出力回路２７にクロック周波数選択信号の出力を要求する。電源電圧を低下させるのにはほとんど時間がかからないので、順序回路２９は待機する必要がない。クロック周波数設定値出力回路２７はＰＥが書き込んだ「設定周波数」を指示するクロック周波数選択信号を出力する。順序回路２９は、「現在周波数」を「設定周波数」にて更新する。
【００３８】
なお、ＰＥ-１は、ＣＮＴ１４と協働して他のＰＥの電源電圧やクロックを制御する。ＰＥ-１は、ＲＯＭ４２に記憶されたプログラムを実行することで実現される、クロック制御手段１９１、停止手段１９２及び再起動手段１９３を有する。これらの手段についてはシーケンス図にて説明する。なお、これらの手段をＣＮＴ１４にてハード的又はソフト的に実現してもよい。
【００３９】
＜ＰＳ（電源回路）１７＞
図３は、ＰＳ１７の概略構成図の一例を示す。ＰＳ１７は主に、スイッチ３１、電圧変換回路３２、及び、出力電圧安定化素子３３を有する。スイッチ３１は、システム電源からの給電をオン／オフする。ＰＳ１７は、ＣＮＴ１４からＰＥ給電許可信号を受け付けるとスイッチ３１をオンにして、ＣＮＴ１４からＰＥ給電許可信号を受け付けなくなるとスイッチ３１をオフにする。ＰＥ給電許可信号を受け取る毎に、スイッチ３１をオン／オフしてもよい。
【００４０】
電圧変換回路３２は、例えば、車両のバッテリ電圧を電源電圧設定信号の電源電圧に変換するＤＣ・ＤＣコンバータである。ＤＣ・ＤＣコンバータとしては、変換効率に優れたスイッチングレギュレータが一般的であるが、リニア方式などどのような方式でもよい。車両のバッテリ電圧は、一般的に１２〔Ｖ〕程度でありプロセッサの電源電圧は数ボルトなので、電圧変換回路３２は主に降圧用の電圧変換回路である。
【００４１】
電圧変換回路３２は、例えば、電源電圧設定信号に応じてスイッチングのためのＰＷＭ信号のデューティ比を切り替え、出力する電圧を調整する。出力電圧安定化素子３３は、電圧変換回路３２が出力する電圧からリップルを除去する回路で、電圧変換回路３２と直列に接続された、例えばコンデンサである。
【００４２】
ＰＳ１７は、１つのグループに１つ設けられている。１つのＰＥは特定の１つのＰＳ１７から電力の供給を受け、グループ内の各ＰＥは同じ電源電圧で作動する。したがって、各ＰＳ１７の電流供給能力は、そのＰＳ１７が電力を供給するグループ内の１以上のＰＥの消費電力の総和に等しい。また、各ＰＳ１７の電流供給能力の総和は、全ＰＥの消費電力の総和に等しい。
【００４３】
なお、ＰＳ１７の１つに、起動プロセッサ（ＰＥ-１）だけに電力を供給する始動電源回路が１つ設けられる（図１ではＰＳ-１）。ＰＳ-２〜ＰＳ-Ｍは、その他の１個以上のＰＥ（ＰＥ-２〜ＰＥ-Ｎ）に電力を供給する。ＰＳ１７の総数はＭ個である。
【００４４】
＜ＣＧ（クロック発生回路）１８＞
図４はＣＧ１８の概略構成図の一例を示す。各ＣＧ１８にはＯＳＣ１２からＯＳＣ発振信号が供給される。ＯＳＣ１２は、システム電源から供給された電力で、固定の高周波のＯＳＣ発振信号を出力する水晶振動子を備えた発振回路である。
【００４５】
各ＣＧ１８は分周器３５とセレクタ３６を有する。分周器３５はＯＳＣ発振信号を分周し、より低周波数のクロック周波数に変換する。分周器３５は、複数種類（ｎ個）の低周波数のクロック周波数を並行的に分周することが可能であり、ｎ個のクロック周波数のそれぞれが、各ＰＥに供給可能な（各ＰＥが「設定周波数」で要求した）クロック周波数に対応する。セレクタ３６は、ｎ個のクロック周波数から、クロック周波数選択信号に応じて１つのクロック周波数を選択して１グループの各ＰＥに出力する。システムＢｕｓ２０が非同期バスアーキテクチャを有する場合、分周比をｍ／ｎ（ｎ＞ｍ）としてもよい。
【００４６】
１個のＣＧ１８は、１個のＰＳ１７と対をなしており、対のＰＳ１７が電源を供給する各ＰＥにクロックを供給する。１つのＰＥは特定の１つのＣＧ１８からクロックの供給を受け、グループ内の各ＰＥは同じクロックで作動する。各ＣＧ１８は、対となるＰＳ１７がグループの各ＰＥに電力を供給している間だけクロックを供給する。
【００４７】
ＣＧ１８には、特定の起動プロセッサ（ＰＥ-１）だけに電力を供給する始動電源回路（図１ではＰＳ-１）と対のクロック発生回路（ＣＧ-１）が１個と、その他の１個以上のＰＥ（ＰＥ-２〜ＰＥ-Ｎ）に電力を供給するクロック発生回路（ＣＧ-２〜ＣＧ-Ｍ）がある。ＣＧ１８の総数はＭ個である。
【００４８】
＜ＰＥ１９＞
図５は、ＰＥの概略構成図の一例を示す。各ＰＥは、ＣＰＵやＣＰＵコア等、汎用的なプロセッサであるが、ＤＳＰやリコンフィギュラブルプロセッサ等でもよい。図５ではＣＰＵ型のＰＥを示す。また、Ｎ個のＰＥは、全てが同一のアーキテクチャのプロセッサでもよいし、異なるアーキテクチャのプロセッサが混在していてもよい。
【００４９】
各ＰＥは、グループ毎に共通に同じ制御ユニット１３と、電源配線ＶＤＤ（区別する場合「ＶＤＤ−番号」で示す）８及びクロック配線ＣＫ（区別する場合「ＣＫ−番号」で示す）９を介して接続されている。
【００５０】
各ＰＥは、ローカルバスに接続されたＣＰＵ３８、Ｐｅｒｉｐｈ（区別する場合「Ｐｅｒｉｐｈ-番号」で示す）３９、ＲＯＭ４２、ＲＡＭ４３及びバスインタフェース４１を有する。各ＰＥは、ＲＯＭ４２に記憶されたプログラムを、各ＰＥが有するＲＡＭ４３を作業メモリとしながら実行する。各ＰＥはＭＰＳ１００のＲＯＭ１５に記憶されたプログラムを実行することもできる。
【００５１】
また、各ＰＥは、ＲＯＭ４２又はＲＯＭ１５に記憶された複数のプログラムをそれぞれ独立に実行してもよいし、１つのプログラムをいくつかのタスクに区分して、各ＰＥがそれぞれのタスクを実行する態様で各ＰＥが協働して１つのプログラムを実行してもよい。この場合、各ＰＥはＭＰＳ１００のＲＡＭ１６を介してデータを受け渡す。不図示だが、ＰＥ同士を接続する専用線を備えておき、各ＰＥで同期を取ったりデータを受け渡ししたりしてもよい。
【００５２】
Ｐｅｒｉｐｈ３９は、例えば、割り込みコントローラやタイマである。この他、Ａ／Ｄコンバータ、汎用Ｉ／Ｏ、リセット回路等を備えていてもよい。
【００５３】
ＰＥ内は可変の電源電圧で動作するため、ＰＥ側の電圧とシステムＢｕｓ２０側とが異なる電圧レベルとなることがある。このため、バスインタフェース４１はレベルシフタ機能を有する。バスインタフェース４１は、入力と出力の双方において、システムＢｕｓ２０とＰＥの電源電圧の電圧レベルの違いに応じてＨｉｇｈ信号の電圧値を補正する。
【００５４】
＜ＷＵＰ１１＞
図６は、ＷＵＰ１１の概略構成図の一例を示す。ＷＵＰ１１は、各ＰＥの起動を制御する回路である。ＷＵＰ１１は、給電ロジック回路４５、ＰＥ-１リセット回路４６、及び、ＰＥ-２〜ＰＥ-Ｎリセット回路４７を有する。給電ロジック回路４５は、ＭＰＳ１００の起動時及び電源遮断時の給電を制御する。ＰＥ-１リセット回路４６はＰＥ-１をリセットし、ＰＥ-２〜ＰＥ-Ｎリセット回路４７はＰＥ-２〜ＰＥ-Ｎを個別にリセットする。なお、ＰＥ-１リセット回路４６とＰＥ-１とは不図示の専用線で、ＰＥ-２〜ＰＥ-Ｎリセット回路４７とＰＥ-２〜ＰＥ-Ｎとは不図示の専用線で、それぞれ接続されている。
【００５５】
起動の手順を説明する。給電ロジック回路４５は、車載された他のＭＰＳ１００、ユーザの操作等により起動信号（例えばパルス状の信号）を受け付けると、各制御ユニット１３、ＯＳＣ１２及びＣＮＴ１４にシステム電源を接続する。この時点では、起動電源回路であるＰＳ-１だけが起動プロセッサＰＥ-１に電力を供給し、ＰＳ-１はＣＧ-１に電力を供給する。ＣＧ-１は、予め定められた初期のクロック周波数のクロックを生成する。各ＰＳ-２〜ＰＳ-ＭはＣＮＴ１４からＰＥ給電許可信号を受け取っていないので、ＰＳ-２〜ＰＳ-Ｍは各ＰＥ-２〜ＰＥ-Ｎに電力を供給しない。
【００５６】
給電ロジック回路４５は、各制御ユニット１３、ＯＳＣ１２及びＣＮＴ１４にシステム電源を接続した後、適切な時間だけ待機した後（電源電圧やクロックが安定した後）、ＰＥ-１リセット回路４６にＰＥ-１のリセットを要求する。リセットによりＰＥ-１が起動する。
【００５７】
起動したＰＥ-１は、後述する手順で各ＰＥ-２〜ＰＥ-Ｎに電源電圧・クロック周波数を供給し、ＰＥ-２〜ＰＥ-Ｎリセット回路４７にＰＥ-２〜ＰＥ-Ｎのリセットを要求する。このようにして、ＭＰＳ１００の各ＰＥが起動する  。
【００５８】
また、任意のＰＥ（例えばＰＥ-１）がシステムＢｕｓ２０を介してＷＵＰ１１に電源遮断指示を送信すると、給電ロジック回路４５は、各制御ユニット１３、ＯＳＣ１２及びＣＮＴ１４への給電を停止する。
【００５９】
・給電ロジックの状態遷移
図７は、給電ロジック回路４５が制御する給電ロジックの状態遷移図の一例を示す。ＭＰＳ１００は３つの状態、(i)「停止」状態、「動作」状態に含まれる(ii)「電源給電停止」状態、(iii)「電源給電」状態、を遷移する。
【００６０】
「停止」状態のＭＰＳ１００がシステム電源を印加されると、ＭＰＳ１００は「動作」状態となる。システム電源は、車両のメインシステムをスタートさせるスタートボタン、イグニッションオン（アクセサリオン）のためのキーシリンダ等がユーザにより操作されるとＭＰＳ１００に供給可能になる。
【００６１】
「動作」状態となった直後、ＭＰＳ１００は「電源給電停止」状態である。上記のように、給電ロジック回路４５が起動信号を受け付け各制御ユニット１３、ＯＳＣ１２及びＣＮＴ１４にシステム電源を接続すると「電源給電」状態となる。また、任意のＰＥ（例えばＰＥ-１）がシステムＢｕｓ２０を介してＷＵＰ１１に電源遮断指示を送信すると、ＭＰＳ１００は「電源給電停止」状態となる。また、車両のメインシステム等が停止すると、ＭＰＳ１００は「停止」状態になる。
【００６２】
＜シーケンス＞
図８は、ＭＰＳ１００の起動シーケンスの一例を示す図である。図８のシーケンス図は、「電源給電停止」状態のＭＰＳ１００が起動信号を受け付けることでスタートする。
【００６３】
給電ロジック回路４５は、各制御ユニット１３、ＯＳＣ１２及びＣＮＴ１４にシステム電源を接続する（Ｓ１０）。これにより、ＰＳ-１とＣＧ-１にシステム電源が供給される。
【００６４】
ＣＧ-１はＯＳＣ１２からＯＳＣ発振信号を受け取り、ＰＳ-１から電力の供給を受け、ＰＥ-１へのクロックの供給を開始する（Ｓ２０）。
【００６５】
給電ロジック回路４５は、クロックが安定したことを検知するか又は予め既知のクロックが安定するタイミングになると、ＷＵＰ１１のＰＥ-１リセット回路４６にＰＥ-１のリセットを要求する。これにより、ＰＥ-１がリセットされ、ＰＥ-１が起動する（Ｓ３０）。
【００６６】
起動したＰＥ-１は初期化シーケンスを実行する（Ｓ４０）。初期化シーケンスは、例えば、起動用のプログラムをＲＯＭ４２から読み出し、ハードウエアレジスタの初期化、基本アドレスデータ（ＲＡＭ１６、ＲＯＭ１５のアクセス情報）の設定等を行う起動直後のシーケンスである。
【００６７】
なお、この次に、ＰＥ-１が、起動させる他のＰＥを選別するステップがあってもよい。この場合、全てのＰＥを起動する必要がないので、起動時の消費電力を低減できる。
【００６８】
次にＰＥ-１は、ＣＮＴ１４のレジスタ２３の、ＰＳ-１〜ＰＳ-Ｍの「給電許可」をオンに書き込む（Ｓ５０）。これにより、順序回路２９は、給電許可出力回路２６にＰＥ給電許可信号を各ＰＳ１７に出力するよう要求し、電源電圧設定値出力回路２５に電源電圧設定信号を出力するよう要求する。この時の電源電圧設定信号は初期の電源電圧であり、予め決まっているか、又は、ＰＥ-１が初期のクロック周波数として初期値を「現在周波数」に書き込む。
【００６９】
順序回路２９は、タイミング発生回路２８からの通知を受けることで適切な時間だけ待機した後、予め決まっているクロック周波数、又は、初期のクロック周波数のクロック周波数選択信号をクロック周波数設定値出力回路２７に出力するよう要求する。これにより、ＣＧ-２〜ＣＧ-Ｍがグループ毎に各ＰＥ-２〜ＰＥ-Ｎにクロックを供給する（Ｓ６０）。
【００７０】
次に、給電ロジック回路４５は、ＰＥ-２〜ＰＥ-Ｎリセット回路４７に、ＰＥ-２〜ＰＥ-Ｎのリセットを要求する（Ｓ７０）。これにより、ＰＥ-２〜ＰＥ-Ｎがリセットされ、起動する。
【００７１】
起動したＰＥ-２〜ＰＥ-Ｎはそれぞれ初期化シーケンスを実行する（Ｓ８０）。これにより、ＰＥ-２〜ＰＥ-Ｎがプログラムを実行可能になる。また、ＭＰＳ１００は「電源給電」状態になる。以降、ＭＰＳ１００は制御処理等を実行する。
【００７２】
図９は、「電源給電」状態のＭＰＳ１００がクロック周波数を変更する手順を示すシーケンス図の一例である。ここでは、各ＰＥがＰＥ-１を介してレジスタ２３を操作するものとして説明する。
【００７３】
まず、ＰＥ-ｋがＰＥ-１にクロック周波数をｆk-newに変更するよう要求する（Ｓ１１０）。ＰＥ-１はこの要求を受け付けると、クロック制御手段１９は、レジスタ２３においてＰＥ-ｋが属するグループに電力を供給しているＰＳ-ｉのＰＥ-ｋの「設定周波数」にｆk-newを書き込む。
【００７４】
順序回路２９は、レジスタ２３の変更を検出すると、ｆk-newを含めＰＳ-ｉから電力供給されるグループのＰＥのうち最も高い要求クロック周波数を選択し、それを「設定周波数fi-new」とする。そして、「設定周波数fi-new」と「現在周波数fi-now」のどちらが大きいかを比較する（Ｓ１２０）。
「設定周波数fi-new」の方が「現在周波数fi-now」よりも大きい場合（Ｓ１３０のＹｅｓ）、順序回路２９は電源電圧設定値出力回路２５に電源電圧設定信号を出力するよう要求する（Ｓ１４０）。電源電圧設定値出力回路２５は、クロック周波数−電源電圧テーブル２４を参照して「設定周波数fi-new」に対応する電源電圧を決定し、ＰＳ-ｉに電源電圧設定信号を出力する（Ｓ１５０）。
次に、順序回路２９は、タイミング発生回路２８の通知を待って、ＰＳ-ｉと対のＣＧ-iのクロック周波数を変更するようクロック周波数設定値出力回路２７に要求する（Ｓ１６０）。これにより、クロック周波数設定値出力回路２７は「設定周波数fi-new」に相当するクロック周波数選択信号をＣＧ-iに出力する（Ｓ１７０）。
【００７５】
「現在周波数fi-now」よりも「設定周波数fi-new」の方が大きくない場合（Ｓ１３０のＮｏ）、順序回路２９は「現在周波数fi-now」の方が「設定周波数fi-new」よりも小さいか否かを判定する（Ｓ１８０）。
「設定周波数fi-new」の方が「現在周波数fi-now」よりも小さい場合（Ｓ１８０のＹｅｓ）、順序回路２９は、電源電圧設定値出力回路２５に電源電圧設定信号を出力するよう要求する（Ｓ１９０）。電源電圧設定値出力回路２５は、クロック周波数−電源電圧テーブル２４を参照して「設定周波数fi-new」に対応する電源電圧を決定し、ＰＳ-ｉに電源電圧設定信号を出力する（Ｓ２００）。
【００７６】
順序回路２９は、タイミング発生回路２８の通知を待つことなく、ＰＳ-ｉと対のＣＧ-iのクロック周波数を変更するようクロック周波数設定値出力回路２７に要求する（Ｓ２１０）。これにより、クロック周波数設定値出力回路２７は「設定周波数fi-new」に相当するクロック周波数選択信号をＣＧ-iに出力する（Ｓ２２０）。
なお、「設定周波数fi-new」の方が「現在周波数fi-now」よりも小さくない場合（Ｓ１７０のＮｏ）、「現在周波数fi-now」と「設定周波数fi-new」が等しいことになるので順序回路２９は何もしない。以上のような処理でＰＥの要求に応じて電源電圧とクロック周波数を制御でき、低消費電力化が可能となる。
【００７７】
図１０は、ＰＥ-ｋを停止させる手順を示すシーケンス図の一例である。
まず、ＰＥ-ｋがＰＥ-１に停止要求を通知する（Ｓ３１０）。ＰＥ-１が停止要求を受け付けると、停止手段１９２は、ＰＥ-ｋが属するグループの全てのＰＥが停止状態になるか否かを判定する（Ｓ３２０）。ＰＥ-ｋがグループ内で作動している最後のＰＥの場合、この判定はＹｅｓとなる。また、例えば、１つのグループの全てのＰＥがいっせいに停止する場合に対応するため、停止手段１９２が所定時間待機して、グループの全てのＰＥから停止要求が通知されるか否かを確認してもよい。
【００７８】
ＰＥ-ｋが属するグループの全てのＰＥが全て停止状態になる場合（Ｓ３３０のＹｅｓ）、停止手段１９２は、ＰＥ-ｋの属するグループにクロックを供給するＣＧ-iの「給電許可」をオフ（Ｎｏ）にするようレジスタ２３を操作する（Ｓ３４０）。
【００７９】
順序回路２９は、レジスタ２３の変更を検出すると、給電許可出力回路２６にＰＥ給電許可信号をオフにするよう要求する（Ｓ３５０）。これにより給電許可出力回路２６はＰＥ給電許可信号をオフにするので、ＰＥ-ｋが属するグループの全てのＰＥに電力が供給されなくなる。
【００８０】
ＰＥ-ｋが属するグループの全てのＰＥが全て停止状態にならない場合（Ｓ３３０のＮｏ）、クロック周波数を決定する上でＰＥ-ｋが要求した要求クロック周波数を考慮する必要がなくなるので、停止手段１９２は、ＰＥ-ｋの属するグループにクロックを供給するＣＧ-iの「設定周波数」のうち、ＰＥ-ｋの要求クロック周波数を除き最も高い要求クロック周波数を「設定周波数fi-new」として特定する（Ｓ３６０）。
【００８１】
停止手段１９２は、「設定周波数fi-new」と「現在周波数fi-now」のどちらが大きいかを比較する（Ｓ３７０）。
【００８２】
「設定周波数fi-new」の方が「現在周波数fi-now」よりも大きい場合（Ｓ３７０のＹｅｓ）、クロック制御手段１９１は、ＣＧ-iのクロック周波数を「設定周波数fi-new」に変更するため、「設定周波数fi-new」として特定したレジスタ２３で最も値が大きい「設定周波数」を同じ値で更新する（Ｓ３８０）。「同じ値」となるのはすでに「設定周波数fi-new」はレジスタ２３に登録されているからである。
【００８３】
順序回路２９は、レジスタ２３の書き込みを検出して、電源電圧設定値出力回路２５に電源電圧設定信号を出力するよう要求する（Ｓ３９０）。電源電圧設定値出力回路２５は、クロック周波数−電源電圧テーブル２４を参照して「設定周波数fi-new」に対応する電源電圧を決定し、ＰＳ-ｉに電源電圧設定信号を出力する（Ｓ４００）。
【００８４】
順序回路２９は、タイミング発生回路２８の通知を待って、ＣＧ-iのクロック周波得得の変更をクロック周波数設定値出力回路２７に要求する（Ｓ４１０）。これにより、クロック周波数設定値出力回路２７は「設定周波数fi-new」に相当するクロック周波数選択信号をＣＧ-iに出力する（Ｓ４２０）。
【００８５】
なお、ステップＳ３７０の判定が「Ｙｅｓ」になることは少なく、「設定周波数fi-new」は「現在周波数fi-now」以下であることが多いと考えられる。
【００８６】
「設定周波数fi-new」の方が「現在周波数fi-now」よりも大きくない場合（Ｓ３７０のＮｏ）、クロック制御手段１９１は、「設定周波数fi-new」の方が「現在周波数fi-now」よりも小さいか否かを判定する（Ｓ４３０）。
【００８７】
「設定周波数fi-new」の方が「現在周波数fi-now」よりも小さい場合（Ｓ４３０のＹｅｓ）、クロック制御手段１９１は、ＣＧ-iのクロック周波数を「設定周波数fi-new」に変更するため、「設定周波数fi-new」として特定したレジスタ２３で最も値が大きい「設定周波数」を同じ値で更新する（Ｓ４４０）。
【００８８】
順序回路２９は、レジスタ２３の変更を検出して、電源電圧設定値出力回路２５に電源電圧設定信号を出力するよう要求する（Ｓ４５０）。電源電圧設定値出力回路２５は、クロック周波数−電源電圧テーブル２４を参照して「設定周波数fi-new」に対応する電源電圧を決定し、ＰＳ-ｉに電源電圧設定信号を出力する（Ｓ４６０）。こうすることで、１つのＰＥが停止要求すれば、消費電力を低減できる可能性が高まる。
【００８９】
順序回路２９は、タイミング発生回路２８の通知を待つことなく、ＣＧ-iのクロック周波得得の変更をクロック周波数設定値出力回路２７に要求する（Ｓ４７０）。これにより、クロック周波数設定値出力回路２７は「設定周波数fi-new」に相当するクロック周波数選択信号をＣＧ-iに出力する（Ｓ４８０）。
【００９０】
図１１は、ＰＥ-ｋを再起動させる手順を示すシーケンス図の一例である。
まず、起動中のＰＥ-ｘやＯＳがＰＥ-１に、あるＰＥ-ｋの再起動要求及び要求クロック周波数ｆｋを通知する（Ｓ５１０）。起動中のＰＥ-ｘやＯＳは、そのグループの負荷が大きくなった場合や何らかのイベントを検出して、ＰＥ-ｋの起動が必要と判断すると１以上のＰＥ-ｋの再起動をＰＥ-１に要求する。ＰＥ-１自身がＰＥ-ｋの再起動の必要性を判定することもできる。また、クロック周波数ｆｋは初期のクロック周波数として予め定めておいてもよい。ＰＥ-１が再起動要求及び要求クロック周波数ｆｋを「設定周波数fi-new」として受け付けると、再起動手段１９３は、ＰＥ-ｋが属するグループに電力を供給するＰＳ-ｉの「給電許可」を確認する（Ｓ５２０）。
【００９１】
ＰＳ-ｉの「給電許可」がオフ（Ｎｏ）になっている場合（Ｓ５３０のＹｅｓ）、再起動手段１９３は、ＰＳ-ｉに給電許可するため、ＰＳ-ｉの「給電許可」をオン（Ｙｅｓ）に設定する（Ｓ５４０）。
【００９２】
順序回路２９は、レジスタ２３の変更を検出して、ＰＳ-ｉにＰＥ給電許可信号を送信するよう、給電許可出力回路２６に要求する（Ｓ５５０）。給電許可出力回路２６は、ＰＳ-ｉにＰＥ給電許可信号を送信する（Ｓ５６０）。これにより、ＰＳ-ｉに接続されたグループに電力が供給される。
【００９３】
また、ＰＳ-ｉの「給電許可」がオフ（Ｎｏ）になっていない場合（Ｓ５３０のＮo）、再起動手段１９３は、ＰＥ-ｋの属するグループのＰＥが要求した要求クロック周波数のうち最も高いクロック周波数を「現在周波数fi-now」として特定する（Ｓ５７０）。
【００９４】
fi-now  ＝  MAX（PE-(k-1)の要求周波数，PE-(k-2)の要求周波数，…，PE-kの要求周波数、…）
すなわち、ＰＥ-ｋが要求した要求周波数を含めて、グループのＰＥのうち最も大きい要求周波数をfi-nowとする。
【００９５】
再起動手段１９３は、「設定周波数fi-new」と「現在周波数fi-now」を比較する（Ｓ５８０）。「設定周波数fi-new」が「現在周波数fi-now」以上の場合（Ｓ５８０のＹｅｓ）、クロック制御手段１９１は、ＣＧ-iのクロック周波数を「設定周波数fi-new」に変更するため、レジスタ２３のＰＥ-ｋの「設定周波数」に「設定周波数fi-new」を書き込む（Ｓ５９０）。
【００９６】
順序回路２９は、レジスタ２３の変更を検出して、電源電圧設定値出力回路２５に電源電圧設定信号を出力するよう要求する（Ｓ６００）。電源電圧設定値出力回路２５は、クロック周波数−電源電圧テーブル２４を参照して「設定周波数fi-new」に対応する電源電圧を決定し、ＰＳ-ｉに電源電圧設定信号を出力する（Ｓ６１０）。
【００９７】
順序回路２９は、タイミング発生回路２８の通知を待って、ＣＧ-iのクロック周波数の変更をクロック周波数設定値出力回路２７に要求する（Ｓ６２０）。これにより、クロック周波数設定値出力回路２７は「設定周波数fi-new」に相当するクロック周波数選択信号をＣＧ-iに出力する（Ｓ６３０）。
【００９８】
次に、順序回路２９は、ＷＵＰ１１にリセットを要求する（Ｓ７００）。ＷＵＰ１１は、ＰＥ-ｋにリセット信号を送信して、ＰＥ-ｋをリセットする（Ｓ７１０）。ＰＥ-ｋは初期化シーケンスを実行する（Ｓ７２０）。
【００９９】
ステップＳ５８０に戻り、「設定周波数fi-new」が「現在周波数fi-now」未満の場合（Ｓ５８０のＮｏ）、クロック制御手段１９１は、ＣＧ-iのクロック周波数を「設定周波数fi-now」に変更する。ＰＥ-ｋの要求クロック周波数をレジスタ２３に書き込む必要があるので、順序回路はレジスタ２３のＰＥ-ｋの「設定周波数」に「設定周波数fi-now」を書き込む（Ｓ６５０）。
ステップＳ６５０の後、図１１にはステップＳ４５０〜Ｓ４８０が記載されているが、Ｓ５９０〜Ｓ６３０は上述した理由により省略してもよい。
【０１００】
次に、順序回路２９は、ＷＵＰ１１にリセットを要求する（Ｓ７００）。ＷＵＰ１１は、ＰＥ-ｋにリセット信号を送信して、ＰＥ-ｋをリセットする（Ｓ７１０）。ＰＥ-ｋは初期化シーケンスを実行する（Ｓ７２０）。以上のような処理により、１つのＰＥが動作を再開した場合、グループ毎に消費電力が最小になるように電源電圧を決定できる。
【０１０１】
次に、図１２は、ＭＰＳ１００の停止シーケンスの一例を示す図である。ＰＥ-１は、ＰＥ２〜ＰＥ-Ｎの動作状態を監視しており、ＰＥ-１は、ＰＥ２〜ＰＥ-Ｎの終了処理の完了を検出する（Ｓ８１０）。監視するのでなく、ＰＥ２〜ＰＥ-ＮがＰＥ-１に終了処理の完了を通知してもよい。
【０１０２】
ＰＥ-１は、ＣＮＴ１４のレジスタ２３の、ＰＥ２〜ＰＥ-Ｎの「給電許可」をオフに設定する（Ｓ８２０）。
【０１０３】
順序回路２９は、レジスタ２３の変更を検出して、給電許可出力回路２６にＰＥ給電許可信号の出力を停止するよう各ＰＳ１７に要求する。これにより、給電許可出力回路２６はＰＥ給電許可信号の出力を停止するので、ＰＳ-２〜ＰＳ-Mのスイッチ３１がオフになり、ＰＳ-２〜ＰＳ-Mがオフになる。
【０１０４】
次に、ＰＥ-１はＷＵＰ１１に電源遮断を要求する（Ｓ８４０）。これにより、ＷＵＰ１１は、システム電源と、各制御ユニット１３、ＯＳＣ１２及びＣＮＴ１４とを遮断する（Ｓ８５０）。これにより、ＭＰＳ１００は「電源給電停止」状態になる。
【０１０５】
＜本実施例のＭＰＳ１００の効果＞
図１３は、本実施例のＭＰＳ１００の効果を説明する図の一例である。図１３では比較のため、図１３（ａ）にＰＳ-２、３がＰＥ-２〜５に供給する初期の電源電圧を、図１３（ｂ）に本実施例の適用後にＰＳ-２、３がＰＥ-２〜５に供給する電源電圧を、それぞれ示す。「Ｈｉｇｈ」「Ｍｉｄｄｌｅ」「Ｌｏｗ」は各ＰＥが要求するクロック周波数に対応する処理能力（電源電圧）を、「電源電圧」は実際にＰＳ-２、３が供給する電源電圧（Ｈ＝「Ｈｉｇｈ」、Ｍ＝「Ｍｉｄｄｌｅ」、Ｌ＝「Ｌｏｗ」）を、「電源回路」はＰＥ-２〜５に電力を供給するＰＳ１７をそれぞれ示す。
【０１０６】
図１３（ａ）では、ＰＥ-２は高処理能力（「Ｈｉｇｈ」）が要求されるタスクを、ＰＥ-３，４は中処理能力（「Ｍｉｄｄｌｅ」）が要求されるタスクを、ＰＥ-５は低処理能力（「Ｌｏｗ」）が要求されるタスクを、それぞれ実行している。また、ＰＥ-２とＰＥ-３はＰＳ-２に接続されており、ＰＥ-４とＰＥ-５はＰＳ-３に接続されている。
【０１０７】
１つのＰＳ１７に接続されている１以上のＰＥに対し、ＰＳ１７は要求される最も高い処理能力を満足するよう電源電圧を供給し、ＣＧ１８は要求される最も高い処理能力を満足するようクロックを供給する。このため、ＰＳ-２は、ＰＥ-２の要求を考慮して「Ｈ」の電源電圧をＰＥ-２とＰＥ-３に供給する。ＰＳ-３は、ＰＥ-４の要求を考慮して「Ｍ」の電源電圧をＰＥ-４とＰＥ-５に供給する。
【０１０８】
次に、図１３（ｂ）に示すように、ＰＥ-２が、低処理能力が要求されるタスクを実行するようになったとする。ＰＳ-２は、ＰＥ-２でなく、最も高い処理能力を必要とするＰＥ-３の要求を考慮して「Ｍ」の電源電圧をＰＥ-２とＰＥ-３に供給する。このように、本実施例のＭＰＳ１００は、グループ内のＰＥが要求する処理能力のうち最も高い処理能力に合わせて、消費電力を柔軟に低減することができる。
【０１０９】
以上のように、本実施例のＭＰＳ１００は、ＰＥの数Ｎより少ないＭ個の制御ユニット１３にて電源電圧とクロック周波数を制御するので、ＰＳ１７やＣＧ１８の数を低減でき、ＭＰＳ１００のコスト増を抑制できる。各ＰＳ１７は、予め決まったＰＥに電力を供給すればよいので、供給電流の変動が少ない。この結果、大きな電流供給容量を求められないので、小型の電圧変換回路３２や出力電圧安定化素子３３を使用して、経済的に1個のＰＳ１７を実現できる。
【実施例２】
【０１１０】
実施例１では、制御ユニット１３とＰＥの関係が固定であったが、本実施例では、制御ユニット１３と各ＰＥの関係を可変にできるＭＰＳ１００について説明する。
【０１１１】
図１４は、本実施例のＭＰＳ１００の概略構成図の一例を示す。図１４において図１と同一部には同一の符号を付しその説明は省略する。本実施例のＭＰＳ１００は、各制御ユニット１３と各ＰＥが、電源・クロック切替回路（以下、ＳＷＭＸという）５０を介して接続されている。
【０１１２】
ＳＷＭＸ５０については後述するが、ＳＷＭＸ５０はＰＳ-１〜ＰＳ-ＭとＰＥ-１〜ＰＥ-Ｎの接続をＰＥ毎に切り替え、ＣＧ-１〜ＣＧ-ＭとＰＥ-１〜ＰＥ-Ｍの接続をＰＥ毎に切り替える、スイッチ回路（電源系統切り替え回路５４、クロック切り替え回路５５）である。但し、Ｍ＜Ｎである。
【０１１３】
ＣＮＴ１４は、ＳＷＭＸ５０を制御して、1対のＰＳ１７とＣＧ１８をＰＥ-１〜ＰＥ-Ｎのいずれか1つ以上に接続させる。理論上は（１つのＰＳ１７の電流供給能力が許容すれば）、1対のＰＳ１７とＣＧ１８がＰＥ-１〜ＰＥ-Ｎの全てと接続されることも可能である。
【０１１４】
ＳＷＭＸ５０は、実施例１ではグループ単位で調整された電源電圧及びクロック周波数を、各ＰＥ毎に制御することができるので、実施例１よりもさらに消費電力を低減できる。すなわち、ＰＳ１７とＰＥの接続が固定だと最も高い電源電圧を必要とするＰＥと同じ電源電圧が同じグループの他のＰＥにも提供されてしまうが、本実施例ではＰＥと、ＰＳ１７及びＣＧ１８の接続を切り替えることができるので、各ＰＥ毎に電源電圧とクロックを詳細に調整でき、より消費電力を低減できる。
【０１１５】
＜ＳＷＭＸ５０＞
図１５は、ＰＳ側のＳＷＭＸ５０の構成（電源系統切り替え回路５４）を模式的に示す図の一例である。ＳＷＭＸ５０はＭ×Ｎ個のスイッチ（p、q）を有する。スイッチ（p、q）が閉じた状態がスイッチ（p、q）のオンを示す。図１５の状態から、ＰＳ-１はＰＥ-１に接続され、ＰＳ-２はＰＥ-２及びＰＥ-３に接続され、ＰＳ-３はＰＥ-４及びＰＥ-５に接続され、ＰＳ-Ｍ-１はＰＥ-Ｎ-７、ＰＥ-Ｎ-６及びＰＥ-Ｎ-５に接続され、ＰＳ-Ｍは、ＰＥ-Ｎ-３、ＰＥ-Ｎ-２、ＰＥ-Ｎ-１及びＰＥ-Ｎに接続されている。
【０１１６】
スイッチ（p、q）よりもＰＥ側には、各ＰＥに専用の出力電圧安定化素子５１が接続されている。出力電圧安定化素子５１は、例えばコンデンサ（電気二重層キャパシターやリチウムイオンキャパシター等）であり、スイッチ（p、q）がオンの間に所定量の電荷を蓄えることができる。この電荷は、ＳＷＭＸ５０がＰＳ１７とＰＥの接続を切り替える際に、ＰＥに供給される電力となる。
【０１１７】
ＰＳ１７とＰＥの接続を切り替える際、ＳＷＭＸ５０はそれまでの接続状態を切断するので、ＰＥに１つのＰＳ１７も接続されない状態が生じる。このため、出力電圧安定化素子５１が、１つのＰＳ１７も接続されない状態のＰＥに電力を供給することで、ＳＷＭＸ５０がＰＳ１７とＰＥの接続を切り替えている間、ＰＥが動作することを可能にしている。
【０１１８】
図１６は、ＣＧ側のＳＷＭＸ５０の構成構成（クロック切り替え回路５５）を模式的に示す図の一例である。ＰＳ１７とＣＧ１８は対なので、ＣG側のＳＷＭＸ５０（クロック切り替え回路５５）もＭ×Ｎ個のスイッチ（p、q）を有する。図１６のＳＷＭＸ５０は図１５の状態と対応している。このため、ＣＧ-１はＰＥ-１に接続され、ＣＧ-２はＰＥ-２及びＰＥ-３に接続され、ＣＧ-３はＰＥ-４及びＰＥ-５に接続され、ＣＧ-Ｍ-１はＰＥ-Ｎ-７、ＰＥ-Ｎ-６及びＰＥ-Ｎ-５に接続され、ＣＧ-Ｍは、ＰＥ-Ｎ-３、ＰＥ-Ｎ-２、ＰＥ-Ｎ-１及びＰＥ-Ｎに接続されている。
【０１１９】
スイッチ（p、q）よりもＰＥ側には、各ＰＥに専用のプルダウン回路５２が接続されてNコイル。プルダウン回路５２は、例えばオンになることで接地されるスイッチ素子をＮ個有する。
ＣＧ１８とＰＥの接続を切り替える際、ＳＷＭＸ５０はそれまでの接続状態を切断し、ＰＥに１つのＣＧ１８も接続されない状態が生じる。この場合、クロック線がフローティングになる。このため、プルダウン回路５２が、１つのＣＧ１８も接続されない状態のＰＥのクロック線をプルダウンすることでＬｏｗ状態を維持し、ＳＷＭＸ５０がＣＧ１８とＰＥの接続を切り替えている間、クロック線がフローティングになることを防止している。
【０１２０】
本実施例では、１つのＰＳ１７が可能な限り負荷が同程度の多くのＰＥに電力を供給することで（対となるＣＧ１８も可能な限り多くのＰＥにクロックを供給することで）、消費電力をより低減できる。
【０１２１】
なお、ＰＥに供給される電源電圧を増大する場合（クロック周波数を増大する場合）、実施例１と同様に、順序回路２９は、原則的に、適切な時間を待つ必要がある。しかし、ＳＷＭＸ５０のスイッチ（p、q）を切り替えるだけでＰＥに供給される電源電圧とクロック周波数を増大できる場合、適切な時間を待つ必要がない。
【０１２２】
＜ＣＮＴ１４＞
図１７は、ＣＮＴ１４の概略構成図の一例を示す。図１７において図２と同一部には同一の符号を付しその説明は省略する。図１７のＣＮＴ１４は、レジスタ２３に「接続ＰＥ」を有する。「接続ＰＥ」は、あるＰＳ１７に接続されているＰＥを示す。実施例１ではＰＳ１７に接続されるＰＥは固定であったため、レジスタ２３に「接続ＰＥ」は不要だった。ＰＳ１７とＰＥの関係は不定なので、例えば、起動直後であれば、ＰＥ-１は予め定められた関係に基づき、各ＰＳ１７の「接続ＰＥ」にデフォルトのＰＥ-２〜Ｎを書き込む。
【０１２３】
また、本実施例のＣＮＴ１４は、スイッチ制御回路３０を有する。スイッチ制御回路３０は、ＳＷＭＸ５０の各スイッチ（ｐ,ｑ）をオン／オフする。例えば、起動直後であれば、「接続ＰＥ」を参照して各スイッチ（ｐ,ｑ）をオン／オフする。
【０１２４】
ＳＷＭＸ５０の切り替え自体はスイッチ制御回路３０が行うが、付随する処理をＰＥ-１が行う。付随する処理を行うＰＥは、任意のＰＥでよいが、ここではＰＥ-１とする。図のＰＥ-１は、ＲＯＭ４２に記憶されたプログラムを実行することで実現される、ソート手段１９４、割り当て手段１９５、電源電圧決定手段１９６及び切り替え判定手段１９７を有する。これらの手段についてはシーケンス図にて説明する。なお、これらの手段をＣＮＴ１４にてハード的又はソフト的に実現してもよい。
【０１２５】
＜シーケンス＞
図１８は、ＰＥ及びＣＮＴ１４によるＳＷＭＸ５０の切り替え処理の手順を示すシーケンス図の一例である。ＳＷＭＸ５０の切り替えにより、ＰＥと制御ユニット１３の接続を、消費電力の面から最適化することができる。
【０１２６】
実施例１と同様に、ＰＥ-ｋがＰＥ-１に所望の要求クロック周波数を通知するか、システムＢｕｓ２０を介してレジスタ２３の「設定周波数」に要求クロック周波数を書き込むと、ＣＮＴ１４はＳＷＭＸ５０の切り替え処理を開始する。
【０１２７】
ＰＥ-１が要求クロック周波数の通知を受け付けると、ソート手段１９４は、ＰＥが要求する処理能力の高い順に「接続ＰＥ」に登録された全てのＰＥをソートする（Ｓ９１０）。要求する処理能力は、要求クロック周波数を通知したＰＥについて要求クロック周波数であり、その他のＰＥについては「設定周波数」である。
【０１２８】
次に、ソート手段１９４は、ＰＳ１７を、ＰＳ１７と対のＣＧ１８のクロック周波数の高い順にソートする（Ｓ９２０）。こうすることで、ＰＥとＰＳ１７がどちらも、要求する処理求能力又は処理能力の高い順にソートされたことになる。
【０１２９】
ＰＥ-１の割り当て手段１９５は、ソート順に、ＰＥをＰＳ１７に割り当てていく（Ｓ９３０）。割り当てる際、１つのＰＳ１７が駆動できるＰＥの個数を考慮することで、要求する処理能力が同程度の複数のＰＥが、１つのＰＳ１７に割り当てられることになる。割り当て手段１９５には、ＰＳ１７毎に１つのＰＳ１７が駆動できるＰＥの個数が登録されている。よって、１つのＰＥのためだけに高い電源電圧や高いクロック周波数を供給する必要がなくなり、より消費電力を低減できる。
【０１３０】
次に、電源電圧決定手段１９６は、各ＰＳ１７の電源電圧を、割り当てられたＰＥのうち要求する処理能力（要求クロック周波数）が最も高いＰＥに着目してＰＳ１７毎に求める（Ｓ９４０）。求め方は、実施例１と同様、クロック周波数−電源電圧テーブル２４を参照する。
【０１３１】
ここで、切り替え判定手段１９７は、ＳＷＭＸ５０のスイッチの切り替えを制御する必要があるか否かを判定する。スイッチを制御する必要が生じるのは、割り当ての結果、１つのＰSに対応付けられていたＰEが、別のＰＳに対応付けられる場合である。スイッチの切り替えには、ＰＳの電源電圧を上げる場合も下げる場合もある。
【０１３２】
切り替え判定手段１９７は、レジスタ２３の「接続ＰＥ」と、各ＰＳ１７に割り当てられた1以上のＰＥを比較して、ＳＷＭＸ５０のスイッチの切り替えを制御する必要があるか否かを判定する。スイッチの切り替え制御する必要がある場合（Ｓ９５０のＹｅｓ）、切り替え判定手段１９７は、切り替え命令をＰＥ毎に生成する（Ｓ９６０）。切り替え命令は、切り替え前後のスイッチの状態と、電源電圧決定手段１９６が決定した各ＰＳ１７の電源電圧である。
例えば、ＰＥ-３について切り替え前のスイッチ（２，３）をオンからオフに、切り替え後にスイッチ（３，３）をオフからオンに、切り替え後の電源回路であるＰＳ-３の電源電圧をＭｉｄｄｌｅに、することを要求する情報が切り替え命令になる。なお、切り替え前後のスイッチの状態又は電源電圧の一方が切り替え命令となることもある。
【０１３３】
順序回路２９は、切り替え命令に従いスイッチ制御回路３０に、電源系統切り替え回路５４及びクロック切り替え回路５５のスイッチ(p,q)のオン／オフを要求する（Ｓ９７０）。これによりスイッチ制御回路３０はスイッチ(p,q)をオン／オフし、必要であれば、順序回路２９は、ＰＳ１７に電源電圧の制御を、ＣＧ１８にクロック周波数の制御を要求する。
以上のようにして、各ＰＳ１７毎に、要求する処理能力が同程度のＰＥを割り当てることができる。
【０１３４】
＜ＳＷＭＸ５０の切り替え＞
図１９は、スイッチの切り替えを説明する図の一例である。図１９（ａ）は、図１３（ａ）に対応する電源系統切り替え回路５４の状態を示す。スイッチを切り替える前（図１３（ａ）では）は、ＰＳ-１とＰＥ-１が接続され、ＰＳ-２とＰＥ-２、ＰＥ-３が接続され、ＰＳ-３とＰＥ-４、ＰＥ-５が接続されている。
【０１３５】
次に、各ＰＥが実行するタスクの処理能力が図２０のようになったとする。すなわち、ＰＥ-２は低処理能力が要求されるタスクを実行するようになった。ＰＥ-３〜ＰＥ-５には変更がない。
【０１３６】
上記のようにＰＥ-１のソート手段１９４は、ＰＥ-２〜ＰＥ-５を要求する処理能力の高い順にソートする。この場合、要求する処理能力の高い順に「ＰＥ-３、ＰＥ-４」「ＰＥ-２、ＰＥ-５」の２つのグループができる。また、ＰＥ-１のソート手段１９４は、ＰＳ-２、ＰＳ-３を現在の（図１３（ａ）の）電源電圧の高い順にソートする。この場合、電源電圧の高い順にＰＳ-２、ＰＳ-３となる。
【０１３７】
ＰＥ-１の割り当て手段１９５は、これらのソート結果を用いて、ＰＳ-２にＰＥ-３，ＰＥ-４を割り当て、ＰＳ-３にＰＥ-２，ＰＥ-５を割り当てる。この割り当て結果を、図１３（ａ）のＰＳ１７と各ＰＥの接続状態と比較すると、ＰＥ-１の切り替え判定手段１９７は電源系統切り替え回路５４のスイッチを切り替える必要があると判定し、切り替え命令を生成する。
【０１３８】
まず、電源電圧について、ＰＥ-１の電源電圧決定手段１９６は、ＰＥ-３とＰＥ-４が要求する処理能力から、クロック周波数−電源電圧テーブル２４を参照して、ＰＳ-２の電源電圧を「Ｈ」から「Ｍ」に下げることができると判定する。同様に、ＰＥ-１は、ＰＥ-２とＰＥ-５が要求する処理能力から、ＰＳ-３の電源電圧を「Ｍ」から「Ｌ」に下げることができると判定する。
【０１３９】
また、スイッチのオン／オフについて、ＰＥ-１の切り替え判定手段１９７は、ＰＥ-２についてＰＳ側の電源系統切り替え回路５４とＣＧ側のクロック切り替え回路５５のスイッチ（２，２）をオフにした後、ＰＳ側の電源系統切り替え回路５４とＣＧ側のクロック切り替え回路５５のスイッチ（３，２）をオンにすると判定する。同様に、ＰＥ-１の切り替え判定手段１９７は、ＰＥ-４についてＰＳ側の電源系統切り替え回路５４とＣＧ側のクロック切り替え回路５５のスイッチ（３，４）をオフにした後、ＰＳ側の電源系統切り替え回路５４とＣＧ側のクロック切り替え回路５５のスイッチ（２，４）をオンにすると判定する。
【０１４０】
したがって、切り替え命令は次のようになり、切り替え判定手段１９７は切り替え命令をＣＮＴ１４に通知する。
「ＰＥ-２について、ＰＳ-３の電源電圧を「Ｌ」、スイッチ（２，２）をオフ、スイッチ（３，２）をオン。」
「ＰＥ-４について、ＰＳ-２の電源電圧を「Ｍ」、スイッチ（３，４）をオフ、スイッチ（２，４）をオン。」
まず、ＰＥ-２について、電源電圧設定値出力回路２５はＰＳ-３の電源電圧を「Ｍ」から「Ｌ」に下げる（図１９（ｂ））。この場合、ＣＮＴ１４は待機する必要がないが、電源電圧を上げる場合はタイミング発生回路２８が適切な待機時間を通知するまで待機する。次に、ＣＮＴ１４のスイッチ制御回路３０は、ＰＳ側の電源系統切り替え回路５４とＣＧ側のクロック切り替え回路５５のスイッチ（２，２）をオフにする（図１９（ｃ））。次に、スイッチ制御回路３０は、ＰＳ側の電源系統切り替え回路５４とＣＧ側のクロック切り替え回路５５のスイッチ（３，２）をオンにする（図１９（ｄ））。ＰＳ側の電源系統切り替え回路５４のスイッチ（２，２）がオフになってから、スイッチ（３，２）がオンになるまでの間、ＰＥ-２は出力電圧安定化素子５１から電力の供給を受け作動できる。
【０１４１】
次に、ＰＥ-４について、電源電圧設定値出力回路２５はＰＳ-２の電源電圧を「Ｈ」から「Ｍ」に下げる（図１９（e））。この場合、ＣＮＴ１４は待機する必要がないが、電源電圧を上げる場合はタイミング発生回路２８が適切な待機時間を通知するまで待機する。次に、ＣＮＴ１４のスイッチ制御回路３０は、ＰＳ側の電源系統切り替え回路５４とＣＧ側のクロック切り替え回路５５のスイッチ（３，４）をオフにする（図１９（ｆ））。次に、電源電圧設定値出力回路２５は、ＰＳ側の電源系統切り替え回路５４とＣＧ側のクロック切り替え回路５５のスイッチ（２，４）をオンにする（図１９（ｇ））。ＰＳ側の電源系統切り替え回路５４のスイッチ（３，４）がオフになってから、スイッチ（２，４）がオンになるまでの間、ＰＥ-４は出力電圧安定化素子５１から電力の供給を受け作動できる。
【０１４２】
なお、図１９の手順は一例であって、全てのＰＳ１７について先に電源電圧を制御してから各スイッチをオン／オフするなど、手順は適宜設計できる。
【０１４３】
＜本実施例のＭＰＳ１００の効果＞
図２０と図１３（ｂ）を比較すると、ＰＥ２〜ＰＥ５が要求する処理能力は同じでも、ＰＳ-２の電源電圧は「M」に、ＰＳ-３の電源電圧は「Ｌ」になっている。したがって、各ＰＥ毎にＰＳ１７との接続を切り替えることで、より低消費電力化が可能であることが分かる。
【実施例３】
【０１４４】
図２１は、本実施例のＭＰＳ１００の概略構成図の一例を示す。本実施例のＭＰＳ１００は、ＳＷＭＸ５０が複数に分割されている（区別する場合、ＳＷＭＸ＋番号で示す）点が実施例２と異なる。図ではＳＷＭＸ２がＰＥ-２〜ＰＥ-５に接続されており、ＳＷＭＸ４がＰＥ-Ｎ-７〜ＰＥ-Ｎに接続されている。ＳＷＭＸ３は図示が省略されている。また、ＳＷＭＸ５０を4個以上に分割してもよい。
【０１４５】
ＳＷＭＸ２，４の動作は実施例２と同様である。ＳＷＭＸ２は、２つの制御ユニット１３とＰＥ-２〜ＰＥ-５の接続をＰＥ単位で切り替えることができ、ＳＷＭＸ４は、２つの制御ユニット１３とＰＥ-Ｎ-７〜ＰＥ-Ｎの接続をＰＥ単位で切り替えることができる。
【０１４６】
ＰＥ-１は、ＳＷＭＸ２とＳＷＭＸ４のそれぞれに対し、ＰＥと制御ユニット１３の接続を最適化する。最適化の手順は実施例２と同様である。
【０１４７】
図２２は、ＳＷＭＸ２及びＳＷＭＸ４の概略構成図の一例を示す。ＳＷＭＸ５０を複数個設けることで、スイッチ(p,q)の数を低減することができる。具体的には、実施例２ではＮ×Ｍ個のスイッチ(p,q)が必要であった。
【０１４８】
ＳＷＭＸ２に接続された制御ユニット１３の数をｍ１，ＰＥの数をｎ１、ＳＷＭＸ４に接続された制御ユニット１３の数をｍ２，ＰＥの数をｎ２、Ｍ＝ｍ１＋ｍ２、Ｎ＝ｎ１＋ｎ２とする（ＳＷＭＸ２とＳＷＭＸ４しかなくＳＷＭＸ３はないものとする。）。この場合、ＳＷＭＸ２の電源系統切り替え回路５４とクロック切り替え回路５５のスイッチ(p,q)の数はそれぞれ「ｍ１×ｎ１」、ＳＷＭＸ４の電源系統切り替え回路５４とクロック切り替え回路５５のスイッチ(p,q)の数はそれぞれ「ｍ２×ｎ２」である。
Ｍ×Ｎ＝（ｍ１＋ｍ２）×（ｎ１＋ｎ２）＞（ｍ１×ｎ１）＋（ｍ２×ｎ２）なので、ＳＷＭＸ２，４のスイッチ(p,q)の数の合計は、ＳＷＭＸが１つの場合よりも必ず少なくなる。例えば、ＳＷＭＸ５０が１つの場合に比べて半分程度にすることができる。
【０１４９】
なお、ＰＥ-１は、ＰＥと制御ユニット１３の組み合わせを全制御ユニット１３から最適なものを決定できなくなるので、消費電力の低減効果は実施例２の方が高い。しかし、１つのＰＳ１７が電源電圧を供給できるＰＥの数が有限であることを考慮すると、スイッチ(p,q)の数が少ないことのコスト低減効果の方が有効な場合がある。よって、実施例２と本実施例の構成は、ＭＰＳ１００のアプリケーションに応じて、電源電圧・クロック周波数の最適化とコストを考慮して適宜選択することができる。
【実施例４】
【０１５０】
実施例２，３では、ＳＷＭＸ５０によりＰＥと制御ユニット１３の接続を消費電力の面から最適化したが、スイッチ(p,q)の切り替えのために出力電圧安定化素子５１が必要であった。本実施例ではこの出力電圧安定化素子５１の数を低減可能なＭＰＳ１００について説明する。
【０１５１】
定常状態において、１つのタスクの処理が終了すると、タスクの終了に対応して別の１個のタスクが開始されると考えると、タスクの終了と開始を行うＰＥは１つで十分である。１個のＰＥのクロック周波数と電源電圧を所望の値に変更する場合でも、他のＰＥが最大限に電源電圧を利用していることがあるため（他のＰＥがＭ個のＰＳ１７に接続されている可能性のあるため）、最大Ｍ個のＰＥの電源系統を変更する必要が生じ得る。
【０１５２】
Ｍ個のＰＥの電源系統を変更する際、変更対象のＰＥに電源を供給し続けなければならない。本実施例では、出力電圧安定化素子切り替え回路５６を新たに設けることで、Ｍ個の出力電圧安定化素子切り替え回路５６だけで、電源系統切り替え回路５４のスイッチ(p,q)の切り替え時に、ＰＥに電源を供給することを可能にする。
【０１５３】
図２３は、本実施例の電源系統切り替え回路５４のＳＷＭＸ５０の概略構成図の一例を示す。このＳＷＭＸ５０は２つのブロックに分かれており、上段のブロックは電源系統切り替え回路５４を示し実施例２と同様である。下段のブロックは、出力電圧安定化素子切り替え回路５６を示し、出力電圧安定化素子切り替え回路５６にはＭ個の出力電圧安定化素子５１が接続されている。すなわち、出力電圧安定化素子５１の数がＮ個からＭ個に少なくなった。
【０１５４】
ここで、電源系統切り替え回路５４と出力電圧安定化素子切り替え回路５６を半導体集積回路（モノリシックＩＣ）で実現する場合、出力電圧安定化素子５１は高容量が要求されるためモノリシックＩＣに内蔵することができず、出力電圧安定化素子５１はＩＣの外付け素子となる。外付け素子をＩＣに接続するためにはＩＣ端子が必要になるが、出力電圧安定化素子５１の数を減らせるので、ＩＣ端子の個数も少なくてもすむ。この結果、出力電圧安定化素子切り替え回路５６の分、スイッチ(p,q)の数が増えても、ＩＣと出力電圧安定化素子５１の価格の総和は出力電圧安定化素子切り替え回路５６がない場合と比べて安価にできる。なお、ＳＷＭＸ５０のうち、クロック切り替え回路５５については図１６と比べて変更がない。
【０１５５】
また、出力電圧安定化素子切り替え回路５６は、図２１のＳＷＭＸ２，４にも適用できる。
図２４（ａ）は、出力電圧安定化素子切り替え回路５６を有するＳＷＭＸ２の概略構成図の一例を示す。図２４（ａ）においても電源系統切り替え回路５４と出力電圧安定化素子切り替え回路５６は１つのＩＣで実現され、出力電圧安定化素子５１はＩＣに外付けされている。
【０１５６】
＜スイッチの状態の遷移＞
図２４（ａ）〜（ｅ）を用いて、出力電圧安定化素子切り替え回路５６の遷移について説明する。すでにＰＥ-１が切り替え命令を生成し、ＣＮＴ１４に通知している状態であるとする。ＣＮＴ１４の順序回路２９は、切り替え命令に基づき、スイッチ制御回路３０に電源系統切り替え回路５４と出力電圧安定化素子切り替え回路５６の切り替えを指示する。
【０１５７】
図示するように、図２４（ａ）の初期状態では、ＰＳ-１がＰＥ-１，ＰＥ-２に、ＰＳ-２がＰＥ-３，ＰＥ-４に、それぞれ電力を供給している。切り替え命令は、ＰＥ-２の電源系統をＰＳ-１からＰＳ-２に、ＰＥ-４の電源系統をＰＳ-２からＰＳ-１に、切り替えるものである。具体的には、ＰＥ-２についてスイッチ（２，２）をオフからオンに、スイッチ（１，２）をオンからオフに、ＰＥ-４についてスイッチ（２，４）をオンからオフに、スイッチ（１，４）をオフからオンに、する命令である。ＰＳ-１〜ＰＳ-４の電源電圧に変更はないものとする。
【０１５８】
ＣＮＴ１４のスイッチ制御回路３０は、切り替え命令に基づき電源系統切り替え回路５４を制御する。定常状態では、出力電圧安定化素子切り替え回路５６と電源系統切り替え回路５４とは同相である。図２４（ａ）の出力電圧安定化素子切り替え回路５６のスイッチ(p,q)の状態により、出力電圧安定化素子Ｃ-１とＣ-２には電荷が蓄積されている。
【０１５９】
（１）図２４（ｂ）に示すように、スイッチ制御回路３０は、まず電力系統を変更しないＰＥ（ここではＰＥ-１，ＰＥ-３）につながる出力電圧安定化素子切り替え回路５６のスイッチ(p,q)をオフにする。図２４（ｂ）では出力電圧安定化素子切り替え回路５６の（１，１）（２，３）がオフになる。（２，１）（１，３）については予めオフである。こうすることで、出力電圧安定化素子Ｃ-１の電荷はＰＥ-２にだけ、出力電圧安定化素子Ｃ-２の電荷はＰＥ-４にだけ供給されるようになる。
【０１６０】
（２）図２４（ｃ）に示すように、スイッチ制御回路３０は、電源系統を切り替えるＰＥ（ここではＰＥ-２，ＰＥ-４）とＰＳ１７とを結ぶ、電源系統切り替え回路５４のスイッチ(p,q)をオフにする。すなわち、スイッチ制御回路３０は、電源系統切り替え回路５４の（１，２）（２，４）をオフにする。
【０１６１】
この状態では、ＰＥ-２にはＰＳ-１から電力が供給されず、ＰＥ-４にはＰＳ-２から電力が供給されないが、出力電圧安定化素子Ｃ-１がＰＥ-２に電力を、出力電圧安定化素子Ｃ-２がＰＥ-４に電力を、それぞれ供給する。
【０１６２】
（３）図２４（ｄ）に示すように、スイッチ制御回路３０は、電源系統を切り替えるＰＥ（ここではＰＥ-２，ＰＥ-４）と、切り替え後のＰＳ１７とを結ぶ、電源系統切り替え回路５４のスイッチ(p,q)をオンにする。すなわち、スイッチ制御回路３０は、電源系統切り替え回路５４の（２，２）（１，４）をオンにする。こうすることで、ＰＥ-１とＰＥ-４にはＰＳ-１から電力が、ＰＥ-２とＰＥ-３にはＰＳ-２から電力が、それぞれ供給される。
【０１６３】
（４）図２４（ｅ）に示すように、スイッチ制御回路３０は、出力電圧安定化素子切り替え回路５６を、電源系統切り替え回路５４と同位相に切り替える。すなわち、スイッチ制御回路３０は、出力電圧安定化素子切り替え回路５６の（１，１）（１，４）（２，２）（２，３）をオンにし、（１，２）（２，４）をオフにする。こうすることで、ＰＥ-１、４に電力を供給するＰＳ-１から出力電圧安定化素子５１のc-1に電荷を蓄積させることができ、ＰＥ-２、３に電力を供給するＰＳ-２から出力電圧安定化素子５１のc-2に電荷を蓄積させることができ、次の切り替えまでに蓄電することができる。
【０１６４】
本実施例のＭＰＳ１００は、実施例２，３の効果に加え、出力電圧安定化素子切り替え回路５６をＳＷＭＸ５０と１チップ化することで、出力電圧安定化素子５１の数を低減できよりコストを低下させることができる。
【符号の説明】
【０１６５】
１１      起動回路（ＷＵＰ）
１２      クロック元発生回路（ＯＳＣ）
１３      制御ユニット
１４      制御回路（ＣＮＴ）
１５      ＲＯＭ
１６      ＲＡＭ
１７      電源回路（ＰＳ）
１８      クロック発生回路（ＣＧ）
１９      プロセッサエレメント（ＰＥ）
２０      システムＢｕｓ
５０      電源・クロック切替回路（ＳＷＭＸ）
５１      出力電圧安定化素子
５２      プルダウン回路
５４      電源系統切り替え回路
５５      クロック切り替え回路
５６      出力電圧安定化素子切り替え回路
１００    マルチプロセッサシステム（ＭＰＳ）
【図１】
2012043254.tif 000003
【図２】
2012043254.tif 000004
【図３】
2012043254.tif 000005
【図４】
2012043254.tif 000006
【図５】
2012043254.tif 000007
【図６】
2012043254.tif 000008
【図７】
2012043254.tif 000009
【図８】
2012043254.tif 000010
【図９】
2012043254.tif 000011
【図１０】
2012043254.tif 000012
【図１１】
2012043254.tif 000013
【図１２】
2012043254.tif 000014
【図１３】
2012043254.tif 000015
【図１４】
2012043254.tif 000016
【図１５】
2012043254.tif 000017
【図１６】
2012043254.tif 000018
【図１７】
2012043254.tif 000019
【図１８】
2012043254.tif 000020
【図１９】
2012043254.tif 000021
【図２０】
2012043254.tif 000022
【図２１】
2012043254.tif 000023
【図２２】
2012043254.tif 000024
【図２３】
2012043254.tif 000025
【図２４】
2012043254.tif 000026