(57)【要約】【課題】各プロセッサ間でプロセッサ温度を均一にし、過熱による処理停止の発生を抑制する。【解決手段】  制御用ＩＣが、温度センサｔｓ１〜ｔｓ４により得られた各プロセッサＰ１〜Ｐ４の温度に基づいて、温度が最低値を示すプロセッサを、発熱量データが最高値を示すタスクに割り当てる。これにより、各プロセッサ間でプロセッサ温度を均一にでき、過熱による処理停止の発生を抑制できる。【選択図】  図１
2006099624.tif 000002
【特許請求の範囲】
【請求項１】
互いに接続される複数のプロセッサと、
前記複数のプロセッサのそれぞれの温度を検出するための温度検出手段と、
前記複数のプロセッサの少なくとも１以上のプロセッサによって、複数のタスクを実行している際に、前記複数のタスクの何れも実行していない１以上のプロセッサを抽出する抽出手段と、
前記抽出手段により抽出された１以上のプロセッサのうち、前記温度検出手段により検出された温度が最低値を示す１つのプロセッサを選択する第１の選択手段と、
新たに実行される複数のタスクを前記抽出手段により抽出された複数のプロセッサの何れかへそれぞれ割り当てる際に、当該新たに実行される複数のタスクに含まれるそれぞれの発熱量データを参照し、発熱量データが最高値を示すタスクを選択する第２の選択手段と、
前記第１の選択手段で選択されたプロセッサへ、前記第２の選択手段で選択されたタスクを割り当てる割り当て手段と
を備えたことを特徴とするマルチプロセッサ計算機。
【請求項２】
請求項１に記載のマルチプロセッサ計算機において、
前記割り当て手段による割り当ての後、前記新たに実行される複数のタスクの全てをプロセッサに割り当てたか否かを判定する判定手段と、
前記判定手段で否と判定されたとき、未割り当てのタスクを前記複数のプロセッサへ割り当てるように、前記第１の選択手段、第２の選択手段及び前記割り当て手段を制御する制御手段と
を備えたことを特徴とするマルチプロセッサ計算機。
【請求項３】
請求項１又は請求項２に記載のマルチプロセッサ計算機において、
前記割り当て手段は、
前記プロセッサにタスクを割り当てる前に、前記温度検出手段により検出された温度に基づいて、過熱する可能性を持つプロセッサがあるか否かを判定する過熱判定手段と、
前記判定の結果、過熱する可能性を持つプロセッサがあるとき、新たなプロセッサが前記抽出手段により抽出されるまで前記タスクを割り当てずに前記各プロセッサを待機させる待機手段と
を備えたことを特徴とするマルチプロセッサ計算機。
【請求項４】
請求項３に記載のマルチプロセッサ計算機において、
前記待機手段は、
前記待機させる期間と同じ長さの実行期間を有し、発熱量データがゼロ値であり、他のタスクよりも優先的に実行されるダミータスクを生成する手段と、
前記ダミータスクを、現在実行しているタスクの集合に追加する手段と、
前記追加の後、実行しているタスクの集合に対してスケジューリングが可能か否かを判定する手段と、
この判定の結果、スケジューリングが可能であるとき、前記ダミータスクを他のタスクよりも優先的に実行させるようにスケジューリングを行う手段と、
を備えたことを特徴とするマルチプロセッサ計算機。
【請求項５】
互いに接続される複数のプロセッサを備えたマルチプロセッサ計算機に用いられるプログラムであって、
前記マルチプロセッサ計算機のコンピュータを、
前記複数のプロセッサのそれぞれの温度を検出するための温度検出手段、
前記複数のプロセッサの少なくとも１以上のプロセッサによって、複数のタスクを実行している際に、前記複数のタスクの何れも実行していない１以上のプロセッサを抽出する抽出手段、
前記抽出手段により抽出された１以上のプロセッサのうち、前記温度検出手段により検出された温度が最低値を示す１つのプロセッサを選択する第１の選択手段、
新たに実行される複数のタスクを前記抽出手段により抽出された複数のプロセッサの何れかへそれぞれ割り当てる際に、当該新たに実行される複数のタスクに含まれるそれぞれの発熱量データを参照し、発熱量データが最高値を示すタスクを選択する第２の選択手段、
前記第１の選択手段で選択されたプロセッサへ、前記第２の選択手段で選択されたタスクを割り当てる割り当て手段、
として機能させるためのプログラム。
【請求項６】
請求項５に記載のプログラムにおいて、
前記マルチプロセッサ計算機のコンピュータを、
前記割り当て手段による割り当ての後、前記新たに実行される複数のタスクの全てをプロセッサに割り当てたか否かを判定する判定手段、
前記判定手段で否と判定されたとき、未割り当てのタスクを前記複数のプロセッサへ割り当てるように、前記第１の選択手段、第２の選択手段及び前記割り当て手段を制御する制御手段、
として機能させるためのプログラム。
【請求項７】
請求項５又は請求項６に記載のプログラムにおいて、
前記割り当て手段としては、
前記プロセッサにタスクを割り当てる前に、前記温度検出手段により検出された温度に基づいて、過熱する可能性を持つプロセッサがあるか否かを判定する手順と、
前記判定の結果、過熱する可能性を持つプロセッサがあるとき、新たなプロセッサが前記抽出手段により抽出されるまで前記タスクを割り当てずに前記各プロセッサを待機させる手順と、
を備えたことを特徴とするプログラム。
【請求項８】
請求項７に記載のマルチプロセッサ計算機において、
前記待機手段としては、
前記待機させる期間と同じ長さの実行期間を有し、発熱量データがゼロ値であり、他のタスクよりも優先的に実行されるダミータスクを生成する手順と、
前記ダミータスクを、現在実行しているタスクの集合に追加する手順と、
前記追加の後、実行しているタスクの集合に対してスケジューリングが可能か否かを判定する手順と、
この判定の結果、スケジューリングが可能であるとき、前記ダミータスクを他のタスクよりも優先的に実行させるようにスケジューリングを行う手順と、
を備えたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサにタスクを割付け可能なマルチプロセッサ計算機及びプログラムに係り、特に、各プロセッサ間でプロセッサ温度を均一にでき、過熱による処理停止の発生を抑制し得るマルチプロセッサ計算機及びプログラムに関する。
【背景技術】
【０００２】
工場の生産ラインやプラントなどを制御する分野では、制御対象の動作タイミングである実時間と同期して制御を行う計算機が広く用いられている。このような計算機は、実時間処理を実現するように設計されたハードウェアおよびソフトウェアが実装されている。
【０００３】
ここで、実時間処理は、工場内の制御処理に限らず、企業の情報管理処理や電子商取引処理、あるいはマルチメディア処理の動画像処理などでも利用されている。
【０００４】
この種の計算機では、要求される処理能力が、単一プロセッサの処理能力よりも高い場合、複数プロセッサを同時に活用するマルチプロセッサ計算機が利用される。
【０００５】
多くのマルチプロセッサ計算機では、実時間処理に限らず、各プロセッサの処理能力を有効活用するため、一つのプロセッサに対し、複数の処理を割り当てている。
【０００６】
マルチプロセッサ計算機は、処理を実行する場合、処理をタスクという処理単位に分割し、各タスクの実行に必要な数のプロセッサを割り当て、タスクを実行する。タスクが複数のプロセッサを必要とする場合、各プロセッサ上でそれぞれ動作する実行単位をスレッドと呼ぶことがある。また、タスクおよびそれを構成するスレッドが、プロセッサ上で複数期間実行される場合、各実行期間をジョブと呼ぶことがある。例えば、２つのプロセッサを利用するタスクが周期的に実行される場合、そのタスクは利用プロセッサ数と同じ２つのスレッドで構成され、周期毎に各スレッドがジョブとして実行される。
【０００７】
マルチプロセッサ計算機では、複数のタスクを実行する場合、各タスクの実行順序を決めるスケジューリングを実行する必要がある。スケジューリング方式のうち、実際にプロセッサ上でジョブを実行する際に実行順序を決めるスケジューリング方式をダイナミックスケジューリングと呼ぶ。
【０００８】
一方、ジョブを実際に実行するプロセッサに割り当てることをディスパッチと呼ぶ。ダイナミックスケジューリング方式では、スケジューリングとディスパッチが同時に実行される。
【０００９】
ここで、ダイナミックスケジューリングを行うアルゴリズムには、タスクに付けられた優先度を基にスケジューリングを行う、優先度スケジューリングアルゴリズムがある。特に、一度付けた優先度を変更しないアルゴリズムを、固定優先度スケジューリングアルゴリズムと呼び、動的に優先度を変更するアルゴリズムを動的優先度スケジューリングアルゴリズムと呼ぶ。
【００１０】
優先度スケジューリングアルゴリズムの中には、タスクやジョブの優先度をタスクのパラメタを基に決定する方式がある。ＥＤＦ(Earliest Deadline First)スケジューリングアルゴリズムは、タスクやジョブのデッドラインを優先度とする、動的優先度スケジューリングアルゴリズムである。ＥＤＦスケジューリングアルゴリズムは、スケジューリング可能性判定を行い、全てのタスクがリアルタイム性を維持できることを保証可能なリアルタイムスケジューリングアルゴリズムである（例えば、非特許文献１参照）。
【非特許文献１】J. W. S. Liu, Real-Time Systems, Prentice Hall, 2000
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、以上のようなマルチプロセッサ計算機は、通常は特に問題は無いが、本発明者の検討によれば、優先度や処理性能や実時間処理のみを考慮してスケジューリングやディスパッチを行うので、各プロセッサ間で発熱量が不均一になり、熱くなったプロセッサの冷却ノイズ（ファン音等）が増大し、最終的には、過熱による処理停止などが発生する可能性があると考えられる。
【００１２】
本発明は上記実情を考慮してなされたもので、各プロセッサ間でプロセッサ温度を均一にでき、過熱による処理停止の発生を抑制し得るマルチプロセッサ計算機及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
第１の発明は、互いに接続される複数のプロセッサと、前記複数のプロセッサのそれぞれの温度を検出するための温度検出手段と、前記複数のプロセッサの少なくとも１以上のプロセッサによって、複数のタスクを実行している際に、前記複数のタスクの何れも実行していない１以上のプロセッサを抽出する抽出手段と、前記抽出手段により抽出された１以上のプロセッサのうち、前記温度検出手段により検出された温度が最低値を示す１つのプロセッサを選択する第１の選択手段と、新たに実行される複数のタスクを前記抽出手段により抽出された複数のプロセッサの何れかへそれぞれ割り当てる際に、当該新たに実行される複数のタスクに含まれるそれぞれの発熱量データを参照し、発熱量データが最高値を示すタスクを選択する第２の選択手段と、前記第１の選択手段で選択されたプロセッサへ、前記第２の選択手段で選択されたタスクを割り当てる割り当て手段とを備えたマルチプロセッサ計算機である。
【００１４】
（作用）
従って、第１の発明は以上のような手段を講じたことにより、温度が最低値を示すプロセッサを、発熱量データが最高値を示すタスクに割り当てるので、各プロセッサ間でプロセッサ温度を均一にでき、過熱による処理停止の発生を抑制することができる。
【発明の効果】
【００１５】
以上説明したように本発明によれば、各プロセッサ間でプロセッサ温度を均一にでき、過熱による処理停止の発生を抑制できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の各実施形態について図面を参照して説明する。なお、以下の説明では、４プロセッサ構成のマルチプロセッサ計算機を用いるが、２つ以上の任意のプロセッサ数を用いてもよい。また、個々のプロセッサが別々のチップで実装される例を示すが、複数のプロセッサを１チップで実現する、オンチップマルチプロセッサを用いてもよい。また、マルチプロセッサとしては、一つあるいは複数のシステム制御用プロセッサ（図２中の制御用ＩＣ１３）と、複数のタスク処理用プロセッサ（図２中のＰ１〜Ｐ４）とで構成される例を示すが、これに限らず、システム制御用プロセッサとタスク処理用プロセッサを共有してもよい。また、システム制御用プロセッサとタスク処理用プロセッサは、別々の命令セットアーキテクチャであってもよい。スレッドを割り当てるプロセッサは、常にタスク処理用プロセッサであるため、スレッドを割り当てる場合には、タスク処理用プロセッサのことを単にプロセッサと表記する。
【００１７】
（第１の実施形態）
図１は本発明の第１の実施形態に係るマルチプロセッサ計算機の構成を示す模式図である。このマルチプロセッサ計算機１０は、基板１１上に４つのプロセッサＰ１〜Ｐ４が実装されている。
【００１８】
各プロセッサＰ１〜Ｐ４には、それぞれ冷却用の冷却フィンｆ１〜ｆ４が取り付けられている。各冷却フィンｆ１〜ｆ４には冷却ファンを取り付けてもよい。冷却システムとして、水冷による冷却システムを採用してもよい。
【００１９】
各プロセッサＰ１〜Ｐ４の直下の基板１１には、プロセッサ温度を個別に測定するための温度センサｔｓ１〜ｔｓ４が配置されている。各温度センサｔｓ１〜ｔｓ４は、プロセッサＰ１〜Ｐ４上面に設置するか、又はプロセッサＰ１〜Ｐ４のチップ内に内蔵してもよい。オンチップマルチプロセッサの場合には、温度センサｔｓ１〜ｔｓ４をチップ内に内蔵し、各プロセッサＰ１〜Ｐ４毎に温度を測定可能とすることが望ましい。
【００２０】
マルチプロセッサ計算機１０のケース内には、ケース内の温度を測定するための温度センサｔｓ５が基板１上に立設されている。この温度センサｔｓ５は、プロセッサＰ１〜Ｐ４などの発熱物に影響されない箇所への設置が望ましい。温度センサｔｓ５としては、例えば熱電対などが使用可能となっている。温度センサｔｓ１〜ｔｓ５の測定値は、ＡＤ変換などを行い、計算機プログラムから取得可能に処理される。
【００２１】
なお、温度センサｔｓ５は、ケース内の温度測定が必要な場合に設けられる構成要素であり、ケース内の温度測定が不要な場合には省略可能となっている。
【００２２】
次に、以上のようなマルチプロセッサ計算機１０のシステム構成を述べる。マルチプロセッサ計算機１０は、図２に示すように、プロセッサＰ１〜Ｐ４、共有メモリ１２及び制御用ＩＣ１３がインタフェースＩ／Ｆ１〜Ｉ／Ｆ６を個別に介してリング状の伝送線１４に接続されている。
【００２３】
ここで、各プロセッサＰ１〜Ｐ４は、前述したタスク処理用プロセッサに該当し、制御用ＩＣ１３から実行制御されるものである。
【００２４】
共有メモリ１２は、各プロセッサＰ１〜Ｐ４及び制御用ＩＣ１３により読出／書込可能なメモリであり、例えば、後述する図３〜図４に示す処理２０やタスク２１，…、図５に示すようなテーブルＴ２０、図６〜図７に示すようなスケジューリングプログラム、及び温度センサｔｓ１〜ｔｓ５による温度測定結果、等が記憶されるものである。なお、共有メモリ１２に代えて、各プロセッサＰ１〜Ｐ４が個別にメモリを有していてもよい。あるいは、共有メモリ１２に加え、各プロセッサＰ１〜Ｐ４が個別にメモリを有していてもよい。
【００２５】
制御用ＩＣ１３は、前述したシステム制御用プロセッサに該当し、共有メモリ１２内のスケジューリングプログラムと各温度センサｔｓ１〜ｔｓ５による測定結果に基づいて、各プロセッサＰ１〜Ｐ４に各タスクを割り当てるダイナミックスケジューリング処理を実行するものであり、スケジューリング結果に基づいて、各プロセッサＰ１〜Ｐ４にタスクを実行させる機能をもっている。
【００２６】
ここで、スケジューリング処理は、複数のプロセッサＰ１〜Ｐ４の少なくとも１以上のプロセッサによって、複数のタスクを実行している際に、複数のタスクの何れも実行していない１以上のプロセッサを抽出する抽出処理と、抽出処理により抽出された１以上のプロセッサのうち、温度センサｔｓ１〜ｔｓ４により検出された温度が最低値を示す１つのプロセッサを選択する第１の選択処理と、新たに実行されるタスクを抽出処理により抽出された複数のプロセッサの何れかへそれぞれ割り当てる際に、新たに実行される複数のタスクに含まれるそれぞれの発熱量データを参照し、発熱量データが最高値を示すタスクを選択する第２の選択処理と、第１の選択処理で選択されたプロセッサへ、第２の選択処理で選択されたタスクを割り当てる割り当て処理と、割り当て処理による割り当ての後、新たに実行される複数のタスクの全てをプロセッサに割り当てたか否かを判定する判定処理と、判定処理で否と判定されたとき、未割り当てのタスクを複数のプロセッサへ割り当てるように、第１の選択処理、第２の選択処理及び割り当て処理を制御する制御処理とを含んでいる。
【００２７】
インタフェースＩ／Ｆ１〜Ｉ／Ｆ６は、リング状に接続された伝送路１４に接続され、伝送路１４に沿ってデータ転送を可能としている。相互にデータ転送が可能であれば、このようなリング形態ではなく、例えば、１つあるいは複数のバスを用いて、各プロセッサＰ１〜Ｐ４と共有メモリ１２を接続してもよい。あるいは、あるプロセッサを他の全てのプロセッサに直接接続する形態をとってもよい。マルチプロセッサ計算機１０は、プロセッサの接続方式として、バス型、格子型、リング型など、様々な接続方式が利用可能となっている。
【００２８】
次に、各プロセッサＰ１〜Ｐ４により実行される、処理とタスクとスレッドの概念について図３を用いて説明する。マルチプロセッサ計算機１０は、一つあるいは複数の処理２０を実行する。ここで、処理２０は、例えば複数のタスク２１〜２４で構成される。各タスク２１〜２４は、利用プロセッサ数と同数のスレッドで構成される。例えば利用プロセッサ数２のタスク２１は、２つのスレッド２１ａ，２１ｂで構成される。他のタスクは、例えば次のように構成される。タスク２２はスレッド２２ａで構成される。タスク２３はスレッド２３ａ，２３ｂで構成される。タスク２４はスレッド２４ａで構成される。
【００２９】
各タスクに含まれるスレッドは、個々にプロセッサに割り当てられ、ジョブとして実行される。例えばタスク２１が周期的に実行される場合、スレッド２１ａ，２１ｂに対して周期的にプロセッサが割り当てられ、周期ごとにジョブとして実行される。
【００３０】
なお、処理の中には、タスク間の実行順序を指定する先行制約により、処理の進行を制御するものがある。例えば処理２０では、先行制約２５によりタスク２１をタスク２２より先に実行することを指定し、先行制約２６によりタスク２１をタスク２３より先に実行することを指定している。先行制約２５，２６の指定により、両タスク２２，２３は、タスク２１の終了後に実行される。また、処理２０では、先行制約２７によりタスク２２をタスク２４より先に実行することを指定し、先行制約２８によりタスク２３をタスク２４より先に実行することを指定している。先行制約２７，２８の指定により、タスク２４は、両タスク２２，２３の終了後に実行される。処理順序を指定する必要がない場合には、先行制約を用いてタスク間の実行順序を指定しなくてもよい。
【００３１】
次に、タスクのうち、実時間処理を実行するリアルタイムタスクに付与されるパラメタの一例を図４により述べる。例えばタスク２１には、パラメタ２１ｃが付与されている。パラメタには、利用プロセッサ数、実行期間（処理時間の長さ）、リリースタイム（処理開始可能時刻）、デッドライン（処理完了時刻）、周期、発熱量といった各データが含まれている。パラメタに周期が含まれている場合、実行期間、リリースタイム、デッドラインは、それぞれ、周期的に実行されるジョブの、その周期における、実行期間、リリースタイム、デッドラインを意味する。発熱量は、実行期間だけタスク２１を実行した場合に発生する熱量を示すデータである。タスクに複数のスレッドが含まれる場合には、発熱量をスレッド毎に指定可能となっている。
【００３２】
続いて、プロセッサ毎の温度を管理するための温度管理テーブルＴ２０について図５を用いて説明する。
【００３３】
温度管理テーブルＴ２０は、各プロセッサＰ１，ｐ２，…，Ｐ４のＩＤ毎に、各温度センサｔｓ１〜ｔｓ４により検出された現在の各プロセッサ温度が記憶されるテーブルである。
【００３４】
次に、以上のように構成されたマルチプロセッサ計算機の動作を図６及び図７のフローチャートを用いて述べる。始めに全体動作を述べ、続いてダイナミックスケジューリング処理を詳述する。
【００３５】
（全体動作）
始めに、制御用ＩＣ１３は、図６に示すように、プロセッサＰ１〜Ｐ４のいずれかに空きが生じるまで待つ（ＳＴ１０）。ここで、「空き」とは、複数のタスクの何れも実行していない状態を意味する。空きプロセッサがある場合、タスクの実行待ちキューからタスクを選択（抽出）する（ＳＴ２０）。複数の実行待ちタスクがある場合には、例えば、固定あるいは動的優先度順、周期の短い順、デッドラインの近い順などを用いて選択することができる。次に、制御用ＩＣ１３は、選択したタスクの利用プロセッサ数だけ空きプロセッサがあるか否かを確認する（ＳＴ３０）。
【００３６】
空きプロセッサ数が該当タスクの利用プロセッサ数に満たない場合、制御用ＩＣ１３は、実行待ちキューから別のタスクを選択する。あるいは、該当タスクの利用プロセッサ数以上の空きプロセッサが生じるまで待機しても良い。
【００３７】
一方、空きプロセッサ数が該当タスクの利用プロセッサ数以上の場合には、制御用ＩＣ１３は、各プロセッサの温度が略均一になるように、該当タスクを構成する各スレッドに対しプロセッサを割り当てる（ＳＴ４０）。すなわち、プロセッサの温度および該当タスクあるいは構成するスレッドの発熱量を考慮したダイナミックスケジューリングを行う。なお、ダイナミックスケジューリングの詳細は後述する。
【００３８】
スケジューリングの完了後、制御用ＩＣ１３は、スレッドのディスパッチを行う（ＳＴ５０）。ディスパッチの後、制御用ＩＣ１３は、ステップＳＴ１０に戻る。
【００３９】
（ＳＴ４０：ダイナミックスケジューリング処理）
制御用ＩＣ１３は、図７に示すように、タスクを構成する全てのスレッドに対し、プロセッサを割り当てたか否かを確認する（ＳＴ４１）。全てのスレッドに対しプロセッサを割り当てた場合には、プロセッサの割り当てを終了する。
【００４０】
ステップＳＴ４１の結果、プロセッサ未割り当てのスレッドがある場合、制御用ＩＣ１３は、以下の処理を行う。まず、プロセッサが割り当てられていないスレッドのうち、最も発熱量の多いスレッドを選択する（ＳＴ４２）。また、制御用ＩＣ１３は、各温度センサｔｓ１〜ｔｓ４により検出されたプロセッサ温度を示す温度管理テーブルＴ２０を参照し、空きプロセッサのうち、最低温度のプロセッサを選択する（ＳＴ４３）。続いて、選択したスレッドに対して、選択したプロセッサを割り当てる（ＳＴ４４）。割り当ての後、ステップＳＴ４１に戻る。
【００４１】
プロセッサ温度は、例えば温度センサ等による測定に限らず、各タスクあるいはスレッドに付加された発熱量に関するパラメタに基づいて当該プロセッサの累積発熱量を算出し、得られた値を用いてもよい。
【００４２】
各タスクあるいはスレッドの発熱量は、図４に示した如き、付加された発熱量のパラメタを参照すればよい。あるいは、前回以前に実際にプロセッサ上で実行した際に測定した温度を用いてもよい。
【００４３】
図７に示したフローチャートでは、現在のプロセッサ温度とスレッドの発熱量とを用いて、スレッドに割り当てるプロセッサを決定しているが、現在のプロセッサ温度と割り当てられたスレッドの発熱量を基に、温度モデルを用いた非定常熱伝導シミュレーションを行うことにより、スレッド動作後のプロセッサ温度をより正確に予測することもできる。
【００４４】
上述したように本実施形態によれば、温度が最低値を示すプロセッサを、発熱量データが最高値を示すタスクに割り当てるので、各プロセッサ間でプロセッサ温度を均一にでき、過熱による処理停止の発生を抑制することができる。
【００４５】
（第２の実施形態）
次に、本発明の第２の実施形態に係るマルチプロセッサ計算機について図１〜図５を参照しながら説明する。  
本実施形態は、第２の実施形態の変形例であり、過熱するプロセッサがある可能性を考慮してダイナミックスケジューリング方式を実行するものである。
【００４６】
これに伴い、制御用ＩＣ１３は、前述した図６の動作に代えて、図８に示す動作を実行するものとなっている。なお、図７の動作は前述同様に実行する。
【００４７】
（全体動作）
制御用ＩＣ１３は、図８に示すように、前述した通り、ステップＳＴ１０〜ＳＴ４０までの処理を実行する。なお、ステップＳＴ４０は、前述同様にステップＳＴ４１〜ＳＴ４４を含んでいる。
【００４８】
次に、制御用ＩＣ１３は、過熱する可能性があるプロセッサがあるか否かを確認する（ＳＴ４５）。過熱する可能性が無い場合には、プロセッサの割り当てに従って、前述した通り、スレッドのディスパッチを行う（ＳＴ５０）。
【００４９】
一方、過熱する可能性がある場合には、制御用ＩＣ１３は、現状の空きプロセッサに加えて新しい空きプロセッサができるまで待つ（ＳＴ４９）。この時、新しい空きプロセッサを待つ間、未使用空きプロセッサの電源停止等を行い、プロセッサの発熱を抑えることを行っても良い。また、新しい空きプロセッサを待つ間、既存の未使用空きプロセッサの温度が低下し、過熱する可能性が無くなった場合には、既存の未使用空きプロセッサにスレッドをディスパッチしても良い。
【００５０】
新しい空きプロセッサがある場合には、制御用ＩＣ１３は、ステップＳＴ４０に戻り、再度、スレッドに対するプロセッサの割り当てを実行する。
【００５１】
上述したように本実施形態によれば、過熱する可能性のあるプロセッサがあるとき、空きプロセッサが生じるまで待機するので、第１の実施形態の効果に加え、過熱による処理停止の発生をより確実に抑制することができる。
【００５２】
（第３の実施形態）
次に、本発明の第３の実施形態に係るマルチプロセッサ計算機について図１〜図５を参照しながら説明する。
【００５３】
本実施形態は、第２の実施形態の変形例であり、ディスパッチ遅延時間を考慮してスケジューリング可能性判定を行うものである。
【００５４】
例えば第２の実施形態では、過熱するプロセッサがある場合、スレッドのディスパッチを遅延させる。しかし、ダイナミックスケジューリング方式のアルゴリズムが、リアルタイム性を保証するダイナミックスケジューリング方式の場合、事前にリアルタイムスケジューリングのスケジューリング可能性判定を行うが、このスケジューリング可能性判定の際に過熱回避に伴うディスパッチ遅延時間を考慮していないため、スケジューリング可能性判定が無効になってしまう。そのため、ディスパッチ遅延時間を考慮したスケジューリング可能性判定を再度行う必要がある。
【００５５】
本実施形態は、再度のスケジューリング可能性判定を回避するように、予めディスパッチ遅延時間を考慮してスケジューリング可能性判定を行うものである。
【００５６】
これに伴い、制御用ＩＣ１３は、前述した図８の動作に代えて、図９に示す動作を実行するものとなっている。なお、図７の動作は前述同様に実行する。
【００５７】
次に、以上のように構成されたマルチプロセッサ計算機の動作を説明する。  
制御用ＩＣ１３は、図９に示すように、前述した通り、ステップＳＴ１０〜ＳＴ４５までの処理を実行し、過熱する可能性があるプロセッサがあるか否かを確認する（ＳＴ４５）。過熱する可能性が無い場合には、前述した通り、スレッドのディスパッチを行う（ＳＴ５０）。
【００５８】
一方、過熱する可能性がある場合には、制御用ＩＣ１３は、現状の空きプロセッサに加えて新しい空きプロセッサができるまで待つ期間と同じ実行期間を有するダミータスクを生成し、このダミータスクを、現在実行しているタスクの集合に加える（ＳＴ４６）。なお、ダミータスクは、発熱量がほぼゼロ値であり、プロセッサを待機させるためのタスクである。
【００５９】
ダミータスクは、優先的にスケジューリングが行われるように、ダイナミックスケジューリングアルゴリズムに応じて適したパラメタを設定する必要がある。例えば、周期の短い順でスケジューリングする場合には、ダミータスクの周期には、全タスクと比較してもっとも短い周期を指定する必要がある。また、デッドラインが短い順でスケジューリングする場合には、ダミータスクのデッドラインは、現在時刻からダミータスクの実行期間を加えたものにする必要がある。
【００６０】
ダミータスクの追加後、実行しているタスクの集合に対してスケジューリング可能性判定を実行する（ＳＴ４７）。
【００６１】
制御用ＩＣ１３は、スケジューリング可能性判定の結果を基にスケジューリング可能か否かを判定し（ＳＴ４８）、スケジューリング可能でない場合には、該当タスクのディスパッチを遅延できないため、新しい空きプロセッサを待つことなく、該当タスクのディスパッチを行う（ＳＴ５０）。この時、明らかにプロセッサの過熱が発生し、システム障害が発生することが明らかである場合には、該当タスクをディスパッチせずに、該当タスクの実行停止やシステムの異常停止を行っても良い。
【００６２】
一方、ステップＳＴ４８の判定の結果、スケジューリング可能な場合には、制御用ＩＣ１３は、現状の空きプロセッサに加えて新しい空きプロセッサができるまで待つ（ＳＴ４９）。この時、新しい空きプロセッサを待つ間、未使用空きプロセッサの電源停止等を行い、プロセッサの発熱を抑えることを行っても良い。また、新しい空きプロセッサを待つ間、既存の未使用空きプロセッサの温度が低下し、過熱する可能性が無くなった場合には、既存の未使用空きプロセッサにスレッドをディスパッチしても良い。
【００６３】
新しい空きプロセッサがある場合には、制御用ＩＣ１３は、ステップＳＴ４０に戻り、再度、スレッドに対するプロセッサの割り当てを実行する。
【００６４】
上述したように本実施形態によれば、リアルタイム性を保証するダイナミックスケジューリング方式において、過熱プロセッサの発生を回避する際に、新しい空きプロセッサができるまで待つ期間と同じ実行期間を有するダミータスクを生成する構成により、予めディスパッチ遅延時間（ダミータスクの実行期間）を考慮してスケジューリング可能性判定を行うので、第２の実施形態の効果に加え、再度のスケジューリング可能性判定を回避することができる。
【００６５】
なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【００６６】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【００６７】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行しても良い。
【００６８】
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００６９】
また、記憶媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【００７０】
尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【００７１】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【００７２】
なお、本願発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１の実施形態に係るマルチプロセッサ計算機の構成を示す模式図である。
【図２】同実施形態におけるシステム構成を示す模式図である。
【図３】同実施形態における処理とタスクとスレッドの概念を説明するための模式図である。
【図４】同実施形態におけるパラメタを説明するための模式図である。
【図５】同実施形態における各テーブルを説明するための模式図である。
【図６】同実施形態における動作を説明するためのフローチャートである。
【図７】同実施形態における動作を説明するためのフローチャートである。
【図８】本発明の第２の実施形態に係るマルチプロセッサ計算機の動作を説明するためのフローチャートである。
【図９】本発明の第３の実施形態に係るマルチプロセッサ計算機の動作を説明するためのフローチャートである。
【符号の説明】
【００７４】
１０…マルチプロセッサ計算機、１１…基板、１２…共有メモリ、１３…制御用ＩＣ、１４…伝送路、２０…処理、２１〜２４…タスク、２１ａ，２１ｂ，２２ａ，２３ａ，２３ｂ，２４ａ…スレッド、２１ｃ…パラメタ、２５〜２８…先行制約、Ｉ／Ｆ１〜Ｉ／Ｆ６…インタフェース、Ｐ１〜Ｐ４…プロセッサＰ１〜Ｐ４、ｆ１〜ｆ４…冷却フィン、ｔｓ１〜ｔｓ５…温度センサ、Ｔ２０…温度管理テーブル。
【図１】
2006099624.tif 000003
【図２】
2006099624.tif 000004
【図３】
2006099624.tif 000005
【図４】
2006099624.tif 000006
【図５】
2006099624.tif 000007
【図６】
2006099624.tif 000008
【図７】
2006099624.tif 000009
【図８】
2006099624.tif 000010
【図９】
2006099624.tif 000011