(57)【特許請求の範囲】
【請求項１】
データ処理システムを動作する方法であって：
第１の命令を解読する段階；
第１の命令の実行を開始する段階；
第１の命令の実行中に割込要求を受け入れる段階；
格納回路が第１値を格納している際に、データ処理システムに割込みをかけ、かつ第１命令と、本来は第１の命令の後に前記データ処理システム内で実行されるべき第２命令、との間の命令境界において割込要求を処理する段階；および
前記収納回路が第２の値を格納している際に、前記データ処理システムに割込みをかけ、かつ前記第１の命令の実行が開始された後であるが前記第１の命令が完了しておらず、前記第１の命令と前記第２の命令との間の命令境界の前である場合は、前記データ処理システムを前記第１の命令の実行を開始する前の状態に戻して、前記割込み要求を処理する段階；
を具備することを特徴とするデータ処理システムを動作させる方法。
【請求項２】
データ・プロセッサであって：
割込要求を受け入れる割込回路；
割込制御値を格納する第１の格納回路；
第１の命令と第２の命令との間の命令境界を検出する命令境界検出回路；および
前記第１および第２の命令の実行を制御する制御回路であって、該制御回路は前記割込回路と、前記第１の格納回路と、前記命令境界検出回路とに結合された前記制御回路；
を具備し、前記割込制御値が第１の値を有しかつ前記割込回路が前記第１の命令の実行中に割込要求を受け入れた場合には、前記制御回路は前記第１の命令と前記第２の命令との間の前記命令境界において前記割込要求を処理し、かつ前記割込制御値が第２の値を有しかつ前記割込回路が前記第１の命令の実行中に前記割込要求を受け入れた場合には、前記制御回路は前記第１の命令の実行中に前記割込要求を処理し、前記割込要求が処理される場合に前記第１の命令がまだ完了していない場合には、前記データ処理システムを前記第１の命令の実行を開始する段階の前に前記データ処理システムが有していた状態に戻すことを特徴とするデータ・プロセッサ。
【請求項３】
データ処理システムを動作させる方法であって、前記データ処理システムは第１の組のＮ個の命令を有しかつ第２の組のＫ個の命令を有し、前記ＮおよびＫは正の整数であり、前記方法は：
第１の命令の実行を開始する段階；
前記第１の命令の実行中に第１の割込要求を受け入れる段階；
前記第１の命令が前記第１の組のＮ個の命令に属しかつ第１の制御レジスタ・フィールドが第１の値を有する場合に：
前記第１の命令の実行を完了する段階；
前記第１の割込要求を処理する段階；および
第２の命令の実行を開始する段階；
を実行する段階；
前記第１の命令が前記第１の組のＮ個の命令に属し、前記第１の制御レジスタ・フィールドが第２の値を有し、前記第１の命令の実行が完了していない場合に：
前記第１の命令の実行を停止する段階；
前記データ処理システムを前記データ処理システムが前記第１の命令の実行が開始される前に有していた状態に戻す段階；
前記データ処理システムに割込みをかけかつ前記第１の割込要求を処理する段階；および
前記第１の命令の実行を開始する前記段階を反復する段階；
を実行する段階；および
前記第１の命令が前記第２の組のＫ個の命令に属する場合に：
前記第１の命令の実行を完了する段階；
前記第１の割込要求を処理する段階；および
前記第２の命令の実行を開始する段階；
を実行する段階；
を具備することを特徴とするデータ処理システムを動作させる方法。
【請求項４】
データ処理システムを動作させる方法であって：
前記データ処理システム内で第１のコンピュータ命令の実行を開始する段階；前記第１のコンピュータ命令の実行中に割込みを受ける段階；
前記データ処理システム内で前記割込みを処理するために前記第１の命令が早く終了すべきであることを示す複数の制御ビットにアクセスする段階；
前記割込みを処理するために前記第１の命令の完了の前に前記第１の命令の実行を終了する段階；
前記割込みを処理する段階；
前記データ処理システムを前記データ処理システムが前記第１のコンピュータ命令の実行を開始する前記段階の前に有していた状態に戻す段階；および
前記割込みの処理の完了後に再び前記第１のコンピュータ命令の実行を開始する段階；
を具備することを特徴とするデータ処理システムを動作させる方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般にデータ処理システムに関し、さらに詳しくは、データ処理システムにおいて割込待ち時間を選択的に制御するための方法および装置に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
割込は、データ処理システムにおいて、特に多くのリアルタイム制御用途において現在よく用いられる。たとえば、自動車のエンジンを制御するデータ処理システムは、アンチロック・ブレーキング・システムにより自動車が横すべりし始めたことが検出されると、アンチロック・ブレーキング・システムから割込要求を受信する。データ処理システムが割込に応答するためにかかる最大時間量を「最大割込待ち時間」と呼ぶ。多くのデータ処理システムにおいては、データ処理システムの通常の動作性能を低下させずに可能な限り最短の割込待ち時間を有することが望ましい。
【０００３】
多くのリアルタイム制御用途においては、最大割込待ち時間は非常に重要であり、ある用途のためにどのデータ処理システムを選定するかを決定することさえある。上記の例では、データ処理システムがアンチロック・ブレーキング・システムからの割込に対して充分迅速に応答することができなければ、割込待ち時間のより短い別のデータ処理システムが選定され使用されることになる。そのため、データ処理技術においては、データ処理システムの正常な動作性能を大幅に低下させることなく最大割込待ち時間を短縮することが非常に重要である。
【０００４】
【実施例】
データ処理システムにおいて割込待ち時間を最小限に抑えることは、多くのリアルタイム制御用途にとってきわめて重要である。データ処理システムは、１つ以上の命令（すなわち長命令）を有することが多く、この長命令は、他のより短い命令（すなわち短命令）を実行するために要する時間に比べて、完全に実行するにはかなりの量の時間が必要になる。待機中の割込要求に応答する前に、長命令の実行を完了する時間が必要とされるために、データ処理システムの割込待ち時間が長過ぎることになる。本発明は、長命令の実行を中断して、割込要求を処理して、割込待ち時間を短縮することを可能にする。
【０００５】
本発明の１つの実施例においては、データ処理システムは、各長命令の実行中のいくつかの時点で割込要求が待機していないかチェックする。長命令の実行が終了する前に割込要求が受け付けられると、データ処理システムは長命令の実行を停止して、データ処理システムが長命令の実行を開始する前の状態にデータ処理システムを戻す。その後で割込が処理される。割込の処理が完了すると、同じ長命令の実行が再び開始される。
【０００６】
「バス」という用語は、データ，アドレス，制御または状況など１つ以上の種々の情報を転送するために用いられる複数の信号または導体を指すために用いられる。「アサート」，「ネゲート」という用語は、それぞれ、信号，状況ビットまたは同様の装置を論理的に真の状態にする場合と、論理的に偽の状態にする場合に用いられる。論理的に真の状態が論理レベル１である場合は、論理的に偽の状態は論理レベル０である。また、論理的に真の状態が論理レベル０である場合は、論理的に偽の状態は論理レベル１である。
【０００７】
図面の説明
図１は、中央処理装置（ＣＰＵ）回路構成１２，メモリ回路構成１４，タイマ回路構成１６，シリアル回路構成１８，その他の回路構成２０およびシステム統合回路構成２２を有するデータ処理システム１０を示し、これらはすべてバス２４を介して互いに双方向に結合される。
【０００８】
ＣＰＵ１２は、１つ以上の集積回路端子３０を介してデータ処理システム１０の外部に結合されることがある。メモリ１４は、１つ以上の集積回路端子３２を介してデータ処理システム１０の外部に結合されることがある。タイマ１６は、１つ以上の集積回路端子３４を介してデータ処理システム１０の外部に結合されることがある。シリアル回路構成１８、１つ以上の集積回路端子３６を介してデータ処理システム１０の外部に結合されることがある。また、その他の回路構成２０は、１つ以上の集積回路端子３８を介してデータ処理システム１０の外部に結合されることがある。システム統合回路構成２２は、バス２６を介してデータ処理システム１０の外部と双方向に結合される。システム統合回路２２は、割込回路構成２８を具備する。割込回路構成２８は、集積回路端子４０を介してデータ処理システム１０の外部に結合されることがある。
【０００９】
本発明のある実施例においては、データ処理システム１０は、単独の集積回路上に形成されたデータ・プロセッサである。実施例によっては、データ処理システム１０は単独のチップ・マイクロコントローラである。別の実施例では、データ処理システム１０は、任意の種類の電気回路構成を用いて組み込むことができる。メモリ１４は、どのような種類のメモリであってもよい。データ処理システム１０の代替の実施例に含まれる回路構成のブロックは、もっと多いことも、少ないことも、あるいは異なる種類のものである場合もある。たとえば、データ処理システム１０の代替の実施例は、メモリ１４，タイマ１６，シリアル１８またはその他の回路構成２０をもたない場合もある。本発明の実施例には、ＣＰＵ１２の一部として割込回路構成２８を具備するものや、システム統合回路構成２２を具備するもの、具備しないものがある。
【００１０】
集積回路端子３０，３２，３４，３６，３８，４０は、電気信号をデータ処理システム１０との間にやり取りすることができる任意の種類の装置である。たとえば、集積回路端子３０，３２，３４，３６，３８，４０は、集積回路ピン，ハンダ・バンプ，ワイヤ導体などとすることができる。また、バス２６は、集積回路端子を介して、データ処理システム１０との間に電気信号を伝える。
【００１１】
図２は、本発明の１つの実施例による図１の割込回路構成２８を示す。本発明の１つの実施例においては、割込回路構成２８はレジスタ回路構成６４を備え、これはバス２４と双方向に結合されるので、レジスタ６４にはＣＰＵ１２（図１参照）によって読み取りおよび書き込みができる。割込回路構成２８にはまた、割込制御回路構成６０も含まれ、これは割込に関連するバス信号を受信および／または供給するためにバス２４と結合される。割込回路構成２８には、集積回路端子４０を介してデータ処理システム１０の外部から割込要求を受信する割込受信回路構成６２も含まれる。
【００１２】
本発明の１つの実施例においては、割込受信回路構成６２は、バス２４と割込制御回路構成６０とに結合され、着信割込要求に関する情報を提供する。本発明の代替の実施例においては、割込受信回路構成６２は、バス２４には結合されず、代わりに、割込受信回路構成６２が割込要求を受信して、１つ以上の導体６８を介して割込要求情報を割込制御回路構成６０に送る。次に割込制御回路構成６０は、バス２４上の割込関連信号をアサートするか否か、さらに、いつアサートするかを決定する。レジスタ６４は、導体６６を介して、制御および／または状況情報を割込制御回路構成６０に送る。
【００１３】
１つの実施例においては、レジスタ６４は、いくつかのレジスタ・ビット・フィールド５０，５２，５４，５６，５８を備え、これらはそれぞれ制御値を格納する格納回路を具備する。図２に示されるレジスタ６４には、制御に用いられる５つのレジスタ・フィールド（５０，５２，５４，５６，５８）が含まれるが、本発明の代替の実施例では、より多くの、またはより少ない、または異なるレジスタ・ビット・フィールドを用いることもある。さらに、図２に示される５つのレジスタ・ビット・フィールド５０，５２，５４，５６，５８は、制御のために用いられるが、レジスタ６４の代替の実施例には状況に用いられるもの、あるいは状況と制御の両方に用いられるレジスタ・ビット・フィールドが含まれることもある。さらに、本発明の代替の実施例は、１つ以上の別々のレジスタ内にビット・フィールド５０，５２，５４，５６，５８を配置することもある。また、本発明の異なる実施例では、図２に示されるレジスタ・ビット・フィールド５０，５２，５４，５６，５８のそれぞれに関して、任意の数のビットを備えることもある。本発明のある実施例では、１つ以上のレジスタ・ビット・フィールドの制御機能を、より少数のレジスタ・ビット・フィールドに合成および符号化することもできる。
【００１４】
図２に示される本発明の実施例においては、レジスタ６４は、割込制御（ＩＣ：interrupt control ）レジスタ・ビット・フィールド５０，割込可能命令（ＩＩ：interruptable instruction ）レジスタ・ビット・フィールド５２，割込イネーブル・レジスタ・ビット・フィールド５６，割込マスク（ＩＭ：interrupt mask）レジスタ・ビット・フィールド５８およびその他の状況／制御ビット５４を備える。
【００１５】
図３は、本発明の１つの実施例による図１の中央処理装置（ＣＰＵ）１２の一部分を示す。図３に示されるＣＰＵ１２の部分には、制御回路構成７０，１つ以上の命令ラッチ７４および１つ以上のレジスタ７６が含まれ、これらはそれぞれ導体８０を介してバス２４と双方向に結合される。命令ラッチ７４は、導体８６を介して命令解読回路構成７２に結合される。命令解読回路構成７２は、導体８８を介して制御回路構成７０に結合される。演算論理装置（ＡＬＵ）７８は、導体９０を介して制御回路構成７０と双方向に結合される。レジスタ７６は、導体９２を介して制御回路構成７０と双方向に結合される。また、レジスタ７６は、導体９４を介してＡＬＵ７８と双方向に結合される。本発明のある実施例では、ＣＰＵ１２を１つ以上の集積回路端子３０を介してデータ処理システム１０の外部に結合することもある。
【００１６】
図４は、本発明の１つの実施例による図３の制御回路構成７０の一部分を示す。制御回路構成７０は、プログラム可能割込制御情報のための格納回路である回路１０２を備え、命令を実行するシーケンサである回路１００を備え、命令境界検出回路である回路１０４を備える。シーケンサ１００は、１つ以上の導体１１６を介してバス２４と双方向に結合される。格納回路１０２は、１つ以上の導体１１４を介してバス２４と双方向に結合される。格納回路１０２は、１つ以上の導体１１８を介してシーケンサ１００と双方向に結合される。命令境界検出回路１０４は、１つ以上の導体１２０を介してシーケンサ１００と双方向に結合される。命令境界検出回路１０４とシーケンサ１００は、両方とも１つ以上の導体８８を介して命令解読回路構成７２に結合される。
【００１７】
命令境界検出回路１０４は、１つ以上の導体１０６を介してレジスタ７６からの情報を受信するよう結合され、シーケンサ１００は、１つ以上の導体１０８を介してレジスタ７６と双方向に結合される。導体９２（図３参照）は導体１０６，１０８（図４参照）を含む。命令境界検出回路１０４は、１つ以上の導体１１０を介してＡＬＵ７８から情報を受信するよう結合され、シーケンサ１００は、１つ以上の導体１１２を介してＡＬＵ７８と双方向に結合される。導体９０（図３参照）は、導体１１０，１１２（図４参照）を含む。
【００１８】
シーケンサ１００は、種々の回路構成、たとえば状態装置，ランダム論理，プログラム可能論理アレイなどの回路構成を用いて実現することができる。シーケンサ１００は、レジスタ７６およびＡＬＵ７８に制御信号を提供して、命令ラッチ７４により受信された命令を実行する機能を果たす。データ処理システム１０によっては、命令ラッチ７４が１つしかないものや、データ処理システム１０がパイプライン化されたり、複数の命令ラッチ７４を有するものがある。データ処理システム１０がパイプライン化されている場合は、第１命令の実行は次の命令の解読と重複することがある。
【００１９】
図５および図６は、本発明の１つの実施例によりデータ処理システム内で割込待ち時間を選択的に制御する方法を流れ図に示す。図５および図６を参照して、偏平な楕円２００〜２０１は、流れ図の始点と終点を表す。円２０５〜２０８は、流れ図内の特定の点を表す。円２１０〜２１３は、流れ図の中の特定点への移行を表す。ダイヤ形２１５〜２２０は、流れ図中の意志決定点を表す。矩形２２５〜２３５は、データ処理システム内で割込待ち時間を選択的に制御するために実行されるステップを表す。
【００２０】
好適な実施例の動作
本発明の動作を以下に説明する。データ処理システム内で割込待ち時間を最小限に抑えることは、多くのリアルタイム制御用途できわめて重要なことである。データ処理システムは、１つ以上の命令（すなわち長命令）を有することが多く、これらは他のより短い命令（すなわち短命令）と比べて完全に実行するには、かなりの量の時間を必要とする。待機中の割込要求に応答する前に、長命令の実行を終了する時間が必要とされるために、データ処理システムの割込待ち時間が長過ぎることになる。本発明は、長命令の実行を中断して、割込要求を処理して割込待ち時間を短縮することを可能にする。
【００２１】
１つの実施例においては、本発明は割込制御レジスタ・ビット・フィールド５０（図２参照）を用いて、ある命令の実行が完了する前にその命令の実行を割込要求により中断するか否かを決定する。本発明のある実施例では、第１組の命令が実行途中で中断され、第２組の命令は常に実行を完了する場合がある。どの命令が第１組の命令に属するかは、たとえば図２のレジスタ・ビット・フィールド５２によってユーザによるプログラミングが可能であるか、あるいは固定される。データ処理システム（１０）によっては、最も長い実行時間を有する命令を第１組の命令、すなわち割込可能な命令の一部と定義して、割込待ち時間を短縮すると便利である。
【００２２】
本発明の１つの実施例においては、データ処理システムは、各長命令の実行中のいくつかの時点で割込要求が待機中であるか否かをチェックする。長命令の実行が終了する前に割込要求が受け付けられると、データ処理システムは長命令の実行を停止して、データ処理システムを長命令の実行を開始する前の状態に戻す。それから割込が処理される。割込の処理が終了すると、同じ長命令の実行が再び開始される。
【００２３】
図３と図５のステップ２２５とを参照して、命令ラッチ７４はバス２４を介して第１命令を受信する。第１命令は、データ処理システム１０が実行可能な任意の命令とすることができる。第１命令は、一次プログラム内のものでも、サブルーチン内のものでも、割込処理ルーチン内のものでも、他の任意の同様のコンピュータ・プログラム内のものでもよい。バス２４は、内部からデータ処理システム１０に対して（たとえば図１のメモリ１４から）命令を送ることも、あるいは、バス２６およびシステム統合回路構成２２を介して外部からデータ処理システム１０に送ることもできる。
【００２４】
図３と図５のステップ２２６とを参照して、命令ラッチ７４が第１命令を命令解読回路構成７２に送る。命令解読回路構成７２は、第１命令を解読し、その結果の信号を制御回路構成７０に、導体８８を介して送る。次に、制御回路構成７０は、制御信号をレジスタ７６およびＡＬＵ７８に送ることによって第１命令の実行を開始し、第１命令の演算を実行する。たとえば、第１命令は、加算命令または乗算命令であり、制御回路構成７０は適切な信号をレジスタ７６およびＡＬＵ７８に送り、必要な演算を行う。
【００２５】
図２を参照して、割込受信回路構成６２は、集積回路端子４０を監視して、データ処理システム１０の外部の装置（図示せず）が割込を要求しているか否かを判断することができる。また、割込受信回路構成６２は、バス２４を監視して、データ処理システム１０内部のいずれかの回路構成（たとえば図１の１６，１８または２０）が割込を要求しているか否かを判断することもある。
【００２６】
次に、割込受信回路構成６２は、割込要求が行われたか否かに関する情報を割込制御回路構成６０に送る。図５の決定ダイヤ形２１５を参照して、割込制御回路構成は、レジスタ６４から導体６６を介して割込イネーブル制御ビット５６を受信し、割込がイネーブルであるか否かを判断する。ステップ２２８を参照して、割込がイネーブルでない場合は、ＣＰＵ１２（図３参照）は、割込要求を受信せず、第１命令の実行が割込なしに通常の方法で終了する。ステップ２３５を参照して、命令の実行が、次の命令の取り出し，受信，解読および実行と続行される。
【００２７】
図５の決定ダイヤ形２１６を参照して、割込がイネーブルの場合は、割込制御回路構成６０は、割込受信回路構成６２からの入力信号６８をチェックして、割込要求が受信されて待機中であるか否かを判断する。割込要求が受信されていない場合は、ＣＰＵ１２（図３参照）は割込要求を受信せず、第１命令の実行は割込なしに通常の方法で終了する（図５のステップ２２８，図６のステップ２３５参照）。
【００２８】
図５の決定ダイヤ形２１７を参照して、割込が受信されて待機中の場合は、割込制御回路構成６０は、レジスタ６４から導体６６を介して割込マスク制御ビット５８を受信し、受信された割込がマスクされているか否かを判断する。割込のマスキングは、データ処理技術では周知のものである。たとえば受信された割込が、割込マスク制御ビット５８により決定された閾値優先度より低い優先レベルを持つために割込がマスクされている場合、ＣＰＵ１２（図３参照）は割込要求を受信せず、第１命令の実行が割込なしに通常の方法で終了する（図５のステップ２２８，図６のステップ２３５参照）。しかし、図５のステップ２２９を参照して、たとえば受信された割込要求が、割込マスク制御ビット５８によって決定された閾値優先度より高い優先レベルを持つために、受信された割込要求がマスクされていない場合は、この割込要求が受け付けられ、ＣＰＵ１２（図３参照）は、割込制御回路構成６０からバス２４を介して割込要求を受信する。
【００２９】
図６の決定ダイヤ形２１８を参照して、割込要求が受け付けられると、割込回路構成２８は、ＣＰＵ１２内の制御回路構成７０（図３参照）に対して、バス２４および導体８０を介して割込要求を送る。また、本発明の１つの実施例においては、割込回路構成２８は、割込制御ビット５０および割込可能命令制御ビット５２をも、レジスタ６４から、バス２４および導体８０を介して、ＣＰＵ１２内の制御回路構成７０（図３参照）に送る。本発明の代替の実施例においては、割込制御ビット５０および割込可能命令制御ビット５２は、システム統合回路構成２２内のレジスタ６４ではなく、格納回路１０２（図４参照）またはＣＰＵ１２内のレジスタ７６（図３参照）に位置することがある。
【００３０】
決定ダイヤ形２１８を参照して、制御回路構成７０は、第１命令が割込可能命令であるか否かを判定する。本発明の１つの実施例においては、Ｎ個の割込可能命令の組に含まれる１つ以上の命令が、制御回路構成７０内の回路構成によってあらかじめ決定され固定される。たとえば、本発明の１つの実施例においては、Ｎ個の割込可能命令の組は、乗算命令，複数データのメモリからのロード命令および複数データのメモリへの格納命令を含む。
【００３１】
本発明のある実施例においては、Ｎ個の割込可能命令の組には、実行するために最大数のＡＬＵサイクルを必要とするもの、あるいは最大全体時間を必要とするものが含まれることもある。本発明のある実施例においては、すべての命令が割込可能であるので、どの命令が割込可能であるかを特定するために割込可能命令制御ビット５２（図２参照）が必要でない場合もある。本発明の他の実施例においては、第１組のＮ個の命令が割込可能であり、第２組のＫ個の命令が割込可能でないこともある。本発明のさらに別の実施例においては、割込可能命令制御ビット５２を、割込可能でない第２組のＫ個の命令を特定するために用いることもある。割込可能命令制御ビット５２をこのように用いて、どの命令が割込可能であり、どの命令が割込可能でないかに関する情報を制御回路構成７０に送る命令選択値を格納することもできる。
【００３２】
再び決定ダイヤ形２１８を参照して、制御回路構成７０は、第１命令が割込可能命令であるか否かを判断する。第１命令が割込可能命令でない場合は、第１命令の実行は割り込みなしに通常の方法で終了する（図６のステップ２３０参照）。次に、割込要求は第１命令と次の命令との間の命令境界において処理される（図６のステップ２３４参照）。そして最後に、通常の命令実行が、次の命令の取り出し，受信，解読および実行と続行される（図６のステップ２３５参照）。
【００３３】
決定ダイヤ形２１９を参照して、第１命令が割込可能命令である場合、制御回路構成７０は、割込制御ビット５０の値を決定する。本発明の１つの実施例においては、割込制御ビット５０が第１値（たとえばバイナリ０）を有する場合、第１命令の実行は割込なしに通常の方法で終了する（図６のステップ２３０参照）。次に割込要求は第１命令と次の命令との間の命令境界で処理される（図６のステップ２３４参照）。そして最後に、通常の命令実行が、次の命令の取り出し，受信，解読および実行と続行される（図６のステップ２３５参照）。
【００３４】
図４の命令境界検出回路１０４を用いて、レジスタ７６と、ＡＬＵ７８と、シーケンサ１００の状態とを監視して、第１命令と第２命令との間の命令境界にいつ到達したかを判定することができることに注目されたい。本発明の代替の実施例においては、命令境界検出回路１０４の機能をシーケンサ１００の機能と組み合わせて１つの回路を形成することもできることに注目されたい。
【００３５】
決定ダイヤ形２１９をさらに参照して、割込制御ビット５０が第２値（たとえばバイナリ１）を有する場合、制御回路構成７０は、第１命令の実行が終了したか否かをチェックする（図６の決定ダイヤ形２２０参照）。本発明の１つの実施例においては、命令境界検出回路１０４（図４参照）は、第１命令の実行が終了したか否かを判定する。第１命令の実行が終了した場合は、割込要求が第１命令と次の命令との間の命令境界で処理され（図６のステップ２３４参照）、通常の命令実行が、次の命令の取り出し，受信，解読および実行と続行される（図６のステップ２３５参照）。
【００３６】
しかし、第１命令の実行が終了していない場合は（図６のステップ２３１参照）、第１命令の実行は第１命令と次の命令との間の命令境界の前で停止される。そのため、割込処理は、第１命令が実行を完了させる間に遅延されることはなく、割込待ち時間が短縮される。本発明の１つの実施例においては、第１命令の結果の一部は放棄されて、データ処理システム１０は第１命令の実行が開始される前と同じ状態に戻る（図６のステップ２３２参照）。割込要求は、第１命令と次の命令との間の命令境界の前に処理される（図６のステップ２３３参照）。割込要求の処理が完了すると、データ処理システム１０は第１命令を再度解読して、再度実行する（図６の円２１２参照）。これは第１命令の実行がまだ終了していないからである。
【００３７】
一定の異常な状況下（たとえばシステムの電力が低すぎて継続できない場合）では、ステップ２３３で呼び出される割込サービス・ルーチンが、ソフトウェアの流れを根本的に中断して、割り込まれた命令（すなわち第１命令）に戻らないことがある。しかし、多くの割込サービス・ルーチンは、最終的には割り込まれた命令に戻る（すなわち円２０５）。
【００３８】
第１命令の結果の一部が放棄されると、最初からもう一度、第１命令の再解読および再実行を始めなければならない（図５のステップ２２６参照）。しかし、第１命令の結果の一部がセーブされていれば、第１命令の実行は部分的な結果がセーブされた実行中の時点を拾えばよい。たとえば、本発明のある実施例では、第１命令が命令ラッチ７４（図３参照）内に依然として格納されているので、再び取り出さなくてもよい場合がある。第２の待機中の割込がない場合（決定ダイヤ形２１６参照）、第１命令の再実行が終了し（図５のステップ２２８参照）、通常の命令実行が、次の命令の取り出し，受信，解読および実行と続行される（図６のステップ２３５参照）。
【００３９】
本発明は、特定の実施例に関して図示および説明されたが、当業者には更なる改良および改善が可能であろう。そのため、本発明は図示された特定の形態に限定されず、添付の請求項は、本発明の範囲から逸脱しないすべての改良を包含するものであることを理解頂きたい。
【図面の簡単な説明】
【図１】本発明の１つの実施例によるデータ処理システム１０のブロック図である。
【図２】本発明の１つの実施例による図１の割込回路構成２８のブロック図である。
【図３】本発明の１つの実施例による図１の中央処理装置（ＣＰＵ）１２の一部分のブロック図である。
【図４】本発明の１つの実施例による図３の制御回路構成７０の一部分のブロック図である。
【図５】本発明の１つの実施例によりデータ処理システム内で割込待ち時間を選択的に制御する方法の流れ図である。
【図６】本発明の１つの実施例によりデータ処理システム内で割込待ち時間を選択的に制御する方法の流れ図である。
【符号の説明】
１０  データ処理システム
１２  中央処理装置（ＣＰＵ）回路構成
１４  メモリ回路構成
１６  タイマ回路構成
１８  シリアル回路構成
２０  その他の回路構成
２２  システム統合回路構成
２４，２６  バス
２８  割込回路構成
３０，３２，３４，３６，３８，４０  集積回路端子
【図１】
0003787385.tif 000002
【図２】
0003787385.tif 000003
【図３】
0003787385.tif 000004
【図４】
0003787385.tif 000005
【図５】
0003787385.tif 000006
【図６】
0003787385.tif 000007