JP3176093B2 - マイクロプロセッサの割込み制御装置 - Google Patents

マイクロプロセッサの割込み制御装置

Info

Publication number
JP3176093B2
JP3176093B2 JP22555791A JP22555791A JP3176093B2 JP 3176093 B2 JP3176093 B2 JP 3176093B2 JP 22555791 A JP22555791 A JP 22555791A JP 22555791 A JP22555791 A JP 22555791A JP 3176093 B2 JP3176093 B2 JP 3176093B2
Authority
JP
Japan
Prior art keywords
interrupt
maskable
program
level
flag
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 - Lifetime
Application number
JP22555791A
Other languages
English (en)
Other versions
JPH0561692A (ja
Inventor
博昭 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP22555791A priority Critical patent/JP3176093B2/ja
Priority to US07/940,924 priority patent/US5349667A/en
Publication of JPH0561692A publication Critical patent/JPH0561692A/ja
Application granted granted Critical
Publication of JP3176093B2 publication Critical patent/JP3176093B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のマスク可能な割
込み要求を処理するマイクロプロセッサの割込み処理装
置に関する。
【0002】
【従来の技術】一般にマイクロプロセッサを用いたシス
テムでは、プログラムを実行中に周辺装置が割込み(I
nterrupt)要求信号を発生した場合に、マイク
ロプロセッサが現在実行中のプログラム実行を中断して
周辺装置の割込み要求信号に対する割込み処理プログラ
ムを実行するための、割込み制御部を備えている。ここ
で割込み要求によって中断されるプログラムをメイン・
プログラムと呼ぶことにする。
【0003】また、周辺装置の数が多いと1)複数の割
込み要求信号が同時に発生する場合、もしくは2)ある
周辺装置の割込み要求信号に対する割込み処理プログラ
ムを実行中に他の周辺装置が割込み要求信号を発生する
場合に、それぞれどの割込み要求を受け付けるのかの多
重割込み処理機能(1)に対応)、割込み要求を一時保
留する割込みマスク機能(2)に対応)が必要になる。
【0004】このように複数の割込み要求信号の競合に
対処するために、各割込み信号要求信号に優先順位を設
定し、優先順位の高い割込み要求信号に対する処理プロ
グラムの実行を優先して行う優先順位制御が用意され
る。
【0005】複数の割込み要求に対応して、異なった割
込み処理プログラムに実行制御を移すために、割込み処
理プログラムの実行開始アドレスを得るための機構を持
つこともある。1)割込み要求の種類にしたがって実行
開始アドレスが固定である場合、2)周辺装置より通知
される情報(以下ベクタ番号と呼ぶ)に基づき実行開始
アドレスに変換する場合、3)選択的または同時に
1),2)の双方を持つ場合、がある。
【0006】さらに、割込み処理プログラムの実行処理
後中断されたメイン・プログラムへ制御を戻す必要があ
る。このため、割込み要求を受け付けてから割込み処理
プログラムに遷移する前に、メイン・プログラムの実行
再開に必要な情報(レジスタ資源の内容)を保存する機
構を備えている。これらの情報の退避先は、メモリ部
(内部または外部)のスタック領域、あるいはレジスタ
・バンク領域であることが多い。
【0007】Intel社の16ビット・マイクロプロ
セッサi8086では、2本の割込み要求端子INTお
よびNMIを持つ。INT端子はプログラムによりマス
ク可能な割込み要求端子で、この端子により要求される
割込みマスカブル割込みと呼ばれる。一方、NMI端子
はプログラムによりマスク不可能な割込み要求端子で、
この端子により要求される割込みはノンマスカブル割込
みと呼ばれる。
【0008】図3にi8086マイクロプロセッサを用
いたマイクロコンピュータ・システムの一構成例を示
す。i8086マイクロプロセッサ(CPUと称する)
310ではマスカブル割込み要求を受け付けると、次の
処理を行う。
【0009】(1)2回の割込み応答(Interru
pt Acknowledge)バス・サイクルを発行
し、2回目のバス・サイクルで外部周辺デバイス(I/
Oと称する)330から発行される割込み要求は割込み
コントローラ(INTCと称する)340で多重割込み
要求の優先順位が処理された結果、最も優先順位の高い
割込み要求に対応する8ビットの割込みベクタ番号をデ
ータ・バスから得る。
【0010】(2)得られた割込みベクタ番号から、外
部メモリ(MEMと称する)320に配置されている割
込みベクタ・テーブル格納されている該割込みベクタ
番号に対応するエントリのアドレスを計算する。各エン
トリには、前もって割込み処理プログラムの実行開始ア
ドレス(nOffset 322およびnBase 3
23)を格納しておく。
【0011】(3)割込みベクタ・テーブルの所定のエ
ントリから、割込み処理プログラムの実行開始アドレス
をデータ・バスを介してリードする。実行開始アドレス
は、16ビットのベース値(nBase 323)と1
6ビットのオフセット値(nOffset 322)で
構成される。
【0012】(4)外部メモリのスタック領域(sta
ck 321)に、1)マスカブル割込みの許可/不許
可フラグを制御するフラグ(以下割込み許可フラグと呼
ぶ)含むプログラム・ステータス・ワード(以下PSW
と略す)311、2)プログラム・カウンタ(以下PC
と略す)312、3)プログラム・セグメント・レジ
タ(以下PSと略す)313、の3本の16ビット・レ
ジスタ資源をセーブする。
【0013】(5)割込み許可フラグをマスカブル割込
み受付不可状態にセットする。
【0014】(6)割込み処理プログラムの実行開始ア
ドレスに制御を移す。
【0015】ノンマスカブル割込みは、システムへの電
源供給の瞬断、外部メモリでのエラー発生など、システ
ムへの影響が大きいことから、マスカブル割込みより高
い優先順位を有しており、1)マスカブル割込み要求よ
りも先に処理される、2)割込み許可フラグによるマス
クできない、等の特徴を持つ。
【0016】i8086マイクロプロセッサではノンマ
スカブル割込み要求を受け付けると、マスカブル割込み
における前述の処理に対応して、(1)における割込み
応答バス・サイクルの発生および割込みベクタ番号の獲
得がない、(2)におけるエントリのアドレス計算にお
いて固定アドレスを使用する、という差異がある。
【0017】図6(A)に示すようにi8086マイク
ロプロセッサでは、割込み要求を受け付けてから割込み
処理プログラムに遷移するために7回(マスカブル割込
みの場合)または5回(ノンマスカブル割込みの場合)
のバス・サイクルを必要とする(割込み応答に2回、レ
ジスタ資源の退避に3回、割込み処理シーケンスの実行
開始アドレス獲得に2回)。このため、割込み要求を受
け付けてから割込み処理プログラムに制御が移るまで
(これに要する時間を割込み応答時間と称する)、40
クロック以上の実行クロックを要する。メモリの動作速
度が、マイクロプロセッサのそれにより相対的に低速の
場合、各バス・サイクルにウェイト・ステート(基本ク
ロックの整数倍)が挿入され、さらに割込み応答時間が
大きくなる。
【0018】別の代表的なマイクロプロセッサの割込み
機能を説明する。
【0019】Motorola社の16ビット・マイク
ロプロセッサMC68000では、割込み応答ならびに
割込み処理プログラムの実行開始アドレス獲得のための
バス・サイクル数の低減とともに、多重割込みに関する
外部回路の低減を図っている。図4にMC68000マ
イクロプロセッサを用いたマイクロコンピュータ・シス
テムの一構成例を示す。
【0020】MC68000マイクロプロセッサ(CP
Uと称する)410では、割込み応答バス・サイクルは
1回だけ発行される。このバス・サイクルでは8ビット
の割込みベクタ番号がデータ・バスを介してリードされ
る。i8086マイクロプロセッサの1回目の割込み応
答サイクルは、外部周辺デバイスが複数の割込みの優先
順位を判定し、1本の割込み要求信号(INT端子に接
続される)を生成するために使用される。一方、MC6
8000マイクロプロセッサでは、外部周辺I/O(I
/Oと称す)430から接続される3本の割込み要求端
子IPL2(−)〜IPL0(−)を持つために、この
調停時間を不要にしている。ここで“(−)”は負論理
信号であることを表わす。IPL2(−)〜IPL0
(−)端子は、その入力の組合せ(コード化された値)
でレベル0〜レベル7の8種類の割込み要求を示す。レ
ベル0は、割込み要求が無いことを示し、最低優先順位
の割込み要求と等価である。3本の割込み要求端子を用
いることで、実質7種類の割込みを要求できる。
【0021】レベル7を除き各割込み要求レベルは、プ
ログラムで操作可能なステータス・レジスタに割り当て
られる3ビットの割込みマスク値と比較され、この値を
超える場合のみ割込み要求が受け付けられる(マスク値
と等しいか、より小さなレベルの要求は受付を保留され
る)。
【0022】レベレ7の割込み要求は、割込みマスクに
よる比較が行われないため、i8086マイクロプロセ
ッサにおけるノンマスカブル割込みに類似した機能を供
する。
【0023】MC68000マイクロプロセッサ410
は割込み要求を受け付けると、次の処理を行う。
【0024】(1)32ビット幅のプログラム・カウン
タ(PCと称す)412のうち下位16ビットを、外部
メモリ(MEMと称する)420のスタック領域(st
ack 421)にセーブする。
【0025】(2)割込み応答バス・サイクルを発行
し、8ビットの割込みベクタ番号をデータ・バスから得
る。得られた割込みベクタ番号あるいは割込み要求レベ
ル(選択的に使い分けられる)から、外部メモリ420
に配置されている割込みベクタ・テーブルに格納されて
いる該割込みベクタに対応するエントリのアドレスを計
算する。各エントリには、前もって割込み処理プログラ
ムの実行開始アドレス(nPC 422)を格納してお
く。
【0026】(3)16ビットのステータス・レジスタ
(PSWと称す)411、およびPC 412の上位1
6ビットを外部メモリ(MEMと称する)420のスタ
ック領域(stack 421)にセーブする。
【0027】(4)割込みベクタ・テーブルの所定のエ
ントリから、割込み処理プログラムの実行開始アドレス
をデータ・バスを介してリードする。実行開始アドレス
は、24ビットで構成され、2回のバス・サイクルを要
する。
【0028】(5)ステータス・レジスタ411の割込
みマスクを、受け付けた割込み要求レベルと同一にセッ
トする(現在と同一あるいはより低い要求レベルの割込
みを禁止するため)。
【0029】(6)割込み処理プログラムの実行開始ア
ドレスに制御を移す。
【0030】図6(B)に示すようにMC68000マ
イクロプロセッサでは、割込み要求を受け付けてから割
込み処理プログラムに遷移するために6回のバス・サイ
クルを必要とする(割込み応答に1回、レジスタ資源の
退避に3回、割込み処理シーケンスの実行開始アドレス
獲得に2回)。このため、割込み応答時間はi8086
と同程度の40クロック以上の実行クロックを要する。
【0031】マイクロプロセッサが、外部の割込み要求
に従ってリアルタイムに反応するためには、割込み応答
時間を極力小さくする必要がある。このためには割込み
応答時にバス・サイクルの発行回数を少なくすることが
考えられる。
【0032】割込み応答に関するバス・サイクルは、
1)割込みベクタ番号を得るための割込み応答サイク
ル、2)割込み処理プログラムの開始アドレスを得るた
めのリード・サイクル、3)レジスタ資源を退避するた
めのライト・サイクル、に分割れる。
【0033】これらのバス・サイクルを基本的に排除し
て、高速割込み応答性を得ようとする試みが成されてい
る。
【0034】MIPS社の32ビット・マイクロプロセ
ッサR3000は、従来のマイクロプロセッサでは割込
み応答時に発行されていた上記のバス・サイクルを次の
ように排除している。
【0035】(1)割込みベクタ:マスカブル割込みを
含め、命令処理で発生した例外に関するすべてのベクタ
を80000000hに固定することで、割込みベクタ
番号の獲得のためのバス・サイクルを必要としない。
【0036】(2)割込み処理開始アドレス:前述した
従来のマイクロプロセッサでは、ベクタに対応する外部
メモリに割込み処理開始アドレスを格納する、いわゆる
メモリ間接型の分岐動作を実行している。R3000マ
イクロプロセッサでは、固定ベクタ80000000h
に直接分岐することで、間接アドレスを獲得するための
バス・サイクルを必要としない。
【0037】(3)レジスタ資源の退避:プログラムで
操作できる例外プログラム・カウンタを持ち、割込み/
例外が発生するとプログラム・カウンタの内容を自動的
に退避する。また、1本のステータス・レジスタに割込
みに関連するフラグ類を、現在の値と割込み/例外発生
前の値を保持する3組を持ち、退避のためのバス・サイ
クルを必要としない。
【0038】図5にR3000マイクロプロセッサを用
いたマイクロコンピュータ・システムの一構成例(部分
的)を示す。
【0039】R3000マイクロプロセッサ(CPUと
称す)510は、外部周辺I/O(I/Oと称す)53
0から6本のマスカブル割込み要求端子INT5(−)
−INT0(−)を持つ。前述のMC68000マイク
ロプロセッサとは異なり、それぞれの端子は互いに独立
(コード化された値に意味を持たない)であり、6種類
の割込み要求に対応する。
【0040】それぞれの割込み要求は、ステータス・レ
ジスタ内511の割込み制御フラグにより、2段階にマ
スクされる。ステータス・レジスタ内の6ビットのマス
ク・フラグ(以下IntMaskと称する)503は、
6本の割込み要求のそれぞれに対応してマスクを行う。
さらに、ステータス・レジスタ内の現在割込み許可フラ
グ(以下IEcと称する)501は、IntMask5
03でマスクされた割込み要求の論理和に対してマスク
を行う。
【0041】IEc 50はマスカブル割込み要求を
受け付けると、直前のIEc 50の値を保持するた
めの直前割込み許可フラグ(以下IEpと称する)50
2に複写されるとともに、二重にマスカブル割込みを受
け付けないようにクリアされる。IEp 502はIE
c 501の複写の前に、直前のIEp502の値を保
持するための過去割込み許可フラグ(以下IEoと称す
る、図面では省略)に複写されるが、ここでの本質的な
説明にはなじまないので、以下IEoについては触れな
い。
【0042】R3000マイクロプロセッサでは、割込
み/例外に関連して、前述したステータス・レジスタ5
11および例外プログラム・カウンタ51の他に、割
込み/例外の要因を示すための原因レジスタ514を持
つ。原因レジスタ514には、割込み/例外の種類を大
別する例外コード・フィールド(以下ExcCodeと
称する)504、および処理が保留されているマスカブ
ル割込みの種類を示す保留割込みフィールド(以下IP
と称する)505を持つ。マスカブル割込みが受け付け
られると4ビットのExcCode 504には000
0bがセットされるとともに、6ビットのIPにはIn
tMask 503でマスクされた6本の割込み要求が
セットされる。
【0043】以上、R3000マイクロプロセッサがマ
スカブル割込みを受け付けた際の動作を整理すると、次
のようになる。
【0044】(1)ステータス・レジスタ511のIE
c 501の値をIEp502にコピーした上でIEc
501をクリアし、引続くマスカブル割込み要求をマ
スクする。
【0045】(2)原因レジスタ514のExcCod
e 504に0000bを、IP505にIntMas
k 503でマスクされた6本の割込み要求をセットす
る。
【0046】(3)プログラム・カウンタ512の値を
例外プログラム・カウンタ513に複写し、プログラム
・カウンタ512を80000000hにセットし、割
込み処理プログラム(handler)521に制御を
移す。
【0047】このように簡便な動作の結果、マスカブル
割込みを受け付けてから割込み処理プログラムに制御が
移るまで、R3000マイクロプロセッサでは最小3ク
ロックで処理できるため、高速な割込み応答時間を得る
ことができる。
【0048】しかしながら、以上述べた割込み応答動作
は、前述した他の2つのマイクロプロセッサと比較する
た、非常にプリミティブな割込み処理であると言わざる
を得ない。他のマイクロプロセッサと同等の割込み処理
機能を供するためには、次のような処理をプログラム
(以下割込みハンドラと称する)で実現する必要があ
る。
【0049】(1)マスカブル割込みと他の例外との切
り分け:マスカブル割込み、およびその他の例外に対し
て、単一の処理プログラム(80000000hから始
まる)に制御が移されてしまう。原因レジスタのExc
Codeによる判定が必要。
【0050】(2)優先順位の判定:6本の割込み要求
端子に、複数の割込み要求が発生した場合、原因レジス
タのIPを判定することによって、どの要求を受け付け
るかを判定する必要がある。
【0051】(3)割込みマスク更新:割込み処理プロ
グラム内で、現在処理している割込み要求よりも低い割
込み要求をマスクするために、ステータス・レジスタの
IntMaskを再設定する必要がある。
【0052】(4)多重割込みに関するサポート:割込
み処理プログラム内で別の割込みを受け付ける場合、例
外プログラム・カウンタの内容をあらかじめ他のレジス
タ資源、または外部メモリに退避する必要がある。ま
た、3重以上の割込みを受け付ける場合には、ステータ
ス・レジスタの退避も必要になる。
【0053】さらに、割込みハンドラの構成しだいで、
割込み応答性が変化してしまうという欠点がある。
【0054】
【発明が解決しようとする課題】以上述べたように、従
来のマイクロプロセッサでは複数のマスク可能な割込み
要求に対応する際に、次に代表される問題点がある。
【0055】(1)割込みコントローラなどの外部回路
を必要とする。
【0056】(2)複数のバス・サイクルを常時必要と
するため、割込み応答性が悪い。
【0057】(3)上記を改良したものにあっても、多
重割込みに関してサポートされておらず、割込み応答性
がプログラムに依存する。
【0058】
【課題を解決するための手段】本発明は、プログラム・
カウンタで示される命令を逐次実行し、複数のマスカブ
ル割込み要求を処理するマイクロプロセッサの割込み制
御装置において、外部から割込み要求を所定のコードで
表現された当該割込み要求の優先レベルとともに受ける
受信手段と、割込み許可レベルを示すコード,割込み要
求を禁止するときに立つ第1のフラグおよび割込み要求
を処理中のとき立つ第2のフラグを含むプログラムステ
ータスワードと、複数のマスカブル割込みに共通して実
行されるマスカブル割込み処理ルーチンを含んだ記憶手
段と、優先レベルと割込み許可レベルとを比較して優先
レベルが割込み許可レベル未満のときまたは第1のフラ
グおよび第2のフラグのいずれかが立っているときに割
込み要求をインアクティブ状態とする比較手段と、比較
手段を通過した割込み要求がアクティブ状態のときマス
カブル割込み処理ルーチンを起動する起動手段と、プロ
グラムステータスワードを待避する第1の待避手段と、
プログラム・カウンタを待避する第2の待避手段と、優
先レベルの所定のコードを新たな割込み許可レベルを示
すコードに変換してプログラムステータスワードに保持
する割込み許可レベル設定手段と、優先レベルの所定の
コードを含んだアドレス値を生成してプログラム・カウ
ンタに転送するアドレス生成手段とを有するマイクロプ
ロセッサの割込み制御装置であり、マスカブル割込み処
理ルーチンが起動すると、第1および第2の待避手段を
動作させ、プログラムステータスワードの第1および第
2のフラグを立たせ、割込み許可レベル設定手段を動作
させ、アドレス生成手段を動作させて、割込み処理プロ
グラムの実行を開始するものであり、外部から前記複数
のマスカブル割込み要求より優先レベルの高いノンマス
カブル割込み要求を受ける第2の受信手段と、前記プロ
グラムステータスワードを待避する第3の待避手段と、
前記プログラム・カウンタを待避する第4の待避手段と
をさらに有し、前記プログラムステータスワードはノン
マスカブル割込み要求を受け付けたとき立つ第3のフラ
グをさらに含み、前記第3のフラグが立っているときに
前記ノンマスカブル割込み要求をインアクティブ状態と
するマスク手段を さらに有し、前記記憶手段は前記ノン
マスカブル割込みに対応して実行されるノンマスカブル
割込み処理ルーチンをさらに含み、前記起動手段は前記
マスク手段を通過した前記ノンマスカブル割込み要求が
アクティブ状態のとき前記ノンマスカブル割込み処理ル
ーチンを起動し、前記ノンマスカブル割込み処理ルーチ
ンは、起動すると、前記第3および第4の待避手段を動
作させ、前記プログラムステータスワードの第1および
第3のフラグを立たせ、所定のアドレスを前記プログラ
ムカウンタに転送してノンマスカブル割込み処理プログ
ラムの実行を開始することを特徴とする。
【0059】すなわち、従来のマイクロプロセッサの割
込み制御装置では、1)多重割込み処理機能を持つが、
割込み要求の受付時に内部状態を待避するための内部レ
ジスタ資源を持たず、割込み処理プログラムの開始アド
レスを外部から可変アドレスを供給するか、あるいは
2)待避用レジスタ資源を持つが、多重割込み処理機能
を持たず、割込み処理プログラムの開始アドレスを固定
していたのに対し、本発明では、多重割込み処理機能、
および内部状態を待避するための内部レジスタ群を持
ち、割込み要求に対応した複数の固定された割込み処理
プログラムの開始アドレスを発生している。
【0060】
【実施例】以下、実施例につき詳述する。
【0061】図1は、16種類のマスカブル割込みと、
ノンマスカブル割込みをサポートする32ビット・マイ
クロプロセッサ100の概略構成を示す図面である。
【0062】本マイクロプロセッサ100はクロック入
力端子12に加えられる基準クロック信号CLKに同
期して動作し、パイプライン処理を行うために、命令フ
ェッチ・ユニット(以下IUと称する)101、命令デ
コード・ユニット(以下DUと称する)102、命令実
行ユニット(以下EUと称する)103、実効アドレス
計算ユニット(以下AUと称する)104、バス・イン
タフェース・ユニット(以下BUと称する)105を持
つ。また、IU101、DU102、EU103がそれ
ぞれ処理している命令が格納されているアドレスを保持
するプログラム・カウンタ、PCIU 111,PCD
U 112,PCEU 113を持つ。
【0063】IU101は、フェッチ・サイクルの起動
制御、およびフェッチ・サイクルで外部より取り込んだ
命令コードを蓄積する。命令コード・キャッシュを含む
ような構成も考えられる。命令コードは、16ビット長
あるいは32ビット長のいずれかである。各命令コード
はメモリのハーフワード境界から(内部アドレスの最下
位ビットが0b)置かれるものとする。
【0064】DU102は、IU101に蓄積された命
令コードをデコードし、個々の命令に特有な処理を示す
信号を発生させる。代表的な信号としては、1)命令実
行処理の種類、2)オペランドの種類(メモリ/レジス
タの番号)、3)オペランドのデータ・タイプ、4)特
殊な命令の認識、などがある。DU102で発生された
信号は、図面では一部省略されているがその他の各ユニ
ットに対する動作指示信号として与えられる。
【0065】EU103は、32本の32ビット幅の汎
用レジスタ、32ビット幅の算術論理演算装置ALU、
バレル・シフタ等を含み、DU102によって指定され
た命令実行処理を行う。また、乗算器、浮動小数点演算
装置を持つ様な構成も考え得る。その内部制御はハード
ワイアド論理によるもの、マイクロプログラムを用いた
もの等が考えられる。
【0066】AU104は、DU102がメモリあるい
はI/Oに対するアクセスを含む命令であることを検知
すると、オペランドに対するアドレスを計算する。アド
レス計算に使用される要素は、命令コード中に含まれる
ディスプレースメント値、あるいは汎用レジスタの内容
がベース値として用いられる。前者はIU101から、
後者はEU103から供給される。
【0067】オペランド・データは8/16/32ビッ
トのものがあり、16ビット・データはハーフワード境
界(内部アドレスの最下位ビットが0b)から、32ビ
ット・データはワード境界(内部アドレスの最下位2ビ
ットが00b)から配置されるものとする。
【0068】BU105は、他のユニットから与えられ
るアドレス情報、データ情報、および起動要求に基づい
て、外部バス・サイクルを発生する。バス・サイクルで
外部から読み込まれたデータは、命令コードはIU10
1に、オペランド・データはEU103に供給される。
【0069】各ユニットは、図1に概略を示すようにバ
ス構造で内部接続される。
【0070】BU105とIU101間は命令コードを
転送するために、IU101とDU102間は命令コー
ドを転送するために、AU104とIU101間、およ
びAU104とEU103間はアドレス計算に使用され
るアドレス要素を転送するためにEU103とBU1
05間はリード・オペランドまたはライト・オペランド
を双方向的に転送するために、AU104とBU105
間は実行アドレスを転送するために、EU103とBU
105の間は任意のバス・サイクルで使用するアドレス
を転送するために、PCIU 111,PCDU 11
2,PCEU 113とBU105の間はオペランド・
アクセス以外のバス・サイクルで使用するアドレスを転
送するために接続される。
【0071】EU103の内部では、EU103内のデ
ータ転送に供される専用のデータ・バスID_busを
持つ。
【0072】図面では説明を簡略化するために、各内部
バスは32ビット幅のバス一系統に見せているが、実際
には複数の32ビット・バスで構成される。
【0073】BU105はバス・サイクルに関連して、
31ビットのワード・アドレス(16ビット単位アドレ
ス)を出力するアドレス・バス端子A1−A3112
1、32ビット・データの授受を行うデータ・バス端子
D0−D31 122の他、バス・サイクルの種類(た
とえばメモリ空間に対するものか、I/O空間に対する
ものか)を示すステータス出力端子、バス・サイクルの
開始を示すタイミング出力端子、バス・サイクルで行わ
れるデータ転送の方向(リード/ライト)を示すステー
タス出力端子、バス・サイクルの終了を保留しバス・サ
イクル期間を延長するためのレディ入力端子等を持つ。
【0074】EU103内の内部データ・バスID_b
usには前述のレジスタ資源の他に、命令実行の結果や
マイクロプロセッサ自身の状態を示すフラグ群で構成さ
れるプログラム・ステータス・ワード(以下PSWと称
する)131、マスカブル割込みまたは例外が発生した
場合にその時点でのPSW 131の内容が待避される
待避レジスタ(以下EIPSWと称する)133、同時
点でPCEU 113の内容が待避される待避レジスタ
(以下EIPCと称する)134、ノンマスカブル割込
みまたは二重例外(例外処理中に別の例外が発生する状
態)が発生した場合にその時点でのPSW 131の内
容が待避される待避レジスタ(以下FEPSWと称す
る)135、同時点でPCEU 113の内容が待避さ
れる待避レジスタ(以下EIPCと称する)136、マ
スカブル割込み/ノンマスカブル割込み/例外が発生し
た場合にその要因をコード化して保持する例外要因レジ
スタ(以下ECRと称する)132が接続される。
【0075】これらのレジスタ資源は、ロード・スペシ
ャル・レジスタ(以下Idsrと称する)命令、または
ストア・スペシャル・レジスタ(以下stsrと称す
る)命令の実行によって、汎用レジスタとの間でデータ
転送が可能である。
【0076】図7にこれらのレジスタ資源のソフトウェ
ア上のフォーマットを示す。PSW131は、大別して
1)整数演算結果の状態を示すフラグ群であるistフ
ィールド、2)浮動小数点演算結果の状態を示すフラグ
群であるfstフィールド、3)割込み/例外関連のフ
ラグ群に分割される。割込み/例外関連のフラグ群につ
いて、その機能を説明しておく。
【0077】PSW 131中のI3/I2/I1/I
0フラグは、4ビットのコードとして、マスカブル割込
みの許可レベルを示す。この許可レベル(IE_lev
elで示す)よりも低いレベルの割込み要求(IR_l
evel)は、マスカブル割込みを受け付けない。すな
わちIR_level≧IE_levelの場合に限
り、マスカブル割込みが受け付けられる。また、IR_
levelの割込み要求が受け付けられると、PSW
131全体がEIPSW 133またはFEPSW 1
35に待避された上で、IE_levelはIR_le
velに設定される。
【0078】PSW 131中のNPフラグは、ノンマ
スカブル割込み処理中であることを示す。ノンマスカブ
ル割込みが受け付けられると、本フラグがセットされ、
多重にノンマスカブル割込みを受け付けることをマスク
する。
【0079】PSW 131中のEPフラグは、マスカ
ブル割込みまたは例外の処理中であることを示す。
【0080】マスカブル割込みが受け付けられる例外
が発生すると、本フラグがセットされ、多重にマスカブ
ル割込みを受け付けることをマスクする。
【0081】PSW 131中のIDフラグは、マスカ
ブル割込み要求をマスクすることを示す。本フラグが
クリアされた状態でマスカブル割込みが受け付けられる
と、本フラグがセットされ、多重にマスカブル割込みを
受け付けることを禁止する。
【0082】PSW 131中のAEフラグの機能は、
本発明の本質的な動作に関連ないので、説明を省略す
る。
【0083】ECR 132中のEICCフィールドは
マスカブル割込みを受け付けた場合、または例外が発生
した場合に、これらの要因を示す16ビットのコードが
セットされる。同様にFECCフィールドはノンマスカ
ブル割込みを受け付けた場合、または二重例外(マスカ
ブル割込み処理あるいは例外処理中に、例外が発生する
こと)が発生した場合に、これらの要因を示す16ビッ
トのコードがセットされる。これらの16ビット・コー
ドは“例外コード”と呼ばれる。
【0084】マイクロプロセッサ100は、16種類の
マスカブル割込みと、ノンマスカブル割込みをサポート
する他、プログラムの実行中に発生する例外的な事象を
検知しプログラムの実行を中断する“例外(Excep
tion)”処理機能を有する。代表的な例外として、
定義されていない命令コードを実行しようとした“不
正命令コード例外”、除算命令でゼロで除算しようと
した“ゼロ除算例外”、浮動小数点演算で不正な演算
が行われた“浮動小数点例外”、などが挙げられる。
【0085】これらの例外が発生すると、マスカブル割
込みあるいはノンマスカブル割込みが受け付けられたの
と同様に、PSW 131およびPCEU 113の待
避が行われて、例外処理プログラム(=例外処理ハンド
ラ)に制御が移される。
【0086】マスカブル割込み要求は、マスカブル割込
みを要求するINT端子123、マスカブル割込み要求
に同期してその要求レベルを4ビット(16種類の指定
が可能)のコード(前述のとおりIR_levelで表
わす)で示すINTV3(−)−INTV0(−)端子
124を介して、外部からEU103に対して通知され
る。
【0087】マイクロプロセッサ100は要求が通知さ
れると、PSW 131中のIDフラグがクリアされて
おり(割込み許可状態)、I3/I2/I1/I0フラ
グで示されるマスカブル割込みの許可レベル(前述のと
りIE_levelで表わす)よりも高いレベルの要求
(IR_level≧IE_level)の場合のみ、
マスカブル割込みを受け付ける。
【0088】INT端子123およびINTV3(−)
−INTV0(−)端子124の状態は、マイクロプロ
セッサ100がマスカブル要求を検知してから、ソフト
ウェアで要因をクリアするまでアクティブ状態を保持し
ておく必要がある。
【0089】ノンマスカブル割込み要求は、ノンマスカ
ブル割込みを要求するNMI端子125の立ち下がり遷
移によって、外部からEU103に対して通知される。
【0090】マイクロプロセッサ100は要求が通知さ
れると、PSW 131中のIDフラグの状態にかかわ
らず、ノンマスカブル割込みを受け付ける。
【0091】さらに、EU103の割込み/例外処理に
関する構成・動作について詳細に説明する。
【0092】図2はEU103の割込み/例外処理に関
する構成を示す図面である。EU103は、マイクロプ
ログラムROM(以下MROMと略す)202に格納さ
れ、マイクロプログラム・カウンタ(以下MPCと略
す)201で指定されるアドレスに格納されているマイ
クロ命令で制御されるマイクロマシンである。
【0093】MPC 201は、DU102による命令
デコード結果により、命令実行処理の開始時に特定のマ
イクロプログラムの開始アドレスSTRTVが設定さ
れ、1)分岐フィールド命令が実行されて分岐する場
合、2)EU103あるいは他ユニットからマイクロ命
令の実行待合せが要求され一時的に停止する場合、以外
は1クロック毎に1インクリメントされる。
【0094】MROM 202から読み出されたマイク
ロ命令は、マイクロ命令デコーダ(以下MDECと略
す)203でデコードされ、EU103ならびにマイク
ロプロセッサ100その他の部分の制御に必要な信号を
発生する。
【0095】開始アドレスが指定されマイクロプログラ
ムが起動され、終了マイクロ命令(以下ENDM命令と
称する)が実行されるまでの一連のマイクロ命令を、マ
イクロルーチンと呼ぶ。
【0096】ひとつのマイクロルーチンは、少なくとも
一つの命令処理を行うために用意される。
【0097】さらにマイクロルーチンは、割込みや例外
処理を行うためにも用いられる。
【0098】マイクロシーケンサ(以下MSEQと略
す)211は、ENDM命令の実行を検知してMPC
201の実行開始アドレスとして、1)DU102によ
る命令デコード結果により決定されるSTRTV、2)
マスカブル割込みの処理マイクロルーチンに対応した定
数MIV、3)ノンマスカブル割込みの処理マイクロル
ーチンに対応した定数NIV、のそれぞれをセットする
ためのINSS,MIS,NIS信号を発生する。各信
号は、排他的にアクティブとなる。
【0099】MSEQ 211には、ノンマスカブル割
込み要求信号NIRQ、およびマスカブル割込み要求信
号MIRQが入力され、NIRQ信号が発生していれば
NIS信号が、NIRQ信号が発生しておらずMIRQ
信号が発生していればMIS信号が、NIRQ,MIR
Q信号がともに発生していなければINSS信号が発生
する。このように、マスカブル割込みとノンマスカブル
割込みが同時に要求された場合、先にノンマスカブル割
込み要求を受け付け、ノンマスカブル割込みが優先的に
処理される。
【0100】NMI(−)端子125に通知されるノン
マスカブル割込み要求は、ノンマスカブル割込み要求ラ
ッチ(以下NIRと略す)204で立ち下がり変化が検
出されてラッチされる。NIR 204にラッチされた
ノンマスカブル割込み要求は、ノンマスカブル割込み処
理用のマイクロルーチン中の特定のマイクロ命令の実行
によりクリアされる。NIR 204の出力は、PSW
131中のNPフラグがノンマスカブル割込み処理中
であることを示していれば、2入力ANDゲート205
によって、NIRQ出力の発生がマスクされる。
【0101】INT端子123に通知されるマスカブル
割込み要求は、2入力ANDゲート206によりマスク
された上で、マスカブル割込み要求ラッチ(以下MIF
Fと略す)210のセット入力に接続され、リセット入
力がアクティブでなければMIFF 210をセット
し、MIRQ信号を発生する。
【0102】MIFF 210はリセット優先のフリッ
プ・フロップであり、3入力ORゲート212によりP
SW 131中のNP,EP,IDフラグのいずれかが
セットされていることを検知すれば、セット入力の状態
にかかわらずリセットされる。このように、ノンマスカ
ブル割込み処理中、例外処理中、あるいはマスカブル割
込みが禁止されている状態ではMIRQ信号はインアク
ティブ状態になる。
【0103】2入力ANDゲート206の一方の入力
は、インバータ207を介して4ビット加算器(以下A
DDと略す)209の桁上げ(=キャリ)出力信号CY
に接続され、ADD 209がキャリを発生するとIN
T端子123へのマスカブル割込みはマスクされる。A
DD 209はINTV3(−)−INTV0(−)端
子124に入力される負論理の4ビット割込み要求レベ
ル(not(IR_level))と、PSW 131
中の4ビット割込み許可レベル(I3/I2/I1/I
0=IE_level)を加算し、キャリ出力信号CY
により、IR_level≧IE_levelまたはI
R_level<IE_levelであることを検知す
る。
【0104】ADD 209のキャリ出力CYは、no
t(IR_level)+IE_levle>15(=
1111b)の時に発生する。not(IR_leve
l)=−IR_level−1と等価であるから、この
式はIE_level−IR_level>16(=1
0000b)と変換できる。4ビット出力で“16”は
表現できず“0”と等価であるため右辺は0とすると、
結局キャリ出力信号CYはIE_level>IR_l
evelの時に発生することになる。すなわち、IR_
level≧IE_levelの場合にINT端子12
3への入力が2入力ANDゲートを通過し、IR_le
vel<IE_levelの場合にはマスクされる。
【0105】4ビット・インクリメンタ(以下INCと
略す)213、割込みレベル検出器(以下IVDと略
す)214、2入力4ビット・マルチプレクサ(以下M
PX)215は、受け付けたマスカブル割込み要求より
も1高いレベルをPSW131中の4ビット割込み許可
レベルに設定するための機能を供する。INT端子12
4から通知されインバータ208で正論理に変換された
マスカブル割込みレベル(IR_level)は、IV
R信号を介してINC 213およびIVD 214に
接続される。
【0106】INC 213では、IR_level+
1を生成するが、IR_levelが最高レベル(11
11b)である場合1インクリメントすると最低レベル
(0000b)が生成されてしまう。この不合理を避け
るために、IVD214はIR_levelが最高レベ
ル(1111b)であるかを検出し、そうであればMP
X 215に固定的に最高レベル(1111b)を出力
するように指示し、そうでなければINC 213のイ
ンクリメント結果を出力するように指示する。
【0107】MPX 215で生成された新たな割込み
許可レベルは、PSW 131中のI3/I2/I1/
I0フラグ141にストローブ信号IVSETの発生に
より設定される。IVSET信号は、特定のマイクロ命
令の実行により発生する。
【0108】またIR_levelの値は、リードバッ
ファ(以下IVBと略す)217を介し、リード信号I
VRRの発生によりID_busに出力される。IVB
217はID_busのビット4から接続され、IR
_levelがnであれば32ビット・データとして0
00000n0hがID_busに得られる。IVRR
信号はIR_levelを読み出す特定のマイクロ命令
の実行により発生する。
【0109】PSW 131中のNP,EP,IDフラ
グ142は、3ビット同時にNISET信号またはMI
SET信号の発生により更新できる。NISET信号が
発生すると、1)NPフラグは1bにセットされノンマ
スカブル割込み処理を実行中であることを示し、2)E
Pフラグは直前の値が再セットされ現在の値を保持し、
3)IDフラグは1bにセットされマスカブル割込みを
禁止する。NISET信号は、ノンマスカブル割込み処
理用のマイクロルーチン中の特定のマイクロ命令の実行
により発生する。
【0110】MISET信号が発生すると、1)NPフ
ラグは直前の値が再セットされ現在の値を保持し、2)
EPフラグは1bにセットされマスカブル割込み処理を
実行中であることを示し、3)IDフラグは1bにセッ
トされマスカブル割込みを禁止する。MISET信号
は、マスカブル割込み処理用のマイクロルーチン中の特
定のマイクロ命令の実行により発生する。
【0111】PSW 131の32ビット値は、リード
バッファ(以下PSWBと略す)218を介し、リード
信号PSWRの発生によりID_busに出力される。
PSWR信号はPSW 131を読み出す特定のマイク
ロ命令の実行により発生する。
【0112】次にMROM 202に格納される割込み
処理用のマイクロルーチンについて述べる。
【0113】前述のように、MSEQ 211がマスカ
ブル割込みの発生を検知すると、定数MIVを開始アド
レスとするマイクロルーチン(マスカブル割込み処理ル
ーチンと呼ぶ)が起動される。
【0114】マスカブル割込み処理ルーチンでは、EU
103の各部、および他のユニットに対して次の処理を
行うような制御信号を発生する。
【0115】(1)他のユニットに対して、以後の命令
処理を行わないように指示する。
【0116】(2)PSW 131の内容をID_bu
sを経由してEIPSW133に転送する。
【0117】(3)IVSET,MISET信号を発生
し、I3/I2/I1/I0フラグ141およびNP,
EP,IDフラグ142を更新する。
【0118】(4)(1)の指示に対し、他のユニット
の動作が停止したことを確認するまで待ち合わせ、PC
EU 113の値が確定するのを待つ。
【0119】(5)受け付けた割込み要求レベルIVR
(4ビット値nを持つ)をID_busを経由して00
0000n0hを得、定数fffffe00hと論理和
を取り、例外コードとしてfen0hECR 132
中の下位16ビットのEICCフィールドに転送する。
【0120】(6)PCEU 113の内容をID_b
usを経由してEIPC134に転送する。
【0121】(7)(5)の論理和の結果得られた値f
ffffen0hを、ID_busを経由してPCIU
111,PCDU 112,PCEU 113に同時
に転送する。
【0122】(8)他のユニットに対して、動作を再開
するように指示する。他のユニットは、fffffen
0h番地への分岐命令が実行されたのと同様の動作を行
う。
【0123】MROM 202に格納されるマイクロ命
令は、上記の動作を同時に複数指示できるように、複数
の独立したフィールド命令で構成することが良く知られ
ており、(1)〜(8)までの8つの処理をより少ない
クロック数(8クロック以下)で実行できる。
【0124】同様に、MSEQ 211がノンマスカブ
ル割込みの発生を検知すると、定数NIVを開始アドレ
スとするマイクロルーチン(ノンマスカブル割込み処理
ルーチンと呼ぶ)が起動される。ノンマスカブル割込み
処理ルーチンでは、EU103の各部、および他のユニ
ットに対して次の処理を行うような制御信号を発生す
る。
【0125】(1)他のユニットに対して、以後の命令
処理を行わないよいに指示する。
【0126】(2)PSW 131の内容をID_bu
sを経由してFEPSW135に転送する。
【0127】(3)NISET信号を発生し、NP,E
P,IDフラグ142を更新する。さらに、NIR 2
04に保持されているノンマスカブル割込み要求を
アする。
【0128】(4)(1)の指示に対し、他のユニット
の動作が停止したことを確認するまで待ち合わせ、PC
EU 113の値が確定するのを待つ。
【0129】(5)定数ffffffd0hを発生し、
例外コードとしてffd0hECR 132中の上位
16ビットのFECCフィールドに転送する。
【0130】(6)PCEU 113の内容をID_b
usを経由してFEPC136に転送する。
【0131】(7)(5)で得られた定数ffffff
d0hを、ID_busを経由してPCIU 111
PCDU 112,PCEU 113に同時に転送す
る。
【0132】(8)他のユニットに対して、動作を再開
するように指示する。他のユニットは、ffffffd
0h番地への分岐命令が実行されたのと同様の動作を行
う。
【0133】以上説明した、EU103におけるマスカ
ブル割込み、およびノンマスカブル割込みに対する処理
手順を図8(A),(B)にフローチャートに示す。
【0134】次に本実施例における割込み処理につい
て、具体的な説明をする。
【0135】マイクロプロセッサ100がリセットされ
ると、PSW 131のI3/I2/I1/I0フラ
グ、NP,EP,IDフラグは、それぞれ0000b,
1b,0b,0bに初期化される。NPフラグを1bに
セットすることで、リセットをノンマスカブル割込みと
同様に優先順位の高い例外的処理にみせかけている。図
8(A)からもわかるように、この状態ではマスカブル
割込み要求は無視される。
【0136】リセット処理が終了する直前に必要な割込
み許可レベルをI3/I2/I1/I0フラグに設定す
るとともに、NPフラグをクリアする。いずれのレベル
のマスカブル割込み要求も受け付けたくない場合は、I
Dフラグをセットしてリセット処理を終了する。
【0137】今、16種類の割込み要求はすべて外部周
辺装置の割込み要求と対応するものとし、I3/I2/
I1/I0フラグには1000bをセットするものと仮
定する。リセット処理後、レベル7(0111b)以下
の割込み要求に対しては、マイクロプロセッサ100は
これを無視してメイン・プログラムの実行を続ける。レ
ベル8(1000b)以上の割込み要求が発生すると、
マイクロプロセッサ100はこの要求を受け付け、メイ
ンプログラムの実行を中断する。
【0138】ここで、レベル10(1010b)の割込
み要求されると、図8(A)に示すように1)中断した
メイン・プログラムを再開するためのPCEU 113
の値をEIPC 134に待避、2)PSW 131の
値をEIPSW 133に待避、3)ECR 132の
EICCにfea0hをセット、4)マスカブル割込み
処理中であることを示すためにEPフラグをセット、
5)多重にマスカブル割込み要求を受け付けないように
IDフラグをセット、6)より低位レベルのマスカブル
割込み要求を受け付けないようにI3/I2/I1/I
0フラグをレベル11(1011b)に更新した上で、
レベル10のマスカブル割込み要求に対応する固有の割
込み処理プログラム(以下int_proc10と称す
る)を実行するためにfffffea0h番地に分岐す
る一連の処理を行う。
【0139】割込み処理プログラムint_proc1
0では、EP,IDフラグがセットされているためレベ
ル11以上のマスカブル割込み要求が発生しても無視さ
れるが、緊急度の高い処理が必要であればEP,IDフ
ラグをクリアすることもできる。さらに、特定以上のマ
スカブル割込み要求に対してのみ多重割込み処理が必要
であれば(たとえばレベル11は逐次化処理しても良い
が、レベル12以上は多重化処理するような場合)、I
3/I2/I1/I0フラグの値を自動的に更新した値
以上に再設定することも考えられる。
【0140】多重化処理を行う場合、EIPSW 13
3,EIPC 134の内容を汎用レジスタまたは外部
メモリに待避し、高位レベルの割込み要求を受け付ける
ことによるこれらのレジスタ内容の破壊を避ける必要が
ある。
【0141】外部メモリに待避する場合、プログラムで
待避を行うため、他の処理による外部メモリとのデータ
転送が行われないようなタイミングを考慮し、データ転
送ネックを避けることができる。
【0142】次にノンマスカブル割込みの動作につい
て、具体的に説明する。
【0143】図8()からもわかるように、リセット
直後はNPフラグがセットされているため、この状態で
はノンマスカブル割込み要求は無視される。リセット処
理が終了する直前にNPフラグをクリアし、ノンマスカ
ブル割込み要求を受け付け可能なようにする。
【0144】マイクロプロセッサ100がメインプログ
ラムの実行中ノンマスカブル割込み要求が発生すると、
この要求を受け付け、メインプログラムの実行を中断す
る。
【0145】図8(B)に示すように1)中断したメイ
ン・プログラムを再開するためのPCEU 113の値
をFEPC 136に待避、2)PSW 131の値を
FEPSW 135に待避、3)ECR 132のFE
CCにffd0hをセット、4)ノンマスカブル割込み
処理中であることを示すためにNPフラグをセット、
5)マスカブル割込み要求を受け付けないようにIDフ
ラグをセットした上で、ノンマスカブル割込み要求に対
応する固有の割込み処理プログラム(以下nmi_pr
ocと称する)を実行するためにffffffd0h番
地に分岐する一連の処理を行う。
【0146】割込み処理プログラムint_proc1
0では、NP,IDフラグがセットされているためレベ
ルの如何にかかわらずマスカブル割込み要求が発生して
も無視される。同様に多重のノンマスカブル割込み要求
も無視される。一般に、ノンマスカブル割込み要求は非
常に緊急度の高い処理を要求しているわけであり、多重
のマスカブル/ノンマスカブル割込み処理をサポートす
る必要がない。
【0147】マスカブル割込み要求を受け付けた直後に
ノンマスカブル割込み要求が発生した場合、マイクロプ
ロセッサ100は次のような多重処理を行う。前述の説
明と同様に、レベル10マスカブル割込み要求を受け付
けたことを前提とする。
【0148】レベル10マスカブル割込み要求を受け付
けても、NPフラグは直前値と変化ないため、NPフラ
グがクリアされていればノンマスカブル割込み要求を受
け付ける。現在状態の待避のために、マスカブル割込み
ではEIPSW 133,EIPC 134を、ノンマ
スカブル割込みではFEPSW 135,FEPC13
6を使用するため、中断されるマスカブル割込み処理プ
ログラムに関する特別な状態待避は不要である。
【0149】さらに、マスカブル割込み要求とノンマス
カブル割込み要求が同時に発生した場合、MSEQ 2
11によりノンマスカブル割込み要求の受付を優先する
ように処理される。
【0150】
【発明の効果】以上説明したように本発明を用いること
で、外部回路を必要とせずに複数のマスカブル割込み要
求に対して、高速にしかもフレキシブルに応答できるマ
イクロプロセッサを実現できる。
【0151】この結果、複数のマスカブル割込み要因に
対して高速なリアルタイム応答性を持つ、マイクロコン
ピュータ・システムの提供が可能になる。
【図面の簡単な説明】
【図1】本発明を用いたマイクロプロセッサの一実施例
の概要構成図である。
【図2】図1における命令実行ユニットの構成の一部を
示す図である。
【図3】従来例のマイクロプロセッサによるシステム図
である。
【図4】他の従来例のマイクロプロセッサによるシステ
ム図である。
【図5】さらに他の従来例のマイクロプロセッサによる
システム図である。
【図6】従来例による割込み受付時のバスサイクル状態
図である。
【図7】本発明一実施例における各種レジスタのフォー
マット図である。
【図8】本実施例におけるマスカブル割込みおよびノン
マスカブル割込み処理を示すフローチャートである。
【符号の説明】
100 マイクロプロセッサ 101 命令フェッチ・ユニット 102 命令デコード・ユニット 103 命令実行ユニット 104 実効アドレス計算ユニット 105 バス・インタフェース・ユニット 111 命令フェッチ・ユニット用プログラム・カウ
ンタ 112 命令デコード・ユニット用プログラム・カウ
ンタ 112 命令実行ユニット用プログラム・カウンタ 121 アドレス・バス端子 122 データ・バス端子 123 マスカブル割込み要求入力端子 124 マスカブル割込みレベル入力端子 125 ノンマスカブル割込み要求入力端子 126 クロック入力端子 131 プログラム・ステータス・ワード 132 例外要因レジスタ 133 マスカブル割込み/例外用PSW待避レジス
タ 134 マスカブル割込み/例外用プログラム・カウ
ンタ待避レジスタ 135 ノンマスカブル割込み/二重例外用PSW待
避レジスタ 136 ノンマスカブル割込み/二重例外用プログラ
ム・カウンタ待避レジスタ 141 I3/I2/I1/I0フラグ 142 NP,EP,IDフラグ 201 マイクロプログラム・カウンタ 202 マイクロ命令ROM 203 マイクロ命令デコーダ 204 ノンマスカブル割込み要求ラッチ 205,206 2入力ANDゲート 207,208 インバータ 209 4ビット加算器 210 マスカブル割込み要求ラッチ 211 マイクロプログラム・シーケンサ 212 3入力ORゲート 213 4ビット・インクリメンタ 214 マスカブル割込み要求レベル検出器 215 マルチプレクサ 217,218 リードバッファ 310,410,510 マイクロプロセッサ 320,420,520 外部メモリ 330,430,530 入出力装置 340 割込みコントローラ 311 プログラム・ステータス・ワード 312,412,512 プログラム・カウンタ 313 プログラム・セグメント・レジスタ 321,421 スタック領域 322 割込み処理プログラムの開始アドレス(オフ
セット値) 323 割込み処理プログラムの開始アドレス(ベー
ス値) 422 割込み処理プログラムの開始アドレス 411,511 ステータス・レジスタ 513 例外プログラム・カウンタ 514 原因レジスタ 521 割込みハンドラ 501 現在割込み許可フラグ 502 直前割込み許可フラグ 503 マスク・フラグ 504 例外コード・フィールド 505 保留割込みフィールド
フロントページの続き (56)参考文献 特開 平1−214939(JP,A) 特開 昭54−54548(JP,A) 特開 昭53−140948(JP,A) 特開 昭60−204054(JP,A) インターフェース、1987年6月号, P.215〜217 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 プログラム・カウンタで示される命令を
    逐次実行し、複数のマスカブル割込み要求を処理するマ
    イクロプロセッサの割込み制御装置において、 外部から割込み要求を所定のコードで表現された当該割
    込み要求の優先レベルとともに受ける受信手段と、割込
    み許可レベルを示すコード,割込み要求を禁止するとき
    立つ第1のフラグおよび割込み要求を処理中のとき立つ
    第2のフラグを含むプログラムステータスワードと、前
    記複数のマスカブル割込みに共通して実行されるマスカ
    ブル割込み処理ルーチンを含んだ記憶手段と、前記優先
    レベルと前記割込み許可レベルとを比較して前記優先レ
    ベルが前記割込み許可レベル未満のときまたは前記第1
    のフラグおよび前記第2のフラグのいずれかが立ってい
    るときに前記割込み要求をインアクティブ状態とする比
    較手段と、前記比較手段を通過した前記割込み要求がア
    クティブ状態のとき前記マスカブル割込み処理ルーチン
    を起動する起動手段と、前記プログラムステータスワー
    ドを待避する第1の待避手段と、前記プログラム・カウ
    ンタを待避する第2の待避手段と、前記優先レベルの所
    定のコードを新たな割込み許可レベルを示すコードに変
    換して前記プログラムステータスワードに保持する割込
    み許可レベル設定手段と、前記優先レベルの所定のコー
    ドを含んだアドレス値を生成して前記プログラム・カウ
    ンタに転送するアドレス生成手段とを有するマイクロプ
    ロセッサの割込み制御装置であって、 前記マスカブル割込み処理ルーチンは、起動すると、前
    記第1および第2の待避手段を動作させ、前記プログラ
    ムステータスワードの前記第1および第2のフラグを立
    たせ、前記割込み許可レベル設定手段を動作させ、前記
    アドレス生成手段を動作させて割込み処理プログラムの
    実行を開始するものであり外部から前記複数のマスカブル割込み要求より優先レベ
    ルの高いノンマスカブル割込み要求を受ける第2の受信
    手段と、前記プログラムステータスワードを待避する第
    3の待避手段と、前記プログラム・カウンタを待避する
    第4の待避手段とをさらに有し、前記プログラムステー
    タスワードはノンマスカブル割込み要求を受け付けたと
    き立つ第3のフラグをさらに含み、前記第3のフラグが
    立っているときに前記ノンマスカブル割込み要求をイン
    アクティブ状態とするマスク手段を さらに有し、前記記
    憶手段は前記ノンマスカブル割込みに対応して実行され
    るノンマスカブル割込み処理ルーチンをさらに含み、前
    記起動手段は前記マスク手段を通過した前記ノンマスカ
    ブル割込み要求がアクティブ状態のとき前記ノンマスカ
    ブル割込み処理ルーチンを起動し、前記ノンマスカブル
    割込み処理ルーチンは、起動すると、前記第3および第
    4の待避手段を動作させ、前記プログラムステータスワ
    ードの第1および第3のフラグを立たせ、所定のアドレ
    スを前記プログラムカウンタに転送してノンマスカブル
    割込み処理プログラムの実行を開始することを特徴とす
    マイクロプロセッサの割込み制御装置。
  2. 【請求項2】 前記第1および第3の待避手段は、前記
    プログラムステータスワードをそれぞれ第1および第2
    のレジスタへと待避し、前記第2および第4の待避手段
    は、前記プログラム・カウンタをそれぞれ第3および第
    4のレジスタへと待避することを特徴とする請求項
    載のマイクロプロセッサの割込み制御装置。
JP22555791A 1991-09-05 1991-09-05 マイクロプロセッサの割込み制御装置 Expired - Lifetime JP3176093B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP22555791A JP3176093B2 (ja) 1991-09-05 1991-09-05 マイクロプロセッサの割込み制御装置
US07/940,924 US5349667A (en) 1991-09-05 1992-09-08 Interrupt control system for microprocessor for handling a plurality of maskable interrupt requests

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22555791A JP3176093B2 (ja) 1991-09-05 1991-09-05 マイクロプロセッサの割込み制御装置

Publications (2)

Publication Number Publication Date
JPH0561692A JPH0561692A (ja) 1993-03-12
JP3176093B2 true JP3176093B2 (ja) 2001-06-11

Family

ID=16831164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22555791A Expired - Lifetime JP3176093B2 (ja) 1991-09-05 1991-09-05 マイクロプロセッサの割込み制御装置

Country Status (2)

Country Link
US (1) US5349667A (ja)
JP (1) JP3176093B2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04306735A (ja) * 1991-04-04 1992-10-29 Toshiba Corp 非同期割込み禁止機構
DE69228980T2 (de) * 1991-12-06 1999-12-02 Nat Semiconductor Corp Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
JP3171925B2 (ja) * 1992-04-30 2001-06-04 株式会社日立製作所 データ処理装置
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5530874A (en) * 1993-02-02 1996-06-25 3Com Corporation Network adapter with an indication signal mask and an interrupt signal mask
US5652837A (en) * 1993-03-22 1997-07-29 Digital Equipment Corporation Mechanism for screening commands issued over a communications bus for selective execution by a processor
EP0621535B1 (en) * 1993-04-23 2000-03-15 Advanced Micro Devices, Inc. Interrupt handling
JPH0713772A (ja) * 1993-06-29 1995-01-17 Mitsubishi Electric Corp データ処理装置
US5894577A (en) * 1993-09-22 1999-04-13 Advanced Micro Devices, Inc. Interrupt controller with external in-service indication for power management within a computer system
US5745770A (en) * 1993-12-27 1998-04-28 Intel Corporation Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor
DE4406094C2 (de) * 1994-02-25 2000-04-13 Lp Elektronik Gmbh Vorrichtung zum Betrieb einer Steuerungsanwendung
JP3672634B2 (ja) * 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
US5623685A (en) * 1994-12-01 1997-04-22 Cray Research, Inc. Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US6012135A (en) * 1994-12-01 2000-01-04 Cray Research, Inc. Computer having multiple address ports, each having logical address translation with base and limit memory management
FR2737590B1 (fr) * 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Dispositif de gestion d'interruptions
DE19700397C1 (de) * 1997-01-08 1998-04-23 Sgs Thomson Microelectronics Schutzschaltung für programmgesteuerte elektrische Einrichtungen
US6108756A (en) * 1997-01-17 2000-08-22 Integrated Device Technology, Inc. Semaphore enhancement to allow bank selection of a shared resource memory device
US6212607B1 (en) 1997-01-17 2001-04-03 Integrated Device Technology, Inc. Multi-ported memory architecture using single-ported RAM
US5751638A (en) * 1997-01-17 1998-05-12 Integrated Device Technology, Inc. Mail-box design for non-blocking communication across ports of a multi-port device
JP3699806B2 (ja) * 1997-06-20 2005-09-28 株式会社東芝 割込みコントローラ及び制御システム
US6170033B1 (en) * 1997-09-30 2001-01-02 Intel Corporation Forwarding causes of non-maskable interrupts to the interrupt handler
US6286346B1 (en) * 1998-04-30 2001-09-11 Medtronic, Inc. Interruptable multiply and/or divide operations for use with an interrupt in a medical device processor
US6496902B1 (en) 1998-12-31 2002-12-17 Cray Inc. Vector and scalar data cache for a vector multiprocessor
US6647440B1 (en) 1999-09-15 2003-11-11 Koninklijke Philips Electronics N.V. End-of-message handling and interrupt generation in a CAN module providing hardware assembly of multi-frame CAN messages
JP2002374257A (ja) * 2001-06-18 2002-12-26 Canon Inc パケット通信装置、パケット通信制御方法およびプログラム
US6895460B2 (en) * 2002-07-19 2005-05-17 Hewlett-Packard Development Company, L.P. Synchronization of asynchronous emulated interrupts
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7064915B1 (en) 2003-03-10 2006-06-20 Marvell International Ltd. Method and system for collecting servo field data from programmable devices in embedded disk controllers
US7099963B2 (en) * 2003-03-10 2006-08-29 Qlogic Corporation Method and system for monitoring embedded disk controller components
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7080188B2 (en) 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
JP2005316599A (ja) * 2004-04-27 2005-11-10 Matsushita Electric Ind Co Ltd 割込制御装置
US7738768B1 (en) 2005-12-16 2010-06-15 The Directv Group, Inc. Method and apparatus for increasing the quality of service for digital video services for mobile reception
DE102008010233A1 (de) 2008-02-21 2009-08-27 Robert Bosch Gmbh Anordnung zur Überprüfung eines Programmspeichers einer Recheneinheit
JP5718600B2 (ja) * 2010-09-10 2015-05-13 日本電気通信システム株式会社 情報処理システム、および、情報処理方法
US9740644B2 (en) * 2014-09-26 2017-08-22 Intel Corporation Avoiding premature enabling of nonmaskable interrupts when returning from exceptions

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4023143A (en) * 1975-10-28 1977-05-10 Cincinnati Milacron Inc. Fixed priority interrupt control circuit
JPS5275946A (en) * 1975-12-22 1977-06-25 Hitachi Ltd Microprogram control equipment
JPS5454548A (en) * 1977-10-08 1979-04-28 Fujitsu Ltd Central processing unit in information processing system for mocroprogram control
US4200912A (en) * 1978-07-31 1980-04-29 Motorola, Inc. Processor interrupt system
JPS55123736A (en) * 1979-03-16 1980-09-24 Hitachi Ltd Interrupt control system
US4349873A (en) * 1980-04-02 1982-09-14 Motorola, Inc. Microprocessor interrupt processing
US4631659A (en) * 1984-03-08 1986-12-23 Texas Instruments Incorporated Memory interface with automatic delay state
US4648029A (en) * 1984-08-27 1987-03-03 International Business Machines Corporation Multiplexed interrupt/DMA request arbitration apparatus and method
US4972312A (en) * 1985-11-04 1990-11-20 U.S. Philips Corporation Multiprocess computer and method for operating same having context switching in response to a peripheral interrupt
JPS62205441A (ja) * 1986-03-05 1987-09-10 Nec Corp マイクロコンピユ−タ
JPH0193837A (ja) * 1987-10-05 1989-04-12 Nec Corp デバッグ用マイクロプロセッサ
JP2594600B2 (ja) * 1988-02-23 1997-03-26 日本電気株式会社 シングルチップマイクロコンピュータ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
インターフェース、1987年6月号,P.215〜217

Also Published As

Publication number Publication date
JPH0561692A (ja) 1993-03-12
US5349667A (en) 1994-09-20

Similar Documents

Publication Publication Date Title
JP3176093B2 (ja) マイクロプロセッサの割込み制御装置
EP0464615A2 (en) Microcomputer equipped with DMA controller
US5471620A (en) Data processor with means for separately receiving and processing different types of interrupts
JPH07129413A (ja) 割込み処理装置
JPS61204758A (ja) コ・プロセツサ制御方式
JPS63261449A (ja) デ−タ処理装置
US4764869A (en) Method and apparatus for controlling interruption in the course of instruction execution in a processor
US5680598A (en) Millicode extended memory addressing using operand access control register to control extended address concatenation
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
US4991130A (en) Normalization control system for floating point arithmetic operation
EP0933705B1 (en) Data processor with robust interrupt branching and method of operation
JP2694948B2 (ja) マイクロプログラム処理装置
JPH04333141A (ja) 情報処理装置
EP0573071A2 (en) A microprocessor
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPH0377137A (ja) 情報処理装置
US5987559A (en) Data processor with protected non-maskable interrupt
JP2503210B2 (ja) マイクロプログラム制御装置
JP2871171B2 (ja) マイクロコンピュータ
JPH05250161A (ja) マイクロコンピュータ装置
JPH0635716A (ja) マイクロプロセッサ
JPS6393065A (ja) コ・プロセツサid変換方式
JPH03164945A (ja) データ処理装置
JPS58115559A (ja) プログラム暴走検出回路
JPH0659921A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080406

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090406

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100406

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 10

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110406

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120406

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120406

Year of fee payment: 11