(57)【特許請求の範囲】
【請求項１】
複数の割り込み優先レベルの内の１つの割り込み優先レベルを示す割り込み要求を受け取る入力手段と、
最低割り込み優先レベルからマスクレジスタに設定された割り込み優先レベルまでの割り込み優先レベルを有する割り込み要求をマスクする割り込みマスク手段と、
前記割り込みマスク手段がマスクする割り込み優先レベルの内、最大割り込み優先レベルを保持するマスクレベル保持手段と、
前記入力手段が送出する第１割り込み要求の割り込み優先レベルを受け取り、前記第１割り込み要求を受け入れて前記第１割り込み要求のための第１割り込み受け付けバスサイクルを開始し、その後、前記第１割り込み受け付けバスサイクル中に、前記第１割り込み要求の割り込み優先レベルよりも高い割り込み優先レベルを有する第２割り込み要求の割り込みベクタとを、第２割り込み受け付けバスサイクルを開始することなく受け取る制御手段とを有し、
前記制御手段は、前記第１割り込み受け付けバスサイクルの完了前に、前記入力手段が提供した前記第２割り込み要求の割り込み優先レベルを入力し、この第２割り込み要求の割り込み優先レベルの値を、割り込み処理実行期間中のマスクレベルとして前記マスクレベル保持手段に設定し、前記割り込みマスク手段に対し、前記入力手段から新しく受け取った前記第２割り込み要求の割り込み優先レベルと同じか低い割り込み優先レベルを有する割り込み要求をマスクするように命令することを特徴とするデータ処理装置。
【請求項２】
複数の割り込み優先レベルの内１つの割り込み優先レベルに設定された割り込み要求を受け取るための入力手段と、
最低割り込み優先レベルからマスクレジスタに設定された割り込み優先レベルまでの割り込み優先レベルを有する割り込み要求をマスクする割り込みマスク手段と、
前記割り込みマスク手段がマスクする最大割り込み優先レベルを保持するマスクレベル保持手段と、
前記入力手段が送出する第１割り込み要求の割り込み優先レベルが、前記マスクレベル保持手段に保持するマスクレベルより高ければ、第１割り込み要求を受け取り、割り込み受け付けバスサイクルを実行し、前記第１割り込み要求の割り込み優先レベルより高い第２割り込み要求の割り込み優先レベルを示す割り込みベクタを、前記割り込み受け付けバスサイクルの完了前に受け入れる制御手段とを有し、
前記制御手段は、前記割り込み受け付けバスサイクル実行の完了前及び前記第２割り込みベクタ受け入れと同時に、前記入力手段が送出した割り込み優先レベルが入力され、この第２割り込み要求の割り込み優先レベル値が前記マスクレベル保持手段に割り込み処理実行中に使用されるマスクレベルとして設定され、前記割り込み処理実行中に受け取られる、前記第２割り込み要求の割り込み優先レベルと同じか低い割り込み優先レベルを有する割り込み要求がマスクされるように制御を行うことを特徴とするデータ処理装置。
【請求項３】
割り込みコントローラから、複数の割り込み優先レベルの内の１つの割り込み優先レベルに設定された割り込み要求を受け取るための入力手段と、
最低割り込み優先レベルからマスクレジスタに設定された割り込み優先レベルまでの割り込み優先レベルを有する割り込み要求をマスクする割り込みマスク手段と、
前記割り込みマスク手段がマスクする最大割り込み優先レベルを保持するマスクレベル保持手段と、
制御手段とを有し、
前記制御手段は、前記マスクレベルレジスタが保持するマスクレベルより高い割り込み優先レベルの第１割り込み要求を受け取ることによって割り込み処理開始手順を実行し、第１割り込み受け付けバスサイクルを開始して前記第１割り込み要求の割り込み優先レベルを表す第１データを割り込みコントローラへアドレスバスを介して出力し、データバスから第２割り込み要求の割り込みベクタを受け取り、第２割り込み受け付けバスサイクルを開始せずに第２割り込み要求の割り込み優先レベルを受け取り、前記第２割り込み要求は前記第１割り込み要求の割り込み優先レベルより高い割り込み優先レベルであり、前記割り込みベクタと前記第２割り込み要求の割り込み優先レベルとは前記第１割り込み受け付けバスサイクルに応じて前記割り込みコントロールから出力され、前記マスクレベルレジスタに保持したマスクレベルと前記第２割り込み要求の割り込み優先レベルとを入れ替え、前記第２割り込み要求の割り込み優先レベルが、前記割り込みマスク手段がマスクする最大割り込み優先レベルとして使用されることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、複数の割り込み優先レベルを有するマイクロプロセッサ等のデータ処理装置の割り込み処理起動方式に関し、特に、受け付けた割り込み要因に対応する割り込み処理プログラムを実行する際に、割り込みマスクレベルを自動的に設定し、同時に割り込みコントローラの優先順位調停回路等を簡単化し、それを構成するハードウェア量を減少させると共に、そこで消費される電力を低減させ得るデータ処理装置に関する。
【０００２】
【従来の技術】
複数の優先レベルを備えた割り込み機構は、多数ある割り込み要因の処理プログラムの中から、本当に緊急性の高い割り込み処理に素早く対応するための、非常に強力で重要な技術である。同様に、割り込み受け付け後に割り込み受付バスサイクルを実行し、割り込み処理を要求したデバイスを識別するための割り込みベクタを取り込んで、そのベクタ値から受け付けた割り込み要因に対応する処理ルーチンへ分岐するベクタ割り込み機構も重要な技術である。
【０００３】
これらの割り込み機構は、現在、高性能マイクロプロセッサのほとんどが備えている。割り込み受け付けバスサイクルで割り込みベクタを取り込まなければ、割り込みを要求したデバイスを特定することができず、割り込み処理プログラムの中で割り込み要求デバイスを特定するために、１つ１つ問い合わせ（ポーリング）しなければならない。これは非常に時間がかかるため、割り込みに対する応答時間を増大させることになる。
【０００４】
上記複数の優先レベルを備えた割り込み機構及びベクタ割り込み機構に関する詳細な説明は、例えば「６８０００マイクロコンピュータ；喜田祐三他著、丸善株式会社発行、ISBN4-621-02755-7 C3355 P3502E」に詳しく解説されている。
【０００５】
６８０００マイクロプロセッサ（モトローラ社）等のデータ処理装置における割り込み応答手順は、
(1) 割り込み要求を受け付ける
(2) 割り込み受付バスサイクル（割り込みアクノレッジサイクル）を実行する
(3) 割り込みベクタを受け付ける（取り込む）
(4) ベクタ値からテーブルを検索し、割り込み処理プログラムのアドレスを知る(5) 割り込み処理プログラムに分岐する
というものである（詳細な割り込み例外処理シーケンスは、図５参照）。この途中で、割り込み直前のマイクロプロセッサの内部状態を退避する等、必要な処理が実行されるが、ここではそれは本質ではないので省略する。
【０００６】
ところで、複数の優先レベルを備えた割り込み機構では、受け付けた割り込みの優先レベルに従って、その割り込みに対応した処理プログラムを実行する際に、割り込みマスクレベルを自動的に設定するのが一般的である（６８０００マイクロプロセッサでは図６に示すレベル０からレベル７の割り込みレベルを持ち、図５のステップＳ１０４にて行なう）。
【０００７】
割り込みマスクレベルは、マスクレベルと同じか、それ以下の優先レベルの割り込み要求を無視（マスク）するものである。従って、いま受け付けた割り込み要求の優先レベルをマスクレベルとして設定すれば、同一優先レベルの割り込み要求、及びそれ以下の優先レベルの割り込み要求を無視する。これは、割り込みを受け付けられたデバイスが要求を出し続けている場合も、その要求は無視され、多重に受け付けられることが無いため非常に都合がよい。また、同一優先レベルである複数の割り込み要求の間では、最初に受け付けられた割り込み要求の処理が終了して後に、次の割り込み要求に対応するべきであるから、受け付けた割り込みの優先レベルをマスクレベルとして設定するのは、非常に都合がよい。６８００００マイクロプロセッサでは、優先レベル７だけを例外的に扱っており、割り込みマスクレベルと同一優先レベルの割り込み要求を受け付けるように構成してマスク不可能割り込みとして使用している。
【０００８】
この割り込みマスクレベルの設定方式は大変優れた方式であるが、１つ問題がある。即ち、受け付けられた割り込み優先レベルと一致する割り込み要因に対応した割り込みベクタを返すことが必要な点である。
【０００９】
割り込み処理プログラムのアドレスは割り込みベクタから計算されるため、割り込み受付バスサイクルでマイクロプロセッサが取り込む、（或いは割り込みコントローラまたは割り込み要求デバイスが与える）割り込みベクタは、必ずしも受け付けられた優先レベルと一致する割り込み要因に対応したものでなくても構わないように見える。むしろ、受け付けられた割り込み要求よりも優先レベルの高い割り込み要求が発生している場合、その新たに発生した、より優先レベルの高い割り込み要求に対応した割り込みベクタを取り込ませて、その新たに発生した高優先の割り込み要求に応えてもらう方が望ましい。
【００１０】
ところが、これには問題がある。割り込みベクタは割り込み受付バスサイクルで決定されるが、割り込み処理ルーチンで使用される割り込みマスクレベルは、最初に受け付けた割り込み要求のものが使われるからである。
【００１１】
実際に、マイクロプロセッサが割り込みを受け付けてから、割り込み受付バスサイクルを実行するまでの時間は短いとは限らない。図５に示したように、６８０００マイクロプロセッサの例では、プログラムカウンタの下位２バイトをスタックに退避して（ステップＳ１０５）から、割り込み受付バスサイクルを実行する（ステップＳ１０７）。また、別のマイクロプロセッサでは、割り込み受付とは非同期的に命令のプリフェッチを行なっていることもある。この場合、割り込みを受け付けた時点で実行していたバスサイクルが途中で中断することはない。これらのバスサイクルは通常は数クロックで終了するが、例えば、主記憶に使用しているダイナミックメモリのリフレッシュ動作と競合したり、マルチプロセッサで他のバスマスタと競合した場合等では、数十クロック以上も待たされる。
【００１２】
一般に、割り込み要求信号は時々刻々と変化するものであり、割り込みが受け付けられた瞬間の割り込み要求信号と割り込み受付バスサイクルが実行された瞬間の割り込み要求信号が一致する保証は全く無い。割り込みコントローラでは、割り込み要求デバイスからの割り込み要求を調停し、最高優先レベルの割り込みを判定しているが、これは時々刻々と変化するものである。
【００１３】
６８０００マイクロプロセッサのように、受け付けた優先レベルの割り込みに対応する割り込みベクタを取り込むことが前提である場合、割り込みコントローラは、ある瞬間の最高優先レベルの割り込みを見つけるだけでなく、マイクロプロセッサが割り込み受付バスサイクルを実行したときに指定される（６８０００マイクロプロセッサの場合は、アドレスバスＡ１〜Ａ３に出力される）ところの、マイクロプロセッサが受け付けた優先レベルと同一の割り込み優先レベルを持つ割り込み要求の中で最高優先順に位置する割り込みを見つける必要がある（複数の割り込み要因が同一の割り込み優先レベルを共有する場合があることに注意）。これは、割り込みコントローラにとって非常に大きな負担になり、複雑な機構が必要になる。
【００１４】
また、割り込みが受け付けられた瞬間以降に、それよりも優先レベルの高い割り込み要求信号が発生した場合、新たに発生した高い優先レベルの割り込み要求は、（その優先レベルが高いにも関わらず）後回しになる。少し前に要求して受け付けられた割り込み要求に対応する割り込み処理プログラムに制御が移った時、そこで使われているマスクレベルよりも優先レベルが高い割り込みとして受け付けられるまで、待たされることになる。
【００１５】
割り込みが受け付けられてから割り込み処理プログラムの実行が開始されるまでには、マイクロプロセッサの内部状態を退避する等の処理を行なうために、一般に数十クロック必要である。従って、最高優先レベルの割り込み要求を決定する時期は、それをマイクロプロセッサに伝える（割り込み受付バスサイクルで割り込みベクタを与える）直前であるのが望ましい。
【００１６】
この場合、マイクロプロセッサが受け付けた割り込みと割り込み受付バスサイクルで取り込む割り込みベクタとが一致しない場合が考えられ、マイクロプロセッサはそういう状況にも対応できる機構を備える必要がある。しかしながら、例えば６８０００マイクロプロセッサの場合、受け付けた優先レベルを割り込みマスクレベルとして設定するので、この不一致は致命的であり、許されない。
【００１７】
【発明が解決しようとする課題】
以上のように、従来のデータ処理装置では、割り込み処理プログラムで使用する割り込みマスクレベルとして受け付けた優先レベルを自動設定する、という機構を備える場合、割り込みベクタをマイクロプロセッサに与える際に、マイクロプロセッサが指定した優先レベル（受け付けた優先レベルを指定する）に対応する割り込み要因を捜して、それに対応する割り込みベクタを与えなければならず、割り込みコントローラの優先順位順序機構を著しく複雑にするという欠点があった。
【００１８】
また、割り込みを受け付けた時点で最高優先レベルであった割り込みに対応するため、たとえその直後に、より高い優先レベルを持った割り込み要求が来ていても、それは後回しにされることになる。即ち、最高優先の割り込み要求を決定する時期が必要以上に早いため、高い優先レベルを持つ割り込み要求の応答時間が必要以上に伸びる恐れがあるという欠点があった。
【００１９】
本発明は、上記問題点を解決するもので、その目的は、最高優先レベルの割り込み要求を決定する時期を可能な限り遅くし、割り込み受付バスサイクルで割り込みベクタを与える直前に行なうことで、高い優先レベルを持つ割り込み要求の応答時間を短縮したデータ処理装置を提供することである。
【００２０】
また本発明の他の目的は、割り込みコントローラの優先順位調停回路を簡単化し、割り込みコントローラを構成するのに必要となるハードウェア量を削減すると共に、割り込みコントローラにおいて消費される電力を低減したデータ処理装置を提供することである。
【００２１】
【課題を解決するための手段】
前記課題を解決するために、本発明では、複数の割り込み優先レベルの内の１つの割り込み優先レベルを示す割り込み要求を受け取る入力手段と、最低割り込み優先レベルからマスクレジスタに設定された割り込み優先レベルまでの割り込み優先レベルを有する割り込み要求をマスクする割り込みマスク手段と、前記割り込みマスク手段がマスクする割り込み優先レベルの内、最大割り込み優先レベルを保持するマスクレベル保持手段と、前記入力手段が送出する第１割り込み要求の割り込み優先レベルを受け取り、前記第１割り込み要求を受け入れて前記第１割り込み要求のための第１割り込み受け付けバスサイクルを開始し、その後、前記第１割り込み受け付けバスサイクル中に、前記第１割り込み要求の割り込み優先レベルよりも高い割り込み優先レベルを有する第２割り込み要求の割り込みベクタとを、第２割り込み受け付けバスサイクルを開始することなく受け取る制御手段とを有し、前記制御手段は、前記第１割り込み受け付けバスサイクルの完了前に、前記入力手段が提供した前記第２割り込み要求の割り込み優先レベルを入力し、この第２割り込み要求の割り込み優先レベルの値を、割り込み処理実行期間中のマスクレベルとして前記マスクレベル保持手段に設定し、前記割り込みマスク手段に対し、前記入力手段から新しく受け取った前記第２割り込み要求の割り込み優先レベルと同じか低い割り込み優先レベルを有する割り込み要求をマスクするように命令することを特徴とする。
また、本発明では、複数の割り込み優先レベルの内１つの割り込み優先レベルに設定された割り込み要求を受け取るための入力手段と、最低割り込み優先レベルからマスクレジスタに設定された割り込み優先レベルまでの割り込み優先レベルを有する割り込み要求をマスクする割り込みマスク手段と、前記割り込みマスク手段がマスクする最大割り込み優先レベルを保持するマスクレベル保持手段と、前記入力手段が送出する第１割り込み要求の割り込み優先レベルが、前記マスクレベル保持手段に保持するマスクレベルより高ければ、第１割り込み要求を受け取り、割り込み受け付けバスサイクルを実行し、前記第１割り込み要求の割り込み優先レベルより高い第２割り込み要求の割り込み優先レベルを示す割り込みベクタを、前記割り込み受け付けバスサイクルの完了前に受け入れる制御手段とを有し、前記制御手段は、前記割り込み受け付けバスサイクル実行の完了前及び前記第２割り込みベクタ受け入れと同時に、前記入力手段が送出した割り込み優先レベルが入力され、この第２割り込み要求の割り込み優先レベル値が前記マスクレベル保持手段に割り込み処理実行中に使用されるマスクレベルとして設定され、前記割り込み処理実行中に受け取られる、前記第２割り込み要求の割り込み優先レベルと同じか低い割り込み優先レベルを有する割り込み要求がマスクされるように制御を行うことを特徴とする。
また、本発明では、割り込みコントローラから、複数の割り込み優先レベルの内の１つの割り込み優先レベルに設定された割り込み要求を受け取るための入力手段と、最低割り込み優先レベルからマスクレジスタに設定された割り込み優先レベルまでの割り込み優先レベルを有する割り込み要求をマスクする割り込みマスク手段と、前記割り込みマスク手段がマスクする最大割り込み優先レベルを保持するマスクレベル保持手段と、制御手段とを有し、前記制御手段は、前記マスクレベルレジスタが保持するマスクレベルより高い割り込み優先レベルの第１割り込み要求を受け取ることによって割り込み処理開始手順を実行し、第１割り込み受け付けバスサイクルを開始して前記第１割り込み要求の割り込み優先レベルを表す第１データを割り込みコントローラへアドレスバスを介して出力し、データバスから第２割り込み要求の割り込みベクタを受け取り、第２割り込み受け付けバスサイクルを開始せずに第２割り込み要求の割り込み優先レベルを受け取り、前記第２割り込み要求は前記第１割り込み要求の割り込み優先レベルより高い割り込み優先レベルであり、前記割り込みベクタと前記第２割り込み要求の割り込み優先レベルとは前記第１割り込み受け付けバスサイクルに応じて前記割り込みコントロールから出力され、前記マスクレベルレジスタに保持したマスクレベルと前記第２割り込み要求の割り込み優先レベルとを入れ替え、前記第２割り込み要求の割り込み優先レベルが、前記割り込みマスク手段がマスクする最大割り込み優先レベルとして使用されることを特徴とする。
【００２２】
【作用】
本発明の特徴のデータ処理装置では、制御手段１５は、入力手段ＩＰＬ０＃〜ＩＰＬ２＃により入力した割り込み要求がマスクレベル保持手段１３の保持するマスクレベルよりも高い時に、該割り込み要求を受け付けるステップと、受け付けた割り込み優先レベルを示して割り込み受付バスサイクルを実行し、該優先レベルと同じかまたはそれより高い優先レベルを持つ割り込み要求に対して、少なくとも該割り込み要求の要求元を識別できる割り込みベクタを受け取るステップとを含む割り込み処理起動手順を実行するが、最高優先レベルの割り込み要求を決定する時期を可能な限り遅くすることで割り込みコントローラの回路を簡単化すると共に、高い優先レベルを持つ割り込み要求の応答時間を短くしている。
【００２３】
具体的には、常に割り込みコントローラで最高優先レベルの割り込み要求の決定を行なうこととし、その結果として、割り込み受付バスサイクルで割り込みベクタを与える直前の調停結果が意味を持つようにしている。
【００２４】
この際、割り込みベクタにより指定された割り込み処理プログラムのためのマスクレベルの自動設定の問題があるが、これに対しては、データ処理装置が割り込みベクタと同時にサンプルし直した割り込み要求の優先レベル値を使用することで対処する。このため制御手段１５は、割り込み受付バスサイクル実行時に、割り込みベクタを受け取ると同時に、入力手段ＩＰＬ０＃〜ＩＰＬ２＃から与えられている割り込み優先レベル値を取り込み、該割り込み優先レベル値を該割り込み処理実行時のマスクレベルとしてマスクレベル保持手段１３に設定し、該割り込み処理実行中は受け付けた割り込み優先レベルと同じまたは低い優先レベルの割り込み要求をマスクするよう制御する。
【００２５】
データ処理装置が割り込みベクタを取り込んだということは、その割り込みに対して応答することを意味しており、割り込みベクタの取り込み以降の時点で処理する割り込みを変更することはできない。従って、割り込みベクタの取り込み直前まで優先順位の調停を許し、割り込みベクタ取り込みと同時に最も高い割り込み要求の優先レベルを取り込むという動作により、最高優先レベルの割り込み要求を決定する時期を可能な限り遅くする。
【００２６】
これにより、高い優先レベルを持つ割り込み要求の応答時間を短縮したデータ処理装置の割り込み処理起動方式を実現すると共に、割り込みコントローラの優先順位調停回路を簡単化し、それを構成するのに必要となるハードウェア量を減少し、更にそこで消費される電力を低減することが可能となる。
【００２７】
【実施例】
以下、本発明に係る実施例を図面に基づいて説明する。
【００２８】
図１に本発明の一実施例に係るデータ処理装置の構成図を示す。
【００２９】
図１に示すように、本実施例のデータ処理装置（以下、マイクロプロセッサという）は、アドレスバスＡ１〜Ａ２３、データバスＤ０〜Ｄ１５、バス制御信号群、及び割り込み要求信号群ＩＰＬ０＃〜ＩＰＬ２＃からなるインタフェース信号を介して、周辺装置や割り込みコントローラと接続されている。ここでバス制御信号群には、アドレスストローブ信号ＡＳ＃、リードライト信号Ｒ／Ｗ＃、上位データストローブ信号ＵＤＳ＃、下位データストローブ信号ＬＤＳ＃、及びデータアクノレッジ信号ＤＴＡＣＫ＃が含まれている。また３本の割り込み要求要求信号ＩＰＬ０＃〜ＩＰＬ２＃は、外部デバイスがマイクロプロセッサ１に対して割り込み要求があることを示すために用いられ、レベル１からレベル７の割り込み要求レベルがある。尚、信号名に続く記号＃は、その信号が負論理信号であることを示している。
【００３０】
また、本実施例のマイクロプロセッサ１の内部構成は、割り込み要求信号群ＩＰＬ０＃〜ＩＰＬ２＃により入力される割り込み要求の一部を選択的にマスクする（或いは全くマスクしない）マスク回路１１と、マスクする最大の優先レベルを保持するマスクレジスタ１３と、マスク回路１１でマスクした結果、マスクレジスタ１３のマスクレベルよりも高い優先レベルの割り込みがあったことを示す優先割り込み信号５１を受けて、割り込み受付に関する一切の処理を制御する制御回路１５とから構成されている。
【００３１】
制御回路１５は、優先割り込み信号５１を受けて、マスクレジスタ１３に対してマスクレベル取り込み信号５３を発して、割り込み要求信号群ＩＰＬ０＃〜ＩＰＬ２＃により入力される割り込み要求レベルをマスクレジスタ１３に取り込む。
【００３２】
マスクレジスタ１３は、ＰＳＷ（プロセッサステータスワード）とも呼ばれるマイクロプロセッサ１の種々の動作を制御するビットが集まったレジスタの一部に含まれていてもよい。ＰＳＷの一構成例を図２に示す。
【００３３】
本実施例のマイクロプロセッサ１においては、複数の優先レベルを備えた割り込み機構とベクタ割り込み機構を備えている。割り込みの優先レベルは、１〜７のレベル（レベル０は割り込みが要求されていないことを示す）があり、レベル１が最低優先レベル、レベル７が最高優先レベルである。これらの機構が働く様子を、図３に示す割り込み処理起動手順により説明する。
【００３４】
先ず初めに、マイクロプロセッサ１ではマスクレジスタ１３のマスクレベルとして、”２”が設定されているものとする（ステップＳｐ１）。この場合、優先レベルが１または２の割り込み要求はマスクされ、無視されて受け付けられない。つまりマイクロプロセッサ１側のプログラムの進行により、低優先レベルの割り込みをマスクする必要がなくなるまで待たされることになる。
【００３５】
さて、周辺デバイスＡからの割り込み要求信号が、割り込みコントローラに入力され（ステップＳｃ１）、割り込みコントローラで優先順位の調停が行なわれて、最高優先レベル（この場合、入力が１つしかないが、レベル３が最高優先レベル）を持つ割り込み要求入力の優先レベルを、割り込み要求としてマイクロプロセッサ１に伝える（ステップＳｃ２）。
【００３６】
マイクロプロセッサ１では、入力された割り込み要求の優先レベル（＝３）が、マスクレベルよりも大きいことをマスク回路１１で判定し、制御回路１５へ割り込みがあったことを示す優先割り込み信号５１により伝える。制御回路１５では、命令の切れ目など所定のタイミングで割り込み要求を受け付ける（ステップＳｐ２）。そして、割り込み要求を受け付けたことを周辺デバイスや割り込みコントローラに知らせ、割り込み受付バスサイクルを実行する（ステップＳｐ３）。これは、割り込みを要求したデバイスを識別する（割り込み処理プログラムのアドレスを知る）ための割り込みベクタを受け取るために行なわれる。この時、アドレスバスＡ１〜Ａ２３には受け付けた割り込み優先レベル（＝３）が出力される。
【００３７】
これに応答して割り込みコントローラは、周辺デバイスＡに固有に割り当てられた割り込みベクタをデータバスＤ０〜Ｄ１５に出力し（ステップＳｃ３）、マイクロプロセッサ１はデータバスＤ０〜Ｄ１５上の割り込みベクタを取り込んで（ステップＳｐ４）、割り込み処理プログラムへと制御を移す（ステップＳｐ５）。割り込みベクタを取り込むと同時に、割り込み要求信号群ＩＰＬ０＃〜ＩＰＬ２＃により入力される割り込み要求レベル値（＝３）も取り込み、その値を割り込み処理プログラムでのマスクレベルとするべく、マスクレジスタ１３に設定する。つまり、制御回路１５からマスクレベル取り込み信号５３が与えられる時にマスクレジスタ１３に取り込まれる。これにより、周辺デバイスＡの割り込み処理プログラムでは、そのデバイスの優先レベルである”３”を越える割り込み要求は受け付けられるが、それ以下の割り込み要求はマスクされる。
【００３８】
上述した図３の場合では、割り込みを受け付けた時点での最高優先レベルと、割り込みベクタを取り込む時点での最高優先レベルが同じであった。従って、従来例と同様に、割り込みを受け付けた時点での優先レベルを、その割り込み処理プログラムでのマスクレベルとするよう動作しても、特に不都合は生じない。
【００３９】
ところで、実際のマイクロプロセッサでは、割り込みを受け付けた時点で処理していたプログラムに依存するマイクロプロセッサの内部状態（例えば、汎用レジスタの内容、プログラムカウンタの内容等）を保存して、割り込み処理プログラムから復帰した時に、滞りなく元の処理を続行しなければならない。従って、割り込み要求を受け付けてから、直ちに割り込み受付バスサイクルが実行されるとは限らない。その間に、別の周辺デバイスからの割り込み要求信号が割り込みコントローラに入力され、最高優先レベルが変化することが考えられる。この場合の動作を、図４に示す割り込み処理起動手順により説明する。
【００４０】
先ず、マイクロプロセッサ１ではマスクレジスタ１３のマスクレベルとして、”２”が設定されているものとする（ステップＳｐ１１）。
【００４１】
周辺デバイスＡからの割り込み要求信号が、割り込みコントローラに入力され（ステップＳｃ１１）、割り込みコントローラで優先順位の調停が行なわれて、最高優先レベル（レベル３）を持つ割り込み要求入力の優先レベルを、割り込み要求としてマイクロプロセッサ１に伝える（ステップＳｃ１２）。
【００４２】
マイクロプロセッサ１では、入力された割り込み要求の優先レベル（＝３）が、マスクレベルよりも大きいので、制御回路１５は、命令の切れ目など所定のタイミングで割り込み要求を受け付ける（ステップＳｐ１２）。しかし、割り込み受付バスサイクルを実行するまでに、若干の時間が経過する場合がある。また、非常に微妙なタイミングで周辺デバイスＢからの割り込み要求が発生した場合、割り込みの受付から割り込み受付バスサイクルまでの間に、最高優先レベルが変化する恐れがある。例えば図４のステップＳｃ１３のように、周辺デバイスＡよりも高い優先レベル（レベル５）を有する周辺デバイスＢから割り込み要求が発生し、調停回路の最高優先レベルが”５”に変化した場合（ステップＳｃ１４）がこれである。この場合、マイクロプロセッサ１側では、最初に受け付けた割り込み要求の優先レベルが”３”であるので、割り込み受付バスサイクルでは、アドレスバスＡ１〜Ａ２３上に受け付けた割り込み要求の優先レベルである”３”を載せ、受け付けた割り込み要求がレベル３のものであることを示す（ステップＳｐ１３）。
【００４３】
この割り込み受付バスサイクルに応答して、割り込みコントローラは、その時点で最高優先レベルであるレベル５の割り込みに応答させるべく、レベル５の割り込みを要求している周辺デバイスＢに固有に割り当てられた割り込みベクタをデータバスＤ０〜Ｄ１５に出力する（ステップＳｃ１５）。
【００４４】
マイクロプロセッサ１はデータバスＤ０〜Ｄ１５上の割り込みベクタを取り込んで（ステップＳｐ１４）、より高い優先レベルの割り込みを要求した周辺デバイスＢ用の割り込み処理プログラムへと制御を移す（ステップＳｐ１５）。また割り込みベクタを取り込むと同時に、割り込み要求信号群ＩＰＬ０＃〜ＩＰＬ２＃により入力される割り込み要求レベル値（＝５）も取り込み、その値を周辺デバイスＢ用の割り込み処理プログラムでのマスクレベルとするべく、マスクレジスタ１３に設定する。
【００４５】
ここで、最初に受け付けた割り込みの優先レベルは”３”であったが、割り込みベクタと同時に取り込んだ優先レベルである”５”を使用する点が重要である。つまり、周辺デバイスＢの割り込み処理プログラムでは、そのデバイスの優先レベルである”５”を越える割り込み要求は受け付けられるが、それ以下の割り込み要求はマスクされることとなる。
【００４６】
比較のために、本発明の手法を用いず、最初に受け付けた時点での優先レベル値である”３”をマスクレベルとして設定した場合の問題点を考える。
【００４７】
周辺デバイスＢ用の割り込み処理プログラムは、その割り込み優先レベルが”５”に割り当てられていることを知っており、優先レベル５以下の割り込みが掛からない（優先レベル５以下の割り込み要求により中断されない）ことを前提にコーディングされているかもしれない。この場合、優先レベル５に割り当てられたプログラムがマスクレベル３で実行されるため、優先レベル４または優先レベル５の割り込みが受け付けられる可能性があり、予測しない事態が発生する。
【００４８】
また、周辺デバイスＢで一度発生した割り込み要求は、周辺デバイスＢ用の割り込み処理プログラムの中で所定の処理を実行し、割り込み要因を取り除かない限り、解除されないことも考えられる。この場合、マスクレベル３で周辺デバイスＢ用の割り込み処理プログラムを実行開始した直後に、同じ周辺デバイスＢからの割り込み要求（優先レベル５）が受け付けられてしまう。つまり結果として、周辺デバイスＢからの割り込み要求が誤って２度受け付けられたことになる。
【００４９】
このような問題点があるため、従来のマイクロプロセッサでは、マイクロプロセッサが最初に受け付けた優先レベルと異なる優先レベルの割り込みに応答することはできなかった。従って、割り込みコントローラは、割り込み受付バスサイクルでアドレスバスに示された優先レベルと一致する割り込み要求を捜す必要があり、機構が複雑になってしまう。また、より高い優先レベルの割り込み要求が発生していても、それに対して直ちに応答することが許されないため、高い優先レベルを持つ割り込み要求の応答時間が必要以上に伸びる場合が発生するという問題があった。
【００５０】
本実施例の割り込み処理起動方式では、マイクロプロセッサ１は、データバスＤ０〜Ｄ１５上に載っている割り込みベクタを取り込むと同時に、割り込み要求信号群ＩＰＬ０＃〜ＩＰＬ２＃により入力される割り込み要求レベル値も取り込み、その優先レベル値をこれから実行する割り込み処理プログラムでのマスクレベルとして設定するので、上記問題点は簡単に解決できる。
【００５１】
また、本実施例の割り込み処理起動方式では、従来例と同等の機構で実現できるにも関わらず、また割り込み要求入力の優先レベルを再サンプルするだけなので特に処理手順が複雑になることもなく、種々の問題点が解決できる。ここで、割り込み処理起動に必要なクロック数を全く増加することがない、という点も特筆すべきものである。
【００５２】
また、マイクロプロセッサがこのような割り込み処理起動方式を採用することで、割り込みコントローラでは、割り込み要求を発生している周辺デバイスの中から指定された優先レベルと一致するものを捜すといった、非常に手間が掛かり複雑な機構を必要とする処理が不要になるので、割り込みコントローラの優先順位調停回路が簡単化され、それを構成するのに必要となるハードウェア量を減少すると共に、そこで消費される電力を低減することができる。
【００５３】
更に、高い優先レベルを持つ割り込み要求の応答時間を短縮することができる。
【００５４】
これらの効果により、マイクロプロセッサシステム全体として見た場合の処理性能を向上することができ、マイクロプロセッサや周辺装置の応用範囲を広げることが可能となる。
【００５５】
【発明の効果】
以上のように本発明によれば、割り込み受付バスサイクル実行時に、割り込みベクタを受け取ると同時に、入力手段から与えられている割り込み優先レベル値を取り込み、該割り込み優先レベル値を該割り込み処理実行時のマスクレベルとしてマスクレベル保持手段に設定し、該割り込み処理実行中は受け付けた割り込み優先レベルと同じまたは低い優先レベルの割り込み要求をマスクするよう制御し、常に割り込みコントローラで最高優先レベルの割り込み要求の決定を行なうこととし、割り込み受付バスサイクルで割り込みベクタを与える直前の調停結果が意味を持つようにしたので、最高優先レベルの割り込み要求を決定する時期を可能な限り遅くすることができ、高い優先レベルを持つ割り込み要求の応答時間を短縮したデータ処理装置の割り込み処理起動方式を実現すると共に、割り込みコントローラの優先順位調停回路を簡単化し、それを構成するのに必要となるハードウェア量を減少し、更にそこで消費される電力を低減可能なデータ処理装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施例に係るデータ処理装置の構成図である。
【図２】実施例のデータ処理装置におけるＰＳＷ（プロセッサステータスワード）のビット構成図である。
【図３】実施例のデータ処理装置における割り込み処理起動手順（割り込み受付時の最高優先レベルと、割り込みベクタ取込時の最高優先レベルが同じ場合）を示すフローチャートである。
【図４】実施例のデータ処理装置における割り込み処理起動手順（割り込み要求受付後、最高優先レベルが変化する場合）を示すフローチャートである。
【図５】従来のデータ処理装置における割り込み例外処理手順を示すフローチャートである。
【図６】従来のデータ処理装置における割り込みレベルの説明図である。
【符号の説明】
１  マイクロプロセッサ
１１  マスク回路（割り込みマスク手段）
１３  マスクレジスタ（マスクレベル保持手段）
１５  制御回路（制御手段）
Ａ１〜Ａ２３  アドレスバス
Ｄ０〜Ｄ１５  データバス
ＩＰＬ０＃〜ＩＰＬ２＃  割り込み要求信号群
ＡＳ＃  アドレスストローブ信号
Ｒ／Ｗ＃  リードライト信号
ＵＤＳ＃  上位データストローブ信号
ＬＤＳ＃  下位データストローブ信号
ＤＴＡＣＫ＃  データアクノレッジ信号
５１  優先割り込み信号
５３  マスクレベル取り込み信号
【図１】
0003715328.tif 000002
【図２】
0003715328.tif 000003
【図３】
0003715328.tif 000004
【図４】
0003715328.tif 000005
【図５】
0003715328.tif 000006
【図６】
0003715328.tif 000007