(57)【要約】【課題】  多数の割り込み要因に対し効率的な割り込み判定処理を可能にする割り込みコントローラおよびそれを有するマイクロコンピュータを提供する。【解決手段】  複数ビットを備えた割り込みフラグによって入力される割り込み要因の中から、検出したい割り込み要因を予め設定する割り込みフラグパターン設定部１１と、前記入力される割り込み要因と前記予め設定した割り込み要因とを比較し、一致した際に、優先順位判定回路１０に対して割り込み検出信号を出力する割り込みフラグ検出部１２とを設ける。そして、このような割り込みコントローラをマイクロコンピュータに搭載する。【選択図】  図３
2005085055.tif 000002
【特許請求の範囲】
【請求項１】
複数ビットを備えた割り込みフラグによって入力された割り込み要因の中から、予め設定した割り込み要因を検出する手段と、
前記予め設定した割り込み要因を検出した際に、その検出した割り込み要因に対応するベクタ番号を出力する手段とを有することを特徴とする割り込みコントローラ。
【請求項２】
請求項１記載の割り込みコントローラであって、
さらに、前記予め設定した割り込み要因を検出できなかった際に、未検出に該当するベクタ番号を出力する手段を有することを特徴とする割り込みコントローラ。
【請求項３】
請求項１または２記載の割り込みコントローラであって、
前記予め設定した割り込み要因を検出する手段は、
検出したい割り込み要因に対応する前記割り込みフラグの値を予め設定する第１のレジスタと、
前記第１のレジスタに設定した値と前記入力された割り込み要因に対応する割り込みフラグの値とを、任意に選択したビットで比較可能な比較部とを有することを特徴とする割り込みコントローラ。
【請求項４】
請求項１〜３のいずれか１項に記載の割り込みコントローラを有することを特徴とするマイクロコンピュータ。
【請求項５】
複数ビットを備えた割り込みフラグによって割り込み要因が入力された際、前記入力された割り込み要因に対する割り込み判定処理の一部をハードウェアで実行し、他の一部をソフトウェアで実行することを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込みコントローラおよびマイクロコンピュータに関し、特に、多数の割り込み要因に対する処理が必要な割り込みコントローラ、およびそれを有するマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
本発明者が検討したところによれば、割り込みコントローラおよびマイクロコンピュータの技術に関しては、以下のような技術が考えられる。
【０００３】
例えば、複数の割り込み要求入力信号の中から優先度が最も高い信号を判定し、ＣＰＵに対して割り込み要求出力信号を発生する割り込みコントローラが多く実在している。また、ＣＰＵに前記判定された最も優先度が高い信号を識別させるため、割り込みコントローラは、割り込み要求出力信号を発生する際に、ＣＰＵに対して割り込み要求入力信号によって異なるベクタ番号を通知する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、前記のような割り込みコントローラおよびマイクロコンピュータの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００５】
近年、マイクロコンピュータなどには多くの周辺モジュールが内蔵されており、それに伴い多くの割り込み要因が発生している。それぞれの周辺モジュールが発生する割り込み要因は、割り込みコントローラの専用の入力端子にそれぞれ割り当てられ、割り込みコントローラによって優先順位の判定が行われる。
【０００６】
この際に、各周辺モジュールが発生する割り込み要因の数が少ない場合は特に問題は生じないが、ある特定の周辺モジュールが非常に多くの割り込み要因を有する場合などでは、その全ての割り込み要因を入力端子に割り当てることが困難となることがある。このような場合は、通常、ソフトウェア処理を用いて、前記ある特定の周辺モジュールに対する割り込み要因の識別や優先順位の判定などが行われる。
【０００７】
しかしながら、近年の多機能化に伴い非常に多くの割り込み要因を有する周辺モジュールが増加し、そのソフトウェア処理に要する時間やＣＰＵ負荷の増大などが懸念されてきている。例えば、ＵＳＢモジュールなどでは、非常に多くの割り込み要因を有しているが、そのソフトウェア処理に時間を要することにより、データ転送の処理速度が低下する事態などが起こり得る。
【０００８】
そこで、本発明の目的は、多数の割り込み要因に対し効率的な割り込み判定処理を可能にする割り込みコントローラおよびそれを有するマイクロコンピュータを提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
本発明による割り込みコントローラは、複数ビットを備えた割り込みフラグによって入力された割り込み要因の中から、予め設定した割り込み要因を検出する手段と、前記予め設定した割り込み要因を検出した際に、その検出した割り込み要因に対応するベクタ番号を出力する手段とを有するものである。
【００１２】
これによって、例えば割り込み要因の識別や優先順位の判定といった割り込み判定処理に高速性が要求される一部の割り込み要因に対し、それらの割り込み判定処理をソフトウェアによってではなくハードウェアによって行うことなどが可能になる。
【００１３】
また、本発明による割り込みコントローラは、さらに、前記予め設定した割り込み要因を検出できなかった際に、未検出に該当するベクタ番号を出力する手段を有するものである。
【００１４】
これによって、例えば高速に割り込み判定処理を行いたい割り込み要因はハードウェアによって処理し、低速に処理してもよい割り込み要因は未検出に割り当て、ソフトウェアによって低速に処理するなど、柔軟なシステムを構成することができる。
【００１５】
ここで、前記予め設定した割り込み要因を検出する手段は、例えば、検出したい割り込み要因に対応する前記割り込みフラグの値を予め設定する第１のレジスタと、前記第１のレジスタに設定した値と前記入力された割り込み要因に対応する割り込みフラグの値とを、任意に選択したビットで比較可能な比較部とによって構成することができる。これによって、例えば、割り込みフラグ内のビットの組み合わせにより、１度に複数の割り込み要因が発生するような場合にも対応することができる。
【００１６】
そして、これまでに説明したような割り込みコントローラは、とりわけマイクロコンピュータに搭載して有益なものとなる。
【発明の効果】
【００１７】
多数の割り込み要因に対し、その割り込み判定処理の一部をハードウェアによって行うことで、割り込み判定処理の効率化を図ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には同一の符号を付し、その繰り返しの説明は省略する。
【００１９】
図１は、本発明の一実施の形態のマイクロコンピュータの構成の一例を示す機能ブロック図である。
【００２０】
図１に示すマイクロコンピュータは、例えば、ＣＰＵ１と、ＲＡＭ２と、ＲＯＭ３と、割り込みコントローラ４と、バスコントローラ５と、外部入出力ピンＰＡ０〜７，ＰＢ０〜７，ＰＣ０〜７，ＰＤ０〜７にそれぞれ対応するポートＡ〜Ｄと、周辺モジュールＡ６ａ，Ｂ６ｂ，Ｃ６ｃなどから構成されている。これらの機能ブロックは、内部バスや周辺バスで相互に接続されており、また、ポートＢの外部入出力ピンＰＢ０〜４は、例えば外部割り込み信号ＩＲＱ０〜４として使用できるものとする。
【００２１】
周辺モジュールＡ６ａ〜Ｃ６ｃは、例えば、ＵＳＢコントローラ、シリアル転送コントローラ、タイマ回路、Ａ／Ｄ変換器など様々なものが挙げられるが、その他の機能ブロックであってもよく、勿論、モジュール数も３種類に限定されるものではない。
【００２２】
割り込みコントローラ４は、外部割り込み信号ＩＲＱ０〜４や周辺モジュールＡ６ａ〜Ｃ６ｃなどからの割り込み要求入力信号を受け、割り込みの優先順位を判定するなどして、ＣＰＵ１に対して割り込み要求出力信号などを送信する。
【００２３】
このようなマイクロコンピュータにおいて、本発明の一実施の形態の割り込みコントローラの構成および動作について説明する。なお、以下の説明においては、本発明を判り易くするため、まずは、本発明の前提となる従来の割り込みコントローラから説明する。そして、ここでの説明によって、従来の割り込みコントローラの問題点や本明細書内で用いる用語の定義などを行う。
【００２４】
図２は、本発明の前提となる従来の割り込みコントローラにおいて、その構成とそれに関連する部分を含めた構成の一例を示す概略図である。図２に示す割り込みコントローラ４ａは、例えば、優先順位判定回路１０などを有している。この優先順位判定回路１０は、前記図１のＩＲＱ０〜４などの外部割り込み信号や周辺モジュールＡ６ａ〜Ｃ６ｃなどによって割り込み要求入力信号を受ける。そして、優先順位判定回路１０は、これらの割り込み要求入力信号の中から最も優先順位が高い信号を判定する。
【００２５】
図２では、外部割り込み信号によって割り込み要求入力信号Ｑが発生し、周辺モジュールＡ６ａによって割り込み要求入力信号Ａ（１）、Ａ（２）が発生し、周辺モジュールＣによって割り込み要求入力信号Ｃが発生する。ここで、割り込みが発生した要因を割り込み要因と呼ぶ。
【００２６】
そうすると、周辺モジュールＡ６ａは、例えば、２つの割り込み要因を有し、その内部の制御ロジックにより前記２つの割り込み要因に１対１で対応した割り込み要求入力信号Ａ（１），Ａ（２）を発生することができる。周辺モジュールＣ６ｃは、例えば、その内部の複数ビットを備えた割り込みフラグにより、多数の割り込み要因を有しており、それらを束ねて割り込み要求入力信号Ｃを発生している。
【００２７】
優先順位判定回路１０は、これらの割り込み要求入力信号を受けて優先順位を判定し、ＣＰＵ１に対して、割り込み要求出力信号と最も優先順位が高い割り込み要求入力信号に対応したベクタ番号を送信する。ここで、ベクタ番号とは、例えば、各割り込み要求入力信号毎の処理内容（割り込みプログラム）が格納されているメモリアドレスの先頭番地を示すものである。
【００２８】
例えば、割り込み要求入力信号Ａ（１）が最も優先順位が高いと判定された場合、ベクタ番号によって割り込みプログラムＡ（１）の先頭番地が示される。なお、実際には、例えば、ベクタテーブル内に前記ベクタ番号と前記メモリアドレスの先頭番地との関係がそれぞれ定義され、ＣＰＵ１がこのベクタテーブルを参照することで、前記先頭番地の取得が行われる。
【００２９】
つぎに、前述した周辺モジュールＣ６ｃの割り込みフラグによって割り込み要因が発生する場合について説明する。この場合、割り込み要因の発生方法を大別すると２つの場合が考えられる。一つ目は、割り込みフラグによって１度に１つの割り込み要因を発生する場合である。つまり、例えば、割り込みフラグを８ビットとして、その値が「０００００００１」の場合は動作ＡをＣＰＵ１に対して要求し、「００００００１０」の場合は動作ＢをＣＰＵ１に対して要求するといった場合である。
【００３０】
二つ目は、割り込みフラグによって１度に多数の割り込み要因を発生する場合である。つまり、例えば、割り込みフラグを８ビットとして、「１ビット目、０ビット目」が「０１」の場合、動作Ａを、「１０」の場合、動作ＢをＣＰＵ１に対して要求し、さらに、「３ビット目、２ビット目」が「０１」の場合、動作Ｃを、「１０」の場合、動作ＤをＣＰＵ１に対して要求するような場合である。そうすると、割り込みフラグの値が「０００００１０１」の際は、１度に動作Ａと動作ＣをＣＰＵ１に対して要求することになる。さらに、この場合には動作Ａと動作Ｃの間で優先順位の判定を行う必要がある。
【００３１】
前述したいずれの場合にも、従来の割り込みコントローラ４ａで、割り込みフラグにより発生した割り込み要因の認識や優先順位の判定などといった割り込み判定処理を行うことは、回路規模の増大や処理の煩雑化などを招き現実的ではなかった。すなわち、前述した１度に１つの割り込み要因が発生する場合では、割り込みフラグを８ビットとすると２５６種類のベクタテーブルの定義が必要となる。前述した１度に多数の割り込み要因が発生する場合では、ベクタテーブルの定義の複雑化に加えて、前述したように割り込みフラグ内のビット間で優先順位の判定を行わなければならない。これらは、割り込みフラグのビット数の増加に伴い益々顕著なものになってくる。
【００３２】
したがって、通常は、優先順位判定回路１０に対して前記割り込みフラグ内のフラグの有無などで変化する１本の割り込み要求入力信号（割り込み要求入力信号Ｃ）などを入力し、その処理プログラム（割り込みプログラムＣ）でのソフトウェア処理によって、割り込み要因の識別や優先順位の判定などの割り込み判定処理が行われる。
【００３３】
そして、その処理プログラムでは、例えば、割り込みフラグが取り得る値を優先順位の高い順番に並べたテーブルのようなものが設けられ、ＣＰＵ１が割り込みフラグの値を読み取る度に、前記テーブルに設けられた値の中から前記ＣＰＵ１が読み取った値と一致するものを探すような処理が行われる。ところが、このようなソフトウェア処理では、その処理時間が長くなり、ＣＰＵの負荷も大きくなってしまう。したがって、例えば前記周辺モジュールＣ６ｃがＵＳＢなどの通信モジュールの場合は、そのデータ転送の処理速度が低下することなどが有り得た。
【００３４】
一方、本発明の一実施の形態の割り込みコントローラを用いると、従来におけるソフトウェア処理時間やＣＰＵ負荷の増大を緩和し、データ転送の処理速度を向上させることができる。図３は、本発明の一実施の形態の割り込みコントローラにおいて、その構成の一例を示す概略図である。図４は、本発明の一実施の形態の割り込みコントローラにおいて、図３の割り込みコントローラを含んだマイクロコンピュータの処理手順の一例を示すフロー図である。
【００３５】
図３に示す割り込みコントローラ４ｂは、例えば、割り込みフラグパターン設定部１１と、割り込みフラグ検出部１２と、優先順位判定回路１０などを有している。前記割り込みフラグパターン設定部１１は、例えば、割り込みフラグパターンレジスタ（１）１３〜（４）１３（第１のレジスタ）などから構成される。この割り込みフラグパターンレジスタ（１）１３〜（４）１３には、割り込みフラグ検出部１２で検出したい割り込み要因に対応した割り込みフラグの値を任意に設定する。
【００３６】
前記割り込みフラグ検出部１２は、例えば、割り込みフラグレジスタ１４と、割り込みフラグデータレジスタ（１）１５〜（４）１５と、比較部１６などから構成される。この割り込みフラグレジスタ１４には、例えば前述した図２の周辺モジュールＣ６ｃのように複数ビットを備えた割り込みフラグからの割り込み要因（割り込みフラグの値）が入力される。
【００３７】
前記比較部１６では、割り込みフラグレジスタ１４の値と各割り込みフラグデータレジスタ（１）１５〜（４）１５の値とがそれぞれ比較され、一致した際にはそれに応じた割り込み検出信号（１）〜（４）が出力される。そして、この比較部１６では、比較を行うビットを任意に選択することができるものとする。
【００３８】
つまり、例えば、前記割り込みフラグレジスタ１４などを８ビット構成とした場合、０ビット目と１ビットのみを比較を行うビットとして指定したり、全ビット（０ビット目〜７ビット目）を比較を行うビットとして選択することができる。この機能は、例えば、比較を行うビットを指定するレジスタとＡＮＤ回路などを設けることで実現することができる。
【００３９】
さらに、この比較部１６では、前記選択したビット内のいずれかに‘１’があった場合に、それを検出する機能も備えるものとする。この機能は、例えば、前記比較を行うビットを指定するレジスタおよびＡＮＤ回路にＯＲ回路を組み合わせることなどで実現することができる。
【００４０】
前記優先順位判定回路１０は、前記割り込み検出信号（１）〜（４）と他の割り込み要因（例えば、図２の周辺モジュールＡからの割り込み要求入力信号Ａ（１）、Ａ（２）など）との間で最も優先順位が高いものを判定する。そして、この判定結果により、割り込みコントローラ４ｂは、ＣＰＵ１に対して、割り込み要求出力信号と前記最も優先順位が高いものに対応したベクタ番号を送信する。
【００４１】
つぎに、この図３の割り込みコントローラ４ｂを搭載したマイクロコンピュータの動作について図４を用いて説明する。ここでは、仮に前記図１の周辺モジュールＣ６ｃが複数ビットからなる割り込みフラグを有し、ＣＰＵに対して割り込みを要求するものとして説明を行う。
【００４２】
Ｓ４０１において、システム起動時に、予めソフトウェアで割り込みフラグパターンレジスタ（１）１３〜（４）１３に割り込みフラグ条件（検出したい割り込みフラグの値）を設定する。
【００４３】
Ｓ４０２において、割り込み要因が発生する。そして、Ｓ４０３に移行する。
【００４４】
Ｓ４０３において、割り込みフラグレジスタ１４の読み込みを行う。つまり、前記周辺モジュールＣ６ｃの割り込みフラグの値を割り込みフラグレジスタ１４に転送する。また、割り込みフラグパターンレジスタ（１）１３〜（４）１３の値を、それぞれ割り込みフラグデータレジスタ（１）１５〜（４）１５に転送する。そして、Ｓ４０４に移行する。
【００４５】
Ｓ４０４において、比較部１６が、割り込みフラグレジスタ１４の値と割り込みフラグデータレジスタ（ｎ）１５の値を比較する。なお、ｎは変数であり、初期値が１、最大値が割り込みフラグデータレジスタの本数（図３の例では４）となる。そして、前記比較結果が一致した際はＳ４０５に移行し、不一致の場合はＳ４１１に移行する。
【００４６】
Ｓ４０５において、前記Ｓ４０４での比較結果の一致により、比較部１６は、割り込み検出信号（ｎ）を出力する。そして、Ｓ４０６に移行する。
【００４７】
Ｓ４０６において、次回の割り込み要因判定時に備えて、割り込みフラグパターンレジスタ（１）１３〜（４）１３から割り込みフラグデータレジスタ（１）１５〜（４）１５にリロード動作を行う。そして、Ｓ４０７に移行する。
【００４８】
Ｓ４０７において、優先順位判定回路１０が、前記割り込み検出信号（１）〜（４）のいずれかと、他の割り込み要因に伴う割り込み要求入力信号との間で最も優先順位が高い信号を判定する。そして、Ｓ４０８に移行する。
【００４９】
Ｓ４０８において、割り込みコントローラ４ｂがＣＰＵ１に対して、前記Ｓ４０７での最も優先順位が高い信号に対応したベクタ番号と、割り込み要求出力信号を送信する。そして、Ｓ４０９に移行する。
【００５０】
Ｓ４０９において、ＣＰＵ１は、前記Ｓ４０８でのベクタ番号からベクタテーブルを参照し、ベクタテーブルに定義されたメモリアドレスの割り込みプログラムを実行する。そして、Ｓ４１０に移行する。
【００５１】
Ｓ４１０において、ソフトウェアで、割り込み要因に対応した動作が実行される。
【００５２】
Ｓ４１１において、前記Ｓ４０４での比較結果が不一致の場合、割り込みフラグデータレジスタ（１）１５〜（４）１５はバッファ動作を行う。つまり、割り込みフラグデータレジスタ（２）１５の値が割り込みフラグデータレジスタ（１）１５に転送され、同様に、割り込みフラグデータレジスタ（３）１５の値が（２）１５に、割り込みフラグデータレジスタ（４）１５の値が（３）１５に転送される。このバッファ動作によって、前記ｎの値に＋１が加算される。そして、Ｓ４０４に移行する。
【００５３】
以上のように、図３に示した割り込みコントローラ４ｂは、検出したい割り込み要因を予め割り込みフラグパターンレジスタ１３（第１のレジスタ）で設定しておくことで、入力された割り込みフラグの値に対し、前記設定した分の割り込み要因を検出し、割り込み判定処理を行い、その割り込み要因に該当するベクタ番号を出力することができる。
【００５４】
ここで、前記検出したい割り込み要因を割り込みフラグパターンレジスタ１３に設定する際は、例えば、割り込み要因の優先順位や発生頻度や割り込み判定処理に必要な処理速度などをユーザが考慮して行うとよい。その一例として、割り込みフラグの仕様が前述した１度に１つの割り込み要因を発生する仕様である場合は、例えば、発生頻度が高い割り込み要因を設定したり、処理速度が要求される割り込み要因を設定するなどが有効と言える。
【００５５】
つまり、仮に発生頻度が高い割り込み要因の一つを「０００００１１１」、処理速度が要求される割り込み要因の一つを「１００００１１１」として、割り込みフラグパターンレジスタ（１）に「０００００１１１」、割り込みフラグパターンレジスタ（２）に「１００００１１１」を設定した場合を想定する。この場合において、例えば、図１の周辺モジュールＣ６ｃから「０００００１１１」が入力されると、図４の処理フローによって、割り込み検出信号（１）が発生し、他の周辺モジュールからの割り込み要因（割り込み要求入力信号）との優先順位判定の後、割り込みコントローラ４ｂは割り込み検出信号（１）に対応するベクタ番号をＣＰＵ１に対して出力する。
【００５６】
また、例えば、図１の周辺モジュールＣ６ｃから「１００００１１１」が入力されると、割り込み検出信号（２）が発生し、割り込みコントローラ４ｂは割り込み検出信号（２）に対応するベクタ番号をＣＰＵ１に対して出力する。このように、ハードウェアによる処理を行うことで、従来のソフトウェアによる処理に比べて割り込み判定処理のスループットが向上する。これによって、割り込み判定処理に高速性を要求するような割り込み要因などにも対応することが可能になる。
【００５７】
また、他の一例として、割り込みフラグの仕様が前述した１度に複数の割り込み要因を発生する仕様である場合は、前記複数の割り込み要因間で優先順位が存在するため、例えば、割り込みフラグパターンレジスタ１３には優先順位が高い順番で割り込み要因の設定を行う。この場合、幾つかの割り込み要因を連結して設定するなどで、全体的に割り込み判定処理のスループットを向上させることが可能になる。
【００５８】
つまり、例えば、割り込みフラグを８ビットとして、０〜１ビット目で優先順位が１番〜３番に該当する３種類（０１ｂ〜１１ｂ）の動作を表し、２〜４ビット目で優先順位が４番〜１０番に該当する７種類（００１ｂ〜１１１ｂ）の動作を表し、５〜７ビット目で優先順位が１１番〜１７番に該当する７種類（００１ｂ〜１１１ｂ）の動作を表すものと仮定する。このような場合、比較部１６において、割り込みフラグパターンレジスタ（１）に対しては、０〜１ビット目を比較を行うビットとして選択し、いずれかのビットに‘１’があれば割り込み検出信号（１）を出力させるように設定する。
【００５９】
これと同様に、割り込みフラグパターンレジスタ（２）では２〜４ビット目を、割り込みフラグパターンレジスタ（３）では５〜７ビット目を比較を行うビットとして選択し、それぞれ、いずれかのビットに‘１’があれば割り込み検出信号（２）、割り込み検出信号（３）を出力させるように設定する。
【００６０】
このような設定において、例えば、図１の周辺モジュールＣ６ｃから「０００００１０１」（優先順位１番と４番が同時に発生）が入力されると、図４の処理フローにより割り込み検出信号（１）が発生する。そして、割り込み検出信号（１）に該当する処理プログラム（割り込みプログラム（１））内で０〜１ビット目に関わる詳細な割り込み判定処理を行う。
【００６１】
その後、この優先順位１番の割り込み要因の処理が終了し、当該割り込みフラグのクリアによって、例えば割り込みフラグの値が「０００００１００」（優先順位４番が発生）になると、次の割り込み要因判定時に割り込み検出信号（２）が発生する。そして、割り込み検出信号（２）に該当する処理プログラム（割り込みプログラム（２））内で２〜４ビット目に関わる詳細な割り込み判定処理を行う。
【００６２】
このように、割り込み判定処理に際し、その大まかな部分を割り込みコントローラ４ｂで処理し、詳細な部分をソフトウェアで処理することで、処理プログラムの負担やＣＰＵの負担などを小さくでき、全体的に割り込み判定処理のスループットを向上させることができる。
【００６３】
ところで、前記図３に示した割り込みコントローラ４ｂでは、例えば、割り込みフラグの仕様と割り込みフラグパターンレジスタ１３の設定方法によっては、検出できない割り込み要因（割り込みフラグの値）が存在する場合が考えられる。すなわち、前記割り込みフラグの仕様が前述した１度に１つの割り込み要因を発生する仕様である場合だと、検出できる割り込みフラグは、割り込みフラグパターンレジスタ１３の設置数分となり、残りの割り込み要因は未検出となる。
【００６４】
また、１度に複数の割り込み要因を発生する仕様である場合は、前述したように複数の割り込み要因を束ねて設定しても全ての割り込み要因をカバーできない場合などが考えられる。そこで、割り込みフラグの値を割り込みフラグパターンレジスタ１３で検出できなかった場合に、図５に示すように未検出信号を出力する構成としてもよい。
【００６５】
図５は、本発明の一実施の形態の割り込みコントローラにおいて、図３の構成に機能を追加した構成の一例を示す概略図である。図５に示す割り込みコントローラ４ｃは、図３の構成に対して、割り込みフラグの値を割り込みフラグパターンレジスタで検出できなかった場合に、比較部１６ａより未検出信号（割り込み検出信号（５））が出力させる構成となっている。その他の構成については、図３と同様であるため説明を省略する。
【００６６】
図６は、本発明の一実施の形態の割り込みコントローラにおいて、図５の割り込みコントローラを含んだマイクロコンピュータの処理手順の一例を示すフロー図である。
【００６７】
図６に示す処理フローは、前記図４で説明した処理フローにおけるＳ４１１での割り込みフラグデータレジスタ１５のバッファ動作後に、図６でのＳ６１２、Ｓ６１３の処理が加わったものとなっている。その他の処理となる図６でのＳ６０１〜Ｓ６１１の処理は、図４でのＳ４０１〜Ｓ４１１の処理と同一である。したがって、この追加された処理関連以外は省略して以下に説明する。
【００６８】
Ｓ６１２においては、Ｓ６１１での割り込みフラグデータレジスタ（ｎ）１５のバッファ動作によってこれらのレジスタが全て比較対象となったか否かの判定を行う。すなわち、図５の例で、割り込みフラグデータレジスタ（４）まで比較が行われた場合は、Ｓ６１３に移行し、そうでない場合は前記Ｓ６０４に移行する。
【００６９】
Ｓ６０４においては、前記Ｓ４０４と同様に、比較部１６ａによって、割り込みフラグレジスタ１４の値と割り込みフラグデータレジスタ（ｎ）１５の値が比較される。
【００７０】
Ｓ６１３においては、前記Ｓ６１２で割り込みフラグデータレジスタ（ｎ）１５が全てＳ６０４での比較対象となっていた場合、割り込み検出信号（ｎ＋１）（未検出信号）を出力する。すなわち、図５の例では割り込み検出信号（５）が出力される。そして、Ｓ６０６に移行する。
【００７１】
Ｓ６０６においては、前記Ｓ４０６と同様に、次回の割り込み要因判定時に備えて、割り込みフラグパターンレジスタ（１）１３〜（４）１３から割り込みフラグデータレジスタ（１）１５〜（４）１５にリロード動作を行う。
【００７２】
このように、未検出信号を設けることで、例えば、割り込みフラグの仕様が１度に１つの割り込み要因を発生する仕様である場合において、割り込み要因に対する割り込み判定処理の一部をハードウェアで実行し、他の一部をソフトウェアで実行することができる。
【００７３】
すなわち、例えば、高速性を要求する割り込み要因や頻繁に発生する割り込み要因などに対する割り込み判定処理はハードウェアによって行い、そうでないものは、未検出信号を用い、図５の割り込み処理プログラム（５）内でソフトウェアによる割り込み判定処理を行えばよい。
【００７４】
また、例えば、割り込みフラグの仕様が１度に複数の割り込み要因を発生する仕様である場合において、未検出信号を設けることで、割り込み要因を設定する際の自由度を上げることができる。すなわち、例えば、優先順位が低い割り込み要因に対する割り込み判定処理を、未検出信号を用いて全てソフトウェアで行うなどで、優先順位が高い割り込み要因を束ねる大きさを小さくしたり、あるいは束ねず単独で設定するなどで、その処理速度を向上させることなどが可能になる。
【００７５】
つぎに、前述した図３の割り込みコントローラ４ｂの構成を変形した一例を示す。前記図３においては、その割り込みフラグ検出部１２を、割り込みフラグレジスタ１４と、割り込みフラグデータレジスタ１５と、比較部１６などから構成したが、例えば図７に示すような構成にすることもできる。
【００７６】
図７は、本発明の一実施の形態の割り込みコントローラにおいて、図３での割り込みフラグ検出部を変形した構成の一例を示す概略図である。図７に示す割り込みコントローラ４ｄは、割り込みフラグ検出部１２ｂを、例えば、割り込みフラグレジスタ１４と、４つの比較部（１）１６ｂ〜（４）１６ｂで構成した例である。
【００７７】
この割り込みフラグ検出部１２ｂにおいて、比較部（１）１６ｂ〜（４）１６ｂの一方の入力端子には、割り込みフラグレジスタ１４の値が共通に入力され、他方の入力端子には、比較部（１）１６ｂ〜（４）１６ｂに対応して割り込みフラグパターンレジスタ（１）１３〜（４）１３の値が入力される。
【００７８】
このような構成にした場合、比較部（１）１６ｂ〜（４）１６ｂが、割り込みフラグパターンレジスタ（１）１３〜（４）１３の値と割り込みフラグレジスタ１４の値とを同時に比較する。そして、一致した際には、比較部（１）１６ｂ〜（４）１６ｂによってそれぞれ割り込み検出信号（１）〜（４）が出力される。したがって、前記図４でのＳ４０６およびＳ４１１に該当するバッファ動作およびリロード動作がなくなり、その分の処理時間を短縮することができる。
【００７９】
なお、このような構成において、割り込みフラグの仕様が１度に複数の割り込み要因を発生する仕様である場合は、割り込み検出信号（１）〜（４）内で複数の検出信号が出力される場合が考えられる。このため、それぞれの検出信号の優先順位を考慮して優先順位判定回路１０にその設定を行う必要がある。
【００８０】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８１】
例えば、これまでの本発明の一実施の形態の割り込みコントローラの説明においては、割り込みフラグ検出部の構成として、割り込みフラグパターンレジスタをバッファ動作で順次切り替えながら比較を行う構成と複数の比較部を用いて１度に比較を行う構成を示したが、割り込みフラグパターンレジスタをマルチプレクサなどで順次切り替えながら１つの比較部で比較を行うような構成にしてもよい。
【００８２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００８３】
（１）高速処理が必要となる割り込み要因や頻繁に発生する割り込み要因などに対し、その割り込み要因の識別や優先順位の判定といった割り込み判定処理をハードウェアによって高速に行うことが可能になる。
【００８４】
（２）多数の割り込み要因に対して割り込み判定処理を行う際、ハードウェアによる割り込み判定処理とソフトウェアによる割り込み判定処理とをバランスよく両立させることが可能になる。これによって、割り込み判定処理のスループットを向上させることができる。
【００８５】
（３）前記（１）、（２）により、割り込み判定処理の効率化を図ることができる。
【図面の簡単な説明】
【００８６】
【図１】本発明の一実施の形態のマイクロコンピュータの構成の一例を示す機能ブロック図である。
【図２】本発明の前提となる従来の割り込みコントローラにおいて、その構成とそれに関連する部分を含めた構成の一例を示す概略図である。
【図３】本発明の一実施の形態の割り込みコントローラにおいて、その構成の一例を示す概略図である。
【図４】本発明の一実施の形態の割り込みコントローラにおいて、図３の割り込みコントローラを含んだマイクロコンピュータの処理手順の一例を示すフロー図である。
【図５】本発明の一実施の形態の割り込みコントローラにおいて、図３の構成に機能を追加した構成の一例を示す概略図である。
【図６】本発明の一実施の形態の割り込みコントローラにおいて、図５の割り込みコントローラを含んだマイクロコンピュータの処理手順の一例を示すフロー図である。
【図７】本発明の一実施の形態の割り込みコントローラにおいて、図３での割り込みフラグ検出部を変形した構成の一例を示す概略図である。
【符号の説明】
【００８７】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４，４ａ，４ｂ，４ｃ，４ｄ  割り込みコントローラ
５  バスコントローラ
６ａ，６ｂ，６ｃ  周辺モジュール
１０  優先順位判定回路
１１  割り込みフラグパターン設定部
１２，１２ａ，１２ｂ  割り込みフラグ検出部
１３  割り込みフラグパターンレジスタ
１４  割り込みフラグレジスタ
１５  割り込みフラグデータレジスタ
１６，１６ａ，１６ｂ  比較部
【図１】
2005085055.tif 000003
【図２】
2005085055.tif 000004
【図３】
2005085055.tif 000005
【図４】
2005085055.tif 000006
【図５】
2005085055.tif 000007
【図６】
2005085055.tif 000008
【図７】
2005085055.tif 000009