(57)【要約】【課題】複数のプロセッサの中から、割り込み要求を処理すべきプロセッサを効率的に決定し得るマルチプロセッサシステムを得る。【解決手段】第１回目の割り込み要求Ｓ１に対応する割り込み信号Ｔ２がプロセッサ２２によって受け付けられると、レジスタ１４１の記憶内容は、初期値のデータ“１１１１”から、プロセッサ２２の番号を示すデータ“０００１”に書き換えられる。次に、第２回目の割り込み要求Ｓ１がデコーダ１５１に入力される。レジスタ１４１にデータ“０００１”が記憶されているため、割り振り部１０Ａは、複数の出力部１１１，１１２の中から出力部１１２を選択して、第２回目の割り込み要求Ｓ１に対応する割り込み信号Ｖ２を入力する。【選択図】        図２
2004220309.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
前記複数のプロセッサに接続された割り込みコントローラと
を備え、
前記割り込みコントローラは、
前記複数のプロセッサの各々に対応して設けられ、対応するプロセッサに対して割り込み信号を出力する、複数の出力部と、
前記複数の出力部に接続された割り振り部と
を有しており、
前記割り込みコントローラに割り込み要求が入力された場合、前記割り振り部は、前記複数の出力部の中から、前回の前記割り込み要求に対応する前記割り込み信号を受け付けた特定プロセッサに対応する特定出力部を選択して、今回の前記割り込み要求に対応する前記割り込み信号を入力する、マルチプロセッサシステム。
【請求項２】
前記割り振り部は、前記特定プロセッサの番号を記憶しておくための記憶部を有しており、
前記複数のプロセッサからのアクセスによって、前記記憶部の記憶内容は設定可能であり、
前記記憶部の記憶内容が所定値に設定された場合、前記割り振り部は、前記複数の出力部の全てに前記割り込み信号を入力する、請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記割り振り部が前記特定出力部に対して前記割り込み信号を出力した後、所定の時間内に前記特定プロセッサが前記割り込み信号を受け付けなかった場合、前記割り振り部は、前記複数の出力部の全てに前記割り込み信号を入力する、請求項１又は２に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、マルチプロセッサシステムに関し、特に、割り込みコントローラを備えるマルチプロセッサシステムに関するものである。
【０００２】
【従来の技術】
割り込みコントローラと複数のプロセッサとを備える従来のマルチプロセッサシステムでは、割り込みコントローラに割り込み要求が入力された場合、複数のプロセッサの全てに、割り込み要求に対応する割り込み信号がそれぞれ入力されていた（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開平８−５５０３８号公報
【０００４】
【発明が解決しようとする課題】
このような従来のマルチプロセッサシステムによると、割り込みを処理すべきプロセッサを、割り込み要因に応じて効率的に振り分けるという制御がなされていないという問題があった。
【０００５】
本発明は、かかる問題を解決するために成されたものであり、ソフトウェアの複雑な介在を伴うことなく、簡単なハードウェア構成によって、複数のプロセッサの中から、割り込み要求を処理すべきプロセッサを効率的に決定し得るマルチプロセッサシステムを得ることを目的とするものである。
【０００６】
【課題を解決するための手段】
この発明によれば、マルチプロセッサシステムは、複数のプロセッサと、複数のプロセッサに接続された割り込みコントローラとを備えている。割り込みコントローラは、複数のプロセッサの各々に対応して設けられ、対応するプロセッサに対して割り込み信号を出力する、複数の出力部と、複数の出力部に接続された割り振り部とを有している。割り込みコントローラに割り込み要求が入力された場合、割り振り部は、複数の出力部の中から、前回の割り込み要求に対応する割り込み信号を受け付けた特定プロセッサに対応する特定出力部を選択して、今回の割り込み要求に対応する割り込み信号を入力する。
【０００７】
【発明の実施の形態】
実施の形態１．
図１は、本発明の実施の形態１に係るマルチプロセッサシステムの構成を示すブロック図である。ＬＳＩ１は、複数のプロセッサ２（図１における２１〜２ｎ）と、バスインタフェースユニット（ＢＩＵ）４と、割り込みコントローラ５と、タイマやシリアルＩ／Ｏ等のＩ／Ｏ装置６と、ＣＰＵバス７と、メモリ等のデバイス（図示しない）が接続された外部バス８と、Ｉ／Ｏバス９とを備えている。プロセッサ２１〜２ｎはそれぞれ、ＣＰＵコア３１〜３ｎと、キャッシュメモリ（図示しない）とを有している。
【０００８】
プロセッサ２１〜２ｎ及びＢＩＵ４は、ＣＰＵバス７に接続されている。ＢＩＵ４、割り込みコントローラ５、及びＩ／Ｏ装置６は、Ｉ／Ｏバス９に接続されている。ＢＩＵ４は、外部バス８に接続されている。割り込みコントローラ５は、プロセッサ２１〜２ｎの各々に直接に接続されている。
【０００９】
ＢＩＵ４は、ＣＰＵバス７上を流れる命令やデータ等の調停や、外部バス８及びＩ／Ｏバス９の制御を行う。プロセッサ２１〜２ｎは、必要とする命令やデータが自己のキャッシュメモリ内に存在しない場合に、その命令やデータのリクエストをＣＰＵバス７に送出する。ＢＩＵ４は、プロセッサ２１〜２ｎからＣＰＵバス７を介して送られてくる上記リクエストの調停を行う。プロセッサ２１〜２ｎから割り込みコントローラ５及びＩ／Ｏ装置６へのアクセス要求は、ＢＩＵ４によって調停された後、Ｉ／Ｏバス９を介して割り込みコントローラ５及びＩ／Ｏ装置６に入力される。
【００１０】
割り込み要因が互いに異なる複数の割り込み要求Ｓ（図１におけるＳ１〜Ｓｍ）は、割り込みコントローラ５に入力される。割り込み要求Ｓ１〜Ｓｍは、ＬＳＩ１に内蔵されたＩ／Ｏ装置６又はＬＳＩ１の外部に接続されたＩ／Ｏ装置（図示しない）によって発生される。割り込みコントローラ５は、各プロセッサ２１〜２ｎに対応する割り込み信号Ｔ（図１におけるＴ１〜Ｔｎ）を生成する。割り込み信号Ｔ１〜Ｔｎは、プロセッサ２１〜２ｎの各々に直接に入力される。
【００１１】
図２は、本実施の形態１に係る割り込みコントローラ５の具体的な構成を示すブロック図である。但し、図面の簡略化のため、図２では、２個のプロセッサ２１，２２のみを備えるマルチプロセッサシステムを想定して、割り込みコントローラ５の構成を示している。割り込みコントローラ５は、割り振り部１０Ａと、プロセッサ間割り込み制御レジスタ１３と、出力部１１（図２における１１１，１１２）と、優先順位判定部１２（図２における１２１，１２２）とを備えている。出力部１１１及び優先順位判定部１２１はプロセッサ２１に対応しており、出力部１１２及び優先順位判定部１２２はプロセッサ２２に対応している。
【００１２】
割り振り部１０Ａは、レジスタ１４（図２における１４１，１４２）と、デコーダ１５１，１５２とを備えている。図２では、割り込み要求Ｓ１に対応するレジスタ１４１及びデコーダ１５１と、割り込み要求Ｓ２に対応するレジスタ１４２及びデコーダ１５２のみを示したが、他の割り込み要求Ｓ３〜Ｓｍに対しても同様に、レジスタ及びデコーダがそれぞれ設けられている。
【００１３】
出力部１１１は、比較器１８１，１９１と、マスクレジスタ１６１と、ステータスレジスタ１７１とを備えている。同様に出力部１１２は、比較器１８２，１９２と、マスクレジスタ１６２と、ステータスレジスタ１７２とを備えている。
【００１４】
レジスタ１４１，１４２、マスクレジスタ１６１，１６２、ステータスレジスタ１７１，１７２、及びプロセッサ間割り込み制御レジスタ１３は、図１に示したＩ／Ｏバス９に接続されており、プロセッサ２１〜２ｎによって各レジスタの記憶内容の読み出し及び書き込みが可能である。例えば、マスクレジスタ１６１，１６２には、割り込みの優先順位が設定されており、マスクレジスタ１６１，１６２に設定されている優先順位は、プロセッサ２１〜２ｎによって変更可能である。
【００１５】
図３は、本実施の形態１に係る割り込みコントローラ５の動作を説明するためのタイミングチャートである。以下、図１〜３を参照し、割り込み要求Ｓ１が３回連続して発生した場合を想定して、本実施の形態１に係る割り込みコントローラ５の動作について説明する。
【００１６】
ＬＳＩ１に内蔵されたＩ／Ｏ装置６又はＬＳＩ１の外部に接続されたＩ／Ｏ装置が発生した第１回目の割り込み要求Ｓ１は、時刻ｔ１において、デコーダ１５１に入力される。レジスタ１４１は、例えば４ビットのディジタルデータを記憶できるレジスタである。時刻ｔ１において、レジスタ１４１には所定の初期値（ここではデータ“１１１１”とする）が記憶されている。レジスタ１４１にデータ“１１１１”が記憶されている場合、デコーダ１５１は、割り込み要求Ｓ１に対応する割り込み信号Ｕ（図２におけるＵ１１，Ｕ１２）を、優先順位判定部１２１，１２２にそれぞれ入力する。優先順位判定部１２１，１２２は、割り込み信号Ｕ１１，Ｕ１２の優先順位を判定した後、割り込み要求Ｓ１に対応する割り込み信号Ｖ（図２におけるＶ１，Ｖ２）をそれぞれ出力する。
【００１７】
割り込み信号Ｖ１，Ｖ２は、比較器１８１，１８２にそれぞれ入力される。比較器１８１，１８２は、図示しない割り込みレベルレジスタに設定されている優先順位と、マスクレジスタ１６１，１６２に設定されている優先順位とをそれぞれ比較する。割り込みレベルレジスタに設定されている優先順位が、マスクレジスタ１６１，１６２に設定されている優先順位よりも高い場合、割り込み信号Ｖ１，Ｖ２はマスクされずに、後段の比較器１９１，１９２に入力される。ここでは、割り込み信号Ｖ１，Ｖ２はいずれもマスクされないものとする。
【００１８】
プロセッサ間割り込み制御レジスタ１３は、プロセッサ２１，２２間の割り込みを制御するレジスタである。プロセッサ間割り込み制御レジスタ１３に書き込みを行うことにより、任意のプロセッサ２１，２２に対してプロセッサ間割り込み要求Ｗ１，Ｗ２が入力される。
【００１９】
プロセッサ間割り込み制御レジスタ１３からプロセッサ間割り込み要求Ｗ１，Ｗ２が入力されている場合、比較器１９１，１９２は、無条件でプロセッサ間割り込み要求Ｗ１，Ｗ２をそれぞれ出力する。一方、プロセッサ間割り込み制御レジスタ１３からプロセッサ間割り込み要求Ｗ１，Ｗ２が入力されていない場合、比較器１９１，１９２は、比較器１８１，１８２から入力された割り込み信号Ｖ１，Ｖ２に基づいて、割り込み要求Ｓ１に対応する割り込み信号Ｔ１，Ｔ２をそれぞれ出力する。ここでは、比較器１９１，１９２から割り込み信号Ｔ１，Ｔ２がそれぞれ出力されるものとする。
【００２０】
割り込み信号Ｔ１，Ｔ２は、プロセッサ２１，２２にそれぞれ入力される。ここでは、時刻ｔ２において、プロセッサ２２が最も早く割り込み信号Ｔ２を受け付けたものとする。すると、プロセッサ２２の番号を示す値（ここではデータ“０００１”とする）がステータスレジスタ１７２に書き込まれる。ステータスレジスタ１７２の記憶内容はレジスタ１４１に伝達され、その結果、レジスタ１４１の記憶内容は、初期値のデータ“１１１１”からデータ“０００１”に書き換えられる。また、プロセッサ２２によって割り込み信号Ｔ２が受け付けられたことを受けて、時刻ｔ２において割り込み信号Ｕ１１，Ｕ１２はキャンセルされる。
【００２１】
次に、時刻ｔ３において、第２回目の割り込み要求Ｓ１がデコーダ１５１に入力される。時刻ｔ３において、レジスタ１４１には、前回割り込み信号Ｔ２を受け付けたプロセッサ（特定プロセッサ）２２の番号を示すデータ“０００１”が記憶されている。レジスタ１４１にデータ“０００１”が記憶されている場合、割り振り部１０Ａは、複数の出力部１１１，１１２の中から、割り込み要求Ｓ１に対応する割り込み信号Ｔを前回受け付けた特定プロセッサ２２に対応する出力部（特定出力部）１１２を選択して、今回の割り込み要求Ｓ１に対応する割り込み信号Ｖ２を入力する。具体的に、デコーダ１５１は、割り込み信号Ｕ１２を優先順位判定部１２２に入力する一方、優先順位判定部１２１には割り込み信号Ｕ１１を入力しない。
【００２２】
上記と同様に、優先順位判定部１２２及び比較器１８２から割り込み信号Ｖ２が出力され、比較器１９２から割り込み信号Ｔ２が出力されたものとする。すると、時刻ｔ４においてプロセッサ２２によって割り込み信号Ｔ２が受け付けられるとともに、割り込み信号Ｕ１２がキャンセルされる。
【００２３】
図２を参照して、プロセッサ２１〜２ｎからレジスタ１４１，１４２にクリア信号Ｍ１，Ｍ２をそれぞれ入力することによって、レジスタ１４１，１４２の記憶内容を強制的にクリアする（即ちデータ“１１１１”に書き戻す）ことも可能である。例えば、プロセッサ２２からのアクセスによって、マスクレジスタ１６２に設定されている優先順位を、割り込み信号Ｖ２の優先順位よりも高い値に変更する場合を考える。この場合、プロセッサ２２は、マスクレジスタ１６２の設定内容を変更するとともに、レジスタ１４１の記憶内容をクリアする。図３を参照し、時刻ｔ５において、レジスタ１４１にクリア信号Ｍ１が入力されることによって、レジスタ１４１の記憶内容がデータ“０００１”から初期値のデータ“１１１１”に書き戻されている。
【００２４】
次に、時刻ｔ６において、第３回目の割り込み要求Ｓ１がデコーダ１５１に入力される。時刻ｔ６において、レジスタ１４１にはデータ“１１１１”が記憶されている。従って、第１回目の割り込み要求Ｓ１が入力された場合と同様に、割り込み信号Ｕ１１，Ｕ１２が優先順位判定部１２１，１２２にそれぞれ入力される。以降の動作は上記と同様であるため、説明は省略する。
【００２５】
このように本実施の形態１に係るマルチプロセッサシステムによれば、割り込みコントローラ５に割り込み要求Ｓが入力された場合、割り振り部１０Ａは、複数の出力部１１の中から、割り込み要求Ｓに対応する割り込み信号Ｔを前回受け付けたプロセッサ２に対応する出力部１１を選択して、割り込み要求Ｓに対応する割り込み信号Ｕを入力する。従って、ソフトウェアの複雑な介在を伴うことなく、簡単なハードウェア構成によって、複数のプロセッサ２の中から、割り込み要求Ｓを処理すべきプロセッサ２を効率的に決定することが可能となる。
【００２６】
また、プロセッサ２からのアクセスによってレジスタ１４の記憶内容が所定値（上記の例ではデータ“１１１１”）に設定された場合、割り振り部１０Ａは、優先順位判定部１２を介して複数の出力部１１の全てに割り込み信号Ｖを入力する。従って、過去の履歴とは無関係に、割り込み要求Ｓを任意のプロセッサ２によって処理することも可能である。
【００２７】
実施の形態２．
図４は、図２に対応させて、本発明の実施の形態２に係る割り込みコントローラ５の具体的な構成を示すブロック図である。割り振り部１０Ｂは、レジスタ１４１，１４２にそれぞれ接続されたタイマ２０１，２０２を備えている。その他の構成は上記実施の形態１と同様であるため、説明は省略する。
【００２８】
図５は、本実施の形態２に係る割り込みコントローラ５の動作を説明するためのタイミングチャートである。以下、図４，５を参照し、割り込み要求Ｓ１が２回連続して発生した場合を想定して、本実施の形態２に係る割り込みコントローラ５の動作について説明する。
【００２９】
上記実施の形態１と同様に、時刻ｔ１において第１回目の割り込み要求Ｓ１がデコーダ１５１に入力され、時刻ｔ２においてプロセッサ２２が最も早く割り込み信号Ｔ２を受け付け、時刻ｔ３において第２回目の割り込み要求Ｓ１がデコーダ１５１に入力されたものとする。その結果、デコーダ１５１は、第２回目の割り込み要求Ｓ１に対応する割り込み信号Ｕ１２を、優先順位判定部１２２に入力する。
【００３０】
タイマ２０１は、クロック数のカウント動作によって、デコーダ１５１が割り込み信号Ｕ１２を優先順位判定部１２２に対して出力してからの時間の経過を計測する。割り込み信号Ｕ１２が出力された後、予め設定された所定の時間内にプロセッサ２２が割り込み信号Ｔ２を受け付けた場合、タイマ２０１のカウント値はゼロにクリアされる。
【００３１】
第１回目の割り込み要求Ｓ１が入力されてから第２回目の割り込み要求Ｓ１が入力されるまでの間に、マスクレジスタ１６２に設定されている優先順位が、割り込み信号Ｖ２の優先順位よりも高い値に変更された場合を考える。この場合、第２回目の割り込み要求Ｓ１に対応する割り込み信号Ｖ２は、比較器１８２から出力されない。その結果、プロセッサ２２は、デコーダ１５１から割り込み信号Ｕ１２が出力されてから上記所定の時間内に、割り込み信号Ｔ２を受け付けない。この場合は、図５に示すように、時刻ｔ４においてタイマ２０１からレジスタ１４１にクリア信号Ｎ１が入力されることによって、レジスタ１４１の記憶内容が強制的にクリアされる（即ちデータ“１１１１”に書き戻される）。この例の場合、上記所定の時間はｔ４−ｔ３となる。レジスタ１４１の記憶内容がデータ“１１１１”に書き戻された結果、時刻ｔ５において、割り込み信号Ｕ１１，Ｕ１２は優先順位判定部１２１，１２２にそれぞれ入力される。
【００３２】
このように本実施の形態２に係るマルチプロセッサシステムによれば、割り振り部１０Ｂが出力部１１２に対して割り込み信号Ｖ２を出力した後、所定の時間内にプロセッサ２２が割り込み信号Ｔ２を受け付けなかった場合、割り振り部１０Ｂは、複数の出力部１１の全てに割り込み信号Ｖを入力する。従って、マスクレジスタ１６２の設定内容の変更等に起因してプロセッサ２２が割り込み信号Ｔ２を受け付けない場合は、他のプロセッサ２１にその割り込み要求Ｓ１を処理させることができる。
【００３３】
実施の形態３．
図６は、図４に対応させて、本発明の実施の形態３に係る割り込みコントローラ５の具体的な構成を示すブロック図である。割り振り部１０Ｃは、ＡＮＤ回路２１１，２１２を備えている。ＡＮＤ回路２１１の一方の入力端子はタイマ２０１に接続されており、出力端子はレジスタ１４１に接続されている。同様に、ＡＮＤ回路２１２の一方の入力端子はタイマ２０２に接続されており、出力端子はレジスタ１４２に接続されている。
【００３４】
本実施の形態３に係る割り込みコントローラ５は、上記実施の形態１と同様に、プロセッサ２１〜２ｎからレジスタ１４１，１４２にクリア信号Ｍ１，Ｍ２をそれぞれ入力することによって、レジスタ１４１，１４２の記憶内容を強制的にクリアすることが可能である。
【００３５】
また、本実施の形態３に係る割り込みコントローラ５は、上記実施の形態２と同様に、タイマ２０１，２０２からレジスタ１４１，１４２にクリア信号Ｎ１，Ｎ２をそれぞれ入力することによって、レジスタ１４１，１４２の記憶内容を強制的にクリアすることも可能である。但し、ＡＮＤ回路２１１，２１２の各他方の入力端子には設定信号Ｐ１，Ｐ２が入力されており、プロセッサ２１〜２ｎからのアクセスによって設定信号Ｐ１，Ｐ２を「Ｌ」レベルに設定することにより、タイマ２０１，２０２によるレジスタ１４１，１４２のクリア機能を実行しないように設定することもできる。
【００３６】
このように本実施の形態３に係るマルチプロセッサシステムによれば、レジスタ１４１，１４２の記憶内容のクリアに関し、上記実施の形態１，２の各機能をともに実現することができる。
【００３７】
【発明の効果】
この発明に係るマルチプロセッサシステムによれば、複数のプロセッサの中から、割り込み要求を処理すべきプロセッサを効率的に決定することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係るマルチプロセッサシステムの構成を示すブロック図である。
【図２】本発明の実施の形態１に係る割り込みコントローラの具体的な構成を示すブロック図である。
【図３】本発明の実施の形態１に係る割り込みコントローラの動作を説明するためのタイミングチャートである。
【図４】本発明の実施の形態２に係る割り込みコントローラの具体的な構成を示すブロック図である。
【図５】本発明の実施の形態２に係る割り込みコントローラの動作を説明するためのタイミングチャートである。
【図６】本発明の実施の形態３に係る割り込みコントローラの具体的な構成を示すブロック図である。
【符号の説明】
２１〜２ｎ  プロセッサ、５  割り込みコントローラ、１０Ａ〜１０Ｃ  割り振り部、１１１，１１２  出力部、１４１，１４２  レジスタ、１５１，１５２  デコーダ、２０１，２０２  タイマ。
【図１】
2004220309.tif 000003
【図２】
2004220309.tif 000004
【図３】
2004220309.tif 000005
【図４】
2004220309.tif 000006
【図５】
2004220309.tif 000007
【図６】
2004220309.tif 000008