(57)【要約】【課題】  マルチプロセッサシステムで低消費電力化を行いつつ、なるべく全体的な演算の処理速度を落とすことのないマルチプロセッサ制御装置を提供する。【解決手段】  マルチプロセッサ制御装置は、一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、前記一のプロセッサに対して供給する電力を制御する電力制御手段とを備え、前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが、当該演算を終了するより前に前記一のプロセッサに対する前記抑制を解除する。【選択図】図６
2006048652.tif 000002
【特許請求の範囲】
【請求項１】
一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている所定の演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、
前記一のプロセッサに対して電力の供給を制御する電力制御手段とを備え、
前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが当該演算を終了するより前に、前記一のプロセッサに対する前記抑制を解除する
ことを特徴とするマルチプロセッサ制御装置。
【請求項２】
前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、
前記他の複数のプロセッサ各々は、自己における所定の演算が終了したことを示す同期要求信号を出力する同期要求信号出力手段を備え、
前記実行制御手段は、出力された同期要求信号の数が前記他の複数のプロセッサの数に満たない所定の数になった時点で前記抑制を解除するための解除信号を出力する解除信号出力手段を備え、
前記電力制御手段は、前記解除信号を受けて前記抑制を解除する
ことを特徴とする請求項１記載のマルチプロセッサ制御装置。
【請求項３】
前記解除信号出力手段は、
前記他の複数のプロセッサが前記所定の演算を開始してから出力された前記同期要求信号の数を数えるカウント手段を備え、
前記カウント手段でカウントされる前記同期要求信号の数が前記他の複数のプロセッサの数に１足りなくなった時点で前記解除信号を出力する
ことを特徴とする請求項２記載のマルチプロセッサ制御装置。
【請求項４】
前記実行制御手段は、前記同期要求信号が最後もしくは最後から１つ前に演算を終了するプロセッサのものでない限り、前記同期要求信号を出力したプロセッサを示すプロセッサ情報を出力するプロセッサ情報出力手段を備え、
前記電力制御手段は、前記プロセッサ情報を受けて、前記プロセッサ情報で示されるプロセッサに対して電力の供給を抑制し、当該抑制を前記一のプロセッサに対する電力の抑制を解除するときに解除する
ことを特徴とする請求項２記載のマルチプロセッサ制御装置。
【請求項５】
前記電力抑制手段は、
前記一のプロセッサ及び前記他の複数のプロセッサ各々に通常よりも低い低電力を供給する低電力供給手段と、
通常の電力を供給する通常電力供給手段とを備え、
前記電力制御手段は、プロセッサに対して、前記低電力供給手段によって低電力を供給することで電力を抑制し、
前記通常電力供給手段によって通常電力を供給することで抑制を解除する
ことを特徴とする請求の範囲項４記載のマルチプロセッサ制御装置。
【請求項６】
前記電力抑制手段は、プロセッサに対する電力の供給を停止することで抑制し、
前記他の複数のプロセッサ各々は、
前記同期要求信号を出力した後に、電力の抑制がなされる前に自己におけるレジスタの情報であるコンテキストを、メモリに退避させる退避手段と、
前記電力抑制手段が当該他の複数のプロセッサに対する電力の抑制を解除した後に、前記退避手段で退避したコンテキストを前記他のメモリから読み出して自プロセッサに復元する復元手段とを備える
ことを特徴とする請求項４記載のマルチプロセッサ制御装置。
【請求項７】
前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、
前記他の複数のプロセッサ各々は、自己において行う演算が終了までにあと所定の命令数を残す段階まで到達したことを示す準同期要求信号を出力する準同期要求信号出力手段を備え、
前記実行制御手段は、前記他の複数のプロセッサ全てが準同期要求信号を出力した時点で前記抑制を解除するための解除信号を出力する解除信号出力手段を備え、
前記電力制御手段は、前記解除信号を受けて前記抑制を解除する
ことを特徴とする請求項１記載のマルチプロセッサ制御装置。
【請求項８】
前記他の複数のプロセッサ各々は、更に、自己における演算が終了したことを示す同期要求信号を出力する同期要求信号出力手段を備え、
前記実行制御手段は、前記同期要求信号を出力したプロセッサが、最後に演算を終了するプロセッサでない限り、前記同期要求信号を出力したプロセッサを示すプロセッサ情報を出力するプロセッサ情報出力手段を備え、
前記電力制御手段は、前記プロセッサ情報を受けて、前記プロセッサ情報で示されるプロセッサに対して電力の供給を抑制し、当該抑制を前記一のプロセッサに対する電力の抑制を解除するときに解除する
ことを特徴とする請求項７記載のマルチプロセッサ制御装置。
【請求項９】
前記他の複数のプロセッサは、自己が現在実行している命令のアドレス情報を出力するアドレス情報出力手段と、
予め定められた所定のアドレスを記憶しておくアドレス記憶手段とを備え、
前記アドレス情報出力手段で出力されたアドレスと、前記アドレス記憶手段で記憶されているアドレスとが一致したときに前記準同期要求信号を出力する
ことを特徴とする請求項７記載のマルチプロセッサ制御装置。
【請求項１０】
前記準同期要求信号は、前記他の複数のプロセッサ各々が実行しているプログラム内において記述されている準同期要求信号を出力するための特殊命令を解釈実行する時点で出力される
ことを特徴とする請求項７記載のマルチプロセッサ制御装置。
【請求項１１】
前記電力抑制手段は、前記一のプロセッサ及び前記他の複数のプロセッサ各々に通常よりも低い低電力を供給する低電力供給手段と、
通常の電力を供給する通常電力供給手段とを備え、
前記電力制御手段は、プロセッサに対して、前記低電力供給手段によって低電力を供給することで電力を抑制し、
前記通常電力供給手段によって通常電力を供給することで抑制を解除する
ことを特徴とする請求項８記載のマルチプロセッサ制御装置。
【請求項１２】
前記他の複数のプロセッサ各々は、前記同期要求信号を出力した後に、電力の抑制がなされる前に自己におけるレジスタの情報であるコンテキストを、メモリに退避する退避手段と、
前記電力抑制手段が当該他の複数のプロセッサに対する電力の抑制を解除した後に、前記退避手段で退避したコンテキストを前記メモリから読み出して自プロセッサに復元する復元手段とを備え、
前記電力抑制手段は、プロセッサに対する電力の供給を停止することで抑制する
ことを特徴とする請求項８記載のマルチプロセッサ制御装置。
【請求項１３】
前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、
前記一のプロセッサは、前記他の複数のプロセッサ各々が並列して行わせている所定の演算の結果と自己において実行している第１の演算の結果とを用いる第２の演算を行い、
前記一のプロセッサは、前記第１の演算が終了したときに当該演算が終了したことを示す同期要求信号を出力する第１同期要求信号出力手段を備え、
前記他の複数のプロセッサは、前記所定の演算が終了したときに当該演算が終了したことを示す同期要求信号を出力する第２同期要求信号出力手段を備え、
前記電力制御手段は、前記一のプロセッサと前記他の複数のプロセッサとを含む全てのプロセッサが演算を終了していない場合に、同期要求信号を出力したプロセッサに対する電力の供給を抑制する
ことを特徴とする請求項１記載のマルチプロセッサ制御装置。
【請求項１４】
前記電力制御手段は、前記一のプロセッサ及び前記他の複数のプロセッサ各々に対してクロックを供給するクロック供給手段を備え、
前記一のプロセッサと前記他の複数のプロセッサとを含む全てのプロセッサが演算を終了していない場合に、同期要求信号を出力したプロセッサに対するクロックの供給を停止する
ことを特徴とする請求の範囲項１３記載のマルチプロセッサ制御装置。
【請求項１５】
一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させるマルチプロセッサ制御装置における制御方法であって、
前記一のプロセッサに対して供給する電力を抑制する電力抑制ステップと、
前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが、当該演算を終了するより前に前記一のプロセッサに対する前記抑制を解除する解除ステップと、
前記他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を前記一のプロセッサに開始させる実行制御ステップとを含む
ことを特徴とするマルチプロセッサ制御方法。
【請求項１６】
マルチプロセッサを制御するための集積回路であって、
一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、
前記一のプロセッサに対して供給する電力を制御する電力制御手段とを備え、
前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが当該演算を終了するより前に、前記一のプロセッサに対する前記抑制を解除する
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサの制御装置に関し、特にその低消費電力化の技術に関する。
【背景技術】
【０００２】
マルチプロセッサで分散処理を行う場合に、分散して実行された処理の結果のデータの授受や、処理順序の一貫性、演算の値の整合性を保つために同期をとることがある。ここでいう同期とは、自己の処理が終了したプロセッサが、処理の終了していないプロセッサの演算が終了するまで待機することをいい、演算の値の整合性を保つ必要のあるプロセッサすべてが演算を終了したら、待機状態にあったプロセッサは各々次の演算に移行することができるようになる。
【０００３】
このようなマルチプロセッサシステムにおいては、待機状態に入ったプロセッサに対する電力の供給を断ち、全てのプロセッサの演算が終了した時点で、電力供給を断っていたプロセッサに対して電力を再び供給することで省電力を図ることができる（特許文献１参照）。
【特許文献１】特開平７−１４６８４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで上記のような省電力を行うマルチプロセッサシステムにおいて、待機状態に入り電力の供給を断っていたプロセッサに対して再び電力を供給した場合、電源電圧の安定化のために時間を要するため、すぐに次の演算の処理を行うことができず、総合的な演算の処理速度が落ちる。
また、電力の供給を断つと、演算の結果や処理状況などを示したコンテキストが失われるため、各プロセッサは、レジスタの情報であるコンテキストを他のメモリ等に退避させる必要がある。この場合には、同期が確定し電力の供給を再開した後、退避させたコンテキストを再び読み出して自己のレジスタに反映させなければならない。このコンテキスト復旧にも時間を多少必要とする。コンテキスト復旧は、電源電圧が安定してから行われるため更に総合的な演算の処理速度が落ちると言える。
【０００５】
そこで本発明は、上記問題に鑑みてなされたものであり、上記のようなマルチプロセッサにおいて低消費電力化を行いながらも総合的な演算の処理速度の低下を抑制できるマルチプロセッサ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明におけるマルチプロセッサ制御装置は、一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている所定の演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、前記一のプロセッサに対して電力の供給を制御する電力制御手段とを備え、前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが当該演算を終了するより前に、前記一のプロセッサに対する前記抑制を解除することを特徴とする。
【０００７】
ここでいう抑制とは、供給している電力の電圧を低下させたり、電力の供給を停止したり、クロックの供給を停止したりすることをいう。
【発明の効果】
【０００８】
これにより、本発明に係るマルチプロセッサにおいては、最後に演算を終了するプロセッサから演算を終了する前に電力の供給の再開やコンテキストの復旧を行うことができるようになる。こうすることで従来あった電源電圧の安定化の時間やコンテキスト復旧の時間を見かけ上隠蔽することができるようになる。より早く電力の安定化を行うことができるので、最後のプロセッサが演算を終了するタイミングから、電力の安定化のための時間などなしに次の演算に移ることができるようになるので、演算のタイムロスを防ぐことができる。
【０００９】
また、前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、前記他の複数のプロセッサ各々は、自己における所定の演算が終了したことを示す同期要求信号を出力する同期要求信号出力手段を備え、前記実行制御手段は、出力された同期要求信号の数が前記他の複数のプロセッサの数に満たない所定の数になった時点で前記抑制を解除するための解除信号を出力する解除信号出力手段を備え、前記電力制御手段は、前記解除信号を受けて前記抑制を解除することとしてよい。
【００１０】
これにより、各プロセッサから同期タイミングに到達したことを示す信号が各プロセッサから出力され、その数が予め定められている所定数になったときに、電力の抑制を解除することができるので、最後に演算を終了するプロセッサが演算を終了する時点から一のプロセッサは演算を実行しうるので演算の総合的なタイムロスを抑えることができる。
また、前記解除信号出力手段は、前記他の複数のプロセッサが前記所定の演算を開始してから出力された前記同期要求信号の数を数えるカウント手段を備え、前記カウント手段でカウントされる前記同期要求信号の数が前記他の複数のプロセッサの数に１足りなくなった時点で前記解除信号を出力することとしてよい。
【００１１】
これにより、複数のプロセッサのうち、演算を終了していないプロセッサが１になった時点で一のプロセッサへの電力の抑制が解除される。こうすることで、早めに一のプロセッサの電力の抑制を解除して、省電力効果が低下することを防止することができる。例えば、複数のプロセッサのうち、４台のプロセッサが演算を終了していない状態で、一のプロセッサへの電力の供給を再開した場合に、当該４台のプロセッサのうち演算を終了するのがかなり遅いプロセッサがあったならば、一のプロセッサは何もしていない状態で電力の供給が行われることになるので電力が無駄になるが、この構成でその無駄を省きうる。
【００１２】
また、前記実行制御手段は、前記同期要求信号が最後もしくは最後から１つ前に演算を終了するプロセッサのものでない限り、前記同期要求信号を出力したプロセッサを示すプロセッサ情報を出力するプロセッサ情報出力手段を備え、前記電力制御手段は、前記プロセッサ情報を受けて、前記プロセッサ情報で示されるプロセッサに対して電力の供給を抑制し、当該抑制を前記一のプロセッサに対する電力の抑制を解除するときに解除することとしてよい。
【００１３】
これにより、マルチプロセッサ制御装置において、複数のプロセッサのうち演算を終了したものに対する電力供給を間違えることなく抑制することができる。よって、マルチプロセッサ制御装置全体で更なる省電力を図ることができる。
また、前記電力抑制手段は、前記一のプロセッサ及び前記他の複数のプロセッサ各々に通常よりも低い低電力を供給する低電力供給手段と、通常の電力を供給する通常電力供給手段とを備え、前記電力制御手段は、プロセッサに対して、前記低電力供給手段によって低電力を供給することで電力を抑制し、前記通常電力供給手段によって通常電力を供給することで抑制を解除することとしてよい。
【００１４】
これにより、供給する電力を低電力にすることで省電力化を図ることができる。
また、前記電力抑制手段は、プロセッサに対する電力の供給を停止することで抑制し、前記他の複数のプロセッサ各々は、前記同期要求信号を出力した後に、電力の抑制がなされる前に自己におけるレジスタの情報であるコンテキストを、メモリに退避させる退避手段と、前記電力抑制手段が当該他の複数のプロセッサに対する電力の抑制を解除した後に、前記退避手段で退避したコンテキストを前記他のメモリから読み出して自プロセッサに復元する復元手段とを備えることとしてよい。
【００１５】
これにより、電力の供給を完全に断つことで省電力化を図ることができ、また、電力の供給を断つことで失われてしまうコンテキストをプロセッサから退避させて、電力の供給が再開されたなら復元することができるようになるので、演算全体の整合性が損なわれることもなくなる。
また、前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、前記他の複数のプロセッサ各々は、自己において行う演算が終了までにあと所定の命令数を残す段階まで到達したことを示す準同期要求信号を出力する準同期要求信号出力手段を備え、前記実行制御手段は、前記他の複数のプロセッサ全てが準同期要求信号を出力した時点で前記抑制を解除するための解除信号を出力する解除信号出力手段を備え、前記電力制御手段は、前記解除信号を受けて前記抑制を解除することとしてよい。
【００１６】
ここでいう所定の命令数とは、これらの命令を実行することで消費する時間内に、一のプロセッサで電力が安定するための時間とコンテキスト復旧が必要な場合にはその時間とが含まれるような命令数のことをいう。
これにより、プロセッサは自己における演算が終了するより少し前に準同期要求信号を出力し、その準同期要求信号を元にして電力復旧のタイミングを決めることができる。よって一のプロセッサは、準備に必要な最小の時間のみの通電で演算を実行できるようになる。
【００１７】
また、前記他の複数のプロセッサは、自己が現在実行している命令のアドレス情報を出力するアドレス情報出力手段と、予め定められた所定のアドレスを記憶しておくアドレス記憶手段とを備え、前記アドレス情報出力手段で出力されたアドレスと、前記アドレス記憶手段で記憶されているアドレスとが一致したときに前記準同期要求信号を出力することとしてよい。
【００１８】
これにより、プロセッサで実行しているプログラムにおいて、その時点で実行している命令のアドレスと、予め定められているアドレスの一致をもって準同期要求信号を出力するタイミングとすることができる。
また、前記準同期要求信号は、前記他の複数のプロセッサ各々が実行しているプログラム内において記述されている準同期要求信号を出力するための特殊命令を解釈実行する時点で出力されることとしてよい。
【００１９】
これにより、予めプログラム内で準同期要求信号を出力する命令を組み込むことにより、アドレス一致を見るための回路とかなしに、準同期要求信号を出力することができる。
また、前記マルチプロセッサ制御装置は、前記一のプロセッサ及び前記他の複数のプロセッサを含み、前記一のプロセッサは、前記他の複数のプロセッサ各々が並列して行わせている所定の演算の結果と自己において実行している第１の演算の結果とを用いる第２の演算を行い、前記一のプロセッサは、前記第１の演算が終了したときに当該演算が終了したことを示す同期要求信号を出力する第１同期要求信号出力手段を備え、前記他の複数のプロセッサは、前記所定の演算が終了したときに当該演算が終了したことを示す同期要求信号を出力する第２同期要求信号出力手段を備え、前記電力制御手段は、前記一のプロセッサと前記他の複数のプロセッサとを含む全てのプロセッサが演算を終了していない場合に、同期要求信号を出力したプロセッサに対する電力の供給を抑制することとしてよい。
【００２０】
これにより、一のプロセッサもまた他の複数のプロセッサとともに並列実行する演算の一部を受け持つことが可能となり、また、一のプロセッサが第１の演算を終了した時点を当該一のプロセッサへの電力の抑制タイミングにすることができる。
また、前記電力制御手段は、前記一のプロセッサ及び前記他の複数のプロセッサ各々に対してクロックを供給するクロック供給手段を備え、前記一のプロセッサと前記他の複数のプロセッサとを含む全てのプロセッサが演算を終了していない場合に、同期要求信号を出力したプロセッサに対するクロックの供給を停止することとしてよい。
【００２１】
これにより、プロセッサに対するクロックの供給を停止することができる。プロセッサはクロックを供給されて動作することによって動作していない状態よりも電力を消費するが、この電力の消費を抑えることができるようになる。
また、一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させるマルチプロセッサ制御装置における制御方法であって、前記一のプロセッサに対して供給する電力を抑制する電力抑制ステップと、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが、当該演算を終了するより前に前記一のプロセッサに対する前記抑制を解除する解除ステップと、前記他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を前記一のプロセッサに開始させる実行制御ステップとを含むこととしてよい。
【００２２】
この方法により、マルチプロセッサ制御装置は、一のプロセッサの電力制御を行うことができる。
また、マルチプロセッサを制御するための集積回路であって、一のプロセッサに、他の複数のプロセッサ各々に並列して行わせている演算が終了したときに、当該各演算の結果を用いる演算を開始させる実行制御手段と、前記一のプロセッサに対して供給する電力を制御する電力制御手段とを備え、前記電力制御手段は、前記一のプロセッサに対して電力の供給を抑制している場合において、前記他の複数のプロセッサのうち最後に演算を終了するプロセッサが当該演算を終了するより前に、前記一のプロセッサに対する前記抑制を解除するとしてよい。
【００２３】
これにより、マルチプロセッサ制御装置に搭載される集積回路は、プロセッサへの電力制御を行うことができるようになる。
【発明を実施するための最良の形態】
【００２４】
以下、本実施の形態に係るマルチプロセッサ制御装置について図面を用いて説明する。
＜実施の形態１＞
＜構成＞
図１に実施の形態１に係るマルチプロセッサ制御装置の機能構成を示したブロック図を示した。
【００２５】
図１に示すように、マルチプロセッサ制御装置１００は、PE１１０a、PE１１０ｂ、PE１１０ｃ、…、PE１１０ｎ、同期制御部１２０、電力制御部１３０を含んで構成される。
各PEは、各々に与えられた演算を行う機能を有する。また、プログラム上において、それぞれ他のPEにおける演算の終了を待たねば次の処理に移行できない点（以下「同期ポイント」という）まで来た場合に、同期制御部１２０に同期要求信号SYNCを出力し、同期待ち解除信号ACKを受けるまで待機する機能を有する。
【００２６】
同期制御部１２０は、図２に示すように、同期カウンタ２０１、同期確立判定部２０２、電力抑制判定部２０３、同期予測判定部２０４、シーケンサ２０５を含んで構成される。
同期カウンタ２０１は各PEからの同期要求信号SYNCを受信し、自己内のメモリに設定されている同期数を減算していく機能を有する。一つのPEから同期要求信号を受け取るたびにカウンタを１減算する。なお、同期カウンタ２０１の数は、最初PEの個数と同等の数に設定されており、その数が０になるたびにリセットされて同期に関係するPEの数ｎに更新する。また、受信した同期要求信号がどのPEから出力されたかの情報を電力抑制判定部２０３に出力する機能も有する。
【００２７】
同期確立判定部２０２は、同期カウンタ２０１のカウントの数を監視しており、その数が「０」になったときにシーケンサ２０５に、同期確立信号ESTABLISHを出力する機能を有する。
電力抑制判定部２０３は、同期カウンタ２０１のカウントの数を監視しており、その数が「２以上」である場合に、同期カウンタから受け取ったPEの情報に基づいて、そのPEに対する電力の抑制を要求する信号SUPPRESSをシーケンサ２０５に出力する機能を有する。
【００２８】
同期予測判定部２０４は、同期カウンタ２０１のカウントの数を監視しており、その数が「１」になったときに、シーケンサ２０５に同期予測信号ALMOSTを出力する機能を有する。
シーケンサ２０５は、同期待ち解除信号ACKを各PEに出力する機能と、電力制御部１３０を制御する信号である制御信号CTRL信号を出力する機能を有する。同期待ち解除信号ACKは、同期確立判定部２０２から出力される同期確立信号ESTABLISHを受けて出力される。また、電力抑制判定部２０３からのSUPPRESSを受けて、電力制御部１３０に電力を低消費電力化する信号CTRLを出力する。同期予測判定部２０４からALMOSTを受けた場合は、電力を抑制していたPEに対する抑制を解除する信号CTRLを出力する。
【００２９】
電力制御部１３０は、電源電圧の降圧を行うための降圧器、及び降圧した電圧を再びもとの電圧に戻すための昇圧器を備え、各PEの電力を低消費電力にしたり通常電力に戻したりする切り替え機能を有する。ここでいう低消費電力の方法には２種類のモードがある。第１の低消費電力モード１は、クロック供給をカットし、且つ、電源電圧を演算の結果を記憶しているレジスタの情報が失われない程度の低電圧に降圧して供給する。第２の低消費電力モード２は、クロック供給のみをカットし、電源電圧は通常電圧を供給する。また、電力制御部１３０は、各PEに対して処理クロックを供給する機能も有する。また、同期制御部１２０の要請に基づき、どのPEに対して電力制限をしているかを示す状態信号STATUSを出力する機能も有する。
【００３０】
以上がマルチプロセッサ制御装置１００の各部の機能の説明である。
＜データ＞
ここから、マルチプロセッサ制御装置１００で扱うデータについて説明する。
まず、電力制御部１３０では、各PEに対しての電力抑制の状態を管理しているが、その内容について、図３の電力抑制表３００を用いて説明する。電力抑制表３００は、PE番号３０１に対応して、クロック供給３０２の有無と、電力供給状態３０３を示す。
【００３１】
クロック供給３０２の有無は文字通り各PEに対してクロックの供給を行っているかどうかを示す。また、電力供給状態は、各PEに対して通常の電力を供給しているのか、あるいは低電力を供給しているのかを示す。ここでは、わかりやすくするために、クロック供給３０２は、「有」と「無」で示し、電力供給状態３０３を、「通常電力」と「低消費電力」で示したが、実際には、それぞれ対応するレジスタの「１」及び「０」のデータで管理する。
【００３２】
次に、各PEで実行されるプログラムの一例について図４を用いて説明する。
図４に示すのは、PEが扱うプログラム例４００であり、実際の処理内容４０１（詳細記さず）、そして全ての処理が終了して同期ポイントまで来た時点で同期要求信号SYNCを発行するSYNC命令４０２と、そしてループ判定４０３とを含んで構成される。ここでループ判定４０３は必ずしも必要ではなくて、マルチプロセッサシステムでは、一つのPEにはループ演算をさせる場合が多いために記述したものである。プログラム例４００は、上の命令から順に処理されていき、同期ポイントまで到達した時点でSYNC命令４０２がPEから同期制御部１２０に出力され、その時点でPEは、待機するようになっており、同期待ち解除信号ACKを受け取ったらループ判定４０３以降の処理を行う。
【００３３】
＜動作＞
以降においては実施の形態１に係るマルチプロセッサ制御装置１００の動作について説明していく。
まず、図５のフローチャートを用いて本実施の形態１に係るマルチプロセッサ制御装置１００の動作を説明する。マルチプロセッサ制御装置１００の動作は、基本的に同期制御部１２０の動作のそれと略同一なので、マルチプロセッサ制御装置１００の動作として同期制御部１２０の動作を説明する。またここでは、全てのPEが同期ポイントが到達して、同期待ちが解除されるまでの動作についてを説明する。
【００３４】
マルチプロセッサ制御装置１００の各PEは、各々に与えられた処理を実行している。処理が終了したPEは、自己の処理が終了して同期待ちの状態であることを示す同期要求信号SYNCを、同期制御部１２０に出力する。
出力された同期要求信号SYNCを受け取った同期制御部１２０は（ステップＳ５０１）、自己の同期カウンタ２０１の数を１減少させる（ステップＳ５０３）。そして同期確立判定部２０２は、同期カウンタ２０１の数が０であるかどうかを判定する（ステップＳ５０５）。同期カウンタの２０１の数が０であった場合には（ステップＳ５０５のＹＥＳ）、同期確立判定部２０２は同期確立信号ESTABLISHを発行し、それに基づいてシーケンサ２０５は、各PEに対してクロックを供給するように電力制御部１３０に制御信号ＣＴＲＬを出力する。そして各PEに対して同期待ち解除信号ACKを出力する（ステップＳ５０７）。そして同期カウンタ２０１のカウント数をリセットしてPEの数と同じ数に戻して（ステップＳ５０９）終了する。
【００３５】
ステップＳ５０５において同期カウンタ２０１の数が０でなかった場合（ステップＳ５０５のＮＯ）、同期予測判定部２０４は、同期カウンタ２０１の数が１かどうかを判定する（ステップＳ５１１）。同期カウンタ２０１の数が１であった場合には（ステップＳ５１１のＹＥＳ）、同期予測判定部２０４は、同期予測信号ALMOSTを発行する（ステップＳ５１３）。同期予測信号ALMOSTを受けたシーケンサ２０５は、その時に電力を抑制しているPEの状態の情報である状態信号ＳＴＡＴＵＳを電力制御部１３０から取得して、電力制御部１３０に対して電力を抑制しているPEに対する抑制を解除する制御信号ＣＴＲＬを出力する（ステップＳ５１５）。そして、同期要求信号SYNCを出力したPEに対して、クロックの供給を停止するクロック停止信号ＣＴＲＬを電力制御部１３０に出力する（ステップＳ５１７）。その後にステップＳ５０１に戻り以降の処理を行う。
【００３６】
ステップＳ５１１において、同期カウンタ２０１の数が１でなかった場合には（ステップＳ５１１のＮＯ）、電力抑制判定部２０３は、受け取ったPEの情報に基づいて、そのPEに対する電力の抑制を要求する電力抑制信号SUPPRESSを発行する（ステップＳ５１９）。そしてシーケンサ２０５は、電力制御部１３０に、PEに対する電力を抑制するＣＴＲＬ信号を出力する。そして電力制御部１３０は、受け取ったＣＴＲＬ信号に基づき、指定されたPEに対する電力を低電力に降圧して、クロックの供給も停止する。そしてステップＳ５０１に戻り以降の処理を行う。
【００３７】
以上がマルチプロセッサ制御装置１００の動作である。
ここからマルチプロセッサ制御装置１００の動作を具体例を挙げて説明する。
図６にその動作例を示したタイミングチャートを記した。ここに示すタイミングチャートでは、PE１１０aが最初に自己の処理を終了したPEであり、PE１１０ｂがその次となる。そしてPE１１０nが最後から２つ目に処理を終了するPEであり、PE１１０ｃが最後に処理を終了するPEであるとする。
【００３８】
まずPE１１０ａがプログラム中の同期ポイントまで到達し、同期要求信号SYNCａを出力する（ステップＳ６１１）。同期要求信号SYNCａを受けた同期制御部１２０は同期カウンタ２０１をｎからｎ−１に減算する（ステップＳ６５１）。同期制御部１２０は、電力制御部１３０に対して同期要求信号SYNCａを出力したPE１１０ａに対する電力を抑制する制御信号ＣＴＲＬを出力する（ステップＳ６５２）。PE１１０ａでは、同期制御部１２０からの指示により電力制御部１３０からの供給される電力が低電力になり、クロックの供給も停止される（ステップＳ６１３）。
【００３９】
次に、PE１１０ｂが、同期ポイントまで到達し、同期要求信号SYNCｂを同期制御部１２０に出力する（ステップＳ６２１）。同期要求信号SYNCｂを受け取った同期制御部１２０は、同期カウンタ２０１の数を１減算してｎ−２にする（ステップＳ６５３）。同期制御部１２０は、電力制御部１３０に対して同期要求信号SYNCｂを出力したPE１１０ｂに対する電力抑制を行う制御信号を出力する（ステップＳ６５４）そしてPE１１０ｂは、電力制御部１３０から供給される電力が低電力になり、またクロックの供給も停止される（ステップＳ６２３）。
【００４０】
以降、PE１１０ｃとPE１１０ｎを除く各PEが同期要求信号SYNCを出力して、低消費電力モード１に移行する。
そして、PE１１０ｎが同期ポイントに到達し、同期要求信号SYNCｎを同期制御部１２０に出力する（ステップＳ６４１）。同期要求信号SYNCｎを受けた同期制御部１２０は、同期カウンタ２０１の数を１減算して１に設定する（ステップＳ６５５）。同期制御部１２０は、電力制御部１３０に対して、同期要求信号SYNCｎを出力したPE１１０ｎに対するクロック供給を停止する制御信号ＣＴＲＬを出力する（ステップＳ６５６）。するとPE１１０ｎは電力制御部１３０からはクロックの供給がなされない低消費電力モード２に移行する（ステップＳ６４２）。また、同期予測判定部２０４は、同期カウンタ２０１の数が１になったのを見て同期準備信号ALMOSTをシーケンサ２０５に発行する。シーケンサ２０５は、状態信号ＳＴＡＴＵＳに基づいて、電力制御部１３０に、電源を抑制していたPEに対しての電力の抑制を解除させる（ステップＳ６５７）。
【００４１】
そして電力を抑制されていたPEは、通常電力が供給される（ステップＳ６６１）。なお、クロックは供給されていない。また、同期要求信号SYNCｎを出力したPE１１０ｎに対しては、電力制御部１３０はクロックの供給のみを停止し、低電力供給にはしない（ステップＳ６４２）。
そして、各PEは、まだ同期ポイントまで到達していないPE１１０ｃが同期ポイントに到達するまで待機する。
【００４２】
PE１１０ｃは同期ポイントに到達すると、同期要求信号SYNCｃを同期制御部１２０に出力する（ステップＳ６３１）。すると同期制御部１２０は、同期カウンタ２０１の数を１減算して０にする（ステップＳ６５８）。同期カウンタ２０１の数が０になったのを確認した同期確立判定部２０２は、同期確立信号ESTABLISHをシーケンサ２０５に出力する。同期確立信号ESTABLISHを受けたシーケンサ２０５は、電力制御部１３０に各PEに対してのクロックの供給を再開させる制御信号ＣＴＲＬとともに、同期待ち解除信号ACKを各PEに出力する（ステップＳ６５９）。各PEは、同期待ち解除信号ACKを受けて、待機状態を解除され、以降の演算を行う（ステップＳ６７１）。また、同期待ち解除信号ACKを出力した同期制御部１２０は、同期カウンタ２０１の数をPEの数に相当するｎにリセットして（ステップＳ６６０）、以降の処理を行う。
【００４３】
以上が図６のタイミングチャートの説明である。なお図中で矢印が破線になっているのは、その指示が同期制御部１２０から直接ではなく電力制御部１３０を介して行われているためである。
＜実施の形態１変形例＞
実施例１においては、各PEに対する電力を低下することで省電力化を図ったが、実施の形態１変形例においては、同期ポイントまできたPEに対する電力を低下させるのではなく、完全に遮断する場合についてを説明する。電力供給を完全に遮断することでより大きな省電力の効果を得られる可能性がある。
【００４４】
＜構成＞
図７に実施の形態１変形例のマルチプロセッサ制御装置７００の機能構成を示したブロック図を記した。
主な機能は実施の形態１と同じなので、ここでは実施の形態１とは異なる点を述べていく。
【００４５】
まず、各PEについて実施の形態１と異なる点を説明する。実施の形態１変形例においては各PEは、同期ポイントまで到達すると、まだ演算を行っているPEがある場合には、完全に電力が遮断してしまうために、同期ポイントにおける演算の結果の状態を示したコンテキスト（主にはレジスタの値）が失われる。そのために、このコンテキストを退避させておく必要がある。各PEは、同期要求信号SYNCを発行した際に、自機が最後に同期要求信号SYNCを出力したPEもしくはその１つ前のPEでない限り、コンテキストを、別の不揮発性メモリなど（図示せず）に退避させておく機能を有する。また、電力の供給が再開されたら当該コンテキストを読み出して自身に反映させる機能を有する。
【００４６】
また、同期制御部７２０においては、同期予測判定部８０３がALMOSTを発行した場合にシーケンサ８０５は、電力の復旧を促す制御信号ＣＴＲＬを電力制御部７３０に出力した後に、PEに対してコンテキスト復旧を促す信号ＰＲＥＰを、電力制御部７３０から演算を実行しているＰＥが残り２個の状態におけるそれ以外のＰＥの情報を示す状態信号ＳＴＡＴＵＳを受けて、電力を抑制していたPEに対して出力する機能を有する。
【００４７】
そして電力制御部７３０は、同期制御部７２０の指示に基づいて、同期要求信号SYNCを出力したPEに対して電力を低電力にするのではなく、完全に電力供給を断つ機能を有する。そして、同期制御部７２０の指示に基づき、電力の供給を断っていたPEに対して電力の供給を再開する。なお、電力の供給を再開されたPEでは電源電圧の安定化に、長ければ、処理クロックに換算して１０００サイクル弱の時間を要する。ここでクロックの供給、及び電力の供給両方を断つ低消費電力モードを低消費電力モード３とする。
【００４８】
＜動作＞
実施の形態１の変形例に係るマルチプロセッサ制御装置７００の動作を図９のフローチャートに示してある。ここでは、実施例１変形例のマルチプロセッサ制御装置７００の動作は実施例１のそれと殆ど変わらず相違点のみを述べる。
図に示すように、ステップＳ９１９の内容が実施例１のステップＳ５１９と異なっている。実施例１においては、電力抑制信号を出力して電力制御部１３０に低電力を供給する制御信号を出力したが、本実施例においては、電力停止信号を出力する。電力停止信号を出力された電力制御部７３０は、同期要求信号を出力したPEに対する電力の供給を、コンテキスト退避を待って、停止する。
【００４９】
その他の動作については、実施例１のものとかわらない。
図１０には実施例１で図６に示したタイミングチャートを本実施例に即して変更したタイミングチャートを示している。
図１０にあるように、実施例１のタイミングチャートと異なり、PEは同期要求信号を発して後に、コンテキスト退避を行っており（ステップＳ１０１２、Ｓ１０２２）、その後に低消費電力モード３に移行している（ステップＳ１０１３、Ｓ１０２３）。また、電力の供給が再開され（ステップＳ１０７１）、電圧値が安定した後にコンテキスト復旧を行っている（ステップＳ１０７２）。以上の点が実施例１と異なる点である。
＜実施の形態２＞
実施の形態１及び実施の形態１の変形例においては、少なくとも３以上のPEがなくては効果を発揮しない。そこで実施の形態２においては、PE数が２の場合であっても効果を発揮するマルチプロセッサ制御装置を提供する。
【００５０】
＜構成＞
図１１に実施の形態２に係るマルチプロセッサ制御装置１１００の機能構成を示した。
同図にあるように、マルチプロセッサ制御装置１１００は、PE１１１０ａ、PE１１１０ｂ、…PE１１１０ｎと、同期制御部１１２０と、電力制御部１１３０と、キャッシュメモリ１１４０ａ、１１４０ｂ、…１１４０ｎと、準同期要求信号生成部１１５０ａ、１１５０ｂ、…１１５０ｎと、共有メモリ１１６０とを含んで構成される。
【００５１】
PE１１００ａ、１１００ｂ、…、１１００ｎは、各々に与えられた演算を行う機能の他、自機においてPEが実行している命令のアドレス信号を出力する機能を有する。
同期制御部１１２０は、主に電力制御部１３０を制御する機能を有する。その機能構成は図１２に示すようになっている。図１２に示すように同期制御部１１２０は、同期カウンタ１２０１と、同期確立判定部１２０２と、電力抑制判定部１２０３と、同期予測判定部１２０４と、シーケンサ１２０５と、準同期カウンタ１２０６とを含んで構成される。
【００５２】
同期カウンタ１２０１は各PEからの同期要求信号SYNCを受信し、自己内のメモリに設定されている同期数を減算していく機能を有する。一つのPEから同期要求信号を受け取るたびにカウンタを１減算する。なお、同期カウンタ１２０１の数は、最初PEの個数と同等の数に設定されており、その数が０になるたびにリセットされて同期に関係するPEの数ｎに更新する。また、受信した同期要求信号がどのPEから出力されたかの情報を電力抑制判定部１２０３に出力する機能も有する。
【００５３】
同期確立判定部１２０２は、同期カウンタ１２０１のカウントの数を監視しており、その数が「０」になったときにシーケンサ１２０５に、同期確立信号ESTABLISHを出力する機能を有する。
電力抑制判定部１２０３は、同期カウンタ１２０１のカウントの数を監視しており、その数が「２以上」である場合に、同期カウンタから受け取ったPEの情報に基づいて、そのPEに対する電力の抑制を要求する信号SUPPRESSをシーケンサ１２０５に出力する機能を有する。
【００５４】
同期予測判定部１２０４は、同期カウンタ１２０１のカウントの数を監視しており、その数が「１」になったときに、シーケンサ１２０５に同期予測信号ALMOSTを出力する機能を有する。
シーケンサ１２０５は、同期待ち解除信号ACKを各PEに出力する機能と、電力制御部１３０を制御する制御信号CTRLを出力する機能を有する。ACKは、同期確立判定部１２０２から出力されるESTABLISHを受けて出力される。また、電力抑制判定部１２０３からのSUPPRESSを受けて、電力制御部１１３０に電力を低消費電力化する制御信号CTRLを出力する。同期予測判定部１２０４からALMOSTを受けた場合は、電力を抑制していたPEに対する抑制を解除する信号CTRLを出力する。
【００５５】
準同期カウンタ１２０６は、PEから準同期要求信号PRESYNCを受けるたびに、保持していた値を１減算して記憶しなおす機能を有する。また、準同期カウンタ１２０６の数は、最初PEの個数と同等の数に設定されており、その数が０になるたびにリセットされて同期に関係するPEの数ｎに更新する。
電力制御部１１３０は、同期制御部１１２０の指示に基づいて、各PEに対してクロックと電力を供給したり、遮断したりする機能を有する。また、同期制御部１１２０の要求に応じて、どのPEに対して電力及びクロックの抑制を行っているかを示した状態信号ＳＴＡＴＵＳを出力する機能を有する。
【００５６】
キャッシュメモリ１１４０ａ、１１４０ｂ、…１１４０ｎは、それぞれで実行された演算の結果を共有メモリ１１６０への書き込む際の競合を防ぐためにデータを一時的に格納するためのバッファである。このキャッシュメモリに他のPEで演算に必要なデータがある場合には、共有メモリ１１６０ではなく、直接データのあるキャッシュメモリにアクセスしてデータを取得することもある。
【００５７】
準同期信号生成部１１５０ａ、１１５０ｂ、…１１５０ｎは、各々のPEで演算が同期ポイントより少し前の準同期ポイントに来た時点で準同期要求信号を出力する機能を有する。具体的には、図１３に示すように、準同期アドレスレジスタ１３０１と、アドレス一致判定部１３０２とを含んで構成される。ここでは準同期生セイブ１１５０ｎを例にしているが、全てのPEが略同一の構成を有する。準同期アドレスレジスタ１３０１は、PEで実行されるプログラムのなかで同期ポインタに到達する前に実行される命令のアドレスを記憶している。アドレス一致判定部１３０２は、準同期アドレスレジスタ１３０１に記憶されているアドレスと、アドレスバスに出力されているＡＤＤＲｎとが一致するかどうかを監視しており、一致する場合に、準同期要求信号を出力する。
【００５８】
なお準同期アドレスレジスタ１３０１に設定されるアドレスは、電源電圧の安定化に必要なための時間が長い場合を考えて、およそ処理クロック換算で１０００サイクルぐらい前の命令のアドレスに設定されることが望ましい。
共有メモリ１１６０は、マルチプロセッサ全体で行われている演算の各変数を管理する機能を有する。各変数はPEの演算結果により、必要なときにそれぞれのPEによって書き換えられていく。共有メモリ１１６０には、アクセス競合を防ぐために、基本的に一時に一つのPEからのみの書き込みが許されている。
【００５９】
なお、キャッシュメモリ及び共有メモリ１１６０は一般的な共有メモリ型のマルチプロセッサシステムに必要な構成として示しており、本実施の形態における主部分には必ずしも必要ではない。
＜動作＞
次に、実施の形態２に係るマルチプロセッサ制御装置１１００の動作について説明する。
【００６０】
図１４に、マルチプロセッサ制御装置１１００の動作のフローチャートを示した。このフローチャートは実施の形態１と同様に同期制御部１１２０の動作をマルチプロセッサ制御装置１１００の動作として説明する。
まず、同期制御部１１２０は、同期要求信号SYNC、あるいは準同期要求信号PRESYNCを受信する（ステップＳ１４０１）。受信したのが同期要求信号SYNCであった場合（ステップＳ１４０１のＹＥＳ）には、同期カウンタ１２０１の数を１減少させる（ステップＳ１４０５）。そして同期確立判定部１２０２は、同期カウンタ１２０１の数が０であるかどうかを判定する（ステップＳ１４０７）。
【００６１】
同期カウンタ１２０１の数が０であった場合には（ステップＳ１４０７のＹＥＳ）、各PEに対してクロックの供給を電力制御部１１３０に再開させると共に、同期待ち解除信号ACKを各PEに対して出力する（ステップＳ１４０９）。そして同期カウンタ１２０１をリセットして終了する（ステップＳ１４１１）。
受信したのが準同期要求信号だった場合には（ステップＳ１４０３のＮＯ）、準同期カウンタ１２０６を１減算する（ステップＳ１４１３）。そして同期予測判定部１２０４は、準同期カウンタ１２０６の数が０であるかどうかを監視している（ステップＳ１４１５）。０であった場合には、同期予測信号ALMOSTをシーケンサ１２０５に出力する。そしてシーケンサ１２０５は、電力制御部１１３０に電力を抑制しているPEに対して電力を解除する制御信号ＣＴＲＬを出力する（ステップＳ１４１７）。そして準同期カウンタ１２０６の数をリセットしてPEと同数に設定しなおして（ステップＳ１４１９）、ステップＳ１４０１に戻って以降の処理を行う。
【００６２】
ステップＳ１４０７において同期カウンタ１２０１の数が０でなかった場合には、同期要求信号を出力したPEに対して電力を抑制する制御信号ＣＴＲＬを出力する（ステップＳ１４２１）。そしてステップＳ１４０１に戻って以降の処理を行う。
次に、準同期要求信号生成部１１５０の動作について図１５に示すフローチャートに基づいて記述する。
【００６３】
準同期アドレス一致判定部１３０２は、アドレスバスに流れているアドレスの信号と、準同期アドレスレジスタ１３０１のアドレスとが一致しているかを判定する（ステップＳ１５０１）。一致していない場合には（ステップＳ１５０１のＮＯ）ステップＳ１５０１に戻って、アドレスバスに新たなアドレス信号が流れるたびに比較を行う。
一致していた場合には（ステップＳ１５０１のＹＥＳ）、準同期アドレス一致判定部１３０２は、準同期ポイントに演算が到達していることを示す準同期要求信号PRESYNCを同期制御部１１２０に出力して終了する。
【００６４】
以上が準同期要求信号生成部１１５０の動作である。
ここからマルチプロセッサ制御装置１１００の動作を具体例を挙げて説明する。
図１６にその動作例を示したタイミングチャートを記した。ここに示すタイミングチャートでは、PE１１１０aが最初に自己の処理を終了したPEであり、PE１１１０ｎがその次となる。そしてPE１１１０ｂが最後に処理を終了するPEであるとする。
【００６５】
準同期要求信号生成部１１５０ａにおいて、準同期アドレス一致判定部がアドレスバスのアドレス信号ADDRaと、準同期アドレスレジスタ１３０１ａに記憶されているアドレスとが一致して準同期要求信号PRESYNCａ同期制御部１１２０に出力される（ステップＳ１６１１）。準同期要求信号PRESYNCａを受けた同期制御部１１２０は、準同期カウンタ１２０６の数を１減算してｎ−１に設定する（ステップＳ１６４１）。
【００６６】
次に、同期ポイントに到達したPE１１１０ａは、同期要求信号SYNCａを同期制御部１１２０に出力する（ステップＳ１６４３）。同期要求信号SYNCａを受けた同期制御部１１２０は、同期カウンタ１２０１の数を１減算してｎ−１に設定する（ステップＳ１６４２）。そして電力抑制判定部１２０３は、電力抑制信号SUPPRESSをシーケンサ１２０５に出力する。そしてシーケンサ１２０５は、電力制御部１１３０に対してPE１１１０ａに対する電力を抑制する制御信号ＣＴＲＬを出力する（ステップＳ１６４３）。電力制御部１１３０は、当該制御信号ＣＴＲＬに基づいてPE１１１０ａに対して電圧を高圧して低電力にし、クロックの供給を停止する。電力とクロックを抑制されてPE１１１０ａは低消費電力モード１に移行する（ステップＳ１６１３）。
【００６７】
PE１１１０ａの次にPE１１１０ｎが準同期ポイントに到達すると、準同期要求信号生成部１１５０ｎは、準同期要求信号PRESYNCｎを同期制御部１１２０に出力する（ステップＳ１６３１）。準同期要求信号PRESYNCｎを受けた同期制御部１１２０は、準同期カウンタ１２０６の数を１減算してｎ−２に設定する（ステップＳ１６４４）。
PE１１１０ｎは、同期ポイントに到達すると、同期要求信号SYNCｎを同期制御部１１２０に出力する（ステップＳ１６３２）。同期要求信号SYNCｎ受けた同期制御部１１２０は、同期カウンタ１２０１の数を１減算してｎ−２に設定する（ステップＳ１６４５）。すると、電力抑制判定部１２０３は、PE１１１０ｎに対する電力を抑制する電力抑制信号SUPPRESSをシーケンサ１２０５に出力する。そしてシーケンサ１２０５は、電力制御部１１３０に、PE１１１０ｎに対して電力を抑制する制御信号ＣＴＲＬを出力する（ステップＳ１６４６）。当該制御信号ＣＴＲＬを受けて電力制御部１１３０は、PE１１１０ｎに対する電力を低電力にし、クロックの供給を停止する。そうされることでPE１１１０ｎは、低消費電力モード１に移行する。
【００６８】
以下、PE１１１０ｂ以外のPEが準同期ポイントに到達するたびに、準同期カウンタ１２０６の数値が減算される。また、同期ポイントに到達するたびに同期カウンタ１２０１の数値が減算され、同期要求信号を出力したPEに対する電力の抑制が行われる。
最後にPE１１１０ｂが準同期ポイントに到達すると準同期信号生成部１１５０ｂが準同期要求信号PRESYNCｂを同期制御部１１２０に出力する（ステップＳ１６２１）。準同期要求信号PRESYNCｂを受けて同期制御部１１２０は、準同期カウンタ１２０６の数を１減算して０に設定する（ステップＳ１６４７）。準同期カウンタ１２０６の数が０になったのをみて、同期予測判定部１２０４は、同期予測信号ALMOSTをシーケンサ１２０５に出力する。そしてシーケンサ１２０５は電力制御部１１３０から電力を抑制しているPEの情報である状態信号ＳＴＡＴＵＳを受けて、電力を抑制しているPEに対する電力の抑制を解除する制御信号ＣＴＲＬを出力する。また準同期カウンタ１２０６の数がリセットされ、PEと同数であるｎに戻る（ステップＳ１６４８）。電力制御部１１３０により電力の抑制を解除されたPEには通常電力が供給されるようになる（ステップＳ１６１４、Ｓ１６３４）。
【００６９】
PE１１１０ｂが同期ポイントに到達すると、同期要求信号SYNCｂが同期制御部１１２０に出力される（ステップＳ１６２２）。最後の同期要求信号SYNCｂを受けた同期制御部１１２０は同期カウンタ１２０１の数を１減算して０に設定する（ステップＳ１６４９）。同期カウンタ１２０１の数が０になったのを見て、同期確立判定部１２０２は、同期確立信号ESTABLISHを発行する。シーケンサ１２０５は、電力制御部１１３０にクロックの供給を再開する制御信号ＣＴＲＬを出力し、また、各PEに対して同期待ち解除信号ACKを出力する。また、同期カウンタ１２０１の数をリセットし、ｎに戻す（ステップＳ１６５０）。
【００７０】
同期解除信号ACKを受けた各PEは、同期ポイント以降の処理を行う（ステップＳ１６６０）。
以上が図１６のタイミングチャートに基づくマルチプロセッサ制御装置１１００の具体的な動作である。
＜実施の形態２変形例＞
実施の形態２変形例においては、実施の形態１変形例と同様に、電力の供給を完全に断つ構成について説明する。
【００７１】
主な構成及び動作については基本的に実施の形態２と同じであるので、説明を省き、実施の形態２と異なる点についてを説明する。
＜構成＞
図１７に実施の形態２変形例に係るマルチプロセッサ制御装置１７００の機能構成を示した。
【００７２】
本変形例におけるマルチプロセッサ制御装置１７００は、実施の形態２と略同一の構成を有する。実施の形態２と異なる点は同期制御部１７３０から各PEに対して同期準備信号ＰＲＥＰが出力されるバス線を備えている点にある。ここで同期準備信号ＰＲＥＰは、電力を落とされていたPEに対してコンテキスト復旧を促すための信号である。
また、同期制御部１７２０のシーケンサ１８０５が、同期準備信号ＰＲＥＰを出力する構成になっている。電力制御部１７３０からの状態信号ＳＴＡＴＵＳに基づいて、各PEで電力が再度供給されて電源電圧が安定化した後に出力される。
【００７３】
準同期要求信号生成部１７５０ａ、１７５０ｂ、…、１７５０ｎの準同期アドレスレジスタの準同期アドレスレジスタのアドレスは、電源安定化の時間に加えてコンテキスト復旧のための時間も考慮して設定する。なおコンテキスト復旧のために必要な時間は処理クロックのサイクル換算で、長いと１００サイクルほどかかる。よって電力安定化とコンテキスト復旧にかかる１１００サイクル前の命令アドレスに設定するのが望ましい。
【００７４】
＜動作＞
実施の形態２変形例に係るマルチプロセッサ制御装置１７００の動作について図１９のフローチャートを用いて説明する。基本的な動作は実施の形態２と変わらないため、その相違点のみを述べる。
図１９において、実施の形態２の図１４におけるフローチャートのステップＳ１４１７と異なり、ステップＳ１９１７において同期制御部１７２０は、電力を遮断していた各PEに対してコンテキスト復旧を促す同期準備信号ＰＲＥＰを出力している。
【００７５】
そのほかの動作については実施の形態２のものとかわらない。
実施例２の図１６に示したタイミングチャートを実施の形態２変形例に即した形で記述すると図２０のタイミングチャートのようになる。
図１６のタイミングチャートと、図２０のタイミングチャートとを比較すると分かるように、実施の形態２変形例においてはPE１７１０ａやPE１７１０ｎにおいてコンテキスト退避を行っている（ステップＳ２０１３、ステップＳ２０３３）。また、電力の供給を再開したPE（ステップ２０１５）はその電源電圧の安定を待って、同期制御部１７２０から出力される同期準備信号ＰＲＥＰに基づき、コンテキスト復旧を行っている（ステップＳ２０１６）。
【００７６】
以上２点が実施の形態２と異なる点である。
＜補足＞
なお、本発明に係るマルチプロセッサを上記実施の形態に基づいて説明してきたが、本発明は上記実施の形態に限られないことは勿論である。以下、その変形例について説明していく。
【００７７】
（１）上記実施の形態においては、同期制御部は、同期カウンタや準同期カウンタを備えたが、別に同期カウンタや同期予測カウンタを備えなくてもよい。例えば、同期制御部を図２２に示すような構成してもよい。同図にあるように、同期カウンタや同期予測カウンタの替わりに、各PEそれぞれに対しての同期要求信号SYNCのバス線を備える構成にしてよい。準同期カウンタも同様に準同期要求信号PRESYNCのバス線を供える構成にする事ができる（図示せず）。
【００７８】
このような場合、同期予測判定部の構成は、例えば図２３（ａ）に示すような回路構成にしてもよい。図においては、簡略化するためにPEがPEａ、PEｂ、PEｃ、PEｄの４個がある場合を示している。
図２３（ａ）にあるように、同期予測判定部はＡＮＤ回路とＯＲ回路で構成できる。各ＡＮＤ回路にはそれぞれ、１つを除く全てのPEからの同期要求信号が供給される。例えばＡＮＤ回路２３００ａにはPEａからの同期要求信号SYNCａ、PEｂからの同期要求信号SYNCｂ、PEｃからの同期要求信号SYNCｃが供給される。ＡＮＤ回路のいずれかに３つの信号が供給されることでＯＲ回路に「１」を意味する信号が出力される。こうして同期がまもなく確立することを示す同期予測信号ALMOSTが出力できるようになる。
【００７９】
また、この場合の同期確立判定部の構成の一例を図２３（ｂ）に示しておいた。
電力抑制判定部は、図２３（ａ）におけるＯＲ回路をＮＯＲ回路にすることで実現できる。
（２）上記実施の形態１及びその変形例において同期予測判定部は同期カウンタが１になったときに同期予測信号ALMOSTを出力したが、これは別に同期カウンタが１のときでなくてもよく、同期カウンタが２、あるいは３のときにALMOSTを出力することとしてもよい。こうすることで電源電圧安定化のための時間に余裕を持たせることができるようになる。また、最後に残った２つが同時に演算を終了するような場合にも対応することができるようになる。
【００８０】
（３）上記実施の形態２においては準同期要求信号生成部を設けて準同期要求信号を出力させたが、各PEに準同期要求信号を出力するポートを設けて出力させてもよい。そして各PEで実行されるプログラム中に準同期要求信号を生成する命令を挿入して準同期要求信号を出力するタイミングを決定してもよい。図２１にこの場合のプログラム例２１００を示しておいた。本実施例におけるようなマルチプロセッサシステムでは、PRESYNC命令からSYNC命令までの実行サイクル数を予め見積もれる可能性が高い。そこで、電源復旧に必要な実行サイクル数（約１０００サイクル）、そして必要ならばコンテキスト復旧に必要なサイクル数（約１００サイクル）を考慮してPRESYNC命令を挿入することで準同期要求信号を出力する。
【００８１】
このPRESYNC命令を挿入する場合、SYNC命令の１０００もしくは１１００サイクル前がループ演算あるいは分岐演算に当たる場合はそのことも踏まえてプログラムを記述する必要がある。
（４）上記実施の形態２及びその変形例においては、準同期要求信号の出力タイミングの設定は同期要求信号を出力する１０００サイクル前、あるいは１１００サイクル前としたが、これは必ずしもその限りではない。場合によっては１０００サイクル以内で演算が終了することも考えられるので、その場合には１０００サイクルを下回ってもよいこととする。
【００８２】
（５）上記実施の形態１及びその変形例においては、その機能構成を図１のようにしたが、これを図２４に示すように構成してもよい。
図２４においては、各PEに対して同期制御部を備える構成としている。この場合各同期制御部２４４０ａ、２４４０ｂ、２４４０ｃ、…２４４０ｎは、自機が接続されているPE以外のPEからの同期要求信号の出力状態を、バス線を通じて知ることができる。このように、同期制御部２４４０を分散制御することも考えられる。この構成によっても実施の形態１及びその変形例と同様の効果を得ることが可能である。
【００８３】
（６）マルチプロセッサ制御装置を構成する各部は、ＬＳＩ（Large Scale Integration）、ＶＬＳＩ（Very Large Scale Integration）等の一部又は全部として実現されてもよく、複数のＬＳＩ等で実現されてもよく、一又は複数のＬＳＩ等と他の回路の組み合わせとにより実現されてもよい。
（７）上記実施の形態の低消費電力モード１において、その電圧は、演算の結果を示したレジスタの情報が失われない程度の低電圧としたが、半導体の漏れ（リーク）電流による電力消費を削減するために、閾値電圧を高めに設定してもよい。ここでいう閾値電圧とはその値を超える電圧が加えられると回路に電流が流れるように設定されている電圧値で、この値が低いと漏れ電流が発生しやすくなる。半導体プロセスの微細化にしたがって、消費される電力の内で漏れ電流の占める割合が大きくなるため、閾値電圧を高めにすることでこの漏れをある程度防ぐことができる。
【００８４】
（８）上記実施の形態においては、同期カウンタ及び準同期カウンタは、減算していく形式で出力された同期要求信号及び準同期要求信号の数を計算していたが、これを加算する形式にしても良い。この場合、例えば上記実施の形態１を例にとると、同期カウンタ２０１は、その数値を０から開始して同期要求信号を受け取るたびに１加算していき、同期予測判定部２０４は同期カウンタ２０１の数がｎ−１になったときに同期予測信号ＡＬＭＯＳＴを出力する構成になる。また同期確立判定部２０２は、同期カウンタの数がｎになったときに同期確立信号ＥＳＴＡＢＬＩＳＨを出力することになる。
【００８５】
（９）上記実施の形態においては特に記述しなかったが、同期カウンタは、一時に１つの同期要求信号しか受け取れない構成にすることが望ましい。また、準同期カウンタも同様に一時に１つの準同期要求信号しか受け取れない構成にすることが望ましい。
【産業上の利用可能性】
【００８６】
本発明に係るマルチプロセッサ制御装置は、大容量演算を行う並列システムなどにおいて利用することができる。
【図面の簡単な説明】
【００８７】
【図１】実施の形態１に係るマルチプロセッサシステムの機能構成を示したブロック図である。
【図２】実施の形態１に係る同期制御部の機能構成を示したブロック図である。
【図３】電力制御部が保持する各PE（Processor Element）の電力供給状態の一例を示した真理値表である。
【図４】PEが実行するプログラムの構成の一例を示した図である。
【図５】実施の形態１に係るマルチプロセッサ制御装置の動作を示したフローチャートである。
【図６】実施の形態１に係るマルチプロセッサ制御装置の各PEと同期制御部の動作例を示したタイミングチャートである。
【図７】実施の形態１の変形例に係るマルチプロセッサ制御装置の機能構成を示したブロック図である。
【図８】実施の形態１の変形例に係る同期制御部の機能構成を示したブロック図である。
【図９】実施の形態１の変形例に係るマルチプロセッサ制御装置の動作を示したフローチャートである。
【図１０】実施の形態１の変形例に係るマルチプロセッサ制御装置の各PEと同期制御部の動作例を示したタイミングチャートである。
【図１１】実施の形態２に係るマルチプロセッサ制御装置の機能構成を示したブロック図である。
【図１２】実施の形態２に係る同期制御部の機能構成を示したブロック図である。
【図１３】図１３は、実施の形態２に係る準同期要求信号生成部の機能構成を示したブロック図である。
【図１４】実施の形態２に係るマルチプロセッサ制御装置の動作を示したフローチャートである。
【図１５】準同期要求信号生成部の動作を示したフローチャートである。
【図１６】実施の形態２における各PE及び同期制御部の動作のタイミングの一例を示したタイミングチャートである。
【図１７】実施の形態２の変形例に係るマルチプロセッサ制御装置の機能構成を示したブロック図である。
【図１８】実施の形態２の変形例に係る同期制御部の機能構成を示したブロック図である。
【図１９】実施の形態２の変形例に係るマルチプロセッサ制御装置の動作を示したフローチャートである。
【図２０】実施の形態２の変形例に係るマルチプロセッサの動作例を示したタイミングチャートである。
【図２１】実施の形態２に係るマルチプロセッサが実行するプログラムの例を示した図である。
【図２２】同期制御部の機能構成の変形例を示したブロック図である。
【図２３】同期予測判定部や同期確立判定部の機能構成の一例を示したブロック図である。
【図２４】実施の形態１の機能構成の変形例を示したブロック図である。
【符号の説明】
【００８８】
１００  マルチプロセッサ制御装置
１１０ａ、１１０ｂ、１１０ｃ、…、１１０ｎ  ＰＥ
１２０  同期制御部
１３０  電力制御部
２０１  同期カウンタ
２０２  同期確立判定部
２０３  電力抑制判定部
２０４  同期予測判定部
２０５  シーケンサ
７００  マルチプロセッサ制御装置
７１０ａ、７１０ｂ、７１０ｃ、…、７１０ｎ  ＰＥ
７２０  同期制御部
７３０  電力制御部
８０１  同期カウンタ
８０２  同期確立判定部
８０３  電力抑制判定部
８０４  同期予測判定部
８０５  シーケンサ
１１００  マルチプロセッサ制御装置
１１１０ａ、１１１０ｂ、…、１１１０ｎ  ＰＥ
１１２０  同期制御部
１１３０  電力制御部
１１４０ａ、１１４０ｂ、…、１１４０ｎ  キャッシュメモリ
１１５０  準同期要求信号生成部
１１６０  共有メモリ
１２０１  同期カウンタ
１２０２  同期確立判定部
１２０３  電力抑制判定部
１２０４  同期予測判定部
１２０５  シーケンサ
１２０６  準同期カウンタ
１３０１  準同期アドレスレジスタ
１３０２  アドレス一致判定部
１７００  マルチプロセッサ制御装置
１７１０ａ、１７１０ｂ、…、１７１０ｎ  ＰＥ
１７２０  同期制御部
１７３０  電力制御部
１７４０ａ、１７４０ｂ、…、１７４０ｎ  キャッシュメモリ
１７５０  準同期要求信号生成部
１７６０  共有メモリ
１８０１  同期カウンタ
１８０２  同期確立判定部
１８０３  電力抑制判定部
１８０４  同期予測判定部
１８０５  シーケンサ
１８０６  準同期カウンタ
２３００ａ、２３００ｂ、２３００ｃ、２３００ｄ  ＡＮＤ回路
２３１０、２３２０  ＯＲ回路
２４００  マルチプロセッサ制御装置
２４１０ａ、２４１０ｂ、２４１０ｃ、…、２４１０ｎ  ＰＥ
２４３０  電力制御部
２４４０ａ、２４４０ｂ、２４４０ｃ、…、２４４０ｎ  同期制御部
【図１】
2006048652.tif 000003
【図２】
2006048652.tif 000004
【図３】
2006048652.tif 000005
【図４】
2006048652.tif 000006
【図５】
2006048652.tif 000007
【図６】
2006048652.tif 000008
【図７】
2006048652.tif 000009
【図８】
2006048652.tif 000010
【図９】
2006048652.tif 000011
【図１０】
2006048652.tif 000012
【図１１】
2006048652.tif 000013
【図１２】
2006048652.tif 000014
【図１３】
2006048652.tif 000015
【図１４】
2006048652.tif 000016
【図１５】
2006048652.tif 000017
【図１６】
2006048652.tif 000018
【図１７】
2006048652.tif 000019
【図１８】
2006048652.tif 000020
【図１９】
2006048652.tif 000021
【図２０】
2006048652.tif 000022
【図２１】
2006048652.tif 000023
【図２２】
2006048652.tif 000024
【図２３】
2006048652.tif 000025
【図２４】
2006048652.tif 000026