(57)【要約】【課題】比較的簡単な回路構成による処理で、不正割り込みの出力を防止する。【解決手段】CPU６０により割り込み処理が終了するとそれぞれクリアされる複数の割り込み要因信号Ｓ１０が、デコーダ２３−１に入力されると、このデコーダ２３−１は、優先順位を表す割り込みレベル毎に割り込み信号Ｓ２３−１１〜Ｓ２３−１３をそれぞれ出力する。ゲート手段２５−１A〜２５−３Aは、複数の信号Ｓ２３−１１〜Ｓ２３−１３中の割り込みレベルが最も高い割り込み信号のみを割り込み信号Ｓ２６としてCPU６０へ出力する。出力生成ブロック５４は、ゲート手段の出力を遮断するためのレベル割り込みマスク延長信号Ｓ５４ｃ−３を生成する。この信号Ｓ５４ｃ−３は、エッチ検出ブロック５３によりセットされ、また、エッジ検出ブロック５２により、割り込み要因信号Ｓ１０がクリアされてからリセットされる。【選択図】図１
2007280128.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによる割り込み処理の終了によりクリアされる割り込み要因信号が複数入力されると、各割り込み要因信号に対して優先順位を表す割り込みレベル毎に割り込み信号をそれぞれ出力するデコード手段と、
前記出力された複数の割り込み信号のうち割り込みレベルが最も高い割り込み信号をレベル割り込み信号として前記プロセッサへ出力し、前記割り込みレベルが最も高い割り込み信号以外の割り込み信号を第１のマスク信号によりマスクして遮断するゲート手段と、
前記ゲート手段の出力を遮断するための第２のマスク信号を生成するマスク信号生成手段と、
前記第２のマスク信号をセットするセット手段と、
前記割り込み要因信号がクリアされてから前記第２のマスク信号をリセットするリセット手段と、
を有することを特徴とする割り込みコントローラ。
【請求項２】
プロセッサによる割り込み処理の終了によりクリアされる割り込み要因信号が複数バスから入力されると、各割り込み要因信号に対して優先順位を表す割り込みレベル毎に割り込み信号をそれぞれ出力するデコード手段と、
前記出力された複数の割り込み信号のうち割り込みレベルが最も高い割り込み信号をレベル割り込み信号として前記プロセッサへ出力し、前記割り込みレベルが最も高い割り込み信号以外の割り込み信号をマスク信号によりマスクして遮断するゲート手段と、
前記マスク信号に対する前記バスからのクリアアクセス完了を、前記割り込み要因信号がクリアされるまで待たせる停止手段と、
を有することを特徴とする割り込みコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム集積回路（以下「システムLSI」という。）等に搭載される割り込み制御装置である割り込みコントローラ、特に割り込み信号の出力のマスク技術に関するものである。
【背景技術】
【０００２】
従来、コンピュータ等において、プロセッサ（以下「CPU」という。）に対して複数の割り込み要求（assert、アサート）があった場合に、その割り込み要求の優先順位を制御するための割り込みコントローラが、例えば、次の文献等に記載されている。
【０００３】
【特許文献１】特開平６−８３６４２号公報
【０００４】
この特許文献１に記載されているように、従来の割り込みコントローラでは、CPUに対して複数の割り込み要求があった場合、割り込みコントローラは、内部に設けた割り込みマスクレジスタに保持された割り込み要求の禁止情報に基づき、その複数の割り込み要求中の優先順位の低いものをマスクすると共に、優先順位の高いものを選んでCPUに通知し、このCPUに割り込み処理を行わせる。優先順位の高い割込み要求に対する割り込み処理が終了した時、割り込みコントローラは、CPUからの割込み終了の通知がある前に、その割込み要求をインアクティブ（inactive、非活性化）にしている。そのため、割込み要求に不具合が発生し且つこの割込み要求がアクティブ（活性化状態）になったままのとき、新たな割込み要求が発生したと判断して再び割込み処理を開始する。その結果、優先順位の低い割込み要求は、CPUからの命令により割込みマスクレジスタの内容を変更しない限り、いつまでたっても受け付けられないという欠点がある。
【０００５】
このような欠点を解決し、優先度の高い割込み要求が連続して発生したときでも、割込み禁止情報を変更せずに優先度の低い割込み要求も受け付けられるようにするために、特許文献１の割り込みコントローラでは、複数の割込み要求を受け付けて優先順位を決定する優先決定ロジックと、前記割込み要求の禁止情報（つまり、割り込みマスクデータ）を保持する割り込みマスクレジスタと、CPUに割込み要求を通知する制御ロジックと、割込みルーチンアドレスを発生して前記CPUに出力する割り込みルーチンアドレス発生ロジックと、前記CPUからの割込み終了信号を検知する割り込み終了検知ロジックと、前記割り込み終了検知ロジックの状態及び割込み要求信号により前記割込み要求を禁止する割り込みマスクデータ制御ロジックとを有している。
【０００６】
これにより、優先度の高い割込み要求が連続して発生したときでも、CPUの命令により、割込み禁止情報を変更することなしに優先順位の低い割込み要求を受け付けることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来の特許文献１の技術では、優先順位の高い割り込みを優先し、割り込み終了時に割り込み要求をインアクティブにする前に割り込み終了の通知が出されてしまうような場合に誤った動作をしてしまうという課題を解決するために、割り込みマスクレジスタを設けて割り込みマスクデータを書き込むといった方法で解決している。
【０００８】
しかしながら、割り込みマスクデータの生成や、割り込みマスクデータの割り込みマスクレジスタヘの書き込み等、動作として複雑なものになるという新たな課題が生じ、この課題を比較的簡単な処理で解決することが困難であった。
【課題を解決するための手段】
【０００９】
請求項１に係る発明の割り込みコントローラは、デコード手段と、ゲート手段と、マスク信号生成手段と、セット手段と、リセット手段とを有している。
【００１０】
前記デコード手段は、プロセッサによる割り込み処理の終了によりクリアされる割り込み要因信号が複数入力されると、各割り込み要因信号に対して優先順位を表す割り込みレベル毎に割り込み信号をそれぞれ出力する。前記ゲート手段は、前記出力された複数の割り込み信号のうち割り込みレベルが最も高い割り込み信号をレベル割り込み信号として前記プロセッサへ出力し、前記割り込みレベルが最も高い割り込み信号以外の割り込み信号を第１のマスク信号によりマスクして遮断する。前記マスク信号生成手段は、前記ゲート手段の出力を遮断するための第２のマスク信号を生成する。前記セット手段は、前記第２のマスク信号をセットする。前記リセット手段は、前記割り込み要因信号がクリアされてから前記第２のマスク信号をリセットする。
【００１１】
請求項２に係る発明の割り込みコントローラは、デコード手段と、ゲート手段と、停止手段とを有している。
【００１２】
前記デコード手段は、プロセッサによる割り込み処理の終了によりクリアされる割り込み要因信号が複数バスから入力されると、各割り込み要因信号に対して優先順位を表す割り込みレベル毎に割り込み信号をそれぞれ出力する。前記ゲート手段は、前記出力された複数の割り込み信号のうち割り込みレベルが最も高い割り込み信号をレベル割り込み信号として前記プロセッサへ出力し、前記割り込みレベルが最も高い割り込み信号以外の割り込み信号をマスク信号によりマスクして遮断する。前記停止手段は、前記マスク信号に対する前記バスからのクリアアクセス完了を、前記割り込み要因信号がクリアされるまで待たせる。
【発明の効果】
【００１３】
請求項１に係る発明によれば、割り込み要因クリアアクセスから割り込み要因信号がクリアされるまで、ゲート手段からレベル割り込み信号が出力されないので、比較的簡単な回路構成による処理で、不正割り込みの出力といった誤った動作を防止できる。更に、ソフトウエア開発者は不正割り込みを意識することなくソフトウエアを開発することができるので、ソフトウエアの開発工数の削減ができる。更に、ソースコードを削減することができ、メモリリソースを節約できる効果がある。
【００１４】
請求項２に係る発明によれば、割り込み要因クリアアクセスから割り込み要因がクリアされるまで、停止手段により、ゲート手段からレベル割り込み信号が出力されないので、比較的簡単な回路構成による処理で、不正割り込みの出力といった誤った動作を防止でき。更に、ソフトウエア開発者は不正割り込みを意識することなくソフトウエアを開発することができるので、ソフトウエアの開発工数の削減ができる効果がある。更に、ソースコードを削減することができ、メモリリソースを節約できる効果がある。しかも、請求項１に係る発明よりも、回路構成をより簡単化できる。
【発明を実施するための最良の形態】
【００１５】
割り込みコントローラは、デコード手段と、ゲート手段と、マスク信号生成手段と、セット手段と、リセット手段とを有している。
【００１６】
デコード手段は、CPUによる割り込み処理の終了によりクリアされる割り込み要因信号が複数入力されると、各割り込み要因信号に対して優先順位を表す割り込みレベル毎に割り込み信号をそれぞれ出力する。ゲート手段は、複数の割り込み信号のうち割り込みレベルが最も高い割り込み信号をレベル割り込み信号としてCPUへ出力し、割り込みレベルが最も高い割り込み信号以外の割り込み信号を第１のマスク信号によりマスクして遮断する。マスク信号生成手段は、ゲート手段の出力を遮断するための第２のマスク信号を生成する。セット手段は、第２のマスク信号をセットする。更に、リセット手段は、第２のマスク信号を割り込み要因信号がクリアされてからリセットする。
【実施例１】
【００１７】
（参考例の構成）
図２は、本発明の実施例１の参考例における割り込みコントローラを搭載したシステムLSIを示す要部の概略の構成図である。
【００１８】
このシステムLSIは、図示しないバス（以下「BUS」という。）からの各BUS信号Ｓ９が入力されると割り込み要因信号Ｓ１０をそれぞれ出力する複数の割り込み要因出力ブロック１０を有し、これらの出力側に、割り込みコントローラ２０を介してCPU６０が接続されている。
【００１９】
割り込みコントローラ２０は、レベル割り込み出力機能を持つ制御回路である。本発明においては、複数の割り込み要因出力ブロック１０を想定しており、それぞれの割り込み要因出力ブロック１０の割り込み出力のアサート/デアサートタイミングは任意である。このため、図２の割り込みコントローラ２０では、例えば、３個の割り込み要因とそれぞれの割り込み要因に対して３つの優先度のレベルを設定できるものを例として示している。割り込み要因ブロック１０の出力である割り込み要因信号Ｓ１０は、割り込みコントローラ２０の割り込み入力２信号Ｓ１０−２の入力バッファ２１−２に対して接続されている。
【００２０】
CPU６０は、割り込みコントローラ２０の出力を受けて所定のプログラムを実行する回路であり、これにはバスインタフェースブロック７０が接続されている。バスインタフェースブロック７０は、CPU６０と割り込みコントローラ２０、割り込み要因出力ブロック１０等を仲介するブロックであり、図中では示していないが、このバスインタフェースブロック７０を経由することにより、CPU６０は割り込みコントローラ２０や割り込み要因出力ブロック１０にアクセスできる。
【００２１】
割り込みコントローラ２０では、優先度のレベル設定を割り込みレベル制御レジスタ２２により行い、各割り込みアサート時、最も優先度の高い割り込みが割り込み出力信号Ｓ２６として出力され、且つその割り込みの番号が割り込み番号レジスタ４０に保持される。各レジスタ２２，４０の設定はバスインタフェース（以下「BUS I/F」という。）３０−１を介して行うようになっている。なお、レジスタ２２とBUS I/F３０−１との間の配線は、図面上では省略している。
【００２２】
即ち、図２の割り込みコントローラ２０は、割り込み入力０信号Ｓ１０−０を割り込み０信号Ｓ２１−０として取り込む入力バッファ２１−０、割り込み入力１信号Ｓ１０−１を割り込み１信号Ｓ２１−１として取り込む入力バッファ２１−１、及び割り込み入力２信号Ｓ１０−２を割り込み２信号Ｓ２１−２として取り込む入力バッファ２１−２と、割り込み０レベル信号Ｓ２２−０、割り込み１レベル信号Ｓ２２−１、及び割り込み２レベル信号Ｓ２２−２を出力する割り込みレベル制御レジスタ２２とを有し、これらの出力側にデコード手段（例えば、デコーダ）２３−１が接続されている。デコーダ２３−１は、割り込み０信号Ｓ２１−０、割り込み１信号Ｓ２１−１、及び割り込み２信号Ｓ２１−２と、割り込み０レベル信号Ｓ２２−０、割り込み１レベル信号Ｓ２２−１、及び割り込み２レベル信号Ｓ２２−２とをデコードし、割り込みレベル毎に割り込み信号Ｓ２３−１１，Ｓ２３−１２，Ｓ２３−１３を出力する回路である。
【００２３】
デコーダ２３−１の出力側には、ゲート手段が接続されている。ゲート手段は、複数の割り込み信号Ｓ２３−１１，Ｓ２３−１２，Ｓ２３−１３中の割り込みレベルが最も高い割り込み信号を割り込み出力信号Ｓ２６としてCPU６０へ出力し、割り込みレベルが最も高い割り込み信号以外の割り込み信号を第１のマスク信号（例えば、現割り込みレベル１信号Ｓ４２−１、現割り込みレベル２信号Ｓ４２−２、及び現割り込みレベル２信号Ｓ４２−３）によりマスクして遮断する回路である。
【００２４】
このゲート手段は、例えば、信号Ｓ４２−１，Ｓ４２−２，Ｓ４２−３の論理和を求める３入力の論理和ゲート（以下「ORゲート」という。）２４−１と、信号Ｓ４２−２，Ｓ４２−３の論理和を求める２入力ORゲート２４−２と、割り込み信号Ｓ２３−１１とORゲート２４−１の出力の逆相信号との論理積を求めてレベル１割り込み信号Ｓ２５−１を出力する２入力の論理積ゲート（以下「ANDゲート」という。）２５−１と、割り込み信号Ｓ２３−１２とORゲート２３−２の出力の逆相信号との論理積を求めてレベル２割り込み信号Ｓ２５−２を出力する２入力ANDゲート２５−２と、割り込み信号Ｓ２３−１３と信号Ｓ４２−３の逆相信号との論理積を求めてレベル３割り込み信号Ｓ２５−３を出力する２入力ANDゲート２５−３と、レベル１割り込み信号Ｓ２５−１、レベル２割り込み信号Ｓ２５−２、及びレベル３割り込み信号Ｓ２５−３の論理和を求めて割り込み出力信号Ｓ２６をCPU６０へ出力する３入力ORゲート２６とにより構成されている。
【００２５】
ANDゲート２５−１〜２５−３の出力側には、デコーダ２３−２，２３−３が接続されている。デコーダ２３−２は、レベル１割り込み信号Ｓ２５−１、レベル２割り込み信号Ｓ２５−２、及びレベル３割り込み信号Ｓ２５−３と、割り込み０レベルＳ２２−０、割り込み１レベルＳ２２−１、及び割り込み２レベルＳ２２−２とをデコードし、割り込みレベルが最も高いアサートされている割り込み号Ｓ２３−２を出力する回路であり、この出力側に、BUS I/F３０−１を介して割り込み番号レジスタ４０が接続されている。割り込み番号レジスタ４０には、最優先の割り込み番号Ｓ２３−２が格納される。BUS I/F３０−１から、割り込み番号レジスタ４０を読み出す（リードする）ための割り込み番号レジスタリード信号Ｓ３０−１が出力される。
【００２６】
デコーダ２３−３は、レベル１割り込み信号Ｓ２５−１、レベル２割り込み信号Ｓ２５−２、及びレベル３割り込み信号Ｓ２５−３をデコードし、割り込みレベルが最も高いレベル値信号Ｓ２３−３を出力する回路であり、この出力側に、レベル値信号Ｓ２３−３を格納する割り込みレベルレジスタ４１を介して、デコーダ２３−４が接続されている。デコーダ２３−４は、割り込みレベルレジスタ４１に格納された割り込みレベルが最も高いレベル値信号Ｓ２３−３の対応ビットに“１”を立てて、割り込みレベル１信号Ｓ２２−４１、割り込みレベル２信号Ｓ２２−４２、及び割り込みレベル３信号Ｓ２２−４３を出力する回路であり、この出力側に、現割り込みレベルレジスタバスインタフェースブロック３０−２が接続されている。
【００２７】
現割り込みレベルレジスタバスインタフェースブロック３０−２は、割り込みレベル１信号Ｓ２２−４１、割り込みレベル２信号Ｓ２２−４２、割り込みレベル３信号Ｓ２２−４３、割り込み信号レジスタリード信号Ｓ４０、及びBUS信号Ｓ９を入力し、現割り込みレベル１、２、３の信号を出力する回路であり、現割り込みレジスタアクセス完了信号Ｓ３１を出力するバスアクセス完了信号生成ブロック３１と、その現割り込みレジスタアクセス完了信号Ｓ３１に基づいて現割り込みレベル１、２、３の信号を出力する機能ブロック３２とを有している。機能ブロック３２の出力側には、現割り込みレベル１レジスタ４２−１、現割り込みレベル２レジスタ４２−２、及び現割り込みレベル３レジスタ４２−３が接続され、更に、バスアクセス完了信号生成ブロック３１の出力側に、多入力ORゲート４３が接続されている。
【００２８】
現割り込みレベル１レジスタ４２−１は、現割り込みレベル１を格納して現割り込みレベル１信号Ｓ４２−１を出力するレジスタ、現割り込みレベル２レジスタ４２−２は、現割り込みレベル２を格納して現割り込みレベル２信号Ｓ４２−２を出力するレジスタ、及び、現割り込みレベル３レジスタ４２−３は、現割り込みレベル３を格納して現割り込みレベル３信号Ｓ４２−３を出力するレジスタである。ORゲート４３は、現割り込みレジスタアクセス完了信号Ｓ３１、及び他のレジスタからのアクセス完了信号Ｓ３１aの論理和を求め、バスアクセス完了信号Ｓ４２をバスインタフェースブロック７０へ出力する回路である。
【００２９】
（参考例の動作）
図３は、図２の割り込みコントローラ２０における割り込み制御の動作波形図である。この図３では、割り込みコントローラ２０において、例えば、割り込み入力２信号Ｓ１０−２に対してレベル“３”（最優先）が設定されている場合の割り込み制御の動作波形が示されている。
【００３０】
割り込みコントローラ２０による割り込み制御は、以下のタイミング（１）〜（４）に従って動作する。
【００３１】
なお、図２においては、簡略化のため図示しなかったが、図２の各回路ブロックや割り込みコントローラ２０内のデコーダやレジスタは、バスクロックclkと同期して動作するものである。
【００３２】
バスクロックclkに同期して、タイミング（１）で、割り込み要因出力ブロック１０から出力される割り込み要因信号Ｓ１０がアサートされ、“Ｌ”レベルに立ち下がる。同時に、入力バッファ２１−２からの割り込み２信号Ｓ２１−２と、デコーダ２３−１及びORゲート２５−３を介してORゲート２６からの割り込み出力信号Ｓ２６と、ORゲート２５−３、デコーダ２３−３及び割り込みレベルレジスタ４１を介してデコーダ２３−４からの割り込みレベル３信号Ｓ２３−４３とがアサートされる。割り込み出力信号Ｓ２６がアサートされて“Ｌ”レベルに立ち下がると、CPU６０への割り込みが発生する。バスクロックclkの１サイクル後に、デコーダ２３−２、及びBUS I/F３０−１を介して割り込み番号レジスタ４０の値“０”が更新されて“２”となる。
【００３３】
タイミング（２）で、CPU６０から割り込み番号レジスタ４０に対してリードアクセスが実行される。バスクロックclkの１サイクル後に、BUS I/F３０−１からの割り込み番号レジスタリード信号Ｓ３０−１がアサートされ、割り込み番号レジスタリード信号Ｓ３０−１を“Ｈ”レベルにイネーブルして割り込みレベル３信号Ｓ４２−３が、現割り込みレベルレジスタバスインタフェースブロック３０−２を介して、現割り込みレベル３レジスタ４２−３にサンプルされ、現割り込みレベル３信号Ｓ４２−３がアサートされて“Ｈ”レベルに立ち上がる。この時、“Ｈ”レベルの現割り込みレベル３信号Ｓ４２−３は、ANDゲート２５−３を閉じて、ORゲート２６からの割り込み出力信号Ｓ２６をマスクするので、CPU６０への割り込み出力信号Ｓ２６がデアサートされる。
【００３４】
タイミング（３）で、CPU６０からの割り込み要因クリアアクセスが割り込み要因出力ブロック１０に対して実行される。割り込み要因信号Ｓ１０がデアサートされて“Ｈ”レベルに立ち上がり、同時に、入力バッファ２１−２からの割り込み２信号Ｓ２１−２がデアサートされて“Ｌ”レベルに立ち下がり、デコーダ２３−４からの割り込みレベル３信号Ｓ２３−４３がデアサートされて“Ｌ”レベルに立ち下がる。
タイミング（４）で、CPU６０から現割り込みレベル３レジスタ４２−３に対してクリアクセスが実行される。現割り込みレベル３信号Ｓ４２−３がクリアされて“Ｌ”レベルに立ち下がり、ANDゲート２５−３が開いて次のレベル“３”の割り込み受付が可能となる。
【００３５】
（参考例の問題点）
ところが、図２の構成では、タイミング（１）〜（４）の手順による割り込み要因出力ブロック１０ヘの割り込み要因アクセスの完了が遅れ、割り込み要因出力のデアサートが遅れ、ハードウエアの要因により遅れた場合に、意図しない割り込み（不正割り込み）が出力される可能性がある。その場合、１回の割り込みに対して２回の割り込み処理が行われる。
【００３６】
不正割り込みの出力を回避する手段としては、割り込み要因のクリア完了までソフトウエアにて十分な時間をとった後に、現割り込みレベル３レジスタ４２−３のクリアアクセスを実行する方法が考えられる。しかし、そのためには、割り込み要因クリアに要するバスクロックclkのサイクル数を見込み、そのサイクル数だけ待つ動作をソフトウエアにて実現しなければならず、ソフトウエアの開発の負担となる。以下、この問題点を図４を用いて説明する。
【００３７】
図４は、図２の割り込みコントローラ２０における割り込み制御の問題点を示す動作波形図である。この図４では、割り込み要因出力ブロック１０の割り込みクリアがアクセス後しばらくたってから完了（デアサート）され、不正割り込みが出力される場合が示されている。
【００３８】
タイミング（１）で、割り込み要因信号Ｓ１０がアサートされて“Ｌ”レベルに立ち下がる。同時に、割り込み２信号Ｓ２１−２、割り込み出力信号Ｓ２６、及び割り込みレベル３信号Ｓ２３−４３がアサートされる。バスクロックclkの１サイクル後に、割り込み番号レジスタ４０の値“０”が“更新されて“２”となる。
【００３９】
タイミング（２）で、CPU６０からの割り込み番号レジスタ４０に対するリードアクセスが実行される。バスクロックclkの１サイクル後に、割り込み番号レジスタリード信号Ｓ３０−１がアサートされ、割り込み番号レジスタリード信号Ｓ３０−１をイネーブルして割り込みレベル３信号Ｓ２３−４３が、現割り込みレベル３レジスタ４２−３にサンプルされ、現割り込みレベル３信号Ｓ４２−３がアサートされて“Ｈ”レベルになる。同時に、ANDゲート２５−３が閉じて割り込み出力信号がデアサートされる。
【００４０】
タイミング（３）で、CPU６０からの割り込み要因出力ブロック１０に対する割り込み要因クリアアクセスが実行される。割り込み要因出力ブロック１０のハードウエアの要因により、割り込み要因信号Ｓ１０がデアサートされて“Ｈ”レベルに立ち上がるのは、タイミング（４）の現割り込みレベル３レジスタ４２−３のクリアの後となる。なお、割り込み要因出力ブロック１０のハードウエアの要因としては、例えば、割り込み要因出力ブロック１０の、出力の生成するクロックがバスクロックclkと比較して遅く、割り込み要因クリアのアクセスから実際に割り込み要因出力がクリアされるのが遅れる場合等が考えられる。
【００４１】
タイミング（４）で、CPU６０から現割り込みレベル３レジスタ４２−３に対してクリアクセスが実行される。現割り込みレベル３信号Ｓ４２−３がクリアされて“Ｌ”に立ち下がり、ANDゲート２５−３が開いて次のレベル３の割り込み受付が可能となる。この時、割り込み要因出力ブロック１０はクリアされていないため、割り込みコントローラ２０では割り込み要因のクリアを認識できず、割り込み出力信号Ｓ２６がアサートされる（不正割り込みが出力される）。
【００４２】
このような問題点を除去するために、実施例１では以下のような手段を講じている。
【００４３】
（実施例１の構成）
図１は、本発明の実施例１における割り込みコントローラを搭載したシステムLSIを示す要部の概略の構成図であり、参考例を示す図２中の要素と共通の要素には共通の符号が付されている。
【００４４】
本実施例１のシステムLSIでは、参考例の割り込みコントローラ２０に代えて、構成の異なる割り込みコントローラ２０Ａが設けられている。
【００４５】
コントローラ２０Ａでは、第２のマスク信号（例えば、レベル３割り込みマスク延長信号）Ｓ５４ｃ−３を生成するマスク信号生成手段（例えば、割り込みマスク延長信号生成ブロック）５０−３が追加され、更に、そのレベル３割り込みマスク延長信号Ｓ５４ｃ−３により、割り込み信号Ｓ２３−１３をマスクするための機能が追加されたANDゲート２５−３Aが、参考例のANDゲート２５−３に代えて設けられている。又、各レベル１、２の割り込みマスク延長信号Ｓ５４ｃ−１，Ｓ５４ｃ−２により、各割り込み信号Ｓ２３−１１，Ｓ２３−１２をマスクするための機能が追加された各ANDゲート２５−１A，２５−２Aが、参考例の各ANDゲート２５−１，２５−２に代えて設けられている。
【００４６】
なお、割り込みマスク延長信号生成ブロック５０−３は、全割り込みレベルに適用するので、他のレベル１割り込みマスク延長信号Ｓ５４c−１を生成する割り込みマスク延長信号生成ブロック５０−１、及びレベル２割り込みマスク延長信号Ｓ５４c−２を生成する割り込みマスク延長信号生成ブロック５０−２も設けられているが、図面を簡潔にするために図示されていない。
【００４７】
割り込みマスク延長信号生成ブロック５０−３は、割り込み０信号Ｓ２１−０、割り込み１信号Ｓ２１−１、及び割り込み２信号Ｓ２１−２を入力する割り込みセレクタブロック５１と、この出力側に接続されたマスク信号リセット用のリセット手段（例えば、エッジ検出ブロック）５２と、現割り込みレベル３レジスタ４２−３の出力側に接続されたマスク信号セット用のセット手段（例えば、エッジ検出ブロック）５３と、これらのエッジ検出ブロック５２，５３の出力側に接続されたマスク信号生成手段（例えば、レベル３割り込みマスク延長信号Ｓ５４ｃ−３を生成する出力生成ブロック）５４とにより構成されている。
【００４８】
割り込みセレクタブロック５１は、割り込み番号レジスタ４０の値により、内部の割り込み信号である割り込み０信号Ｓ２１−０、割り込み２信号Ｓ２１−１、及び割り込み２信号Ｓ２１−２から割り込み信号を選択し、選択割り込み信号Ｓ５１をエッジ検出ブロック５２へ出力する回路である。エッジ検出ブロック５２は、例えば、レジスタ５２ａ、及び２入力ANDゲート５２bにより構成され、選択割り込み信号Ｓ５２の立ち下りのエッジを検出し、マスク延長信号リセットフラグＳ５２bとして出力生成ブロック５４へ出力する回路である。
【００４９】
エッジ検出ブロック５３は、例えば、レジスタ５３ａ、及び２入力ANDゲート５３bにより構成され、現割り込みレベル３信号Ｓ４２−３の立ち上がりエッジを検出し、マスク延長信号セットフラグＳ５３bとして出力生成ブロック５４へ出力する回路である。出力生成ブロック５４は、例えば、セレクタ５４ａ，５４ｂ及びレジスタ５４ｃにより構成され、マスク延長信号セットフラグＳ５３bが“１”の場合にセットされ、マスク延長信号リセットフラグＳ５２ｂが“１”の場合にリセットされ、それ以外の場合にはレジスタ５４ｃの出力の値を保持し、その値をレベル３割り込みマスク延長信号Ｓ５４ｃ−３としてANDゲート２５−３Aへ出力する回路である。
【００５０】
その他の構成は、参考例の図２と同様である。
【００５１】
（実施例１の動作）
図５は、図１の割り込みコントローラ２０Ａにおける割り込み制御の動作波形図である。この図５では、参考例の図３の動作波形図と同様に、割り込みコントローラ２０Ａにおいて、例えば、割り込み入力２信号Ｓ１０−２に対してレベル“３”（最優先）が設定されている場合の割り込み制御の動作波形が示されている。
【００５２】
割り込みコントローラ２０Ａによる割り込み制御は、以下のタイミング（１）〜（５）に従って動作する。
【００５３】
タイミング（１）で、割り込み要因出力ブロック１０から出力される割り込み要因信号Ｓ１０がアサートされ、“Ｌ”レベルに立ち下がる。同時に、割り込み２信号Ｓ２１−２、割り込み出力信号Ｓ２６、及び割り込みレベル３信号Ｓ２３−４３がアサートされる。割り込み出力信号Ｓ２６がアサートされて“Ｌ”レベルに立ち下がると、CPU６０への割り込みが発生する。バスクロックclkの１サイクル後に、割り込み番号レジスタ４０の値“０”が更新されて“２”となる。
【００５４】
タイミング（２）で、CPU６０から割り込み番号レジスタ４０に対してリードアクセスが実行される。バスクロックclkの１サイクル後に、割り込み番号レジスタ４０からBUS I/F３０−１を介して出力される割り込み番号レジスタリード信号Ｓ３０−１がアサートされて“Ｈ”レベルのパルスが発生し、この割り込み番号レジスタリード信号Ｓ３０−１をイネーブルとして割り込みレベル３信号Ｓ２３−４３が、現割り込みレベルレジスタバスインタフェースブロック３０−２を介して現割り込みレベル３レジスタ４２−３にサンプルされ、現割り込みレベル３信号Ｓ４２−３がアサートされて“Ｈ”レベルに立ち上がる。この時点では、信号５４ｃ−３は“Ｌ”レベルのままであり、割り込み出力信号Ｓ２６がデアサートされる。
【００５５】
エッジ検出ブロック５３により、現割り込みレベル３信号Ｓ４２−３の立ち上がりエッジが検出され、マスク延長信号セットフラグＳ５３ｂがアサートされる。マスク延長信号セットフラグＳ５３ｂがアサートされたことにより、出力生成ブロック５４から出力されるレベル３割り込みマスク延長信号Ｓ５４ｃ−３がアサートされ、“Ｈ”レベルに立ち上がる。
【００５６】
タイミング（３）で、CPU６０から割り込み要因出力ブロック１０に対して割り込み要因クリアアクセスが実行される。ハードウエアの要因により、割り込み要因信号Ｓ１０がデアサートされて“Ｈ”レベルに立ち上がるのは、タイミング（４）の現割り込みレベル３レジスタ４２−３のクリアの後となるものとする。
【００５７】
タイミング（４）で、CPU６０から現割り込みレベル３レジスタ４２−３に対してクリアクセスが実行される。現割り込みレベル３信号Ｓ４２−３がクリアされて“Ｌ”レベルに立ち下がると、ANDゲート２５−Aによってレベル“３”の割り込み受付が可能となる。
【００５８】
この時、割り込み要因信号Ｓ１０はクリアされていないが、レベル３割り込みマスク延長信号Ｓ５４ｃ−３がアサートされて“Ｈ”レベルになっているため、ANDゲート２５−３Aが閉じ、割り込み出力信号Ｓ２６はアサートされない（不正割り込みが出力されない）。
【００５９】
タイミング（５）で、割り込み要因信号Ｓ１０がクリアされて“Ｈ”レベルに立ち上がり、割り込みセレクタブロック５１から出力される選択割り込み信号Ｓ５１が“Ｌ”レベルに立ち下がると、エッジ検出ブロック５２により立ち下りエッジが検出され、マスク延長信号リセットフラグＳ５２ｂがアサートされる。マスク延長信号リセットフラグＳ５２ｂがアサートされて“Ｈ”レベルになると、セレクタ５４ｂは“０”を出力するため、出力生成ブロック５４から出力されるレベル３割り込みマスク延長信号信号Ｓ５４ｃ−３がクリアされて“Ｌ”レベルに立ち下がる。これにより、ANDゲート２５−３Aが開いて次のレベル“３”の割り込み受付が可能となる。
【００６０】
（実施例１の効果）
本実施例１によれば、割り込み要因クリアアクセスから割り込み要因信号Ｓ１０がクリアされるまで、ORゲート２６から割り込み出力信号Ｓ２６がCPU６０へ出力されないので、比較的簡単な回路構成による処理で、不正割り込みの出力を防止でき、ソフトウエア開発者は不正割り込みを意識することなくソフトウエアを開発することができるので、ソフトウエアの開発工数の削減ができる。更に、ソースコードを削減することができ、メモリリソースを節約できる効果がある。
【実施例２】
【００６１】
（実施例２の構成）
図６は、本発明の実施例２における割り込みコントローラを搭載したシステムLSIを示す要部の概略の構成図であり、参考例を示す図２中の要素と共通の要素には共通の符号が付されている。
【００６２】
本実施例２のシステムLSIでは、参考例の割り込みコントローラ２０に代えて、構成の異なる割り込みコントローラ２０Ｂが設けられている。
【００６３】
コントローラ２０Ｂでは、参考例の割り込みコントローラ２０に、停止手段（例えば、現割り込みレベルレジスタアクセス完了信号生成ブロック）が追加されている。
【００６４】
現割り込みレベルレジスタアクセス完了信号生成ブロックは、割り込み０信号Ｓ２１−０、割り込み１信号Ｓ２１−１、及び割り込み２信号Ｓ２１−２を入力する割り込みセレクタブロック５５と、現割り込みレベルレジスタバスインタフェースブロック３０−２Ｂ内のバスアクセス完了信号生成ブロック３１Ｂの出力側に接続されたバスアクセス完了信号マスクブロック３３とにより構成されている。
【００６５】
割り込みセレクタブロック５５は、内部の割り込み信号である割り込み０信号Ｓ２１−０、割り込み１信号Ｓ２１−１、及び割り込み２信号Ｓ２１−２から、割り込み番号レジスタ４０の値によって対応する内部の割り込み信号を選択し、選択割り込み信号Ｓ５５をバスアクセス完了信号マスクブロック３３へ出力する回路である。バスアクセス完了信号マスクブロック３３は、ANDゲートにより構成され、バスアクセス完了信号生成ブロック３１Ｂから出力される現割り込みレジスタアクセス完了ソース信号Ｓ３１Ｂを、選択割り込み信号Ｓ５５によってマスクし、これを現割り込みレベルレジスタアクセス完了信号Ｓ３１として機能ブロック３２及びORゲート４３へ出力する回路である。
【００６６】
その他の構成は、参考例の図２と同様である。
【００６７】
（実施例２の動作）
図７は、図６の割り込みコントローラ２０Ｂにおける割り込み制御の動作波形図である。この図７では、参考例の図３の動作波形図と同様に、割り込みコントローラ２０Ｂにおいて、例えば、割り込み入力２信号Ｓ１０−２に対してレベル“３”（最優先）が設定されている場合の割り込み制御の動作波形が示されている。
【００６８】
割り込みコントローラ２０Ｂによる割り込み制御は、以下のタイミング（１）〜（５）に従って動作する。
【００６９】
タイミング（１）で、割り込み要因信号Ｓ１０がアサートされる。これにより、割り込み２信号Ｓ２１−２、割り込み出力信号Ｓ２６、及び割り込みレベル３信号Ｓ２３−４３がアサートされる。バスクロックclkの１サイクル後に、割り込み番号レジスタ４０の値“０”が更新されて“２”となる。割り込み番号レジスタ４０の値が更新されると、割り込みセレクタブロック５５により、選択割り込み信号Ｓ５５の出力として“Ｈ”レベルの割り込み２信号Ｓ２１−２が選択され、バスアクセス完了信号マスクブロック３３が閉じて現割り込みレジスタアクセス完了信号Ｓ３１がデアサートされ、“Ｌ”レベルに立ち下がる。
【００７０】
タイミング（２）で、CPU６０からの割り込み番号リードアクセスが実行される。バスクロックclkの１サイクル後に、割り込み番号レジスタリード信号Ｓ３０−１がアサートされ、この割り込み番号レジスタリード信号Ｓ３０−１をイネーブルとして割り込みレベル３信号Ｓ２３−４３が、現割り込みレベル３レジスタ４２−３にサンプルされ、現割り込みレベル３信号Ｓ４２−３がアサートされて“Ｈ”レベルに立ち上がる。これにより、ANDゲート２５−３が閉じて割り込み出力信号Ｓ２６がデアサートされる。
【００７１】
タイミング（３）で、CPU６０からの割り込み要因クリアアクセスが実行される。ハードウエアの要因により、割り込み要因信号Ｓ１０がデアサートされて“Ｈ”レベルに立ち上がるのは、タイミング（４）の現割り込みレベル３レジスタクリアの後となる。
【００７２】
タイミング（４）で、CPU６０から現割り込みレベル３レジスタ４２−３に対してクリアクセスが実行される。この時、CPU６０への現割り込みレジスタアクセス完了信号Ｓ３１は、割り込み要因信号Ｓ１０がクリアされるまでアサートされないため、現割り込みレジスタクリアアクセスは完了せず、現割り込みレベル３信号Ｓ４２−３はクリアされないで“Ｈ”レベルのため、ANDゲート２５−３が閉じたままで割り込み出力信号Ｓ２６のマスクが継続され、割り込み出力はアサートされない（不正割り込みが出力されない）。
【００７３】
タイミング（５）で、割り込み要因信号Ｓ１０がクリアされ、割り込みセレクタブロック５５から出力される選択割り込み信号Ｓ５５が“Ｌ”レベルに立ち下がると、バスアクセス完了信号マスクブロック３３が開き、現割り込みレジスタアクセス完了信号Ｓ３１がアサートされて“Ｈ”レベルに立ち上がり、現割り込みレベル３レジスタ４２−３に対するアクセスが完了し、現割り込みレベル３信号Ｓ４２−３がクリアされて“Ｌ”レベルに立ち下がる。これにより、ANDゲート２５−３が開いて次のレベル“３”の割り込み受付が可能となる。
【００７４】
（実施例２の効果）
本実施例２によれば、割り込み要因クリアアクセスから割り込み要因がクリアされるまで、割り込み信号Ｓ２６がCPU６０へ出力されないので、比較的簡単な回路構成による処理で、不正割り込みの出力を防止でき、ソフトウエア開発者は不正割り込みを意識することなくソフトウエアを開発することができるので、ソフトウエアの開発工数の削減ができる効果がある。更に、ソースコードを削減することができ、メモリリソースを節約できる効果がある。しかも、実施例１と比較してゲート数を削減することができ、回路構成をより簡単化できる。
【００７５】
なお、本発明は、上記の参考例や実施例１、２に限定されず、種々の変形や利用形態が可能である。
【００７６】
例えば、上記参考例や実施例１、２では、割り込み要因が３個の例を示しているが、割り込み要因を２個以上持つ割り込みコントローラ２０，２０Ａ，２０Ｂに対しても適用可能である。又、割り込みコントローラ２０，２０Ａ,２０Ｂは、図示以外の回路構成に変更することも可能である。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施例１における割り込みコントローラを搭載したシステムLSIを示す構成図である。
【図２】本発明の実施例１の参考例における割り込みコントローラを搭載したシステムLSIを示す構成図である。
【図３】図２の割り込みコントローラにおける割り込み制御の動作波形図である。
【図４】図２の割り込みコントローラにおける割り込み制御の問題点を示す動作波形図である。
【図５】図１の割り込みコントローラにおける割り込み制御の動作波形図である。
【図６】本発明の実施例２における割り込みコントローラを搭載したシステムLSIを示す構成図である。
【図７】図６の割り込みコントローラにおける割り込み制御の動作波形図である。
【符号の説明】
【００７８】
１０      割り込み要因出力ブロック
２０，２０Ａ，２０Ｂ      割り込みコントローラ
２２      割り込みレベル制御レジスタ
２３−１〜２３−４      デコーダ
２４−１，２４−２，２６      ORゲート
２５−１〜２５−３，２５−１Ａ〜２５−３Ａ      ANDゲート
３０−１      BUS I/F
３０−２，３０−２Ｂ      現割り込みレベルレジスタバスインタフェースブロック
３１，３１Ｂ      バスアクセス完了信号生成ブロック
３３      バスアクセス完了信号マスクブロック
４０      割り込み番号レジスタ
４２−１〜４２−２      現割り込みレベルレジスタ
５０−３      割り込みマスク延長信号生成ブロック
５１，５５      割り込みセレクタブロック
５２，５３      エッジ検出ブロック
５４      出力生成ブロック
６０      CPU
７０      バスインタフェースブロック
【図１】
2007280128.tif 000003
【図２】
2007280128.tif 000004
【図３】
2007280128.tif 000005
【図４】
2007280128.tif 000006
【図５】
2007280128.tif 000007
【図６】
2007280128.tif 000008
【図７】
2007280128.tif 000009