JPS6239780B2 - - Google Patents

Info

Publication number
JPS6239780B2
JPS6239780B2 JP55028140A JP2814080A JPS6239780B2 JP S6239780 B2 JPS6239780 B2 JP S6239780B2 JP 55028140 A JP55028140 A JP 55028140A JP 2814080 A JP2814080 A JP 2814080A JP S6239780 B2 JPS6239780 B2 JP S6239780B2
Authority
JP
Japan
Prior art keywords
instruction
address
interrupt
signal
stage
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
Application number
JP55028140A
Other languages
English (en)
Other versions
JPS56129950A (en
Inventor
Kenichi Wada
Naoki Yamada
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2814080A priority Critical patent/JPS56129950A/ja
Priority to US06/241,370 priority patent/US4409654A/en
Priority to DE3108568A priority patent/DE3108568C2/de
Publication of JPS56129950A publication Critical patent/JPS56129950A/ja
Publication of JPS6239780B2 publication Critical patent/JPS6239780B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 本発明は、割込み制御回路の構成を簡単化した
プログラム制御の情報処理装置に関する。
命令の実行中に、プログラム割込みが生じる
と、そのプログラムを中断させ、割込み処理を実
行させる必要がある。
従来、プログラム制御の処理装置の動作は、プ
ログラム状態語(PSW)により制御される。こ
のPSWには、次に実行すべき命令アドレス等の
制御情報を含んでいる。従つて、割込みが生じた
とき、それまでのPSW(OLD PSW)を記憶装置
に退避させ、割込み処理プログラムのための新し
いPSW(NEW PSW)を用いる。この割込み処
理プログラム終了後、OLD PSWを再び用いて、
命令の実行を継続する。割込みが生じたときに、
このOLD PSW内の命令アドレスを、割込み処理
プログラム終了後に実行すべき命令のアドレスと
なるように修正したのち、このOLD PSWを主記
憶装置に退避させる。このOLD PSW内の命令ア
ドレスは、割込のタイプと命令のタイプに依存し
て決定する必要がある。
ここでいう割込みタイプとは、割込みを受けた
命令の処理と、割込み処理後に実行されるべき命
令に依存して定められたもので、ここでは、その
内の代表的な3つについてのみ説明する。
抑止型の割込みの場合、その命令は全く実行さ
れない。完了型割込みの場合、その命令の実行は
完了される。停止型割込みの場合、割込みが発生
した時点以後は、その命令が実行されない。
すなわち、その割込みが抑止タイプのときは、
その命令の実行の開始を止めること、完了タイプ
のときは次の命令の実行を止めること、停止タイ
プのときはマシンにより上記のどちらかの処理を
している。
分岐命令以外の命令において、これらの割込み
が発生した場合、割込み処理後に実行されるべき
命令は、割込まれた命令につづく命令であり、し
たがつて、OLD PSW内には、割込まれた命令に
つづく命令のアドレスをストアする必要がある。
分岐命令で割込みが発生した場合、その割込み
が抑止又は停止タイプのときは、割込み処理後に
実行されるべき命令は分岐命令につづく命令(つ
まり、分岐不成功側の命令)である。一方、その
割込みが完了型のときは、割込み処理後に実行さ
れるべき命令は、分岐命令の実行の結果、分岐が
成功したか否かに依る。すなわち、割込み処理後
に実行されるべき命令は、その割込みが抑止又は
停止タイプのときは分岐命令につづく命令アドレ
スであり、完了タイプのときは、分岐結果に従つ
た命令アドレス(分岐不成功のときは、分岐命令
につづく命令のアドレス、分岐成功のときは分岐
先の命令アドレスである。したがつて、分岐命令
において割込みが発生したときにOLD PSW内に
格納されるべき命令アドレスは、割込みのタイプ
と、分岐成功か否かに依存して変わる。
さらに、注意すべきは完了型、割込みの要因の
1つにプログラム事象記録Program Event
Recording)(以下、単にPERと呼ぶ)があるこ
とである。PERによるプログラム割込みがおこ
ると上記で説明した動作のほかに割込まれた命令
の命令アドレス(PERアドレスとよぶ)を記憶
装置に退避させる動作が加わる。通常は、この割
込まれた命令のアドレスを得るために、割込まれ
た命令につづく命令のアドレスと、割込まれた命
令の命令長を検出する方法が用いられる。割込ま
れた命令につづく命令のアドレスから、この命令
長を減算して、割込まれた命令のアドレスを得る
ことができるからである。従つて分岐命令以外の
命令でPERによるプログラム割込みが生じた場
合は、OLD PSW用アドレスとPERアドレスとし
て、ともに、実行された命令アドレスを発生する
必要がある。分岐命令でPERによるプログラム
割込みが生じた場合、OLD PSW用アドレスと
PERアドレスとして、それぞれ分岐結果に従つ
たアドレス(分岐不成功のときは、分岐命令につ
づく命令のアドレス、分岐成功のときは分岐先ア
ドレス)と、分岐命令につづく命令のアドレスを
確保する必要がある。特に、分岐命令で分岐成功
して、PERによるプログラム割込みが生じた場
合は、分岐成功先アドレスと、分岐命令につづく
命令のアドレスの両方を発生する必要がある。
以上のごとく、割込みが生じたときに、割込み
のタイプと割込まれた命令のタイプに依存して、
いろいろの命令アドレスを得る必要がある。
通常、大型のプログラム制御の情報処理装置で
は、各命令は複数のステージに分けて実行され、
かつ異なる命令の異なるステージが並列に実行さ
れる。つまり、各命令はパイプライン処理され
る。すなわち、第1図に示すように、先行制御ユ
ニツト(Iユニツト)1により実行すべき命令を
解読するとともに、命令の実行に必要なオペラン
ドのアドレスを計算するステージ(Dステージ)
を行ない、記憶制御ユニツトにおいて、このオペ
ランドアドレスを、主記憶装置4をアクセスする
ためのアドレスに変換するステージ(Aステー
ジ)と主記憶装置4からオペランドを読出し、演
算ユニツト2に送出するステージ(Lステージ)
を行なう。Eユニツト2では、Iユニツト1から
送出される命令コードと記憶制御ユニツトから送
出されるオペランドとについて演算を行なうステ
ージ(演算ステージ又はEステージ)と、演算結
果を記憶制御ユニツト3に格納するステージ(S
ステージ)とが行なわれる。各命令についてこれ
らのD〜Sステージの処理が順次行なわれ、各ユ
ニツトは、ある命令についての一つのステージの
処理を終了すると、ただちに、次の命令について
同じステージの処理をする。
このように、各命令は、複数のステージに分け
て実行され、かつ、異なる命令の異なるステージ
が、並列に実行される。ある命令を実行中に、割
込みが生じると、その命令または、次の命令の次
のステージの実行を停止する。このとき、上述の
ごとく、割込みのタイプと命令のタイプに応じ
て、いろいろの命令アドレスを発生する必要があ
る。
このため、通常Iユニツト1は、分岐命令以外
の命令を解読したときは、その命令につづく命令
のアドレスを発生させ、それを保持し、その命令
の演算ステージが開始される直前にEユニツト2
にこのアドレスを送出する。Eユニツト2ではこ
のアドレスを記憶しておき、Eステージの実行中
に割込みが検出されたとき、割込み処理プログラ
ムの中でこの記憶した命令アドレスを読出し、
OLD PSW用のアドレス又はPER用のアドレスを
得ている。
一方、Iユニツト1が分岐命令を解読したとき
は、分岐命令につづく命令のアドレス(分岐不成
功側の命令アドレス)と分岐先の命令アドレス
(分岐成功側の命令アドレス)を発生させ、それ
らを保持し、それらを、分岐命令の演算ステージ
の開始直前にEユニツト2に送出する。Eユニツ
ト2では、これらのアドレスを記憶しておき、割
込みが生じたとき、これらのいずれかのアドレス
をOLD PSW用のアドレスとして出力し、分岐命
令につづく命令のアドレスをPER用の命令アド
レスとして出力する。
このため、Iユニツト1から二つの命令アドレ
スをEユニツト2に送るための二つのアドレス線
が必要となる。以上においては、アドレスのみに
ついて説明したが、OLD PSWには、次に実行さ
れるべき命令のアドレスだけなく、割込まれた命
令の命令長もストアする必要がある。したがつ
て、実際には二つのアドレス線だけでなく、一つ
の命令長を送る信号線が必要となる。通常の大型
計算機では、各アドレスは24ビツトを有し、各命
令長は2ビツト有する。従つて合計50本の線が少
くとも必要となる。このように、従来技術は、先
行制御ユニツトと演算ユニツトを接続する本数が
多く、高価になるという欠点を有する。更に従来
技術は次の問題を有する。
近年、回路が高速化されるに従がい、各命令の
1つのステージの占める時間すなわち、マシンサ
イクルが短かくできるようになつてきた。しか
し、マシンサイクルが短かくなると、ある命令の
あるステージで、割込みが生じたとき、その命令
又はその次の命令の、次のステージの実行を、適
時に停止することが出来なくなるという問題があ
る。この結果、本来停止されるべき命令が実行さ
れてしまう。以下では、これを命令のオーバラン
と呼ぶ。
この問題を解決するためには、同一出願人によ
る日本特開昭54―107645号明細書には、命令のオ
ーバランを許した上で、オーバランにより生じる
不都合を、割込み処理の中で補う方法が提案され
ている。以下、この方法をオーバラン方式と呼
ぶ。
上述の特許出願では、IユニツトからEユニツ
トへ、2つのアドレスが別々の線を介して送出さ
れ、命令アドレス制御回路はEユニツト内の複数
のレジスタ内にこれらを保持するとともに、ステ
ージの進行に合わせ、これらのレジスタの内容を
他のレジスタへシフトさせる構成を有する。
このため、命令アドレス制御回路は、Iユニツ
トと、2つのアドレス線で接続され、さらに、5
つのレジスタを必要とし、かつ、これらのレジス
タ間でのデータのシフトを制御する回路も必要と
している。
また、上述の特許出願ではPERアドレスの発
生回路を開示していない。前述のように、PER
による割込みを可能とするためには、割込まれた
命令が分岐命令で分岐が成功したときには、
OLD PSW用の命令アドレスと異なるアドレスを
得ることが出来るように命令アドレス制御回路を
構成する必要があり上述の特許出願のように、複
数のレジスタを用いその内容をシフトする方法を
用いれば、PER用アドレス発生のために余分の
レジスタを必要とし、更に、それらのシフトの制
御回路も複雑となるという問題がある。
したがつて、本発明の目的は、簡単な回路構成
により、OLD PSW用の命令アドレスとPER用の
命令アドレスを供給できる情報処理装置を提供す
ることにある。
本発明の他の目的は、Iユニツトから一つのア
ドレス線を介して入力されるアドレス情報に基づ
き、OLD PSW用の命令アドレスとPER用の命令
アドレスを出力しうる情報処理装置を提供するこ
とを目的とする。
更に、本発明の他の目的は、割込みが発生した
ときに、マシンサイクルが高速(小さい)のため
に命令のオーバランが発生しても、Iユニツトか
ら一つのアドレス線を介して入力されるアドレス
情報に基づいて、PER用アドレスとOLD PSW用
アドレスとを、少ない命令アドレスレジスタを用
いてかつ簡単な制御回路により供給できる情報処
理装置を提供することにある。このため本発明に
よるIユニツトは、命令を順次解読し、解読した
命令につづく命令のアドレスを発生し、解読した
命令が分岐命令のときには、分岐先の命令のアド
レスをさらに発生し、演算ステージ開始信号に応
答して、演算ステージが実行されようとする命令
につづく命令のアドレスをEユニツトに送出する
とともに、分岐命令の演算ステージが行なわれ、
その分岐命令の分岐成功が検出されたときは、分
岐命令の演算ステージの次のステージで分岐成功
先の命令アドレスをEユニツトに送出する。さら
に、本発明によるEユニツトは、OLD PSWおよ
びPER用の命令アドレスを発生するための命令
アドレス制御回路であつて、命令アドレスをスト
アするための複数のレジスタと、これらのレジス
タの一つを順次循環的に指示するポインタを発生
する回路と、Iユニツトから入力される命令アド
レスを、この発生されたポインタにより指示され
るレジスタに入力する手段と、該ポインタ値を所
定のマシンサイクルにわたり遅延するための回路
と、該遅延回路の出力に接続された第1、第2の
ポインタレジスタと、該第1、第2のポインタレ
ジスタのポインタ値のセツトタイミングを指令す
る制御回路であつて、演算ステージ開始を示す信
号と割込み検出信号と割込みのタイプを示す信号
と分岐成功を示す信号に応答して、第1のポイン
タレジスタにOLD PSW用の命令アドレスに対す
るポインタ値が該遅延回路から入力されているタ
イミングにて第1のポインタにセツト信号を出力
し、その後はセツト信号は送出せず、第2のポイ
ンタレジスタにPER用の命令アドレスに対する
ポインタ値が該遅延回路から入力されているタイ
ミングにて、第2のポインタにセツト信号を出す
る制御回路と、該第1、第2のポインタレジスタ
の記憶値に基づき、該複数のレジスタを選択的に
読出す手段とを有する。
(実施例) 本発明はIBMシステム370に適用可能である
ので、用語の意味の詳細はIBMマニユアル(GA
―22―7000、「IBMシステム/370動作原理」)を
参照されたい。
第2図は本発明によるEユニツト2を示した図
である。Eユニツトは、割込み検出回路21、本
発明の特徴となる命令アドレス制御回路22、演
算器23、分岐命令判定回路24、ステージ制御
回路25、マイクロ命令デコーダ26、制御記憶
装置27を有する。演算器23は、上述の特許出
願に従つて、退避レジスタ(図示せず)を有す
る。
加算(ADD)命令(上記マニユアル参照)を
例として説明するならば、命令の読出し、デコー
ド、オペランドアドレス計算、オペランド読出し
は全てIユニツト1で行なわれ、オペランドの加
算及び結果の格納がEユニツト2で行なわれる。
1つの命令の実行は、先に引用した特許出願に記
載したごとく、複数のステージに分けて、かつ、
異なる命令の異なるステージが並列に実行され
る、いわゆるパイプライン制御により実行され
る。
本発明では、先に引用した特許出願と同じく、
D,A,L,E,P,Sのステージからなる。
いま記憶装置上のオペランドデータと処理装置
の汎用レジスタの内容とを加算し、加算結果をこ
の汎用レジスタに格納する基本的な加算命令の処
理を考える。Iユニツト1が、次に実行すべき命
令をSユニツト3から読出すと、Iユニツト1で
はDステージの間に主記憶装置上のオペランドア
ドレスを知るために、命令語で指定された汎用レ
ジスタが読出され、オペランドアドレスが計算さ
れる。Aステージにおいては、Dステージで得ら
れたオペランドアドレスがSユニツト3へ送ら
れ、Sユニツト3で、このオペランドアドレスに
基づきSユニツト3内のバツフア記憶装置(図示
せず)を読出すためのバツフアアドレスが求めら
れる。Lステージにおいては、Sユニツト3内の
バツフア記憶からオペランドデータが読出され、
Eユニツト2へ転送される。Iユニツト1は、こ
れとともに命令の一方のオペランドである汎用レ
ジスタの内容を、命令が指定するレジスタアドレ
スにより読出し、Eユニツト2へ転送する。かく
て、Lステージの終了時点にEユニツト2は、命
令で指定された演算に必要なオペランドデータを
受けとることとなる。Eステージ(演算ステー
ジ)は、Eユニツト2がオペランドデータを受け
取つた後、命令で指定された演算を行うためのス
テージである。たとえば、Eステージにおいて、
レジスタオペランドと主記憶装置4上のストレジ
オペランドの加算を行ない、加算結果を得る。P
ステージでは、Eユニツト2は汎用レジスタ等
の、プログラムで指定可能なレジスタにこの演算
結果を書込む。この際、Eステージでは、汎用レ
ジスタ等の書込み前に、Eステージで書替えられ
る汎用レジスタの内容を別に設けた退避用レジス
タに退避させる。先に引用した特許出願では、こ
の退避は、Eステージの後のステージで行つてい
たが、本発明ではこれらをEステージで行つてい
る。割込みの検出がオーバランする装置では、こ
の演算結果を主記憶装置4に書込むことは、Pス
テージでは行なわれず、次のSステージで行われ
る。このPステージでは、Sユニツト3により、
主記憶装置4に書込むためのバツフアアドレスが
求められる。
通常1つのステージは、1つのマシンサイクル
内で実行される。演算ステージは、複数のマシン
サイクル内で実行されることもあるが、本実施例
では、簡単化のために、演算ステージが1マシン
サイクル内で実行される場合のみ説明する。
従つて、ある命令の演算ステージが実行された
マシンサイクルの次のマシンサイクルには、次の
命令の演算ステージが実行されるごとく、各マシ
ンサイクルごとに、順次、新たな命令の演算ステ
ージが実行されることになる。
Iユニツト1は、各命令の演算ステージの開始
時点に、演算に必要なオペランド、各命令につづ
く命令のアドレス、その命令長を、それぞれ、線
123,100,101を介して送る。
従来のIユニツトは、各命令を順次解読したと
き解読した命令の命令長とその命令につづく命令
のアドレス(解読した命令が分岐命令のときは分
岐不成功側の命令のアドレス)を発生し、これを
その解読した命令の演算ステージが開始されるま
で保持する第1の手段としたときに、分岐成功先
の命令アドレスを発生し、これを分岐命令を解読
分岐命令の演算ステージが開始されるまで保持す
る第2の手段を有する。従来のIユニツトは更
に、分岐命令以外の命令の演算ステージ開始時点
で、この演算ステージが開始されようとする命令
の命令長とこの命令につづく命令のアドレスを演
算ステージ開始信号に応答して第1の手段からE
ユニツトに第1のアドレス線を介して送出し、分
岐命令の演算ステージ開始時点で、演算ステージ
開始信号に応答して、この分岐命令の命令長とそ
の分岐命令につづく命令(分岐不成功側の命令)
アドレスを該第1の手段から該第1のアドレス線
を介して送出するとともに、分岐成功先の命令ア
ドレスを該第2の手段から第2のアドレス線を介
してEユニツトへ送るための第3の手段を有して
いた。
本発明によるIユニツトでは、分岐命令の演算
ステージの開始時点では、分岐先アドレスをEユ
ニツトに送出しないで、この演算ステージにつづ
くステージで、分岐成功信号に応答して、分岐先
アドレスを、Eユニツトへ第1のアドレス線を介
して送出するように修正されている。第2図では
この第1のアドレス線が線100として示されて
いる。本願では、Iユニツト1とEユニツト2間
は1本のアドレス線で接続されていることに注意
されるべきである。更に本発明によるIユニツト
1は、この命令アドレスの発生、保持送出の回路
の修正にもかかわらず、命令長を保持し送出する
回路は修正されていない。結局、命令長も、1本
の信号線101によりIユニツト1からEユニツ
ト2へ送られる点で本発明は従来のIユニツトと
同じである。なお以上のごとき修正は当業者にと
つて容易なので、以下ではIユニツト1の詳細な
説明は省略する。
ADD命令の演算ステージではIユニツト1か
ら線123を介して与えられた2つのオペランド
の加算が、演算器23で行なわれ、その結果が線
232を通じてIユニツト1へ送られて、その中
の汎用レジスタ(図示せず)に書込まれる。この
加算はマイクロ命令により制御される。Iユニツ
ト1よりADD命令の演算ステージを制御するマ
イクロプログラムの先頭マイクロ命令のアドレス
が線271を介して制御記憶装置27に送られ、
この先頭マイクロ命令は線270を通じてデコー
ダ26へ送られる。デコーダ26ではこのマイク
ロ命令をデコードして、線266を通じて演算器
23へ加算を指示する。ADD命令のような基本
的な命令の演算ステージは1マシンサイクルで終
了するので、制御記憶装置27から読み出したマ
イクロ命令の演算ステージの終了を示す信号
EOPが“1”となつており、この信号は線26
1を介してステージ制御回路25へ伝えられる。
ステージ制御回路25はこの信号に応答して、次
の命令の演算ステージの開始を示す信号を線25
0を介して命令アドレス制御回路22へ送る。ま
た、演算ステージの終了を示す信号を線251を
介して、割込み検出回路21に送る。命令アドレ
ス制御回路22はステージ制御回路25からの演
算ステージ開始信号250に応答して、線10
0,101上の命令アドレス、命令長を受取り、
記憶する。演算器23は、上述のオーバラン方式
に従つて、命令の実行により書きかえられるレジ
スタの内容を退避するためのレジスタ(図示せ
ず)を有する。このADD命令の演算ステージで
は、このADD命令によつて書き替えられるIユ
ニツト1内の汎用レジスタの内容を演算器23内
の退避用レジスタに退避しておく。これもマイク
ロ命令で制御される。退避データはIユニツト1
から線123を通じ演算器123へおくられ、線
266上のデコーダ26の出力によつて退避用レ
ジスタにストアされる。先に引用した特許出願で
はPステージでこの退避が行わなれているが本願
では退避処理の簡単化のために、演算ステージで
行なわれている。さて、演算器23は、演算ステ
ージで、加算の結果が、結果を収用するIユニツ
ト内の汎用レジスタ(図示せず)をオーバフロー
するかどうかを調べ、オーバフローしたときは線
230を介して、オーバフロー信号を割込み検出
回路21へ送る。
各ステージの動作は、それぞれ1/4マシンサイ
クルづつずれた時刻T0,T1,T2,T3で1となる
クロツクパルスで制御されている。オーバラン方
式を用いない従来装置では、割込み検出回路21
は、各ステージの時刻T1で線230上の信号を
検出していたが、本発明では、オーバラン方式を
採用しているので、割込み検出回路21は各ステ
ージの時刻T3で線230上の信号を検出し、次
のステージの時刻T1で、検出結果を出力するよ
うになつている。回路21は、オーバフローは完
了形割込みであるので線251上の、演算ステー
ジの終了信号の受信をまつて割込み信号を線21
0,212に出力するとともに、検出した割込み
が完了形割込みであることを示す信号を線211
に出力する。割込み検出回路21は割込みが許さ
れるかどうかを調べて、これらの割込み信号を出
力する。
なお、割込み検出回路21は、線121を介し
て、Iユニツト1又は、入出力制御装置(図示せ
ず)より入力される割込み信号に応答して、これ
らの線210,211,212に上述の割込み信
号を発生する機能も有する。ステージ制御回路2
5は、線212上の割込み信号に応答して、直ち
に後続の命令の次のステージを停止させるととも
に、制御記憶装置27へ割込みを示す信号を線2
52を介して送る。この信号をうけた制御記憶装
置27は、マイクロ命令アドレスを割込み処理マ
イクロプログラムの先頭のマイクロ命令のアドレ
スに強制的にセツトし直し、割込み処理マイクロ
プログラムを読出す。このマイクロプログラムの
実行がすむまでステージ制御回路25は後続の命
令ステージの実行を停止させておく。すなわち、
この間、演算ステージの開始を示す信号、25
0、演算ステージの終了を示す信号251を発生
しない。一方線210上に割込み信号が出力され
ると、命令アドレス制御回路22は、Iユニツト
からの命令アドレスの取込みと、取込むべきレジ
スタを指定するための入力ポインタ信号の更新を
停止する。その後、割込み処理のためのマイクロ
プログラムが実行される。このマイクロプログラ
ムの中ではOLD PSW内の命令アドレスを読出す
マイクロ命令を制御記憶装置27から読出し、こ
のマイクロ命令の解読信号を線262を介して、
命令アドレス制御回路22へ送り、OLD PSW内
の命令アドレスが線220を介して演算器23に
セツトされる。演算器23はそのまま線232へ
送り出す。この命令アドレスは、記憶制御ユニツ
ト3を経由して、主記憶装置4に書込まれる。こ
れによりOLD PSWが主記憶装置4に退避され
た。オーバラン方式では、この割込みマイクロプ
ログラムの中で、演算器23に予め退避されてい
た汎用レジスタの内容が読出し線232を経由し
てIユニツト1へ送られ、汎用レジスタの内容を
回復する処理が行なわれる。なぜならば、この場
合、割込みの検出が1サイクル遅らされたことに
よつてこのADD命令の次の命令の演算ステージ
が完了してしまう。このため、例えば次の命令も
ADD命令であるならば、汎用レジスタが更新さ
れてしまう。そこで、この割込処理マイクロプロ
グラムの中で、更新された汎用レジスタの内容が
元の値に戻される。
もう一つの例として条件付分岐Branch on
Condition命令(BC命令)について簡単に説明す
る。BC命令の演算ステージでは分岐成功/不成
功を決定する。BC命令の演算ステージの開始時
までにIユニツト1から線123を通じて命令の
マスク情報が演算器23へ送られ、演算器23に
あるコンデイシヨンコードCCと、このマスク情
報が線231経由で分岐判定回路24へ送られ
る。
Iユニツト1は、前述したようにBC命令のD
ステージで、分岐不成功の場合に実行されるべき
命令のアドレス(分岐不成功側アドレス)とBC
命令の命令長を計算し、記憶するとともに、分岐
成功の場合に実行されるべき命令のアドレス(分
岐成功側アドレス)を計算し、記憶している。こ
のBC命令の演算ステージの開始時に、分岐不成
功側の命令アドレスとBC命令の命令長を、それ
ぞれ線100,101に送出する。 命令アドレ
ス制御回路22は、線250を介して入力される
演算ステージ開始信号に応答して、線100,1
01上の信号を記憶する。演算ステージでは分岐
命令を示すマイクロ命令が読出され、線263を
経由して分岐命令判定回路24へ送られる。回路
24では線231,263から入力された信号を
使つて分岐成功/不成功を判定し、結果を線24
1経由でIユニツト1へ送る。Iユニツト1は、
BC命令のPステージにおいて、線241上の判
定結果にもとずき、もし分岐成功ならば、命令ア
ドレス制御回路22へ線100、を介して、分岐
成功側の命令アドレスを送出する。BC命令のP
ステージで分岐命令判定回路24は分岐成功/不
成功の判定し、分岐成功の場合、分岐成功である
ことを線240経由で命令アドレス制御回路22
に知らせる。回路22は応答して線100上の命
令アドレスをうけとり、記憶する。
以上、ADD命令とBC命令の2命令を例として
第2図を説明した。命令アドレス制御回路22は
ADD命令では演算ステージ開始信号250に応
答し、BC命令では演算ステージ開始信号250
及び分岐成功信号240に応答し線100上の命
令アドレスをうけとり、記憶した。しかし線25
0、線240以外に応答して、線100,101
をうけとらねばならない場合が必要である。この
例として、割込み処理をとりあげる。割込み処理
マイクロプログラムではOLD PSWを主記憶装置
4へ退避したあと、同じく主記憶装置4から
NEW PSWを読出しこれをIユニツト1へ送
る。Iユニツト1では送られたNEW PSWの命
令アドレス、命令長を線100、線101へ送出
する。これをうけて、割込み処理マイクロプログ
ラムが命令アドレスセツト指令を出す。この指令
は制御記憶装置27より線270を介してCSデ
コーダ26へ送られる。CSデコーダ26では線
270上のこの指令をデコードして、線260を
介して命令アドレスセツト信号を命令アドレス制
御回路22へ送出する。回路22はこの信号に応
答して線100,101上の命令アドレス、命令
長をうけとり、記憶する。この場合、線250、
線240のいずれにも信号が発生しない。このよ
うに、線260上の命令アドレスセツト信号は、
演算ステージ開始時あるいは分岐成功が検出され
たとき以外において、特定のマイクロ命令に応答
して、線100,101上の命令アドレスと命令
長を命令アドレス制御回路22に記憶させるのに
用いられる。
以下は本発明の特徴となる命令アドレス制御回
路22について以下詳細に説明する。
第3図は第2図の本発明の特徴である命令アド
レス制御回路22をさらに詳細に示した図であ
る。図において101A〜101Dは命令長を格
納する4本のレジスタ(MILC)、100A〜1
00Dは命令アドレスを格納する4本のレジスタ
(MCAR)である。30はレジスタ101A〜1
01D及び100A〜100Dへデータを入力す
るのを制御する回路、40はレジスタ101A〜
101D及び100A〜100Dからデータを出
力するのを制御する回路、2200,2201は
出力制御回路40の出力を受けてレジスタ101
A〜101Dを選ぶセレクタ、2202,220
3は同じく回路40の出力を受けてレジスタ10
0A〜100Dを選ぶセレクタ、2204はセレ
クタ2200〜2203の出力を線262上のマ
イクロ命令のデコード信号により選ぶセレクタで
ある。300〜303は4本のレジスタのうちの
1つを選びそれへのセツトを指示する信号、40
0,401はそれぞれPER用の命令アドレスと
命令長ならびにOLD PSW用の命令アドレスと命
令長を選択するためにセレクタ2200〜220
3へ与えられる信号である。命令長はIユニツト
1より線101を通じて、レジスタ101A〜1
01Dのいずれかにストアされる。命令アドレス
も同様にIユニツト1より線100を通じてレジ
スタ100A〜100Dのいずれかにストアされ
る。その後プログラム割込みが発生すると必要な
命令アドレス及び命令長がこれらのレジスタに保
持されているので、回路40の線400,401
上の出力により必要な信号をこれらのスタツクよ
りとり出す。また演算器23へ送るときはセレク
タ2200〜2203のいずれかをセレクタ22
04により選択し、線220を介して演算器23
へ送る。第4図は第3図の30をさらに詳細に示
した図である。図に於いて3000,3010,
3020はそれぞれ2ビツトから成るレジスタ、
でそれぞれ時刻T3,T1,T3でセツトされる。3
030は+1加算器、3050は2ビツトをデコ
ードするデコーダである。レジスタ3010の出
力は、+1加算器3030を介してレジスタ30
00に入力されている。レジスタ3000は、線
240,250,260を介して、それぞれ、分
岐成功信号、演算ステージ開始信号、命令アドレ
スセツト信号のいずれかがオアゲートORに入力
されたとき、このオアゲートORの出力に応答し
て、+1加算器3030の出力を時刻T3で取り込
む。分岐成功信号240、演算ステージ開始信号
250,命令アドレスセツト信号260はそれぞ
れ時刻T1,T0,T0にて出力されるように回路が
構成されている。レジスタ3010はレジスタ3
000へのデータのセツトより半マシンサイクル
遅れて、時刻T1にレジスタ3000の出力をス
トアする。さらに、半マシンサイクル後、レジス
タ3010の出力は、時刻T3にレジスタ302
0にストアされる。従つて、レジスタ3010の
出力は、マシンサイクルに同期して、0,1,
2,3,0,1、…のごとく、サイクリツクに変
化する。このレジスタ3010の出力は、デコー
ダ3050を介して4つのアンドゲートAに、オ
アゲートORの出力とともに入力され、線300
〜303上に、サイクリツクに信号“1”を出力
する。これらの線300〜303上の信号が、上
述のレジスタ100A〜100D,101A〜1
01Dを選択するための入力ポインタを選択的に
セツトするための入力ポインタ信号として用いら
れる。レジスタ3020はレジスタ3000の出
力を1サイクル遅れて保持しこれを線310を介
して出力制御回路40へ送る。従つて、レジスタ
3000は線100,101上の信号を次のマシ
ンサイクルにおいてストアすべきレジスタを指定
する信号を保持し、レジスタ3020は線は10
0,101上の信号を現在のマシンサイクルにお
いてストアすべきレジスタを指定する番号を保持
している。
たとえば、線250上の演算ステージの開始信
号が“1”になるとレジスタ3000は線10
0,101上の信号を次の命令の演算ステージで
ストアするべきレジスタを指定する入力ポインタ
信号を記憶し、レジスタ3020は、線100,
101上の信号をこの演算ステージ開始信号で指
定された演算ステージでストアすべきレジスタを
指定する入力ポインタ信号を記憶する。線24
0,260上の分岐成功信号、マイクロ命令によ
る命令アドレスセツト信号の場合も同様である。
こうして入力制御回路30は演算ステージ開始
信号を線250を介してうけたとき、又、線24
0を介して分岐成功信号をうけたとき、又、線2
60を介して、命令アドレスセツト信号を受けた
ときに、そのときの入力ポインタ信号に従つて、
4本の命令アドレスレジスタ、100A〜100
D、命令長レジスタ101A〜101Dのいずれ
かへ線100上の命令アドレスと線101上の命
令長をとりこむ。またそのときセツトしたレジス
タを指定するための入力ポインタ信号を線310
経由で出力制御回路40へ送る。
第5図は第3図の出力制御回路40をさらに詳
細に示した図である。図において3100〜31
04は、2ビツトのレジスタで、レジスタ310
0は、レジスタ3020(第4図)にデータがセ
ツトされるタイミング(時刻T3)より半マシンサ
イクル遅れた時刻T1に線310上の、レジスタ
3020の出力をセツトする。レジスタ3101
〜3104は、それぞれ先行するレジスタにデー
タがセツトされたタイミングより半マシンサイク
ル遅れて、それらの先行するレジスタの出力をセ
ツトする。このうち3103はPERアドレスを
選択する出力ポインタ信号を、レジスタ3104
はOLD PSWを選択する出力ポインタ信号を、そ
れぞれ線400,401に出力する2500〜2
503は線250から入力される演算ステージ開
始信号を、半マシンサイクルごとにシフトするデ
イレイラツチ群、2100〜2103は、線21
0から入力される割込み信号を、半マシンサイク
ルごとにシフトするデイレイラツチ群、211
0,2111は線211から入力される完了形割
込み信号を半マシンサイクルごとにシフトするデ
イレイラツチ群、2600〜2603は、線26
0の命令アドレス書込み信号を半マシンサイクル
ごとにシフトするデイレイラツチ群、2400〜
2403は、線240上の分岐成功信号を半マシ
ンサイクルごとにシフトするデイレイラツチ群で
ある。線250,210,211,260,24
0上の信号をこのようにデイレイして記憶しその
後アンドゲートA、オアゲートORにより論理を
とることによつてラツチ3103,3104のセ
ツトをコントロールする。制御の詳細は、第7,
8,9図を用いて後で説明する。
この図では以下に説明するように、演算ステー
ジでセツトされた線310上の命令アドレスおよ
び命令長の入力ポインタ信号を、この命令の割込
みが検出されるSステージまで覚えておき、もし
割込みがおきたらこの値を保持することを基本と
した回路である。
割込みのオーバラン方式では、遅れて割込みが
検出された時点までこの命令アドレスポインタ信
号をこれらレジスタ3100〜3104に記憶し
ておき、OLD PSW用の出力ポインタ信号又は
PERアドレス用の出力ポインタ信号として、線
401,400にそれぞれ出力する。これらのレ
ジスタは線250から演算ステージ開始信号をう
けてセツトされる。本発明の実施例では割込みの
検出が1サイクル遅れているため、この図では線
310上の入力ポインタ信号のデイレイ用レジス
タとして2サイクル分のレジスタ3100〜31
04もつている。従つて割込みの検出が遅れない
方式では1サイクル分のデイレイ用レジスタが不
要となる。
一方完了形割込みがおきたときは線210、線
211上の信号が共に“1”となり、これらのレ
ジスタ3103,3104の更新を抑止すること
によつて、割込みを起こした命令の入力ポインタ
信号を保持するように働く。
制御信号線210,211,260,240上
の信号に対するデイレイラツチ群が設けられてい
るが、その動作の詳細は第7,8,9図において
説明される。
以下、本発明による命令アドレス制御回路22
の動作を更に詳細に説明する。
(抑止型割込み―分岐命令以外の命令の場合) 第6図aは分岐命令以外のある命令Aに対して
抑止型割込みが発生した場合に命令アドレス制御
回路22に入力されるいくつかの信号を示す。第
7図は、この割込みが発生したときの、命令アド
レス制御回路22内のいくつかの信号を示す。
ある命令Aの演算ステージ(マシンサイクルC
1)において、抑止型割込みが発生した場合、本
発明では、その割込みは、そのマシンサイクルC
1より1マシンサイクル後に割込み検出回路21
により検出される。すなわち、検出回路21は、
この命令AのPステージ(マシンサイクルC2)
の時刻T1において、割込み信号210,212
を発生する。なお、抑止型割込みの場合は、完了
形割込み信号211は出力されない。すでに述べ
たごとく、ステージ制御回路25は、割込み信号
212を受信した後は、割込み処理マイクロプロ
グラムを実行する。すなわち、割込み処理マイク
ロプログラムは、後述するごとく、ラツチ310
3,3104に所望のポインタ値がセツトされた
後に実行され、この命令Aの演算ステージにおい
て、退避された汎用レジスタの内容を元の汎用レ
ジスタに戻するとともに、OLD PSW用の命令ア
ドレスと命令長を主記憶装置4に退避する。抑止
型割込みの場合、OLD PSW用の命令アドレス
は、この割込みが起きた命令Aにつづく命令Bの
アドレスである。
マシンサイクルC1において、命令Aの演算ス
テージが実行され、それが終了したときは、まだ
割込み信号212が出力されていないので、ステ
ージ制御回路25は、マシンサイクルC1におい
て、演算ステージが終了したときに伴ないマシン
サイクルC2の始めに、演算ステージ開始信号2
50を出力し、抑止型割込みが生じた命令Aにつ
づく命令Bの演算ステージを実行する。割込みが
検出された後のマシンサイクルC3以降のマシン
サイクルでは演算ステージ開始信号250は出力
されない。すでに述べたごとく、Iユニツト1
は、演算ステージの開始時に、演算ステージが実
行される命令につづく命令のアドレスと命令長を
命令アドレス制御回路22を送出する。
今の例では、命令Aの演算ステージの開始時、
つまり、マシンサイクルC1の時刻T0において
Iユニツト1は、次に続く命令Bのアドレス
CIA+とその命令長CIL+を線100,101にそ
れぞれ送出する。デイレイラツチ3010は、各
マシンサイクルの時刻T1においてデイレイラツ
チ3000の出力を記憶するものである。今デイ
レイラツチ3010は、命令Aの演算ステージ
(マシンサイクルC1)の時刻T1において、ある
値iを記憶したとする。この値は、次のマシンサ
イクルC2の時刻T1まで保持される。iは0か
ら3の値のいずれかである。デイレイラツチ30
10の値iはデコーダ3050により解読され、
このデコーダ3050に接続された4つのアンド
ゲート50の一つを開く。これらのアンドゲート
50には、演算ステージ開始信号250、分岐成
功信号240、命令アドレスセツト信号260が
オアゲート60を介して入力されている。マシン
サイクルC1の演算ステージ開始信号250は、
開かれた一つのアンドゲート50を通して、線3
00〜303の一つに出力される。この結果、線
300〜303に接続されたMCAR100A〜
100DとMILC101A〜101Dの各々の一
つにデータのセツトが指令される。
これらのレジスタへのデータのセツトは、各演
算ステージの時刻T3において行なわれる。上述
の例では、演算ステージ(マシンサイクルC1)
の時刻T3においては、デイレイラツチ3010
にはiがセツトされているので、マシンサイクル
C1において線100,101上に送出された命
令アドレスCIA+と命令長CIL+はそれぞれ、i番
目のMCARとMILCにストアされる。デイレイラ
ツチ3010の値iは、同じ演算ステージの時刻
T3にデイレイラツチ3020にセツトされ、線
310を介してデイレイラツチ3100に入力さ
れている。この値iは、半マシンサイクルづつ遅
れて、順次デイレイラツチ3100,3101に
セツトされ、ラツチ3101の値は更に半マシン
サイクル遅れて、デイレイラツチ3103,31
04にセツトされる。ラツチ3103に値iがセ
ツトされる時刻は、命令Aの演算ステージのマシ
ンサイクル後の時刻T3である。ラツチ3103
はPERアドレスを読出すのに用いられ、ラツチ
3104はOLD PSW用の命令アドレスを読出す
のに用いられる。PERによる割込みは、完了形
割込みであるので、ラツチ3103へのセツトは
完了形割込みに関して後で説明する。ここでは、
ラツチ3104のセツトについてのみ説明する、
ラツチ3104はオアゲート82の出力によつて
セツトされる。オアゲート82にはアンドゲート
72,74の出力が供給される。
今ここで説明しているように通常の命令実行時
に生じた抑止型割込みに関しては、演算ステージ
信号250と割込み信号210が問題となる。
演算ステージ信号250は、すでに説明したよ
うに命令Aの演算ステージ(マシンサイクルC
1)の時刻T0から二つのマシンサイクルの間に
発生する。この信号250は、4つのデイレイラ
ツチ2500〜2503に、順次半マシンサイク
ルづつ遅れてセツトされる。従つてデイレイラツ
チ2503は、命令Aの演算ステージより2マシ
ンサイクル後のマシンサイクルC3の時刻T0
より、次のマシンサイクルC4の時刻T0まで
“1”を出力する。一方、割込み信号210は、
命令Aの演算ステージの次のマシンサイクルC2
の時刻T1から1マシンサイクルの間発生され4
つのデイレイラツチ2100〜2103に順次半
マシンサイクルづつ遅れてセツトされる。従つて
ラツチ2103の記憶値は、マシンサイクルC4
の時刻T1より次のマシンサイクルC5の時刻T1
までの間“1”となる。それ以外の間は“0”と
なる。したがつてラツチ3104へ値iをセツト
すべき、マシンサイクルC3の時刻T3において
は、ラツチ2503の出力“1”とラツチ210
3の反転出力“1”とがアンドゲート72に入力
されアンドゲート72の他の入力も“1”であ
る。従つてアンドゲート72の出力が“1”とな
り、この出力によりラツチ3104に値iがセツ
トされる。ラツチ3104に次の値をセツトすべ
きマシンサイクルC4の時刻T3においては、ラ
ツチ2103の記憶値は“1”となり、その反転
出力によりアンドゲート72の出力は“0”とな
る。従つて、ラツチ3104には新たな値がセツ
トされず、それまでの値iが保存される。その後
もラツチ2103の内容は更新されることはな
い。なお、この場合、ラツチ3103にも同じ値
がセツトされる。したがつて、この割込み処理の
ためのマイクロプログラムの実行中に、ラツチ3
104にて指定されるMCARとMILCから、命令
アドレスCIA+と命令長CIL+をそれぞれセレクタ
2202,2200が読出し、セレクタ2204
に送出する。このマイクロプログラムの中で
OLD PSW内へ格納すべき命令アドレスを読出す
マイクロ命令が実行されると、そのマイクロ命令
の解読信号262によりセレクタ2204は、セ
レクタ2202,2200の出力を選択し、上述
の命令アドレスCIA+と命令長CIL+を線220を
介して演算器23へ送出する。
(完了型割込み―分岐命令以外の命令の場合) 第6図bは分岐命令以外のある命令Aに対して
完了型割込みが発生した命令アドレス制御回路2
2に入力されるいくつかの信号を示す。第8図
は、この割込みが発生したときの命令アドレス制
御回路22内のいくつかの信号を示す。抑止型割
込みの場合と同じく、この命令Aの演算ステージ
(マシンサイクルC1)の時刻T1にラツチ301
0に値iがセツトされたとする。この命令Aにつ
づく次の命令Bの命令アドレスCIA+と命令長
CIL+は、このマシンサイクルC1の時刻T3
MCAR100A〜100DとMILC101A〜1
01Dの内のi番目のものにセツトされる。完了
型割込みは抑止型割込みとは次の点で異なる。(1)
割込み信号210は、この命令の演算ステージよ
り2マシンサイクル後のマシンサイクルC3の時
刻T1において出力される。(2)同時に、完了型割
込信号211も出力される。更に(3)割込み信号2
10の発生が抑止型割込みの場合よりも遅いた
め、演算ステージ開始信号は、命令Aの演算ステ
ージ(マシンサイクルC1)と次のマシンサイク
ルC2だけでなく、更に次のマシンサイクルC3
においても出力される。
したがつて、ラツチ2503からは、マシンサ
イクルC1の4マシンサイクル後のマシンサイク
ルC5の終りまで“1”が出力される。一方、ラ
ツチ2103の出力は、マシンサイクルC5の時
刻T1から次のマシンサイクルC6の時刻T1
間、“1”となる。また、完了型割込み信号21
1はデイレイラツチ2110,2111に半マシ
ンサイクルづつ遅れてセツトされる。従つて、ラ
ツチ2111の出力は、マシンサイクルC4の時
刻T1から次のマシンサイクルC5の時間T1まで
の間である。
ラツチ3103,3104に値iがセツトされ
るべき時刻は、マシンサイクルC3の時刻T3
ある。このとき、ラツチ2503の出力が“1”
で、ラツチ2103,2111の反転出力がとも
に“1”であるのでアンドゲート72は、ラツチ
3104のセツトを許可する信号を出力する。同
様にアンドゲート70は、ラツチ3103のセツ
トを許可する信号を出力する。こうして、ラツチ
3103,3104には、マシンサイクルC3の
時刻T3に値iがセツトされる。これらのラツチ
に新しい値をセツトする次のマシンサイクルC4
の時刻T3においては、ラツチ2111の反転出
力は“0”であるので、アンドゲート70,72
はそれぞれラツチ3103,3104への新しい
データのセツトを禁止する信号を出力しており、
これらのラツチの値iは保存される。完了型割込
み信号211が1マシンサイクルしかデイレイし
て出力されないのはこの時刻におけるラツチ31
03,3104の更新を禁止するためである。更
に、次のマシンサイクルC5の時刻T3において
は、ラツチ2103の反転出力が“0”であるの
で、同様にして、ラツチ3103,3104の値
iは更新されない。この後、これらのラツチは値
iを保持しつづける。ラツチ3104の値iは、
抑止型割込みの場合と同じく、割込み処理プログ
ラムの中で、OLD PSW用の命令アドレスと命令
長を読出すのに用いられる。また、この完了型割
込みがPERによる割込みの場合、この割込み処
理プログラムの中で、PERアドレスと命令長を
読出すマイクロ命令が実行されたときに、その解
読信号262とセレクタ2203,2201,2
204を用いてPERアドレスと命令長を、i番
目のMCAR,MILCより読出すことができる。
(完了型割込み―分岐命令の場合) 分岐命令の実行中に完了型割込みが生じた場合
であつて、分岐成功となつた場合の本発明の実施
例の動作の説明を第9図のタイムチヤートに即し
て説明する。なお、この場合、演算ステージ開始
信号250は、第8図の場合と同じように出力さ
れるので、第9図では、簡単化のためにこの信号
250は図示されていない。既に述べたように、
この場合、OLD PSW用命令アドレスおよびPER
用命令アドレスはそれぞれ分岐成功側のアドレス
および分岐命令のアドレスでなければならない。
通常の命令と同じく、この分岐命令の演算ステー
ジ(マシンサイクルC1)の時刻T3では、この
分岐命令につづく命令B(すなわち、分岐不成功
側の命令)のアドレスCIA+と分岐命令の命令長
CIL+がi番目のMCARとMILCにセツトされる、
この演算ステージで分岐が成功したか否かが分岐
命令判定回路24で判定される。分岐成功と判定
された場合、この演算ステージの時刻T1で線2
41を介してIユニツト1へ分岐成功信号が知ら
される。Iユニツト1は、次のPステージ(マシ
ンサイクルC2)で、命令Bへつづく命令にかわ
り、分岐成功側の命令のアドレスを線100を介
して命令アドレス制御回路22へ送る。したがつ
てこの分岐成功側の命令アドレスは、(i+1)
番目のMCARにセツトされる。このとき、MILC
には同時に線101上のデータがセツトされる
が、このデータは以後用いられない。この分岐命
令のPステージ(マシンサイクルC2)で完了型
割込みが検出されると、次のSステージ(マシン
サイクルC3)の時刻T1で割込み信号210と
完了型割込み信号211が発生される。
第8図に関して説明したのと同じように、マシ
ンサイクルCDでの時刻T1でラツチ3010にセ
ツトされたポインタ値iはラツチ3020,31
00,3101,3102を介して2マシンサイ
クルだけデイレイされる。すなわち、ラツチ31
02はマシンサイクルC4の時刻T1から1マシ
ンサイクルの間、値iを保持する。同様にマシン
サイクルC2の時刻T1でラツチ3010にセツ
トされた値(i+1)は、ラツチ3102にマシ
ンサイクルC4の時刻T1から1マシンサイクル
の間、保持される。アンドゲート70、オアゲー
ト82では、次のようにして、ラツチ3103,
3104へのポインタ値のセツトを制御する。分
岐命令において割込みが生じた場合、、分岐成功
ならば、分岐成功信号240がマシンサイクルC
2の時刻T1で発生され、デイレイラツチ240
0〜2403により2マシンサイクル分デイレイ
されて、ラツチ2403より出力される。しか
し、ラツチ3103のセツトを制御するアンドゲ
ート70にはラツチ2403の出力は入力されて
いない。したがつて、ラツチ3103には、第8
図の場合と同様に、マシンサイクルC3の時刻
T3で、ラツチ3102の出力値iがセツトさ
れ、それ以後、ラツチ3103の値は更新されな
い。
一方、ラツチ3104に値iがセツトされるべ
き、マシンサイクルC3の時刻T3においては、
ラツチ2403の出力は0であるので、分岐成功
信号240が存在しなかつた第8図の場合と同じ
く、ラツチ3104にも、ラツチ3102の値i
がセツトされる。
次のマシンサイクルC4の時刻T3においては
ラツチ2403の出力は“1”であり、かつ、ラ
ツチ2103の反転出力も“1”であるので、ア
ンドゲート74が、オアゲート82を介してラツ
チ3104に、記憶値の更新を許可する信号を送
出している。したがつて、ラツチ3104は、こ
の時刻に、ラツチ3102から出力されている値
(i+1)をセツトする。
次のマシンサイクルC5以後のマシンサイクル
の時刻T3においては、通常ラツチ2403の出
力はすでに“0”であるので、第8図の場合と同
様、ラツチ3104が更新されることはない。こ
うして、ラツチ3103,3104にそれぞれ分
岐命令自身のポインタ値iと、分岐成功側の命令
のポインタ値(i+1)とがストアされ、それぞ
れ、PERアドレスとその命令長およびOLD PSW
用の命令アドレスとその命令長をMCAR,MILC
から読出すのに用いられる。
第9図において、分岐成功信号240は二つの
マシンサイクルにわたり発生されている。第2番
目の分岐成功信号240は、上述したようにマシ
ンサイクルC3の時刻T1で発生されデイレイラ
ツチ2400〜2403により2マシンサイクル
分デイレイされてラツチ2403より出力され
る。従つてマシンサイクルC5の時刻T3におい
てラツチ2403の出力は“1”であるがラツチ
2103の反転出力が“0”であるのでアンドゲ
ート74はラツチ3104への新しいデータのセ
ツトを禁止する信号を出力しており、ラツチ31
04はマシンサイクルC4の時刻T3でセツトさ
れた値(i+1)を保持する。マシンサイクルC
6以後の時刻T3においてはラツチ2403の出
力は“0”であるので第8図の場合と同様ラツチ
3104が更新されることはない。
ラツチ3103のセツトを制御するアンドゲー
ト70にはラツチ2403の出力は入力されてい
ないのでラツチ3103には第8図の場合と同様
マシンサイクルC4以降ラツチ3103の値は更
新されない。
以上の説明から明らかなように、分岐命令で完
了型の割込みが生じ、かつ分岐不成功の場合は、
分岐成功信号240が出力されないので、ラツチ
3103,3104には、分岐命令自身のポイン
タ値iがセツトされ、保持される。また、分岐命
令で抑止型割込みが生じた場合は、分岐成功なら
ばラツチ3103,3104に値iと(i+1)
がセツトされ、分岐不成功ならば、ラツチ310
3,3104にともに値iがセツトされる。この
ことは、第4図〜第7図、第9図およびこれらの
説明を参照することにより理解できるので詳細な
説明は省略する。
割込み処理マイクロプログラムでNEW PSW
を読出し、これに指定例外がありプログラム割込
みがおこる場合を例に説明する。
この場合OLD PSW用命令アドレスはNEW
PSWの命令アドレスでなければならない。既に
説明したように割込み処理マイクロプログラムで
はOLD PSWを主記憶装置4へ退避したあと、同
じく主記憶装置4からNEW PSWの読出し、こ
れをIユニツト1へ送る。Iユニツト1では送ら
れたNEW PSWの命令アドレス、命令長を線1
00、線101へ送出する。これがマシンサイク
ルC1で動作されたとする。これをうけて割込み
処理マイクロプログラムが命令アドレスセツト指
令を出す。この指令は制御記憶装置27より線2
70を介してCSデコータ26へ送られる。CSデ
コーダ26では線270上のこの指令をデコード
して、マシンサイクルC1の時刻T0に線260
を介して命令アドレスセツト信号を命令アドレス
制御回路22へ送出する。22では図4のオアゲ
ート60が開いて、かつアンドゲート50を介し
て線300〜303の1つに出力される。
この結果線300〜303に接続されたi番目
のMCARとMILCにマシンサイクルC1の時刻T3
でデータのセツトされる。即ちi番目のMCAR
とMILCにNEW PSWの命令アドレスと命令長が
セツトされる。第8図に関して説明したのと同じ
ように同じマシンサイクルC1の時刻T1でラツ
チ3010にセツトされたポインタ値ではラツチ
3020,3100,3101,3102を介し
て2マシンサイクルだけデイレイされる。即ちラ
ツチ3102はマシンサイクルC3の時刻T1
ら1マシンサイクルの間値iを保持する。
一方、マシンサイクルC2の時刻T0で発生し
た線260もラツチ2600,2601,260
2,2603にそれぞれマシンサイクルC2の時
刻T2、マシンサイクルC3の時刻T0,T2、マシ
ンサイクルC3のT0においてセツトされる。
また、割込み信号210は抑止形割込みと同じ
くマシンサイクルC2の時刻T1に発生し、完了
形割込み信号211は発生しない。割込み信号2
10もラツチ2100,2101,2102,2
103を介して2マシンサイクルだけデイレイさ
れる。即ち、ラツチ2103はマシンサイクルC
4の時刻T1から1マシンサイクルの間発生す
る。
この結果、マシンサイクルC3の時刻T3
は、ラツチ2603の出力が“1”であるのでオ
アゲート80が開きまたラツチ2503、ラツチ
2103の出力も“0”であるのでアンドゲート
72開き、オアゲート82を介してラツチ310
2の出力iをラツチ3104にセツトする。
次のマシンサイクルC4以降においてはラツチ
2603は“0”であり、ラツチ2503、ラツ
チ2403の出力も“0”であるので、ラツチ3
104が更新されることはない。こうしてラツチ
3104にNEW PSWの命令アドレスをさすポ
インタ値iがストアされ、OLD PSW用の命令ア
ドレスをMCARから読出すのに用いられる。こ
の場合、命令長は不用である。
本発明の実施例では割込みの検出が1サイクル
遅れた場合をとりあげたが、検出が2サイクル以
上遅れるときにも本発明を容易に適用できる。
以上説明したように、該命令の演算ステージを
含めて、命令アドレスの更新信号250に注目す
ると最大3ケ発生するので、MCAR,MILCはそ
れぞれ3本で十分である。しかし、命令の再実行
に用いる命令アドレスも兼用させることや、拡張
性を考え、本発明の実施例では4本のMCAR構
成で示した。このようにしてIユニツトとEユニ
ツト2間の信号線を減らし、最大3本の
MCAR,MILCを用いるのみで、OLD PSW内の
命令アドレス及びPER用命令アドレスを発生す
ることができる。
なお、本発明は、以上の実施例の他に、特許請
求の範囲内で当業者が行いうる変形を含むもので
ある。
【図面の簡単な説明】
第1図は本発明が適用される従来の情報処理装
置のブロツク図、第2図は、本発明による演算ユ
ニツトのブロツク図、第3図は、第2図の演算ユ
ニツトに用いる命令アドレス制御回路のブロツク
図、第4図は、第3図の命令アドレス制御回路に
用いる入力制御回路の回路図、第5図は、第3図
の命令アドレス制御回路に用いる出力制御回路の
回路図、第6図a,bは、それぞれ抑止型割込み
および完了型割込みが発生した場合に第3図の命
令アドレス制御回路に入力されるいくつかの信号
のタイムチヤート、第7図は、抑止型割込みが生
じた場合に、第3図の命令アドレス制御回路内で
発生されるいくつかの信号タイムチヤート、第8
図は、分岐命令以外の命令で、完了型の割込みが
発生した場合に、第3図の命令アドレス制御回路
内で発生されるいくつかの信号のタイムチヤー
ト、第9図は、分岐命令で完了型割込みが発生し
た場合に、第3図の命令アドレス制御回路内で発
生されるいくつかの信号のタイムチヤートを示
す。

Claims (1)

    【特許請求の範囲】
  1. 1 命令の演算に先行して該命令を順次解読する
    先行制御ユニツトと、解読された命令の演算を行
    う演算ユニツトを有し、各命令を複数のステージ
    に分けてパイプラインで実行する情報処理装置に
    おいて、該先行制御ユニツトは、解読した命令に
    ついて、その演算を実行中に割込みが生じたとき
    に起動される割込み処理の終了後に使用すべき
    OLDPSW用の第1の命令アドレスおよび該割込
    みに関する事象記録に使用されるべき第2の命令
    アドレスとが異なるときには、該第1,第2の命
    令アドレスをそれぞれ印加されるタイミング信号
    に応答して順次該演算ユニツトに送出し、解読し
    した命令について該第1,第2の命令アドレスが
    同じときには、その一方の命令アドレスをタイミ
    ング信号に応答して該演算ユニツトに送出する手
    段を有し、該演算ユニツトは、複数の命令アドレ
    スレジスタと、該先行制御ユニツトから送出され
    た命令アドレスを該複数の命令アドレスレジスタ
    の内のセツトすべき命令アドレスレジスタを指定
    するポインタ値を、順次循還的に発生するポイン
    タ手段と、該ポインタ値を所定のマシンサイクル
    にわたり遅延して出力する遅延手段と、該遅延手
    段の出力が入力される第1,第2のポインタレジ
    スタと、該先行制御ユニツトによる命令アドレス
    の送出を指示したタイミング信号と割込み検出信
    号と割込みのタイプを示す信号とに応答して、割
    込まれた命令について第1の命令アドレスを示す
    ポインタ値が該遅延手段から出力される時点に
    て、該第1のポインタレジスタにセツト信号を出
    力し、該割込まれた命令についての第2の命令ア
    ドレスを示すポインタ値が該遅延手段から出力さ
    れる時点にて、該第2のポインタレジスタにセツ
    ト信号を出力する手段と、該複数の命令アドレス
    レジスタに接続され、該第1,第2のポインタレ
    ジスタによりそれぞれ指定されるレジスタから命
    令アドレスを読出すための手手段とを有する情報
    処理装置。
JP2814080A 1980-03-07 1980-03-07 Information processor Granted JPS56129950A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2814080A JPS56129950A (en) 1980-03-07 1980-03-07 Information processor
US06/241,370 US4409654A (en) 1980-03-07 1981-03-06 Data processor adapted for interruption to an instruction stream
DE3108568A DE3108568C2 (de) 1980-03-07 1981-03-06 Informationsverarbeitungseinrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2814080A JPS56129950A (en) 1980-03-07 1980-03-07 Information processor

Publications (2)

Publication Number Publication Date
JPS56129950A JPS56129950A (en) 1981-10-12
JPS6239780B2 true JPS6239780B2 (ja) 1987-08-25

Family

ID=12240457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2814080A Granted JPS56129950A (en) 1980-03-07 1980-03-07 Information processor

Country Status (3)

Country Link
US (1) US4409654A (ja)
JP (1) JPS56129950A (ja)
DE (1) DE3108568C2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4514804A (en) * 1981-11-25 1985-04-30 Nippon Electric Co., Ltd. Information handling apparatus having a high speed instruction-executing function
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
US4775927A (en) * 1984-10-31 1988-10-04 International Business Machines Corporation Processor including fetch operation for branch instruction with control tag
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor
JPH0752390B2 (ja) * 1985-05-07 1995-06-05 株式会社日立製作所 命令処理装置
US5062036A (en) * 1985-06-10 1991-10-29 Wang Laboratories, Inc. Instruction prefetcher
US4649478A (en) * 1985-06-28 1987-03-10 Hewlett-Packard Company Operation code selected overflow interrupts
JPS6341932A (ja) * 1985-08-22 1988-02-23 Nec Corp 分岐命令処理装置
JPH0638235B2 (ja) * 1986-08-14 1994-05-18 日本電気株式会社 情報処理装置
US4972317A (en) * 1986-10-06 1990-11-20 International Business Machines Corp. Microprocessor implemented data processing system capable of emulating execution of special instructions not within the established microprocessor instruction set by switching access from a main store portion of a memory
US5522053A (en) * 1988-02-23 1996-05-28 Mitsubishi Denki Kabushiki Kaisha Branch target and next instruction address calculation in a pipeline processor
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5117487A (en) * 1988-08-26 1992-05-26 Kabushiki Kaisha Toshiba Method for accessing microprocessor and microinstruction control type microprocessor including pointer register
JPH02306341A (ja) * 1989-02-03 1990-12-19 Nec Corp マイクロプロセッサ
JPH0314025A (ja) * 1989-06-13 1991-01-22 Nec Corp 命令実行制御方式
JP2875909B2 (ja) * 1991-07-12 1999-03-31 三菱電機株式会社 並列演算処理装置
SG75756A1 (en) * 1994-02-28 2000-10-24 Intel Corp Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
US6052801A (en) * 1995-05-10 2000-04-18 Intel Corporation Method and apparatus for providing breakpoints on a selectable address range
US5659679A (en) * 1995-05-30 1997-08-19 Intel Corporation Method and apparatus for providing breakpoints on taken jumps and for providing software profiling in a computer system
US5621886A (en) * 1995-06-19 1997-04-15 Intel Corporation Method and apparatus for providing efficient software debugging
US5740413A (en) * 1995-06-19 1998-04-14 Intel Corporation Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5961580A (en) * 1996-02-20 1999-10-05 Advanced Micro Devices, Inc. Apparatus and method for efficiently calculating a linear address in a microprocessor
US5835968A (en) * 1996-04-17 1998-11-10 Advanced Micro Devices, Inc. Apparatus for providing memory and register operands concurrently to functional units
US6085302A (en) * 1996-04-17 2000-07-04 Advanced Micro Devices, Inc. Microprocessor having address generation units for efficient generation of memory operation addresses
US5813045A (en) * 1996-07-24 1998-09-22 Advanced Micro Devices, Inc. Conditional early data address generation mechanism for a microprocessor
US6785803B1 (en) * 1996-11-13 2004-08-31 Intel Corporation Processor including replay queue to break livelocks
US8019914B1 (en) 2005-10-07 2011-09-13 Western Digital Technologies, Inc. Disk drive implementing shared buffer memory with reduced interrupt latency
CN101295279B (zh) * 2007-04-29 2012-05-09 国际商业机器公司 多线程环境下的调试程序的方法和系统
US8090933B2 (en) * 2008-02-12 2012-01-03 International Business Machines Corporation Methods computer program products and systems for unifying program event recording for branches and stores in the same dataflow
CN102141904B (zh) * 2011-03-31 2014-02-12 杭州中天微系统有限公司 支持中断屏蔽指令的数据处理器
US20170277539A1 (en) * 2016-03-24 2017-09-28 Imagination Technologies Limited Exception handling in processor using branch delay slot instruction set architecture
CN112959926B (zh) * 2021-03-05 2022-11-29 广西双英集团股份有限公司 一种面向动态多任务汽车座舱平台的时分控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4161026A (en) * 1977-11-22 1979-07-10 Honeywell Information Systems Inc. Hardware controlled transfers to microprogram control apparatus and return via microinstruction restart codes
JPS54107645A (en) * 1978-02-13 1979-08-23 Hitachi Ltd Information processor
US4279016A (en) * 1979-06-21 1981-07-14 International Business Machines Corporation Instruction pre-fetch microprocessor interrupt system

Also Published As

Publication number Publication date
DE3108568C2 (de) 1984-11-15
JPS56129950A (en) 1981-10-12
DE3108568A1 (de) 1982-02-04
US4409654A (en) 1983-10-11

Similar Documents

Publication Publication Date Title
JPS6239780B2 (ja)
US4626989A (en) Data processor with parallel-operating operation units
JP2539199B2 (ja) デジタルプロセッサ制御装置
US4507728A (en) Data processing system for parallel processing of different instructions
US3728692A (en) Instruction selection in a two-program counter instruction unit
US4541047A (en) Pipelined data processing system
JPH0346850B2 (ja)
EP0378415A2 (en) Multiple instruction dispatch mechanism
US4758949A (en) Information processing apparatus
US4318172A (en) Store data buffer control system
KR920007253B1 (ko) 마이크로 프로그램 제어 장치
JPH1185513A (ja) プロセッサ
US5586337A (en) Programmable controller with timing control
JP3055999B2 (ja) マイクロプログラム制御装置群
JP3055139B2 (ja) マイクロプログラム制御方式
JPS5896345A (ja) 階層型演算方式
JPS6242301B2 (ja)
JP2819753B2 (ja) パイプライン・マイクロプロセッサ
JPH0561660B2 (ja)
JPH05265746A (ja) マイクロプロセッサ
JPS6250855B2 (ja)
JPS6149695B2 (ja)
JPS6218933B2 (ja)
JPS59220844A (ja) 命令再実行制御方式
JPH07219771A (ja) 命令プロセッサ