(57)【特許請求の範囲】
【請求項１】
割込み処理，例外処理のための、第１のルーチンプログラムを記憶する、メモリ上の分岐先アドレスを格納する第１のベクタ領域と、
前記第１のベクタ領域とは別に、第２のルーチンプログラムを記憶する、メモリ上の分岐先アドレスを格納する第２のベクタ領域と、
前記第１のベクタ領域における分岐先アドレスの格納位置と、前記第２のベクタ領域における分岐先アドレスの格納位置との、位置差データを格納するレジスタ領域と、
前記第１のベクタ領域に格納された分岐先アドレス、もしくは、前記第１のベクタ領域に格納された分岐先アドレスの格納位置と前記位置差データとから求められる、前記第２のベクタ領域に格納された分岐先アドレスにもとづいて、前記割込み処理，例外処理を実施する演算手段と
を具備したことを特徴とする集積回路装置。
【請求項２】
前記第１のルーチンプログラムは複数のサブルーチンプログラムを有しており、前記第１のベクタ領域は、複数のサブルーチンプログラムにそれぞれ対応する、複数の分岐先アドレスを格納するものであることを特徴とする請求項１に記載の集積回路装置。
【請求項３】
前記第１のベクタ領域は、ＲＯＭに設けられることを特徴とする請求項２に記載の集積回路装置。
【請求項４】
前記第２のルーチンプログラムは複数のサブルーチンプログラムを有してなり、前記第２のベクタ領域は、複数のサブルーチンプログラムにそれぞれ対応する、複数の分岐先アドレスを格納するものであることを特徴とする請求項１に記載の集積回路装置。
【請求項５】
前記第２のベクタ領域は、前記第１のルーチンプログラムにおける複数のサブルーチンプログラムにそれぞれ対応する、複数の分岐先アドレスを格納するものであることを特徴とする請求項４に記載の集積回路装置。
【請求項６】
前記第２のルーチンプログラムは、前記第１のルーチンプログラムと同じサブルーチンプログラムを有してなることを特徴とする請求項４に記載の集積回路装置。
【請求項７】
前記第２のルーチンプログラムは、少なくとも、その一部のサブルーチンプログラムが、前記第１のルーチンプログラムにおけるサブルーチンプログラムと異なることを特徴とする請求項４に記載の集積回路装置。
【請求項８】
前記第２のルーチンプログラムは、前記第１のルーチンプログラムと異なるサブルーチンプログラムのみを有してなることを特徴とする請求項４に記載の集積回路装置。
【請求項９】
前記第２のベクタ領域は、ＲＡＭに設けられることを特徴とする請求項４に記載の集積回路装置。
【請求項１０】
前記第２のベクタ領域は、ＲＯＭに設けられることを特徴とする請求項４に記載の集積回路装置。
【請求項１１】
前記ＲＯＭには、複数の第２のベクタ領域が設けられることを特徴とする請求項１０に記載の集積回路装置。
【請求項１２】
前記第２のベクタ領域の１つを特定する特定手段を、さらに具備することを特徴とする請求項１または１１に記載の集積回路装置。
【請求項１３】
前記分岐先アドレスの、共通上位アドレスを格納するための上位アドレスレジスタを、さらに具備することを特徴とする請求項１に記載の集積回路装置。
【請求項１４】
前記演算手段は、前記第１，第２のベクタ領域のいずれか１つを選択する選択手段をさらに具備し、
前記選択手段に対する指示は、レジスタを用いて行われることを特徴とする請求項１に記載の集積回路装置。
【請求項１５】
前記演算手段は、前記第１，第２のベクタ領域のいずれか１つを選択する選択手段をさらに具備し、
前記選択手段に対する指示は、装置の外部入力端子を用いて行われることを特徴とする請求項１に記載の集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、集積回路装置に関するもので、特に、割込み処理，例外処理のための処理ルーチンの、先頭アドレスを格納するベクタテーブルを保有するマイクロコントローラに関する。
【０００２】
【従来の技術】
従来、汎用のマイクロコントローラは、通常の加算，減算，分岐命令処理の他、割込み処理，例外処理をサポートしている。ここで、割込み処理とは、ＵＡＲＴ（Universal Asynchronous Receiver/Transmitter）の送信完了など、周辺メガセルでの処理の終了をＣＰＵ（Central Processing Unit）に認知させる手段である。一方、例外処理とは、ゼロ除算などの発生をＣＰＵに認知させる手段である。また、ここで言う割込み処理，例外処理とは、前述の処理をプログラムによって認知し、その処理をＣＰＵが実施することを意味する。
【０００３】
図１０は、従来（既存）のマイクロコントローラの概略構成を示す図である。
【０００４】
該マイクロコントローラは、たとえば、ＣＰＵ１０１、ＲＡＭ（内蔵ＲＡＭ領域）１０２、ＲＯＭ（内蔵ＲＯＭ領域）１０３の他、ＣＰＵ１０１に対して割込みを要求する周辺メガセル（この場合、ＵＡＲＴ１０４ａ、ＳＩＯ（Serial Input Output）１０４ｂ、タイマ１０４ｃ）、および、ＣＰＵ１０１に割込みの発生を指示する割込み制御回路１０５が、アドレスバス１０６とデータバス１０７とを介して相互に接続されてなる構成とされている。また、上記割込み制御回路１０５は、周辺メガセルよりの割込み要求の優先度などを判断して、その内容を保持するための内部レジスタ（図示していない）を有し、割込みを要求したメガセルとその割込みの種類とを、ＣＰＵ１０１に指示する機能を備えている。
【０００５】
なお、ここでは単にＲＯＭ１０３としたが、一般的には、工場製造時に作成されるマスクＲＯＭを用いる場合がほとんどである。また、リード／ライト信号については、省略している。
【０００６】
マイクロコントローラ用の制御プログラムは、通常、サブルーチンと呼ばれる小ブロック単位の処理プログラムによって構成されるのが一般的である。サブルーチンプログラムは、通常、割込み処理，例外処理によって、その起動，解除が制御される。サブルーチンプログラムの先頭アドレスは、たとえば図１１に示すように、ベクタテーブルとして使用されるベクタ領域（この場合、ＦＦＥ０Ｈ番地〜ＦＦＦＦＨ番地）に格納される。
【０００７】
図１２は、上記マイクロコントローラにおけるベクタテーブルを一覧にして示すものである。ここでは、１６種類の割込み処理，例外処理を有してなる場合を例に説明する。
【０００８】
該ベクタテーブルは、たとえば、割込み要因（割込みの種類）ごとに用意されるサブルーチンプログラムの、メモリ（この場合、内蔵ＲＯＭ領域の８０００Ｈ番地〜ＦＦＤＦＨ番地）上における先頭アドレス（ベクタアドレス）を、それぞれ記憶するものである。
【０００９】
また、各ベクタテーブルは、それぞれのベクタアドレスに応じて、始点（たとえば、メモリアドレスマップ上のアドレスの、該ベクタ領域における最も若いベースアドレス（この場合、ＦＦＥ０Ｈ番地））からの順番が割り付けられている。
【００１０】
この場合、たとえば図１３に示すように、個々のベクタテーブルのサイズは１６ビットとなっている。そして、若いアドレス（偶数アドレス）に１６ビットの上位アドレスの８ビットが、そのアドレスに続く、次のアドレス（奇数アドレス）に下位アドレスの８ビットが格納されるようになっている。
【００１１】
次に、上記した構成における、マイクロコントローラの従来の動作について説明する。なお、ここでは、ＵＡＲＴ１０４ａから送信完了の割込み要求が発生した場合を例に説明する。
【００１２】
まず、ＵＡＲＴ１０４ａからの送信完了の割込み要求は、割込み制御回路１０５に送られる。すると、ＣＰＵ１０１に対して、割込み制御回路１０５から割込み発生信号（１ビット）が出力される。また、割込み制御回路１０５では、ＵＡＲＴ１０４ａからの送信完了の割込み要求を判断して、その内容（割込み要因情報）を内部レジスタに保持する。
【００１３】
一方、割込み発生信号を受け取ったＣＰＵ１０１は、バス１０６，１０７を介して、上記割込み制御回路１０５の内部レジスタの内容を読み取って、メガセルのいずれかから、何の割込み要求があったかを認知する。また、その要求に応じた割込み要因に対応するベクタアドレス（この場合、ＦＦＥＡＨ番地）を、ＲＯＭ１０３からアドレスバス１０６上に出力させることにより、ベクタテーブル上より読み出す。
【００１４】
これらの一連の処理は、ＣＰＵ１０１内のマイクロプログラムまたは図示していないハードワイヤード回路などによって行われる。
【００１５】
こうして、上記ベクタアドレスにしたがって、ＣＰＵ１０１が、ＲＯＭ１０３内の対応する番地のサブルーチンプログラムを実行しにいくことにより、ＣＰＵ１０１の制御が分岐する。
【００１６】
ところで、従来のマイクロコントローラにおいては、ベクタ領域の位置（アドレス）が固定されており、また、その内容を変更することは不可能であった。特に、ベクタテーブルがマスクＲＯＭを用いて形成されている場合、内容を変更するということは、マスクＲＯＭを製造し直すことになる。その結果、製造コストや効率の点で問題があった。
【００１７】
また、ベクタテーブルの形成に、ＥＰＲＯＭ（Erasable and Programmable Read Only Memory）などのＯＴＰ（One Time‐ＰＲＯＭ）を利用したものもあるが、書き込みによる内容の変更は行えなかった。
【００１８】
これに対し、ＲＡＭ１０２を利用することにより、ベクタテーブルの内容は変更できる。すなわち、内蔵ＲＡＭ領域内に新たにベクタ領域を設けて、そこをベクタテーブルとして使用する。たとえば、マスクＲＯＭにかかれた固定のベクタテーブルを、内蔵ＲＡＭ領域に設けられたベクタ領域内に移す。こうすることによって、マスクＲＯＭを製造し直したりすることなく、ＲＡＭ１０２上において、ベクタテーブルの内容の変更が可能となる。
【００１９】
しかしながら、ＲＡＭ１０２を利用する場合においても、マスクＲＯＭにおけるベクタ領域の位置を変えることはできない。たとえば、汎用のマイクロコントローラの場合、制御上、ベクタ領域の位置が固定されている。そのため、内蔵ＲＡＭ領域内に新規に設けられたベクタテーブルを利用するためには、複雑なプログラムが必要であった。
【００２０】
【発明が解決しようとする課題】
上記したように、従来においては、ＲＡＭを利用するようにした場合にはベクタテーブルの内容を変更できるようになるものの、ベクタ領域の位置を変えることはできないため、複雑なプログラムが必要になるという不具合があった。
【００２１】
そこで、この発明は、複雑なプログラムを必要とすることなく、割込み処理，例外処理が発生した際の処理を高速化でき、汎用性をより向上させることが可能な集積回路装置を提供することを目的としている。
【００２３】
【課題を解決するための手段】
本願発明の一態様によれば、割込み処理，例外処理のための、第１のルーチンプログラムを記憶する、メモリ上の分岐先アドレスを格納する第１のベクタ領域と、前記第１のベクタ領域とは別に、第２のルーチンプログラムを記憶する、メモリ上の分岐先アドレスを格納する第２のベクタ領域と、前記第１のベクタ領域における分岐先アドレスの格納位置と、前記第２のベクタ領域における分岐先アドレスの格納位置との、位置差データを格納するレジスタ領域と、前記第１のベクタ領域に格納された分岐先アドレス、もしくは、前記第１のベクタ領域に格納された分岐先アドレスの格納位置と前記位置差データとから求められる、前記第２のベクタ領域に格納された分岐先アドレスにもとづいて、前記割込み処理，例外処理を実施する演算手段とを具備したことを特徴とする集積回路装置が提供される。
【００２４】
上記した構成によれば、複雑なプログラムによらず、ベクタ領域を簡単に切替えることが可能となる。これにより、割込み処理，例外処理が発生した際の処理が煩雑化するのを改善できるようになるものである。
【００２５】
【発明の実施の形態】
以下、この発明の実施の形態について図面を参照して説明する。
【００２６】
（第一の実施形態）
図１，図２は、本発明の第一の実施形態を示すものである。なお、図１は汎用マイクロコントローラ（図１０参照）の概略を示すものであり、図２はメモリアドレスマップの例を示すものである。また、ここでは、ＲＡＭ（内蔵ＲＡＭ領域の００４０Ｈ番地〜０２３ＦＨ番地）１０２内に新規に設けられたベクタテーブルを利用して、メガセルからの割込み処理，例外処理（図１２参照）を実施するようにした場合を例に説明する。
【００２７】
図１において、固定のベクタテーブル（第１のベクタ領域）１１は、たとえば図２に示すように、本来のベクタ領域（この場合、ＦＦＥ０Ｈ番地〜ＦＦＦＦＨ番地）に、割込み処理，例外処理のための、各種のサブルーチンプログラム（第１のルーチンプログラム）を記憶する、メモリ（内蔵ＲＯＭ領域）１０３上の先頭アドレス（分岐先アドレス）を、それぞれベクタアドレスとして格納するものである。
【００２８】
この場合、固定のベクタテーブル１１は、それぞれのサイズが、たとえば図１３に示したように、１６ビット（上位アドレス８ビット、下位アドレス８ビット）となっている。
【００２９】
新規のベクタテーブル（第２のベクタ領域）１２は、たとえば図２に示すように、内蔵ＲＡＭ領域を用いて構成されるベクタ領域（この場合、０２２０Ｈ番地〜０２３ＦＨ番地）に、割込み処理，例外処理のための、各種のサブルーチンプログラム（第２のルーチンプログラム）を記憶する、メモリ１０３上の先頭アドレスを、それぞれベクタアドレスとして格納するものである。
【００３０】
この場合、第２のルーチンプログラムは、上記第１のルーチンプログラムにおけるサブルーチンプログラムのすべてもしくはその一部が異なるものであっても良いし、上記第１のルーチンプログラムそのものであっても良い。
【００３１】
また、新規のベクタテーブル１２は、それぞれのサイズが、たとえば図１３に示したように、１６ビット（上位アドレス８ビット、下位アドレス８ビット）となっている。
【００３２】
ベクタテーブル差格納レジスタ部１３は、たとえば図２に示すように、レジスタ領域（この場合、００００Ｈ番地〜００３ＦＨ番地）内の特定アドレス位置に設けられ、固定のベクタテーブル１１における各ベクタアドレスと、新規のベクタテーブル１２における各ベクタアドレスとの、メモリアドレスマップ上のアドレス差（位置差データ）を格納するものである。
【００３３】
減算部１４は、固定のベクタテーブル１１上のベクタアドレスと上記ベクタテーブル差格納レジスタ部１３からの位置差データとを入力とし、その差から、固定のベクタテーブル１１上のベクタアドレスに対応する、新規のベクタテーブル１２上におけるベクタアドレスを算出するものである。
【００３４】
セレクタ部（選択手段）１５は、ベクタテーブル選択指示信号にしたがって、固定のベクタテーブル１１上のベクタアドレス、もしくは、上記減算部１４での算出結果にもとづく、新規のベクタテーブル１２上のベクタアドレスのいずれか一方を、最終ベクタアドレスとして選択するものである。
【００３５】
なお、上記ベクタテーブル選択指示信号は、たとえば、レジスタ領域内の特定アドレス位置に設けられたレジスタ、あるいは、特定の外部入力端子を用いて制御される。
【００３６】
処理部（演算手段）１６は、たとえば、上記セレクタ部１５によって選択された最終ベクタアドレスにもとづいて、内蔵ＲＯＭ領域内の対応する番地のサブルーチンプログラムを実行することにより、所定の割込み処理，例外処理を実施するものである。
【００３７】
なお、ここで説明した一連の動作は、ＣＰＵ１０１において、ソフト的に処理されるようになっている。
【００３８】
次に、上記した構成における、マイクロコントローラ（ＣＰＵ１０１）の動作について説明する。なお、ここでは、ＵＡＲＴ１０４ａから送信完了の割込み要求が発生した場合を例に説明する。
【００３９】
たとえば、ＵＡＲＴ１０４ａからの送信完了の割込み要求により、ＣＰＵ１０１に対して、割込み制御回路１０５から割込み発生信号が出力されたとする。
【００４０】
すると、ＣＰＵ１０１は、バス１０６，１０７を介して、上記割込み制御回路１０５の内部レジスタの内容（割込み要因情報）を読み取るためのリード要求信号を出力する。そして、そのリード要求に対する上記内部レジスタの内容から、ＣＰＵ１０１は、ＵＡＲＴ１０４ａからの送信完了の割込み要求の発生を認知する。
【００４１】
また、ＣＰＵ１０１では、たとえば、固定のベクタテーブル１１上におけるＵＡＲＴ割込みのベクタアドレス（ＦＦＥＡＨ番地）と、上記ベクタテーブル差格納レジスタ部１３からの出力とにもとづいて、上記減算部１４により、該ＵＡＲＴ割込み処理のための、新規のベクタテーブル１２上のベクタアドレス（ＦＦＥＡＨ番地＋位置差データ）を求める。
【００４２】
そして、上記割込み要因に対応するベクタアドレス（ＦＦＥＡＨ番地＋位置差データ）を、ベクタテーブル選択指示信号にもとづいて、上記セレクタ部１５により選択し、それを最終ベクタアドレスとする。
【００４３】
ここで、新規のベクタテーブル１２の選択を指示する場合、まず、マイクロコントローラの電源投入あるいはシステムリセット（単にリセット）により、たとえば、マスクＲＯＭを用いて構成された固定のベクタテーブル１１上のベクタアドレスを利用して、従来通りのリセット処理が行われることにより、マイクロコントローラに起動がかけられる（所定プログラムの実行）。この状態においては、ベクタテーブル選択指示信号は、固定のベクタテーブル１１を選択するように制御されている。
【００４４】
しかる後、上記ベクタテーブル選択指示信号を、レジスタあるいは特定の外部入力端子を用いて制御することによって、新規のベクタテーブル１２の選択が指示される。
【００４５】
その後、処理部１６によって、上記セレクタ部１５により選択された最終ベクタアドレスに対応する、内蔵ＲＯＭ領域内のサブルーチンプログラムが実行されることにより、所定のＵＡＲＴ割込み処理が実施される。
【００４６】
なお、マイクロコントローラにおけるデータバス１０７が８ビットの場合、ベクタアドレス（１６ビット）は２回に分けて出力される。通常、その順序は上位アドレス（上位８ビット）、下位アドレス（下位８ビット）となるが、その逆であっても構わない。
【００４７】
このように、従来からの固定のベクタテーブル１１と、それを移動させることなどにより発生される新規のベクタテーブル１２とを、複雑なプログラムを用いることなしに、ベクタテーブル選択指示信号に応じて簡単に切替えることができるようにしている。したがって、より高速な処理が可能となるなど、マイクロコントローラの使用効率を格段に向上できるようになる。
【００４８】
特に、割込み処理，例外処理が発生した際の分岐先（サブルーチンプログラム）を、ベクタテーブル１１，１２を切替えることによって、効率よく選択できるようになる。
【００４９】
しかも、図２に示したように、新規のベクタテーブル１２を内蔵ＲＡＭ領域内に設けるようにした場合には、ベクタテーブル１２の内容を自由に書き換えることができる。また、ベクタテーブル１２は、必要に応じて、内蔵ＲＡＭ領域内の任意のアドレス位置に設けることが可能である。
【００５０】
なお、新規のベクタテーブル１２は、ＲＡＭ１０２に限らず、ＥＰＲＯＭやＥＥＰＲＯＭ内に設けるようにした場合においても、その内容を自由に書き換えることが可能である。
【００５１】
また、新規のベクタテーブル１２は１つに限らず、複数のベクタテーブルを設けるようにすることも可能である。
【００５２】
（第二の実施形態）
図３，図４は、本発明の第二の実施形態を示すものである。なお、図３は汎用マイクロコントローラ（図１０参照）の概略を示すものであり、図４はメモリアドレスマップの例を示すものである。また、ここでは、ＲＯＭ（内蔵ＲＯＭ領域）１０３内にあらかじめ複数のベクタテーブルを設けるようにした場合を例に説明する。ただし、全体構成については図１，図２とほぼ同じなので、同一部分には同一符号を付して、その詳しい説明は省略する。
【００５３】
この場合、たとえば図４に示すように、固定のベクタテーブル１１とは別に、３種類の新規のベクタテーブル（ベクタ領域（新規１）〜（新規３））１２ａ，１２ｂ，１２ｃが、ＲＯＭ１０３内にあらかじめ設けられている。
【００５４】
また、ＣＰＵ１０１は、たとえば図１の構成に加え、固定のベクタテーブル１１とのアドレス差（位置差データ）を、３種類の新規のベクタテーブル１２ａ，１２ｂ，１２ｃごとに格納するためのベクタテーブル差格納レジスタ部１３ａ，１３ｂ，１３ｃ、上記ベクタテーブル差格納レジスタ部１３ａ，１３ｂ，１３ｃの１つを選択するための、特定手段としての、ベクタテーブル差格納レジスタ切替えレジスタ部１９およびセレクタ部２０を備えている（図３参照）。
【００５５】
このような構成によれば、選択するベクタテーブル１２ａ，１２ｂ，１２ｃに応じて分岐先を臨機応変に切替えることにより、プログラム効率を格段に向上させることが可能になる。
【００５６】
なお、新規のベクタテーブル１２ａ，１２ｂ，１２ｃは３種類に限ったものではなく、２種類以上であれば良い。
【００５７】
また、ベクタテーブル差格納レジスタ部１３ａ，１３ｂ，１３ｃは、必ずしも、新規のベクタテーブル１２ａ，１２ｂ，１２ｃの個数に揃える必要はない。つまり、利用するベクタテーブルの分だけ用意すれば良い。
【００５８】
さらに、新規のベクタテーブル１２ａ，１２ｂ，１２ｃは、そのすべてをＲＯＭ１０３に設ける必要はなく、その一部、または、すべてをＲＡＭ１０２に設けることもできる。
【００５９】
（第三の実施形態）
図５〜図８は、本発明の第三の実施形態を示すものである。なお、ここでは、すでに述べたように、１６種類の割込み処理，例外処理を有しているマイクロコントローラ（図１０，図１２参照）を例に説明する。
【００６０】
実際にマイクロコントローラを使用する場合、すべての割込み処理，例外処理を含むような制御プログラムを作成することはほとんどない。そのため、この実施形態では、１６種類の割込み処理，例外処理のうち、４種類の割込み処理，例外処理を実施する場合について説明する。この場合、１２種類の割込み処理，例外処理は実施しない。しかし、上述の第１，第２の実施形態においては、実施しない割込み処理，例外処理であっても、ベクタ領域は確保しておく必要があった。そこで、実施しない割込み処理，例外処理をベクタテーブル上より排除して、ベクタ領域のサイズを削減するようにしたのが、本実施形態である。
【００６１】
図５において、発生割込み種別判断部３１は、割込み制御回路１０５からの割込み発生信号（数ビット）にもとづいて、本来、マイクロコントローラが有する１６種類の割込み処理，例外処理のうち、いずれの割込み処理，例外処理が発生したかを認知するものである。
【００６２】
ベクタテーブル利用指示レジスタ部３２は、たとえば図６に示すように、内蔵ＲＡＭ領域内に設けられた新規のベクタテーブル１２’を利用するための指示を格納するものである。このベクタテーブル利用指示レジスタ部３２は、レジスタ領域（この場合、００００Ｈ番地〜００３ＦＨ番地）内の特定アドレス位置に設けられる。
【００６３】
新規のベクタテーブル１２’を利用するようにした場合の、実施することが可能な割込み処理，例外処理が図７に示す４種類だとすると、たとえば、内蔵ＲＡＭ領域の０２３８Ｈ番地〜０２３ＦＨ番地がベクタ領域として使用される。
【００６４】
ベクタテーブル種類指示レジスタ部３３は、たとえば図８に示すように、新規のベクタテーブル１２’を利用することによって、実施することが可能な割込み処理，例外処理の種類を示すための指示を格納するものである。この場合、新規のベクタテーブル１２’を利用することによって、実施することが可能な割込み処理，例外処理に対応するビットに「１」がセットされる。
【００６５】
なお、このベクタテーブル種類指示レジスタ部３３は、レジスタ領域内の特定アドレス位置に設けられる。
【００６６】
ベクタテーブル利用確認部３４は、上記ベクタテーブル利用指示レジスタ部３２によって新規のベクタテーブル１２’の利用が指示されている際に、上記発生割込み種別判断部３１にて認知された割込み処理，例外処理が、上記ベクタテーブル種類指示レジスタ部３３によって指示されている、実施することが可能な新規のベクタテーブル１２’上の割込み処理，例外処理の種類と一致するか否かを判断するものである。
【００６７】
なお、一致すると判断されない場合、つまり、４種類以外の割込み処理，例外処理が発生した場合には、該ベクタテーブル利用確認部３４は、所定のエラー処理を実行する。
【００６８】
割込みベクタベース指示レジスタ部３５は、新規のベクタテーブル１２’のベースアドレス（この場合、０２３８Ｈ番地）を格納するものである。この割込みベクタベース指示レジスタ部３５は、レジスタ領域内の特定アドレス位置に設けられる。
【００６９】
ベクタアドレス算出部３６は、上記割込みベクタベース指示レジスタ部３５、上記発生割込み種別判断部３１、および、上記ベクタテーブル種類指示レジスタ部３３の各出力をもとに、最終ベクタアドレスを算出するものである。このベクタアドレス算出部３６は、たとえば図１に示した減算部１４およびセレクタ部１５を主体に構成されている。
【００７０】
処理部３７は、たとえば、上記ベクタアドレス算出部３６によって算出された最終ベクタアドレスにもとづいて、内蔵ＲＯＭ領域内の対応する番地のサブルーチンプログラムを実行することにより、所定の割込み処理，例外処理を実施するものである。
【００７１】
このような構成によれば、たとえば実施することが可能な割込み処理，例外処理を４種類とした場合には、新規のベクタテーブル１２’に使用されるベクタ領域のサイズは８ビットで済む。これにより、実施できない１２種類の割込み処理，例外処理に対して、本来、割り当てられるべき領域（２４バイト分）を、他の処理で有効に使用できるようになる。
【００７２】
なお、本実施形態においては、実施できる割込み処理，例外処理を４種類とした場合について説明したが、これに限らず、その種別や個数は任意に設定することが可能である。
【００７３】
また、実施することが可能な４種類の処理以外の、１２種類の割込み処理，例外処理が発生した場合にはエラー処理を実施するようにしたが、たとえば、本実施形態では実施できなかった１２種類の割込み処理，例外処理が発生した場合には固定のベクタテーブル１１を選択して、所定の割込み処理，例外処理を実施できるようにすることも容易に可能である。
【００７４】
さらに、上述の各実施形態においては、既存のマイクロコントローラをそのまま使用できるようにするために、ＣＰＵによってソフト的に処理するようにしたが、ハードを追加することによっても同様に実現することが可能である。
【００７５】
また、ベクタテーブルのサイズを１６ビットした場合について説明したが、全ベクタアドレスの上位ビットが共通の場合には、たとえば図９に示すように、個々のベクタテーブルのサイズを半分の８ビットとすることができる。この場合、レジスタなどを用意して、そこに共通の上位アドレス（８ビット）を格納するようにする。これにより、ベクタテーブル全体のサイズ（容量）を大幅に削減することが可能となるなど、ＲＡＭ１０２やＲＯＭ１０３の容量が小さい場合には特に有効である。
【００７６】
その他、この発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。
【００７７】
【発明の効果】
以上、詳述したようにこの発明によれば、複雑なプログラムを必要とすることなく、割込み処理，例外処理が発生した際の処理を高速化でき、汎用性をより向上させることが可能な集積回路装置を提供できる。
【図面の簡単な説明】
【図１】本発明の第一の実施形態にかかる、マイクロコントローラの動作を説明するために示す概略図。
【図２】同じく、該マイクロコントローラにおける、メモリアドレスマップの一例を示す概略図。
【図３】本発明の第二の実施形態にかかる、マイクロコントローラの動作を説明するために示す概略図。
【図４】同じく、該マイクロコントローラにおける、メモリアドレスマップの一例を示す概略図。
【図５】本発明の第三の実施形態にかかる、マイクロコントローラの動作を説明するために示す概略図。
【図６】同じく、該マイクロコントローラにおける、メモリアドレスマップの一例を示す概略図。
【図７】同じく、該マイクロコントローラにおける、ベクタテーブルの一覧を示す概略図。
【図８】同じく、該マイクロコントローラにおける、ベクタテーブル種類指示レジスタ部の構成例を示す概略図。
【図９】本発明にかかる、ベクタテーブルの他の構成例を示す概略図。
【図１０】従来技術とその問題点を説明するために示す、マイクロコントローラの概略構成図。
【図１１】同じく、該マイクロコントローラにおける、メモリアドレスマップの一例を示す概略図。
【図１２】同じく、該マイクロコントローラにおける、ベクタテーブルの一覧を示す概略図。
【図１３】同じく、該マイクロコントローラにおける、ベクタテーブルの構成例を示す概略図。
【符号の説明】
１１…固定のベクタテーブル
１２，１２’，１２ａ，１２ｂ，１２ｃ…新規のベクタテーブル
１３，１３ａ，１３ｂ，１３ｃ…ベクタテーブル差格納レジスタ部
１４…減算部
１５…セレクタ部
１６…処理部
１９…ベクタテーブル差格納レジスタ切替えレジスタ部
２０…セレクタ部
３１…発生割込み種別判断部
３２…ベクタテーブル利用指示レジスタ部
３３…ベクタテーブル種類指示レジスタ部
３４…ベクタテーブル利用確認部
３５…割込みベクタベース指示レジスタ部
３６…ベクタアドレス算出部
３７…処理部
【図１】
0004116211.tif 000002
【図２】
0004116211.tif 000003
【図３】
0004116211.tif 000004
【図４】
0004116211.tif 000005
【図５】
0004116211.tif 000006
【図６】
0004116211.tif 000007
【図７】
0004116211.tif 000008
【図８】
0004116211.tif 000009
【図９】
0004116211.tif 000010
【図１０】
0004116211.tif 000011
【図１１】
0004116211.tif 000012
【図１２】
0004116211.tif 000013
【図１３】
0004116211.tif 000014