説明

マルチプロセッサ制御装置、その制御方法及び集積回路

【課題】
マルチプロセッサシステムで低消費電力化を行いつつ、なるべく全体的な演算の処理速度を落とすことのないマルチプロセッサ制御装置を提供する。
【解決手段】
マルチプロセッサ制御装置は、一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、前記一のプロセッサに対して供給する電力を制御する電力制御手段とを備え、前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが、当該演算を終了するより前に前記一のプロセッサに対する前記抑制を解除する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチプロセッサの制御装置に関し、特にその低消費電力化の技術に関する。
【背景技術】
【0002】
マルチプロセッサで分散処理を行う場合に、分散して実行された処理の結果のデータの授受や、処理順序の一貫性、演算の値の整合性を保つために同期をとることがある。ここでいう同期とは、自己の処理が終了したプロセッサが、処理の終了していないプロセッサの演算が終了するまで待機することをいい、演算の値の整合性を保つ必要のあるプロセッサすべてが演算を終了したら、待機状態にあったプロセッサは各々次の演算に移行することができるようになる。
【0003】
このようなマルチプロセッサシステムにおいては、待機状態に入ったプロセッサに対する電力の供給を断ち、全てのプロセッサの演算が終了した時点で、電力供給を断っていたプロセッサに対して電力を再び供給することで省電力を図ることができる(特許文献1参照)。
【特許文献1】特開平7−146846号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで上記のような省電力を行うマルチプロセッサシステムにおいて、待機状態に入り電力の供給を断っていたプロセッサに対して再び電力を供給した場合、電源電圧の安定化のために時間を要するため、すぐに次の演算の処理を行うことができず、総合的な演算の処理速度が落ちる。
また、電力の供給を断つと、演算の結果や処理状況などを示したコンテキストが失われるため、各プロセッサは、レジスタの情報であるコンテキストを他のメモリ等に退避させる必要がある。この場合には、同期が確定し電力の供給を再開した後、退避させたコンテキストを再び読み出して自己のレジスタに反映させなければならない。このコンテキスト復旧にも時間を多少必要とする。コンテキスト復旧は、電源電圧が安定してから行われるため更に総合的な演算の処理速度が落ちると言える。
【0005】
そこで本発明は、上記問題に鑑みてなされたものであり、上記のようなマルチプロセッサにおいて低消費電力化を行いながらも総合的な演算の処理速度の低下を抑制できるマルチプロセッサ制御装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明におけるマルチプロセッサ制御装置は、一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている所定の演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、前記一のプロセッサに対して電力の供給を制御する電力制御手段とを備え、前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが当該演算を終了するより前に、前記一のプロセッサに対する前記抑制を解除することを特徴とする。
【0007】
ここでいう抑制とは、供給している電力の電圧を低下させたり、電力の供給を停止したり、クロックの供給を停止したりすることをいう。
【発明の効果】
【0008】
これにより、本発明に係るマルチプロセッサにおいては、最後に演算を終了するプロセッサから演算を終了する前に電力の供給の再開やコンテキストの復旧を行うことができるようになる。こうすることで従来あった電源電圧の安定化の時間やコンテキスト復旧の時間を見かけ上隠蔽することができるようになる。より早く電力の安定化を行うことができるので、最後のプロセッサが演算を終了するタイミングから、電力の安定化のための時間などなしに次の演算に移ることができるようになるので、演算のタイムロスを防ぐことができる。
【0009】
また、前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、前記他の複数のプロセッサ各々は、自己における所定の演算が終了したことを示す同期要求信号を出力する同期要求信号出力手段を備え、前記実行制御手段は、出力された同期要求信号の数が前記他の複数のプロセッサの数に満たない所定の数になった時点で前記抑制を解除するための解除信号を出力する解除信号出力手段を備え、前記電力制御手段は、前記解除信号を受けて前記抑制を解除することとしてよい。
【0010】
これにより、各プロセッサから同期タイミングに到達したことを示す信号が各プロセッサから出力され、その数が予め定められている所定数になったときに、電力の抑制を解除することができるので、最後に演算を終了するプロセッサが演算を終了する時点から一のプロセッサは演算を実行しうるので演算の総合的なタイムロスを抑えることができる。
また、前記解除信号出力手段は、前記他の複数のプロセッサが前記所定の演算を開始してから出力された前記同期要求信号の数を数えるカウント手段を備え、前記カウント手段でカウントされる前記同期要求信号の数が前記他の複数のプロセッサの数に1足りなくなった時点で前記解除信号を出力することとしてよい。
【0011】
これにより、複数のプロセッサのうち、演算を終了していないプロセッサが1になった時点で一のプロセッサへの電力の抑制が解除される。こうすることで、早めに一のプロセッサの電力の抑制を解除して、省電力効果が低下することを防止することができる。例えば、複数のプロセッサのうち、4台のプロセッサが演算を終了していない状態で、一のプロセッサへの電力の供給を再開した場合に、当該4台のプロセッサのうち演算を終了するのがかなり遅いプロセッサがあったならば、一のプロセッサは何もしていない状態で電力の供給が行われることになるので電力が無駄になるが、この構成でその無駄を省きうる。
【0012】
また、前記実行制御手段は、前記同期要求信号が最後もしくは最後から1つ前に演算を終了するプロセッサのものでない限り、前記同期要求信号を出力したプロセッサを示すプロセッサ情報を出力するプロセッサ情報出力手段を備え、前記電力制御手段は、前記プロセッサ情報を受けて、前記プロセッサ情報で示されるプロセッサに対して電力の供給を抑制し、当該抑制を前記一のプロセッサに対する電力の抑制を解除するときに解除することとしてよい。
【0013】
これにより、マルチプロセッサ制御装置において、複数のプロセッサのうち演算を終了したものに対する電力供給を間違えることなく抑制することができる。よって、マルチプロセッサ制御装置全体で更なる省電力を図ることができる。
また、前記電力抑制手段は、前記一のプロセッサ及び前記他の複数のプロセッサ各々に通常よりも低い低電力を供給する低電力供給手段と、通常の電力を供給する通常電力供給手段とを備え、前記電力制御手段は、プロセッサに対して、前記低電力供給手段によって低電力を供給することで電力を抑制し、前記通常電力供給手段によって通常電力を供給することで抑制を解除することとしてよい。
【0014】
これにより、供給する電力を低電力にすることで省電力化を図ることができる。
また、前記電力抑制手段は、プロセッサに対する電力の供給を停止することで抑制し、前記他の複数のプロセッサ各々は、前記同期要求信号を出力した後に、電力の抑制がなされる前に自己におけるレジスタの情報であるコンテキストを、メモリに退避させる退避手段と、前記電力抑制手段が当該他の複数のプロセッサに対する電力の抑制を解除した後に、前記退避手段で退避したコンテキストを前記他のメモリから読み出して自プロセッサに復元する復元手段とを備えることとしてよい。
【0015】
これにより、電力の供給を完全に断つことで省電力化を図ることができ、また、電力の供給を断つことで失われてしまうコンテキストをプロセッサから退避させて、電力の供給が再開されたなら復元することができるようになるので、演算全体の整合性が損なわれることもなくなる。
また、前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、前記他の複数のプロセッサ各々は、自己において行う演算が終了までにあと所定の命令数を残す段階まで到達したことを示す準同期要求信号を出力する準同期要求信号出力手段を備え、前記実行制御手段は、前記他の複数のプロセッサ全てが準同期要求信号を出力した時点で前記抑制を解除するための解除信号を出力する解除信号出力手段を備え、前記電力制御手段は、前記解除信号を受けて前記抑制を解除することとしてよい。
【0016】
ここでいう所定の命令数とは、これらの命令を実行することで消費する時間内に、一のプロセッサで電力が安定するための時間とコンテキスト復旧が必要な場合にはその時間とが含まれるような命令数のことをいう。
これにより、プロセッサは自己における演算が終了するより少し前に準同期要求信号を出力し、その準同期要求信号を元にして電力復旧のタイミングを決めることができる。よって一のプロセッサは、準備に必要な最小の時間のみの通電で演算を実行できるようになる。
【0017】
また、前記他の複数のプロセッサは、自己が現在実行している命令のアドレス情報を出力するアドレス情報出力手段と、予め定められた所定のアドレスを記憶しておくアドレス記憶手段とを備え、前記アドレス情報出力手段で出力されたアドレスと、前記アドレス記憶手段で記憶されているアドレスとが一致したときに前記準同期要求信号を出力することとしてよい。
【0018】
これにより、プロセッサで実行しているプログラムにおいて、その時点で実行している命令のアドレスと、予め定められているアドレスの一致をもって準同期要求信号を出力するタイミングとすることができる。
また、前記準同期要求信号は、前記他の複数のプロセッサ各々が実行しているプログラム内において記述されている準同期要求信号を出力するための特殊命令を解釈実行する時点で出力されることとしてよい。
【0019】
これにより、予めプログラム内で準同期要求信号を出力する命令を組み込むことにより、アドレス一致を見るための回路とかなしに、準同期要求信号を出力することができる。
また、前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、前記一のプロセッサは、前記他の複数のプロセッサ各々が並列して行わせている所定の演算の結果と自己において実行している第1の演算の結果とを用いる第2の演算を行い、前記一のプロセッサは、前記第1の演算が終了したときに当該演算が終了したことを示す同期要求信号を出力する第1同期要求信号出力手段を備え、前記他の複数のプロセッサは、前記所定の演算が終了したときに当該演算が終了したことを示す同期要求信号を出力する第2同期要求信号出力手段を備え、前記電力制御手段は、前記一のプロセッサと前記他の複数のプロセッサとを含む全てのプロセッサが演算を終了していない場合に、同期要求信号を出力したプロセッサに対する電力の供給を抑制することとしてよい。
【0020】
これにより、一のプロセッサもまた他の複数のプロセッサとともに並列実行する演算の一部を受け持つことが可能となり、また、一のプロセッサが第1の演算を終了した時点を当該一のプロセッサへの電力の抑制タイミングにすることができる。
また、前記電力制御手段は、前記一のプロセッサ及び前記他の複数のプロセッサ各々に対してクロックを供給するクロック供給手段を備え、前記一のプロセッサと前記他の複数のプロセッサとを含む全てのプロセッサが演算を終了していない場合に、同期要求信号を出力したプロセッサに対するクロックの供給を停止することとしてよい。
【0021】
これにより、プロセッサに対するクロックの供給を停止することができる。プロセッサはクロックを供給されて動作することによって動作していない状態よりも電力を消費するが、この電力の消費を抑えることができるようになる。
また、一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させるマルチプロセッサ制御装置における制御方法であって、前記一のプロセッサに対して供給する電力を抑制する電力抑制ステップと、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが、当該演算を終了するより前に前記一のプロセッサに対する前記抑制を解除する解除ステップと、前記他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を前記一のプロセッサに開始させる実行制御ステップとを含むこととしてよい。
【0022】
この方法により、マルチプロセッサ制御装置は、一のプロセッサの電力制御を行うことができる。
また、マルチプロセッサを制御するための集積回路であって、一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、前記一のプロセッサに対して供給する電力を制御する電力制御手段とを備え、前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが当該演算を終了するより前に、前記一のプロセッサに対する前記抑制を解除するとしてよい。
【0023】
これにより、マルチプロセッサ制御装置に搭載される集積回路は、プロセッサへの電力制御を行うことができるようになる。
【発明を実施するための最良の形態】
【0024】
以下、本実施の形態に係るマルチプロセッサ制御装置について図面を用いて説明する。
<実施の形態1>
<構成>
図1に実施の形態1に係るマルチプロセッサ制御装置の機能構成を示したブロック図を示した。
【0025】
図1に示すように、マルチプロセッサ制御装置100は、PE110a、PE110b、PE110c、…、PE110n、同期制御部120、電力制御部130を含んで構成される。
各PEは、各々に与えられた演算を行う機能を有する。また、プログラム上において、それぞれ他のPEにおける演算の終了を待たねば次の処理に移行できない点(以下「同期ポイント」という)まで来た場合に、同期制御部120に同期要求信号SYNCを出力し、同期待ち解除信号ACKを受けるまで待機する機能を有する。
【0026】
同期制御部120は、図2に示すように、同期カウンタ201、同期確立判定部202、電力抑制判定部203、同期予測判定部204、シーケンサ205を含んで構成される。
同期カウンタ201は各PEからの同期要求信号SYNCを受信し、自己内のメモリに設定されている同期数を減算していく機能を有する。一つのPEから同期要求信号を受け取るたびにカウンタを1減算する。なお、同期カウンタ201の数は、最初PEの個数と同等の数に設定されており、その数が0になるたびにリセットされて同期に関係するPEの数nに更新する。また、受信した同期要求信号がどのPEから出力されたかの情報を電力抑制判定部203に出力する機能も有する。
【0027】
同期確立判定部202は、同期カウンタ201のカウントの数を監視しており、その数が「0」になったときにシーケンサ205に、同期確立信号ESTABLISHを出力する機能を有する。
電力抑制判定部203は、同期カウンタ201のカウントの数を監視しており、その数が「2以上」である場合に、同期カウンタから受け取ったPEの情報に基づいて、そのPEに対する電力の抑制を要求する信号SUPPRESSをシーケンサ205に出力する機能を有する。
【0028】
同期予測判定部204は、同期カウンタ201のカウントの数を監視しており、その数が「1」になったときに、シーケンサ205に同期予測信号ALMOSTを出力する機能を有する。
シーケンサ205は、同期待ち解除信号ACKを各PEに出力する機能と、電力制御部130を制御する信号である制御信号CTRL信号を出力する機能を有する。同期待ち解除信号ACKは、同期確立判定部202から出力される同期確立信号ESTABLISHを受けて出力される。また、電力抑制判定部203からのSUPPRESSを受けて、電力制御部130に電力を低消費電力化する信号CTRLを出力する。同期予測判定部204からALMOSTを受けた場合は、電力を抑制していたPEに対する抑制を解除する信号CTRLを出力する。
【0029】
電力制御部130は、電源電圧の降圧を行うための降圧器、及び降圧した電圧を再びもとの電圧に戻すための昇圧器を備え、各PEの電力を低消費電力にしたり通常電力に戻したりする切り替え機能を有する。ここでいう低消費電力の方法には2種類のモードがある。第1の低消費電力モード1は、クロック供給をカットし、且つ、電源電圧を演算の結果を記憶しているレジスタの情報が失われない程度の低電圧に降圧して供給する。第2の低消費電力モード2は、クロック供給のみをカットし、電源電圧は通常電圧を供給する。また、電力制御部130は、各PEに対して処理クロックを供給する機能も有する。また、同期制御部120の要請に基づき、どのPEに対して電力制限をしているかを示す状態信号STATUSを出力する機能も有する。
【0030】
以上がマルチプロセッサ制御装置100の各部の機能の説明である。
<データ>
ここから、マルチプロセッサ制御装置100で扱うデータについて説明する。
まず、電力制御部130では、各PEに対しての電力抑制の状態を管理しているが、その内容について、図3の電力抑制表300を用いて説明する。電力抑制表300は、PE番号301に対応して、クロック供給302の有無と、電力供給状態303を示す。
【0031】
クロック供給302の有無は文字通り各PEに対してクロックの供給を行っているかどうかを示す。また、電力供給状態は、各PEに対して通常の電力を供給しているのか、あるいは低電力を供給しているのかを示す。ここでは、わかりやすくするために、クロック供給302は、「有」と「無」で示し、電力供給状態303を、「通常電力」と「低消費電力」で示したが、実際には、それぞれ対応するレジスタの「1」及び「0」のデータで管理する。
【0032】
次に、各PEで実行されるプログラムの一例について図4を用いて説明する。
図4に示すのは、PEが扱うプログラム例400であり、実際の処理内容401(詳細記さず)、そして全ての処理が終了して同期ポイントまで来た時点で同期要求信号SYNCを発行するSYNC命令402と、そしてループ判定403とを含んで構成される。ここでループ判定403は必ずしも必要ではなくて、マルチプロセッサシステムでは、一つのPEにはループ演算をさせる場合が多いために記述したものである。プログラム例400は、上の命令から順に処理されていき、同期ポイントまで到達した時点でSYNC命令402がPEから同期制御部120に出力され、その時点でPEは、待機するようになっており、同期待ち解除信号ACKを受け取ったらループ判定403以降の処理を行う。
【0033】
<動作>
以降においては実施の形態1に係るマルチプロセッサ制御装置100の動作について説明していく。
まず、図5のフローチャートを用いて本実施の形態1に係るマルチプロセッサ制御装置100の動作を説明する。マルチプロセッサ制御装置100の動作は、基本的に同期制御部120の動作のそれと略同一なので、マルチプロセッサ制御装置100の動作として同期制御部120の動作を説明する。またここでは、全てのPEが同期ポイントが到達して、同期待ちが解除されるまでの動作についてを説明する。
【0034】
マルチプロセッサ制御装置100の各PEは、各々に与えられた処理を実行している。処理が終了したPEは、自己の処理が終了して同期待ちの状態であることを示す同期要求信号SYNCを、同期制御部120に出力する。
出力された同期要求信号SYNCを受け取った同期制御部120は(ステップS501)、自己の同期カウンタ201の数を1減少させる(ステップS503)。そして同期確立判定部202は、同期カウンタ201の数が0であるかどうかを判定する(ステップS505)。同期カウンタの201の数が0であった場合には(ステップS505のYES)、同期確立判定部202は同期確立信号ESTABLISHを発行し、それに基づいてシーケンサ205は、各PEに対してクロックを供給するように電力制御部130に制御信号CTRLを出力する。そして各PEに対して同期待ち解除信号ACKを出力する(ステップS507)。そして同期カウンタ201のカウント数をリセットしてPEの数と同じ数に戻して(ステップS509)終了する。
【0035】
ステップS505において同期カウンタ201の数が0でなかった場合(ステップS505のNO)、同期予測判定部204は、同期カウンタ201の数が1かどうかを判定する(ステップS511)。同期カウンタ201の数が1であった場合には(ステップS511のYES)、同期予測判定部204は、同期予測信号ALMOSTを発行する(ステップS513)。同期予測信号ALMOSTを受けたシーケンサ205は、その時に電力を抑制しているPEの状態の情報である状態信号STATUSを電力制御部130から取得して、電力制御部130に対して電力を抑制しているPEに対する抑制を解除する制御信号CTRLを出力する(ステップS515)。そして、同期要求信号SYNCを出力したPEに対して、クロックの供給を停止するクロック停止信号CTRLを電力制御部130に出力する(ステップS517)。その後にステップS501に戻り以降の処理を行う。
【0036】
ステップS511において、同期カウンタ201の数が1でなかった場合には(ステップS511のNO)、電力抑制判定部203は、受け取ったPEの情報に基づいて、そのPEに対する電力の抑制を要求する電力抑制信号SUPPRESSを発行する(ステップS519)。そしてシーケンサ205は、電力制御部130に、PEに対する電力を抑制するCTRL信号を出力する。そして電力制御部130は、受け取ったCTRL信号に基づき、指定されたPEに対する電力を低電力に降圧して、クロックの供給も停止する。そしてステップS501に戻り以降の処理を行う。
【0037】
以上がマルチプロセッサ制御装置100の動作である。
ここからマルチプロセッサ制御装置100の動作を具体例を挙げて説明する。
図6にその動作例を示したタイミングチャートを記した。ここに示すタイミングチャートでは、PE110aが最初に自己の処理を終了したPEであり、PE110bがその次となる。そしてPE110nが最後から2つ目に処理を終了するPEであり、PE110cが最後に処理を終了するPEであるとする。
【0038】
まずPE110aがプログラム中の同期ポイントまで到達し、同期要求信号SYNCaを出力する(ステップS611)。同期要求信号SYNCaを受けた同期制御部120は同期カウンタ201をnからn−1に減算する(ステップS651)。同期制御部120は、電力制御部130に対して同期要求信号SYNCaを出力したPE110aに対する電力を抑制する制御信号CTRLを出力する(ステップS652)。PE110aでは、同期制御部120からの指示により電力制御部130からの供給される電力が低電力になり、クロックの供給も停止される(ステップS613)。
【0039】
次に、PE110bが、同期ポイントまで到達し、同期要求信号SYNCbを同期制御部120に出力する(ステップS621)。同期要求信号SYNCbを受け取った同期制御部120は、同期カウンタ201の数を1減算してn−2にする(ステップS653)。同期制御部120は、電力制御部130に対して同期要求信号SYNCbを出力したPE110bに対する電力抑制を行う制御信号を出力する(ステップS654)そしてPE110bは、電力制御部130から供給される電力が低電力になり、またクロックの供給も停止される(ステップS623)。
【0040】
以降、PE110cとPE110nを除く各PEが同期要求信号SYNCを出力して、低消費電力モード1に移行する。
そして、PE110nが同期ポイントに到達し、同期要求信号SYNCnを同期制御部120に出力する(ステップS641)。同期要求信号SYNCnを受けた同期制御部120は、同期カウンタ201の数を1減算して1に設定する(ステップS655)。同期制御部120は、電力制御部130に対して、同期要求信号SYNCnを出力したPE110nに対するクロック供給を停止する制御信号CTRLを出力する(ステップS656)。するとPE110nは電力制御部130からはクロックの供給がなされない低消費電力モード2に移行する(ステップS642)。また、同期予測判定部204は、同期カウンタ201の数が1になったのを見て同期準備信号ALMOSTをシーケンサ205に発行する。シーケンサ205は、状態信号STATUSに基づいて、電力制御部130に、電源を抑制していたPEに対しての電力の抑制を解除させる(ステップS657)。
【0041】
そして電力を抑制されていたPEは、通常電力が供給される(ステップS661)。なお、クロックは供給されていない。また、同期要求信号SYNCnを出力したPE110nに対しては、電力制御部130はクロックの供給のみを停止し、低電力供給にはしない(ステップS642)。
そして、各PEは、まだ同期ポイントまで到達していないPE110cが同期ポイントに到達するまで待機する。
【0042】
PE110cは同期ポイントに到達すると、同期要求信号SYNCcを同期制御部120に出力する(ステップS631)。すると同期制御部120は、同期カウンタ201の数を1減算して0にする(ステップS658)。同期カウンタ201の数が0になったのを確認した同期確立判定部202は、同期確立信号ESTABLISHをシーケンサ205に出力する。同期確立信号ESTABLISHを受けたシーケンサ205は、電力制御部130に各PEに対してのクロックの供給を再開させる制御信号CTRLとともに、同期待ち解除信号ACKを各PEに出力する(ステップS659)。各PEは、同期待ち解除信号ACKを受けて、待機状態を解除され、以降の演算を行う(ステップS671)。また、同期待ち解除信号ACKを出力した同期制御部120は、同期カウンタ201の数をPEの数に相当するnにリセットして(ステップS660)、以降の処理を行う。
【0043】
以上が図6のタイミングチャートの説明である。なお図中で矢印が破線になっているのは、その指示が同期制御部120から直接ではなく電力制御部130を介して行われているためである。
<実施の形態1変形例>
実施例1においては、各PEに対する電力を低下することで省電力化を図ったが、実施の形態1変形例においては、同期ポイントまできたPEに対する電力を低下させるのではなく、完全に遮断する場合についてを説明する。電力供給を完全に遮断することでより大きな省電力の効果を得られる可能性がある。
【0044】
<構成>
図7に実施の形態1変形例のマルチプロセッサ制御装置700の機能構成を示したブロック図を記した。
主な機能は実施の形態1と同じなので、ここでは実施の形態1とは異なる点を述べていく。
【0045】
まず、各PEについて実施の形態1と異なる点を説明する。実施の形態1変形例においては各PEは、同期ポイントまで到達すると、まだ演算を行っているPEがある場合には、完全に電力が遮断してしまうために、同期ポイントにおける演算の結果の状態を示したコンテキスト(主にはレジスタの値)が失われる。そのために、このコンテキストを退避させておく必要がある。各PEは、同期要求信号SYNCを発行した際に、自機が最後に同期要求信号SYNCを出力したPEもしくはその1つ前のPEでない限り、コンテキストを、別の不揮発性メモリなど(図示せず)に退避させておく機能を有する。また、電力の供給が再開されたら当該コンテキストを読み出して自身に反映させる機能を有する。
【0046】
また、同期制御部720においては、同期予測判定部803がALMOSTを発行した場合にシーケンサ805は、電力の復旧を促す制御信号CTRLを電力制御部730に出力した後に、PEに対してコンテキスト復旧を促す信号PREPを、電力制御部730から演算を実行しているPEが残り2個の状態におけるそれ以外のPEの情報を示す状態信号STATUSを受けて、電力を抑制していたPEに対して出力する機能を有する。
【0047】
そして電力制御部730は、同期制御部720の指示に基づいて、同期要求信号SYNCを出力したPEに対して電力を低電力にするのではなく、完全に電力供給を断つ機能を有する。そして、同期制御部720の指示に基づき、電力の供給を断っていたPEに対して電力の供給を再開する。なお、電力の供給を再開されたPEでは電源電圧の安定化に、長ければ、処理クロックに換算して1000サイクル弱の時間を要する。ここでクロックの供給、及び電力の供給両方を断つ低消費電力モードを低消費電力モード3とする。
【0048】
<動作>
実施の形態1の変形例に係るマルチプロセッサ制御装置700の動作を図9のフローチャートに示してある。ここでは、実施例1変形例のマルチプロセッサ制御装置700の動作は実施例1のそれと殆ど変わらず相違点のみを述べる。
図に示すように、ステップS919の内容が実施例1のステップS519と異なっている。実施例1においては、電力抑制信号を出力して電力制御部130に低電力を供給する制御信号を出力したが、本実施例においては、電力停止信号を出力する。電力停止信号を出力された電力制御部730は、同期要求信号を出力したPEに対する電力の供給を、コンテキスト退避を待って、停止する。
【0049】
その他の動作については、実施例1のものとかわらない。
図10には実施例1で図6に示したタイミングチャートを本実施例に即して変更したタイミングチャートを示している。
図10にあるように、実施例1のタイミングチャートと異なり、PEは同期要求信号を発して後に、コンテキスト退避を行っており(ステップS1012、S1022)、その後に低消費電力モード3に移行している(ステップS1013、S1023)。また、電力の供給が再開され(ステップS1071)、電圧値が安定した後にコンテキスト復旧を行っている(ステップS1072)。以上の点が実施例1と異なる点である。
<実施の形態2>
実施の形態1及び実施の形態1の変形例においては、少なくとも3以上のPEがなくては効果を発揮しない。そこで実施の形態2においては、PE数が2の場合であっても効果を発揮するマルチプロセッサ制御装置を提供する。
【0050】
<構成>
図11に実施の形態2に係るマルチプロセッサ制御装置1100の機能構成を示した。
同図にあるように、マルチプロセッサ制御装置1100は、PE1110a、PE1110b、…PE1110nと、同期制御部1120と、電力制御部1130と、キャッシュメモリ1140a、1140b、…1140nと、準同期要求信号生成部1150a、1150b、…1150nと、共有メモリ1160とを含んで構成される。
【0051】
PE1100a、1100b、…、1100nは、各々に与えられた演算を行う機能の他、自機においてPEが実行している命令のアドレス信号を出力する機能を有する。
同期制御部1120は、主に電力制御部130を制御する機能を有する。その機能構成は図12に示すようになっている。図12に示すように同期制御部1120は、同期カウンタ1201と、同期確立判定部1202と、電力抑制判定部1203と、同期予測判定部1204と、シーケンサ1205と、準同期カウンタ1206とを含んで構成される。
【0052】
同期カウンタ1201は各PEからの同期要求信号SYNCを受信し、自己内のメモリに設定されている同期数を減算していく機能を有する。一つのPEから同期要求信号を受け取るたびにカウンタを1減算する。なお、同期カウンタ1201の数は、最初PEの個数と同等の数に設定されており、その数が0になるたびにリセットされて同期に関係するPEの数nに更新する。また、受信した同期要求信号がどのPEから出力されたかの情報を電力抑制判定部1203に出力する機能も有する。
【0053】
同期確立判定部1202は、同期カウンタ1201のカウントの数を監視しており、その数が「0」になったときにシーケンサ1205に、同期確立信号ESTABLISHを出力する機能を有する。
電力抑制判定部1203は、同期カウンタ1201のカウントの数を監視しており、その数が「2以上」である場合に、同期カウンタから受け取ったPEの情報に基づいて、そのPEに対する電力の抑制を要求する信号SUPPRESSをシーケンサ1205に出力する機能を有する。
【0054】
同期予測判定部1204は、同期カウンタ1201のカウントの数を監視しており、その数が「1」になったときに、シーケンサ1205に同期予測信号ALMOSTを出力する機能を有する。
シーケンサ1205は、同期待ち解除信号ACKを各PEに出力する機能と、電力制御部130を制御する制御信号CTRLを出力する機能を有する。ACKは、同期確立判定部1202から出力されるESTABLISHを受けて出力される。また、電力抑制判定部1203からのSUPPRESSを受けて、電力制御部1130に電力を低消費電力化する制御信号CTRLを出力する。同期予測判定部1204からALMOSTを受けた場合は、電力を抑制していたPEに対する抑制を解除する信号CTRLを出力する。
【0055】
準同期カウンタ1206は、PEから準同期要求信号PRESYNCを受けるたびに、保持していた値を1減算して記憶しなおす機能を有する。また、準同期カウンタ1206の数は、最初PEの個数と同等の数に設定されており、その数が0になるたびにリセットされて同期に関係するPEの数nに更新する。
電力制御部1130は、同期制御部1120の指示に基づいて、各PEに対してクロックと電力を供給したり、遮断したりする機能を有する。また、同期制御部1120の要求に応じて、どのPEに対して電力及びクロックの抑制を行っているかを示した状態信号STATUSを出力する機能を有する。
【0056】
キャッシュメモリ1140a、1140b、…1140nは、それぞれで実行された演算の結果を共有メモリ1160への書き込む際の競合を防ぐためにデータを一時的に格納するためのバッファである。このキャッシュメモリに他のPEで演算に必要なデータがある場合には、共有メモリ1160ではなく、直接データのあるキャッシュメモリにアクセスしてデータを取得することもある。
【0057】
準同期信号生成部1150a、1150b、…1150nは、各々のPEで演算が同期ポイントより少し前の準同期ポイントに来た時点で準同期要求信号を出力する機能を有する。具体的には、図13に示すように、準同期アドレスレジスタ1301と、アドレス一致判定部1302とを含んで構成される。ここでは準同期生セイブ1150nを例にしているが、全てのPEが略同一の構成を有する。準同期アドレスレジスタ1301は、PEで実行されるプログラムのなかで同期ポインタに到達する前に実行される命令のアドレスを記憶している。アドレス一致判定部1302は、準同期アドレスレジスタ1301に記憶されているアドレスと、アドレスバスに出力されているADDRnとが一致するかどうかを監視しており、一致する場合に、準同期要求信号を出力する。
【0058】
なお準同期アドレスレジスタ1301に設定されるアドレスは、電源電圧の安定化に必要なための時間が長い場合を考えて、およそ処理クロック換算で1000サイクルぐらい前の命令のアドレスに設定されることが望ましい。
共有メモリ1160は、マルチプロセッサ全体で行われている演算の各変数を管理する機能を有する。各変数はPEの演算結果により、必要なときにそれぞれのPEによって書き換えられていく。共有メモリ1160には、アクセス競合を防ぐために、基本的に一時に一つのPEからのみの書き込みが許されている。
【0059】
なお、キャッシュメモリ及び共有メモリ1160は一般的な共有メモリ型のマルチプロセッサシステムに必要な構成として示しており、本実施の形態における主部分には必ずしも必要ではない。
<動作>
次に、実施の形態2に係るマルチプロセッサ制御装置1100の動作について説明する。
【0060】
図14に、マルチプロセッサ制御装置1100の動作のフローチャートを示した。このフローチャートは実施の形態1と同様に同期制御部1120の動作をマルチプロセッサ制御装置1100の動作として説明する。
まず、同期制御部1120は、同期要求信号SYNC、あるいは準同期要求信号PRESYNCを受信する(ステップS1401)。受信したのが同期要求信号SYNCであった場合(ステップS1401のYES)には、同期カウンタ1201の数を1減少させる(ステップS1405)。そして同期確立判定部1202は、同期カウンタ1201の数が0であるかどうかを判定する(ステップS1407)。
【0061】
同期カウンタ1201の数が0であった場合には(ステップS1407のYES)、各PEに対してクロックの供給を電力制御部1130に再開させると共に、同期待ち解除信号ACKを各PEに対して出力する(ステップS1409)。そして同期カウンタ1201をリセットして終了する(ステップS1411)。
受信したのが準同期要求信号だった場合には(ステップS1403のNO)、準同期カウンタ1206を1減算する(ステップS1413)。そして同期予測判定部1204は、準同期カウンタ1206の数が0であるかどうかを監視している(ステップS1415)。0であった場合には、同期予測信号ALMOSTをシーケンサ1205に出力する。そしてシーケンサ1205は、電力制御部1130に電力を抑制しているPEに対して電力を解除する制御信号CTRLを出力する(ステップS1417)。そして準同期カウンタ1206の数をリセットしてPEと同数に設定しなおして(ステップS1419)、ステップS1401に戻って以降の処理を行う。
【0062】
ステップS1407において同期カウンタ1201の数が0でなかった場合には、同期要求信号を出力したPEに対して電力を抑制する制御信号CTRLを出力する(ステップS1421)。そしてステップS1401に戻って以降の処理を行う。
次に、準同期要求信号生成部1150の動作について図15に示すフローチャートに基づいて記述する。
【0063】
準同期アドレス一致判定部1302は、アドレスバスに流れているアドレスの信号と、準同期アドレスレジスタ1301のアドレスとが一致しているかを判定する(ステップS1501)。一致していない場合には(ステップS1501のNO)ステップS1501に戻って、アドレスバスに新たなアドレス信号が流れるたびに比較を行う。
一致していた場合には(ステップS1501のYES)、準同期アドレス一致判定部1302は、準同期ポイントに演算が到達していることを示す準同期要求信号PRESYNCを同期制御部1120に出力して終了する。
【0064】
以上が準同期要求信号生成部1150の動作である。
ここからマルチプロセッサ制御装置1100の動作を具体例を挙げて説明する。
図16にその動作例を示したタイミングチャートを記した。ここに示すタイミングチャートでは、PE1110aが最初に自己の処理を終了したPEであり、PE1110nがその次となる。そしてPE1110bが最後に処理を終了するPEであるとする。
【0065】
準同期要求信号生成部1150aにおいて、準同期アドレス一致判定部がアドレスバスのアドレス信号ADDRaと、準同期アドレスレジスタ1301aに記憶されているアドレスとが一致して準同期要求信号PRESYNCa同期制御部1120に出力される(ステップS1611)。準同期要求信号PRESYNCaを受けた同期制御部1120は、準同期カウンタ1206の数を1減算してn−1に設定する(ステップS1641)。
【0066】
次に、同期ポイントに到達したPE1110aは、同期要求信号SYNCaを同期制御部1120に出力する(ステップS1643)。同期要求信号SYNCaを受けた同期制御部1120は、同期カウンタ1201の数を1減算してn−1に設定する(ステップS1642)。そして電力抑制判定部1203は、電力抑制信号SUPPRESSをシーケンサ1205に出力する。そしてシーケンサ1205は、電力制御部1130に対してPE1110aに対する電力を抑制する制御信号CTRLを出力する(ステップS1643)。電力制御部1130は、当該制御信号CTRLに基づいてPE1110aに対して電圧を高圧して低電力にし、クロックの供給を停止する。電力とクロックを抑制されてPE1110aは低消費電力モード1に移行する(ステップS1613)。
【0067】
PE1110aの次にPE1110nが準同期ポイントに到達すると、準同期要求信号生成部1150nは、準同期要求信号PRESYNCnを同期制御部1120に出力する(ステップS1631)。準同期要求信号PRESYNCnを受けた同期制御部1120は、準同期カウンタ1206の数を1減算してn−2に設定する(ステップS1644)。
PE1110nは、同期ポイントに到達すると、同期要求信号SYNCnを同期制御部1120に出力する(ステップS1632)。同期要求信号SYNCn受けた同期制御部1120は、同期カウンタ1201の数を1減算してn−2に設定する(ステップS1645)。すると、電力抑制判定部1203は、PE1110nに対する電力を抑制する電力抑制信号SUPPRESSをシーケンサ1205に出力する。そしてシーケンサ1205は、電力制御部1130に、PE1110nに対して電力を抑制する制御信号CTRLを出力する(ステップS1646)。当該制御信号CTRLを受けて電力制御部1130は、PE1110nに対する電力を低電力にし、クロックの供給を停止する。そうされることでPE1110nは、低消費電力モード1に移行する。
【0068】
以下、PE1110b以外のPEが準同期ポイントに到達するたびに、準同期カウンタ1206の数値が減算される。また、同期ポイントに到達するたびに同期カウンタ1201の数値が減算され、同期要求信号を出力したPEに対する電力の抑制が行われる。
最後にPE1110bが準同期ポイントに到達すると準同期信号生成部1150bが準同期要求信号PRESYNCbを同期制御部1120に出力する(ステップS1621)。準同期要求信号PRESYNCbを受けて同期制御部1120は、準同期カウンタ1206の数を1減算して0に設定する(ステップS1647)。準同期カウンタ1206の数が0になったのをみて、同期予測判定部1204は、同期予測信号ALMOSTをシーケンサ1205に出力する。そしてシーケンサ1205は電力制御部1130から電力を抑制しているPEの情報である状態信号STATUSを受けて、電力を抑制しているPEに対する電力の抑制を解除する制御信号CTRLを出力する。また準同期カウンタ1206の数がリセットされ、PEと同数であるnに戻る(ステップS1648)。電力制御部1130により電力の抑制を解除されたPEには通常電力が供給されるようになる(ステップS1614、S1634)。
【0069】
PE1110bが同期ポイントに到達すると、同期要求信号SYNCbが同期制御部1120に出力される(ステップS1622)。最後の同期要求信号SYNCbを受けた同期制御部1120は同期カウンタ1201の数を1減算して0に設定する(ステップS1649)。同期カウンタ1201の数が0になったのを見て、同期確立判定部1202は、同期確立信号ESTABLISHを発行する。シーケンサ1205は、電力制御部1130にクロックの供給を再開する制御信号CTRLを出力し、また、各PEに対して同期待ち解除信号ACKを出力する。また、同期カウンタ1201の数をリセットし、nに戻す(ステップS1650)。
【0070】
同期解除信号ACKを受けた各PEは、同期ポイント以降の処理を行う(ステップS1660)。
以上が図16のタイミングチャートに基づくマルチプロセッサ制御装置1100の具体的な動作である。
<実施の形態2変形例>
実施の形態2変形例においては、実施の形態1変形例と同様に、電力の供給を完全に断つ構成について説明する。
【0071】
主な構成及び動作については基本的に実施の形態2と同じであるので、説明を省き、実施の形態2と異なる点についてを説明する。
<構成>
図17に実施の形態2変形例に係るマルチプロセッサ制御装置1700の機能構成を示した。
【0072】
本変形例におけるマルチプロセッサ制御装置1700は、実施の形態2と略同一の構成を有する。実施の形態2と異なる点は同期制御部1730から各PEに対して同期準備信号PREPが出力されるバス線を備えている点にある。ここで同期準備信号PREPは、電力を落とされていたPEに対してコンテキスト復旧を促すための信号である。
また、同期制御部1720のシーケンサ1805が、同期準備信号PREPを出力する構成になっている。電力制御部1730からの状態信号STATUSに基づいて、各PEで電力が再度供給されて電源電圧が安定化した後に出力される。
【0073】
準同期要求信号生成部1750a、1750b、…、1750nの準同期アドレスレジスタの準同期アドレスレジスタのアドレスは、電源安定化の時間に加えてコンテキスト復旧のための時間も考慮して設定する。なおコンテキスト復旧のために必要な時間は処理クロックのサイクル換算で、長いと100サイクルほどかかる。よって電力安定化とコンテキスト復旧にかかる1100サイクル前の命令アドレスに設定するのが望ましい。
【0074】
<動作>
実施の形態2変形例に係るマルチプロセッサ制御装置1700の動作について図19のフローチャートを用いて説明する。基本的な動作は実施の形態2と変わらないため、その相違点のみを述べる。
図19において、実施の形態2の図14におけるフローチャートのステップS1417と異なり、ステップS1917において同期制御部1720は、電力を遮断していた各PEに対してコンテキスト復旧を促す同期準備信号PREPを出力している。
【0075】
そのほかの動作については実施の形態2のものとかわらない。
実施例2の図16に示したタイミングチャートを実施の形態2変形例に即した形で記述すると図20のタイミングチャートのようになる。
図16のタイミングチャートと、図20のタイミングチャートとを比較すると分かるように、実施の形態2変形例においてはPE1710aやPE1710nにおいてコンテキスト退避を行っている(ステップS2013、ステップS2033)。また、電力の供給を再開したPE(ステップ2015)はその電源電圧の安定を待って、同期制御部1720から出力される同期準備信号PREPに基づき、コンテキスト復旧を行っている(ステップS2016)。
【0076】
以上2点が実施の形態2と異なる点である。
<補足>
なお、本発明に係るマルチプロセッサを上記実施の形態に基づいて説明してきたが、本発明は上記実施の形態に限られないことは勿論である。以下、その変形例について説明していく。
【0077】
(1)上記実施の形態においては、同期制御部は、同期カウンタや準同期カウンタを備えたが、別に同期カウンタや同期予測カウンタを備えなくてもよい。例えば、同期制御部を図22に示すような構成してもよい。同図にあるように、同期カウンタや同期予測カウンタの替わりに、各PEそれぞれに対しての同期要求信号SYNCのバス線を備える構成にしてよい。準同期カウンタも同様に準同期要求信号PRESYNCのバス線を供える構成にする事ができる(図示せず)。
【0078】
このような場合、同期予測判定部の構成は、例えば図23(a)に示すような回路構成にしてもよい。図においては、簡略化するためにPEがPEa、PEb、PEc、PEdの4個がある場合を示している。
図23(a)にあるように、同期予測判定部はAND回路とOR回路で構成できる。各AND回路にはそれぞれ、1つを除く全てのPEからの同期要求信号が供給される。例えばAND回路2300aにはPEaからの同期要求信号SYNCa、PEbからの同期要求信号SYNCb、PEcからの同期要求信号SYNCcが供給される。AND回路のいずれかに3つの信号が供給されることでOR回路に「1」を意味する信号が出力される。こうして同期がまもなく確立することを示す同期予測信号ALMOSTが出力できるようになる。
【0079】
また、この場合の同期確立判定部の構成の一例を図23(b)に示しておいた。
電力抑制判定部は、図23(a)におけるOR回路をNOR回路にすることで実現できる。
(2)上記実施の形態1及びその変形例において同期予測判定部は同期カウンタが1になったときに同期予測信号ALMOSTを出力したが、これは別に同期カウンタが1のときでなくてもよく、同期カウンタが2、あるいは3のときにALMOSTを出力することとしてもよい。こうすることで電源電圧安定化のための時間に余裕を持たせることができるようになる。また、最後に残った2つが同時に演算を終了するような場合にも対応することができるようになる。
【0080】
(3)上記実施の形態2においては準同期要求信号生成部を設けて準同期要求信号を出力させたが、各PEに準同期要求信号を出力するポートを設けて出力させてもよい。そして各PEで実行されるプログラム中に準同期要求信号を生成する命令を挿入して準同期要求信号を出力するタイミングを決定してもよい。図21にこの場合のプログラム例2100を示しておいた。本実施例におけるようなマルチプロセッサシステムでは、PRESYNC命令からSYNC命令までの実行サイクル数を予め見積もれる可能性が高い。そこで、電源復旧に必要な実行サイクル数(約1000サイクル)、そして必要ならばコンテキスト復旧に必要なサイクル数(約100サイクル)を考慮してPRESYNC命令を挿入することで準同期要求信号を出力する。
【0081】
このPRESYNC命令を挿入する場合、SYNC命令の1000もしくは1100サイクル前がループ演算あるいは分岐演算に当たる場合はそのことも踏まえてプログラムを記述する必要がある。
(4)上記実施の形態2及びその変形例においては、準同期要求信号の出力タイミングの設定は同期要求信号を出力する1000サイクル前、あるいは1100サイクル前としたが、これは必ずしもその限りではない。場合によっては1000サイクル以内で演算が終了することも考えられるので、その場合には1000サイクルを下回ってもよいこととする。
【0082】
(5)上記実施の形態1及びその変形例においては、その機能構成を図1のようにしたが、これを図24に示すように構成してもよい。
図24においては、各PEに対して同期制御部を備える構成としている。この場合各同期制御部2440a、2440b、2440c、…2440nは、自機が接続されているPE以外のPEからの同期要求信号の出力状態を、バス線を通じて知ることができる。このように、同期制御部2440を分散制御することも考えられる。この構成によっても実施の形態1及びその変形例と同様の効果を得ることが可能である。
【0083】
(6)マルチプロセッサ制御装置を構成する各部は、LSI(Large Scale Integration)、VLSI(Very Large Scale Integration)等の一部又は全部として実現されてもよく、複数のLSI等で実現されてもよく、一又は複数のLSI等と他の回路の組み合わせとにより実現されてもよい。
(7)上記実施の形態の低消費電力モード1において、その電圧は、演算の結果を示したレジスタの情報が失われない程度の低電圧としたが、半導体の漏れ(リーク)電流による電力消費を削減するために、閾値電圧を高めに設定してもよい。ここでいう閾値電圧とはその値を超える電圧が加えられると回路に電流が流れるように設定されている電圧値で、この値が低いと漏れ電流が発生しやすくなる。半導体プロセスの微細化にしたがって、消費される電力の内で漏れ電流の占める割合が大きくなるため、閾値電圧を高めにすることでこの漏れをある程度防ぐことができる。
【0084】
(8)上記実施の形態においては、同期カウンタ及び準同期カウンタは、減算していく形式で出力された同期要求信号及び準同期要求信号の数を計算していたが、これを加算する形式にしても良い。この場合、例えば上記実施の形態1を例にとると、同期カウンタ201は、その数値を0から開始して同期要求信号を受け取るたびに1加算していき、同期予測判定部204は同期カウンタ201の数がn−1になったときに同期予測信号ALMOSTを出力する構成になる。また同期確立判定部202は、同期カウンタの数がnになったときに同期確立信号ESTABLISHを出力することになる。
【0085】
(9)上記実施の形態においては特に記述しなかったが、同期カウンタは、一時に1つの同期要求信号しか受け取れない構成にすることが望ましい。また、準同期カウンタも同様に一時に1つの準同期要求信号しか受け取れない構成にすることが望ましい。
【産業上の利用可能性】
【0086】
本発明に係るマルチプロセッサ制御装置は、大容量演算を行う並列システムなどにおいて利用することができる。
【図面の簡単な説明】
【0087】
【図1】実施の形態1に係るマルチプロセッサシステムの機能構成を示したブロック図である。
【図2】実施の形態1に係る同期制御部の機能構成を示したブロック図である。
【図3】電力制御部が保持する各PE(Processor Element)の電力供給状態の一例を示した真理値表である。
【図4】PEが実行するプログラムの構成の一例を示した図である。
【図5】実施の形態1に係るマルチプロセッサ制御装置の動作を示したフローチャートである。
【図6】実施の形態1に係るマルチプロセッサ制御装置の各PEと同期制御部の動作例を示したタイミングチャートである。
【図7】実施の形態1の変形例に係るマルチプロセッサ制御装置の機能構成を示したブロック図である。
【図8】実施の形態1の変形例に係る同期制御部の機能構成を示したブロック図である。
【図9】実施の形態1の変形例に係るマルチプロセッサ制御装置の動作を示したフローチャートである。
【図10】実施の形態1の変形例に係るマルチプロセッサ制御装置の各PEと同期制御部の動作例を示したタイミングチャートである。
【図11】実施の形態2に係るマルチプロセッサ制御装置の機能構成を示したブロック図である。
【図12】実施の形態2に係る同期制御部の機能構成を示したブロック図である。
【図13】図13は、実施の形態2に係る準同期要求信号生成部の機能構成を示したブロック図である。
【図14】実施の形態2に係るマルチプロセッサ制御装置の動作を示したフローチャートである。
【図15】準同期要求信号生成部の動作を示したフローチャートである。
【図16】実施の形態2における各PE及び同期制御部の動作のタイミングの一例を示したタイミングチャートである。
【図17】実施の形態2の変形例に係るマルチプロセッサ制御装置の機能構成を示したブロック図である。
【図18】実施の形態2の変形例に係る同期制御部の機能構成を示したブロック図である。
【図19】実施の形態2の変形例に係るマルチプロセッサ制御装置の動作を示したフローチャートである。
【図20】実施の形態2の変形例に係るマルチプロセッサの動作例を示したタイミングチャートである。
【図21】実施の形態2に係るマルチプロセッサが実行するプログラムの例を示した図である。
【図22】同期制御部の機能構成の変形例を示したブロック図である。
【図23】同期予測判定部や同期確立判定部の機能構成の一例を示したブロック図である。
【図24】実施の形態1の機能構成の変形例を示したブロック図である。
【符号の説明】
【0088】
100 マルチプロセッサ制御装置
110a、110b、110c、…、110n PE
120 同期制御部
130 電力制御部
201 同期カウンタ
202 同期確立判定部
203 電力抑制判定部
204 同期予測判定部
205 シーケンサ
700 マルチプロセッサ制御装置
710a、710b、710c、…、710n PE
720 同期制御部
730 電力制御部
801 同期カウンタ
802 同期確立判定部
803 電力抑制判定部
804 同期予測判定部
805 シーケンサ
1100 マルチプロセッサ制御装置
1110a、1110b、…、1110n PE
1120 同期制御部
1130 電力制御部
1140a、1140b、…、1140n キャッシュメモリ
1150 準同期要求信号生成部
1160 共有メモリ
1201 同期カウンタ
1202 同期確立判定部
1203 電力抑制判定部
1204 同期予測判定部
1205 シーケンサ
1206 準同期カウンタ
1301 準同期アドレスレジスタ
1302 アドレス一致判定部
1700 マルチプロセッサ制御装置
1710a、1710b、…、1710n PE
1720 同期制御部
1730 電力制御部
1740a、1740b、…、1740n キャッシュメモリ
1750 準同期要求信号生成部
1760 共有メモリ
1801 同期カウンタ
1802 同期確立判定部
1803 電力抑制判定部
1804 同期予測判定部
1805 シーケンサ
1806 準同期カウンタ
2300a、2300b、2300c、2300d AND回路
2310、2320 OR回路
2400 マルチプロセッサ制御装置
2410a、2410b、2410c、…、2410n PE
2430 電力制御部
2440a、2440b、2440c、…、2440n 同期制御部

【特許請求の範囲】
【請求項1】
一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている所定の演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、
前記一のプロセッサに対して電力の供給を制御する電力制御手段とを備え、
前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが当該演算を終了するより前に、前記一のプロセッサに対する前記抑制を解除する
ことを特徴とするマルチプロセッサ制御装置。
【請求項2】
前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、
前記他の複数のプロセッサ各々は、自己における所定の演算が終了したことを示す同期要求信号を出力する同期要求信号出力手段を備え、
前記実行制御手段は、出力された同期要求信号の数が前記他の複数のプロセッサの数に満たない所定の数になった時点で前記抑制を解除するための解除信号を出力する解除信号出力手段を備え、
前記電力制御手段は、前記解除信号を受けて前記抑制を解除する
ことを特徴とする請求項1記載のマルチプロセッサ制御装置。
【請求項3】
前記解除信号出力手段は、
前記他の複数のプロセッサが前記所定の演算を開始してから出力された前記同期要求信号の数を数えるカウント手段を備え、
前記カウント手段でカウントされる前記同期要求信号の数が前記他の複数のプロセッサの数に1足りなくなった時点で前記解除信号を出力する
ことを特徴とする請求項2記載のマルチプロセッサ制御装置。
【請求項4】
前記実行制御手段は、前記同期要求信号が最後もしくは最後から1つ前に演算を終了するプロセッサのものでない限り、前記同期要求信号を出力したプロセッサを示すプロセッサ情報を出力するプロセッサ情報出力手段を備え、
前記電力制御手段は、前記プロセッサ情報を受けて、前記プロセッサ情報で示されるプロセッサに対して電力の供給を抑制し、当該抑制を前記一のプロセッサに対する電力の抑制を解除するときに解除する
ことを特徴とする請求項2記載のマルチプロセッサ制御装置。
【請求項5】
前記電力抑制手段は、
前記一のプロセッサ及び前記他の複数のプロセッサ各々に通常よりも低い低電力を供給する低電力供給手段と、
通常の電力を供給する通常電力供給手段とを備え、
前記電力制御手段は、プロセッサに対して、前記低電力供給手段によって低電力を供給することで電力を抑制し、
前記通常電力供給手段によって通常電力を供給することで抑制を解除する
ことを特徴とする請求の範囲項4記載のマルチプロセッサ制御装置。
【請求項6】
前記電力抑制手段は、プロセッサに対する電力の供給を停止することで抑制し、
前記他の複数のプロセッサ各々は、
前記同期要求信号を出力した後に、電力の抑制がなされる前に自己におけるレジスタの情報であるコンテキストを、メモリに退避させる退避手段と、
前記電力抑制手段が当該他の複数のプロセッサに対する電力の抑制を解除した後に、前記退避手段で退避したコンテキストを前記他のメモリから読み出して自プロセッサに復元する復元手段とを備える
ことを特徴とする請求項4記載のマルチプロセッサ制御装置。
【請求項7】
前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、
前記他の複数のプロセッサ各々は、自己において行う演算が終了までにあと所定の命令数を残す段階まで到達したことを示す準同期要求信号を出力する準同期要求信号出力手段を備え、
前記実行制御手段は、前記他の複数のプロセッサ全てが準同期要求信号を出力した時点で前記抑制を解除するための解除信号を出力する解除信号出力手段を備え、
前記電力制御手段は、前記解除信号を受けて前記抑制を解除する
ことを特徴とする請求項1記載のマルチプロセッサ制御装置。
【請求項8】
前記他の複数のプロセッサ各々は、更に、自己における演算が終了したことを示す同期要求信号を出力する同期要求信号出力手段を備え、
前記実行制御手段は、前記同期要求信号を出力したプロセッサが、最後に演算を終了するプロセッサでない限り、前記同期要求信号を出力したプロセッサを示すプロセッサ情報を出力するプロセッサ情報出力手段を備え、
前記電力制御手段は、前記プロセッサ情報を受けて、前記プロセッサ情報で示されるプロセッサに対して電力の供給を抑制し、当該抑制を前記一のプロセッサに対する電力の抑制を解除するときに解除する
ことを特徴とする請求項7記載のマルチプロセッサ制御装置。
【請求項9】
前記他の複数のプロセッサは、自己が現在実行している命令のアドレス情報を出力するアドレス情報出力手段と、
予め定められた所定のアドレスを記憶しておくアドレス記憶手段とを備え、
前記アドレス情報出力手段で出力されたアドレスと、前記アドレス記憶手段で記憶されているアドレスとが一致したときに前記準同期要求信号を出力する
ことを特徴とする請求項7記載のマルチプロセッサ制御装置。
【請求項10】
前記準同期要求信号は、前記他の複数のプロセッサ各々が実行しているプログラム内において記述されている準同期要求信号を出力するための特殊命令を解釈実行する時点で出力される
ことを特徴とする請求項7記載のマルチプロセッサ制御装置。
【請求項11】
前記電力抑制手段は、前記一のプロセッサ及び前記他の複数のプロセッサ各々に通常よりも低い低電力を供給する低電力供給手段と、
通常の電力を供給する通常電力供給手段とを備え、
前記電力制御手段は、プロセッサに対して、前記低電力供給手段によって低電力を供給することで電力を抑制し、
前記通常電力供給手段によって通常電力を供給することで抑制を解除する
ことを特徴とする請求項8記載のマルチプロセッサ制御装置。
【請求項12】
前記他の複数のプロセッサ各々は、前記同期要求信号を出力した後に、電力の抑制がなされる前に自己におけるレジスタの情報であるコンテキストを、メモリに退避する退避手段と、
前記電力抑制手段が当該他の複数のプロセッサに対する電力の抑制を解除した後に、前記退避手段で退避したコンテキストを前記メモリから読み出して自プロセッサに復元する復元手段とを備え、
前記電力抑制手段は、プロセッサに対する電力の供給を停止することで抑制する
ことを特徴とする請求項8記載のマルチプロセッサ制御装置。
【請求項13】
前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、
前記一のプロセッサは、前記他の複数のプロセッサ各々が並列して行わせている所定の演算の結果と自己において実行している第1の演算の結果とを用いる第2の演算を行い、
前記一のプロセッサは、前記第1の演算が終了したときに当該演算が終了したことを示す同期要求信号を出力する第1同期要求信号出力手段を備え、
前記他の複数のプロセッサは、前記所定の演算が終了したときに当該演算が終了したことを示す同期要求信号を出力する第2同期要求信号出力手段を備え、
前記電力制御手段は、前記一のプロセッサと前記他の複数のプロセッサとを含む全てのプロセッサが演算を終了していない場合に、同期要求信号を出力したプロセッサに対する電力の供給を抑制する
ことを特徴とする請求項1記載のマルチプロセッサ制御装置。
【請求項14】
前記電力制御手段は、前記一のプロセッサ及び前記他の複数のプロセッサ各々に対してクロックを供給するクロック供給手段を備え、
前記一のプロセッサと前記他の複数のプロセッサとを含む全てのプロセッサが演算を終了していない場合に、同期要求信号を出力したプロセッサに対するクロックの供給を停止する
ことを特徴とする請求の範囲項13記載のマルチプロセッサ制御装置。
【請求項15】
一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させるマルチプロセッサ制御装置における制御方法であって、
前記一のプロセッサに対して供給する電力を抑制する電力抑制ステップと、
前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが、当該演算を終了するより前に前記一のプロセッサに対する前記抑制を解除する解除ステップと、
前記他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を前記一のプロセッサに開始させる実行制御ステップとを含む
ことを特徴とするマルチプロセッサ制御方法。
【請求項16】
マルチプロセッサを制御するための集積回路であって、
一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、
前記一のプロセッサに対して供給する電力を制御する電力制御手段とを備え、
前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが当該演算を終了するより前に、前記一のプロセッサに対する前記抑制を解除する
ことを特徴とする集積回路。

【図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