JP3242508B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JP3242508B2
JP3242508B2 JP27675693A JP27675693A JP3242508B2 JP 3242508 B2 JP3242508 B2 JP 3242508B2 JP 27675693 A JP27675693 A JP 27675693A JP 27675693 A JP27675693 A JP 27675693A JP 3242508 B2 JP3242508 B2 JP 3242508B2
Authority
JP
Japan
Prior art keywords
interrupt
group
cpu
instruction
signal
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
JP27675693A
Other languages
English (en)
Other versions
JPH07129413A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP27675693A priority Critical patent/JP3242508B2/ja
Priority to US08/333,747 priority patent/US5628018A/en
Priority to DE69416485T priority patent/DE69416485T2/de
Priority to EP94308164A priority patent/EP0652514B1/en
Publication of JPH07129413A publication Critical patent/JPH07129413A/ja
Application granted granted Critical
Publication of JP3242508B2 publication Critical patent/JP3242508B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、小型でかつ柔軟性の向
上に適したマイクロコンピュータにおける割込み処理装
置に関する。
【0002】
【従来の技術】近年、電子技術及び情報処理技術の発展
によりマイクロプロセッサの性能が向上し、あらゆる機
器で広く利用されている。従来のマイクロプロセッサ等
の情報処理機器における割込み処理装置では、割込み要
因毎に処理プログラムの開始位置を変えるいわゆるベク
タ割込み方式を採用している。
【0003】ベクタ割込み方式では、割込み要因毎に特
定のベクタが割当てられるとともに、割込み処理プログ
ラムの開始アドレスをベクタに対応させて格納するテー
ブルがあらかじめに用意しされている。割込みが発生す
ると、現在実行中の命令が終了するのを待ってから、割
込みを受付ける。割込み要因を判別するためベクタを発
生させ、ベクタに対応する割込み処理プログラムの開始
アドレスを上記テーブルから読み出して、現在実行中の
アドレスから開始アドレスに分岐するよう必要な制御を
する。開始アドレスにマイクロプログラム等のハードウ
ェアによって制御される。開始アドレスに分岐した後、
割込み処理プログラムが開始する。そして、割込み処理
プログラムが終了するとハードウェア制御によって元の
プログラムアドレスに復帰するよう制御する。
【0004】ベクタ割込み方式では、割込み処理プログ
ラムを割込み要因毎に作成し、各プログラムの先頭アド
レスを開始アドレスとして上記テーブル上におくだけで
割込み要因毎の処理プログラムがハードウェア制御によ
って起動される。従って、割込み処理プログラムがそれ
ぞれ独立している場合は有用である。
【0005】
【発明が解決しようとする課題】しかしながら上記従来
技術によれば、割込み発生時から割込み処理プログラム
が開始するまで、及び、割込みプログラムの終了から元
のプログラムに復帰するまでの処理は、ハードウェアに
よって実現されているためハードウェア規模が増大する
という問題点があった。
【0006】また、マイクロコンピュータが実際に組み
込まれるシステムは、大規模なものから小規模なものま
で種々の多様なシステムであるのに、システムの特性に
よっては高速化が十分ではなく、システムの特性に応じ
て柔軟に対応できないという問題点があった。より具体
的には以下のような点で問題となる。第1に、オペレー
ティングシステムを導入し、割込み処理によりタスクの
切り換えを制御する場合には、それぞれの割込み要因に
対応する割込み処理プログラムを起動する前にオペレー
ティングシステムの割込み処理プログラムを起動する必
要があるため、全ての割込み開始アドレスを同一にして
おく必要がある。つまり、どの割込みが発生しても、一
旦オペレーティングシステムの割込み処理プログラムに
分岐される。この場合、ベクタ割込み方式においては、
割込み要因毎に開始アドレスを変えられるという有用性
が全く生かされていない。テーブルを参照することによ
り、割込み発生から割込み処理プログラムに分岐してく
るまでの速度が低下するという問題があった。
【0007】第2に、割込みが発生してから割込み処理
プログラムが開始されるまでの割込み応答時間につい
て、ベクタに対応する割込み処理プログラムの開始アド
レスを格納したテーブルを読み出してそのアドレスに分
岐する処理がハードウェアによって制御されるといって
も分岐命令のメモリ間接アドレッシングに相当するメモ
リリード動作が入るので、処理速度の向上がこれ以上望
めず、最小時間が規定されてしまう。割込み発生に対し
て素早い応答が必要なシステムでは、割込み処理プログ
ラムの開始が間に合わない場合も起こりうるという問題
があった。
【0008】第3に、外部割込み等のように命令実行と
非同期に発生する割込みは、実行中の命令が終了される
まで待たされるので、割込み処理の起動が遅れるという
問題があった。上記課題に鑑み本発明は、より少ないハ
ードウェア量で、種々のシステムに応じて柔軟に対応し
高速化し得る割込み処理装置を提供することを目的とす
る。
【0009】
【課題を解決するための手段】上記の課題を解決するた
め本発明のマイクロコンピュータは、複数の要因の割込
みを受け付けるCPUと、前記CPUに対する割込みを
制御する割込み処理装置とを備えるマイクロコンピュー
タであって、前記割込み処理装置は、共通の割込み要求
信号線を介して、少なくとも1つの要因による割込み要
求をCPUに割込み信号として出力することで通知し、
前記割込み処理装置は、複数のグループ割込み制御手段
を備え、 各グループ割込み制御手段は、グループ内の割
込み要求が発生していることを示す割込み要求フラグを
保持する割込み制御レジスタと、割込み要求フラグが立
っているとき割込み信号を、共通の割込み要求信号線を
介してCPUに出力する割込み要求手段と、CPUから
のアクセスに応答してグループに固有のグループ番号を
出力するグループ番号出力手段とからなり、 前記CPU
は、前記割込み信号を受け付けると、割込み信号を出力
したグループ制御手段からグループ番号を読み取り、そ
のグループ内の割込み要因の1つを選択する前記プログ
ラムを起動し、 前記各制御レジスタは、さらにグループ
に固有の割込みレベルを保持し、 各グループ割込み制御
手段は、さらに割込み制御レジスタに保持された割込み
レベルに基づいて、他のグループ割込み制御手段との競
合を調停する割込み調停手段を有し、前記各グループ番
号出力手段は、割込み調停手段の調停結果に従ってグル
ープに固有のグループ番号を出力するよう構成されてい
る。
【0010】また、前記割込み処理装置は、複数のグル
ープ割込み制御手段備え グループ割込み制御手段
は、ループ内の割込み要求が発生していることを示す
割込み要求フラグを保持する割込み制御レジスタと、割
込み要求フラグが立っているとき割込み信号を、共通の
割込み要求信号線を介してCPUに出力する割込み要求
手段と PUからのアクセスに応答してグループに固
有のグループ番号を出力するグループ番号出力手段と、
からなり、 前記CPUは、前記割込み信号を受け付ける
と、割込み信号を出力したグループ制御手段からグルー
プ番号を読み取り、そのグループ内の割込み要因の1つ
を選択する前記プログラムを起動するように構成しても
よい。
【0011】
【作用】上記の手段により本発明の割込み処理装置で
は、割込みが発生すると、グループ割込み制御手段にお
いて、割込みレベルと割込み要求フラグとを保持する割
込み制御レジスタの対応する割り込み要求フラグがセッ
トされる。割込み要求フラグに基づいて割込み要求手段
は、割込みレベルに対応した割込み信号をCPUに出力
する。
【0012】割込み調停手段は、割込み制御レジスタに
保持された割込みレベルと、マスクレベル出力手段から
入力されるマスクレベルとに基づいて、他のグループ制
御手段との競合を調停して割り込み信号を出力可能か否
か調停結果として出力する。この調停結果に従ってグル
ープ番号出力手段は、CPUからのアクセスに応答して
グループに固有のグループ番号を出力する。
【0013】割込みハンドラ起動手段は、CPUが割り
込み要求信号を受け付けると何れのグループ割込み制御
手段からの割込み信号であっても、同一アドレスから始
まるプログラムを起動する。また、前記割込みハンドラ
起動手段は、割り込み要求信号を出力したグループ制御
手段からグループ番号を読み取り、そのグループ内の割
り込み要因の1つを選択するプログラムを起動するよう
にしてもよい。
【0014】
【実施例】図1は、本発明の実施例における割込み処理
装置、及びそれを備えるマイクロコンピュータ(以下マ
イコンと略す)を表したブロック図である。同図に示す
ようにマイコン7は、中央演算装置(以下CPUと略
す)6と複数の割込みグループ制御部5を1チップ上に
有し、さらに端子群8を介して外部に複数の割込みグル
ープ制御部9を有している。
【0015】マイコン7の端子群8は、CPU6に割込
みを要求する割込み要求信号11、CPU6がどのレベ
ルまでの割込みを許可するかを指定するマスクレベル信
号12、データバス13、割込み調停手段の途中結果1
4等の入出力端子である。割込みグループ制御部5は、
割込み制御レジスタ1、割込み要求手段2、割込みレベ
ル調停手段3、グループ番号出力手段4を1つずつ備
え、最大4本の割込みを1つのグループとして処理す
る。
【0016】割込み制御レジスタ1は、周辺装置や外部
からの割込みを登録し、許可する割込みおよび割込みレ
ベルを指定する。割込み要求手段2は、割込み制御レジ
スタ1の割込みレベルに従って、割込みの要求信号11
をCPU6に出力する。割込みレベル調停手段3は、割
込み制御レジスタ1の割込みマスクレベルとCPUが出力
する現在の割込みマスクレベル信号12とを入力し、マ
スクされない割込みレベルのうち最も優先度の高い割込
みを要求しているグループを選択する。
【0017】グループ番号出力手段4は、割込み調停手
段3により選ばれたグループの識別番号をデータバス1
3を介してCPU6に出力する。割込みグループ制御部
9は、割込みグループ制御部5をマイコン7外部に拡張
したものであり、マイコン内部に内蔵している割込みグ
ループ制御部5と同様の構成要素からなる。
【0018】図2は、図1に示した割込み処理装置を備
えたマイコン7のさらに詳細なブロック図である。同図
において符号1〜8、11〜14の構成要素は図1と同
一である。割込み制御レジスタ1は、3ビットのLVフィ
ールド、4ビットのIEフィールド、4ビットのIRQフィ
ールド、4ビットのIDフィールドを有する。
【0019】LVフィールドは、割込みグループ制御部5
の割込みレベルを示し、"000"は割込みレベルが最も高
く、"111"は割込みレベルが最も低い。CPU6のマス
クレベルよりLVフィールドの値が小さいとき割込みグル
ープ内で発生した割込みはマスクされない。IEフィール
ドは、割込みグループ内で受け付ける最大4つの割込み
毎の割込み許可フラグで、"1"のとき割込みの要求が許
可される。
【0020】IRQフィールドは、割込みを登録するフラ
グで"1"のとき割込みの要求が登録される。マイコン7
内部/外部のI/Oなどの周辺装置で発生した割込み要求
信号がIRQフィールドに登録される。IDフィールドは、I
EフィールドとIRQフィールドの対応する各ビットの論理
積を示すフラグで、"1"のとき割込み要求を出力するこ
とを意味し、各ビットの論理和を割込み要求として割込
み要求手段2や割込みレベル調停手段3に出力する。
【0021】割込み要求手段2は、ラッチ2A、デコー
ダ2B、ANDゲート群2C、ドライバ群2Dから構成さ
れる。ラッチ2Aは、、割込み制御レジスタ1のIDフィ
ールドの論理和である割込み要求をラッチする。デコー
ダ2Bは、LVフィールドで示される割込みレベルをデコ
ードして割込みレベルに対応する出力を1つだけ"1"に
する。
【0022】ANDゲート群2Cは、デコーダ2Bの各出
力とラッチ2Aの割込み要求との論理積をクロック信号
T1のタイミングで出力する。ドライバ群2Dは、AND
ゲート群2Cの出力をCPU6への割込み要求信号とし
て出力する。割込みレベル調停手段3は、比較器3A
と、ゲート群3E、3Fと、ゲート3Dとから構成され
ている。
【0023】比較器3Aは、CPU6から出力される割
込みマスクレベル信号12と割込み制御レジスタ1のLV
フィールドの割込みレベルとり比較して一致信号を出力
する。ゲート群3E、3Fは、上位の調停信号3C、一
致信号、割込み制御レジスタ1からの割込み要求に基づ
いて、"1"で下位の割込みが受付可能であることを示す
調停信号3Bを出力する。
【0024】ゲート3Dは、グループ番号出力手段4の
グループ番号出力を制御する。グループ番号出力手段4
は、グループ番号生成器4A、バッファゲート4Bから
構成されている。グループ番号生成器4Aは、各グルー
プに固有の5ビットのグループ番号を生成する。
【0025】バッファゲート4Bは、グループ番号生成
器4Aからのグループ番号をデータバスの下位5ビット
に出力する。このグループ番号がデータバス13の下位
5ビットに出力されるのと同時に、バッファゲート16
はデータバス13の上位11ビットに"0"を出力する。
図3は、図1に示した割込み処理装置を備えたマイコン
7内のCPU6の詳細なブロック図を示す。
【0026】同図において、CPU6は、主として命令
解読ブロック30、レジスタブロック40、演算実行ブ
ロック50、プログラムカウンタブロック60、バス制
御ブロック70の5つのブロックから構成され、バス
(以下ABUSと略す)20、第1データバス(B1BUSと略
す)21、第2データバス(B2BUSと略す)22、命令
アドレスバス(NIADDRと略す)701、命令バス(IBUS
と略す)702、オペランドアドレスバス(OADDRと略
す)703、ストアデータバス(STBUSと略す)70
4、ロードデータバス(LDBUSと略す)705により同
図のように接続されている。
【0027】命令解読ブロック30は、先読みした命令
の格納および解読を行ないマイコン全体を制御するた
め、割込み制御部31、命令バッファ(IBと略す)3
2、解読器33、セレクタ34、命令レジスタ35、ス
テータスレジスタ36、プリデコーダ37、マイクロ命
令レジスタ38とから構成されている。割込み制御部3
1は、割込み受付時のマイコンの動作シーケンスを制御
する。具体的には、インタフェース部71から割込み受
付信号303が入力されると、割込み制御プログラムで
ある割込みハンドラに分岐させる制御を行う。
【0028】命令バッファ32は、命令の実行に先だっ
て先行的にメモリから読み出した命令3を蓄える。本実
施例では、3バイト分の命令を蓄える容量を持つ。セレ
クタ34は、命令バッファ32から入力される命令と、
命令バスから入力される命令との何れか一方を選択す
る。命令レジスタ35は、セレクタ34から出力する命
令を保持する。
【0029】ステータスレジスタ36は、命令の解読に
必要な各種のステータスフラグを保持する。解読器33
は、ステータスレジスタ36の内容を参照して、命令レ
ジスタ35の命令を解読する。本実施例では、プログラ
マブルロジックアレイ(PLA)を用いてマイクロプログ
ラムによる制御論理が実装され、命令レジスタ35の命
令を実現するマイクロ命令を順に出力する。
【0030】プリデコーダ37は、命令レジスタ35の
内容とステータスレジスタ36の内容とを入力し、主と
して1サイクルで動作するロード命令及び条件分岐命令
を実行するための制御信号を出力する。マイクロ命令レ
ジスタ38は、解読器33の解読結果であるマイクロ命
令を保持する。
【0031】レジスタブロック40は、データやアドレ
スを保持するため、データレジスタ群41、アドレスレ
ジスタ群42、セレクタ43を備えて構成されている。
データレジスタ41群は、主としてデータを保持する1
6ビット長の4本のレジスタを有する。アドレスレジス
タ群42は、主としてアドレスを保持する16ビット長
の4本のレジスタを有する。
【0032】セレクタ43は、ABUS20とLDBUS705
とから選択的にデータレジスタ群41及びアドレスレジ
スタ群42に出力する。演算実行ブロック50は、アド
レスの計算やデータ演算するため、演算器51、プログ
ラムステータスワード52、オペランドアドレスレジス
タ53、セレクタ54、セレクタ55、テンポラリーレ
ジスタ56、セレクタ57、セレクタ58、シフタ59
を備えて構成されている。
【0033】演算器51は、16ビットのデータ演算及
びアドレス計算を行う。プログラムステータスワード5
2は、演算結果のフラグや割込みマスクレベルを保持す
る16ビットのレジスタである。プログラムステータス
ワード52の詳細な構成図を図7に示す。同図におい
て、"T"はトレースフラグで、命令実行毎に割込みを発
生させてプログラムのシングルステップ実行させるトレ
ース動作実行中であることを示す。このフラグが"1"の
時シングルステップ実行する。
【0034】"IE"は割込みイネーブルフラグで、割込み
を許可するフラグである。このフラグが"1"の時割込み
が許可される。"IM"は割込みマスクレベルで、割込みの
うちどのレベルまでを割込み許可するかを指定する。例
えば、IMが"111"の時は、割込みレベルが7の割込みを
マスクし、割込みレベルが6より小さい割込みを受け付
ける。IMが"110"の時は、割込みレベルが7と6の割込
みをマスクし、割込みレベルが5より小さい割込みを受
け付ける。"V"、"C"、"N"、"Z"は演算フラグで、演算結
果がそれぞれオーバフロー、キャリー、負、ゼロであっ
たことを示す。
【0035】オペランドアドレスレジスタ53は、メモ
リをアクセスするアドレスを格納する。セレクタ54、
55は、演算器51に入力すべきオペランドを選択す
る。テンポラリレジスタ56は、演算器51の出力を一
時的に保持する。セレクタ57は、テンポラリレジスタ
56、オペランドアドレスレジスタ53の何れかを選択
してオペランドアドレスバッファ74に出力する。
【0036】セレクタ58は、ABUS20とシフタ59と
の何れかを選択する。シフタ59は、セレクタ58の出
力を受けて演算器51とともにシフト動作をする。プロ
グラムカウンタブロック60は、命令の読み出し位置を
制御するため、第1プリフェッチカウンタ(PFCと略
す)61、第2プリフェッチカウンタ(PFCPと略す)6
2、セレクタ63、プログラムカウンタバッファ(PCB
と略す))64、インクリメンタ(INCと略す)65、
セレクタ66から構成されている。
【0037】PFC61は、16ビット長のレジスタで、
先読みすべき命令のアドレスを保持する。PFCP62は、
16ビット長ののレジスタで、常にPFC61の1サイク
ル前の値を保持する。セレクタ63は、PFC61とPFCP
62とのいずれかを選択してABUS20及びB1BUS21に
出力する。
【0038】バス制御ブロック70は、メモリから命令
やデータを読み出す際のバスの接続を制御し、インタフ
ェース部71、命令アドレスバッファ72、命令バッフ
ァ73、オペランドアドレスバッファ74、ストアバッ
ファ75、ロードバッファ76、バススイッチ77、RA
M78、ROM79から構成されている。インタフェース部
71は、CPU6のバスと外部との接続を制御する。図2
に示したCPU6との間で入出力している信号は全てイン
タフェース部71が制御する。
【0039】命令アドレスバッファ(IABと略す)7
2、命令バッファ73、オペランドアドレスバッファ7
4、ストアバッファ75、ロードバッファ76は、それ
ぞれ命令アドレス、命令、オペランドアドレス、ストア
データ、ロードデータを保持するためのバッファであ
る。バススイッチ77は、バス706〜709を接断す
る。
【0040】RAM78、ROM79は、それぞれ命令、デー
タを格納する。図8は、図3に示したCPU6中のイン
タフェース部71内における割込み要求信号MIR[6:0]を
受け付ける割込み入力部の詳細な構成図である。同図に
おいて、11は6レベルの割込み要求信号MIR[6:0]、IN
TENは図7に示したプログラムステータスレジスタ52
の割込みイネーブルフラグ"IE"を示す出力信号である。
STOPはマイコンのクロックが停止している状態を示す信
号である。RESETはマイコン全体をリセットする信号で
ある。T1およびT2は、動作クロックで、互いに重なり合
わない2相のタイミングクロックである。この割込み入
力部は、トランジスタ群81、ラッチ群82、調停回路
83、及びその周辺の回路を備えて構成されている。
【0041】トランジスタ群81は、割込み要求線11
をプリチャージするトランジスタで、INTENが"1"となり
割込みがイネーブルとなったT2のタイミングで信号線8
01により、オンになる。INTENが"1"でかつマイコンが
停止状態でない時のT1のタイミングで、信号線802に
より割込み要求線の状態をラッチ82が取り込む。ラッ
チ82の出力は調停回路83に入力され、最も割込み優
先度の高い割込みレベルをACPTLV信号に出力する。信号
線801、802により割込みがイネーブルのときの
み、割込み信号の取り込み操作が行なわれる。割込みが
イネーブルでない時には、割込み要求信号のプリチャー
ジが禁止される。
【0042】図9は、図2に示した割込み制御レジスタ
1のIRQフィールドに入力される割込み要求の入力部の
詳細な構成を示す回路図である。この入力部は、外部か
ら割込み要求が入力される場合に、図2に示した割込み
グループ制御部5内のI/Oと記した部分に相当する。こ
の入力部は図9に示すように、ラッチ91、92と、複
数のゲートからなるセレクタ93を備えて構成されてい
る。ここで、EXIRQは、端子から入力される外部割込み
要求信号である。STOPは図8と同様で、マイコンのクロ
ックが停止している状態を示す信号である。EXIRQIN
は、外部割込み入力部が出力する外部割込み要求信号で
ある。
【0043】ラッチ91、92はクロック信号T1の立ち
上がりで入力を取り込み、EXIRQINをクロック信号T1に
同期させる。セレクタ93は、STOP信号が"1"のときEXI
RQINを選択して出力し、STOP信号が"0"のときラッチ9
1、92により同期されたEXIRQINを選択して出力す
る。によって出力を切り換えるである。
【0044】以上までは、本発明の割込み処理装置のハ
ードウェアによる処理する部分の構成である。次に、ソ
フトウェアによる処理する部分の構成を説明する。図4
は本発明の割込み処理装置における、割込みの発生から
割込み終了して戻るまでの処理の流れ図である。同図に
示すように、本発明の割込み処理装置では、割込みが受
け付けられると、ハードウェアによる「割込みハード処
理」の後に、所定番地に分岐して「割込みハンドラ」と
呼ばれるプログラムを起動する。割込みハンドラは、割
り込まれたプログラムと割り込んだプログラムとをつな
ぐ制御をするプログラムであり、割込み要因毎の処理プ
ログラムへの移行を制御する「前処理ハンドラ」と、割
込み要因毎の割込み処理プログラムからの復帰を制御す
る「後処理ハンドラ」とからなっている。後処理ハンド
ラが終了すると、「割込みリターン命令(rti命令)」
を受けてハードウェアにより復帰アドレスの計算が行わ
れ、元のプログラムに戻る。
【0045】割込みハンドラのプログラム例を図5に示
す。前処理ハンドラは、(A)レジスタ退避処理、(B)グル
ープ番号読み出し処理、(C)割込みプログラムの先頭ア
ドレス生成処理、(D)分岐処理、(E)グループ内割込み判
定処理からなるシーケンスを実行する。後処理ハンドラ
は、(F)レジスタ復帰処理からなるシーケンスを実行す
る。この割込みハンドラは、割込みグループ制御部5が
受け付ける最大の割込み数が1つの場合と、2つ以上で
ある場合とでプログラムが異なる。上記シーケンスを順
に説明する。
【0046】(A)レジスタ退避処理 ハードウェアによる割込み処理の後、ハンドラプログラ
ムの実行が始まると、最初に、ハンドラ内で使用するレ
ジスタをスタックに退避する。プログラム例では、スタ
ックポインタとして使用するアドレスレジスタAR3を更
新し(dec2 AR3)、割込みハンドラ内で使用するアドレ
スレジスタAR0をスタック領域に退避させている(mov A
R0,@(AR3))。グループ内割込み数が複数の場合は、同
様にデータレジスタDR0をも退避させている(dec2 AR
3、mov AR0,@(AR3))。
【0047】(B)グループ番号読み出し処理 次に、どの割込みグループからの割込み要求かを知るた
め、ある決められた固定番地を読み出すことによって、
割込みを要求してきた割込みグループ制御部5内のグル
ープ番号出力手段4から、割込みグループ番号をロード
する。プログラム例では固定番地FC0Eに割当てられてい
るグループ番号出力手段4をアドレスレジスタAR0に読
み出している(mov @(FC0E),AR0)。
【0048】(C)割込みプログラム先頭アドレス生成処
理 次に、各割込みグループの処理プログラムの先頭アドレ
スが書かれたテーブルのアドレスを計算し、そのアドレ
スが指すテーブルの内容をロードする。テーブルアドレ
ス計算は、テーブルの先頭を示すベースアドレスと先ほ
ど読み出した割込みグループ番号を加算することにより
行なう。プログラム例では、AR0内のグループ番号にベ
ースアドレス#BASEを加算して(add #base,AR0)、テー
ブルを読み出している(mov @(AR0),AR0)。
【0049】(D)分岐処理 テーブルから読み出されたアドレスに分岐する。プログ
ラム例ではアドレスレジスタAR0が示すアドレスに分岐
している(jmp @(AR0))。割込みを要求した割込みグル
ープが、最大1つの割込みしか受け付けない場合は、ロ
ードした内容が割込み処理プログラムの先頭アドレスで
あるので、前処理ハンドラの処理はここで終了する。
【0050】(E)グループ内割込み判定処理 割込みを要求した割込みグループが、2つ以上の割込み
を受け付ける場合には、グループ内の複数の割込み要因
の内どの割込みかを知るため、割込み制御レジスタ1を
読み出し、IDフィールドをチェックし、それぞれのビッ
トに対応する割込み処理プログラムに分岐する。プログ
ラム例では割込みレベルに対応する割込み制御レジスタ
1を読み出し(mov @(INTRn),DR0)、まずIDフィールド
のビット0をテストして(btst #0,DR0)、0でなけれ
ばその割込み要因の処理プログラムに分岐し(bnz $INT
n0)、0であればIDフィールドのビット1〜3について
割込みがあったか否かを同様にして判定する。
【0051】このようにして前処理ハンドラでは、割込
みグループ制御部1が受け付ける割込みの最大数が2以
上の場合には、2段階の分岐を行ない目的とする割込み
処理プログラムへ移行する。最大数が1の場合には1段
階の分岐処理により目的とする割込み処理プログラムへ
移行する。(F)レジスタ復帰処理 レジスタ復帰処理は、割込みハンドラ内で使用したレジ
スタの元の内容をスタックから復帰する。プログラム例
では、割込みハンドラ内で使用するアドレスレジスタAR
0をスタック領域から復帰させ(mov @(AR3),AR0)、ス
タックポインタとして使用するアドレスレジスタAR3を
更新し(inc2 AR3)。グループ内割込み数が複数の場合
は、同様にデータレジスタDR0をも退避させている(mov
@(AR3),AR0、inc2 AR3)。
【0052】図11は、図4に示した「割込みリターン
命令(rti命令)」を実行するハードウェアによる戻り
先番地の計算方法を示す図である。このrti命令の実行
は、他の命令実行と同様に図3に示した解読器33にお
けるマイクロプログラム制御によって、図3に示した演
算実行ブロック50、プログラムカウンタブロック60
において実行される。
【0053】同図において、「割込みの型」の欄は、割
込みを受け付けた時点で実行中の命令の種類に応じて決
まる3つの型を表す。命令の種類について、本実施例に
おけるマイコン7は、命令コードが1バイト又は2バイ
トからなる命令を有しており、命令コードの後ろにはオ
ペランドとしてディスプレースメントや即値等が続く場
合がある。
【0054】「完了型」の割込みは、割込み受付時の命
令を完全に実行した後に割込み処理を行なう場合をい
う。この場合の復帰アドレスは、割込み受付時の命令の
次の命令のアドレスになる。「アボート型」の割込み
は、命令の実行が終わらないうちに実行中の命令を打ち
切って割込みの処理を行なう場合をいう。アボート型の
割込みには、1バイト目の命令コードを処理中に受け付
ける「第1バイトアボート型」と、2バイト目の命令コ
ードを処理中に受け付ける「第2バイトアボート型」の
2種類がある。アボート型の割込みの場合には、割込み
から復帰すると、実行を打ち切った命令が再度実行され
ることになる。割込み受付時にスタックに退避する戻り
番地は、割込みの型に応じて計算する。
【0055】「PC計算時のIB量」の欄は、割込み処理の
中で戻り番地を計算する際の命令バッファ32に先読み
された命令の量(バイト数)を示す。「計算方法」の欄
にあるPFC及びPFCPはそれぞれ、図3における命令先読
みカウンタレジスタ61、同じく命令先読みカウンタの
1サイクル前の値を保持するレジスタ62である。具体
的な計算は、マイクロプログラム制御により、図3に示
した演算実行ブロック50内の演算器51においてPFC
61またはPFCP62に保持された命令アドレスから1な
いし3の定数を減算することにより実行される。その計
算結果はプログラムカウンタブロック60内のセレクタ
66を介してPCB64に格納される。
【0056】以上のように構成された本発明の実施例に
おける割込み処理装置について、その動作を説明する。
説明の便宜上、割込み発生してから割込み処理プログラ
ムが実行され元のプログラムに復帰するまでの動作を
(1)割込みの入力、(2)割込みハード処理、(3)前処理ハ
ンドラ、(4)後処理ハンドラ、(5)復帰処理に分けて説明
する。このうち(1)(2)(5)はハードウェア処理、(3)(4)
はソフトウェア処理である。説明する。
【0057】(1)割込みの入力 図2に示したI/Oに相当する周辺装置やマイコン外部か
らの割込みが発生すると、割込み要求が図9に示した割
込み入力部に入力される。割込み入力部の動作を示すタ
イミングを図10A、図10Bに示す。図10AはSTOP
信号が"0"で動作クロックが停止していないときの動作
を示し、図10BはSTOP信号が"1"で動作クロックが停
止しているときの動作を示している。
【0058】図10Aに示すように、STOP信号が"0"の
とき外部割込み信号EXIRQが斜線で示す範囲で、"0"か
ら"1"に変化した場合、サイクル2のT1の立ち上がり
で、図9のラッチ91から出力される信号線901が変
化する。さらに、サイクル3のT1の立ち上がりで、信号
線901の状態がラッチ92にラッチされると同時に、
ラッチ91は再度割込み信号EXIRQを取り込む。ラッチ
92から出力される信号線902はサイクル3のT1の立
ち上がりで"0"から"1"に変化する。信号線901と信号
線902が、共に"1"の時、EXIRQINが"1"になる。EXIRQ
INが"1"になると、図2に示した割込み制御レジスタ1
のIRQフィールドの対応するビットがセットされ、割込
み要求が割込み制御レジスタ1に受け付けられたことに
なる。
【0059】EXIRQがサイクル3のT1の立ち上がりまで
に"0"になると、信号線901はサイクル3のT1の立ち
上がりで"0"になる。従って、割込み信号EXIRQが1サイ
クル以下の期間だけ"1"であれば、EXIRQINは変化しな
い。このように、割込み入力部はマイコンの動作クロッ
クT1及びT2に非同期な割込み信号EXIRQを、T1に同期さ
せて出力すると共に、ノイズ等による1サイクル以下の
EXIRQがEXIRQINに悪影響を及ぼすのを取り除く。
【0060】図10Bに示すように、STOP信号が"1"の
ときにはタイミングがT1の状態でクロックが停止してい
る。この時、外部割込み信号EXIRQが斜線で示す範囲
で、"0"から"1"に変化した場合、セレクタ93はEXIRQ
を選択してEXIRQINに出力する。EXIRQINが"1"になる
と、図2に示した割込み制御レジスタ1のIRQフィール
ドの対応するビットがセットされ、割込み要求が割込み
制御レジスタ1に受け付けられたことになる。さらに、
IEフィールドの対応するビットが"1"であれば、IDフィ
ールドの対応するビットが"1"になり、図2の各割込み
グループ制御部5からカスケード接続されたORゲートを
介してCPU6のWKUP端子に"1"が入力される。WKUP端
子は、クロックの再開を指示する入力端子であるので、
タイミングクロックT1、T2の動作が開始される。これに
より、CPU6は割込み受付可能な動作状態になる。実
際には、CPU6が割込みを受け付ける前に、タイミン
グクロックが動作を開始してから、割込みが受け付けら
れる。 (2)割込みハード処理 (1)により割込み要求が割込み制御レジスタのIRQフィー
ルドに登録される。IRQフィールドの各ビットに対応す
るIEフィールドがイネーブルであると、各ビットに対応
するIDフィールドが"1"となり、図2に示した割込み要
求手段2のラッチ2Aの出力がタイミングクロックT2
で"1"になる。
【0061】一方、割込み制御レジスタ1のLVフィール
ドの内容がデコーダ2Bに入力され、その値に応じて0
から6までの出力のいずれか1本が"1"になる。従っ
て、"1"のデコーダ出力につながるANDゲート群2C中の
1つのANDゲートにより、ドライバ群2D中の1つのド
ライバがタイミングクロックT1で駆動される。このドラ
イバにより、割込み要求信号11の1本が"1"になる。
【0062】割込み要求信号11は、CPU6において
図8に示したようにタイミングクロックT1でラッチ群8
2を介して調停回路83に入力される。調停回路83
は、現在の割込みマスクレベルと入力された割込み要求
レベルとを比較し、マスクされていない割込みの内で最
も優先度の高い割込みを受け付け、受け付けた割込みレ
ベルを示す受付信号ACPTLV[2:0]を出力し、そのレベル
を次の割込みマスクに設定するとともに、信号線12に
割込みマスクレベルを出力する。
【0063】さらに、CPU6は、割込みを受け付ける
とプログラムの戻り先の番地と、プログラムステータス
をスタックに退避した後、所定番地(例えば4番地)の
割込み前処理ハンドラに分岐する。 (3)前処理ハンドラ 前処理ハンドラは、前述した(A)レジスタ退避処理、(B)
グループ番号読み出し処理、(C)割込みプログラムの先
頭アドレス生成処理、(D)分岐処理、(E)グループ内割込
み判定処理からなるシーケンスを実行する。上記シーケ
ンスの詳細は図5のプログラム例に即して既に説明した
ので、ここでは、図5に示したロード命令(MOV @(FCO
E),AR0)により実行される(B)の動作における、割込み
グループ制御部5側の動作を詳細に説明する。
【0064】CPU6は、あらかじめ決められた固定番
地つまり各割込みグループ制御部5に共通に割当てられ
た番地(FCOE)をアクセスする。その番地は、図2中のDE
Cでデコードされ、グループ番号読み出し信号15が出
力される。割込みを要求したグループ制御の割込み調停
手段3は、CPUから出力される割込みマスクレベル12
と割込み制御レジスタ1の割込みレベルとを比較器3A
により比較し、一致信号を出力する。CPU6から出力す
る割込みマスクレベルと割込みグループ制御に設定され
た割込みレベルとが一致すると、割込みレベル調停手段
3は、その割込みグループより下位の優先度にある割込
みグループに対して、調停信号3Bにより割込みが受付
けられないことを通知する。上位の優先度にある割込み
グループからの調停信号3Cが"1"であれば、ゲート3
Dがオンになり、グループ番号出力手段4のグループ番
号生成器4Aが出力するあらかじめ決められたグループ
番号をデータバス13に出力する。CPU6は、データ
バス13からグループ番号を取り込、アドレスレジスタ
AR0に格納する。
【0065】(4)後処理ハンドラ 後処理ハンドラは、前述した(E)レジスタ復帰を実行す
る。詳細は図5のプログラム例に即してすでに説明した
ので省略する。 (5)復帰処理 後処理ハンドラが終了すると、「割込みリターン命令
(rti命令)」の実行に際して、ハードウェアにより戻
り先番地が計算される。
【0066】図12〜15、図16〜19、図20〜2
3はそれぞれ、割込みの型が完了型、第1バイトアボー
ト型、第2バイトアボート型のパイプラインの動作タイ
ミング図である。各図の(A)、(B)、(C)、
(D)はそれぞれ、戻りアドレスを計算する際に命令バ
ッファ32に蓄えられている命令の数が3、2、1、0
の場合のパイプライン動作タイミングである。各図にお
いて、IBは命令バッファ32、IRは命令レジスタ35、
IBCNは命令バッファ32に蓄えられている命令の数を示
す。また、斜線は戻りアドレスを計算するタイミングで
用いる情報を示している。図中の(LD @AR)は、アドレ
スレジスタによる間接アドレッシングのロード命令を、
(1'st)は2バイトコード命令の1バイト目を、(2'nd)は
2バイト命令の2バイト目をそれぞれ示している。ま
た、RR-2は実行に2サイクル以上必要な命令を示してい
る。
【0067】以下、各タイミング図に基づいて動作を説
明する。図12は完了型割込みの命令バッファの命令数
が3の場合のパイプライン動作図である。サイクル1で
2n番地から2バイト分の命令をフェッチし、2n番地の命
令はサイクル2で命令レジスタIRに格納され、2n+1番地
の命令はサイクル2のタイミングT1で命令バッファに格
納される。従って、サイクル2で命令バッファに蓄えら
れた命令の数は1であり、命令バッファにはまだ格納す
る余裕があるため、2n+2番地から2バイト分の命令をフ
ェッチする。
【0068】一方、2n番地の命令はレジスタ間演算であ
り、1サイクルで命令の実行が終了したとすると、サイ
クル3では2n+1番地の命令が命令バッファから命令レジ
スタに転送されて実行される。また、サイクル2でフェ
ッチした2バイト分の命令が命令バッファに蓄えられる
ので、差し引き2バイト分の命令がサイクル3で蓄えら
れる。命令バッファには1バイトの空きしかないので、
サイクル3では命令のフェッチが行なわれない。
【0069】2n+1番地の命令もサイクル2と同様にレジ
スタ間演算命令であるとすると、サイクル4では2n+2番
地の命令が命令バッファから命令レジスタに転送されて
実行されるが、サイクル3のレジスタ間演算命令の解読
中に割込みが発生すると、命令バッファには割込み処理
シーケンスの初期値がセットされる。割込み処理シーケ
ンスの第2サイクル(サイクル5)で割込みからの戻り
アドレスを計算するコマンド(PC adjust)が解読され
る。この時、PFC及びPFCPの内容は共に2n+4であり、命
令バッファに格納されている命令の数は3である。従っ
て、戻りアドレスは図11の完了型割込みの命令バッフ
ァ量が3の計算方法(PFCP - 2)に従い、2n+4-2=2n+2
となる。2n+2は2n+1番地の命令の次のアドレスであり、
割込みからの復帰アドレスが正しく計算されている。
【0070】戻りアドレス計算時の命令バッファの量が
2、1及び0の場合も同様に、図13から図15に示し
た斜線の内容に従って計算される。図14及び図15の
IABの波線は命令先読みの要求はあるが、バスがロード
命令で使用されているため命令の先読みが出来ない状態
を示している。動作は図12と同様なので、説明を省略
する。図16〜図23についても同様である。
【0071】いずれの図の場合も、図11の計算方法に
より、割込みからの戻り番地が計算できることを示して
いる。こうして計算された戻り番地の復帰することによ
り、割込み処理から元のプログラムの実行状態に戻るこ
とができる。次に、トレース状態における割込み処理の
動作を説明する。
【0072】プロセッサステータスレジスタのトレース
フラグの状態による、動作の違いを図24に示す。図2
4(A)は、命令実行前にトレースフラグが1になって
いる時の動作図、図24(B)は実行前にトレースフラ
グが0になっている時の動作図である。以下、動作を説
明する。図24(A)において、INTINHは解読器33か
ら出力される信号で、解読器から出力するコマンド毎に
割込みが受付可能かどうかを示している。INTREQは割込
みの要求信号。EOIは命令の最後で解読器から出力され
るコマンドを示す信号である。サイクル1のタイミング
T2で命令レジスタに命令が格納され、タイミングT1で解
読器結果がマイクロ命令レジスタMIRに出力される。こ
のタイミングで割込み要求が出されるとする(INTREQ=
1)。コマンド1では割込みが許可されない(INTINH=
1)ので、サイクル2では命令の2サイクル目の解読が
始まり、サイクル2のタイミングT1でコマンド2がMIR
に格納される。コマンド2では割込みが許可されている
(INTINH=0 )ので、コマンド2が命令の最後のコマン
ドではない(EOI=0)が、割込み要求を受付け、サイク
ル3では、割込み処理の解読が開始される。
【0073】図24(B)は命令の実行前にトレースフ
ラグが1になっている場合の動作図であるが、サイクル
2までは図24(A)と同様である。コマンド2は割込
みが許可されている(INTINH=0)が、トレースフラグが
1であるためサイクル3では割込みを受け付けず、命令
の解読を継続して行なう。サイクル3のタイミングT1で
MIRに格納されたコマンド3は、割込み許可(INTINH=
0)でかつ命令の最後のコマンド(EOI=1)である。トレ
ースフラグが1の場合は、割込み許可のコマンド中に割
込み要求があっても、命令の最後のコマンドが出力され
るまで割込みを受け付けない。従って、サイクル4で割
込み処理の解読が開始される。
【0074】最後に、上記前処理ハンドラの(B)「グル
ープ番号読出」におけるロード命令(mov @(FC0E),AR
0)、や(C)「先頭アドレス生成」におけるロード命令
(mov @(AR0),AR0)などによってメモリや外部装置を読
み出す場合について、図6および図3を用いてCPU6
側の動作を詳細に説明する。図6はマイコンがロード命
令を実行するときの動作を説明するタイミング図であ
る。同図において、T1およびT2は内部クロックであり、
T1とT2とで1マシンサイクルとなる。「解読」、「実
行」はそれぞれ解読ステージ、実行ステージのパイプラ
インの様子を示している。図6のロード命令のアドレッ
シングモードは絶対アドレッシングで、命令に含まれる
アドレスの絶対値の内容が示すメモリからデータレジス
タ(Dn)にデータをロードする。
【0075】ロード命令は、通常2サイクルで実行さ
れ、最初のサイクルでアドレスを計算し、次のサイクル
でメモリをアクセスする。図6は2サイクルで実行され
るロード命令の動作を示すタイミング図である。サイク
ル1のタイミングT2では、ロード命令が命令バッファ3
2から信号線301に読み出され、セレクタ34を通し
て、命令レジスタ35に格納される。命令レジスタ35
の内容と解読の状態を保持するステータスレジスタ36
の内容とを入力し、プログラマブルロジックアレイ33
により命令が解読される。解読結果は、サイクル1のタ
イミングT1でマイクロ命令レジスタ38に格納され、制
御信号300が出力される。プリデコーダ37は、命令
レジスタ35の内容とステータスレジスタ36の内容と
を入力し、T2のタイミングで制御信号を出力する。プリ
デコーダが出力する制御信号は、1サイクルで動作する
ロード命令及び条件分岐命令を実行するために用いられ
る。
【0076】サイクル2では、タイミングT2で16ビッ
トの絶対アドレスの値を命令バッファ32から読み出
し、302を通してバス22に出力する。バス22に読
み出された値はセレクタ55により選択されて、演算器
51に供給される。演算器のB側に入力されたデータ
は、演算器51とシフタをスルーで通り、テンポラリレ
ジスタ56に格納される。つまり、演算器51のアドレ
ス計算は、B側の入力をそのままの形で出力することで
あり、A側の入力に影響されない。また、演算器の直後
に位置するシフタも入力をそのまま出力するように動作
する。サイクル2のタイミングT1では、テンポラリレジ
スタ56の内容が501を通してABUS20に出力され、
オペランドアドレスレジスタ53に格納される。
【0077】サイクル3では、オペランドアドレスレジ
スタ53に格納されたアドレスはセレクタ57により選
択され、オペランドアドレスバッファ74に転送され
る。バス制御手段70はオペランドアドレスバッファ7
4のアドレスをデコードし、ロードするアドレスがROM
79か、RAM78か、あるいはチップ外部かを判別す
る。判別結果に基づいてバススイッチ77および外部バ
スインタフェース71を制御しデータをロードする。ア
クセスがROM79の場合には、オペランドバッファ74
に格納されているアドレスは、バス708とバス706
によりROMに供給され、ロードしたデータはバス707
とバス709によりロードバッファ76に格納される。
アドレスがRAMの場合には、アドレスはバス708によ
りRAMに供給され、ロードしたデータはバス709によ
りロードバッファに格納される。アドレスがチップ外部
の場合には、アドレスはバス708とバス710により
チップ外部のメモリに供給され、ロードしたデータはバ
ス711とバス709によりロードバッファに格納され
る。いずれの場合も、メモリのアクセスが待ち時間なし
であれば、ロードしたデータはサイクル3のタイミング
T1でロードバッファ76に格納される。
【0078】サイクル4のタイミングT2では、ロードバ
ッファ76に格納されたデータが、バス705によりセ
レクタ43を通って、データレジスタ41に転送され
る。ロード命令の直後の命令が、ロードしたデータを使
う場合には、ロードバッファ76のデータを使用する。
つまり、サイクル4のT2で、ロードバッファ76のデー
タを、バス705によりAバス20またはB2バス22
に直接データを出力する(図6の波線で示した部分)。
従って、ロード命令は、2サイクルで実行される。
【0079】なお、本発明の実施例による割込みグルー
プの数は32にしているが、これに限定されるものでは
ない。また、割込みグループ内の割込み登録数、割込み
マスクレベル数、マイコンが備えるデータレジスタやア
ドレスレジスタの本数は、これに限定されるものではな
い。さらに、本発明による割込み方式を備えたマイコン
の命令バッファの数は3バイトとしているが、3バイト
に限定されるものではない。
【0080】
【発明の効果】以上説明してきたように本発明の割込み
処理装置によれば、全ての割込み処理において同一の割
込み処理番地のプログラムに分岐し、かつ割込みをいく
つかのグループに分割することにより、割込み処理のハ
ードウェアを低減させるという効果ととともに、システ
ムに最適な割込みの構成を柔軟に選択することができる
という効果がある。
【0081】また、割込みをいくつかのグループに分割
し、グループ毎に割込みのマスクレベルを設定するの
で、少ないハードウェアでレベル管理が実現できると共
に、ノンマスク割込みをグループの1つとすることによ
り、マスク割込みと同一の実装が可能である。さらに、
マイコン外部へ割込みグループを拡張でき、柔軟性が向
上すると共に、プログラムによる割込み許可に応じてプ
リチャージを制御することにより、拡張時の消費電力を
低減することができる。
【0082】さらに、マイコンの動作クロックの状態に
よって割込み入力部の動作を変えることにより、端子を
増加させることなく動作クロックの停止状態から復帰さ
せることが可能となる。さらに、割込み時の復帰アドレ
スを命令先読みカウンタと命令先読み量とから算出する
ことにより、実行命令のアドレスを計算する加算器を省
略することができ、ハードウェアを大幅に削減する。
【0083】さらに、コマンド毎に割込みを制御するこ
とにより実行中の命令を中断して割込みを受け付けるの
で、割込みの応答が高速化できる。
【図面の簡単な説明】
【図1】本発明の実施例の割込み処理装置の内部ブロッ
ク図。
【図2】本発明の実施例の割込み処理装置の内部詳細
図。
【図3】本発明の割込み処理装置を有するマイコンの詳
細な内部ブロック図。
【図4】本発明の割込み処理装置における、割込みの発
生から割込み終了して戻るまでの処理の流れ図。
【図5】割込み処理プログラムと割込まれたプログラム
とをつなぐ割込みハンドラのプログラム例。
【図6】本発明の割込み処理装置を備えたマイコンがロ
ード命令を実行するときの動作を説明するタイミング図
である。
【図7】本発明の割込み処理装置における、割込み要求
信号の入力部の詳細な構成図。
【図8】本発明の割込み処理装置における割込み要求信
号の入力部の詳細な構成図。
【図9】本発明の割込み処理装置における外部割込み信
号の入力部の詳細を示す構成図。
【図10】割込み入力部の動作を示すタイミング図。
【図11】割込み処理における戻り先番地の計算方法を
示した図。
【図12】完了型割込みで、命令バッファの命令数が3
の場合のパイプライン動作タイミング図。
【図13】完了型割込みで、命令バッファの命令数が2
の場合のパイプライン動作タイミング図。
【図14】完了型割込みで、命令バッファの命令数が1
の場合のパイプライン動作タイミング図。
【図15】完了型割込みで、命令バッファの命令数が0
の場合のパイプライン動作タイミング図。
【図16】第1バイトアボート型割込みで、命令バッフ
ァの命令数が3の場合のパイプライン動作タイミング
図。
【図17】第1バイトアボート型割込みで、命令バッフ
ァの命令数が2の場合のパイプライン動作タイミング
図。
【図18】第1バイトアボート型割込みで、命令バッフ
ァの命令数が1の場合のパイプライン動作タイミング
図。
【図19】第1バイトアボート型割込みで、命令バッフ
ァの命令数が0の場合のパイプライン動作タイミング
図。
【図20】第2バイトアボート型割込みで、命令バッフ
ァの命令数が3の場合のパイプライン動作タイミング
図。
【図21】第2バイトアボート型割込みで、命令バッフ
ァの命令数が2の場合のパイプライン動作タイミング
図。
【図22】第2バイトアボート型割込みで、命令バッフ
ァの命令数が1の場合のパイプライン動作タイミング
図。
【図23】第2バイトアボート型割込みで、命令バッフ
ァの命令数が0の場合のパイプライン動作タイミング
図。
【図24】プロセッサステータスレジスタのトレースフ
ラグの状態による、動作の違いを示した図。
【符号の説明】
1 割込み制御レジスタ 2 割込み要求手段 3 割込み調停手段 4 グループ番号出力手段 5 割込みグループ 8 端子群
フロントページの続き (56)参考文献 特開 昭62−164154(JP,A) 特開 昭51−96259(JP,A) 特開 昭54−50247(JP,A) 特開 昭61−165167(JP,A) 特開 昭61−15259(JP,A) 特開 平1−240958(JP,A) 特開 平2−311930(JP,A) 特開 昭61−196336(JP,A) 特開 昭58−99845(JP,A) 特開 昭58−97726(JP,A) 特開 昭57−29127(JP,A) 特開 昭52−10642(JP,A) 実開 昭57−20035(JP,U) 飯塚、古谷、山口・共著、「マイクロ コンピュータ基礎講座1 マイクロコン ピュータアーキテクチャ」、株式会社オ ーム社・発行(昭和57年2月20日初 版)、pp.66〜69 飯塚肇・著、「現代計算機方式論[▲ I▼]−命令セットアーキテクチャ −」、株式会社オーム社・発行(昭和60 年7月30日初版)、pp.148〜151 (58)調査した分野(Int.Cl.7,DB名) G06F 9/46 G06F 13/24 G06F 13/362 G06F 13/10 - 13/14

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の要因の割込みを受け付けるCPU
    と、前記CPUに対する割込みを制御する割込み処理装
    置とを備えるマイクロコンピュータであって、 前記割込み処理装置は、共通の割込み要求信号線を介し
    て、少なくとも1つの要因による割込み要求をCPUに
    割込み信号として出力することで通知し、 前記割込み処理装置は、複数のグループ割込み制御手段
    を備え、 各グループ割込み制御手段は、 グループ内の割込み要求が発生していることを示す割込
    み要求フラグを保持する割込み制御レジスタと、 割込み要求フラグが立っているとき割込み信号を、共通
    の割込み要求信号線を介してCPUに出力する割込み要
    求手段と、 CPUからのアクセスに応答してグループに固有のグル
    ープ番号を出力するグループ番号出力手段と、 からなり、 前記CPUは、前記割込み信号を受け付けると、割込み
    信号を出力したグループ制御手段からグループ番号を読
    み取り、そのグループ内の割込み要因の1つを選択する
    プログラムであって、同一の固定アドレスから始まるプ
    ログラムを起動し、 前記各制御レジスタは、さらにグループに固有の割込み
    レベルを保持し、 各グループ割込み制御手段は、さらに割込み制御レジス
    タに保持された割込みレベルに基づいて、他のグループ
    割込み制御手段との競合を調停する割込み調停手段を有
    し、 前記各グループ番号出力手段は、割込み調停手段の調停
    結果に従ってグループに固有のグループ番号を出力する
    ことを特徴とするマイクロコンピュータ。
  2. 【請求項2】 複数の割込み信号を受け付けるCPU
    と、前記CPUに対する割込みを制御する割込み処理装
    置とを有するマイクロコンピュータであって、 マスクレベル出力手段と、複数のグループ割込み制御手
    段とを備え、 マスクレベル出力手段は、CPUの受け付け可能な割込
    みレベルを示すマスクレベルを出力し、 各グループ割込み制御手段は、 グループに固有の割込みレベルと、グループ内の各割込
    み要求が発生していることを示す割込み要求フラグとを
    保持する割込み制御レジスタと、 割込み要求フラグに基づいて、割込み制御レジスタの割
    込みレベルに対応した割込み信号をCPUに出力する割
    込み要求手段と、 割込み制御レジスタに保持された割込みレベルと、マス
    クレベル出力手段から入力されるマスクレベルとに基づ
    いて、他のグループ制御手段との競合を調停して割込み
    信号を出力可能か否か調停結果として出力する割込み調
    停手段と、 調停結果に従って、CPUからのアクセスに応答してグ
    ループに固有のグループ番号を出力するグループ番号出
    力手段と、 からなり、 前記CPUは、割込み信号を受け付けると何れのグルー
    プ割込み制御手段からの割込み信号であっても、同一ア
    ドレスから始まるプログラムを起動し、 前記割込み処理装置は、さらに、 マスクレベル出力手段からのマスクレベルを出力する第
    1の端子と、 マイクロコンピュータの内部の割込みグループ制御手段
    の何れか1つにおける割込み調停手段の調停結果を出力
    する第2の端子とを備え、 前記割込みグループ制御手段と同構成をもつ外部のグル
    ープ制御手段を第1、第2の端子を介して接続すること
    を特徴とするマイクロコンピュータ。
  3. 【請求項3】 複数の割込み信号を受け付けるCPU
    と、前記CPUに対する割込みを制御する割込み処理装
    置とを有するマイクロコンピュータであって、 マスクレベル出力手段と、複数のグループ割込み制御手
    段とを備え、 マスクレベル出力手段は、CPUの受け付け可能な割込
    みレベルを示すマスクレベルを出力し、 各グループ割込み制御手段は、 グループに固有の割込みレベルと、グループ内の各割込
    み要求が発生していることを示す割込み要求フラグとを
    保持する割込み制御レジスタと、 割込み要求フラグに基づいて、割込み制御レジスタの割
    込みレベルに対応した割込み信号をCPUに出力する割
    込み要求手段と、 割込み制御レジスタに保持された割込みレベルと、マス
    クレベル出力手段から入力されるマスクレベルとに基づ
    いて、他のグループ制御手段との競合を調停して割込み
    信号を出力可能か否か調停結果として出力する割込み調
    停手段と、 調停結果に従って、CPUからのアクセスに応答してグ
    ループに固有のグループ番号を出力するグループ番号出
    力手段と、 からなり、 前記CPUは、割込み信号を受け付けると何れのグルー
    プ割込み制御手段からの割込み信号であっても、同一ア
    ドレスから始まるプログラムを起動し、 前記グループ割込み制御手段は、さらに、 割込みが発生したことを示す通知する割込み信号が、規
    定時間以下であれば阻止する雑音除去手段と、 雑音除去手段の出力と割込み信号とが入力され、どちら
    か一方を選択して割込み制御レジスタの割込み要求フラ
    グに出力する選択手段とを備え、選択手段は、CPUの
    動作クロックが停止していないときは雑音除去手段の出
    力を選択し、CPUの動作クロックが停止しているとき
    は割込み信号を選択することを特徴とするマイクロコン
    ピュータ。
  4. 【請求項4】 複数の割込み信号を受け付けるCPU
    と、前記CPUに対する割込みを制御する割込み処理装
    置とを有するマイクロコンピュータであって、 マスクレベル出力手段と、複数のグループ割込み制御手
    段と、割込みハンドラ起動手段とを備え、 マスクレベル出力手段は、CPUの受け付け可能な割込
    みレベルを示すマスクレベルを出力し、 各グループ割込み制御手段は、 グループに固有の割込みレベルと、グループ内の各割込
    み要求が発生していることを示す割込み要求フラグとを
    保持する割込み制御レジスタと、 割込み要求フラグに基づいて、割込み制御レジスタの割
    込みレベルに対応した割込み信号をCPUに出力する割
    込み要求手段と、 割込み制御レジスタに保持された割込みレベルと、マス
    クレベル出力手段から入力されるマスクレベルとに基づ
    いて、他のグループ制御手段との競合を調停して割込み
    信号を出力可能か否か調停結果として出力する割込み調
    停手段と、 調停結果に従って、CPUからのアクセスに応答してグ
    ループに固有のグループ番号を出力するグループ番号出
    力手段と、 からなり、 前記CPUは、割込み信号を受け付けると何れのグルー
    プ割込み制御手段からの割込み信号であっても、同一ア
    ドレスから始まるプログラムを起動し、 前記マイクロコンピュータは、さらに、 割込み受付時点の命令の先読み位置を示すポインタを保
    持するポインタ保持手段と、 割込み受付時点の先読みした命令の量を保持する先読み
    量保持手段と、 割込みプログラムからの復帰に際して、ポインタ保持手
    段の先読み位置と先読み量保持手段の先読み量とに基づ
    いて復帰先のアドレス計算するマイクロプログラムを起
    動するアドレス計算起動手段と、 を備えたことを特徴とするマイクロコンピュータ。
  5. 【請求項5】 前記割込み処理手段は、さらに、 命令実行の終了と命令の解読位置とを示す実行状態保持
    手段と、 命令実行中のクロック毎に割込みの受け付け可能状態を
    示す割込み許可手段とを備え、 前記状態表示手段が命令の終了を示していないときで
    も、前記割込み許可手段が割込みを許可した時点で割込
    みを受け付けることを特徴とした請求項記載のマイク
    ロコンピュータ。
  6. 【請求項6】 前記割込み処理手段は、さらに、 1命令ずつ実行することを示すシングルステップフラグ
    を保持するシングルステップ保持手段と、 シングルステップフラグが立っているときに、1命令実
    行毎に割込み要求を出力するシングルステップ割込み要
    求手段とを備え、 前記シングルステップフラグ割込み要求がある場合は、
    命令の実行途中で割込みを受け付けないことを特徴とす
    る請求項第記載のマイクロコンピュータ。
JP27675693A 1993-11-05 1993-11-05 マイクロコンピュータ Expired - Lifetime JP3242508B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP27675693A JP3242508B2 (ja) 1993-11-05 1993-11-05 マイクロコンピュータ
US08/333,747 US5628018A (en) 1993-11-05 1994-11-03 Data processing apparatus handling plural divided interruption
DE69416485T DE69416485T2 (de) 1993-11-05 1994-11-04 Datenverarbeitungsgerät zum Behandeln von mehreren, geteilten Unterbrechungen
EP94308164A EP0652514B1 (en) 1993-11-05 1994-11-04 Data processing apparatus handling plural divided interruptions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27675693A JP3242508B2 (ja) 1993-11-05 1993-11-05 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JPH07129413A JPH07129413A (ja) 1995-05-19
JP3242508B2 true JP3242508B2 (ja) 2001-12-25

Family

ID=17573913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27675693A Expired - Lifetime JP3242508B2 (ja) 1993-11-05 1993-11-05 マイクロコンピュータ

Country Status (4)

Country Link
US (1) US5628018A (ja)
EP (1) EP0652514B1 (ja)
JP (1) JP3242508B2 (ja)
DE (1) DE69416485T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020137871A (ja) * 2019-02-28 2020-09-03 株式会社ソフイア 遊技機

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3448126B2 (ja) * 1995-03-13 2003-09-16 株式会社東芝 情報処理装置、コンピュータネットワーク及び情報処理方法
EP0732651B1 (fr) * 1995-03-15 2001-09-26 Koninklijke Philips Electronics N.V. Système de traitement d'informations pour effectuer des tâches ayant des priorités diverses et modem comportant un tel système
GB9509626D0 (en) * 1995-05-12 1995-07-05 Sgs Thomson Microelectronics Processor interrupt control
DE69731375T2 (de) 1997-06-13 2005-03-17 Alcatel Mehrfachunterbrechungsabwicklungsverfahren und -gerät
DE19901879A1 (de) * 1999-01-19 2000-07-27 Siemens Ag Verfahren zum Tracen von Daten
US6493781B1 (en) 1999-08-19 2002-12-10 Koninklijke Philips Electronics N.V. Servicing of interrupts with stored and restored flags
US6606677B1 (en) 2000-03-07 2003-08-12 International Business Machines Corporation High speed interrupt controller
JP4600586B2 (ja) * 2000-05-29 2010-12-15 セイコーエプソン株式会社 割込信号生成装置及び割込信号の生成方法
US7395527B2 (en) 2003-09-30 2008-07-01 International Business Machines Corporation Method and apparatus for counting instruction execution and data accesses
US8381037B2 (en) * 2003-10-09 2013-02-19 International Business Machines Corporation Method and system for autonomic execution path selection in an application
US7197586B2 (en) * 2004-01-14 2007-03-27 International Business Machines Corporation Method and system for recording events of an interrupt using pre-interrupt handler and post-interrupt handler
US7895382B2 (en) 2004-01-14 2011-02-22 International Business Machines Corporation Method and apparatus for qualifying collection of performance monitoring events by types of interrupt when interrupt occurs
US7415705B2 (en) 2004-01-14 2008-08-19 International Business Machines Corporation Autonomic method and apparatus for hardware assist for patching code
JP4731126B2 (ja) * 2004-03-30 2011-07-20 ルネサスエレクトロニクス株式会社 割り込み制御回路
TWI256591B (en) * 2004-08-11 2006-06-11 Benq Corp Method of reducing interrupts
US20060064684A1 (en) * 2004-09-22 2006-03-23 Royer Robert J Jr Method, apparatus and system to accelerate launch performance through automated application pinning
US7769937B2 (en) * 2005-02-28 2010-08-03 Koninklijke Philips Electronics N.V. Data processing system with interrupt controller and interrupt controlling method
US7581051B2 (en) * 2005-05-16 2009-08-25 Microsoft Corporation Method for delivering interrupts to user mode drivers
JP6481427B2 (ja) * 2015-03-10 2019-03-13 富士通株式会社 演算処理装置,情報処理装置,及び情報処理装置の制御方法
CN111506530A (zh) * 2019-01-30 2020-08-07 智原科技股份有限公司 中断管理系统及其管理方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4332011A (en) * 1980-03-17 1982-05-25 Cambridge Telecommunications, Inc. Data processing arrangement including multiple groups of I/O devices with priority between groups and within each group
EP0048767B1 (de) * 1980-09-27 1985-03-20 Ibm Deutschland Gmbh Prioritätsstufengesteuerte Unterbrechungseinrichtung
US4484263A (en) * 1981-09-25 1984-11-20 Data General Corporation Communications controller
IT1145730B (it) * 1981-11-13 1986-11-05 Olivetti & Co Spa Sistema di elaborazione di dati con dispositivo di controllo delle interruzioni di programma
JPH077379B2 (ja) * 1983-06-22 1995-01-30 株式会社日立製作所 多重処理システムの割込み選択方式
US4628449A (en) * 1983-11-14 1986-12-09 Tandem Computers Incorporated Vector interrupt system and method
US4779195A (en) * 1985-06-28 1988-10-18 Hewlett-Packard Company Interrupt system using masking register in processor for selectively establishing device eligibility to interrupt a particular processor
US4796176A (en) * 1985-11-15 1989-01-03 Data General Corporation Interrupt handling in a multiprocessor computing system
JPH01126751A (ja) * 1987-11-11 1989-05-18 Fujitsu Ltd グルーピング装置
JPH01162967A (ja) * 1987-12-18 1989-06-27 Fujitsu Ltd 割込み処理方法及び装置
US5325536A (en) * 1989-12-07 1994-06-28 Motorola, Inc. Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine
US5212796A (en) * 1990-01-02 1993-05-18 Motorola, Inc. System with modules using priority numbers related to interrupt vectors for bit-serial-arbitration on independent arbitration bus while CPU executing instructions
JP2855298B2 (ja) * 1990-12-21 1999-02-10 インテル・コーポレーション 割込み要求の仲裁方法およびマルチプロセッサシステム
US5261109A (en) * 1990-12-21 1993-11-09 Intel Corporation Distributed arbitration method and apparatus for a computer bus using arbitration groups
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
JP2625589B2 (ja) * 1991-04-22 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
JP3003968B2 (ja) * 1991-05-01 2000-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 割込み処理プログラム選択装置及び処理方法
US5321818A (en) * 1992-05-12 1994-06-14 Hughes Aircraft Company System for arbitrating for access on VME bus structures
JPH0721035A (ja) * 1993-07-02 1995-01-24 Mitsubishi Denki Eng Kk データ処理装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
飯塚、古谷、山口・共著、「マイクロコンピュータ基礎講座1 マイクロコンピュータアーキテクチャ」、株式会社オーム社・発行(昭和57年2月20日初版)、pp.66〜69
飯塚肇・著、「現代計算機方式論[▲I▼]−命令セットアーキテクチャ−」、株式会社オーム社・発行(昭和60年7月30日初版)、pp.148〜151

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020137871A (ja) * 2019-02-28 2020-09-03 株式会社ソフイア 遊技機

Also Published As

Publication number Publication date
US5628018A (en) 1997-05-06
DE69416485D1 (de) 1999-03-25
EP0652514A2 (en) 1995-05-10
EP0652514B1 (en) 1999-02-10
JPH07129413A (ja) 1995-05-19
DE69416485T2 (de) 1999-06-24
EP0652514A3 (en) 1995-07-12

Similar Documents

Publication Publication Date Title
JP3242508B2 (ja) マイクロコンピュータ
US5293500A (en) Parallel processing method and apparatus
US4399505A (en) External microcode operation in a multi-level microprocessor
US5706459A (en) Processor having a variable number of stages in a pipeline
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
US5961633A (en) Execution of data processing instructions
US6760835B1 (en) Instruction branch mispredict streaming
US5687381A (en) Microprocessor including an interrupt polling unit configured to poll external devices for interrupts using interrupt acknowledge bus transactions
US5522084A (en) Method and system for invalidating instructions utilizing validity and write delay flags in parallel processing apparatus
JPH0527971A (ja) 情報処理装置
US5434986A (en) Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
US20060095746A1 (en) Branch predictor, processor and branch prediction method
US5948093A (en) Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state
US6721878B1 (en) Low-latency interrupt handling during memory access delay periods in microprocessors
EP0374598B1 (en) Control store addressing from multiple sources
US6425047B1 (en) Process containing address decoders suited to improvements in clock speed
EP0573071A2 (en) A microprocessor
EP1177499A1 (en) Processor and method of executing instructions from several instruction sources
JPH0384632A (ja) データ処理装置
JPH08249175A (ja) スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置
US20040098564A1 (en) Status register update logic optimization
US7124281B1 (en) Processing system having sequential address indicator signals
JP3102399B2 (ja) データ処理装置及び方法
JP3147884B2 (ja) 記憶装置及び情報処理装置
JP4702004B2 (ja) マイクロコンピュータ

Legal Events

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

Free format text: PAYMENT UNTIL: 20081019

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091019

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091019

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20131019

Year of fee payment: 12

EXPY Cancellation because of completion of term