JP2007018497A - Riscマイクロプロセッサ優先ベクトル割り込みシステム - Google Patents
Riscマイクロプロセッサ優先ベクトル割り込みシステム Download PDFInfo
- Publication number
- JP2007018497A JP2007018497A JP2006078465A JP2006078465A JP2007018497A JP 2007018497 A JP2007018497 A JP 2007018497A JP 2006078465 A JP2006078465 A JP 2006078465A JP 2006078465 A JP2006078465 A JP 2006078465A JP 2007018497 A JP2007018497 A JP 2007018497A
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- pipeline
- instruction
- preferential use
- vector
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
【課題】優先使用を許容しない割り込みに対する応答時間を予測可能とする縮小命令セットパイプライン型マイクロプロセッサのベクトル割り込みシステムを提供する。
【解決手段】優先ベクトル割り込みユニット28は、ベクトル割り込みマスクユニット40、ベクトル割り込みサンプラーユニット42、ベクトル割り込み優先フィルターユニット44、ベクトル割り込みリセットユニット46、ベクトル割り込みデコーダ48、ベクトル割り込み制御ユニット50及びスパーバイザーモード制御ユニット52から構成されている。
【選択図】図4
【解決手段】優先ベクトル割り込みユニット28は、ベクトル割り込みマスクユニット40、ベクトル割り込みサンプラーユニット42、ベクトル割り込み優先フィルターユニット44、ベクトル割り込みリセットユニット46、ベクトル割り込みデコーダ48、ベクトル割り込み制御ユニット50及びスパーバイザーモード制御ユニット52から構成されている。
【選択図】図4
Description
本発明はマイクロプロセッサ、より詳しくは高速で短い待ち時間の割り込みサービスルーチン処理、一般的なコンテキストスイッチ割り込み
処理モードを必要とするパイプライン型RISCマイクロプロセッサアーキテクチャに関する。
処理モードを必要とするパイプライン型RISCマイクロプロセッサアーキテクチャに関する。
パイプライン型RISCマイクロプロセッサは、命令を複数の機能ユニットに分割して複数の命令を装置内の異なるステージで同時に実行できるようにするため、命令のサイクル時間の短縮が可能であり、高速コンピュータを実現する上でますますポピュラーになっている。
従来設計の信号プロセッサ型マイクロプロセッサは、リアルタイム割り込み応答時間が適当なだけでなく毎秒の命令個数が多い部類に入る。しかしながら、この設計によると、オペレーティングシステムに必要とされるコンテキストスイッチングに対するサポートが不十分である。
汎用パイプライン型RISCマイクロプロセッサの分野における別の従来設計には、毎秒の命令個数としてのスループットを増加できるものがあるが、リアルタイム割り込み応答時問は比較的見劣りがする。これらの従来設計において優先使用を許容しない(non-preemptable)動作を実現するには、割り込みサービスルーチンの開始時に割り込みマスクをセットする必要がある。このマスクには他の全ての割り込みをブロックする作用がある。これを行うと、システムでは、現在の割り込みサービスルーチンの進行中に発生する他の非同期または同期割り込みが失われてしまう。
後述するように、本発明は、ベクトル割り込みユニットにより割り込みサービスルーチンを再ベクトルすることによって優先使用を許容しない割り込み動作を可能にする結果、スワップアウトされる第1の割り込みユニットについては割り込み応答時間が確定しない改良型優先ベクトル割り込みシステムを提供する。
本発明は、マスタークロック、ベクトル割り込み部、PCUデコーダ部およびPCUデータパスを組み込んだプログラム制御ユニット(PCU)を包含する。典型的には、非同期および同期割り込みがベクトル割り込み部に入力されて処理されると、内部割り込みトラップ処理および割り込みキューイングを受ける割り込み状態となる。
従って、本発明の一つの目的は、割り込み応答時間が高速であり、リアルタイムオペレイティングシステムを直接サポートし、優先使用を許容する動作モードと許容しない動作モードとの組み合わせを実現し、優先使用を許容しない割り込みに対する応答時間を予測可能とする縮小命令セット(RISC)パイプライン型マイクロプロセッサの改良型ベクトル割り込みシステムを提供することにある。
本発明の別の目的は、割り込みキューイングにより優先使用を許容する割り込みを優先使用を許容しない割り込みと共にサポートすることにある。
本発明のさらに別の目的は、優先使用を許容する割り込みサービスルーチンと許容しない割り込みサービスルーチンとを処理するために通常モードレジスタ及びベクトルモードレジスタの対より成る改良型マイクロプロセッサパイプラインレジスタを提供し、割り込み待ち時間を最小限に抑えることにある。
本発明の特長および他の目的を、図面を参照して詳細に説明する。
図1を参照して、好ましいRISCマイクロプロセッサアーキテクチャ10は7個の機能ユニット、すなわち、バスユニット(BUSU)12、プログラム制御ユニット(PCU)14、命令フェッチユニット(IFU)16、レジスタファイル(RF)18、実行ユニット(EXU)20、ブロックトランスファレジスタスコアボードユニット(BTRSU)22、およびデータロードストアユニット(DLSU)24を備えている。PCU14は次の命令アドレス(NIA)を発生する機能を担い、マイクロプロセッサのスループットまたはパイプラインのためのクロック制御信号を発生する。NIAは、プログラム制御ユニットの以下のアドレス動作、すなわち、継続動作(インクリメントプログラムカウンタ)、条件付分岐、条件付分岐およびリンク、レジスタへのジャンプ、レジスタおよびリンクへのジャンプのうち一つの動作の結果として、または優先ベクトル割り込み装置からのベクトルアドレスとして、発生される。
図1を参照して、好ましいRISCマイクロプロセッサアーキテクチャ10は7個の機能ユニット、すなわち、バスユニット(BUSU)12、プログラム制御ユニット(PCU)14、命令フェッチユニット(IFU)16、レジスタファイル(RF)18、実行ユニット(EXU)20、ブロックトランスファレジスタスコアボードユニット(BTRSU)22、およびデータロードストアユニット(DLSU)24を備えている。PCU14は次の命令アドレス(NIA)を発生する機能を担い、マイクロプロセッサのスループットまたはパイプラインのためのクロック制御信号を発生する。NIAは、プログラム制御ユニットの以下のアドレス動作、すなわち、継続動作(インクリメントプログラムカウンタ)、条件付分岐、条件付分岐およびリンク、レジスタへのジャンプ、レジスタおよびリンクへのジャンプのうち一つの動作の結果として、または優先ベクトル割り込み装置からのベクトルアドレスとして、発生される。
IFU16は、8個の命令バッファーの完全な組み合わせ(図示省略)と、NIAがバッファーのうちの一つに含まれていない場合、命令バッファーのロード機能を担う命令ロードユニット(図示省略)とより成る。
RF18は、3個の読取りポートRS1、RS2、IDSおよび2個の書込みポートRD、IDLを有している。ポートRS1、RS2およびRDを介するデータ出力は、固定32ビット幅命令ワードIの多数の命令フォーマット(図示省略)の特定のフィールドに対応している。マシンサイクル毎に、3回の読取りおよび2回の書込みを実行できる。読取りポートRS1、RS2および書込みポートRDはEXU20の専用である。残りの読取りおよび書込みポートはDLSU24の専用であり、このDLSUは、メモリにロードおよび格納される全ての値DAだけでなく対応するレジスタファイルのロードおよび格納アドレスRAを発生する機能を担っている。
BUSU12は、IFU16とDLSU24間でバス要求を仲裁し、IFU16からの命令アドレスIAかDLSU24からのデータアドレス(DA)のいずれかを選択する。BUSU12は、システム10のDRAMおよびSRAMの外部メモリアドレスおよびタイミングを全て発生し、また双方向外部データバスDをサポートする。
BTRSU22は、発行されるマシン命令をモニターし、命令フォーマットの必要とされるソースオペランドに従ってレジスタスコアーボードをテストすることにより、発行される命令を継続できるかまたはロード動作がまだ実行されていないため一時的に停止しなければならないかをチェックする。スコアーボード信号SCRBRDは、発行された命令について、スコアボードのヒット状態(すなわち、要求されるオペランドについてロードが未だ実行されていない状態)が存在していることをDLSU24に指示する。BTRSU22は、DLSU24からの書込みポート2のアドレスWP2またはEXU20からの書込みポート1のアドレスWP1のいずれかによってリセットできる。PCU14のパイプラインは、IFU16からの命令バッファー停止条件(フェッチ信号がフェッチ=0)かまたはDLSU24からのデータロード格納停止条件(DLSTALL信号がDLSTALL=1)のいずれかによって停止することができる。データロード格納停止条件は、BTRSU22からのスコアボードヒット(SCRBRD信号)と、ロードまたは格納命令が前のロードまたは格納動作の完了前に発行されている状態との論理和により発生される。2個のパイプラインレジスタより成るセット(図示省略)は、各機能ユニットの各パイプラインステージに含まれている。
図2を参照して、本発明のプログラム制御ユニット(PCU)14の一実施例は4個の機能ユニット、すなわち、マスタークロック制御ユニット(MCLKCTLX)26、ベクトル割り込みユニット(VIUX)28、プログラム制御ユニットデータパス(PCUDP)30およびプログラム制御ユニットデコーダ(PCUDEC)32を備えている。非同期(マイクロプロセッサ外で発生された)割り込み信号および同期(マイクロプロセッサ内で発生された)割り込み信号はVIUX28に入力される。後述するが、VIUX28は、16個の割り込みの各々に対応する16個の固有信号ベクトルアドレスVA10−VA7を発生する。VIUX28はさらにベクトルパイプライン可能化制御信号VENCを発生するが、このVENC信号はマスタークロック制御ユニットに通常パイプラインレジスタからベクトルパイプラインレジスタへ切り換えるよう指示する。マスタークロック制御ユニットMCLKCTLX26は、VENCから信号VENとその相補信号VENBとを発生する。図14も参照して、信号VENおよびVENBは、マイクロプロセッサ全体を通して、VENB=1,VEN=0の時は通常パイプラインレジスタを、またVENB=0,VEN=1の時はベクトルパイプラインレジスタを選択するために用いられる。
図12も参照して、信号VENPULSEはVIUX28により発生されるが、この信号は、MCLKCTLX26にベクトル割り込みサービスルーチンの始動を指示し、任意のパイプラインの停止状態とは無関係に、ベクトル割り込みアドレスVA10−VA7を、PCUDP30にあるベクトルパイプラインカウンタに直ちにロードするのに使用される。図4も参照して、MCLKCTLX26から送られる信号VRSTFは、VIUX28のVICNTL50において割り込みベクトルをリセットするのに用いられる。PCUDP30は、通常プログラムカウンタパイプラインレジスタまたはベクトルプログラムカウンタパイプラインレジスタの出力を選択して次の命令アドレスNIAを発生させる。全ての命令がワード境界上にあり、32ビットのメモリアドレスがバイト単位でアドレス可能であるので、NIAワードアドレスをNIA31−NIA2として示す。ベクトル割り込みサービスルーチンに入ると、ベクトルプログラムパイプラインは、値NIA31−NIA2=000・・・000VA10VA9 VA8 VA7 10000をロードされる。
上述のように、ベクトルアドレスVA10−VA7をオフセットすることによって、メモリの他の領域への岐路が必要となる前に32個の命令(2個の命令バッファに匹敵)を発行できる。このアプローチによると、サイズが適度に保たれ、しかも時間が非常に重要な割り込みサービスルーチンにより割り込みを最も速い速度で処理することができる。
図3を参照して、パイプラインがセットされる三つの好ましい状態図、すなわち、USER、NORMAL(U,N)34、SUPERVISIOR、VECTOR(S,V)36およびSUPERVISOR、NORMAL(S,N)38を示す。NORMALは通常パイプラインレジスタによる動作を、また、VECTORはベクトルパイプラインレジスタによる動作を表す。スーパーバイザービットは、ベクトルパイプラインに入ると1にセットされ、特権モード命令の発行を可能にする。スーパーバイザーモードビットは、割り込み命令からのリターン(RTI)により、またはクリアスーパーバイザーモードビット命令(CSM)を発行することによってリセットされる。ベクトルビットは、割り込みによって生じた前の状態変化が状態(U,N)34から状態(S,V)36であれば、前の状態にリセットされる。しかしながら、前の状態が状態(S,N)38から変化したものであれば、RTI命令により状態が(S,V)36から(S,N)38へ戻る。加うるに、状態が状態(U,N)34から状態(S,V)36へ変化しておれば、通常パイプラインへのリターン(RNP)命令の発行により状態が状態(S,V)36から状態(S,N)38へ変化して、そのパイプラインを通常状態に戻すが、システムをスーパーバイザー状態に保持する。マイクロプロセッサは、ベクトルモードにある間、優先使用を許容しない。しかしながら、従来技術とは異なり、割り込みのキューイングを許容する。優先ベクトル割り込みシステムの状態図によって示された固有の動作により、優先使用を許容しないモードと許容するモードでの動作が可能になる。所与の割り込みサービスルーチンはそのコードの一部を何れかのモードで走らせることができるため、時間が非常に重要な部分を優先使用を許容しないモードで走らせることができる。
さらに、図3を参照して、優先使用を許容しない割り込みの一例として、状態(U,N)34で動作するユーザープログラムを、DRAMリフレッシュ割り込みトラップによって状態(S,V)36へベクトルすることができるため、サイクルDRAMリフレッシュ格納動作が実行可能となり、ベクトルを割り込み(RTI)から状態(U,N)34へ直ちに戻すことができる。DRAMリフレッシュ動作の優先使用を許容しない処理の間に他の割り込みが発生した場合、これらの割り込みはキューイングされるが、現在の割り込みサービスルーチンはスワップアウトされない。キューイングされた割り込みのうち最優先の割り込みは、現在の割り込みが完了すると処理される。
なおも図3を参照して、優先使用を許容しない割り込みの一例として、状態(U,N)34で動作するユーザープログラムを非同期キーボード割り込みトラップによって状態(S,V)36へベクトルすることができる。キーボード割り込みサービスルーチンは通常は優先使用を許容するものであるため、状態(S,V)36にある間にキーボード割り込みルーチンによって実行される最初の動作は、それへの割り込みを許容されない全ての割り込みをマスクすることである。第2に、ユーザープログラムカウンタの前の二つの値を、全てのトラップ状態の下でプロセスを適切に再開できるようにするため格納する必要がある。レジスタファイル(RF)には64個の32ビットレジスタがあるので、そのうちの小さな一組をカーネルモード動作に割り当て、またユーザープロセスに関連のレジスタをスワップアウトすることができる。次に、キーボードルーチンにより通常パイプラインへのリターン命令(RNP)を発行させて、状態を(S,N)38へ強制的に変化させ、優先使用を許容するスーパーバイザーモード動作が起こるようにすることができる。マスクされていない組み合せの割り込みについて、最優先の割り込みルーチンがキーボードルーチンをスワップアウトするルーチンとなるように、優先順位を決める。状態(S,N)38からの最終的な復帰は、レジスタファイルの値を再び格納して、レジスタへのジャンプ命令(JR)およびクリアスーパーバイザーモードビット命令(CSM)を発行することによって達成される。
状態(S,N)38にある間、割り込みトラップにより状態が(S,V)36へ変化する。この状態変化は状態(S,N)38からなので、RTIまたはRNPのいずれかの発行により状態が(S,N)38へ戻る。通常モードにおける状態の(S,N)38から(U,N)34への復帰は、レジスタファイルを再格納し、レジスタへのジャンプ命令(JR)の後、クリアスーパーバイザーモード命令(CSM)を発行することによって達成される。
図4を参照して、好ましい優先ベクトル割り込みユニット(VIUX)28は、ベクトル割り込みマスクユニット(VIMSK)40、ベクトル割り込みサンプラーユニット(VISMPLE)42、ベクトル割り込み優先フィルターユニット(VPRIF)44、ベクトル割り込みリセットユニット(VIRST)46、ベクトル割り込みデコーダ(VIDEC)48、ベクトル割り込み制御ユニット(VICNTL)50、およびスパーバイザーモード制御ユニット(SUPERVC)52から構成されている。
さらに図4を参照して、VIMSKユニット40は、優先順位を付けられた16個の割り込みERQ0B乃至ERQ15Bを入力として受け、内部データロードバスによりそれらの割り込みのうち任意のまたは全ての割り込みをマスクするマスクレジスタをロードする。マスクレジスタは、データラッチ可能化信号(DLAT1)=1、コンフィグレーション2可能化信号(CFR2EN)=1、およびクロック信号(CLK)=0の条件では透過性であり、そうでなければ内部データロードバスビットをラッチする。VIMSK40は、低レベルでアクテイブな、マスクされた割り込み信号IRQ0B−IRQ15Bを発生する。ここにおいて、IRQ0Bは最優先、IRQ15Bは優先度が最も低い割り込みである。
さらに図4を参照して、CLKが低い値に移行する時に、VISMPLE42は、非同期または同期割り込みIRQ0B−IRQ15Bをサンプリングし、サンプリングにより得られる対応する信号がクロックの次の正方向縁部でD型レジスタをセットする。サンプリングにより得られる低レベルでアクティブな信号をI0B−I15Bで示す。サンプリングにより得られる高レベルでアクティブな状態出力は、PD0−PD15に現われる。この出力を用いて優先ベクトル割り込みシステムの状態を判定する。サンプリングされた割り込みのD型レジスタおよびラッチは、VIRSTユニット46から供給される信号S0RST−S15RSTに従ってリセットされる。高レベルでアクティブな特権モード割り込み信号は、スーパーバイザーモード制御ユニットSUPERVC52によって発生され、ユーザープログラムが違法命令を発行しているか、または予約されたメモリスペースに迷い込んでいる状態を発信する。
さらに図4を参照して、VPRIF44は、VISMPLEユニット42から受信した出力I0B−I15Bをフィルタリングして符号化された割り込み出力EN0−EN15を発生する。これらの出力は、VIRST46およびVIDEC48に供給される。加うるに、フィルタリングされた優先度が最下位の出力EN15はVICNTL50に供給される。
更に図4を参照して、VIRST46は、現在の割り込みサービスルーチンのベクトル割り込みをリセットするのに用いられる。VIUXユニットは、優先使用を許容しない割り込みの実行中に他の割り込みのキューイングを可能にする。従って、VIRST46は、割り込みからのリターン命令(RTI)または通常パイプラインからのリターン命令(RNP)が現在の割り込みを正しくリセットし、しかも他の割り込みのキューイングを可能にするように、最後の割り込みトラップを格納しなければならない。
更に図4を参照して、VIDEC48は、入力X15−X0としてフィルタリングされた割り込みEN0−EN15をそれぞれ受けて、ベクトルアドレスVA10−VA7を発生する先行ゼロ検知器である。VPRIF44とVIDEC48とは、協働して、マスクされた割り込みベクトルを符号化する優先符号化器として機能する。これらは二つの別個のユニットとして構成され、先ず第1に優先使用を許容しない割り込みが処理される間、割り込みのキューイングを容易にし、第2に単一のリセット動作(RTI)または(RNP)により、処理されたばかりの割り込みだけを選択的にリセットできるようにする。
図5を参照して、該図は図4のVIMSK40の論理図である。16個のラッチ54により、割り込みERQ0B−ERQ15Bの各々をマスクまたは可能化する。電源投入によりリセットされると、ラッチ54はゼロ状態にリセットされて全ての割り込みをマスクする。ラッチ54は、条件(CFR2EN=1)(DLAT1=1)(CLK=1)が存在する時透過性であり、そうでなければ内部データロードバスマスクビットをラッチする。内部データロードバスビットIDL16はラッチ53に入力され、割り込みトラップERQ0Bではなく特権モードトラップPRIVTRPCをSUPERVC52から選択するのに用いられる。
図6を参照して、該図は図4のVISMPLE42の論理図である。ラッチ58は、CLKが低レベルになると非同期または同期割り込みをサンプリングし、CLKの正方向の縁部でそれらの割り込みをラッチするために用いられる。CLKの正方向の縁部において、D型レジスタ60は、CLKの前の半サイクルの間にサンプリングされた割り込みがあればその全てに対して論理1となる。
図7を参照して、該図は本実施例の図4のVPRIF44の論理図である。VPRIF44は、VISMPLE42からのマスクされた割り込み値をフィルタリングしてEN0−EN15を発生する。次の表1はVPRIF44の真理表を示す。
図8を参照して、該図は図4のVIRST46の論理図である。このユニットはD型レジスタ62により構成されており、電源投入によりリセットされると、論理値1になる。ベクトル割り込みフィルタからのゲートされた値EN0−EN15をレジスタがクロッキングすることにより、図4のVPRIF44からの信号がブロックされるため、処理中の優先ベクトル割り込みは、現在の割り込みの処理中に他の割り込みがキューイングできることから、その処理の終了時に正しくリセットされる。VIRST46は、図4のVICNTL50から受信されるVRESTB信号の指示により、処理が完了した割り込みをリセットする。一対のリセット信号が割り込みリセットの度毎に発生される。S0RST−S15RSTのセット信号は図4および図6のベクトルサンプラーユニットVISMPLE42の58および60に送られ、図4において、優先割り込みが実行されるときパイプラインで実行される動作のリセット信号であるEORST−R15RSTのセット信号はマイクロプロセッサチップ(図示省略)の他のユニットに送られる。
図9を参照して、該図は図4のVIDEC48の論理図である。VIDEC48は高速16ビット先行ゼロ検知器(XLZD16)64および4個のD型エッジトリガーデバイス66から成り、これらデバイスの入力は検知器(XLZD16)64から供給され、電源投入によりVENCがリセットされると論理値1にリセットされる。D型レジスタ66は、図4のVICNTL50で発生された信号VENCによってクロッキングされる。
図10において、図9で説明した検知器(XLZD16)64は、高速4ビット先行ゼロ検知器(XLZD4)68と2入力マルチプレキサセルIMUXSEL70との組合せによって構成される。IMUXSELセル70は、条件(s=1)(sb=0)に従って入力1を選択し、そうでなければ入力0を選択する。相補出力が各セル70の出力に発生される。
再度図9、図10および図11を参照して、次に検知器(XLZD16)64の真理表を示すが、表3は検知器(XLZD4)68の真理表である。
図12を参照して、該図は図4のVICNTL50の論理図である。MCLKは、VENC信号を発生するために組み込まれた第1のD型レジスタ72に供給される。VENCは、VENPULSE信号を発生させるために4ゲート遅延回路(DELAY4)74を介して第2のD型レジスタ72に供給される。回路(DELAY4)74は、クロックレベル間のスキューによりパイプラインが乱調状態にならないようにする。
信号VRSTFは、8ゲート遅延回路76(DELAY8)を用いてVRESETCを発生するのに用いられる。回路(DELAY8)76の長い遅延により、VRESETCがパルスになる。
図13を参照して、該図は図4のSUPERVC52の論理ブロック図である。このユニットは、ユーザモードプログラムが特権命令を発行するかまたはユーザプロセスがそのプロセスに割当てられていないメモリの読取り、書込みを行おうとすることにより生じる特権モードトラップ状態(PRIVTRPC=1)を検出するのに用いられる。スーパーバイザーモード状態(SUPERVC=1)は、図4および図12のVICNTL50から供給されるVENC制御信号の正方向の縁部によって可能化される。SUPRSTスーパーバイザーモードリセット信号は、割り込みからのリターン命令(RTI)またはクリアスーパーバイザーモード(CSM)命令のいずれかから復号される。命令(RTI)および(RNP)がスーパーバイザーモードをリセットしないため、割り込みサービスルーチンは優先使用を許容しない動作モードかまたは許容する動作モードのいずれかの下で処理を行うことができることに注意されたい。
図14を参照して、該図は好ましいRISCマイクロプロセッサアーキテクチャの全てのパイプラインレジスタの構成に常用されるデュアルパイプラインレジスタセル(PREG0)81の論理図である。このデュアルパイプラインレジスタ81は、二つのリセット可能なD型レジスタ82、84を含んでいる。D型レジスタ82は、通常モードの処理に割り当てられ、条件IRS=1を適用すると0にリセットできる。レジスタ82のクロックは条件VENB=1で可能化され、その出力はインバータ88に信号を供給する2対1マルチプレクサ86の0入力に接続されている。D型レジスタ84は、ベクトルモードの処理に割り当てられ、条件VRS=1を適用すると0にリセットされる。レジスタ84のクロックは条件VEN=1で可能化され、その出力は2対1マルチプレクサ86の1入力に接続されている。制御信号IRS=1は通常パイプラインクリア命令(CP)によって発生され、条件VRS=1は図3の状態図との関連で説明した割り込みからのリターン命令(RTI)かまたは通常モードへのリターン命令(RNP)のいずれかによって発生される。制御信号VENおよびVENBは、図2のマスタークロックユニット(MCLKCTLX)26によって発生されるが、これらはVEN=VENCから実質的に得られるもので、VENBはVENの補数である。VENおよびVENBには、それぞれ通常およびベクトルレジスタ82、84のクロック可能化信号と、図14の接続に示されるマルチプレクサセレクト信号の役目がある。図14の2対1マルチプレクサ86およびインバータ88は、VEN=0であるときはいつも通常レジスタ82を選択し、VEN=1であるときはいつもベクトルレジスタ84を選択する。
図15は、第2の割り込みのキューイングを可能にする優先使用を許容しない割り込みの処理を説明するための優先ベクトル割り込みシステムのタイミング図の一例である。マスタークロックの正方向の縁部である0と1の間で、ERQXBが低レベルになると、割り込みサービスルーチンがトリガされて、制御信号VENCが時点1と2の間で高レベルになる。割り込みERQXBに関連するべクトルアドレスVA10−VA7が直ちにベクトルパイプラインプログラムカウンタレジスタにロードされるので、時点2の開始時に割り込みサービスルーチンがその処理を開始する。図15の例において、マスクされていない第2の割り込みERQYBは、現在の一つの割り込み処理が完了して割り込みからのリターン命令(RTI)(図示省略)によってリセットされるまでキューイング状態にある。キューイングされていた割り込みは、時点8においてそのサービスを開始し、通常モード処理が再開される時点11でサービスを完了する。
高速優先ベクトル割り込みシステムの論理設計とマイクロプロセッサプログラム制御ユニットおよびデュアルパイプラインレジスタの設計とが緊密に結合された結果、上述の実施例は割り込み要求から2サイクルという短い、予測可能な割り込み応答時間を達成できる。さらに、従来例と異なり、この短い待ち時間を与える割り込み応答時間により他の割り込みのキューイングが可能となる。さらに、上述の実施例は、図2に示すように優先使用を許容する動作モードと許容しない動作モードとを組み合わせてリアルタイムオペレーティングシステムにとって重要なタイミング条件を単純化する割り込みサービスルーチンの作成を可能にする。
Claims (2)
- 少なくとも第1のパイプラインレジスタ(82)および第2のパイプラインレジスタ(84)を有し、第1のパイプラインレジスタ(82)はデータの通常のスループットおよび優先使用を許容する割り込みを処理するように動作可能であり、第2のパイプラインレジスタ(84)はデータの通常のスループット、スーパーバイザー命令、優先使用を許容する割り込み及び優先使用を許容しない割り込みを処理するように動作可能であるパイプライン型RISCマイクロプロセッサの優先ベクトル割り込みシステム(28)であって;
優先使用を許容しない割り込みの検出に応答して、第1のパイプラインレジスタ(82)における処理を停止すると共に第2のパイプラインレジスタ(84)における優先使用を許容しない割り込みの処理を開始するための割り込みトラップ手段(42)と;
第1のパイプラインレジスタ(82)における停止された処理をリセットして停止前の状態にするためのリセット手段(46)と;
第2のパイプラインレジスタ(84)における優先使用を許容しない割り込みの処理中に発生する優先使用を許容しない割り込みおよび優先使用を許容する割り込みを後で処理するためにキューイングするキューイング手段(42、44、46)とから成ることを特徴とする優先ベクトル割り込みシステム(28)。 - 各々が第1のパイプラインを構成する第1の複数のビットと、第2のパイプラインを構成する第2の複数のビットとを有する複数のパイプラインレジスタ(82、84)と、
第1のモードにおいて複数のパイプラインレジスタのうちの第1のパイプラインレジスタに格納された第1の命令を実行し、第2のモードにおいて複数のパイプラインレジスタのうちの第2のパイプラインレジスタに格納された第2の命令を実行する実行ユニット(22)と、
第1の割り込み要求に応答して実行ユニットを第1のモードから第2のモードへ切り換える割り込み処理手段(14)とより成り、
割り込み処理手段はさらに、第2の割り込み要求を受けて、複数のパイプラインレジスタからの第2の命令が優先使用を許容するか許容しないかを判定し、
割り込み処理手段はさらに、複数のパイプラインレジスタのうちの第2のパイプラインからの第2の命令が優先使用を許容する場合、第2の割り込み要求に応答して、第2のパイプラインから第2の命令を取り出すと共に複数のパイプラインレジスタのうちの第3のパイプラインへ第3の命令をロードし、
割り込み処理手段はさらに、複数のパイプラインレジスタのうちの第2のパイプラインからの第2の命令が優先使用を許容しない場合、実行ユニットが第2の命令を実行した後で実行できるように第3の割り込み要求を格納してキューイングするパイプライン型コンピュータプロセッサ(10)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67362891A | 1991-03-22 | 1991-03-22 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11298492A Division JPH0628198A (ja) | 1991-03-22 | 1992-03-23 | Riscマイクロプロセッサ優先ベクトル割り込みシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007018497A true JP2007018497A (ja) | 2007-01-25 |
Family
ID=24703445
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11298492A Pending JPH0628198A (ja) | 1991-03-22 | 1992-03-23 | Riscマイクロプロセッサ優先ベクトル割り込みシステム |
JP2006078465A Pending JP2007018497A (ja) | 1991-03-22 | 2006-03-22 | Riscマイクロプロセッサ優先ベクトル割り込みシステム |
JP2006079090A Pending JP2006221664A (ja) | 1991-03-22 | 2006-03-22 | Riscマイクロプロセッサ優先ベクトル割り込みシステム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11298492A Pending JPH0628198A (ja) | 1991-03-22 | 1992-03-23 | Riscマイクロプロセッサ優先ベクトル割り込みシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006079090A Pending JP2006221664A (ja) | 1991-03-22 | 2006-03-22 | Riscマイクロプロセッサ優先ベクトル割り込みシステム |
Country Status (2)
Country | Link |
---|---|
JP (3) | JPH0628198A (ja) |
DE (1) | DE4209398A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111512297A (zh) * | 2017-12-18 | 2020-08-07 | 赛灵思公司 | 数据中心中的可编程设备的安全性 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW444162B (en) * | 1998-06-30 | 2001-07-01 | Sony Corp | Information processing apparatus, information processing method, and recording medium |
-
1992
- 1992-03-23 JP JP11298492A patent/JPH0628198A/ja active Pending
- 1992-03-23 DE DE19924209398 patent/DE4209398A1/de not_active Withdrawn
-
2006
- 2006-03-22 JP JP2006078465A patent/JP2007018497A/ja active Pending
- 2006-03-22 JP JP2006079090A patent/JP2006221664A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111512297A (zh) * | 2017-12-18 | 2020-08-07 | 赛灵思公司 | 数据中心中的可编程设备的安全性 |
JP2021509192A (ja) * | 2017-12-18 | 2021-03-18 | ザイリンクス インコーポレイテッドXilinx Incorporated | データセンタにおけるプログラマブルデバイス向けのセキュリティ |
JP7402798B2 (ja) | 2017-12-18 | 2023-12-21 | ザイリンクス インコーポレイテッド | データセンタにおけるプログラマブルデバイス向けのセキュリティ |
Also Published As
Publication number | Publication date |
---|---|
JPH0628198A (ja) | 1994-02-04 |
DE4209398A1 (de) | 1992-09-24 |
JP2006221664A (ja) | 2006-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7020871B2 (en) | Breakpoint method for parallel hardware threads in multithreaded processor | |
US11275590B2 (en) | Device and processing architecture for resolving execution pipeline dependencies without requiring no operation instructions in the instruction memory | |
US5440747A (en) | Data processor with control logic for storing operation mode status and associated method | |
EP0381471B1 (en) | Method and apparatus for preprocessing multiple instructions in a pipeline processor | |
US6237089B1 (en) | Method and apparatus for affecting subsequent instruction processing in a data processor | |
US6279100B1 (en) | Local stall control method and structure in a microprocessor | |
JP3983394B2 (ja) | 幾何学処理プロセッサ | |
US6449709B1 (en) | Fast stack save and restore system and method | |
US5918033A (en) | Method and apparatus for dynamic location and control of processor resources to increase resolution of data dependency stalls | |
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
US6311234B1 (en) | Direct memory access controller with split channel transfer capability and FIFO buffering | |
JPH05250159A (ja) | 記憶装置内の複数の命令間の依存を解決するための装置および方法 | |
US20210303305A1 (en) | Processor having latency shifter and controlling method using the same | |
JP2005502119A (ja) | 複数スレッドの同時実行に対応するコンピュータシステムにおける割込み処理の方法 | |
EP0777877B1 (en) | Processing system, processor, memory storing instruction stream and compiler | |
US6324640B1 (en) | System and method for dispatching groups of instructions using pipelined register renaming | |
US20040216103A1 (en) | Mechanism for detecting and handling a starvation of a thread in a multithreading processor environment | |
US7831979B2 (en) | Processor with instruction-based interrupt handling | |
EP0279953B1 (en) | Computer system having mixed macrocode and microcode instruction execution | |
JP2007018497A (ja) | Riscマイクロプロセッサ優先ベクトル割り込みシステム | |
JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
US6988121B1 (en) | Efficient implementation of multiprecision arithmetic | |
US20050160254A1 (en) | Multithread processor architecture for triggered thread switching without any clock cycle loss, without any switching program instruction, and without extending the program instruction format | |
JP2636074B2 (ja) | マイクロプロセッサ | |
EP0365187A2 (en) | Apparatus for selective execution of instructions following a branch instruction |