(57)【要約】【課題】簡単な制御でシステムバス上のメモリヘのアクセス速度に依存せずに割込み処理を実現できる割込み制御回路およびその制御方法を提供。【解決手段】割込みコントローラ10は、外部割込みの発生に応じた割込み要求信号26を発生させ、CPU 22からアクセス信号32を判断回路14に供給し、判断回路14でこの監視結果に応じて生成した選択信号34をセレクタ18に供給し、割込みベクタテーブル16からのデータ58を選択する。マスク生成回路30は、アクセス信号32を基にマスク信号36を生成し、マスク回路20に供給する。マスク生成回路30はアクセス信号32をマスク信号36でマスクすることでセレクタ18からのデータ68をシステムバス24上のメモリヘのアクセス速度に依存せずにCPU 22に返す。【選択図】図１
2007026091.tif 000002
【特許請求の範囲】
【請求項１】
外部割込みの発生に応じた割込み要求を発生させて、外部の制御手段に出力し、該割込み要求に応じて該制御手段から応答信号を受け付けて、前記割込み要求の番号に対応する割込み対応データを前記制御手段に出力させる割込み制御回路において、該回路は、
前記割込み要求の番号に対応する割込み対応データが格納される情報蓄積手段と、
前記制御手段からのアクセス信号を監視し、前記アクセス信号の監視結果に応じた選択信号を生成する判断手段と、
該選択信号により前記情報蓄積手段から供給される前記割込み対応データとシステムバスから供給されるデータを選択する選択手段とを含み、
前記判断手段は、前記システムバスヘのメモリアクセスのうち、割込みベクタアドレスヘのアクセスを遮断するマスク信号を生成するマスク生成手段を含み、
該回路は、さらに、前記制御手段からのアクセス信号と前記マスク信号とを入力し、前記システムバスへのメモリアクセスをマスクするマスク手段を含むことを特徴とする割込み制御回路。
【請求項２】
外部割込みの発生に応じた割込み要求を発生させて、外部の制御手段に出力し、該割込み要求に応じて該制御手段から応答信号を受け付けて、前記割込み要求の番号に対応する割込み対応データを前記制御手段に出力させる割込み制御方法において、該方法は、
前記制御手段からのアクセス信号を監視し、前記アクセス信号の監視結果に応じた選択信号および割込みベクタアドレスヘのアクセスを遮断するマスク信号を生成する第１の工程と、
前記制御手段からの前記アクセス信号を前記マスク信号でマスクする第２の工程と、
該マスク信号の生成条件が偽のとき、前記割込みベクタへのアクセスに応じて生成する選択信号により前記割込み対応データを選択する第３の工程とを含むことを特徴とする割込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割込み制御回路およびその制御方法に関するものである。とくに、本発明の割込み制御回路は、割込みコントローラ、ASIC（Application Specific Integrated Circuits）および電子機器等に関する。また、本発明の割込み制御方法は、外部割込みの発生に応じた割込み要求を発生させて、外部の制御手段に出力し、この割込み要求に応じて該制御手段から応答信号を受け付けて、割込み要求の番号に対応する割込み対応データを制御手段に出力させる割込み制御方法に関する。
【背景技術】
【０００２】
近年、組込み用途をターゲットとするCPU（Central Processing Unit）またはマイクロプロセッサが注目されている。ASICには、このような組込み用途のCPUがコアとして組み込まれ、CPU以外の部分のゲートアレイ等にはユーザの設計した回路が形成される。具体例としてARM社のARM（Advanced RISC[Reduced Instruction Set Computer] Machines）は高速のスループットを有する、低消費電力、小規模、低コストを実現している。このASICは、携帯電話機、GSM（汎欧州ディジタルセルラシステム：Global System for Mobile communications）等の電子機器への組込みが期待されている。
【０００３】
しかし、ARMには、割込み処理に問題がある。まず、外部からの割込み要求IR0〜IR31のいずれかが割込みコントローラに入力されると、割込みコントローラの割込み要因レジスタが割込み要因を保持し、通常レベルの割込み要求として割込み要求IRQを発生させて、外部割込み要求があったことをARMに対して通知する。
【０００４】
このIRQを受け付けたARMは、メモリのベクタアドレス（00000018H）に格納されている割込みベクタを読み出す。そして、割込みベクタによりその開始アドレスが指定される割込み処理ルーチン、すなわち割り込みハンドラを起動させる。割込み処理ルーチンは、割込み要因レジスタに保持されている割り込み要因を調べて、割込み要因に応じて種々に処理する。
【０００５】
ARMは、割込みベクタの格納アドレスであるベクタアドレスを１つだけ指定する。このため、割込み処理ルーチンは１箇所にしか分岐できない。割込み処理ルーチンは、複数箇所に分岐させる場合、このルーチン内でソフトウェア的に分岐させていた。
【０００６】
これに関連する技術として、特許文献１および２が挙げられる。特許文献１の情報処理システムは、外部割込みの処理を短時間で行なうことを目的とし、割込み制御装置から直接割込み処理プログラムの先頭番地データを演算処理装置に出力することで、この先頭番地の計算を不要にして処理時間の短縮化を図っている。
【０００７】
特許文献２の割込みコントローラは、複数箇所の割込み処理ルーチンへのダイレクトな分岐を可能にすることを目的に、外部割込み要求を受け付けると、プロセッサに対して割り込み要求を発生する。プロセッサがこの割込み要求を受け付けると、割込みベクタのリード命令を実行し割り込み処理ルーチンの開始アドレスを読み出すことにより、プロセッサからのアドレスをトラップし、割り込みベクタのリード命令が実行されたか否かを、このアドレスに基づき判断して、実行されたと判断した場合、受け付けた外部割込み要求の要因に応じたベクタテーブルアドレスをメモリに対して出力する。これにより、割込みベクタテーブルを記憶するメモリから、外部割込み要求の要因に応じた割込みベクタが出力される。したがって、プロセッサが割り込みベクタのベクタアドレスを１つしか指定できなくても、複数箇所の割り込み処理ルーチンへのダイレクトな分岐が可能になる。この結果、処理の高速化およびプログラムの簡素化等を図ることができることを開示している。
【０００８】
また、特許文献２の割込みコントローラは、プロセッサおよびメモリが高性能の第１のバスに接続され、割込みコントローラが低性能の第２のバスに接続されると、割込みベクタテーブルが割込みコントローラ内ではなく、メモリ内に設けられる。これにより割込みコントローラを低性能の第２のバスに接続しても、高性能の第１のバスを介してメモリから割り込みベクタテーブルを高速に読み出すことができ、この結果、割込みコントローラの回路規模を抑えても、割込み処理の高速化を図れるようになることを開示している。
【特許文献１】特開昭63−165929号公報
【特許文献２】特開2000−276358号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の情報処理システムは、割込みベクタテーブルを内蔵しているため、ハードウェアの大規模化およびコストアップ化を招いてしまう。また、メモリ制御やバス制御が煩雑化等の問題もある。
【００１０】
特許文献２の割込み処理ではメモリヘの例外ベクタテーブルに対する読出し要する時問がメモリのアクセス速度に依存する。ここでアクセス時間の遅いメモリを用いた場合、割込み処理に時間がかかってしまう。また、割込みコントローラ内部にベクタテーブルアドレスを格納し、メモリ上にも割込み本数分のベクタテーブルを格納するメモリ領域を確保することになりこれによる回路量の増大を招いてしまう。
【００１１】
本発明はこのような従来技術の欠点を解消し、簡単な制御でシステムバス上のメモリヘのアクセス速度に依存せずに割込み処理が実現できる割込み制御回路およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は上述の課題を解決するために、外部割込みの発生に応じた割込み要求を発生させて、外部の制御手段に出力し、この割込み要求に応じてこの制御手段から応答信号を受け付けて、割込み要求の番号に対応する割込み対応データを制御手段に出力させる割込み制御回路において、この回路は、割込み要求の番号に対応する割込み対応データが格納される情報蓄積手段と、制御手段からのアクセス信号を監視し、アクセス信号の監視結果に応じた選択信号を生成する判断手段と、この選択信号により情報蓄積手段から供給される割込み対応データとシステムバスから供給されるデータを選択する選択手段とを含み、判断手段は、システムバスヘのメモリアクセスのうち、割込みベクタアドレスヘのアクセスを遮断するマスク信号を生成するマスク生成手段を含み、この回路は、さらに、制御手段からのアクセス信号と前記マスク信号とを入力し、システムバスへのメモリアクセスをマスクするマスク手段を含むことを特徴とする。
【００１３】
本発明の割込み制御回路は、外部割込みの発生に応じた割込み要求を発生させて、外部の制御手段からアクセス信号を判断手段に供給し、判断手段でアクセス信号の監視結果に応じて生成した選択信号を選択手段に供給し、情報蓄積手段から供給される割込み対応データを選択し、マスク生成手段で割込みベクタアドレスヘのアクセスを遮断するマスク信号を生成し、マスク手段に供給し、マスク手段でシステムバスへのメモリアクセスをマスクすることにより割込みベクタアドレスを抑えて、システムバス上のメモリへのアクセス速度に依存することなく制御手段にデータを返すことができる。
【００１４】
また、本発明は上述の課題を解決するため、外部割込みの発生に応じた割込み要求を発生させて、外部の制御手段に出力し、この割込み要求に応じてこの制御手段から応答信号を受け付けて、割込み要求の番号に対応する割込み対応データを制御手段に出力させる割込み制御方法において、この方法は、制御手段からのアクセス信号を監視し、アクセス信号の監視結果に応じた選択信号および割込みベクタアドレスヘのアクセスを遮断するマスク信号を生成する第１の工程と、制御手段からのアクセス信号をマスク信号でマスクする第２の工程と、このマスクが偽であり、割込みベクタへのアクセスに応じて生成する選択信号により割込み対応データを選択する第３の工程とを含むことを特徴とする。
【００１５】
本発明の割込み制御方法は、アクセス信号を監視し、アクセス信号の監視結果に応じた選択信号および割込みベクタアドレスヘのアクセスを遮断するマスク信号を生成し、アクセス信号をマスク信号でマスクし、マスクが真のとき、生成した選択信号により割込み対応データを選択することにより割込みベクタアドレスを抑えて、システムバス上のメモリへのアクセス速度に依存することなく制御手段に割込み対応データを返すことができる。
【発明を実施するための最良の形態】
【００１６】
次に添付図面を参照して本発明による割込み制御回路の一実施例を詳細に説明する。
【００１７】
本実施例は、本発明の割込み制御回路を割込みコントローラ10に適用した場合である。本発明と直接関係のない部分について図示および説明を省略する。以下の説明で、信号はその現れる接続線の参照番号で指示する。
【００１８】
割込みコントローラ10は、図１に示すように、割込み処理回路12、判断回路14、割込みベクタテーブル16、セレクタ18およびマスク回路20を含む。割込みコントローラ10の外部近傍には、CPU（Central Processing Unit）22およびシステムバス24が配設される。
【００１９】
割込み処理回路12は、一般的な割込みコントローラである。割込み処理回路12は、外部からの割込み入力、IR（InterRupt）0, IR1, IR2,・・・およびIR31を受け、この入力に応じてCPU 22および判断回路14に割込み信号IRQ（Interrupt ReQuest）26を通知し、割込みベクタテーブル16に割込み番号28を通知する機能を有する。
【００２０】
判断回路14は、マスク生成回路30を含む。判断回路14は、CPU 22および判断回路14に供給される割込み信号IRQ（26）の通知に応じて出力されるCPU 22からのアクセス信号32が割込みベクタヘのリード命令と判断し、この判断により割込みベクタを読み出す選択信号34を生成し、出力する機能を有する。また、マスク生成回路30は、割込みベクタヘのアクセスにおいてシステムバス24ヘのメモリアクセス要求をマスクするマスク信号36を生成する機能を有する。
【００２１】
判断回路14には、アドレス、メモリアクセス信号、リードライト信号等も入力される。判断回路14は、判断に比較回路を用いることで判断を容易に実現できる。判断回路14は、セレクタ18に選択信号34を出力する。
【００２２】
マスク生成回路30は、図２に示すように、非反転入力端子と反転入力端子を有する論理積回路38および40と、アドレス比較器42と、３入力論理積回路44とを含む。図２のマスク信号生成回路30は、たとえばCPU 22としてARM7TDMIを考えた場合に対応する。論理積回路38および40の非反転入力端子にはデータ46があらかじめ設定され、供給される。データ46は１ビットのレベル“H”である。論理積回路38の反転入力端子には図１のCPU 22が有するバスI/F部48からアクセス信号32のメモリアクセスを示す負極正の信号32a（nmreq）が供給される。また、論理積回路40の反転入力端子にはバスI/F部48からアクセス信号32の命令フェッチ/データアクセスを示す負極正の信号32b（nopc）が供給される。アドレス比較器42にはバスI/F部48からアクセス信号32のアドレス32c（a）が供給される。アドレス比較器42は、アドレス32c（a）と割込みベクタのアドレス50とを用いて比較する。アドレス50は、32ビットで16進数表示における“00000018”という値を有する。
【００２３】
マスク生成回路30は、論理積回路38および40の論理積の出力52および54、ならびにアドレス比較器42の出力56を論理積回路44に供給する。論理積回路44は、入力すべてがレベル“H”のとき、マスク信号36をレベル“H”でマスク回路20に出力する。論理積回路44は、入力すべてがレベル“H”以外のとき、マスク信号36のレベルを“L”にしてマスク回路20に出力する。マスク信号36がレベル“L”の場合、割込みコントローラ10は、CPU 22からのシステムバス24へのアクセスをマスクすることができる。
【００２４】
図１に戻って、割込みベクタテーブル16は、割込み要因、すなわち番号に応じて対応する命令コードを出力する機能を有する。割込みベクタテーブル16はROM（Read Only Memory）/RAM（Random Access Memory）等のメモリまたはレジスタを含む。割込みベクタテーブル16は例外ベクタテーブルである。ROMの場合、割込みベクタテーブルの値は固定値となる。一方、RAM/レジスタを用いると、割込みベクタテーブルの値は書き換えが可能となり、使用するソフトウェアに応じてベクタテーブルの値を自由に変えることが可能である。割込みベクタテーブル16は、命令コード58をセレクタ18の一端60側に出力する。
【００２５】
セレクタ18は、一端60側に割込みベクタテーブル16からの命令コード58と、他端62側にシステムバス24からのデータ64とを入力し、これらの入力を選択し、出力する機能を有する。セレクタ18は、選択信号34のレベルに応じて入力信号58および64のいずれかをCPU 22のバスI/F（InterFace）部48に供給する。
【００２６】
マスク回路20は、論理積回路を用いる。マスク回路20は、アクセス信号32とマスク信号36を入力し、これらの信号に対する論理積演算の結果をシステムバス24に出力信号66として出力する。
【００２７】
なお、本実施例では、システムバス24ヘのアクセスをマスクするために論理積回路を用いたが、マスク信号36を選択信号とすることで、セレクタを用いて実現してもよい。
【００２８】
CPU 220は、割込みコントローラ10を制御する機能を有する。CPU 22は、バスI/F部48を含む。バスI/F部48はセレクタ18で選択された信号68を入力し、アクセス信号32を生成する機能を有する。バスI/F部48はアクセス信号32を判断回路14およびマスク回路20に出力する。
【００２９】
次に割込みコントローラ10の動作を簡単に説明する。まず、割込みコントローラ10の割込み処理回路12は割込み信号IR0〜IR31のいずれか一つを受ける。割込み処理回路12はCPU 20に割込み要求信号IRQ 26を通知する。また、割込み処理回路12は、割込み番号28を割込みベクタテーブル16に通知する。
【００３０】
割込みベクタテーブル16は割込み番号28に応じたデータ、すなわち命令コード58をセレクタ18に出力する。
【００３１】
CPU 22は割込み要求信号IRQ 26の通知を受ける。CPU 22は、割込みベクタへのアクセスを開始する。このアクセスは、CPU 22のバスI/F部48から判断回路14にアクセス信号32を出力することで行なわれる。判断回路14では割込みベクタヘのアクセスか否かを判断し、選択信号34を生成する。判断回路14は選択信号34をセレクタ18に出力する。セレクタ18は、このときたとえば、レベル“H”の選択信号34が供給されることにより割込みベクタからの命令コード、すなわちデータ58を選択する。
【００３２】
このように、割込みベクタアドレスヘのアクセスは、システムバス24からのデータではなく、割込みコントローラ10内の割込みベクタテーブル16から供給されるデータ58がCPU 22に送られる。この動作により、CPU 22が割込みベクタのアドレスを１つしか指定できない場合にも、複数の割込みを有するシステムにおいて割込み番号に応じて処理ルーチンヘの１命令での分岐が可能となる。
【００３３】
このようにシステムバス22に出力される割込みベクタアドレスは、従来技術で行なわれているようなアドレスの切り替えは行なっていないことから、１固定アドレスだけである。割込みコントローラ10の内部に割込みベクタテーブルは必要であるが、システムバス22上のメモリ領域は、１アドレス分だけで従来技術と同等の割込み処理を行なうことができ、ハードウェア規模の低減が可能である。
【００３４】
また、本発明の特徴であるマスク機能について簡単に説明する。CPU 22からの割込みベクタヘのアクセスまでの処理手順は、前述した動作に同じである。CPU 22からの割込みベクタヘの判断回路14で検出されると、判断回路14はセレクタ18に選択信号34として出力すると同時に、システムバス24にCPU 22からのアクセスをマスクするマスク信号36をマスク回路20に出力する。
【００３５】
マスク回路20では、マスク信号36とシステムバス24ヘのアクセス信号32との論理積を演算する。マスク信号36は、マスク生成回路30にてメモリアクセス要求、命令コードおよびアドレスの条件のいずれかが一致しない場合、演算結果を“偽”と判断し、レベル“L”が出力される。レベル“L”のマスク信号36が供給されると、マスク回路20は、もう一方に供給されるアクセス信号38（32a, 32bおよび32c）、すなわちシステムバス24ヘのアクセスがマスクされる。マスク信号がレベル“L”を出力した際に判断回路14が割込みベクタヘのアクセスと判断した場合、直ちにレベル“H”の選択信号34が出力される。
【００３６】
このため、割込みベクタアドレスヘのアクセスは、システムバス24からのデータが返ってくることを待つことなく、割込みコントローラ10内の割込みベクタテーブル16から供給されるデータ58をセレクタ18で選択し、セレクタ18から即座にCPU 22に送ることができる。この動作により、CPU 22が割込みベクタのアドレスを１つしか指定できない場合にも、複数の割込みを有するシステムにおいて割込み番号に応じて処理ルーチンヘの１命令での分岐が可能になる。また、システムバス24のメモリアクセスに要する時間、すなわちサイクル数が長くかかる場合でも、メモリアクセスを気にすることなく、即座にCPU 24にデータを送ることができる。
【００３７】
この動作により、システムバス24に出力される割込みベクタアドレスを抑えることでシステムバス24上のメモリヘのアクセス速度に依存することなく、CPU 22にデータを返すことができる。これは、遅いメモリを搭載していても、割込み処理の速度を早めることを可能にする点て非常に有効である。
【図面の簡単な説明】
【００３８】
【図１】本発明に係る割込み制御回路を適用した概略的な割込みコントローラの構成を示すブロック図である。
【図２】図１のマスク生成回路の構成を示すブロック図である。
【符号の説明】
【００３９】
10  割込みコントローラ
12  割込み処理回路
14  判断回路
16  割込みベクタテーブル
18  セレクタ
20  マスク回路
22  CPU
24  システムバス
30  マスク生成回路
【図１】
2007026091.tif 000003
【図２】
2007026091.tif 000004