(57)【要約】【課題】割込み優先度に従って適切な割込み応答性を確保しつつ、システム全体の処理効率を向上するマルチプロセッサシステムを提供する。【解決手段】レジスタをそれぞれ有する複数のプロセッサと、複数のＩ／Ｏデバイスと、割込み生成器とを備えるマルチプロセッサシステムの割込み制御方法であって、対応するプロセッサが割込みを許容する許容度を示す割込み許容度を前記レジスタに設定する設定ステップと、各Ｉ／Ｏデバイスからの割込みに対しての優先度を示す割込み優先度を記憶部に記憶させた前記割込み生成器が、Ｉ／Ｏデバイスからの割込み要求を受信し、前記割込み要求を、前記Ｉ／Ｏデバイスの割込み優先度とともに前記複数のプロセッサに通知する通知ステップと、前記割込み優先度に比べて低い割込み許容度が記憶されるレジスタを有するプロセッサのいずれかに、前記割込み要求を受理させる割込み受理ステップとを含むことを特徴とする。【選択図】図１
2009251802.tif 000002
【特許請求の範囲】
【請求項１】
レジスタをそれぞれ有する複数のプロセッサと、複数のＩ／Ｏデバイスと、割込み生成器とを備えるマルチプロセッサシステムの割込み制御方法であって、
対応するプロセッサが割込みを許容する許容度を示すマスクレベル値を前記レジスタに設定する設定ステップと、
各Ｉ／Ｏデバイスからの割込みに対しての優先度を示す割込み優先度を記憶部に記憶させた前記割込み生成器が、Ｉ／Ｏデバイスからの割込み要求を受信し、前記割込み要求を、前記Ｉ／Ｏデバイスの割込み優先度とともに前記複数のプロセッサに通知する通知ステップと、
前記割込み優先度の値に比べて低いマスクレベル値に設定されたレジスタを有するプロセッサのいずれかが、前記割込み要求を受理する割込み受理ステップとを含む
ことを特徴とするマルチプロセッサシステムの割込み制御方法。
【請求項２】
前記マルチプロセッサシステムの割込み制御方法は、さらに、
前記複数のＩ／Ｏデバイスの割込み優先度毎に、割込み要求を受理可能なプロセッサの数である第１プロセッサ数と、割込み要求を受理可能にすべきプロセッサの数である第２プロセッサ数とを示すテーブルをメモリに保持させるステップと、
前記第２プロセッサ数を変更する変更ステップと、
前記第２プロセッサ数が変更された場合、変更された前記第２プロセッサ数に第１プロセッサ数を一致させるように、前記複数のマスクレベル値の少なくとも１つを変更するマスクレベル変更ステップとを含む
ことを特徴とする請求項１に記載のマルチプロセッサシステムの割込み制御方法。
【請求項３】
レジスタをそれぞれ有する複数のプロセッサと、複数のＩ／Ｏデバイスと、割込み生成器とを備えるマルチプロセッサシステムであって、
対応するプロセッサが割込みを許容する許容度を示すマスクレベル値を前記レジスタに設定する設定手段と、
各Ｉ／Ｏデバイスからの割込みに対しての優先度を示す割込み優先度を記憶部に記憶させた前記割込み生成器が、Ｉ／Ｏデバイスからの割込み要求を受信し、前記割込み要求を、前記Ｉ／Ｏデバイスの割込み優先度とともに前記複数のプロセッサに通知する通知手段と、
前記割込み優先度の値に比べて低いマスクレベル値に設定されるレジスタを有するプロセッサのいずれかが、前記割込み要求を受理する割込み受理手段とを備える
ことを特徴とするマルチプロセッサシステム。
【請求項４】
前記マルチプロセッサシステムは、さらに、
前記複数のＩ／Ｏデバイスの割込優先度毎に、割込み要求を受理可能なプロセッサの数である第１プロセッサ数と、割込み要求を受理可能にすべきプロセッサの数である第２プロセッサ数とを保持する保持手段と、
前記第２プロセッサ数を変更する変更手段と、
前記第２プロセッサ数が変更された場合、変更された前記第２プロセッサ数に第１プロセッサ数を一致させるように、前記複数のマスクレベル値の少なくとも１つを変更するマスクレベル変更手段とを備える
ことを特徴とする請求項３に記載のマルチプロセッサシステム。
【請求項５】
さらに、前記各プロセッサで実行されるタスクのタスク優先度を保持するタスク優先度保持手段と、
前記各プロセッサで実行されるタスクに従って、前記タスク優先度を変更するタスク優先度変更手段とを備え、
前記変更手段は、前記タスク優先度が変更される場合、前記タスク優先度に従って、前記第２プロセッサ数を変更する
ことを特徴とする請求項４に記載のマルチプロセッサシステム。
【請求項６】
さらに、前記各プロセッサの割込み発生頻度を保持するタスク優先度保持手段と、
前記各プロセッサで実行される割込み回数に従って、前記割込み発生頻度を変更する割込み発生頻度変更手段とを備え、
前記変更手段は、前記割込み発生頻度が変更される場合、前記割込み発生頻度に従って、前記第２プロセッサ数を変更する
ことを特徴とする請求項４に記載のマルチプロセッサシステム。
【請求項７】
レジスタをそれぞれ有する複数のプロセッサと、複数のＩ／Ｏデバイスと、割込み生成器とを備えるマルチプロセッサシステムの集積回路であって、
対応するプロセッサが割込みを許容する許容度を示すマスクレベル値を前記レジスタに設定する設定手段と、
各Ｉ／Ｏデバイスからの割込みに対しての優先度を示す割込み優先度を記憶部に記憶させた前記割込み生成器が、Ｉ／Ｏデバイスからの割込み要求を受信し、前記割込み要求を、前記Ｉ／Ｏデバイスの割込み優先度とともに前記複数のプロセッサに通知する通知手段と、
前記割込み優先度に比べて低いマスクレベル値に設定されたレジスタを有するプロセッサのいずれかが、前記割込み要求を受理する割込み受理手段とを備える
ことを特徴とするマルチプロセッサシステムの集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法に関し、特にマルチプロセッサにおいて割込みを制御するマルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法に関する。
【背景技術】
【０００２】
マルチプロセッサシステムは、典型的に、割込み処理可能な複数のプロセッサと、共有バスと、プロセッサから共有バスを介してアクセス可能な共有メモリと、データの入力や出力を行う装置であるＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスの信号を割込み信号としてプロセッサに通知する割込み生成器とを有する。
【０００３】
ここで、割込みとは、ある連続した処理の最中に、別の処理を行わせることである。
【０００４】
典型的なマルチプロセッサシステムにおいて、割込みは、Ｉ／Ｏデバイスからの信号によって発生し、マルチプロセッサシステムを構成する複数のプロセッサの中から一つのプロセッサに、割込み処理の責任が割当てられる。責任が割当てられたプロセッサは、それまで行っていた処理を中断し、割込みされた処理を実行する。
【０００５】
ここで、割込み制御を行うマルチプロセッサシステムとして、例えば、すべてのプロセッサに対して、割込みを通知し、最も早くその通知を受け取ったプロセッサに、割込み処理の責任を割当てるマルチプロセッサシステムがある。
【０００６】
このマルチプロセッサシステムの割込み制御方法では、割込み発生からプロセッサが処理を開始するまでの応答性は一般に良い。しかし、割込み処理が割当てられたプロセッサ以外のプロセッサでは割込み通知に対する処理をキャンセルするという処理が発生するため、システム全体の処理効率が低下する。
【０００７】
そこで、割込み制御を行うマルチプロセッサシステムとして、例えば、割込みを処理する責任を特定のプロセッサに予め割当てておき、割込みが発生した場合に、責任が割当てられた特定のプロセッサにのみ割込みを通知するマルチプロセッサシステムがある。
【０００８】
図３１は、従来の割込み制御を行うマルチプロセッサシステムの構成を示すブロック図である。図３１に示すマルチプロセッサシステムは、割込み処理可能なプロセッサ３１０１、３１０２、３１０３および３１０４と、共有バス３１１０と、共有バス３１１０を介してアクセス可能な共有メモリ３１２０と、割込み生成器３１３０と、Ｉ／Ｏデバイス１４１、１４２および１４３と、Ｉ／Ｏインタフェース１７０とを備える。
【０００９】
割込み生成器１３０は、Ｉ／Ｏインタフェース１７０を介して入力されるＩ／Ｏデバイス１４１〜１４３の信号を割込み信号としてプロセッサに通知する。
【００１０】
また、割込み生成器３１３０は、割込み信号を通知するプロセッサ（３１０１、３１０２、３１０３または３１０４）を指定するのに用いる指定レジスタ３１００を備える。
【００１１】
指定レジスタ３１００は、タスク優先度の最も低いタスクを実行するプロセッサが設定されている。このように、指定レジスタ３１００において、割込みを処理する責任が特定のプロセッサに予め設定されている。
【００１２】
図３１に示すマルチプロセッサシステムは、指定レジスタ３１００を用いて設定されるプロセッサに割込み処理の責任を割当てることで、システム全体の処理効率を向上している。
【特許文献１】特開２００６−２１６０４２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来の割込み制御方法では、特定のプロセッサに割込み処理の責任が割当てられる。責任が割当てられたプロセッサが、一時的な共有資源の獲得待ちなど、何らかの要因によって応答性が低下してしまった場合には、割込み発生からそのプロセッサが処理を開始するまでの割込み応答性もまた低下してしまう。
【００１４】
そこで、本発明は、上述の事情を鑑みてなされたもので、割込み優先度に従って適切な割込み応答性を確保しつつ、システム全体の処理効率を向上するマルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明に係るマルチプロセッサシステムの割込み制御方法は、レジスタをそれぞれ有する複数のプロセッサと、複数のＩ／Ｏデバイスと、割込み生成器とを備えるマルチプロセッサシステムの割込み制御方法であって、対応するプロセッサが割込みを許容する許容度を示すマスクレベル値を前記レジスタに設定する設定ステップと、各Ｉ／Ｏデバイスからの割込みに対しての優先度を示す割込み優先度を記憶部に記憶させた前記割込み生成器が、Ｉ／Ｏデバイスからの割込み要求を受信し、前記割込み要求を、前記Ｉ／Ｏデバイスの割込み優先度とともに前記複数のプロセッサに通知する通知ステップと、前記割込み優先度の値に比べて低いマスクレベル値に設定されたレジスタを有するプロセッサのいずれかが、前記割込み要求を受理する割込み受理ステップとを含むことを特徴とする。
【００１６】
また、好ましくは、前記マルチプロセッサシステムの割込み制御方法は、さらに、前記複数のＩ／Ｏデバイスの割込み優先度毎に、割込み要求を受理可能なプロセッサの数である第１プロセッサ数と、割込み要求を受理可能にすべきプロセッサの数である第２プロセッサ数とを示すテーブルをメモリに保持させるステップと、前記第２プロセッサ数を変更する変更ステップと、前記第２プロセッサ数が変更された場合、変更された前記第２プロセッサ数に第１プロセッサ数を一致させるように、前記複数のマスクレベル値の少なくとも１つを変更するマスクレベル変更ステップとを含む。
【００１７】
また、上記目的を達成するために、本発明に係るマルチプロセッサシステムは、レジスタをそれぞれ有する複数のプロセッサと、複数のＩ／Ｏデバイスと、割込み生成器とを備えるマルチプロセッサシステムであって、対応するプロセッサが割込みを許容する許容度を示すマスクレベル値を前記レジスタに設定する設定手段と、各Ｉ／Ｏデバイスからの割込みに対しての優先度を示す割込み優先度を記憶部に記憶させた前記割込み生成器が、Ｉ／Ｏデバイスからの割込み要求を受信し、前記割込み要求を、前記Ｉ／Ｏデバイスの割込み優先度とともに前記複数のプロセッサに通知する通知手段と、前記割込み優先度の値に比べて低いマスクレベル値に設定されるレジスタを有するプロセッサのいずれかが、前記割込み要求を受理する割込み受理手段とを備えることを特徴とする。
【００１８】
また、好ましくは、前記マルチプロセッサシステムは、さらに、前記複数のＩ／Ｏデバイスの割込優先度毎に、割込み要求を受理可能なプロセッサの数である第１プロセッサ数と、割込み要求を受理可能にすべきプロセッサの数である第２プロセッサ数とを保持する保持手段と、前記第２プロセッサ数を変更する変更手段と、前記第２プロセッサ数が変更された場合、変更された前記第２プロセッサ数に第１プロセッサ数を一致させるように、前記複数のマスクレベル値の少なくとも１つを変更するマスクレベル変更手段とを備える。
【００１９】
また、さらに、前記各プロセッサで実行されるタスクのタスク優先度を保持するタスク優先度保持手段と、前記各プロセッサで実行されるタスクに従って、前記タスク優先度を変更するタスク優先度変更手段とを備え、前記変更手段は、手段前記タスク優先度が変更される場合、前記タスク優先度に従って、前記第２プロセッサ数を変更してもよい。
【００２０】
また、さらに、前記各プロセッサの割込み発生頻度を保持するタスク優先度保持手段と、前記各プロセッサで実行される割込み回数に従って、前記割込み発生頻度を変更する割込み発生頻度変更手段とを備え、前記変更手段は、前記割込み発生頻度が変更される場合、前記割込み発生頻度に従って、前記第２プロセッサ数を変更してもよい。
【００２１】
なお、本発明は、装置として実現するだけでなく、このような装置が備える処理手段を備える集積回路として実現したり、その装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現したり、そのプログラムを示す情報、データまたは信号として実現したりすることもできる。そして、それらプログラム、情報、データおよび信号は、インターネット等の通信ネットワークを介して配信してもよい。
【発明の効果】
【００２２】
本発明によれば、割込み優先度に従って適切な割込み応答性を確保しつつ、システム全体の処理効率を向上できるマルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法を実現することができる。
【発明を実施するための最良の形態】
【００２３】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
【００２４】
（実施の形態１）
図１は、本発明の実施の形態１におけるマルチプロセッサシステムの構成を示すブロック図である。
【００２５】
図１に示すマルチプロセッサシステムは、プロセッサ１０１、１０２、１０３および１０４と、共有バス１１０と、共有メモリ１２０と、割込み生成器１３０と、Ｉ／Ｏデバイス１４１、１４２および１４３と、Ｉ／Ｏインタフェース１７０とを備える。
【００２６】
プロセッサ１０１、１０２、１０３および１０４は、共有バス１１０を介して相互に通信可能である。また、プロセッサ１０１、１０２、１０３および１０４は共有バス１１０を介して共有メモリ１２０にアクセス可能である。また、プロセッサ１０１、１０２、１０３および１０４はそれぞれ、マスクレベルレジスタ１６１、１６２、１６３および１６４を備える。
【００２７】
割込み生成器１３０は、要因別優先度テーブル１５０を備える。要因別優先度テーブル１５０は、Ｉ／Ｏデバイス１４１、１４２および１４３それぞれに予め定義された割込み優先度を有している。
【００２８】
また、割込み生成器１３０は、Ｉ／Ｏインタフェース１７０を介して、Ｉ／Ｏデバイス１４１、１４２または１４３の割込みの要求が通知される。割込み生成器１３０は、すべてのプロセッサ（１０１、１０２、１０３および１０４）に対し、割込みの要求を発生したＩ／Ｏデバイス（１４１、１４２または１４３）の識別番号と、要因別優先度テーブル１５０に定義されているＩ／Ｏデバイス（１４１、１４２または１４３）の割込み優先度とを共有バス１１０を介して通知する。
【００２９】
プロセッサ１０１、１０２、１０３および１０４はそれぞれマスクレベルレジスタ１６１、１６２、１６３および１６４を備える。ここで、マスクレベルレジスタ１６１、１６２、１６３および１６４には、プロセッサ１０１、１０２、１０３および１０４それぞれが割込みを許可する割込みの中で最も低い割込み優先度が格納される。
【００３０】
例えばプロセッサ１０１は、割込み生成器１３０からの割込み要求の通知に対して、マスクレベルレジスタ１６１に格納された割込み優先度と、割込み生成器１３０から通知された割込み優先度とを比較する。プロセッサ１０１は、割込み生成器１３０から通知された割込み優先度が、マスクレベルレジスタ１６１に格納された割込み優先度未満である場合には、割込み生成器１３０からの割込み要求の通知を無視する。プロセッサ１０１は、割込み生成器１３０から通知された割込み優先度が、マスクレベルレジスタ１６１に格納された割込み優先度以上である場合には、それまで行っていた処理を中断し、割込み処理を開始する。なお、プロセッサ１０２、１０３および１０４もプロセッサ１０１と同様のため、説明を省略する。
【００３１】
以上のように図１に示すマルチプロセッサシステムは構成される。
【００３２】
図２は、本発明の実施の形態１における要因別優先度テーブル１５０の状態を示す図である。図２では、Ｉ／Ｏデバイス１４１、１４２および１４３の割り込み優先度を示している。図２において、Ｉ／Ｏデバイス１４２の割込み要求はＩ／Ｏデバイス１４１より優先的に処理されるべき割込みであるとし、Ｉ／Ｏデバイス１４３の割込み要求はＩ／Ｏデバイス１４２より優先的に処理されるべき割込みであるとしている。すなわち、要因別優先度テーブル１５０では、図２に示すように割込み優先度の値が大きい程優先度が高いと定義し、Ｉ／Ｏデバイス間の割込みの優先順位を表現している。
【００３３】
図３は、本発明の実施の形態１における割込み優先度と割込み許可プロセッサ数との関係を示す図である。図４は、本発明の実施の形態１におけるマスクレベルレジスタ値を示す図である。
【００３４】
図３では、図２に示す各々のＩ／Ｏデバイス（１４１、１４２および１４３）の割込み優先度に対して、割込みを許可するプロセッサの総数を［割込み許可プロセッサ数］として示され、割込みを許可するプロセッサ（１０２、１０３または１０４）が［割込み許可プロセッサ一覧］として示される。
【００３５】
このとき、各々のプロセッサ（１０２、１０３および１０４）のマスクレベルレジスタ値は図４に示す値で定義される。具体的には、プロセッサ１０１は、図３に示されるように割込み優先度１以上の割込みを許可するため、図４で示されるマスクレベルレジスタ１６１の値は１となる。プロセッサ１０２は、図３で示されるように割込み優先度１の割込みを禁止し、割込み優先度２以上の割込みを許可するため、図４で示されるマスクレベルレジスタ１６２の値は２となる。プロセッサ１０３および１０４は、図３で示されるように割込み優先度２以下の割込みを禁止し、割込み優先度３以上の割込みを許可するため、図４で示されるマスクレベルレジスタ１６３および１６４の値は３となる。
【００３６】
次に、図１に示す本発明の実施形態１のマルチプロセッサシステムについて、例を用いて動作を説明する。
【００３７】
図５は、本発明の実施の形態１におけるＩ／Ｏデバイスの割込み要求の発生からプロセッサ別割込み処理の開始までの処理を示すフローチャートである。図６は、本発明の実施の形態１におけるプロセッサ別割込み処理を示すフローチャートである。
【００３８】
まず、例えばＩ／Ｏデバイス１４２で割込み要求が発生すると（Ｓ５１）、Ｉ／Ｏインタフェース１７０を介して割込み生成器１３０に割込み要求が通知される（Ｓ５２）。
【００３９】
次に、割込み生成器１３０は、図２に示す要因別優先度テーブル１５０を参照し、割込み要求を発生したＩ／Ｏデバイス１４２の割込み優先度を取得する（Ｓ５３）。割込み生成器１３０は、Ｉ／Ｏデバイス１４２より取得したＩ／Ｏデバイス１４２の識別番号と、要因別優先度テーブル１５０より取得した割込み優先度１とを、共有バス１１０を介してすべてのプロセッサ（１０１、１０２、１０３および１０４）に通知する。なお、Ｉ／Ｏデバイス１４１および１４３が割込み要求を発生する場合も同様なので、説明は省略する。
【００４０】
次に、プロセッサ１０１、１０２、１０３および１０４は、割込み生成器１３０からの通知を受信し（Ｓ５５）、プロセッサ１０１、１０２、１０３および１０４は各々プロセッサ別割込み処理を実行する（Ｓ５６）。
【００４１】
以上のようにして、プロセッサ１０１、１０２、１０３および１０４は、プロセッサ別割込み処理を開始する。
【００４２】
次に、プロセッサ１０１、１０２、１０３および１０４は、図６に示すように、割込み生成器１３０から通知されたＩ／Ｏデバイス１４２の割込み優先度の値と、マスクレベルレジスタ１６１、１６２、１６３および１６４の値とを比較する（Ｓ５６１）。割込み生成器１３０から通知されたＩ／Ｏデバイス１４２の割込み優先度が、例えばマスクレベルレジスタ１６４の値未満であった場合は、マスクレベルレジスタ１６４を有するプロセッサ１０４は、割込み生成器１３０からの割込み通知を無視して実行中の処理を継続する（Ｓ５６２）。
【００４３】
また、割込み生成器１３０から通知されたＩ／Ｏデバイス１４２の割込み優先度の値が例えばプロセッサ１０２のマスクレベルレジスタ１６２の値以上であった場合は、プロセッサ１０２は、割込み生成器１３０からの割込み通知を受理し、実行中の処理を中断する（Ｓ５６３）。
【００４４】
次に、割込み生成器１３０からの割込み通知を受理したプロセッサ１０２は、プロセッサ１０１、１０３および１０４間で重複して割込みが処理されることを回避するため、排他制御を行う。すなわち、プロセッサ１０２は、割込み生成器１３０から通知されたＩ／Ｏデバイス１４２の識別番号について、該当する割込み処理を実行する権限の獲得を試みる（Ｓ５６４）。なお、プロセッサ（１０１、１０２、１０３および１０４）間の排他制御に関しては、ミューテックスなど多くの従来技術によって実現が可能である。
【００４５】
次に、割込み処理を実行する権限の獲得に失敗したならば（Ｓ５６５のＮｏの場合）、割込み処理をキャンセルし、割込み生成器１３０から通知を受ける以前の処理に復帰する（Ｓ、Ｓ５６６）。
【００４６】
割込み処理を実行する権限の獲得に成功したならば（Ｓ５６５のＹｅｓの場合）、割込み生成器１３０から通知されたＩ／Ｏデバイス１４２の識別番号に該当する割込み処理を実行する（Ｓ５６７）。
【００４７】
以上のようにして、プロセッサ１０１、１０２、１０３および１０４は、プロセッサ別割込み処理を行う。
【００４８】
ここで、例えばＩ／Ｏデバイス１４１が、割込み要求を発生した場合には、割込み生成器１３０からプロセッサ１０１、１０２、１０３および１０４に通知される割込み優先度は１であるのに対して、マスクレベルレジスタの値が１以下であるプロセッサはプロセッサ１０１のみであるため、Ｓ５６１の判定によってプロセッサ１０１のみが割込み生成器１３０からの通知を受理する。
【００４９】
したがって、Ｉ／Ｏデバイス１４１の割込み処理が開始されるまでの遅延時間は、プロセッサ１０１が割込み処理を開始するまでの時間となる。
【００５０】
このとき、プロセッサ１０２、１０３および１０４はＳ５６１における判定により割込み生成器１３０からの通知を無視するため、プロセッサ１０１、１０２、１０３および１０４のいずれにおいてもＳ５６６における割込み処理のキャンセルは発生せず、処理効率の低下を抑止できる。
【００５１】
また、例えば、Ｉ／Ｏデバイス１４３が割込み要求を発生した場合には、割込み生成器１３０からプロセッサ１０１、１０２、１０３および１０４に通知される割込み優先度は３であるのに対して、マスクレベルレジスタの値が３以下であるプロセッサはプロセッサ１０１、１０２、１０３および１０４のすべてであるため、Ｓ５６１における判定によってプロセッサ１０１、１０２、１０３および１０４すべてが割込み生成器１３０からの通知を受理する可能性がある。
【００５２】
したがって、プロセッサ１０１、１０２、１０３および１０４はいずれもＳ５６６における割込み処理のキャンセルが発生する可能性があるが、Ｉ／Ｏデバイス１４３の割込み処理が開始されるまでの遅延時間は、プロセッサ１０１、１０２、１０３および１０４が割込み処理を開始するまでの時間の中で最短となり、Ｉ／Ｏデバイス１４１が割込み要求を発生した場合と比較して、より高い応答性能を得られる。
【００５３】
以上のように、実施の形態１のマルチプロセッサシステムにおける割込み制御方法によれば、割込み優先度の低い割込みに対してはシステムの処理効率の低下を抑止し、割込み優先度の高い割込みに対しては、より高い応答性能を確保することが可能である。それにより、割込み優先度に従って適切な割込み応答性を確保しつつ、システム全体の処理効率を向上できるマルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法を実現することができる。
【００５４】
（実施の形態２）
実施の形態２では、Ｉ／Ｏデバイス１４１、１４２および１４３の各々の割込み優先度に対して、割込みを許可するプロセッサの割当てが適宜変更可能なマルチプロセッサシステムについて説明する。
【００５５】
図７は、本発明の実施の形態２におけるマルチプロセッサシステムの構成を示すブロック図である。図７に示すマルチプロセッサシステムは、実施の形態１の図１に示すマルチプロセッサシステムと比べて、共有メモリ７２０の構成が異なり、共有メモリ７２０は、優先度別プロセッサ数テーブル７００が追加されている点が異なっている。なお、図１と同様の要素には同一の符号を付しており、詳細な説明は省略する。
【００５６】
図８は、本発明の実施の形態２における割込み優先度と割込み許可プロセッサ数との関係を示す図である。図８では、優先度別プロセッサ数テーブル７００に記憶される情報の例を示している。
【００５７】
図８に示す優先度別プロセッサ数テーブル７００は、第１の実施形態の図３と比べて、Ｉ／Ｏデバイスの割込み優先度における割込みを許可するプロセッサの総数の示し方が異なっている。すなわち、Ｉ／Ｏデバイスの割込み優先度における割込みを許可するプロセッサの総数を、Ｉ／Ｏデバイスの割込み優先度における現時点で割込みを許可しているプロセッサの総数を示す［割込み許可プロセッサ数（現在数）］と、Ｉ／Ｏデバイスの割込み優先度における割込みを許可すべきプロセッサの総数を示す［割込み許可プロセッサ数（適正数）］とに分割している。
【００５８】
さらに、図８に示す優先度別プロセッサ数テーブル７００では、Ｉ／Ｏデバイスの割込み優先度において割込みを禁止されているプロセッサの一覧を示す［割込み禁止プロセッサ一覧］が追加されている。
【００５９】
図９は、本発明の実施の形態２のマルチプロセッサシステムにおける割込み許可プロセッサ数変更の処理を示すフローチャートである。
【００６０】
まず、図８における［割込み許可プロセッサ数（適正数）］の値を変更するよう、例えばプロセッサ１０４に指示される（Ｓ９１）。ここで、指示されるプロセッサはプロセッサ１０１、プロセッサ１０２または１０３でもよく、いずれの場合も同様のため説明を省略する。
【００６１】
次に、プロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、図８における［割込み許可プロセッサ数（適正数）］の値を、指示された任意の適正数を示す値に変更する（Ｓ９２）。言い換えれば、プロセッサ１０４により、共有メモリ７２０が有する優先度別プロセッサ数テーブル７００の［割込み許可プロセッサ数（適正数）］の値が変更される（Ｓ９２ａ、Ｓ９２ｂ）。
【００６２】
次に、プロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整が必要かどうかを判定する（Ｓ９３）。ここで、マスクレベルレジスタ再調整が必要でないと判定した場合には（Ｓ９３のＮｏの場合）、割込み許可プロセッサ数変更の処理を終了する。
【００６３】
プロセッサ１０４は、マスクレベルレジスタ再調整が必要であると判定した場合には（Ｓ９３のＹｅｓの場合）、共有メモリ７２０が有する優先度別プロセッサ数テーブル７００において割込み許可プロセッサ再割当て処理を行う（Ｓ９４）。
【００６４】
次に、プロセッサ１０４は、Ｓ９４において割込み許可プロセッサ再割当て処理されたプロセッサ（指定プロセッサ）に対してマスクレベルレジスタ値変更処理を行う（Ｓ９５）。
【００６５】
次に、プロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整が必要かどうかを判定し（Ｓ９６）、マスクレベルレジスタ再調整が必要でないと判定した場合には（Ｓ９６のＮｏの場合）、割込み許可プロセッサ数変更の処理を終了する。マスクレベルレジスタ再調整が必要であると判定した場合には（Ｓ９６のＮｏの場合）、Ｓ９４からの処理は、マスクレベルレジスタ再調整が必要でないと判定するまで繰り返される。
【００６６】
以上のようにして、実施の形態２におけるマルチプロセッサシステムは、割込み許可プロセッサ数の変更の処理を行う。
【００６７】
図１０は、Ｓ９３またはＳ９７においてマスクレベルレジスタの再調整が必要かを判定する処理を示すフローチャートである。
【００６８】
ここで、図９同様に、例えばプロセッサ１０４は、マスクレベルレジスタの再調整が必要かを判定し、再調整を実行するとする。なお、プロセッサ１０１、１０２および１０３の場合も同様のため説明は省略する。
【００６９】
まず、プロセッサ１０４は、共有メモリ７２０が有する優先度別プロセッサ数テーブル７００を参照し、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しない指定割込み優先度が存在するかどうかを確認する。プロセッサ１０４は、すべての指定割込み優先度における［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致するならば、再調整が必要な指定割込み優先度が存在しないと判定し（Ｓ９３１のＮｏの場合）、マスクレベルレジスタの再調整が必要でないとして判定処理を終了する。
【００７０】
次に、プロセッサ１０４は、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しない指定割込み優先度が存在するならば（Ｓ９３１のＹｅｓの場合）、一致しない指定割込み優先度における割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【００７１】
以上のようにして、実施の形態２におけるマルチプロセッサシステムは、マスクレベルレジスタの再調整が必要かを判定する。
【００７２】
図１１は、Ｓ９４において割込み許可プロセッサ再割当て処理を示すフローチャートである。
【００７３】
ここで、図９および図１０同様に、例えばプロセッサ１０４が、割込み許可プロセッサ再割当て処理を実行するとする。なお、プロセッサ１０１、１０２および１０３の場合も同様のため説明は省略する。
【００７４】
まず、プロセッサ１０４は、共有メモリ７２０が有する優先度別プロセッサ数テーブル７００を参照する。プロセッサ１０４は、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しない指定割込み優先度に対応する［割込み許可プロセッサ数（現在数）］の値と［割込み許可プロセッサ数（適正数）］との値を比較する。そして、プロセッサ１０４は、割込みが許可されたプロセッサ数（現在数）が過多であるかどうかを判断する（Ｓ９５２）。
【００７５】
次に、プロセッサ１０４は、［割込み許可プロセッサ数（現在数）］が［割込み許可プロセッサ数（適正数）］より大きいならば、割込みが許可されたプロセッサ数（現在数）が過多であると判断する（Ｓ９５２のＹｅｓの場合）。次いで、プロセッサ１０４は、優先度別プロセッサ数テーブル７００における［割込み許可プロセッサ一覧］に含まれるプロセッサから、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］との差分に相当する数のプロセッサを変更対象として選択する（Ｓ９５３）。プロセッサ１０４は、変更対象として選択した各々のプロセッサに対して、対応するマスクレベルレジスタの割込み優先度の値を、例えば「Ｉ／０デバイスの割込み優先度（以下、指定割込み優先度と呼ぶ）＋１」に変更するよう、共有バス１１０を介して通知する（Ｓ９５４）。
【００７６】
また、プロセッサ１０４は、Ｓ９５２において、［割込み許可プロセッサ数（現在数）］が［割込み許可プロセッサ数（適正数）］より小さいならば、割込みが許可されたプロセッサ数（現在数）が不足していると判断する（Ｓ９５２のＮｏの場合）。次いで、プロセッサ１０４は、優先度別プロセッサ数テーブル７００における［割込み禁止プロセッサ一覧］に含まれるプロセッサから、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］との差分に相当する数のプロセッサを変更対象として選択する（Ｓ９５５）。プロセッサ１０４は、変更対象として選択した各々のプロセッサそれぞれに対して、対応するマスクレベルレジスタの割込み優先度の値を例えば指定優先度の値に変更するよう、共有バス１１０を介して通知する（Ｓ９５６）。
【００７７】
以上のようにして、実施の形態２におけるマルチプロセッサシステムは、割込み許可プロセッサ再割当て処理を実行する。
【００７８】
図１２は、Ｓ９５４またはＳ９５６においてマスクレベルレジスタ値変更処理を示すフローチャートである。なお、プロセッサ１０１、１０２および１０３の場合も同様のため説明は省略する。
【００７９】
ここで、図９および図１０同様に、例えばプロセッサ１０４が、割込み許可プロセッサ再割当てを実行するとする。
【００８０】
Ｓ９５４またはＳ９５６において、プロセッサ１０４により、マスクレベルレジスタの割込み優先度の値の変更を指示されたプロセッサは、対応するマスクレベルレジスタの割込み優先度の値を、指定された値に変更する（Ｓ９５１）。
【００８１】
次に、プロセッサ１０４は、マスクレベルレジスタの変更後の割込み優先度の値より低い指定割込み優先度（Ｉ／０デバイスの割込み優先度）において、そのマスクレベルレジスタに対応するプロセッサが［割込み許可プロセッサ一覧］に含まれているならば、［割込み許可プロセッサ一覧］からプロセッサを削除する。そして、プロセッサ１０４は、［割込み禁止プロセッサ一覧］に、削除したプロセッサを追加するとともに、［割込み許可プロセッサ数（現在数）］から１を減算することで、優先度別プロセッサ数テーブル７００を更新する（Ｓ９５２）。
【００８２】
また、プロセッサ１０４は、マスクレベルレジスタの変更後の割込み優先度の値以上の指定割込み優先度（Ｉ／０デバイスの割込み優先度）において、そのマスクレベルレジスタに対応するプロセッサが［割込み禁止プロセッサ一覧］に含まれているならば、［割込み禁止プロセッサ一覧］からプロセッサを削除する。そして、プロセッサ１０４は、［割込み許可プロセッサ一覧］に削除したプロセッサを追加するとともに、［割込み許可プロセッサ数（現在数）］に１を加算することで、優先度別プロセッサ数テーブル７００を更新する（Ｓ９５２）。
【００８３】
以上のようにして、実施の形態２におけるマルチプロセッサシステムは、マスクレベルレジスタ値変更処理を実行する。
【００８４】
次に、図７に示す本発明の実施の形態２のマルチプロセッサシステムについて、例を用いてその動作を説明する。
【００８５】
ここで、優先度別プロセッサ数テーブル７００が、図８に示す状態にあるとする。このとき、プロセッサ１０４が、Ｉ／Ｏデバイスの割込み優先度（指定割込み優先度）２における割込みを許可すべきプロセッサ数を、２から１に変更する場合の動作を例に挙げて説明する。
【００８６】
図１３、図１４および図１５は、優先度別プロセッサ数テーブル７００と各プロセッサのマスクレベルレジスタの状態とを示す図である。
【００８７】
まず、プロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、指定割込み優先度２に対応する［割込み許可プロセッサ数（適正数）］を２から１に変更する（Ｓ９２）。ここで、Ｓ９２の処理実行直後の優先度別プロセッサ数テーブル７００と、プロセッサ１０１、１０２、１０３および１０４におけるマスクレベルレジスタ１６１、１６２、１６３および１６４との状態は、図１３に示すとおりである。
【００８８】
次に、プロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整が必要かどうかを判定し（Ｓ９３）、割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【００８９】
具体的には、Ｓ９３においてプロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しない指定割込み優先度が存在するかどうかを確認する。プロセッサ１０４は、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しない指定割込み優先度２が存在するため（Ｓ９３１のＹｅｓの場合）、指定割込み優先度２における割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【００９０】
Ｓ９４において、プロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、指定割込み優先度２に対応する［割込み許可プロセッサ数（現在数）］の値と［割込み許可プロセッサ数（適正数）］の値とを比較する。そして、プロセッサ１０４は、割込みが許可されたプロセッサ数（現在数）が過多であるかどうかを判断する（Ｓ９５２）。
【００９１】
プロセッサ１０４は、指定割込み優先度２に対応する［割込み許可プロセッサ数（現在数）］が［割込み許可プロセッサ数（適正数）］より１大きいので、割込みが許可されているプロセッサの数が過多であると判断する（Ｓ９５２のＹｅｓの場合）。次に、プロセッサ１０４は、［割込み許可プロセッサ一覧］に含まれるプロセッサから１つのプロセッサを変更対象として選択する（Ｓ９５３）。プロセッサ１０４は、変更対象として選択した例えばプロセッサ１０１に対して、マスクレベルレジスタ１６１の値を１から３（指定割込み優先度２＋１）に変更するよう共有バス１１０を介して通知する（Ｓ９５４）。なお、ここでは、マスクレベルレジスタを変更するプロセッサとしてプロセッサ１０１が選択されたものとしているがそれに限らない。
【００９２】
次に、プロセッサ１０４は、Ｓ９４において、割込み許可プロセッサ再割当て処理されたプロセッサに対してマスクレベルレジスタ値変更処理を行う（Ｓ９５）。
【００９３】
具体的には、Ｓ９５において、プロセッサ１０４により、マスクレベルレジスタ１６１の割込み優先度の値の変更を指示されたプロセッサ１０１は、マスクレベルレジスタ１６１の値を１から３に変更する（Ｓ９５１）。次に、プロセッサ１０４は、指定割込み優先度１および２における［割込み許可プロセッサ一覧］からプロセッサ１０１を削除する。そして、プロセッサ１０４は、［割込み禁止プロセッサ一覧］にプロセッサ１０１を追加するとともに、［割込み許可プロセッサ数（現在数）］から１を減算することで、優先度別プロセッサ数テーブル７００を更新する（Ｓ９５２）。このとき、指定割込み優先度３における［割込み禁止プロセッサ一覧］にはプロセッサ１０１が含まれていないため、指定割込み優先度３における［割込み許可プロセッサ数（現在数）］の変更は行わない。
【００９４】
ここで、Ｓ９５２の処理実行直後の優先度別プロセッサ数テーブル７００と、プロセッサ１０１、１０２、１０３および１０４におけるマスクレベルレジスタ１６１、１６２、１６３および１６４の状態は、図１４に示すとおりである。
【００９５】
次に、プロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整がさらに必要かどうかを判定し（Ｓ９６）、割込み許可プロセッサの再割当て処理を再度行う（Ｓ９４）。
【００９６】
具体的には、プロセッサ１０４は、Ｓ９６において、優先度別プロセッサ数テーブル７００を参照し、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しない指定割込み優先度が存在するかどうかを確認する。プロセッサ１０４は、指定割込み優先度１における［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しないため（Ｓ９３１のＹｅｓの場合）、指定割込み優先度１における割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【００９７】
Ｓ９４において、プロセッサ１０４は優先度別プロセッサ数テーブル７００を参照し、指定割込み優先度１に対応する［割込み許可プロセッサ数（現在数）］の値と［割込み許可プロセッサ数（適正数）］の値とを比較する。そして、プロセッサ１０４は、割込みが許可されたプロセッサ数（現在数）が過多であるかどうかを判断する（Ｓ９５２）。
【００９８】
プロセッサ１０４は、指定割込み優先度１に対応する［割込み許可プロセッサ数（現在数）］が［割込み許可プロセッサ数（適正数）］より１小さいため、割込みが許可されているプロセッサの数が不足していると判断する（Ｓ９５２のＮｏの場合）。次に、プロセッサ１０４は、［割込み禁止プロセッサ一覧］に含まれるプロセッサから１つのプロセッサを変更対象として選択する（Ｓ９５５）。プロセッサ１０４は、変更対象として選択した例えばプロセッサ１０２に対して、マスクレベルレジスタ１６２の値を２から１（指定割込み優先度１）に変更するよう共有バス１１０を介して通知する（Ｓ９５６）。なお、ここでは、マスクレベルレジスタを変更するプロセッサとしてプロセッサ１０２が選択されたものとしているがそれに限らない。
【００９９】
次に、プロセッサ１０４は、Ｓ９４において、割込み許可プロセッサ再割当て処理されたプロセッサに対してマスクレベルレジスタ値変更処理を行う（Ｓ９５）。
【０１００】
具体的には、Ｓ９５において、プロセッサ１０４により、マスクレベルレジスタ１６２の割込み優先度の値の変更を指示されたプロセッサ１０２はマスクレベルレジスタ１６２の値を２から１に変更する（Ｓ９５１）。次に、プロセッサ１０４は、指定割込み優先度１における［割込み禁止プロセッサ一覧］からプロセッサ１０２を削除する。そして、プロセッサ１０４は、［割込み許可プロセッサ一覧］にプロセッサ１０２を追加するとともに、［割込み許可プロセッサ数（現在数）］に１を加算することで、優先度別プロセッサ数テーブル７００を更新する（Ｓ９５２）。このとき、指定割込み優先度２および３における［割込み禁止プロセッサ一覧］にはプロセッサ１０２が含まれていないため、指定割込み優先度２および３における［割込み許可プロセッサ数（現在数）］の変更は行わない。
【０１０１】
ここで、Ｓ９５２の処理実行直後における優先度別プロセッサ数テーブル７００と、プロセッサ１０１、１０２、１０３および１０４におけるマスクレベルレジスタ１６１、１６２、１６３および１６４の状態は、図１５に示すとおりである。
【０１０２】
次に、プロセッサ１０４は、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整がさらに必要かどうかを判定する（Ｓ９６）。プロセッサ１０４は、図１５に示すように、すべての指定割込み優先度における［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致するため、マスクレベルレジスタ再調整が必要でないと判定し（Ｓ９６のＮｏの場合）、割込み許可プロセッサ数変更の処理を終了する。
【０１０３】
以上のように、本実施の形態２のマルチプロセッサシステムは、すべての指定割込み優先度において、割込みを許可されているプロセッサの総数（［割込み許可プロセッサ数（現在数）］）と割込みを許可すべきプロセッサの総数（［割込み許可プロセッサ数（適正数）］）とが一致するように各々のプロセッサにおけるマスクレベルレジスタの再調整を実行することにより、割込み許可プロセッサ数の変更の処理を行う。
【０１０４】
以上、実施の形態２のマルチプロセッサシステムにおける割込み制御方法によれば、実施の形態１のマルチプロセッサシステムにおける割込み制御方法に加え、割込みを許可するプロセッサの割当てを任意に変更することが可能である。それにより、割込み優先度に従って適切な割込み応答性を確保しつつ、システム全体の処理効率を向上できるマルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法を実現することができる。
【０１０５】
（実施の形態３）
実施の形態３では、実施の形態２におけるマルチプロセッサシステムの割込み制御方法において、さらに、全プロセッサの中から割込み許可するプロセッサを選択する際に選択基準を設け、システム全体の最適化を図るマルチプロセッサシステムの割込み制御方法について説明する。
【０１０６】
特に、本実施の形態３では、マルチプロセッサシステム上で複数のタスクを制御するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）において、各々のプロセッサが実行するタスクのタスク優先度を選択基準とし、タスク優先度の高いタスクを効率的に実行するマルチプロセッサシステムの割込み制御方法について説明する。
【０１０７】
図１６は、本発明の実施の形態３におけるマルチプロセッサシステムの構成を示すブロック図である。図１６に示すマルチプロセッサシステムは、実施の形態２における図７に示すマルチプロセッサシステムと比べて、共有メモリ１６２０の構成が異なり、共有メモリ１６２０は、プロセッサ別タスク優先度テーブル１６００がさらに追加されている点が異なっている。なお、図１および図７と同様の要素には同一の符号を付しており、詳細な説明は省略する。また、実施の形態３におけるマルチプロセッサシステムは、実施の形態２におけるマルチプロセッサシステム同様に、図９に示す割込み許可プロセッサ数の変更の処理を行う。
【０１０８】
プロセッサ別タスク優先度テーブル１６００では、プロセッサ（１０１、１０２、１０３および１０４）毎に、プロセッサ（１０１、１０２、１０３および１０４）が実行中のタスクのタスク優先度が記憶される。
【０１０９】
図１７は、実施の形態３におけるＳ９４においての割込み許可プロセッサの再割当て処理を示すフローチャートである。なお、実施の形態２における図１１と同様の処理には同一の符号を付しており、詳細な説明は省略する。
【０１１０】
図１７は、実施の形態２における図１１と比べて、割込みが許可されているプロセッサの中から、割込みを禁止に変更するプロセッサを選択するステップ（Ｓ９５３）を、実行中のタスク優先度の高いプロセッサを優先的に選択するステップ（Ｓ１７５３）に拡張している点が異なっている。また、実施の形態２における図１１と比べて、割込みが禁止されているプロセッサの中から、割込みを許可に変更するプロセッサを選択するステップ（Ｓ９５５）を、実行中のタスク優先度の低いプロセッサを優先的に選択するステップ（Ｓ１７５５）に拡張している点が異なっている。
【０１１１】
図１８は、実施の形態３においてタスクスイッチ時に割込み許可プロセッサを更新する処理を示すフローチャートである。
【０１１２】
タスクスイッチを実行するプロセッサ１０１、１０２、１０３または１０４は、共有メモリ７２０が有するプロセッサ別タスク優先度テーブル１６００を参照し、プロセッサ１０１、１０２、１０３または１０４に対応するタスク優先度を、プロセッサ１０１、１０２、１０３または１０４が新しく実行するタスクの優先度に変更する（Ｓ１８０１）。
【０１１３】
次に、プロセッサ１０１、１０２、１０３または１０４（以下、指定プロセッサと呼ぶ）の新しく実行するタスクの優先度が、例えばアイドル等の最低優先度である場合（Ｓ１８０２のＹｅｓの場合）、指定プロセッサおよび指定プロセッサのマスクレベルレジスタにおける割込優先度を最低優先度の割込み優先度に変更して、指定プロセッサのマスクレベルレジスタの値変更処理を実行する（Ｓ１８０３）。なお、Ｓ１８０３における指定プロセッサのマスクレベルレジスタの値変更処理は、実施の形態２における図１２と同様のため説明を省略する。
【０１１４】
以上のようにして、実施の形態３におけるマルチプロセッサシステムは、タスクスイッチ時に割込み許可プロセッサを更新する処理を実行する。それにより、この処理以降は最低優先度のタスクを実行するプロセッサが割込み許可プロセッサとして決定されるとともに、代わって高優先度のタスクを実行するプロセッサが割込み禁止プロセッサとなるため、高優先度のタスクを効率的に実行することが可能となる。
【０１１５】
次に、図１６に示す本発明の実施の形態３におけるマルチプロセッサシステムについて、例を用いてその動作の詳細を説明する。
【０１１６】
図１９および図２０は、プロセッサ別タスク優先度テーブル１６００の状態を示す図である。図２１および図２２は、優先度別プロセッサ数テーブル７００と、各プロセッサのマスクレベルレジスタと、プロセッサ別タスク優先度テーブル１６００との状態を示す図である。
【０１１７】
ここで、優先度別プロセッサ数テーブル７００は、図８に示す状態にあり、プロセッサ別タスク優先度テーブル１６００は図１９に示す状態にあるとする。このとき、プロセッサ１０２でタスクスイッチが発生し、プロセッサ１０２のタスク優先度が最低優先度タスク（優先度１）にスイッチする場合の動作を例に挙げて説明する。
【０１１８】
まず、プロセッサ１０２は、プロセッサ別タスク優先度テーブル１６００を参照し、プロセッサ１０２に対応するタスク優先度を３から最低優先度である１に変更する（Ｓ１８０１）。ここで、Ｓ１８０１の処理実行直後におけるプロセッサ別タスク優先度テーブル１６００の状態は、図２０に示すとおりである。
【０１１９】
次に、プロセッサ１０２の新しく実行するタスクの優先度が、最低優先度、すなわちプロセッサ１０２におけるタスクスイッチ先が最低優先度タスクであるため、プロセッサ１０２に対応するマスクレベルレジスタ１６２の値を最低優先度である割込み優先度１に変更する。そしてプロセッサ１０２は、指定プロセッサのマスクレベルレジスタの値変更処理を実行する（Ｓ１８０２）。
【０１２０】
Ｓ１８０２において、まず、プロセッサ１０２は、対応するマスクレベルレジスタ１６２の値を２から１に変更する（Ｓ９５１）。次に、プロセッサ１０２は、指定割込み優先度１における［割込み禁止プロセッサ一覧］からプロセッサ１０２を削除する。そして、プロセッサ１０２は、［割込み許可プロセッサ一覧］に、プロセッサ１０２を追加するとともに、［割込み許可プロセッサ数（現在数）］に１を加算する（Ｓ９５２）。ここで、Ｓ９５２の処理実行直後における優先度別プロセッサ数テーブル７００と、プロセッサ１０１、１０２、１０３および１０４のマスクレベルレジスタ１６１、１６２、１６３および１６４と、プロセッサ別タスク優先度テーブル１６００との状態は、図２１に示すとおりである。
【０１２１】
次に、プロセッサ１０２は、図９に示すように、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整が必要かどうかを判定し（Ｓ９３）、割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【０１２２】
具体的には、Ｓ９３においてプロセッサ１０２は、優先度別プロセッサ数テーブル７００を参照し、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しない指定割込み優先度１が存在するため（Ｓ９３１のＹｅｓの場合）、指定割込み優先度１における割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【０１２３】
Ｓ９４において、プロセッサ１０２は、優先度別プロセッサ数テーブル７００を参照し、指定割込み優先度１に対応する［割込み許可プロセッサ数（現在数）］の値と［割込み許可プロセッサ数（適正数）］の値とを比較する。そして、プロセッサ１０４は、割込みが許可されたプロセッサ数（現在数）が過多であるかどうかを判断する（Ｓ９５２）。
【０１２４】
プロセッサ１０２は、指定割込み優先度１に対応する［割込み許可プロセッサ数（現在数）］が［割込み許可プロセッサ数（適正数）］より１大きいので、割込みが許可されているプロセッサの数が過多であると判断する（Ｓ９５２のＹｅｓの場合）。次に、プロセッサ１０２は、［割込み許可プロセッサ一覧］に含まれるプロセッサから、実行中のタスクのタスク優先度が最も高いプロセッサ１０１を選択し（Ｓ１７５３）、マスクレベルレジスタ１６１の値を１から２に変更するよう通知する（Ｓ９５４）。
【０１２５】
次に、プロセッサ１０２は、Ｓ９４において、割込み許可プロセッサ再割当て処理されたプロセッサに対してマスクレベルレジスタ値変更処理を行う（Ｓ９５）。
【０１２６】
具体的には、Ｓ９５において、プロセッサ１０２により、マスクレベルレジスタ１６１の割込み優先度の値の変更を指示されたプロセッサ１０１は、マスクレベルレジスタ１６１の値を１から２に変更する（Ｓ９５１）。次に、プロセッサ１０２は、指定割込み優先度１における［割込み許可プロセッサ一覧］からプロセッサ１０１を削除する。そして、プロセッサ１０２は、［割込み禁止プロセッサ一覧］に、プロセッサ１０１を追加するとともに、［割込み許可プロセッサ数（現在数）］から１を減算する（Ｓ９５２）。ここで、Ｓ９５２の処理実行直後の優先度別プロセッサ数テーブル７００と、プロセッサ１０１、１０２、１０３および１０４におけるマスクレベルレジスタ１６１、１６２、１６３および１６４の状態は、図２２に示すとおりである。
【０１２７】
次に、プロセッサ１０２は、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整がさらに必要かどうかを判定する（Ｓ９６）。プロセッサ１０２は、図２２に示ように、すべての割込み優先度について［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致するため、マスクレベルレジスタ再調整が必要でないと判定し（Ｓ９６のＮｏの場合）、割込み許可プロセッサ数変更の処理を終了する。
【０１２８】
このとき、プロセッサ１０１のマスクレベルレジスタ１６１の値はプロセッサ１０２のマスクレベルレジスタ１６２の値より高く設定されており、タスク優先度の高いタスクを実行中のプロセッサにおける割込み発生が抑止されている。
【０１２９】
以上のように、本実施の形態３のマルチプロセッサシステムは、割込み許可プロセッサ数の変更の処理を行う。
【０１３０】
以上、説明してきたように、本実施の形態３によれば、タスク優先度の高いタスクを効率的に実行するマルチプロセッサシステムの割込み制御方法が実現できる。
【０１３１】
なお、実施の形態３において、割込み許可プロセッサ再割当て処理は、最低優先度のタスクにスイッチする際に実行しているが、他の任意のタイミングで実行するものとしても良い。例えば、任意の優先度のタスクにスイッチする際に実行してもよいし、タイマハンドラを使用するなどして周期的に実行してもよい。
【０１３２】
（実施の形態４）
本実施の形態４では、実施の形態３同様に、実施の形態２のマルチプロセッサシステムの割込み制御方法において、さらに、全プロセッサの中から割込み許可プロセッサを選択する際に選択基準を設け、システム全体の最適化を図るマルチプロセッサシステムの割込み制御方法について説明する。
【０１３３】
特に、本実施の形態４では、各々のプロセッサにおける割込み発生頻度を選択基準とし、特定のプロセッサで割込みが集中的に発生することを回避し、割込み処理の分散を図るマルチプロセッサシステムの割込み制御方法について説明する。
【０１３４】
図２３は、本発明の実施の形態４におけるマルチプロセッサシステムの構成を示すブロック図である。図２３に示すマルチプロセッサシステムは、実施の形態２における図７に示すマルチプロセッサシステムと比べて、共有メモリ２３２０の構成が異なり、共有メモリ２３２０は、プロセッサ別割込み回数テーブル２３００がさらに追加されている点が異なっている。なお、図１および図７と同様の要素には同一の符号を付しており、詳細な説明は省略する。また、実施の形態４におけるマルチプロセッサシステムは、実施の形態２におけるマルチプロセッサシステム同様に、図９に示す割込み許可プロセッサ数の変更の処理を行う。
【０１３５】
プロセッサ別割込み回数テーブル２３００では、プロセッサ（１０１、１０２、１０３および１０４）毎に、プロセッサ（１０１、１０２、１０３および１０４）が割込み処理を実行した回数が記憶される。
【０１３６】
図２４は、本発明の実施の形態４におけるＳ９４においての割込み許可プロセッサの再割当て処理を示すフローチャートである。なお、実施の形態２における図１１と同様の処理には同一の符号を付しており、詳細な説明は省略する。
【０１３７】
図２４は、実施の形態２における図１１と比べて、割込みが許可されているプロセッサの中から割込みを禁止に変更するプロセッサを選択するステップ（Ｓ９５３）を、割込み発生回数が多いプロセッサを優先的に選択するステップ（Ｓ２４５３）に拡張している点が異なっている。また、実施の形態２における図１１と比べて、割込みが禁止されているプロセッサの中から割込みを許可に変更するプロセッサを選択するステップ（Ｓ９５５）を、割込み発生回数が少ないプロセッサを優先的に選択するステップ（Ｓ２４５５）に拡張している点が異なっている。
【０１３８】
図２５は、実施の形態４におけるプロセッサ別割込み処理を示すフローチャートである。なお、実施の形態１における図６と同様の処理には同一の符号を付しており、詳細な説明は省略する。
【０１３９】
図２５は、実施の形態１の図６と比べて、割込み処理の権限獲得直後（Ｓ５６５のＹｅｓの場合）に、プロセッサ別割込み回数テーブル２３００を参照し、自プロセッサに対応する割込み回数をインクリメントするステップ（Ｓ２５０１）が追加されている。さらに、指定プロセッサおよび指定プロセッサのマスクレベルレジスタにおける割込優先度を例えば最高優先度＋１となる割込み優先度に変更して、指定プロセッサのマスクレベルレジスタ値変更処理を実行するステップ（Ｓ２５０２）が追加されている点が異なっている。なお、Ｓ２５０２における指定プロセッサのマスクレベルレジスタの値変更処理は、実施の形態２における図１２と同様のため説明を省略する。
【０１４０】
以上のようにして、実施の形態４におけるマルチプロセッサシステムは、プロセッサ別割込み処理を実行する。
【０１４１】
次に、図２３に示す本発明の実施の形態４におけるマルチプロセッサシステムについて、例を用いてその詳細な動作を説明する。
【０１４２】
図２６および図２７は、プロセッサ別割込み回数テーブル２３００の状態を示す図である。図２８、図２９および図３０は、優先度別プロセッサ数テーブル７００と、各プロセッサのマスクレベルレジスタと、プロセッサ別割込み回数テーブル２３００との状態を示す図である。
【０１４３】
ここで、優先度別プロセッサ数テーブル７００は、図８に示す状態にあり、プロセッサ別割込み回数テーブル２３００は、図２６に示す状態にあるとする。このとき、Ｉ／Ｏデバイス１４２が割込み要求を発生し、プロセッサ１０２が割込み処理を実行した場合の動作を例に挙げて説明する。
【０１４４】
プロセッサ１０２は、割込み処理権限を獲得後（Ｓ５６５のＹｅｓの場合）に、プロセッサ別割込み回数テーブル２３００を参照し、プロセッサ１０２に対応する割込み回数をインクリメントする（Ｓ２５０１）。すなわちプロセッサ１０２は、プロセッサ１０２に対応する割込み回数を２から３に変更する。ここで、Ｓ２５０１の処理実行直後のプロセッサ別割込み回数テーブル２３００の状態は、図２７に示すとおりである。
【０１４５】
次に、プロセッサ１０２は、プロセッサ１０２、および、割込み優先度４を指定し、マスクレベルレジスタ１６２の値を変更する処理を開始する（Ｓ２５０２）。
【０１４６】
Ｓ２５０２において、まず、プロセッサ１０２は、自プロセッサ１０２に対応するマスクレベルレジスタ１６２の値を２から４に変更する（Ｓ９５１）。次に、プロセッサ１０２は、指定割込み優先度２および３における［割込み許可プロセッサ一覧］からプロセッサ１０２を削除する。そして、プロセッサ１０２は、［割込み禁止プロセッサ一覧］にプロセッサ１０２を追加するとともに、［割込み許可プロセッサ数（現在数）］から１を減算する（Ｓ１２０２）。ここで、Ｓ９５２の処理実行直後における優先度別プロセッサ数テーブル７００と、プロセッサ１０１、１０２、１０３および１０４のマスクレベルレジスタ１６１、１６２、１６３および１６４と、プロセッサ別割込み回数テーブル２３００との状態は、図２８に示すとおりである。
【０１４７】
次に、プロセッサ１０２は、図９に示すように、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整が必要かどうかを判定し（Ｓ９３）、割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【０１４８】
具体的には、Ｓ９３においてプロセッサ１０２は、優先度別プロセッサ数テーブル７００を参照し、［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しない指定割込み優先度２が存在するため（Ｓ９３１のＹｅｓの場合）、指定割込み優先度２における割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【０１４９】
Ｓ９４において、プロセッサ１０２は、優先度別プロセッサ数テーブル７００を参照し、指定割込み優先度２に対応する［割込み許可プロセッサ数（現在数）］の値と［割込み許可プロセッサ数（適正数）］の値とを比較する。そして、プロセッサ１０２は、割込みが許可されたプロセッサ数（現在数）が過多であるかどうかを判断する（Ｓ９５２）。
【０１５０】
プロセッサ１０２は、指定割込み優先度２に対応する［割込み許可プロセッサ数（現在数）］が［割込み許可プロセッサ数（適正数）］より１小さいため、割込みが許可されているプロセッサの数が不足していると判断する（Ｓ９５２のＮｏの場合）。次に、プロセッサ１０４は、［割込み禁止プロセッサ一覧］に含まれるプロセッサから、割込み回数が最も少ないプロセッサ１０３を選択する（Ｓ９５５）。プロセッサ１０２は、プロセッサ１０３に対してマスクレベルレジスタ１６３の値を３から２に変更するよう通知する（Ｓ９５６）。
【０１５１】
次に、プロセッサ１０２は、Ｓ９４において、割込み許可プロセッサ再割当て処理されたプロセッサに対してマスクレベルレジスタ値変更処理を行う（Ｓ９５）。
【０１５２】
具体的には、Ｓ９５において、プロセッサ１０２により、マスクレベルレジスタ１６３の割込み優先度の値の変更を指示されたプロセッサ１０３は、自プロセッサのマスクレベルレジスタ１６３の値を２に変更する（Ｓ９５１）。次に、プロセッサ１０２は、指定割込み優先度２における［割込み禁止プロセッサ一覧］からプロセッサ１０３を削除する。そして、プロセッサ１０２は、［割込み許可プロセッサ一覧］にプロセッサ１０３を追加するとともに、［割込み許可プロセッサ数（現在数）］に１を加算する（Ｓ９５２）。ここで、Ｓ９５２の処理実行直後の優先度別プロセッサ数テーブル７００と、プロセッサ１０１、１０２、１０３および１０４におけるマスクレベルレジスタ１６１、１６２、１６３および１６４との状態は、図２９に示すとおりである。
【０１５３】
次に、プロセッサ１０２は、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整がさらに必要かどうかを判定し（Ｓ９６）、割込み許可プロセッサの再割当て処理を再度行う（Ｓ９４）。
【０１５４】
具体的には、プロセッサ１０２は、Ｓ９６において、優先度別プロセッサ数テーブル７００を参照し、図２９に示すように、指定割込み優先度３における［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致しないため（Ｓ９３１のＹｅｓの場合）、指定割込み優先度３における割込み許可プロセッサの再割当て処理を行う（Ｓ９４）。
【０１５５】
Ｓ９４において、プロセッサ１０２は、優先度別プロセッサ数テーブル７００を参照し、指定割込み優先度３に対応する［割込み許可プロセッサ数（現在数）］の値と［割込み許可プロセッサ数（適正数）］の値とを比較する。そして、プロセッサ１０４は、割込みが許可されたプロセッサ数（現在数）が過多であるかどうかを判断する（Ｓ９５２）。
【０１５６】
プロセッサ１０２は、指定割込み優先度３に対応する［割込み許可プロセッサ数（現在数）］が［割込み許可プロセッサ数（適正数）］より１小さいため、割込みが許可されているプロセッサの数が不足していると判断する（Ｓ９５２のＮｏの場合）。次に、プロセッサ１０２は、［割込み禁止プロセッサ一覧］に含まれるプロセッサから、割込み回数が最も少ないプロセッサ１０２を選択し（Ｓ２４５５）、マスクレベルレジスタ１６２の値を３に変更するよう通知する（Ｓ９５６）。
【０１５７】
次に、プロセッサ１０２は、Ｓ９４において、割込み許可プロセッサ再割当て処理されたプロセッサに対してマスクレベルレジスタ値変更処理を行う（Ｓ９５）。
【０１５８】
すなわち、Ｓ９５において、プロセッサ１０２は、自プロセッサのマスクレベルレジスタ１６２の値を３に変更する（Ｓ９５１）。次に、プロセッサ１０２は、指定割込み優先度３における［割込み禁止プロセッサ一覧］からプロセッサ１０２を削除する。そして、プロセッサ１０２は、［割込み許可プロセッサ一覧］にプロセッサ１０２を追加するとともに、［割込み許可プロセッサ数（現在数）］に１を加算する（Ｓ９５２）。ここで、Ｓ９５２の処理実行直後における優先度別プロセッサ数テーブル７００と、プロセッサ１０１、１０２、１０３および１０４のマスクレベルレジスタ１６１、１６２、１６３および１６４との状態は、図３０に示すとおりである。
【０１５９】
次に、プロセッサ１０２は、優先度別プロセッサ数テーブル７００を参照し、マスクレベルレジスタ再調整がさらに必要かどうかを判定する（Ｓ９６）。プロセッサ１０２は、図３０に示すように、すべての指定割込み優先度における［割込み許可プロセッサ数（現在数）］と［割込み許可プロセッサ数（適正数）］とが一致するため、マスクレベルレジスタ再調整が必要でないと判定し（Ｓ９６のＮｏの場合）、割込み許可プロセッサ数変更の処理を終了する。
【０１６０】
このとき、プロセッサ１０２のマスクレベルレジスタ１６２の値はプロセッサ１０１および１０３のマスクレベルレジスタ１６１および１６３の値より高く設定されており、割込み発生回数の多いプロセッサにおける割込み発生が抑止されている。
【０１６１】
以上のように、本実施の形態４のマルチプロセッサシステムは、割込み許可プロセッサ数の変更の処理を行う。
【０１６２】
以上、説明してきたように、本実施の形態４によれば、特定のプロセッサで割込みが集中的に発生することを回避し、割込み処理を分散するマルチプロセッサシステムの割込み制御方法が実現できる。
【０１６３】
なお、実施の形態４において、割込み許可プロセッサの再割当て処理を、割込み処理の権限を獲得した直後に実行しているが、他の任意のタイミングで実行するものとしても良い。例えば、割込み処理完了後に実行してもよいし、一定回数割込みを処理した際に実行してもよいし、タイマハンドラを使用するなどして周期的に実行してもよい。
【０１６４】
以上、本発明のマルチプロセッサシステムにおける割込み制御方法によれば、マルチプロセッサシステムにおける割込み応答性の高度な要求に対応し、かつ、システム全体の処理効率を向上できる。したがって、マルチプロセッサで構成されるマイクロコンピュータの高機能化、および、低消費電力化が実現できる。それにより、割込み優先度に従って適切な割込み応答性を確保しつつ、システム全体の処理効率を向上できるマルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法を実現することができる。
【０１６５】
以上、本発明のプログラム実行装置およびプログラム実行装置制御方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【０１６６】
例えば、本発明の実施形態において、割込み生成器１３０からプロセッサへの割込みの通知は共有バス１１０を介して行っているが、専用の信号線を備えるなど、他の手段を用いてもよい。
【０１６７】
また、割込み優先度に応じて割込み許可プロセッサを選択できる構成は、本発明の実施の形態において説明したものが特に望ましいが、これに限定されるものではない。
【産業上の利用可能性】
【０１６８】
本発明は、マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法に利用でき、特に、マルチプロセッサにおいて割込みを制御するマルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法に利用することができる。
【図面の簡単な説明】
【０１６９】
【図１】本発明の実施の形態１におけるマルチプロセッサシステムの構成を示すブロック図である。
【図２】本発明の実施の形態１における要因別優先度テーブルの状態を示す図である。
【図３】本発明の実施の形態１における割込み優先度と割込み許可プロセッサ数との関係を示す図である。
【図４】本発明の実施の形態１におけるマスクレベルレジスタ値を示す図である。
【図５】本発明の実施の形態１におけるＩ／Ｏデバイスの割込み要求の発生からプロセッサ別割込み処理の開始までの処理を示すフローチャートである。
【図６】本発明の実施の形態１におけるプロセッサ別割込み処理を示すフローチャートである。
【図７】本発明の実施の形態２におけるマルチプロセッサシステムの構成を示すブロック図である。
【図８】本発明の実施の形態２における割込み優先度と割込み許可プロセッサ数との関係を示す図である。
【図９】本発明の実施の形態２のマルチプロセッサシステムにおける割込み許可プロセッサ数変更の処理を示すフローチャートである。
【図１０】Ｓ９３またはＳ９７においてマスクレベルレジスタの再調整が必要かを判定する処理を示すフローチャートである。
【図１１】Ｓ９４において割込み許可プロセッサ再割当て処理を示すフローチャートである。
【図１２】Ｓ９５４またはＳ９５６においてマスクレベルレジスタ値変更処理を示すフローチャートである。
【図１３】優先度別プロセッサ数テーブルと各プロセッサのマスクレベルレジスタの状態とを示す図である。
【図１４】優先度別プロセッサ数テーブルと各プロセッサのマスクレベルレジスタの状態とを示す図である。
【図１５】優先度別プロセッサ数テーブルと各プロセッサのマスクレベルレジスタの状態とを示す図である。
【図１６】本発明の実施の形態３におけるマルチプロセッサシステムの構成を示すブロック図である。
【図１７】本発明の実施の形態３におけるＳ９４においての割込み許可プロセッサの再割当て処理を示すフローチャートである。
【図１８】本発明の実施形態３においてタスクスイッチ時に割込み許可プロセッサを更新する処理を示すフローチャートである。
【図１９】本発明の実施の形態３におけるプロセッサ別タスク優先度テーブルの状態を示す図である。
【図２０】本発明の実施の形態３におけるプロセッサ別タスク優先度テーブルの状態を示す図である。
【図２１】本発明の実施の形態３における優先度別プロセッサ数テーブルと各プロセッサのマスクレベルレジスタとプロセッサ別タスク優先度テーブルとの状態を示す図である。
【図２２】本発明の実施の形態３における優先度別プロセッサ数テーブルと各プロセッサのマスクレベルレジスタとプロセッサ別タスク優先度テーブルとの状態を示す図である。
【図２３】本発明の実施の形態４におけるマルチプロセッサシステムの構成を示すブロック図である。
【図２４】本発明の実施の形態４におけるＳ９４においての割込み許可プロセッサの再割当ての処理を示すフローチャートである。
【図２５】本発明の実施の形態４におけるプロセッサ別割込み処理を示すフローチャートである。
【図２６】本発明の実施の形態４におけるプロセッサ別割込み回数テーブルの状態を示す図である。
【図２７】本発明の実施の形態４におけるプロセッサ別割込み回数テーブルの状態を示す図である。
【図２８】本発明の実施の形態４における優先度別プロセッサ数テーブルと各プロセッサのマスクレベルレジスタとプロセッサ別割込み回数テーブルの状態とを示す図である。
【図２９】本発明の実施の形態４における優先度別プロセッサ数テーブルと各プロセッサのマスクレベルレジスタとプロセッサ別割込み回数テーブルの状態とを示す図である。
【図３０】本発明の実施の形態４における優先度別プロセッサ数テーブルと各プロセッサのマスクレベルレジスタとプロセッサ別割込み回数テーブルの状態とを示す図である。
【図３１】従来の割込み制御を行うマルチプロセッサシステムの構成を示すブロック図である。
【符号の説明】
【０１７０】
１０１、１０２、１０３、１０４、３１０１、３１０２、３１０３、３１０４    プロセッサ
１１０、３１１０    共有バス
１２０、７２０、１６２０、２３２０、３１２０    共有メモリ
１３０、３１３０    割込み生成器
１４１、１４２、１４３    Ｉ／Ｏデバイス
１５０    要因別優先度テーブル
１６１、１６２、１６３、１６４    マスクレベルレジスタ
１７０    Ｉ／Ｏインタフェース
７００    優先度別プロセッサ数テーブル
１６００    プロセッサ別タスク優先度テーブル
２３００    プロセッサ別割込み回数テーブル
３１００    指定レジスタ
【図１】
2009251802.tif 000003
【図２】
2009251802.tif 000004
【図３】
2009251802.tif 000005
【図４】
2009251802.tif 000006
【図５】
2009251802.tif 000007
【図６】
2009251802.tif 000008
【図７】
2009251802.tif 000009
【図８】
2009251802.tif 000010
【図９】
2009251802.tif 000011
【図１０】
2009251802.tif 000012
【図１１】
2009251802.tif 000013
【図１２】
2009251802.tif 000014
【図１３】
2009251802.tif 000015
【図１４】
2009251802.tif 000016
【図１５】
2009251802.tif 000017
【図１６】
2009251802.tif 000018
【図１７】
2009251802.tif 000019
【図１８】
2009251802.tif 000020
【図１９】
2009251802.tif 000021
【図２０】
2009251802.tif 000022
【図２１】
2009251802.tif 000023
【図２２】
2009251802.tif 000024
【図２３】
2009251802.tif 000025
【図２４】
2009251802.tif 000026
【図２５】
2009251802.tif 000027
【図２６】
2009251802.tif 000028
【図２７】
2009251802.tif 000029
【図２８】
2009251802.tif 000030
【図２９】
2009251802.tif 000031
【図３０】
2009251802.tif 000032
【図３１】
2009251802.tif 000033