(57)【要約】【課題】  ＣＰＵの割込みレベル毎に割込みソースを自由に選択できるようにし、且つ、割込み処理に要するレジスタ数を削減する事でＣＰＵの割込み処理を高速化する事を目的とする。【解決手段】  入力された割込み信号を、割込みレベル毎に分割する手段と、入力された割込み信号を割込みレベルのビット毎に選択する手段と、選択レジスタの値から、入力割込み信号を選択する為の割込み選択回路を有する。これにより、割込み信号を、ＣＰＵの割込みレベル毎に自由に選択、入れ替えが可能になる。【選択図】  図１
2006236233.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置からのNビットの割り込み要求信号を受信し、ＣＰＵの割込みレベル毎に選択・振り分けを行なう割り込み制御回路であって、受信したNビットの割り込み信号を、ビット毎に選択指定を行なう為のビットセレクトレジスタを有し、ビットセレクトレジスタにセットされた値に従って割り込み要求信号を振り分ける割り込み選択回路を有し、選択された割込み要求信号をセンスする為のセンスレジスタを有し、選択された割込み信号をマスクする為のマスクレジスタを有し、選択された割り込み信号は、ビット毎にORされてＣＰＵの割込み信号に入力される事を特徴とする割込み制御回路。
【請求項２】
請求項１の割込み検出回路及び割込みビットセレクトレジスタは、ＣＰＵの割込みレベル毎に準備されている事を特徴とする。
【請求項３】
請求項１の割込み選択回路は、ビットセレクトレジスタの値から、割込み要求信号を選択するセレクター回路である。
【請求項４】
請求項１のセンスレジスタとマスクレジスタのビット幅は、Nビット以下に設定できることを特徴とする割り込み制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータの割り込み制御回路に関し、特に割り込み要求の処理優先順位を制御する優先順位制御回路に関する。
【背景技術】
【０００２】
近年、マイクロコンピュータは広い分野で使用されるようになり、多機能化が一段と進められている。これに伴い、マイクロコンピュータには、数多くの周辺回路が接続され、この周辺回路からマイクロコンピュータ（以下、ＣＰＵと記す）に対して発生する割り込み数は増加する一方である。周辺回路から発生した複数の割り込みは、割込み制御回路にて一旦処理されＣＰＵに渡される。割込み制御回路は、予め設定された割り込みレベル設定に従い割込み信号を選択し、ＣＰＵの割込みレベル毎に振り分けを行う。以下に、従来の割り込み制御回路について、図１を用いて説明する。
【０００３】
各モジュールから発生した割り込み、０の割込みソース０〜１の割込みN、は、１０の割込み制御回路に入力される。割込み信号は、１０の割込み制御回路にてＣＰＵで規定された優先順位を決定する２２の割込みレベル[L:0]に変換される。
【０００４】
１０の割込み制御回路では、各割込みレベルに合わせて、[N:0]ビットの信号のどのビットを、割込みソースのどのビットを割り当てるかを決定する為に、１１セレクトレジスタを保持している。また、割込みレベル毎のビットの状態をセンスする１２センスレジスタを保持し、割込みレベルごとの信号をマスクする１３マスクレジスタも保持している。また、割込みレベル毎の信号をまとめる１４OR回路が準備されている。また、ここでＣＰＵの２１データ幅を[D:0]とする。
又、従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開平０４−３４３１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＣＰＵは、初期設定時に割込み制御回路１０にあるセレクトレジスタを設定し、各割込みレベルに応じて割込み要因を選択・設定する。その後、割込み発生の度に、センスレジスタとマスクレジスタを読み・書きを実行する事で、割込み処理を実行している。
【０００６】
図２の「割込みセレクトレジスタと割込みレベル」を示す。例えば、セレクトレジスタ１１は、割込みレベル[0]２２を設定するレジスタであるので、レベル０の割込み要因であるビット０，１，２，９，１３を選択する。
【０００７】
しかしながら、割り込みの入力数が増えるに従って、即ち、割込みソースの数がＣＰＵのデータ幅より大きくなると、ＣＰＵは、２度以上、レジスタアクセスを行わないと全ての割込み状態を確認する事が出来なくなってしまう。例えば、32ビットのデータ幅のＣＰＵの場合、割込み数[N:0]が３２までであれば、１度のレジスタアクセスで、割込み状態を監視できるが、３３以上の場合、２度以上のアクセスを行う必要があり、処理に時間が掛かる。
【０００８】
また、各割込みレベルに合わせて割込みレベル[N:0]が設定可能であるにも関わらず、設定したいビットが２つ以上のレジスタに分かれている場合は、例えば、レベルLの割込みソース(LvL)がレジスタ１とレジスタ２の２つのレジスタに跨ってしまうと、ＣＰＵは２度レジスタアクセスを行わないと、割込みの状態を監視できない。
【０００９】
図３は、割込みソース数がＣＰＵのデータ幅を超えた場合の割込み制御回路を示した図である。セレクトレジスタ、センスレジスタ、マスクレジスタは、それぞれ２つ以上のレジスタから構成されることになる。従って、割込み処理時のレジスタアクセスが倍になる為、のパフォーマンスの低下につながるという問題点がある。
【００１０】
（目的）
本発明では、ＣＰＵの割込みレベル毎に割込みソースを自由に選択できるようにし、且つ、レジスタ数を削減する事でＣＰＵの割込み処理を高速化する事を目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成する本発明の出力装置は以下に示す構成を備える。
【００１２】
即ち、入力された割込み信号を割込みレベル毎に分割する手段を有する。
【００１３】
即ち、入力された割込み信号を割込みレベルのビット毎に選択する為の選択レジスタを有する。
【００１４】
即ち、選択レジスタの値から、入力割込み信号を選択する為の割込み選択回路を有する。
【発明の効果】
【００１５】
以上述べたように本発明によれば、割込み信号の優先順位を選択可能とした事で、マスクレジスタ、センスレジスタのビット幅を自由に設定できるようになり、割込み処理時のレジスタアクセスが最小限で出来るようになる為、割込み処理時間が短縮出来、パフォーマンスが維持出来るというメリットがある。
【発明を実施するための最良の形態】
【００１６】
図４に割込み制御回路１０の内部回路を示し、例として割込みレベル[０]22の信号の処理方法を説明する。
【００１７】
各割込みソースから入力された割込み信号[N:0]は、各ビット毎に割込みレベル[０]の要因かどうかを選択する為に、セレクトレジスタを用いで信号の選択設定を行う。セレクトレジスタから出力されるレジスタ値と各ビットの割込みソースの値をANDすることにより、信号をセレクトできる。この設定は、通常システムBOOT時に１度行われる。
【００１８】
次に、センスレジスタは、各割込みソースをセレクトした値が直接読める。前記セレクトレジスタで割込みソースが選択されていなければ、割込みセンスレジスタの値は、不変である。
【００１９】
次に、マスクレジスタは、各割込みソースを選択した信号をＣＰＵに渡すかどうかを決定するレジスタである。割込みソースから割り込みが発生していても、マスクレジスタを設定する事で、ＣＰＵに対して割込みを通知しない事が出来る。最後に、全ての割込みソースをORすることで、ＣＰＵに対して、割込みレベル毎に、割込みの通知を行う事が可能である。
【００２０】
割込みが発生した場合は、ＣＰＵは、先ず、マスクレジスタで割込みをマスクし、ＣＰＵへの割込み通知を止めた上で、センスレジスタの値を読み、どの割込みソースから割り込みが発生しているかを確認し、対象の割込み発生ソースの処理を行った後、マスクレジスタのマスクを解除する。割り込みが発生した場合は、上記の繰り返しである。
【００２１】
尚、ここでは、割込みレベル[０]22のレベルは、LSBが一番割込みレベルが高い事にする。
【００２２】
図５に本発明の実施例を示す。
【００２３】
上記で説明したように、セレクトレジスタ、センスレジスタ、マスクレジスタは割込みソース[N:0]分必要であり、割込みソース数が増え、ＣＰＵのビット幅より多い数の割込みソースがある場合は、ＣＰＵは、複数回に分けて各種レジスタにアクセスする必要がある。
【００２４】
そこで、入力割込みソース[N:0]の各ビット毎の割込みソースが選択が出来るように、割込みレベル毎・ビット毎に、ビットセレクトレジスタと割込み選択回路を設ける。ビットセレクトレジスタは、入力割込みソース[N:0]のうちどのビットを使用するかを選択するレジスタであり、割込み選択回路は、ビットセレクトレジスタの設定値に基づいて、割込みソース[N:0]の中から１本の割込みソースを選択するセレクタやマルチプレクサで構成される信号選択回路である。
【００２５】
また、割込み制御回路は、［P:0］ビット準備する事が出来、この値をＣＰＵのデータバス幅以下にすることで、１度のレジスタアクセスで割り込み制御が可能である。
【００２６】
従って、今まで各割込みソース毎に信号を単純にセレクトする代わりに、全ての割込みソースから自由に割込みソースを選択出来るようになる。これにより、センスレジスタ、マスクレジスタのビット幅をＣＰＵのビット幅までに制限出来効率良い割込み処理が可能である。
【００２７】
また、図６に新規に新設したビットセレクトレジスタの詳細を示す。各割込みレベルと割込みソースビット毎「ＣＰＵのバス幅まで」に、ビットを選択する事が可能。
【００２８】
本回路における割込み処理方法は、先ず、ＣＰＵは、図６にビットセレクトレジスタの設定を行い、各ビット毎に割込みレベルを設定する。
【００２９】
ここで、ＣＰＵは、割込みレベル毎に、この設定を図示していないワークメモリのメモリ空間上に保持しておく。または、プログラムで設定されているプログラム上の設定空間を参照する。
【００３０】
割込みが発生した場合は、ＣＰＵは、先ず、マスクレジスタで割込みをマスクし、ＣＰＵへの割込み通知を止めた上で、センスレジスタの値を読み、どの割込みソースから割り込みが発生しているかを上記、メモリ空間に保持してある設定と照らし合わせて確認し、対象の割込み発生ソースの処理を行った後、マスクレジスタのマスクを解除する。
【００３１】
割り込みが発生した場合は、上記の繰り返しである。
【００３２】
以上のように、割込みソースが選択できるようになったことで、割込み制御回路１０は、図７に示すように、入力割込みソースに対してビットセレクト回路が追加され、センスレジスタ・マスクレジスタは１つで済むことになる。
【図面の簡単な説明】
【００３３】
【図１】一般的な割込み制御回路を示す。
【図２】割込み制御回路内の割込みレジスタの詳細を示す。
【図３】入力割込みソースが増加した場合の、割込み制御回路を示す。
【図４】割込み制御回路の詳細回路図を示す。
【図５】本発明の割込み制御回路のブロック図を示す。
【図６】本発明の割込み制御回路のレジスタを示す。
【図７】本発明の割込み制御回路を用いた場合のブロック図を示す。
【図１】
2006236233.tif 000003
【図２】
2006236233.tif 000004
【図３】
2006236233.tif 000005
【図４】
2006236233.tif 000006
【図５】
2006236233.tif 000007
【図６】
2006236233.tif 000008
【図７】
2006236233.tif 000009