(57)【要約】【課題】マルチプロセッサの制御において簡単な構成で局所的な高温の発生を効率的に抑制できるようにする。【解決手段】制御装置１２は、１チップに複数のプロセッサが内蔵されたマルチプロセッサに使用される。この制御装置１２は複数のプロセッサ１，２，３，…，ｎとの通信を行うためのインタフェース部１２ａを通じて、各プロセッサの動作状態を一定時間毎に順次切り替える制御を行う。この制御では、制御装置１２は、各プロセッサの発熱量が一定時間毎に順次、他のプロセッサの発熱量よりも小さくなるように制御する。【選択図】      図１
2007102313.tif 000002
【特許請求の範囲】
【請求項１】
１チップに複数のプロセッサが内蔵されたマルチプロセッサに使用される制御装置であって、
前記複数のプロセッサとの通信を行うための通信手段と、
前記通信手段を通じて、各プロセッサの動作状態を一定時間毎に順次切り替える制御を行う制御手段と
を具備することを特徴とする制御装置。
【請求項２】
前記制御手段は、各プロセッサが一定時間毎に順次、動作停止状態となるように制御することを特徴とする請求項１記載の制御装置。
【請求項３】
前記制御手段は、各プロセッサの動作周波数が一定時間毎に順次、他のプロセッサの動作周波数よりも低い状態となるように制御することを特徴とする請求項１記載の制御装置。
【請求項４】
前記制御手段は、各プロセッサが一定時間毎に順次、他のプロセッサが実行するプログラムよりも負荷が小さいプログラムを実行するように制御することを特徴とする請求項１記載の制御装置。
【請求項５】
１チップに複数のプロセッサが内蔵されたマルチプロセッサに使用される制御装置であって、
前記複数のプロセッサの温度をそれぞれ検出するための複数の温度センサと、
前記複数のプロセッサとの通信を行うための通信手段と、
前記通信手段を通じて、一定時間毎に、前記複数の温度センサで検出される各温度に基づいていずれかのプロセッサの動作状態を切り替える制御を行う制御手段と
を具備することを特徴とする制御装置。
【請求項６】
前記制御手段は、一定時間毎に、温度が所定値を超えているプロセッサの動作周波数が低くなるように制御することを特徴とする請求項５記載の制御装置。
【請求項７】
前記制御手段は、一定時間毎に、温度が所定値を超えているプロセッサがより負荷の小さいプログラムを実行するように制御することを特徴とする請求項５記載の制御装置。
【請求項８】
１チップに複数のプロセッサが内蔵されたマルチプロセッサを制御するマルチプロセッサ制御方法であって、
前記複数のプロセッサと所定の装置との間で通信を行い、
前記所定の装置により、各プロセッサの動作状態を一定時間毎に切り替える制御を行う
ことを特徴とするマルチプロセッサ制御方法。
【請求項９】
前記所定の装置により、各プロセッサが一定時間毎に順次、動作停止状態となるように制御することを特徴とする請求項８記載のマルチプロセッサ制御方法。
【請求項１０】
前記所定の装置により、各プロセッサの動作周波数が一定時間毎に順次、他のプロセッサの動作周波数よりも低い状態となるように制御することを特徴とする請求項８記載のマルチプロセッサ制御方法。
【請求項１１】
前記所定の装置により、各プロセッサが一定時間毎に順次、他のプロセッサが実行するプログラムよりも負荷が小さいプログラムを実行するように制御することを特徴とする請求項８記載のマルチプロセッサ制御方法。
【請求項１２】
複数の温度センサで前記複数のプロセッサの温度をそれぞれ検出し、
前記所定の装置により、一定時間毎に、前記複数の温度センサで検出される各温度に基づいていずれかのプロセッサの動作状態を切り替える制御を行うことを特徴とする請求項８記載のマルチプロセッサ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１チップに複数のプロセッサが内蔵されたマルチプロセッサに使用される制御装置およびマルチプロセッサ制御方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置においては、１チップに複数のプロセッサが内蔵されたマルチプロセッサが使用されているものがある。
【０００３】
マルチプロセッサは、プロセッサ毎に動作させるプログラムの違いによる発熱の違い、プロセッサ毎の放熱の違いなどの影響により、特定のプロセッサだけに局所的な高温が生じ、誤動作が発生する問題がある。
【０００４】
これを避けるためには、局所的な高温がない場合よりもより強力な冷却の仕組みが必要になる。また、冷却のための実装面積や体積が増大してしまうことになる。
【０００５】
なお、特許文献１には、複数のプロセッサが配置されているチップに関し、ジョブ処理による電力消費に伴うプロセッサの温度情報を推定し、その推定結果に基づいて空きプロセッサにジョブを割り当てることにより、チップ上での局所的な発熱の集中を回避する技術が開示されている。
【特許文献１】特開２００４−２４０６６９号公報（段落００２５など）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１において推定される温度は必ずしも実際の温度に一致するわけではなく、誤差の影響により不具合が生じる可能性がある。また、特許文献１では推定を行うための特別な演算手段を新たに設けなければならないため、コストの増大を招いてしまう。
【０００７】
本発明は上記実情に鑑みてなされたものであり、簡単な構成で局所的な高温の発生を効率的に抑制することができる制御装置およびマルチプロセッサ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一観点に係る制御装置は、１チップに複数のプロセッサが内蔵されたマルチプロセッサに使用される制御装置であって、前記複数のプロセッサとの通信を行うための通信手段と、前記通信手段を通じて、各プロセッサの動作状態を一定時間毎に順次切り替える制御を行う制御手段とを具備することを特徴とする。
【０００９】
本発明の他の観点に係る制御装置は、１チップに複数のプロセッサが内蔵されたマルチプロセッサに使用される制御装置であって、前記複数のプロセッサの温度をそれぞれ検出するための複数の温度センサと、前記複数のプロセッサとの通信を行うための通信手段と、前記通信手段を通じて、一定時間毎に、前記複数の温度センサで検出される各温度に基づいていずれかのプロセッサの動作状態を切り替える制御を行う制御手段とを具備することを特徴とする。
【００１０】
本発明の更なる他の観点に係るマルチプロセッサ制御方法は、１チップに複数のプロセッサが内蔵されたマルチプロセッサを制御するマルチプロセッサ制御方法であって、前記複数のプロセッサと所定の装置との間で通信を行い、前記所定の装置により、各プロセッサの動作状態を一定時間毎に切り替える制御を行うことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、簡単な構成で局所的な高温の発生を効率的に抑制することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の各実施形態について説明する。
【００１３】
＜第１の実施形態＞
最初に、本発明の第１の実施形態について説明する。
【００１４】
図１は、本発明の第１の実施形態に係るマルチプロセッサを含むシステムの概略構成を示すブロック図である。
【００１５】
図１中のマルチプロセッサ１０およびメモリ２０は、例えばパーソナルコンピュータに設けられるものである。マルチプロセッサ１０は、１チップに複数のプロセッサが内蔵されたものであり、プロセッサ部１１、制御装置１２、タイマ１３、およびメモリコントローラ１４を備えている。一方、メモリ２０は、マルチプロセッサ１０が使用するメインメモリであり、マルチプロセッサ１０内のメモリコントローラ１４に接続されている。
【００１６】
上記プロセッサ部１１は、複数のプロセッサ１，２，３，…，ｎを有している。各プロセッサは、例えばＣＰＵ（Central Processing unit）であり、メモリ２０上にロードされているプログラムを実行することができる。また、制御装置１２は、インタフェース部（Ｉ／Ｆ）１２ａを備えるほか、タイマ監視部１６、および制御部１７を備えている。
【００１７】
インタフェース部１２ａは、制御装置１２と複数のプロセッサ１，２，３，…，ｎとのインタフェース処理を行う通信機能である。
【００１８】
タイマ監視部１６は、タイマ１３から得られる経時情報に基づいて一定の時間が経過したか否か等を監視するものである。
【００１９】
制御部１７は、インタフェース部１２ａを通じて、各プロセッサの動作状態を一定時間毎に順次切り替える制御を行うものである。特に、この制御部１７は、各プロセッサの発熱量が一定時間毎に順次、他のプロセッサの発熱量よりも小さくなるように制御する。具体的には、制御部１７は、プロセッサ部１１における局所的な発熱の集中を回避するための機能として、以下のような種々な制御モードＭ１〜Ｍ３を有する。
【００２０】
第１の制御モードＭ１が適用された場合、制御部１７は、各プロセッサが一定時間毎に順次、動作停止状態となるように制御する。
【００２１】
第２の制御モードＭ２が適用された場合、制御部１７は、各プロセッサの動作周波数が一定時間毎に順次、他のプロセッサの動作周波数よりも低い状態となるように制御する。
【００２２】
第３の制御モードＭ３が適用された場合、制御部１７は、各プロセッサが一定時間毎に順次、他のプロセッサが実行するプログラムよりも負荷が小さいプログラムを実行するように制御する。
【００２３】
上記制御モードＭ１〜Ｍ３のいずれかを状況に応じて適宜選択して適用することにより、チップ内で発生する熱が均一化されることになり、熱による個々のプロセッサの誤動作や故障などの不具合の発生を抑制することができる。
【００２４】
なお、上記制御モードＭ１〜Ｍ３を適宜組み合わせて一つの制御モードとして実行するように構成してもよい。また、制御モードＭ１〜Ｍ３のいずれか一つだけが固定的に実行されるように構成してもよいし、動作条件などに応じて選択的に実行されるようにしてもよい。
【００２５】
また、図１では、上記制御装置１２がハードウェアとして１チップのマルチプロセッサ１０内に内蔵された場合を例示しているが、この構成に限定されるものではなく、例えばメモリ１０上にロードされたオペレーティングシステム（ＯＳ）のもとで動作するソフトウェア（プログラム）として実現してもよい。この場合、設定画面を通じてユーザが制御モードＭ１〜Ｍ３の選択設定を行えるように構成してもよい。制御装置１２をソフトウェアとして実現した場合、プログラムの更新により、新たな制御モードの追加や既存の制御モードの変更を行いやすいという利点がある。
【００２６】
タイマ１３は、時間を計測するものであり、その経時の情報は制御装置１２へ伝えられる。
【００２７】
メモリコントローラ１４は、メモリ１０を制御するものである。なお、このメモリコントローラ１４は、マルチプロセッサ１０の外部に設けられていてもよい。
【００２８】
ここで、図２を参照して、制御モードＭ１が適用された場合のプロセッサ１〜４の動作を説明する。ここでは、複数のプロセッサ１，２，３，…，ｎが４つの場合（即ち、ｎ＝４の場合）を考える。
【００２９】
制御モードＭ１においては、制御部１７は、例えば、時刻ｔ０になったら、プロセッサ１を停止させ、プロセッサ２，プロセッサ３、プロセッサ４を動作状態にさせる。次に、時刻ｔ１になったら、プロセッサ２を停止させ、プロセッサ３、プロセッサ４、プロセッサ１を動作状態にさせる。次に、時刻ｔ２になったら、プロセッサ３を停止させ、プロセッサ４、プロセッサ１、プロセッサ２を動作状態にさせる。次に、時刻ｔ３になったら、プロセッサ４を停止させ、プロセッサ１、プロセッサ２、プロセッサ３を動作状態にさせる。以降、同様な動作を繰り返す。
【００３０】
上記動作によれば、図３に示されるように、あるプロセッサの動作時には温度が上昇するが、当該プロセッサの停止時には動作時よりも消費電力が低いため、そのプロセッサからの発熱が抑えられ、温度が低下する。従って、制御モードＭ１によれば、４つのプロセッサ中、少なくとも３つのプロセッサを動作させたままで、プロセッサの局所的な発熱を抑えることができる。
【００３１】
次に、図４を参照して、制御モードＭ２が適用された場合のプロセッサ１〜４の動作を説明する。
【００３２】
上記の制御モードＭ１では、一定時間毎に各プロセッサを停止させたが、停止ではなく、その動作周波数を低下させるようにしてもよい。
【００３３】
すなわち、制御モードＭ２においては、制御部１７は、例えば、時刻ｔ０になったら、プロセッサ１の動作周波数を低下させ、プロセッサ２，プロセッサ３、プロセッサ４を高い動作周波数で動作させる。次に、時刻ｔ１になったら、プロセッサ２を停止させ、プロセッサ３、プロセッサ４、プロセッサ１を高い動作周波数で動作させる。次に、時刻ｔ２になったら、プロセッサ３を停止させ、プロセッサ４、プロセッサ１、プロセッサ２を高い動作周波数で動作させる。次に、時刻ｔ３になったら、プロセッサ４を停止させ、プロセッサ１、プロセッサ２、プロセッサ３を高い動作周波数で動作させる。以降、同様な動作を繰り返す。
【００３４】
上記動作によれば、あるプロセッサが高い動作周波数で動作している時には温度が上昇するが、当該プロセッサが低い動作周波数で動作しているときは高い動作周波数で動作している時よりも消費電力が低いため、そのプロセッサからの発熱が抑えられ、温度が低下する。従って、制御モードＭ２によれば、４つのプロセッサの全てを動作させたままで、プロセッサの局所的な発熱を抑えることができる。
【００３５】
次に、図５を参照して、制御モードＭ３が適用された場合のプロセッサ１〜４の動作を説明する。
【００３６】
各プロセッサの発熱量は、動作させるプログラムによっても変わる。例えば、あるプログラムでは発熱が多くホットスポット（局所的に高温となる部分）が生じやすいが、他のプログラムでは発熱が少なくホットスポットは生じにくいという場合がある。このため、一定時間毎に、プロセッサ１〜４がそれぞれ実行するプログラムを所定の順序で入れ替える制御を行うことにより、ホットスポットの発生を抑制することができる。
【００３７】
例えば、４つのプロセッサ１、プロセッサ２、プロセッサ３、プロセッサ４がそれぞれプログラムＡ、プログラムＢ、プログラムＣ、プログラムＤを実行している状態を考える。この場合、プログラムＢ、プログラムＣ、プログラムＤは実行中の発熱量が比較的多く、プログラムＡは実行中の発熱量が比較的少ないものとする。
【００３８】
この場合、制御部１７は、例えば、時間Ｔ１ではプロセッサ１でプログラムＡを、プロセッサ２でプログラムＢを、プロセッサ３でプログラムＣを、プロセッサ４でプログラムＤを動作させる。次に、時間Ｔ２ではプロセッサ１でプログラムＤを、プロセッサ２でプログラムＡを、プロセッサ３でプログラムＢを、プロセッサ４でプログラムＣを動作させる。次に、時間Ｔ３ではプロセッサ１でプログラムＣを、プロセッサ２でプログラムＤを、プロセッサ３でプログラムＡを、プロセッサ４でプログラムＢを動作させる。次に、時間Ｔ４ではプロセッサ１でプログラムＢを、プロセッサ２でプログラムＣを、プロセッサ３でプログラムＤを、プロセッサ４でプログラムＡを動作させる。以降、同様な動作を繰り返す。
【００３９】
上記動作によれば、あるプロセッサがプログラムＢ、プログラムＣ、またはプログラムＤを実行している時には温度が上昇するが、プログラムＡを実行している時には温度が低下する。従って、制御モードＭ３によれば、４つのプロセッサの全てを動作させたままで、プロセッサの局所的な発熱を抑えることができる。また、上述の制御モードＭ１，Ｍ２では各プロセッサを停止させたりその動作周波数を低下させたりするので性能が少し低下してしまうが、この制御モードＭ３では各プロセッサが実行するプログラムが変わるだけであり、マルチプロセッサ全体としてはプログラムＡ，Ｂ，Ｃ，Ｄの全てが普通に動作するため、性能が低下しないという利点がある。
【００４０】
次に、図６のフローチャートを参照して、本実施形態における制御装置１２の動作を説明する。
【００４１】
いま、複数のプロセッサ１，２，３，…，ｎはそれぞれ与えられたプログラムを実行している状態にあり、制御装置１２には制御モードＭ１，Ｍ２，Ｍ３のいずれかが適用されているものとする。
【００４２】
制御装置１２は、タイマ１３からの経時情報の読み込みを逐次繰り返すことにより、一定時間（予め定められた時間）が経過しかどうかを判定する（ステップＳ１１，Ｓ１２）。
【００４３】
ここで、一定時間が経過したと判定された場合、その時点で、個々のプロセッサの動作の切り替え制御（動作、停止など）を実行し（ステップＳ１３）、切り替えが完了した後は、ステップＳ１１からの処理を繰り返す。
【００４４】
上記ステップＳ１３においては、制御モードＭ１が適用されている場合、制御装置１２は、一定時間、対象のプロセッサが動作停止状態となるように制御する。また、制御モードＭ２が適用されている場合、制御装置１２は、一定時間、対象のプロセッサの動作周波数が他のプロセッサの動作周波数よりも低い状態となるように制御する。また、制御モードＭ３が適用されている場合、制御装置１２は、一定時間、対象のプロセッサが他のプロセッサが実行するプログラムよりも負荷が小さいプログラムを実行するように制御する。
【００４５】
このように第１の実施形態によれば、制御モードＭ１〜Ｍ３のいずれかを状況に応じて適宜選択して適用することにより、チップ内で発生する熱が均一化されることになり、熱による個々のプロセッサの誤動作や故障などの不具合の発生を抑制することができる。
【００４６】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。
【００４７】
図７は、本発明の第２の実施形態に係るマルチプロセッサを含むシステムの概略構成を示すブロック図である。なお、図１と共通する要素には同一の符号を付している。以下では、前述の第１の実施形態と異なる部分について説明する。
【００４８】
第２の実施形態では、複数のプロセッサ１，２，３，…，ｎにそれぞれ温度センサ３１，３２，３３，…，３ｎが設けられている。各温度センサは、対応するプロセッサの温度を検出するものであり、検出された温度の値を示す情報を制御装置１２へ伝える。なお、各温度センサは、検出された温度が所定値（予め設定された閾値）を達した場合に警告や危険を示す情報を制御装置１２へ伝えるように構成してもよい。また、上記設定値を温度の高さに応じて多段階に分けて設け（例えば警告と危険とを区別して２つの設定値を設け）、危険度に応じた情報を制御装置１２へ伝えるように構成してもよい。
【００４９】
また、第２の実施形態では、制御部１７は更に、温度センサ３１，３２，３３，…，３ｎから伝えられる情報に基づき、各温度センサで検出される温度（もしくは危険の度合い等の状態）を監視する機能を備えている。すなわち、制御部１７は、インタフェース部１２ａを通じて、一定時間毎に、複数の温度センサ３１，３２，３３，…，３ｎで検出される各温度に基づいていずれかのプロセッサの動作状態を切り替える制御を行うものとなっている。この第２の実施形態においては、制御部１７は、プロセッサ部１１における局所的な発熱の集中を回避するための機能として、以下のような制御モードＭ４，Ｍ５を有する。
【００５０】
第４の制御モードＭ４が適用された場合、制御部１７は、一定時間毎に、温度が所定値を超えているプロセッサの動作周波数が低くなるように制御する。
【００５１】
第５の制御モードＭ５が適用された場合、制御部１７は、一定時間毎に、温度が所定値を超えているプロセッサがより負荷の小さいプログラムを実行するように制御する。
【００５２】
上記制御モードＭ４，Ｍ５のいずれかを、状況に応じて適宜選択して適用することにより、チップ内で発生する熱が均一化されることになり、熱による個々のプロセッサの誤動作や故障などの不具合の発生を抑制することができる。
【００５３】
なお、上記制御モードＭ４，Ｍ５を適宜組み合わせて一つの制御モードとして実行するように構成してもよい。また、制御モードＭ４，Ｍ５のいずれか一つだけが固定的に実行されるように構成してもよいし、動作条件などに応じて選択的に実行されるようにしてもよい。
【００５４】
次に、図８のフローチャートを参照して、本実施形態における制御装置１２の動作を説明する。
【００５５】
いま、複数のプロセッサ１，２，３，…，ｎはそれぞれ与えられたプログラムを実行している状態にあり、制御装置１２には制御モードＭ４およびＭ５のいずれかが適用されているものとする。
【００５６】
制御装置１２は、ｎ個のプロセッサに対し、例えばプロセッサ１，２，３，…，ｎの順に一定の時間間隔で各温度を検証する。具体的には、制御装置１２は、検証の対象となるｉ番目（ｉ＝１〜ｎ）のプロセッサとして、最初に１番目のプロセッサ１を設定し（ステップＳ２１）、当該ｉ番目のプロセッサの温度センサで検出される温度の値を読み込み（ステップＳ２２）、その値が一定温度を超えているか（もしくは一定温度以上となっているか）否かを判定する（ステップＳ２３）。
【００５７】
その判定の結果、温度センサで検出される温度の値が一定温度を超えていなければ、次の順番のプロセッサに監視の対象を移す（ステップＳ２４）。そして、ｎ番目のプロセッサまで検証が完了しているか否かを判定し（ステップＳ２５）、完了していなければ、ステップＳ２２からの処理を繰り返し、完了していれば、ステップＳ２１からの処理を繰り返す。
【００５８】
上記ステップＳ２３において、温度センサで検出される温度の値が一定温度を超えていれば、該当するプロセッサの動作の切り替え制御（動作、停止など）を実行し（ステップＳ２６）、ステップＳ２４の処理へ進むことになる。
【００５９】
上記ステップＳ２６においては、制御モードＭ４が適用されている場合、制御装置１２は、一定時間、対象のプロセッサの動作周波数が低くなるように制御する。また、制御モードＭ５が適用されている場合、制御装置１２は、一定時間、対象のプロセッサがより負荷の小さいプログラムを実行するように制御する。
【００６０】
このように第２の実施形態によれば、制御モードＭ４，Ｍ５のいずれかを状況に応じて適宜選択して適用することにより、チップ内で発生する熱が均一化されることになり、熱による個々のプロセッサの誤動作や故障などの不具合の発生を抑制することができる。更に、個々のプロセッサの温度の検出結果を当該プロセッサの制御に用いているため、特定のプロセッサが急激に高温状態となることを防止することができる。
【００６１】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明の第１の実施形態に係るマルチプロセッサを含むシステムの概略構成を示すブロック図。
【図２】第１の制御モードが適用された場合の個々のプロセッサの動作を説明するための図。
【図３】第１の制御モードが適用された場合の個々のプロセッサの温度を説明するための図。
【図４】第２の制御モードが適用された場合の個々のプロセッサの動作を説明するための図。
【図５】第３の制御モードが適用された場合の個々のプロセッサの動作を説明するための図。
【図６】同実施形態における制御装置の動作を示すフローチャート。
【図７】本発明の第２の実施形態に係るマルチプロセッサを含むシステムの概略構成を示すブロック図。
【図８】同実施形態における制御装置の動作を示すフローチャート。
【符号の説明】
【００６３】
１，２，３，ｎ…複数のプロセッサ、１０…マルチプロセッサ、１１…プロセッサ部、１２…制御装置、１３…タイマ、１４…メモリコントローラ、１６…タイマ監視部、１７…制御部、２０…メモリ、３１，３２，３３，ｎ…温度センサ。
【図１】
2007102313.tif 000003
【図２】
2007102313.tif 000004
【図３】
2007102313.tif 000005
【図４】
2007102313.tif 000006
【図５】
2007102313.tif 000007
【図６】
2007102313.tif 000008
【図７】
2007102313.tif 000009
【図８】
2007102313.tif 000010