マルチプロセッサ装置
【課題】複数の命令実行手段における電源冗長性を適切に変更すること。
【解決手段】命令を実行する複数の命令実行手段と、前記複数の命令実行手段に所望の電圧の電力を供給可能な複数の電力供給手段と、前記複数の電力供給手段のそれぞれが、前記複数の命令実行手段のいずれに電力を供給するかを切り替え可能な電源接続切り替え手段と、前記複数の命令実行手段が実行する命令の重要度に応じて、前記複数の命令実行手段に割り当てられる電力供給手段の冗長度が決定されるように前記電源接続切り替え手段を制御する制御手段と、を備えるマルチプロセッサ装置。
【解決手段】命令を実行する複数の命令実行手段と、前記複数の命令実行手段に所望の電圧の電力を供給可能な複数の電力供給手段と、前記複数の電力供給手段のそれぞれが、前記複数の命令実行手段のいずれに電力を供給するかを切り替え可能な電源接続切り替え手段と、前記複数の命令実行手段が実行する命令の重要度に応じて、前記複数の命令実行手段に割り当てられる電力供給手段の冗長度が決定されるように前記電源接続切り替え手段を制御する制御手段と、を備えるマルチプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、命令を実行する複数の命令実行手段を備えるマルチプロセッサ装置に関する。
【背景技術】
【0002】
従来、マイクロコンピュータの分野において、CPU等の命令実行手段に対して複数の電力供給手段(より具体的には、電源回路等)を割り当て、電源回路等のうち一部が故障しても命令実行手段が動作可能にすることが行われている。このように、最低限必要な数よりも多くの電力供給手段を割り当てることは、電源冗長性、電源冗長度の確保等と称されている。
【0003】
特許文献1には、各々が1又は複数の電子装置からなる複数のコンポーネントへ電力を供給する複数の無停電電源装置を備える無停電電源システムについて記載されている。このシステムでは、複数の無停電電源装置の各々が、複数のコンポーネント毎に定められた電源冗長度に従って複数のコンポーネントの各々に対応して設けられており、少なくとも対応するコンポーネントへ電力を供給している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−136000号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来の無停電電源システムでは、各コンポーネントに定められた電源冗長度を変更する必要性について考慮がなされておらず、電源冗長度が過剰となったり、不足したりするという状態に対応することができない場合がある。
【0006】
本発明はこのような課題を解決するためのものであり、複数の命令実行手段における電源冗長性を適切に変更可能なマルチプロセッサ装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するための本発明の一態様は、
命令を実行する複数の命令実行手段と、
前記複数の命令実行手段に所望の電圧の電力を供給可能な複数の電力供給手段と、
前記複数の電力供給手段のそれぞれが、前記複数の命令実行手段のいずれに電力を供給するかを切り替え可能な電源接続切り替え手段と、
前記複数の命令実行手段が実行する命令の重要度に応じて、前記複数の命令実行手段に割り当てられる電力供給手段の冗長度が決定されるように前記電源接続切り替え手段を制御する制御手段と、
を備えるマルチプロセッサ装置である。
【0008】
この本発明の一態様によれば、複数の命令実行手段が実行する命令の重要度に応じて、複数の命令実行手段に割り当てられる電力供給手段の冗長度が決定されるように電源接続切り替え手段を制御するため、複数の命令実行手段における電源冗長性を適切に変更することができる。
【0009】
本発明の一態様において、
前記冗長度は、前記複数の命令実行手段のうち少なくとも一部と前記複数の電力供給手段のうち少なくとも一部が並列接続されたグループにおける、命令実行手段及び電力供給手段の個数に基づいて決定される指標値であるものとしてもよい。
【0010】
また、本発明の一態様において、
前記複数の命令実行手段が実行する命令の重要度は、例えば、前記複数の命令実行手段から前記制御手段に通知される。
【0011】
また、本発明の一態様において、
前記複数の電力供給手段のそれぞれにおける故障の発生を検出する故障検出手段を備え、
前記制御手段は、前記故障検出手段により前記複数の電力供給手段のいずれかに故障が発生したことが検出されたときに、少なくとも該故障が発生した電力供給手段に接続された命令実行手段への電力供給が維持されるように、前記電源接続切り替え手段及び/又は前記電力供給手段を制御する手段であるものとしてもよい。
【0012】
また、本発明の一態様において、
異なる周波数のクロック信号を生成して異なる出力端子から出力可能なクロック生成手段と、
前記複数の電力供給手段のそれぞれが、前記クロック生成手段のいずれの出力端子に接続されるかを切り替え可能なクロック切り替え手段と、
を備えるものとしてもよい。
【0013】
ここで、クロック切り替え手段は、電源接続切り替え手段と別体であってもよいし、同体であってもよい。
【発明の効果】
【0014】
本発明によれば、複数の命令実行手段における電源冗長性を適切に変更可能なマルチプロセッサ装置を提供することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施例に係るマルチプロセッサ装置1のシステム構成例である。
【図2】本発明の一実施例に係るPS及びFDの回路構成例である。
【図3】本発明の一実施例に係る制御装置50の内部構成例である。
【図4】記憶部52に書き込まれた電源構成情報の一例である。
【図5】図4に示す電源構成情報の元となるPEとPSの接続関係をに示す図である。
【図6】電源の冗長性確保を説明するための説明図である。
【図7】電源の冗長性確保を説明するための説明図である。
【図8】電源の冗長性確保を説明するための説明図である。
【図9】ROM70やRAM72等に格納されたタスクグループテーブル76の一例である。
【図10】本発明における冗長度の概念を模式的に示す図である。
【図11】ある状態(初期状態)におけるPEと電源の接続関係、及び状態を示す図である。
【図12】状態変化が生じた場合における、電源冗長性を変更しない構成と、本実施例の構成とを比較するための図である。
【図13】状態変化が生じた場合における、電源冗長性を変更しない構成と、本実施例の構成とを比較するための図である。
【図14】状態変化が生じた場合における、電源冗長性を変更しない構成と、本実施例の構成とを比較するための図である。
【図15】電源故障時におけるマルチプロセッサ装置1の各構成要素の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【0017】
以下、図面を参照し、本発明の一実施例に係るマルチプロセッサ装置について説明する。本発明のマルチプロセッサ装置は、例えば同一チップ上に複数のプロセッサコアを封入したマルチコア・プロセッサに適用可能であるが、これに限らず、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等からなるコンピュータ単位を複数個備える装置にも適用可能である。
【0018】
[構成、及び基本機能]
図1は、本発明の一実施例に係るマルチプロセッサ装置1のシステム構成例である。マルチプロセッサ装置は、主要な構成として、PE(Processor Element)10#1〜10#Nと、PS(Power Supply)20#1〜20#Mと、FD(Fault Detection)25#1〜25#Mと、クロック発生回路30と、SWMX(Switch Matrix)40と、制御装置50と、BUS制御部60と、ROM70、RAM72、周辺回路74と、を備える。
【0019】
PE10#1〜10#Nは、例えば上記マルチコア・プロセッサにおけるプロセッサコアであり、ROM等のプログラムメモリに格納された命令を実行する命令実行手段の一例である。
【0020】
各PEは、ROM70その他のプログラムメモリに格納された命令をフェッチする命令フェッチユニット、フェッチされた命令をデコード(復号)する命令デコーダ、演算処理を行うALU(Arithmetic Logic Unit)やFPGA(Field Programmable Gate Array)、SIMD演算器、LSU(Load Store Unit)、汎用レジスタ等のハードウエアを備えている。
【0021】
各PEにより実行される命令は、例えば、ある程度の機能的まとまりを有するタスク(或いはプロセス)という単位で認識される。タスクには、処理の重要性に応じた重要度が予め設定されている。なお、タスクの重要度は、タスクに含まれる命令群の重要度と換言できる。
【0022】
タスクの重要度は、ROM70やRAM72、或いはレジスタやキャッシュメモリ等に格納されたタスクグループテーブル76を参照することにより、各PEが認識することができる。なお、タスクを識別するためのデータは、当該タスクを構成する命令群の一部(ヘッダ等)に埋め込まれているものとしてもよいし、図示しないOS(オペレーティングシステム)によって認識され、PEに通知されてもよい。
【0023】
各PEは、係る構成によって、自己が実行しているタスクの重要度を他の構成要素に対して出力することができる。
【0024】
また、タスクグループテーブル76には、タスクの重要度の他、望ましい処理速度(より具体的には、望ましいクロック周波数)が、タスクに対応して規定されていてもよい。タスクグループテーブル76の具体的内容等については後述する。
【0025】
PS20#1〜20#Mは、例えば出力電圧可変型の電源回路である。各PEは、自己が割り当てられた一又は複数のPEが要求する電圧を生成し、当該PEに電力を供給する。なお、各PSは、PEが割り当てられず休止状態となる期間があっても構わない。以下、必要に応じて、PSを単に「電源」と称する。
【0026】
FD25#1〜25#Mは、各PSに取り付けられた電源故障検出回路である。各FDは、取り付けられたPSの故障検出を行い、制御装置50に出力する。
【0027】
図2は、PS及びFDの回路構成例である。本図においては、各PSをPS20と、各FDをFD25と、それぞれ表記する。PS20は、バッテリー電圧VBATがコレクタに接続されたPNP型トランジスタ21の他、図示しない可変抵抗等を備える。当該PNP型トランジスタ21のベースに印加される電圧は、制御装置50によって制御される。また、FD25は、PS20の出力電圧を測定して制御装置50に出力するための抵抗26や故障検出部27を備える。
【0028】
クロック発生回路30は、基準クロック生成回路や分周器等を備え、複数種類の周波数を有するクロック信号を、例えば周波数毎に設けられた出力端子から出力する。
【0029】
SWMX40は、複数のスイッチ構造を有しており、PE10#1〜10#Nと、PS20#1〜20#M及びクロック発生回路30の出力端子との接続関係を切り替える。すなわち、SWMX40は、PS20#1〜20#Mのそれぞれが、PE10#1〜10#Nのいずれに電力を供給するか、及び、PE10#1〜10#Nがいずれの周波数のクロック信号を取得するかを切り替える。
【0030】
図3は、制御装置50の内部構成例である。制御装置50は、プロセッサバス80とのインターフェースとなるバスインターフェース(I/F)51と、記憶部52と、マトリクスドライバ53と、マイコン(CPU)54と、を備える。なお、いずれかのPEが制御装置50として機能する構成であっても構わない。
【0031】
バスインターフェース51は、各PEからプロセッサバス80を介して、電源電圧設定、クロック周波数、タスク優先度等の各種情報を取得し、マイコン54に出力する。
【0032】
記憶部52は、例えばレジスタやフラッシュメモリであり、その時点における電源構成を表現した電源構成情報がマイコン54により書き込まれる。図4は、記憶部52に書き込まれた電源構成情報の一例である。また、図4に示す電源構成情報の元となるPEとPSの接続関係を、図5に示す。これらの図に示すように、本実施例では、一以上のPEと一以上のPSが並行に接続されたPEとPSのグループが、電源グループとして認識され、記憶部52に格納されている。
【0033】
マトリクスドライバ53は、マイコン54からの指示信号に応じて、SWMX40の切り替え制御を実行する。
【0034】
マイコン54は、各PEから入力された電源電圧設定やタスク優先度に応じて電源構成を決定してマトリクスドライバ53に指示する。また、各PEから入力されたクロック周波数が当該PEに供給されるようにマトリクスドライバ53に指示する。なお、クロック周波数の切り替えタイミングにおいては、クロック発生回路30に指示してクロック信号を一時停止させ、各PEに供給されるクロック信号にノイズが発生しないように制御する。
【0035】
[優先度に基づく制御]
〔電源冗長性について〕
以下、制御装置50のマイコン54により実行されるタスクの優先度に基づく電源構成変更制御について説明する。
【0036】
まず、電源冗長性の確保について説明する。図6〜8は、電源の冗長性確保を説明するための説明図である。図6に示すように、電源1個が、駆動可能なPE個数を駆動している場合(冗長接続が無い場合)、電源が故障すると、当該電源グループに属するPEが動作不能となる。
【0037】
一方、図7に示すように、電源2個が、電源1個が駆動可能なPE個数を駆動している場合(電源2並列の場合)、1個の電源が故障しても、当該電源グループに属するPEは、残りの電源から電力供給されるため、動作を継続することができる。
【0038】
また、図8に示すように、電源3個が、電源2個が駆動可能なPE個数を駆動している場合(電源3並列の場合)、1個の電源が故障しても、当該電源グループに属するPEは、残りの電源から電力供給されるため、動作を継続することができる。
【0039】
次に、タスクの優先度の認識について説明する。図9は、前述したように、ROM70やRAM72等に格納されたタスクグループテーブル76の一例である。図示するように、タスクグループテーブル76は、複数のタスクを含むタスクグループ毎に、重要度、及び処理速度要求を規定している。これらのうち重要度は、電源冗長性を決定するために用いられ、処理速度要求は、クロック周波数を決定するのに用いられる。
【0040】
〔冗長度について〕
図10は、本発明における冗長度の概念を模式的に示す図である。冗長度とは、電源冗長性を示す指標値であり、例えば次式(1)によって表現される。
【0041】
(冗長度)={1−(故障してもPEが動作継続可能な電源の個数)/(グループ内の電源の個数)}-1 …(1)
【0042】
従って、電源3個が、電源2個が駆動可能なPE個数を駆動している場合、冗長度は1.5である。また、電源2個が、電源1個が駆動可能なPE個数を駆動している場合、冗長度は2である。また、電源1個が、電源1個が駆動可能なPE個数を駆動している場合、冗長度は1である。
【0043】
ここで、「故障してもPEが動作継続可能な電源の個数」とは、「グループ内の電源の個数」から、「必要最低限の電源の個数」を差し引いたものとなる。「必要最低限の電源の個数」は、例えば次式(2)に示す範囲で予め決定されてROM70やRAM72に格納されており、予め制御装置50により参照可能となっている。式中、kは電源が何個のPEを駆動可能か、を示す係数であり、電源の出力電圧に応じて変化する値である。
【0044】
(必要最低限の電源の個数)=(グループ内のPEの個数/k)〜2×(グループ内のPEの個数/k) …(2)
【0045】
図10に示すように、また、上式(1)から明らかなように、電源2個がPE2個に電力供給している電源グループ1が最も電源冗長性が高く(冗長度=2)、電源3個がPE4個に電力供給している電源グループ2が次いで電源冗長性が高く(冗長度=1.5)、電源1個がPE2個に電力供給している電源グループ3の電源冗長性が最も低い(冗長度=1)。
【0046】
〔冗長度等に基づく切り替え制御について〕
以下、制御装置50が冗長度等に基づいてPEと電源の接続関係を切り替える場面について説明する。
【0047】
図11は、ある状態(初期状態)におけるPEと電源の接続関係、及び状態を示す図である。この状態において、PE10#1とPE10#2は処理速度=「高」、タスク重要度=「高」で動作しており、PE10#3とPE10#4は処理速度=「低」、タスク重要度=「低」で動作している。そして、PE10#1とPE10#2には電源20#1と20#2が並列接続されており、PE10#3とPE10#4には電源20#3のみが接続されている。
【0048】
(1)図11に示す状態から、PE10#1とPE10#2が処理速度=「低」、タスク重要度=「低」で動作し、PE10#3とPE10#4が処理速度=「中」、タスク重要度=「中」に切り替わった場合を考える。図12(A)は、電源構成を変更しない場合のPEと電源接続関係、及び状態を示す図である。この場合、電源冗長性を余り必要としないPE10#1及び10#2に2並列で電源が接続されているため、電力供給が過剰となるだけでなく、PE10#3とPE10#4に供給される電力が不足することになる。また、比較的高い電源冗長性を要求するPE10#3とPE10#4の冗長度は低いままである。
【0049】
これに対し、図12(B)は、本実施例の制御装置50がPEと電源の接続関係や状態を切り替えた様子を示す図である。図示するように、タスク重要度が高まったPE10#3とPE10#4が同じ電源グループに統合され、これらに対して2並列で電源が接続されて冗長性が高くなっている。このため、タスク重要度の比較的高いPSの電源冗長性が高まることになり、装置の安全性を高めることができる。
【0050】
また、タスク重要度が比較的低いPE10#1及び10#2に過剰な電力を供給することがないため、装置全体の電力消費を抑制することができる。
【0051】
(2)次に、図11に示す状態から、PE10#1とPE10#2が処理速度=「高」、タスク重要度=「高」で動作し、PE10#3とPE10#4が処理速度=「中」、タスク重要度=「中」に切り替わった場合を考える。図13(A)は、電源構成を変更しない場合のPEと電源接続関係、及び状態を示す図である。この場合、PE10#3とPE10#4に供給される電力が不足することになる。
【0052】
これに対し、図13(B)は、本実施例の制御装置50がPEと電源の接続関係や状態を切り替えた様子を示す図である。図示するように、制御装置50が指示してPS20#3の出力電圧を「中」に変更しているため、PE10#3とPE10#4に供給される電力は不足しない。
【0053】
(3)次に、図11に示す状態から、PE10#1が処理速度=「高」、タスク重要度=「低」で動作し、PE10#2、PE10#3、PE10#4が処理速度=「低」、タスク重要度=「低」で動作する状態に切り替わった場合を考える。図14(A)は、電源構成を変更しない場合のPEと電源接続関係、及び状態を示す図である。この場合、PE10#1とPE10#2に供給される電力が過剰となり、無駄な電力消費がなされることになる。
【0054】
これに対し、図14(B)は、本実施例の制御装置50がPEと電源の接続関係や状態を切り替えた様子を示す図である。図示するように、PE10#1とPE10#2を別の電源グループにして電源冗長性を低下させると共に、PE10#2に電力供給するPS20#2の出力電圧を「低」に変更しているため、装置全体の電力消費を抑制することができる。
【0055】
[電源故障時の制御]
また、制御装置50のマイコン54は、FD25#1〜25#Mのうちいずれかから故障検出信号が入力されると、マトリクスドライバ53に指示して、故障したPSをPEから切り離すように制御する。そして、記憶部52に記憶された、電源グループ、PS、PEの対応関係を考慮し、故障したPSの属する電源グループが冗長構成となっていない場合、故障したPSが駆動していたPEに対して電源故障を通知するための割り込み信号を送出する。また、内部の電源故障通知レジスタに電源故障情報を設定し、故障したPSに関する情報を各PEから参照可能とする。
【0056】
図15は、電源故障時におけるマルチプロセッサ装置1の各構成要素の処理の流れを示すフローチャートである。
【0057】
まず、いずれかの電源故障検出回路(FD)が電源(PS)の故障を検出するまで待機する(S100)。
【0058】
いずれかの電源故障検出回路が電源の故障を検出すると、当該電源故障検出回路(FD)は電源故障を制御装置50に通知する(S102)。
【0059】
制御装置50は、SWMX40の該当箇所をオープンに変更することにより、故障した電源をPEから切り離す(S104)。
【0060】
次に、制御装置50は、故障した電源の属する電源グループが冗長接続になっているか否かを判定する(S106)。
【0061】
冗長接続になっている場合は、当該電源グループの故障していない電源のみで、冗長度を回復可能かどうかを判定する(S108)。冗長度を回復可能である場合、制御装置50は、電源に指示して出力電圧を上昇させ、冗長度を回復する(S110)。
【0062】
冗長度を回復可能でない場合、制御装置50は、SWMX40に指示して電源を追加する等の制御を行う(S112)。
【0063】
一方、故障した電源の属する電源グループが冗長接続になっていない場合は、当該電源グループに属するPEに電源故障を通知するための割り込み信号を送出する(S114)。
【0064】
割り込み信号を受信したPEは、実行中断処理を開始する(S116)。
【0065】
次に、制御装置50は、故障していない電源に当該PEを接続できるかどうかを判定する(S118)。故障していない電源に当該PEを接続できる場合は、SWMX40に指示して故障していない電源にPEを接続し、当該PEに電源回復を通知するための割り込み信号を送出する(S120)。
【0066】
以上説明した本実施例のマルチプロセッサ装置1によれば、タスクの優先度に基づいて電源冗長性を動的に変更するため、複数のPEにおける電源冗長性を適切に変更することができる。
【0067】
また、複数の電源のうちいずれかに故障が発生した場合に、他の電源を用いてPEに対する電力供給を維持することができる。
【0068】
また、タスクの優先度や処理速度が低下したPEに対する電力供給を低下させることにより、装置全体の電力消費を抑制することができる。
【0069】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0070】
1 マルチプロセッサ装置
10#1、10#2、… PE
20#1、20#2、… PS(電源)
21 PNP型トランジスタ
25#1、25#2、… FD
26 抵抗
27 故障検出部
30 クロック発生回路
40 SWMX
50 制御装置
51 バスインターフェース(I/F)
52 記憶部
53 マトリクスドライバ
54 マイコン(CPU)
60 BUS制御部
70 ROM
72 RAM
74 周辺回路
76 タスクグループテーブル
80 プロセッサバス
【技術分野】
【0001】
本発明は、命令を実行する複数の命令実行手段を備えるマルチプロセッサ装置に関する。
【背景技術】
【0002】
従来、マイクロコンピュータの分野において、CPU等の命令実行手段に対して複数の電力供給手段(より具体的には、電源回路等)を割り当て、電源回路等のうち一部が故障しても命令実行手段が動作可能にすることが行われている。このように、最低限必要な数よりも多くの電力供給手段を割り当てることは、電源冗長性、電源冗長度の確保等と称されている。
【0003】
特許文献1には、各々が1又は複数の電子装置からなる複数のコンポーネントへ電力を供給する複数の無停電電源装置を備える無停電電源システムについて記載されている。このシステムでは、複数の無停電電源装置の各々が、複数のコンポーネント毎に定められた電源冗長度に従って複数のコンポーネントの各々に対応して設けられており、少なくとも対応するコンポーネントへ電力を供給している。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−136000号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記従来の無停電電源システムでは、各コンポーネントに定められた電源冗長度を変更する必要性について考慮がなされておらず、電源冗長度が過剰となったり、不足したりするという状態に対応することができない場合がある。
【0006】
本発明はこのような課題を解決するためのものであり、複数の命令実行手段における電源冗長性を適切に変更可能なマルチプロセッサ装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するための本発明の一態様は、
命令を実行する複数の命令実行手段と、
前記複数の命令実行手段に所望の電圧の電力を供給可能な複数の電力供給手段と、
前記複数の電力供給手段のそれぞれが、前記複数の命令実行手段のいずれに電力を供給するかを切り替え可能な電源接続切り替え手段と、
前記複数の命令実行手段が実行する命令の重要度に応じて、前記複数の命令実行手段に割り当てられる電力供給手段の冗長度が決定されるように前記電源接続切り替え手段を制御する制御手段と、
を備えるマルチプロセッサ装置である。
【0008】
この本発明の一態様によれば、複数の命令実行手段が実行する命令の重要度に応じて、複数の命令実行手段に割り当てられる電力供給手段の冗長度が決定されるように電源接続切り替え手段を制御するため、複数の命令実行手段における電源冗長性を適切に変更することができる。
【0009】
本発明の一態様において、
前記冗長度は、前記複数の命令実行手段のうち少なくとも一部と前記複数の電力供給手段のうち少なくとも一部が並列接続されたグループにおける、命令実行手段及び電力供給手段の個数に基づいて決定される指標値であるものとしてもよい。
【0010】
また、本発明の一態様において、
前記複数の命令実行手段が実行する命令の重要度は、例えば、前記複数の命令実行手段から前記制御手段に通知される。
【0011】
また、本発明の一態様において、
前記複数の電力供給手段のそれぞれにおける故障の発生を検出する故障検出手段を備え、
前記制御手段は、前記故障検出手段により前記複数の電力供給手段のいずれかに故障が発生したことが検出されたときに、少なくとも該故障が発生した電力供給手段に接続された命令実行手段への電力供給が維持されるように、前記電源接続切り替え手段及び/又は前記電力供給手段を制御する手段であるものとしてもよい。
【0012】
また、本発明の一態様において、
異なる周波数のクロック信号を生成して異なる出力端子から出力可能なクロック生成手段と、
前記複数の電力供給手段のそれぞれが、前記クロック生成手段のいずれの出力端子に接続されるかを切り替え可能なクロック切り替え手段と、
を備えるものとしてもよい。
【0013】
ここで、クロック切り替え手段は、電源接続切り替え手段と別体であってもよいし、同体であってもよい。
【発明の効果】
【0014】
本発明によれば、複数の命令実行手段における電源冗長性を適切に変更可能なマルチプロセッサ装置を提供することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施例に係るマルチプロセッサ装置1のシステム構成例である。
【図2】本発明の一実施例に係るPS及びFDの回路構成例である。
【図3】本発明の一実施例に係る制御装置50の内部構成例である。
【図4】記憶部52に書き込まれた電源構成情報の一例である。
【図5】図4に示す電源構成情報の元となるPEとPSの接続関係をに示す図である。
【図6】電源の冗長性確保を説明するための説明図である。
【図7】電源の冗長性確保を説明するための説明図である。
【図8】電源の冗長性確保を説明するための説明図である。
【図9】ROM70やRAM72等に格納されたタスクグループテーブル76の一例である。
【図10】本発明における冗長度の概念を模式的に示す図である。
【図11】ある状態(初期状態)におけるPEと電源の接続関係、及び状態を示す図である。
【図12】状態変化が生じた場合における、電源冗長性を変更しない構成と、本実施例の構成とを比較するための図である。
【図13】状態変化が生じた場合における、電源冗長性を変更しない構成と、本実施例の構成とを比較するための図である。
【図14】状態変化が生じた場合における、電源冗長性を変更しない構成と、本実施例の構成とを比較するための図である。
【図15】電源故障時におけるマルチプロセッサ装置1の各構成要素の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【0017】
以下、図面を参照し、本発明の一実施例に係るマルチプロセッサ装置について説明する。本発明のマルチプロセッサ装置は、例えば同一チップ上に複数のプロセッサコアを封入したマルチコア・プロセッサに適用可能であるが、これに限らず、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等からなるコンピュータ単位を複数個備える装置にも適用可能である。
【0018】
[構成、及び基本機能]
図1は、本発明の一実施例に係るマルチプロセッサ装置1のシステム構成例である。マルチプロセッサ装置は、主要な構成として、PE(Processor Element)10#1〜10#Nと、PS(Power Supply)20#1〜20#Mと、FD(Fault Detection)25#1〜25#Mと、クロック発生回路30と、SWMX(Switch Matrix)40と、制御装置50と、BUS制御部60と、ROM70、RAM72、周辺回路74と、を備える。
【0019】
PE10#1〜10#Nは、例えば上記マルチコア・プロセッサにおけるプロセッサコアであり、ROM等のプログラムメモリに格納された命令を実行する命令実行手段の一例である。
【0020】
各PEは、ROM70その他のプログラムメモリに格納された命令をフェッチする命令フェッチユニット、フェッチされた命令をデコード(復号)する命令デコーダ、演算処理を行うALU(Arithmetic Logic Unit)やFPGA(Field Programmable Gate Array)、SIMD演算器、LSU(Load Store Unit)、汎用レジスタ等のハードウエアを備えている。
【0021】
各PEにより実行される命令は、例えば、ある程度の機能的まとまりを有するタスク(或いはプロセス)という単位で認識される。タスクには、処理の重要性に応じた重要度が予め設定されている。なお、タスクの重要度は、タスクに含まれる命令群の重要度と換言できる。
【0022】
タスクの重要度は、ROM70やRAM72、或いはレジスタやキャッシュメモリ等に格納されたタスクグループテーブル76を参照することにより、各PEが認識することができる。なお、タスクを識別するためのデータは、当該タスクを構成する命令群の一部(ヘッダ等)に埋め込まれているものとしてもよいし、図示しないOS(オペレーティングシステム)によって認識され、PEに通知されてもよい。
【0023】
各PEは、係る構成によって、自己が実行しているタスクの重要度を他の構成要素に対して出力することができる。
【0024】
また、タスクグループテーブル76には、タスクの重要度の他、望ましい処理速度(より具体的には、望ましいクロック周波数)が、タスクに対応して規定されていてもよい。タスクグループテーブル76の具体的内容等については後述する。
【0025】
PS20#1〜20#Mは、例えば出力電圧可変型の電源回路である。各PEは、自己が割り当てられた一又は複数のPEが要求する電圧を生成し、当該PEに電力を供給する。なお、各PSは、PEが割り当てられず休止状態となる期間があっても構わない。以下、必要に応じて、PSを単に「電源」と称する。
【0026】
FD25#1〜25#Mは、各PSに取り付けられた電源故障検出回路である。各FDは、取り付けられたPSの故障検出を行い、制御装置50に出力する。
【0027】
図2は、PS及びFDの回路構成例である。本図においては、各PSをPS20と、各FDをFD25と、それぞれ表記する。PS20は、バッテリー電圧VBATがコレクタに接続されたPNP型トランジスタ21の他、図示しない可変抵抗等を備える。当該PNP型トランジスタ21のベースに印加される電圧は、制御装置50によって制御される。また、FD25は、PS20の出力電圧を測定して制御装置50に出力するための抵抗26や故障検出部27を備える。
【0028】
クロック発生回路30は、基準クロック生成回路や分周器等を備え、複数種類の周波数を有するクロック信号を、例えば周波数毎に設けられた出力端子から出力する。
【0029】
SWMX40は、複数のスイッチ構造を有しており、PE10#1〜10#Nと、PS20#1〜20#M及びクロック発生回路30の出力端子との接続関係を切り替える。すなわち、SWMX40は、PS20#1〜20#Mのそれぞれが、PE10#1〜10#Nのいずれに電力を供給するか、及び、PE10#1〜10#Nがいずれの周波数のクロック信号を取得するかを切り替える。
【0030】
図3は、制御装置50の内部構成例である。制御装置50は、プロセッサバス80とのインターフェースとなるバスインターフェース(I/F)51と、記憶部52と、マトリクスドライバ53と、マイコン(CPU)54と、を備える。なお、いずれかのPEが制御装置50として機能する構成であっても構わない。
【0031】
バスインターフェース51は、各PEからプロセッサバス80を介して、電源電圧設定、クロック周波数、タスク優先度等の各種情報を取得し、マイコン54に出力する。
【0032】
記憶部52は、例えばレジスタやフラッシュメモリであり、その時点における電源構成を表現した電源構成情報がマイコン54により書き込まれる。図4は、記憶部52に書き込まれた電源構成情報の一例である。また、図4に示す電源構成情報の元となるPEとPSの接続関係を、図5に示す。これらの図に示すように、本実施例では、一以上のPEと一以上のPSが並行に接続されたPEとPSのグループが、電源グループとして認識され、記憶部52に格納されている。
【0033】
マトリクスドライバ53は、マイコン54からの指示信号に応じて、SWMX40の切り替え制御を実行する。
【0034】
マイコン54は、各PEから入力された電源電圧設定やタスク優先度に応じて電源構成を決定してマトリクスドライバ53に指示する。また、各PEから入力されたクロック周波数が当該PEに供給されるようにマトリクスドライバ53に指示する。なお、クロック周波数の切り替えタイミングにおいては、クロック発生回路30に指示してクロック信号を一時停止させ、各PEに供給されるクロック信号にノイズが発生しないように制御する。
【0035】
[優先度に基づく制御]
〔電源冗長性について〕
以下、制御装置50のマイコン54により実行されるタスクの優先度に基づく電源構成変更制御について説明する。
【0036】
まず、電源冗長性の確保について説明する。図6〜8は、電源の冗長性確保を説明するための説明図である。図6に示すように、電源1個が、駆動可能なPE個数を駆動している場合(冗長接続が無い場合)、電源が故障すると、当該電源グループに属するPEが動作不能となる。
【0037】
一方、図7に示すように、電源2個が、電源1個が駆動可能なPE個数を駆動している場合(電源2並列の場合)、1個の電源が故障しても、当該電源グループに属するPEは、残りの電源から電力供給されるため、動作を継続することができる。
【0038】
また、図8に示すように、電源3個が、電源2個が駆動可能なPE個数を駆動している場合(電源3並列の場合)、1個の電源が故障しても、当該電源グループに属するPEは、残りの電源から電力供給されるため、動作を継続することができる。
【0039】
次に、タスクの優先度の認識について説明する。図9は、前述したように、ROM70やRAM72等に格納されたタスクグループテーブル76の一例である。図示するように、タスクグループテーブル76は、複数のタスクを含むタスクグループ毎に、重要度、及び処理速度要求を規定している。これらのうち重要度は、電源冗長性を決定するために用いられ、処理速度要求は、クロック周波数を決定するのに用いられる。
【0040】
〔冗長度について〕
図10は、本発明における冗長度の概念を模式的に示す図である。冗長度とは、電源冗長性を示す指標値であり、例えば次式(1)によって表現される。
【0041】
(冗長度)={1−(故障してもPEが動作継続可能な電源の個数)/(グループ内の電源の個数)}-1 …(1)
【0042】
従って、電源3個が、電源2個が駆動可能なPE個数を駆動している場合、冗長度は1.5である。また、電源2個が、電源1個が駆動可能なPE個数を駆動している場合、冗長度は2である。また、電源1個が、電源1個が駆動可能なPE個数を駆動している場合、冗長度は1である。
【0043】
ここで、「故障してもPEが動作継続可能な電源の個数」とは、「グループ内の電源の個数」から、「必要最低限の電源の個数」を差し引いたものとなる。「必要最低限の電源の個数」は、例えば次式(2)に示す範囲で予め決定されてROM70やRAM72に格納されており、予め制御装置50により参照可能となっている。式中、kは電源が何個のPEを駆動可能か、を示す係数であり、電源の出力電圧に応じて変化する値である。
【0044】
(必要最低限の電源の個数)=(グループ内のPEの個数/k)〜2×(グループ内のPEの個数/k) …(2)
【0045】
図10に示すように、また、上式(1)から明らかなように、電源2個がPE2個に電力供給している電源グループ1が最も電源冗長性が高く(冗長度=2)、電源3個がPE4個に電力供給している電源グループ2が次いで電源冗長性が高く(冗長度=1.5)、電源1個がPE2個に電力供給している電源グループ3の電源冗長性が最も低い(冗長度=1)。
【0046】
〔冗長度等に基づく切り替え制御について〕
以下、制御装置50が冗長度等に基づいてPEと電源の接続関係を切り替える場面について説明する。
【0047】
図11は、ある状態(初期状態)におけるPEと電源の接続関係、及び状態を示す図である。この状態において、PE10#1とPE10#2は処理速度=「高」、タスク重要度=「高」で動作しており、PE10#3とPE10#4は処理速度=「低」、タスク重要度=「低」で動作している。そして、PE10#1とPE10#2には電源20#1と20#2が並列接続されており、PE10#3とPE10#4には電源20#3のみが接続されている。
【0048】
(1)図11に示す状態から、PE10#1とPE10#2が処理速度=「低」、タスク重要度=「低」で動作し、PE10#3とPE10#4が処理速度=「中」、タスク重要度=「中」に切り替わった場合を考える。図12(A)は、電源構成を変更しない場合のPEと電源接続関係、及び状態を示す図である。この場合、電源冗長性を余り必要としないPE10#1及び10#2に2並列で電源が接続されているため、電力供給が過剰となるだけでなく、PE10#3とPE10#4に供給される電力が不足することになる。また、比較的高い電源冗長性を要求するPE10#3とPE10#4の冗長度は低いままである。
【0049】
これに対し、図12(B)は、本実施例の制御装置50がPEと電源の接続関係や状態を切り替えた様子を示す図である。図示するように、タスク重要度が高まったPE10#3とPE10#4が同じ電源グループに統合され、これらに対して2並列で電源が接続されて冗長性が高くなっている。このため、タスク重要度の比較的高いPSの電源冗長性が高まることになり、装置の安全性を高めることができる。
【0050】
また、タスク重要度が比較的低いPE10#1及び10#2に過剰な電力を供給することがないため、装置全体の電力消費を抑制することができる。
【0051】
(2)次に、図11に示す状態から、PE10#1とPE10#2が処理速度=「高」、タスク重要度=「高」で動作し、PE10#3とPE10#4が処理速度=「中」、タスク重要度=「中」に切り替わった場合を考える。図13(A)は、電源構成を変更しない場合のPEと電源接続関係、及び状態を示す図である。この場合、PE10#3とPE10#4に供給される電力が不足することになる。
【0052】
これに対し、図13(B)は、本実施例の制御装置50がPEと電源の接続関係や状態を切り替えた様子を示す図である。図示するように、制御装置50が指示してPS20#3の出力電圧を「中」に変更しているため、PE10#3とPE10#4に供給される電力は不足しない。
【0053】
(3)次に、図11に示す状態から、PE10#1が処理速度=「高」、タスク重要度=「低」で動作し、PE10#2、PE10#3、PE10#4が処理速度=「低」、タスク重要度=「低」で動作する状態に切り替わった場合を考える。図14(A)は、電源構成を変更しない場合のPEと電源接続関係、及び状態を示す図である。この場合、PE10#1とPE10#2に供給される電力が過剰となり、無駄な電力消費がなされることになる。
【0054】
これに対し、図14(B)は、本実施例の制御装置50がPEと電源の接続関係や状態を切り替えた様子を示す図である。図示するように、PE10#1とPE10#2を別の電源グループにして電源冗長性を低下させると共に、PE10#2に電力供給するPS20#2の出力電圧を「低」に変更しているため、装置全体の電力消費を抑制することができる。
【0055】
[電源故障時の制御]
また、制御装置50のマイコン54は、FD25#1〜25#Mのうちいずれかから故障検出信号が入力されると、マトリクスドライバ53に指示して、故障したPSをPEから切り離すように制御する。そして、記憶部52に記憶された、電源グループ、PS、PEの対応関係を考慮し、故障したPSの属する電源グループが冗長構成となっていない場合、故障したPSが駆動していたPEに対して電源故障を通知するための割り込み信号を送出する。また、内部の電源故障通知レジスタに電源故障情報を設定し、故障したPSに関する情報を各PEから参照可能とする。
【0056】
図15は、電源故障時におけるマルチプロセッサ装置1の各構成要素の処理の流れを示すフローチャートである。
【0057】
まず、いずれかの電源故障検出回路(FD)が電源(PS)の故障を検出するまで待機する(S100)。
【0058】
いずれかの電源故障検出回路が電源の故障を検出すると、当該電源故障検出回路(FD)は電源故障を制御装置50に通知する(S102)。
【0059】
制御装置50は、SWMX40の該当箇所をオープンに変更することにより、故障した電源をPEから切り離す(S104)。
【0060】
次に、制御装置50は、故障した電源の属する電源グループが冗長接続になっているか否かを判定する(S106)。
【0061】
冗長接続になっている場合は、当該電源グループの故障していない電源のみで、冗長度を回復可能かどうかを判定する(S108)。冗長度を回復可能である場合、制御装置50は、電源に指示して出力電圧を上昇させ、冗長度を回復する(S110)。
【0062】
冗長度を回復可能でない場合、制御装置50は、SWMX40に指示して電源を追加する等の制御を行う(S112)。
【0063】
一方、故障した電源の属する電源グループが冗長接続になっていない場合は、当該電源グループに属するPEに電源故障を通知するための割り込み信号を送出する(S114)。
【0064】
割り込み信号を受信したPEは、実行中断処理を開始する(S116)。
【0065】
次に、制御装置50は、故障していない電源に当該PEを接続できるかどうかを判定する(S118)。故障していない電源に当該PEを接続できる場合は、SWMX40に指示して故障していない電源にPEを接続し、当該PEに電源回復を通知するための割り込み信号を送出する(S120)。
【0066】
以上説明した本実施例のマルチプロセッサ装置1によれば、タスクの優先度に基づいて電源冗長性を動的に変更するため、複数のPEにおける電源冗長性を適切に変更することができる。
【0067】
また、複数の電源のうちいずれかに故障が発生した場合に、他の電源を用いてPEに対する電力供給を維持することができる。
【0068】
また、タスクの優先度や処理速度が低下したPEに対する電力供給を低下させることにより、装置全体の電力消費を抑制することができる。
【0069】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0070】
1 マルチプロセッサ装置
10#1、10#2、… PE
20#1、20#2、… PS(電源)
21 PNP型トランジスタ
25#1、25#2、… FD
26 抵抗
27 故障検出部
30 クロック発生回路
40 SWMX
50 制御装置
51 バスインターフェース(I/F)
52 記憶部
53 マトリクスドライバ
54 マイコン(CPU)
60 BUS制御部
70 ROM
72 RAM
74 周辺回路
76 タスクグループテーブル
80 プロセッサバス
【特許請求の範囲】
【請求項1】
命令を実行する複数の命令実行手段と、
前記複数の命令実行手段に所望の電圧の電力を供給可能な複数の電力供給手段と、
前記複数の電力供給手段のそれぞれが、前記複数の命令実行手段のいずれに電力を供給するかを切り替え可能な電源接続切り替え手段と、
前記複数の命令実行手段が実行する命令の重要度に応じて、前記複数の命令実行手段に割り当てられる電力供給手段の冗長度が決定されるように前記電源接続切り替え手段を制御する制御手段と、
を備えるマルチプロセッサ装置。
【請求項2】
請求項1に記載のマルチプロセッサ装置であって、
前記冗長度は、前記複数の命令実行手段のうち少なくとも一部と前記複数の電力供給手段のうち少なくとも一部が並列接続されたグループにおける、命令実行手段及び電力供給手段の個数に基づいて決定される指標値である、
マルチプロセッサ装置。
【請求項3】
請求項1又は2に記載のマルチプロセッサ装置であって、
前記複数の命令実行手段が実行する命令の重要度は、前記複数の命令実行手段から前記制御手段に通知される、
マルチプロセッサ装置。
【請求項4】
請求項1ないし3のいずれか1項に記載のマルチプロセッサ装置であって、
前記複数の電力供給手段のそれぞれにおける故障の発生を検出する故障検出手段を備え、
前記制御手段は、前記故障検出手段により前記複数の電力供給手段のいずれかに故障が発生したことが検出されたときに、少なくとも該故障が発生した電力供給手段に接続された命令実行手段への電力供給が維持されるように、前記電源接続切り替え手段及び/又は前記電力供給手段を制御する手段である、
マルチプロセッサ装置。
【請求項5】
請求項1ないし4のいずれか1項に記載のマルチプロセッサ装置であって、
異なる周波数のクロック信号を生成して異なる出力端子から出力可能なクロック生成手段と、
前記複数の電力供給手段のそれぞれが、前記クロック生成手段のいずれの出力端子に接続されるかを切り替え可能なクロック切り替え手段と、
を備えるマルチプロセッサ装置。
【請求項1】
命令を実行する複数の命令実行手段と、
前記複数の命令実行手段に所望の電圧の電力を供給可能な複数の電力供給手段と、
前記複数の電力供給手段のそれぞれが、前記複数の命令実行手段のいずれに電力を供給するかを切り替え可能な電源接続切り替え手段と、
前記複数の命令実行手段が実行する命令の重要度に応じて、前記複数の命令実行手段に割り当てられる電力供給手段の冗長度が決定されるように前記電源接続切り替え手段を制御する制御手段と、
を備えるマルチプロセッサ装置。
【請求項2】
請求項1に記載のマルチプロセッサ装置であって、
前記冗長度は、前記複数の命令実行手段のうち少なくとも一部と前記複数の電力供給手段のうち少なくとも一部が並列接続されたグループにおける、命令実行手段及び電力供給手段の個数に基づいて決定される指標値である、
マルチプロセッサ装置。
【請求項3】
請求項1又は2に記載のマルチプロセッサ装置であって、
前記複数の命令実行手段が実行する命令の重要度は、前記複数の命令実行手段から前記制御手段に通知される、
マルチプロセッサ装置。
【請求項4】
請求項1ないし3のいずれか1項に記載のマルチプロセッサ装置であって、
前記複数の電力供給手段のそれぞれにおける故障の発生を検出する故障検出手段を備え、
前記制御手段は、前記故障検出手段により前記複数の電力供給手段のいずれかに故障が発生したことが検出されたときに、少なくとも該故障が発生した電力供給手段に接続された命令実行手段への電力供給が維持されるように、前記電源接続切り替え手段及び/又は前記電力供給手段を制御する手段である、
マルチプロセッサ装置。
【請求項5】
請求項1ないし4のいずれか1項に記載のマルチプロセッサ装置であって、
異なる周波数のクロック信号を生成して異なる出力端子から出力可能なクロック生成手段と、
前記複数の電力供給手段のそれぞれが、前記クロック生成手段のいずれの出力端子に接続されるかを切り替え可能なクロック切り替え手段と、
を備えるマルチプロセッサ装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−194749(P2012−194749A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−57846(P2011−57846)
【出願日】平成23年3月16日(2011.3.16)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願日】平成23年3月16日(2011.3.16)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]