(57)【要約】【課題】消費電力が最適化された分散処理型の低消費電力性マルチプロセッサシステムにおいて、低消費電力性の特徴を活かしつつ、割り込み処理の負荷分散を効率的に行う事を目的とする。【解決手段】プロセッサの消費電力の閾値を設けて各プロセッサの消費電力と比較し、閾値範囲内のプロセッサの中で最も消費電力の低いプロセッサに対して割り込み要求を出力することで、システム全体の低消費電力性を維持しつつ、負荷分散を効率的に行う。【選択図】図２
2007172322.tif 000002
【特許請求の範囲】
【請求項１】
入出力処理を行うプロセッサを、所定の規則にしたがって複数プロセッサの中から選択する分散処理型マルチプロセッサシステムにおいて、
前記入出力装置からの割り込みを受け付ける割り込み受付部と、
前記プロセッサの消費電力を算出するプロセッサ消費電力算出部と、
前記プロセッサ消費電力算出部より取得した前記プロセッサの消費電力情報をもとに割り込み出力先プロセッサを選択するプロセッサ選択部と、
前記プロセッサ選択部により選択された前記プロセッサに対して割り込みを出力する割り込み出力部と、
前記プロセッサの動作電圧値を保持する電圧レジスタと、
前記プロセッサの動作周波数を保持する動作周波数レジスタとを有し、
前記プロセッサ消費電力算出部は、前記電圧レジスタと前記動作周波数レジスタの値をもとに消費電力を算出し、
前記プロセッサ選択部は、消費電力の最も低いプロセッサを選択することを特徴とする分散処理型マルチプロセッサシステム。
【請求項２】
プロセッサの消費電力閾値を設定する消費電力閾値レジスタを有し、
前記プロセッサ選択部のプロセッサ選択方法が、
前記消費電力閾値レジスタに設定された閾値範囲外の消費電力であるプロセッサを選択候補から除外するステップと、
選択候補に残ったプロセッサの中から消費電力の最も低いプロセッサを選択するステップと
を含むことを特徴とする請求項１に記載の分散処理型マルチプロセッサシステム。
【請求項３】
入出力処理を行うプロセッサを、所定の規則にしたがって複数プロセッサの中から選択するマルチプロセッサ割り込み制御装置において、
前記入出力装置からの割り込みを受け付ける割り込み受付部と、
前記プロセッサの消費電力を算出するプロセッサ消費電力算出部と、
前記プロセッサ消費電力算出部より取得した前記プロセッサの消費電力情報をもとに割り込み出力先プロセッサを選択するプロセッサ選択部と、
前記プロセッサ選択部により選択された前記プロセッサに対して割り込みを出力する割り込み出力部とを有し、
前記プロセッサ選択部のプロセッサ選択方法が、消費電力の最も低いプロセッサを選択するステップを含むことを特徴とするマルチプロセッサ割り込み制御装置。
【請求項４】
消費電力閾値レジスタに設定された閾値範囲外の消費電力であるプロセッサを選択候補から除外するステップと、
選択候補に残ったプロセッサの中から消費電力の最も低いプロセッサを選択するステップとを含むことを特徴とする請求項３に記載のマルチプロセッサ割り込み制御装置。
【請求項５】
入出力装置からの割り込みを受け付ける割り込み受付工程と、
プロセッサの消費電力を算出するプロセッサ消費電力算出工程と、
前記プロセッサ消費電力算出工手にて取得した前記プロセッサの消費電力情報をもとに割り込み出力先プロセッサを選択するプロセッサ選択工程と、
前記プロセッサ選択工程により選択された前記プロセッサに対して割り込みを出力する割り込み出力工程と
を有することを特徴とする分散処理型マルチプロセッサ制御方法。
【請求項６】
請求項５に記載の方法の各工程をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、SoC(System on Chip)におけるマルチプロセッサコアを含めたマルチプロセッサ割り込み処理分散制御システム、及び制御方法、マルチプロセッサ割り込み制御装置及びプログラムに関する。特に、プロセッサの消費電力情報をもとに複数プロセッサの中から入出力処理を行うプロセッサを選択する方式に関する。
【背景技術】
【０００２】
従来、多くのマルチプロセッサシステムにおいて、入出力装置からの割り込み要求を処理する方法として、特定のプロセッサで割り込み要求を集中して処理を行う方式か、複数のプロセッサに対して割り込み要求を同報通知する方式がとられていた。また、割り込み要求を分散する方式として例えば、特開平９−８１５２８公報(以下、先行技術１とする)では、時間的に連続的に変化するプロセッサ単位のメモリアクセス回数を、割り込み処理プロセッサの選択決定要因とする技術が提案されている。特開平１１−３４５１３５公報(以下、先行技術２とする)では、プロセッサが出力するアイドル信号とビジー信号からプロセッサの負荷率を計測し、負荷率と割り込み条件とを比較して条件に適合したプロセッサに割り込み要求を伝達する技術が提案されている。
【０００３】
【特許文献１】特開平９−８１５２８号公報
【特許文献２】特開平１１−３４５１３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
分散処理型のマルチプロセッサシステムにおいて、入出力装置からの割り込み要求を特定のプロセッサが集中して処理する方式では、特に割り込み処理が高負荷な状況において、割り込み処理部分がシステムのボトルネックになる。
【０００５】
また、入出力装置からの割り込み要求を複数プロセッサに対して同報通知する方式では、各プロセッサにおいて、バスの獲得処理と割り込み要因の判定処理が発生する。そのため最初に割り込み要求を処理したプロセッサ以外のプロセッサが関わる部分の処理は全く無駄になってしまい、プロセッサリソースやバス帯域を浪費し、システム全体の性能低下につながる。
【０００６】
これらの課題に対して、先行技術１や先行技術２において、各プロセッサの負荷状況に応じて割り込み要求の分散を行う技術が提案されている。
しかし近年、SoC(System on Chip)技術の発達によりマルチプロセッサコアの1チップ化が進んでおり、それに伴い各プロセッサコアの消費電力の低減とシステム全体の最適化を兼ね備えることが重要な課題となっている。
【０００７】
上述した先行技術１や先行技術２では割り込み要求を分散させることにより、無駄なバス帯域の消費を削減することを可能としているが、プロセッサの消費電力の状態に応じて割り込み要求の負荷分散を最適化するような考慮がされていない。そのためSoCを含めた、プロセッサの消費電力を動的に変更することが可能な近年のマルチプロセッサシステムにおいては、各プロセッサの消費電力の低減とシステム全体の最適化を兼ね備えた上で、負荷分散を効率的に行えているとは言い難い。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、SoCを含めた近年のマルチプロセッサシステムにおいて、プロセッサの消費電力の状態に応じて割り込み要求の負荷分散を最適化することを可能とする分散処理型マルチプロセッサシステム、制御方法、マルチプロセッサ割り込み制御装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の分散処理型マルチプロセッサシステムは、入出力処理を行うプロセッサを、所定の規則にしたがって複数プロセッサの中から選択する分散処理型マルチプロセッサシステムにおいて、前記入出力装置からの割り込みを受け付ける割り込み受付部と、前記プロセッサの消費電力を算出するプロセッサ消費電力算出部と、前記プロセッサ消費電力算出部より取得した前記プロセッサの消費電力情報をもとに割り込み出力先プロセッサを選択するプロセッサ選択部と、前記プロセッサ選択部により選択された前記プロセッサに対して割り込みを出力する割り込み出力部と、前記プロセッサの動作電圧値を保持する電圧レジスタと、前記プロセッサの動作周波数を保持する動作周波数レジスタとを有し、前記プロセッサ消費電力算出部は、前記電圧レジスタと前記動作周波数レジスタの値をもとに消費電力を算出し、前記プロセッサ選択部は、消費電力の最も低いプロセッサを選択する。
【００１０】
本発明のマルチプロセッサ割り込み制御装置は、入出力処理を行うプロセッサを、所定の規則にしたがって複数プロセッサの中から選択するマルチプロセッサ割り込み制御装置において、前記入出力装置からの割り込みを受け付ける割り込み受付部と、前記プロセッサの消費電力を算出するプロセッサ消費電力算出部と、前記プロセッサ消費電力算出部より取得した前記プロセッサの消費電力情報をもとに割り込み出力先プロセッサを選択するプロセッサ選択部と、前記プロセッサ選択部により選択された前記プロセッサに対して割り込みを出力する割り込み出力部とを有し、前記プロセッサ選択部のプロセッサ選択方法が、消費電力の最も低いプロセッサを選択するステップを含む。
【００１１】
本発明の分散処理型マルチプロセッサ制御方法は、入出力装置からの割り込みを受け付ける割り込み受付工程と、プロセッサの消費電力を算出するプロセッサ消費電力算出工程と、前記プロセッサ消費電力算出工手にて取得した前記プロセッサの消費電力情報をもとに割り込み出力先プロセッサを選択するプロセッサ選択工程と、前記プロセッサ選択工程により選択された前記プロセッサに対して割り込みを出力する割り込み出力工程とを有する。
【発明の効果】
【００１２】
本発明のマルチプロセッサシステムによれば、以下の顕著な緒効果を奏する。
入出力装置からの割り込み要求発生時に、プロセッサより取得した情報をもとに消費電力を計算し、消費電力の最も低いプロセッサを割り込み要求の出力先として選択することが可能である。
また、消費電力閾値レジスタに消費電力の閾値を設定することで、プロセッサより取得した情報をもとに計算した消費電力が、消費電力閾値範囲外であった場合、そのプロセッサを割り込み要求の出力先の候補から除外し、残ったプロセッサの中で消費電力の最も低いプロセッサを割り込み要求の出力先として選択することが可能である。
これらのことにより、SoCを含めた近年のマルチプロセッサシステムにおいて、プロセッサの消費電力の状態に応じて割り込み要求の負荷分散を最適化することが可能である。
【発明を実施するための最良の形態】
【００１３】
本発明の第１の実施形態について以下に図面を用いて説明する。
図１に本発明の構成ブロック例を示す。
図は、CPU１、CPU２、割り込み制御装置３、入出力装置群４、共有バス５、電圧レジスタ１１、動作周波数レジスタ１２、電圧レジスタ２１、動作周波数レジスタ２２より構成される。
【００１４】
CPU１、CPU２は同等なスペックを持つプロセッサとする。
また、消費電力の低減が可能なプロセッサであり、高負荷時は電圧、動作周波数を上げて高効率で動作させ、低負荷時には逆に電圧、動作周波数を下げ、アイドル時やスリープ時にはさらに電圧、動作周波数を下げるといった動的な制御が可能である。
【００１５】
ここで電圧値、動作周波数を電圧レジスタ１１、動作周波数レジスタ１２、および電圧レジスタ２１、動作周波数レジスタ２２に格納するものとする。
なお、CMOS  LSIの総消費電力Ptotalは、次式で求められることが一般に知られている。
【００１６】
【数１】
2007172322.tif 000003
【００１７】
ここでは説明上、ダイナミック動作による消費電力のみを考えることにすると、電圧レジスタと動作周波数レジスタより(電圧値の二乗)×(動作周波数)を求め、その値の大小比較により、消費電力量の比較が可能となる。
【００１８】
割り込み制御装置３の割り込み受付部３１は、入出力装置群４より割り込み要求を受けるとプロセッサ選択部３２へ割り込み要求を通知する。
プロセッサ消費電力算出部３３は電圧レジスタ１１、動作周波数レジスタ１２および電圧レジスタ２１、動作周波数レジスタ２２の内容を取得し、前記計算方法により消費電力を算出してプロセッサ選択部３２へ渡す。
【００１９】
プロセッサ選択部３２ではCPU１、CPU２の消費電力を比較する。CPU 1、CPU2は同等のスペックをもつプロセッサなので、消費電力の低いプロセッサは空きリソースが多いプロセッサとなる。
従って、消費電力の最も低いプロセッサに対して割り込み要求を出力し、割り込み処理を行わせることで、処理負荷を効率的に分散させ、プロセッサリソースを有効活用することが可能となる。
【００２０】
図３を参照して第１の実施形態の動作を説明する。図３は第一の実施形態の動作を説明するためのフローチャートである。
割り込み制御装置３は、入出力装置群４より割り込み要求を受けると(図３のステップＡ１)、プロセッサ消費電力算出部３３は電圧レジスタ１１、動作周波数レジスタ１２より消費電力を計算し、プロセッサ選択部３２へ渡す。
【００２１】
電圧レジスタ２１、動作周波数レジスタ２２に対しても同様の手順を行う(図３のステップＡ２)。
プロセッサ選択部３２では、消費電力の最も低いプロセッサを選出し(図３のステップＡ３)、そのプロセッサに対して割り込み要求を出力する(図３のステップＡ４)。
これにより消費電力の最も低いプロセッサで割り込み処理を行わせることになり、処理負荷を効率的に分散させ、プロセッサリソースを有効活用することが可能となる。
【００２２】
次に第２の実施形態を説明する。
図２に本発明の構成ブロック例を示す。
図は、CPU６、CPU７、CPU８、割り込み制御装置９、入出力装置群１０、共有バス２０、電圧レジスタ６１、動作周波数レジスタ６２、電圧レジスタ７１、動作周波数レジスタ７２、電圧レジスタ８１、動作周波数レジスタ８２より構成される。
【００２３】
CPU６、CPU７、CPU８のスペックは図１のCPU１、CPU２と同等である。
ただし、CPU８のみスリープ状態にあり、消費電力が著しく低い状態になっているものとする。
【００２４】
割り込み制御装置９の割り込み受付部９１は、入出力装置群１０より割り込み要求を受けるとプロセッサ選択部９２へ割り込み要求を通知する。
【００２５】
プロセッサ消費電力算出部９３は、電圧レジスタ６１、動作周波数レジスタ６２、電圧レジスタ７１、動作周波数レジスタ７２、および電圧レジスタ８１、動作周波数レジスタ８２の内容を取得する。そして、前記計算方法により消費電力を算出してプロセッサ選択部９２へ渡す。
【００２６】
プロセッサ選択部９２では、プロセッサ消費電力算出部９３より取得したプロセッサの消費電力値が、消費電力閾値レジスタ９５に設定された閾値より低かった場合は、そのプロセッサを割り込み要求の出力先プロセッサの候補から除外するよう判断を行う。
【００２７】
なお、消費電力閾値レジスタ９５には事前に消費電力の閾値を設定しておく。ここではCPU８の消費電力が消費電力閾値レジスタ９５の設定値以下であったため、割り込み要求の出力先プロセッサの候補から除外され、残ったプロセッサはCPU６、CPU７のみとする。
【００２８】
続いて、出力先プロセッサの候補として残っているCPU６、CPU７の消費電力を比較する。
CPU６、CPU７は同等のスペックをもつプロセッサなので、消費電力の低いプロセッサは空きリソースが多いプロセッサとなる。
【００２９】
従って、消費電力の最も低いプロセッサに対して割り込み要求を出力し、割り込み処理を行わせることで、処理負荷を効率的に分散させ、プロセッサリソースを有効活用することが可能となる。
【００３０】
具体的な用途として、例えばバッテリ駆動時間を長くしたい等の理由でシステムの消費電力を抑えたい場合、アクティブなプロセッサ数を抑え、システム全体としての稼働率を一定以下に抑えることで実現することができる。
【００３１】
これに対して、第２の実施形態を用いて、スリープ状態のプロセッサの消費電力が消費電力閾値以下となるような消費電力閾値を選び、消費電力閾値レジスタ９５に設定する。
スリープ状態のプロセッサに対して割り込み要求を出力しないようにすることで、システム全体としての稼働率を抑えることが出来る。
【００３２】
また、消費電力閾値を超えたプロセッサの中で最も消費電力の低いプロセッサに割り込み処理を行わせることで、システム全体の効率を最適化することを可能とする。
また別の観点として、極端に消費電力が低いプロセッサは、割り込み要求に対して迅速に対応できない可能性が大きい。
【００３３】
なぜならば、消費電力が極端に低い時点で、プロセッサとしての処理能力が低下しているという理由や、処理能力を上げるために電圧、動作周波数を一定レベルまで向上させるにはレイテンシが大きくなるという理由が挙げられる。
そのため、消費電力が一定レベル以下のプロセッサに対しては割り込み要求を出力しないほうがシステム全体として有効な場合がある。
第２の実施形態ではそういった理由も含め、システム全体の効率を最適化することを可能とする。
【００３４】
図４を参照して第２の実施形態の動作を説明する。図４は第２の実施形態の動作を説明するためのフローチャートである。
割り込み制御装置９は、入出力装置群１０より割り込み要求を受けると(図３のステップB１)、プロセッサ消費電力算出部９３は電圧レジスタ６１、動作周波数レジスタ６２より消費電力を計算し、プロセッサ選択部９２へ渡す。電圧レジスタ７１、動作周波数レジスタ７２や電圧レジスタ８１、動作周波数レジスタ８２に対しても同様の手順を行う(図４のステップB２)。
【００３５】
プロセッサ選択部９２では、プロセッサ消費電力算出部９３より取得したプロセッサの消費電力値が、消費電力閾値レジスタ９５に設定された閾値より低かった場合には、以下の判断を行う。即ち、そのプロセッサを割り込み要求の出力先プロセッサの候補から除外するように判断する(図４のステップB３)。
【００３６】
続いて、プロセッサ選択部９２では、残ったプロセッサの中から消費電力の最も低いプロセッサを選出し(図４のステップB４)、そのプロセッサに対して割り込み要求を出力する(図４のステップB５)。
【００３７】
これにより閾値範囲内で消費電力の最も低いプロセッサで割り込み処理を行わせることになり、処理負荷を効率的に分散させ、プロセッサリソースを有効活用することが可能となる。
【００３８】
上述した緒実施形態による分散処理型マルチプロセッサシステムを構成する各構成要素の機能は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。同様に、分散処理型マルチプロセッサ制御方法の各ステップ（図３のステップＡ１〜Ａ４、図４のステップＢ１〜Ｂ５等）は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【００３９】
具体的に、前記プログラムは、例えばＣＤ−ＲＯＭのような記録媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。前記プログラムを記録する記録媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、前記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワークシステムにおける通信媒体を用いることができる。ここで、コンピュータネットワークとは、ＬＡＮ、インターネットの等のＷＡＮ、無線通信ネットワーク等であり、通信媒体とは、光ファイバ等の有線回線や無線回線等である。
【００４０】
また、本発明に含まれるプログラムとしては、供給されたプログラムをコンピュータが実行することにより上述の実施形態の機能が実現されるようなもののみではない。例えば、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にも、かかるプログラムは本発明に含まれる。また、供給されたプログラムの処理の全て或いは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて上述の実施形態の機能が実現される場合にも、かかるプログラムは本発明に含まれる。
【図面の簡単な説明】
【００４１】
【図１】マルチプロセッサシステムの内部構成を示すブロック図である。
【図２】マルチプロセッサシステムの内部構成を示すブロック図である。
【図３】図１のマルチプロセッサシステムの動作を説明するためのフローチャートである。
【図４】図２のマルチプロセッサシステムの動作を説明するためのフローチャートである。
【符号の説明】
【００４２】
１  CPU
２  CPU
３  割り込み制御装置
４  入出力装置群
５  共有バス
１１  電圧レジスタ
１２  動作周波数レジスタ
２１  電圧レジスタ
２２  動作周波数レジスタ
３１  割り込み受付部
３２  プロセッサ選択部
３３  プロセッサ消費電力算出部
３４  割り込み出力部
６  CPU
７  CPU
８  CPU
９  割り込み制御装置
１０  入出力装置群
２０  共有バス
６１  電圧レジスタ
６２  動作周波数レジスタ
７１  電圧レジスタ
７２  動作周波数レジスタ
８１  電圧レジスタ
８２  動作周波数レジスタ
９１  割り込み受付部
９２  プロセッサ選択部
９３  プロセッサ消費電力算出部
９４  割り込み出力部
９５  消費電力閾値レジスタ
【図１】
2007172322.tif 000004
【図２】
2007172322.tif 000005
【図３】
2007172322.tif 000006
【図４】
2007172322.tif 000007