(57)【特許請求の範囲】
【請求項１】
割り込み処理を実行する複数のプロセッサと当該プロセッサに割り込み処理を割り当てる割り込みコントローラとを有するマルチプロセッサシステムであって、
前記割り込みコントローラが、
前記複数のプロセッサのいずれかに割り込み処理を割り当てる場合に、当該割り込み処理を割り当てた場合の各プロセッサの動作率を予測する動作率予測部と、
前記動作率予測部によって予測された各プロセッサの動作率のうち、上限動作率を超えず、かつ上限動作率に最も近い動作率のプロセッサに対して割り込み処理を割り当てるように制御する割り込み先制御部と、
を備えることを特徴とするマルチプロセッサシステム。 
【請求項２】
前記動作率予測部は、前記割り込み処理をいつまでに処理しなければならないかを示す要求時間と、前記プロセッサを上限動作率の負荷で動作したときにかかる処理時間を示す最小処理時間とを用いて、前記各プロセッサの動作率を予測することを特徴とする請求項１に記載のマルチプロセッサシステム。 
【請求項３】
前記割り込みコントローラが、前記割り込み処理について、当該割り込み処理の種別と、前記要求時間と、前記最小処理時間と、割り込み処理を処理した場合の動作率とを対応付けて記憶する動作率記憶部をさらに備えることを特徴とする請求項２に記載のマルチプロセッサシステム。 
【請求項４】
割り込み処理を実行する複数のプロセッサと当該プロセッサに割り込み処理を割り当てる割り込みコントローラとを有するマルチプロセッサシステムであって、
前記複数のプロセッサが、
前記割り込みコントローラから割り込み要求信号を受信した場合に、前記割り込み処理を割り当てられた場合の自プロセッサの動作率を予測する動作率予測部と、
前記動作率予測部によって予測された自プロセッサの動作率が上限動作率を超えていない場合には、当該動作率が大きいほど、前記割り込み要求信号を受信したときから早いタイミングで割り込みを許可する許可信号を前記割り込みコントローラに送信する許可信号送信部と、
を備え、
前記割り込みコントローラが、
前記許可信号送信部によって送信された各プロセッサの許可信号のうち、最も早く許可信号を送信したプロセッサに対して割り込み処理を割り当てるように制御する割り込み先制御部と、
を備えることを特徴とするマルチプロセッサシステム。
【請求項５】
割り込み処理を実行する複数のプロセッサと当該プロセッサに割り込み処理を割り当てる割り込みコントローラとを有するマルチプロセッサシステムでおこなわれる割り込み制御方法であって、
前記割り込みコントローラが、割り込み処理を実行する前記複数のプロセッサのいずれかに割り込み処理を割り当てる場合に、当該割り込み処理を割り当てた場合の各プロセッサの動作率を予測する動作率予測ステップと、
前記割り込みコントローラが、前記動作率予測ステップによって予測された各プロセッサの動作率のうち、上限動作率を超えず、かつ上限動作率に最も近い動作率のプロセッサに対して割り込み処理を割り当てるように制御する割り込み先制御ステップと、
を含んだことを特徴とする割り込み制御方法。
【請求項６】
割り込み処理を実行する複数のプロセッサを有するコンピュータに実行させる割り込み制御プログラムであって、
割り込み処理を実行する前記複数のプロセッサのいずれかに割り込み処理を割り当てる場合に、当該割り込み処理を割り当てた場合の各プロセッサの動作率を予測する動作率予測手順と、
前記動作率予測手順によって予測された各プロセッサの動作率のうち、上限動作率を超えず、かつ上限動作率に最も近い動作率のプロセッサに対して割り込み処理を割り当てるように制御する割り込み先制御手順と、
をコンピュータに実行させることを特徴とする割り込み制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステム、割り込み制御方法および割り込み制御プログラムに関する。
【背景技術】
【０００２】
従来は、複数のプロセッサに割り込み処理を割り当てて、協調しながら動作するマルチプロセッサシステムが知られている。従来のマルチプロセッサシステムでは、各プロセッサが割り込みを許可する許可信号を割り込みコントローラに送信し、最も早く許可信号を送信したプロセッサに割り込み処理が割り当てている。
【０００３】
ここで、割り込み処理を割り当てる処理について図１１を用いて具体的に説明する。図１１は、従来技術を説明するための図である。まず、図１１の（ａ）に示すように、割り込みコントローラは、各プロセッサに割り込み要求を送信する。そして、各プロセッサは、図１１の（ｂ）に示すように、アイドル状態（または自分の動作率がある値以下の状態など）である場合に、割り込みの許可信号を割り込みコントローラに送信する。
【０００４】
そして、割り込みコントローラは、図１１の（ｃ）に示すように、最も早く許可信号を送信してきたプロセッサに割り込みを割り当てる。図１１の例では、最も早く許可信号を送信してきたプロセッサＣに対して割り込みを割り当てる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３３４０６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記した従来の割り込み処理を割り当てる技術では、最も早く許可信号を送信してきたプロセッサに対して割り込みを割り当ているので、割り込みによるプロセッサの動作率を考慮せずに割り込み処理を割り当てている。
【０００７】
このため、各プロセッサに対して割り込み処理が万遍なく割り当てられた場合には、全てのプロセッサが動作していることとなり、プロセッサの消費電力を抑えることができないという課題があった。
【０００８】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、スリープするプロセッサの個数を増やし、プロセッサの消費電力を抑えることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、この装置は、割り込み処理を実行する複数のプロセッサのいずれかに割り込み処理を割り当てる場合に、割り込み処理を割り当てた場合の各プロセッサの動作率を予測し、予測された各プロセッサの動作率のうち、上限動作率を超えず、かつ上限動作率に最も近い動作率のプロセッサに対して割り込み処理を割り当てるように制御する。
【発明の効果】
【００１０】
開示のシステムは、スリープするプロセッサの個数を増やし、プロセッサの消費電力を抑えるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るマルチプロセッサシステムの構成を説明するための図である。
【図２】図２は、実施例２に係るマルチプロセッサシステムの構成を示すブロック図である。
【図３】図３は、動作率テーブルの例を説明するための図である。
【図４】図４は、想定動作率の計算処理を説明するための図である。
【図５】図５は、動的に割り込みを割り当てた場合における動作率の変化を説明するための図である。
【図６】図６は、割り込みコントローラが動作率を判断する処理を説明するための図である。
【図７】図７は、実施例２に係る割り込みコントローラの処理手順を説明するためのフローチャートである。
【図８】図８は、実施例３に係るマルチプロセッサシステムの構成を示すブロック図である。
【図９】図９は、各プロセッサが動作率を判断する処理を説明するための図である。
【図１０】図１０は、割り込み制御プログラムを実行するコンピュータを示す図である。
【図１１】図１１は、従来技術を説明するための図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明に係るマルチプロセッサシステム、割り込み制御方法および割り込み制御プログラムの実施例を詳細に説明する。
【実施例１】
【００１３】
以下の実施例では、実施例１に係るマルチプロセッサシステムの構成および処理を説明し、最後に実施例１による効果を説明する。
【００１４】
最初に、図１を用いて、実施例１に係るマルチプロセッサシステムの構成を説明する。図１は、実施例１に係るマルチプロセッサシステムの構成を示すブロック図である。マルチプロセッサシステム１は、割り込みコントローラ２および複数のプロセッサ３を有する。
【００１５】
実施例１の割り込みコントローラ２は、動作率予測部２ａおよび割り込み先制御部２ｂを有する。
【００１６】
動作率予測部２ａは、割り込み処理を実行する複数のプロセッサＡ〜Ｃのいずれかに割り込み処理を割り当てる場合に、割り込み処理を割り当てた場合の各プロセッサＡ〜Ｃの動作率を予測する。
【００１７】
割り込み先制御部２ｂは、動作率予測部２ａによって予測された各プロセッサの動作率のうち、上限動作率を超えず、かつ上限動作率に最も近い動作率のプロセッサに対して割り込み処理を割り当てるように制御する。
【００１８】
このように、マルチプロセッサシステム１は、割り込み処理を割り当てた場合の動作率が、上限動作率（例えば、動作率「１００％」）を超えず、かつ上限動作率に最も近い動作率のプロセッサに集中的に割り当てる。
【００１９】
このため、割り込みコントローラ２は、割り込み処理を割り当てないプロセッサを増やして、スリープするプロセッサの個数を増やすことができる。この結果、スリープするプロセッサの個数を増やしてプロセッサの消費電力を抑えることが可能である。
【実施例２】
【００２０】
以下の実施例では、実施例２に係るマルチプロセッサシステムの構成および処理の流れを順に説明し、最後に実施例２による効果を説明する。
【００２１】
［マルチプロセッサシステムの構成］
次に、図２を用いて、図１に示したマルチプロセッサシステムの構成を説明する。図２は、実施例２に係るマルチプロセッサシステムの構成を示すブロック図である。同図に示すように、このマルチプロセッサシステム１Ａは、割り込みコントローラ１０、複数のプロセッサ２０、ＩＯインターフェース３０、メモリ４０を有し、バス５０を介してそれぞれが接続されている。以下にこれらの各部の処理を説明する。
【００２２】
割り込みコントローラ１０は、各プロセッサ２０に送信した割り込みから動作率を把握している。割り込みコントローラ１０は、プロセッサに割り込みさせたい処理の動作率を計算する。各プロセッサの動作率と割り込み処理の動作率から、動作率が１００％近くになるプロセッサ２０に割り込み信号を送信する。
【００２３】
ここで、割り割り込みコントローラ１０の構成について具体的に説明する。割り込みコントローラ１０は、レジスタ１１、各プロセッサの動作率予測部１２（各処理の動作率テーブル１２ａ、初期状態動作率計算部１２ｂ、想定動作率計算部１２ｃ）、割り込み先決定部１３、クロスコネクト１４を有する。
【００２４】
各プロセッサの動作率予測部１２は、割り込み処理を実行する複数のプロセッサＡ〜Ｃのいずれかに割り込み処理を割り当てる場合に、割り込み処理を割り当てた場合の各プロセッサＡ〜Ｃの動作率を予測する。各プロセッサの動作率予測部１２は、各処理の動作率テーブル１２ａ、初期状態動作率計算部１２ｂ、想定動作率計算部１２ｃを有する。
【００２５】
各処理の動作率テーブル１２ａは、各割り込み処理の動作率を記憶する。具体的には、各処理の動作率テーブル１２ａは、図３に例示するように、割り込み処理の種別と、いつまでに処理しなければならないかを示す「要求時間」と、プロセッサを１００％の負荷で動作したときの処理時間である「最小処理時間」と、割り込み処理を処理した場合の「動作率」とを対応付けて記憶する。図３は、動作率テーブルの例を説明するための図である。
【００２６】
ここで、動作率とは、最小処理時間を要求時間で割った値のことをいう。つまり、「動作率」＝「最小処理時間」／「要求時間」でもとめられる。例えば、処理「Ａ」の動作率は、「２０ｍｓ」／「１００ｍｓ」＝「２０％」となる。
【００２７】
初期状態動作率計算部１２ｂは、各処理の動作率テーブル１２ａを用いて、現在のプロセッサの動作率を計算する。例えば、図３の例を用いて説明すると、初期状態動作率計算部１２ｂは、プロセッサＡに対して割り込み処理Ａを割り当てている場合には、プロセッサＡの現在の動作率が「２０％」であると計算する。なお、立ち上げ直後の場合には、プロセッサに割り込み処理を割り当てていない状態なので、プロセッサ動作率は「０％」である。
【００２８】
想定動作率計算部１２ｃは、割り込み処理を割り当てた場合の各プロセッサの動作率である想定動作率を計算する。また、想定動作率計算部１２ｃは、要求処理時間が短い割り込み処理を優先する。つまり、プロセッサが現在行っている処理の要求処理時間よりも新たに割り当てる割り込み処理の要求処理時間の方が短い場合に、割り込み処理を割り当てる。
【００２９】
ここで、想定動作率の計算方法について、具体的に説明する。想定動作率計算部１２ｃは、各処理の動作率テーブル１２ａを用いて、割り込みコントローラは現在の処理の要求処理時間、現在の処理の最小処理時間、割り込み処理の要求処理時間、割り込み処理の最小処理時間を把握する。
【００３０】
そして、想定動作率計算部１２ｃは、要求処理時間が現在の要求処理時間を分母とし、現在の処理の最小処理時間と割り込み処理の最小処理時間の合計を分子とする。上記の分母と分子から割り込み処理を実施したときの想定動作率を求める。つまり、「動作率」＝（「現在の処理の最小処理時間」＋「割り込み処理の最小処理時間」）／「現在の処理の要求時間」でもとめられる。
【００３１】
ここで、図４の例を用いて、想定動作率の計算方法について具体的に説明する。図４は、想定動作率の計算処理を説明するための図である。図４では、現在の処理の要求処理時間を「要求処理時間１」、現在の処理の最小処理時間を「最小処理時間１」、割り込み処理の要求処理時間を「要求処理時間２」、割り込み処理の最小処理時間を「最小処理時間２」とする。
【００３２】
図４に示すように、想定動作率計算部１２ｃは、プロセッサＡについて、要求処理時間１が「１００ｍｓ」であり、最小処理時間１が「２０ｍｓ」であり、要求処理時間２が「２０ｍｓ」であり、最小処理時間２が「１０ｍｓ」である。このため、想定動作率計算部１２ｃは、（２０ｍｓ＋１０ｍｓ）／１００ｍｓを計算し、想定動作率が「３０％」となる。
【００３３】
また、想定動作率計算部１２ｃは、プロセッサＢについて、要求処理時間１が「１００ｍｓ」であり、最小処理時間１が「８０ｍｓ」であり、要求処理時間２が「２０ｍｓ」であり、最小処理時間２が「１０ｍｓ」である。このため、想定動作率計算部１２ｃは、（８０ｍｓ＋１０ｍｓ）／１００ｍｓを計算し、想定動作率が「９０％」となる。
【００３４】
また、想定動作率計算部１２ｃは、プロセッサＣについて、要求処理時間１が「１００ｍｓ」であり、最小処理時間１が「９５ｍｓ」であり、要求処理時間２が「２０ｍｓ」であり、最小処理時間２が「１０ｍｓ」である。このため、想定動作率計算部１２ｃは、（９５ｍｓ＋１０ｍｓ）／１００ｍｓを計算し、想定動作率が「１０５％」となる。
【００３５】
割り込み先決定部１３は、予測された各プロセッサの動作率のうち、上限動作率である「１００％」を超えず、かつ「１００％」に最も近い動作率のプロセッサに対して割り込み処理を割り当てるように制御する。
【００３６】
例えば、割り込み先決定部１３は、図４の例では、プロセッサＡの想定動作率が「３０％」、プロセッサＢの想定動作率が「９０％」、プロセッサＣの想定動作率が「１０５％」である。このため、上限動作率である「１００％」を超えず、かつ「１００％」に最も近い動作率であるプロセッサＢに割り込み処理を割り当てるように制御する。
【００３７】
ここで、図５を用いて、動的に割り込みを割り当てた場合における動作率の変化を説明する。図５は、動的に割り込みを割り当てた場合における動作率の変化を説明するための図である。図５に例示するように、初期状態では、プロセッサＡは、処理Ａを行って動作率が２０％であり、プロセッサＢは、処理Ｂを行って動作率が８０％であり、プロセッサＣは、処理Ｃを行って動作率が９５％である。
【００３８】
ここで、割り込みコントローラ１０は、割り込み要因Ｄを受け付けたとき、現在の処理に加えて処理Ｄを行ったとしたときの想定動作率を各プロセッサについて計算する。つまり、図５に示すように、プロセッサＡの想定動作率が３０％、プロセッサＢの想定動作率が９０％、プロセッサＣの想定動作率が１０５％となる。
【００３９】
そして、割り込み先決定部１３は、上限動作率である「１００％」を超えず、かつ「１００％」に最も近い動作率であるプロセッサＢに割り込み処理を割り当てることを決定する。具体的には、割り込みコントローラ１０は、割り込み要因Ｄをクロスコネクト１４でプロセッサＢにクロスコネクトする。プロセッサＢは、割り込み要因Ｄの割り込みを受付け、処理Ｄを開始する。
【００４０】
その後、割り込みコントローラ１０は、さらに割り込み要因Ｄを受け付けたとき、上記と同様に、現在の処理に加えて処理Ｄを行ったとしたときの想定動作率を各プロセッサについて計算する。つまり、図５に示すように、プロセッサＡの想定動作率が３０％、プロセッサＢの想定動作率が１００％、プロセッサＣの想定動作率が１０５％となる。
【００４１】
そして、割り込み先決定部１３は、上限動作率である「１００％」を超えず、かつ「１００％」に最も近い想定動作率であるプロセッサＢに割り込み処理を割り当てることを決定する。具体的には、割り込みコントローラ１０は、割り込み要因Ｄをクロスコネクト部１４でプロセッサＢにクロスコネクトする。プロセッサＢは、割り込み要因Ｄの割り込みを受付け、処理Ｄを開始する。
【００４２】
その後、最初の初期状態の処理（プロセッサＡは処理Ａ、プロセッサＢは処理Ｂ、プロセッサＣは処理Ｃ）が終了したとする。各プロセッサの動作率は、プロセッサＡが０％でスリープ可能、プロセッサＢが20％、プロセッサＣが０％でスリープ可能となる。つまり、「１００％」に最も近い動作率であるプロセッサＢに集中的に割り当てて、プロセッサＡおよびプロセッサＣに割り当てなかった結果、プロセッサＡおよびプロセッサＣがスリープ状態となり、省電力化を図ることができる。
【００４３】
このように、割り込みコントローラ１０は、図６に例示するように、想定動作率を判断し、上限動作率である「１００％」を超えず、かつ「１００％」に最も近い想定動作率であるプロセッサＢに割り込み処理を割り当てることを決定する。このため、スリープするプロセッサの個数を増やし、プロセッサの消費電力を抑えることが可能である。
【００４４】
レジスタ１１は、各プロセッサに割り当てられた割り込み要因を記憶する。クロスコネクト１４は、割り込み要因をプロセッサにクロスコネクトする。
【００４５】
プロセッサ２０は、割り込み要因の割り込みを割り込みコントローラ１０から受付け、割り込み処理を実行する。ＩＯインターフェース３０は、情報の入出力を制御する。メモリ４０は、各種処理に必要なデータを格納する。
【００４６】
［割り込みコントローラによる処理］
次に、図７を用いて、実施例２に係る割り込みコントローラ１０による処理を説明する。図７は、実施例２に係る割り込みコントローラ１０の処理動作を示すフローチャートである。
【００４７】
同図に示すように、割り込みコントローラ１０は、初期化処理として、各プロセッサの動作率を０％に初期化する（ステップＳ１０１）。そして、割り込みコントローラ１０は、アイドル状態となり（ステップＳ１０２）、割り込み要因を受け付けると、割り込み処理を割り当てた場合の各プロセッサの動作率である想定動作率を計算する（ステップＳ１０３）。
【００４８】
そして、割り込みコントローラ１０は、上限動作率である「１００％」を超えず、かつ「１００％」に最も近い想定動作率であるプロセッサを選択し（ステップＳ１０４）、選択されたプロセッサに割り込み処理を割り当てて、割り込みを発生させる（ステップＳ１０５）。その後、割り込みコントローラ１０は、アイドル状態に戻り、割り込み要因を受け付けるたびにステップＳ１０２〜Ｓ１０６の処理を繰り返す。
【００４９】
[実施例２の効果]
上述してきたように、割り込みコントローラ１０は、複数のプロセッサ２０のいずれかに割り込み処理を割り当てる場合に、割り込み処理を割り当てた場合の各プロセッサ２０の動作率を予測する。そして、割り込みコントローラ１０は、予測された各プロセッサ２０の動作率のうち、上限動作率を超えず、かつ上限動作率に最も近い動作率のプロセッサ２０に対して割り込み処理を割り当てるように制御する。
【００５０】
このため、割り込みコントローラ１０は、動作率が「１００％」に最も近い動作率であるプロセッサ２０に集中的に割り当てて、割り込み処理を割り当てないプロセッサ２０を増やして、スリープするプロセッサ２０の個数を増やすことができる。この結果、スリープするプロセッサ２０の個数を増やしてプロセッサ２０の消費電力を抑えることが可能である。また、割り込みコントローラ１０が動作率を予測するので、処理負荷を集中管理することができる。
【００５１】
また、実施例２によれば、割り込みコントローラ１０は、割り込み処理をいつまでに処理しなければならないかを示す要求時間と、プロセッサ２０を上限動作率の負荷で動作したときにかかる処理時間を示す最小処理時間とを用いて、各プロセッサ２０の動作率を予測する。このため、各プロセッサ２０の動作率を適切に予測することが可能である。
【００５２】
また、実施例２によれば、割り込みコントローラ１０は、割り込み処理について、割り込み処理の種別と、要求時間と、最小処理時間と、割り込み処理を処理した場合の動作率とを対応付けて記憶する。このため、割り込みコントローラ１０は、各割り込み処理にかかる動作率を計算する負担を軽減することが可能である。
【実施例３】
【００５３】
ところで、上記の実施例２では、割り込みコントローラが各プロセッサの動作率を予測する場合を説明したが、本実施例はこれに限定されるものではなく、各プロセッサが自プロセッサの動作率を予測するようにしてもよい。
【００５４】
そこで、以下の実施例３では、各プロセッサが自プロセッサの動作率を予測する場合として、図８および図９を用いて、実施例３におけるマルチプロセッサシステムの構成および処理について説明する。図８は、実施例３に係るマルチプロセッサシステムの構成を示すブロック図である。図９は、各プロセッサが動作率を判断する処理を説明するための図である。なお、実施例２と同じ構成、同じ処理については、説明を省略する。
【００５５】
図８に示すように、割り込みコントローラ１０ａは、レジスタ１１ａ、割り込み先決定部１３ａ、クロスコネクト１４、割り込み要求信号送信部１５を有する。また、各プロセッサ２０ａは、初期状態動作率計算部２１、想定動作率計算部２２、許可信号送信部２３を有する。また、メモリ４０ａは、各処理の動作率を記憶する動作率テーブル４１を記憶している。
【００５６】
動作率テーブル４１は、各割り込み処理の動作率を記憶する。具体的には、動作率テーブル４１は、実施例２と同様に、割り込み処理の種別と、いつまでに処理しなければならないかを示す「要求時間」と、プロセッサを１００％の負荷で動作したときの処理時間である「最小処理時間」と、割り込み処理を処理した場合の「動作率」とを対応付けて記憶する。なお、プロセッサごとに異なるテーブルを記憶するようにしてもよい。
【００５７】
割り込みコントローラ１０ａのレジスタ１１ａは、各プロセッサの現在実行中の割り込み要因である「割り込み要因」と、各プロセッサ２０ａに送信した割り込み要求信号で要求する割り込み要因である「送信要求要因」と、各プロセッサ２０ａに書き込まれた割り込みが可能である旨を示す「許可信号」とを記憶する。
【００５８】
割り込みコントローラ１０ａの割り込み要求信号送信部１５は、割り込み要因を受け付けると、各プロセッサ２０ａに対して、割り込み処理の処理を要求する割り込み要求信号を送信する。
【００５９】
各プロセッサ２０ａの初期状態動作率計算部２１は、割り込み要求信号送信部１５から割り込み要求信号を受信すると、メモリ４０ａに記憶された動作率テーブル４１を用いて、実施例２と同様に、自プロセッサの現在の動作率を計算する。
【００６０】
ここで、初期状態動作率計算部２１は、初期状態の動作率は現在実行中の処理の割り込み要因を割り込みコントローラのレジスタ１１ａが記憶しているので、レジスタ１１ａから現在実行中の処理の割り込み要因を読み出した後、自プロセッサの現在の動作率を計算する。
【００６１】
また、想定動作率計算部２２は、実施例２と同様に、割り込み処理が割り当てられた場合の自プロセッサの動作率である想定動作率を計算する。ここで、想定動作率計算部２２は、どの割り込み要因の割り込み要求信号を受けたかを、レジスタ１１ａから読み出した後、割り込み処理が割り当てられた場合の自プロセッサの動作率である想定動作率を計算する。
【００６２】
許可信号送信部２３は、予測された自プロセッサの動作率が上限動作率である「１００％」を超えていない場合には、動作率が大きいほど早いタイミングで割り込みを許可する。つまり、許可信号送信部２３は、自プロセッサの想定動作率を計算した後、割り込みが可能であるか判定し、割り込みが可能である場合には、想定動作率が大きいほど早いタイミングで割り込みを許可する許可信号を割り込みコントローラ１０ａに送信する。
【００６３】
具体的には、許可信号送信部２３は、自プロセッサの想定動作率が「１００％」を超えているか否かを判定し、超えていない場合には、割り込みが可能であると判定する。そして、許可信号送信部２３は、割り込みが可能である場合には、想定動作率が大きいほど早いタイミングで割り込みを許可する許可信号を割り込みコントローラ１０ａに送信し、想定動作率が小さいほど遅いタイミングで割り込みを許可する許可信号を割り込みコントローラ１０ａに送信する。
【００６４】
また、許可信号送信部２３は、割り込みが可能である場合には、許可信号を送信しない。なお、許可信号を送信するタイミングについては、プロセッサ２０ａが時間にオフセットを付けてレジスタ１１ａに書き込むようにする。
【００６５】
割り込みコントローラ１０ａの割り込み先決定部１３ａは、最も早く許可信号を送信したプロセッサを特定し、割り込み先に決定する。そして、割り込みコントローラ１０ａの割り込み先決定部１３ａは、プロセッサに対して割り込み処理を割り当てるように制御する。
【００６６】
ここで、図９の例を用いて具体的に説明する。図９の（ａ）に示すように、割り込みコントローラ１０ａから割り込み要求を受信すると、各プロセッサ２０ａは、自装置の想定動作率を判断する。ここでは、プロセッサＡの想定動作率が３０％、プロセッサＢの想定動作率が９０％、プロセッサＣの想定動作率が１０５％であったとする。
【００６７】
このような場合に、図９の（ｂ）に示すように、例えば、プロセッサＡは、７０μ秒後に許可信号を割り込みコントローラ１０ａに送信する。また、例えば、プロセッサＢは、１０μ秒後に許可信号を割り込みコントローラ１０ａに送信し、プロセッサＣは、許可信号を送信しない。この結果、図９の（ｃ）に示すように、割り込みコントローラ１０ａは、最も早く許可信号を送信したプロセッサＢに割り込み処理を割り当てる。
【００６８】
このように、複数のプロセッサ２０ａが、割り込み処理を割り当てられた場合の自プロセッサの動作率を予測し、予測された自プロセッサの動作率が上限動作率を超えていない場合には、動作率が大きいほど早いタイミングで割り込みを許可する許可信号を割り込みコントローラ１０ａに送信する。そして、割り込みコントローラ１０ａが、送信された各プロセッサ２０ａの許可信号のうち、最も早く許可信号を送信したプロセッサ２０ａに対して割り込み処理を割り当てるように制御する。
【００６９】
このため、割り込みコントローラ１０ａは、動作率が「１００％」に最も近い動作率であるプロセッサに集中的に割り当てて、割り込み処理を割り当てないプロセッサを増やして、スリープするプロセッサの個数を増やすことができる。この結果、スリープするプロセッサの個数を増やしてプロセッサの消費電力を抑えることが可能である。また、各プロセッサ２０ａが動作率を予測するので、処理負荷を分散することができる。
【実施例４】
【００７０】
さて、これまで本実施例について説明したが、上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例４として本発明に含まれる他の実施例を説明する。
【００７１】
（１）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、初期状態動作率計算部１２ｂと想定動作率計算部１２ｃを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７２】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７３】
（２）プログラム
また、上記の実施例１で説明した割り込みコントローラ２の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、図１０を用いて、上記の実施例１と同様の機能を有する割り込み制御プログラムを実行するコンピュータの一例を説明する。図１０は、割り込み制御プログラムを実行するコンピュータを示す図である。
【００７４】
同図に示すように、割り込みコントローラとしてのコンピュータ９００は、ＲＡＭ９１０、ＣＰＵ９２０、ＨＤＤ９３０およびクロスコネクト９４０をバスで接続して構成される。
【００７５】
ここで、クロスコネクト９４０は、プロセッサとの間でやり取りされる各種情報に関する通信を制御する。ＨＤＤ９３０は、ＣＰＵ９２０による各種処理の実行に必要な情報を記憶する。ＲＡＭ９１０は、各種情報を一時的に記憶する。ＣＰＵ９２０は、各種演算処理を実行する。
【００７６】
そして、ＨＤＤ９３０には、図１０に示すように、上記の実施例１に示した、割り込みコントローラの各処理部と同様の機能を発揮する割り込み制御プログラム９１１があらかじめ記憶されている。なお、この割り込み制御プログラム９１１を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【００７７】
そして、ＣＰＵ９２０が、この割り込み制御プログラム９１１をＨＤＤ９３０から読み出してＲＡＭ９１０に展開する。そして、割り込み制御プログラム９１１は、各種データをＨＤＤ９３０から読み出して、ＲＡＭ９１０において自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種処理を実行する。
【００７８】
なお、上記した割り込み制御プログラム９１１については、必ずしも最初からＨＤＤ９３０に記憶させておく必要はなく、例えば、コンピュータ９００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ９００に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ９００がこれらから各プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００７９】
１、１Ａ、１Ｂ  マルチプロセッサシステム
２、１０、１０ａ  割り込みコントローラ
１１  レジスタ
１２  各プロセッサの動作率予測部
１２ａ  動作率テーブル
１２ｂ  初期状態動作率計算部
１２ｃ  想定動作率計算部
１３  割り込み先決定部
１４  クロスコネクト
１５  割り込み要求信号送信部
３、２０、２０ａ  プロセッサ
３０  ＩＯインターフェース
４０  メモリ
【図１】
0005439983.tif 000002
【図２】
0005439983.tif 000003
【図３】
0005439983.tif 000004
【図４】
0005439983.tif 000005
【図５】
0005439983.tif 000006
【図６】
0005439983.tif 000007
【図７】
0005439983.tif 000008
【図８】
0005439983.tif 000009
【図９】
0005439983.tif 000010
【図１０】
0005439983.tif 000011
【図１１】
0005439983.tif 000012