JP4151198B2 - 割込コントローラ及びマイクロコンピュータ - Google Patents
割込コントローラ及びマイクロコンピュータ Download PDFInfo
- Publication number
- JP4151198B2 JP4151198B2 JP2000152589A JP2000152589A JP4151198B2 JP 4151198 B2 JP4151198 B2 JP 4151198B2 JP 2000152589 A JP2000152589 A JP 2000152589A JP 2000152589 A JP2000152589 A JP 2000152589A JP 4151198 B2 JP4151198 B2 JP 4151198B2
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- cpu
- level information
- processing
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Description
【発明の属する技術分野】
本発明は、多重割込可能なマイクロコンピュータを構成するのに好適な割込コントローラ、及び、この割込コントローラを用いたマイクロコンピュータに関する。
【0002】
【従来の技術】
一般に、マイクロコンピュータは、CPUやメモリの他、A/Dコンバータ、タイマ、PWM波形発生回路などの周辺(ペリフェラル)回路を備えて構成されている。そして、CPUがこれら周辺回路との間でデータなどを授受する場合、インターフェースの一手段として割込が用いられている。この場合、CPUに対して割込を要求する周辺回路が複数存在し、且つ、各周辺回路からの割込要求が重複する高機能なマイクロコンピュータでは、CPUと周辺回路との間に割込コントローラを介在させる。
【0003】
この割込コントローラは、例えばCPUと共通のクロックを受けて動作するもので、各周辺回路からの割込要求を一括して管理し、これら複数の割込要求を1つの信号にまとめた上で、CPUに対する割込要求信号(以下、周辺回路からの割込要求信号と区別するために、CPU割込要求信号ともいう)としてCPUの割込入力端子に出力するようになっている。
【0004】
具体的には、割込コントローラは、各周辺回路から同時に複数の割込要求信号が入力されると、その中から最も優先順位の高い割込要求を選択してその割込処理に対するベクタアドレスを生成するとともに、CPUに対してCPU割込要求信号を出力する。CPUは、このCPU割込要求信号が入力されると、割込受付のための遅延時間が経過した後、割込コントローラに対して割込を受け付ける準備が完了したことを示す応答信号を出力する。そして、これと同時に、CPUは割込コントローラからベクタアドレスを読み出し、その後ベクタアドレスで指定された領域に格納された割込処理の実行を開始する。
【0005】
また、このように割込コントローラからCPU割込要求信号を出力して、CPUに周辺回路から要求のあった割込処理を実行させるに当たって、CPUが他の割込処理を実行中である場合には、CPUに対して、現在実行中の割込処理を中断させる必要があるが、単に、割込コントローラが出力したCPU割込要求信号によって、CPUが実行中の割込処理を中断させるようにすると、新たな割込要求よりも優先順位の高い割込処理を中断させてしまうこともある。
【0006】
このため、従来、こうした多重割込を行う際には、割込コントローラ側で、CPUが実行中の割込処理と周辺回路からの割込要求との優先順位を比較し、周辺回路からの割込要求の優先順位の方がCPUが実行中の割込処理よりも高い場合にだけ、割込コントローラからCPUにCPU割込要求信号を出力するようにしている。
【0007】
ところで、このように、割込コントローラ側で、CPUが実行中の割込処理と周辺回路からの割込要求との優先順位を比較するためには、割込コントローラが、CPUが現在実行中の割込処理の優先順位を知っている必要がある。このため、従来では、CPU側で現在実行中の割込処理の優先順位を管理(記憶)し、割込コントローラが周辺回路から割込要求を受けた際には、CPUから現在実行中の割込処理の優先順位を取り込み、その優先順位と周辺回路からの割込要求の優先順位とを比較するようにされている。
【0008】
そして、CPUは、割込処理の実行中に、割込コントローラからCPU割込要求信号を受けると、現在実行中の割込処理を中断し、その割込処理を再開するのに必要な処理情報(具体的にはプログラムカウンタの値やフラグ等の処理状態を表す情報)と、その割込処理の優先順位を表すレベル情報とを、RAM等の外部の記憶媒体に退避(スタック)させた後、割込コントローラから読み出したベクタアドレスに従い、新たに要求のあった割込処理を実行し、この割込処理が完了した後、外部の記憶媒体から退避しておいた情報を読み出し、その情報に基づき、先に中断した割込処理を再開する。
【0009】
【発明が解決しようとする課題】
以上のように、CPUに対する多重割込が可能な従来のマイクロコンピュータでは、CPUが実行中の割込処理の優先順位をCPU側で管理(記憶)するようにしている。このため、CPUが、現在実行中の割込処理を中断して、その割込処理を再開するのに必要な処理情報をRAM等に退避させる際には、CPUがその割込処理の優先順位も同時に退避させることができ、中断した割込処理の優先順位の管理を、CPU側の処理にて容易に行うことができる。
【0010】
しかし、こうした優先順位の管理機能をCPU側に持たせるには、CPU側に、実行中の割込処理の優先順位を記憶しておく部分(レジスタ)を設ける必要があり、CPUの回路規模が大きくなるという問題がある。
そして、例えば、多重割込が不要なマイクロコンピュータと、多重割込が必要なマイクロコンピュータとを、同一仕様のCPUを用いて構成するような場合には、多重割込が不要なマイクロコンピュータであっても、上記優先順位記憶用のレジスタを有する回路規模の大きなCPUを用いなければならず、マイクロコンピュータの小型化を図ることができないという問題がある。また、この場合、多重割込が不要なマイクロコンピュータには、不要な機能を有するCPUを使用することになり、マイクロコンピュータのコストアップになるという問題もある。
【0011】
また、CPUの汎用性を高めるには、周辺回路が発生する割込要求の種類が多く、各割込要求毎に設定される優先順位のデータ長(ビット数)が大きくなっても優先順位記憶用のレジスタに記憶できるように、そのレジスタの容量(換言すればレジスタのビット数)をできるだけ大きくする必要がある。よって、従来のCPUを各種用途のマイクロコンピュータにて共用できるようにするには、CPUの回路規模が益々大きくなってしまい、これによっても、マイクロコンピュータの小型化を図ることができないという問題が生じる。
【0012】
本発明は、こうした問題に鑑みなされたもので、多重割込の要・否に関係なく共通のCPUを使用することができ、しかも、そのCPUの機能を必要最小限に抑えてCPUの回路規模を小さくできる割込コントローラ、及びこの割込コントローラを用いたマイクロコンピュータを提供することを目的とする。
【0013】
【課題を解決するための手段】
かかる目的を達成するためになされた請求項1記載の割込コントローラにおいては、前述した従来の割込コントローラと同様、周辺回路から割込要求が入力されると、その割込要求とCPUが現在実行中の割込処理との優先順位を比較して、周辺回路からの割込要求の優先順位が高い場合に、CPUへ割込要求信号(CPU割込要求信号)を出力し、更にこの割込要求信号の出力後に、CPUから割込準備完了を表す応答信号を受けると、割込要求に対応した割込処理をCPUに実行させるための割込識別情報を、CPUに対して、直接又は外部の割込識別情報伝達手段を介して間接的に出力する。
【0014】
そして、特に、本発明の割込コントローラには、レベル情報記憶・更新手段が備えられており、このレベル情報記憶・更新手段は、CPUへの割込要求信号の出力に伴い、CPUが実行している割込処理の優先順位を表すレベル情報を記憶すると共に、割込要求信号の出力によってCPUが実行中の割込処理を中断した際には、その中断した割込処理のレベル情報を所定の記憶媒体に退避させ、更に、CPUがその中断した割込処理を再開する際には、記憶媒体から割込処理に対応したレベル情報を読み出し、レベル情報を更新する。
【0015】
つまり、本発明の割込コントローラは、レベル情報記憶・更新手段を設けることにより、従来、CPU側で管理(記憶)していたレベル情報(CPUが実行中の割込処理の優先順位)を、割込コントローラ側で管理できるようにしたものである。
【0016】
このため、本発明の割込コントローラを用いれば、CPU側に、現在実行中の割込処理の優先順位を記憶するための記憶部(レジスタ等)を設ける必要がなく、CPUの回路規模を小さくすることができる。よって、本発明によれば、多重割込が不要な小規模なマイクロコンピュータと、多重割込が必要な大規模なマイクロコンピュータとを、同一仕様のCPUを用いて構成した際に、多重割込が不要な小規模なマイクロコンピュータの小型化、低コスト化を図ることができる。
【0017】
ところで、本発明の割込コントローラにおいては、請求項2記載のように、レベル情報記憶・更新手段にCPUが実行中の割込処理のレベル情報を記憶しておくためのレベル情報記憶部(レジスタ等)が設けられることになる。そして、このレベル情報記憶部に記憶可能な情報量(換言すればレベル情報記憶部の容量)としては、周辺回路が発生する割込要求の種類に応じて設定されるレベル情報を記憶可能であればよく、そのレベル情報のデータ長に比べて充分大きい情報量に設定してもよい。
【0018】
しかし、このようにすると、割込コントローラの大型化を招き、延いてはこの割込コントローラが適用されるマイクロコンピュータの小型化を図ることができなくなる。
従って、割込コントローラのレベル情報記憶・更新手段に設けられるレジスタ等のレベル情報記憶部に記憶可能な情報量としては、請求項2に記載のように、周辺回路が発生する割込要求毎に設定されるレベル情報のデータ長に対応して設定することが望ましい。そして、このようにすれば、レベル情報記憶・更新手段に設けられるレベル情報記憶部の容量を必要最小限に設定することができ、割込コントローラ、延いてはマイクロコンピュータの小型化を容易に図ることが可能となる。
【0019】
つまり、本発明の割込コントローラによれば、従来CPU側で行っていた割込処理の優先順位の管理を、割込コントローラ単体で行うことができることから、割込処理の優先順位の管理機能を持たない汎用CPUを用いて各種マイクロコンピュータを構築できるできるだけでなく、割込コントローラに組み込むレベル情報記憶部の容量を適宜設定することにより、汎用CPUを用いて割込処理を行うマイクロコンピュータを必要最小限の大きさで実現できることになる。
【0020】
一方、CPUから割込準備完了を表す応答信号を受けた際に、割込コントローラがCPUに対して直接又は外部の割込識別情報伝達手段を介して間接的に出力する割込識別情報としては、周辺回路からの割込要求を識別可能な情報であればよく、例えば、一定の信号パターンであってもよいが、特に、請求項3に記載のように、CPUの割込処理ルーチンに対応したベクタアドレスとすれば、CPUは、そのベクタアドレスをプログラムカウンタに格納するだけで割込処理を実行できるので、CPU側で割込処理を速やかに開始することができるようになる。
【0021】
次に、請求項4記載の発明は、上記請求項1〜請求項3何れか記載の割込コントローラを用いたマイクロコンピュータに関するものであり、上記割込コントローラに加えて、割込コントローラからの割込要求信号を受けて対応する割込処理を行うCPUと、割込コントローラに対して各種割込要求を行う複数の周辺回路とを備える。従って、請求項4記載のマイクロコンピュータによれば、周辺回路が割込要求を発生した際に、その割込要求の優先順位が、CPUが実行中の割込処理の優先順位よりも高い場合には、その割込処理が中断されて、周辺回路が発生した割込要求に対応した割込処理が実行されることになり、多重割込可能なマイクロコンピュータとなる。
【0022】
ところで、こうした多重割込可能なマイクロコンピュータでは、CPUは、割込コントローラからの割込要求信号(CPU割込要求信号)を受けると、一般的な割込例外処理(プログラム)を実行することにより、現在実行中の割込処理を中断し、その割込処理を再開するのに必要な処理情報(具体的にはプログラムカウンタの値やフラグ等の処理状態を表す情報)を、RAM等の外部の記憶媒体に退避(スタック)させ、その後、CPU割込要求信号に対応した割込処理が完了すると、一般的な割込復帰処理(プログラム)を実行することにより、外部の記憶媒体から退避(スタック)しておいた処理情報を読み出して、先に中断した割込処理を再開することになる。そして、本発明(請求項1〜請求項3)の割込コントローラは、レベル情報記憶・更新手段を設けることにより、こうしたCPUの動作に連動して、レベル情報の退避(スタック)及び読み出しを行うようにされている。
【0023】
従って、本発明(請求項4)のマイクロコンピュータにおいて、割込コントローラが、CPUに対して多重割込を行った際には、従来のマイクロコンピュータと同様、新たな割込処理の実行後に、多重割込によって中断した元の割込処理を問題なく実行することができるのであるが、CPU側での処理情報の退避(スタック)及び読み出しのタイミングと、割込コントローラ側でのレベル情報の退避(スタック)及び読み出しのタイミングとを、夫々、異なるタイミングに設定すると、新たな割込処理の実行開始或いは中断した割込処理の復帰に要する時間が長くなってしまう。
【0024】
そこで、こうした問題を防止するには、CPU及び割込コントローラ側のレベル情報記憶・更新手段を、請求項5に記載のように構成するとよい。
即ち、請求項5記載のマイクロコンピュータにおいて、CPUは、割込コントローラから割込要求信号を受けると、現在実行中の割込処理を中断して、その割込処理を再開するのに必要な処理情報を外部の記憶媒体に退避させるのと同時に、割込コントローラに退避指令を出力することにより、処理情報とレベル情報記憶・更新手段に記憶されたレベル情報とを同一の記憶媒体に同時に退避させる割込例外処理を実行する。
【0025】
また、CPUは、実行中の割込処理を完了して、先に中断した割込処理を再開する際には、外部の記憶媒体から処理情報を読み出すのと同時に、割込コントローラに復帰指令を出力することにより、レベル情報記憶・更新手段に対して、処理情報の読み出しと同時にレベル情報を読み出させる、割込復帰処理を実行する。
【0026】
一方、割込コントローラ側では、レベル情報記憶・更新手段が、CPUが出力してくる退避指令及び復帰指令を受けて、記憶媒体に対するレベル情報の退避及び読み出しを夫々行う。
このため、請求項5記載のマイクロコンピュータによれば、CPU側での処理情報の退避及び読み出しのタイミングと、割込コントローラ側でのレベル情報の退避(スタック)及び読み出しのタイミングとを一致させ、これら各情報を、RAM等の同一の記憶媒体に対して同時に退避(スタック)させると共に、同時に読み出すことができるようになり、CPU側での多重割込に対応する新たな割込処理の実行開始及び中断した割込処理の復帰に要する時間を短くすることが可能となる。
【0027】
【発明の実施の形態】
以下に本発明の一実施形態(実施例)について図面を用いて説明する。
図1は、本発明が適用された実施例のマイクロコンピュータの要部の構成を表すブロック図である。
【0028】
本実施例のマイクロコンピュータは、図1に示すCPU2、割込コントローラ4、RAM6に加え、図示しないROMや、各種周辺回路(例えばA/Dコンバータ、タイマ,PWM(パルス幅変調)波形発生回路等)等を備える。そして、これら各部は、互いに、アドレスバス8、データバス9、コントロールバス(図示せず)によって接続されており、CPU2及び割込コントローラ4は同一の2相クロックを受けて動作する。
【0029】
ここで、A/Dコンバータ、タイマ、PWM波形発生回路等の周辺回路は、夫々、イベントが発生する毎に、割込コントローラ4に対して割込要求信号を出力する。このイベントとしては、例えばA/DコンバータにあってはA/D変換の終了などが相当し、タイマにあってはタイマのオーバーフローなどが相当する。そして、各周辺回路は、イベントが発生すると割込要求信号を無効レベルであるLow レベルから有効レベルであるHighレベルに変化させ、以降、CPU2がその割込要求信号に対応する周辺回路に対し割込クリア命令を実行するまでの間、割込要求信号をHighレベルに保持する。
【0030】
次に、CPU2は、例えば複数のステージからなるパイプライン構造を有し、プログラム格納用の図示しないROMに記憶された命令のフェッチ、周辺回路やRAMへのデータのリード/ライト、命令の実行などを並列処理するように構成されている。そして、CPU2には、こうした処理を実行するための制御部22、制御部22が各種処理を実行する際に使用するデータが一時的に書き込まれる汎用レジスタ24(本実施例では、汎用レジスタ24は、レジスタ0〜レジスタ15の16個のレジスタからなる)、例えばキャリーフラグの値等、制御部22が実行中の処理の状態を表す情報を記憶するシステムレジスタ(PSR)26、及び、制御部22が実行中の処理の位置を記憶するプログラムカウンタ(PC)28、等が備えられている。
【0031】
また、CPU2は、本発明に係わる主要な機能である多重割込を実現するために、割込コントローラ4からCPU割込要求信号INTRが入力されると、図2(a)に示す後述の割込例外処理を実行することにより、現在実行中の処理を中断して、CPU割込要求信号INTRに対応した割込処理を優先的に実行し、その割込処理が完了すると、図2(b)に示す後述の割込復帰処理を実行することにより、先に中断した処理を再開するようにされている。
【0032】
一方、割込コントローラ4には、上記各周辺回路からの割込要求信号に対応した割込処理の優先順位が予め設定された割込優先順位設定レジスタ42、複数の割込要求信号が同時に入力されているときに、割込優先順位設定レジスタ42から出力される各割込要求信号に対応した優先順位の中から、最も優先順位の高い割込要求信号を選択する優先順位判定回路44、CPU2が現在実行中の割込処理の優先順位を表す割込マスクレベルを記憶する割込マスクレベルレジスタ46、及び、優先順位判定回路44にて最も優先順位が高いと判定された割込要求信号の優先順位と、割込マスクレベルレジスタ46に記憶された割込マスクレベルとを比較し、優先順位判定回路44にて最も優先順位が高いと判定された割込要求信号の優先順位の方が、現在CPU2が実行している割込処理の優先順位よりも高い場合に、CPU2に対してCPU割込要求信号INTRを出力する比較器48が設けられている。
【0033】
尚、割込マスクレベルレジスタ46は、本発明(請求項2記載)のレベル情報記憶部に相当するものであり、本実施例では、各周辺回路からの割込要求信号に対応した割込処理の優先順位が、割込処理の種類に応じて割込マスクレベルとして3ビットの情報を記憶できるように構成されている。これは、上記各周辺回路からの割込要求信号に対して設定される優先順位が、例えば0番から7番までとなっており、3ビットの2値データで記述されているからである。
【0034】
また、割込コントローラ4は、割込識別情報伝達手段として、上記各周辺回路からの割込要求信号に対応した割込処理をCPU2に実行させるためのベクタアドレス(請求項1記載の割込識別情報に相当)が予め記憶されたベクタアドレス記憶部50を備える。そして、このベクタアドレス記憶部50は、比較器48がCPU2に対してCPU割込要求信号INTRを出力した後に、後述の割込例外処理によってCPU2から入力される応答信号INTACKを受けて、CPU割込要求信号INTRに対応したベクタアドレスをデータバス9上に出力する。この結果、CPU2は、データバス9を介してベクタアドレスを読み込むことにより、CPU割込要求信号INTRに対応した割込処理を実行することができるようになる。
【0035】
また更に、割込コントローラ4には、比較器48からCPU2へのCPU割込要求信号INTRの出力、及び、CPU2からの応答信号INTACKの入力を監視し、割込マスクレベルレジスタ46の内容(CPU2が実行する割込処理の優先順位)を更新する制御部52が設けられている。この結果、比較器48がCPU割込要求信号INTRを出力して、CPU2がこのCPU割込要求信号INTRに対応した割込処理を実行する際には、制御部52の動作によって、割込マスクレベルレジスタ46の内容が、CPU2が実際に実行する割込処理に対応するように更新されることになる。
【0036】
一方、上記のように、CPU2が、CPU割込要求信号INTRを受けて、そのとき実行中の割込処理を中断した際には、CPU2は、そのCPU割込要求信号INTRに対応した割込処理を完了した後、中断した割込処理を再開する。このため、制御部52による割込マスクレベルレジスタ46の更新動作だけでは、割込マスクレベルレジスタ46の内容を、CPU2が実際に実行している割込処理の優先順位を表す割込マスクレベルに設定することができない。
【0037】
そこで、本実施例では、CPU2が、CPU割込要求信号INTRを受けて、そのとき実行中の割込処理を中断した際には、後述の割込例外処理を実行することにより、割込マスクレベルの待避指令として、割込マスクレベルスタック信号STKを割込コントローラ4に出力し、その後、その中断した割込処理を再開する際には、後述の割込復帰処理を実行することにより、割込マスクレベルの復帰指令として、割込マスクレベルリターン信号RTNを割込コントローラ4に出力するようにされている。
【0038】
そして、割込コントローラ4側では、CPU2から割込マスクレベルスタック信号STKが入力されると、割込マスクレベルレジスタ46が、データバス9を構成する割込マスクレベルのビット数分(本実施例では3ビット)の信号線上に、内部の割込マスクレベルを出力することにより、RAM6の所定のスタック領域に、CPU2が中断した割込処理の優先順位を表す割込マスクレベルを待避(スタック)させ、逆に、CPU2から割込マスクレベルリターン信号RTNが入力されると、割込マスクレベルレジスタ46が、割込マスクレベルの出力に用いたデータバス9の信号線を介して、RAM6に待避(スタック)した割込マスクレベルを取り込むようにされている。
【0039】
つまり、こうすることで、割込マスクレベルレジスタ46の内容(割込マスクレベル)を、常に、CPU2が実行中の割込処理の優先順位に対応させることができるようにしているのである。尚、本実施例においては、割込マスクレベルレジスタ46と制御部52とにより、本発明のレベル情報記憶・更新手段としての機能が実現される。
【0040】
次に、CPU2において実行される割込例外処理及び割込復帰処理について説明する。
まず、図2(a)は、 割込コントローラ4からCPU割込要求信号INTRが入力され、割込の準備が完了した際に実行される割込例外処理を表すフローチャートである。
【0041】
この割込例外処理は、請求項5に記載の割込例外処理に相当するものであり、処理が開始されると、まずS110(Sはステップを表す)にて、割込コントローラ4に対して、割込準備完了を表す応答信号INTACKを出力して、割込コントローラ4から、CPU割込要求信号INTRに対応した処理を実行するためのベクタアドレスを読み込む。次に、続くS120では、割込コントローラ4からCPU割込要求信号INTRを受け付けた時点で実行中の命令が終了するのを待ち、その命令が終了すると(S120:YES)、S130に移行する。
【0042】
そして、S130では、アドレスバス8を介して、RAM6の所定のスタック領域を指定すると共に、割込コントローラ4に対して、割込マスクレベルスタック信号STKを出力し、更に、システムレジスタ(PSR)26及びプログラムカウンタ(PC)28から、データバス9の所定の信号線上に内部のデータを出力させることにより、RAM6の所定のスタック領域に、CPU割込要求信号INTRの入力に伴い中断した割込処理のPSR値,PC値,及び割込マスクレベルを待避(スタック)させる。
【0043】
尚、S130の処理は、CPU割込要求信号INTRの入力に伴い中断した割込処理のPSR値及びPC値と、その割込処理の優先順位を表す割込マスクレベルレジスタ46内の割込マスクレベルとを、同時に、RAM6の所定のスタック領域に待避(スタック)させるための処理であり、システムレジスタ(PSR)26及びプログラムカウンタ(PC)28内のデータ(PSR値及びPC値)は、データバス9を構成する全ビット数分(本実施例では32ビット)の信号線の内、割込マスクレベルレジスタ46が内部の割込マスクレベルを出力するのに使用する上位3ビット分の信号線とは異なる信号線上に出力される。
【0044】
具体的には、図3に示すように、割込マスクレベルレジスタ46に記憶された割込マスクレベルが、データバス9の上位3ビット分の信号線を使ってRAM6に転送され、プログラムカウンタ(PC)28の値(PC値:本実施例では、24ビット)が、データバス9の下位24ビット分の信号線を使ってRAM6に転送され、システムレジスタ(PSR)26に記憶されたデータ(PSR値:本実施例では、5ビット)が、データバス9を構成する残りの5ビット分の信号線を使ってRAM6に転送される。
【0045】
そして、このようにS130の処理によって、CPU2が中断した割込処理に対応する各データがRAM6に待避(スタック)されると、続くS140に移行して、S110で読み込んだベクタアドレスを、プログラムカウンタ(PC)28にセットすることにより、割込コントローラ4からのCPU割込要求信号INTRに対応した新たな割込処理を開始させる。
【0046】
一方、図2(b)は、上記割込例外処理によって開始させた割込処理が完了したときに発生するリターン指令によって実行される割込復帰処理を表すフローチャートである。そして、この割込復帰処理は、S210にて、アドレスバス8を介して、RAM6の所定のスタック領域を指定することにより、RAM6からデータバス9上に、上述の割込マスクレベル,PSR値,PC値からなる最新のスタック情報を出力させると共に、割込コントローラ4に対して、割込マスクレベルリターン信号RTNを出力することにより、データバス9を構成する全信号線の内、割込マスクレベルの出力に用いた信号線から、割込マスクレベルを取り込ませ、更に、データバス9の残りの信号線(本実施例では29ビット分)からPSR値及びPC値を取り込み、これら各値を、システムレジスタ(PSR)26及びプログラムカウンタ(PC)28に夫々書き込む、といった手順で実行される。
【0047】
この結果、CPU2においては、割込コントローラ4からのCPU割込要求信号INTRによって前回中断した割込処理が再開され、しかも、割込コントローラ4の割込マスクレベルレジスタ46には、その再開した割込処理の優先順位を表す割込マスクレベルが格納されることになる。
【0048】
以上説明したように、本実施例のマイクロコンピュータにおいては、多重割込可能なマイクロコンピュータにおいて従来CPU側に設けていた割込マスクレベルレジスタを、割込コントローラ4側に設け、割込コントローラ4側で、CPUが実行中の割込処理の優先順位を管理するようにされている。
【0049】
このため、多重割込可能なマイクロコンピュータを実現するに当たって、本実施例の割込コントローラ4を用いるようにすれば、CPU2側に、割込マスクレベルレジスタを設ける必要がないので、CPU2の回路規模を小さくすることができる。そして、このCPU2を、多重割込が不要で、割込コントローラ4を設ける必要のない小規模なマイクロコンピュータと、本実施例のような多重割込が必要な大規模なマイクロコンピュータとで共用するようにすれば、多重割込が不要な小規模なマイクロコンピュータの小型化、低コスト化を図ることができるようになる。
【0050】
また、本実施例では、CPU2が、割込コントローラ4からのCPU割込要求信号INTRに従い今まで実行していた割込処理を中断して新たな割込処理を開始する際に、中断した割込処理を再開するのに必要な処理情報(PSR値及びPC値)をRAM6に待避(スタック)するのと同時に、割込マスクレベルレジスタ46に記憶された割込マスクレベルをRAM6に待避(スタック)させ、その後、その割込処理を再開する際に、CPU2がRAM6から処理情報(PSR値及びPC値)を読み出し、システムレジスタ(PSR)26及びプログラムカウンタ(PC)に書き込むのと同時に、割込マスクレベルレジスタ46が割込マスクレベルをRAM6から読み出し、割込マスクレベルを更新するようにされている。
【0051】
このため、本実施例のマイクロコンピュータによれば、割込コントローラ4が、CPU2に対して多重割込を行った際に、その割込処理の実行後に、多重割込によって中断した元の割込処理を実行することができるだけでなく、CPU2が現在実行中の割込処理を中断して、新たな割込処理を開始するのに要する時間、及び、新たな割込処理の実行後に、元の割込処理に復帰するのに要する時間が、従来のマイクロコンピュータに比べて長くなるようなことはなく、割込処理の開始・復帰を速やかに行うことができる。
【0052】
以上、本発明の一実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
例えば、上記実施例では、データバス9が32ビットであり、CPU2が割込処理を中断/復帰させる際には、このデータバス9を構成する信号線を、割込マスクレベル転送用と、PSR値転送用と、PC値転送用とに分割して使用し、これら各データを同時に転送するものとして説明したが、例えば、これら各データ値のビット数の合計が上記実施例と同じ32ビットであり、データバス9が16ビットであるような場合には、これら各データの転送を2回に分けて行う、というように、RAM6に対する割込処理用データの待避及びRAM6からの割込処理用データの復帰(読取)時には、データバスを利用して複数回に分けてデータ転送を行うようにしてもよい。
【0053】
また、上記実施例では、割込マスクレベルを3ビットとして説明したが、例えば、周辺回路から入力される割込要求信号の種類が少なく、各割込要求信号の優先順位を2ビットの2値データで記述できる場合には、割込マスクレベルレジスタ46を2ビットの2値データを記憶可能に構成し、割込コントローラ4からRAM6には、2ビットの割込マスクレベルを転送するようにするとよい。また、例えば、周辺回路から入力される割込要求信号の種類が多く、各割込要求信号の優先順位を3ビットの2値データで記述できない場合には、割込マスクレベルレジスタ46のビット数を、優先順位を記述した2値データのビット数(例えば5ビット)に設定し、割込コントローラ4からRAM6には、この割込マスクレベル(5ビット)を、上位3ビットと下位2ビットというように2回に分けて転送するようにしてもよい。
【0054】
また、上記実施例では、CPU2から応答信号INTACKを受けて割込コントローラ4がCPU2へ出力する割込識別情報として、ベクタアドレスを用いるものとして説明したが、この識別情報としては、ベクタアドレスに限らず、CPU2が実行すべき割込処理を識別可能となる情報であれば、例えば、一定の信号パターンなどであっても良い。また、割込コントローラ4は、その割込識別情報を、データバス9を介してCPU2に送るのではなく、パラレルまたはシリアルの信号線で送るようにしても良い。
【0055】
また、上記実施例では、割込コントローラ4は、割込識別情報伝達手段として、ベクタアドレス記憶部50を内蔵するものとして説明したが、ベクタアドレス記憶部50と同じ機能を有する回路を、割込コントローラ4の外部に設け、割込コントローラ4は、この回路から、ベクタアドレス(割込識別情報)を出力させるようにしてもよい。
【図面の簡単な説明】
【図1】 実施例のマイクロコンピュータにおける本発明に係わる主要部の構成を表すブロック図である。
【図2】 CPUにて実行される割込例外処理及び割込復帰処理を表すフローチャートである。
【図3】 割込例外処理及び割込復帰処理の際にデータバスを介して転送される割込処理用データの構成を表す説明図である。
【符号の説明】
2…CPU、4…割込コントローラ、6…RAM、8…アドレスバス、9…データバス、22…制御部、24…汎用レジスタ、26…システムレジスタ(PSR)、28…プログラムカウンタ(PC)、42…割込優先順位設定レジスタ、44…優先順位判定回路、46…割込マスクレベルレジスタ、48…比較器、
50…ベクタアドレス記憶部、52…制御部。
Claims (5)
- CPUと周辺回路との間に設けられ、該周辺回路から割込要求が入力されると、該割込要求と前記CPUが現在実行中の割込処理との優先順位を比較し、前記周辺回路からの割込要求の優先順位が高い場合に、前記CPUへ割込要求信号を出力すると共に、該割込要求信号の出力後、前記CPUから割込準備完了を表す応答信号を受けると、前記割込要求に対応した割込処理を前記CPUに実行させるための割込識別情報を、前記CPUに対して、直接又は外部の割込識別情報伝達手段を介して間接的に出力する割込コントローラにおいて、
前記割込要求信号の出力に伴い前記CPUが実行している割込処理の優先順位を表すレベル情報を記憶すると共に、前記割込要求信号の出力により前記CPUが実行中の割込処理を中断した際には、該中断した割込処理のレベル情報を所定の記憶媒体に退避させ、更に、前記CPUが該中断した割込処理を再開する際には、該記憶媒体から該割込処理に対応したレベル情報を読み出し、レベル情報を更新するレベル情報記憶・更新手段を備えたことを特徴とする割込コントローラ。 - 前記レベル情報記憶・更新手段は、前記CPUが実行中の割込処理のレベル情報を記憶しておくためのレベル情報記憶部を備え、
該レベル情報記憶部に記憶可能な情報量は、前記周辺回路が発生する割込要求毎に設定されるレベル情報のデータ長に対応して設定されていることを特徴とする請求項1記載の割込コントローラ。 - 前記割込識別情報は、前記CPUの割込処理ルーチンに対応したベクタアドレスであることを特徴とする請求項1又は請求項2記載の割込コントローラ。
- 請求項1〜請求項3何れか記載の割込コントローラと、
該割込コントローラからの割込要求信号を受けて対応する割込処理を行うCPUと、
前記割込コントローラに対して各種割込要求を行う複数の周辺回路と、
を備えたことを特徴とするマイクロコンピュータ。 - 前記CPUは、
前記割込コントローラから割込要求信号を受けると、現在実行中の割込処理を中断して、該割込処理を再開するのに必要な処理情報を外部の記憶媒体に退避させるのと同時に、前記割込コントローラに退避指令を出力することにより、該処理情報と前記レベル情報記憶・更新手段に記憶されたレベル情報とを同一の記憶媒体に同時に退避させる割込例外処理を実行し、
実行中の割込処理を完了して、先に中断した割込処理を再開する際には、前記外部の記憶媒体から前記処理情報を読み出すのと同時に、前記割込コントローラに復帰指令を出力することにより、前記レベル情報記憶・更新手段に対して、前記処理情報の読み出しと同時に前記レベル情報を読み出させる、割込復帰処理を実行するよう構成され、
前記割込コントローラにおいて、前記レベル情報記憶・更新手段は、前記CPUが出力してくる退避指令及び復帰指令を受けて、前記記憶媒体に対する前記レベル情報の退避及び読み出しを夫々行うことを特徴とする請求項4記載のマイクロコンピュータ。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000152589A JP4151198B2 (ja) | 1999-06-23 | 2000-05-24 | 割込コントローラ及びマイクロコンピュータ |
US09/598,321 US6581119B1 (en) | 1999-06-23 | 2000-06-21 | Interrupt controller and a microcomputer incorporating this controller |
EP00113412A EP1063594B1 (en) | 1999-06-23 | 2000-06-23 | An interrupt controller and a microcomputer incorporating this controller |
DE60027357T DE60027357T2 (de) | 1999-06-23 | 2000-06-23 | Eine Unterbrechungssteuerung und ein Mikrorechner, der diese Unterbrechungssteuerung beinhaltet |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11-177064 | 1999-06-23 | ||
JP17706499 | 1999-06-23 | ||
JP2000152589A JP4151198B2 (ja) | 1999-06-23 | 2000-05-24 | 割込コントローラ及びマイクロコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001067235A JP2001067235A (ja) | 2001-03-16 |
JP4151198B2 true JP4151198B2 (ja) | 2008-09-17 |
Family
ID=26497739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000152589A Expired - Fee Related JP4151198B2 (ja) | 1999-06-23 | 2000-05-24 | 割込コントローラ及びマイクロコンピュータ |
Country Status (4)
Country | Link |
---|---|
US (1) | US6581119B1 (ja) |
EP (1) | EP1063594B1 (ja) |
JP (1) | JP4151198B2 (ja) |
DE (1) | DE60027357T2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001256062A (ja) * | 2000-03-09 | 2001-09-21 | Omron Corp | 割込処理方法およびその方法を用いた演算処理装置 |
GB2381891B (en) * | 2001-11-12 | 2003-10-29 | Mentor Graphics | Testing the interrupt priority levels in a microprocessor |
GB2381890B (en) * | 2001-11-12 | 2003-10-29 | Mentor Graphics | Testing the interrupt sources of a microprocessor |
US6823414B2 (en) * | 2002-03-01 | 2004-11-23 | Intel Corporation | Interrupt disabling apparatus, system, and method |
JP2004157730A (ja) * | 2002-11-06 | 2004-06-03 | Renesas Technology Corp | マイクロコンピュータ |
JP4017646B2 (ja) * | 2003-06-20 | 2007-12-05 | 富士通株式会社 | 割り込み制御方法、割り込み制御装置及び割り込み制御プログラム |
GB2433794B (en) | 2005-12-21 | 2010-08-18 | Advanced Risc Mach Ltd | Interrupt controller utiilising programmable priority values |
US7822899B2 (en) | 2007-03-08 | 2010-10-26 | Renesas Electronics Corporation | Data processor and control system |
GB2461851A (en) * | 2008-07-10 | 2010-01-20 | Cambridge Consultants | Processor, which stores interrupt enable flags in a location used for other functions |
JP2011076584A (ja) * | 2009-09-02 | 2011-04-14 | Renesas Electronics Corp | 半導体集積回路装置 |
US8725923B1 (en) * | 2011-03-31 | 2014-05-13 | Emc Corporation | BMC-based communication system |
US8850450B2 (en) | 2012-01-18 | 2014-09-30 | International Business Machines Corporation | Warning track interruption facility |
US9104508B2 (en) | 2012-01-18 | 2015-08-11 | International Business Machines Corporation | Providing by one program to another program access to a warning track facility |
US9110878B2 (en) * | 2012-01-18 | 2015-08-18 | International Business Machines Corporation | Use of a warning track interruption facility by a program |
CN103414525B (zh) * | 2013-07-18 | 2015-04-01 | 中国电子科技集团公司第四十一研究所 | 超外差接收分析仪器通道输出电平的自动调节系统及方法 |
CN109933549B (zh) * | 2019-01-30 | 2022-04-05 | 中山大学 | 一种适用于risc-v处理器的中断控制器 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4001783A (en) * | 1975-03-26 | 1977-01-04 | Honeywell Information Systems, Inc. | Priority interrupt mechanism |
US4734882A (en) * | 1985-04-01 | 1988-03-29 | Harris Corp. | Multilevel interrupt handling scheme |
JPH0328951A (ja) | 1989-06-26 | 1991-02-07 | Nec Corp | 入出力制御装置 |
JPH0573472A (ja) | 1991-09-13 | 1993-03-26 | Mazda Motor Corp | 割り込み処理装置 |
JP3715328B2 (ja) | 1992-09-21 | 2005-11-09 | 株式会社東芝 | データ処理装置 |
JPH07262023A (ja) | 1994-03-23 | 1995-10-13 | Fujitsu Ltd | 割込制御方式 |
US5850558A (en) | 1995-12-19 | 1998-12-15 | Advanced Micro Devices | System and method for referencing interrupt request information in a programmable interrupt controller |
JP3676882B2 (ja) * | 1996-06-12 | 2005-07-27 | 株式会社リコー | マイクロプロセッサ及びその周辺装置 |
JPH10260849A (ja) * | 1997-03-19 | 1998-09-29 | Mitsubishi Electric Corp | 情報処理装置および割り込み制御方法 |
JP4046386B2 (ja) | 1997-05-29 | 2008-02-13 | ポーラ化成工業株式会社 | 酸化抑制剤 |
JP3699806B2 (ja) | 1997-06-20 | 2005-09-28 | 株式会社東芝 | 割込みコントローラ及び制御システム |
US5968159A (en) * | 1997-09-12 | 1999-10-19 | Infineon Technologies Corporation | Interrupt system with fast response time |
JPH11110233A (ja) | 1997-10-02 | 1999-04-23 | Sony Corp | 割り込み受け付け装置および信号処理装置 |
-
2000
- 2000-05-24 JP JP2000152589A patent/JP4151198B2/ja not_active Expired - Fee Related
- 2000-06-21 US US09/598,321 patent/US6581119B1/en not_active Expired - Fee Related
- 2000-06-23 DE DE60027357T patent/DE60027357T2/de not_active Expired - Lifetime
- 2000-06-23 EP EP00113412A patent/EP1063594B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001067235A (ja) | 2001-03-16 |
EP1063594B1 (en) | 2006-04-19 |
US6581119B1 (en) | 2003-06-17 |
EP1063594A3 (en) | 2002-01-23 |
DE60027357T2 (de) | 2007-04-19 |
DE60027357D1 (de) | 2006-05-24 |
EP1063594A2 (en) | 2000-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4151198B2 (ja) | 割込コントローラ及びマイクロコンピュータ | |
US5659759A (en) | Data processing device having improved interrupt controller to process interrupts of different priority levels | |
JPS6040067B2 (ja) | 分散制御型多重処理システム | |
JPH02267634A (ja) | 割込み処理装置 | |
KR20050075722A (ko) | 프로세서 시스템, dma 제어 회로, dma 제어 방법,dma 제어기의 제어 방법, 화상 처리 방법, 및 화상처리 회로 | |
JP3676882B2 (ja) | マイクロプロセッサ及びその周辺装置 | |
US20130036426A1 (en) | Information processing device and task switching method | |
JP2004516547A (ja) | 中断制御装置 | |
JP3715328B2 (ja) | データ処理装置 | |
JP2000099452A (ja) | Dma制御装置 | |
JP2004213666A (ja) | Dmaモジュールとその操作方法 | |
JP2522412B2 (ja) | プログラマブルコントロ―ラと入出力装置の間の通信方法 | |
JP2005276104A (ja) | マイクロコンピュータ | |
JPS59218569A (ja) | マイクロ・コンピユ−タ | |
JP3139310B2 (ja) | ディジタル信号処理装置 | |
JP2635863B2 (ja) | 中央処理装置 | |
JP2002278753A (ja) | データ処理システム | |
JP3362673B2 (ja) | チャネルコントロール装置 | |
JPS59144955A (ja) | 情報処理装置 | |
JP2001306335A (ja) | コンピュータ | |
JP3127737B2 (ja) | ディジタル信号処理装置 | |
JP2847729B2 (ja) | 情報処理装置 | |
JPH09160786A (ja) | マイクロプロセッサ | |
JPH06348671A (ja) | プログラム転送方式 | |
JPH04162135A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060616 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080530 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080610 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080623 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110711 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120711 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120711 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130711 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |