JPH04367034A - 割り込み制御装置 - Google Patents

割り込み制御装置

Info

Publication number
JPH04367034A
JPH04367034A JP14318791A JP14318791A JPH04367034A JP H04367034 A JPH04367034 A JP H04367034A JP 14318791 A JP14318791 A JP 14318791A JP 14318791 A JP14318791 A JP 14318791A JP H04367034 A JPH04367034 A JP H04367034A
Authority
JP
Japan
Prior art keywords
circuit
instruction
interrupt
interruption
stack
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
Application number
JP14318791A
Other languages
English (en)
Inventor
Tetsuo Kawada
河田 哲郎
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP14318791A priority Critical patent/JPH04367034A/ja
Publication of JPH04367034A publication Critical patent/JPH04367034A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタルコンピュータ
やマイクロプロセッサの割り込み制御装置に関するもの
である。
【0002】
【従来の技術】従来、ディジタルコンピュータやマイク
ロプロセッサにおいては、割り込み制御装置が割り込み
を受け付けると、中央演算処理装置(以下、CPUとい
う)において現在実行中の命令の完了直後に、命令実行
制御が割り込みアドレスに移されていた。命令実行制御
を割り込みアドレスに移すとき、割り込み処理終了後に
実行すべき命令のアドレス(以下、割り込みの戻りアド
レスという)はプログラムカウンタスタック(以下、P
Cスタックという)にプッシュされる。また、割り込み
処理終了後にはPCスタックから割り込みの戻りアドレ
スがプログラムカウンタ(以下、PCという)にポップ
される。
【0003】CPUにおける命令実行に関してPCスタ
ックのポップとプッシュを伴うものがある。その例とし
てCALL命令やRETURN命令がある。CALL命
令の実行においては、命令実行制御をCALL命令が示
すサブルーチンの先頭アドレスに移すためサブルーチン
処理終了後に実行すべき命令のアドレス(以下、サブル
ーチンの戻りアドレスという)をPCスタックにプッシ
ュする。RETURN命令では、反対にサブルーチンの
戻りアドレスをPCスタックからPCへポップする。
【0004】近年のディジタルコンピュータやマイクロ
プロセッサでは命令のフェッチから実行までが高度にパ
イプライン化されている。この中で特にRISC(Re
ducedInstruction  Set  Pr
ocessor) プロセッサでは1命令当たりの命令
実行サイクルはほぼ1に近づいている。この結果、PC
スタックの処理を伴うこれらの命令がフェッチされてか
ら命令が実行されPCスタックのポップとプッシュが起
こるまでには、1クロックサイクルから数クロックサイ
クルのずれが存在する。一方割り込み処理に伴うPCス
タックのポップとプッシュは、それぞれ割り込みアドレ
スのフェッチあるいは割り込みの戻りアドレスのフェッ
チと同一のサイクルで行われる。そこで、PCスタック
の処理を伴う命令の直後あるいは数クロックサイクル以
内に割り込みが受け付けられた場合、PCスタックのプ
ッシュ及びポップに関して不都合が生じる。この具体例
を以下に説明する。
【0005】図4及び図5は不都合が生じる例をタイミ
ングチャートにより図示したものである。図4において
、CPUはサイクル(n+1)でCALL命令に対する
命令アドレスを発し、命令レジスタはサイクル(n+2
)でCALL命令を取り込んでいる。CALL命令の実
行に伴いサイクル(n+3)でPCスタックへのプッシ
ュが起こる。ところが、サイクル(n+3)で割り込み
を受け付けた場合割り込みの戻りアドレスを同一サイク
ルでPCスタックへプッシュする必要があり、CALL
命令によるPCスタックへのプッシュと重なってしまう
。そこでこのような場合には、割り込み受け付けによる
PCスタックへの戻りアドレスのプッシュを1クロック
ずらす必要がある図5においては、CPUはサイクル(
n+2)でCALL命令に対する命令アドレス“3”を
発し、命令レジスタはサイクル(n+3)でCALL命
令を取り込んでいる。CALL命令の実行に伴いサイク
ル(n+4)でPCスタックへのプッシュが起こり、サ
ブルーチンからの戻りアドレスとしてアドレス“4”が
スタックされる。ところが、サイクル(n+3)で割り
込みを受け付けたためにサイクル(n+3)で割り込み
の戻りアドレス“A+1”がPCスタックへプッシュさ
れる。このように順序が逆になるため混乱が起こる。 すなわち、割り込みの戻りアドレスとして最後にPCス
タックにプッシュされたアドレス“4”がポップされて
用いられるために、CPUは割り込み処理終了後CAL
L命令により呼ばれたサブルーチンを実行することなく
アドレス“4”のCALL命令の次命令から実行を再開
してしまう。また、サイクル(n+3)でPCスタック
にプッシュされたアドレスはポップされることなくPC
スタックに残ってしまう。そこで、このような場合には
、割り込み受け付けによるPCスタックへの戻りアドレ
スのプッシュとサブルーチンアドレスAのPCスタック
へのプッシュの順を入れ換えて、割り込み処理終了後の
命令処理の順序が予定どうりに行なわれるように調整す
る必要がある。
【0006】上であげた2つの例はほんの一部分であっ
て、このように割り込みとの組み合せによって不都合を
起こす可能性を持つ命令は外にも多く考えられる。これ
らの命令は主にプログラムの実行制御に関するものであ
る。そこで、従来技術においては、割り込み制御のため
に図6に示すような回路構成が用いられていた。図6に
おいて、3はPCスタック、5は第2のマルチプレクサ
、6はPC、10は割り込み調整回路、11はPCスタ
ックの制御回路、13は第3のマルチプレクサ、14は
バッファ回路、17はインクリメンタである。
【0007】割り込み調整回路10はデコード回路から
入力される様々なデコード信号と割り込み受付信号とに
よりPCスタックにプッシュすべきアドレスの順番を調
整する。割り込み調整回路10は、次のサイクルでどこ
から入力されるアドレスをPCスタックにプッシュする
か、あるいはPCスタックをポップするかを示す信号を
制御回路11に出力する。制御回路11は割り込み調整
回路10からの入力によってPCスタックを直接制御す
る。制御回路11はPCスタックに対してPCスタック
をプッシュするように指示する信号とPCスタックをポ
ップするように指示する信号とを出力する。また、制御
回路11は第3のマルチプレクサ13に対して選択信号
を出力する。
【0008】バッファ回路14は、PCスタックにプッ
シュすべきアドレスを様々な回路から入力し要求される
期間保持しておく。バッファ回路14に入力されるアド
レスの例としてインクリメンタ17から入力されるアド
レス、割り込みアドレス、JUMP命令を実行した時の
ジャンプアドレス、CALL命令を実行した時のサブル
ーチンアドレスなどがある。第3のマルチプレクサ13
は、制御回路11から出力される選択信号によって、バ
ッファ回路14から出力される様々なアドレスを選択し
出力する。PCスタック3は、制御回路11からのプッ
シュ信号により第3のマルチプレクサ13から入力され
るアドレスをスタックにプッシュする。また、PCスタ
ック3は制御回路11からのポップ信号によりスタック
からアドレスをポップして出力する。第2のマルチプレ
クサ5は、PCスタック3から入力されるアドレスやそ
の他のアドレスを入力し、選択信号の値により1つを選
択して出力する。PC6は第2のマルチプレクサ5を介
して入力される命令アドレスを入力する。インクリメン
タ17はPCから値を入力し1を加えて出力する。
【0009】
【発明が解決しようとする課題】以上で説明した実行中
のあらゆる種類の命令の完了直後に割り込みを受け付け
るという方法では、PCスタックのプッシュあるいはポ
ップを伴う命令の実行と割り込みの受付が重なったり、
連続的に起こったりすることによる不都合を回避する必
要がある。この不都合を回避するために図6の割り込み
調整回路10、バッファ回路14等を付加する必要があ
り、また、PCスタックにプッシュすべきアドレスの候
補の数が増えるために、マルチプレクサ13やバッファ
回路14が大型化し、特にパイプラインの段数が多い場
合バッファ回路14におけるバッファの段数も多くする
必要があるために大型化するという問題がある。
【0010】さらに、バッファ回路14の出力のタイミ
ング、制御回路11からのプッシュ信号及びポップ信号
のタイミング等を図る必要があるために回路が複雑にな
るという問題もある。従って、本発明の目的は、PCス
タックのプッシュあるいはポップを伴う命令の実行と割
り込みの受付が重なったり、連続的に起こったりするこ
とによる不都合を回避する設計の容易な、小型の割り込
み制御装置を提供することである。
【0011】
【課題を解決するための手段】前記の目的を達成するた
めに、本発明は、割り込み受け付けを遅らせる手段と、
割り込み受け付けと同時にデコード中のプッシュ又はポ
ップを伴う命令の実行を割り込み処理終了後に実行する
手段とを備える。
【0012】
【実施例】以下、本発明の割り込み制御装置の実施例を
図面に基づいて詳細に説明する。図1は、本発明による
割り込み制御装置のブロック図である。図1において、
1は割り込み遅延回路、2はPCスタックの制御回路、
3はPCスタック、4は第1のマルチプレクサ、5は第
2のマルチプレクサ、6はPC、7はインクリメンタ/
デクリメンタ、8はデコード回路である。
【0013】割り込み遅延回路1は、デコード回路8か
ら入力される様々なデコード信号と割り込み要求信号と
を入力し、割り込み受付信号を生成して出力する。制御
回路2は、デコード回路8から入力される様々なデコー
ド信号と割り込み受付信号を入力して、PCスタック3
、第1のマルチプレクサ4及び第2のマルチプレクサ5
の制御信号をつくる。PCスタック3は、制御回路2か
ら入力されるプッシュ信号とポップ信号の値により入力
されるアドレスをスタックにプッシュしたり、スタック
上のデータをポップしたりする。
【0014】第1のマルチプレクサ4は、ループアドレ
ス、CALLアドレス(サブルーチンアドレス)、イン
クリメンタ/デクリメンタ7の出力を入力し、1つを選
択して出力する。第2のマルチプレクサ5は、PCスタ
ック3の出力やその他のアドレスを入力し、1つを選択
して出力する。PC6は、第2のマルチプレクサのから
値を入力し、1サイクル値を保持する。インクリメンタ
/デクリメンタ7は、PC6から値を入力し、デコード
回路8の出力するインクリメント/デクリメント選択信
号により値を1増やすか、又は1減らすかして出力する
。デコード回路8は、命令レジスタの内容を入力し、命
令をデコードしてJUMP命令、CALL命令等様々な
デコード信号を出力する。また、デコード回路8は割り
込み遅延回路1から割り込み受付信号を入力する。
【0015】割り込み遅延回路1における割り込み遅延
の方法について説明する。例えば、図4のように、CA
LL命令のデコードの1サイクル後に割り込みを受け付
けることによりPCスタックへのプッシュが重なるとい
う不都合を解消するためには、CALL命令のデコード
の1サイクル後に割り込みを受け付けを禁止する。図2
は本発明の割り込み制御装置に用いられる割り込み遅延
回路1の内部回路図である。図2において1a、1b、
1c、1dはそれぞれ第1ラッチ回路、第2のラッチ回
路、第3のラッチ回路、第4のラッチ回路である。1e
はOR回路、1fはAND回路である。ラッチ回路1a
〜1dは入力信号を1クロックサイクル遅らせて出力す
る。NOR回路1eはラッチ回路1、ラッチ回路2、ラ
ッチ回路4等の入力信号の論理NORをとって出力する
。AND回路1fはNOR回路1eと割り込み要求信号
の論理ANDをとって出力する。従って、デコード回路
から入力されるCALL命令のデコード信号は、ラッチ
回路1aにより1クロックサイクル遅らされ、AND回
路1fによりCALL命令実行中の割り込み受付信号を
禁止する。
【0016】このように、命令のデコード信号より1ク
ロックサイクル後の実行サイクル中に割り込み受付信号
を禁止して割り込みを1クロックサイクル遅らせるため
に、ラッチ回路1aやラッチ回路1bなどの出力信号が
用いられる。また、命令のデコード信号より2クロック
サイクル後に割り込み受付信号を禁止するためには第3
のラッチ回路1cと第4のラッチ回路1dのように2段
に接続されたラッチ回路の出力信号を用いる。
【0017】次に、割り込み受け付けと同時にデコード
中の命令の実行を割り込み処理終了後に実行する機能に
ついて説明する。この機能はデコード回路において実現
される。図3は本発明の割り込み制御装置に用いられる
デコード回路8の内部回路図を示す。図3において、8
aはプリデコード回路、8bはインバータ回路、8c〜
8eはAND回路、8fはOR回路、8gはAND回路
、8hはラッチ回路である。
【0018】プリデコード回路8aは、通常のデコード
回路であって、命令レジスタの内容を入力し、各種の命
令をデコードして出力する。インバータ回路8bは割り
込み受付信号を入力し、値を反転して出力する。AND
回路8c、8d、8eはプリデコード回路の出力とイン
バータ8bの出力の論理ANDをとって出力する。OR
回路8fはAND回路8c〜8eに入力されるプリデコ
ード回路8aの出力すべての論理ORをとって出力する
。AND回路8gは割り込み受付信号とOR回路8fの
出力を入力し、論理ANDをとって出力する。ラッチ回
路8hはAND回路8gの出力を入力し、1クロックサ
イクル遅らせて出力する。
【0019】図3における回路の目的は、プリデコード
回路8aにおいてデコードされた各種の命令のうち一部
の命令割り込み受け付け時に無効化し、割り込みを先に
行ないその後にPCスタックのプッシュとポップを伴う
命令を実行することである。これらの命令には、例えば
、CALL命令やRETURN命令が該当する。この機
能により図5に示したように割り込み受付の後に命令を
実行することによる不都合を解消することができる。 またAND回路8gとラッチ回路8hは、割り込み処理
終了の後に割り込み受け付け時に無効化された命令から
再実行するためのものである。AND回路8gはインク
リメンタ/デクリメンタ7の選択信号となり、出力が1
のときデクリメンタを選択する。従って、割り込みによ
りPCスタックにプッシュされる命令アドレスは割り込
み受け付け時に無効化された命令そのもののアドレスで
ある。ラッチ回路8hは割り込み受け付け時にいずれか
の命令が無効化された場合、その次命令も同様に無効化
するためのものである。ラッチ回路8hの出力が1のと
き、プリデコード回路8aは出力すべてを0にする。
【0020】従って、図4及び図5のタイミングチャー
トはそれぞれ本発明の実施例により図7及び図8のよう
になる。
【0021】
【発明の効果】以上説明したように本発明によれば、従
来、実行中のあらゆる種類の命令の完了直後に割り込み
を受け付けるという方法を用いたため大型化していたP
Cスタック周辺の回路を、割り込み受け付けを遅らせる
構成と割り込み受け付けと同時にデコード中の命令の実
行を割り込み処理終了後に実行する構成とを備えること
により小型化できるという利点がある。
【0022】すなわち、本願発明の実施例を示す図1と
従来の実施例を示す図6とを比較すると、図1は、図2
に示す割り込み遅延回路、図3に示すデコード回路及び
インクリメンタ/デクリメンタ7を備えるのに対し、図
6は、割り込み調整回路10、バッファ回路14、及び
第3のマルチプレクサ13を備えている。このうち、特
に、バッファ回路14と第3のマルチプレクサ13は、
アドレス分のビット幅をもつため大型にならざらぬをえ
ない。従って、本願発明では従来例のバッファ回路及び
第3のマルチプレクサに相当するものを有しないので、
小型化することができる。
【0023】また、回路構成が簡単になるため設計も容
易になる利点もある。更に、回路が小型で、かつ、簡単
になるため生産性が向上するという利点がある。
【図面の簡単な説明】
【図1】本発明による割り込み制御装置のブロック図で
ある。
【図2】本発明の割り込み制御装置に用いられる割り込
み遅延回路の内部回路図である。
【図3】本発明の割り込み制御装置に用いられるデコー
ド回路の内部回路図である。
【図4】従来技術においてPCスタックへのプッシュが
重なる場合を示すタイミングチャートである。
【図5】従来技術においてPCスタックへのプッシュに
よる混乱を示すタイミングチャートである。
【図6】従来技術における割り込み制御回路のブロック
図である。
【図7】本発明の実施例による割り込み遅延のタイミン
グチャートである。
【図8】本発明の実施例による命令無効化のタイミング
チャートである。
【符号の説明】
1  割り込み遅延回路、 2  PCスタックの制御回路、 3  PCスタック、 4  第1のマルチプレクサ、 5  第2のマルチプレクサ、 6  PC、 7  インクリメンタ/デクリメンタ、8  デコード
回路、 10  割り込み調整回路、 11  PCスタックの制御回路、 13  第3のマルチプレクサ、 14  バッファ回路、 17  インクリメンタ、 1a  第1のラッチ回路、 1b  第2のラッチ回路、 1c  第3のラッチ回路、 1d  第4のラッチ回路、 1e  NOR回路、 1f  AND回路、 8a  プリデコード回路、 8b  インバータ回路、 8c〜8e  AND回路、 8f  OR回路、 8g  AND回路、 8h  ラッチ回路。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  割り込み受け付けを遅らせる手段と、
    割り込み受け付けと同時にデコード中のプッシュ又はポ
    ップを伴う命令の実行を割り込み処理終了後に実行する
    手段とを備えることを特徴とする割り込み制御装置。
JP14318791A 1991-06-14 1991-06-14 割り込み制御装置 Pending JPH04367034A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14318791A JPH04367034A (ja) 1991-06-14 1991-06-14 割り込み制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14318791A JPH04367034A (ja) 1991-06-14 1991-06-14 割り込み制御装置

Publications (1)

Publication Number Publication Date
JPH04367034A true JPH04367034A (ja) 1992-12-18

Family

ID=15332902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14318791A Pending JPH04367034A (ja) 1991-06-14 1991-06-14 割り込み制御装置

Country Status (1)

Country Link
JP (1) JPH04367034A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191313B2 (en) 2001-08-28 2007-03-13 Sony Corporation Microprocessor
US7237216B2 (en) * 2003-02-21 2007-06-26 Infineon Technologies Ag Clock gating approach to accommodate infrequent additional processing latencies

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191313B2 (en) 2001-08-28 2007-03-13 Sony Corporation Microprocessor
US7237216B2 (en) * 2003-02-21 2007-06-26 Infineon Technologies Ag Clock gating approach to accommodate infrequent additional processing latencies

Similar Documents

Publication Publication Date Title
KR100563012B1 (ko) 처리기를보조처리기에인터페이스하는방법및그장치
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5949996A (en) Processor having a variable number of stages in a pipeline
US6311234B1 (en) Direct memory access controller with split channel transfer capability and FIFO buffering
US5440747A (en) Data processor with control logic for storing operation mode status and associated method
JPH11219302A (ja) デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置
JPS6298434A (ja) デ−タ処理システム
NZ201809A (en) Microprocessor
JPH1083305A (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US5649174A (en) Microprocessor with instruction-cycle versus clock-frequency mode selection
JPH0250735A (ja) マイクロプロセッサの冗長構成による機能監視方式
RU2450329C2 (ru) Эффективный механизм сохранения адреса возврата из прерывания
US5499348A (en) Digital processor capable of concurrently executing external memory access and internal instructions
JP2754825B2 (ja) マイクロプロセッサ
US5586336A (en) Microcomputer capable of monitoring internal resources from external
JPH04367034A (ja) 割り込み制御装置
JPH04215129A (ja) 連続指令実行方法及び装置
JP2694948B2 (ja) マイクロプログラム処理装置
JP3602801B2 (ja) メモリデータアクセス構造およびその方法
JPS6049337B2 (ja) パイプライン制御方式
JPH0418648A (ja) キャッシュを有するデータ処理装置及びそのデータアクセス方法
US8255672B2 (en) Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit
JPH0377137A (ja) 情報処理装置
JP2636074B2 (ja) マイクロプロセッサ
JP5012562B2 (ja) マイクロコンピュータ