【手続補正書】
【提出日】平成20年5月21日(2008.5.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】  明細書
【発明の名称】  割込みの優先順位を決定する情報処理方法及び情報処理装置
【特許請求の範囲】
【請求項１】
マイクロプロセッサを用いる装置において複数の割込み信号のうちのアクティブとされた割込み信号に対して応答する情報処理方法において、
ａ．上記複数の割込み信号うちのアクティブとされた割込み信号を受信するステップと、
ｂ．上記複数の割込み信号うちのアクティブとされた割込み信号を、第１の複数のレジスタのそれぞれにおける内容に基づいて、該第１の複数のレジスタのそれぞれによって指定される対応した相対的優先順位を有するとともに、該割込み信号に対応するベクトルアドレスを格納している第２の複数のレジスタの１つにマッピングするステップと、
ｃ．上記アクティブとされた各割込み信号のベクトルアドレスを、該アクティブとされた割込み信号のそれぞれの相対的優先順位に基づいて、上記マイクロプロセッサに供給するステップとを有する情報処理方法。
【請求項２】
上記割込み信号の相対的優先順位を、上記第１の複数のレジスタ及び上記第２の複数のレジスタの内容を変更することによって、変更するステップを更に有する請求項１記載の情報処理方法。
【請求項３】
上記複数の割込み信号のうちの選択された割込み信号を、上記第１の複数のレジスタの内容に基づいて、マスキングするステップを更に有する請求項１記載の情報処理方法。
【請求項４】
１つのベクトルアドレスは、複数の割込み信号に対応していることを特徴とする請求項１記載の情報処理方法。
【請求項５】
マイクロプロセッサを用いる装置において複数の割込み信号うちのアクティブとされた割込み信号に対して応答する情報処理装置において、
ａ．第１の複数のレジスタと、
ｂ．上記第１の複数のレジスタに接続され、上記複数の割込み信号うちのアクティブとされた割込み信号を、該第１の複数のレジスタのそれぞれにおける内容に基づいて、優先順位に基づく複数のアクティブ化信号にマッピングするマッピング回路と、
ｃ．上記マッピング回路に接続され、上記複数のアクティブ化信号うちの最上位の優先順位を有するアクティブ化信号以外の全てのアクティブ化信号をブロックする優先順位エンコーディング回路と、
ｄ．上記アクティブ化信号に対応するベクトルアドレスをそれぞれ格納しており、上記複数のアクティブ化信号を受信し、上記最上位の優先順位を有するアクティブ化信号に対応するベクトルアドレスを、上記マイクロプロセッサに供給する第２の複数のレジスタとを備える情報処理装置。
【請求項６】
上記割込み信号の相対的優先順位は、上記第１の複数のレジスタ及び上記第２の複数のレジスタの内容を変更することによって、変更されることを特徴とする請求項５記載の情報処理装置。
【請求項７】
上記マッピング回路は、上記複数の割込み信号のうちの選択された割込み信号を、上記第１の複数のレジスタのそれぞれの内容を設定することによって、マスキングすることを特徴とする請求項５記載の情報処理装置。
【請求項８】
１つのベクトルアドレスは、複数の割込み信号に対応していることを特徴とする請求項５記載の情報処理装置。
【請求項９】
マイクロプロセッサを用いる装置において複数の割込み信号うちのアクティブとされた割込み信号に対して応答する情報処理装置において、
ａ．それぞれが上記複数の割込み信号のうちの１つの割込み信号に対応し、相対的優先順位の値を格納する第１の複数のレジスタと、
ｂ．上記第１の複数のレジスタのそれぞれに接続され、上記相対的優先順位の値を受信する複数の選択線と、対応する割込み信号の１つが供給される入力端子と、複数の出力端子とを有する複数のデマルチプレクサと、
ｃ．上記各デマルチプレクサの複数の出力端子の１つにそれぞれ接続された複数の入力端子と、アクティブ化信号を出力する出力端子とを有する複数の論理和ゲートと、
ｄ．上記複数の論理和ゲートに接続され、上記複数のアクティブ化信号うちの最上位の優先順位を有するイネーブルされたアクティブ化信号以外のアクティブ化信号をブロックする優先順位エンコーディング回路と、
ｅ．上記アクティブ化信号に対応するベクトルアドレスをそれぞれ格納しており、上記複数のアクティブ化信号を受信し、上記最上位の優先順位を有するイネーブルされたアクティブ化信号に対応するベクトルアドレスを、上記マイクロプロセッサに供給する第２の複数のレジスタとを備える情報処理装置。
【請求項１０】
上記優先順位エンコーディング回路は、それぞれが最上位の優先順位を有するアクティブ化信号以外のアクティブ化信号の１つに対応する複数の論理積ゲートを備え、
上記各論理積ゲートは、上記複数のアクティブ化信号のうちの対応するアクティブ化信号の論理レベルと該対応するアクティブ化信号より高い優先順位を有する各アクティブ化信号の反転論理レベルとの論理積を算出し、
上記複数の論理積ゲートの出力信号及び上記最上位の優先順位を有するアクティブ化信号は、それぞれ対応する上記第２の複数のレジスタに供給され、該第２の複数のレジスタのうちの１つをイネーブルにし、該イネーブルにされた第２のレジスタは、そのベクトルアドレスを上記マイクロプロセッサに供給することを特徴とする請求項９記載の情報処理装置。
【請求項１１】
上記割込み信号の相対的優先順位は、上記第１の複数のレジスタ及び上記第２の複数のレジスタの内容を変更することによって、変更されることを特徴とする請求項９記載の情報処理装置。
【請求項１２】
上記複数の割込み信号のうちの選択された割込み信号を、上記第１の複数のレジスタのそれぞれの内容を適切に設定することによって、マスキングすることを特徴とする請求項９記載の情報処理装置。
【請求項１３】
上記複数の割込み信号のうちの選択された割込み信号を、上記第１の複数のレジスタのそれぞれの内容を適切に設定することによってマスキングして、上記対応するデマルチプレクサの複数の出力端子うちの上記複数の論理和ゲートのいずれにも接続されていない出力端子を選択することを特徴とする請求項９記載の情報処理装置。
【請求項１４】
１つのベクトルアドレスは、複数の割込み信号に対応していることを特徴とする請求項９記載の情報処理装置。
【発明の詳細な説明】
【０００１】
発明の分野
本発明はマイクロプロセッサを用いる装置の分野に関し、詳しくは、マイクロプロセッサを用いる装置における割込みの設定及び割込みの優先順位を決定する手法に関する。
【０００２】
発明の背景
マイクロプロセッサを用いる装置は、メモリ内に連続して格納されているソフトウェアプログラムの命令を順次実行することにより動作する。プログラムカウンタは、シーケンス内の次の命令を格納しているメモリアドレスを指示する。プログラムカウンタは、各命令が実行される毎にインクリメントされる。ソフトウェアプログラムは、そのソフトウェアプログラムにおける条件に基づいて選択される分岐を含んでいることがある。この条件が充足された場合、プログラムカウンタは、条件付き分岐（conditional branch）用の分岐アドレスを示し、マイクロプロセッサはこの分岐アドレスから処理を再開して命令を順次実行する。
【０００３】
ここで、マイクロプロセッサを用いた装置は、通常、格納されているプログラムとは同期しないイベントの発生に対しても応答する必要がある。例えば、モデムやキーボード等の周辺機器からのデータは、データが供給された時点で、直ちに処理する必要がある。したがって、マイクロプロセッサは、通常、１又は複数の周辺機器から供給される１又は複数の割込み信号を受信処理する能力を備えている。すなわち、マイクロプロセッサは、現在実行中の命令シーケンスを中断し、割込みによりアクティブとなった、通常、割込みサービスルーチンと呼ばれる他の命令シーケンスの実行を開始する。
【０００４】
適切な割込みサービスルーチンの実行を開始するために、プログラムカウンタ内のアドレスは保存され、割込みベクトルと呼ばれるベクトルアドレスがプログラムカウンタに格納される。割込みサービスルーチンを実行するための適切なベクトルアドレスを決定するには、ベクトル化及び自動ベクトル化の２つの手法がある。割込みがベクトル化される場合、周辺機器は適切な割込みサービスルーチンの開始アドレス（start address）をマイクロプロセッサに供給する。この開始アドレスは、マイクロプロセッサ内のプログラムカウンタに格納される。あるいは、プログラムカウンタに格納されるアドレスは、割込みサービスルーチンの開始アドレスを格納するメモリアドレスとしてもよい。割込みが自動ベクトル化される場合は、どの割込みがアクティブにされたかに関わらず、ベクトルアドレスはメモリ内の所定の位置を示す。この所定の位置は、通常、割込みハンドラと呼ばれるソフトウェアルーチンの開始アドレスである。これにより、割込みハンドラは、アクティブとなった割込み信号に対応する割込みサービスルーチンを開始する。
【０００５】
マイクロプロセッサが割込みサービスルーチンの実行を完了すると、プログラムカウンタは、元の命令シーケンスが再開されるように、カウンタの値を復元する。
【０００６】
２つ以上の割込み信号が同時に保留されている場合、マイクロプロセッサは、適切な優先順位を有する割込み信号に応答する。このように、マイクロプロセッサを用いる装置は、割込み信号の優先順位を決定する能力を有している。さらに、特定の状況においては、マイクロプロセッサが１又は複数の割込み信号を無視することが望ましい場合もある。例えば、マイクロプロセッサが割込みにより中断できない重要な処理を実行している場合がある。このため、マイクロプロセッサは、通常、割込みをマスキングする機能を有している。
【０００７】
広く使用されているマイクロプロセッサの例として、例えばモトローラ社（Motorola, Inc.）の６８０００シリーズ（以下、モトローラ６８０００プロセッサという。）がある。モトローラ６８０００プロセッサに対する割込みは、各周辺機器からの割込み信号線を割込み優先順位エンコーダにハードウェア的に接続することにより実現される。割込み優先順位エンコーダは、ハードウェア論理回路であり、アクティブとなった各割込み信号を受け取り、これらのうちの最も優先順位の高い割込み信号をモトローラ６８０００プロセッサの複数の割込み入力端子のうちの１つに供給する。モトローラ６８０００プロセッサは、上述のベクトル化又は自動ベクトル化の手法により、適切な割込みサービスルーチンを開始する。
【０００８】
モトローラ６８０００プロセッサにおける割込みを実現するためのこの手法の問題点は、割込み信号間の相対的優先順位を変更するためには、割込みエンコーダへの割込み信号線のハードウェア的接続を変更する必要がある点である。このようなシステムを一度設定した後は、実際には、割込み間の相対的な優先順位を変更することはできない。
【０００９】
この他の広く使用されているマイクロプロセッサの例としては、エムアイピーエステクノロジーズ社（MIPS Technologies）の縮小命令セットコンピュータ（reduced instruction set computers：以下、ＲＩＳＣという。）であるＲ２０００，Ｒ３０００，Ｒ４０００，Ｒ６０００プロセッサ等（以下、ＭＩＰＳ／ＲＩＳＣプロセッサという。）が知られている。ＭＩＰＳ／ＲＩＳＣプロセッサには、原因レジスタ（cause register）と呼ばれる特別なレジスタ内の適切なビットを設定することによって、保留中の割込みが報告される。ＭＩＰＳ／ＲＩＳＣプロセッサは、これに応じて、割込みハンドラを実行することによって、適切な割込みサービスルーチンの処理を開始する。保留中の割込み間の優先順位は、割込みハンドラにより決定される。
【００１０】
ＭＩＰＳ／ＲＩＳＣプロセッサにおける割込みを実現するためのこの手法の問題点は、割込み信号間の相対的優先順位を変更するためには、割込みハンドラを変更する必要がある点である。この場合も、システムを一度設定した後は、実際には、割込み間の相対的な優先順位を変更することはできない。さらに割込みハンドラにアクセスし、割込みハンドラを実行するために、割込み処理の実行に遅延が生じる。この遅延は、装置にとって好ましくないレベルになることがある。
【００１１】
そこで、マイクロプロセッサを用いた装置において、割込みの優先順位付けを行うためのより簡単な設定の手法が望まれている。
【００１２】
発明の開示
本発明は、マイクロプロセッサを用いる装置において、割込み信号の優先順位を決定し、及び割込み信号をマスキングするためのソフトウェア設定を行う手法に関する。複数の割込み構成レジスタを設け、これにより、複数の割込み信号のそれぞれを、対応する複数のベクトルアドレスレジスタのうちの適切な１つにマッピングし、また、複数の割込み信号のうちの選択された割込み信号をマスキングする。複数の割込み構成レジスタのそれぞれは、ソフトウェアにより設定されて、ベクトルアドレスレジスタの１つを同定するビットパターン又は対応する割込み信号をマスキングすべきであることを示すビットパターンを格納する。複数のベクトルアドレスレジスタは、所定の優先順位に基づいて配列されており、また、複数のベクトルアドレスレジスタのそれぞれは、ソフトウェアにより設定されて、対応する割込み信号用の適切な割込みサービスルーチンの開始アドレスを格納する。
【００１３】
複数の割込み信号は、複数のデマルチプレクサのうちの対応するデマルチプレクサの入力端子に供給される。複数の割込み構成レジスタは、それぞれ対応するデマルチプレクサの選択線に接続されている。複数のデマルチプレクサの各出力信号は、他のデマルチプレクサの出力信号とともに論理和ゲートに入力され、この論理和ゲートにおいて各出力信号の論理和が算出され、論理和回路の出力端子からはアクティブ化信号が出力される。各アクティブ化信号は、対応する割込み信号の状態に基づいて、選択的にイネーブルされる。これにより、デマルチプレクサ及び論理和ゲートは、割込み構成レジスタの内容に基づいて、割込み信号を論理和ゲートの出力信号にマッピングする。
【００１４】
各アクティブ化信号は、複数のベクトルアドレスレジスタの１つに対応している。複数のアクティブ化信号は、複数の論理積ゲートに供給され、これにより、最上位の優先順位を有するイネーブルされたアクティブ化信号のみが対応するベクトルアドレスレジスタをイネーブルする。イネーブルされたベクトルアドレスレジスタに格納されているベクトルアドレスは、ベクトルアドレスバスを介してマイクロプロセッサに供給される。マイクロプロセッサは、このベクトルアドレスをプログラムカウンタに供給し、このベクトルアドレスから開始される適切な割込みサービスルーチンを実行する。
【００１５】
適切なサービスルーチンを実行することにより最上位の優先順位を有する割込み処理が完了すると、次に高い優先順位を有する保留中の割込み処理が実行され、この処理は、更なる保留中の割込み処理が全て実行されるまで繰り返される。保留中の割込み処理がなくなると、プログラムカウンタはリストアされ、マイクロプロセッサは元の命令シーケンスの実行を再開する。
【００１６】
このように、本発明によれば、複数の割込み構成レジスタの内容及び複数のベクトルアドレスレジスタの内容に基づいて割込み処理の設定を行うことができる。これらの内容は、比較的容易に変更することができ、すなわち、本発明によれば、従来の技術に比べて割込み処理を容易に設定することができる。さらに、本発明によれば、従来の技術において必要であった割込みハンドラにおける優先順位及びベクトルアドレスの解析を行う必要がないので、各割込み処理の実行時の遅延を低減することができる。さらに、本発明では、各割込み処理の優先順位を決定し、各割込み処理に適切なベクトルアドレスを与える処理を主にハードウェアにより実現することができるので、従来に比べて処理遅延が低減される。
【００１７】
発明の好適な実施の形態の詳細な説明
Ｆｉｇ．１は、マイクロプロセッサを用いる装置における割込み信号に応答するための、複数の割込み構成レジスタ（interrupt configuration register）１００及びベクトルアドレスレジスタ２００を示す図である。周辺機器から供給される各割込み信号ＩＮＴ．Ａ〜ＩＮＴ．ｎは、複数の割込み構成レジスタ１００のうちの１つに対応している。割込み信号の総数は、実際に構築されるシステムに応じて異なるものである。各割込み構成レジスタ１００は、ソフトウェアにより、複数のベクトルアドレスレジスタ２００のうちの１つを同定するビットパターン又は対応する割込みをマスキングする（実行不可能にする）ことを示すビットパターンを格納するように設定することができる。すなわち、割込み信号ＩＮＴ．Ａ〜ＩＮＴ．ｎは、割込み構成レジスタ１００の内容に基づいて、ベクトルアドレスレジスタ２００のうちの適切な１つに選択的にマッピングされる。
【００１８】
ベクトルアドレスレジスタ２００のそれぞれは、各割込み信号に対応する割込みサービスルーチンの開始アドレスを格納している。メモリアドレスを特定するために３２ビットを使用するシステムでは、各ベクトルアドレスレジスタ２００は、３２ビットの情報を格納する。もちろん、アドレス指定の手法が異なる場合、ベクトルアドレスレジスタ２００のサイズは異なるものとなる、ベクトルアドレスレジスタ２００は、予め定められた優先順位に基づいて配列されている。この具体例では、例えば、ベクトルアドレスレジスタ２０２の優先順位が最下位に指定されており、中間のレジスタであるベクトルアドレスレジスタ２０４がそれより高い優先順位を有しており、ベクトルアドレスレジスタ２０６が最上位の優先順位を有している。もちろん、相対的な優先順位の順序は変更することができる。
【００１９】
各割込み構成レジスタ１００に格納される情報のビット数は、各ベクトルアドレスレジスタ２００に固有のビットパターンと割込みのマスキングを示す固有のビットパターンとを表現するために十分なビット数であることが望ましい。すなわち、最大３つの割込み信号が存在する場合、各割込み構成レジスタ１００は、好ましくは２ビットの情報を格納する。これにより表されるビットパターンのうちの１つ、例えば００は、対応する割込みをマスキングすることを示し、残りの０１，１０，１１は、それぞれベクトルアドレスレジスタ２００のうちの１つに対応する。また、最大７つの割込み信号が存在する場合、各割込み構成レジスタ１００は、好ましくは３ビットの情報を格納する。これにより表されるビットパターンのうちの１つ、例えば０００は、対応する割込みをマスキングすることを示し、残りの００１〜１１１は、それぞれベクトルアドレスレジスタ２００のうちの１つに対応する。さらにまた、最大１５個の割込み信号が存在する場合、各割込み構成レジスタ１００は、好ましくは４ビットの情報を格納する。もちろん、割込み信号の数が増えれば、より大きなビット数が必要となる。
【００２０】
以下、本発明に基づく処理について説明する。ここでは、マイクロプロセッサを用いる装置は、割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｅにより表される５つの異なる割込み信号に応答しなくてはならないとする。したがって、それぞれ３ビットの情報を格納する５つの割込み構成レジスタ１００が必要となる。さらに、Ａ’〜Ｅ’により表される５つのベクトルアドレスを設ける必要がある。この具体例において、各ベクトルアドレスＡ’〜Ｅ’は、同一のアルファベット符号により示される割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｅにそれぞれ対応するものとする（例えば、割込み信号ＩＮＴ．Ａに対応する適切な割込みサービスルーチンは、ベクトルアドレスＡ’が示すメモリ内の開始アドレスを有している。）。
【００２１】
第１の具体例をＦｉｇ．２Ａに示す。ここでは、割込みＡ〜Ｅに対し、優先順位を高い順からＣ，Ｅ，Ａ，Ｄ，Ｂの順で付けるとする。このために、割込み構成レジスタ１００及びベクトルアドレスレジスタ２００は、Ｆｉｇ．２Ａに示すように設定される。すなわち、ビットパターン１０１が割込み信号ＩＮＴ．Ｃに対応する割込み構成レジスタに割り当てられ、これにより、割込み信号ＩＮＴ．Ｃがベクトルアドレスレジスタ２００における最上位の優先順位にマッピングされるべきことが示され、割込み信号ＩＮＴ．Ｃ用のベクトルアドレスＣ’が最上位の優先順位を有するベクトルアドレスレジスタ２００に割り当てられる。また、ビットパターン１００が割込み信号ＩＮＴ．Ｅに対応する割込み構成レジスタに割り当てられ、これにより割込み信号ＩＮＴ．Ｅがベクトルアドレスレジスタ２００における第２位の優先順位にマッピングされるべきことが示され、割込み信号ＩＮＴ．Ｅ用のベクトルアドレスＥ’が第２位の優先順位を有するベクトルアドレスレジスタ２００に割り当てられる。また、ビットパターン０１１が割込み信号ＩＮＴ．Ａに対応する割込み構成レジスタに割り当てられ、これにより、割込み信号ＩＮＴ．Ａがベクトルアドレスレジスタ２００における第３位の優先順位にマッピングされるべきことが示され、割込み信号ＩＮＴ．Ａ用のベクトルアドレスＡ’が第３位の優先順位を有するベクトルアドレスレジスタ２００に割り当てられる。また、ビットパターン０１０が割込み信号ＩＮＴ．Ｄに対応する割込み構成レジスタに割り当てられ、これにより、割込み信号ＩＮＴ．Ｄがベクトルアドレスレジスタ２００における第４位の優先順位にマッピングされるべきことが示され、割込み信号ＩＮＴ．Ｄ用のベクトルアドレスＤ’が第４位の優先順位を有するベクトルアドレスレジスタ２００に割り当てられる。また、ビットパターン００１が割込み信号ＩＮＴ．Ｂに対応する割込み構成レジスタに割り当てられ、これにより、割込み信号ＩＮＴ．Ｂがベクトルアドレスレジスタ２００における最下位の優先順位にマッピングされるべきことが示され、割込み信号ＩＮＴ．Ｂ用のベクトルアドレスＢ’が最下位の優先順位を有するベクトルアドレスレジスタ２００に割り当てられる。
【００２２】
Ｆｉｇ．２Ａに示す具体例では、割込みが発生すると、対応するベクトルアドレスがマイクロプロセッサに供給され、このベクトルアドレスがプログラムカウンタにロードされる。例えば、割込み信号ＩＮＴ．Ａが発生した場合、対応するベクトルアドレスＡ’がマイクロプロセッサに供給される。ここで、例えば割込み信号ＩＮＴ．Ａ及び割込み信号ＩＮＴ．Ｅのように、複数の割込みが保留中の場合、それらのうちで優先順位が最も高い割込みのベクトルアドレスのみがマイクロプロセッサに供給される。この具体例では、割込み信号ＩＮＴ．Ｅが割込み信号ＩＮＴ．Ａよりも高い優先順位を有しているので、ベクトルアドレスＥ’が先にマイクロプロセッサに供給される。割込み信号ＩＮＴ．Ｅ用の割込みサービスルーチンが遂行されると、割込み信号ＩＮＴ．Ａがまだ保留中である場合、ベクトルアドレスＡ’がマイクロプロセッサに供給される。
【００２３】
この具体例では、ビットパターン０００が割込みのマスキングに対応しているとする。なお、割込みのマスキングに対応するビットパターンとしては、いかなるビットパターンを選択してもよいことは明らかである。ここで、割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｅのうちの１又は複数の割込みをマスキングする必要が生じた場合、マスキングすべき割込み信号に対応する割込み構成レジスタ内のビットパターンがビットパターン０００に置換される。Ｆｉｇ．２Ｂは、このような状況の例を示す図である。Ｆｉｇ．２Ｂに示す具体例は、割込み信号ＩＮＴ．Ｅがマスキングされている点を除いて、Ｆｉｇ．２Ａの具体例と同様である。ここで、割込みＢがマスキングされているために、対応するベクトルアドレスＥ’を設ける必要がない。したがって、割込み信号Ｅがアクティブになっても、内応するベクトルアドレスはマイクロプロセッサには供給されない。一方、その他の、マスキングされていない割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｄが発生した場合、プログラムフローは割込みにより中断され、適切なベクトルアドレスがマイクロプロセッサに供給される。割込み信号Ａ〜Ｅのうちのいずれの１又は複数の信号も、同様の手法によりマスキングすることができる。
【００２４】
このように、本発明によれば、割込み及び割込みの相対的な優先順位の設定を非常に柔軟に行うことができる。各割込みのためのベクトルアドレス、マスキングの設定、及び相対的優先順位は、対応する割込み構成レジスタ１００のうちの１つのレジスタ、又はベクトルアドレスレジスタ２００のうちの１つのレジスタの内容を変更するだけで、簡単に変更することができる。
【００２５】
この柔軟性の例として、例えばＦｉｇ．２Ａに示す具体例において、最上位の優先順位を有する割込みについて、この最上位の優先順位を有する割込みの優先順位を最下位に変更し、この他の割込みの優先順位を１ずつ繰り上げる必要が生じたとする。この処理は、本発明に基づき、割込み構成レジスタ１００及びベクトルアドレスレジスタ２００のエントリをＦｉｇ．２Ｃに示すように変更することにより実現できる。すなわち、Ｆｉｇ．２Ａにおいて、割込み信号ＩＮＴ．Ｃは、ベクトルアドレスレジスタ２００における最上位の優先順位を有する位置にマッピングされているが、Ｆｉｇ．２Ｃにおいては、割込み信号ＩＮＴ．Ｃは、ベクトルアドレスレジスタ２００における最下位の優先順位を有する位置にマッピングされている。また、Ｆｉｇ．２Ｃにおける各割込み信号ＩＮＴ．Ａ、ＩＮＴ．Ｂ、ＩＮＴ．Ｄ、ＩＮＴ．Ｅは、Ｆｉｇ．２Ａにおける位置から１ずつ高い優先順位の位置にマッピングされている。
【００２６】
上述の具体例は、各割込み信号を固有の割込みルーチンにマッピングするものであった。しかしながら、本発明によれば、複数の割込みを単一の割込みサービスルーチン（又は、単一の割込みハンドラ）にマッピングすることもできる。Ｆｉｇ．２Ｄは、２つの割込み信号を単一のベクトルアドレスにマッピングした具体例を示す。詳しくは、割込み信号ＩＮＴ．Ａ及び割込み信号ＩＮＴ．Ｅは、いずれもベクトルアドレスＡ’にマッピングされている。
【００２７】
Ｆｉｇ．３Ａ及びＦｉｇ．３Ｂは、本発明を実現する回路３００の構成を示す図である。説明を簡潔にするために、Ｆｉｇ．３Ａ及びＦｉｇ．３Ｂに示す回路３００は、割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｅの５つの割込みを有するシステム用に設計されたものとするが、ここに開示する原理は、これより多い又は少ない割込みを有するシステムに対応する回路にも適用することができる。割込み信号ＩＮＴ．Ａは、１−８デマルチプレクサ（one-to-eight demultiplexer）３０２の入力端子に供給される。割込み信号ＩＮＴ．Ａ用の割込み構成レジスタ１０２には３ビットの情報が格納される。これらの割込み構成レジスタ１０２の３つの各ビットは、それぞれデマルチプレクサ３０２の３つの選択線（select line）に供給されている。割込み信号ＩＮＴ．Ｂは、１−８デマルチプレクサ３０４の入力端子に供給される。割込み信号ＩＮＴ．Ｂ用の割込み構成レジスタ１０４には３ビットの情報が格納される。これらの割込み構成レジスタ１０４の３つの各ビットは、それぞれデマルチプレクサ３０４の３つの選択線に供給されている。
【００２８】
割込み信号ＩＮＴ．Ｃは、１−８デマルチプレクサ３０６の入力端子に供給される。割込み信号ＩＮＴ．Ｃ用の割込み構成レジスタ１０６には３ビットの情報が格納される。これらの割込み構成レジスタ１０６の３つの各ビットは、それぞれデマルチプレクサ３０６の３つの選択線に供給されている。割込み信号ＩＮＴ．Ｄは、１−８デマルチプレクサ３０８の入力端子に供給される。割込み信号ＩＮＴ．Ｄ用の割込み構成レジスタ１０８には３ビットの情報が格納される。これらの割込み構成レジスタ１０８の３つの各ビットは、それぞれデマルチプレクサ３０８の３つの選択線に供給されている。割込み信号ＩＮＴ．Ｅは、１−８デマルチプレクサ３１０の入力端子に供給される。割込み信号ＩＮＴ．Ｅ用の割込み構成レジスタ１１０には３ビットの情報が格納される。これらの割込み構成レジスタ１１０の３つの各ビットは、それぞれデマルチプレクサ３１０の３つの選択線に供給されている。
【００２９】
デマルチプレクサ３０２の１番の出力端子は論理和ゲート３１２の第１の入力端子に接続されている。デマルチプレクサ３０２の２番の出力端子は論理和ゲート３１４の第１の入力端子に接続されている。デマルチプレクサ３０２の３番の出力端子は論理和ゲート３１６の第１の入力端子に接続されている。デマルチプレクサ３０２の４番の出力端子は論理和ゲート３１８の第１の入力端子に接続されている。デマルチプレクサ３０２の５番の出力端子は論理和ゲート３２０の第１の入力端子に接続されている。デマルチプレクサ３０２の０番、６番、７番の出力端子は結線されていない。
【００３０】
デマルチプレクサ３０４の１番の出力端子は論理和ゲート３１２の第２の入力端子に接続されている。デマルチプレクサ３０４の２番の出力端子は論理和ゲート３１４の第２の入力端子に接続されている。デマルチプレクサ３０４の３番の出力端子は論理和ゲート３１６の第２の入力端子に接続されている。デマルチプレクサ３０４の４番の出力端子は論理和ゲート３１８の第２の入力端子に接続されている。デマルチプレクサ３０４の５番の出力端子は論理和ゲート３２０の第２の入力端子に接続されている。デマルチプレクサ３０４の０番、６番、７番の出力端子は結線されていない。
【００３１】
デマルチプレクサ３０６の１番の出力端子は論理和ゲート３１２の第３の入力端子に接続されている。デマルチプレクサ３０６の２番の出力端子は論理和ゲート３１４の第３の入力端子に接続されている。デマルチプレクサ３０６の３番の出力端子は論理和ゲート３１６の第３の入力端子に接続されている。デマルチプレクサ３０６の４番の出力端子は論理和ゲート３１８の第３の入力端子に接続されている。デマルチプレクサ３０６の５番の出力端子は論理和ゲート３２０の第３の入力端子に接続されている。デマルチプレクサ３０６の０番、６番、７番の出力端子は結線されていない。
【００３２】
デマルチプレクサ３０８の１番の出力端子は論理和ゲート３１２の第４の入力端子に接続されている。デマルチプレクサ３０８の２番の出力端子は論理和ゲート３１４の第４の入力端子に接続されている。デマルチプレクサ３０８の３番の出力端子は論理和ゲート３１６の第４の入力端子に接続されている。デマルチプレクサ３０８の４番の出力端子は論理和ゲート３１８の第４の入力端子に接続されている。デマルチプレクサ３０８の５番の出力端子は論理和ゲート３２０の第４の入力端子に接続されている。デマルチプレクサ３０８の０番、６番、７番の出力端子は結線されていない。
【００３３】
デマルチプレクサ３１０の１番の出力端子は論理和ゲート３１２の第５の入力端子に接続されている。デマルチプレクサ３１０の２番の出力端子は論理和ゲート３１４の第５の入力端子に接続されている。デマルチプレクサ３１０の３番の出力端子は論理和ゲート３１６の第５の入力端子に接続されている。デマルチプレクサ３１０の４番の出力端子は論理和ゲート３１８の第５の入力端子に接続されている。デマルチプレクサ３１０の５番の出力端子は論理和ゲート３２０の第５の入力端子に接続されている。デマルチプレクサ３１０の０番、６番、７番の出力端子は結線されていない。
【００３４】
論理和ゲート３１２の出力端子は論理積ゲート３２２の第１の非反転入力端子に接続されている。論理和ゲート３１４の出力端子は論理積ゲート３２２の第２の反転入力端子及び論理積ゲート３２４の第１の非反転入力端子に接続されている。論理和ゲート３１６の出力端子は論理積ゲート３２２の第３の反転入力端子、論理積ゲート３２４の第２の反転入力端子及び論理積ゲート３２６の第１の非反転入力端子に接続されている。論理和ゲート３１８の出力端子は論理積ゲート３２２の第４の反転入力端子、論理積ゲート３２４の第３の反転入力端子、論理積ゲート３２６の第２の反転入力端子及び論理積ゲート３２８の第１の非反転入力端子に接続されている。
【００３５】
論理和ゲート３２０の出力端子は論理積ゲート３２２の第５の反転入力端子、論理積ゲート３２４の第４の反転入力端子、論理積ゲート３２６の第３の反転入力端子、論理積ゲート３２８の第２の反転入力端子及びベクトルアドレスレジスタ２１２のイネーブル端子に接続されている。論理積ゲート３２２の出力端子は、ベクトルアドレスレジスタ２０２のイネーブル端子に接続されている。論理積ゲート３２４の出力端子は、ベクトルアドレスレジスタ２０４のイネーブル端子に接続されている。論理積ゲート３２６の出力端子は、ベクトルアドレスレジスタ２０８のイネーブル端子に接続されている。論理積ゲート３２８の出力端子は、ベクトルアドレスレジスタ２１０のイネーブル端子に接続されている。
ベクトルアドレスレジスタ２０２の内容は、論理積ゲート３２２の出力信号のレベルに応じて、ベクトルアドレスバス３３０に選択的に出力される。ベクトルアドレスバス３３０のビット幅は、マイクロプロセッサがメモリのアドレス指定に用いているビット数（例えば３２ビット）に対応していることが望ましいが、この他のアドレス指定の手法を用いてもよい。ベクトルアドレスレジスタ２０４の内容は、論理積ゲート３２４の出力信号のレベルに応じて、ベクトルアドレスバス３３０に選択的に出力される。ベクトルアドレスレジスタ２０８の内容は、論理積ゲート３２６の出力信号のレベルに応じて、ベクトルアドレスバス３３０に選択的に出力される。
【００３６】
ベクトルアドレスレジスタ２１０の内容は、論理積ゲート３２８の出力信号のレベルに応じて、ベクトルアドレスバス３３０に選択的に出力される。ベクトルアドレスレジスタ２１２の内容は、論理和ゲート３２０の出力信号のレベルに応じて、ベクトルアドレスバス３３０に選択的に出力される。ベクトルアドレスバス３３０は、マイクロプロセッサ３３２に接続されており、マイクロプロセッサ３３２内のロジックに適切な割込みベクトルアドレスを供給し、マイクロプロセッサ３３２のためのプログラムカウンタを実現する。
【００３７】
回路３００を動作させるために、割込み構成レジスタ１０２〜１１０及びベクトルアドレスレジスタ２０２〜２１２は適切に設定される。割込み構成レジスタ１０２〜１１０及びベクトルアドレスレジスタ２０２〜２１２は、好ましくはマイクロプロセッサ３３２にアクセスされて、例えばスタートアップソフトウェアルーチン等によるマイクロプロセッサを用いる装置の起動時に、初期的に設定される。回路３００が動作可能な状態となると、割込み構成レジスタ１０２〜１１０及びベクトルアドレスレジスタ２０２〜２１２の内容は、ソフトウェアコマンド又はユーザ操作による入力によって変更することができる。これに代えて、割込み構成レジスタ１０２〜１１０及びベクトルアドレスレジスタ２０２〜２１２をマイクロプロセッサ３３２の外部に存在する論理回路により設定するようにしてもよい。
【００３８】
例えば、割込み構成レジスタ１０２〜１１０及びベクトルアドレスレジスタ２０２〜２１２をＦｉｇ．２Ｂに示す具体例のように設定するとする。すなわち、割込み構成レジスタ１０２はビットパターン０１１を格納し、割込み構成レジスタ１０４はビットパターン００１を格納し、割込み構成レジスタ１０６はビットパターン１０１を格納し、割込み構成レジスタ１０８はビットパターン０１０を格納し、割込み構成レジスタ１１０はビットパターン０００を格納する。さらに、ベクトルアドレスレジスタ２０２は、ベクトルアドレスＢ’を格納し、ベクトルアドレスレジスタ２０４は、ベクトルアドレスＤ’を格納し、ベクトルアドレスレジスタ２０８は、ベクトルアドレスＡ’を格納し、ベクトルアドレスレジスタ２１０は、割込み信号がマッピングされていないため特別な情報を格納せず、ベクトルアドレスレジスタ２１２は、ベクトルアドレスＣ’を格納する。
【００３９】
したがって、割込み信号ＩＮＴ．Ａがアクティブになると、デマルチプレクサ３０２の３番の出力端子からハイレベルの出力信号が出力され、これにより論理和ゲート３１６からハイレベルの出力信号が出力される。また、割込み信号ＩＮＴ．Ｂがアクティブになると、デマルチプレクサ３０４の１番の出力端子からハイレベルの出力信号が出力され、これにより論理和ゲート３１２からハイレベルの出力信号が出力される。割込み信号ＩＮＴ．Ｃがアクティブになると、デマルチプレクサ３０６の５番の出力端子からハイレベルの出力信号が出力され、これにより論理和ゲート３２０からハイレベルの出力信号が出力される。割込み信号ＩＮＴ．Ｄがアクティブになると、デマルチプレクサ３０８の２番の出力端子からハイレベルの出力信号が出力され、これにより論理和ゲート３１４からハイレベルの出力信号が出力される。割込み信号ＩＮＴ．Ｅがアクティブになると、デマルチプレクサ３１０の０番の出力端子からハイレベルの出力信号が出力される。この０番の出力端子は結線されていないので、割込み信号ＩＮＴ．Ｅはマスキングされる。このように、デマルチプレクサ３０２〜３１０及び論理和ゲート３１２〜３２０は、マッピング回路として機能し、割込み構成レジスタ１０２〜１１０の内容に応じて、割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｅを論理和ゲート３１２〜３２０に適切にマッピングする。
【００４０】
上述の具体例では、割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｅは、正論理（active high）で、レベルセンシティブ信号（level sensitive signal）である。ここで、割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｅが負論理（active low）である場合、負論理を正論理に変換する変換器を設けるとよい。また、割込み信号ＩＮＴ．Ａ〜ＩＮＴ．Ｅがエッジセンシティブ信号（edge sensitive signal）である場合、ラッチ回路を設けて、エッジセンシティブ信号をレベルセンシティブ信号に変換するとよい。
【００４１】
論理積ゲート３２２〜３２８を設定することによって、論理積ゲート３２２〜３２８は、割込み信号の優先順位を決定する優先順位エンコーディング回路として機能する。ベクトルアドレスレジスタ２１２にマッピングされる割込み信号は最上位の優先順位を有し、ベクトルアドレスレジスタ２０２にマッピングされる割込み信号は、最下位の優先順位を有する。したがって、論理和ゲート３２０の出力端子にマッピングされた割込み信号（この具体例では、割込み信号ＩＮＴ．Ｃ）がアクティブとなった場合、論理和ゲート３２０の出力信号は、論理積ゲート３２２〜３２８により他の割込み信号を阻止（ブロック）し、ベクトルアドレスレジスタ２１２に格納されているベクトルアドレス（この具体例では、ベクトルアドレスＣ’）をベクトルアドレスバス３３０に出力させる。
【００４２】
ここで、１つの論理和ゲート３１２〜３１８の出力のいずれかにマッピングされた１つの割込み信号がアクティブとなり、これより高い優先順位を有する割込み信号がアクティブとなっていない場合、各論理和ゲートは、より低い優先順位を有する割込み信号に関係付けられた論理積ゲートを介して、より低い優先順位を有する割込み信号をブロックし、最も高い優先順位を有する割込み信号に対応するベクトルアドレスがベクトルアドレスバス３３０に出力されるようにする。
【００４３】
最上位の優先順位を有する割込み信号に対応する割込みサービスルーチンが遂行されると、その割込み信号はディスエーブルにされ、次に高い優先順位を有する保留中の割込み信号に関する処理が行われ、このような処理が保留中の割込み信号がなくなるまで繰り返される。保留中の割込み信号がなくなると、プログラムカウンタはリストアされ、マイクロプロセッサはソフトウェアプログラムの実行を再開する。
【００４４】
このように、本発明によれば、複数の割込み構成レジスタ１０２〜１１０の内容及び複数のベクトルアドレスレジスタ２０２〜２１２の内容に基づいて割込み信号を設定することができる。これらの内容は、比較的簡単に変更することができ、したがって、本発明によれば、従来の技術に比べて、割込み処理の設定を容易に行うことができる。
【００４５】
本発明の構造及び動作の原理を明瞭に説明するために、本発明を詳細事項とともに特定の実施の形態を用いて説明した。以上説明した特定の実施の形態及び詳細事項は、ここに添付する請求の範囲を限定するものではない。本発明の思想及び範囲から逸脱することなく、上述の実施の形態を変更できることは、当該技術分野の専門家にとって明らかである。特に、本発明に基づく装置は、様々な異なる手法により実現でき、好適な実施の形態に示した装置は単なる例示的なものであり、限定的なものではないことは当業者にとって明らかである。例えば、Ｆｉｇ．３Ａ及びＦｉｇ．３Ｂに示す回路に対する修正、追加を行うことができる。例えば、割込み信号ＩＮＴ．Ａ、ＩＮＴ．Ｂ、ＩＮＴ．Ｃ、ＩＮＴ．Ｄ、ＩＮＴ．Ｅをラッチし、各割込み信号が立上りエッジ（leading edge）信号、立下りエッジ（trailing edge）信号又はレベルセンシティブ信号を制御する論理回路を設けてもよい。さらに、割込み信号のマスキングを上述以外の手法で実現することもできる。例えば、各デマルチプレクサ３０２，３０４，３０６，３０８，３１０のチップ選択ピン（chip select pin）を選択的に制御してもよい。
【図面の簡単な説明】
【図１】
Ｆｉｇ．１は、本発明に基づく割込み構成レジスタ及びベクトルアドレスレジスタを機能的に説明する図である。
【図２】
Ｆｉｇ．２Ａは、本発明に基づく割込み処理への優先順位の割り当て及びマッピングの具体例を示す図である。
【図３】
Ｆｉｇ．２Ｂは、本発明に基づく割込み処理への優先順位の割り当て及びマッピングの具体例を示す図である。
【図４】
Ｆｉｇ．２Ｃは、本発明に基づく割込み処理への優先順位の割り当て及びマッピングの具体例を示す図である。
【図５】
Ｆｉｇ．２Ｄは、本発明に基づく割込み処理への優先順位の割り当て及びマッピングの具体例を示す図である。
【図６】
Ｆｉｇ．３Ａは、本発明を実現する回路を示す図である。
【図７】
Ｆｉｇ．３Ｂは、Ｆｉｇ．３Ａに続いて本発明を実現する回路を示す図である。