説明

マイクロプロセッサ、電子制御ユニット、電源制御方法

【課題】低消費電力と低コストの両立を図りながら、マルチプロセッサの消費電力を低減できるマイクロプロセッサ、電子制御ユニット及び電源制御方法を提供すること。
【解決手段】 N個のプロセッサ19と、複数のグループに分けられたN個のプロセッサに、グループ毎に共通の電源電圧を供給する電源回路17と、グループ毎に共通のクロック周波数のクロックを供給する、電源回路と対のクロック生成回路18と、プロセッサの負荷に基づき、グループ毎に電源電圧とクロック周波数を制御する制御回路14と、を有し、電源回路17の数の合計がN個より小さいM個であり、電源回路17の数の合計又はクロック生成回路18の数の合計が、N個より小さいM個である、ことを特徴とするマイクロプロセッサ100又はチップセット100を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチプロセッサ系のマイクロプロセッサに関し、特に、消費電力が低減されたマイクロプロセッサ、電子制御ユニット及び電源制御方法に関する。
【背景技術】
【0002】
車両の安全性、快適性及び環境性能等を向上させるために、車両に搭載される車載装置の多くに電子制御が活用されるようになった。一方、燃費の改善や電気自動車の出現により、電子制御を司る電子制御ユニットの消費電力を低減したいとする要求が高まっている。電子制御ユニットの消費電力は、マイコン(マルチプロセッサマイコン、マルチコアマイコン)に搭載されたプロセッサによりその多くが占められる。増大する制御処理を少ない消費電力でカバーするため、複数のプロセッサを搭載したマイコンを電子制御ユニットに応用する検討が進められている。しかし、その応用検討は始まってまだ日が浅く、最適な応用技術はまだ確立されていない。
【0003】
プロセッサの消費電力は、電源電圧の二乗とクロック周波数におおよそ比例する。また、高いクロック周波数でプロセッサを動作させると単位時間当たりの処理量を高めることができるが、クロック周波数に比例して電源電圧を高める必要があり、単位処理量当たりの消費電力は増加してしまう。逆に、低いクロック周波数では、単位時間当たりの処理量は減るがプロセッサの電源電圧を下げることができ、単位処理量当たりの消費電力を低減できる。このように、単位処理量当たりの消費電力を低減するには、クロック周波数を下げるだけでなく、クロック周波数と電源電圧の管理を適切に行うことが重要になる。
【0004】
また、制御処理では処理のデッドラインが厳密に定められており、プロセッサが処理をデッドラインまでに終了しないと、最適な制御に影響を及ぼす可能性がある。このため、制御処理ではデッドラインを守りながらいかに低消費電力にできるかが課題になる。ここで、電子制御ユニットの制御では、プログラムの開発時に処理要求の発生タイミングが正確には分からないことがあり、デッドラインまでに残された処理時間が厳しく制約されるという特徴がある。
【0005】
従来の技術として、プロセッサのクロック周波数は固定しておき、最高処理速度で処理を行い、処理を行う必要のなくなった余裕時間帯でプロセッサを停止させることで消費電力を低減する技術があった(例えば、特許文献1参照。)。特許文献1には、タスクが実行されていない期間にスリープ状態となるプロセッサが開示されている。しかし、高いクロック周波数を使用するこの方法は、同じ処理をデッドライン近くまで低クロック周波数で実行する場合と比べ消費電力を増やしてしまう。
【0006】
このような検討を踏まえると、デッドラインを守りながら必要な処理をいかに低いクロック周波数(つまり低い電源電圧)で実行するかが課題となる。従来の技術に、タイムスロット毎に処理を保証する時間内に終了するクロック周波数を決定して、そのクロックに基づいて電源電圧を決定するパワー制御装置が考案されている(例えば、特許文献2参照。)。しかし、特許文献2ではソフトウェアにより電源電圧を決定するため、スケジューリングを行うことでプロセッサの処理時間を消費してしまう。
【0007】
また、これまでは1つのプロセッサに対しスケジューリングを行えばよかったが、複数のプロセッサに対しスケジューリングを行うことは、スケジューリングの複雑さを増大させてしまう。複数の処理を並行して実行させる制御装置では、これら複数の処理をどの順番で実行させるか、及び、その時のクロック周波数と電源電圧を決定する手順(スケジューリング)が重要となる。処理を実行する順序により、ある一つの処理にかけられる時間が異なるからである。
【0008】
複数個のプロセッサを使えば、処理を個別のプロセッサに振り分けることができ、プロセッサ当たりの処理量が減ることからクロック周波数を下げると共に、電源電圧を下げることで低消費電力化が可能になる(例えば、特許文献3参照。)。特許文献3には、コンパイラにより処理対象となる入力プログラムから自動的に並列性を持つタスクを抽出し、各プロセッサユニットの特性に合わせて当該タスクを配置するマルチプロセッサシステムが開示されている。このマルチプロセッサシステムは、さらにプロセッサユニットの処理量を見積もることで動作周波数や電源電圧を最適化する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2003−271401号公報
【特許文献2】特許3138737号公報
【特許文献3】特開2007−305148号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献3に開示されたマルチプロセッサシステムは、プロセッサ毎に電源とクロック生成回路を備えることを前提としているので、高コストである。低消費電力化という意味で最適にプロセッサを動作させるためには、プロセッサ毎に独立に電源電圧及びクロック周波数を制御することが適当である。しかし、同一の電源電圧・クロック周波数で動作するタスクは同時に複数あることがあり、また、最適条件でなくとも最適に近い条件であれば低消費電力化を図ることが可能である。このため、特許文献3のように、プロセッサの電源電圧・クロック周波数を、プロセッサ毎に個別制御する必要は必ずしもない。
【0011】
すなわち、恒常的な要求として、電子制御ユニットは低価格であることが要求されるが、低消費電力と低価格は必ずしも両立しないので、電源電圧・クロック周波数の最適化とコストの適切なトレードオフ点を探すことが好ましい。
【0012】
また、車両制御では不定期に発生する処理要求をスケジューリングしなければならないという特殊性もある。この点、特許文献3では、コンパイル時にタスクを解析するので、外的要因により負荷が変化する際に対応できない。
【0013】
本発明は、上記課題に鑑み、低消費電力と低コストの両立を図りながら、マルチプロセッサの消費電力を低減できるマイクロプロセッサ、電子制御ユニット及び電源制御方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明は、N個のプロセッサと、複数のグループに分けられたN個のプロセッサに、グループ毎に共通の電源電圧を供給する電源回路と、グループ毎に共通のクロック周波数のクロックを供給する、電源回路と対のクロック生成回路と、プロセッサの負荷に基づき、グループ毎に電源電圧とクロック周波数を制御する制御回路と、を有し、電源回路の数の合計がN個より小さいM個であり、電源回路の数の合計又はクロック生成回路の数の合計が、N個より小さいM個である、ことを特徴とするマイクロプロセッサを提供する。
【発明の効果】
【0015】
低消費電力と低コストの両立を図りながら、マルチプロセッサの消費電力を低減できるマイクロプロセッサ、電子制御ユニット及び電源制御方法を提供することができる。
【図面の簡単な説明】
【0016】
【図1】マルチプロセッサシステムの概略構成図の一例である。
【図2】CNTの概略構成図の一例である。
【図3】PSの概略構成図の一例である。
【図4】CGの概略構成図の一例である。
【図5】PEの概略構成図の一例である。
【図6】WUPの概略構成図の一例である。
【図7】給電ロジック回路が制御する給電ロジックの状態遷移図の一例である。
【図8】MPSの起動シーケンスの一例を示す図である。
【図9】「電源給電」状態のMPSがクロック周波数を変更する手順を示すシーケンス図の一例である。
【図10】PE-kを停止させる手順を示すシーケンス図の一例である。
【図11】PE-kを再起動させる手順を示すシーケンス図の一例である。
【図12】MPSの停止シーケンスの一例を示す図である。
【図13】MPSの効果を説明する図の一例である。
【図14】MPSの概略構成図の一例である(実施例2)。
【図15】PS側のSWMXの構成(電源系統切り替え回路)を模式的に示す図の一例である。
【図16】CG側のSWMXの構成構成(クロック切り替え回路)を模式的に示す図の一例である。
【図17】CNTの概略構成図の一例である。
【図18】PE及びCNTによるSWMXの切り替え処理の手順を示すシーケンス図の一例である。
【図19】電源系統切り替え回路の遷移を説明する図の一例である。
【図20】MPSの効果を説明する図の一例である(実施例2)。
【図21】MPSの概略構成図の一例である(実施例3)。
【図22】SWMX2及びSWMX4の概略構成図の一例である。
【図23】PS側のSWMXの概略構成図の一例である(実施例4)。
【図24】出力電圧安定化素子切り替え回路の遷移を説明する図の一例である。
【発明を実施するための形態】
【0017】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例1】
【0018】
図1は、マルチプロセッサシステム100の概略構成図の一例を示す。まず、概略を説明する。本実施例のマルチプロセッサシステム(以下、MPS100)は、1つ以上のプロセッサエレメント(以下、PE19といい、区別する場合「PE−番号」で示す。なお、PEの符号「19」は以下、省略する。)を含むPEのグループ毎に、電源電圧及びクロック周波数を制御する。すなわち、PEの数をN個、電源電圧及びクロック周波数を制御する制御ユニット13の数をM個とした場合、N>Mである。本実施例ではグループは2つ以上あるとするので、N>M>2である。
【0019】
PEは、同じグループのPEが同程度の負荷となるようにグループ化される。このようなグループ化は、タスクの割り当てやシミュレーションなどにより十分な精度で実現される。同程度の負荷の複数のPEを1つにグループ化することで、N個より少ないM個の各制御ユニット13が、グループのトータルの消費電力が最も少なくなるようにグループ内の各PEの電源電圧とクロック周波数を制御するので、低消費電力と低価格の両立が可能になる。
【0020】
以下、詳細に説明する。各PEは、システムBus20を介して制御回路(以下、CNTという)14、ROM15、RAM16及び起動回路(以下、WUPという)11と接続されている。また、CNT14は、システムBus20を介して、各制御ユニット13と接続されている。
【0021】
制御ユニット13は、電源回路(以下、PSといい、区別する場合「PS−番号」で示す)17とクロック発生回路(以下、CGといい、区別する場合「CG−番号」で示す)18を有する。各PS17は、給電線7を介してWUP11と接続され、各CG18はクロック供給線6を介してクロック元発振回路(以下、OSCという)12と接続されている。
【0022】
また、MPS100は、図示する他、バスブリッジ等を有し、バスブリッジには、他のMPS(車載されると電子制御ユニットと称されることがある)100と通信するための通信コントローラや入出力インタフェースが接続されている。入出力インタフェースには各種のセンサやアクチュエータが接続される。MPS100は、車載装置を制御する電子制御ユニットに好適に適用される。
【0023】
なお、MPS100の構成は、CPUに代表されるプロセッサだけでなくチップセットなどの周辺LSIにも好適に適用される。
【0024】
<CNT14>
図2は、CNT14の概略構成図の一例を示す。CNT14は、バスインタフェース22、レジスタ23、クロック周波数−電源電圧テーブル24、電源電圧設定値出力回路25、給電許可出力回路26、クロック周波数設定値出力回路27、タイミング発生回路28、及び、順序回路29を有する。CNT14は、各PEから通知された要求クロック周波数に基づき、クロック周波数選択信号と電源電圧設定信号、及び、PE給電許可信号を各制御ユニット13に出力する。
【0025】
この要求クロック周波数は、PEが負荷レベルに応じて、直接又はPE-1を介して書き込んだレジスタ23の「設定周波数」である(順序回路29がPEから要求クロック周波数を受信し、レジスタ23に登録してもよい。)。負荷が高ければ又は高くなることが予測されれば、PEは高い要求クロック周波数を書き込み、負荷が低ければ又は低くなることが予測されれば、PEは低い要求クロック周波数を書き込む。
【0026】
レジスタ23は、グループ毎に、「給電許可」、「設定周波数」及び「現在周波数」を記憶する。「給電許可」はグループへの給電が許可されているか否かを示す情報である。各グループの「給電許可」は、特定の起動プロセッサ(本実施例ではPE-1)からの許可により「オン(図ではYes)」になる。
「設定周波数」はPEが要求した要求クロック周波数を示す情報である。「設定周波数」に設定されている複数の値(要求クロック周波数)は、各グループの各PEが最後に書き込んだ要求クロック周波数である。「現在周波数」は、グループに実際に(現在)供給されているクロック周波数を示す情報であり、「設定周波数」のうち最も大きい要求クロック周波数と等しい(又は最も大きい要求クロック周波数に相当する周波数と等しい)。
【0027】
クロック周波数−電源電圧テーブル24は、クロック周波数と電源電圧の対応を示すテーブルである。クロック周波数に比例して大きくなる電源電圧が、各クロック周波数に対応づけて登録されている。登録されるクロック周波数の数はCG18がPEに供給可能なクロック周波数の数に対応していてもよいし、いくつかのクロック周波数を登録しておき、PEに供給されうるクロック周波数は内挿により算出して決定してもよい。
【0028】
給電許可出力回路26は、各制御ユニット13にPE給電許可信号を出力する。PE給電許可信号は、各制御ユニット13に給電を許可する信号である。電源電圧設定値出力回路25は、電源電圧設定信号を各制御ユニット13に出力する。電源電圧設定信号は、各グループに供給される電源電圧を指示する信号であり、クロック周波数−電源電圧テーブル24に基づき決定された値を指示する。クロック周波数設定値出力回路27は、PEが要求した要求クロック周波数に対応するクロック周波数選択信号を各制御ユニット13に出力する。
【0029】
順序回路29について、給電許可出力回路26、電源電圧設定値出力回路25、及び、クロック周波数設定値出力回路27の処理手順を含めて説明する。順序回路29は、タイミング発生回路28が通知するタイミング指示に基づき、CNT14内の各回路(電源電圧設定値出力回路25、給電許可出力回路26、クロック周波数設定値出力回路27)に処理を要求する。すなわち、順序回路29は、CNT14が行うべき処理の手順を制御する。
【0030】
PEが最後に書き込んだ要求クロック周波数が、そのグループの他のPEの要求クロック周波数より高ければ、最後に書き込んだPEの要求クロック周波数にCG18のクロック周波数を上げればよい。しかし、PEが最後に書き込んだ要求クロック周波数より、そのグループの他のPEの要求クロック周波数が高ければ、最後に書き込んだPEの要求クロック周波数に従いCG18のクロック周波数を下げることができない。
【0031】
このため、順序回路29は、レジスタ23に書き込んだPEの要求クロック周波数を含めそのPEが属するグループの全ての「設定周波数」のうち最も大きな「設定周波数」と、レジスタ23の「現在周波数」とを比較し、比較結果に応じてCG18のクロックを制御する。
【0032】
まず、CNT14がCG18のクロック周波数を上げる場合を説明する。順序回路29は、PEがシステムBus20を介して要求クロック周波数をレジスタ23の「設定周波数」に書き込んだことを検出する。順序回路29にとって、要求クロック周波数を書き込んだPEは既知である。
【0033】
順序回路29は、レジスタ23を参照し、レジスタ23に書き込んだPEの要求クロック周波数を含めそのPEが属するグループの全ての「設定周波数」のうち最も大きな「設定周波数」と「現在周波数」の大小を比較する。「設定周波数」と「現在周波数」の大きさが同じ場合、順序回路29は何も行わない。
【0034】
「現在周波数」に対し「設定周波数」の方が大きい場合、順序回路29は、電源電圧設定値出力回路25に電源電圧設定信号の出力を要求する。電源電圧設定値出力回路25は、「設定周波数」に基づきクロック周波数−電源電圧テーブル24から決定した電源電圧を指示する電源電圧設定信号を制御ユニット13に出力する。
【0035】
そして、順序回路29は、タイミング発生回路28が通知する予め定められた時間だけ待機して、クロック周波数設定値出力回路27にクロック周波数選択信号の出力を要求する。待機するのは、クロックに対応した電源電圧が安定して得られるまで時間がかかるためである。要求を受けたクロック周波数設定値出力回路27は、「設定周波数」を表すクロック周波数選択信号を制御ユニット13に出力する。順序回路29は、「現在周波数」を「設定周波数」にて更新する。
【0036】
また、「現在周波数」に対し「設定周波数」の方が小さい場合、順序回路29は、電源電圧設定値出力回路25に電源電圧設定信号の出力を要求する。電源電圧設定値出力回路25は、最も大きな「設定周波数」に基づきクロック周波数−電源電圧テーブル24から決定した電源電圧を指示する電源電圧設定信号を制御ユニット13に出力する。
【0037】
次に、順序回路29は、待機することなく、クロック周波数設定値出力回路27にクロック周波数選択信号の出力を要求する。電源電圧を低下させるのにはほとんど時間がかからないので、順序回路29は待機する必要がない。クロック周波数設定値出力回路27はPEが書き込んだ「設定周波数」を指示するクロック周波数選択信号を出力する。順序回路29は、「現在周波数」を「設定周波数」にて更新する。
【0038】
なお、PE-1は、CNT14と協働して他のPEの電源電圧やクロックを制御する。PE-1は、ROM42に記憶されたプログラムを実行することで実現される、クロック制御手段191、停止手段192及び再起動手段193を有する。これらの手段についてはシーケンス図にて説明する。なお、これらの手段をCNT14にてハード的又はソフト的に実現してもよい。
【0039】
<PS(電源回路)17>
図3は、PS17の概略構成図の一例を示す。PS17は主に、スイッチ31、電圧変換回路32、及び、出力電圧安定化素子33を有する。スイッチ31は、システム電源からの給電をオン/オフする。PS17は、CNT14からPE給電許可信号を受け付けるとスイッチ31をオンにして、CNT14からPE給電許可信号を受け付けなくなるとスイッチ31をオフにする。PE給電許可信号を受け取る毎に、スイッチ31をオン/オフしてもよい。
【0040】
電圧変換回路32は、例えば、車両のバッテリ電圧を電源電圧設定信号の電源電圧に変換するDC・DCコンバータである。DC・DCコンバータとしては、変換効率に優れたスイッチングレギュレータが一般的であるが、リニア方式などどのような方式でもよい。車両のバッテリ電圧は、一般的に12〔V〕程度でありプロセッサの電源電圧は数ボルトなので、電圧変換回路32は主に降圧用の電圧変換回路である。
【0041】
電圧変換回路32は、例えば、電源電圧設定信号に応じてスイッチングのためのPWM信号のデューティ比を切り替え、出力する電圧を調整する。出力電圧安定化素子33は、電圧変換回路32が出力する電圧からリップルを除去する回路で、電圧変換回路32と直列に接続された、例えばコンデンサである。
【0042】
PS17は、1つのグループに1つ設けられている。1つのPEは特定の1つのPS17から電力の供給を受け、グループ内の各PEは同じ電源電圧で作動する。したがって、各PS17の電流供給能力は、そのPS17が電力を供給するグループ内の1以上のPEの消費電力の総和に等しい。また、各PS17の電流供給能力の総和は、全PEの消費電力の総和に等しい。
【0043】
なお、PS17の1つに、起動プロセッサ(PE-1)だけに電力を供給する始動電源回路が1つ設けられる(図1ではPS-1)。PS-2〜PS-Mは、その他の1個以上のPE(PE-2〜PE-N)に電力を供給する。PS17の総数はM個である。
【0044】
<CG(クロック発生回路)18>
図4はCG18の概略構成図の一例を示す。各CG18にはOSC12からOSC発振信号が供給される。OSC12は、システム電源から供給された電力で、固定の高周波のOSC発振信号を出力する水晶振動子を備えた発振回路である。
【0045】
各CG18は分周器35とセレクタ36を有する。分周器35はOSC発振信号を分周し、より低周波数のクロック周波数に変換する。分周器35は、複数種類(n個)の低周波数のクロック周波数を並行的に分周することが可能であり、n個のクロック周波数のそれぞれが、各PEに供給可能な(各PEが「設定周波数」で要求した)クロック周波数に対応する。セレクタ36は、n個のクロック周波数から、クロック周波数選択信号に応じて1つのクロック周波数を選択して1グループの各PEに出力する。システムBus20が非同期バスアーキテクチャを有する場合、分周比をm/n(n>m)としてもよい。
【0046】
1個のCG18は、1個のPS17と対をなしており、対のPS17が電源を供給する各PEにクロックを供給する。1つのPEは特定の1つのCG18からクロックの供給を受け、グループ内の各PEは同じクロックで作動する。各CG18は、対となるPS17がグループの各PEに電力を供給している間だけクロックを供給する。
【0047】
CG18には、特定の起動プロセッサ(PE-1)だけに電力を供給する始動電源回路(図1ではPS-1)と対のクロック発生回路(CG-1)が1個と、その他の1個以上のPE(PE-2〜PE-N)に電力を供給するクロック発生回路(CG-2〜CG-M)がある。CG18の総数はM個である。
【0048】
<PE19>
図5は、PEの概略構成図の一例を示す。各PEは、CPUやCPUコア等、汎用的なプロセッサであるが、DSPやリコンフィギュラブルプロセッサ等でもよい。図5ではCPU型のPEを示す。また、N個のPEは、全てが同一のアーキテクチャのプロセッサでもよいし、異なるアーキテクチャのプロセッサが混在していてもよい。
【0049】
各PEは、グループ毎に共通に同じ制御ユニット13と、電源配線VDD(区別する場合「VDD−番号」で示す)8及びクロック配線CK(区別する場合「CK−番号」で示す)9を介して接続されている。
【0050】
各PEは、ローカルバスに接続されたCPU38、Periph(区別する場合「Periph-番号」で示す)39、ROM42、RAM43及びバスインタフェース41を有する。各PEは、ROM42に記憶されたプログラムを、各PEが有するRAM43を作業メモリとしながら実行する。各PEはMPS100のROM15に記憶されたプログラムを実行することもできる。
【0051】
また、各PEは、ROM42又はROM15に記憶された複数のプログラムをそれぞれ独立に実行してもよいし、1つのプログラムをいくつかのタスクに区分して、各PEがそれぞれのタスクを実行する態様で各PEが協働して1つのプログラムを実行してもよい。この場合、各PEはMPS100のRAM16を介してデータを受け渡す。不図示だが、PE同士を接続する専用線を備えておき、各PEで同期を取ったりデータを受け渡ししたりしてもよい。
【0052】
Periph39は、例えば、割り込みコントローラやタイマである。この他、A/Dコンバータ、汎用I/O、リセット回路等を備えていてもよい。
【0053】
PE内は可変の電源電圧で動作するため、PE側の電圧とシステムBus20側とが異なる電圧レベルとなることがある。このため、バスインタフェース41はレベルシフタ機能を有する。バスインタフェース41は、入力と出力の双方において、システムBus20とPEの電源電圧の電圧レベルの違いに応じてHigh信号の電圧値を補正する。
【0054】
<WUP11>
図6は、WUP11の概略構成図の一例を示す。WUP11は、各PEの起動を制御する回路である。WUP11は、給電ロジック回路45、PE-1リセット回路46、及び、PE-2〜PE-Nリセット回路47を有する。給電ロジック回路45は、MPS100の起動時及び電源遮断時の給電を制御する。PE-1リセット回路46はPE-1をリセットし、PE-2〜PE-Nリセット回路47はPE-2〜PE-Nを個別にリセットする。なお、PE-1リセット回路46とPE-1とは不図示の専用線で、PE-2〜PE-Nリセット回路47とPE-2〜PE-Nとは不図示の専用線で、それぞれ接続されている。
【0055】
起動の手順を説明する。給電ロジック回路45は、車載された他のMPS100、ユーザの操作等により起動信号(例えばパルス状の信号)を受け付けると、各制御ユニット13、OSC12及びCNT14にシステム電源を接続する。この時点では、起動電源回路であるPS-1だけが起動プロセッサPE-1に電力を供給し、PS-1はCG-1に電力を供給する。CG-1は、予め定められた初期のクロック周波数のクロックを生成する。各PS-2〜PS-MはCNT14からPE給電許可信号を受け取っていないので、PS-2〜PS-Mは各PE-2〜PE-Nに電力を供給しない。
【0056】
給電ロジック回路45は、各制御ユニット13、OSC12及びCNT14にシステム電源を接続した後、適切な時間だけ待機した後(電源電圧やクロックが安定した後)、PE-1リセット回路46にPE-1のリセットを要求する。リセットによりPE-1が起動する。
【0057】
起動したPE-1は、後述する手順で各PE-2〜PE-Nに電源電圧・クロック周波数を供給し、PE-2〜PE-Nリセット回路47にPE-2〜PE-Nのリセットを要求する。このようにして、MPS100の各PEが起動する 。
【0058】
また、任意のPE(例えばPE-1)がシステムBus20を介してWUP11に電源遮断指示を送信すると、給電ロジック回路45は、各制御ユニット13、OSC12及びCNT14への給電を停止する。
【0059】
・給電ロジックの状態遷移
図7は、給電ロジック回路45が制御する給電ロジックの状態遷移図の一例を示す。MPS100は3つの状態、(i)「停止」状態、「動作」状態に含まれる(ii)「電源給電停止」状態、(iii)「電源給電」状態、を遷移する。
【0060】
「停止」状態のMPS100がシステム電源を印加されると、MPS100は「動作」状態となる。システム電源は、車両のメインシステムをスタートさせるスタートボタン、イグニッションオン(アクセサリオン)のためのキーシリンダ等がユーザにより操作されるとMPS100に供給可能になる。
【0061】
「動作」状態となった直後、MPS100は「電源給電停止」状態である。上記のように、給電ロジック回路45が起動信号を受け付け各制御ユニット13、OSC12及びCNT14にシステム電源を接続すると「電源給電」状態となる。また、任意のPE(例えばPE-1)がシステムBus20を介してWUP11に電源遮断指示を送信すると、MPS100は「電源給電停止」状態となる。また、車両のメインシステム等が停止すると、MPS100は「停止」状態になる。
【0062】
<シーケンス>
図8は、MPS100の起動シーケンスの一例を示す図である。図8のシーケンス図は、「電源給電停止」状態のMPS100が起動信号を受け付けることでスタートする。
【0063】
給電ロジック回路45は、各制御ユニット13、OSC12及びCNT14にシステム電源を接続する(S10)。これにより、PS-1とCG-1にシステム電源が供給される。
【0064】
CG-1はOSC12からOSC発振信号を受け取り、PS-1から電力の供給を受け、PE-1へのクロックの供給を開始する(S20)。
【0065】
給電ロジック回路45は、クロックが安定したことを検知するか又は予め既知のクロックが安定するタイミングになると、WUP11のPE-1リセット回路46にPE-1のリセットを要求する。これにより、PE-1がリセットされ、PE-1が起動する(S30)。
【0066】
起動したPE-1は初期化シーケンスを実行する(S40)。初期化シーケンスは、例えば、起動用のプログラムをROM42から読み出し、ハードウエアレジスタの初期化、基本アドレスデータ(RAM16、ROM15のアクセス情報)の設定等を行う起動直後のシーケンスである。
【0067】
なお、この次に、PE-1が、起動させる他のPEを選別するステップがあってもよい。この場合、全てのPEを起動する必要がないので、起動時の消費電力を低減できる。
【0068】
次にPE-1は、CNT14のレジスタ23の、PS-1〜PS-Mの「給電許可」をオンに書き込む(S50)。これにより、順序回路29は、給電許可出力回路26にPE給電許可信号を各PS17に出力するよう要求し、電源電圧設定値出力回路25に電源電圧設定信号を出力するよう要求する。この時の電源電圧設定信号は初期の電源電圧であり、予め決まっているか、又は、PE-1が初期のクロック周波数として初期値を「現在周波数」に書き込む。
【0069】
順序回路29は、タイミング発生回路28からの通知を受けることで適切な時間だけ待機した後、予め決まっているクロック周波数、又は、初期のクロック周波数のクロック周波数選択信号をクロック周波数設定値出力回路27に出力するよう要求する。これにより、CG-2〜CG-Mがグループ毎に各PE-2〜PE-Nにクロックを供給する(S60)。
【0070】
次に、給電ロジック回路45は、PE-2〜PE-Nリセット回路47に、PE-2〜PE-Nのリセットを要求する(S70)。これにより、PE-2〜PE-Nがリセットされ、起動する。
【0071】
起動したPE-2〜PE-Nはそれぞれ初期化シーケンスを実行する(S80)。これにより、PE-2〜PE-Nがプログラムを実行可能になる。また、MPS100は「電源給電」状態になる。以降、MPS100は制御処理等を実行する。
【0072】
図9は、「電源給電」状態のMPS100がクロック周波数を変更する手順を示すシーケンス図の一例である。ここでは、各PEがPE-1を介してレジスタ23を操作するものとして説明する。
【0073】
まず、PE-kがPE-1にクロック周波数をfk-newに変更するよう要求する(S110)。PE-1はこの要求を受け付けると、クロック制御手段19は、レジスタ23においてPE-kが属するグループに電力を供給しているPS-iのPE-kの「設定周波数」にfk-newを書き込む。
【0074】
順序回路29は、レジスタ23の変更を検出すると、fk-newを含めPS-iから電力供給されるグループのPEのうち最も高い要求クロック周波数を選択し、それを「設定周波数fi-new」とする。そして、「設定周波数fi-new」と「現在周波数fi-now」のどちらが大きいかを比較する(S120)。
「設定周波数fi-new」の方が「現在周波数fi-now」よりも大きい場合(S130のYes)、順序回路29は電源電圧設定値出力回路25に電源電圧設定信号を出力するよう要求する(S140)。電源電圧設定値出力回路25は、クロック周波数−電源電圧テーブル24を参照して「設定周波数fi-new」に対応する電源電圧を決定し、PS-iに電源電圧設定信号を出力する(S150)。
次に、順序回路29は、タイミング発生回路28の通知を待って、PS-iと対のCG-iのクロック周波数を変更するようクロック周波数設定値出力回路27に要求する(S160)。これにより、クロック周波数設定値出力回路27は「設定周波数fi-new」に相当するクロック周波数選択信号をCG-iに出力する(S170)。
【0075】
「現在周波数fi-now」よりも「設定周波数fi-new」の方が大きくない場合(S130のNo)、順序回路29は「現在周波数fi-now」の方が「設定周波数fi-new」よりも小さいか否かを判定する(S180)。
「設定周波数fi-new」の方が「現在周波数fi-now」よりも小さい場合(S180のYes)、順序回路29は、電源電圧設定値出力回路25に電源電圧設定信号を出力するよう要求する(S190)。電源電圧設定値出力回路25は、クロック周波数−電源電圧テーブル24を参照して「設定周波数fi-new」に対応する電源電圧を決定し、PS-iに電源電圧設定信号を出力する(S200)。
【0076】
順序回路29は、タイミング発生回路28の通知を待つことなく、PS-iと対のCG-iのクロック周波数を変更するようクロック周波数設定値出力回路27に要求する(S210)。これにより、クロック周波数設定値出力回路27は「設定周波数fi-new」に相当するクロック周波数選択信号をCG-iに出力する(S220)。
なお、「設定周波数fi-new」の方が「現在周波数fi-now」よりも小さくない場合(S170のNo)、「現在周波数fi-now」と「設定周波数fi-new」が等しいことになるので順序回路29は何もしない。以上のような処理でPEの要求に応じて電源電圧とクロック周波数を制御でき、低消費電力化が可能となる。
【0077】
図10は、PE-kを停止させる手順を示すシーケンス図の一例である。
まず、PE-kがPE-1に停止要求を通知する(S310)。PE-1が停止要求を受け付けると、停止手段192は、PE-kが属するグループの全てのPEが停止状態になるか否かを判定する(S320)。PE-kがグループ内で作動している最後のPEの場合、この判定はYesとなる。また、例えば、1つのグループの全てのPEがいっせいに停止する場合に対応するため、停止手段192が所定時間待機して、グループの全てのPEから停止要求が通知されるか否かを確認してもよい。
【0078】
PE-kが属するグループの全てのPEが全て停止状態になる場合(S330のYes)、停止手段192は、PE-kの属するグループにクロックを供給するCG-iの「給電許可」をオフ(No)にするようレジスタ23を操作する(S340)。
【0079】
順序回路29は、レジスタ23の変更を検出すると、給電許可出力回路26にPE給電許可信号をオフにするよう要求する(S350)。これにより給電許可出力回路26はPE給電許可信号をオフにするので、PE-kが属するグループの全てのPEに電力が供給されなくなる。
【0080】
PE-kが属するグループの全てのPEが全て停止状態にならない場合(S330のNo)、クロック周波数を決定する上でPE-kが要求した要求クロック周波数を考慮する必要がなくなるので、停止手段192は、PE-kの属するグループにクロックを供給するCG-iの「設定周波数」のうち、PE-kの要求クロック周波数を除き最も高い要求クロック周波数を「設定周波数fi-new」として特定する(S360)。
【0081】
停止手段192は、「設定周波数fi-new」と「現在周波数fi-now」のどちらが大きいかを比較する(S370)。
【0082】
「設定周波数fi-new」の方が「現在周波数fi-now」よりも大きい場合(S370のYes)、クロック制御手段191は、CG-iのクロック周波数を「設定周波数fi-new」に変更するため、「設定周波数fi-new」として特定したレジスタ23で最も値が大きい「設定周波数」を同じ値で更新する(S380)。「同じ値」となるのはすでに「設定周波数fi-new」はレジスタ23に登録されているからである。
【0083】
順序回路29は、レジスタ23の書き込みを検出して、電源電圧設定値出力回路25に電源電圧設定信号を出力するよう要求する(S390)。電源電圧設定値出力回路25は、クロック周波数−電源電圧テーブル24を参照して「設定周波数fi-new」に対応する電源電圧を決定し、PS-iに電源電圧設定信号を出力する(S400)。
【0084】
順序回路29は、タイミング発生回路28の通知を待って、CG-iのクロック周波得得の変更をクロック周波数設定値出力回路27に要求する(S410)。これにより、クロック周波数設定値出力回路27は「設定周波数fi-new」に相当するクロック周波数選択信号をCG-iに出力する(S420)。
【0085】
なお、ステップS370の判定が「Yes」になることは少なく、「設定周波数fi-new」は「現在周波数fi-now」以下であることが多いと考えられる。
【0086】
「設定周波数fi-new」の方が「現在周波数fi-now」よりも大きくない場合(S370のNo)、クロック制御手段191は、「設定周波数fi-new」の方が「現在周波数fi-now」よりも小さいか否かを判定する(S430)。
【0087】
「設定周波数fi-new」の方が「現在周波数fi-now」よりも小さい場合(S430のYes)、クロック制御手段191は、CG-iのクロック周波数を「設定周波数fi-new」に変更するため、「設定周波数fi-new」として特定したレジスタ23で最も値が大きい「設定周波数」を同じ値で更新する(S440)。
【0088】
順序回路29は、レジスタ23の変更を検出して、電源電圧設定値出力回路25に電源電圧設定信号を出力するよう要求する(S450)。電源電圧設定値出力回路25は、クロック周波数−電源電圧テーブル24を参照して「設定周波数fi-new」に対応する電源電圧を決定し、PS-iに電源電圧設定信号を出力する(S460)。こうすることで、1つのPEが停止要求すれば、消費電力を低減できる可能性が高まる。
【0089】
順序回路29は、タイミング発生回路28の通知を待つことなく、CG-iのクロック周波得得の変更をクロック周波数設定値出力回路27に要求する(S470)。これにより、クロック周波数設定値出力回路27は「設定周波数fi-new」に相当するクロック周波数選択信号をCG-iに出力する(S480)。
【0090】
図11は、PE-kを再起動させる手順を示すシーケンス図の一例である。
まず、起動中のPE-xやOSがPE-1に、あるPE-kの再起動要求及び要求クロック周波数fkを通知する(S510)。起動中のPE-xやOSは、そのグループの負荷が大きくなった場合や何らかのイベントを検出して、PE-kの起動が必要と判断すると1以上のPE-kの再起動をPE-1に要求する。PE-1自身がPE-kの再起動の必要性を判定することもできる。また、クロック周波数fkは初期のクロック周波数として予め定めておいてもよい。PE-1が再起動要求及び要求クロック周波数fkを「設定周波数fi-new」として受け付けると、再起動手段193は、PE-kが属するグループに電力を供給するPS-iの「給電許可」を確認する(S520)。
【0091】
PS-iの「給電許可」がオフ(No)になっている場合(S530のYes)、再起動手段193は、PS-iに給電許可するため、PS-iの「給電許可」をオン(Yes)に設定する(S540)。
【0092】
順序回路29は、レジスタ23の変更を検出して、PS-iにPE給電許可信号を送信するよう、給電許可出力回路26に要求する(S550)。給電許可出力回路26は、PS-iにPE給電許可信号を送信する(S560)。これにより、PS-iに接続されたグループに電力が供給される。
【0093】
また、PS-iの「給電許可」がオフ(No)になっていない場合(S530のNo)、再起動手段193は、PE-kの属するグループのPEが要求した要求クロック周波数のうち最も高いクロック周波数を「現在周波数fi-now」として特定する(S570)。
【0094】
fi-now = MAX(PE-(k-1)の要求周波数,PE-(k-2)の要求周波数,…,PE-kの要求周波数、…)
すなわち、PE-kが要求した要求周波数を含めて、グループのPEのうち最も大きい要求周波数をfi-nowとする。
【0095】
再起動手段193は、「設定周波数fi-new」と「現在周波数fi-now」を比較する(S580)。「設定周波数fi-new」が「現在周波数fi-now」以上の場合(S580のYes)、クロック制御手段191は、CG-iのクロック周波数を「設定周波数fi-new」に変更するため、レジスタ23のPE-kの「設定周波数」に「設定周波数fi-new」を書き込む(S590)。
【0096】
順序回路29は、レジスタ23の変更を検出して、電源電圧設定値出力回路25に電源電圧設定信号を出力するよう要求する(S600)。電源電圧設定値出力回路25は、クロック周波数−電源電圧テーブル24を参照して「設定周波数fi-new」に対応する電源電圧を決定し、PS-iに電源電圧設定信号を出力する(S610)。
【0097】
順序回路29は、タイミング発生回路28の通知を待って、CG-iのクロック周波数の変更をクロック周波数設定値出力回路27に要求する(S620)。これにより、クロック周波数設定値出力回路27は「設定周波数fi-new」に相当するクロック周波数選択信号をCG-iに出力する(S630)。
【0098】
次に、順序回路29は、WUP11にリセットを要求する(S700)。WUP11は、PE-kにリセット信号を送信して、PE-kをリセットする(S710)。PE-kは初期化シーケンスを実行する(S720)。
【0099】
ステップS580に戻り、「設定周波数fi-new」が「現在周波数fi-now」未満の場合(S580のNo)、クロック制御手段191は、CG-iのクロック周波数を「設定周波数fi-now」に変更する。PE-kの要求クロック周波数をレジスタ23に書き込む必要があるので、順序回路はレジスタ23のPE-kの「設定周波数」に「設定周波数fi-now」を書き込む(S650)。
ステップS650の後、図11にはステップS450〜S480が記載されているが、S590〜S630は上述した理由により省略してもよい。
【0100】
次に、順序回路29は、WUP11にリセットを要求する(S700)。WUP11は、PE-kにリセット信号を送信して、PE-kをリセットする(S710)。PE-kは初期化シーケンスを実行する(S720)。以上のような処理により、1つのPEが動作を再開した場合、グループ毎に消費電力が最小になるように電源電圧を決定できる。
【0101】
次に、図12は、MPS100の停止シーケンスの一例を示す図である。PE-1は、PE2〜PE-Nの動作状態を監視しており、PE-1は、PE2〜PE-Nの終了処理の完了を検出する(S810)。監視するのでなく、PE2〜PE-NがPE-1に終了処理の完了を通知してもよい。
【0102】
PE-1は、CNT14のレジスタ23の、PE2〜PE-Nの「給電許可」をオフに設定する(S820)。
【0103】
順序回路29は、レジスタ23の変更を検出して、給電許可出力回路26にPE給電許可信号の出力を停止するよう各PS17に要求する。これにより、給電許可出力回路26はPE給電許可信号の出力を停止するので、PS-2〜PS-Mのスイッチ31がオフになり、PS-2〜PS-Mがオフになる。
【0104】
次に、PE-1はWUP11に電源遮断を要求する(S840)。これにより、WUP11は、システム電源と、各制御ユニット13、OSC12及びCNT14とを遮断する(S850)。これにより、MPS100は「電源給電停止」状態になる。
【0105】
<本実施例のMPS100の効果>
図13は、本実施例のMPS100の効果を説明する図の一例である。図13では比較のため、図13(a)にPS-2、3がPE-2〜5に供給する初期の電源電圧を、図13(b)に本実施例の適用後にPS-2、3がPE-2〜5に供給する電源電圧を、それぞれ示す。「High」「Middle」「Low」は各PEが要求するクロック周波数に対応する処理能力(電源電圧)を、「電源電圧」は実際にPS-2、3が供給する電源電圧(H=「High」、M=「Middle」、L=「Low」)を、「電源回路」はPE-2〜5に電力を供給するPS17をそれぞれ示す。
【0106】
図13(a)では、PE-2は高処理能力(「High」)が要求されるタスクを、PE-3,4は中処理能力(「Middle」)が要求されるタスクを、PE-5は低処理能力(「Low」)が要求されるタスクを、それぞれ実行している。また、PE-2とPE-3はPS-2に接続されており、PE-4とPE-5はPS-3に接続されている。
【0107】
1つのPS17に接続されている1以上のPEに対し、PS17は要求される最も高い処理能力を満足するよう電源電圧を供給し、CG18は要求される最も高い処理能力を満足するようクロックを供給する。このため、PS-2は、PE-2の要求を考慮して「H」の電源電圧をPE-2とPE-3に供給する。PS-3は、PE-4の要求を考慮して「M」の電源電圧をPE-4とPE-5に供給する。
【0108】
次に、図13(b)に示すように、PE-2が、低処理能力が要求されるタスクを実行するようになったとする。PS-2は、PE-2でなく、最も高い処理能力を必要とするPE-3の要求を考慮して「M」の電源電圧をPE-2とPE-3に供給する。このように、本実施例のMPS100は、グループ内のPEが要求する処理能力のうち最も高い処理能力に合わせて、消費電力を柔軟に低減することができる。
【0109】
以上のように、本実施例のMPS100は、PEの数Nより少ないM個の制御ユニット13にて電源電圧とクロック周波数を制御するので、PS17やCG18の数を低減でき、MPS100のコスト増を抑制できる。各PS17は、予め決まったPEに電力を供給すればよいので、供給電流の変動が少ない。この結果、大きな電流供給容量を求められないので、小型の電圧変換回路32や出力電圧安定化素子33を使用して、経済的に1個のPS17を実現できる。
【実施例2】
【0110】
実施例1では、制御ユニット13とPEの関係が固定であったが、本実施例では、制御ユニット13と各PEの関係を可変にできるMPS100について説明する。
【0111】
図14は、本実施例のMPS100の概略構成図の一例を示す。図14において図1と同一部には同一の符号を付しその説明は省略する。本実施例のMPS100は、各制御ユニット13と各PEが、電源・クロック切替回路(以下、SWMXという)50を介して接続されている。
【0112】
SWMX50については後述するが、SWMX50はPS-1〜PS-MとPE-1〜PE-Nの接続をPE毎に切り替え、CG-1〜CG-MとPE-1〜PE-Mの接続をPE毎に切り替える、スイッチ回路(電源系統切り替え回路54、クロック切り替え回路55)である。但し、M<Nである。
【0113】
CNT14は、SWMX50を制御して、1対のPS17とCG18をPE-1〜PE-Nのいずれか1つ以上に接続させる。理論上は(1つのPS17の電流供給能力が許容すれば)、1対のPS17とCG18がPE-1〜PE-Nの全てと接続されることも可能である。
【0114】
SWMX50は、実施例1ではグループ単位で調整された電源電圧及びクロック周波数を、各PE毎に制御することができるので、実施例1よりもさらに消費電力を低減できる。すなわち、PS17とPEの接続が固定だと最も高い電源電圧を必要とするPEと同じ電源電圧が同じグループの他のPEにも提供されてしまうが、本実施例ではPEと、PS17及びCG18の接続を切り替えることができるので、各PE毎に電源電圧とクロックを詳細に調整でき、より消費電力を低減できる。
【0115】
<SWMX50>
図15は、PS側のSWMX50の構成(電源系統切り替え回路54)を模式的に示す図の一例である。SWMX50はM×N個のスイッチ(p、q)を有する。スイッチ(p、q)が閉じた状態がスイッチ(p、q)のオンを示す。図15の状態から、PS-1はPE-1に接続され、PS-2はPE-2及びPE-3に接続され、PS-3はPE-4及びPE-5に接続され、PS-M-1はPE-N-7、PE-N-6及びPE-N-5に接続され、PS-Mは、PE-N-3、PE-N-2、PE-N-1及びPE-Nに接続されている。
【0116】
スイッチ(p、q)よりもPE側には、各PEに専用の出力電圧安定化素子51が接続されている。出力電圧安定化素子51は、例えばコンデンサ(電気二重層キャパシターやリチウムイオンキャパシター等)であり、スイッチ(p、q)がオンの間に所定量の電荷を蓄えることができる。この電荷は、SWMX50がPS17とPEの接続を切り替える際に、PEに供給される電力となる。
【0117】
PS17とPEの接続を切り替える際、SWMX50はそれまでの接続状態を切断するので、PEに1つのPS17も接続されない状態が生じる。このため、出力電圧安定化素子51が、1つのPS17も接続されない状態のPEに電力を供給することで、SWMX50がPS17とPEの接続を切り替えている間、PEが動作することを可能にしている。
【0118】
図16は、CG側のSWMX50の構成構成(クロック切り替え回路55)を模式的に示す図の一例である。PS17とCG18は対なので、CG側のSWMX50(クロック切り替え回路55)もM×N個のスイッチ(p、q)を有する。図16のSWMX50は図15の状態と対応している。このため、CG-1はPE-1に接続され、CG-2はPE-2及びPE-3に接続され、CG-3はPE-4及びPE-5に接続され、CG-M-1はPE-N-7、PE-N-6及びPE-N-5に接続され、CG-Mは、PE-N-3、PE-N-2、PE-N-1及びPE-Nに接続されている。
【0119】
スイッチ(p、q)よりもPE側には、各PEに専用のプルダウン回路52が接続されてNコイル。プルダウン回路52は、例えばオンになることで接地されるスイッチ素子をN個有する。
CG18とPEの接続を切り替える際、SWMX50はそれまでの接続状態を切断し、PEに1つのCG18も接続されない状態が生じる。この場合、クロック線がフローティングになる。このため、プルダウン回路52が、1つのCG18も接続されない状態のPEのクロック線をプルダウンすることでLow状態を維持し、SWMX50がCG18とPEの接続を切り替えている間、クロック線がフローティングになることを防止している。
【0120】
本実施例では、1つのPS17が可能な限り負荷が同程度の多くのPEに電力を供給することで(対となるCG18も可能な限り多くのPEにクロックを供給することで)、消費電力をより低減できる。
【0121】
なお、PEに供給される電源電圧を増大する場合(クロック周波数を増大する場合)、実施例1と同様に、順序回路29は、原則的に、適切な時間を待つ必要がある。しかし、SWMX50のスイッチ(p、q)を切り替えるだけでPEに供給される電源電圧とクロック周波数を増大できる場合、適切な時間を待つ必要がない。
【0122】
<CNT14>
図17は、CNT14の概略構成図の一例を示す。図17において図2と同一部には同一の符号を付しその説明は省略する。図17のCNT14は、レジスタ23に「接続PE」を有する。「接続PE」は、あるPS17に接続されているPEを示す。実施例1ではPS17に接続されるPEは固定であったため、レジスタ23に「接続PE」は不要だった。PS17とPEの関係は不定なので、例えば、起動直後であれば、PE-1は予め定められた関係に基づき、各PS17の「接続PE」にデフォルトのPE-2〜Nを書き込む。
【0123】
また、本実施例のCNT14は、スイッチ制御回路30を有する。スイッチ制御回路30は、SWMX50の各スイッチ(p,q)をオン/オフする。例えば、起動直後であれば、「接続PE」を参照して各スイッチ(p,q)をオン/オフする。
【0124】
SWMX50の切り替え自体はスイッチ制御回路30が行うが、付随する処理をPE-1が行う。付随する処理を行うPEは、任意のPEでよいが、ここではPE-1とする。図のPE-1は、ROM42に記憶されたプログラムを実行することで実現される、ソート手段194、割り当て手段195、電源電圧決定手段196及び切り替え判定手段197を有する。これらの手段についてはシーケンス図にて説明する。なお、これらの手段をCNT14にてハード的又はソフト的に実現してもよい。
【0125】
<シーケンス>
図18は、PE及びCNT14によるSWMX50の切り替え処理の手順を示すシーケンス図の一例である。SWMX50の切り替えにより、PEと制御ユニット13の接続を、消費電力の面から最適化することができる。
【0126】
実施例1と同様に、PE-kがPE-1に所望の要求クロック周波数を通知するか、システムBus20を介してレジスタ23の「設定周波数」に要求クロック周波数を書き込むと、CNT14はSWMX50の切り替え処理を開始する。
【0127】
PE-1が要求クロック周波数の通知を受け付けると、ソート手段194は、PEが要求する処理能力の高い順に「接続PE」に登録された全てのPEをソートする(S910)。要求する処理能力は、要求クロック周波数を通知したPEについて要求クロック周波数であり、その他のPEについては「設定周波数」である。
【0128】
次に、ソート手段194は、PS17を、PS17と対のCG18のクロック周波数の高い順にソートする(S920)。こうすることで、PEとPS17がどちらも、要求する処理求能力又は処理能力の高い順にソートされたことになる。
【0129】
PE-1の割り当て手段195は、ソート順に、PEをPS17に割り当てていく(S930)。割り当てる際、1つのPS17が駆動できるPEの個数を考慮することで、要求する処理能力が同程度の複数のPEが、1つのPS17に割り当てられることになる。割り当て手段195には、PS17毎に1つのPS17が駆動できるPEの個数が登録されている。よって、1つのPEのためだけに高い電源電圧や高いクロック周波数を供給する必要がなくなり、より消費電力を低減できる。
【0130】
次に、電源電圧決定手段196は、各PS17の電源電圧を、割り当てられたPEのうち要求する処理能力(要求クロック周波数)が最も高いPEに着目してPS17毎に求める(S940)。求め方は、実施例1と同様、クロック周波数−電源電圧テーブル24を参照する。
【0131】
ここで、切り替え判定手段197は、SWMX50のスイッチの切り替えを制御する必要があるか否かを判定する。スイッチを制御する必要が生じるのは、割り当ての結果、1つのPSに対応付けられていたPEが、別のPSに対応付けられる場合である。スイッチの切り替えには、PSの電源電圧を上げる場合も下げる場合もある。
【0132】
切り替え判定手段197は、レジスタ23の「接続PE」と、各PS17に割り当てられた1以上のPEを比較して、SWMX50のスイッチの切り替えを制御する必要があるか否かを判定する。スイッチの切り替え制御する必要がある場合(S950のYes)、切り替え判定手段197は、切り替え命令をPE毎に生成する(S960)。切り替え命令は、切り替え前後のスイッチの状態と、電源電圧決定手段196が決定した各PS17の電源電圧である。
例えば、PE-3について切り替え前のスイッチ(2,3)をオンからオフに、切り替え後にスイッチ(3,3)をオフからオンに、切り替え後の電源回路であるPS-3の電源電圧をMiddleに、することを要求する情報が切り替え命令になる。なお、切り替え前後のスイッチの状態又は電源電圧の一方が切り替え命令となることもある。
【0133】
順序回路29は、切り替え命令に従いスイッチ制御回路30に、電源系統切り替え回路54及びクロック切り替え回路55のスイッチ(p,q)のオン/オフを要求する(S970)。これによりスイッチ制御回路30はスイッチ(p,q)をオン/オフし、必要であれば、順序回路29は、PS17に電源電圧の制御を、CG18にクロック周波数の制御を要求する。
以上のようにして、各PS17毎に、要求する処理能力が同程度のPEを割り当てることができる。
【0134】
<SWMX50の切り替え>
図19は、スイッチの切り替えを説明する図の一例である。図19(a)は、図13(a)に対応する電源系統切り替え回路54の状態を示す。スイッチを切り替える前(図13(a)では)は、PS-1とPE-1が接続され、PS-2とPE-2、PE-3が接続され、PS-3とPE-4、PE-5が接続されている。
【0135】
次に、各PEが実行するタスクの処理能力が図20のようになったとする。すなわち、PE-2は低処理能力が要求されるタスクを実行するようになった。PE-3〜PE-5には変更がない。
【0136】
上記のようにPE-1のソート手段194は、PE-2〜PE-5を要求する処理能力の高い順にソートする。この場合、要求する処理能力の高い順に「PE-3、PE-4」「PE-2、PE-5」の2つのグループができる。また、PE-1のソート手段194は、PS-2、PS-3を現在の(図13(a)の)電源電圧の高い順にソートする。この場合、電源電圧の高い順にPS-2、PS-3となる。
【0137】
PE-1の割り当て手段195は、これらのソート結果を用いて、PS-2にPE-3,PE-4を割り当て、PS-3にPE-2,PE-5を割り当てる。この割り当て結果を、図13(a)のPS17と各PEの接続状態と比較すると、PE-1の切り替え判定手段197は電源系統切り替え回路54のスイッチを切り替える必要があると判定し、切り替え命令を生成する。
【0138】
まず、電源電圧について、PE-1の電源電圧決定手段196は、PE-3とPE-4が要求する処理能力から、クロック周波数−電源電圧テーブル24を参照して、PS-2の電源電圧を「H」から「M」に下げることができると判定する。同様に、PE-1は、PE-2とPE-5が要求する処理能力から、PS-3の電源電圧を「M」から「L」に下げることができると判定する。
【0139】
また、スイッチのオン/オフについて、PE-1の切り替え判定手段197は、PE-2についてPS側の電源系統切り替え回路54とCG側のクロック切り替え回路55のスイッチ(2,2)をオフにした後、PS側の電源系統切り替え回路54とCG側のクロック切り替え回路55のスイッチ(3,2)をオンにすると判定する。同様に、PE-1の切り替え判定手段197は、PE-4についてPS側の電源系統切り替え回路54とCG側のクロック切り替え回路55のスイッチ(3,4)をオフにした後、PS側の電源系統切り替え回路54とCG側のクロック切り替え回路55のスイッチ(2,4)をオンにすると判定する。
【0140】
したがって、切り替え命令は次のようになり、切り替え判定手段197は切り替え命令をCNT14に通知する。
「PE-2について、PS-3の電源電圧を「L」、スイッチ(2,2)をオフ、スイッチ(3,2)をオン。」
「PE-4について、PS-2の電源電圧を「M」、スイッチ(3,4)をオフ、スイッチ(2,4)をオン。」
まず、PE-2について、電源電圧設定値出力回路25はPS-3の電源電圧を「M」から「L」に下げる(図19(b))。この場合、CNT14は待機する必要がないが、電源電圧を上げる場合はタイミング発生回路28が適切な待機時間を通知するまで待機する。次に、CNT14のスイッチ制御回路30は、PS側の電源系統切り替え回路54とCG側のクロック切り替え回路55のスイッチ(2,2)をオフにする(図19(c))。次に、スイッチ制御回路30は、PS側の電源系統切り替え回路54とCG側のクロック切り替え回路55のスイッチ(3,2)をオンにする(図19(d))。PS側の電源系統切り替え回路54のスイッチ(2,2)がオフになってから、スイッチ(3,2)がオンになるまでの間、PE-2は出力電圧安定化素子51から電力の供給を受け作動できる。
【0141】
次に、PE-4について、電源電圧設定値出力回路25はPS-2の電源電圧を「H」から「M」に下げる(図19(e))。この場合、CNT14は待機する必要がないが、電源電圧を上げる場合はタイミング発生回路28が適切な待機時間を通知するまで待機する。次に、CNT14のスイッチ制御回路30は、PS側の電源系統切り替え回路54とCG側のクロック切り替え回路55のスイッチ(3,4)をオフにする(図19(f))。次に、電源電圧設定値出力回路25は、PS側の電源系統切り替え回路54とCG側のクロック切り替え回路55のスイッチ(2,4)をオンにする(図19(g))。PS側の電源系統切り替え回路54のスイッチ(3,4)がオフになってから、スイッチ(2,4)がオンになるまでの間、PE-4は出力電圧安定化素子51から電力の供給を受け作動できる。
【0142】
なお、図19の手順は一例であって、全てのPS17について先に電源電圧を制御してから各スイッチをオン/オフするなど、手順は適宜設計できる。
【0143】
<本実施例のMPS100の効果>
図20と図13(b)を比較すると、PE2〜PE5が要求する処理能力は同じでも、PS-2の電源電圧は「M」に、PS-3の電源電圧は「L」になっている。したがって、各PE毎にPS17との接続を切り替えることで、より低消費電力化が可能であることが分かる。
【実施例3】
【0144】
図21は、本実施例のMPS100の概略構成図の一例を示す。本実施例のMPS100は、SWMX50が複数に分割されている(区別する場合、SWMX+番号で示す)点が実施例2と異なる。図ではSWMX2がPE-2〜PE-5に接続されており、SWMX4がPE-N-7〜PE-Nに接続されている。SWMX3は図示が省略されている。また、SWMX50を4個以上に分割してもよい。
【0145】
SWMX2,4の動作は実施例2と同様である。SWMX2は、2つの制御ユニット13とPE-2〜PE-5の接続をPE単位で切り替えることができ、SWMX4は、2つの制御ユニット13とPE-N-7〜PE-Nの接続をPE単位で切り替えることができる。
【0146】
PE-1は、SWMX2とSWMX4のそれぞれに対し、PEと制御ユニット13の接続を最適化する。最適化の手順は実施例2と同様である。
【0147】
図22は、SWMX2及びSWMX4の概略構成図の一例を示す。SWMX50を複数個設けることで、スイッチ(p,q)の数を低減することができる。具体的には、実施例2ではN×M個のスイッチ(p,q)が必要であった。
【0148】
SWMX2に接続された制御ユニット13の数をm1,PEの数をn1、SWMX4に接続された制御ユニット13の数をm2,PEの数をn2、M=m1+m2、N=n1+n2とする(SWMX2とSWMX4しかなくSWMX3はないものとする。)。この場合、SWMX2の電源系統切り替え回路54とクロック切り替え回路55のスイッチ(p,q)の数はそれぞれ「m1×n1」、SWMX4の電源系統切り替え回路54とクロック切り替え回路55のスイッチ(p,q)の数はそれぞれ「m2×n2」である。
M×N=(m1+m2)×(n1+n2)>(m1×n1)+(m2×n2)なので、SWMX2,4のスイッチ(p,q)の数の合計は、SWMXが1つの場合よりも必ず少なくなる。例えば、SWMX50が1つの場合に比べて半分程度にすることができる。
【0149】
なお、PE-1は、PEと制御ユニット13の組み合わせを全制御ユニット13から最適なものを決定できなくなるので、消費電力の低減効果は実施例2の方が高い。しかし、1つのPS17が電源電圧を供給できるPEの数が有限であることを考慮すると、スイッチ(p,q)の数が少ないことのコスト低減効果の方が有効な場合がある。よって、実施例2と本実施例の構成は、MPS100のアプリケーションに応じて、電源電圧・クロック周波数の最適化とコストを考慮して適宜選択することができる。
【実施例4】
【0150】
実施例2,3では、SWMX50によりPEと制御ユニット13の接続を消費電力の面から最適化したが、スイッチ(p,q)の切り替えのために出力電圧安定化素子51が必要であった。本実施例ではこの出力電圧安定化素子51の数を低減可能なMPS100について説明する。
【0151】
定常状態において、1つのタスクの処理が終了すると、タスクの終了に対応して別の1個のタスクが開始されると考えると、タスクの終了と開始を行うPEは1つで十分である。1個のPEのクロック周波数と電源電圧を所望の値に変更する場合でも、他のPEが最大限に電源電圧を利用していることがあるため(他のPEがM個のPS17に接続されている可能性のあるため)、最大M個のPEの電源系統を変更する必要が生じ得る。
【0152】
M個のPEの電源系統を変更する際、変更対象のPEに電源を供給し続けなければならない。本実施例では、出力電圧安定化素子切り替え回路56を新たに設けることで、M個の出力電圧安定化素子切り替え回路56だけで、電源系統切り替え回路54のスイッチ(p,q)の切り替え時に、PEに電源を供給することを可能にする。
【0153】
図23は、本実施例の電源系統切り替え回路54のSWMX50の概略構成図の一例を示す。このSWMX50は2つのブロックに分かれており、上段のブロックは電源系統切り替え回路54を示し実施例2と同様である。下段のブロックは、出力電圧安定化素子切り替え回路56を示し、出力電圧安定化素子切り替え回路56にはM個の出力電圧安定化素子51が接続されている。すなわち、出力電圧安定化素子51の数がN個からM個に少なくなった。
【0154】
ここで、電源系統切り替え回路54と出力電圧安定化素子切り替え回路56を半導体集積回路(モノリシックIC)で実現する場合、出力電圧安定化素子51は高容量が要求されるためモノリシックICに内蔵することができず、出力電圧安定化素子51はICの外付け素子となる。外付け素子をICに接続するためにはIC端子が必要になるが、出力電圧安定化素子51の数を減らせるので、IC端子の個数も少なくてもすむ。この結果、出力電圧安定化素子切り替え回路56の分、スイッチ(p,q)の数が増えても、ICと出力電圧安定化素子51の価格の総和は出力電圧安定化素子切り替え回路56がない場合と比べて安価にできる。なお、SWMX50のうち、クロック切り替え回路55については図16と比べて変更がない。
【0155】
また、出力電圧安定化素子切り替え回路56は、図21のSWMX2,4にも適用できる。
図24(a)は、出力電圧安定化素子切り替え回路56を有するSWMX2の概略構成図の一例を示す。図24(a)においても電源系統切り替え回路54と出力電圧安定化素子切り替え回路56は1つのICで実現され、出力電圧安定化素子51はICに外付けされている。
【0156】
<スイッチの状態の遷移>
図24(a)〜(e)を用いて、出力電圧安定化素子切り替え回路56の遷移について説明する。すでにPE-1が切り替え命令を生成し、CNT14に通知している状態であるとする。CNT14の順序回路29は、切り替え命令に基づき、スイッチ制御回路30に電源系統切り替え回路54と出力電圧安定化素子切り替え回路56の切り替えを指示する。
【0157】
図示するように、図24(a)の初期状態では、PS-1がPE-1,PE-2に、PS-2がPE-3,PE-4に、それぞれ電力を供給している。切り替え命令は、PE-2の電源系統をPS-1からPS-2に、PE-4の電源系統をPS-2からPS-1に、切り替えるものである。具体的には、PE-2についてスイッチ(2,2)をオフからオンに、スイッチ(1,2)をオンからオフに、PE-4についてスイッチ(2,4)をオンからオフに、スイッチ(1,4)をオフからオンに、する命令である。PS-1〜PS-4の電源電圧に変更はないものとする。
【0158】
CNT14のスイッチ制御回路30は、切り替え命令に基づき電源系統切り替え回路54を制御する。定常状態では、出力電圧安定化素子切り替え回路56と電源系統切り替え回路54とは同相である。図24(a)の出力電圧安定化素子切り替え回路56のスイッチ(p,q)の状態により、出力電圧安定化素子C-1とC-2には電荷が蓄積されている。
【0159】
(1)図24(b)に示すように、スイッチ制御回路30は、まず電力系統を変更しないPE(ここではPE-1,PE-3)につながる出力電圧安定化素子切り替え回路56のスイッチ(p,q)をオフにする。図24(b)では出力電圧安定化素子切り替え回路56の(1,1)(2,3)がオフになる。(2,1)(1,3)については予めオフである。こうすることで、出力電圧安定化素子C-1の電荷はPE-2にだけ、出力電圧安定化素子C-2の電荷はPE-4にだけ供給されるようになる。
【0160】
(2)図24(c)に示すように、スイッチ制御回路30は、電源系統を切り替えるPE(ここではPE-2,PE-4)とPS17とを結ぶ、電源系統切り替え回路54のスイッチ(p,q)をオフにする。すなわち、スイッチ制御回路30は、電源系統切り替え回路54の(1,2)(2,4)をオフにする。
【0161】
この状態では、PE-2にはPS-1から電力が供給されず、PE-4にはPS-2から電力が供給されないが、出力電圧安定化素子C-1がPE-2に電力を、出力電圧安定化素子C-2がPE-4に電力を、それぞれ供給する。
【0162】
(3)図24(d)に示すように、スイッチ制御回路30は、電源系統を切り替えるPE(ここではPE-2,PE-4)と、切り替え後のPS17とを結ぶ、電源系統切り替え回路54のスイッチ(p,q)をオンにする。すなわち、スイッチ制御回路30は、電源系統切り替え回路54の(2,2)(1,4)をオンにする。こうすることで、PE-1とPE-4にはPS-1から電力が、PE-2とPE-3にはPS-2から電力が、それぞれ供給される。
【0163】
(4)図24(e)に示すように、スイッチ制御回路30は、出力電圧安定化素子切り替え回路56を、電源系統切り替え回路54と同位相に切り替える。すなわち、スイッチ制御回路30は、出力電圧安定化素子切り替え回路56の(1,1)(1,4)(2,2)(2,3)をオンにし、(1,2)(2,4)をオフにする。こうすることで、PE-1、4に電力を供給するPS-1から出力電圧安定化素子51のc-1に電荷を蓄積させることができ、PE-2、3に電力を供給するPS-2から出力電圧安定化素子51のc-2に電荷を蓄積させることができ、次の切り替えまでに蓄電することができる。
【0164】
本実施例のMPS100は、実施例2,3の効果に加え、出力電圧安定化素子切り替え回路56をSWMX50と1チップ化することで、出力電圧安定化素子51の数を低減できよりコストを低下させることができる。
【符号の説明】
【0165】
11 起動回路(WUP)
12 クロック元発生回路(OSC)
13 制御ユニット
14 制御回路(CNT)
15 ROM
16 RAM
17 電源回路(PS)
18 クロック発生回路(CG)
19 プロセッサエレメント(PE)
20 システムBus
50 電源・クロック切替回路(SWMX)
51 出力電圧安定化素子
52 プルダウン回路
54 電源系統切り替え回路
55 クロック切り替え回路
56 出力電圧安定化素子切り替え回路
100 マルチプロセッサシステム(MPS)

【特許請求の範囲】
【請求項1】
N個のプロセッサと
複数のグループに分けられたN個のプロセッサに、グループ毎に共通の電源電圧を供給する電源回路と、
前記グループ毎に共通のクロック周波数のクロックを供給する、前記電源回路と対のクロック生成回路と、
前記プロセッサの負荷に基づき、グループ毎に前記電源電圧と前記クロック周波数を制御する制御回路と、を有し、
前記電源回路の数の合計又は前記クロック生成回路の数の合計が、N個より小さいM個である、
ことを特徴とするマイクロプロセッサ又はチップセット。
【請求項2】
N個の前記プロセッサと、M個の前記電源回路及びM個の前記クロック生成回路の接続を前記プロセッサ毎に切り替える切り替え回路を有し、
前記制御回路は、前記プロセッサの負荷が互いに近いものを優先的に、1つの前記電源回路及び1つの前記クロック生成回路に割り当てるように、前記切り替え回路を制御する、ことを特徴とする請求項1記載のマイクロプロセッサ又はチップセット。
【請求項3】
前記切り替え回路は、N個の前記プロセッサとM個の前記電源回路の接続を切り替える電源系統切り替え回路と、
N個の前記プロセッサとM個の前記クロック生成回路の接続を切り替えるクロック切り替え回路と、を有し、
前記電源系統切り替え回路は、前記プロセッサと前記電源回路の接続が切断された際に該プロセッサに電力を供給するN個の出力電圧安定化手段を有し、
前記クロック切り替え回路は、前記プロセッサと前記クロック生成回路の接続が切断された際に該プロセッサのクロックをLowに維持するN個のプルダウン手段を有する、
ことを特徴とする請求項2記載のマイクロプロセッサ又はチップセット。
【請求項4】
前記電源系統切り替え回路は、N個ではなくM個の前記出力電圧安定化手段と、N個の前記プロセッサの接続を切り替える出力電圧安定化素子切り替え回路を有する、
ことを特徴とする請求項3記載のマイクロプロセッサ又はチップセット。
【請求項5】
前記切り替え回路は、複数個に分割されており、
それぞれの前記切り替え回路が、M=Σmi及びN=Σni(iは自然数)を満たすmi個の前記電源回路及びmi個の前記クロック生成回路と、ni個のプロセッサとの接続を切り替える、
ことを特徴とする請求項2記載のマイクロプロセッサ又はチップセット。
【請求項6】
それぞれの前記切り替え回路は、ni個の前記プロセッサとmi個の前記電源回路の接続を切り替える電源系統切り替え回路と、
ni個の前記プロセッサとmi個の前記クロック生成回路の接続を切り替えるクロック切り替え回路と、を有し、
前記電源系統切り替え回路は、前記プロセッサと前記電源回路の接続が切断された際に該プロセッサに電力を供給するni個の出力電圧安定化手段を有し、
前記クロック切り替え回路は、前記プロセッサと前記クロック生成回路の接続が切断された際に該プロセッサのクロックをLowにするni個のプルダウン手段を有する、
ことを特徴とする請求項5記載のマイクロプロセッサ又はチップセット。
【請求項7】
それぞれの前記電源系統切り替え回路は、ni個でなくmi個の前記出力電圧安定化手段と、ni個の前記プロセッサの接続を切り替える出力電圧安定化素子切り替え回路を有する、
ことを特徴とする請求項6記載のマイクロプロセッサ又はチップセット。
【請求項8】
前記電源系統切り替え回路と前記出力電圧安定化素子切り替え回路は1つのICに集積され、M個の前記出力電圧安定化手段は前記ICに外付けされている、
ことを特徴とする請求項4又は7記載のマイクロプロセッサ又はチップセット。
【請求項9】
前記制御回路は、
前記プロセッサとM個の前記電源回路及びM個の前記クロック生成回路の接続を切り替えた後、
前記プロセッサと前記前記電源回路との接続をオン・オフする前記電源系統切り替え回路の各スイッチの状態と、
前記プロセッサと前記出力電圧安定化手段との接続をオン・オフする前記出力電圧安定化素子切り替え回路の各スイッチの状態とを、同相に維持する、
ことを特徴とする請求項4又は7記載のマイクロプロセッサ又はチップセット。
【請求項10】
前記制御回路は、
第1の電源回路及び第1のクロック生成回路に接続された前記プロセッサを、第2の電源回路及び第2のクロック生成回路に切り替えて接続する際、
切り替え対象以外の前記プロセッサと前記出力電圧安定化手段との接続をオン・オフする、前記出力電圧安定化素子切り替え回路のスイッチを全てオフにする、
ことを特徴とする請求項7記載のマイクロプロセッサ又はチップセット。
【請求項11】
前記制御回路は、1つの前記電源回路及び1つの前記クロック生成回路に接続された2以上の前記プロセッサのうち、最も負荷が大きい前記プロセッサの消費電力を賄うように前記電源電圧を決定する、
ことを特徴とする請求項1〜11いずれか1項記載のマイクロプロセッサ又はチップセット。
【請求項12】
前記制御回路は、前記プロセッサの負荷が高くなった場合、
前記電源回路が負荷に対応した前記電源電圧を出力するまで待機した後、
前記クロック生成回路に負荷に対応した前記クロック周波数の出力を要求する、
ことを特徴とする請求項1項記載のマイクロプロセッサ又はチップセット。
【請求項13】
請求項1〜12いずれか1項記載のマイクロプロセッサ又はチップセットと、
プログラムを記憶した記憶手段と、
各プロセッサの起動を管理する起動管理回路と、
を有する電子制御ユニット。
【請求項14】
N個のプロセッサと、N個より小さいM個の電源回路と、前記電源回路と対のM個のクロック生成回路と、を有するマイクロプロセッサの電源制御方法において、
制御回路が、複数のグループに分けられた前記プロセッサの負荷に基づき、グループ毎に前記電源電圧と前記クロック周波数を決定するステップと、
電源回路が、グループ毎に共通の電源電圧を供給するステップと、
クロック生成回路が、前記グループ毎に共通のクロック周波数のクロックを供給するステップと、を有する電源制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2012−43254(P2012−43254A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−184858(P2010−184858)
【出願日】平成22年8月20日(2010.8.20)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】