(57)【要約】【課題】優先使用を許容しない割り込みに対する応答時間を予測可能とする縮小命令セットパイプライン型マイクロプロセッサのベクトル割り込みシステムを提供する。【解決手段】優先ベクトル割り込みユニット２８は、ベクトル割り込みマスクユニット４０、ベクトル割り込みサンプラーユニット４２、ベクトル割り込み優先フィルターユニット４４、ベクトル割り込みリセットユニット４６、ベクトル割り込みデコーダ４８、ベクトル割り込み制御ユニット５０及びスパーバイザーモード制御ユニット５２から構成されている。【選択図】図４
2006221664.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１のパイプラインレジスタ（８２）および第２のパイプラインレジスタ（８４）を有し、第１のパイプラインレジスタ（８２）はデータの通常のスループットおよび優先使用を許容する割り込みを処理するように動作可能であり、第２のパイプラインレジスタ（８４）はデータの通常のスループット、スーパーバイザー命令、優先使用を許容する割り込み及び優先使用を許容しない割り込みを処理するように動作可能であるパイプライン型ＲＩＳＣマイクロプロセッサの優先ベクトル割り込みシステム（２８）であって；
優先使用を許容しない割り込みの検出に応答して、第１のパイプラインレジスタ（８２）における処理を停止すると共に第２のパイプラインレジスタ（８４）における優先使用を許容しない割り込みの処理を開始するための割り込みトラップ手段（４２）と；
第１のパイプラインレジスタ（８２）における停止された処理をリセットして停止前の状態にするためのリセット手段（４６）と；
第２のパイプラインレジスタ（８４）における優先使用を許容しない割り込みの処理中に発生する優先使用を許容しない割り込みおよび優先使用を許容する割り込みを後で処理するためにキューイングするキューイング手段（４２、４４、４６）とから成ることを特徴とする優先ベクトル割り込みシステム（２８）。
【請求項２】
各々が第１のパイプラインを構成する第１の複数のビットと、第２のパイプラインを構成する第２の複数のビットとを有する複数のパイプラインレジスタ（８２、８４）と、
第１のモードにおいて複数のパイプラインレジスタのうちの第１のパイプラインレジスタに格納された第１の命令を実行し、第２のモードにおいて複数のパイプラインレジスタのうちの第２のパイプラインレジスタに格納された第２の命令を実行する実行ユニット（２２）と、
第１の割り込み要求に応答して実行ユニットを第１のモードから第２のモードへ切り換える割り込み処理手段（１４）とより成り、
割り込み処理手段はさらに、第２の割り込み要求を受けて、複数のパイプラインレジスタからの第２の命令が優先使用を許容するか許容しないかを判定し、
割り込み処理手段はさらに、複数のパイプラインレジスタのうちの第２のパイプラインからの第２の命令が優先使用を許容する場合、第２の割り込み要求に応答して、第２のパイプラインから第２の命令を取り出すと共に複数のパイプラインレジスタのうちの第３のパイプラインへ第３の命令をロードし、
割り込み処理手段はさらに、複数のパイプラインレジスタのうちの第２のパイプラインからの第２の命令が優先使用を許容しない場合、実行ユニットが第２の命令を実行した後で実行できるように第３の割り込み要求を格納してキューイングするパイプライン型コンピュータプロセッサ（１０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロプロセッサ、より詳しくは高速で短い待ち時間の割り込みサービスルーチン処理、一般的なコンテキストスイッチ割り込み
処理モードを必要とするパイプライン型ＲＩＳＣマイクロプロセッサアーキテクチャに関する。
【背景技術】
【０００２】
パイプライン型ＲＩＳＣマイクロプロセッサは、命令を複数の機能ユニットに分割して複数の命令を装置内の異なるステージで同時に実行できるようにするため、命令のサイクル時間の短縮が可能であり、高速コンピュータを実現する上でますますポピュラーになっている。
【０００３】
従来設計の信号プロセッサ型マイクロプロセッサは、リアルタイム割り込み応答時間が適当なだけでなく毎秒の命令個数が多い部類に入る。しかしながら、この設計によると、オペレーティングシステムに必要とされるコンテキストスイッチングに対するサポートが不十分である。
【０００４】
汎用パイプライン型ＲＩＳＣマイクロプロセッサの分野における別の従来設計には、毎秒の命令個数としてのスループットを増加できるものがあるが、リアルタイム割り込み応答時問は比較的見劣りがする。これらの従来設計において優先使用を許容しない(non-preemptable)動作を実現するには、割り込みサービスルーチンの開始時に割り込みマスクを
セットする必要がある。このマスクには他の全ての割り込みをブロックする作用がある。これを行うと、システムでは、現在の割り込みサービスルーチンの進行中に発生する他の非同期または同期割り込みが失われてしまう。
【０００５】
後述するように、本発明は、ベクトル割り込みユニットにより割り込みサービスルーチンを再ベクトルすることによって優先使用を許容しない割り込み動作を可能にする結果、スワップアウトされる第１の割り込みユニットについては割り込み応答時間が確定しない改良型優先ベクトル割り込みシステムを提供する。
【０００６】
本発明は、マスタークロック、ベクトル割り込み部、ＰＣＵデコーダ部およびＰＣＵデータパスを組み込んだプログラム制御ユニット（ＰＣＵ）を包含する。典型的には、非同期および同期割り込みがベクトル割り込み部に入力されて処理されると、内部割り込みトラップ処理および割り込みキューイングを受ける割り込み状態となる。
【０００７】
従って、本発明の一つの目的は、割り込み応答時間が高速であり、リアルタイムオペレイティングシステムを直接サポートし、優先使用を許容する動作モードと許容しない動作モードとの組み合わせを実現し、優先使用を許容しない割り込みに対する応答時間を予測可能とする縮小命令セット（ＲＩＳＣ）パイプライン型マイクロプロセッサの改良型ベクトル割り込みシステムを提供することにある。
【０００８】
本発明の別の目的は、割り込みキューイングにより優先使用を許容する割り込みを優先使用を許容しない割り込みと共にサポートすることにある。
【０００９】
本発明のさらに別の目的は、優先使用を許容する割り込みサービスルーチンと許容しない割り込みサービスルーチンとを処理するために通常モードレジスタ及びベクトルモード
レジスタの対より成る改良型マイクロプロセッサパイプラインレジスタを提供し、割り込み待ち時間を最小限に抑えることにある。
【実施例】
【００１０】
本発明の特長および他の目的を、図面を参照して詳細に説明する。
【００１１】
図１を参照して、好ましいＲＩＳＣマイクロプロセッサアーキテクチャ１０は７個の機能ユニット、すなわち、バスユニット（ＢＵＳＵ）１２、プログラム制御ユニット（ＰＣＵ）１４、命令フェッチユニット（ＩＦＵ）１６、レジスタファイル（ＲＦ）１８、実行ユニット（ＥＸＵ）２０、ブロックトランスファレジスタスコアボードユニット（ＢＴＲＳＵ）２２、およびデータロードストアユニット（ＤＬＳＵ）２４を備えている。ＰＣＵ１４は次の命令アドレス（ＮＩＡ）を発生する機能を担い、マイクロプロセッサのスループットまたはパイプラインのためのクロック制御信号を発生する。ＮＩＡは、プログラム制御ユニットの以下のアドレス動作、すなわち、継続動作（インクリメントプログラムカウンタ）、条件付分岐、条件付分岐およびリンク、レジスタへのジャンプ、レジスタおよびリンクへのジャンプのうち一つの動作の結果として、または優先ベクトル割り込み装置からのベクトルアドレスとして、発生される。
【００１２】
ＩＦＵ１６は、８個の命令バッファーの完全な組み合わせ（図示省略）と、ＮＩＡがバッファーのうちの一つに含まれていない場合、命令バッファーのロード機能を担う命令ロードユニット（図示省略）とより成る。
【００１３】
ＲＦ１８は、３個の読取りポートＲＳ１、ＲＳ２、ＩＤＳおよび２個の書込みポートＲＤ、ＩＤＬを有している。ポートＲＳ１、ＲＳ２およびＲＤを介するデータ出力は、固定３２ビット幅命令ワードＩの多数の命令フォーマット（図示省略）の特定のフィールドに対応している。マシンサイクル毎に、３回の読取りおよび２回の書込みを実行できる。読取りポートＲＳ１、ＲＳ２および書込みポートＲＤはＥＸＵ２０の専用である。残りの読取りおよび書込みポートはＤＬＳＵ２４の専用であり、このＤＬＳＵは、メモリにロードおよび格納される全ての値ＤＡだけでなく対応するレジスタファイルのロードおよび格納アドレスＲＡを発生する機能を担っている。
【００１４】
ＢＵＳＵ１２は、ＩＦＵ１６とＤＬＳＵ２４間でバス要求を仲裁し、ＩＦＵ１６からの命令アドレスＩＡかＤＬＳＵ２４からのデータアドレス（ＤＡ）のいずれかを選択する。ＢＵＳＵ１２は、システム１０のＤＲＡＭおよびＳＲＡＭの外部メモリアドレスおよびタイミングを全て発生し、また双方向外部データバスＤをサポートする。
【００１５】
ＢＴＲＳＵ２２は、発行されるマシン命令をモニターし、命令フォーマットの必要とされるソースオペランドに従ってレジスタスコアーボードをテストすることにより、発行される命令を継続できるかまたはロード動作がまだ実行されていないため一時的に停止しなければならないかをチェックする。スコアーボード信号ＳＣＲＢＲＤは、発行された命令について、スコアボードのヒット状態（すなわち、要求されるオペランドについてロードが未だ実行されていない状態）が存在していることをＤＬＳＵ２４に指示する。ＢＴＲＳＵ２２は、ＤＬＳＵ２４からの書込みポート２のアドレスＷＰ２またはＥＸＵ２０からの書込みポート１のアドレスＷＰ１のいずれかによってリセットできる。ＰＣＵ１４のパイプラインは、ＩＦＵ１６からの命令バッファー停止条件（フェッチ信号がフェッチ＝０）かまたはＤＬＳＵ２４からのデータロード格納停止条件（ＤＬＳＴＡＬＬ信号がＤＬＳＴＡＬＬ＝１）のいずれかによって停止することができる。データロード格納停止条件は、ＢＴＲＳＵ２２からのスコアボードヒット（ＳＣＲＢＲＤ信号）と、ロードまたは格納命令が前のロードまたは格納動作の完了前に発行されている状態との論理和により発生される。２個のパイプラインレジスタより成るセット（図示省略）は、各機能ユニットの各パイプラインステージに含まれている。
【００１６】
図２を参照して、本発明のプログラム制御ユニット（ＰＣＵ）１４の一実施例は４個の機能ユニット、すなわち、マスタークロック制御ユニット（ＭＣＬＫＣＴＬＸ）２６、ベクトル割り込みユニット（ＶＩＵＸ）２８、プログラム制御ユニットデータパス（ＰＣＵＤＰ）３０およびプログラム制御ユニットデコーダ（ＰＣＵＤＥＣ）３２を備えている。非同期（マイクロプロセッサ外で発生された）割り込み信号および同期（マイクロプロセッサ内で発生された）割り込み信号はＶＩＵＸ２８に入力される。後述するが、ＶＩＵＸ２８は、１６個の割り込みの各々に対応する１６個の固有信号ベクトルアドレスＶＡ１０−ＶＡ７を発生する。ＶＩＵＸ２８はさらにベクトルパイプライン可能化制御信号ＶＥＮＣを発生するが、このＶＥＮＣ信号はマスタークロック制御ユニットに通常パイプラインレジスタからベクトルパイプラインレジスタへ切り換えるよう指示する。マスタークロック制御ユニットＭＣＬＫＣＴＬＸ２６は、ＶＥＮＣから信号ＶＥＮとその相補信号ＶＥＮＢとを発生する。図１４も参照して、信号ＶＥＮおよびＶＥＮＢは、マイクロプロセッサ全体を通して、ＶＥＮＢ＝１，ＶＥＮ＝０の時は通常パイプラインレジスタを、またＶＥＮＢ＝０，ＶＥＮ＝１の時はベクトルパイプラインレジスタを選択するために用いられる。
【００１７】
図１２も参照して、信号ＶＥＮＰＵＬＳＥはＶＩＵＸ２８により発生されるが、この信号は、ＭＣＬＫＣＴＬＸ２６にベクトル割り込みサービスルーチンの始動を指示し、任意のパイプラインの停止状態とは無関係に、ベクトル割り込みアドレスＶＡ１０−ＶＡ７を、ＰＣＵＤＰ３０にあるベクトルパイプラインカウンタに直ちにロードするのに使用される。図４も参照して、ＭＣＬＫＣＴＬＸ２６から送られる信号ＶＲＳＴＦは、ＶＩＵＸ２８のＶＩＣＮＴＬ５０において割り込みベクトルをリセットするのに用いられる。ＰＣＵＤＰ３０は、通常プログラムカウンタパイプラインレジスタまたはベクトルプログラムカウンタパイプラインレジスタの出力を選択して次の命令アドレスＮＩＡを発生させる。全ての命令がワード境界上にあり、３２ビットのメモリアドレスがバイト単位でアドレス可能であるので、ＮＩＡワードアドレスをＮＩＡ３１−ＮＩＡ２として示す。ベクトル割り込みサービスルーチンに入ると、ベクトルプログラムパイプラインは、値ＮＩＡ３１−ＮＩＡ２＝０００・・・０００ＶＡ１０ＶＡ９ ＶＡ８ ＶＡ７ １００００をロードされる
。
【００１８】
上述のように、ベクトルアドレスＶＡ１０−ＶＡ７をオフセットすることによって、メモリの他の領域への岐路が必要となる前に３２個の命令（２個の命令バッファに匹敵）を発行できる。このアプローチによると、サイズが適度に保たれ、しかも時間が非常に重要な割り込みサービスルーチンにより割り込みを最も速い速度で処理することができる。
【００１９】
図３を参照して、パイプラインがセットされる三つの好ましい状態図、すなわち、ＵＳＥＲ、ＮＯＲＭＡＬ（Ｕ，Ｎ）３４、ＳＵＰＥＲＶＩＳＩＯＲ、ＶＥＣＴＯＲ（Ｓ，Ｖ）３６およびＳＵＰＥＲＶＩＳＯＲ、ＮＯＲＭＡＬ（Ｓ，Ｎ）３８を示す。ＮＯＲＭＡＬは通常パイプラインレジスタによる動作を、また、ＶＥＣＴＯＲはベクトルパイプラインレジスタによる動作を表す。スーパーバイザービットは、ベクトルパイプラインに入ると１にセットされ、特権モード命令の発行を可能にする。スーパーバイザーモードビットは、割り込み命令からのリターン（ＲＴＩ）により、またはクリアスーパーバイザーモードビット命令（ＣＳＭ）を発行することによってリセットされる。ベクトルビットは、割り込みによって生じた前の状態変化が状態（Ｕ，Ｎ）３４から状態（Ｓ，Ｖ）３６であれば、前の状態にリセットされる。しかしながら、前の状態が状態（Ｓ，Ｎ）３８から変化したものであれば、ＲＴＩ命令により状態が（Ｓ，Ｖ）３６から（Ｓ，Ｎ）３８へ戻る。加うるに、状態が状態（Ｕ，Ｎ）３４から状態（Ｓ，Ｖ）３６へ変化しておれば、通常パイプラインへのリターン（ＲＮＰ）命令の発行により状態が状態（Ｓ，Ｖ）３６から状態（Ｓ，Ｎ）３８へ変化して、そのパイプラインを通常状態に戻すが、システムをスーパーバイザー状態に保持する。マイクロプロセッサは、ベクトルモードにある間、優先使用を許容しない。しかしながら、従来技術とは異なり、割り込みのキューイングを許容する。優先ベクトル割り込みシステムの状態図によって示された固有の動作により、優先使用を許容しないモードと許容するモードでの動作が可能になる。所与の割り込みサービスルーチンはそのコードの一部を何れかのモードで走らせることができるため、時間が非常に重要な部分を優先使用を許容しないモードで走らせることができる。
【００２０】
さらに、図３を参照して、優先使用を許容しない割り込みの一例として、状態（Ｕ，Ｎ）３４で動作するユーザープログラムを、ＤＲＡＭリフレッシュ割り込みトラップによって状態（Ｓ，Ｖ）３６へベクトルすることができるため、サイクルＤＲＡＭリフレッシュ格納動作が実行可能となり、ベクトルを割り込み（ＲＴＩ）から状態（Ｕ，Ｎ）３４へ直ちに戻すことができる。ＤＲＡＭリフレッシュ動作の優先使用を許容しない処理の間に他の割り込みが発生した場合、これらの割り込みはキューイングされるが、現在の割り込みサービスルーチンはスワップアウトされない。キューイングされた割り込みのうち最優先の割り込みは、現在の割り込みが完了すると処理される。
【００２１】
なおも図３を参照して、優先使用を許容しない割り込みの一例として、状態（Ｕ，Ｎ）３４で動作するユーザープログラムを非同期キーボード割り込みトラップによって状態（Ｓ，Ｖ）３６へベクトルすることができる。キーボード割り込みサービスルーチンは通常は優先使用を許容するものであるため、状態（Ｓ，Ｖ）３６にある間にキーボード割り込みルーチンによって実行される最初の動作は、それへの割り込みを許容されない全ての割り込みをマスクすることである。第２に、ユーザープログラムカウンタの前の二つの値を、全てのトラップ状態の下でプロセスを適切に再開できるようにするため格納する必要がある。レジスタファイル（ＲＦ）には６４個の３２ビットレジスタがあるので、そのうちの小さな一組をカーネルモード動作に割り当て、またユーザープロセスに関連のレジスタをスワップアウトすることができる。次に、キーボードルーチンにより通常パイプラインへのリターン命令（ＲＮＰ）を発行させて、状態を（Ｓ，Ｎ）３８へ強制的に変化させ、優先使用を許容するスーパーバイザーモード動作が起こるようにすることができる。マスクされていない組み合せの割り込みについて、最優先の割り込みルーチンがキーボードルーチンをスワップアウトするルーチンとなるように、優先順位を決める。状態（Ｓ，Ｎ）３８からの最終的な復帰は、レジスタファイルの値を再び格納して、レジスタへのジャンプ命令（ＪＲ）およびクリアスーパーバイザーモードビット命令（ＣＳＭ）を発行することによって達成される。
【００２２】
状態（Ｓ，Ｎ）３８にある間、割り込みトラップにより状態が（Ｓ，Ｖ）３６へ変化する。この状態変化は状態（Ｓ，Ｎ）３８からなので、ＲＴＩまたはＲＮＰのいずれかの発行により状態が（Ｓ，Ｎ）３８へ戻る。通常モードにおける状態の（Ｓ，Ｎ）３８から（Ｕ，Ｎ）３４への復帰は、レジスタファイルを再格納し、レジスタへのジャンプ命令（ＪＲ）の後、クリアスーパーバイザーモード命令（ＣＳＭ）を発行することによって達成される。
【００２３】
図４を参照して、好ましい優先ベクトル割り込みユニット（ＶＩＵＸ）２８は、ベクトル割り込みマスクユニット（ＶＩＭＳＫ）４０、ベクトル割り込みサンプラーユニット（ＶＩＳＭＰＬＥ）４２、ベクトル割り込み優先フィルターユニット（ＶＰＲＩＦ）４４、ベクトル割り込みリセットユニット（ＶＩＲＳＴ）４６、ベクトル割り込みデコーダ（ＶＩＤＥＣ）４８、ベクトル割り込み制御ユニット（ＶＩＣＮＴＬ）５０、およびスパーバイザーモード制御ユニット（ＳＵＰＥＲＶＣ）５２から構成されている。
【００２４】
さらに図４を参照して、ＶＩＭＳＫユニット４０は、優先順位を付けられた１６個の割り込みＥＲＱ０Ｂ乃至ＥＲＱ１５Ｂを入力として受け、内部データロードバスによりそれ
らの割り込みのうち任意のまたは全ての割り込みをマスクするマスクレジスタをロードする。マスクレジスタは、データラッチ可能化信号（ＤＬＡＴ１）＝１、コンフィグレーション２可能化信号（ＣＦＲ２ＥＮ）＝１、およびクロック信号（ＣＬＫ）＝０の条件では透過性であり、そうでなければ内部データロードバスビットをラッチする。ＶＩＭＳＫ４０は、低レベルでアクテイブな、マスクされた割り込み信号ＩＲＱ０Ｂ−ＩＲＱ１５Ｂを発生する。ここにおいて、ＩＲＱ０Ｂは最優先、ＩＲＱ１５Ｂは優先度が最も低い割り込みである。
【００２５】
さらに図４を参照して、ＣＬＫが低い値に移行する時に、ＶＩＳＭＰＬＥ４２は、非同期または同期割り込みＩＲＱ０Ｂ−ＩＲＱ１５Ｂをサンプリングし、サンプリングにより得られる対応する信号がクロックの次の正方向縁部でＤ型レジスタをセットする。サンプリングにより得られる低レベルでアクティブな信号をＩ０Ｂ−Ｉ１５Ｂで示す。サンプリングにより得られる高レベルでアクティブな状態出力は、ＰＤ０−ＰＤ１５に現われる。この出力を用いて優先ベクトル割り込みシステムの状態を判定する。サンプリングされた割り込みのＤ型レジスタおよびラッチは、ＶＩＲＳＴユニット４６から供給される信号Ｓ０ＲＳＴ−Ｓ１５ＲＳＴに従ってリセットされる。高レベルでアクティブな特権モード割り込み信号は、スーパーバイザーモード制御ユニットＳＵＰＥＲＶＣ５２によって発生され、ユーザープログラムが違法命令を発行しているか、または予約されたメモリスペースに迷い込んでいる状態を発信する。
【００２６】
さらに図４を参照して、ＶＰＲＩＦ４４は、ＶＩＳＭＰＬＥユニット４２から受信した出力Ｉ０Ｂ−Ｉ１５Ｂをフィルタリングして符号化された割り込み出力ＥＮ０−ＥＮ１５を発生する。これらの出力は、ＶＩＲＳＴ４６およびＶＩＤＥＣ４８に供給される。加うるに、フィルタリングされた優先度が最下位の出力ＥＮ１５はＶＩＣＮＴＬ５０に供給される。
【００２７】
更に図４を参照して、ＶＩＲＳＴ４６は、現在の割り込みサービスルーチンのベクトル割り込みをリセットするのに用いられる。ＶＩＵＸユニットは、優先使用を許容しない割り込みの実行中に他の割り込みのキューイングを可能にする。従って、ＶＩＲＳＴ４６は、割り込みからのリターン命令（ＲＴＩ）または通常パイプラインからのリターン命令（ＲＮＰ）が現在の割り込みを正しくリセットし、しかも他の割り込みのキューイングを可能にするように、最後の割り込みトラップを格納しなければならない。
【００２８】
更に図４を参照して、ＶＩＤＥＣ４８は、入力Ｘ１５−Ｘ０としてフィルタリングされた割り込みＥＮ０−ＥＮ１５をそれぞれ受けて、ベクトルアドレスＶＡ１０−ＶＡ７を発生する先行ゼロ検知器である。ＶＰＲＩＦ４４とＶＩＤＥＣ４８とは、協働して、マスクされた割り込みベクトルを符号化する優先符号化器として機能する。これらは二つの別個のユニットとして構成され、先ず第１に優先使用を許容しない割り込みが処理される間、割り込みのキューイングを容易にし、第２に単一のリセット動作（ＲＴＩ）または（ＲＮＰ）により、処理されたばかりの割り込みだけを選択的にリセットできるようにする。
【００２９】
図５を参照して、該図は図４のＶＩＭＳＫ４０の論理図である。１６個のラッチ５４により、割り込みＥＲＱ０Ｂ−ＥＲＱ１５Ｂの各々をマスクまたは可能化する。電源投入によりリセットされると、ラッチ５４はゼロ状態にリセットされて全ての割り込みをマスクする。ラッチ５４は、条件（ＣＦＲ２ＥＮ＝１）（ＤＬＡＴ１＝１）（ＣＬＫ＝１）が存在する時透過性であり、そうでなければ内部データロードバスマスクビットをラッチする。内部データロードバスビットＩＤＬ１６はラッチ５３に入力され、割り込みトラップＥＲＱ０Ｂではなく特権モードトラップＰＲＩＶＴＲＰＣをＳＵＰＥＲＶＣ５２から選択するのに用いられる。
【００３０】
図６を参照して、該図は図４のＶＩＳＭＰＬＥ４２の論理図である。ラッチ５８は、ＣＬＫが低レベルになると非同期または同期割り込みをサンプリングし、ＣＬＫの正方向の縁部でそれらの割り込みをラッチするために用いられる。ＣＬＫの正方向の縁部において、Ｄ型レジスタ６０は、ＣＬＫの前の半サイクルの間にサンプリングされた割り込みがあればその全てに対して論理１となる。
【００３１】
図７を参照して、該図は本実施例の図４のＶＰＲＩＦ４４の論理図である。ＶＰＲＩＦ４４は、ＶＩＳＭＰＬＥ４２からのマスクされた割り込み値をフィルタリングしてＥＮ０−ＥＮ１５を発生する。次の表１はＶＰＲＩＦ４４の真理表を示す。
【００３２】
【表１】
2006221664.tif 000003
【００３３】
図８を参照して、該図は図４のＶＩＲＳＴ４６の論理図である。このユニットはＤ型レジスタ６２により構成されており、電源投入によりリセットされると、論理値１になる。ベクトル割り込みフィルタからのゲートされた値ＥＮ０−ＥＮ１５をレジスタがクロッキングすることにより、図４のＶＰＲＩＦ４４からの信号がブロックされるため、処理中の優先ベクトル割り込みは、現在の割り込みの処理中に他の割り込みがキューイングできる
ことから、その処理の終了時に正しくリセットされる。ＶＩＲＳＴ４６は、図４のＶＩＣＮＴＬ５０から受信されるＶＲＥＳＴＢ信号の指示により、処理が完了した割り込みをリセットする。一対のリセット信号が割り込みリセットの度毎に発生される。Ｓ０ＲＳＴ−Ｓ１５ＲＳＴのセット信号は図４および図６のベクトルサンプラーユニットＶＩＳＭＰＬＥ４２の５８および６０に送られ、図４において、優先割り込みが実行されるときパイプラインで実行される動作のリセット信号であるＥＯＲＳＴ−Ｒ１５ＲＳＴのセット信号はマイクロプロセッサチップ（図示省略）の他のユニットに送られる。
【００３４】
図９を参照して、該図は図４のＶＩＤＥＣ４８の論理図である。ＶＩＤＥＣ４８は高速１６ビット先行ゼロ検知器（ＸＬＺＤ１６）６４および４個のＤ型エッジトリガーデバイス６６から成り、これらデバイスの入力は検知器（ＸＬＺＤ１６）６４から供給され、電源投入によりＶＥＮＣがリセットされると論理値１にリセットされる。Ｄ型レジスタ６６は、図４のＶＩＣＮＴＬ５０で発生された信号ＶＥＮＣによってクロッキングされる。
【００３５】
図１０において、図９で説明した検知器（ＸＬＺＤ１６）６４は、高速４ビット先行ゼロ検知器（ＸＬＺＤ４）６８と２入力マルチプレキサセルＩＭＵＸＳＥＬ７０との組合せによって構成される。ＩＭＵＸＳＥＬセル７０は、条件（ｓ＝１）（ｓｂ＝０）に従って入力１を選択し、そうでなければ入力０を選択する。相補出力が各セル７０の出力に発生される。
【００３６】
再度図９、図１０および図１１を参照して、次に検知器（ＸＬＺＤ１６）６４の真理表を示すが、表３は検知器（ＸＬＺＤ４）６８の真理表である。
【００３７】
【表２】
2006221664.tif 000004
【００３８】
【表３】
2006221664.tif 000005
【００３９】
図１２を参照して、該図は図４のＶＩＣＮＴＬ５０の論理図である。ＭＣＬＫは、ＶＥＮＣ信号を発生するために組み込まれた第１のＤ型レジスタ７２に供給される。ＶＥＮＣ
は、ＶＥＮＰＵＬＳＥ信号を発生させるために４ゲート遅延回路（ＤＥＬＡＹ４）７４を介して第２のＤ型レジスタ７２に供給される。回路（ＤＥＬＡＹ４）７４は、クロックレベル間のスキューによりパイプラインが乱調状態にならないようにする。
【００４０】
信号ＶＲＳＴＦは、８ゲート遅延回路７６（ＤＥＬＡＹ８）を用いてＶＲＥＳＥＴＣを発生するのに用いられる。回路（ＤＥＬＡＹ８）７６の長い遅延により、ＶＲＥＳＥＴＣがパルスになる。
【００４１】
図１３を参照して、該図は図４のＳＵＰＥＲＶＣ５２の論理ブロック図である。このユニットは、ユーザモードプログラムが特権命令を発行するかまたはユーザプロセスがそのプロセスに割当てられていないメモリの読取り、書込みを行おうとすることにより生じる特権モードトラップ状態（ＰＲＩＶＴＲＰＣ＝１）を検出するのに用いられる。スーパーバイザーモード状態（ＳＵＰＥＲＶＣ＝１）は、図４および図１２のＶＩＣＮＴＬ５０から供給されるＶＥＮＣ制御信号の正方向の縁部によって可能化される。ＳＵＰＲＳＴスーパーバイザーモードリセット信号は、割り込みからのリターン命令（ＲＴＩ）またはクリアスーパーバイザーモード（ＣＳＭ）命令のいずれかから復号される。命令（ＲＴＩ）および（ＲＮＰ）がスーパーバイザーモードをリセットしないため、割り込みサービスルーチンは優先使用を許容しない動作モードかまたは許容する動作モードのいずれかの下で処理を行うことができることに注意されたい。
【００４２】
図１４を参照して、該図は好ましいＲＩＳＣマイクロプロセッサアーキテクチャの全てのパイプラインレジスタの構成に常用されるデュアルパイプラインレジスタセル（ＰＲＥＧ０）８１の論理図である。このデュアルパイプラインレジスタ８１は、二つのリセット可能なＤ型レジスタ８２、８４を含んでいる。Ｄ型レジスタ８２は、通常モードの処理に割り当てられ、条件ＩＲＳ＝１を適用すると０にリセットできる。レジスタ８２のクロックは条件ＶＥＮＢ＝１で可能化され、その出力はインバータ８８に信号を供給する２対１マルチプレクサ８６の０入力に接続されている。Ｄ型レジスタ８４は、ベクトルモードの処理に割り当てられ、条件ＶＲＳ＝１を適用すると０にリセットされる。レジスタ８４のクロックは条件ＶＥＮ＝１で可能化され、その出力は２対１マルチプレクサ８６の１入力に接続されている。制御信号ＩＲＳ＝１は通常パイプラインクリア命令（ＣＰ）によって発生され、条件ＶＲＳ＝１は図３の状態図との関連で説明した割り込みからのリターン命令（ＲＴＩ）かまたは通常モードへのリターン命令（ＲＮＰ）のいずれかによって発生される。制御信号ＶＥＮおよびＶＥＮＢは、図２のマスタークロックユニット（ＭＣＬＫＣＴＬＸ）２６によって発生されるが、これらはＶＥＮ＝ＶＥＮＣから実質的に得られるもので、ＶＥＮＢはＶＥＮの補数である。ＶＥＮおよびＶＥＮＢには、それぞれ通常およびベクトルレジスタ８２、８４のクロック可能化信号と、図１４の接続に示されるマルチプレクサセレクト信号の役目がある。図１４の２対１マルチプレクサ８６およびインバータ８８は、ＶＥＮ＝０であるときはいつも通常レジスタ８２を選択し、ＶＥＮ＝１であるときはいつもベクトルレジスタ８４を選択する。
【００４３】
図１５は、第２の割り込みのキューイングを可能にする優先使用を許容しない割り込みの処理を説明するための優先ベクトル割り込みシステムのタイミング図の一例である。マスタークロックの正方向の縁部である０と１の間で、ＥＲＱＸＢが低レベルになると、割り込みサービスルーチンがトリガされて、制御信号ＶＥＮＣが時点１と２の間で高レベルになる。割り込みＥＲＱＸＢに関連するべクトルアドレスＶＡ１０−ＶＡ７が直ちにベクトルパイプラインプログラムカウンタレジスタにロードされるので、時点２の開始時に割り込みサービスルーチンがその処理を開始する。図１５の例において、マスクされていない第２の割り込みＥＲＱＹＢは、現在の一つの割り込み処理が完了して割り込みからのリターン命令（ＲＴＩ）（図示省略）によってリセットされるまでキューイング状態にある。キューイングされていた割り込みは、時点８においてそのサービスを開始し、通常モー
ド処理が再開される時点１１でサービスを完了する。
【００４４】
高速優先ベクトル割り込みシステムの論理設計とマイクロプロセッサプログラム制御ユニットおよびデュアルパイプラインレジスタの設計とが緊密に結合された結果、上述の実施例は割り込み要求から２サイクルという短い、予測可能な割り込み応答時間を達成できる。さらに、従来例と異なり、この短い待ち時間を与える割り込み応答時間により他の割り込みのキューイングが可能となる。さらに、上述の実施例は、図２に示すように優先使用を許容する動作モードと許容しない動作モードとを組み合わせてリアルタイムオペレーティングシステムにとって重要なタイミング条件を単純化する割り込みサービスルーチンの作成を可能にする。
【図面の簡単な説明】
【００４５】
【図１】本発明のベクトル割り込みシステムを含むプログラム制御ユニット（ＰＣＵ）を組み込んだマイクロプロセッサアーキテクチャの機能ブロック図である。
【図２】マスタークロック制御ユニット（ＭＣＬＫＣＴＬＸ）、ベクトル割り込みユニット（ＶＩＵＸ）、プログラム制御データバス（ＰＣＵＤＰ）およびプログラム制御デコーダ（ＰＣＵＤＥＣ）から成る図１のプログラム制御ユニット（ＰＣＵ）の機能ブロック図である。
【図３】優先ベクトル割り込みシステムの状態図であって、本発明の割り込みトラップ処理に関連する三つの可能な割り込み状態を、ユーザー／通常状態（Ｕ，Ｎ）、スーパーバイザー／ベクトル状態（Ｓ，Ｖ）およびスーパーバイザー／通常状態（Ｓ，Ｎ）として示す。
【図４】ベクトル割り込みマスク（ＶＩＭＳＫ）、ベクトル割り込みサンプラー（ＶＩＳＭＰＬＥ）、ベクトル優先フィルター（ＶＰＲＩＦ）、ベクトル割り込みリセット（ＶＩＲＳＴ）、ベクトル割り込みデコーダ（ＶＩＤＥＣ）、ベクトル割り込み制御ユニット（ＶＩＣＮＴＬ）およびスーパーバイザー制御ユニット（ＳＵＰＥＲＶＣ）から成る優先ベクトル割り込みユニット（ＶＩＵＸ）の機能ブロック図である。
【図５】１６個の同期および非同助割り込み信号をマスクするための優先ベクトル割り込みマスク（ＶＩＭＳＫ）の論理ブロック図である。
【図６】同期および非同則割り込みをマスクするための優先ベクトル割り込みサンプラー（ＶＩＳＭＰＬＥ）の論理ブロック図である。
【図７】ベクトル割り込みリセット（ＶＩＲＳＴ）およびベクトル優先デコーダ（ＶＩＤＥＣ）の先行ゼロ検出デコーダを後で処理するためにサンプリングされた割り込みの優先順位を決めるための優先ベクトル割り込みシステム優先フィルター（ＶＰＲＩＦ）の論理ブロック図である。
【図８】割り込み処理の終了時にベクトル割り込みサンプラー（ＶＩＳＭＰＬＥ）をリセットするために使用し、さらに現在の割り込みの処理中にマクスされていない他の割り込みのキューイングを可能にする優先ベクトル割り込みシステムリセット（ＶＩＲＳＴ）の論理ブロック図である。
【図９】プログラム制御データパス（ＰＣＵＤＰ）のベクトルモードの次のプログラムカウンタアドレスと共に多重化されて次の命令アドレス（ＮＩＡ）を発生させる優先ベクトル割り込みアドレスを発生する優先ベクトル割り込み先行ゼロ検出デコーダ（ＶＩＤＥＣ）の論理ブロック図である。
【図１０】優先ベクトル割り込みシステム優先フィルター（ＶＰＲＩＦ）からの１６個のフィルタリング済み出力に対して先行ゼロ機能を実行するベクトル割り込み先行ゼロ検出デコーダ（ＸＬＺＤ１６）の論理ブロック図である。
【図１１】先行ゼロ検出器の４ビットビィルディングブロック（ＸＬＺＤ４）の論理ブロック図である。
【図１２】優先ベクトル割り込みシステム制御論理回路（ＶＩＣＮＴＬ）の論理ブロック図である。
【図１３】優先ベクトル割り込みシステムスーパーバイザーモード制御論理回路（ＳＵＰＥＲＶＣ）の論理ブロック図である。
【図１４】優先ベクトル割り込みシステムのデュアルパイプラインレジスタセル（ＰＲＥＧ０）の論理ブロック図である。
【図１５】優先使用を許容しない割り込みの実行中に発生する割り込みのキューイングおよびその後の処理を説明するための優先ベクトル割り込みシステムのタイミング図の一例である。
【図１】
2006221664.tif 000006
【図２】
2006221664.tif 000007
【図３】
2006221664.tif 000008
【図４】
2006221664.tif 000009
【図５】
2006221664.tif 000010
【図６】
2006221664.tif 000011
【図７】
2006221664.tif 000012
【図８】
2006221664.tif 000013
【図９】
2006221664.tif 000014
【図１０】
2006221664.tif 000015
【図１１】
2006221664.tif 000016
【図１２】
2006221664.tif 000017
【図１３】
2006221664.tif 000018
【図１４】
2006221664.tif 000019
【図１５】
2006221664.tif 000020