(57)【要約】      （修正有）【課題】割り込みレベルの低い割り込み要求信号が長時間待たされて適切に受け付けられない状況を回避する。【解決手段】割り込みコントローラは，受信した割り込み要求信号のうち割り込みレベルが最も高い割り込み要求信号を選択して受け付け，受け付けた割り込み要求信号に対応する割り込み信号を処理ユニットに出力するプライオリティエンコーダと，割り込み信号に応答して割り込み通知信号を出力する割り込みデコーダと，割り込み要求信号に応答して所定の待機時間をカウントし，待機時間経過後に未だ割り込み通知信号が出力されない場合に，割り込み要求信号より割り込みレベルが高いタイマー割り込み要求信号をプライオリティエンコーダに出力する割り込みタイマーとを有する。【選択図】図１
2008217419.tif 000002
【特許請求の範囲】
【請求項１】
複数の割り込み要求信号に応答して，当該割り込み要求信号の割り込みレベルに応じて割り込み要求信号を受け付け，割り込み信号を処理ユニットに出力する割り込みコントローラにおいて，
受信した割り込み要求信号のうち前記割り込みレベルが最も高い割り込み要求信号を選択して受け付け，前記受け付けた割り込み要求信号に対応する割り込み信号を前記処理ユニットに出力するプライオリティエンコーダと，
前記プライオリティエンコーダが出力する割り込み信号をデコードして，割り込み通知信号を出力する割り込みデコーダと，
前記複数の割り込み要求信号に対応して設けられ，前記割り込み要求信号に応答して所定の待機時間をカウントし，当該待機時間経過後に未だ対応する割り込み通知信号が前記割り込みデコーダより出力されない場合に，前記割り込み要求信号より割り込みレベルが高いタイマー割り込み要求信号を前記プライオリティエンコーダに出力する割り込みタイマーと
を有することを特徴とする割り込みコントローラ。
【請求項２】
請求項１記載の割り込みコントローラにおいて，
前記割り込みタイマーは，前記タイマー割り込み要求信号を出力する時に，対応する割り込み要求信号を出力した周辺回路に割り込みクリア信号を出力し，
前記割り込みデコーダは，前記割り込み要求信号に対応する前記割り込み信号に応答して，当該割り込み要求信号を出力した前記周辺回路の割り込みタイマーに前記割り込み通知信号を出力することを特徴とする割り込みコントローラ。
【請求項３】
請求項１記載の割り込みコントローラにおいて，
前記プライオリティエンコーダは，前記割り込み要求信号及び前記タイマー割り込み要求信号それぞれに対応して割り込みレベルを格納する割り込みレジスタを有し，前記割り込みレジスタに格納されている割り込みレベルを参照して，前記受信した割り込み要求信号及びタイマー割り込み要求信号のうち前記割り込みレベルが最も高い割り込み要求信号またはタイマー割り込み要求信号を選択して受け付け，
前記プライオリティエンコーダは，割り込みレベル変更信号に応答して，前記割り込みレジスタ内の対応する割り込みレベルを変更することを特徴とする割り込みコントローラ。
【請求項４】
請求項１記載の割り込みコントローラにおいて，
前記割り込みタイマーの少なくとも一つは，
前記割り込み要求信号に応答して第１の待機時間をカウントし，当該第１の待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記割り込み要求信号より割り込みレベルが高い第１の割り込みレベルの第１のタイマー割り込み要求信号を前記プライオリティエンコーダに出力する初段割り込みタイマーと，
前記初段割り込みタイマーが出力する前記第１のタイマー割り込み要求信号に応答して第２の待機時間をカウントし，当該第２の待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記第１のタイマー割り込み要求信号より割り込みレベルが高い第２の割り込みレベルの第２のタイマー割り込み要求信号を前記プライオリティエンコーダに出力する後段割り込みタイマーとを有することを特徴とする割り込みコントローラ。
【請求項５】
請求項１記載の割り込みコントローラにおいて，
前記複数の割り込みタイマーの少なくとも１つは，複数の割り込み要求信号に共有される共有割り込みタイマーであり，当該共有割り込みタイマーは，前記共有する複数の割り込み要求信号のいずれかの受信に応答して所定の待機時間をカウントし，当該待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記受信した割り込み要求信号より割り込みレベルが高いタイマー割り込み要求信号を前記プライオリティエンコーダに出力することを特徴とする割り込みコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，割り込みレベルを自動変更する割り込みコントローラに関し，特に，マイクロコンピュータなどに内蔵される割り込みコントローラに関する。
【背景技術】
【０００２】
マイクロコンピュータは，周辺マクロからの割り込み要求信号に応答して，処理ユニットであるＣＰＵに割り込み信号を出力する割り込みコントローラを内蔵する。この割り込みコントローラは，周辺マクロからの割り込み要求信号に応答して，待機中の割り込み要求信号のうち，割り込みの優先順位（以下割り込みレベル）が最も高い割り込み要求信号を受け付けてＣＰＵに割り込み信号として転送する。これにより，割り込みコントローラは，複数の割り込み要求信号のうち最も先に処理すべき割り込み要求を選別して受け付け，ＣＰＵに割り込み信号を発行することができ，情報処理システム内の処理をＣＰＵに適切に実行させることができる。
【０００３】
上記の割り込みコントローラによれば，割り込みレベルが低い割り込み要求信号については，割り込みレベルが高い割り込み要求信号に対する割り込み処理が完了した後に，その割り込み要求信号が受け付けられ対応する割り込み信号がＣＰＵに出力される。したがって，割り込みレベルが低い割り込み要求信号は，長時間待機状態にされ，それに対応する処理がＣＰＵにより実行されず，システムが破綻する場合が想定される。
【０００４】
そこで，割り込みレベルが低い割り込み要求信号が所定時間待機状態にされた場合は，その割り込みレベルを高く変更して，割り込みコントローラが対応する割り込み信号を即座にＣＰＵに発行できるようにすることが提案されている。例えば，特許文献１，２，３などに記載されるとおりである。
【０００５】
特許文献１では，優先順位が低い割り込み要求Ｃが最大待ち時間ｙｍ秒を経過しても受け付けられない場合は，一時的に割り込み要求Ｃの優先順位を最優先とするように変更し，その割り込み要求Ｃが受け付けられると，その優先順位を元のレベルに戻すように変更することが記載されている。
【０００６】
特許文献２では，複数の割り込みに対応して待ち時間を計測するカウンタを設け，カウンタ値が最大になっている割り込みを優先的に割り込み処理装置に転送することが記載されている。
【０００７】
特許文献３では，複数の割り込み種別毎に時間を設定しておき，設定時間を経過した割り込み種別に対する割り込みレベルをより高く変更して，割り込み要求が全く受け付けられない状態（飢餓状態）を回避することが記載されている。
【特許文献１】特開平５−１２０１９９号公報
【特許文献２】特開平４−７４２３１号公報
【特許文献３】特開平３−１０２４３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記の特許文献１，３に記載されたように，待ち時間が長くなった割り込み要求の割り込みレベルを一時的に高く変更して，割り込みコントローラに待たされている割り込み要求の割り込み信号を優先的にＣＰＵに出力させるようにすれば，永遠に割り込みが受け付けられずにシステムの処理に破綻が生じるのを回避することができる。
【０００９】
しかしながら，上記の方法では，処理ユニットであるＣＰＵに出力される割り込み信号は，長時間待たされた場合も待たされない場合も同じ割り込み信号である。よって，ＣＰＵは，受信した割り込み信号が，その割り込みレベルに対応して適切に受け付けられてきたのか，長時間待たされて一時的な割り込みレベルの変更により受け付けられてきたのかを，区別することができない。その結果，システム内の複数の割り込みが適切に受け付けられているのか，または長時間待たされた結果ようやく受け付けられているのかを区別することができず，システム全体で見れば不適切な割り込み処理が継続して行われ，その状態がいつまでも改善されないことが予想される。
【００１０】
そこで，本発明の目的は，割り込みレベルの低い割り込み要求信号が長時間待たされて適切に受け付けられない状況を回避し，且つ，処理装置が，受信した割り込み要求が待たされて受け付けられたか待たされることなく受け付けられたかを区別することができる割り込みコントローラを提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために，本発明の第１の側面によれば，  複数の割り込み要求信号に応答して，当該割り込み要求信号の割り込みレベルに応じて割り込み要求信号を受け付け，割り込み信号を処理ユニットに出力する割り込みコントローラにおいて，
受信した割り込み要求信号のうち前記割り込みレベルが最も高い割り込み要求信号を選択して受け付け，前記受け付けた割り込み要求信号に対応する割り込み信号を前記処理ユニットの出力するプライオリティエンコーダと，
前記プライオリティエンコーダが出力する割り込み信号をデコードして，割り込み通知信号を出力する割り込みデコーダと，
前記複数の割り込み要求信号に対応して設けられ，前記割り込み要求信号に応答して所定の待機時間をカウントし，当該待機時間経過後に未だ対応する割り込み通知信号が前記割り込みデコーダより出力されない場合に，前記割り込み要求信号より割り込みレベルが高いタイマー割り込み要求信号を前記プライオリティエンコーダに出力する割り込みタイマーとを有することを特徴とする。
【００１２】
上記の第１の側面の好ましい態様によれば，前記割り込みタイマーは，前記タイマー割り込み要求信号を出力する時に，対応する割り込み要求信号を出力した周辺回路に割り込みクリア信号を出力し，
前記割り込みデコーダは，前記割り込み要求信号に対応する前記割り込み信号に応答して，当該割り込み要求信号を出力した前記周辺回路の割り込みタイマーに前記割り込み通知信号を出力することを特徴とする。
【００１３】
上記の第１の側面の好ましい態様によれば，前記プライオリティエンコーダは，前記割り込み要求信号及び前記タイマー割り込み要求信号それぞれに対応して割り込みレベルを格納する割り込みレジスタを有し，前記割り込みレジスタに格納されている割り込みレベルを参照して，前記受信した割り込み要求信号及びタイマー割り込み要求信号のうち前記割り込みレベルが最も高い割り込み要求信号またはタイマー割り込み要求信号を選択して受け付け，前記プライオリティエンコーダは，割り込みレベル変更信号に応答して，前記割り込みレジスタ内の対応する割り込みレベルを変更することを特徴とする。
【００１４】
上記の第１の側面の好ましい態様によれば，前記割り込みレベル変更信号は，前記タイマー割り込み要求信号に対応する前記割り込み信号を受信した時に前記処理ユニットから出力されることを特徴とする。
【００１５】
上記の第１の側面の好ましい態様によれば，前記割り込みタイマーの少なくとも一つは，前記割り込み要求信号に応答して第１の待機時間をカウントし，当該第１の待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記割り込み要求信号より割り込みレベルが高い第１の割り込みレベルの第１のタイマー割り込み要求信号を前記プライオリティエンコーダに出力する初段割り込みタイマーと，前記初段割り込みタイマーが出力する前記第１のタイマー割り込み要求信号に応答して第２の待機時間をカウントし，当該第２の待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記第１のタイマー割り込み要求信号より割り込みレベルが高い第２の割り込みレベルの第２のタイマー割り込み要求信号を前記プライオリティエンコーダに出力する後段割り込みタイマーとを有することを特徴とする。
【００１６】
さらに好ましい態様によれば，前記初段割り込みタイマーは，前記第１のタイマー割り込み要求信号を出力するときに対応する割り込み要求信号を出力した周辺回路に割り込みクリア信号を出力し，前記後段割り込みタイマーは，前記第２のタイマー割り込み要求信号を出力するときに前記初段割り込みタイマーに割り込みクリア信号を出力することを特徴とする。
【００１７】
上記の第１の側面の好ましい態様によれば，前記複数の割り込みタイマーの少なくとも１つは，複数の割り込み要求信号に共有される共有割り込みタイマーであり，当該共有割り込みタイマーは，前記共有する複数の割り込み要求信号のいずれかの受信に応答して所定の待機時間をカウントし，当該待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記受信した割り込み要求信号より割り込みレベルが高いタイマー割り込み要求信号を前記プライオリティエンコーダに出力することを特徴とする。
【００１８】
さらに好ましい態様によれば，前記共有割り込みタイマーは，前記共有する複数の割り込み要求信号を受信した場合は，一方の割り込み要求信号について前記タイマー割り込み要求信号を出力し，その後，他方の割り込み要求信号について前記タイマー割り込み要求信号を出力することを特徴とする。
【発明の効果】
【００１９】
上記発明によれば，割り込みコントローラは，割り込み要求信号が所定時間待たされて受け付けられる場合と待たされずに受け付けられる場合とを区別できる割り込み信号を処理ユニットに出力することができる。よって，処理ユニットは，割り込み要求が待たされたか待たされていないかを区別することができ，対応する最適な処理を実行することができる。
【発明を実施するための最良の形態】
【００２０】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００２１】
図１は，本実施の形態における割り込みコントローラを内蔵するマイクロコンピュータの構成図である。マイクロコンピュータは，処理ユニットであるＣＰＵと，周辺回路または周辺リソースである複数のマクロＡ〜Ｎとの間に，マクロからの割り込み要求信号IntA〜Nを受け付けてＣＰＵに対応する割り込み信号ＩＮＴを出力する割り込みコントローラ１０とを有する。割り込みコントローラ１０は，マクロからの割り込み要求信号IntA〜Nを割り込みレベルに基づいて受け付けて対応する割り込み信号ＩＮＴをＣＰＵに出力するプライオリティエンコーダ２０と，割り込み信号ＩＮＴをデコードして対応する割り込み要求信号を出力したマクロのタイマーTimerA〜Nに割り込み通知信号NintA〜Nを出力する割り込みデコーダ３０と，割り込み要求信号IntA〜Nの少なくとも一部に対応して設けられる割り込みタイマーTimerA〜Nとを有する。
【００２２】
図１では，各マクロＡ〜Ｎがそれぞれ１つの割り込み要求信号IntA〜Nを出力しているが，各マクロは必要な本数の割り込み要求信号を出力するようにしても良いし，一部のマクロは割り込み要求信号を出力しないようにしても良い。
【００２３】
割り込みタイマーTimerA〜Nは，割り込み要求信号IntA〜Nに応答してタイマーのカウントを開始し，それぞれ設定されている所定時間カウントしても対応する割り込み通知信号NintA〜Nが発生していない場合に，割り込み要求信号IntA〜Nに対応する割り込みクリア信号ClearA〜Nを出力してその割り込み要求信号を取り下げさせるとともに，タイマー割り込み要求信号IntTA〜Nをプライオリティエンコーダ２０に出力する。そして，割り込み通知信号NintA〜Nを受信したマクロは，割り込み要求信号IntA〜Nを取り下げる。このタイマー割り込み要求信号IntTA〜Nは，対応する割り込み要求信号よりも高い割り込みレベルが割り当てられている。
【００２４】
プライオリティエンコーダ２０は，複数の割り込み要求信号IntA〜N，IntTA〜TNを受信し，単一の割り込み要求信号のみを受信しているときは，それに対応する割り込み信号INTをCPUに出力する。また，複数の割り込み要求信号を受信しているときは，それぞれの割り込みレベルを参照して，最も割り込みレベルが最も高い割り込み要求信号を選択して受け付け，対応する割り込み信号INTをCPUに出力する。そして，プライオリティエンコーダ２０は，CPUから割り込み信号に対する処理が完了したことを通知する割り込み完了信号（図示せず）を受信したら，待機中の割り込み要求信号のうち最も割り込みレベルの高い割り込み要求信号を受け付けて，対応する割り込み信号INTをCPUに出力する。このように，プライオリティエンコーダ２０は，複数の割り込み要求信号IntA〜Nがバッティングした場合には，それらの割り込みレベルに応じて優先度の高い割り込み要求信号から順にCPUに割り込み信号INTを出力する。これにより，優先度の高い割り込み要求が優先的に処理される。
【００２５】
図２は，プライオリティエンコーダ２０の構成図である。プライオリティエンコーダ２０は，割り込み調停回路２００と，割り込みレジスタ２０２とを有する。割り込みレジスタ２０２は，全ての割り込み要求信号IntA〜N，IntTA〜Nに対応する領域を有し，各領域には，割り込み要求信号を受信したことを示す割り込みフラグIntFLG，割り込み要求信号に設定されている割り込みレベルIntLVL，全ての割り込み要求信号を識別するユニークなIDである割り込み番号IntNoとが格納される。
【００２６】
図２の例では，割り込みフラグIntFLGは，割り込み要求信号IntA,C,N,IntTBに対して受信済で待機中を示す「１」になっている。また，割り込みレベルIntLVLは，最大レベル１６であり，CPUからの要求に応じて設定変更可能になっている。さらに，割り込み番号IntNoは，通常，固定である。
【００２７】
割り込み調停回路２００は，定期的に，割り込みレジスタ２０２を参照し，割り込みフラグIntFLGが「１」になっている待機中の割り込み要求信号のうち最も割り込みレベルIntLVLが高いものを選択し，それに対応する割り込み番号IntNoを，例えば５ビットの割り込み信号INT[4:0]として，CPUに出力する。
【００２８】
CPUは，割り込み信号INT[4:0]をデコードし，対応する処理を実行する。CPUは，割り込み信号INTに応答して，割り込みプログラムintPRを実行して所定の割り込みルーチンを実行する。この割り込みルーチンには，割り込み信号INTに対応する割り込み要求を出したマクロやタイマー内の割り込みフラグをクリアする処理が含まれる。割り込み要求を出したマクロは，割り込みフラグがクリアされたことに応答して，アサートしていた割り込み要求信号をネゲートする。それに伴って，プライオリティエンコーダ内の割り込みフラグIntFLGは「０」に変更される。
【００２９】
また，割り込み信号INT[4:0]は割り込みデコーダ３０にも供給される。割り込みデコーダ３０は，割り込み信号INTをデコードして，対応する割り込み要求信号を出力したマクロの割り込みタイマーに，割り込み通知信号NintA〜Nを出力する。これに応答して，割り込みタイマーはタイマーカウントを停止する。
【００３０】
この場合，CPUは，同じ割り込み要求に対応する割り込み信号INTであっても，マクロからの割り込み要求信号IntA〜Nに対して発行された割り込み信号INTか，割り込み要求信号IntA〜Nが待たされてタイムアウト後に割り込みタイマーからのタイマー割り込み要求信号IntTA〜Nに対して発行された割り込み信号INTかを区別することができる。区別可能な理由は，５ビットの割り込み信号INTがユニークに割り当てられているからである。
【００３１】
よって，CPUは，タイマー割り込み要求信号IntTA〜Nに対して発行された割り込み信号INTを受信した場合は，通常の割り込み要求信号IntA〜Nに対して発行された割り込み信号INTに対する処理とは異なる処理を実行することができる。例えば，割り込みレベル設定信号SetLVLを割り込み調停回路２００に出力して，通常の割り込み要求信号IntA〜Nの割り込みレベルの変更設定をさせる処理を加えることができる。その場合に，割り込み調停回路２００は，割り込み信号INTに対応する割り込み要求信号IntA〜Nの割り込みレベルIntLVLを高く変更設定したり，割り込み信号INTに対応する割り込み要求信号以外の割り込み要求信号IntA〜Nの割り込みレベルIntLVLを低く変更設定したりする。
【００３２】
図１に戻り全体の動作説明をする。仮に，割り込み要求信号IntC,IntNがアサートされた状態で，新たに割り込み要求信号IntAがアサートされたとする。これに応答して，プライオリティエンコーダ２０内の割り込みフラグIntFLGに「１」が書き込まれ，更に，割り込みタイマーTimerAがタイマーカウントを開始する。割り込み要求信号IntAの割り込みレベルIntLVL=4と低いため，他の割り込み要求信号が優先的に受け付けられる。そのため，割り込み要求信号IntAは受け付けられず，対応する割り込み信号INTは出力されず，割り込みデコーダ３０から割り込み通知信号NintAは出力されない。
【００３３】
割り込みタイマーTimerAが設定された所定時間をカウントした時に（タイムアウト），未だ割り込み通知信号NintAが発行されていない場合に，タイマーTimerAは，マクロAに対して割り込みクリア信号ClearAを出力すると共に，プライオリティエンコーダ２０にタイマー割り込み要求信号IntTAを出力する。このタイマー割り込み要求信号IntTAは，対応する通常の割り込み要求信号IntAよりも高い割り込みレベル（図２の例ではIntTAはIntLVL=16）に設定されている。よって，プライオリティエンコーダ２０内の割り込み調停回路２００は，即座に，タイマー割り込みIntTAを受け付け，対応する割り込み番号IntNoを割り込み信号INT[4:0]としてCPUに出力する。なお，タイマー割り込みIntTAはタイマー割り込みIntTB（割り込みレベルIntLVL=16）と同じ割り込みレベルであるが，割り込み調停回路２００は，割り込み番号IntNoが小さい割り込み要求を優先して受け付ける。
【００３４】
割り込み調停回路２００から割り込み信号INT[4:0]が出力されると，CPUは対応する処理を実行する。CPUは，タイマー割り込み信号IntTAに対応する割り込み信号INTをデコードすることで，マクロAからの割り込み要求信号IntAが，より割り込みレベルが高い他の割り込み要求信号IntB〜Nの発生により所定時間待機状態にされた後，代わりにタイマー割り込み信号IntTAが出力されて割り込み信号INTが出力されたことを識別することができる。それに伴って，必要な処理を実行することができる。
【００３５】
また，CPUは，割り込みルーチンとして，割り込み信号INT[4:0]に対応する割り込み要求を出力したマクロまたはタイマーの割り込みフラグをクリアする。これにより，割り込み要求を出力したマクロまたはタイマーは，アサートしていた割り込み要求信号をネゲートする。なお，タイマーTimerAがタイムアウト時にマクロAに割り込みクリア信号ClearAを出力しているが，それに応答して，マクロAの割り込みフラグはクリアされ，割り込み要求がネゲートされている。
【００３６】
または，マイクロコンピュータの開発期間において，タイマー割り込み信号に対応する割り込み信号INTを監視することで，より適切に割り込み要求の実行がなされるように，割り込みレベルの再調整やその他のプログラムのデバッグなどを行うことができる。
【００３７】
図３は，本実施の形態における他の割り込みコントローラを内蔵するマイクロコンピュータの構成図である。この例では，マクロAからの割り込み要求信号IntAに対応して，初段割り込みタイマーTimerAと後段割り込みタイマーTimerAAとが設けられている。それ以外の構成は，図１と同じである。
【００３８】
初段割り込みタイマーTimerAは，割り込み要求信号IntTAに応答してタイマーカウントを開始し，設定されている待機時間タイマーカウントしても割り込み通知信号NintAが出力されていなければ，割り込みクリア信号ClearAを出力すると共に，より割り込みレベルの高いタイマー割り込み要求信号IntTAを出力する。これに応答して，プライオリティエンコーダ２０は，割り込みフラグIntFLGを「１」にする。また，後段割り込みタイマーTimerAAは，タイマー割り込み要求信号IntTAに応答してタイマーカウントを開始する。後段割り込みタイマーTimerAAは，設定されている待機時間タイマーカウントしても割り込み通知信号NintTAが出力されていなければ，割り込みクリア信号ClearTAを前段割り込みタイマーTimerAに出力すると共に，より割り込みレベルの高いタイマー割り込み要求信号IntTAAを出力する。なお，前段割り込みタイマーTimerAでは，割り込みクリア信号ClearTAに応答して内蔵する割り込みフラグがクリアされ，タイマー割り込み信号IntTAはネゲートされる。
【００３９】
割り込み要求信号IntA，前段タイマーTimerAによるタイマー割り込み要求信号IntTA,後段タイマーTimerAAによるタイマー割り込み要求信号IntTAAには，その順番で割り込みレベルが高くなるように設定されている。したがって，割り込み要求信号IntAが所定時間待機状態にされると，それがキャンセルされてより高い割り込みレベルのタイマー割り込み要求信号IntTAが発生する。さらに，タイマー割り込み要求信号IntTAが所定時間待機状態にされると，それがキャンセルされてより高い割り込みレベルのタイマー割り込み要求信号IntTAAが発生する。
【００４０】
特に，後段タイマーTimerAAからのタイマー割り込み要求信号IntTAAの割り込みレベルを最も高いレベルに設定することで，マクロAからの割り込み要求は前段タイマーと後段タイマーの待機時間経過後に即座に受け付けられて，CPUに割り込み信号が出力されることになる。また，前段タイマーTimerAと後段タイマーTimerAAの待機時間と，各タイマー割り込み要求信号IntTA,IntTAAの割り込みレベルとを，適宜調整することで，所望の緊急度と優先度でマクロAからの割り込み要求を実行するマイクロコンピュータにすることができる。
【００４１】
図４は，本実施の形態における更に別の割り込みコントローラを内蔵するマイクロコンピュータの構成図である。図４の割り込みコントローラ１０は，マクロA，Bからの割り込み要求信号IntA,IntBに共通に割り込みタイマーTimerABが設けられている。２つの割り込み要求信号IntA,IntBに共有される割り込みタイマーTimerABは，割り込み要求信号IntA,IntBのいずれかに応答して，タイマーカウントを開始し，所定時間カウントした時点で対応する割り込み通知信号NintA,NintBを受信していなければ，タイマーカウントを開始した割り込み要求信号に対応する割り込みクリア信号ClearA,ClearBをマクロAまたはBに出力すると共に，対応するタイマー割り込み要求信号IntTAまたはIntTBを出力する。また，割り込みデコーダ３０は，プライオリティエンコーダ３０が出力する割り込み信号INTに応答して，対応する割り込み通知信号NintA,NintBを出力する。
【００４２】
図４の例では，マクロA,Bからの割り込み要求信号IntA,IntBは，同時に発生する確率が低い，または全く排他的にしか発生しない場合に適用され，割り込み要求信号IntA,IntBそれぞれに割り込みタイマーを設けずに共通の割り込みタイマーTimerABを共有させている。ただし，割り込みタイマーTimerABは，２つの割り込み要求信号IntA,IntBの区別をして，それぞれに対応するタイマー割り込み要求信号IntTA,IntTBを出力する。
【００４３】
割り込み要求信号IntA,IntBが同時に発生する確率が低い場合であって，但し，たまたま同時に又は同時期に発生して両割り込み要求信号がバッティングした場合は，割り込みタイマーTimerABは，いずれかの割り込み要求信号に対してタイマーカウントし，所定時間カウント後に必要に応じてタイマー割り込み要求信号IntTA,IntTBを出力する。そして，割り込みタイマーTimerABは，そのタイマー割り込み要求信号に対応する割り込みフラグがクリアされた後に，残された割り込み要求信号に対してタイマーカウントし，所定時間カウント後に必要に応じてタイマー割り込み要求信号IntTA,IntTBを出力する。タイマーTimerABを共有にしたことで，割り込み要求信号IntA,IntBは，多少待機時間が長くはなるが，いずれの割り込み要求信号も，受け付けられずに待機させられた場合には，所定時間後にはキャンセルされてより割り込みレベルの高いタイマー割り込み要求信号に置き換えられ，受け付けられることになる。
【００４４】
上記のように，必ずしも全ての割り込み要求信号に割り込みタイマーを設ける必要はなく，必要な割り込み要求信号に設ければよく，更に，複数の割り込み要求信号で共有されるように割り込みタイマーを設けても良い。
【００４５】
以上の実施の形態をまとめると，次の付記のとおりである。
【００４６】
（付記１）
複数の割り込み要求信号に応答して，当該割り込み要求信号の割り込みレベルに応じて割り込み要求信号を受け付け，割り込み信号を処理ユニットに出力する割り込みコントローラにおいて，
受信した割り込み要求信号のうち前記割り込みレベルが最も高い割り込み要求信号を選択して受け付け，前記受け付けた割り込み要求信号に対応する割り込み信号を前記処理ユニットに出力するプライオリティエンコーダと，
前記プライオリティエンコーダが出力する割り込み信号をデコードして，割り込み通知信号を出力する割り込みデコーダと，
前記複数の割り込み要求信号の少なくとも一部の割り込み要求信号に対応して設けられ，前記割り込み要求信号に応答して所定の待機時間をカウントし，当該待機時間経過後に未だ対応する割り込み通知信号が前記割り込みデコーダより出力されない場合に，前記割り込み要求信号より割り込みレベルが高いタイマー割り込み要求信号を前記プライオリティエンコーダに出力する割り込みタイマーとを有することを特徴とする割り込みコントローラ。
【００４７】
（付記２）
付記１記載の割り込みコントローラにおいて，
前記割り込みタイマーは，前記タイマー割り込み要求信号を出力する時に，対応する割り込み要求信号を出力した周辺回路に割り込みクリア信号を出力し，
前記割り込みデコーダは，前記割り込み要求信号に対応する前記割り込み信号に応答して，当該割り込み要求信号を出力した前記周辺回路の割り込みタイマーに前記割り込み通知信号を出力することを特徴とする割り込みコントローラ。
【００４８】
（付記３）
付記１記載の割り込みコントローラにおいて，
前記プライオリティエンコーダは，前記割り込み要求信号及び前記タイマー割り込み要求信号それぞれに対応して割り込みレベルを格納する割り込みレジスタを有し，前記割り込みレジスタに格納されている割り込みレベルを参照して，前記受信した割り込み要求信号及びタイマー割り込み要求信号のうち前記割り込みレベルが最も高い割り込み要求信号またはタイマー割り込み要求信号を選択して受け付け，
前記プライオリティエンコーダは，割り込みレベル変更信号に応答して，前記割り込みレジスタ内の対応する割り込みレベルを変更することを特徴とする割り込みコントローラ。
【００４９】
（付記４）
付記３記載の割り込みコントローラにおいて，
前記割り込みレベル変更信号は，前記タイマー割り込み要求信号に対応する前記割り込み信号を受信した時に前記処理ユニットから出力されることを特徴とする割り込みコントローラ。
【００５０】
（付記５）
付記１記載の割り込みコントローラにおいて，
前記割り込みタイマーの少なくとも一つは，
前記割り込み要求信号に応答して第１の待機時間をカウントし，当該第１の待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記割り込み要求信号より割り込みレベルが高い第１の割り込みレベルの第１のタイマー割り込み要求信号を前記プライオリティエンコーダに出力する初段割り込みタイマーと，
前記初段割り込みタイマーが出力する前記第１のタイマー割り込み要求信号に応答して第２の待機時間をカウントし，当該第２の待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記第１のタイマー割り込み要求信号より割り込みレベルが高い第２の割り込みレベルの第２のタイマー割り込み要求信号を前記プライオリティエンコーダに出力する後段割り込みタイマーとを有することを特徴とする割り込みコントローラ。
【００５１】
（付記６）
付記５記載の割り込みコントローラにおいて，
前記初段割り込みタイマーは，前記第１のタイマー割り込み要求信号を出力するときに対応する割り込み要求信号を出力した周辺回路に割り込みクリア信号を出力し，前記後段割り込みタイマーは，前記第２のタイマー割り込み要求信号を出力するときに前記初段割り込みタイマーに割り込みクリア信号を出力することを特徴とする割り込みコントローラ。
【００５２】
（付記７）
付記１記載の割り込みコントローラにおいて，
前記複数の割り込みタイマーの少なくとも１つは，複数の割り込み要求信号に共有される共有割り込みタイマーであり，当該共有割り込みタイマーは，前記共有する複数の割り込み要求信号のいずれかの受信に応答して所定の待機時間をカウントし，当該待機時間経過後に未だ対応する割り込み通知信号が出力されない場合に，前記受信した割り込み要求信号より割り込みレベルが高いタイマー割り込み要求信号を前記プライオリティエンコーダに出力することを特徴とする割り込みコントローラ。
【００５３】
（付記８）
付記７記載の割り込みコントローラにおいて，
前記共有割り込みタイマーは，前記共有する複数の割り込み要求信号を受信した場合は，一方の割り込み要求信号について前記タイマー割り込み要求信号を出力し，その後，他方の割り込み要求信号について前記タイマー割り込み要求信号を出力することを特徴とする割り込みコントローラ。
【図面の簡単な説明】
【００５４】
【図１】本実施の形態における割り込みコントローラを内蔵するマイクロコンピュータの構成図である。
【図２】プライオリティエンコーダ２０の構成図である。
【図３】本実施の形態における他の割り込みコントローラを内蔵するマイクロコンピュータの構成図である。
【図４】本実施の形態における更に別の割り込みコントローラを内蔵するマイクロコンピュータの構成図である。
【符号の説明】
【００５５】
１０：割り込みコントローラ          ２０：プライオリティエンコーダ
３０：割り込みデコーダ              ＣＰＵ：処理ユニット
TimerA〜N:割り込みタイマー          IntA〜N：割り込み要求信号
IntTA〜N：タイマー割り込み要求信号  ClearA〜N：割り込みクリア信号
INT:割り込み信号                    NintA〜N:割り込み通知信号
【図１】
2008217419.tif 000003
【図２】
2008217419.tif 000004
【図３】
2008217419.tif 000005
【図４】
2008217419.tif 000006