(57)【要約】【課題】消費電力と処理性能との両方に鑑みて最良の動作点を決定するマルチプロセッサシステムを提供する。【解決手段】ジョブ処理量見積り部１１の見積ったジョブ処理量に応じて、制御回路１０が必要な処理能力を計算する。制御回路１０は、動作点ＬＵＴ１２から、予め計算した最適な動作点を選択する。プロセッサの消費電力は動作電圧の二乗および周波数に比例し、処理能力は周波数に比例することを考慮して、動作点ＬＵＴ１２には、必要な処理能力に対して最適な消費電力となる動作点を計算して、記憶させている。制御回路１０は、必要な数のプロセッサコア１７ａ〜１７ｄのみ動作させる。制御回路１０は、動作点の動作周波数に応じてＰＬＬ１３を制御して所望の周波数のクロックを、また動作点の動作電圧に応じて最適な動作電圧を、プロセッサコア１７ａ〜１７ｄに供給する。【選択図】図１
2005085164.tif 000002
【特許請求の範囲】
【請求項１】
複数のうちの所望のプロセッサに電源電圧とクロックとを供給してジョブを処理するジョブ処理工程を含むマルチプロセッサシステムの制御方法において、
上記ジョブ処理工程において上記プロセッサに供給するための上記電源電圧と上記クロックの周波数とを定める動作点のうちの、第１動作点および第２動作点について、
第２動作点の動作電圧／第１動作点の動作電圧 = rv、
第２動作点の動作周波数／第１動作点の動作周波数 = rf、
第１動作点において動作させるプロセッサコア数をm1、
第２動作点において動作させるプロセッサコア数をm2としたときに、
rv2×rf < m1/m2 ≦ rf が満たされる場合には、第１動作点よりも第２動作点を選択する選択工程を含んでいることを特徴とするマルチプロセッサシステムの制御方法。
【請求項２】
複数のうちの所望のプロセッサに電源電圧とクロックとを供給してジョブを処理するジョブ処理工程を含むマルチプロセッサシステムの制御方法において、
上記ジョブ処理工程において上記プロセッサに供給するための上記電源電圧と上記クロックの周波数とを定める動作点について、上記電源電圧と上記クロックの上記周波数が高い方の動作点の集合を第１動作モードとし、上記電源電圧と上記クロックの上記周波数が低い方の動作点の集合を第２動作モードとして、
上記第２モードの動作点を選択するとともに、上記第１モードの動作点を、動作させるプロセッサコア数並びに上記電源電圧および上記クロックの上記周波数に応じて得られる処理能力が、上記第２動作モードにおいて用いることのできる最大数のプロセッサコアを用いた場合の処理能力よりも高い場合に選択する動作点選択工程を含んでいることを特徴とするマルチプロセッサシステムの制御方法。
【請求項３】
上記ジョブ処理工程において処理するべきジョブが上記マルチプロセッサシステムに投入されるよりも前に、上記選択工程を予め実行して、上記動作点および上記動作させるプロセッサコア数を選択しておくことを特徴とする請求項１に記載のマルチプロセッサシステムの制御方法。
【請求項４】
上記ジョブ処理工程において処理するべきジョブが上記マルチプロセッサシステムに投入されるよりも前に、上記動作点選択工程を予め実行して、上記動作点および上記動作させるプロセッサコア数を選択しておくことを特徴とする請求項２に記載のマルチプロセッサシステムの制御方法。
【請求項５】
処理するべきジョブの処理量を計算する処理量計算工程と、
上記処理量計算工程にて計算した処理量に応じて必要な処理能力を見積り、この必要な処理能力に応じて上記選択工程にて選択した上記動作点のうちからさらに選択する動作点を決定する決定工程とを含み、
上記ジョブ処理工程が、上記決定工程にて決定した上記動作点を実現するとともに、動作させるプロセッサコアに上記ジョブを均等に分散処理させる分散処理工程であることを特徴とする請求項１に記載のマルチプロセッサシステムの制御方法。
【請求項６】
処理するべきジョブの処理量を計算する処理量計算工程と、
上記処理量計算工程にて計算した処理量に応じて必要な処理能力を見積り、この必要な処理能力に応じて上記動作点選択工程にて選択した上記動作点のうちからさらに選択する動作点を決定する動作点決定工程とを含み、
上記ジョブ処理工程が、上記動作点決定工程にて決定した上記動作点を実現するとともに、動作させるプロセッサコアに上記ジョブを均等に分散処理させる分散処理工程であることを特徴とする請求項２に記載のマルチプロセッサシステムの制御方法。
【請求項７】
複数のプロセッサを有するマルチプロセッサシステムにおいて、
上記プロセッサコアにクロックを供給するクロック供給部と、上記プロセッサコアに電源電圧を供給する電源電圧供給部と、上記クロック供給部から上記プロセッサコアへの上記クロックの供給のオンオフ及び上記電源電圧供給部から上記プロセッサコアへの上記電源電圧の供給のオンオフの少なくともいずれか一方を制御する制御回路とを備え、
上記制御回路が、請求項１に記載のマルチプロセッサシステムの制御方法における選択工程または請求項２に記載のマルチプロセッサシステムの制御方法における動作点選択工程によって選択した動作点および動作させるプロセッサコア数の組を保存している記憶部を参照して、上記クロック供給部の供給する上記クロックの周波数を制御し、上記電源電圧供給部の供給する上記電源電圧を制御することを特徴とするマルチプロセッサシステム。
【請求項８】
一つの半導体チップ上に構成されていることを特徴とする請求項７記載のマルチプロセッサシステム。
【請求項９】
投入されたジョブを実際に処理する前にそのジョブの処理量を見積るジョブ処理量見積り部を備え、
上記制御回路が、上記ジョブ処理量見積り部によって見積られた上記ジョブの上記処理量に応じて必要な処理能力を算出し、この必要な処理能力に応じて上記記憶部を参照して上記動作点および上記動作させるプロセッサコアの数を決定し、この決定に応じて動作させるプロセッサコアに対して上記ジョブを均等に配分することを特徴とする請求項７記載のマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個のプロセッサを有するマルチプロセッサシステムの制御方法およびマルチプロセッサシステムに関するものである。
【背景技術】
【０００２】
昨今の半導体技術の急速な進展に伴って、一つのＬＳＩ(large-scale integration)に内蔵されるゲート数は飛躍的に増大している。このような半導体技術の進展によって、複数のプロセッサコアをワンチップに搭載することが可能となり、それらのＬＳＩはＣＭＰ(Chip Multi Processor：チップマルチプロセッサ)と呼ばれている。
【０００３】
ＣＭＰのように複数のプロセッサを有するマルチプロセッサシステムにおいて、消費電力を低下させるための手法の一つとして、縮退動作というものが知られている。縮退動作とは、消費電力を縮小するために、ＣＰＵの処理能力を必要に応じて段階的に縮小する動作である。マルチプロセッサシステムにおける縮退動作の制御方法の実現方法として、以下の２つの方法が知られている。
【０００４】
第１の方法においては、複数のうちのいくつかのプロセッサコアの動作を必要に応じて停止する。プロセッサコアの動作を停止させるためには、クロックの供給を停止し、あるいは動作電圧の供給を停止する。このようなマルチプロセッサシステムの構成例を図８、図９に示す。
【０００５】
従来のマルチプロセッサシステム２１は、図８に示すように、電源２３からプロセッサコア２４ａ〜２４ｄへの電源供給を、制御回路２２によってオンオフする構成である。
【０００６】
また、従来のマルチプロセッサシステム２５は、図９に示すように、発振回路２７からプロセッサコア２９ａ〜２９ｄへのクロック供給を、制御回路２６とＧａｔｉｎｇ（ゲーティング）回路２８ａ〜２８ｄとによってオンオフする構成である。
【０００７】
ここで、各プロセッサコアが同等の処理能力を有しており、対称であると仮定する。そして、一つのプロセッサコアは、３種類の動作周波数と動作電圧、すなわち動作点を有しているものとする。以下では、プロセッサコア一つ当たりの消費電力と処理性能とを、最大の動作電圧と最大の動作周波数との場合を基準として適当に正規化して説明する。
【０００８】
図８、図９に示すマルチプロセッサシステム２１、２５においては、動作電圧や動作周波数は変化させず、用いるプロセッサコアの個数のみを変化させる。このため、この構成における縮退動作時の消費電力と処理性能の関係は、図１０に示すように、動作しているプロセッサコアの個数に比例して処理能力と消費電力とが変化するものとなる。
【０００９】
このように、クロックの供給の停止や、電源電圧の供給の停止によってプロセッサコアの動作を停止させて、必要に応じて動作するプロセッサコアの数を変更する方法は、例えば特許文献１，２に記載されている。
【００１０】
また、縮退動作を実現する第２の方法として、マルチプロセッサシステムの動作電圧と動作周波数を必要に応じて可変とする方法がある。このようなマルチプロセッサシステムの一例を図１１に示す。
【００１１】
マルチプロセッサシステム３１は、制御回路３２が、必要とされる処理能力に応じて、あるいは所望の消費電力に応じて、ＰＬＬ３３とプログラマブル電源３５とを制御する。ＰＬＬ３３は発振回路３４より出力されるクロック周波数を変更（あるＡ／Ｂ倍）する。プログラマブル電源３５は所望の出力電圧を出力する。なお、一般に、この縮退動作の制御方法を用いる場合には、動作電圧を下げるとともに動作周波数も下がることになる。これは半導体デバイスの性質によるものである。
【００１２】
ここで、ｍ個のプロセッサコアを用いたときのＬＳＩの消費電力Ｐは、プロセッサコア一つ当りの容量をCpeとして、
Ｐ＝Cpe×(rv×V)2×(rf×f)×ｍ
で与えられる。ただし、最大の動作電圧と現在の動作電圧との比rv(0 < rv ≦ 1)、最大の動作周波数と現在の動作周波数との比rf(0 < rf ≦ 1)を用いて、このときの動作電圧を(rv×V)とし、動作周波数を(rf×f)とした。
【００１３】
また、このときのマルチプロセッサシステムの処理能力Ｘは、プロセッサコア一つ当りの処理能力をXpeとすると、
Ｘ = Xpe×m×rf
で与えられる。
【００１４】
マルチプロセッサシステム３１において、動作させるプロセッサコアの数を４に固定し、３つの動作点を(動作周波数, 動作電圧) = (700MHz, 1.65V), (500MHz, 1.5V), (300MHz, 1.25V)とした場合の、消費電力と処理能力との関係を図１２に示す。なお、この３つの動作点の値はTransmetaによるCrusoeのLongRun Technologyにて実際に用いられている値を使用した。
【００１５】
このような方法は、例えば特許文献２，３，４に記載されている。例えば、Intel（登録商標）のSpeedStep Technologyや、上記に挙げたTransmetaのLongRun Technologyが、上述のような縮退動作を実現する制御技術であり、マルチプロセッサシステムひいてはＣＭＰにも当然応用可能である。
【００１６】
以上に説明した２つの方法が、縮退動作を実現するための基本的な方法であり、数多くの応用方法が提案されている。さらには上記２つの方法を組み合わせた縮退動作の制御方法も提案されている。
【００１７】
なお、特許文献５には、周囲温度や半導体の温度に依存して、CPUの処理能力を下げて、消費電力を下げることによって発熱を下げる構成が開示されている。
【特許文献１】特開2000−47872号公報（公開日：平成12年2月18日）
【特許文献２】特開2001−67149号公報（公開日：平成13年3月16日）
【特許文献３】特開2000−66776号公報（公開日：平成12年3月3日）
【特許文献４】特開2002−99433号公報（公開日：平成14年4月5日）
【特許文献５】特開平8−314578号公報（公開日：平成8年11月29日）
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、従来の縮退動作の実現方法においては、消費電力と処理能力の有効活用を鑑みて縮退動作の動作点を決定する方法は提案されておらず、必ずしも最適な動作点が選択されないという問題を生ずる。
【００１９】
すなわち、従来の縮退動作の実現方法においては、処理能力、消費電力をそれぞれ可変にする手法は多数提案されているにもかかわらず、処理能力と消費電力とをともに鑑みて縮退動作の最良の動作点を決定する手法は提案されていない。
【００２０】
本発明は、上記従来の問題点に鑑みてなされたものであり、その目的は、各プロセッサコアに処理を割り当てるマルチプロセッサシステムにおいて、処理能力と消費電力を鑑みて最適な動作点、動作プロセッサ数を決定するマルチプロセッサシステムの制御方法およびマルチプロセッサシステムを提供することにある。
【課題を解決するための手段】
【００２１】
本発明に係るマルチプロセッサシステムの制御方法は、上記課題を解決するために、複数のうちの所望のプロセッサに電源電圧とクロックとを供給してジョブを処理するジョブ処理工程を含むマルチプロセッサシステムの制御方法において、上記ジョブ処理工程において上記プロセッサに供給するための上記電源電圧と上記クロックの周波数とを定める動作点のうちの、第１動作点および第２動作点について、第２動作点の動作電圧／第１動作点の動作電圧 = rv、第２動作点の動作周波数／第１動作点の動作周波数 = rf、第１動作点において動作させるプロセッサコア数をm1、第２動作点において動作させるプロセッサコア数をm2としたときに、rv2×rf < m1/m2 ≦ rf が満たされる場合には、第１動作点よりも第２動作点を選択する選択工程を含んでいることを特徴としている。
【００２２】
本発明に係るマルチプロセッサシステムの制御方法は、上記課題を解決するために、複数のうちの所望のプロセッサに電源電圧とクロックとを供給してジョブを処理するジョブ処理工程を含むマルチプロセッサシステムの制御方法において、上記ジョブ処理工程において上記プロセッサに供給するための上記電源電圧と上記クロックの周波数とを定める動作点について、上記電源電圧と上記クロックの上記周波数が高い方の動作点の集合を第１動作モードとし、上記電源電圧と上記クロックの上記周波数が低い方の動作点の集合を第２動作モードとして、上記第２モードの動作点を選択するとともに、上記第１モードの動作点を、動作させるプロセッサコア数並びに上記電源電圧および上記クロックの上記周波数に応じて得られる処理能力が、上記第２動作モードにおいて用いることのできる最大数のプロセッサコアを用いた場合の処理能力よりも高い場合に選択する動作点選択工程を含んでいることを特徴としている。
【００２３】
本発明に係るマルチプロセッサシステムの制御方法は、上記課題を解決するために、上記構成において、上記ジョブ処理工程において処理するべきジョブが上記マルチプロセッサシステムに投入されるよりも前に、上記選択工程を予め実行して、上記動作点および上記動作させるプロセッサコア数を選択しておくことを特徴としている。
【００２４】
本発明に係るマルチプロセッサシステムの制御方法は、上記課題を解決するために、上記構成において、上記ジョブ処理工程において処理するべきジョブが上記マルチプロセッサシステムに投入されるよりも前に、上記動作点選択工程を予め実行して、上記動作点および上記動作させるプロセッサコア数を選択しておくことを特徴としている。
【００２５】
本発明に係るマルチプロセッサシステムの制御方法は、上記課題を解決するために、上記構成において、処理するべきジョブの処理量を計算する処理量計算工程と、上記処理量計算工程にて計算した処理量に応じて必要な処理能力を見積り、この必要な処理能力に応じて上記選択工程にて選択した上記動作点のうちからさらに選択する動作点を決定する決定工程とを含み、上記ジョブ処理工程が、上記決定工程にて決定した上記動作点を実現するとともに、動作させるプロセッサコアに上記ジョブを均等に分散処理させる分散処理工程であることを特徴としている。
【００２６】
本発明に係るマルチプロセッサシステムの制御方法は、上記課題を解決するために、上記構成において、処理するべきジョブの処理量を計算する処理量計算工程と、上記処理量計算工程にて計算した処理量に応じて必要な処理能力を見積り、この必要な処理能力に応じて上記動作点選択工程にて選択した上記動作点のうちからさらに選択する動作点を決定する動作点決定工程とを含み、上記ジョブ処理工程が、上記動作点決定工程にて決定した上記動作点を実現するとともに、動作させるプロセッサコアに上記ジョブを均等に分散処理させる分散処理工程であることを特徴としている。
【００２７】
本発明に係るマルチプロセッサシステムは、上記課題を解決するために、複数のプロセッサを有するマルチプロセッサシステムにおいて、上記プロセッサコアにクロックを供給するクロック供給部と、上記プロセッサコアに電源電圧を供給する電源電圧供給部と、上記クロック供給部から上記プロセッサコアへの上記クロックの供給のオンオフ及び上記電源電圧供給部から上記プロセッサコアへの上記電源電圧の供給のオンオフの少なくともいずれか一方を制御する制御回路とを備え、上記制御回路が、請求項１に記載のマルチプロセッサシステムの制御方法における選択工程または請求項２に記載のマルチプロセッサシステムの制御方法における動作点選択工程によって選択した動作点および動作させるプロセッサコア数の組を保存している記憶部を参照して、上記クロック供給部の供給する上記クロックの周波数を制御し、上記電源電圧供給部の供給する上記電源電圧を制御することを特徴としている。
【００２８】
本発明に係るマルチプロセッサシステムは、上記課題を解決するために、上記構成において、一つの半導体チップ上に構成されていることを特徴としている。
【００２９】
本発明に係るマルチプロセッサシステムは、上記課題を解決するために、上記構成において、投入されたジョブを実際に処理する前にそのジョブの処理量を見積るジョブ処理量見積り部を備え、上記制御回路が、上記ジョブ処理量見積り部によって見積られた上記ジョブの上記処理量に応じて必要な処理能力を算出し、この必要な処理能力に応じて上記記憶部を参照して上記動作点および上記動作させるプロセッサコアの数を決定し、この決定に応じて動作させるプロセッサコアに対して上記ジョブを均等に配分することを特徴としている。
【発明の効果】
【００３０】
本発明に係るマルチプロセッサシステムの制御方法は、ジョブ処理工程においてプロセッサに供給するための電源電圧とクロックの周波数とを定める動作点のうちの、第１動作点および第２動作点について、第２動作点の動作電圧／第１動作点の動作電圧 = rv、第２動作点の動作周波数／第１動作点の動作周波数 = rf、第１動作点において動作させるプロセッサコア数をm1、第２動作点において動作させるプロセッサコア数をm2としたときに、rv2×rf < m1/m2 ≦ rf が満たされる場合には、第１動作点よりも第２動作点を選択する選択工程を含んでいる構成である。
【００３１】
ここで、動作点とは、プロセッサに供給するための電源電圧とクロックの周波数とを定めるものであり、動作電圧と動作周波数との組を意味する。供給される動作電圧および動作周波数によって、一つのプロセッサによる消費電力および処理能力が決定される。上記構成によれば、以下の理由によって、消費電力を最も少なくする、最適な動作点および動作させるプロセッサコア数の組を選択することができる。
【００３２】
まず、簡単のため、上記のマルチプロセッサシステムにおいては、各プロセッサの処理能力が均一であるものとする。また、動作させる各プロセッサに均等に処理を配分するものとする。例えば、処理するべきデータを均等に配分することによって、各プロセッサでの処理を均等にできる。なお、マルチプロセッサシステムの構成はこれに限るものではなく、プロセッサの処理能力が均一でない場合には、処理が均等となるように、処理能力に比例してデータを配分するものであってもよい。
【００３３】
上記構成によれば、マルチプロセッサシステムの動作点のうちから任意に選んだ第１動作点と第２動作点とについて、第１動作点の動作周波数をfとし、第１動作点の動作電圧をvとし、一つのプロセッサにおける容量の値をCpeとしたときに、m1個のプロセッサコアを用いる場合の消費電力P1は、P1 = Cpe×V2×f×m1で与えられる。また、第２動作点の動作周波数を(rf×f)とし、第２動作点の動作電圧を(rv×V)としたときに、第２動作点においてm2個のプロセッサコアを用いる場合の消費電力P2は、P2 = Cpe×(rv×V)2×(rf×f) ×m2で与えられる。
【００３４】
一方、一つのプロセッサコアによる処理能力をXpeとしたときに、第１動作点においてm1個のプロセッサコアを用いる場合の処理能力X1は、X1 = Xpe×m1で与えられる。また、第２動作点においてm2個のプロセッサコアを用いる場合の処理能力X2は、X2 = Xpe×m2×rfで与えられる。
【００３５】
そこで、第１動作点よりも第２動作点の方が好ましい条件として、消費電力が少なく、かつ処理能力が大きい場合を考えると、条件としてP1 > P2 かつ X1 ≦ X2が得られる。この条件から、式変形によって、rv2×rf < m1/m2 ≦rfが得られる。
【００３６】
すなわち、rv2×rf < m1/m2 ≦rfであれば、第１動作点よりも第２動作点の方が、消費電力が少なく、かつ処理能力が大きいことが保証される。
【００３７】
したがって、上記の条件の下で、ジョブ処理工程において用いるために選択工程において第１動作点ではなく第２動作点を選択し、この選択に基づいてジョブ処理工程にてジョブを処理すれば、より消費電力を少なくでき、かつ大きな処理能力のため短時間にてジョブの処理を完了できる。
【００３８】
よって、処理するためのジョブの投入の後に、ジョブの処理のために必要とされる処理能力を見積って選択工程を実行し、この選択に基づいてジョブ処理工程にてジョブを処理すれば、例えば実際に必要とされる処理能力に対して最小の消費電力でマルチプロセッサシステムを動作させることが可能となる。なお、選択するべき動作点が三つ以上ある場合には、例えば動作電圧および動作周波数の小さい順に二つずつを順次選択して、上述のように動作点を決定すればよい。
【００３９】
したがって、処理能力と消費電力の両方を鑑みて、最良の動作点でマルチプロセッサシステムを動作させることのできる動作点の決定方法を提供することができる。
【００４０】
なお、上述のマルチプロセッサシステムの制御方法は、実際のジョブの処理の前に、ジョブ割当てに必要な情報（動作点など）を見積って、処理を割当てするものであり、いってみれば静的な割当てに相当する。一方、実際のジョブの処理中にジョブ割当ての状態を変更する動的な割当ても知られているが、この場合には割当て処理や監視処理などが必要となり、上述のような簡単な形式にはならない。
【００４１】
また、上述のマルチプロセッサシステムの制御方法を、以下のように表現することもできる。すなあち、マルチプロセッサシステムが、各プロセッサコアへのクロック供給制御手段と、プロセッサコアへの可変周波数クロック供給手段と、プロセッサコアへの可変動作電圧供給手段とを具備し、動作させるプロセッサコアに均等に処理量を分配するものであり、動作電圧と動作周波数が異なる二つの動作点を少なくとも有し、動作電圧と動作周波数が高いほうの動作点を第１動作点とし、動作電圧と動作周波数が低いほうの動作点を第２動作点として、第２動作点の動作電圧／第１動作点の動作電圧 = rv、第２動作点の動作周波数／第１動作点の動作周波数 = rf、第１動作点において動作させるプロセッサコア数をm1、第２動作点において動作させるプロセッサコア数をm2としたときに、rv2×rf < m1/m2 ≦ rfが満たされる場合に、動作点１ではなく、動作点２を選択して制御する構成である、と表現することもできる。
【００４２】
また、本発明に係るマルチプロセッサシステムの制御方法は、ジョブ処理工程においてプロセッサに供給するための電源電圧とクロックの周波数とを定める動作点について、上記電源電圧と上記クロックの上記周波数が高い方の動作点の集合を第１動作モードとし、上記電源電圧と上記クロックの上記周波数が低い方の動作点の集合を第２動作モードとして、上記第２モードの動作点を選択するとともに、上記第１モードの動作点を、動作させるプロセッサコア数並びに上記電源電圧および上記クロックの上記周波数に応じて得られる処理能力が、上記第２動作モードにおいて用いることのできる最大数のプロセッサコアを用いた場合の処理能力よりも高い場合に選択する動作点選択工程を含んでいる構成である。
【００４３】
ここで、動作点とは、プロセッサに供給するための電源電圧とクロックの周波数とを定めるものであり、動作電圧と動作周波数との組を意味する。供給される動作電圧および動作周波数によって、一つのプロセッサによる消費電力および処理能力が決定される。
【００４４】
プロセッサとして半導体デバイスを用いる場合には、特性上、動作電圧を上げると動作周波数も上がるようになっている。また、プロセッサの消費電力は電圧の２乗と周波数の積に比例して増加する一方、処理能力の方は周波数に比例して増加する。このため、動作電圧および動作周波数の低い方が、処理能力当たりの消費電力が小さいと見込まれる。
【００４５】
そこで、動作電圧および動作周波数の低い、第２動作モードに含まれる動作点を、動作させるプロセッサコアの数にかかわらず選択する。言い換えると、第１動作モードの動作点のうち、第２動作モードにおいて用いることのできる最大数のプロセッサコアを用いた場合の処理能力よりも低い処理能力の動作点は用いないようにする。このようにすれば、同様の処理能力を与える第１動作モードの動作点を選択した場合よりも、消費電力を低減できる。なお、処理能力は、例えば動作点（動作周波数f、動作電圧v）、動作させるプロセッサコアの数mのときに、処理能力Xが(m×f)に比例するものとして見積ることができる。
【００４６】
さらに、第２動作モードにおいて用いることのできる最大数のプロセッサコアを用いた場合の処理能力よりも高い処理能力を得るために、この処理能力よりも高い処理能力を有する第１動作モードの動作点を選択する。
【００４７】
以上のように第１動作モードの動作点、第２動作モードの動作点について動作点選択工程を行い、この選択に基づいてジョブ処理工程にてジョブを処理すれば、より消費電力を少なくでき、かつ大きな処理能力のため短時間にてジョブの処理を完了できる。
【００４８】
また、処理するためのジョブの投入の後に、ジョブの処理のために必要とされる処理能力を見積って動作点選択工程を実行し、この選択に基づいてジョブ処理工程にてジョブを処理すれば、例えば実際に必要とされる処理能力に対して最小の消費電力でマルチプロセッサシステムを動作させることが可能となる。
【００４９】
したがって、処理能力と消費電力の両方を鑑みて、最良の動作点でマルチプロセッサシステムを動作させることのできる動作点の決定方法を提供することができる。
【００５０】
なお、上記のマルチプロセッサシステムの制御方法を、以下のように表現することもできる。すなわち、マルチプロセッサシステムが、各プロセッサコアへのクロック供給制御手段と、プロセッサコアへの可変周波数クロック供給手段と、プロセッサコアへの可変動作電圧供給手段とを具備し、動作電圧と動作周波数が異なる二つの動作点を少なくとも有し、動作させるプロセッサコアに均等に処理量を分配するものであって、動作電圧と動作周波数が高い方の動作点の集合を動作モード１とし、動作電圧と動作周波数が低い方の動作点の集合を動作モード２としたときに、動作モード２の最大プロセッサコア動作時の処理能力より低い処理能力の動作モード１の動作点は、動作点として選択しない構成である、と表現することもできる。
【００５１】
また、本発明に係るマルチプロセッサシステムの制御方法は、上記構成において、上記ジョブ処理工程において処理するべきジョブが上記マルチプロセッサシステムに投入されるよりも前に、上記選択工程を予め実行して、上記動作点および上記動作させるプロセッサコア数を選択しておく構成であってもよい。また、上記ジョブ処理工程において処理するべきジョブが上記マルチプロセッサシステムに投入されるよりも前に、上記動作点選択工程を予め実行して、上記動作点および上記動作させるプロセッサコア数を選択しておく構成であってもよい。
【００５２】
このようにして予め決定した動作点および動作させるプロセッサコア数の組を、例えばＬＵＴ（ルックアップテーブル）に記憶しておけば、必要な処理能力を見積った後にＬＵＴを参照することによって、即時に最適な動作点および動作させるプロセッサコア数を得ることができる。また、ジョブ処理工程におけるジョブの処理を妨げることなく、容易に最適な動作点および動作させるプロセッサコア数を得ることができる。
【００５３】
なお、上述の制御方法を、予め必要な処理能力に応じて選択するべき動作点の組を決定しておく工程を含んでいる構成である、と表現することもできる。
【００５４】
また、本発明に係るマルチプロセッサシステムの制御方法は、上記構成において、処理するべきジョブの処理量を計算する処理量計算工程と、上記処理量計算工程にて計算した処理量に応じて必要な処理能力を見積り、この必要な処理能力に応じて上記選択工程にて選択した上記動作点のうちからさらに選択する動作点を決定する決定工程とを含み、上記ジョブ処理工程が、上記決定工程にて決定した上記動作点を実現するとともに、動作させるプロセッサコアに上記ジョブを均等に分散処理させる分散処理工程である構成であってもよい。また、処理するべきジョブの処理量を計算する処理量計算工程と、上記処理量計算工程にて計算した処理量に応じて必要な処理能力を見積り、この必要な処理能力に応じて上記動作点選択工程にて選択した上記動作点のうちからさらに選択する動作点を決定する動作点決定工程とを含み、上記ジョブ処理工程が、上記動作点決定工程にて決定した上記動作点を実現するとともに、動作させるプロセッサコアに上記ジョブを均等に分散処理させる分散処理工程である構成であってもよい。
【００５５】
上記構成によれば、マルチプロセッサにおける最適なデータ処理を確実に実現できる。
【００５６】
すなわち、上記構成において、処理量計算工程においては、例えば処理するべきデータ量を見積る。また、処理に要する処理時間は、例えば処理の内容に応じて予め決定したものを用いる。例えば画像処理を行って印刷をする場合には、処理時間を、実際の画像形成プロセスの時間制限に合わせて決定すればよい。動作点決定工程においては、例えば処理するべきデータ量を処理時間で除算することによって、必要な処理能力を見積る。そして、見積った処理能力よりも高い処理能力の動作点のうち最適なものを、上述した方法によって抽出する。分散処理工程においては、抽出した最適な動作点および動作プロセッサ数を実現するために、例えば各プロセッサにデータを均等に配分して、均等に処理させる。
【００５７】
なお、各プロセッサの処理能力が異なる場合には、各プロセッサの処理能力に応じて入力するジョブの量、データの量を比例分配すればよい。このような構成は、例えばマルチプロセッサシステムからなる画像処理システムであって、被処理画像を各プロセッサコアに分割して処理させる画像処理システム等に適用することが可能である。
【００５８】
また、上記構成の制御方法を、ジョブの処理が始まる前に予めそのジョブの処理量を予測するステップと、上述の制御方法を用いて動作点を決定するステップと、そのジョブを均等に各プロセッサコアに分散処理させるステップとを含んでいる構成である、と表現することもできる。
【００５９】
また、本発明に係るマルチプロセッサシステムは、上記課題を解決するために、プロセッサコアにクロックを供給するクロック供給部と、上記プロセッサコアに電源電圧を供給する電源電圧供給部と、上記クロック供給部から上記プロセッサコアへの上記クロックの供給のオンオフ及び上記電源電圧供給部から上記プロセッサコアへの上記電源電圧の供給のオンオフの少なくともいずれか一方を制御する制御回路とを備え、上記制御回路が、上述のマルチプロセッサシステムの制御方法における選択工程または上述のマルチプロセッサシステムの制御方法における動作点選択工程によって選択した動作点および動作させるプロセッサコア数の組を保存している記憶部を参照して、上記クロック供給部の供給する上記クロックの周波数を制御し、上記電源電圧供給部の供給する上記電源電圧を制御する構成である。
【００６０】
上記のマルチプロセッサシステムにおいて、クロック供給部からクロックが供給され、電源電圧供給部から電源電圧が供給されることによって、一つのプロセッサが動作する。また、制御回路が、クロック供給部からプロセッサコアへのクロックの供給のオンオフ、または電源電圧供給部からプロセッサコアへの電源電圧の供給のオンオフを制御することによって、複数のうちから動作させるプロセッサが選択される。
【００６１】
ここで、クロックおよび電源電圧が供給されるプロセッサにおいては、プロセッサに供給される電源電圧（動作電圧）およびクロックの周波数（動作周波数）によって、そのプロセッサによる消費電力および処理能力が決定される
そこで、制御回路は、上述のマルチプロセッサシステムの制御方法を用いて決定された動作点および動作させるプロセッサコアの数を参照して、プロセッサに供給する動作電圧および動作周波数を制御する。この状態にてジョブを処理すれば、例えば必要とされる処理能力に対して最小の消費電力でマルチプロセッサシステムを動作させることが可能となる。
【００６２】
また、このようにして予め決定した動作点および動作させるプロセッサコア数の組を、例えばＬＵＴ（ルックアップテーブル）のような記憶部に記憶させて、必要な処理能力を見積った後に記憶部を参照するので、即時に最適な動作点および動作させるプロセッサコア数を得ることができる。また、ジョブ処理工程におけるジョブの処理を妨げることなく、容易に最適な動作点および動作させるプロセッサコア数を得ることができる。
【００６３】
なお、上記マルチプロセッサシステムを、上述のマルチプロセッサシステムの制御方法を用いて、予めマルチプロセッサシステムの動作点の組を決定して保存しているルックアップテーブルを有する構成である、と表現することもできる。
【００６４】
また、本発明に係るマルチプロセッサシステムは、上記構成において、一つの半導体チップ上に構成されている構成であってもよい。
【００６５】
ここで、一つの半導体チップ上に構成されているとは、例えば個別(discrete)の半導体チップを接続基板上でそれぞれ接続したようなものではなく、分離できない一つのチップとして構成されていることを意味する。
【００６６】
上記マルチプロセッサシステムは、上述のマルチプロセッサシステムの制御方法によって決定した動作点にてジョブの処理を行うので、ある処理量に対して最小の消費電力でマルチプロセッサシステムの動作を可能とする。したがって、一つの半導体チップ上に構成されているマルチプロセッサシステムに対しては、最小の発熱量で動作することを可能とする。このため、半導体チップの放熱をより容易なものとし、半導体チップの誤動作や故障の可能性を軽減できる。
【００６７】
また、本発明に係るマルチプロセッサシステムは、上記構成において、投入されたジョブを実際に処理する前にそのジョブの処理量を見積るジョブ処理量見積り部を備え、上記制御回路が、上記ジョブ処理量見積り部によって見積られた上記ジョブの上記処理量に応じて必要な処理能力を算出し、この必要な処理能力に応じて上記記憶部を参照して上記動作点および上記動作させるプロセッサコアの数を決定し、この決定に応じて動作させるプロセッサコアに対して上記ジョブを均等に配分する構成であってもよい。
【００６８】
この構成であれば、必要となる処理能力に対して最適な消費電力でジョブを処理できる。なお、動作させるプロセッサコアに対してジョブを均等に配分するとは、例えば所定の画像データを画像処理する場合に、処理能力が均等なプロセッサコアに対して画像データを均等に配分することを含むものとする。
【００６９】
なお、上述のマルチプロセッサシステムを、ジョブの処理が始まる前に予めそのジョブの処理量を予測し、上述のマルチプロセッサシステムの制御方法を用いて動作点を決定し、そのジョブを均等に各プロセッサコアに分散処理させる制御部をもつ構成である、と表現することもできる。
【発明を実施するための最良の形態】
【００７０】
本発明の一実施の形態について図１ないし図７に基づいて説明すると以下の通りである。
【００７１】
本実施形態に係るマルチプロセッサシステムは、画像形成装置の制御部である。この制御部は、画像処理の際に消費電力を低下させるように所定の設定動作を行う。
【００７２】
本実施形態の画像形成装置１は、図２に示すように、制御部（マルチプロセッサシステム）２、メモリ３、画像読取部４、画像形成部５、通信部６、操作部７を備えている。
【００７３】
制御部２は、画像形成装置１を制御する。本実施形態の制御部２は、一つの半導体チップ上に形成されている。制御部２については後述する。
【００７４】
メモリ３は、画像形成装置１の記憶装置である。
【００７５】
画像読取部４は、原稿の画像を読取るためのものである。画像読取部４は、読取った原稿の画像データを制御部２へと出力する。制御部２が、画像データをメモリ３に記憶させる。
【００７６】
画像形成部５は、画像データに応じて印刷シートに印刷をするためのものである。画像形成部５は、制御部２の制御に応じて、画像形成部５の図示しないトレイに蓄積してある印刷シートを所定のタイミングで搬出する。そして、画像形成部５は、制御部２によってメモリ３から読み出されて所定の画像処理がなされた画像データに応じて、印刷シートに印刷をする。
【００７７】
通信部６は、画像形成装置１の入出力インタフェースである。画像形成装置１は、通信部６を介して外部から入力され、メモリ３に蓄積した画像データを印刷することもできる。また、画像形成装置１は、画像読取部４にて読取った画像データを、通信部６を介して外部へと出力することもできる。
【００７８】
操作部７は、画像形成装置１のユーザインタフェースである。画像形成装置１は、操作部７において検出するユーザの指示に応じて、例えば画像読取部４による原稿の読取りや、画像形成部５による印刷を行う。
【００７９】
ここで、制御部２について詳細に説明する。本実施形態の制御部２は、画像読取部４によって読取られメモリ３に蓄積された画像データに所定の画像処理を行う画像処理部として機能する。この制御部２は、以下のように、画像処理の際に消費電力を低下させるための縮退動作を行う。ここで、縮退動作とは、消費電力を縮小するために、処理能力を必要に応じて縮小する動作である。
【００８０】
制御部２は、図２に示すように、制御回路１０、ジョブ処理量見積り部１１、動作点ＬＵＴ（記憶部）１２、ＰＬＬ（クロック供給部）１３、発振回路（クロック供給部）１４、プログラマブル電源（電源電圧供給部）１５、Ｇａｔｉｎｇ回路１６ａ〜１６ｄ、およびプロセッサコア（プロセッサ）１７ａ〜１７ｄを備えている。この制御部２には、所定の制御回路１０を介して制御信号が入出力され、またバスラインＢを介してデータ信号が入出力される。
【００８１】
制御回路１０は、制御部２の制御を行うものである。制御回路１０については後述する。
【００８２】
ジョブ処理量見積り部１１は、画像処理部としての制御部２が処理するべきジョブの量を、ジョブの投入後、実際の処理の前に予め見積るための処理部である。
【００８３】
動作点ＬＵＴ(Look Up Table)１２は、記憶素子である。本実施形態の動作点ＬＵＴ１２には、所定の選択処理によって選択された動作点、およびその動作点を実現する際に動作させるプロセッサの個数の組が、ルックアップテーブル（ＬＵＴ）として記憶されている。動作点ＬＵＴ１２に記憶させる内容の選択処理については後述する。制御回路１０が、動作点ＬＵＴ１２にアクセスし、記憶されている動作点の組などを抽出し、必要な処理能力に応じて最適な動作点を選択するようになっている。
【００８４】
ＰＬＬ(Phase Locked Loop：位相同期ループ)１３は、発振回路１４より出力されるクロック周波数を変更（所望のＡ／Ｂ倍）するものである。発振回路１４は、所定の周波数のクロックを発振する。
【００８５】
プログラマブル電源１５は、所望の電源電圧を出力するものである。Ｇａｔｉｎｇ回路１６ａ〜１６ｄは、制御回路１０からの制御信号（イネーブル信号）に応じて、ＰＬＬ１３からプロセッサコア１７ａ〜１７ｄにそれぞれ供給されるクロックを、それぞれオンオフする。
【００８６】
プロセッサコア１７ａ〜１７ｄは、供給されるクロック周波数（動作周波数）および電源電圧（動作電圧）に応じた所定の処理能力にて処理を行うプロセッサである。本実施形態の各プロセッサコア１７ａ〜１７ｄは、それぞれ同じ処理能力を有している。本実施形態においては、各プロセッサコア１７ａ〜１７ｄには、上述のように、互いに同じ電源電圧、互いに同じ周波数のクロックが供給される。また、各プロセッサコア１７ａ〜１７ｄは、バスラインＢにて互いに接続されている。
【００８７】
ここで、制御回路１０について説明する。制御部２において画像処理を行う場合に、本実施形態の制御回路１０は、画像処理に必要となる処理能力を見積った上で、必要となる処理能力に応じた最も消費電力の少ない動作点、使用プロセッサ数を選択して、各プロセッサコア１７ａ〜１７ｄに処理を行わせる。処理能力の見積りなどについては後述する。
【００８８】
制御回路１０は、必要とされる処理能力に応じて、あるいは動作させたい消費電力に応じて、ＰＬＬ１３を制御して、動作周波数を調整する。また、制御回路１０は、プログラマブル電源１５を制御して、動作電圧を調整する。また、制御回路１０は、Ｇａｔｉｎｇ回路１６ａ〜１６ｄへの制御信号によって、各プロセッサコア１７ａ〜１７ｄのオンオフを制御する。
【００８９】
一方、ＰＬＬ１３は、発振回路１４からのクロック信号を、制御回路１０からの制御信号に応じた所望の周波数に変更してＧａｔｉｎｇ回路１６ａ〜１６ｄに出力する。また、プログラマブル電源１５は、制御回路１０からの制御信号に応じた所望の出力電圧をプロセッサコア１７ａ〜１７ｄにそれぞれ出力する。
【００９０】
ここで、Ｇａｔｉｎｇ回路１６ａ〜１６ｄには、ＰＬＬ１３からのクロック信号に加えて、制御回路１０からの制御信号（Enable(イネーブル)信号）が入力されている。この制御回路１０からの制御信号に応じて、Ｇａｔｉｎｇ回路１６ａ〜１６ｄからプロセッサコア１７ａ〜１７ｄへの供給信号（クロック）が、以下のようにオンオフする。
【００９１】
ここで、Ｇａｔｉｎｇ回路１６ａ〜１６ｄの構成の一例をＧａｔｉｎｇ回路１６として図３に示す。Ｇａｔｉｎｇ回路１６は、図３に示すように、マスクレジスタおよびアンドゲートよりなる。このＧａｔｉｎｇ回路１６における駆動信号（入力信号、出力信号）の一例を、図４のタイミングチャートに示す。
【００９２】
マスクレジスタには、ＰＬＬ１３からのクロック信号(SystemCLK)の反転信号と、制御回路１０からのイネーブル信号(Enable)とが入力される。イネーブル信号をクロック信号の反転信号に応じて遅延させて出力するので、マスクレジスタの出力は、図４のタイミングチャートに示すEnableOut信号となる。マスクレジスタの出力は、アンドゲートの一方の端子に入力される。アンドゲートの他方の端子には、ＰＬＬ１３からのクロック信号(SystemCLK)が入力される。これによって、アンドゲートの出力は、図４のタイミングチャートに示すPeCLK信号となる。このアンドゲートの出力が、プロセッサコア１７ａ〜１７ｄの構成の一例としてのプロセッサコア１７のクロックピンに供給される。
【００９３】
このようにして、プロセッサコア１７ａ〜１７ｄへの供給信号を、制御回路１０からのイネーブル信号によってオンオフできる。プロセッサコア１７ａ〜１７ｄのうち、クロック供給の停止されたプロセッサコアは、動作せず、処理に用いることができない。このプロセッサコアは、動作しないので、電力を消費しない。
【００９４】
以上の動作によって、制御回路１０によって選択された動作周波数、動作電圧にて、制御回路１０によって選択された個数のプロセッサが動作して、処理を行う。
【００９５】
次に、制御部２において実行する画像処理に必要とされる処理能力の見積りについて説明する。ここで、必要な処理能力は、処理するべきデータ量を、処理に用いることのできる処理時間で除算することによって得られる。
【００９６】
制御回路１０は、ジョブとしての画像処理の実行に関して、処理量および処理の内容に応じて、制御部２にて処理に用いることのできる処理時間を決定する。例えば、処理量および処理の内容に応じて、予め用いることのできる処理時間を決めておき、図示しない記憶部に記憶させ、制御回路１０がその処理時間を記憶部から読み出すようにする。また、例えば印刷シート一枚分の画像データの画像処理を、印刷に用いるために行う場合には、実際の画像形成プロセスの時間制限に合わせて、その時間制限を、処理に用いることのできる処理時間とすればよい。このように、制御部２にとっての外部的な要因によって処理時間を決定してもよい。
【００９７】
一方、ジョブ処理量見積り部１１が、ジョブ処理量、データサイズを見積る。本実施形態のジョブ処理量見積り部１１は、メモリ３にアクセスして、印刷するべき画像データのサイズを見積もり、得たジョブ処理量を制御回路１０に送信する。
【００９８】
制御回路１０は、ジョブ処理量を処理時間にて除算して、必要な処理能力を得る。制御回路１０は、動作点ＬＵＴ１２にアクセスして、処理能力に応じて予め決定した、最適な動作点および最適なプロセッサの個数を得る。
【００９９】
制御回路１０は、上述のようにＰＬＬ１３およびプログラマブル電源１５を制御して、最適な動作周波数および最適な動作電圧を実現する。また、制御回路１０は、上述のように、Ｇａｔｉｎｇ回路１６ａ〜１６ｄへのイネーブル信号によって、最適なプロセッサの個数を実現する。
【０１００】
さらに、制御回路１０は、設定した動作プロセッサコア数に応じて、処理するべきデータを均等に分割し、動作させるプロセッサコアにそれぞれ配分する。これによって、動作させるプロセッサコアに対して、処理を均等配分する。画像データ配分の一例を、図５の模式図を参照して説明する。
【０１０１】
例えば、プロセッサコア１７ａ〜１７ｄの４つ全てを用いる場合には、制御部２は、図５に示す画像データＤを、切断線Ｌ１，Ｌ３，Ｌ５にて示すように４つに均等分割する。また、例えばプロセッサコア１７ａ〜１７ｄのうちの３つを用いる場合には、画像データＤを、切断線Ｌ２，Ｌ４にて示すように３つに均等分割する。
【０１０２】
制御回路１０は、均等に分割した画像データを、図示しない経路を介してバスラインＢへと出力し、所望のプロセッサコアへと送信する。
【０１０３】
各プロセッサコア１７ａ〜１７ｄのうち、制御回路１０からのイネーブル信号が入力されるプロセッサコアにおいては、配分された画像データに対して、それぞれ同じ種類の画像処理を行う。このようにすれば、プロセッサコアでの処理の均等を確実に実現できる。
【０１０４】
このように、ジョブ処理量見積り部１１により見積られた処理量より、予め縮退動作の動作点を選択して保持してある動作点ＬＵＴ１２を参照することによって、動作周波数・動作電圧・動作プロセッサコア数を即時に適切に決めることが可能となる。そして、その決定結果に基づいて、制御回路１０により、適切に動作周波数・動作電圧・動作プロセッサコア数を設定する。
【０１０５】
次に、上記構成の制御部２が最適な動作点などを選択するために、予め最適な動作点の組を決定して動作点ＬＵＴ１２に記録する方法について説明する。
【０１０６】
ここで、ある一つのプロセッサの消費電力Ｐは、動作電圧をV、動作周波数をf、容量(内部容量と負荷容量の和)をCとすると、Ｐ = C×V2×fで与えられる。
【０１０７】
本実施形態の制御部２においては、プロセッサコア一つ当りの容量をCpeとする。また、全てのプロセッサコアが均一であると仮定し、使用しているプロセッサコアの数をmとする。すなわち、全消費電力が各プロセッサコアの消費電力の和と一致する（完全比例する）モデルを用いる。また、各プロセッサコアが斉一な対称型マルチプロセッシングの場合を考える。このとき、制御部２における消費電力はP = Cpe×V2×f×m で与えられる。このように、制御部２は、使用していないプロセッサコアへのクロック入力を止めることのできるマルチプロセッサシステムである。
【０１０８】
本実施形態の制御部２に、３つの動作モードを設定する場合について説明する。ここで、動作モードとは、動作電圧と動作周波数とからなる動作点の集合を表すものとする。
【０１０９】
まず始めに、通常の動作モード（mode1）と、それとは異なる動作モード（mode2：低消費電力モード）との二つの動作モードについて説明する。
【０１１０】
各モード（mode1,mode2）の動作点、動作させるプロセッサ数は、以下の表１に示すように設定する。
【０１１１】
【表１】
2005085164.tif 000003
ここで、各モードの動作周波数の比を表すrf、動作電圧の比を表すrvは、それぞれ 0<rf<1、 0<rv<1 を満たす。この条件の下で、それぞれのモードにおける処理性能と消費電力と見積ると、以下の表２のようになる。
【０１１２】
【表２】
2005085164.tif 000004
ここで、Xpeとは、１つのプロセッサコアが通常モードで動作したときの処理能力である。また、Ｃpeとは、プロセッサコアの静電容量である。このように、消費電力は、周波数に比例し、かつ、電圧の２乗に比例する。一方、処理能力は、クロックの速さに比例するので、実質的に周波数に比例する。
【０１１３】
本実施形態の制御部２の３つの動作モードについて、ここでは簡単のために、各動作モードは一つの動作点を有するものとする。そして、mode1, mode2, mode3がそれぞれ(動作周波数, 動作電圧) = (700MHz, 1.65V), (500MHz, 1.5V), (300MHz, 1.25V)の動作点を有するものとする。この３つの動作点の値は、TransmetaによるCrusoeのLongRun Technologyにて実際に用いられている値を使用した。そして、この場合の処理能力と消費電力との関係について、１個のプロセッサコアのmode1での処理能力・消費電力がともに１となるように正規化したグラフを図６に示す。
【０１１４】
点m11、m12、m13、m14は、それぞれmode1において、用いるプロセッサコア数を１，２，３，４とした場合の処理能力・消費電力を示す。点m21、m22、m23、m24は、それぞれmode2において、用いるプロセッサコア数を１，２，３，４とした場合の処理能力・消費電力を示す。点m31、m32、m33、m34は、それぞれmode3において、用いるプロセッサコア数を１，２，３，４とした場合の処理能力・消費電力を示す。
【０１１５】
図６のグラフより、消費電力・処理性能ともにmode1よりmode2が有利になる(あるいはmode2よりmode3が有利になる)状態が存在することが分かる。
【０１１６】
すなわち、例えば点m12と点m23とを比較すると、消費電力と処理能力とがともに近い値であるものの、点m23の方が点m12に比べて消費電力が少ない上に処理能力が大きい。すなわち、この場合には、処理性能および消費電力が、ともに、低い動作周波数と低い動作電圧の動作点の方が有利になる。また、例えば、点m22と点m34とについても同様のことが言える。
【０１１７】
このように、処理性能および消費電力が、ともに低い動作周波数と低い動作電圧の動作点の方が有利になる場合の条件について、表２に基づいて考察する。
【０１１８】
表２によれば、この場合の条件は、消費電力について P1 > P2 、かつ処理能力について X1 ≦ X2 で表すことができる。すなわち、
Cpe×V2×f×m1 > Cpe×(rv×V)2×(rf×f)×m2                  （式１）
Xpe×m1 ≦ Xpe×m2×rf                                      （式２）
である。ここで、式１、式２ともに、正の数を用いているので、式１より
m1 > rv2×rf×m2、
式２より
m1 ≦ rf×m2
を得ることができる。したがって、上記の条件を一つにまとめると、
rv2×rf < m1/m2 ≦rf                                        （式３）
となる。すなわち、式３の条件が成立する場合には、低消費電力モードであるmode2を利用した方が、処理能力を同等以上としたまま消費電力を低減できるので、マルチプロセッシングシステムの資源を有効に活用することができる。そこで、式３の条件が成立する場合には、mode1の動作点ではなくmode2の動作点を選択する。そして、その動作点、動作プロセッサコア数などを動作点ＬＵＴ１２に記憶させる。また、動作点ＬＵＴ１２に、その動作点、動作プロセッサコア数を選択した場合に得られる処理能力、消費電力を記憶させてもよい。
【０１１９】
以上の考察に基づいて、本実施形態の制御部２においては、予め、最適な動作点、プロセッサ数の組を以下のように選択して、動作点ＬＵＴ１２に記憶させる。簡単にいうと、本実施形態の制御部２は、図６に示す動作点、プロセッサ数のうち、領域Ｒに含まれる動作点、プロセッサ数を選択して、動作点ＬＵＴ１２に記憶させる。ここで、領域Ｒは、同じ処理能力であってもより消費電力の低い動作点、プロセッサ数を含んでいる領域である。
【０１２０】
図６における領域Ｒの選択は以下のように行う。まず、最も消費電力が少ないと見込まれる、最も動作電圧が低く、かつ動作周波数も低い動作点(mode3)について考える。この動作点は消費電力が少ないので、必要とされる処理能力をプロセッサコア数の変化によって達成できるならば、できるだけこの動作点を選択することが好ましい。これによって、図６に示す点m31,m32,m33,m34が選択される。
【０１２１】
なお、このように選択を行うのは、半導体デバイスの性質により、動作電圧を上げると動作周波数も上がることに加え、マルチプロセッサシステムの消費電力は電圧の２乗と周波数の積に比例して上昇していく一方、処理能力の方は周波数に比例して上昇するためである。すなわち、動作電圧および動作周波数の低い方が、同じ処理能力であっても消費電力が小さいと見込まれるからである。このため、必要な処理能力を得ることができる限りは、動作電圧および動作周波数の低い方を選択する方が有利になる。
【０１２２】
ここで、最も消費電力の少ない動作点(mode3)における、最大のプロセッサコア数の場合、すなわち点m34を考える。そして、この点よりも処理能力の低い、他の動作点の組については、消費電力を増加させてしまうので、用いないようにする。すなわち、図６においては、点m21,m22,m11は用いず、領域Ｒの外側にくるようにする。このようにすれば、必要とされる処理能力が点m34における処理能力よりも小さい範囲において、プロセッサコア数によらずに、確実に、最も消費電力の少ない動作点を選択できる。
【０１２３】
なお、このように集合Ａ１＝｛点m31,m32,m33,m34｝を選択する一方で集合Ｂ１＝｛点m21,m22,m11｝を用いないようにする選択方式は、上述の式３による判定条件をも満たしている。すなわち、集合Ａ１から選択した動作点、動作プロセッサコア数によって得られる消費電力をＰ１、処理能力をＸ１とし、集合Ｂ１から選択した動作点、動作プロセッサコア数によって得られる消費電力をＰ２、処理能力をＸ２とした場合に、消費電力について P1 > P2 、かつ処理能力について X1 ≦ X2 が満たされ、したがって、これと同値な式３を満たしていることが明らかである。
【０１２４】
そして、次に周波数が低く、次に消費電力の少ない動作点(mode2)について考える。この動作点については、上述のように用いないと決定した動作点m21,m22以外の動作点、すなわち点m34の処理能力よりも処理能力の高い動作点を全て選択する。すなわち、点m23,m24を選択する。このようにすれば、最も消費電力の少ない動作点では実現できない処理能力についても、選択しうる組み合わせの中で最適な消費電力の動作点を選択できる。
【０１２５】
ここで、この動作点(mode2)における、最大のプロセッサコア数の場合、すなわち点m24を考える。そして、この点よりも処理能力の低い、未選択の他の動作点の組については、消費電力を増加させてしまうのみなので、用いないようにする。すなわち、図６においては、点m12は用いず、領域Ｒの外側にくるようにする。このようにすれば、必要とされる処理能力が点m24における処理能力よりも小さい範囲において、プロセッサコア数によらずに、確実に、最も消費電力の少ない動作点を選択できる。この場合も、集合Ａ２＝｛点m23,m24｝を選択する一方で集合Ｂ２＝｛点m12｝を用いないようにする選択方式は、上述の理由と同じ理由によって、上述の式３による判定条件をも満たしている。
【０１２６】
次に、mode1については、上述のように用いないと決定した動作点m11,m12以外の動作点、すなわち点m24の処理能力よりも処理能力の高い動作点を全て選択する。すなわち、点m13,m14を選択する。
【０１２７】
以上のような手順によって選択された点m31,m32,m33,m34,m23,m24,m13,m14を含むようにした領域Ｒを、図６に示した。また、領域Ｒは点m21,m22,m11,m12を含まないようにした。
【０１２８】
このように、より低い消費電力(より低動作電圧で、より低動作周波数)の動作点、プロセッサ数の組(動作モード)における最大のプロセッサコア数で動作したときの処理能力を下回る処理能力に相当する、より高い消費電力の動作モードでの動作点、プロセッサ数の組は、縮退動作の動作点として選択しないようにする。
【０１２９】
一方、消費電力の低い動作点、プロセッサの組(動作モード)を選択する。また、消費電力の高い動作モードでの動作点、プロセッサ数の組は、消費電力の低い動作点、プロセッサ数の組のうちの最大プロセッサ数における処理能力よりも高い処理能力を有するときに選択する。これによって、処理能力と消費電力の両方に鑑みて最適の動作点を決定することができる。
【０１３０】
以上のような制御部２における処理を、図７に基づいて説明する。例えば、画像形成装置１において、画像読取部４にて原稿画像を読取り、得た画像データを制御部２にて画像処理して画像形成部５にて印刷する場合に、制御部２は以下のように動作する。
【０１３１】
制御部２において、画像読取部４にて読取った原稿の画像データを制御回路１０がメモリ３から読み出して、ジョブ処理量見積り部１１が必要なジョブ処理量、データサイズを見積る（Ｓ１）。
【０１３２】
また、画像形成装置１における画像形成プロセスの速度に応じて、制御回路１０が、制御部２において処理に用いることのできる処理時間を決定し、ジョブ処理量見積り部１１から得たジョブ処理量および決定した処理時間を用いて、必要な処理能力を算出する（Ｓ２）。本実施形態の画像形成装置１においては、処理時間は予め図示しない記憶部に記憶され、制御回路１０が記憶部にアクセスし、処理の内容に応じた処理時間を得るものとする。
【０１３３】
制御回路１０は、必要な処理能力に応じて、最適な動作点、動作プロセッサ数を、それぞれ動作点ＬＵＴ１２から抽出する（Ｓ３、Ｓ４）。ここで、例えば所定の動作点・動作プロセッサ数によって得られる処理能力および消費電力についても、動作点ＬＵＴ１２に保存されている場合には、必要な処理能力よりも処理能力の高い動作点・動作プロセッサ数のうち、最も消費電力の低い動作点・動作プロセッサ数の組を選択する。また、動作点ＬＵＴ１２に処理能力および消費電力が記憶されていない場合には、動作点・動作プロセッサ数に基づいて新たに処理能力および消費電力を計算し、必要な処理能力よりも処理能力の高い動作点・動作プロセッサ数のうち、最も消費電力の低い動作点・動作プロセッサ数を選択する。
【０１３４】
以上のように選択した動作点、動作プロセッサ数を、以下のように実現する。制御回路１０は、動作点ＬＵＴ１２から抽出した動作点を実現するために、ＰＬＬ１３およびプログラマブル電源１５に制御信号を出力する。また、制御回路１０は、用いるプロセッサの数に応じて、例えば図５に示すように画像データを分割する。制御回路１０は、この分割したデータを、図示しない経路を介して図１に示すバスラインＢから各プロセッサコア１７ａ〜１７ｄに配分する。
【０１３５】
各プロセッサコア１７ａ〜１７ｄには、分割されたデータが入力される。また、各プロセッサコア１７ａ〜１７ｄには、制御回路１０によって制御され、変更された、最適な動作周波数のクロック、および動作電圧が供給される。これによって、各プロセッサコア１７ａ〜１７ｄにおいては、必要な処理能力を満たす、最も消費電力の少ない、すなわち最適な処理がなされる。
【０１３６】
以上のように、本実施形態に係る画像形成装置１は、マルチプロセッサシステムとしての制御部２を備えている。制御部２は、同じ処理能力でも消費電力の少ない方、または処理能力が大きくかつ消費電力の少ない方の動作点、プロセッサ数を選択する。動作点ＬＵＴ１２には、実際のジョブの処理の前に予め計算して選択された動作点（動作周波数、動作電圧）と動作プロセッサ数の組を、テーブルとして記憶している。また、テーブルに、その場合の処理能力、消費電力を含めてもよい。そして、実際の処理の際には、制御回路１０が動作点ＬＵＴ１２に記憶されたテーブルを読み出して、必要となる処理能力よりも高い処理能力に相当する動作点のうち、消費電力が最も小さいものを選択し、その動作点とプロセッサ個数とを抽出する。これによって、見積りによって得た、必要とされる処理能力に応じた、最適な（最も消費電力の少ない）動作点・動作プロセッサ数を、即時に得ることができる。
【０１３７】
また、この動作点・動作プロセッサ数をプロセッサコア１７ａ〜１７ｄについて実現させるとともに、動作させるプロセッサコアに均等にデータを配分するので、均等な処理を実現できる。
【０１３８】
なお、上述の実施の形態においては、同じ処理能力を持つ各プロセッサコア１７ａ〜１７ｄに対してデータを均等配分することによって処理を均等配分する構成について説明しているが、本発明はこれに限るものではない。例えば、各プロセッサコアの処理能力が同じでない場合であっても、処理能力に応じて入力画像データの入力量を比例分配すれば、同様に扱うことが可能となる。
【０１３９】
また、上述の実施の形態においては、各プロセッサコアに被処理画像データを分割分配する処理を、制御回路１０が行うものとしたが、これに限るものではない。例えば、マルチプロセッサシステムの中の一つのプロセッサコアをマスターとし、他のコアをスレーブとし、マスターであるプロセッサコアに被処理画像データの分割処理を実行させる構成であってもよい。また、他に専用の回路ブロックを設ける構成であってもよい。
【０１４０】
また、上述の実施の形態において説明した制御部２は、各プロセッサコア１７ａ〜１７ｄに対して別の制御回路１０から制御信号が送信される構成であるが、制御部２はこの構成に限るものではなく、例えば各プロセッサコア１７ａ〜１７ｄのうちの一つをマスターとし他をスレーブとする、マスタースレーブ構成であってもよい。
【０１４１】
また、上述の実施の形態においては、制御部２が各プロセッサコア１７ａ〜１７ｄにデータを均等配分することによって処理を均等配分する構成について説明した。ただし、処理の均等配分を行う構成はこれに限るものではなく、例えば、マルチプロセッサシステムに実装されるOperating Systemによって、処理の均等配分を実現することもできる。
【０１４２】
また、上述の実施の形態において説明したジョブ処理量見積り部１１と動作点ＬＵＴ１２とは、上述の構成に限るものではない。マルチプロセッサシステムをマスタースレーブ構成にとる場合には、マスターとなるプロセッサコアにジョブ処理量見積り部１１の機能を実行させ、図示しない記録部に動作点ＬＵＴ１２の機能を担当させてもよい。
【０１４３】
なお、上述のマルチプロセッサシステムは、プロセッサに、図示しない記憶媒体に記録されたプログラム（マイクロプログラム）を読み込ませて実行させることによって制御回路１０として機能させるものであってもよい。この構成であれば、プログラムを変更することによって、制御回路１０の制御の詳細を容易に変更することができる。また、上述の制御部２において、動作点ＬＵＴ１２に記憶されたテーブルの内容を変更することによって、制御回路１０の選択結果を変更することができる。
【０１４４】
また、上述の実施の形態においては、制御部２において制御回路１０とＧａｔｉｎｇ回路１６ａ〜１６ｄとを用いてプロセッサコア１７ａ〜１７ｄへのクロック供給をオンオフする構成について説明したが、これに限るものではなく、制御回路１０とスイッチ（スイッチング素子）とを用いてプログラマブル電源１５からプロセッサコア１７ａ〜１７ｄへの電源供給をオンオフしてもよい。
【０１４５】
以上のように、本発明は、複数個のプロセッサを動作させるマルチプロセッサシステムの制御方法、マルチプロセッサシステムに関するものである。また、本発明は、複数のプロセッサコアを有するマルチプロセッサシステムにおいて、各プロセッサコアへのクロック供給制御手段とマルチプロセッサシステムへの可変周波数クロック供給手段と、マルチプロセッサシステムへの可変動作電圧供給手段を有する場合において、消費電力と処理性能の両方に鑑みて最良の動作点を決定する制御方法およびマルチプロセッサシステムに関するものである、と表現することもできる。
【０１４６】
ここで、従来、半導体技術の急速な進展に伴って、一つのＬＳＩに内蔵されるゲート数は飛躍的に増大し、複数のプロセッサコアをワンチップに搭載したＣＭＰが用いられるようになっている。例えば、ＣＭＰは既にＩＢＭの「POWER4」やＳＵＮの「MAJC-5200」に採用されており、さらにIntel(登録商標)でもその採用が検討されている。
【０１４７】
他方において、電子機器に関する消費電力の削減が、重要課題となっている。これは、一つにはバッテリ駆動式の電子機器においては、バッテリの駆動時間に関連して消費電力が重要な問題となるからである。たとえば、ノート型パーソナルコンピュータにおいて、Intel(登録商標)のSpeedStep Technologyが採用されているものがある。このSpeedStep Technologyは、バッテリ駆動時はＡＣ電源駆動時よりもＣＰＵの動作電圧と動作周波数を下げるようにしてＣＰＵの消費電力を削減し、バッテリ駆動時間を増大させる技術である。さらには同様の技術として、TransmetaのLongRun Technology等がある。
【０１４８】
また、商用電源で無尽蔵に駆動できる電子機器においても、資源有限という社会生態学的な観点や地球の温暖化抑止という観点から省電力化が推奨されている。
【０１４９】
さらには、ゲート数の飛躍的な増大により、ＬＳＩの発熱量は膨大なものとなってきている。大きな発熱は電子機器の機能劣化や故障の原因となるために、ＬＳＩには、一般に、消費電力を低減し発熱を抑制することも求められている。
【０１５０】
ここで、上述の特許文献４（特開2002−99433号公報）には、プロセッサごとにＰＬＬと電源とを備えた構成が開示されている。すなわち、それぞれのプロセッサコアの動作電圧と動作周波数を別個に設定することができるマルチプロセッサシステムが提案されている。これにより、非常に高い柔軟性を持って、マルチプロセッサシステムの電力削減が可能となる。
【０１５１】
しかしながら、この構成においては、少なくともＰＬＬとプログラマブル電源とが、プロセッサコアと同じ数だけ必要となる。したがって、コンシューマ製品への応用はコスト面において困難であり、高価なシステムに向けてでないと当該特許の応用は難しい。さらには、各プロセッサコアに均等に処理を割り当てるマルチプロセッサシステムに対しては、当該特許の発明は大きなコストの上昇を招くために、最適な解となりえない。また、実際に最適な値を決めるための方法が開示されていない。
【０１５２】
そこで、上述のように、各プロセッサコアに均等に処理を割り当てるマルチプロセッサシステムにおいて、処理能力と消費電力を鑑みて最適な動作点を決定して、それを用いるようにした。
【０１５３】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる構成についても、本発明の技術的範囲に含まれる。
【０１５４】
上述の具体的な実施形態または実施例は、あくまでも、本発明の技術内容を明らかにするものであって、本発明はそのような具体例にのみ限定して狭義に解釈されるべきものではなく、特許請求の範囲に示した範囲で種々の変更が可能であり、変更した形態も本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１５５】
マルチプロセッサシステムは、上述のように画像処理を行う画像形成装置に適用することもできる。
【図面の簡単な説明】
【０１５６】
【図１】本発明に係るマルチプロセッサシステムの一実施の形態を示すブロック図である。
【図２】上記マルチプロセッサシステムを含んでいる画像形成装置の一例を示すブロック図である。
【図３】上記マルチプロセッサシステムの一部を示す論理回路図である。
【図４】図３に示す論理回路の入出力特性を示すタイミングチャートである。
【図５】上記マルチプロセッサシステムによる画像処理におけるデータ配分を説明するための図である。
【図６】上記マルチプロセッサシステムにおいて選択される動作点、プロセッサ個数を説明するためのグラフである。
【図７】上記マルチプロセッサシステムにおける動作点、プロセッサ個数の選択を説明するためのフローチャートである。
【図８】従来のマルチプロセッサシステムの一例を示すブロック図である。
【図９】従来のマルチプロセッサシステムの他の一例を示すブロック図である。
【図１０】図８または図９に示すマルチプロセッサシステムにおける処理能力と消費電力との関係を示すグラフである。
【図１１】従来のマルチプロセッサシステムのさらに他の一例を示すブロック図である。
【図１２】図１１に示すマルチプロセッサシステムにおける処理能力と消費電力との関係を示すグラフである。
【符号の説明】
【０１５７】
１                画像形成装置
２                制御部（マルチプロセッサシステム）
１０              制御回路
１１              ジョブ処理量見積り部
１２              動作点ＬＵＴ（記憶部）
１３              ＰＬＬ（クロック供給部）
１４              発振回路（クロック供給部）
１５              プログラマブル電源（電源電圧供給部）
１６ａ〜１６ｄ    Ｇａｔｉｎｇ回路
１７ａ〜１７ｄ    プロセッサコア（プロセッサ）
【図１】
2005085164.tif 000005
【図２】
2005085164.tif 000006
【図３】
2005085164.tif 000007
【図４】
2005085164.tif 000008
【図５】
2005085164.tif 000009
【図６】
2005085164.tif 000010
【図７】
2005085164.tif 000011
【図８】
2005085164.tif 000012
【図９】
2005085164.tif 000013
【図１０】
2005085164.tif 000014
【図１１】
2005085164.tif 000015
【図１２】
2005085164.tif 000016