(57)【要約】【課題】、例外要因と例外ベクタとの対応関係の変更に関する柔軟性を向上させたマイクロコンピュータを提供する。【解決手段】マイクロコンピュータ１は、ベクタ候補１〜Ｎを出力可能なベクタ候補出力部１４と、例外要因に応じてベクタ候補１〜Ｎの中の１つを例外ベクタに選択するアドレス選択部１６と、例外ベクタにより指定されるメモリ領域にアクセスすることで例外処理ルーチンを開始する命令実行部１０と、ベクタ候補１〜Ｎのうちでアドレス選択部１６における例外要因との対応付けに使用されるベクタ候補の数と、ベクタ候補１〜Ｎに含まれる少なくとも１つのアドレス候補に対応付けられる例外要因の数を変更する対応関係変更部１７とを有する。【選択図】図１
2008257418.tif 000002
【特許請求の範囲】
【請求項１】
複数のアドレス候補を出力可能なアドレス候補出力部と、
例外要因に応じて前記複数のアドレス候補の中の１つを出力アドレスに選択するアドレス選択部と、
前記出力アドレスにより指定されるメモリ領域にアクセスすることで例外処理ルーチンを開始する命令実行部と、
前記複数のアドレス候補のうちで前記アドレス選択部における前記例外要因との対応付けに使用されるアドレス候補の数と、前記複数のアドレス候補に含まれる少なくとも１つのアドレス候補に対応付けられる前記例外要因の数を変更する対応関係変更部と、
を備えるマイクロコンピュータ。
【請求項２】
前記出力アドレスは例外ベクタであり、前記例外処理ルーチンが記述されたプログラムの先頭位置に分岐するための分岐命令が前記出力アドレスにより指定されるメモリ領域に格納される請求項１に記載のマイクロコンピュータ。
【請求項３】
前記出力アドレスは、前記例外処理ルーチンが記述されたプログラムの先頭位置を示す前記例外ベクタの例外ベクタテーブル内での配置を示す例外ベクタアドレスである請求項１に記載のマイクロコンピュータ。
【請求項４】
前記対応関係変更部による前記例外要因との対応付けに使用されるベクタ候補の数及び前記少なくとも１つのベクタ候補に対応付けられる前記例外要因の数の変更は、前記マイクロコンピュータの動作モードの切り替えに応じて行われる請求項１乃至３のいずれかに記載のマイクロコンピュータ。
【請求項５】
書き換え可能な不揮発性メモリをさらに備え、
前記動作モードの切り替えは、前記命令実行部において前記不揮発性メモリに格納されたプログラムが実行される通常動作モードと前記不揮発性メモリの書き換え処理が行われる縮小動作モードの間の切り替えを含む請求項４に記載のマイクロコンピュータ。
【請求項６】
前記アドレス候補出力部は、前記複数のアドレス候補が１つずつ保持される複数のアドレス記憶部を備え、
前記対応関係変更部は、
複数の前記例外要因と前記複数のアドレス記憶部の間の対応関係を指定する設定情報を保持するための設定情報保持回路と、
前記複数のアドレス記憶部に含まれる少なくとも２つのアドレス記憶部と前記アドレス選択部の間を接続する配線上に設けられ、前記設定情報保持回路に保持される値に応じて、前記少なくとも２つのアドレス記憶部のいずれかに保持されたアドレス候補を前記アドレス選択部に対して選択的に供給するセレクタ回路とを備える請求項１に記載のマイクロコンピュータ。
【請求項７】
複数の例外処理ルーチンの各々の先頭アドレスへ分岐する複数の分岐命令を配列してなる例外ハンドラ・アドレス・テーブルを、マイクロコンピュータがアクセス可能なメモリに配置するステップと、
入力された例外要因に応じて複数のアドレス候補の中から選択された１つのアドレス候補を前記複数の分岐命令の１つを指定する例外ベクタ対応アドレスとして出力するよう構成された前記マイクロコンピュータが備えるアドレス選択部において、前記複数のアドレス候補のうちで前記アドレス選択部における前記例外要因との対応付けに使用されるアドレス候補の数と、前記複数のアドレス候補に含まれる少なくとも１つのアドレス候補に対応付けられる前記例外要因の数を変更するステップと、
を含むマイクロコンピュータの動作設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み・例外事象の発生に応じてプログラムの切り替えを行うマイクロコンピュータに関する。
【背景技術】
【０００２】
マイクロコンピュータは、割り込み又は例外の発生に応じて実行中のプログラムの処理を中断し、割り込み・例外処理を実行するための他のプログラムに分岐するよう設計されている。
【０００３】
本明細書では、マイクロコンピュータに接続された外部デバイスやマイクロコンピュータに内蔵される周辺ハードウェアによって要求されるハードウェア割り込み、アプリケーション・プログラム中に記述されたシステムコール命令やトラップ命令などによって発生するソフトウェア割り込み、並びに、プログラム実行中に発生したゼロ除算、オーバーフロー及びアドレスエラー等の異常な事象の発生によって実行中のプログラムの処理が中断される狭義の例外を総称して、「例外」と呼ぶ。
【０００４】
本明細書における「例外ハンドラ」の用語は、例外処理ルーチンが記述されており、例外発生時にそれまで実行されていたプログラムに替えて実行されるプログラムを意味する。また、「例外ハンドラ・アドレス」の用語は、例外ハンドラの先頭アドレスを意味する。
【０００５】
本明細書における「例外ベクタ」の用語は、例外発生時にどこに分岐すべきかを示す情報を意味する。例外ベクタは、例外ハンドラの先頭アドレス（例外ハンドラ・アドレス）とされる場合がある。また、直接的な例外ベクタは例外ハンドラへ分岐するための分岐命令の先頭アドレスとされ、分岐命令よるジャンプ先に例外ハンドラの本体が配置されている場合もある。
【０００６】
本明細書における「例外ハンドラ・アドレス・テーブル」の用語は、例外ハンドラ・アドレスが配列されたテーブル又は例外ハンドラ・アドレスへの分岐命令が配列されたテーブルを意味する。例外ハンドラ・アドレス・テーブルに配列された要素、すなわち例外ハンドラ・アドレス又は例外ハンドラ・アドレスへの分岐命令は、例外ベクタによって指定される。
【０００７】
なお、例外ハンドラ・アドレスが配列されたテーブルを「例外テーブル」や「ベクタテーブル」と呼ぶ場合や、特許文献１のように、例外ハンドラへの分岐命令が配列されたテーブルを「ジャンプテーブル（jump table）」と呼ぶ場合もあるが、本明細書では、これらのテーブルを総称して「例外ハンドラ・アドレス・テーブル」と呼ぶこととする。
【０００８】
また、本明細書における「例外ベクタ対応アドレス」の用語は、例外ベクタの内容を意味している。つまり、例外ベクタ対応アドレスは、例外ハンドラ・アドレス・テーブルの配列要素を指定するアドレスである。
【０００９】
上述したように、従来のマイクロコンピュータには、例外処理の開始時に参照される例外ハンドラ・アドレス・テーブルとして、例外ハンドラ・アドレスが直接配列されたテーブルを使用するものや、例外ハンドラ・アドレスへの分岐命令が配列されたテーブルを使用するものがある。
【００１０】
例えば、特許文献１には、例外要因に対応して予め定められたメモリ領域に例外ハンドラ（特許文献１では"exception routine"）を直接格納する第１のメモリマップ（例外テーブル：exception table）と、例外要因に対応して定められ、第１のメモリマップより小さいメモリ領域に例外ハンドラ（exception routine）への分岐命令を格納する第２のメモリマップ（ジャンプテーブル：jump table）との間で、メモリマップを切り替える技術が開示されている。
【特許文献１】米国特許第６０７９０１５号明細書
【特許文献２】特開２０００−２６７８６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
マイクロコンピュータの動作モードによって例外ハンドラ・アドレス・テーブルのサイズを変更したいという要求がある。このような要求は、特に、使用可能なメモリサイズの制約が大きい組み込みシステム用のマイクロコンピュータにおいて顕著である。例えば、マイクロコンピュータの起動時やマイクロコンピュータが有するフラッシュＲＯＭの書き換え時などは、使用できるメモリサイズに制約がある一方、発生する可能性のある例外事象の種類（例外要因）は限定される。このため、起動処理やフラッシュＲＯＭ書き換え処理のような保守作業を行うための動作モードのようにマイクロコンピュータが縮小動作モードにあるときは、マイクロコンピュータの通常動作モードに比べて例外ベクタ数を削減することにより例外ハンドラ・アドレス・テーブルを縮小できることが望ましい。
【００１２】
特許文献２には、例外ハンドラ・アドレス・テーブル（特許文献２では"割込みベクタテーブル"）の未使用領域を開放することによって例外ハンドラ・アドレス・テーブルとして使用されるメモリ領域を縮小し、メモリの使用効率を向上させる技術が開示されている。しかしながら、特許文献２に開示された技術は、使用しない例外要因（特許文献２では"割り込み要因"）に対応する例外ベクタ（特許文献２では、"割り込みベクタ"）を用意しなくてもよいという思想、言い換えると使用しない例外要因に対応する例外ハンドラ・アドレス（特許文献２では"割り込みプログラム先頭アドレス"）を保持しなくてよいという思想に基づいている。これにより、未使用の例外要因に対応する例外ハンドラ・アドレスを例外ハンドラ・アドレス・テーブルに保持しないことで例外ハンドラ・アドレス・テーブルのサイズを縮小させている。つまり、特許文献２に開示された技術は、例外ハンドラ・アドレス・テーブルのサイズ縮小が可能であるものの、１つの例外要因に対して１つの例外ベクタが対応付けられる対応関係を変更するものではない。
【００１３】
先のマイコン起動処理の例や、フラッシュＲＯＭの書き換え処理の例では、発生する可能性のある例外要因が限定されているとは言え、予期しない例外処理要求が入力されるという不測の状況に対処する必要がある。このため、縮小動作モードにおいても、マイクロコンピュータの通常動作モードにおいて発生する可能性のある例外要因に対応した例外ハンドラを全く用意しないわけにはいかない。このため、特許文献２に開示された技術では、削減できる例外ベクタに限界がある。つまり、従来のマイクロコンピュータは、例外要因と例外ベクタとの対応関係の変更に関して柔軟性（flexibility）を欠くため、例外ハンドラ・アドレス・テーブルの縮小が望まれる場合にこれを充分に縮小できないという問題がある。
【課題を解決するための手段】
【００１４】
上述した問題点を解決するため、本発明の第１の態様にかかるマイクロコンピュータは、複数のアドレス候補を出力可能なアドレス候補出力部と、例外要因に応じて前記複数のアドレス候補の中の１つを出力アドレスに選択するアドレス選択部と、前記出力アドレスにより指定されるメモリ領域にアクセスすることで例外処理ルーチンを開始する命令実行部と、前記複数のアドレス候補のうちで前記アドレス選択部における前記例外要因との対応付けに使用されるアドレス候補の数と、前記複数のアドレス候補に含まれる少なくとも１つのアドレス候補に対応付けられる前記例外要因の数を変更する対応関係変更部とを有する。なお、前記出力アドレスの一例は、例外ハンドラ・アドレス・テーブルの配列要素を指定する例外ベクタ対応アドレスである。上述の通り、例外ベクタ対応アドレスにより指定される先には、例外ハンドラ・アドレスが配置される場合や、例外ハンドラ・アドレスへの分岐命令が配置される場合がある。
【００１５】
このように、本発明の第１の態様にかかるマイクロコンピュータは、命令実行部に対して出力アドレス（例えば、例外ベクタ対応アドレス）を供給するアドレス選択部において、例外要因との対応付けに使用されるアドレス候補の数と、少なくとも１つのアドレス候補に対応付けられる例外要因の数を変更可能とした。これにより、例えば、マイクロコンピュータの動作モードを変更するに際して、例外ベクタ数を減少させるとともに、使用される例外ベクタに割り当てられる例外要因数を増加させることができる。つまり、受け付け可能な例外要因の数を削減することなく、例外ベクタ数を削減することが可能であるため、例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。このように、本発明によって、例外要因と例外ベクタとの対応関係の変更に関する柔軟性を向上させることができる。
【００１６】
本発明の第２の態様にかかるマイクロコンピュータの動作設定方法は、（１）複数の例外処理ルーチンの各々の先頭アドレスへ分岐する複数の分岐命令を配列してなる例外ハンドラ・アドレス・テーブルを、マイクロコンピュータがアクセス可能なメモリに配置するステップと、（２）入力された例外要因に応じて複数のアドレス候補の中から選択された１つのアドレス候補を前記複数の分岐命令の１つを指定する例外ベクタ対応アドレスとして出力するよう構成された前記マイクロコンピュータが備えるアドレス選択部において、前記複数のアドレス候補のうちで前記アドレス選択部における前記例外要因との対応付けに使用されるアドレス候補の数と、前記複数のアドレス候補に含まれる少なくとも１つのアドレス候補に対応付けられる前記例外要因の数を変更するステップとを含む。
【００１７】
本発明の第２の態様にかかる方法は、マイクロコンピュータの命令実行部に対して例外ベクタを供給するアドレス選択部において、例外要因との対応付けに使用されるアドレス候補の数と、少なくとも１つのアドレス候補に対応付けられる例外要因の数を変更可能である。これにより、マイクロコンピュータが受け付け可能な例外要因の数を削減することなく、例外ベクタ数を削減することが可能であるため、例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。このように、本発明によって、例外要因と例外ベクタとの対応関係の変更に関する柔軟性を向上させることができる。
【発明の効果】
【００１８】
本発明により、例外要因と例外ベクタとの対応関係の変更に関する柔軟性を向上させたマイクロコンピュータを提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００２０】
発明の実施の形態１．
本実施の形態にかかるマイクロコンピュータ１の構成を図１に示す。マイクロコンピュータ１は、例外ハンドラ・アドレスへの分岐命令が配列された例外ハンドラ・アドレス・テーブルを使用するマイクロコンピュータである。例外ハンドラ・アドレス・テーブルは、ＲＯＭ１１又はＲＡＭ１２のメモリ領域に配置される。
【００２１】
図１において、命令実行部１０は、ＲＯＭ１１又はＲＡＭ１２から命令を読み出し、読み出した命令をデコードし、命令に応じた処理、例えば、算術演算及び論理演算等の演算処理や、ＲＯＭ１１又はＲＡＭ１２に対するリードアクセス及びライトアクセスを実行する。
【００２２】
ＲＯＭ１１及びＲＡＭ１２は、メモリバス１３を介して命令実行部１０と接続されている。ＲＯＭ１１及びＲＡＭ１２は、命令実行部１０に読み出されて実行されるプログラムの格納領域及びプログラムによって使用されるデータやプログラムによる演算結果データの格納領域として使用される。また、ＲＯＭ１１又はＲＡＭ１２の一部が、例外ハンドラ本体の先頭アドレス（例外ハンドラ・アドレス）への分岐命令群が配置された例外ハンドラ・アドレス・テーブルとして使用される。
【００２３】
ベクタ候補出力部１４は、ベクタ候補１〜Ｎを出力する回路である。ここで、ベクタ候補１〜Ｎは、例外要因に応じて選択される例外ベクタ対応アドレス（つまり本実施の形態では、例外ハンドラ・アドレス・テーブルの配列要素である分岐命令の格納場所を指定するアドレス）の候補値である。ベクタ候補１〜Ｎは、それぞれアドレス記憶部１４１〜１４Ｎに記憶されている。なお、アドレス記憶部１４１〜１４Ｎは、レジスタ、ＥＥＰＲＯＭ等の半導体メモリ、又は組合せ回路等により具体的に構成すればよい。また、アドレス記憶部１４１〜１４Ｎは、例外ベクタのベースアドレスを格納する１つのベースアドレスレジスタと、ベースアドレスに加算されるオフセット値を格納するＮ個のオフセットレジスタにより構成されてもよい。
【００２４】
例外要因判定部１５は、例外処理要求ＥＸＲ−１〜ＥＸＲ−Ｎを受信し、受け付ける例外処理要求の種別（例外要因）に対応して予め決定されている例外ベクタ番号ＶＮをアドレス選択部１６に出力する。
【００２５】
アドレス選択部１６は、例外要因判定部１５から入力される例外ベクタ番号ＶＮに応じて、ベクタ候補１〜Ｎの中から１つのアドレスを例外ベクタに選択し、例外ベクタを命令実行部１０に供給する。アドレス選択部１６から例外ベクタの供給を受けた命令実行部１０は、例外ベクタにより指定されるメモリ領域（例外ハンドラ・アドレス・テーブル）にアクセスして分岐命令をフェッチし、当該分岐命令を実行することで例外処理ルーチンを開始する。
【００２６】
本実施の形態におけるアドレス選択部１６は、例外ベクタ番号ＶＮとＮ個の入力端子１６１〜１６Ｎとの間の予め定められた対応関係に従って、入力端子１６１〜１６Ｎの中から例外ベクタ番号ＶＮに対応する１つの入力端子を選択するよう構成されている。例えば、例外ベクタ番号ＶＮが"１"を示す場合に入力端子１６１を選択し、例外ベクタ番号ＶＮが"２"を示す場合に入力端子１６２を選択し、以下同様にして、例外ベクタ番号ＶＮが"Ｎ"を示す場合に入力端子１６Ｎを選択する。
【００２７】
ここで、アドレス選択部１６とベクタ候補出力部１４との接続を具体的に説明する。アドレス選択部１６の入力端子１６１〜１６Ｎは、アドレス記憶部１４１〜１４Ｎと直接又は後述する対応関係変更部１７を介して接続されている。図１に示す本実施の形態の構成例では、例外ベクタ候補１〜３を保持するアドレス記憶部１４１〜１４３と入力端子１６１〜１６３との間は、一対一で接続されている。一方、例外ベクタ候補４〜Ｎを保持するアドレス記憶部１４４〜１４Ｎと入力端子１６４〜１６Ｎの間は、対応関係変更部１７を介して接続されており、入力端子１６４〜１６Ｎとの接続先は、対応関係変更部１７によって変更される。
【００２８】
対応関係変更部１７は、縮小設定レジスタ１７０と、Ｎ−３個のセレクタ回路を有している。なお、図１では、Ｎ−３個のセレクタ回路に含まれる２つのセレクタ回路１７１ａ及びｂのみを図示している。セレクタ回路１７１ａは、入力端子１６４の接続先をアドレス記憶部１４３と１４４の間で切り替えることにより、入力端子１６４に対してベクタ候補３又はベクタ候補４を選択的に供給する。同様に、セレクタ回路１７１ｂは、入力端子１６Ｎの接続先をアドレス記憶部１４３と１４Ｎの間で切り替えることにより、入力端子１６Ｎに対してベクタ候補３又はベクタ候補Ｎを選択的に供給する。
【００２９】
セレクタ回路１７１ａ及びｂを含むＮ−３個のセレクタ回路の選択設定は、縮小設定レジスタ１７０にセットされた値により決定される。縮小設定レジスタ１７０は、Ｎ−３ビットのデータを保持可能とし、Ｎ−３個のセレクタ回路のそれぞれの選択状態をそれぞれ１ビットで表せばよい。
【００３０】
続いて、例外ベクタ番号ＶＮに応じたアドレス選択部１６の動作と、縮小設定レジスタ１７０の設定値に応じたセレクタ回路１７１ａの動作について図２（ａ）及び（ｂ）を用いて説明する。図２（ａ）及び（ｂ）は、例外要因判定部１５から出力される例外ベクタ番号ＶＮが"４"であるときにアドレス選択部１６から出力される例外ベクタ対応アドレスを示している。図２（ａ）は、セレクタ回路１７１ａにアドレス記憶部１４４を選択させるように縮小設定レジスタ１７０がセットされた状態を示している。この場合、アドレス選択部１６から出力される例外ベクタ対応アドレスにはベクタ候補４が選択される。なお、セレクタ回路１７１ａにアドレス記憶部１４４を選択させる縮小設定レジスタ１７０の設定は、後述する図２（ｂ）の設定に比べて相対的に多くの例外ベクタ候補が使用される設定である。このため、図２（ａ）では、縮小設定レジスタ１７０の設定状態を"縮小設定ＯＦＦ"と表示している。
【００３１】
一方、図２（ｂ）は、セレクタ回路１７１ａがアドレス記憶部１４３を選択するように縮小設定レジスタ１７０がセットされた状態（縮小設定ＯＮ）を示している。この場合、例外要因判定部１５から出力される例外ベクタ番号ＶＮが"４"であっても、アドレス選択部１６から出力される例外ベクタ対応アドレスにはベクタ候補３が選択される。このように、マイクロコンピュータ１は、縮小設定レジスタ１７０に基づくセレクタ回路１７１ａの動作によって、ベクタ番号ＶＮが３及び４のいずれの場合であっても、例外ベクタ対応アドレスとしてベクタ候補４を選択することができる。つまり、マイクロコンピュータ１は、１つの例外ベクタ候補に対応付けられる例外要因の数を増減させることができる。具体的には、図１に示した構成であれば、ベクタ候補３に対応付けられる例外要因の数を１個からＮ−２個の間で増減することができる。また、このことは、例外要因との対応付けに使用される例外ベクタ候補の数をＮ個から３個の間で変更可能であることを示している。
【００３２】
縮小設定レジスタ１７０の設定切り替えによって、例外ベクタ・アドレス・テーブルのサイズ切り替えを行う具体例について、図３及び４を参照して説明する。図３は、サイズ縮小前の例外ハンドラ・アドレス・テーブル１１１を含むメモリマップを示している。つまり、図３は、縮小設定レジスタ１７０が縮小設定ＯＦＦにセットされている場合のメモリマップである。縮小設定レジスタ１７０の設定が縮小設定ＯＦＦであるとき、アドレス選択部１６は、Ｎ通りの例外ベクタ番号に対応してＮ通りの例外ベクタ対応アドレス（ベクタ候補１〜Ｎ）を出力する。したがって、例外ハンドラ・アドレス・テーブル１１１には、Ｎ個の分岐命令が格納される。
【００３３】
一方、図４は、サイズ縮小後の例外ハンドラ・アドレス・テーブル１２２を含むメモリマップを示している。つまり、図４は、縮小設定レジスタ１７０が縮小設定ＯＮにセットされている場合のメモリマップである。縮小設定レジスタ１７０の設定が縮小設定ＯＮあるとき、アドレス選択部１６は、Ｎ通りの例外ベクタ番号に対応して３通りの例外ベクタ対応アドレス（ベクタ候補１〜３）を出力する。したがって、例外ハンドラ・アドレス・テーブル１２２は、３個の分岐命令を格納できればよい。なお、縮小設定ＯＮであるときの例外ベクタ番号３〜Ｎ（例外要因３〜Ｎ）の例外要因の識別は、例外要因を識別可能な例外コードが保持されている原因レジスタ（不図示）に保持された値を読み出すことで行えばよい。つまり、例外３〜Ｎハンドラは、原因レジスタから例外コードを読み出すことで例外要因３〜Ｎのいずれが発生したかを知り、例外要因に応じた処理ルーチンを実行する。
【００３４】
上述したように、本実施の形態にかかるマイクロコンピュータ１は、命令実行部１０に例外ベクタ対応アドレスを供給するアドレス選択部１６にて例外要因との対応付けに使用されるベクタ候補の数と、少なくとも１つのベクタ候補に対応付けられる例外要因の数とを変更可能とした。これにより、例えば、マイクロコンピュータ１の動作モードを変更するに際して、例外ベクタ数を減少させるとともに、使用される例外ベクタに対応付けられる例外要因数を増加させることができる。つまり、マイクロコンピュータ１は、受け付け可能な例外要因の数を削減することなく、例外ベクタ数のみを削減することが可能であるため、動作モードの変更に際して例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。
【００３５】
このような、マイクロコンピュータ１の適用例として、フラッシュＲＯＭの書き換えを行う場合について説明する。ここでは、ＲＯＭ１１が書き換え可能なフラッシュＲＯＭであるとし、ＲＯＭ１１の書き換えを行う場合を例に説明する。図５（ａ）は、マイクロコンピュータ１が通常動作モードである場合の例外ハンドラ・アドレス・テーブル１１１（例外ハンドラ本体への分岐命令が配置される領域）の配置を示している。なお、通常動作モードとは、ＲＯＭ１１及びＲＡＭ１２に記憶されたシステムプログラム及びアプリケーション・プログラムが命令実行部１０において実行される動作モードである。通常動作モードは、ＲＯＭ１１及びＲＡＭ１２の使用量の制約が後述する縮小動作モードと比べて小さく、例外処理ルーチンの実行についても高速動作が求められる。このため、通常動作モードでは、縮小設定レジスタ１７０が"縮小設定ＯＦＦ"にセットされる。
【００３６】
一方、図５（ｂ）は、マイクロコンピュータ１がＲＯＭ１１書き換えのための縮小動作モードである場合の例外ハンドラ・アドレス・テーブル１２２の配置を示している。ＲＯＭ１１書き換えのための縮小動作モードでは、ＲＡＭ１２に配置された書き換えプログラム１２１を実行することでＲＯＭ１１の書き換えが行われる。このときは、ＲＯＭ１１に配置されていた本来の例外ハンドラ・アドレス・テーブル１１１は利用不可能である。したがって、ＲＯＭ１１書き換え中に発生する例外処理要求に対応するために、一時的な例外ハンドラ・アドレス・テーブル１２２がＲＡＭ１２に配置される。本実施の形態にかかるマイクロコンピュータ１であれば、縮小設定レジスタ１７０を"縮小設定ＯＮ"にセットして例外ベクタ数を削減することにより、ＲＡＭ１２に配置される一時的な例外ハンドラ・アドレス・テーブルのサイズを縮小することができる。
【００３７】
なお、図１には、縮小設定ＯＦＦであるときにＮ個のベクタ候補が例外ベクタとして使用され、縮小設定ＯＮであるときに３〜（Ｎ−１）個のベクタ候補が例外ベクタとして使用される構成を示した。しかしながら、このような構成は一例に過ぎないことはもちろんである。つまり、アドレス記憶部１４１〜１４Ｎとアドレス選択部１６との間の配線上に設けられるセレクタ回路の数を変更することで、マイクロコンピュータ１は、Ｎ個のベクタ候補が例外ベクタとして使用される状態と、任意のＭ個（ただしＭ＜Ｎ）のベクタ候補が例外ベクタとして使用される状態の間で切り替え可能である。
【００３８】
図１に示した構成の変形例を図６及び７に示す。図６の構成では、Ｎ−１個のアドレス記憶部１４２〜１４Ｎとアドレス選択部１６との間にそれぞれセレクタ回路が設けられている。このため、図６の構成を有するマイクロコンピュータ１は、Ｎ個のベクタ候補１〜Ｎが例外ベクタとして使用される状態と、１〜（Ｎ−１）個のベクタ候補が例外ベクタとして使用される状態の間で切り替え可能である。
【００３９】
図７の構成では、偶数番号のベクタ候補２及びベクタ候補４等を保持するアドレス記憶部とアドレス選択部１６との間にそれぞれセレクタ回路が設けられている。図７の構成を有するマイクロコンピュータ１は、Ｎ個のベクタ候補１〜Ｎが例外ベクタとして使用される状態と、Ｎ／２〜（Ｎ−１）個のベクタ候補が例外ベクタとして使用される状態の間で切り替え可能である。
【００４０】
発明の実施の形態２．
本実施の形態にかかるマイクロコンピュータ２の構成を図８に示す。上述した発明の実施の形態１にかかるマイクロコンピュータ１は、ベクタ候補出力部１４とアドレス選択部１６との間の配線上に設けられたセレクタ回路１７１ａ及びｂ等の動作によって、例外要因との対応付けに使用される例外ベクタ数を変更可能とした。このような発明の実施の形態１の構成に代えて、本実施の形態にかかるマイクロコンピュータ２は、例外ベクタ番号ＶＮに応じたアドレス選択部２６の選択動作を決定する選択ロジックを変更することによって、例外要因との対応付けに使用される例外ベクタ数と、１つの例外ベクタに対応付けられる例外要因数の変更を行うものである。
【００４１】
例えば、図２に示したのと同様の動作をマイクロコンピュータ２に行わせるためには、
縮小設定レジスタ１７０が縮小設定ＯＦＦにセットされ、かつ、例外ベクタ番号ＶＮ＝４が入力される場合に、アドレス選択部２６が入力端子１６４を選択するように、アドレス選択部１６の選択ロジックを設定すればよい。また、縮小設定レジスタ１７０が縮小設定ＯＮにセットされ、かつ、例外ベクタ番号ＶＮ＝４が入力される場合に、アドレス選択部２６が入力端子１６３を選択するように、アドレス選択部１６の選択ロジックを設定すればよい。
【００４２】
このように構成されたマイクロコンピュータ２は、命令実行部１０に例外ベクタを供給するアドレス選択部２６において、例外要因との対応付けに使用されるベクタ候補の数と、少なくとも１つのベクタ候補に割り当てられる例外要因の数とを変更可能である。これにより、例えば、マイクロコンピュータ２の動作モードを変更するに際して例外ベクタ数を削減するとともに、使用される例外ベクタに対応付けられる例外要因数を増加させることができる。つまり、マイクロコンピュータ２は、例外要因の数を削減することなく、例外ベクタ数のみを削減することが可能であるため、例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。
【００４３】
発明の実施の形態３．
本実施の形態にかかるマイクロコンピュータ３の構成を図９に示す。マイクロコンピュータ３は、発明の実施の形態１にかかるマイクロコンピュータ１と同様の構成を有し、さらに、アドレス記憶部１４１〜１４Ｎに保持されるベクタ候補１〜Ｎの値を変更可能としている。
【００４４】
ベクタ候補出力部３４は、命令実行部３０から候補変更要求が発行されると、これに続いて、ベクタ候補１〜Ｎのいずれかを指定する候補番号、及び、変更後のベクタ候補の値（アドレス）を示す候補アドレスを受信し、候補番号で指定されたベクタ候補が保持されているアドレス記憶部を候補アドレスによって書き換える。なお、ベクタ候補出力部３４が有するアドレス記憶部１４１〜１４Ｎは、レジスタにより構成すればよい。また、アドレス記憶部１４１〜１４Ｎは、例外ベクタのベースアドレスを格納する１つのベースアドレスレジスタと、ベースアドレスに加算されるオフセット値を格納するＮ個のオフセットレジスタにより構成してもよい。
【００４５】
本実施の形態にかかるマイクロコンピュータ３は、ベクタ候補１〜Ｎの書き換えによって、例外ハンドラ・アドレス・テーブルの配置を移動することができる。さらに、ベクタ候補１〜Ｎを例外ハンドラの先頭アドレスによって書き換えることにより、例外ハンドラへの分岐命令を保持する例外ハンドラ・アドレス・テーブルが不要となるため、例外ハンドラ・アドレス・テーブルのさらなる縮小が可能である。
【００４６】
発明の実施の形態４．
上述した発明の実施の形態１にかかるマイクロコンピュータ１は、例外ハンドラ・アドレスへの分岐命令が配列された例外ハンドラ・アドレス・テーブルを使用するマイクロコンピュータであり、例外ベクタによって指定されるＲＯＭ１１又はＲＡＭ１２のメモリ領域に例外ハンドラ本体への分岐命令が保持されるものである。これに対して、本実施の形態にかかるマイクロコンピュータ４は、例外ハンドラ・アドレスが直接配列された例外ハンドラ・アドレス・テーブルを使用するマイクロコンピュータである。例外ハンドラ・アドレス・テーブルは、マイクロコンピュータ１と同様に、ＲＯＭ１１又はＲＡＭ１２のメモリ領域に配置される。
【００４７】
図１０において、命令実行部４０は、ＲＯＭ１１又はＲＡＭ１２から命令を読み出し、読み出した命令をデコードし、命令に応じた処理、例えば、算術演算及び論理演算等の演算処理や、ＲＯＭ１１又はＲＡＭ１２に対するリードアクセス及びライトアクセスを実行する。また、命令実行部４０は、アドレス選択部１６から例外ベクタ対応アドレス（本実施の形態では、例外ハンドラ・アドレス・テーブルの配列要素である例外ハンドラ・アドレスの格納場所を指定するアドレス）の供給を受け、例外ベクタ対応アドレスにより指定されるメモリ領域（例外ハンドラ・アドレス・テーブル）にアクセスして例外ハンドラ・アドレスを取得し、取得した例外ハンドラ・アドレスにジャンプすることで例外処理ルーチンを開始する。
【００４８】
なお、図８に示されたその他の構成要素は、発明の実施の形態１にかかるマイクロコンピュータ１が有する構成要素と同様であるから、これらの構成要素については図１と同一の符号を付して詳細な説明を省略する。
【００４９】
マイクロコンピュータ４における縮小設定レジスタ１７０の設定切り替えによって、例外ベクタ・アドレス・テーブルのサイズ切り替えを行う具体例についえ、図１１及び１２を参照して説明する。図１１は、サイズ縮小前の例外ハンドラ・アドレス・テーブル４１１を含むメモリマップを示している。つまり、図１１は、縮小設定レジスタ１７０が縮小設定ＯＦＦにセットされている場合のメモリマップである。縮小設定レジスタ１７０の設定が縮小設定ＯＦＦであるとき、アドレス選択部１６は、Ｎ通りの例外ベクタ番号に対応してＮ通りの例外ベクタ対応アドレス（ベクタ候補１〜Ｎ）を出力する。したがって、例外ハンドラ・アドレス・テーブル４１１には、Ｎ個の例外ハンドラ・アドレスが格納される。
【００５０】
一方、図１２は、サイズ縮小後の例外ハンドラ・アドレス・テーブル４２２を含むメモリマップを示している。つまり、図１２は、縮小設定レジスタ１７０が縮小設定ＯＮにセットされている場合のメモリマップである。縮小設定レジスタ１７０の設定が縮小設定ＯＮあるとき、アドレス選択部１６は、Ｎ通りの例外ベクタ番号に対応して３通りの例外ベクタ対応アドレス（ベクタ候補１〜３）を出力する。したがって、例外ハンドラ・アドレス・テーブル４２２は、３個の例外ハンドラ・アドレスを格納できればよい。
【００５１】
このように構成されたマイクロコンピュータ４は、命令実行部４０に例外ベクタ対応アドレスを供給するアドレス選択部１６において例外要因との対応付けに使用されるベクタ候補の数と、少なくとも１つのベクタ候補に対応付けられる例外要因の数とを変更可能とした。各々のベクタ候補は、例外ハンドラ・アドレス・テーブルに保持される例外ハンドラ・アドレスに一対一に対応する。言い換えると、ベクタ候補の数は、例外ハンドラ・アドレス・テーブルに保持される例外ハンドラ・アドレスの数に対応する。したがって、例えば、マイクロコンピュータ４の動作モードを変更するに際して例外ベクタ数を削減するとともに、使用される例外ベクタに対応付けられる例外要因数を増加させることができる。つまり、マイクロコンピュータ４は、受け付け可能な例外要因の数を削減することなく、例外ベクタ数を削減することが可能であるため、例外ハンドラ・アドレス・テーブルの縮小を充分に行うことができる。
【００５２】
なお、上述した発明の実施の形態１乃至４にかかるマイクロコンピュータ１乃至４の物理的な実装形態について特に制約はない。つまり、図１並びに図４乃至８に示された各構成要素は、単一のＩＣチップにパッケージされてもよいし、複数のＩＣチップに分割されてもよい。
【００５３】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施の形態１にかかるマイクロコンピュータの構成図である。
【図２】本発明の実施の形態１にかかるマイクロコンピュータの動作を説明するための図である。
【図３】本発明の実施の形態１にかかるマイクロコンピュータによる例外ハンドラ・アドレス・テーブルのサイズ切り替えを説明するための図である。
【図４】本発明の実施の形態１にかかるマイクロコンピュータによる例外ハンドラ・アドレス・テーブルのサイズ切り替えを説明するための図である。
【図５】本発明の実施の形態１にかかるマイクロコンピュータの動作を説明するための図である。
【図６】本発明の実施の形態１にかかるマイクロコンピュータの変形例である。
【図７】本発明の実施の形態１にかかるマイクロコンピュータの変形例である。
【図８】本発明の実施の形態２にかかるマイクロコンピュータの構成図である。
【図９】本発明の実施の形態３にかかるマイクロコンピュータの構成図である。
【図１０】本発明の実施の形態４にかかるマイクロコンピュータの構成図である。
【図１１】本発明の実施の形態４にかかるマイクロコンピュータによる例外ハンドラ・アドレス・テーブルのサイズ切り替えを説明するための図である。
【図１２】本発明の実施の形態４にかかるマイクロコンピュータによる例外ハンドラ・アドレス・テーブルのサイズ切り替えを説明するための図である。
【符号の説明】
【００５５】
１，２，３，４  マイクロコンピュータ
１０，３０，４０  命令実行部
１１  ＲＯＭ（Read Only Memory）
１２  ＲＡＭ（Random Access Memory）
１３  メモリバス
１４，３４  ベクタ候補出力部
１５  例外要因判定部
１６，２６  アドレス選択部
１７  対応関係変更部
１４１〜１４Ｎ，４４１〜４４Ｎ  アドレス記憶部
１７１，１７１ａ，１７１ｂ  セレクタ回路
【図１】
2008257418.tif 000003
【図２】
2008257418.tif 000004
【図３】
2008257418.tif 000005
【図４】
2008257418.tif 000006
【図５】
2008257418.tif 000007
【図６】
2008257418.tif 000008
【図７】
2008257418.tif 000009
【図８】
2008257418.tif 000010
【図９】
2008257418.tif 000011
【図１０】
2008257418.tif 000012
【図１１】
2008257418.tif 000013
【図１２】
2008257418.tif 000014