(57)【特許請求の範囲】
【請求項１】
割込み制御のための割り込みコントローラであって、
外部割り込み要求を受け付けた場合に、プロセッサに対して割り込み要求を発生する割込み要求発生部と、
プロセッサからのアドレスをトラップし、そのアドレスと所定のベクタアドレスとを比較して、プロセッサからのアドレスと割り込みコントローラからのベクタテーブルアドレスのいずれかを選択して出力するセレクタへのアドレス切り替え信号を生成するアドレス比較器と、
前記ベクタテーブルアドレスのベースアドレスとなる上位ビットを記憶し、前記プロセッサがアクセス可能なベースレジスタと、
前記外部割り込み要求の要因に基づいて、前記ベクタテーブルアドレスの下位ビットを発生させるプライオリティエンコーダと、
前記上位ビットと前記下位ビットとを連結して前記外部割り込み要求の要因に応じたベクタテーブルアドレスを生成するトライステートバッファと、
を含み、
前記アドレス比較器が、
前記プロセッサからのアドレスと前記所定のベクタアドレスとが一致すると判断された場合に、前記外部割り込み要求の要因に応じたベクタテーブルアドレスを前記セレクタに選択出力させるアドレス切り替え信号を生成し、
前記トライステートバッファが、
前記アドレス切り替え信号が入力可能に設けられ、該アドレス切り替え信号の出力態様に応じて導通状態と非導通状態とが切り替えられ、導通状態において前記セレクタに対してベクタテーブルアドレスを出力することを特徴とする割り込みコントローラ。
【請求項２】
請求項１において、
前記プロセッサ及び割込みベクタテーブルを記憶するメモリが高性能の第１のバスに接続され、割り込みコントローラが低性能の第２のバスに接続されることを特徴とする割り込みコントローラ。
【請求項３】
請求項１又は２において、
プロセッサからのアドレスをトラップし前記ベクタテーブルアドレスを発生する処理が有効になる第１のモードと、該処理が無効になる第２のモードとが切り替え可能であることを特徴とする割り込みコントローラ。
【請求項４】
請求項１乃至３のいずれかの割り込みコントローラと、
命令の実行処理を行う前記プロセッサと、
少なくとも割り込みベクタテーブルを記憶するメモリとを含むことを特徴とするＡＳＩＣ。
【請求項５】
請求項４のＡＳＩＣと、
データを入力するための入力手段と、
前記ＡＳＩＣの制御の下で画像及び音の少なくとも一方を出力する出力手段とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、割り込みコントローラ、ＡＳＩＣ、及び電子機器に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
近年、組み込み用途をターゲットとしたＣＰＵ（マイクロプロセッサ）が脚光を浴びている。このような組み込み用途のＣＰＵは、ＡＳＩＣのコアとして組み込まれることを目的としている。即ち、ユーザは、ＡＳＩＣのコアとなるＣＰＵについてはこの組み込み用途のＣＰＵを用い、ＣＰＵ以外の部分をゲートアレイなどを用いて自身で回路設計する。
【０００３】
このような組み込み用途のＣＰＵの１つとしてＡＲＭ社のＡＲＭ（ＡｄｖａｎｃｅｄＲＩＳＣＭａｃｈｉｎｅｓ）と呼ばれるＣＰＵが広く知られている。このＡＲＭは、高速のスループットでありながら低消費電力で小規模で低コストなＲＩＳＣ型のＣＰＵである。そして、このＡＲＭをコアとするＡＳＩＣは、携帯電話、ＧＳＭなどの電子機器に組み込むのに好適なＡＳＩＣとして期待されている。
【０００４】
しかしながら、このＡＲＭには、割り込み処理に関して以下のような技術的課題があることが判明した。
【０００５】
例えば、割り込み処理の際のＡＲＭの標準的な動作について図１を用いて説明する。
（Ａ）外部からの割り込み要求ＩＲ０〜ＩＲ３１のいずれかが割り込みコントローラ６１０に入力されると、割り込みコントローラ６１０内の割り込み要因レジスタ６１２が、その割り込み要因を保持する。そして、割り込みコントローラ６１０は、割り込み要求ＩＲＱ（通常レベルの割り込み要求）を発生して、外部割り込み要求があったことをＣＰＵ（ＡＲＭ）６００に対して通知する。
（Ｂ）ＩＲＱを受け付けたＣＰＵ６００は、図１のＡ１に示すように、メモリ６２０のベクタアドレス（００００００１８Ｈ）に格納されている割り込みベクタ６２２をリードする。そして、Ａ２に示すように割り込みベクタ６２２によりその開始アドレスが指定される割り込み処理ルーチン（割り込みハンドラ）６２４を起動させる。
（Ｃ）起動した割り込み処理ルーチン６２４は、割り込み要因レジスタ６１２に保持されている割り込み要因を調べる。そして、割り込み要因にしたがった種々の処理を行う。
【０００６】
このようにＡＲＭにおいては、ベクタアドレス（割り込みベクタの格納アドレス）を１つ（００００００１８Ｈ）しか指定できない。従って、ハードウェアでは１箇所の割り込み処理ルーチン６２４にしか分岐できず、複数箇所の割り込み処理ルーチンへの分岐については、割り込み処理ルーチン６２４内においてソフトウェア的に分岐するしかなかった。
【０００７】
また、特開昭６３−１６５９２９には、割り込みコントローラ内に割り込みベクタテーブルを内蔵させる従来技術が開示されている。この従来技術では、割り込みコントローラは、外部割り込みが発生すると、割り込み要求を発生してＣＰＵに通知する。そして、割り込みコントローラは、ＣＰＵからのＡＣＫ信号を受け付けると、割り込みベクタテーブルに格納されている割り込みベクタをバスを介してＣＰＵに出力する。
【０００８】
しかしながら、この従来技術では、割り込みベクタテーブルを割り込みコントローラ内に設けているため、割り込みコントローラのハードウェアの大規模化、高コスト化の問題を招く。また、メモリ制御やバス制御が煩雑化する等の問題もある。
【０００９】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、複数箇所の割り込み処理ルーチンへのダイレクトな分岐を可能にする割り込みコントローラ、ＡＳＩＣ、及び電子機器を提供することにある。
【００１０】
【課題を解決するための手段】
上記課題を解決するために本発明は、割り込み制御のための割り込みコントローラであって、外部割り込み要求を受け付けた場合に、プロセッサに対して割り込み要求を発生する手段と、プロセッサからのアドレスをトラップし、プロセッサが前記割り込み要求を受け付けて割り込みベクタのリード命令を実行したか否かを、トラップしたアドレスに基づき判断する手段と、割り込みベクタのリード命令が実行されたと判断した場合に、割り込みベクタテーブルを記憶するメモリに対して、前記外部割り込み要求の要因に応じたベクタテーブルアドレスを発生する手段とを含むことを特徴とする。
【００１１】
本発明によれば、外部割り込み要求を受け付けると、プロセッサに対して割り込み要求を発生する。そして、プロセッサは、この割り込み要求を受け付けると、割り込みベクタ（割り込み処理ルーチンの開始アドレス）のリード命令を実行する。この場合、本発明では、プロセッサからのアドレスをトラップし、割り込みベクタのリード命令が実行されたか否かを、このトラップしたアドレスに基づき判断する。そして、実行されたと判断した場合には、受け付けた外部割り込み要求の要因に応じたベクタテーブルアドレス（割り込みベクタテーブルの格納アドレス）をメモリに対して出力する。これにより、割り込みベクタテーブルを記憶するメモリから、外部割り込み要求の要因に応じた割り込みベクタが出力されるようになる。このように本発明によれば、プロセッサが割り込みベクタのベクタアドレスを１つしか指定できない場合にも、複数箇所の割り込み処理ルーチンへのダイレクトな分岐が可能になる。この結果、処理の高速化、プログラムの簡素化等を図ることが可能になる。
【００１２】
また本発明は、前記プロセッサ及び前記メモリが高性能の第１のバスに接続され、割り込みコントローラが低性能の第２のバスに接続されることを特徴とする。本発明では割り込みベクタテーブルが、割り込みコントローラ内ではなくメモリ内に設けられる。従って、このように割り込みコントローラを低性能の第２のバスに接続しても、高性能の第１のバスを介してメモリから割り込みベクタテーブルを高速に読み出すことができるようになる。この結果、割り込みコントローラのハードウェアの小規模化を図りながらも、割り込み処理の高速化を図れるようになる。
【００１３】
また本発明は、プロセッサからのアドレスと割り込みコントローラからのベクタテーブルアドレスのいずれかを選択して出力するセレクタへのアドレス切り替え信号を生成することを特徴とする。このようにすれば、通常動作時におけるプロセッサからのアドレスの信号遅延を、最小にすることができるようになる。
【００１４】
また本発明は、ベクタテーブルアドレスのベースアドレスを記憶するベースレジスタを含み、前記外部割り込み要求の要因と前記ベースレジスタからのベースアドレスとに基づいて、前記ベクタテーブルアドレスを発生することを特徴とする。このようにすれば、メモリ内のユーザの所望するアドレスに、割り込みベクタを連続して格納できるようになり、ユーザの利便性を向上できる。
【００１５】
また本発明は、プロセッサからのアドレスをトラップし前記ベクタテーブルアドレスを発生する処理が有効になる第１のモードと、該処理が無効になる第２のモードとが切り替え可能であることを特徴とする。このようにすれば、ベクタテーブルアドレスが発生する第１のモードでの動作を希望するユーザと、標準的な第２のモードでの動作を希望するユーザの両方の要望に応えることができるようになる。
【００１６】
また本発明に係るＡＳＩＣは、上記のいずれかの割り込みコントローラと、命令の実行処理を行う前記プロセッサと、少なくとも前記割り込みベクタテーブルを記憶する前記メモリとを含むことを特徴とする。このようにすれば、種々の層のユーザの要望に応えることができるＡＳＩＣを提供できるようになる。
【００１７】
また本発明に係る電子機器は、上記のＡＳＩＣと、データを入力するための入力手段と、前記ＡＳＩＣの制御の下で画像及び音の少なくとも一方を出力する出力手段とを含むことを特徴とする。このようにすれば、例えば入力手段を用いた複数の操作の各々に対応した割り込み処理ルーチンに、ダイレクトに且つ即座に分岐できるようになる。これにより電子機器を動作させるプログラムの簡素化や、処理の高速化を図れるようになる。
【００１８】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００１９】
１．割り込みコントローラ
図２に、本実施形態の割り込みコントローラとその周辺装置のブロック図を示す。
【００２０】
ＡＲＭにおいては、ＡＳＢ（ＡｄｖａｎｃｅｄＳｙｓｔｅｍＢｕｓ）とＡＰＢ（Ａｄｖａｎｃｅｄ  ＰｅｒｉｐｈｅｒａｌＢｕｓ）がバスブリッジ１０を介して接続されるＡＭＢＡ（ＡｄｖａｎｃｅｄＭｉｃｒｏｃｏｎｔｒｏｌｌｅｒＢｕｓＡｒｃｈｉｔｅｃｔｕｒｅ）と呼ばれるバスアーキテクチャを採用している。
【００２１】
システム用のバスであるＡＳＢは、アドレスバスＡＳＡＢ、データバスＡＳＤＢ、バス制御線ＡＳＢＣを有する。ＡＳＢは高性能のバスであり、高速な処理速度が要求されるＣＰＵ２０やメモリ４０が接続されるバスとして適している。またＡＳＢでは、ＡＳＢＣを用いたバス制御も複雑なものになっている。
【００２２】
ペリフェラル用のバスであるＡＰＢは、アドレスバスＡＰＡＢ、データバスＡＰＤＢ、バス制御線ＡＰＢＣを有する。ＡＰＢはＡＳＢに比べると低性能のバスであるが、低消費電力という観点からはＡＳＢよりも優れている。またＡＰＢＣを用いたバス制御もＡＳＢに比べて簡易になっている。ＡＰＢには、それほど高速な処理速度が要求されない割り込みコントローラ３０、タイマ１２、ＰＩＯ１４、ＵＡＲＴ１６などのＩ／Ｏデバイスが接続される。
【００２３】
ＣＰＵ（広義にはプロセッサ）２０は各種の命令の実行処理を行うものであり、本実施形態ではＣＰＵ２０としてＡＲＭが用いられている。ＣＰＵ２０は、アドレスバスＡＳＡＢ、データバスＡＳＤＢ、バス制御線ＡＳＢＣとのインターフェースとして機能するバスＩ／Ｆ部２２を含む。
【００２４】
割り込みコントローラ３０は、外部からの割り込み要求ＩＲ０〜ＩＲ３１を検出する処理や、外部割り込み要求があった場合にＩＲＱを発生してＣＰＵ２０に通知する処理などを行う。また本実施形態の割り込みコントローラ３０は、ベクタテーブルアドレスＶＴＡ（割り込みベクタテーブル４４の格納アドレス）やアドレス切り替え信号ＳＳを発生する処理も行う。
【００２５】
メモリ４０は、割り込みベクタテーブル４４を記憶する。即ち、特開昭６３−１６５９２９の従来技術では割り込みコントローラ内に割り込みベクタテーブルが設けられているのに対して、本実施形態では、メモリ４０内に割り込みベクタテーブル４４が設けられている。
【００２６】
次に、本実施形態の動作について簡単に説明する。
（１）割り込みコントローラ３０は、外部からの割り込み要求ＩＲ０〜ＩＲ３１のいずれかを受け付けると、ＣＰＵ２０に対して割り込み要求ＩＲＱを発生し、外部割り込み要求があったことをＣＰＵ２０に通知する。
（２）ＩＲＱを受け付けたＣＰＵ２０は、割り込み処理への移行が可能である場合には、ベクタアドレス（００００００１８Ｈ）に格納される割り込みベクタ４２のリード命令を実行する。
（３）割り込みコントローラ３０は、ＣＰＵ２０からのアドレスＡＤをトラップする。そして、ＣＰＵ２０が割り込みベクタ４２のリード命令を実行したか否かを、トラップしたアドレスに基づき判断する。
（４）割り込みコントローラ３０は、割り込みベクタ４２のリード命令が実行されたと判断した場合には、上記（１）で受け付けた外部割り込み要求の要因に応じたベクタテーブルアドレスＶＴＡを発生する。また、セレクタ３２がＣＰＵ２０からのアドレスＡＤではなくベクタテーブルアドレスＶＴＡを選択してＳＱに出力するように、アドレス切り替え信号ＳＳを制御する。これにより、アドレスバスＡＳＡＢ上には、ＣＰＵ２０からのベクタアドレス（００００００１８Ｈ）ではなく、割り込みコントローラ３０が発生したベクタテーブルアドレスＶＴＡ（割り込みベクタテーブル４４の格納アドレス）が出力されることになる。
【００２７】
以上のようにすれば、ＣＰＵ２０は割り込みベクタ４２を読み出したつもりであっても、実際には、割り込みベクタテーブル４４の割り込みベクタＶ０〜Ｖ３１のいずれかが読み出されるようになる。即ち、上記（１）で外部割り込み要求ＩＲ０を受け付けた場合には割り込みベクタＶ０が、ＩＲ１を受け付けた場合には場合にはＶ１が、ＩＲ２を受け付けた場合には場合にはＶ２が・・・・ＩＲ３１を受け付けた場合にはＶ３１が読み出されることになる。
【００２８】
そして、割り込みベクタＶ０が読み出された場合には、Ｖ０により開始（先頭）アドレスが指定される割り込み処理ルーチンＰ０が起動し、Ｖ１が読み出された場合にはＶ１により開始アドレスが指定される割り込み処理ルーチンＰ１が起動し・・・・Ｖ３１が読み出された場合にはＶ３１により開始アドレスが指定される割り込み処理ルーチンＰ３１が起動するようになる。なお、図２では、説明を簡易化するために（００００００１８Ｈ）に割り込みベクタ４２を格納しているが、この割り込みベクタ４２は結局読み出されないことになるため、（００００００１８Ｈ）に割り込みベクタ４２を格納しておく必要は必ずしもない。
【００２９】
以上のように本実施形態によれば、ベクタアドレスを１つ（００００００１８Ｈ）しか指定できないＣＰＵ（ＡＲＭ）２０を用いた場合にも、複数箇所の割り込み処理ルーチンＰ０〜Ｐ３１へダイレクトに分岐できるようになる。
【００３０】
即ち、ＡＲＭにおいては図１で説明したようにハードウェアで１箇所の割り込み処理ルーチン６２４にしか分岐できない。このため、複数箇所の割り込み処理ルーチンへの分岐については、最初に起動した割り込み処理ルーチン６２４によるソフトウェア処理により分岐するしかなかった。このため、外部割り込み要求ＩＲ０〜ＩＲ３１が入力された場合に、各々の外部割り込み要求に対応する割り込み処理ルーチンに即座に分岐することができなかった。
【００３１】
これに対して、本実施形態によれば、例えば外部割り込み要求ＩＲ０が入力された場合には割り込み処理ルーチンＰ０にダイレクトに分岐し、ＩＲ１が入力された場合にはＰ１にダイレクトに分岐するというように、複数箇所の割り込み処理ルーチンＰ０〜Ｐ３１に割り込み要因別にダイレクトに且つ即座に分岐できるようになる。この結果、処理の高速化、プログラムのコンパクト化、簡素化等を図れるようになる。しかも、ＣＰＵ２０は、通常通りに単に（０００００００１８Ｈ）の割り込みベクタ４２をリードする動作を行うだけでよい。従って、システムの他の部分の変更を伴わずに、複数箇所の割り込み処理ルーチンへのダイレクトな分岐が可能になる。
【００３２】
図３、図４に、特開昭６３−１６５９２９の従来技術を適用した場合の例を、本実施形態の比較例として示す。
【００３３】
図２では、割り込みベクタテーブル４４はメモリ４０に設けられているが、図３では、割り込みベクタテーブル７３２は割り込みコントローラ７３０に設けられている。また図３では、割り込みコントローラ７３０は低性能のＡＰＢに接続されている。従って、ＣＰＵ７２０が割り込みベクタテーブル７３２を読み出すためには、図３のＢ１に示すように、ＡＳＢ、バスブリッジ７１０及びＡＰＢを介して読み出さなければならない。このため、割り込み処理の高速化が妨げられる。更に、図３では、割り込みベクタテーブル７３２が割り込みコントローラ７３０内に設けられるため、割り込みコントローラ７３０のハードウェアが大規模化する。
【００３４】
これに対して、図２の本実施形態では、割り込みベクタテーブル４４はメモリ４０に設けられる。従って、ＣＰＵ２０はＡＳＢを介してメモリ４０から高速に割り込みベクタテーブル４４を読み出すことができる。従って、割り込みコントローラ３０をＡＰＢに接続していても、割り込み処理の高速化が妨げられることがない。また、割り込みベクタテーブル４４がメモリ４０に設けられているため、図２に比べて割り込みコントローラ３０のハードウェアを小規模化できる。そして、メモリ４０の余りの領域に割り込みベクタテーブル４４を格納するようにすれば、メモリ４０が大規模化する事態も防止できる。
【００３５】
図４では、割り込みコントローラ７３０が高性能のＡＳＢに接続されている。このように割り込みコントローラ７３０をＡＳＢに接続すれば、図４のＢ２に示すように、ＣＰＵ７２０はＡＳＢを介して割り込みコントローラ７３０から図３と比較して高速に割り込みベクタテーブル７３２を読み出すことができる。
【００３６】
しかしながら、図４のように割り込みコントローラ７３０をＡＳＢに接続すると、割り込みコントローラ７３０に持たせるバスＩ／Ｆ部７３４のハードウェアが大規模化してしまう。ＡＳＢはＡＰＢに比べて高度なバス制御が必要になるからである。
【００３７】
また、ＩＲＱを受け付けたＣＰＵ７２０は図４のＢ３に示すようにメモり７４０の割り込みベクタ７４２を読みに行く。従って、ＣＰＵ７２０に割り込みベクタテーブル７３２を適正に読み出させるためには、割り込みベクタテーブル７３２の読み出し時にメモリ７４０の動作を抑止する等の制御が必要になる。このため、メモリ制御やバス制御が煩雑化するという問題を招く。
【００３８】
これに対して本実施形態によれば、図２のように割り込みコントローラ３０を通常通りＡＰＢに接続できる。従って、簡易なバス制御で済むため割り込みコントローラ３０のハードウェアが大規模化する事態を防止できる。また、割り込みベクタテーブル４４はメモリ４０に設けられるため、割り込みベクタテーブル４４の読み出し時にメモり４０の動作を抑止する制御も必要ない。従って、メモリ制御やバス制御が煩雑化するという事態を防止できる。
【００３９】
次に、割り込みコントローラ３０の具体的な構成例について図５を用いて説明する。
【００４０】
割り込み要因レジスタ５０は、外部割り込み要求ＩＲ０〜ＩＲ３１が入力された場合にその割り込み要因を保持するためのレジスタである。より具体的には、割り込み要因レジスタ５０は、ＩＲ０〜ＩＲ３１の信号レベルを保持する。
【００４１】
割り込み要求発生部５２は、割り込み要求レジスタ５０に格納されている割り込み要因に基づいて、ＣＰＵ２０に対して割り込み要求ＩＲＱを発生するためのものである。即ち、外部割り込み要求ＩＲ０〜ＩＲ３１のいずれかが入力されると、ＩＲＱを発生して、ＣＰＵ２０に外部割り込み要求が入力されたことを通知する。
【００４２】
ベースレジスタ５４は、ベクタテーブルアドレスＶＴＡのベースアドレスとなる上位ビットを記憶するレジスタである。このベースレジスタ５４にはデータバス（ＡＰＤＢ）が接続されており、ＣＰＵ２０がアクセス可能になっている。従って、ユーザは、自身が所望するベースアドレスをこのベースレジスタ５４に対して書き込むことができる。従って、ユーザは、メモリ４０の所望のアドレスに割り込みベクタＶ０〜Ｖ３１を連続的に配置できるようになる。この結果、プログラムのコンパクト化、簡素化等を図れると共に、ユーザの利便性を向上できる。
【００４３】
プライオリティエンコーダ５６は、割り込み要因レジスタ５０からの割り込み要因に基づいて、ベクタテーブルアドレスＶＴＡの下位ビットを発生する。即ち、ベクタテーブルアドレスＶＴＡは、ベースレジスタ５４からのベースアドレス（上位ビット）と、プライオリティエンコーダ５６からの下位ビットを連結することで生成されることになる。なお、外部割り込み要求ＩＲ０〜ＩＲ３１が複数入力された場合には、最も優先順位が高い割り込み要因に対応するベクターテーブルアドレスＶＴＡの下位ビットが、プライオリティエンコーダ５６から出力されることになる。
【００４４】
制御部６０は、アドレスバスＡＰＡＢ、バス制御線ＡＰＢＣを受け、各種のレジスタ制御信号を生成するためのものである。
【００４５】
アドレス比較器６２は、ＣＰＵ２０からのアドレスＡＤをトラップし、このＡＤと（００００００１８Ｈ）とを比較するものである。ＡＤと（００００００１８Ｈ）が一致した場合には、アドレス比較器６２の出力であるアドレス切り替え信号ＳＳがＬレベルになる。これにより、トライステートバッファ５８が導通し、ベクタテーブルアドレスＶＴＡが図２のセレクタ３２に出力されることになる。
【００４６】
モードフラグレジスタ６４は、第１のモード（ＣＰＵ２０からのアドレスをトラップしベクタテーブルアドレスＶＴＡを発生する処理が有効になるモード）と、第２のモード（この処理が無効になるモード）とを切り替えるためのモードフラグを格納するレジスタである。例えば第１のモードでは、モードフラグレジスタ６４の出力ＭＱがＬレベルになり、アドレス比較器６２の比較動作がイネーブルになる。一方、第２のモードでは、ＭＱはＨレベルになり、アドレス比較器６２の比較動作がディスエーブルになり、アドレス比較６２の出力ＳＳはＨレベルに固定される。これにより、トライステートバッファ５８が常に非導通になると共に、図２のセレクタ３２はＣＰＵ２０からのアドレスＡＤを常に選択して出力するようになる。
【００４７】
このモードフラグレジスタ６４は、データバスＡＰＤＢに接続されており、ＣＰＵ２０が自由にアクセスできるようになっている。従って、このモードフラグレジスタ６４を利用すれば、ベクタテーブルアドレスＶＴＡが発生しＣＰＵ２０により割り込みベクタテーブル４４が読み出される第１のモードと、ＣＰＵ２０により通常通り（００００００１８Ｈ）の割り込みベクタ４２が読み出される第２のモードとを自在に切り替えることができるようになる。この結果、第１のモードでの動作を所望するユーザと、ＡＲＭの標準的な動作である第２のモードでの動作を所望するユーザの両方の要望に、ハードウェアを変更することなくモードフラグレジスタ６４を書き換えるだけで対応できるようになる。
【００４８】
次に図５の割り込みコントローラ３０の動作について図６の信号波形図を用いて簡単に説明する。
【００４９】
図６のＣ１に示すように外部割り込み要求ＩＲｎ（ｎ＝０〜３１）の信号がＬレベルからＨレベルに変化すると、変化後の信号レベルが割り込み要因レジスタ５０に保持される。そして、Ｃ２に示すようにＣＰＵ２０への割り込み要求ＩＲＱの信号がＬレベルからＨレベルに変化すると共に、Ｃ３に示すようにプライオリティエンコーダ５６からベクタテーブルアドレスＶＴＡの下位ビットが発生する。
【００５０】
次に、割り込み要求ＩＲＱを受け付けたＣＰＵ２０がＣ４に示すようにアドレスＡＤに（００００００１８Ｈ）を出力すると、アドレス比較器６２による比較動作により、Ｃ５に示すようにアドレス切り替え信号ＳＳがＨレベルからＬレベルに変化する。これによりトライステートバッファ５８が導通状態になると共にセレクタ３２によりベクタテーブルアドレスＶＴＡが選択されて出力される。この結果、Ｃ６に示すように、アドレスバスＡＳＡＢ上には、ＣＰＵ２０からの（００００００１８Ｈ）ではなくベクタテーブルアドレスＶＴＡが出力される。これにより、Ｃ７に示すように、メモリ４０からは割り込みベクタＶｎ（ＩＲｎに対応する割り込みベクタ）が読み出され、データバスＡＳＤＢ上に出力されるようになる。これにより、割り込み処理ルーチンＰｎへのダイレクトな分岐が可能になる。
【００５１】
２．マイクロコンピュータ（ＡＳＩＣ）
図７に、本実施形態の割り込みコントローラ３０を含むマイクロコンピュータ（広義にはＡＳＩＣ）のブロック図の例を示す。
【００５２】
バスＡＰＢにはタイマ１２、ＰＩＯ１４、ＵＡＲＴ１６、本実施形態の割り込みコントローラ３０などが接続されている。一方、バスＡＰＢとバスブリッジ１０を介して接続されるバスＡＳＢには、ＣＰＵ２０、メモリ４０などが接続されている。
【００５３】
バスＡＳＢは外部バスＩ／Ｆ部７０を介して外部バスに接続される。そして、この外部バスには、ユーザロジック回路部７２、ＬＣＤ制御部７４、外部メモリ７６などが接続される。
【００５４】
ここで、ユーザロジック回路部７２は、ユーザがゲートアレイなどを利用して設計した回路からなるブロックである。このようなユーザロジック回路部７２を設けることで、各ユーザ毎に仕様の異なるマイクロコンピュータを実現できる。
【００５５】
ＬＣＤ制御部７４は、ＬＣＤの表示を制御するための各種信号を生成するためのものである。このようなＬＣＤ制御部７４を設けることで、携帯電話やＧＳＭに好適なマイクロコンピュータを実現できるようになる。外部メモリ７６は、外部に設けられるメモリであり、その機能はＲＡＭやＲＯＭなどのハードウェアにより実現できる。
【００５６】
図７のマイクロコンピュータによれば、各ユーザが所望する仕様に沿ったマイクロコンピュータを提供できるようになる。特に、本実施形態では、図５のモードフラグレジスタ６４を書き換えることで、複数のベクタテーブルアドレスを発生する第１のモードと、ＡＲＭの標準動作を行う第２のモードとを、ハードウェアを変更することなく切り替えることができる。従って、より幅広い層のユーザの要望に沿ったマイクロコンピュータを提供できるようになる。
【００５７】
３．電子機器
図８に、図７のマイクロコンピュータ（ＡＳＩＣ）を含む電子機器のブロック図の一例を示す。この電子機器は、マイクロコンピュータ５００、入力部５０２、メモリ５０４、電源生成部５０６、画像出力部５０８、音出力部５１０を含む。
【００５８】
ここで、入力部５０２は、種々のデータを入力するためのものである。マイクロコンピュータ５００は、この入力部５０２により入力されたデータに基づいて種々の処理を行うことになる。メモリ５０４は、マイクロコンピュータ５００などの作業領域となるものである。電源生成部５０６は、電子機器で使用される各種電源を生成するためのものである。画像出力部５０８は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものであり、その機能は、ＬＣＤやＣＲＴなどのハードウェアにより実現できる。音出力部５１０は、電子機器が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００５９】
図９（Ａ）に、電子機器の１つである携帯電話５５０の外観図の例を示す。この携帯電話５５０は、入力部として機能するダイヤルボタン５５２や、画像出力部として機能し電話番号や名前やアイコンなどを表示するＬＣＤ５５４や、音出力部として機能し音声を出力するスピーカ５５６を備える。
【００６０】
図９（Ｂ）に、電子機器の１つである携帯型ゲーム装置５６０の外観図の例を示す。この携帯型ゲーム装置５６０は、入力部として機能する操作ボタン５６２、十字キー５６４や、画像出力部として機能しゲーム画像を表示するＬＣＤ５６６や、音出力部として機能しゲーム音を出力するスピーカ５６８を備える。
【００６１】
図９（Ｃ）に、電子機器の１つである電子手帳５７０の外観図の例を示す。この電子手帳５７０は、入力部として機能するキーボード５７２や、画像出力部として機能し文字、数字、グラフィックなどを表示するＬＣＤ５７４を備える。
【００６２】
図８〜図９（Ｃ）の電子機器に、本実施形態の割り込みコントローラを用いた図７のマイクロコンピュータを組み込めば、以下のような利点を得ることができる。例えば、図９（Ａ）のダイヤルボタン５５２が押された場合に、図１の手法では、どのボタンが押されたかを、割り込み処理ルーチン６２４がソフトウェア的に検出する必要がある。このため、処理の高速化が妨げられると共にプログラムの記述も煩雑なものになる。これに対して、本実施形態の割り込みコントローラを利用すれば、ダイヤルボタン５５２が押されると、押されたボタンに対応する割り込み処理ルーチンをダイレクトに且つ即座に起動できるようになる。これにより、処理の高速化を図れると共にプログラムの記載も簡素化できるようになる。
【００６３】
なお、本実施形態を利用できる電子機器としては、図９（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置、プリンタ等、種々の電子機器を考えることができる。
【００６４】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【００６５】
例えば、割り込みベクタのリード命令が実行されたか否かを判断する手法や、外部割り込み要求の要因に応じたベクタテーブルアドレスを発生する手法は、図５、図６などで説明したものが特に望ましいが、これに限定されるものではない。
【００６６】
また、割り込みコントローラ、ＣＰＵ（プロセッサ）、メモリの接続も図２に示すものが特に望ましいが、これに限定されるものではない。
【００６７】
また、図２のように、ＣＰＵからのＡＤと割り込みコントローラからのＶＴＡのいずれかを選択して出力するセレクタを設ける手法は、通常動作時においてアドレスＡＤの信号遅延を最小化するために特に望ましい。しかしながら、本発明では、このようなセレクタを設けない構成とすることも可能である。
【００６８】
また、本発明のＡＳＩＣや電子機器の構成も、図７〜図９（Ｃ）で説明したものに限定されるものでなく、種々の変形実施が可能である。
【図面の簡単な説明】
【図１】割り込み処理の際のＡＲＭの標準的動作について説明するための図である。
【図２】本実施形態の割り込みコントローラとその周辺装置について示すブロック図である。
【図３】従来技術を適用した場合の例を比較例として示した図である。
【図４】従来技術を適用した場合の例を比較例として示した図である。
【図５】割り込みコントローラの詳細な構成例を示す図である。
【図６】割り込みコントローラの動作について説明するための信号波形図である。
【図７】本実施形態の割り込みコントローラを用いたマイクロコンピュータ（ＡＳＩＣ）の構成例を示す図である。
【図８】図７のマイクロコンピュータが組み込まれる電子機器のブロック図の例である。
【図９】図９（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
１０    バスブリッジ
１２    タイマ
１４    ＰＩＯ
１６    ＵＡＲＴ
２０    ＣＰＵ（ＡＲＭ）
２２    バスＩ／Ｆ部
３０    割り込みコントローラ
３２    セレクタ
４０    メモリ
４２    割り込みベクタ
４４    割り込みベクタテーブル
５０    割り込み要因レジスタ
５２    割り込み要求発生部
５４    ベースレジスタ
５６    プライオリティエンコーダ
５８    トライステートバッファ
６０    制御部
６２    アドレス比較器
６４    モードフラグレジスタ
【図１】
0003778246.tif 000002
【図２】
0003778246.tif 000003
【図３】
0003778246.tif 000004
【図４】
0003778246.tif 000005
【図５】
0003778246.tif 000006
【図６】
0003778246.tif 000007
【図７】
0003778246.tif 000008
【図８】
0003778246.tif 000009
【図９】
0003778246.tif 000010