JPH05143362A - 割込み処理方式 - Google Patents

割込み処理方式

Info

Publication number
JPH05143362A
JPH05143362A JP3301471A JP30147191A JPH05143362A JP H05143362 A JPH05143362 A JP H05143362A JP 3301471 A JP3301471 A JP 3301471A JP 30147191 A JP30147191 A JP 30147191A JP H05143362 A JPH05143362 A JP H05143362A
Authority
JP
Japan
Prior art keywords
branch
instruction
address
interrupt
delay slot
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.)
Granted
Application number
JP3301471A
Other languages
English (en)
Other versions
JP3017866B2 (ja
Inventor
Yoshiyuki Kato
義幸 加藤
Tei Ishikawa
禎 石川
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3301471A priority Critical patent/JP3017866B2/ja
Publication of JPH05143362A publication Critical patent/JPH05143362A/ja
Application granted granted Critical
Publication of JP3017866B2 publication Critical patent/JP3017866B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】分岐命令の遅延スロットからの割込みを可能と
することで、遅延スロットに置くことのできる命令の制
約を無くし、遅延スロットを有効に活用する。 【構成】分岐命令のDステージで生成された分岐アドレ
ス15をレジスタ23に一時保持した後、レジスタ26
に保持する。分岐時には分岐信号14を1サイクル遅ら
せた信号16が出力される。レジスタ23,26,信号
16の状態はWステージまで命令に同期してパイプライ
ン動作させられ、レジスタ32,28,34に移され
る。割込み発生で割込み信号19が真となると、レジス
タ32,28,34の内容がレジスタ29,30,35
に移される。割込み処理からの復帰時にはレジスタ35
の状態により遅延スロット内への復帰であるかが調べら
れ、そうであれば、レジスタ30の示すアドレスへの分
岐命令を実行し、次にその分岐命令の遅延スロットでレ
ジスタ29の示すアドレスへの分岐命令を実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、遅延スロットを持つ
分岐命令を処理するパイプライン方式の計算機における
割込み処理方式に関する。
【0002】
【従来の技術】パイプライン方式の計算機において、分
岐命令をパイプライン処理する場合、パイプラインの最
初のステージで分岐を行わない限り、分岐実行前に後続
の命令がパイプラインに取込まれてしまい、パイプライ
ンにハザードが発生する。
【0003】このパイプラインハザードを少なくする方
法として、分岐命令の後続を遅延スロットと呼ばれる命
令フィールドとし、この遅延スロットに置かれた命令に
ついては先行する分岐命令による分岐の有無に無関係に
実行することが知られている。この方法では、分岐に無
関係に実行してもよい命令だけを遅延スロットに置くこ
とになる。このため、分岐と無関係な命令が無い場合に
は、NOP(ノーオペレーション)命令が指定される。
【0004】以上の分岐命令の遅延スロットの例を、パ
イプラインが、命令フェッチステージ(Fステージ)
と、命令デコード、分岐処理のステージ(Dステージ)
と、演算ステージ(Eステージ)と、ライトバック(結
果の書込み)ステージ(Wステージ)との4段構成で、
遅延スロットが1段(分岐処理が2段目のDステージで
行われるため)の場合について、図4に示す。
【0005】図4に示すように、従来は分岐命令(B)
と遅延スロット(S)の間に割込みが入ることが禁止さ
れている。また、図4の例と異なって複数段の遅延スロ
ットを持つ場合には、各遅延スロット間に割込みが入る
ことも禁止されている。これは、遅延スロットからの割
込み発生により先行する分岐命令の分岐先アドレスが失
われ、遅延スロットに戻った場合に、分岐先の命令が実
行できなくなるためである。
【0006】このため従来は、遅延スロットには割込み
を発生する可能性がある命令、例えばロード命令、スト
ア命令等を置かず、また分岐命令と遅延スロットを仮想
アドレスのページ境界にまたがって置かず、更に分岐命
令と遅延スロットの間に非同期割込みは入れない等の処
理を行っていた。なお、ロード命令、ストア命令等で割
込みを発生する可能性があるのは、オペランドアドレス
生成でアドレス変換割込みを起こす可能性があるためで
ある。
【0007】
【発明が解決しようとする課題】上記したように従来
は、遅延スロットからの割込み発生により先行する分岐
命令の分岐先アドレスが失われ、遅延スロットに戻った
場合に、分岐先の命令が実行できなくなるため、これを
防止する目的で、分岐命令の遅延スロットにロード・ス
トア命令等の割込みを発生させる可能性のある命令を置
くことができなかった。このため、遅延スロットに置く
ことのできる命令が限られ、遅延スロットを有効に活用
することができないという問題があった。また同様の理
由により、遅延スロットを仮想アドレスのページ境界に
置くことができないため、ページ境界付近で分岐命令が
多用された場合に性能低下を招くという問題もあった。
【0008】この発明は上記事情に鑑みてなされたもの
でその目的は、遅延スロットを持った分岐命令におい
て、遅延スロット内からの割込みと遅延スロットへの割
込み復帰を可能とすることにより、遅延スロットに置く
ことのできる命令の制約を無くして遅延スロットの有効
活用を図り、命令を高速に処理できる割込み処理方式を
提供することにある。
【0009】
【課題を解決するための手段】この発明は、割込み処理
からの戻り先のアドレスを保持する第1のアドレス保持
手段と、割込み処理からの戻り先が分岐命令の遅延スロ
ットである場合には、この遅延スロットに先行する分岐
命令の分岐先アドレスを保持する第2のアドレス保持手
段と、割込み処理からの戻り先が遅延スロット内である
か否かを示す識別情報を保持する識別情報保持手段とを
備え、割込み処理から復帰する際には、識別情報保持手
段に保持されている識別情報から戻り先が遅延スロット
内であるか否かを判別し、遅延スロット内であれば第1
のアドレス保持手段に保持されている戻り先アドレスへ
分岐して、その戻り先の命令を実行した後、第2のアド
レス保持手段に保持されている分岐先アドレスに分岐
し、遅延スロット内でなければ第1のアドレス保持手段
に保持されている戻り先アドレスだけに分岐するように
したことを特徴とするものである。
【0010】
【作用】上記の構成においては、割込み処理を開始する
前に、割込み処理からの戻り先のアドレスが第1の保持
手段に、割込みが分岐命令の遅延スロットで起こったか
否か、即ち割込み処理からの戻り先が遅延スロット内で
あるか否かを示す識別情報が識別情報保持手段に、それ
ぞれ保持される。また、割込みが分岐命令の遅延スロッ
トで起こった場合には、この遅延スロットに先行する分
岐命令の分岐先アドレスが第2の保持手段に保持され
る。そして、割込み処理から復帰する際には、まず識別
情報保持手段に保持されている識別情報をもとに、戻り
先が遅延スロット内であるか否かが判別される。
【0011】もし、戻り先が遅延スロット内であれば、
第1のアドレス保持手段に保持されている戻り先アドレ
スの命令へ分岐し、その戻り先の命令を実行した後に、
第2のアドレス保持手段に保持されている分岐先アドレ
スの命令に分岐する。このように、割込みからの戻り先
が分岐命令の遅延スロットであるならば、遅延スロット
内での命令を実行後に、先行していた分岐命令の分岐先
へ分岐することができる。
【0012】これに対し、戻り先が遅延スロット内でな
ければ、第1のアドレス保持手段に保持されている戻り
先アドレスの命令への分岐だけが行われ、その命令から
始まる命令列が実行される。
【0013】
【実施例】図1はこの発明を適用するパイプライン方式
の計算機の一実施例を示す要部のブロック構成図であ
る。なお、本実施例では、パイプラインを、Fステー
ジ、Dステージ、EステージおよびWステージの4段構
成とし、Dステージで分岐処理を行うものとする。ま
た、遅延スロットの段数は、Dステージで分岐処理を行
うことから、1段であるものとする。
【0014】図1において、10は各種プログラム、デ
ータ等を格納するためのメモリ、11はメモリ10に対
するアクセス制御等を司るメモリ制御装置である。この
メモリ制御装置11は、分岐要求または割込み要求が無
い限り、メモリアドレスをインクリメントしながらメモ
リ10から順番に命令を取出し、命令デコード装置12
に供給する。またメモリ制御装置11は、分岐要求また
は割込み要求があった場合には、分岐アドレスまたは割
込みアドレスで示されるメモリ番地から命令の取出しを
開始する。
【0015】12はメモリ制御装置11から供給される
命令のデコードを司る命令デコード装置、13は分岐ア
ドレス生成装置である。この分岐アドレス生成装置13
は、命令デコード装置12によってデコードされた分岐
命令から、分岐成立時に真となる分岐信号14と分岐ア
ドレス15とを生成し出力する。分岐アドレス生成装置
13はまた、分岐信号14より1サイクル遅れて真とな
る制御信号16をも生成するようになっている。制御信
号16は、現在Dステージにある命令が遅延スロット内
の命令(分岐命令の次の命令)であることを示すもの
で、後述するDステージのロケーションレジスタ26へ
の分岐先アドレスの取込みを制御するのに用いられる。
【0016】17は割込み発生を検出する割込み検出装
置である。この割込み検出装置17は、割込み検出時
に、割込みアドレス18と割込み信号19を生成する。
割込み検出装置17はまた、割込み信号19を1サイク
ル遅らせた制御信号20をも生成する。この制御信号2
0は、上記の制御信号16と同様に、Dステージのロケ
ーションレジスタ26への分岐先アドレス(割込みアド
レス)の取込みを制御するのに用いられる。
【0017】21は分岐アドレス生成装置13からの分
岐信号14と分岐アドレス生成装置13からの割込み信
号19とをOR(オア)し、そのOR信号を分岐要求と
してメモリ制御装置11に出力するOR回路、22はセ
レクタである。セレクタ22は、分岐アドレス生成装置
13からの分岐アドレス15または割込み検出装置17
からの割込みアドレス18のいずれか一方を割込み信号
19に応じて選択し、分岐先アドレスとしてメモリ制御
装置11に出力する。
【0018】23はセレクタ22によってメモリ制御装
置11に選択出力された分岐先アドレスを保持するため
のアドレスレジスタ(B−ADRS)、24は分岐アド
レス生成装置13からの制御信号16と割込み検出装置
17からの制御信号20とをORするOR回路、25は
セレクタである。セレクタ25は、後述するロケーショ
ンレジスタ26の示す現在の命令ロケーションをインク
リメントした次の命令ロケーションまたはアドレスレジ
スタ23の出力(分岐先アドレス)のいずれか一方をO
R回路24の出力信号に応じて選択する。
【0019】26はセレクタ25の出力をDステージの
命令ロケーションとして保持するためのロケーションレ
ジスタ(D−LOC)、27はロケーションレジスタ2
6の出力をEステージの命令ロケーションとして保持す
るためのロケーションレジスタ(E−LOC)、28は
ロケーションレジスタ27の出力をWステージの命令ロ
ケーションとして保持するためのロケーションレジスタ
(W−LOC)である。
【0020】29は後述するアドレスレジスタ(B−A
DRS2)32の示す分岐先アドレスを割込み検出装置
17からの割込み信号19に応じて保持するためのアド
レスレジスタ(B−ADRS3)である。割込み処理か
らの戻り先が遅延スロット内である場合、このレジスタ
29には、遅延スロットの命令の実行後に分岐しなけれ
ばならないアドレス(遅延スロットに先行する分岐命令
の分岐先アドレス)が保持されるようになっている。3
0はロケーションレジスタ28の出力を割込み処理から
の戻り先アドレスとして上記割込み信号19に応じて保
持するためのアドレスレジスタ(RTN−ADRS)で
ある。
【0021】31はアドレスレジスタ(B−ADRS)
23の内容を1サイクル遅れて保持するためのアドレス
レジスタ(B−ADRS1)、32はアドレスレジスタ
(B−ADRS1)31の内容を1サイクル遅れて保持
するためのアドレスレジスタ(B−ADRS3)であ
る。
【0022】33は制御信号16の状態を保持するため
のレジスタ(E−S)であり、Eステージの命令が分岐
命令の遅延スロットであるか否かを示す。34はレジス
タ(E−S)33の内容を1サイクル遅れて保持するた
めのレジスタ(W−S)であり、Wステージの命令が分
岐命令の遅延スロットであるか否かを示す。35はレジ
スタ(W−S)34の内容を割込み検出装置17からの
割込み信号19に応じて保持するためのレジスタ(R−
S)であり、割込み処理からの戻り先が遅延スロットで
あるか否かを示す。
【0023】次に、図1の構成の動作を、分岐命令の遅
延スロット内で割込みが発生した場合を例に、図2のタ
イミングチャートを参照して説明する。図2のタイミン
グチャートは、分岐命令Bの遅延スロットで実行される
ロード命令Lのオペランドアドレスの生成でアドレス変
換割込みが発生した場合のパイプラインの動きを示した
ものである。図中、N1は分岐命令Bの指定する分岐先
命令、N2,N3は分岐先命令N1の後続命令、I1,
I2,I3…は、ロード命令Lで発生した割込み処理の
命令である。なお本実施例では、Dステージでオペラン
ドアドレスを生成し、Eステージでアドレス変換割込み
の検出(割込み検出装置17による割込みの判定)を行
い、Wステージで割込み処理を行うものとする。
【0024】命令分岐または割込みが無い場合、メモリ
制御装置11はメモリアドレスをインクリメントしなが
らメモリ10から命令を取出し、命令デコード装置12
へ供給する。この結果、図2の例のようにまず分岐命令
Bが、続いて分岐命令Bの遅延スロットに置かれるロー
ド命令Lが、メモリ10から順に取出されて(サイクル
T1,T2のFステージ)、命令デコード装置12に供
給されたものとする。
【0025】命令デコード装置12は、メモリ制御装置
11から供給された命令のデコード処理を行う。これに
より、分岐命令Bの場合には、分岐アドレス生成装置1
3において分岐成立/不成立の判定が行われ、分岐成立
時には有効な分岐信号14と分岐先命令N1の格納先を
示す分岐アドレス15とが分岐アドレス生成装置13に
より生成出力される(サイクルT2のDステージ)。ま
た、次のサイクル(T3)には、分岐信号14を1サイ
クル送らせた信号である制御信号16が分岐アドレス生
成装置13から出力される。
【0026】分岐アドレス生成装置13により生成され
た分岐アドレス15はセレクタ22の0側入力に供給さ
れる。セレクタ22は、割込み検出装置17からの割込
み信号19が真でない限りは、その0側入力である分岐
アドレス15を選択し、分岐先アドレスとしてメモリ制
御装置11に出力する。このとき、OR回路21の出力
は、分岐アドレス生成装置13からの有効な分岐信号1
4により真となり、メモリ制御装置11に対して分岐要
求が入る。
【0027】これによりメモリ制御装置11は、分岐命
令BのDステージ(サイクルT2)で生成された分岐ア
ドレス15の指定する分岐先命令N1をメモリ10から
取出して(サイクルT3のFステージ)、命令デコード
装置12に供給する。
【0028】さて、サイクルT2でメモリ10から(分
岐命令Bの)遅延スロット内のロード命令Lがフェッチ
されると、次のサイクルT3(Dステージ)でオペラン
ドアドレスの生成が行われる。そして、更に次のサイク
ルT4(Eステージ)で、割込み検出装置17によりア
ドレス変換割込みの検出が行われる。
【0029】もし、アドレス変換割込みが発生して、そ
の旨がサイクルT4(Eステージ)で検出された場合に
は、次のサイクルT5(Wステージ)から割込み処理が
開始され、同サイクルT5(Wステージ)において有効
な割込み信号19と割込み処理の先頭命令I1の格納先
を示す割込みアドレス18とが割込み検出装置17によ
り生成出力される。また、次のサイクル(T6)には、
割込み信号19を1サイクル送らせた信号である制御信
号20が分岐アドレス生成装置13から出力される。
【0030】割込み検出装置17により生成された割込
みアドレス18はセレクタ22の1側入力に供給され
る。セレクタ22は割込み検出装置17によって割込み
発生が検出された場合には、その1側入力である割込み
アドレス18を、割込み検出装置17からの有効な割込
み信号19に応じて選択し、分岐先アドレスとしてメモ
リ制御装置11に出力する。このとき、OR回路21の
出力は、割込み検出装置17からの有効な割込み信号1
9により真となり、メモリ制御装置11に対して分岐要
求が入る。
【0031】これによりメモリ制御装置11は、ロード
命令LのWステージ(サイクルT5)で生成された割込
みアドレス18の指定する割込み処理命令I1から始ま
る割込み処理命令列I1,I2,I3…を、次のサイク
ルT6以降、メモリ10から順に取出して命令デコード
装置12に供給する。この結果、割込み処理が開始され
る。
【0032】さて本実施例では、割込みを発生した命令
のロケーションを知るために、以下に述べるようにロケ
ーションの制御を行っている。また、分岐アドレスは前
記したようにDステージで決定されるため、このDステ
ージでロケーションの制御も行っている。
【0033】まず、セレクタ22により選択された分岐
先アドレス(分岐アドレスまたは割込みアドレス)はア
ドレスレジスタ(B−ADRS)23に保持され、分岐
要求によりメモリ制御装置11に渡されるサイクルより
1サイクル遅延される。このアドレスレジスタ23に保
持された分岐先アドレスは、セレクタ25の1側入力に
供給される。セレクタ25の0側入力には、ロケーショ
ンレジスタ(D−LOC)26の示す現在のDステージ
の命令ロケーションをインクリメントして得られる次の
命令ロケーション(例えば、現在のDステージが分岐命
令Bであれば、同命令Bの遅延スロット内のロード命令
Lのロケーション)が供給される。
【0034】セレクタ25は、OR回路24の出力に応
じて選択動作を行い、OR回路24の出力が偽であれば
0側(次命令ロケーション)を、真であれば1側(分岐
先アドレス)を選択する。OR回路24の出力は、分岐
アドレス生成装置13からの制御信号16および割込み
検出装置17からの制御信号20がいずれも偽である状
態では、即ち分岐も割込みも発生しない状態では偽であ
り、この場合には現在のDステージの命令ロケーション
の次の命令ロケーションが選択される。これに対して、
分岐または割込みが発生した場合には、制御信号16ま
たは20が真となってOR回路24の出力が真となり、
アドレスレジスタ(B−ADRS)23に保持されてい
る分岐先アドレスが選択される。このセレクタ25によ
って選択された次命令ロケーションまたは分岐先アドレ
スはロケーションレジスタ(D−LOC)26に保持さ
れる。
【0035】本実施例では、分岐アドレスはDステージ
で決定され、また分岐命令の遅延スロットは1段であ
る。このため、Dステージの命令ロケーションは、分岐
命令の2サイクル後に(即ち遅延スロットの次のサイク
ルで)分岐先のロケーションに変わることになる。そこ
で本実施例では、前記したようにセレクタ22からメモ
リ制御装置11に選択出力される分岐先アドレスを、ア
ドレスレジスタ23に保持することで1サイクル遅延し
てセレクタ25の1側に供給すると共に、分岐信号1
4,割込み信号19をそれぞれ1サイクル遅らせた制御
信号16,20をOR回路24に入力し、ロケーション
レジスタ26の内容が、分岐命令の2サイクル後に正し
く分岐先のロケーションに更新されるようにしている。
【0036】以上の結果、ロケーションレジスタ(D−
LOC)26は、サイクルT2で分岐命令Bのロケーシ
ョンを示すものとすると、次のサイクルT3では分岐命
令Bの命令ロケーションをインクリメントして得られる
次の命令ロケーション、即ち分岐命令Bの遅延スロット
のロード命令Lのロケーションを示し、更に次のサイク
ルT4では分岐命令BのDステージで生成された分岐先
命令N1への分岐先アドレス(分岐アドレス15)を示
すように更新される。
【0037】さて、(割込み検出装置17における)割
込みの検出は前記したようにWステージで行われる。こ
のため、Wステージで命令ロケーションが必要となる。
そこで本実施例では、ロケーションレジスタ(D−LO
C)26の出力側に、ロケーションレジスタ(E−LO
C)27およびロケーションレジスタ(W−LOC)2
8を多段に接続し、命令に同期してロケーションもWス
テージまでパイプライン動作させるようにしている。こ
れによりロケーションレジスタ(D−LOC)26の内
容は2サイクル遅れてロケーションレジスタ(W−LO
C)28に移動し、同レジスタ(W−LOC)28は、
サイクルT4で分岐命令Bのロケーションを、次のサイ
クルT5でロード命令Lのロケーションを、更に次のサ
イクルT6で分岐先命令N1のロケーションを、それぞ
れ示すことになる。
【0038】また本実施例では、割込みが発生した場合
に、その割込みを起こした命令が遅延スロット内である
か否か、したがって割込み処理からの戻り先が遅延スロ
ット内であるか否かを識別するために、分岐アドレス生
成装置13から出力される制御信号16(分岐信号14
を1サイクル遅らせた信号)の状態を保持する2段接続
構成のレジスタ(E−S)33並びにレジスタ(W−
S)34を設け、制御信号16もWステージ(割込み検
出時)まで命令に同期してパイプライン動作させるよう
にしている。
【0039】更に本実施例では、アドレスレジスタ(B
−ADRS)23の出力側に、2段接続構成のアドレス
レジスタ(B−ADRS1)31並びにアドレスレジス
タ(B−ADRS2)32を設け、分岐先アドレスもW
ステージまで命令に同期してパイプライン動作させて割
込み検出時まで保持するようにしている。
【0040】さて、前記したように、分岐命令BのDス
テージ(サイクルT2)で分岐アドレス生成装置13か
ら分岐信号14と分岐先の命令N1を示す分岐アドレス
15とが出力されると、次のサイクルT3で、分岐信号
14を1サイクル遅らせた制御信号16が出力される。
この制御信号16の状態は、パイプラインサイクルに同
期してレジスタ(E−S)33に保持される。同様に、
レジスタ(E−S)33の出力は、パイプラインサイク
ルに同期して次段のレジスタ(W−S)34に保持され
る。したがって、サイクルT4においてレジスタ(E−
S)33の内容が“1”となり、次のサイクルT5にお
いてレジスタ(W−S)34の内容が“1”となる。
【0041】また、上記の分岐先の命令N1を示す分岐
アドレス15は、サイクルT3でアドレスレジスタ(B
−ADRS)23に保持される。このアドレスレジスタ
(B−ADRS)23の内容(分岐先命令N1への分岐
先アドレス)は、次のサイクルT4でアドレスレジスタ
(B−ADRS1)31に移され、更に次のサイクルT
5ではアドレスレジスタ(B−ADRS2)32に移さ
れる。
【0042】ここで、前記したように、ロード命令Lの
Dステージ(サイクルT3)でアドレス変換割込みが発
生し、同命令LのWステージ(サイクルT5)において
有効な割込み信号19と割込み処理の先頭命令I1の格
納先を示す割込みアドレス18とが割込み検出装置17
により生成出力されたものとする。この場合、割込みア
ドレス18がセレクタ22により分岐先アドレスとして
選択されてメモリ制御装置11に出力される。また、O
R回路21の出力が真となってメモリ制御装置11に分
岐要求が入る。この結果、サイクルT6以降、割込み処
理命令列I1,I2,I3…がメモリ10からフェッチ
されて、割込み処理が行われる。
【0043】また、サイクルT5(ロード命令LのWス
テージ)において割込み検出装置17から有効な割込み
信号19が出力されると、そのときのロケーションレジ
スタ(W−LOC)28の示す命令ロケーション、即ち
割込み(アドレス変換割込み)を起こしたWステージに
あるロード命令Lのロケーションが、割込み処理からの
戻り先命令のアドレスとして、サイクルT6においてア
ドレスレジスタ(RTN−ADRS)30に保持され
る。
【0044】同時に、サイクルT5でのレジスタ(W−
S)34の内容(“1”)がレジスタ(R−S)35に
保持される。このときのレジスタ(R−S)35の内容
(“1”)は、サイクルT3において分岐アドレス生成
装置13から出力された制御信号16の状態に一致して
おり、割込み処理からの戻り先が分岐命令(ここでは分
岐命令B)の遅延スロットであることを示す。
【0045】また、サイクルT5でのアドレスレジスタ
(B−ADRS2)32の内容(遅延スロットに先行し
ていた分岐命令Bの分岐先アドレス)が、サイクルT6
においてアドレスレジスタ(B−ADRS3)29に保
持される。
【0046】次に、上記の割込み処理から復帰する場合
の動作を、先の図2のタイミングチャートの他、図3の
タイミングチャートを参照して説明する。なお、図3に
おいて、B1は割込み処理から戻り先(ロード命令L)
への分岐命令、B2はロード命令Lの次に実行すべき命
令への分岐命令である。またLは割込み処理からの戻り
先命令(割込みを起こしたロード命令)、N1は図2に
示す分岐命令Bの分岐先であった命令である。
【0047】割込み処理から復帰する場合には、まずレ
ジスタ(R−S)35の内容に応じて分岐する分岐命令
が実行される。この分岐命令のDステージ(サイクルT
10とする)では、分岐アドレス生成装置13によりレ
ジスタ(R−S)35の内容が調べられ、本実施例のよ
うに遅延スロット内への復帰であることが示されている
ならば、サイクルT11以降、以下に述べる分岐命令B
1,B2が実行される。
【0048】まず、遅延スロット内への復帰の場合に
は、サイクルT11で、分岐先をアドレスレジスタ(R
TN−ADRS)30の示すアドレスとする分岐命令B
1、即ち分岐先を割込み処理からの戻り先(ロード命令
L)とする分岐命令B1がメモリ10からフェッチさ
れ、次のサイクルT12でその分岐命令B1のDステー
ジが行われる。またサイクルT12では、分岐先をアド
レスレジスタ(B−ADRS3)29の示すアドレスと
する(分岐命令B1の遅延スロットに置かれる)分岐命
令B2、即ち戻り先命令(遅延スロット内のロード命令
L)に先行する分岐命令(B)の分岐先命令(N1)へ
の分岐命令B2がフェッチされ、更に次のサイクルT1
3でその分岐命令B2のDステージが行われる。
【0049】上記分岐命令B1のDステージ(サイクル
T12)では、分岐アドレス生成装置13によりアドレ
スレジスタ(RTN−ADRS)30の保持内容が取出
され、同レジスタ(RTN−ADRS)30の示すアド
レス、即ち戻り先命令(ロード命令L)のアドレスが分
岐アドレス15として出力される。この分岐アドレス1
5はセレクタ22により選択されてメモリ制御装置11
に供給される。同時に、有効な分岐信号14が出力さ
れ、メモリ制御装置11に分岐要求が入る。
【0050】これによりメモリ制御装置11は、分岐命
令B1のDステージ(サイクルT12)で生成された分
岐アドレス15(戻り先のロード命令Lのアドレス)の
指定するロード命令Lをメモリ10から取出して(サイ
クルT13のFステージ)、命令デコード装置12に供
給する。この結果、次のサイクルT14から、分岐命令
Bの遅延スロット内で割込みを起こしたロード命令Lの
Dステージ以降の処理が行われる。
【0051】次に、上記分岐命令B2のDステージ(サ
イクルT13)では、分岐アドレス生成装置13により
アドレスレジスタ(B−ADRS3)29の保持内容が
取出され、同レジスタ(B−ADRS3)29の示すア
ドレス、即ち戻り先命令(ロード命令L)に先行する分
岐命令(B)の分岐先命令(N1)のアドレスが分岐ア
ドレス15として出力される。この分岐アドレス15は
セレクタ22により選択されてメモリ制御装置11に供
給される。同時に、有効な分岐信号14が出力され、メ
モリ制御装置11に分岐要求が入る。
【0052】これによりメモリ制御装置11は、分岐命
令B2のDステージ(サイクルT13)で生成された分
岐アドレス15(戻り先命令Lに先行する分岐命令Bの
分岐先アドレス)の指定する命令N1(遅延スロットに
先行していた分岐命令Bの分岐先の命令)をメモリ10
から取出して(サイクルT14のFステージ)、命令デ
コード装置12に供給する。この結果、次のサイクルT
15から、分岐命令Bの分岐先の命令N1のDステージ
以降の処理が行われる。
【0053】このように本実施例では、割込み処理から
復帰する場合には、まずレジスタ(R−S)35の内容
が調べられ、遅延スロット内への復帰であることが示さ
れているならば、アドレスレジスタ(RTN−ADR
S)30の示す戻り先アドレスの命令(ロード命令L)
への分岐を指定する分岐命令B1が実行され、更にその
分岐命令B1の遅延スロット内でアドレスレジスタ(B
−ADRS3)29の示す命令(戻り先命令Lに先行す
る分岐命令Bの分岐先の命令N1)への分岐を指定する
分岐命令B2が実行される。
【0054】以上の分岐命令B1,B2の実行により、
本実施例のように戻り先が分岐命令(B)の遅延スロッ
トである場合には、まずその遅延スロット内の割込みを
発生した命令(ロード命令L)が実行され、その命令
(L)の実行後に、遅延スロットに先行していた分岐命
令(B)の分岐先の命令(N1)への分岐が起こり、遅
延スロットへの復帰が可能となる。
【0055】一方、戻り先が分岐命令の遅延スロットで
ない場合には、分岐命令B1だけがフェッチされて、ア
ドレスレジスタ(RTN−ADRS)30の示す戻り先
命令への分岐が行われ、割込み処理から復帰する。復帰
後の通常処理では、戻り先命令に後続する命令列が実行
される。
【0056】
【発明の効果】以上詳述したようにこの発明によれば、
割込み処理を開始する際に、割込み処理からの戻り先の
アドレスと、割込み処理からの戻り先が遅延スロット内
であるか否かを示す識別情報を保持すると共に、割込み
処理からの戻り先が分岐命令の遅延スロットである場合
には、この遅延スロットに先行する分岐命令の分岐先ア
ドレスを保持しておき、割込み処理から復帰する際に
は、保持しておいた識別情報から戻り先が遅延スロット
内であるか否かを判別し、遅延スロットへの復帰であれ
ば、まず戻り先アドレスへ分岐して、その戻り先の命令
を実行した後、戻り先の命令に先行していた分岐命令の
分岐先アドレスに分岐し、遅延スロット外への復帰であ
れば、戻り先アドレスだけに分岐する構成としたので、
分岐命令の遅延スロット内からの割込みと遅延スロット
への割込み復帰とが可能となる。
【0057】このため、遅延スロットに置くことのでき
る命令についての制約が無くなり、遅延スロットが有効
活用できるようになる。また、分岐命令と遅延スロット
とを仮想アドレスのページにまたがって置くこともで
き、ページ境界付近で分岐命令が使用されても性能低下
を招かない。
【図面の簡単な説明】
【図1】この発明を適用するパイプライン方式の計算機
の一実施例を示す要部のブロック構成図。
【図2】分岐命令の遅延スロット内で割込みが発生した
場合の動作を説明するためのタイミングチャート。
【図3】割込み処理から復帰する場合の動作を説明する
ためのタイミングチャート。
【図4】パイプライン方式計算機における分岐命令の遅
延スロットを説明するためのタイミングチャート。
【符号の説明】
10…メモリ、11…メモリ制御装置、12…命令デコ
ード装置、13…分岐アドレス生成装置、14…分岐信
号、15…分岐アドレス、16,20…制御信号、17
…割込み検出装置、18…割込みアドレス、19…割込
み信号、22,25…セレクタ、23…アドレスレジス
タ(B−ADRS)、26…ロケーションレジスタ(D
−LOC)、27…ロケーションレジスタ(E−LO
C)、28…ロケーションレジスタ(W−LOC)、2
9…アドレスレジスタ(B−ADRS3、第2のアドレ
ス保持手段)、30…アドレスレジスタ(RTN−AD
RS、第1のアドレス保持手段)、31…アドレスレジ
スタ(B−ADRS1)、32…アドレスレジスタ(B
−ADRS2)、33…レジスタ(E−S)、34…レ
ジスタ(W−S)、35…レジスタ(R−S、識別情報
保持手段)。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 遅延スロットを持つ分岐命令を処理する
    パイプライン方式の計算機において、 割込み処理からの戻り先のアドレスを保持する第1のア
    ドレス保持手段と、 前記割込み処理からの戻り先が分岐命令の遅延スロット
    である場合には、この遅延スロットに先行する前記分岐
    命令の分岐先アドレスを保持する第2のアドレス保持手
    段と、 前記割込み処理からの戻り先が遅延スロット内であるか
    否かを示す識別情報を保持する識別情報保持手段とを具
    備し、 割込み処理から復帰する際には、前記識別情報保持手段
    に保持されている識別情報から戻り先が遅延スロット内
    であるか否かを判別し、遅延スロット内であれば前記第
    1のアドレス保持手段に保持されている戻り先アドレス
    へ分岐して、その戻り先の命令を実行した後、前記第2
    のアドレス保持手段に保持されている分岐先アドレスに
    分岐し、遅延スロット内でなければ前記第1のアドレス
    保持手段に保持されている戻り先アドレスだけに分岐す
    るようにしたことを特徴とする割込み処理方式。
JP3301471A 1991-11-18 1991-11-18 割込み処理方式 Expired - Fee Related JP3017866B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3301471A JP3017866B2 (ja) 1991-11-18 1991-11-18 割込み処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3301471A JP3017866B2 (ja) 1991-11-18 1991-11-18 割込み処理方式

Publications (2)

Publication Number Publication Date
JPH05143362A true JPH05143362A (ja) 1993-06-11
JP3017866B2 JP3017866B2 (ja) 2000-03-13

Family

ID=17897298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3301471A Expired - Fee Related JP3017866B2 (ja) 1991-11-18 1991-11-18 割込み処理方式

Country Status (1)

Country Link
JP (1) JP3017866B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188527A (ja) * 2007-03-19 2007-07-26 Ricoh Co Ltd 情報処理装置における割り込み処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188527A (ja) * 2007-03-19 2007-07-26 Ricoh Co Ltd 情報処理装置における割り込み処理方法
JP4564025B2 (ja) * 2007-03-19 2010-10-20 株式会社リコー 情報処理装置における割り込み処理方法

Also Published As

Publication number Publication date
JP3017866B2 (ja) 2000-03-13

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5127091A (en) System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US5461722A (en) Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions
US5706459A (en) Processor having a variable number of stages in a pipeline
US6530016B1 (en) Predicted return address selection upon matching target in branch history table with entries in return address stack
US5961633A (en) Execution of data processing instructions
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
JP2000330787A (ja) 命令ループを実行するコンピュータシステムおよび命令ループ実行方法
US5226166A (en) Parallel operation processor with second command unit
JP2535252B2 (ja) 並列処理装置
US5504870A (en) Branch prediction device enabling simultaneous access to a content-addressed memory for retrieval and registration
JPH05143362A (ja) 割込み処理方式
JPH05143363A (ja) 割込み処理方式
US20050015561A1 (en) Memory control method and memory control apparatus
JPH05241827A (ja) 命令バッファ制御装置
KR970012141A (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
JP2944563B2 (ja) パイプライン型情報処理装置
JP3493110B2 (ja) 高速分岐処理装置
JP2636562B2 (ja) 計算機
JPS60241136A (ja) デ−タ処理装置
JPH07114509A (ja) メモリアクセス装置
JPH06131180A (ja) 命令処理方式および命令処理装置
JPH06314196A (ja) 情報処理方法および装置
JPH0774992B2 (ja) データ処理装置
US7124281B1 (en) Processing system having sequential address indicator signals

Legal Events

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

Free format text: PAYMENT UNTIL: 20071224

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees