(57)【要約】【課題】省電力制御に適した割り込み制御を行うマルチプロセッサシステムLSIを提供する。【解決手段】マルチプロセッサシステムLSIは、割り込み要求先プロセッサユニットを指定した割り込み要求を表す割り込み要求信号を送信し、割り込み信号を受信する複数のプロセッサユニットと、複数のプロセッサユニットの各々から割り込み要求信号を受信し、複数のプロセッサユニットに割り込み信号を送信する割り込み制御回路とを有し、割り込み制御回路は、複数のプロセッサユニットの各々から送信される割り込み要求信号に応答して、当該割り込み要求信号が指定する割り込み要求先プロセッサユニットの消費電力状態が低消費電力状態でない場合は、当該割り込み要求先プロセッサユニットに割り込み信号を送信し、低消費電力状態である場合は、割込み要求先プロセッサユニットとは異なる他のプロセッサユニットに割り込み信号を送信する。【選択図】図1
2010102540.tif 000002
【特許請求の範囲】
【請求項１】
割り込み要求先プロセッサユニットを指定した割り込み要求を表す割り込み要求信号を送信し、割り込み信号を受信する複数のプロセッサユニットと、
前記複数のプロセッサユニットの各々から前記割り込み要求信号を受信し、前記複数のプロセッサユニットに前記割り込み信号を送信する割り込み制御回路と
を有し、
前記割り込み制御回路は、前記複数のプロセッサユニットの各々から送信される前記割り込み要求信号に応答して、当該割り込み要求信号が指定する前記割り込み要求先プロセッサユニットの消費電力状態が低消費電力状態でない場合は、当該割り込み要求先プロセッサユニットに前記割り込み信号を送信し、低消費電力状態である場合は、前記割込み要求先プロセッサユニットとは異なる他のプロセッサユニットに割り込み信号を送信することを特徴とするマルチプロセッサシステムLSI。
【請求項２】
前記他のプロセッサユニットは低消費電力状態でないことを特徴とする請求項１記載のマルチプロセッサシステムLSI。
【請求項３】
前記他のプロセッサユニット全てが低消費電力状態の場合、前記割り込み要求先プロセッサユニットに割り込み信号を送信することを特徴とする請求項２記載のマルチプロセッサシステムLSI。
【請求項４】
前記割り込み制御回路は、各々のプロセッサユニットの割り込み優先順が規定された割り込み先優先順位テーブルを有し、当該割り込み先優先順位テーブルに従って前記他のプロセッサユニットへの割り込み信号の送信先の変更を行うことを特徴とする請求項１記載のマルチプロセッサシステムLSI。
【請求項５】
前記割込み制御回路は、前記複数のプロセッサユニットへの割り込み先変更の可否をそれぞれ表す機能設定レジスタを有し、前記割り込み要求信号が指定する前記割り込み要求先プロセッサユニットが低消費電力状態であっても、前記機能設定レジスタが割り込み先変更不可能の場合、前記割り込み要求先プロセッサユニットに割り込み信号を送信することを特徴とする請求項1記載のマルチプロセッサシステムLSI。
【請求項６】
前記プロセッサユニットは、自己の消費電力状態をそれぞれ表す状態信号を前記割り込み制御回路に出力し、前記割込み制御回路は、当該状態信号に基づいて前記割り込み要求先プロセッサユニットの消費電力状態を判定することを特徴とする請求項1記載のマルチプロセッサシステムLSI。
【請求項７】
前記プロセッサユニットは、自己の消費電力状態をそれぞれ表す状態設定信号を前記割り込み制御回路に送信し、
前記割込み制御回路は、前記状態設定信号に応じて設定され、前記複数のプロセッサユニットの消費電力状態をそれぞれ表すプロセッサ状態レジスタを有し、当該プロセッサ状態レジスタに基づいて前記割り込み要求先プロセッサユニットの消費電力状態を判定することを特徴とする請求項1記載のマルチプロセッサシステムLSI。
【請求項８】
割り込み要求を表す割り込み要求信号を送信し、割り込み信号を受信する複数のプロセッサユニットと、
前記複数のプロセッサユニットの各々から前記割り込み要求信号を受信し、前記複数のプロセッサユニットに前記割り込み信号を送信する割り込み制御回路と
を有し、
前記割り込み制御回路は、各々のプロセッサユニットの割り込み優先順が規定された割り込み先優先順位テーブルを有し、
前記複数のプロセッサユニットの各々から送信される前記割り込み要求信号に応答して、前記割り込み先優先順位テーブルに規定された割り込み優先順に従って、低消費電力状態でないプロセッサユニットを選択し、当該選択したプロセッサユニットに割り込み信号を送信することを特徴とするマルチプロセッサシステムLSI。
【請求項９】
前記割り込み先優先順位テーブルの優先順が、各々の前記プロセッサユニットの消費電力が小さい順に決められていることを特徴とする請求項４又は８記載のマルチプロセッサシステムLSI。
【請求項１０】
前記割り込み先優先順位テーブルの優先順が、各々の前記プロセッサユニットの処理速度が速い順に決められていることを特徴とする請求項４又は８記載のマルチプロセッサシステムLSI。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムLSIに関し、特に割り込み制御回路を有するマルチプロセッサシステムLSIに関する。
【背景技術】
【０００２】
マルチプロセッサシステムLSIは、そのチップ内に複数のプロセッサユニット(以下、CPUと称する。)を有する。そして、それら複数のCPUにより並列処理や連携処理等が行われる。また、その際、CPUは、割り込みをトリガとして、互いに処理の受け渡しを行う。従来のマルチプロセッサシステムLSIでは、あるCPUが他のCPUを指定して割り込み要求を出す場合、割り込み要求元CPUは、割り込み要求先CPUを指定して割り込み要求を出力する。そして、その割り込み要求に応答して、割り込み要求先CPUは、実行中の処理を停止し、割り込み要求元CPUの処理を引き継ぐなど、所定の割り込み処理を行う。
【０００３】
一方で、マルチプロセッサシステムには省電力制御のために、低消費電力状態での動作が要求されている。ここでいう低消費電力状態とは、以下の3つの方法のうち少なくとも1つを意味し、CPUの消費電力を削減した状態のことをいう。
(1)CPUに与えるクロックを止める。若しくは、クロック周波数を下げる。
(2)CPUにクロックは与えるが、CPU内部における、割り込み判定回路等の一部の回路を除く各回路へのクロックを止める。
(3)CPUの電源電圧を下げる。または、0 Vにする。
【０００４】
上記の低消費電力状態は、一般的に、スリープ(sleep)、シャットダウン(shutdown)、スタンバイ(standby)、パワーダウン(power down)等と称される。すなわち、マルチプロセッサシステムLSIの有するCPUの中で、リアルタイムに処理を行う必要のないCPUの稼動を制限することにより、消費電力を削減する。
【０００５】
特許文献１では、低消費電力化に伴うプロセッサの内部動作周波数の変化に応じて、割り込み信号長をプロセッサが認識可能な長さに変化させる回路について記載している。
【０００６】
また、特許文献２では、マルチプロセッサにおいて、複数のプロセッサに同時に割り込み信号を送信する割り込み制御装置について記載されている。
【０００７】
また、特許文献３では、マルチプロセッサにおいて、処理のスケジューリング編成を行うメインプロセッサがサブプロセッサをモニタし、サブプロセッサで誤動作が生じても全体が動作を維持できるように、状況に応じて他のプロセッサに処理の再割り当てを行う旨が記載されている。
【特許文献１】特開2004-78640号公報
【特許文献２】特開 平3-81834号公報
【特許文献３】特開2005-332402号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、マルチプロセッサシステムLSIにおいて、低消費電力状態にあるCPUに対して、割り込み要求が出されると、その低消費電力状態にあったCPUは通常動作状態に復帰し、要求される処理を実行する。そのため、消費電力の増加を引き起こすことになる。
【０００９】
そこで、本発明の目的は、省電力制御に適した割り込み制御を行うマルチプロセッサシステムLSIを提供することにある。
【課題を解決するための手段】
【００１０】
１つの態様によれば、マルチプロセッサシステムLSIは、割り込み要求先プロセッサユニットを指定した割り込み要求を表す割り込み要求信号を送信し、割り込み信号を受信する複数のプロセッサユニットと、前記複数のプロセッサユニットの各々から前記割り込み要求信号を受信し、前記複数のプロセッサユニットに前記割り込み信号を送信する割り込み制御回路とを有し、前記割り込み制御回路は、前記複数のプロセッサユニットの各々から送信される前記割り込み要求信号に応答して、当該割り込み要求信号が指定する前記割り込み要求先プロセッサユニットの消費電力状態が低消費電力状態でない場合は、当該割り込み要求先プロセッサユニットに前記割り込み信号を送信し、低消費電力状態である場合は、前記割込み要求先プロセッサユニットとは異なる他のプロセッサユニットに割り込み信号を送信する。
【発明の効果】
【００１１】
本発明によれば、省電力制御に適した割り込み制御を行うマルチプロセッサシステムLSIを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１３】
前述したとおり、従来のマルチプロセッサシステムLSIにおいて、低消費電力状態にあるCPUに対して割り込み要求が出されると、その低消費電力状態にあったCPUは通常動作状態に復帰し、消費電力の増加を引き起こすことになる。しかし、この場合に、低消費電力状態のCPUではなく、通常動作中の他のCPUに対して割り込みを発生させれば、低消費電力状態のCPUはその状態を維持するため、消費電力の増加は抑制される。
【００１４】
そこで、本実施の形態のマルチプロセッサシステムLSIは、割り込み要求先CPUの消費電力状態を判別し、低消費電力状態の場合、自動的に割り込み先を変更する割り込み制御回路を有する。しかも、変更される割り込み先CPUは、低消費電力状態でないものが選択される。なお、以下、CPUの低消費電力状態としてスリープ状態を例として説明するが、前述したとおり、CPUの低消費電力状態は、スリープ状態に限られない。
【００１５】
[第1の実施の形態]
図1は、第1の実施の形態におけるマルチプロセッサシステムのブロック図である。本構成は、説明のためCPUを3つ有し、また、割り込みの制御を行う割り込み制御回路4を有する。また、割り込み制御回路4は、バスインターフェース回路5とCPU状態判定回路7と割り込み信号送信回路6とを有する。なお、CPU1とCPU2とCPU3と割り込み制御回路4とメモリ20は全てバス30を介して接続されている。
【００１６】
はじめに概要を説明する。本第1の実施の形態において、各々のCPUは、割り込み要求先CPUを指定して、割り込みの仲介を行う割り込み制御回路4に対して、割り込み要求信号S1aを送信する。割り込み制御回路4は、割り込み要求信号S1aに応答して、割り込み要求先CPUの出力するスリープ信号(自己の低消費電力状態を表す状態信号)を参照することにより、割り込み要求先CPUがスリープ状態(低消費電力状態)か否かの消費電力状態を判別する。そして、割り込み制御回路4は、割り込み要求先CPUがスリープ状態でない場合は、そのCPUに、割り込み信号S3、S4、S5を送信し、割り込み要求先CPUがスリープ状態の場合は、他の異なるCPUを割り込み先CPUに変更する。本第1の実施の形態において、割り込み制御回路4は、この割り込み先の変更の際に、各々のCPUの割り込み先優先度が規定された割り込み先優先順位テーブルを参照し、スリープ状態でないCPUを選定し、そのCPUに割り込み信号を送信する。
【００１７】
次に、第1の実施の形態を構成する各部の機能と動作について説明する。各々のCPUは、メモリ20から読み込んだプログラムの命令に応じて処理を行う。そして、必要に応じて、割込み要求元CPUは、割込み要求先CPUを指定した割り込み要求信号S1aを、割り込み制御回路4に出力する。また、CPUは、スリープ状態になる前に、自己がスリープ状態であることを示すスリープ信号S23、S24、S25をCPU状態判定回路7に出力する。なお、各々のCPUの処理速度は異なってもよい。例えばCPU1は他のCPUと比較して処理速度が速く、他のCPUを集中的に管理するようなメインプロセッサであってもよい。
【００１８】
バスインターフェース回路5は、各々のCPUからバス30を介して送信される割り込み要求信号S1aを受信し、その割り込み要求信号S1aから、どのCPUに対して割り込み要求があったかを解読し、その解読結果を、割り込み要求先CPUを示す割り込み要求信号S1bとして、CPU状態判定回路7に出力する。
【００１９】
CPU状態判定回路7は、前述したとおり、CPU1とCPU2とCPU3からそれぞれスリープ信号S23、S24、S25を受信し、それらを参照することでCPUのスリープ状態を判別する。そこで、CPU状態判定回路7は、前述した割り込み要求先CPUを示す割り込み要求信号S1bに応答して、その割り込み要求先CPUのスリープ信号を参照する。そして、CPU状態判定回路は、その割り込み要求先CPUがスリープ状態でなければ、そのCPUを、割り込み信号を送信する割り込み先CPUとし、スリープ状態の場合は、その他のCPUを割り込み先CPUに変更する。すなわち、割り込み要求先CPUが、スリープ状態の場合は、割り込み先が他のCPUに自動変更される。
【００２０】
さらに、CPU状態判定回路7は、その割り込み先の変更により、スリープ状態でない通常動作状態の割り込み先CPUを選定し、その割り込み先CPUを示す割り込み先信号S2を割り込み信号送信回路6に出力する。なお、CPU変更方法に関する詳細については後述する。
【００２１】
割り込み信号送信回路6は、受信した割り込み先信号S2に対応するCPUへ、割り込み信号S3、S4、S5を送信する。そして、割り込み信号を受信したCPUは、その割り込み信号をトリガとして、実行中の処理を停止して、所定の割り込み処理を行う。
【００２２】
次に、前述したCPU状態判定回路7が行う割り込み先の変更方法について説明する。本第1の実施の形態において、CPU状態判定回路7は、割り込み先の変更の際に、その変更順を示した割り込み先優先順位テーブルを参照する。この割り込み先優先順位テーブルに従い、例えば割り込み要求信号S1bの示す割り込み要求先CPUがスリープ状態にあった時、次にどのCPUに割り込み先を変更するのかを決める。すなわち、割り込み先優先順位テーブルは、各々のCPUの割り込み優先順位を予め規定した表である。なお、CPU状態判定回路7が、割り込み先優先順位テーブルをレジスタとして有していてもよい。
【００２３】
図2は、割り込み先優先順位テーブルの一例を示す図表である。この割り込み先優先順位テーブルにおいて、列は割り込み要求信号S1bが示す割り込み要求先CPU別に区分され、行は割り込み信号S3、S4、S5が送信される割り込み先CPU別に区分されている。そして、この割り込み先優先順位テーブル中には、割り込み要求があったときに、その割り込み要求先CPUに対して、実際にどのCPUに割り込み信号を送信するかの優先順位が示されている。
【００２４】
図2に示される割り込み先優先順位テーブルは、割り込み要求先CPUの優先順位を「1」として、優先順位が最も高く設定されているため、CPU状態判定回路7は、はじめに割り込み要求信号S1bに応じた割り込み要求先CPUを、割り込み先CPUに選択する。そして、CPU状態判定回路7は、そのスリープ信号を参照し、スリープ状態ならば、割り込み要求先CPUと異なる、次に優先順位の高い、優先順位「2」のCPUを割り込み先CPUに選択する。以上のように、割り込み先優先順位テーブルの優先順位に応じて、割り込み要求先CPUを最優先にして、スリープ状態でないCPUが割り込み先CPUに選ばれる。
【００２５】
例えば、CPU2がスリープ状態にあり、CPU1とCPU3は通常動作状態にある場合を想定する。そして、CPU1が割り込み制御回路4に割り込み要求先をCPU2とする割り込み要求信号S1aを送信したとき、CPU状態判定回路7は、図2の割り込み先優先順位テーブルの割り込み要求先CPU2の列に示される割り込み先CPUの優先順位を参照する。それより、割り込み先CPUの優先順位はCPU2、CPU3、CPU1の順に決まる。そして、CPU状態判定回路7は、はじめにCPU2のスリープ信号を参照するが、CPU2からはスリープ信号が出力されているため、CPU2をスリープ状態と判断し、次に優先順位が高いCPU3に、割り込み先を変更する。次に、CPU状態判定回路7は、CPU3のスリープ信号を参照するが、CPU3からはスリープ信号が出力されていないため、CPU3を通常動作状態と判断し、CPU3を割り込み先に決定する。
【００２６】
なお、CPU3もスリープ状態にあるときは、割り込み要求元のCPU1に割り込み信号が送信されるが、CPU1は、この割り込み信号をトリガとして、割り込み要求をしないとしてもよい。または、CPU3もスリープ状態にあるときは、CPU状態判定回路は割込み要求先CPU2を、スリープ状態ではあるが強制的に割り込み先CPUに選択するなど、割り込み制御方法を変更してもよい。
【００２７】
図3は、CPUがn個ある場合の、一般的な割り込み先優先順位テーブルの一例を示す図表である。図2と同様の規定により、列は割り込み要求信号S1bが示す割り込み要求先CPU別に区分され、行は割り込み信号S3、S4、S5が送信される割り込み先CPU別に区分されている。そして、割り込み要求先CPUの優先順位を「1」として、優先順位が最も高く設定されていて、他のCPUに対する優先順位が2〜nで示されている。すなわち、割り込み要求先がスリープ状態であったときに、変更される割り込み先CPUの優先順位が、2〜nで示されている。また、図3に示される割り込み先優先順位テーブルは、割込み要求先CPUの優先順位を「1」として、それ以降、CPU番号が大きくなるに従い、昇順に優先順位が設定され、CPUn以降はCPU1から同様に、一巡するように優先順位が設定されている。
【００２８】
例えば、CPUがn個搭載されたマルチプロセッサシステム構成において、CPU2とCPU3のみがスリープ状態で、他のCPUは通常動作状態にある場合に、CPU1が、割り込み制御回路4に割り込み要求先をCPU2とする割り込み要求信号を送信した場合を想定する。図3に示される割り込み先優先順位テーブルの規定により、割り込み先CPUの優先順位はCPU2、CPU3、CPU4、・・・の順である。そして、割り込み要求先のCPU2からはスリープ信号が出力されているため、CPU3が次の割り込み先として選ばれるが、CPU3からもスリープ信号が出力されているため、さらに次の割り込み先としてCPU4が選ばれる。そして、CPU4からはスリープ信号が出力されていないため、CPU4が割り込み先CPUとなる。
【００２９】
また、図3に示される割り込み先優先順位テーブルでは、前述のとおり優先順位が平等に設定されているので、割り込み先が1つのCPUに偏ることなく、各々のCPUに対して確率的に平等に割り込みがかかる。よって、特別な優位差がなく消費電力が同等であるCPUを複数個用いてマルチプロセッサシステムを構成する場合に有効である。
【００３０】
次に、図3に示される割り込み先優先順位テーブルの設定変更例を説明する。CPU1〜nの順に消費電力が小さい場合において、変更例では図3と同様に割込み要求先CPUの優先順位を「1」に設定し、その他のCPUの優先順位2〜nは、CPU番号の小さい順に設定する。この割り込み先優先順位テーブルの設定により、各々の消費電力が異なるn個のCPUを搭載するマルチプロセッサシステムにおいて、割り込み先の変更の際に最も消費電力が小さいCPUに割込みがかかる。
【００３１】
すなわち、割り込み要求先CPUがスリープ状態である場合、割り込み先CPUの変更が行われるが、割り込み先CPUの優先順位2〜nは、CPU番号の小さい順、すなわち、消費電力の小さい順となり、通常動作状態で最も消費電力が小さいCPUに割込みがかかる。また、一般的にCPUの処理速度が速くなると消費電力も大きくなるが、消費電力の大きい順にCPU番号を割り当てた場合は、処理速度の速いCPUに優先的に処理を行わせることができ、高速処理が要求される場合などに有効である。
【００３２】
以上、図2と図3において、割り込み先CPUの決定方法は、割り込み先CPUの優先順位に従い、順番にスリープ信号を参照し、通常動作状態であるCPUを割り込み先CPUに選定した。しかし、実際の信号回路の論理構成において、はじめに全てのCPUのスリープ信号をもとに、通常動作状態のCPUを抽出した後、割り込み先優先順位テーブルを参照し、それら抽出した通常動作状態のCPUの中から、最も割り込み先優先順位の高いCPUを、割り込み先CPUとしてもよい。
【００３３】
図4は、別の割り込み先優先順位テーブルの一例を示す図表である。この割り込み先優先順位テーブルにおいて、列は割り込み要求元CPU別に区分されている。そして、それらの割込み要求元CPU毎に、さらに、割り込み要求信号S1bが示す割り込み要求先CPU別に区分されている。なお、割り込み元CPUは自己に割り込みをかける必要はないため、割込み要求先CPUの区分から除かれている。また、行は割り込み信号S3、S4、S5が送信される割り込み先CPU別に区分されている。そして、この割り込み先優先順位テーブル中には、割り込み要求元CPUと割り込み要求先CPUの組み合わせに対して、どのCPUに割り込み信号を送信するかの優先順が示されている。
【００３４】
このように、図4に示される割り込み先優先順位テーブルの列は、図2、図3に示される割り込み要求先CPUのみにより規定されている列とは異なり、割り込み要求元CPUと割り込み要求先CPUの両者により規定されているため、必要に応じてより細かな割り込みの設定が可能である。
【００３５】
さらに、図4に示される割り込み先優先順位テーブルは、CPU番号の小さい順に優先順位が設定されている。そのため、図3で説明したように、CPU1〜3の順に消費電力が小さい場合は、消費電力の小さい順にCPU番号を割り当てることにより、消費電力の小さい順に割り込み先CPUの優先順位が決まる。そして、割り込み要求先CPUに関わらず、割り込み要求元CPUに応じて、通常動作状態で最も消費電力の小さいCPUが割り込み先CPUに選定される。
【００３６】
図4の割り込み先優先順位テーブルを使用した場合の動作は次の通りである。例えば、CPU2がスリープ信号を出力してスリープ状態にあり、CPU1とCPU3は通常動作状態にある場合を想定する。そして、CPU1が割り込み制御回路4に割り込み要求先をCPU2とする割り込み要求信号S1aを送信したとき、CPU状態判定回路7は、図4の割り込み先優先順位テーブルにおける最左列の割り込み要求先CPU2に示される割り込み先CPUの優先順位を参照する。そして、割り込み先CPUの優先順位は、前述したように、割り込み要求元CPUであるCPU1は除かれ、CPU2、CPU3の順に決まる。そして、CPU状態判定回路7は、はじめにCPU2のスリープ信号を参照するが、CPU2からはスリープ信号が出力されているため、CPU2をスリープ状態と判断し、次に優先順位が高いCPU3に割り込み先を変更する。次に、CPU状態判定回路7は、CPU3のスリープ信号を参照するが、CPU3からはスリープ信号が出力されていないため、CPU3を通常動作状態と判断し、CPU3を割り込み先に決定する。なお、図2に示される割り込み先優先順位テーブルと同様に、CPU3もスリープ状態にあるときは、スリープ状態にあるCPU2に対して強制的に割り込みをかけるなど、割り込み制御方法を変更してもよい。
【００３７】
次に、図1と図5を用いて具体的な割り込み動作手順の一例を説明する。また、図5は、各部に送信される信号の流れと時間との関係を示す図である。なお、図5中のかっこ内の符号は、図1に示される送受信信号と対応している。ここで、全てのCPUが通常動作しているときに、CPU2がスリープ信号を出力してスリープ状態となった後、CPU1がCPU2に割り込み要求を出した場合の動作を以下に示す。また、CPU状態判定回路7の割り込み先の変更動作は、図2に示す割り込み先優先順位テーブルに従う。
【００３８】
CPU2は、割り込み制御回路4内のCPU状態判定回路7にスリープ信号S24を出力し、スリープ状態になる(ステップT1)。次に、CPU1はCPU2への割り込み要求をするために、割り込み制御回路4内のバスインターフェース回路5に、バス30を介して割り込み要求信号S1aを送信する(ステップT2)。そして、バスインターフェース回路5は、受信した割り込み要求信号S1aから、CPU2に対しての割り込み要求であることを解読し、この解読結果を割り込み要求信号S1bとしてCPU状態判定回路7に送信する（ステップT3）。
【００３９】
CPU状態判定回路7は、割り込み要求信号S1b の示すCPU2への割り込み要求に応答して、各CPUのスリープ状態を示すスリープ信号S23、S24、S25と、図2に示す割り込み先優先順位テーブルを参照し、CPU2がスリープ状態にあるため、割り込み先を、次に優先順位の高いCPU3に変更する。そして、CPU3は、通常動作状態であるため、割り込み先CPUをCPU3に決定する。そして、CPU状態判定回路は、割り込み先CPUがCPU3であることを示す割り込み先信号S2を割り込み信号送信回路6に送信する(ステップT4)。
【００４０】
割り込み信号送信回路6は、受信した割り込み先信号S2に応じて、CPU3へ割り込み信号S5を送信する(ステップT5)。そして、割り込み信号S5を受信したCPU3は、その割り込み信号S5をトリガとして、実行中の処理を停止して、CPU1が実行していた処理を引き継ぐ。具体的には、CPU3は、CPU1が実行していた割り込み対象のプログラムの命令をメモリ20から読み込み、実行する。そして、実行終了後、割り込み処理完了信号をCPU1に送信する。
【００４１】
以上により、本第1の実施の形態では、割り込み要求先CPUが低消費電力状態の場合は、割り込み先優先順位テーブルに従い、低消費電力状態ではないCPUに割り込み先を変更する。また、割り込み先優先順位テーブルの設定変更により、マルチプロセッサシステムの割り込み制御方法を適宜変更することができる。
【００４２】
なお、各CPUの消費電力状態を示すレジスタを設け、割り込み要求元CPUは、そのレジスタを参照することにより、低消費電力状態ではないCPUに対して割り込み要求を出すことも可能である。しかし、CPUが割り込み要求毎にそのレジスタを参照する必要があるため、システムパフォーマンスの低下につながる。一方、本第1の実施の形態によれば、CPUは割り込み要求信号を出力するだけで、低消費電力状態ではないCPUに対して割り込みを発生させることが可能であり、システムパフォーマンスの低下もない。
【００４３】
ところで、図4の割り込み先優先順位テーブルに示される優先順位は、列に示される割り込み要求元CPUの区分毎に、割り込み要求先CPUに関わらず、同じ優先順位が設定されている。この場合は、割り込み要求先CPUに関わらず、割り込み要求元CPUに応じて割り込み先CPUの優先順位が決定される。すなわち、図4に示される割り込み先優先順位テーブルによれば、割り込み要求先CPUの指定は不要になり、割り込み要求に応答して単に割り込み先優先順位テーブルに従って割り込み先CPUを決定することになる。
【００４４】
かかる割り込み先優先順位テーブルの場合は、各CPUは、割り込み要求先CPUを指定しない割り込み要求信号を割り込み制御回路4に送信する。そして、それに応答して、CPU状態判定回路7は、上記の割り込み先優先順位テーブルに基づいて、スリープ状態でないCPUを割り込み先CPUに選んで、割り込み信号を送信する。前述のとおり、割り込み先優先順位テーブルの優先順位が消費電力の小さい順の場合は、LSIの省電力化を図ることができる。一方、処理速度が速い順の場合は、スリープ状態でないCPUを選択することとあいまって省電力かつ高速処理が図れることになる。
【００４５】
[第2の実施の形態]
図6は、第2の実施の形態におけるマルチプロセッサシステムのブロック図である。図1に示す第1の実施の形態のブロック図との違いは、CPUがスリープ信号を出力せず、また、割り込み制御回路4が、CPU状態レジスタ8を有することであり、それ以外の同一又は対応する構成要素には同一符号を付している。本第2の実施の形態について、既述した説明を除き、以下に説明する。
【００４６】
はじめに概要を説明する。本第2の実施の形態は、割り込み要求があった場合に、前述した第1の実施の形態の割り込み先の変更方法と同様にして割り込み先CPUを決定する。しかし、CPUの消費電力状態の判別方法が異なり、各々のCPUの消費電力状態が記憶されたCPU状態レジスタ8が出力するCPU状態信号S3cを参照することにより、CPUの消費電力状態を判別する。すなわち、割り込み先CPUの消費電力状態を判別する際に、CPUの出力するスリープ信号を参照するか、CPU状態レジスタ8の出力するCPU状態信号を参照するかで、第1の実施の形態と異なる。
【００４７】
次に、第2の実施の形態を構成する各部の機能と動作について説明する。割込み制御回路4内のCPU状態レジスタ8は、CPUの消費電力状態を示すレジスタである。そして、CPU状態レジスタ8は、CPU1とCPU2とCPU3の各々のCPUに対応したレジスタreg11とレジスタreg12とレジスタreg13とを有する。
【００４８】
各々のCPUは、スリープ状態になる前に、バス30を介して割り込み制御回路4に自己がスリープ状態になることを示す状態設定信号S3aを送信する。そして、バスインターフェース回路5はこの状態設定信号S3aを解読し、CPU状態レジスタ8内の状態設定信号S3aの送信元のCPUに対応するレジスタへ、状態設定信号S3bを送信する。そして、CPU状態レジスタ8内の状態設定信号S3bに対応するレジスタ値が、スリープ状態を示す値に設定される。そして、CPU状態レジスタ8は、設定されたレジスタ状態をCPU状態信号S3cとしてCPU状態判定回路7に出力する。その後、状態設定信号S3aを送信したCPUはスリープ状態になる。また、スリープ状態のCPUは、スリープ状態から復帰する際に、同様の手順で状態設定信号S3aを送信し、レジスタの値をスリープ状態から復帰したことを示す値に書き換える。
【００４９】
CPU状態判定回路7は、上述したとおり、各々のCPUのスリープ状態が示されたレジスタ値をCPU状態信号S3cとして受信しており、それを参照することで、CPUのスリープ状態を判別する。CPU状態判定回路7に関して、第1の実施の形態では、CPUが出力するスリープ信号により、CPUのスリープ状態を判別したが、本第2の実施の形態では、CPU状態レジスタ8が出力するCPU状態信号S3cによりCPUのスリープ状態を判別する。そこで、CPU状態判定回路7は、割り込み要求信号S1bに応答して、CPU状態信号S3cを参照して、CPUのスリープ状態を判別し、割り込み要求先CPUが通常動作状態の場合は、その割り込み要求先CPUを割り込み先CPUに選択するが、スリープ状態の場合は、割り込み要求先CPUと異なる他のCPUを割り込み先CPUに変更する。
【００５０】
また、第1の実施の形態と同様に割り込み先優先順位テーブルに従って割り込み先CPUを変更してもよい。以上より、CPU状態判定回路7は、割り込み先CPUを決定し、その決定結果を割り込み先信号S2として出力する。
【００５１】
割り込み信号送信回路6は、受信した割り込み先信号S2に対応するいずれかのCPUへ、割り込み信号S3〜S5を送信する。そして、割り込み信号を受信したCPUは、その割り込み信号をトリガとして、実行中の処理を停止して、所定の割り込み処理を行う。
【００５２】
次に、図6と図7を用いて具体的な割り込み動作手順の一例を説明する。また、図7は、各部に送信される信号の流れと時間との関係を示す図である。なお、図7中のかっこ内の符号は、図6に示される送受信信号と対応している。ここで、全てのCPUが通常動作しているときに、CPU2が状態設定信号S3aを送信し、スリープ状態となった後、CPU1がCPU2に割り込み要求を出した場合の動作を以下に示す。また、CPU状態判定回路7の割り込み先の変更動作は、図2に示す割り込み先優先順位テーブルに従う。
【００５３】
CPU2は、スリープ状態に入る前にバス30を介して割り込み制御回路4に対して状態設定信号S3aを送信する(ステップT6)。そして、バスインターフェース回路5はこの状態設定信号S3aを解読し、CPU状態レジスタ8内のCPU2に対応するレジスタreg12へ、状態設定信号S3bを送信する。そして、CPU状態レジスタ8内のレジスタreg12がスリープ状態に設定される(ステップT7)。そして、CPU状態レジスタ8は、レジスタreg12がスリープ状態に設定されたことを示すCPU状態信号S3cをCPU状態判定回路7に送信する(ステップT8)。その後、CPU2はスリープ状態になる。
【００５４】
以下は、図5と同様にステップT2、T3、T4、T5が行われる。ただし、各々のCPUの消費電力状態の判断は、CPU状態信号S3cにより行われる。
【００５５】
第1の実施の形態において、CPUはスリープ信号を出力するが、これは、CPU自体が個別にスリープ状態を示すレジスタを持ち、このレジスタ値に応じてスリープ信号を出力することによる。従って、第1、第2の実施の形態の構成上の相違点は、CPU側と割り込み制御回路4側のどちらにCPUの消費電力状態を表すレジスタが配設されているかにある。また、第2の実施の形態は、バス30を介して自己の消費電力状態を示すレジスタ値を設定できるため、第1の実施の形態と比較すると、各々のCPUから送信されるスリープ信号の配線を削除できる効果を有する。
【００５６】
[第3の実施の形態]
図8は、第3の実施の形態におけるマルチプロセッサシステムのブロック図である。図1に示す第1の実施の形態のブロック図との違いは、割り込み制御回路4が、機能設定レジスタ18を有することであり、それ以外の同一又は対応する構成要素には同一符号を付している。本第3の実施の形態について、既述した説明を除き、以下に説明する。
【００５７】
はじめに概要を説明する。本第3の実施の形態は、割り込み要求があった場合に、割り込み先CPUを決定するために、前述した第1の実施の形態の割り込み先の変更方法と同様に、割り込み先CPUがスリープ状態なら、他のCPUに割り込み先を変更する。ただし、機能設定レジスタ18に、CPU毎に割り込み先の変更を有効とするか無効とするかの設定が可能である。そして、CPU状態判定回路7は、割り込み要求先CPUが通常動作状態の場合は、割り込み要求先CPUを割り込み先CPUに選択するが、スリープ状態の場合は、機能設定レジスタ18を参照して、割り込み先の変更が有効の場合は、割込み先優先順位テーブルに従った割り込み先の変更を行うが、無効の場合は、割り込み先の変更は行われず、割り込み要求先CPUに強制的に割込みをかける。
【００５８】
次に、第3の実施の形態を構成する各部の機能と動作について説明する。割り込み制御回路内の機能設定レジスタ18は、CPU1とCPU2とCPU3の各々のCPUに対応したレジスタreg41とレジスタreg42とレジスタreg43とを有する。そして、これらのレジスタreg41、reg42、reg43には、割り込み要求先CPUがスリープ状態であった場合に、他のCPUへの割り込み先の変更が有効であるか無効であるかを示す値が設定される。以下、本第3の実施の形態において、レジスタ値「0」は、割り込み先変更の無効を表し、レジスタ値「1」は、割り込み先変更の有効を表す。
【００５９】
各々のCPUは、機能設定レジスタ18内のレジスタreg41、reg42、reg43の値を設定するために、割り込み制御回路4に、レジスタ設定信号S4aを送信する。そして、バスインターフェース回路5は、このレジスタ設定信号S4aからレジスタ設定先CPUを解読し、機能設定レジスタ18内の、レジスタ設定先CPUに対応するレジスタにレジスタ設定信号S4bを送信する。そして、このレジスタ設定信号S4bに応じて、機能設定レジスタ18内のレジスタreg41、reg42、reg43の値は「0」か「1」かに設定される。そして、機能設定レジスタ18は、レジスタ値に応じたCPU設定信号S4cをCPU状態判定回路7に出力する。
【００６０】
また、スリープ信号S23、S24、S25と割り込み要求信号S1aは、第1の実施の形態と同様である。
【００６１】
次に、図8と図9を用いて具体的な割り込み動作の手順の一例を説明する。また、図9は、各部に送信される信号の流れと時間との関係を示す図である。なお、図9中のかっこ内の符号は、図6に示される送受信信号と対応している。ここで、全てのCPUが通常動作しているときに、CPU1がレジスタ設定を行い、CPU2がスリープ信号S24を出力し、スリープ状態となった後、CPU1がCPU2に割り込み要求を出した場合の動作を以下に示す。また、CPU状態判定回路7の割り込み先の変更動作は、図2に示す割り込み優先順位テーブルに従う。
【００６２】
図8において、CPU1は割り込み先自動切り替えの有効と無効の設定を行うために、機能設定レジスタ18内の各レジスタreg41、reg42、reg43の設定を行う。そのため、バス30を介してレジスタ設定信号S4aを割り込み制御回路4に送信する(ステップT13)。また、本動作例では、レジスタreg41は「1」(変更可)、レジスタreg42は「0」(変更不可)、レジスタreg43は「1」(変更可)と設定する。そして、バスインターフェース回路5は、このレジスタ設定信号S4aを解読し、機能設定レジスタ18内の、各々のCPUに対応するレジスタreg41、reg42、reg43へ、レジスタ設定信号S4bを送信し、レジスタreg41、reg42、reg43が設定される(ステップT14)。そして、機能設定レジスタ18は、設定されたレジスタに応じたCPU設定信号S4cをCPU状態判定回路7に送信する(ステップT15)。
【００６３】
CPU2は、自己がスリープ状態であることを示すスリープ信号S24をCPU状態判定回路7に送信してからスリープ状態になる(ステップT16)。
【００６４】
CPU1はCPU2への割り込みを要求ために、割り込み制御回路4内のバスインターフェース回路5に、バス30を介して割り込み要求信号S1aを送信する(ステップT17)。そして、バスインターフェース回路5は、受信した割り込み要求信号S1aから、CPU2に対しての割り込み要求であることを解読し、この解読結果を割り込み先信号S1bとしてCPU状態判定回路7に送信する（ステップT18）。
【００６５】
CPU状態判定回路7は、割り込み先信号S1b の示すCPU2への割り込み要求に応答して、CPU2のスリープ信号S24を参照する。
【００６６】
そして、CPU状態判定回路7は、CPU2がスリープ状態であると判断すると、図2に示す割り込み優先順位テーブルに従い、割り込み先の変更を行う。ただし、CPU設定信号S4cは、CPU2に対応するレジスタreg42の値が「0」に設定され、割り込み先の変更は無効であることを表しているため、CPU状態判定回路7は、割り込み先の変更は行わず、スリープ状態にもかかわらずCPU2を割り込み先CPUに決定する。
【００６７】
そして、CPU状態判定回路7は、割り込み信号の送信先CPUを示す割り込み先信号S2を割り込み信号送信回路6に送信する(ステップT19)。
【００６８】
割り込み信号送信回路6は、受信した割り込み先信号S2に応じて、CPU2へ割り込み信号S4を送信する(ステップT20)。そして、割り込み信号S4を受信したCPU2は、その割り込み信号S4をトリガとして、スリープ状態から通常動作状態に復帰し、CPU1が実行していた処理を引き継ぐ。
【００６９】
以上、第3の実施の形態において、割り込みの管理に機能設定レジスタ18を用いたが、これより、各々のCPUの消費電力状態に応じた割り込み制御に加えて、CPUの個別の割り込み管理が可能となる。例えば、処理速度の異なる複数のCPUにより構成されるマルチプロセッサシステムにおいて、高速処理を行う消費電力の大きいCPUのレジスタの値を「1」(変更可)に設定し、消費電力の小さいCPUのレジスタの値を「0」(変更不可)に設定する。これより、消費電力の大きいCPUに割り込み要求があった場合、それがスリープ状態なら他の消費電力の小さいCPUに割り込み先を変更できる。そして、消費電力が大きいCPUによる処理に適した特定の高速処理が求められるなど、一定条件が満たされる場合に、当該消費電力の大きいCPUのレジスタの値を「0」(変更不可)に設定することにより、その消費電力の大きなCPUがスリープ状態であっても強制的に割り込みをかけることができる。
【００７０】
[第4の実施の形態]
第4の実施の形態は、第2、第3の実施の形態を組み合わせた構成であり、割込み制御回路4が、CPU状態レジスタ8と、機能設定レジスタ18とを有し、CPUはスリープ信号を出力しない。
【００７１】
すなわち、第4の実施の形態では、図8の第3の実施の形態におけるスリープ信号の変わりに、図6の第2の実施の形態におけるCPU状態信号S3cに基づいて、各CPUのスリープ状態が判定される。それ以外は、第3の実施の形態と同じである。
【００７２】
以上の実施の形態をまとめると，次の付記のとおりである。
【００７３】
(付記１)
割り込み要求先プロセッサユニットを指定した割り込み要求を表す割り込み要求信号を送信し、割り込み信号を受信する複数のプロセッサユニットと、
前記複数のプロセッサユニットの各々から前記割り込み要求信号を受信し、前記複数のプロセッサユニットに前記割り込み信号を送信する割り込み制御回路と
を有し、
前記割り込み制御回路は、前記複数のプロセッサユニットの各々から送信される前記割り込み要求信号に応答して、当該割り込み要求信号が指定する前記割り込み要求先プロセッサユニットの消費電力状態が低消費電力状態でない場合は、当該割り込み要求先プロセッサユニットに前記割り込み信号を送信し、低消費電力状態である場合は、前記割込み要求先プロセッサユニットとは異なる他のプロセッサユニットに割り込み信号を送信することを特徴とするマルチプロセッサシステムLSI。
【００７４】
(付記２)
前記他のプロセッサユニットは低消費電力状態でないことを特徴とする付記１記載のマルチプロセッサシステムLSI。
【００７５】
(付記３)
前記他のプロセッサユニット全てが低消費電力状態の場合、前記割り込み要求先プロセッサユニットに割り込み信号を送信することを特徴とする付記２記載のマルチプロセッサシステムLSI。
【００７６】
(付記４)
前記割り込み制御回路は、各々のプロセッサユニットの割り込み優先順が規定された割り込み先優先順位テーブルを有し、当該割り込み先優先順位テーブルに従って前記他のプロセッサユニットへの割り込み信号の送信先の変更を行うことを特徴とする付記１記載のマルチプロセッサシステムLSI。
【００７７】
(付記５)
前記割り込み要求信号が割り込み要求元プロセッサユニットの識別情報を有する付記１記載のマルチプロセッサシステムLSI。
【００７８】
(付記６)
前記割込み制御回路は、前記複数のプロセッサユニットへの割り込み先変更の可否をそれぞれ表す機能設定レジスタを有し、前記割り込み要求信号が指定する前記割り込み要求先プロセッサユニットが低消費電力状態であっても、前記機能設定レジスタが割り込み先変更不可能の場合、前記割り込み要求先プロセッサユニットに割り込み信号を送信することを特徴とする付記1記載のマルチプロセッサシステムLSI。
【００７９】
(付記７)
前記プロセッサユニットは、自己の消費電力状態をそれぞれ表す状態信号を前記割り込み制御回路に出力し、前記割込み制御回路は、当該状態信号に基づいて前記割り込み要求先プロセッサユニットの消費電力状態を判定することを特徴とする付記1記載のマルチプロセッサシステムLSI。
【００８０】
(付記８)
前記プロセッサユニットは、自己の消費電力状態をそれぞれ表す状態設定信号を前記割り込み制御回路に送信し、
前記割込み制御回路は、前記状態設定信号に応じて設定され、前記複数のプロセッサユニットの消費電力状態をそれぞれ表すプロセッサ状態レジスタを有し、当該プロセッサ状態レジスタに基づいて前記割り込み要求先プロセッサユニットの消費電力状態を判定することを特徴とする付記1記載のマルチプロセッサシステムLSI。
【００８１】
(付記９)
割り込み要求を表す割り込み要求信号を送信し、割り込み信号を受信する複数のプロセッサユニットと、
前記複数のプロセッサユニットの各々から前記割り込み要求信号を受信し、前記複数のプロセッサユニットに前記割り込み信号を送信する割り込み制御回路と
を有し、
前記割り込み制御回路は、各々のプロセッサユニットの割り込み優先順が規定された割り込み先優先順位テーブルを有し、
前記複数のプロセッサユニットの各々から送信される前記割り込み要求信号に応答して、前記割り込み先優先順位テーブルに規定された割り込み優先順に従って、低消費電力状態でないプロセッサユニットを選択し、当該選択したプロセッサユニットに割り込み信号を送信することを特徴とするマルチプロセッサシステムLSI。
【００８２】
(付記１０)
前記割り込み先優先順位テーブルの優先順が、各々の前記プロセッサユニットの消費電力が小さい順に決められていることを特徴とする付記４又は９記載のマルチプロセッサシステムLSI。
【００８３】
(付記１１)
前記割り込み先優先順位テーブルの優先順が、各々の前記プロセッサユニットの処理速度が速い順に決められていることを特徴とする付記４又は９記載のマルチプロセッサシステムLSI。
【００８４】
(付記１２)
前記プロセッサユニットは、自己の消費電力状態をそれぞれ表す状態信号を前記割り込み制御回路に出力し、前記割込み制御回路は、当該状態信号に基づいて前記割り込み要求先プロセッサユニットの消費電力状態を判断する付記９記載のマルチプロセッサシステムLSI。
【００８５】
(付記１３)
前記プロセッサユニットは、自己の消費電力状態をそれぞれ表す状態設定信号を前記割り込み制御回路に送信し、
前記割込み制御回路は、前記状態設定信号に応じて設定され、前記複数のプロセッサユニットの消費電力状態をそれぞれ表すプロセッサ状態レジスタを有し、当該プロセッサ状態レジスタの出力信号に基づいて前記割り込み要求先プロセッサユニットの消費電力状態を判定する付記９記載のマルチプロセッサシステムLSI。
【図面の簡単な説明】
【００８６】
【図１】第1の実施の形態におけるマルチプロセッサシステムのブロック図である。
【図２】割り込み先優先順位テーブルの一例を示す図表である。
【図３】CPUがn個ある場合の、一般的な割り込み先優先順位テーブルの一例を示す図表である。
【図４】図2とは異なる割り込み先優先順位テーブルの一例を示す図表である。
【図５】第1の実施の形態における、各部に送信される信号の流れと時間との関係を示す図である。
【図６】第2の実施の形態におけるマルチプロセッサシステムのブロック図である。
【図７】第2の実施の形態における、各部に送信される信号の流れと時間との関係を示す図である。
【図８】第3の実施の形態におけるマルチプロセッサシステムのブロック図である。
【図９】第3の実施の形態における、各部に送信される信号の流れと時間との関係を示す図である。
【符号の説明】
【００８７】
4 割込み制御回路
5 バスインターフェース回路
6 割込み信号送信回路
7 CPU状態判定回路
8 CPU状態レジスタ
18 機能設定レジスタ
20 メモリ
30 バス
【図１】
2010102540.tif 000003
【図２】
2010102540.tif 000004
【図３】
2010102540.tif 000005
【図４】
2010102540.tif 000006
【図５】
2010102540.tif 000007
【図６】
2010102540.tif 000008
【図７】
2010102540.tif 000009
【図８】
2010102540.tif 000010
【図９】
2010102540.tif 000011