(57)【要約】【課題】  処理負荷の偏りを低減することにより、局部的で且つ継続的な電力の消費を低減し、外的ストレスを分散化し、結果としてシステム運用の継続的な、より長い期間の信頼性確保されるマルチプロセッサシステムを提供する。【解決手段】  複数のプロセッサ1_1〜1_nの各々が入出力バス3_1を使用している時間帯を状態検出回路7が検出し、状態検出回路7が検出したプロセッサ単位の使用時間を示す信号に基づき、基準タイミング・パルスTPで示される一定期間内の該入出力バスの使用率を使用率カウンタ8がプロセッサ単位にカウントし、プロセッサ制御回路が使用率カウンタ8でカウントした各プロセッサ1_1〜1_nの使用率を比較し、該使用率が高いプロセッサから、該使用率の低いプロセッサに処理を移行させる。【選択図】  図１
2006260445.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサの各々が入出力バスを使用している時間を検出する状態検出回路と、
該状態検出回路が検出したプロセッサ単位の使用時間を示す信号に基づき、基準タイミング・パルスで示される一定期間内の該入出力バスの使用率をプロセッサ単位にカウントする使用率カウンタと、
該使用率カウンタでカウントした各プロセッサの使用率を比較し、該使用率が高いプロセッサから、該使用率の低いプロセッサに処理を移行させるプロセッサ制御回路と、
を備えたことを特徴とするマルチプロセッサシステム。
【請求項２】
請求項１において、
該プロセッサ制御回路は、該使用率の最大値が所定のしきい値を超えているときのみ該処理の移行を行うことを特徴とするマルチプロセッサシステム。
【請求項３】
請求項１又は２において、
該プロセッサ制御回路が、各プロセッサの使用率同士を比較する比較回路と、該使用率の最も高いプロセッサを処理の移行元とし、最も低いプロセッサを移行先と決定する処理移動実施回路と、プロセッサ毎に設けられ各々がユーザー識別番号を含んでいる処理テーブルとを備え、該処理移動実施回路が、該移行元のプロセッサの処理テーブルにおける一つのユーザー識別番号を、該移行先のプロセッサの処理テーブルに移行させることを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムに関し、特に信号処理装置等において複数のプロセッサが入出力バスによって並列接続されたマルチプロセッサシステムに関するものである。
【背景技術】
【０００２】
近年、プロセッサを使用した信号処理装置は、処理の増大に伴い、複数のプロセッサを並列に並べ、入出力バスによって相互に接続することによって負荷を分散させたマルチプロセッサ構成にて処理を行うマルチプロセッサシステムが用いられるようになって来ている。
【０００３】
このようなマルチプロセッサシステムを使用した従来の信号処理装置の構成例を図10に示す。
【０００４】
この信号処理装置は、信号処理を実行するn個のプロセッサ1_1〜1_n（以下、符号「1」で総称することがある。）を含み、基準タイミング・パルス生成部2より、一定間隔の時間を示す基準タイミング・パルス信号TPをIRQ（割り込み）端子（図示せず。）に入力する。また、各プロセッサ1_1〜1_nはプロセッサ共通に使用するマルチバス構成の入出力バス3_1及び3_2で接続され、入出力バス3_1には共通にアクセス可能な記憶装置4が接続されており、また、入出力バス3_2には外部装置5が接続され、以て入出力バス3_1及び3_2を介し、自プロセッサの処理すべきユーザーデータを選択し受信する。
【０００５】
信号処理装置においては、複数のユーザーデータを一定期間内に処理する必要がある為、基準タイミング・パルス生成部2からの基準タイミング・パルスTP信号を受信した時から、次のタイミング・パルス信号TPを受信するまでの一定時間内において、外部装置5からの自プロセッサの処理すべきユーザーデータを受信し、信号処理を行い、信号処理後のデータを記憶装置4に格納する。
【０００６】
この一連の処理を、プロセッサ1_1〜1_nはそれぞれ自分に割り当てられた複数ユーザーのデータ分繰り返して処理を行う。このように、多種多様なデータ量の複数のユーザーデータを、複数のプロセッサで分散させ信号処理を行っている。
【０００７】
ところで、プロセッサは一般的に半導体デバイスとして製造され提供される。通常、半導体デバイスは、電流が流れると、この電気エネルギーは熱に変換される。この時、デバイスの接合温度（ジャンクション温度）が規格を超えるような状態が生じると、デバイス故障(デバイス破壊)が発生するとされる。従って、システムを開発する上ではデバイスの消費電力と接合温度を意識し、すなわちデバイス規格を守って設計する必要がある。
【０００８】
デバイスの接合温度は以下に説明するように消費電力と周囲温度で関係付けられる。
【０００９】
プロセッサの消費電力は以下のように求められる。
【００１０】
プロセッサの消費電力(W)＝コア消費電力(W)＋IO端子消費電力(W)
なお、コア消費電力は、コアの動作周波数で決定し、コアが処理中でなくても消費電力は一定である。
【００１１】
IO端子消費電力については、次式で与えられる。
【００１２】
IO端子消費電力(mW)） ＝ C × V2 × (f×10-3) × N
C：負荷容量(pF)、V：電圧(V)、f：動作周波数(MHz)、N：出力端子本数
また、接合温度は上記の消費電力とデバイスの周囲温度で決定され、次式で与えられる。
【００１３】
接合温度(℃)＝周囲温度(℃)＋消費電力(W)×熱抵抗(℃/W)
なお、上記の熱抵抗率は各デバイス固有の値である。
【００１４】
図11に、周囲温度が40℃と45℃の時の、消費電力と周囲温度と接合温度の関係を示す。同じ消費電力条件で、周囲温度が高くなるにつれて接合温度が高くなることが分かる。
【００１５】
また、一般的に、デバイスの故障に繋がる要因（以下、ストレス）には、温度、湿度、電気的条件等の外的ストレスがあるが、その中でも温度は最重要視されている。一般に動作中のデバイスの周囲温度が高いほどストレスは大きくなり、故障する確率は高くなると言われている。
【００１６】
デバイスの信頼性の尺度として一般的に使用される、アレニウスの化学反応論にて、以下のようにデバイスの寿命を求めることができる。
【００１７】
L = A × exp(Ea ÷ （k × T）)
L：デバイス寿命、A：定数、Ea：ボルツマン定数（8.6159×10-5）(eV/K)、T：絶対温度(K)
この式において、TはT=周囲温度(℃)＋273(℃)で求められるので、デバイスの寿命は周囲温度が低いほど長いということが分かる。
【００１８】
また、この理論を使用した場合、第1の周囲温度t1の時の寿命をL1、第2の周囲温度t2の時の寿命をL2とすると、L1/L2より寿命の比を求めることができる。
【００１９】
図11に、周囲温度が40℃と45℃の時の、周囲温度とデバイスの寿命の関係を示す。これにより周囲温度が低い寿命L1は寿命L2よりも1.59倍長いということが分かる。すなわち、周囲温度がストレスとなり、デバイス寿命に影響を与えていることが表されている。
【００２０】
従って、システムを開発する上では、デバイスより発生する熱エネルギーをコントロールし、周囲温度を上げない設計が求められる。これによりストレスを最小限にし、結果的にシステムとして継続的な信頼性を確保する必要がある。
【００２１】
従来、図10に示したような信号処理装置は、高密度設計され、装置内に収められる。従って、デバイスにとっての外的ストレスである周囲温度を低減させる為には、接合温度や消費電力を減らす方法がある。
【００２２】
接合温度や周囲温度を減らす方法には、ヒートシンク（放熱板）をデバイスに接合し放熱量を大きくする方法が考えられる。また装置にファンを取り付け送風にて放熱量を大きくする方法が考えられる。
【００２３】
しかしながら、より高密度設計が求められる信号処理装置においてはヒートシンクやファン取り付けは何れも物理的に制限が発生し発熱量に応じた設計が行えないケースが多い。
【００２４】
また、消費電力を減らす方法には、動作周波数を低速にする方法や、電圧を小さくする方法が考えられるが、信号処理中（運用中）に動作周波数を変更することは技術的に困難である。その為、そのような機能を内蔵したデバイスを使用する。
【００２５】
このことは設計の自由度や処理性能に見合うデバイス選択を困難にしている。また電圧を小さくする方法は、プロセッサ入出力バスに接続する記憶装置等のデバイスの規格に依存するが、既に実施済みであり、更なる低減が求められる。
【００２６】
一方、外部装置から受信したデータを保持する保持手段及び、この保持手段へのデータの入出力時間差と、前記保持手段におけるデータの最大入出力時間差との比を負荷率として求める負荷監視手段を有する複数のプロセッサと、この複数のプロセッサと前記外部装置間のデータ送受信を制御すると共に、前記外部装置からの受信データを前記負荷率の最も低いプロセッサへ送信する入出力制御手段と、を具備する負荷分散型マルチプロセッサシステムがある（例えば、特許文献1参照。）。
【００２７】
また、システム・バスの動作状態を検出する動作状態検出回路と、マイクロ・プログラムの指示により、実時間タイマ値の格納と、システム・バスの動作時間をカウントする測定カウンタのカウント開始、停止を指示制御する測定制御回路と、測定制御回路からの測定開始指示により、実時間タイマ値の値を格納する開始時間表示レジスタと、測定制御回路からの測定停止指示により、実時間タイマ値の値を格納する停止時間表示レジスタと、動作状態検出回路からシステム・バス動作中信号を入力し、測定制御回路からの測定開始指示によりシステム・バス動作中時間のカウントを開始し、また、測定停止指示によりカウント停止をする測定カウンタを有し、システム・バスの使用率を停止時間表示レジスタと開始時間表示レジスタの表示値の差分内における測定カウンタ値の割合として得るバス使用率測定方式がある（例えば、特許文献2参照。）。
【特許文献１】特開2001-92798号公報
【特許文献２】特開平4-358244号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
マルチプロセッサ構成で多種多様なユーザーデータを複数処理する場合、その処理負荷は偏って来る。このとき、負荷の高いプロセッサの消費電力は継続的に大きいので接合温度も継続的に高くなる。高密度設計された信号処理装置において、このような状態が継続することは、図11に示したように、接合温度が高くなり、或る時間経過後、周囲温度が高くなるように影響した場合、結果的に更に接合温度も高くなるように働いてしまう。
【００２９】
更には、図12に示したようにアレニウスの化学反応論で求めた寿命比のように、特定のプロセッサに継続的で、局部的なストレスがかかり、デバイスの故障率が高くなる。従って、システム、装置として継続的な信頼性確保が実現できなくなってしまうという課題がある。
【００３０】
また、信号処理動作中（運用中）に動作周波数を変更し消費電力を抑制する為に、その機能を持ち合わせたデバイスを選択することは、極端にデバイスの選択基準や設計の自由度が奪われてしまう。
【００３１】
また、高密度実装のシステム内でのデバイスへのヒートシンク装着やファンの設置は実装設計の自由度を極端に奪い、更にコスト高になる。
【００３２】
従って本発明は、処理負荷の偏りを低減することにより、局部的で且つ継続的な電力の消費を低減し、外的ストレスを分散化し、結果としてシステム運用の継続的な、より長い期間の信頼性確保を可能にしたマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【００３３】
(1)図1は、本発明(1)の原理図を示し、この図１は、図10に示した従来例に加えて、入出力バス3_1に、どのプロセッサがどの位の時間だけ入出力バスを使用しているかを検出する状態検出回路7を接続し、この状態検出回路7からプロセッサ単位の使用時間を示す信号を受信し、プロセッサ単位にバスの使用率をカウントする使用率カウンタ8を設置する。この使用率カウンタ8は、基準タイミング・パルスTP単位の一定期間内に、入出力バス3_1を使用している時間のクロック数をカウントする。従って、このカウンタ値は、一定期間内のバス使用率を示す。
【００３４】
使用率カウンタ8からプロセッサ単位に測定したカウンタ値、すなわち使用率を受信したプロセッサ制御回路6では、各プロセッサの使用率同士を比較し、使用率が高いプロセッサから、使用率の低いプロセッサに処理を移行させる。
【００３５】
以上により、特定のプロセッサに偏った負荷を、他のプロセッサに移行させて分散することで、特定のプロセッサの継続的な消費電力を抑制することが可能になる。従って、接合温度も抑制することができる。
【００３６】
(2)図2は、本発明(2)の原理図を示している。この構成は、プロセッサ制御回路6がしきい値Thを用いている点が、図１の構成と異なる。
【００３７】
すなわち、プロセッサ制御回路6においては、使用率カウンタ8から受信した使用率（カウンタ値）と、予め用意しておいたしきい値Thとを比較し、最大の使用率＞しきい値の場合、すなわちしきい値より大きい使用率のプロセッサが存在する場合のみ、使用率同士の比較を行ってプロセッサ間の処理移行を行っている。
【００３８】
(3)上記のプロセッサ制御回路は、該使用率同士を比較する比較回路と、該使用率の最も高いプロセッサを処理の移行元とし、最も低いプロセッサを移行先と決定する処理移動実施回路と、プロセッサ毎に設けられ各々がユーザー識別番号を含んでいる処理テーブルとで構成でき、該処理移動実施回路は、該移行元のプロセッサの処理テーブルにおける一つのユーザー識別番号を、該移行先のプロセッサの処理テーブルに移動させることができる。
【発明の効果】
【００３９】
本発明により、継続的に行われる信号処理において、処理負荷の平均化が実現でき、消費電力も平均化されることになる。従って、プロセッサのストレスを平均化、分散化させることが可能となる。
【発明を実施するための最良の形態】
【００４０】
図3は、図1に示した本発明(1)の原理における状態検出回路7の一実施例を示す。この実施例では、状態検出回路7には、プロセッサ1_1〜1_n間でやりとりする情報である、バス使用要求BRとバス使用許可BENをAND回路21でモニタすると共に、このAND回路21をプロセッサ単位に設置し、入出力バス3_1を使用するプロセッサがどれなのかを特定する。このAND回路21のモニタ結果に対し、更に、プロセッサがバス使用中に出力するバスビジー信号BBをAND回路22でモニタし、どのプロセッサがどの期間使用しているかを示すカウントイネーブル信号CENを生成する。
【００４１】
また、使用率カウンタ8の動作タイムチャートが図4に示されており、状態検出回路7からプロセッサ単位の使用時間を示すカウントイネーブル信号CENを受信し、自分自身のクロックCLKに基づきプロセッサ単位にバスの使用率をカウンタ値CNTとして計測する。
【００４２】
具体的には、使用率カウンタ8は、プロセッサの数だけ設置され、基準タイミング・パルスTP（図7（1））を入力した時に初期化され（同図（4）;ステップS15）、カウントイネーブル信号CENの期間中、入出力バス3_1に同期したクロックCLKの数をカウントする。更に、次の基準タイミング・パルスTPを受信した時にカウンタを初期化する直前にプロセッサ単位のカウンタ値をプロセッサ制御回路6に送信するものである（同図(3);ステップS13）。このような計測にて、基準タイミング・パルスTPによる一定期間のプロセッサ単位の入出力バスの使用率が分かる。
【００４３】
図5は、図1に示したプロセッサ制御回路6の実施例(1)を示したもので、この実施例（1）ではプロセッサ制御回路6は、使用率カウンタ8から受信するプロセッサ毎の使用率同士を比較する比較回路11と、該使用率の最も高いプロセッサを処理の移行元とし、最も低いプロセッサを移行先と決定する処理移動実施回路12と、プロセッサ1_1〜1_n毎に設けられ各々がユーザー識別番号を含んでいる処理テーブル13_1〜13_nとを備え、該処理移動実施回路12が、該移行元のプロセッサの処理テーブルにおける一つのユーザー識別番号を、該移行先のプロセッサの処理テーブルに移行させるものである。
【００４４】
以下、この実施例(1)の動作を、図6に示したフローチャートに沿って説明する。なお、図7には、基準タイミング・パルス信号（同図(1)）とプロセッサ1（同図(2)）とプロセッサ制御回路6（同図(3)）と使用率カウンタ8（同図(4)）のタイミングチャートが示されている。
【００４５】
プロセッサ制御回路6は、まず、使用率カウンタ8から受信した（図7のステップS11）各プロセッサのカウンタ値から、最大値と最小値を判別し（ステップS1）、移行処理を決定する（ステップS2）。このとき、最大値のカウンタ値に係るプロセッサを処理移行元プロセッサと決定し、最小値のカウンタ値に係るプロセッサを移行先プロセッサと決定する（ステップS3）。
【００４６】
さらに、プロセッサ制御回路6は、移行元のプロセッサから移行先のプロセッサに処理を移す為に、移行元のプロセッサの処理テーブルに格納されている「ユーザー識別番号」を決定する（ステップS4）。この後、各プロセッサに対し、一部の処理を移行する指示を出す（同ステップS14）。具体的には、外部装置5からの入力データの選択条件の変更の設定を行う。
【００４７】
これは、図5の実施例(1)では、最大のカウンタ値を有するプロセッサ1_1が移行元と決定され、最小のカウンタ値を有するプロセッサ1_nが移行先と処理移動実施回路12において決定され、これに対応して、処理移動実施回路12はさらに、プロセッサ1_1の処理テーブル13_1における、例えばユーザー識別番号N+4を切り取って、プロセッサ1_nの処理テーブル13_nに貼り付けることにより行われる（ステップS5；図7のステップS12）。
【００４８】
その指示を受信し、各プロセッサは外部装置5からの入力データの選択を行い、信号処理を実行する。
【００４９】
このように、プロセッサ1が信号処理を開始する前に、使用率カウンタ8によるカウンタ値に基づく判断及び負荷の移行を実施することで、プロセッサ1自身は、図7（2）に示すように、移行処理の為に特別な処理を行わず、それまでと変わらず、処理テーブル13に従い、信号処理を実施することが出来る。
【００５０】
なお、上記の実施例では、処理移動実施回路12は、最大カウンタ値と最小カウンタ値に基づいて移行元と移行先を決定しているが、この他、使用率の上位と下位について複数のプロセッサを選び、その中から、それぞれパケット長の長いプロセッサ及び短いプロセッサを選んで移行元と移行先としてもよい。
【００５１】
以上のプロセスを基準タイミング・パルスTPに従って周期的に繰返し行う（同図(1））ことで、プロセッサのバス使用率の平均化を行うことができる。
【００５２】
図8は、図1に示したプロセッサ制御回路6の実施例(2)を示し、この実施例(2)は、比較回路11において、しきい値Thを用いる点が、図5に示した実施例(1)と異なっている。
【００５３】
また、この実施例(2)の動作フローが図9に示されているが、この動作フローと、図6に示した実施例(1)の動作フローとは、前者にステップS6が加わっている点以外は同様である。
【００５４】
すなわち、ステップS1で求めた最大値であるカウンタ値と、予め用意しておいた「しきい値Th」とを比較し、(カウンタ値＞しきい値)であるプロセッサは消費電力が大きく、処理低減の必要性があると判断し、このようなプロセッサが1つでも存在すれば処理移行を決定する。すなわち、このようなしきい値を越える使用率を有するプロセッサは、前述したIO端子消費電力が継続して消費されており、結果的に接合温度の高い状態が継続しているということを示している。また、最小値のプロセッサは、IO端子消費電力が単発的であるプロセッサと判断し、その上、更に最も使用率の低いプロセッサであるから、移行先プロセッサとして決定する。
【００５５】
しきい値Thは次のように事前に決定する。先ず、基準タイミング・パルス信号TPを受信してから次の信号を受信するまでのトータルのクロックの数は、
（トータルのクロック数） = （一定期間） ÷ (1/クロック周波数)
にて算出できる。これは、全てのプロセッサがトータルで使用可能なクロック数となる。これに対し、プロセッサ入出力バスの使用率の著しい偏りの上限値をA(%)と決定すると、そのしきい値は、
(しきい値)= （トータルのクロック数） × A(%)
の式で算出することができる。
【００５６】
例えば、或るプロセッサで使用率50%と想定した場合、残りのプロセッサで50%を使用しており、処理が偏っているということになる。
【００５７】
以上の算出式を使用し、偏りの上限値は、運用前に設置場所等の環境条件や予想される処理量等の諸条件を加味し、開発者が事前に決定する。
【００５８】
この後は、図6のフローと同様にステップS2〜S5を実行する。
【図面の簡単な説明】
【００５９】
【図１】本発明(1)に係るマルチプロセッサシステムを原理的に示したブロック図である。
【図２】本発明(2)に係るマルチプロセッサシステムを原理的に示したブロック図である。
【図３】状態検出回路の実施例を示したブロック図である。
【図４】使用率カウンタの動作例を示したタイムチャート図である。
【図５】本発明に係るマルチプロセッサシステムに用いるプロセッサ制御回路の実施例(1)を示したブロック図である。
【図６】実施例(1)のプロセッサ制御回路の動作を示したフローチャート図である。
【図７】本発明における基準タイミング・パルスとプロセッサとプロセッサ制御回路と使用率カウンタの動作タイムチャート図である。
【図８】本発明に係るマルチプロセッサシステムに用いるプロセッサ制御回路の実施例(2)を示したブロック図である。
【図９】実施例(2)のプロセッサ制御回路の動作を示したフローチャート図である。
【図１０】従来のマルチプロセッサ構成の信号処理装置を示したブロック図である。
【図１１】消費電力と周囲温度の関係を示した図である。
【図１２】アレニウスの化学反応論における周囲温度と寿命の関係を示した図である。
【符号の説明】
【００６０】
1, 1_1〜1_nプロセッサ
2  基準タイミング・パルス生成部
3_1, 3_2  入出力バス
4  記憶装置
5  外部装置
6  プロセッサ制御回路
7  状態検出回路
8  使用率カウンタ
11  比較回路
12  処理移動実施回路
13_1〜13_n  処理テーブル
図中、同一符号は同一又は相当部分を示す。
【図１】
2006260445.tif 000003
【図２】
2006260445.tif 000004
【図３】
2006260445.tif 000005
【図４】
2006260445.tif 000006
【図５】
2006260445.tif 000007
【図６】
2006260445.tif 000008
【図７】
2006260445.tif 000009
【図８】
2006260445.tif 000010
【図９】
2006260445.tif 000011
【図１０】
2006260445.tif 000012
【図１１】
2006260445.tif 000013
【図１２】
2006260445.tif 000014