(57)【要約】      （修正有）【課題】ＣＰＵによる割込み要因特定を簡素化する。【解決手段】例えば、第１の機能モジュールが割込みを発行し、この割込みが有効になっているとすると、シーケンサ１１は、割込み要因バッファの先頭アドレス０ｘ０１００_００００に第１の機能モジュールの識別情報をライトして、次に、割込み要因アドレス＃１である、０ｘ１Ｂ０３_００４０番地からデータをリードして、０ｘ０１００_０００４番地にライトする。さらに、該リード値を割込み要因アドレス＃１である、０ｘ１Ｂ０３_００４０番地にライトして、第１の機能モジュールの割込み要因をクリアした後に、第１の機能モジュールに対応するシーケンス終了信号をアクティブにして、レジスタ１３および割込み発行部１４に通知する。ステータスレジスタのビット０が“１”に変化すると、割込み発行部１４は、割込み信号線７をアクティブにして割込みを発行する。【選択図】図２
2006172196.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能モジュールのそれぞれに対応したマスク情報と、前記複数の機能モジュールのそれぞれに対応して設けられた割込み要因レジスタの各アドレスを示す第１のアドレス情報と、前記各割込み要因レジスタから読み出した割込み要因を書き出すバッファ領域を特定する第２のアドレス情報と、ＣＰＵへの割込みの有無を示す割込み有無情報とを保持するとともに、前記機能モジュールが発生した割込み信号を前記マスク情報に基づいてマスクして出力するレジスタと、
前記レジスタから有効な割込み信号を検出したときに、該割込み信号の発生元の機能モジュールの割込み要因を、該機能モジュールに対応する割込み要因レジスタから読み出し、該読み出された割込み要因および当該機能モジュールの識別子を、前記バッファ領域中、前記第２のアドレス情報によって示される位置に書き込んだ後、前記割込み有無情報を割込み有りに設定するように制御する制御手段と、
前記割込み有無情報が割込み有りに設定されたときに、ＣＰＵへの割込みを発行する割込み発行手段と
を有することを特徴とする割込みコントローラ。
【請求項２】
前記制御手段は、複数の機能モジュールの各割込み要因および識別子を前記バッファ領域に書き込むときには、それぞれ異なったアドレス位置に書き込むことを特徴とする請求項１に記載の割込みコントローラ。
【請求項３】
前記機能モジュールが割込み信号を発生したときの割込み発生時刻を計時する計時手段をさらに有し、
前記制御手段は、前記バッファに領域に、前記読み出された割込み要因および当該機能モジュールの識別子を書き込むときに、前記計時手段によって計時された割込み発生時刻を示すタイムスタンプも併せて書き込むことを特徴とする請求項１に記載の割込みコントローラ。
【請求項４】
前記制御手段が、前記割込み信号の発生元の機能モジュールの割込み要因を、該機能モジュールに対応する割込み要因レジスタから読み出す回数をカウントするカウンタをさらに有し、
前記制御手段は、前記バッファに領域に、前記読み出された割込み要因および当該機能モジュールの識別子を書き込むときに、前記カウンタによってカウントされた回数も併せて書き込むことを特徴とする請求項１に記載の割込みコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能モジュールがそれぞれ発生した割込みを処理して、ＣＰＵに伝達する割込みコントローラに関する。
【背景技術】
【０００２】
システムＬＳＩ（Large Scale Integrated Circuit）は、通常、ＣＰＵ（Central Processing Unit）と複数の機能モジュールとを備えている。そして、半導体技術やシステム開発・検証技術の進歩に支えられて、より多くの機能モジュールを搭載する大規模なシステムＬＳＩが作られるようになってきた。
【０００３】
ＣＰＵコアの割込み信号線数よりも、搭載される機能モジュール数の方が少ない場合には、各機能モジュールの割込み信号を直接ＣＰＵコアの割込み信号線に接続することも可能であるが、ＣＰＵコアの割込み信号線数よりも、機能モジュール数の方が多い場合が多く、この場合には、複数の機能モジュールからの割込みを多重化してＣＰＵコアに接続する方法が採られている（例えば特許文献１参照）。
【０００４】
図７は、このような従来のシステムＬＳＩの概略構成を示すブロック図である。
【０００５】
同図に示すように、従来のシステムＬＳＩは、プログラムに従ってシステムＬＳＩ全体を制御するＣＰＵ１と、プログラムを記憶するＲＯＭ（Read Only Memory）２と、ＣＰＵ１のワークエリアまたは各機能モジュール間のデータの受け渡しに利用されるＲＡＭ（Random Access Memory）３と、システムＬＳＩの各機能モジュール間のデータの送受信を行うバス４と、通信や画像処理を行うｎ個の機能モジュール（ＦＭ）５-１〜５-ｎと、機能モジュール５-１〜５-ｎからの割込み信号による割込み発生状況を反映するステータスレジスタと各割込みをＣＰＵ１への割込みとして伝達するか否かを選択するマスクレジスタとを備え、マスクされていない割込みが発生したときにＣＰＵ１への割込み信号をアクティブにする割込みコントローラ１０１とによって構成されている。
【０００６】
各機能モジュール５-１〜５-ｎは、該各機能モジュール５-１〜５-ｎによってそれぞれドライブされる割込み信号線６-１〜６-ｎを介して、割込みコントローラ１０１と接続されている。さらに、割込みコントローラ１０１は、割込み信号７を介してＣＰＵ１と接続されている。
【０００７】
図８は、割込みコントローラ１０１が備えているステータスレジスタ１０１ａとマスクレジスタ１０１ｂの構成の一例を示す図である。
【０００８】
同図に示すように、ステータスレジスタ１０１ａとマスクレジスタ１０１ｂは、システムアドレス空間の一部にマッピングされており、ＣＰＵ１からバス４を介してアクセスすることができるようになっている。
【０００９】
機能モジュール５-１〜５-ｎのいずれかが割込みを発生すると、ステータスレジスタ１０１ａのフラグＦ１〜Ｆｎのうち、割込みが発生した機能モジュールに対応するものがセット（“１”）され、セットされたフラグは、ＣＰＵ１によってクリアされる。
【００１０】
マスクレジスタ１０１ｂの各ビットＢ１〜Ｂｎは、機能モジュール５-１〜５-ｎの各割込みに対応しており、各ビットＢ１〜Ｂｎは、ＣＰＵ１によってセット（“１”）／リセット（“０”）され、セット／リセットされたビットの値は保持される。
【００１１】
次に、割込み発生時に、従来のシステムＬＳＩが実行する制御動作について説明する。
【００１２】
例えば、機能モジュール５-１が割込みを発生すると、ステータスレジスタ１０１ａのフラグＦ１はセットされ、そのときマスクレジスタ１０１ｂのビットＢ１が“０”であれば、割込みコントローラ１０１は、割込み信号線７を介して、ＣＰＵ１に割込み発生を通知し、マスクレジスタ１０１ｂのビットＢ１が“１”であれば、ＣＰＵ１に割込み発生を通知しない。
【００１３】
ＣＰＵ１が、割込み信号線７を介して割込みの発生を検出すると、ＣＰＵ１は、割込みコントローラ１０１のステータスレジスタ１０１ａをリードして、機能モジュール５-１が割込み要因モジュールであると判断する。さらに、ＣＰＵ１は、機能モジュール５-１の割込み要因レジスタ（図示せず）をリードして、機能モジュール５-１における割込み要因を特定し、該割込み要因に対応する処理ルーチンを実行する。
【特許文献１】特開平５−２７４１６０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし、上記従来のシステムＬＳＩにおける割込み制御方法では、機能モジュール数が大きくなればなる程、ＣＰＵ１が処理すべき割込み数も多くなるため、ＣＰＵ１は、より短時間で割込み要因を特定したいにも拘わらず、複数のレジスタにアクセスする必要があり、これにより、割込み要因の特定に時間を要してしまうという問題があった。
【００１５】
また、先に割込みを発生した機能モジュールの処理の実行やタスク切り替えに時間を要し、機能モジュールが割込みを発生してから一定時間内に、当該機能モジュールの割込み要因レジスタをリードすることができず、当該機能モジュールにおいて、割込み要因が上書きされてしまう可能性があるという問題もあった。
【００１６】
本発明は、これらの問題に着目してなされたものであり、ＣＰＵによる割込み要因特定を簡素化するとともに、割込み毎の割込み要因を確実に検出可能な割込みコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するため、請求項１に記載の割込みコントローラは、複数の機能モジュールのそれぞれに対応したマスク情報と、前記複数の機能モジュールのそれぞれに対応して設けられた割込み要因レジスタの各アドレスを示す第１のアドレス情報と、前記各割込み要因レジスタから読み出した割込み要因を書き出すバッファ領域を特定する第２のアドレス情報と、ＣＰＵへの割込みの有無を示す割込み有無情報とを保持するとともに、前記機能モジュールが発生した割込み信号を前記マスク情報に基づいてマスクして出力するレジスタと、前記レジスタから有効な割込み信号を検出したときに、該割込み信号の発生元の機能モジュールの割込み要因を、該機能モジュールに対応する割込み要因レジスタから読み出し、該読み出された割込み要因および当該機能モジュールの識別子を、前記バッファ領域中、前記第２のアドレス情報によって示される位置に書き込んだ後、前記割込み有無情報を割込み有りに設定するように制御する制御手段と、前記割込み有無情報が割込み有りに設定されたときに、ＣＰＵへの割込みを発行する割込み発行手段とを有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、ＣＰＵは、機能モジュールの発生した割込みの総数よりも少ない回数の割込み信号を検出することで、機能モジュールが発生したすべての割込みを処理できると同時に、多くの機能モジュールが実装されている場合にも、階層的に割込み要因レジスタをリードすることなく割込み要因を特定でき、かつ機能モジュールが割込み要因を上書きすることによる割込み要因の読みこぼしを防ぐことが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２０】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係る割込みコントローラを含むシステムＬＳＩの概略構成を示すブロック図である。
【００２１】
なお、本実施の形態のシステムＬＳＩは、前記従来のシステムＬＳＩに対して、割込みコントローラ１０の構成が異なるのみであるので、図１中、図７と同様の構成については同一符号を付して、その説明を省略する。
【００２２】
図２は、図１の割込みコントローラ１０の詳細な構成を示すブロック図である。
【００２３】
図２に示すように、割込みコントローラ１０は、シーケンサ１１、バスインタフェース１２、レジスタ１３および割込み発行部１４によって構成されている。
【００２４】
シーケンサ１１は、レジスタ１３でマスクされていない機能モジュール５-１〜５-ｎからの割込みを検出すると、レジスタ１３に保持されているデータに従って、割込み要因となっている機能モジュールの割込み要因レジスタをリードし、ＲＡＭ３にライトするものであり、ステートマシン、カウンタ、レジスタを備えている。
【００２５】
バスインタフェース１２は、シーケンサ１１からのバスアクセスをバス４に中継するとともに、ＣＰＵ１などの、バス４に接続されたバスマスタからのアクセスをレジスタ１３に中継する。
【００２６】
レジスタ１３は、機能モジュール５-１〜５-ｎからの割込みの有無を示すステータスレジスタと、各機能モジュール５-１〜５-ｎの割込みをマスクするためのデータを保持するマスクレジスタと、各機能モジュール５-１〜５-ｎの割込み要因レジスタのアドレスを保持する割込み要因アドレスレジスタと、リードした割込み要因レジスタ値の書き出し先となる割込み要因バッファのアドレスを保持する割込み要因バッファアドレスレジスタとを備え、マスクレジスタの記憶内容に応じて、機能モジュールからの割込みをマスクし、シーケンサ１１に伝達する機能を営んでいる。
【００２７】
割込み発行部１４は、レジスタ１３のステータスレジスタの値に応じてＣＰＵ１への割込みを発行する。
【００２８】
以下、以上のように構成されたシステムＬＳＩが実行する制御動作について説明する。
【００２９】
ＣＰＵ１は、各機能モジュール５-１〜５-ｎを起動するのに先立って、割込みコントローラ１０内のレジスタ１３の初期化を行う。以下に、レジスタ１３の初期化直後の値を示す。
【００３０】
ステータスレジスタ：                  ０ｘ００００_００００
マスクレジスタ    ：                  ０ｘＦＦＦＦ_００８０
割込み要因アドレス＃１：              ０ｘ１Ｂ０３_００４０
・・・・
割込み要因アドレス＃８：              ０ｘ１Ｂ０４_００４０
・・・・
割込み要因バッファスタートアドレス：  ０ｘ０１００_００００
割込み要因バッファエンドアドレス  ：  ０ｘ０１００_００４０
レジスタ１３において、例えば、機能モジュール５-１の割込みは、マスクレジスタのビット０に対応しており、機能モジュール５-１の割込み要因アドレスレジスタには、割込み要因アドレス＃１が記憶されている。また、機能モジュール５-８の割込みは、マスクレジスタのビット７に対応しており、機能モジュール５-８の割込み要因アドレスレジスタには、割込み要因アドレス＃８が記憶されている。
【００３１】
ステータスレジスタは、そのビット０がＣＰＵ１への割込みの有無を示しており、このビット０は、シーケンサ１１がシーケンス処理を終了したときにセットされ、ＣＰＵ１によってクリアされるものとする。
【００３２】
割込み要因バッファエリアは、ＲＡＭ３に割り当てられており、割込み要因バッファスタートアドレスと割込み要因エンドアドレスによって指定される。シーケンサ１１は、割込み要因バッファエリアをリングバッファとみなしてライトを行い、ＣＰＵ１は、割込み要因バッファエリアをリングバッファとみなしてリードを行うものとする。
【００３３】
以上のように初期化を行った後に、ＣＰＵ１は、各機能モジュール５-１〜５-ｎを起動する。
【００３４】
最初の割込みとして、例えば、機能モジュール５-１が割込みを発行し、割込み信号線６-１をアクティブにすると、レジスタ１３のマスクレジスタのビット０の値は“０”であり、機能モジュール５-１の割込みは有効になっているので、シーケンサ１１は、機能モジュール５-１に対応するシーケンスの実行を開始する。
【００３５】
シーケンサ１１は、割込み要因バッファの先頭アドレス０ｘ０１００_００００に機能モジュール５-１の識別情報をライトして、内部カウンタをインクリメントし、次に、割込み要因アドレス＃１である、０ｘ１Ｂ０３_００４０番地からデータをリードして、内部のレジスタにリード値を一時的に記憶した後、該リード値を０ｘ０１００_００００番地の次のアドレスである、０ｘ０１００_０００４番地にライトして、内部カウンタをインクリメントし、さらに、該リード値を割込み要因アドレス＃１である、０ｘ１Ｂ０３_００４０番地にライトして、機能モジュール５-１の割込み要因をクリアした後に、機能モジュール５-１に対応するシーケンス終了信号をアクティブにして、シーケンス終了をレジスタ１３および割込み発行部１４に通知する。
【００３６】
ステータスレジスタのビット０が“１”に変化し、割込み発行部１４は、ＣＰＵ１に対して、割込み信号線７をアクティブにして割込みを発行する。ステータスレジスタのビット０は、ＣＰＵ１によって“１”が書かれてクリアされるまで、“１”の値を保持する。
【００３７】
ＣＰＵ１は、割込み信号線７がアサートされて割込みを検出すると、タスク切り替えを行い、割込み処理ルーチンを実行する。割込み処理ルーチンでは、割込み要因バッファの先頭アドレスである、０ｘ０１００_００００番地から機能モジュールの識別情報をリードして、機能モジュール５-１が割込み要因モジュールであることを検出し、次に、０ｘ０１００_０００４番地から割込み要因をリードして、機能モジュール５-１の割込み要因を特定し、レジスタ１３のステータスレジスタのビット０に“１”をライトして、ステータスをクリアした後に、機能モジュール５-１に対する所定の処理を行う。
【００３８】
続いて、機能モジュールが、マスクされていない割込みを発生した場合には、当該機能モジュールの識別情報と割込み要因が、シーケンサ１１によって、割込み要因バッファの０ｘ０１００_０００８番地と０ｘ０１００_０００Ｃ番地、０ｘ０１００_００１０番地と０ｘ０１００_００１４番地、・・・に同様のシーケンスでライトされて行く。
【００３９】
また、ＣＰＵ１も、割込み処理ルーチンにおいて、割込み要因バッファの０ｘ０１００_０００８番地と０ｘ０１００_０００Ｃ番地、０ｘ０１００_００１０番地と０ｘ０１００_００１４番地、・・・から機能モジュールの識別情報と割込み要因をリードして行く。
【００４０】
機能モジュール５-８が、割込み信号線６-８をアサートして割込みを発行した場合、レジスタ１３のマスクレジスタの対応ビットであるビット７は“１”であり、機能モジュール５-８の割込みはマスクされているため、シーケンサ１１は動作しない。したがって、機能モジュール５-８に対応するシーケンス終了信号はアサートされることはなく、ステータスレジスタのビット０に“１”がセットされることもない。
【００４１】
このように、本実施の形態では、機能モジュールが、マスクされていない割込を発生する度に、割込み要因バッファの異なったアドレス位置に、当該機能モジュールの識別情報と割込み要因を書き込んで行くようにしたので、ＣＰＵは、階層的に割込み要因レジスタをリードすることなく割込み要因を特定でき、かつ機能モジュールが割込み要因を上書きすることによる割込み要因の読みこぼしを防ぐことができる。さらに、シーケンサ１１は、マスクされていない割込を発生したすべての機能モジュールに対してシーケンス処理を行った後、ＣＰＵに対して割込みの発生を伝達するので、機能モジュールの発生した割込みの総数よりも少ない回数の割込み信号を検出して、機能モジュールが発生したすべての割込みを処理できる。
【００４２】
（第２の実施の形態）
次に、本発明の第２の実施の形態に係る割込みコントローラを含むシステムＬＳＩについて説明する。
【００４３】
本実施の形態のシステムＬＳＩは、前記第１の実施の形態のシステムＬＳＩに対して、割込みコントローラの構成が異なるのみであるので、割込みコントローラ以外のハードウェアは、第１の実施の形態のシステムＬＳＩのもの、すなわち図１に記載のものをそのまま用いることにする。
【００４４】
図３は、本実施の形態のシステムＬＳＩに設けられた割込みコントローラ２０の詳細な構成を示すブロック図である。同図中、図２と同様の構成には同一符号を付して、その説明は省略する。
【００４５】
図３において、シーケンサ２１は、レジスタ１３でマスクされていない機能モジュール５-１〜５-ｎからの割込みを検出すると、レジスタ１３に保持されているデータに従って、割込み要因となっている機能モジュールの割込み要因レジスタをリードして、ＲＡＭ３にライトするとともに、割込み発生時刻を示すタイムスタンプをＲＡＭ３にライトするものであり、ステートマシン、カウンタ、レジスタを備えている。
【００４６】
タイマ３２は、前記割込み発生時刻を計時する。
【００４７】
以上のように構成されたシステムＬＳＩでは、シーケンサ２１が機能モジュール５-１〜５-ｎの割込み要因をリードして、ＲＡＭ３にライトする際に、タイムスタンプを併せてライトする他は、前記第１の実施の形態のシステムＬＳＩとほぼ同様に動作するので、その動作の説明は省略する。
【００４８】
（第３の実施の形態）
次に、本発明の第３の実施の形態に係る割込みコントローラを含むシステムＬＳＩについて説明する。
【００４９】
本実施の形態のシステムＬＳＩは、前記第１の実施の形態のシステムＬＳＩに対して、割込みコントローラの構成が異なるのみであるので、割込みコントローラ以外のハードウェアは、第１の実施の形態のシステムＬＳＩのもの、すなわち図１に記載のものをそのまま用いることにする。
【００５０】
図４は、本実施の形態のシステムＬＳＩに設けられた割込みコントローラ３０の詳細な構成を示すブロック図である。同図中、図２と同様の構成には同一符号を付して、その説明は省略する。
【００５１】
図４において、シーケンサ３１は、レジスタ１３でマスクされていない機能モジュール５-１〜５-ｎからの割込みを検出すると、レジスタ１３に保持されているデータに従って、割込み要因となっている機能モジュールの割込み要因レジスタをリードして、ＲＡＭ３にライトするとともに、割込み発生時刻を示すタイムスタンプをＲＡＭ３にライトするものであり、ステートマシン、カウンタ、レジスタを備えている。
【００５２】
カウンタ４２は、シーケンサ３２が処理シーケンスを実行する度にインクリメントする。
【００５３】
以上のように構成されたシステムＬＳＩでは、シーケンサ３１が機能モジュール５-１〜５-ｎの割込み要因をリードして、ＲＡＭ３にライトする際に、各割込み情報に対してシリアル番号を併せてライトする他は、前記第１の実施の形態のシステムＬＳＩとほぼ同様に動作するので、その動作の説明は省略する。
【００５４】
（第４の実施の形態）
次に、本発明の第４の実施の形態に係る割込みコントローラを含むシステムＬＳＩについて説明する。
【００５５】
本実施の形態のシステムＬＳＩは、前記第１の実施の形態のシステムＬＳＩに対して、割込みコントローラの構成が異なるのみであるので、割込みコントローラ以外のハードウェアは、第１の実施の形態のシステムＬＳＩのもの、すなわち図１に記載のものをそのまま用いることにする。
【００５６】
図５は、本実施の形態のシステムＬＳＩに設けられた割込みコントローラ４０の詳細な構成を示すブロック図である。同図中、図２と同様の構成には同一符号を付して、その説明は省略する。
【００５７】
プロセッサ４１は、サスペンド／レジューム機能を備え、メモリ４５に記憶されたプログラムを実行する。
【００５８】
ＩＯコントローラ４２は、プロセッサ４１からのアクセスを、アドレスに従ってレジスタ４４、バスインタフェース４３およびメモリ４５に中継するとともに、外部バスマスタからのアクセスを、アドレスに従ってレジスタ４４およびメモリ４５に中継する。
【００５９】
バスインタフェース４３は、ＩＯコントローラ４２からのバスアクセスをシステムバスに中継するとともに、外部バスマスタからのアクセスをＩＯコントローラ４２に中継する。
【００６０】
レジスタ４４は、機能モジュール５-１〜５-ｎからの割込みの有無を示すステータスレジスタと、各機能モジュール５-１〜５-ｎの割込みをマスクするためのデータを保持するマスクレジスタと、各機能モジュール５-１〜５-ｎの割込み要因レジスタのアドレスを保持する割込み要因アドレスレジスタと、リードした割込み要因レジスタ値の書き出し先となる割込み要因バッファのアドレスを保持する割込み要因バッファアドレスレジスタとを備えている。
【００６１】
以下、以上のように構成されたシステムＬＳＩが実行する制御動作について、図５および図６を参照しながら説明する。
【００６２】
ＣＰＵ１は、各機能モジュール５-１〜５-ｎを起動するのに先立って、割込みコントローラ４０内のレジスタ４３の初期化を行う。以下に、レジスタ４３の初期化直後の値を示す。
【００６３】
ステータスレジスタ：                  ０ｘ００００_００００
マスクレジスタ    ：                  ０ｘＦＦＦＦ_００８０
割込み要因アドレス＃１：              ０ｘ１Ｂ０３_００４０
・・・・
割込み要因アドレス＃８：              ０ｘ１Ｂ０４_００４０
・・・・
割込み要因バッファスタートアドレス：  ０ｘ０１００_００００
割込み要因バッファエンドアドレス  ：  ０ｘ０１００_００４０
レジスタ４３において、機能モジュール５-１の割込みは、マスクレジスタのビット０に対応しており、機能モジュール５-１の割込み要因アドレスレジスタには、割込み要因アドレス＃１が記憶されている。また、機能モジュール５-８の割込みは、マスクレジスタのビット７に対応しており、機能モジュール５-８の割込み要因アドレスレジスタには、割込み要因アドレス＃８が記憶されている。
【００６４】
ステータスレジスタは、そのビット０がＣＰＵ１への割込みの有無を示しており、このビット０は、プロセッサ４１が処理シーケンスを終了したときにセットされ、ＣＰＵ１によってクリアされるものとする。
【００６５】
さらに、ＣＰＵ１は、初期化時に、プロセッサ４１が実行する制御処理プログラムをメモリ４５にライトする。
【００６６】
割込み要因バッファエリアは、ＲＡＭ３に割り当てられており、割込み要因バッファスタートアドレスと割込み要因エンドアドレスによって指定される。プロセッサ４１は、割込み要因バッファエリアをリングバッファとみなしてライトを行い、ＣＰＵ１は、割込み要因バッファエリアをリングバッファとみなしてリードを行うものとする。
【００６７】
以上のように初期化を行った後に、ＣＰＵ１は、割込みコントローラ４０を起動するとともに、各機能モジュール５-１〜５-ｎを起動する。
【００６８】
割込みコントローラ４０が起動されると、プロセッサ４１は、メモリ４５に書き込まれた制御処理プログラム、すなわち図６の制御処理の実行を開始する。
【００６９】
図６において、プロセッサ４１は、割込み要因ライトカウンタの初期化を行った（ステップＳ１）後、サスペンドして（ステップＳ２）、機能モジュール５-１〜５-ｎのうち、レジスタ４４でマスクされていない割込みが発生するまで待機状態となる。
【００７０】
最初の割込みとして、例えば、機能モジュール５-１が割込みを発行し、割込み信号線６-１をアクティブにすると、レジスタ４４のマスクレジスタのビット０の値は“０”であり、機能モジュール５-１の割込みは有効になっているので、プロセッサ４１に割込み信号が伝達される。プロセッサ４１は、レジュームして（ステップＳ３）、機能モジュール５-１に対応するシーケンスの実行を開始する。
【００７１】
プロセッサ４１は、割込み要因バッファの先頭アドレス０ｘ０１００_００００に機能モジュール５-１の識別情報をライトして（ステップＳ４）、次に、割込み要因アドレス＃１である、０ｘ１Ｂ０３_００４０番地からデータをリードして、内部のレジスタにリード値を一時的に記憶し（ステップＳ５）、該リード値を割込み要因アドレス＃１の０ｘ１Ｂ０３_００４０番地にライトして、機能モジュール５-１の割込み要因をクリアし（ステップＳ６）、さらに、該リード値を０ｘ０１００_００００番地の次のアドレスである、０ｘ０１００_０００４番地にライトして（ステップＳ７）、最後に、ステータスレジスタのビット０に“１”をライトした（ステップＳ８）後、再びサスペンドして、次の割込みが発生するまで待機する（ステップＳ２）。この時点で、既に次の割込みが発生していれば、即座にレジュームして、同様の処理を行う。
【００７２】
割込み発行部１４は、ＣＰＵ１に対して、割込み信号線７をアクティブにして割込みを発行する。ステータスレジスタのビット０は、ＣＰＵ１によってクリアされるまで、値を保持する。
【００７３】
ＣＰＵ１は、割込み信号線７がアサートされて割込みを検出すると、タスク切り替えを行い、割込み処理ルーチンを実行する。割込み処理ルーチンでは、割込み要因バッファの先頭アドレスである、０ｘ０１００_００００番地から機能モジュールの識別情報をリードして、機能モジュール５-１が割込み要因モジュールであることを検出し、次に、０ｘ０１００_０００４番地から割込み要因をリードして、機能モジュール５-１の割込み要因を特定し、レジスタ４４のステータスレジスタのビット０をクリアした後に、機能モジュール５-１に対する所定の処理を行う。
【００７４】
続いて、マスクされていない割込みが発生した場合には、該当機能モジュールの識別情報と割込み要因が、プロセッサ４１によって、割込み要因バッファの０ｘ０１００_０００８番地と０ｘ０１００_０００Ｃ番地、０ｘ０１００_００１０番地と０ｘ０１００_００１４番地、・・・に同様のシーケンスでライトされて行く。
【００７５】
また、ＣＰＵ１も、割込み処理ルーチンにおいて、割込み要因バッファの０ｘ０１００_０００８番地と０ｘ０１００_０００Ｃ番地、０ｘ０１００_００１０番地と０ｘ０１００_００１４番地、・・・から、機能モジュールの識別情報と割込み要因をリードして行く。
【００７６】
機能モジュール５-８が、割込み信号線６-８をアサートして割込みを発行した場合、レジスタ４４のマスクレジスタの対応ビットであるビット７は“１”であり、機能モジュール５-８の割込みはマスクされているため、プロセッサ４１は動作しない。したがって、機能モジュール５-８に対応するシーケンス終了信号はアサートされることはなく、ステータスレジスタのビット０に“１”がセットされることもない。
【００７７】
なお、プロセッサ４１が割込み要因を割込み要因バッファに書き出す際に、割込み要因と併せてタイムスタンプまたはシリアル番号を書き出す場合も、本実施の形態に含むものとする。
【００７８】
なお、上述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００７９】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８０】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００８１】
また、コンピュータが読出したプログラムコードを実行することにより、上述した各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した各実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００８２】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した各実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００８３】
【図１】本発明の第１の実施の形態に係る割込みコントローラを含むシステムＬＳＩの概略構成を示すブロック図である。
【図２】図１中の割込みコントローラの詳細な構成を示すブロック図である。
【図３】本発明の第２の実施の形態に係る割込みコントローラの詳細な構成を示すブロック図である。
【図４】本発明の第３の実施の形態に係る割込みコントローラの詳細な構成を示すブロック図である。
【図５】本発明の第４の実施の形態に係る割込みコントローラの詳細な構成を示すブロック図である。
【図６】図５中のプロセッサが実行する制御プログラムの手順を示すフローチャートである。
【図７】従来のシステムＬＳＩの概略構成を示すブロック図である。
【図８】図７中の割込みコントローラが備えているステータスレジスタとマスクレジスタの構成の一例を示す図である。
【符号の説明】
【００８４】
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  システムバス
５-１〜５-ｎ  機能モジュール
６-１〜６-ｎ  割込み信号線（機能モジュール−割込みコントローラ間）
７  割込み信号線（割込みコントローラ−ＣＰＵ間）
１０  割込みコントローラ
１１  シーケンサ
１２  バスインタフェース
１３  レジスタ
１４  割込み発行部
２０  割込みコントローラ
２１  シーケンサ
２２  タイマ
３０  割込みコントローラ
３１  シーケンサ
３２  カウンタ
４０  割込みコントローラ
４１  プロセッサ
４２  ＩＯコントローラ
４３  バスインタフェース
４４  レジスタ
４５  メモリ
１０１  割込みコントローラ
１０１ａ  ステータスレジスタ
１０１ｂ  マスクレジスタ
【図１】
2006172196.tif 000003
【図２】
2006172196.tif 000004
【図３】
2006172196.tif 000005
【図４】
2006172196.tif 000006
【図５】
2006172196.tif 000007
【図６】
2006172196.tif 000008
【図７】
2006172196.tif 000009
【図８】
2006172196.tif 000010