JPH0545983B2 - - Google Patents

Info

Publication number
JPH0545983B2
JPH0545983B2 JP58062143A JP6214383A JPH0545983B2 JP H0545983 B2 JPH0545983 B2 JP H0545983B2 JP 58062143 A JP58062143 A JP 58062143A JP 6214383 A JP6214383 A JP 6214383A JP H0545983 B2 JPH0545983 B2 JP H0545983B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
register
arithmetic unit
executed
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
JP58062143A
Other languages
English (en)
Other versions
JPS6037037A (ja
Inventor
Yoichi Shintani
Kenichi Wada
Tsuguo Shimizu
Akira Yamaoka
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 JP6214383A priority Critical patent/JPS6037037A/ja
Publication of JPS6037037A publication Critical patent/JPS6037037A/ja
Publication of JPH0545983B2 publication Critical patent/JPH0545983B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

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)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はパイプライン方式のデイジタルコンピ
ユータに関する。
〔従来技術〕
このコンピユータでは各命令の実行過程を複数
のステージに分け、異なる命令の異なるステージ
を並列に実行することにより、実質上複数の命令
を並列に実行する。
しかし、ある命令Bの処理に必要なデータが、
先行する命令Aが指定する演算結果を利用して求
める場合には、その演算結果が確定するまで命令
Bの実行を遅延しなければならない。たとえば命
令Aが実行されるとベースレジスタ又はインデツ
クスレジスタが書きかえられ、しかも命令Bはそ
のベースレジスタ又はインデツクスレジスタの内
容と命令B内に含まれるアドレス情報を加算して
主メモリアクセスのための絶対アドレスを計算す
る場合がこれに相当する。このように、先行する
命令Aの演算結果を用いて命令Bの実行のための
アドレスを決めなければならない状態をアドレス
コンフリクトがあると呼ぶ。この場合、命令Bの
アドレス計算ステージは命令Aの演算が終了する
まで遅延される。
従来では、この遅延を少なくするために、すべ
ての命令が必要とする演算を実行できる主演算装
置とは別に一部の命令が要求する簡単な演算のみ
を実行できる従演算装置とを設けた。この際従演
算装置は構造が比較的簡単なためにベースレジス
タ又はインデツクスレジスタを含む汎用レジスタ
の近くに設けられ、主演算装置はその構造が複雑
で回路規模が大きくなるために汎用レジスタから
より遠くに設けられる。主演算装置と従演算装置
のいずれでも実行可能な演算は、両方の演算装置
で実行させる。たとえば、上述の命令Aが汎用レ
ジスタ内のデータのみを用いる演算を要求する場
合、この演算は主演算装置と従演算装置の両方で
実行される。主演算装置と従演算装置とが同時に
起動されたとしても、従演算装置が汎用レジスタ
の近くに設けられているために、演算に必要なオ
ペランドを汎用レジスタからより早く供給され、
したがつて従演算装置がより早く演算結果を出力
する。したがつて、命令Bのアドレス計算を従演
算装置の出力を用いるならば、命令Bのアドレス
計算は、主演算装置の出力を用いて行うより早く
開始できる。こうして、アドレスコンフリクトが
生じた命令Bのアドレス計算の遅延を少なくして
いる。すなわち、従演算装置によりアドレスコン
フリクトを早期に解消することにより処理の高速
化を図つている。
同じ問題が条件付分岐命令のときにも生じる。
この命令(以下ではBC命令と呼ぶ)の演算実行
サイクルにおいて、そのときの条件コードに基づ
き分岐成功か否かの判定が行なわれる。したがつ
て、分岐命令に先行する演算が条件コードを変更
する命令のときには、この先行命令の演算が終了
するまで分岐判定ができない。このように、先行
する命令の演算の終了の後にBC命令の分岐判定
をしなればならない状態を条件コードコンフリク
トがある状態と呼ぶ。従来技術のように、従演算
装置で求められた条件コードを用いてBC命令の
分岐判定をすることにより、BC命令の分岐判定
を早めることができる。
しかし、現実には高速の処理速度が要求されつ
つある。
〔発明の目的〕
本発明の目的はより処理速度の大きいパイプラ
イン制御のデータ処理装置を提供することであ
る。
〔発明の概要〕
従来技術では、命令Aに先行する命令Cのため
の主演算装置での演算が終了しないことには、命
令Aの演算は開始されない。このため命令Bの開
始も遅れる。命令Cのための演算を主演算装置が
実行しているときでも、従演算装置で命令Aのた
めの演算を実行できるようにすれば、従演算装置
の出力を利用する命令Bのアドレス計算を早める
ことができるはずである。
同様に、BC命令に二つ先行する命令Cのため
の演算を主演算装置で実行しているときには、
BC命令の一つ前の命令Aのための演算を開始で
きないならば、BC命令の演算の開始も遅れる。
しかし、命令Cのための演算を主演算装置で実行
しているときでも、この命令Aの演算を従演算装
置で実行できるならば、BC命令も、命令Aの従
演算装置での演算の終了後、従演算装置で実行で
きるようになる。
本発明はこの点に着目してなされたもので、複
数の演算を実行可能な第1の演算装置と、 該複数の演算の内、実行時間が比較的短い一部
の演算を実行可能な第2の演算装置と、 実行すべき複数の命令を時系列に解読する手段
と、 該解読手段により解読された複数の命令を一時
的に保持する手段と、 該保持手段に保持された複数の命令のそれぞれ
が要求する演算の実行を該第1の演算装置に順次
指示する第1の命令実行制御手段であつて、該第
1の演算装置において実行中の演算の終了に同期
して、かつ、該第1の演算装置による演算の終了
に非同期に、該保持手段に保持された次の命令の
演算の実行を指示する手段を有するものと、 該保持手段により保持された複数の命令の内、
該第2の演算装置で実行可能な演算を要求する一
部の複数の命令を選択し、それぞれの命令が要求
する演算の実行を該第2の演算装置に順次指示す
る、該第1の命令実行制御手段と並行して動作す
る第2の命令実行制御手段であつて、該第2の演
算装置において実行中の演算の終了に同期して、
かつ、該第1の演算装置による演算の終了に非同
期に、該保持手段に保持された命令の中の、該第
2の演算装置で実行可能な演算を要求する次の命
令の演算の実行を指示する手段により構成し、そ
れにより主演算装置での演算の終了を待たないで
従演算装置で次の演算を実行可能にした。
〔発明の実施例〕
〔装置の概要〕 6A,6Bは命令バツフア、8はこれらの命令
バツフアの一方から命令を選択的に読出すための
セレクト回路、10は命令レジスタ、12は命令
デコーダ、14はデコーダ12からの解読情報を
格納するための命令キユーレジスタであり、ここ
では三つの命令の解読情報を格納するために三つ
のレジスタからなる。16Aは命令キユーレジス
タ14内の命令を選択するためのセレクタであ
り、20Aはセレクタ16Aで選択された命令の
演算を実行するための第1演算実行ユニツトであ
る(以下第1Eユニツトと略する)。このユニツト
20Aはこのコンピユータが実行するすべての命
令が指定する演算を実行できるように構成されて
いる。18Aは、第1Eユニツト20Aに供給す
るオペランドあるいはそこからの演算結果を格納
するための第1の汎用レジスタ(これは実際には
複数の汎用レジスタからなるレジスタ群である)
であり、22Aは、命令の実行を制御する第1の
命令制御ユニツト(以下第1Iユニツトと呼ぶ)で
ある。
24は演算に必要なメモリオペランドのアドレ
スを算出するためのアドレス加算器であり、26
はメインメモリ、28はメインメモリ(以下では
主メモリと呼ぶこともある)26から読出された
メモリオペランドを格納するオペランドキユーバ
ツフアであり、命令キユーレジスタ14に格納さ
れる三つの命令に対応する三つのオペランドを格
納するための三つのバツフアからなる。セレクタ
30Aはバツフア28のオペランドを選択して第
1Eユニツト20Aに供給するためのセレクタで
ある。
以上の回路は、パイプライン方式により命令の
実行を行うのに基本的なものである。
本実施例では以上の他に、第2演算実行ユニツ
ト20B(以下、第2Eユニツトと呼ぶ)と、この
ユニツト20Bが実行すべき命令の解読情報を命
令キユーレジスタ14から選択するためのセレク
タ16Bと、第2Eユニツト20Bに送るべきオ
ペランドあるいはこのユニツトの演算結果を格納
するための第2の汎用レジスタ18B(これも実
際には複数の汎用レジスタからなるレジスタ群で
ある)と、第2Eユニツト20Bが必要とするメ
モリオペランドをオペランドキユーバツフア28
から選択するためのセレクタ30Bと、第2Eユ
ニツト20Bの実行を制御する第2命令制御ユニ
ツト(以下、単に第2Iユニツトと呼ぶ)22B
と、第1、第2Eユニツト20A,20Bから出
力される条件コードを記憶するためのレジスタ3
4A,34Bと、パイプライン的に流れて実行さ
れる複数の命令間のアドレスコンフリクトおよび
条件コードコンフリクトをそれぞれ検出する回路
32,36が設けられている。
第2Eユニツト20Bは、比較的簡単な演算、
たとえば加算、減算等を行う。本実施例では、こ
のユニツトは簡単化のために1マシンサイクルで
終了する演算のみを実行するように構成されてい
る。しかし、以下の説明からも明らかになるごと
く、本発明はこのような第2Eユニツトのみに限
られるものでない。第2Eユニツト20Bは比較
的簡単な演算を高速に実行するためのものである
から、第1Eユニツト20Aよりも、第2の汎用
レジスタ18Bとオペランドキユーバツフア28
の近くに設けることが望ましい。また、第1、第
2の汎用レジスタ18A,18Bが互いに同じ数
のレジスタからなる。
この装置においては、全命令は第1Eユニツト
20Aにより実行される。一方、これらの命令の
内、汎用レジスタ18Aを書きかえる命令で第
2Eユニツト20Bで実行可能な命令はこの第2E
ユニツト20Bでも実行される。したがつて、こ
のような命令は第1、第2Eユニツト20A,2
0Bの両方で実行される。しかし、第1、第2E
ユニツト20A,20Bでの同じ命令に対する同
じ演算は異なるタイミングで起動可能になつてい
る。すなわち、第1、第2Eユニツト20A,2
0Bがそれぞれ必要とする解読情報を別々に供給
するために二つのセレクタ16A,16Bが設け
られ、また、これらのユニツト20A,20Bが
それぞれ必要とするメモリオペランドを別々に供
給するために二つのセレクタ30A,30Bが設
けられ、第1Eユニツト20A、セレクタ16A,
30Aは第1Iユニツト32Aにより制御され、第
2Eユニツト20B、セレクタ16B,30Bは
第2Iユニツト22Bにより制御されるようになつ
ている。この結果、ある命令の第1Eユニツト2
0Aでの実行ができない状態においても、その命
令の第2Eユニツト20Bでの実行が可能となり、
これによりアドレスコンフリクト又は条件コード
コンフリクトの解消が早められるようになつてい
る。
〔命令フオーマツト〕
本装置で用いる命令は、(株)日立製作所Mシリー
ズコンピユータあるいは米国IBM社370シリーズ
コンピユータで用いられるのと同じものである。
これらの命令はいくつかのフオーマツトに分類さ
れるが、第3A図に本発明の理解に必要な一つの
フオーマツトを示す。このフオーマツトを持つ命
令の例は、乗算、加算、ロード命令で、それぞ
れ、簡単のためにM,A,L命令と以下では称す
る。これらの命令のビツト0−7はオペレーシヨ
ンコード(OP CODE)を表し、ビツト8−11は
レジスタ部(R)であり、M,A命令では演算の
ために読出すべきオペランドが格納されている汎
用レジスタ番号を示し、かつ、演算結果が格納さ
れるレジスタ番号をも示している。また、L命令
ではこのレジスタ部は、演算結果を格納すべきレ
ジスタ番号を示す。ビツト12−15および16−19は
それぞれインデツクス部(X)、ベース部(B)
であり、それぞれ主メモリ26から読出すべきス
トレジオペランドのアドレス算出に用いる汎用レ
ジスタ番号を示す。以下ではレジスタ部、インデ
ツクス部、ベース部が示す汎用レジスタ番号をそ
れぞれオペランドレジスタ番号ROP、インデツク
スレジスタ番号RX、ベースレジスタ番号RBと呼
ぶことにする。さらに、ビツト20−31は上記アド
レス算出に用いられる偏位値DISPを示すデイス
プレースメント部(D)である。
第3B図は条件付分岐命令の命令フオーマツト
を示す。このフオーマツトのビツト8−11はマス
ク部(M)であり、分岐成功となる条件コードの
値を指定するものである。以下では簡単のため
に、この命令をBC命令と呼ぶ。
BC命令のインデツクス部(X)、ベース部
(B)、偏位値DISPは、主メモリ26から分岐先
命令アドレスを計算するのに用いられる。
以下の実施例においてはM,A,L,BC命令
のみを用いて説明する。この内、第2Eユニツト
20Bで実行可能な命令はA,L命令であり、ま
た、条件コードを書きかえる命令はA命令であ
る。
〔命令の読出し〕
命令バツフア6A,6Bの一方は、現在処理さ
れようとしている命令を含む、メモリ上の連続し
た命令列(メインストリームと呼ぶ)を格納する
ために用いられ、他方は、メインストリーム上の
分岐命令の処理が開始された後にその分岐先命令
から始まるメモリ上の連続した命令列(ターゲツ
トストリームと呼ぶ)を格納するのに用いられ
る。処理された分岐命令が分岐成功と判定され、
分岐先命令の処理が始まると、それまでターゲツ
トストリームとされていた命令列はその後はメイ
ンストリームとみなされる。このように分岐命令
が分岐成功となる度にメインストリームを格納す
る命令バツフアは切り換わる。主メモリ26から
の命令列のフエツチおよびバツフア6A,6Bへ
の命令列の格納の制御は命令フエツチ回路(図示
せず)により実施される。読出し回路8はバツフ
ア6A,6Bの内、現在メインストリームを格納
しているものから、命令を順次選択して順次命令
レジスタ10に送出する。この読出し回路8はフ
リツプフロツプ9の値が1か0によりバツフア6
A,6Bを選択する。このフリツプフロツプ(以
下では、フリツプフロツプのことをFFと略記す
ることがある)9は、後述するように分岐成功信
号BCTKNが1となるごとにその値をかえる。
命令レジスタ10には、後述するように、命令
レジスタ10内の命令のデコードステージが実行
されるごとに、制御回路(図示せず)により読出
し回路8が出力する命令がセツトされる。
〔命令の実行動作の概要〕
命令レジスタ10にセツトされた命令は、次の
ステージに分けて実行される。
(Dステージ) これは命令の解読とアドレス計算のステージで
ある。すなわち、命令レジスタ10内の命令をデ
コーダ12で解読し解読情報を生成し、これを命
令キユーレジスタ14内の一つのレジスタにセツ
トする。さらに、命令レジスタ10内の命令のベ
ースレジスタ番号RB、インデツクスレジスタ番
号RXが第2汎用レジスタ18Bに線40を介し
て入力される。これらのレジスタ番号に基づいて
汎用レジスタ18Bから読出された二つのデータ
は線47を介してアドレス加算器24に入力さ
れ、線40を介して命令レジスタ10から入力さ
れる偏位値DISPと加算される。こうしてアドレ
スが計算される。
なお、本実施例においてデコーダ12は、命令
のオペレーシヨンコードOP CODEとオペランド
レジスタ番号ROPに基づき、次の情報を解読情報
として線42に出力する。
(1) OP CODE (2) RR:オペランド読出しレジスタ番号で、上
述のM,A命令ではオペランドレジスタ番号
ROPに等しい。
(3) RW:演算結果を書込むレジスタ番号で、上
述の三つの命令ではオペランドレジスタ番号
ROPに等しい。
(4) SUBGR:演算結果を汎用レジスタに格納す
べき命令の内、第2Eユニツト20Bで実行可
能な命令かどうかを示す第2演算表示信号。た
とえば、A,L命令のときにこの信号が1とな
る。
(5) CHGGR:演算結果を汎用レジスタに格納す
べき命令であることを示すレジスタ変更表示信
号。たとえば、M,A,L命令のときにこの信
号が1となる。
(6) SUBCC:条件コードを変更する命令の内、
第2Eユニツト20Bにおいて実行可能な命令
であることを示す第2演算表示信号。たとえば
A命令のときにこの信号が1となる。
(7) CHGCC:条件コードを変更する命令である
ことを示すCC変更表示信号。たとえば、A命
令のときにこの信号は1となる。
(8) BC:BC命令であることを示すBC命令表示
信号。
(9) MASK:BC命令のマスク部そのもの。
なお、命令デコーダ12はこれら以外の、命令
実行制御に必要な解読情報を生成するが、これは
従来技術と同じであり、また本発明に直接関係が
ないため説明を省く。
なお、このDステージは1マシンサイクルで終
了する。
(Aステージ) Dステージで計算されたメモリアドレスに基づ
き、主メモリ26からオペランドを読出し、オペ
ランドキユーバツフア28の一つのレジスタに格
納する。このステージも1マシンサイクルで終了
する。
(L1ステージ) 第1Eユニツト20Aに命令の解読情報と、演
算に必要なレジスタオペランドとメモリオペラン
ドをセツトする。すなわち、セレクタ16Aによ
り実行すべき命令の解読情報を選択して、線44
Aに出力する。選択された解読情報の内、読出し
レジスタ番号RRは第1汎用レジスタ18Aに入
力され、これに基づき必要なオペランド
RDATA1が読出され、このオペランドが線46
Aを介して第1Eユニツト20Aに送られる。一
方、解読情報の内、OP CODE、書込みレジスタ
番号RW、第2演算表示信号SUBGR、レジスタ
変更表示信号CHGGR、条件コード変更表示信号
CHGCCは第1Eユニツト20Aに送出される。
さらに、セレクタ30Aは、オペランドキユー
バツフア28から必要なメモリオペランド
MDATA1を選択して線45Aを介して第1Eユニ
ツト20Aに送出する。第1Eユニツト20Aは
こうして入力されたいろいろのデータを内部のレ
ジスタに取り込む。このステージも1マシンサイ
クルで実行される。
(E1ステージ) 第1Eユニツト20AがL1ステージで取り込ま
れたデータに基づき所望の演算を実行し、結果
WDATA1を線50Aに出力する。このとき、同
時に、すでに取り込まれた書込みレジスタ番号
RW、第1汎用レジスタの書込み信号WC1が出力
される。また、演算が条件コードを変更すべきも
ののときには演算結果に依存して条件コードCC1
を算出し、このコードCC1とセツト指示信号
SET1が線70Aに出力される。
なお、このステージが要するマシンサイクル数
は命令が必要とする演算の種類により異なる。最
も短かい演算は1マシンサイクルで終了する。な
お、このE1ステージに属するマシンサイクルの
最後のサイクルには演算終了信号EOP1が線48
Aに出力される。したがつて、1マシンサイクル
で終了する演算の場合、演算を開始したサイクル
で信号EOP1が出力される。
(P1ステージ) E1ステージで求められた演算結果WDATA1
は、書込みレジスタ番号RWで示される、第1汎
用レジスタ18A内のレジスタに書き込まれる。
この演算が第2Eユニツト20Bで実行できない
演算のときには、演算結果WDATA1、書込みレ
ジスタ番号RWが、第2汎用レジスタ18Bにも
入力され、同様の書込みが行なわれる。第2汎用
レジスタ18Bはすでに述べたごとく、第2Eユ
ニツト20Bによる演算結果WDATA2を書込む
ようになつているが、第2Eユニツト20Bは一
部の演算しか実行できない。したがつて、第1、
第2の汎用レジスタ18A,18Bのの内容の不
一致が生じ得る。第1Eユニツト20Aによる演
算結果WDATA1を第2汎用レジスタ18Bにも
書込むことにより、この不一致の発生を防止でき
る。したがつて、第2汎用レジスタを前述のアド
レス計算に用いても不都合が生じない。また、条
件コードを変更する演算のときには、算出された
条件コードCC1がセツト信号SET1に応答してレ
ジスタ34Aにセツトされる。なお、このステー
ジはE1ステージにつづく1マシンサイクルで終
了する。
以上のようにして、一つの命令の実行が終了す
る。しかし、第2Eユニツト20Bで実行可能で
かつ汎用レジスタもしくは条件コードを書きかえ
る命令は第2Eユニツト20Bでも実行されるた
めこれらのステージで説明される動作以外に次の
ステージも実行される。
(L2ステージ) 第2Eユニツト20Bに演算に必要な解読情報、
レジスタオペランド、メモリオペランドをセツト
する。すなわち、セレクタ16Bにより実行すべ
き命令の解読情報を選択して、線44Bに出力す
る。選択された解読情報の内、読出しレジスタ番
号RRは第2汎用レジスタ18Bに入力され、こ
れに基づき必要なオペランドRDATA2が読出さ
れ、このオペランドが線46Bを介して第2Eユ
ニツト20Bに送られる。一方、解読情報の内、
OP CODE、書込みレジスタ番号RW、第2演算
表示信号SUBGR、SUBCC、条件コード変更表
示信号CHGCCは第2Eユニツト20Bに送出され
る。
さらに、セレクタ30Bは、オペランドキユー
バツフア28から必要なメモリオペランド
MDATA2を選択して線45Bを介して第2Eユニ
ツト20Bに送出する。第2Eユニツト20Bは
こうして入力されたいろいろのデータを内部のレ
ジスタに取り込む。このステージも1マシンサイ
クルで実行される。
(E2ステージ) 第2演算ユニツト20BがL2ステージで取り
込まれたデータに基づき所望の演算を実行し、結
果WDATA2を線50Bに出力する。このとき、
同時に、すでに取り込まれた書込みレジスタ番号
RWも出力される。
さらにこのとき、演算が条件コードを書きかえ
る命令のときには条件コードCC2が算出される。
なお、第2Eユニツト20Bは比較的簡単な演
算、たとえば、加算、減算、ロード等のみを1マ
シンサイクルで行なうもので、乗算等のやや複雑
な演算は行えないものと仮定している。したがつ
て、このE2ステージは1マシンサイクルで終了
する。一般的には、第2Eユニツト20Bは以上
のものに限定されないので、このE2ステージは、
第2Eユニツト20Bが実行する演算により異な
るマシンサイクルで終了すればよい。その場合、
そのステージの最終サイクルでは演算終了信号
EOP2が線48Bに出力されるので、この最後の
サイクルをEOP2サイクルと呼ぶことができる。
したがつて、現在、仮定しているように、第2E
ユニツト20Bは必らず1マシンサイクルで終了
する演算のみを行う場合には、このE2ステージ
はEOP2サイクルのみからなる。
(P2ステージ) E2ステージで求められた演算結果WDATA2
は、書込みレジスタ番号RWで示される、第2汎
用レジスタ18B内のレジスタに書込まれる。ま
た、算出された条件コードCC2が線70Bを介し
てレジスタ34Bにセツトされる。
〔動作の詳細〕アドレスコンフリクトがある場
合 以下では、まず、アドレスコンフリクトの場合
の装置動作を通して装置の詳細を説明する。装置
の内、条件コードに関与する部分とその動作の説
明は後でまとめて説明する。
以下では、アドレスコンフリクトがある時の装
置動作の説明のためM,A,L命令がこの順に実
行されると仮定する。また、A命令のオペランド
レジスタ番号ROPとL命令のアドレスレジスタ番
号RX又はRBが等しく、したがつてこれらの二つ
の命令間にアドレスコンフリクトが生じると仮定
する。ただし、M,A命令間、M,L命令間ある
いはM,A,L命令とこれらに先行する命令間に
はアドレスコンフリクトがないものと仮定する。
また、条件コードコンフリクトはどの命令間にも
存在しないと仮定する。
第9A〜9Cのタイムチヤートを参照して説明
する。
(Dステージの詳細) Dステージが実行されるためには、命令の解読
情報が命令キユーレジスタ14にセツトされねば
ならない。この命令キユーレジスタ14へのセツ
トは第1Iユニツト22Aが制御する。この制御の
仕方は、従来技術によるものと本質的に変わらな
い。すなわち、命令キユーレジスタ14に新たに
解読情報がセツトできるのは、ある命令が命令レ
ジスタ10にセツトされ、しかも命令キユーレジ
スタ14に空きのレジスタがあり、さらに、その
命令が命令キユーレジスタ14内にすでにセツト
されている命令もしくはすでに実行中の命令に対
してアドレスコンフリクトと条件コードコンフリ
クトがない場合である。
アドレスコンフリクトの検出のために、命令レ
ジスタ10にセツトされた命令のアドレスレジス
タ部RB,RXは線40を介してアドレスコンフリ
クト検出回路32に入力され、そこで後述するよ
うにしてアドレスコンフリクトの有無が検出さ
れ、検出結果ACONFが第1Iユニツト22Aに線
58を介して入力される。同様に、後述するよう
に条件コードコンフリクトの検出が回路36で行
なわれ、検出結果CCONFが第1Iユニツト22A
に線72を介して入力される。第1Iユニツト22
Aには第4図に示すように、制御回路(図示せ
ず)により命令レジスタ10に新たな命令がセツ
トされるごとに、その制御回路によりセツトされ
るフリツプフロツプ70を有する。さらに、キユ
ーコントロール回路75は命令キユーレジスタ1
4の各レジスタが空いているか否かを表示するた
めの三つのフリツプフロツプ(図示せず)を有
し、これらの三つのフリツプフロツプのセツト状
態により、どのレジスタも空いていないときにキ
ユービジー信号BSYを出力するようになつてい
る。デコード成功決定回路71は、フリツプフロ
ツプ70の出力が1でコンフリクト信号
ACONF、CCONF、キユービジー信号BSYがい
ずれも0のときに、デコード成功信号DSを線5
6Aを介して、命令キユーレジスタ14に送り、
デコーダ12からの解読情報の取り込みを指示す
る。命令キユーレジスタ14内のどのレジスタに
この解読情報を取り込むかを指示するための入力
ポインタIPはキユーコントロール回路75が線
56Aを介して命令キユーレジスタ14に送る。
この入力ポインタIPを出力するため、キユーコ
ントロール回路75は内部に0、1、2を順次カ
ウントするカウンタ(図示せず)を有し、そのカ
ウント値を入力ポインタIPとして出力するよう
になつている。このカウンタの更新はデコード成
功信号DSの立上がりから1サイクル遅れて行な
われる。また、信号DSによりフリツプフロツプ
70がリセツトされ、制御回路(図示せず)がこ
のリセツトに応答して命令レジスタ10に次の命
令をセツトする。今、命令キユーレジスタ14内
の2番、0番、1番のレジスタに前述のM,A,
L命令がこの順でセツトされると仮定する。ま
た、各サイクルの最初および中間のタイミングを
T0,T2と呼ぶことにする。また添付した図面内
のレジスタ又はフリツプフロツプの脇に記載され
た(T0)又は(T2)はこれらのレジスタ又はフ
リツプフロツプの内容が変更されるタイミングが
T0又はT2であることを示す。さて、M命令が命
令レジスタ10に次の命令をタイミングC0,T0
(すなわち、サイクルC0内のタイミングT0、以下
同様)にセツトされる。
M命令は先行する他の命令に対してアドレスコ
ンフリクト又は条件コードコンフリクトがなく、
また、命令キユーレジスタ14がビジーでないと
仮定すると、デコード成功信号DSがタイミング
C0,T2にて出力され、入力ポインタIPはそのと
き仮定により値2を有しているので、これらの信
号によりM命令の解読情報は命令キユーレジスタ
14内の2番のレジスタにタイミングC1,T0に
セツトされる。
この後、タイミングC1,T2に入力ポインタIP
は0に更新される。タイミングC1,T0にはA命
令が命令レジスタ10にセツトされ、A命令のD
ステージがM命令のDステージより1サイクル遅
れて、全く同じように実行される。この結果、命
令キユーレジスタ14内の0番のレジスタにA命
令の解読情報がセツトされ、かつ入力ポインタは
1に更新される。
タイミングC2,T0には次のL命令が命令レジ
スタ10にセツトされる。しかし、このL命令
は、仮定により、すでに命令キユーレジスタ14
にセツトされているA命令に対してアドレスコン
フリクトがある。したがつて、アドレスコンフリ
クト検出回路32の出力ACONFが後述するよう
に1となり、デコード成功決定回路71はデコー
ド成功信号DSをこのアドレスコンフリクトの解
除が検出されるまで出力しない。したがつて、L
命令は命令キユーレジスタ14に取り込まれず、
Dステージの実行が延期される。本実施例では、
L命令のDステージが実行されるのは、後述する
ごとく、サイクルC5である。したがつて入力ポ
インタIPはそれまで値1を保持しつづける。
なお、Dステージにおけるアドレス計算は次の
ようなタイミングの下で行なわれる。
M命令がタイミングC0,T0にて命令レジスタ
10にセツトされた後、第2汎用レジスタ18B
からこの命令が指定するアドレス情報がただちに
読出され、アドレス加算器24では、入力された
データを一端内部のレジスタ(図示せず)に保持
した後、1サイクルで加算を行い、その結果を出
力する。従つて、アドレス加算器24が出力する
メモリアドレスはタイミングC0,T2に確定する。
A命令のためのアドレス計算はM命令より1サ
イクル遅れて全く同じようになされ、A命令のた
めのメモリアドレスはタイミングC1,T2に確定
する。
第1Iユニツト22A内のキユーコントロール回
路75では、命令キユーレジスタ14に新たな解
読情報をセツトするごとに、このレジスタ14内
の各レジスタが空いているか否かを表示するフリ
ツプフロツプ(図示せず)の内、該当するものを
セツトする。
(Aステージの詳細) このステージでは、Dステージで求められたメ
モリアドレスに基づき主メモリ26からメモリオ
ペランドが読出され、オペランドキユーバツフア
28にセツトされる。すでに述べたごとく、M命
令の解読情報が命令キユーレジスタ14内の2番
のレジスタにセツトされている。したがつて、M
命令に対応するメモリオペランドも、オペランド
キユーバツフア28内の2番のバツフアにセツト
される。このため、第1Iユニツト22Aは入力ポ
インタIP、デコード成功信号DSをそれぞれ、フ
リツプフロツプ73,74で1サイクル遅延した
信号IPD,DSDを線57Aを介してバツフア28
に供給するようになつている。この結果、M命令
のためのメモリオペランドは信号DSD,IPDに応
答してタイミングC2,T0にバツフア28内の2
番のレジスタにセツトされる。同様にA命令のた
めのメモリオペランドはタイミングC3,T0にバ
ツフア28内の0番のレジスタにセツトされる。
(L1ステージの詳細) 各命令のL1ステージはそれに先行する命令の
E1ステージが終了したとき、すなわち、第1Eユ
ニツトから第1演算終了信号EOP1が出力された
ときに開始される。このL1ステージでは命令キ
ユーレジスタ14とオペランドキユーバツフア2
8からそれぞれ一つの解読情報と一つのメモリオ
ペランドがそれぞれセレクタ16A,30Aによ
り選択され、第1Eユニツト20Aにセツトされ
る。
これらの制御は第1Iユニツト22Aが行う。す
なわち、第1Iユニツト22A内のキユーコントロ
ール回路75は、セレクタ16A,30Aに選択
すべきレジスタ番号又はバツフア番号を示す出力
ポインタOP1を線53Aを介して送出するカウン
タ(図示せず)を有する。このカウンタは、0、
1、2の値を順次繰り返しカウントするものであ
る。キユーコントロール回路75は、第1Eユニ
ツト20Aから第1演算終了信号EOP1が出力さ
れると、第1演算開始信号BOP1を線52Aを介
して1サイクルの間出力するとともに、信号
BOP1が出力されたサイクルの次のサイクルのタ
イミングT0で出力ポインタOP1を更新する。後
述するように信号EOP1は、先行する命令のE1ス
テージの最終サイクルのタイミングT0からその
後信号BOP1が入力されるまで第1Eユニツト20
Aから出力されるようになつている。M命令に先
行する命令(これを今、命令Xと呼ぶ)のE1ス
テージがサイクルC2にて終了すると仮定すると、
信号EOP1はタイミングC2,T0から1サイクル
の間出力される。このときキユーコントロール回
路75は出力ポインタOP1として仮定によりM命
令を選択するための値2を出力しており、またタ
イミングC2,T0から1サイクルの間、第1演算
開始信号BOP1を出力する。なお、出力ポインタ
OP1は、タイミングC3,T0において、0に更新
される。
以上のごとくにして、サイクルC2において出
力される出力ポインタOP1の値2に基づき、セレ
クタ16A,30AからM命令の解読情報、メモ
リオペランドの選択が行なわれる。一方、サイク
ルC2において出力された第1演算開始信号BOP1
に基づき、第1Eユニツト20Aはこれらの選択
情報を取り込む。このとき、セレクタ16Aによ
り選択された解読情報の内、読出しレジスタ番号
RRは第1汎用レジスタ18Aに入力され、それ
に基づき読出されたレジスタオペランド
RDATA1が線46Aを介して第1Eユニツト20
Aに入力される。第1Eユニツト20Aはこのオ
ペランドRDATA1も取り込む。
第1Eユニツト20Aは第5図にあるように第
1演算回路400とフリツプフロツプ401,4
03およびアンドゲート405からなる。第1演
算回路400は、線44Aを介してセレクタ16
Aから入力されるOP CODE、書込みレジスタ番
号RW、レジスタ変更表示信号CHGGR、条件コ
ード変更表示信号CHGCCと、線46Aを介して
第1汎用レジスタ18Aから入力されるレジスタ
オペランドRDATA1と、線45Aを介してセレ
クタ30Aから入力されるメモリオペランド
MDATA1とを、線52Aを介して第1Iユニツト
から入力される演算開始信号BOP1に応答して、
その内部のレジスタ(図示せず)にセツトする。
一方、線44Aを介してセレクタ16Aから入力
される第2演算指示信号SUBGRは、信号BOP1
に応答してフリツプフロツプ401にセツトされ
る。こうして、第1Eユニツト20Aにおける入
力データの取り込みが行なわれる。
今考えている例では、タイミングC2,T0にお
いて、M命令に関連するデータが第1Eユニツト
20Aに取り込まれ、M命令のL1ステージが終
了する。しかし、次のA命令のL1ステージは、
M命令に対する演算終了信号EOP1が出力される
タイミング(ここではサイクルC7)まで実行さ
れない。
(E1ステージの詳細) 第1演算回路400は、入力されたOP CODE
にて指定される演算、たとえばM命令に対しては
乗算を、レジスタオペランドRDATA1、メモリ
オペランドMDATA1に対して実行し、結果デー
タWDATA1を線50Aに出力するとともに、演
算の最終サイクルのタイミングT0からその後信
号BOP1が入力されるまで、演算終了信号EOP1
を出力する。このとき、入力された解読情報内の
書込みレジスタ番号RWは結果データWDATA1
が算出されるまで、回路400内に保持されてお
り、結果データWDATA1とともに線50Aに出
力されるようになつている。また入力された条件
コード変更表示信号CHGCCが1のときには、回
路400はOP CODEと結果データWDATA1に
依存して、条件コードCC1を算出し、この信号と
ともにセツト信号SET1をこの最終サイクルで出
力する。信号CHGCCが0のときには信号SET1
は0のままである。さらに、回路400は取込ま
れているレジスタ変更表示信号CHGGRが1のと
きには、結果データWDATA1の出力と同期し
て、書込み信号WC1を線50Aに出力するよう
に構成されている。回路400はたとえばマイク
ロ命令制御の回路により構成される。
一方、フリツプフロツプ401にタイミング
T0でセツトされた第2演算表示信号SUBGRは
同じサイクル内のタイミングT2でフリツプフロ
ツプ403に移される。このフリツプフロツプ4
03内の信号SUBGRの反転信号と回路400か
ら線50Aに出力される書込み信号WC1がアン
ドゲート405に入力される。したがつて、ゲー
ト405の出力WC12は、第1演算回路400で
実行された演算が第2Eユニツトでは実行不可能
でかつ汎用レジスタを書きかえるもののときにの
み1となる。この出力WC12は演算結果
WDATA1を第2汎用レジスタ18Bに書込むの
に用いられる。
今考慮しているM命令は、仮定により5マシン
サイクルを演算に必要とするので、結果データ
WDATA1、信号EOP1が出力されるのは、それ
ぞれサイクルC8,C7においてである。また、こ
の命令は、第2Eユニツト20Bで実行できない
と仮定しているので、出力WC12は1となる。
なお、サイクルC7において信号EOP1が出力さ
れると、次のA命令のための演算開始信号BOP1
が第1Iユニツト22Aから出力されるので、A命
令のL1ステージが実行可能になる。A命令のE1
ステージは1サイクルのみ必要とするので、サイ
クルC8のみで終了する。
(P1ステージの詳細) 第1Eユニツト20Aから線50A上に出力さ
れた結果データWDATA1は、その線上の書込み
信号WC1,WC12に基づき、第1、第2汎用レジ
スタ18A,18B内の、書込みレジスタ番号
RWを有するレジスタにタイミングT2で書き込ま
れる。また、算出された条件コードCC1はセツト
信号SET1に応答して、レジスタ34Aに書込ま
れる。したがつて、レジスタ34Aは条件コード
を変更する命令の内、最も新しく実行された命令
が出力した条件コードがセツトされている。こう
して、M命令、A命令のP1ステージはそれぞれ、
サイクルC8,C9で実行される。ただし、A命令
は、第2Eユニツト20Bで実行可能のため
(SUBGR=1)、WC12=0となり、結果データ
WDATA1は第2汎用レジスタ18Bには書き込
まれない。また、M命令は条件コードを変更する
命令でないのでレジスタ34Aの内容は変更され
ない。またA命令の演算により求まつた条件コー
ドCC1はサイクルC9でレジスタ34Aにセツト
されることになる。
以上のようにして、M,A命令のD〜P1ステ
ージが実行される。しかし、次のL命令はA命令
に対してアドレスコンフリクトを有するので、こ
のコンフリクトが解消するまで、L命令のDステ
ージは実行されない。従来技術によると、このコ
ンフリクトが解除されるのはA命令のE1ステー
ジの終了時すなわちC8サイクルであり、したが
つて、L命令のDステージはC9サイクルから開
始される。
本実施例では、L命令のDステージの開始を早
めるために、第2Eユニツト20Bが、A命令の
E1ステージの終了前に起動されるようになつて
いる。以下、この点をさらに詳細に説明する。
(L2ステージの詳細) このステージは第2Eユニツト20Bに必要な
データをセツトするステージである。このステー
ジは第2Iユニツト22Bにより制御される。この
第2Iユニツト22Bには第6図に示されるよう
に、命令キユーレジスタ14内のレジスタ#0〜
#2に対応してフリツプフロツプ101〜103
がそれぞれ設けられ、これらのフリツプフロツプ
は命令キユーレジスタ14内の対応するレジスタ
に有効な解読情報がセツトされているか否かを表
示するためのものである。すなわち、デコーダ1
00はデコード成功信号DSにより起動され、そ
こに入力される入力ポインタIPで示されるレジ
スタ番号に対応するフリツプフロツプ101〜1
03のいずれかに対して1信号を出力する。この
信号は、フリツプフロツプ101〜103内の、
入力ポインタIPに対応する一つのフリツプフロ
ツプのデータ端子に入力され、さらにオアゲート
107〜109の一つを介して、その一つのフリ
ツプフロツプのクロツク端子に入力される。こう
して、入力ポインタIPに対応してフリツプフロ
ツプ101〜103の一つがセツトされる。な
お、これらのフリツプフロツプ101〜103は
タイミングT0でのみ入力データの取り込みを行
うものとする。さらにフリツプフロツプ120〜
122はそれぞれフリツプフロツプ101〜10
3の出力を1サイクル遅延して出力するためのも
ので、これらのフリツプフロツプ120〜122
もタイミングT0でのみ出力を変化するものとす
る。
フリツプフロツプ149,150,153,1
54、デコーダ148は0,1,2を順次カウン
トするカウンタを構成し、フリツプフロツプ15
3,154の出力は、第2Eユニツト20Bで実
行されるべき命令に関する情報の選択のための出
力ポインタOP2として用いられる。すわなち、こ
の出力ポインタOP2は、線53Bを介してセレク
タ16B,30Bに入力され、実行すべき命令の
解読情報およびメモリオペランドMDATA2がこ
れらのセレクタにより選択的に線44B,45B
にそれぞれ出力されるようになる。しかし、これ
らの情報を第2Eユニツト20Bにセツトしても
よいのは第2Eユニツト20Bにおいて先行する
命令のための演算が終了し、かつ、次にL2ステ
ージを実行しようとする命令のための情報が命令
キユーレジスタ14、オペランドキユーバツフア
28にセツトされている場合である。第2Eユニ
ツト20Bは後述のように第2演算開始信号
BOP2に応答してセレクタ16B,30Bの出力
をセツトし、演算の最終サイクルから終了信号
EOP2を出力するようになつている。第2Iユニツ
ト22Bでは、出力ポインタOP2によりフリツプ
フロツプ120〜122の出力の一つがセレクタ
129により選択される。この選択された信号は
出力ポインタOP2で示される命令キユーレジスタ
14内のレジスタに実行すべき命令がセツトされ
ていることを示している。したがつて、第2Iユニ
ツト22Bは、線48Bを介して入力される信号
EOP2とセレクタ129の出力信号との論理積を
とり、両方の信号がともに1のときにのみ演算開
始信号BOP2を線52Bに出力するようになつて
いる。
結局、このL2ステージでは次のようにして、
第2Eユニツト20Bに必要な情報がセツトされ
る。セレクタ16Bにより選択された解読情報の
内、OP CODE、書込みレジスタ番号RW、第2
演算表示信号SUBGR,SUBCCおよび条件コー
ド変更表示信号CHGCCは線44Bを介して直接
第2Eユニツト20Bに送られ、読出しレジスタ
番号RRは第2汎用レジスタ18Bに入力され、
レジスタオペランドRDATA2の読出しに用いら
れる。このオペランドは線46Bを介して第2E
ユニツト20Bに入力される。セレクタ30Bに
より選択されたメモリオペランドMDATA2は線
45Bを介して直接第2Eユニツト20Bに送ら
れる。第2Eユニツト20Bはこれらの情報を信
号BOP2に応答して取り込む。
なお、第2Iユニツト22Bでは、第6図に示す
ように信号BOP2に応答してデコーダ148が起
動され、そのときの出力ポインタOP2をカウント
アツプした値を示す信号をフリツプフロツプ14
9,150に出力する。こうして出力ポインタ
OP2は、信号BOP2が出力されるごとに更新され
ることになる。また、信号BOP2によりデコーダ
113が起動される。このデコーダ113はその
ときの出力ポインタの値に応じて、オアゲート1
07〜109の一つに信号1を送る。このときデ
コーダ100にはデコード成功信号DSが入力さ
れていないかあるいは信号DSが入力されていて
もそのときの入力ポインタの値は出力ポインタ
OP2の値と異なるので、出力ポインタOP2に対応
するフリツプフロツプ101又は102又は10
3のデータ端子には、デコーダ100から信号1
が入力されることはない。したがつて、出力ポイ
ンタOP2に対応してフリツプフロツプ101〜1
03の一つがリセツトされることになる。
すでに述べたように、仮定では、M命令のDス
テージのためのデコード成功信号DSはタイミン
グC0,T2で出力され、このときの入力ポインタ
IPは2であるので、フリツプフロツプ103が
タイミングC1,T0でセツトされ、フリツプフロ
ツプ122がこれより1サイクル遅れたタイミン
グC2,T0でセツトされる。このときフリツプフ
ロツプ153,154より出力される出力ポイン
タOP2は仮定により、L2ステージを実行すべき
M命令に対するものでなければならず、値2を示
す。したがつて、セレクタ129の出力はタイミ
ングC2,T0では1であり、このときM命令の前
の命令Xに対する第2Eユニツトでの演算が終了
していると仮定しているので、信号EOP2は1で
ある。したがつて、信号BOP2も1となる。こう
して第2Eユニツト20Bに対してM命令の実行
に必要なデータがセツトされる。こうして、M命
令のL2ステージがサイクルC2に行なわれる。ま
た、この信号BOP2によりインクリメンタ148
が起動され、そのときの出力ポインタOP2をカウ
ントアツプした値0を出力する。この値はフリツ
プフロツプ149,150にタイミングC2,T2
で取り込まれ、さらに、フリツプフロツプ15
3,154にタイミングC3,T0で取り込まれる。
したがつて、出力ポインタOP2はサイクルC3で
は、次のA命令のための値0に更新される。
なお、信号BOP2によりデコーダ113がタイ
ミングC2,T0で起動され、そのときの出力ポイ
ンタOP2の値2に対するORゲート109に1信
号を出力する。この結果、フリツプフロツプ10
3がタイミングC3,T0でリセツトされる。なぜ
なら、このときには、入力ポインタIPは1に更
新されており、フリツプフロツプ103のデータ
入力端子に1が入力されることはないからであ
る。
全く同じようにA命令のL2ステージが行なわ
れ、サイクルC3にこの命令のための信号BOP2が
出力される。この間、出力ポインタOP2はタイミ
ングC3,T0で0になり、次にタイミングC4,T0
で1に更新される。
ただし、次のL命令はA命令に対してアドレス
コンフリクトがあるため、この命令のためのデコ
ード成功信号DSがタイミングC5,T2で出力され
るので、L命令のL2ステージはサイクルC7まで
延期される。したがつて、出力ポインタOP2はタ
イミングC4,T0での値1をそれまで保持しつづ
けている。
タイミングC5,T2でL命令のためのデコード
成功信号DSが出力されると、タイミングC6,T0
でフリツプフロツプ102がセツトされる。その
後M,A命令の場合と全く同様にタイミングC7,
T0でL命令のための演算開始信号BOP2が出力
される。
(E2ステージの動作) 第2Eユニツト20Bでは第7図に示すように
レジスタ298〜305にそれぞれ、第2演算表
示信号SUBCC、条件コード変更表示信号
CHGCC、演算開始信号BOP2、第2演算表示信
号SUBGR、書込みレジスタ番号RW、オペレー
シヨンコードOP CODE、レジスタオペランド
RDATA2、メモリオペランドMDATA2が信号
BOP2に応答してL2ステージの動作によりセツト
されている。第2演算回路307は信号BOP2で
起動され、レジスタ303にセツトされたOP
CODEにより指定される演算を行ない、演算結果
WDATA2をレジスタ301に送出するととも
に、また、OP CODEが条件コードを変更する演
算を指示しているときには、条件コードCC2を演
算結果WDATA2と演算の種類に依存して算出し
て出力する。また、演算の最終サイクルで線48
Bに演算終了信号EOP2を出力するようになつて
いる。この信号は、次にBOP2信号が入力される
まで毎サイクル出力される。また、入力された
OP CODEで指定される演算をこの第2演算回路
307が実行できないときでも、この回路307
はこの信号EOP2を次に信号BOP2信号が入力さ
れるまで毎サイクル出力する。したがつて、現
在、仮定では、第2演算回路307は1マシンサ
イクルの演算しか実行しないと仮定しているの
で、信号EOP2は毎サイクル出力されることにな
る。
また、レジスタ310に演算結果WDATA2が
タイミングT0でセツトされ、レジスタ302に
セツトされている書込みレジスタ番号RWがレジ
スタ309にタイミングT2でセツトされ、同様
にレジスタ300,301にそれぞれセツトされ
た信号BOP2とSUBGRとが論理積ゲートを介し
てタイミングT2でレジスタ308にセツトされ
る。レジスタ308の出力はその値が1のときに
第2汎用レジスタ18Bに結果WDATA2を書込
むべきことを示す書込み信号WC2である。
レジスタ298の出力VALIDは条件コード
CC2が有効であることを示す信号であり、第2演
算表示信号SUBCCが1である命令のL2ステージ
が実行されたときに1となる。すなわち、L2ス
テージが実行された命令の演算が第2Eユニツト
20Bで実行可能であり、かつ、条件コードを変
更する命令のときに信号VALIDが1となり、そ
れ以外の命令のときには0となる。
また、レジスタ299の出力とレジスタ300
の出力の論理積がアンドゲートから出力される。
この論理積SET2は、条件コードを変更する命令
のE2ステージで1となり、それ以外の命令では
0となる。この信号SET2は、条件コードCC2と
有効表示信号VALIDを条件コードレジスタ34
B(第1B図)にセツトするのに用いられる。
M命令は第2Eユニツト20Bで実行できない
命令であるので、書込み信号WC2は0のままで
あり、第2演算回路307の出力WDATA2,
CC2は無意味である。したがつて、このような命
令に対してはE2ステージは有意な結果を持たら
さない。このことは、L2,P2ステージについて
も同様である。
A命令に対してはサイクルC4で演算が行なわ
れ、結果データWDATA2、条件コードCC2がタ
イミングC5,T0で、書込みレジスタ番号RW、書
込み信号WC2がタイミングC4,T2で線50Bに
出力されることになる。L命令についてもサイク
ルC8で演算が同じように行なわれる。
(P2ステージの詳細) E2ステージでこのように求められた結果デー
タWDATA2は線50Bを介して第2汎用レジス
タ18Bに送られ、書込み信号WC2が1のとき
に番号RWで示されるレジスタに書込まれる。
また、セツト信号SET2が1のときには、条件
コードレジスタ34B(第1B図)に条件コード
CC2と有効表示信号VALIDがセツトされる。セ
ツト信号SET2が0のときには、レジスタ34B
の内容はかわらない。したがつて、E2ステージ
を実行された命令が条件コードをかえる命令のと
きには、レジスタ34Bの内容が書きかえられ
る。したがつて、この命令が第2Eユニツトで実
行可能なときには、レジスタ34Bの新しい内容
は、値1をもつVALID信号と第2Eユニツト20
Bで新たに求められた条件コードCC2である。し
かし、この命令が第2Eユニツト20Bで実行で
きない命令のときには、レジスタ34Bの新しい
内容は値0をもつVALID信号と、第2Eユニツト
20Bから線70Bに出力されている無意味なデ
ータである。一方、E2ステージが実行された命
令が条件コードをかえない命令のときには、レジ
スタ34Bの内容は書きかえられない。
したがつて、M命令では第2演算表示信号
SUBGRが0であるので汎用レジスタへの書込み
が行なわれないが、A命令では、タイミングC5,
T2にてこの書込みが行なわれることになる。ま
た、A命令では条件コードCC2と値1と持つ
VALID信号がレジスタ34Bにセツトされる。
すでに述べたごとく、A命令のP1ステージは
サイクルC9で行なわれる。したがつて、このP1
ステージの書込み結果を利用してL命令を実行し
ようとすると、L命令のDステージはC9サイク
ルから始めなければならない。しかし、本実施例
では第1Eユニツト20Aとは別に設けた第2Eユ
ニツト20Bにより加算演算を行うので、A命令
のP2ステージはサイクルC5で実行可能となる。
したがつて、A命令のE2ステージ(C4サイクル)
の終了時に、アドレスコンフリクトが解除され、
後述するようにアドレスコンフリクト検出回路3
2(第1B図)の出力ACONFが0となり、第1I
ユニツト20Aは次のL命令のDステージを開始
できる。したがつて、後続のL命令のDステージ
をサイクルC5にて開始することができる。した
がつて、本実施例では、L命令の実行開始を4サ
イクル早めることができる。なお、L命令に対す
るP2ステージは、サイクルC9で行なわれること
になる。
(アドレスコンフリクト検出動作) 命令レジスタ10にセツトされた命令との間で
アドレスコンフリクトを検出すべき先行命令は(1)
命令キユーレジスタ14にすでにセツトされてい
る、汎用レジスタを書きかえる命令であつて、ま
た、その演算が開始されていない命令および(2)命
令キユーレジスタ14から第1Eユニツト20A
にすでにセツトされた汎用レジスタを書きかえる
命令であつて、その演算が終了していない命令に
分けられる。第8図において、フリツプフロツプ
200〜202は、命令キユーレジスタ14内の
解読情報が上記分類(1)に属する命令に対するもの
か否かを表示するためのものでそれぞれ、命令キ
ユーレジスタ14内の#0〜2のレジスタに対応
して設けられており、それぞれは対応する命令キ
ユーレジスタ14内のレジスタに解読情報がセツ
トされたときにセツトされ、そのセツトされた解
読情報が第1Eユニツト20Aにセツトされたと
き(すなわち、その命令のL1ステージ終了後)
にリセツトされる。ただし、例外としてその解読
情報が第2Eユニツト20Bで実行可能な演算に
対するもののときは、その命令のL1ステージの
終了前であつても、その命令の第2Eユニツト2
0Bでの演算の結果が第2汎用レジスタ18Bに
書込まれたとき、すなわち、その命令のP2ステ
ージが行なわれるときにリセツトされる。この例
外は第2汎用レジスタ18Bの内容は後続の命令
のアドレス検出に用いられるので、この第2汎用
レジスタ18Bが書きかえられた時点でアドレス
コンフリクトが解消するので、たとえ第1Eユニ
ツト20Aでの演算が開始されていなくても、ア
ドレスコンフリクトの検出を行う必要がないこと
による。この例外により、後続の命令のDステー
ジの実行を早めることができる。
以上のごとくにフリツプフロツプ200〜20
2のセツトとリセツトを制御するためにセツト回
路250、リセツト回路252,254が設けら
れている。
すなわち、回路250は線42を介して命令デ
コーダ12から与えられるレジスタ変更表示信号
CHGGRが1のときに、信号DSに応答して、入
力ポインタIPに依存して、フリツプフロツプ2
00〜202の一つをセツトする。この結果、命
令キユーレジスタ14へ一つの解読情報がセツト
されたときに、これらのフリツプフロツプ200
〜202の対応する一つがセツトされる。回路2
52はこれらのフリツプフロツプを対応する命令
に対するL1ステージの終了後にリセツトするた
めのもので、L1ステージの開始を指示するのに
用いた演算開始信号BOP1をレジスタ236でラ
ツチすることにより信号BOP1を1マシンサイク
ル遅延させた信号BOP1Dに応答し、L1ステージ
で用いられた出力ポインタOP1をレジスタ237
で同じように遅延させて得られるポインタOP1D
により指定されるフリツプフロツプ200〜20
2の一つを選択的にリセツトする。回路254は
第2Eユニツト20Bで実行可能な命令に対する
P2ステージが終了したときにこれらのフリツプ
フロツプを例外的にリセツトするためのもので、
第2Eユニツト20BよりE2ステージの終了時に
出力される第2汎用レジスタ18Bへの書込み信
号WC2に応答して、ポインタOP2Dに依存してこ
れらのフリツプフロツプ200〜202の一つを
選択的にリセツトする。このポインタOP2Dは、
L2ステージで用いられた出力ポインタOP2を1
マシンサイクルだけ、フリツプフロツプ155,
156(第6図)により遅延して得られるもので
ある。
レジスタ218〜220は命令キユーレジスタ
14内にセツトされた解読情報の各々の書込みレ
ジスタ番号RWを記憶するレジスタで、セツト回
路225が、デコード成功信号DSが入力された
ときに、そのときの入力ポインタIPに依存して、
線42を介して命令デコーダ12から送られてい
る書込みレジスタ番号RWをこれらのレジスタ2
18〜220に選択的にセツトする。
コンパレータ224は上記分類(1)に属する命令
に対するアドレスコンフリクトを検出するための
もので、線40を介して命令レジスタ10にセツ
トされた後続の命令のアドレスレジスタ番号(ベ
ースレジスタ番号RBとインデツクスレジスタ番
号RX)と、レジスタ218〜220にセツトさ
れた書込みレジスタ番号との一致を検出するため
のものである。ただし、レジスタ218〜220
の内、対応するフリツプフロツプ200,201
又は202がセツトされているレジスタのみが、
この一致検出の対象となる。このコンパレータ2
24の一致出力は線221、オアゲート235、
線58を介してアドレスコンフリクト検出信号
ACONFとして第1Iユニツト22Aに送出され、
後続命令のDステージの開始の制御に用いられ
る。
上述の分類(2)に属する命令に対するコンフリク
トの検出は次のように行なわれる。
フリツプフロツプ258は命令キユーレジスタ
14から第1Eユニツト20Aに汎用レジスタを
書きかえる命令に対する解読情報がセツトされた
とき(L1ステージ実行のあと)にセツトされ、
第1Eユニツト20Aでの演算結果が第2汎用レ
ジスタ18Bに書き込まれたとき(P1ステージ
のとき)にリセツトされる。ただし、第1Eユニ
ツト20Aにセツトされた解読情報が第2Eユニ
ツト20Bで実行可能なときには、フリツプフロ
ツプ258はセツトされない。このためフリツプ
フロツプ258は信号OP1Dに応答してフリツプ
フロツプ200〜202の出力を選択するセレク
タ256の出力を、信号BOP1Dに応答してセツ
トし、第1Eユニツト20Aでの演算実行後に第
1Eユニツト20Aから出力される、第2汎用レ
ジスタ18Bに対する書込み信号WC12に応答し
てリセツトするようになつている。
なお、リセツト回路252も同じ信号BOP1D,
OP1Dに応答してフリツプフロツプ200〜20
2のいずれかをリセツトするが、フリツプフロツ
プ258のセツトがなされた後、リセツト回路2
52が動作するように回路252を構成する。
一方、セレクタ227は信号OP1Dに応答して
レジスタ218〜220の一つを選択し、レジス
タ228は信号BOP1Dに応答してこのセレクタ
の出力をセツトする。したがつて、レジスタ22
8は、第1Eユニツトで実行中の命令の書込みレ
ジスタ番号RWを格納する。コンパレータ230
はフリツプフロツプ258のセツト出力が入力さ
れているときに起動され、レジスタ228内のレ
ジスタ番号RWと線40を介して入力される後続
の命令のアドレスレジスタ番号RR,RXとを比較
し、一致を検出したときには線234、オアゲー
ト235、線58を介してアドレスコンフリクト
検出信号ACONFを第1Iユニツト22Aに送出す
るようになつている。こうして、上述の分類(2)に
対するコンフリクトの検出が終了する。
仮定では、M命令に対するデコード成功信号
DSはタイミングC0,T2で出力され、このときの
入力ポインタIPは2であるので、タイミングC1,
T0でフリツプフロツプ202がセツトされ、レ
ジスタ220にM命令の書込みレジスタ番号RW
(M)がセツトされる。タイミングC1,T0で命令
レジスタ10に次のA命令がセツトされると、こ
のA命令のアドレスレジスタ番号RBとRXがコン
パレータ224でレジスタ220内の書込みレジ
スタ番号RW(M)と比較される。仮定では、A,
M命令間にはアドレスコンフリクトがないので、
信号ACONFはサイクルC1では0である。この信
号ACONFは0であることに応答して、第1Iユニ
ツト22Aは、A命令に対するデコード成功信号
DSはタイミングC1,T2で出力する。この信号
DSに応答して、A命令の書込みレジスタ番号RW
(A)が入力ポインタIPの値0に対応するレジス
タ218にセツトされ、かつフリツプフロツプ2
00がセツトされる。次に、タイミングD2,T0
でL命令が命令レジスタ10にセツトされ、その
命令のアドレスレジスタ番号が仮定によりレジス
タ218内にある、A命令の書込みレジスタ番号
RW(A)に一致するため、サイクルC2の間はコン
パレータ224が出力する信号ACONFは1とな
る。このため、L命令に対するデコード成功信号
DSはタイミングC2,T2では出力されず、L命令
の実行は延期される。
一方、A命令のE2ステージがその後第2Eユニ
ツト20Bで実行され、タイミングC4,T2で書
込み信号WC2が第2Eユニツト20Bにより出力
される。このとき、出力ポインタOP2はすでに1
に更新されているが、出力ポインタOP2を1サイ
クル遅らして得られるポインタOP2Dは1サイク
ル前の出力ポインタOP2の値0を出力している。
したがつて、リセツト回路254はフリツプフロ
ツプ200をタイミングC5,T0でリセツトする。
この結果、コンパレータ224から線221への
出力は0となる。したがつて、このとき、A,L
命令間のコンフリクトが解除されたことになる。
しかし、このタイミングでは、M命令のE1ステ
ージが終了していないので、実行中のM命令と次
のL命令との間でアドレスコンフリクトがない状
態のときにかぎりL命令のDステージを開始する
ことができる。このコンフリクトの検出は、コン
パレータ230により行なわれる。すなわち、M
命令に対する演算開始信号BOP1はタイミング
C2,T0で出力されるので、この信号BOP1を1
サイクル遅延した信号BOP1Dに応答して、タイ
ミングC4,T0にフリツプフロツプ258がセツ
トされるとともに、フリツプフロツプ202がリ
セツトされ、レジスタ228にレジスタ220に
セツトされていたM命令の書込みレジスタ番号
RW(M)がセツトされる。
したがつて、タイミングC4,T0以降において、
命令レジスタ10内のL命令のアドレスレジスタ
番号RB,RXとこの書込みレジスタ番号RW(M)
とがコンパレータ230で比較される。仮定によ
り、M,L命令間にコンフリクトがないと仮定し
ているので、コンパレータ230のサイクルC4
以降の出力は0である。したがつて、コンフリク
ト検出信号ACONFはコンパレータ224の出力
が0となるタイミングC5,T0以降0となる。こ
の結果、タイミングC5,T2で第1Iユニツト22
AによりL命令に対するデコード成功信号DSが
出力され、L命令のDステージがサイクルC5か
ら開始されることになる。
なお、その後A命令に対して信号BOP1がタイ
ミングC7,T0で出力されるので、フリツプフロ
ツプ258、レジスタ228はタイミングC9,
T0に書きかえられる。以下、同じようにL命令
に対しても同様の動作が行なわれる。
〔動作の詳細〕条件コードコンフリクトがある
場合 この場合の装置とその動作説明のために以下で
は、M,A,BCがこの順に実行され、BC命令で
の分岐成功判定の結果、分岐成功のときにはL命
令が実行されるものとする。また、これらの命令
間およびこれらに先行する命令とこれらの命令の
間でアドレスコンフリクトがないと仮定する。
(BC命令の処理) このときの動作のタイムチヤートは第11A〜
11C図に示される。ただし、この図では、条件
コードコンフリクトの動作の理解に必要な信号の
みを示してある。
M,A命令は先に述べたのと全く同じように実
行され、BC命令のDステージがサイクルC2で実
行されると仮定する。
BC命令のDステージにおいては、M,A命令
と同様に加算器24でアドレスが算出されるが、
このアドレスは分岐先の命令のアドレスである。
BC命令の命令デコーダ12による解読情報は、
他の命令と同じようにデコード成功信号DS(これ
はタイミングC2,T2で出力される)に応答して
命令キユーレジスタ14に格納される。また、命
令デコーダ12の出力の内、分岐命令表示信号
BCおよびマスク信号MASKが線42を介して条
件コードコンフリクト検出回路36に送られる。
回路36は、後述するように条件コードコンフリ
クト信号CCONFをタイミングC3,T0で1にす
る。第1Iユニツト22Aはこの信号に応答して、
後続の命令に対するデコード成功信号DSの発生
を抑止する。こうしてBC命令のDステージが終
了する。BC命令のAステージにおいては上述の
命令アドレスに基づき主メモリ26から、タイミ
ングC3,T0で読出されたL命令がフエツチ回路
(図示せず)の制御により命令バツフア6A,6
Bの内のターゲツトストリーム側にタイミング
C4,T0に格納される。フエツチ回路はさらに引
続き、このL命令につづく命令列を順次主メモリ
26から読出し、ターゲツトストリーム側の命令
バツフア6A又は6Bに順次格納する。このた
め、このフエツチ回路には従来と同じように、デ
コーダ12から分岐表示信号BCと、加算器24
の出力と、フリツプフロツプ9の出力とが入力さ
れており、デコード成功信号DSが1となつたと
きに信号BCが入力されたとき、そのときの加算
器24の出力アドレスを取り込むようにフエツチ
回路が構成されている。その後、フエツチ回路は
フリツプフロツプ9の出力により指定されるター
ゲツトストリーム側の命令バツフア6A又は6B
に、主メモリ26から読出された分岐先命令を格
納するとともに、その後、先に取り込んだアドレ
スを順次カウントアツプして、そのアドレスに基
づき主メモリ24から分岐先命令につづく命令列
を順次読出すように構成されている。こうして、
命令バツフア6A又は6Bの一方にターゲツトス
トリームを順次格納することができる。
なお、このAステージにおいては、主メモリ2
6から読出された分岐先命令は他の命令の場合と
同じように、オペランドキユーバツフア28に格
納される。しかし、これはオペランドでないた
め、第1,第2Eユニツト20A,20Bでは利
用されない。
サイクルC4においては、A命令の第2Eユニツ
ト20Bでの演算が終了するため、信号EOP2が
このサイクルにおいて出力される。したがつて、
第2Iユニツト22Bより信号BOP2がこのサイク
ルC4で出力される。このため、BC命令のL2ステ
ージがサイクルC4において可能となる。
BC命令のL2ステージにおいては、セレクタ1
6Bにより選択された、BC命令の解読情報が第
2Eユニツト20Bにセツトされる。BC命令が必
要とする演算は、この解読情報に基づく分岐成功
不成功の判定である。しかし、他の命令と異な
り、本実施例ではこの判定が条件コードコンフリ
クト検出回路36によりなされる。したがつて、
セレクタ16Bの出力は線44Bを介して、この
検出回路36に送られ、そこにセツトされる。な
お、セレクタ16Bの出力は他の命令と同じく、
第2Eユニツト20Bにも送られる。
また、L2ステージではセレクタ30BがBC命
令に関するデータを選択するように制御される。
L2ステージの次のステージでは、上述のごと
く、分岐判定が回路36で行われ、第2Eユニツ
ト20Bは実質的に動作しないで、演算終了信号
EOP2をサイクルC5から出力するのみである。し
かし、他の命令と同じく、このステージをE2ス
テージと呼ぶことにする。
このE2ステージにおいては、条件コードコン
フリクト検出回路36がレジスタ34Bの出力に
基づく分岐判定が可能かどうかを検出する。この
分岐判定がE2ステージで可能となるのは、BC命
令の前の命令が条件コードを変更する命令でかつ
第2Eユニツト20Bで実行できる命令である。
したがつて、レジスタ34B内の信号VALIDが
1のときである。分岐判定が可能なときには判定
の終了時に、コンフリクト信号CCONFを0にす
る。また、判定の結果、分岐が成功のときには分
岐成功信号BCTKNを線74に出力する。一方、
分岐判定不可能のときには、信号CCONFは変化
しないし、信号BCTKNは出力されない。
今の場合、先行するA命令は第2Eユニツト2
0Bで実行可能で、かつ、条件コードを変更する
命令であるので、第2Eユニツト20Bから、A
命令のE2ステージの終了後には、レジスタ34
B内の信号VALIDは値1を有する。したがつて、
回路36は分岐判定可能なものとして、レジスタ
34Bから入力される条件コードCC2と、命令デ
コーダ12からすでに入力されているマスク信号
MASKにより分岐判定を行う。この結果、分岐
成功と判定されたと仮定すると、信号BCTKNが
1となる。これによりフリツプフロツプ9(第1
A図)が反転される。また、条件コードコンフリ
クト信号CCONFタイミングC6,T0でゼロにな
る。こうして、BC命令のE2ステージが終了す
る。
次のステージ(これをP2ステージと呼ぶ)で
は次の動作が行なわれる。すなわち、フリツプフ
ロツプ9の反転に伴ない、読出し回路8(第1A
図)は分岐先のL命令をタイミングC6,T0で命
令レジスタ10にセツトする。また、信号
CCONFが0であり、また、仮定によりアドレス
コンフリクトがないと仮定しているので、第1Iユ
ニツト22Aは次の命令に対するデコード成功信
号DSをタイミングC6,T2で出力する。こうし
て、分岐成功の場合、分岐先のL命令のDステー
ジがサイクルC6で実行可能となる。なお、読出
し回路8はBC命令のDステージの開始後、分岐
不成功時に実行すべき命令を命令レジスタ10に
あらかじめセツトする。したがつて、分岐判定の
結果、分岐不成功のときには、信号DSに応答し
て、分岐不成功側の命令が実行される。
以上の説明から明らかなごとく、分岐判定は、
先行するA命令の、第2Eユニツト20Bでの演
算が終了したサイクルの次のサイクルで実行可能
となる。したがつて、M命令の第1Eユニツト2
0Aでの演算が終了していないために、A命令を
その第1Eユニツト20Aで実行できない状態に
あつても、第2Eユニツト20BでのA命令の実
行により得られる条件コードを利用して、BC命
令の分岐判定を早く実行できる。すなわち、条件
コードコンフリクトの解消を早く行うことができ
る。その結果、BC命令につづく命令を早く実行
できる。
なお、サイクルC8でA命令のE1ステージが終
了するため、BC命令のL1,E1,P1ステージがそ
れぞれサイクルC8,C9,C10で実行される。L1
ステージではセレクタ16A,30Aの出力が他
の命令と同じように第1Eユニツト20Aにセツ
トされるが、E1ステージでは、第1Eユニツト2
0Aでは実質的に何の演算もされず、信号EOP1
が出力される。一方、条件コードコンフリクト検
出回路36は、先のE2ステージで分岐判定が不
可能な場合に、条件コードレジスタ34Aから出
力される条件コードCC1に基づき分岐判定を行
う。この判定終了によりコンフリクト信号
CCONFを0にし、分岐成功のときには、信号
BCTKNを1にする。今の例では、E2ステージ
で分岐判定が可能であつたので、回路36はとく
に判定動作をしない。
(分岐判定) 第10図において、レジスタ403は線56A
を介して第1Iユニツト22Aからデコード成功信
号DSが入力されたとき、線42を介して命令デ
コーダ12から入力されるマスク信号MASKを
タイミングT0でセツトする。したがつて、今の
例ではタイミングC2,T0にBC命令がセツトされ
ると仮定しているので、レジスタ403からは、
BC命令のマスク信号MASKがタイミングC3,
T0から出力される。フリツプフロツプ406の
出力は条件コードコンフリクト信号CCONFとし
て用いられる。コントロールロジツク404はデ
コード成功信号DSが第1Iユニツト20Aから入
力され、BC命令表示信号BCがともに入力された
ときにフリツプフロツプ406をセツトし、ブラ
ンチ判定回路417から分岐判定終了信号END
が入力されたときにフリツプフロツプ406をリ
セツトする。今の例では、タイミングC2,T0お
よびC2,T2でそれぞれ信号BC,DSが入力され
るので条件コードコンフリクト信号CCONFはタ
イミングC3,T0で1になる。この結果、すでに
述べたように、第1Iユニツト22Aは後続の命令
に対してデコード成功信号DSを出力するのを抑
止する。ブランチ判定回路417は、レジスタ4
03から入力されるマスク信号MASKで示され
る分岐条件を、線71Aを介してレジスタ34A
より入力される条件コードCC1又は線71Bを介
してレジスタ34Bより入力される条件コード
CC2が満すか否かを判定する。この判定を行うタ
イミングはフリツプフロツプ413又は414の
出力J1又はJ2が1になるごとに行なわれる。フリ
ツプフロツプ413は、アンドゲート409にそ
れぞれ線44A,52Aを介してそれぞれセレク
タ16A、第1Iユニツト22Aからそれぞれ、
BC命令表示信号BCおよび第1演算開始信号が入
力されたとき、すなわち、BC命令のL1ステージ
が実行されたときにセツトされる。この結果、フ
リツプフロツプ413の出力J1はBC命令のE1ス
テージにおいて1となる。同様に、フリツプフロ
ツプ414はアンドゲート410にそれぞれ線4
4B,52Bを介してそれぞれセレクタ16B、
第2Iユニツト22BからBC命令表示信号BCと第
2演算開始信号BOP2が入力され、BC命令のL2
ステージの実行の結果セツトされる。この結果フ
リツプフロツプ414はBC命令のE2ステージに
おいて1となる。この結果、BC命令のE1又はE2
ステージにおいて分岐判定がなされることにな
る。BC命令のE2ステージにおいて分岐判定をし
てもよいのは、条件コードレジスタ34Bから出
力されている信号VALIDが1のときである。す
でに述べたごとく、レジスタ34Bは、条件コー
ドを変更する命令のE2ステージが終了するごと
に書きかえられ、しかもこの命令が第2Eユニツ
ト20Bで実行可能なときには、信号VALIDは
1となり、そうでないときには、信号VALIDは
0となる。したがつて、BC命令のE2ステージに
おいて、信号VALIDが1であることは、BC命令
に先行して実行された条件コードを変更する命令
の内、最も最近に実行された命令は第2Eユニツ
ト20Bで実行可能な命令であつたことを示す。
したがつて、信号VALIDが1のときには、レジ
スタ34B内の条件コードCC2に基づいて分岐判
定をすることができる。一方、信号VALIDが0
であることは、第2Eユニツト20Bで実行でき
ない、条件コードを変更する命令がBC命令の前
に実行されたことを示す。したがつて、この場合
は、分岐判定をBC命令のE1ステージで行う必要
がある。したがつて、分岐判定回路417では、
次の論理式に基づき分岐判定終了信号ENDを出
力する。
END=CCONF×(J1+VALID×J2) ここでクロスおよびプラスのサインはそれぞれ
論理積論理和を示す。したがつて、E2ステージ
で分岐判定が終了して、信号ENDが1になつた
ときには、その後信号CCONFが0になるので、
その後のE1ステージでは信号ENDは0のままで
ある。
現在考えている例では、BC命令の一つ前のA
命令は第2Eユニツト20Bで実行できる、条件
コードを変更する命令であるので、BC命令のE2
ステージにおいては、信号VALIDは1となつて
いる。したがつて、このBC命令の分岐判定はE2
ステージで行なわれる。その結果、タイミング
C5,T0において、信号ENDは1となりフリツプ
フロツプ406の出力CCONFは、タイミング
C6,T0において0となる。
分岐判定回路417は、信号ENDが1になつ
たときに、レジスタ403から入力されるマスク
信号MASKと条件コードとを比較して分岐成功
か否かを判定する。BC命令のE2,E1ステージで
の分岐判定において、条件コードCC2,CC1がそ
れぞれこの比較に用いられる。分岐成功の判定は
従来技術と同じように行なわれる。たとえばマス
ク信号MASKが4ビツトの信号とするとき、条
件コードCC1又はCC2は2ビツトからなる。この
条件コードで表わされる10進数に対応する桁位置
にある信号MASK内のビツトが1であれば分岐
成功と判定される。
分岐成功の場合には、信号ENDとともに分岐
成功信号BCTKNが1となる。今考えている例で
は、信号BCTKNはサイクルC5で1となる。
以上のごとくにして分岐判定が行なわれ、信号
CCONFが0になるサイクルC6から、次の命令の
Dステージが開始されることになる。
〔発明の効果〕
以上述べたごとく、本発明では、第1演算ユニ
ツトでのある命令に対する演算を開始する前に、
第2演算ユニツトによりその演算を開始できるの
で、その演算結果を利用する後続の命令の実行を
早めることができ、処理速度を実効的に高めるこ
とができる。
【図面の簡単な説明】
第1A,1B図は本発明による実施例の異なる
部分のブロツク回路図である。第2図は、デイジ
タルコンピユータを構成するための第1A図、第
1B図の配置を示す。第3A,3B図はそれぞれ
本発明による実施例で用いる一つの命令フオーマ
ツトの例を示す。第4図は、上記実施例で用いる
第1の命令制御ユニツトの概略回路構成図であ
る。第5図は上記実施例で用いる第1の演算実行
ユニツトの概略構成図である。第6図は上記実施
例で用いる第2の命令制御ユニツトの概略構成図
である。第7図は上記実施例で用いる第2の演算
実行ユニツトの概略構成図である。第8図は上記
実施例で用いるアドレスコンフリクト検出回路の
概略構成図である。第9Aから9C図は、上記実
施例の、アドレスコンフリクトがある場合のタイ
ムチヤートである。第10図は上記実施例で用い
る条件コードコンフリクト検出回路の概略構成図
である。第11Aと11B図は、上記実施例の、
条件コードコンフリクトがある場合のタイムチヤ
ートである。

Claims (1)

  1. 【特許請求の範囲】 1 複数の演算を実行可能な第1の演算装置と、 該複数の演算の内、実行時間が比較的短い一部
    の演算を実行可能な第2の演算装置と、 先に解読された命令の演算の実行に並行して後
    続の命令を解読するように、実行すべき複数の命
    令を時系列に解読する手段と、 該解読手段により解読され、演算の実行を待つ
    複数の命令を一時的に保持する手段と、 該保持手段に保持された複数の命令のそれぞれ
    が要求する演算の実行を該第1の演算装置に順次
    指示する第1の命令実行制御手段であつて、該第
    1の演算装置において実行中の演算の終了に同期
    して、かつ、該第2の演算装置による演算の終了
    に非同期に、該保持手段に保持された次の命令の
    演算の実行を指示する手段を有するものと、 該保持手段により保持された複数の命令の内、
    該第2の演算装置で実行可能な演算を要求する一
    部の複数の命令を選択し、それぞれの命令が要求
    する演算の実行を該第2の演算装置に順次指示す
    る、該第1の命令実行制御手段と並行して動作す
    る第2の命令実行制御手段であつて、該第2の演
    算装置において実行中の演算の終了に同期して、
    かつ、該第1の演算装置による演算の終了に非同
    期に、該保持手段に保持された命令の中の、該第
    2の演算装置で実行可能な演算を要求する次の命
    令の演算の実行を指示する手段を有するものとを
    有するデータ処理装置。 2 該解読手段で解読された複数の命令のうち、
    演算ステージでメモリオペランドを使用する命令
    のそれぞれが使用するメモリオペランドを生成す
    る手段をさらに有し、 該第1の命令実行制御手段は、該第1の演算装
    置で次に演算を実行すべき命令の実行を指示する
    ときに、その命令に対して該生成手段で生成され
    たメモリオペランドまたはその命令が指定するレ
    ジスタオペランドを、その第1の演算装置に供給
    し、 該第2の命令実行制御手段は、該第2の演算装
    置で次に演算を実行すべき命令の実行を指示する
    ときに、その命令に対して該生成手段で生成され
    たメモリオペランドまたはその命令が指定するレ
    ジスタオペランドを、その第2の演算装置に供給
    する請求項1記載のデータ処理装置。 3 複数の演算を実行可能な第1の演算装置と、 該複数の演算の内、実行時間が比較的短い一部
    の演算を実行可能な第2の演算装置と、 先に解読された命令の演算の実行に並行して後
    続の命令を解読するように、実行すべき複数の命
    令を時系列に解読する手段と、 該解読手段により解読され、演算の実行を待つ
    複数の命令を一時的に保持する手段と、 該保持手段に保持された複数の命令のそれぞれ
    が要求する演算の実行を該第1の演算装置に順次
    指示する第1の命令実行制御手段であつて、該第
    1の演算装置において実行中の演算の終了に同期
    して、かつ、該第2の演算装置による演算の終了
    に非同期に、該保持手段に保持された次の命令の
    演算の実行を指示する手段を有するものと、 該保持手段により保持された複数の命令の内、
    該第2の演算装置で実行可能な演算を要求する一
    部の複数の命令を選択し、それぞれの命令が要求
    する演算の実行を該第2の演算装置に順次指示す
    る、該第1の命令実行制御手段と並行して動作す
    る第2の命令実行制御手段であつて、該第2の演
    算装置において実行中の演算の終了に同期して、
    かつ、該第1の演算装置による演算の終了に非同
    期に、該保持手段に保持された命令の中の、該第
    2の演算装置で実行可能な演算を要求する次の命
    令の演算の実行を指示する手段と、 該解読手段により解読された複数の命令の内、
    演算ステージでメモリオペランドを使用する命令
    のそれぞれが要求するメモリオペランドのアドレ
    スを計算し、それらのメモリオペランドを読み出
    す手段と、 該解読手段により解読された命令のいずれか
    が、その演算に用いるメモリオペランドのアドレ
    ス生成に、該第1の演算装置または該第2の演算
    装置で実行中もしくは実行待ちの先行命令の演算
    結果を必要とするか否かを判別し、その演算結果
    を必要とするときには、その演算結果が該第1の
    演算装置または該第2の演算装置により利用可能
    になるまで、その命令が要求するメモリオペラン
    ドのアドレスを該読み出し手段が生成するのを禁
    止する手段とを有するデータ処理装置。 4 複数の演算を実行可能な第1の演算装置と、 該複数の演算の内、実行時間が比較的短い一部
    の演算を実行可能な第2の演算装置と、 先に解読された命令の演算の実行に並行して後
    続の命令を解読するように、実行すべき複数の命
    令を時系列に解読する手段と、 該解読手段により解読され、演算の実行を待つ
    複数の命令を一時的に保持する手段と、 該保持手段に保持された複数の命令のそれぞれ
    が要求する演算の実行を該第1の演算装置に順次
    指示する第1の命令実行制御手段であつて、該第
    1の演算装置において実行中の演算の終了に同期
    して、かつ、該第2の演算装置による演算の終了
    に非同期に、該複数の命令の中の次の命令の演算
    の実行を指示する手段を有するものと、 該保持手段により保持された複数の命令の内、
    該第2の演算装置で実行可能な演算を要求する一
    部の複数の命令を選択し、それぞれの命令が要求
    する演算の実行を該第2の演算装置に順次指示す
    る、該第1の命令実行制御手段と並行して動作す
    る第2の命令実行制御手段であつて、該第2の演
    算装置において実行中の演算の終了に同期して、
    かつ、該第1の演算装置による演算の終了に非同
    期に、該保持手段に保持された命令の中の次の命
    令の演算の実行を指示する手段と、 該解読手段により解読された複数の命令の内、
    条件つき分岐命令について、分岐成功か否かを該
    データ処理装置に保持された、分岐判定のための
    条件コードの値に基づいて判別する手段と、 その分岐命令の分岐が成功したと判断されたと
    きに、分岐先命令のアドレスを算出し、その分岐
    先命令を読み出す手段と、 その条件コードが、該第1の演算装置または該
    第2の演算装置で実行中もしくは実行待ちのいず
    れかの先行命令の演算により書き換えられるか否
    かを判別し、その判別の結果、その条件コードが
    いずれかの先行命令の演算により書き換えられる
    と判別された場合、そのいずれかの先行命令のそ
    の演算により書き換えられた条件コードが利用可
    能になるまで、その分岐命令に対して該読み出し
    手段がその分岐先命令のアドレスを生成するのを
    禁止する手段とを有するデータ処理装置。 5 該解読手段で解読された複数の命令のうち、
    演算ステージでメモリオペランドを使用する複数
    の命令のそれぞれが使用するメモリオペランドを
    生成する手段をさらに有し、 該第1の命令実行制御手段は、該第1の演算装
    置で次に演算を実行すべき命令の実行を指示する
    ときに、その命令に対して該生成手段で生成され
    たメモリオペランドまたはその命令が指定するレ
    ジスタオペランドを、その第1の演算装置に供給
    し、 該第2の命令実行制御手段は、該第2の演算装
    置で次に演算を実行すべき命令の実行を指示する
    ときに、その命令に対して該生成手段で生成され
    たメモリオペランドまたはその命令が指定するレ
    ジスタオペランドを、その第2の演算装置に供給
    する請求項4記載のデータ処理装置。
JP6214383A 1983-04-11 1983-04-11 データ処理装置 Granted JPS6037037A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6214383A JPS6037037A (ja) 1983-04-11 1983-04-11 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6214383A JPS6037037A (ja) 1983-04-11 1983-04-11 データ処理装置

Publications (2)

Publication Number Publication Date
JPS6037037A JPS6037037A (ja) 1985-02-26
JPH0545983B2 true JPH0545983B2 (ja) 1993-07-12

Family

ID=13191576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6214383A Granted JPS6037037A (ja) 1983-04-11 1983-04-11 データ処理装置

Country Status (1)

Country Link
JP (1) JPS6037037A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3886203T2 (de) * 1988-04-02 1994-05-19 Ibm Prozessor-Prozessor-Synchronisierung.

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5435654A (en) * 1977-08-26 1979-03-15 Hitachi Ltd Information processing unit
JPS5537663A (en) * 1978-09-11 1980-03-15 Toshiba Corp Start system of option hardware
JPS5829051A (ja) * 1981-08-17 1983-02-21 Nec Corp 演算処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5435654A (en) * 1977-08-26 1979-03-15 Hitachi Ltd Information processing unit
JPS5537663A (en) * 1978-09-11 1980-03-15 Toshiba Corp Start system of option hardware
JPS5829051A (ja) * 1981-08-17 1983-02-21 Nec Corp 演算処理装置

Also Published As

Publication number Publication date
JPS6037037A (ja) 1985-02-26

Similar Documents

Publication Publication Date Title
US4532589A (en) Digital data processor with two operation units
US4409654A (en) Data processor adapted for interruption to an instruction stream
US4916606A (en) Pipelined parallel data processing apparatus for directly transferring operand data between preceding and succeeding instructions
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
US5497468A (en) Data processor that utilizes full data width when processing a string operation
US4305124A (en) Pipelined computer
JPH077385B2 (ja) データ処理装置
US4562538A (en) Microprocessor having decision pointer to process restore position
EP0357188A2 (en) Pipelined processor
US4541047A (en) Pipelined data processing system
US4739470A (en) Data processing system
JPH03286332A (ja) デジタルデータ処理装置
EP0223150B1 (en) Information processing apparatus
US5390306A (en) Pipeline processing system and microprocessor using the system
US5276822A (en) System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
US6016541A (en) Instruction controlling system and method thereof
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
US5682521A (en) Microprocessor control system which selects operating instructions and operands in an order based upon the number of transferred executable operating instructions
US3644900A (en) Data-processing device
US8631173B2 (en) Semiconductor device
JPH0545983B2 (ja)
JP2901247B2 (ja) 掃出し制御方式
JPH0760384B2 (ja) 命令実行方法およびデータ処理装置
JPH0545984B2 (ja)