JPS6037037A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPS6037037A
JPS6037037A JP6214383A JP6214383A JPS6037037A JP S6037037 A JPS6037037 A JP S6037037A JP 6214383 A JP6214383 A JP 6214383A JP 6214383 A JP6214383 A JP 6214383A JP S6037037 A JPS6037037 A JP S6037037A
Authority
JP
Japan
Prior art keywords
instruction
register
unit
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.)
Granted
Application number
JP6214383A
Other languages
English (en)
Other versions
JPH0545983B2 (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)

Abstract

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

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はパイプライン方式のディジタルコンピュータに
関する。
〔従来技術〕
コノコンピュータでは各命令の実行過程を複数のステー
ジに分け、異なる命令の異なるステージを並列に実行す
ることによシ、実質上複数の命令を並列に実行する。
しかし、ある命令Bの処理に必要なデータが、先行する
命令Aが指定する演算結果を利用してめる場合には、そ
の演算結果が確定するまで命令Bの実行を遅延しなけれ
ばならない。たとえば命令衣が実行されるとペースレジ
スタ又はインデックスレジスタが書きかえられ、しかも
命令Bはそのペースレジスタ又はインデックスレジスタ
の内容と命令B内に含まれるアドレス情報を加算して主
メモリアクセスのための絶対アドレスを計算する場合が
これに相当する。このように、先行する命令衣の演算結
果を用いて命令Bの実行のためのアドレスを決めなけれ
ばならない状態をアドレスコンフリクトがあると呼ぶ。
この場合、命令Bのアドレス計算ステージは命令衣の演
算が終了するまで遅延される。
従来では、この遅延を少なくするために、すべての命令
が必要とする演算を実行できる主演算装置とは別に一部
の命令が要求する簡単な演算のみを実行できる従演算装
置とを設けた。この際従演算装置は構造が比較的簡単な
ためにペースレジスタ又はインデックスレジスタを含む
汎用レジスタの近くに設けられ、主演算装置はその構造
が複雑で回路規模が大きくなるため汎用レジスタからよ
シ遠くに設けられる。主演算装置と従演算装置のいずれ
でも実行可能な演算は、両方の演算装置で実行させる。
たとえば、上述の命令Aが汎用レジスタ内のデータのみ
を用いる演算を要求する場合、この演算は主演算装置と
従演算装置の両方で実行される。主演算装置と従演算装
置とが同時に起動されたとしても、従演算装置が汎用レ
ジスタの近くに設けられているために、演算に必要なオ
ペランドを汎用レジスタからよシ早く供給され、したか
って従演算装置がより早く演算結果を出力する。
したがって、命令Bのアドレス計算を従演算装置の出力
を用いるならば、命令Bのアドレス計算は、主演算装置
の出力を用いて行うよシ早く開始できる。こうして、ア
ドレスコンフリクトが生じた命令Bのアドレス計算の遅
延を少なくしている。すなわち、従演算装置によりアド
レスコンフリクトを早期に解消することにより処理の高
速化を図っている。
同じ問題が条件付分岐命令のときにも生じる。
この命令(以下ではBC命令と呼ぶ)の演算実行サイク
ルにおいて、そのときの条件コードに基づき分岐成功か
否かの判定が行なわれる。したがって分岐命令に先行す
る演算が条件コードを変更する命令のときには、この先
行命令の演算が終了するまで分岐判定ができない。この
上うに1先行する命令の演算の終了の後にBC命令の分
岐判定をしなければならない状態を条件コードコンフリ
クトがある状態と呼ぶ。従来技術のように、従演算装置
でめられた条件コードを用いてBC命令の分岐判定をす
ることによ、9、BC命令の分岐判定を早めることがで
きる。
しかし、現実にはよシ高速の処理速度が要求されつつあ
る。
〔発明の目的〕
本発明の目的はよ多処理速度の大きいパイプライン制御
のデータ処理装置を提供することである。
〔発明の概要〕
従来技術では、命令Aに先行する命令Cのための主演算
装置での演算が終了しないことには、命令Aの演算は開
始されない。このため命令Bの開始も遅れる。命令Cの
ための演算を主演算装置が実行しているときでも、従演
算装置で命令Aのための演算を実行できるようにすれば
、従演算装置の出力を利用する命令Bのアドレス計算を
早めることができるはずである。
同様に、BC命令に二つ先行する命令Cのだめの演算を
主演算装置で実行しているときには、BC命令の一つ前
の命令Aのための演算を開始できないならば、BC命令
の演算の開始も遅れる。
しかし、命令Cのための演算を主演算装置で実行してい
るときでも、この命令人の演算を従演算装置で実行でき
るならば、BC命令も、命令Aの従演算装置での演算の
終了後、従演算装置で実行できるようになる。
本発明はこの点に着目してなされたもので、命令を解読
して得られる、命令の演算ステージの実行に必要なデー
タを待行列として格納する回路から、二つの演算装置へ
データを選択的に送出するための回路を、主演算装置で
の演算の終了に同期して該データを主演算装置へ送出す
る回路と、従演算装置での演算の終了に同期して該デー
タを従演算装置へ送出する回路によシ構成し、それによ
シ主演算装置での演算の終了を待たないで従演算装置で
次の演算を実行可能にしだ。
〔発明の実施例〕
〔装置の概要〕 6A、6Bは命令バッファ、8はこれらの命令バッファ
の一方から命令を選択的に読出すためのセレクト回路、
10は命令レジスタ、12は命令デコーダ、14はデコ
ーダ12からの解読情報を格納するだめの命令キューレ
ジスタであシ、ここでは三つの命令の解読情報を格納す
るために三つのレジスタからなる。16Aは命令キュー
レジスタ14内の命令を選択するためのセレクタであシ
、20Aはセレクタ16Aで選択された命令の演算を実
行するための第1演算実行ユニットである(以下第1E
ユニツトと略する)。このユニット20Aはこのコンピ
ュータが実行するすべての命令が指定する演算を実行で
きるように構成されている。18Aは、第1Eユニツ)
20Aに供給するオペランドあるいはそこからの演算結
果を格納するだめの第1の汎用レジスタであり、22人
は、命令の実行を制御する第1の命令制御ユニット(以
下第1エユニツトと呼ぶ)である。
24は演算に必要なメモリオペランドのアドレスを算出
するためのアドレス加算器であり、26はメインメモリ
、2Bはメインメモリ26から読出されたメモリオペラ
ンドを格納するオペランドキューバッファでメジ、命令
キューレジスタ14に格納される三つの命令に対応する
三つのオペランドを格納するための三つのバッファから
なる。
セレクタ30Aはバッファ28のオペランドを選択して
第1Eユニツ)20Aに供給するためのセレクタである
以上の回路は、パイプライン方式によシ命令の実行を行
うのに基本的なものである。
本実施例では以上の他に、第2演算実行二二ツ)20B
(以下、第2Eユニツトと呼ぶ)と、このユニツ)20
Bが実行すべき命令の解読情報を命令キューレジスタ1
4から選択するためのセレクタ16Bと、第2Eユニツ
ト20Bに送るべきオペランドあるいはこのユニットの
演算結果を格納するだめの第2の汎用レジスタ18Bと
、第2Eユニツト20Bが必要とするメモリオペランド
をオペランドキューバッファ28から選択するためのセ
レクタ30Bと、第2Eユニツト20Bの実行を制御す
る第2命令制御ユニツト(以下、単に第2エユニツトと
呼ぶ)22Bと、第1.第211’ ユニーリk Q 
nム Q OD −A−r LLI +Jr hq 1
 久1/4= −1−ドを記憶するためのレジスタ34
A、34Bと、パイプライン的に流れて実行される複数
の命令間のアドレスコンフリクトおよび条件コードコン
フリクトをそれぞれ検出する回路32.36が設けられ
ている。
第2Eユニツ)20Bは、比較的簡単な演算、たとえば
加算、減算等を行う。本実施例では、このユニットは簡
単化のために1マシンサイクルで終了する演芦のみを実
行するように構成されている。しかし、以下の説明から
も明らかになるごとく、本発明はこのような第2Eユニ
ツトのみに限られるものでない。第2E二二ツ)20B
は比較的簡単な演算を高速に実行するためのものである
から、第1Eユニツト20Aよりも、第2の汎用レジス
タ18Bとオペランドキューバッファ28の近くに設け
ることが望ましい。また、第1.第2の汎用レジスタ1
8人、18Bは互いに同じ数のレジスタからなる。
この装置においては、全命令は第1Eユニツト20Aに
よシ実行される。一方、これらの命令の内、汎用レジス
タ18Aを書きかえる命令で第2Eユニツ)20Bで実
行可能な命令はこの第2Eユニツト20Bでも実行され
る。したがって、このような命令は第1.第2Eユニツ
ト20人。
20Bの両方で実行される。しかし、第1.第2Eユニ
ット2OA、20Bでの同じ命令に対する同じ演算は異
なるタイミングで起動可能になっている。すなわち、第
1.第2Eユニツト20A。
20Bがそれぞれ必要とする解読情報を別々に供給する
ために二つのセレクタ16A、16Bが設けられ、また
、これらのユニット20A、20Bがそれぞれ必要とす
るメモリオペランドを別々に供給するために二つのセレ
クタ30A、301(設けられ、第1Eユニツト20A
1セレクタ16A。
30Aは第1■ユニツ)32Aによシ制御され、第2E
ユニット20B、セレクタ16B、30Bは第2Iユニ
ツト22Bによシ制御されるようになっている。この結
果、ある命令の第1Eユニツト20Aでの実行ができな
い状態においても、その命令の第2Eユニツト20Bで
の実行が可能となシ、これによシアドレスコンフリクト
又は条件コードコンフリクトの解消が早められるように
なっている。
〔命令フォーマット〕 本装置で用いる命令は、(株)日立製作所Mシリーズコ
ンピュータあるいは米国IBM社370シリーズコンピ
ュータで用いられるのと同じものでおる。これらの命令
はいくつかのフォーマットに分類されるが、第3A図に
本発明の理解に必要な一つのフォーマットを示す。この
フォーマツトラ持つ命令の例は、乗算、加算、ロード命
令で、それぞれ、簡単のためにM、A、L命令と以下で
は称する。これらの命令のビット0−7はオペレーショ
ンコート責OP C0DE)を表し、ビット8−11は
レジスタ部(几)で#、D、M、A命令では演算のため
に読出すべきオペランドが格納されている汎用レジスタ
番号を示し、かつ、演算結果が格納されるレジスタ番号
をも示している。また、L命令ではこのレジスタ部は、
演算結果を格納すべきレジスタ番号を示す。ビット12
−15および16−19はそれぞれインデックス部(X
)。
ベース部CB)であり、それぞれ主メモリ26から読出
すべきストレジオペランドのアドレス算出に用いる汎用
レジスタの番号を示す。以下ではレジスタ部、インデッ
クス部、ベース部が示す汎用レジスタ番号をそれぞれオ
ペランドレジスタ番号Rap、インデックスレジスタ番
号Rx 、ペースレジスタ番号R1と呼ぶことにする。
さらに1ピット20−31は上記アドレス算出に用いら
れる偏位値DISPを示すディスプレースメント部(D
)である。
第3B図は条件付分岐命令の命令フォーマットを示す。
このフォーマットのピッ)8−11i1マスク部(M)
でアシ、分岐成功となる条件コードの値を指定するもの
である。以下では簡単のために、この命令をBC命令と
呼ぶ。
BC命令のインデックスm<x)、ベース(B)。
偏位置DISPは、主メモリ26から分岐先命令アドレ
スを計算するのに用いられる。
N下の宙飾侑1f卦論イIBM ム 丁−’0ρ春ムの
みを用いて説明する。この内、第2Eユニツト20Bで
実行可能な命令はA、L命令であシ、また、条件コード
を書きかえる命令は人命令である。
〔命令の読出し〕
命令バッファ6A、6Bの一方は、現在処理されようと
している命令を含む、メモリ上の連続した命令列(メイ
ンストリームと呼ぶ)を格納するために用いられ、他方
は、メインストリーム上の分岐命令の処理が開始された
後にその分岐先命令から始まるメモリ上の連続した命令
列(ターゲットストリームと呼ぶ)を格納するのに用い
られる。
処理された分岐命令が分岐成功と判定され、分岐先命令
の処理が始まると、それまでターゲットストリームとさ
れていた命令列はその後はメインストリームとみなされ
る。このように分岐命令が分岐成功となる度にメインス
トリームを格納する命令バッファは切シ換わる。主メモ
リ26からの命令列の7エツチおよびバッファ6A、6
Bへの命令列の格納の制御は命令7工ツチ回路(図示せ
ず)によシ実施される。読出し回路8はバッファ6A。
6Bの内、現在メインストリームを格納しているものか
ら、命令を順次選択して順次命令レジスタ10に送出す
る。この読出し回路8はフリップフロップ9の値が1か
Oによジノくツファ6A、6Bを選択する。このフリッ
プフロップ9は、後述するように分岐成功信号BCTK
Nが1となるごとにその値をかえる。
命令レジスタ10には、後述するように、命令レジスタ
10内の命令のDステージが実行されるごとに、制御回
路(図示せず)により読出し回路8の出力命令がセット
される。
〔命令の実行動作の概要〕
命令レジスタ10にセットされた命令は、次のステージ
に分けて実行される。
(Dステージ) これは命令の解読とアドレス計算のステージである。す
なわち、命令レジスタ10内の命令をデコーダ12で解
読し解読情報を生成し、これを命令キューレジスタ14
内の一つのレジスタにセットする。さらに、命令レジス
タ番号内の命令のペースレジスタ番号Rm、インデック
スレジスタ番号B−xが第2汎用レジスタ18BK線4
0を介して入力される。これらのレジスタ番号に基づい
て汎用レジスタ18Bから読出された二つのデータは線
47を介して加算器24に入力され、線40を介して命
令レジスタ10から入力される偏位DISPと加算され
る。こうしてアドレスが計算される。
なお、本実施例においてデコーダ12は、命令のOP 
C0DE とオペランドレジスタ番号R’OFに基づき
、次の情報を解読情報として線42に出力する。
(1) OP C0DE (2) RR:オペランド読出しレジスタ番号で上述の
M、A命令ではオペランドレジスタ番号Rop に等し
い。
(3) Rw :演算結果を書込むレジスタ番号で、上
述の三つの命令ではオペランドレジスタ番号Ro p 
に等しい。
(4) 5UBGR:演算結果を汎用レジスタに格納す
べき命令の内、第2Eユニツ)20Bで実行可能な命令
かどうかを示す第2演算表示信号。たとえば、A、L命
令のときにこの信号が1となる。
(5) CHGGR:演算結果を汎用レジスタに格納す
べき命令であることを示すレジスタ変更表示信号。たと
えば、M、A、L命令のときにこの信号が1となる。
(615UBCC:条件コードを変更する命令の内、第
2Eユニツ) 20Bにおいて実行可能な命令であるこ
とを示す第2演算表示信号。たとえば人命令のときにこ
の信号が1となる。
(7) CHGCC:条件コードを変更する命令である
ことを示すCC変更表示信号。たとえば、人命令のとき
にこの信号は1となる。
(8)BC:BC命令であることを示すBC命令表示信
号。
(9) MA8K : B C命令のマスク部そのもの
なお、デコーダ12はこれら以外の、命令実行制御に必
要な解読情報を生成するが、これは従来技術と同じでア
シ、また本発明に直接関係がないため説明を省く。
なお、このDステージはlマシンサイクルで終了する。
(Aステージ) Dステージで計算されたメモリアドレスに基づき、主メ
モリ26からオペランドを読出し、オペランドキューバ
ッファ28の一つのバッファに格納する。このステージ
も1マシンサイクルで終了する。
(Llステージ) 第1Eユニツ)20Aに命令の解読情報と、演算に必要
なレジスタオペランドとメモリオペランドをセットする
。すなわち、セレクタ16Aによシ実行すべき命令の解
読情報を選択して、線44Aに出力する。選択された解
読情報の内、読出しレジスタ番号R,Rは第1汎用レジ
スタ18Aに入力され、これに基づき必要なオペランド
RDATA 1が読出さ、れ、このオペランドが線46
Aを介して第1Eユニツ)20Aに送られる。一方、解
読情報の内、OF 0ODE、書込みレジスタ番号几w
1第2演算表示信号5UBGR,レジスタ変更表示信号
CHQGR,条件コード変更表示信号CHGCCは第1
Eユニツト20Aに送出される。
さらに、セレクタ30Aは、オペランドキューバッファ
28から必要なメモリオペランドMDATA1を選択し
て線45Aを介して第1Eユニツト20人に送出する。
第1Eユニツト20Aはこうして入力されたいろいろの
データを内部のレジスタに取シ込む。このステージも1
マシンサイクルで実行される。
(Elステージ) 第1Eユニツ)20AがL1ステージで取シ込まれたデ
ータに基づき所望の演算を実行し、結果WDAT人1を
線50Aに出力する。このとき、同時に、すでに取シ込
まれた書込みレジスタ番号几W、第1汎用レジスタの書
込み信号WC1が出力される。また、演算が条件コード
を変更すべきもののときには演算結果に依存して条件コ
ードCCIを算出し、このコードCC1とセット指示信
号5ETIが線70Aに出力される。
なお、このステージが要するマシンサイクル数は命令が
必要とする演算の種類によシ異なる。最も短かい演算は
1マシンサイクルで終了する。なお、このE1ステニジ
に属するマシンサイクルの最後のサイクルには演算終了
信号EOPlが線48Aに出力される。したがって、1
マシンサイクルで終了する演算の場合、演算を開始した
サイクルで信号EOPIが出力される。
(piステージ) E1ステージでめられた演算結果W DATA 1は、
書込みレジスタ番号Rwで示される、第1汎用レジスタ
18A内のレジスタに書き込まれる。
この演算が第2Eユニツ)20Bで実行できない演算の
ときには、演算結果WDATAI、書込みレジスタ番号
Rwが、第2汎用レジスタ18Bにも入力され、同様の
書込みが行なわれる。第2汎用レジスタ18Bはすでに
述べたごとく、第2Eユニツト20BKよる演算結果W
DATA2を書込むよう罠なっているが、第2Eユニ7
)20Bは一部の演算しか実行できない。したがって、
第1゜第2の汎用レジスタ18A、18Bの内容の不一
致が生じる。第1Eユニツト20Aによる演算結果WD
ATA1を第2汎用レジスタ18Bにも書込むことによ
シ、この不一致の発生を防止できる。
したがって、第2汎用レジスタを前述のアドレス計算に
用いても不都合が生じない。また、条件コードを変更す
る演算のときには、算出された条件コードcc1がセッ
ト信号5ETIK応答してレジスタ34Aにセットされ
る。なお、このステージはElステージにつづく1マシ
ンサイクルで終了する。
以上のようにして、一つの命令の実行が終了する。しか
し、第2E二二ツ)20Bで実行可能でかつ汎用レジス
タもしくは条件コードを書きかえる命令は第2Eユニツ
ト20Bでも実行されるためこれらのステージで説明さ
れる動作以外に次のステージも実行される。
(L2ステージ) 第2Eユニツト20Bに演算に必要な解読情報。
レジスタオペランド、メモリオペランドをセットする。
すなわち、セレクタ16Bによシ実行すべき命令の解読
情報を選択して、線44Bに出力する。選択された解読
情報の内、読出しレジスタ番号Riは第2汎用レジスタ
18Bに入力され、これに基づき必要なオペランドRD
ATA 2が読出され、このオペランドが線46Bを介
して第2Eユニツ)20BK送られる。一方、解読情報
の内、OF 0ODE 、書込みレジスタ番号几W、第
2演算表示信号8UBGR,5UBCC,条件コード変
更表示信号CHGCCは第2Eユニツ)208に送出さ
れる。
さらに、セレクタ30Bは、オペランドキューバッファ
28から必要なメモリオペランドMDATA2を選択し
て線45Bを介して第2Eユニツト20Bに送出する。
第2Eユニツト20Bはこうして入力されたいろいろの
データを内部のレジスタに取シ込む。このステージも1
マシンサイクルで実行される。
(E2ステージ) 第2演算ユニツト20BがL2ステージで取シ込まれた
データに基づき所望の演算を実行し、結果WDAT&2
を線50Bに出力する。このとき、同時に、すでに取シ
込まれた書込みレジスタ番号孔Wも出力される。
さらにこのとき、演算が条件コードを書きかえる命令の
ときには条件コードCC2が算出される。
なお、第2Eユニツ)20Bは比較的簡単な演算、たと
えば、加算、減算、ロード等のみを1マシンサイクルで
行なうもので、乗算等のやや複雑な演算は行いえないも
のと仮定している。したがって、このE2ステージは1
マシンサイクルで終了する。一般的には、第2Eユニツ
)20Bは以上のものに限定されないので、とのE2ス
テージは、第2E5−ニラ)20Bが実行する演算によ
り異なるマシンサイクルで終了すればよい。その場合、
そのステージの最終サイクルでは演算終了信号EOP 
2が出力されるので、この最後のサイクルをEOP2サ
イクルと呼ぶことができる。したがって、現在、仮定し
ているように、第2Eユニツト20Bは必らず1マシン
サイクルで終了する演算のみを行う場合には、このE2
ステージはEOP 2サイクルのみからなる。
(P2ステージ) E2ステージでめられた演算結果W DATA 2は、
書込みレジスタ番号Rwで示される、第2汎用レジスタ
18B内のレジスタに書込まれる。また、算出された条
件コードCC2がレジスタ34Bにセットされる。
〔動作の詳細I〕アドレスコンフリクトがある場合 以下では、まず、アドレスコンフリクトの場合の装置動
作を通して装置の詳細を説明する。装置の内、条件コー
ドに関与する部分とその動作の説明は後でまとめて説明
する。
以下では、アドレスコンフリクトがある時の装置動作の
説明のためM、A、L命令がこの順に実行されると仮定
する。また、人命令のオペランドレジスタ番号Rop 
とL命令のアドレスレジスタ番号孔X又はfL農が等し
く、シだがってこれらの二つの命令間にアドレスコンフ
リクトが生じると仮定する。ただし、M、A命令間、M
、L命令間あるいはM、A、L命令とこれらに先行する
命令間にはアドレスコンフリクトがないものと仮定する
。また、条件コードコンフリクトはどの命令間にも存在
しないと仮定する。
第9人〜9Cのタイムチャートを参照して説明する。
(Dステージの詳細) Dステージが実行されるためには、命令の解読情報が命
令キューレジスタ14にセットされねばならない。この
命令キューレジスタ14へのセットは第1Iユニツ)2
2人が制御する。この制御の仕方は、従来技術によるも
のと本質的に変わらない。すなわち、命令キューレジス
タ14に新たに解読情報がセットできるのは、ある命令
が命令レジスタl0ICセツトされ、しかも命令キュー
レジスタ14に空きのレジスタがアシ、さらに、その命
令が命令キューレジスタ14内にすでにセットされてい
る命令もしくはすでに実行中の命令に対してアドレスコ
ンフリクトと条件コードコンフリクトがない場合である
アドレスコンフリクトの検出のために、命令レジスタI
QKセットされた命令のアドレスレジスタ部Rm、Rx
は線40を介してアドレスコンフリクト検出回路32に
入力され、そこで後述するようにしてアドレスコンフリ
クトの有無が検出され、検出結果ACONFが第1エユ
ニツ)22Aに線58を介して入力される。同様に、後
述するように条件コードコンフリクトの検出が回路36
で行なわれ、検出結果CC0NFが第1Iユニツト22
Aに線74を介して入力される。第1Iユニツト22A
には第4図に示すように、制御回路(図示せず)によシ
命令レジスタ10に新たな命令がセットされるごとに、
その制御回路によりセットされるフリップフロップ70
を有する。さらに1キユ一制御回路72は命令キューレ
ジスタ14の各レジスタが空いているか否かを表示する
ための三つのフリップフロップ(図示せず)を有し、こ
れらの三つの7リツプ70ツブのセット状態により、ど
のレジスタも空いていないときにキュービジー信号BS
Yを出力するようになっている。デコード成功決定−路
71は、フリップフロップ70の出力が1でコンフリク
ト信号ACONF。
CC0NF、キュービジー信号がいずれも0のときに、
デコード成功信号DSを線56Aを介して、命令キュー
レジスタ14に送シ、デコーダ12からの解読情報の取
シ込みを指示する。命令キューレジスタ14内のどのレ
ジスタにこの解読情報を取り込むかを指示するだめの入
力ポインタIPはキューコントロール回路72が線56
Aを介して命令キューレジスタ14に送る。この入力ポ
インタIPを出力するため、キューコントロール回路7
2は内部に0.1.2を順次カウントするカウンタ(図
示せず)を有し、そのカウント値を入力ポインタIPと
して出力するようになっている。
このカウンタの更新はデコード成功信号DSの立上がシ
から1サイクル遅れて行なわれる。また、信号DSによ
シフリップフロップ70がリセットされ、制御回路(図
示せず)がこのリセットに応答して命令レジスタ10に
セットする。今、命令キューレジスタ14内の2番、0
1,1番のレジスタに前述のM、A、L命令がこの順で
セットされると仮定する。また、各サイクルの最初およ
びプの脇に記載された(TO)又は(T2)はこれらの
レジスタ又はフリップフロップの内容が変更されるタイ
ミングがTO又はT2であることを示す。さて、M命令
が命令レジスタ10にタイミングCo、To (すなわ
ち、サイクルCO内のタイミングTO1以下同様)にセ
ットされる。
M命令は先行する他の命令に対してアドレスコンフリク
ト又は条件コードコンフリクトがなく、また、命令キュ
ーレジスタ14がビジーでないと仮定すると、デコード
成功信号DSがタイミングCO,T2にて出力され、入
力ポインタIpはそのとき仮定によシ値2を有している
ので、これらの信号によシM命令の解読情報は命令キュ
ーレジスタ14内の2番のレジスタにタイミングC1゜
TOにセットされる。
この後、タイミングCI、T2に入力ポインタIPは0
に更新される。タイミングC1,TOには人命令が命令
レジスタ10にセットされ、人命令のDステージがM命
令のDステージより1サイクル遅れて、全く同じように
実行される。この結果、命令キューレジスタ14内の0
番のレジスタに人命令の解読情報がセットされ、かつ入
カポインタ紘1に更新される。
タイミングC2,Toには次のL命令が命令レジスタ1
0にセットされる。しかし、とのL命令は、仮定により
、すでに命令キューレジスタ14にセットされている人
命令に対してアドレスコンフリクトがある。したがって
、アドレスコンフリクト検出回路32の出力ACONF
が後述するように1となり、デコード成功決定回路71
はデコード成功信号DSをこのアドレスコンフリクトの
解除が検出されるまで出力しない。したがって、L命令
は命令キューレジスタ14に取シ込まれず、Dステージ
の実行が延期される。本実施例では、L命令のDステー
ジが実行されるのは、後述するごとく、サイクルC5で
ある。したがって入力ポインタIPはそれまで値1を保
持しつづける。
なお、Dステージにおけるアドレス計算は次のようなタ
イミングの下で行なわれる。
M命令がタイミングCo、TOにて命令レジスタ10に
セットされた後、第2汎用レジスタ18Bからこの命令
が指定するアドレス情報がただちに読出され、加算器2
4が出力するメモリアドレスはタイミングCO,T2に
確定する。
人命令のだめのアドレス計算はM命令よシ1サイクル遅
れて全く同じようになされ、人命令のだめのメモリアド
レスはタイミングCI、T2に確定する。
i11ユニツ) 22 A内のキューコントロール回路
72では、命令キューレジスタ14に新たな解読情報を
セットするごとに、このレジスタ14内の各レジスタが
空いているか否かを表示するフリップフロップ(図示せ
ず)をセットする。
(Aステージの詳細) このステージでは、Dステージでめられたメモリアドレ
スに基づき主メモリ26からメモリオペランドが読出さ
れ、オペランドキューバッファ28にセットされる。す
でに述べたごとく、M命令の解読情報が命令キューレジ
スタ14内の2番のレジスタにセットされている。した
がって、M命令に対応するメモリオペランドも、オペラ
ンドキューバッファ2B内の2番のバッファにセットさ
れる。このため、第1■ユニツ)22Aは入カポインタ
IP、デコード成功信号DSをそれぞれ、フリップフロ
ップ73.74で1サイクル遅延した信号IPD、DS
Dを線57Aを介してバッファ28に供給するよう罠な
っている。この結果、M命令のだめのメモリオペランド
は信号DSD。
IPDに応答してタイミングC2,TOにバック728
内の2番のレジスタにセットされる。同様に人命令のた
めのメモリオペランドはタイミングC3,TOにバッフ
ァ28内の0番のレジスタにセットされる。
(LLステージの詳細) 各命令のLlステージはそれに先行する命令のElステ
ージが終了したとき、すなわち、第1Eユニツトから第
1演算終了信号EOP1が出力されたときに開始される
。このL1ステージでは命令キューレジスタ14とオペ
ランドキューバッファ28からそれぞれ一つの解読情報
とニっのメモリオペランドがそれぞれセレクタ16A、
30Aによシ選択され、第1Eユニツト20Aにセット
される。
これらの制御は第1Iユニツト22人が行う。
すなわち、第1エユニツト22A内のキューコントロー
ル回路72は、セレクタ16A、30Aに選択すべきレ
ジスタ番号又はバッファ番号を示す出力ポインタOPI
を線53Aを介して送出するカウンタ(図示せず)を有
する。このカウンタは、0.1.2の値を順次繰シ返し
カウントするものである。キューコントロール回路72
は、第1Eユニツト20人から第1演算終了信号EOP
 1が出力されると、第1演算開始信号BOP 1を線
52Aを介して1サイクルの聞出力するとともに、信号
BOPIが出力されたサイクルの次のサイクルのタイミ
ングToで出力ポインタOPIを更新する。
後述するように信号EOP 1は、先行する命令のE1
ステージの最終サイクルのタイミングTOからその後信
号BOPIが入力されるまで第1Eユニツト20Aから
出力されるようになっている。M命令に先行する命令(
これを今、命令Xと呼ぶ)のE1ステージがサイクルC
2にて終了すると仮定すると、信号EOP1はタイミン
グC2,TOから1サイクルの聞出力される。このとき
キューコントロール回路72は出力ポインタOPIとし
て仮定によ、9M命令を選択するための値2を出力して
おシ、またタイミングC2,TOから1サイクルの間、
第1演算開始信号BOPIを出力する。なお、出力ポイ
ンタOPIは、タイミングC3゜TOにおいて、0に更
新される。
以上のごとくにして、サイクルC2において出力される
出力ポインタ0PIO値2に基づき、セレクタ16A、
30AからM命令の解読情報、メモリオペランドの選択
が行なわれる。一方、サイクルC2において出力された
第1演算開始信号BOPIに基づき、第1Eユニツ)2
0Aはこれらの選択情報を取シ込む。このとき、セレク
タ16Aによシ選択された解読情報の内、読出しレジス
タ番号几Rは第1汎用レジスタ18Aに入力され、それ
に基づき読出されたレジスタオペランドRDATA1が
線46Aを介して第1Eユニツト20Aに入力される。
第1Eユニツ)20AはこのオペランドRDATA 1
も取シ込む。
第1Eユ=ツ) 20Aは第5図にあるように第1演算
回路400と7リツプフロツプ401゜403およびア
ンドゲート405からなる。第1演算回路400は、線
44Aを介してセレクタ16Aから入力されるOF 0
ODE 、書込みレジスタ番号Rw、レジスタ変更表示
信号CHGG几。
条件コード変更表示信号CHGCCと、線46Aを介し
て第1汎用レジスタ18Aから入力されるレジスタオペ
ランド几DATAIと、線45人を介してセレクタ30
Aから入力されるメモリオペランドMDATA1とを、
線52Aを介して第1Iユニットから入力される演算開
始信号BOPIに応答して、その内部のレジスタ(図示
せず)にセットする。一方、線44Aを介してセレクタ
16Aから入力される第2演算指示信号5UBG几は、
信号BOPIに応答してフリップフロップ401にセッ
トされる。こうして、第1Eユニツト20Aにおける入
力データの取シ込みが行なわれる。
今考えている例では、タイミングC2,TOにおいて、
M命令に関連するデータが第1Eユニツト20人に取シ
込まれ、M命令のL1ステージが終了する。しかし、次
の人命令のLlステージは、M命令に対する演算終了信
号EOPlが出力されるタイミング(ここではサイクル
C7)まで実行されない。
(Elステージの詳細) 第1演算回路400は、入力されたOP C0DEにて
指定される演算、たとえばM命令に対しては乗算を、レ
ジスタオペランドRDATAI、メモリオペランドMD
ATA1に対して実行し、結果データWDATAlを線
50 AK出力するとともに、演算の最終サイクルのタ
イミングTOからその後信号BOPIが入力されるまで
、演算終了信号EOPIを出力する。このとき、入力さ
れた解読情報内の書込みレジスタ番号Rwは結果データ
W DATA 1が算出されるまで、回路400内に保
持されておシ、結果データWDATA1とともに線50
Aに出力されるようになっている。また入力された条件
コード変更表示信号CHGCCが1のときには、回路4
00はOP C0DE と結果データWDATA1に依
存して、条件コードCC1を算出し、この信号とともに
セット信号5ETIをこの最終サイクルで出力する。信
号CHGCCが0のときには信号5ETIは0のままで
ある。さらに、回路400は取込まれているレジスタ変
更表示信号CHGG几が1のときKは、結果データWD
AT入1の出力と同期して、書込み信号WC1を線50
Aに出力するように構成されている。回路400はたと
えばマイクロ命令制御の回路によシ構成される。
一方、フリップフロップ401にタイミングTOでセッ
トされた第2演算表示信号5UBG几は同じサイクル内
のタイミングT2で7リツプフロツプ403に移される
。このフリップ70ツブ403内の信号5UBGRの反
転信号と回路400から線50人に出力される書込み信
号WC1がアンドゲート405に入力される。したがっ
て、ゲー)405の出力WCl2は、第1演算回路40
0で実行された演算が第2Eユニツトでは実行不可能で
かつ汎用レジスタを書きかえるもののときにのみ1とな
る。この出力WCl2は演算結果WDATA1を第2汎
用レジスタ18Bに書込むのに用いられる。
今考慮しているM命令は、仮定によ#)5マシンサイク
ルを演算に必要とするので、結果データWDAT入1.
信号EOP1が出力されるのは、それぞれサイクルCB
、C7においてである。また、この命令は、第2Eユニ
ツ) 20Bで実行できないと仮定しているので、出力
WCl2は1となる。
なお、サイクルC7において信号EOP1が出力される
と、次の人命令のだめの演算開始信号BOPIが第1I
ユニツト22Aから出力されるので、人命令のL1ステ
ージが実行可能になる。人命令のE1ステージは1サイ
クルのみ必要とするので、サイクルC8のみで終了する
(PIステージの詳細) 第1Eユニツ)20Aから線50A上に出力された結果
データWDATAIは、その線上の書込み信号WCI、
WCl2に基づき、第1.第2汎用レジスタ18A、1
8B内の、書込みレジスタ番号Rwを有するレジスタに
タイミングT2で書き込まれる。また、算出された条件
コードCCIはセット信号5ETIに応答して、レジス
タ34Aに書込まれる。したがって、レジスタ34Aは
条件コードを変更する命令の内、最も新しく実行された
命令が出力した条件コードがセットされている。
こうして、M命令、A命令のP1ステージはそれぞれ、
サイクルCB、C9で実行される。ただし、人命令は、
第2Eユニツ)20Bで実行可能のため(SUBGR=
1 )、WC12=0となシ、結果データWDATAI
は第2汎用レジスタ18Bには書き込まれない。また、
M命令は条件コードを変更する命令でないのでレジスタ
34Aの内容は変更されない。また人命令の演算によ請
求まった条件コードCCIはサイクルC9でレジスタ3
4Aにセットされることになる。
以上のようにして、M、A命令のD−PLステージが実
行される。しかし、次のL命令はA命令に対してアドレ
スコンフリクトを有するので、このコンフリクトが解除
するまで、L命令のDステージは実行されない。従来技
術によると、このコンフリクトが解除されるのは人命令
のE1ステージの終了時すなわちC8サイクルであシ、
シたがって、L命令のDステージはC9サイクルから開
始される。
本実施例では、L命令のDステージの開始を早めるため
に、第2Eユニツト20Bが、人命令のE1ステージの
終了前に起動されるようになっている。以下、この点を
さらに詳細に説明する。
(L2ステージの詳細) 、 このステージは第2Eユニツト20Bに必要なデー
タをセットするステージである。このステージは第2I
ユニツト22Bによシ制御される。この第2エユニツ)
22Bには第6図に示されるように、命令キューレジス
タ14内のレジスタナO〜す2に対応してフリップフロ
ップ101〜103がそれぞれ設けられ、これらのフリ
ツプフロツプハ命令キューレジスタ14内の対応するレ
ジスタに有効な解読情報がセットされているか否かを表
示するためのものである。すなわち、デコーダ100は
デコード成功信号DSにより起動され、そこに入力され
る入力ポインタIPで示されるレジスタ番号に対応する
フリップフロップ101〜103のいずれかに対して1
信号を出力する。この信号は、フリップフロップ101
〜103内の、入力ポインタIPに対応する一つのフリ
ップフロップのデータ端子に入力され、さらにオアゲー
ト107〜109の一つを介して、その一つのフリップ
フロップのクロック端子に入力される。こうして、入力
ポインタIPに対応してスリップ70ツブ101〜10
3の一つがセットされる。なお、これらのフリップ70
ツブ101〜103はタイミンクTOでのみ入力データ
の取シ込みを行うものとする。さらにフリップフロップ
120〜122はそれぞれフリップフロップ101〜1
03の出力を1サイクル遅延して出力するだめのもので
、これらの7リツプフロツプ120〜122もタイミン
グTOでのみ出力を変化するものとする。
フリップフロップ149,150,153゜154、デ
コーダ148は0,1.2を順次カウントするカウンタ
を構成し、フリップ70ツブ153.154の出力は、
第2Eユニツト20Bで実行されるべき命令に関する情
報の選択のための出力ポインタOP2として用いられる
。すなわち、この出力ポインタOP2は、線53Bを介
してセレクタ16B、30Bに入力され、実行すべき命
令の解読情報およびメモリオペランドMDATA2がこ
れらのセレクタによシ選択的に線44B、45Bにそれ
ぞれ出力されるようになる。
しかし、これらの情報を第2Eユニツト20Bにセット
してもよいのは第2Eユニツト20Bにおいて先行する
命令のだめの演算が終了し、かつ、次にL2ステージを
実行しようとする命令のための情報が命令キューレジス
タ14.オペランドキューバッファ2Bにセットされて
いる場合である。
第2Eユニツ)20Bは後述のように第2演算開始信号
BOP2に応答してセレクタ16B、30Bの出力をセ
ットし、演算の最終サイクルから終了信号EOP2を出
力するようになっている。第2■ユニツ) 22Bでは
、出力ポインタOP2によシフリップフロップ120〜
122の出力の一つがセレクタ129によシ選択される
。この選択された信号は出力ポインタOP2で示される
命令キューレジスタ14内のレジスタに実行すべき命令
がセットされていることを示している。したがって、第
2■ユニツト22Bは、線48Bを介して入力される信
号EOP2とセレクタ129の出力信号との論理積をと
り、両方の信号がともに1のときにのみ演算開始信号B
OP 2を線52BIC出力するようになっている。
結局、とのL2ステージでは次のようにして、第2Eユ
ニツ)20Bに必要な情報がセットされる。セレクタ1
6Bによシ選択された解読情報の内、OP C0DE 
、書込みレジスタ番号几W、第2演算表示信号5UBG
R,8UBCCおよび条件コード変更表示信号CHGC
Cは線44Bを介して直接第2Eユニツト20Bに送ら
れ、読出しレジスタRIRは第2汎用レジスタ18Bに
入力され、レジスタオペランドRDATA2の読出しに
用いられる。このオペランドは線46Bを介して第2E
ユニツト20Bに入力される。セレクタ30Bにより選
択されたメモリオペランドMDATA2は線45Bを介
して直接第2Eユニツ) 20Bに送られる。第2Eユ
ニツト20Bはこれらの情報を信号BOP2に応答して
取シ込む。
なお、第2エユニツ)22Bでは、第6図に示すように
信号BOP2に応答してデコーダ148が起動され、そ
のときの出力ポインタOP2をカウントアツプした値を
示す信号を7リツプ70ツブ149.150に出力する
。こうして出力ポインタOP2は、信号BOP2が出力
されるごとに更新されることになる。また、信号BOP
2にょシデコーダ113が起動される。このデコーダ1
13はそのときの出力ポインタの値に応じて、オアゲー
ト107〜109の一つに信号1を送る。このときデコ
ーダ100にはデコード成功信号DSが入力されていな
いかあるいは信号Dsが入力されていてもそのときの入
力ポインタの値は出力ポインタOP2の値と異なるので
、出力ポインタOP2に対応するフリップフロップ10
1又は102又は103のデータ端子には、デコーダ1
00から信号1が入力されることはない。したがって、
出力ポインタOP2に対応してフリップフロッグ101
〜103の一つがリセットされることになる。
すでに述べたように、仮定では、M命令のDステージの
ためのデコード成功信号DsはタイミングCO,T2で
出力され、このときの入力ポインタIPは2であるので
、フリップフロップ103がタイミングCI、TOでセ
ットされ、フリップフロップ122がこれより1サイク
ル遅れたタイミングC2,TOでセットされる。このと
きフリップフロップ153,154よ多出力される出力
ポインタ6P2は仮定によJ、L2ステージを実行すべ
きM命令に対するものでなければならず、値2を示す。
したがって、セレクタ129の出力はタイミングC2,
TOでは1でアシ、このときM命令の前の命令Xに対す
る第2Eユニツトでの演算が終了していると仮定してい
るので、信号EOP 2は1である。したがって、信号
BOP2も1となる。こうして第2Eユニツト20Bに
対してM命令の実行に必要なデータがセットされる。こ
うして、M命令のL2ステージがサイクルC2に行なわ
れる。また、この信号BOP2によシデコーダ148が
起動され、そのときの出力ポインタOP2をカウントア
ツプした値Oを出力する。この値はフリップフロップ1
49,150にタイミング02.T2で取シ込まれ、さ
らに、フリップフロップ153,154にタイミングC
3,TOで取り込まれる。したがって、出力ポインタO
P2はサイクルC3では、次の人命令のだめの値0に更
新される。
なお、信号BOP2によシデコーダ113がタイミング
C2,TOで起動され、そのときの出力ポインタOP2
の値2に対するORゲート109に1信号を出力する。
この結果、フリップ70ツブ103がタイミングC3,
TOでリセットされる。
なぜなら、このときには、入力ポインタIPは1に更新
されておシ、フリップフロップ103のデータ入力端子
に1が入力されることはないからである。
全く同じように人命令のL2ステージが行なわれ、サイ
クルC3にこの命令のための信号BOP 2が出力され
る。この間、出力ポインタOP2はタイミングC3,T
Oで0になり、次にタイミングC4,TOでIK更新さ
れる。
ただし、次のL命令は人命令に対してアドレスコンフリ
クトがあるため、この命令のためのデコード成功信号D
SがタイミングC5,T2で出力されるので、L命令の
L2ステージはサイクルC7まで延期される。したがつ
−C1出カポ・「ンタOP2はタイミングC4,TOで
の値1をそれまで保持しつづけている。
タイミングC5,T2でL命令のためのデコード成功信
号DSが出力されると、タイミングC6゜TOでフリッ
プフロップ102がセットされる。
その後M1人命令の場合と全く同様にタイミングC7,
TOでL命令のための演算開始信号BOP2が出力され
る。
(E2ステージの動作) 第2E2ユニツ)20Bでは第7図に示すようにレジス
タ298〜305にそれぞれ、第2演算表示信号5UB
CC,条件コード変更表示信号CHGCC,演算開始信
号BOP2.第2演算表示信号5UBGR,書込みレジ
スタ番号Rw、オペレーションコードOP C0DE 
、レジスタオペランドRDATA2.メモリオペランド
MDATA2が信号BOP2に応答してL2ステージの
動作によシセットされている。第2演算回路307は信
号BOP2で起動され、レジスタ303にセットされた
0PCODEによシ指定される演算を行ない、演算結果
WDATA2t−レジスタ310に送出するとともに、
また、OP C0DE が条件コードを変更する演算を
指示しているときには、条件コードCC2を演算結果W
DATA2と演算の種類に依存して算出して出力する。
また、演算の最終サイクルで線488に演算終了信号E
OP2を出力するようになっている。この信号は、次に
BOP 2信号が入力されるまで毎サイクル出力される
。また、入力された0PCODEで指定される演算をこ
の第2演算回路307が実行できないときでも、この回
路307はこの信号EOP2を次に信号BOP2が入力
されるまで毎サイクル出力する。したがって、現在、仮
定では、第2演算回路307は1マシンサイクルの演算
しか実行しないと仮定して吟るので、信号EOP2は毎
サイクル出力されることになる。
また、レジスタ310に演算結果WDATA2がタイミ
ングTOでセットされ、レジスタ302にセットされて
いる書込みレジスタ番号几Wがレジスタ309にタイミ
ングT2でセットされ、同様にレジスタ300.30:
Lにそれぞれセットされた信号BOP2と5UBGRと
が論理積ゲートを介してタイミングT2でレジスタ30
8にセットされる。レジスタ308の出力はその値が1
のときに第2汎用レジスタ18Bに結果WDATA2を
書込むべきことを示す書込み信号WC2である。
レジスタ298の出力VALIDは条件コードCC2が
有効であることを示す信号でアシ、第2演算表示信号5
UBCCが1である命令のL2ステージが実行されたと
きに1となる。すなわち、L2ステージが実行された命
令の演算が第2E二二ツ)20Bで実行可能でアシ、か
つ、条件コードを変更する命令のときに信号VALID
が1となシ、それ以外の命令のときには0となる。
また、レジスタ299の出力とレジスタ300の出力の
論理積がアンドゲートから出力される。
この論理積5ET2は、条件コードを変更する命令のE
2ステージで1となシ、それ以外の命令では0となる。
この信号5ET2は、条件コードCC2と有効表示信号
VALIDを条件コードレジスタ34B(第1B図)に
セットするのに用いられる。
M命令は第2E二二ツ)20Bで実行できない命令であ
るので、書込み信号WC2は0のままで6す、第2 t
)[回路307の出力WDATA2゜CC2は無意味で
ある。したがって、このような命令に対してはE2ステ
ージは有意な結果を持たらさない。このことは、L2.
P2ステージについても同様である。
人命令に対してはサイクルC4で演算が行なわれ、結果
データWDATA2.条件コー)” CC2カタイミン
グC5,TOで、書込みレジスタ番号RW、書込み信号
WC2がタイミングC4,’r2で線50Bに出力され
ることになる。L命令についてもサイクルC8で演算が
同じように行なわれる。
(P2ステージの詳細) E2ステージでこのようにめられた結果データWDAT
A2は、線50Bを介して第2汎用レジスタ18Bに送
られ、書込み信号WC2が1のときに番号Rwで示され
るレジスタに書込まれる。
また、セット信号5ET2が1のときには、条件コード
レジスタ34B(第1B図)に条件コードCC2と有効
表示信号VALIDがセットされる。
セット信号5ET2が0のときには、レジスタ34Bの
内容はかわらない。したがって、E2ステージを実行さ
れた命令が条件コードをかえる命令のときには、レジス
タ34Bの内容が書きかえられる。
したがって、この命令が第2Eユニツトで実行可能なと
きには、レジスタ34Bの新しい内容は、値1をもつ’
VALID信号と第2Eユニツト20Bで新たにめられ
た条件コードCC2である。しかし、この命令が第2E
二二ツ) 20Bで実行できない命令のときには、レジ
スタ34Bの新しい内容は値0をもつVALID信号と
、第2Eユニツト20Bから線70Bに出力されている
無意味なデータである。一方、E2ステージが実行され
た命令が条件コードをかえない命令のときには、レジス
タ34Bの内容は書きかえられない。
したがって、M命令では第2演算表示信号5UBGRが
0であるので汎用レジスタへの書込みが行なわれないが
、人命令では、タイミングC5゜T2にてこの書込みが
行なわれることになる。また、人命令では条件コードC
C2と値1と持っVAL I D信号がレジスタ34B
にセットされる。
すでに述べたごとく、人命令のP1ステージはサイクル
C9で行なわれる。したがって、このP1ステージの書
込み結果を利用してL命令を実行しようとすると、L命
令のDステージはC9サイクルから始めなければならな
い。しかし、本実施例では第1Eユニツ)20Aとは別
に設けた第2Eユニツ)20Bによシ加算演算を行うの
で、人命令のP2ステージはサイクルc5で実行可能と
なる。したがって、人命令のE2ステージ(C4サイク
ル)の終了時K、アドレスコンフリクトが解除され、後
述するようにアドレスコンフリクト検出回路32(第1
B図)の出力A C0NFカOとなシ、第1エユニツ)
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ユニツト20Bでの演算の結果が第
2汎用レジスタ18Bに書込まれたとき、すなわち、そ
の命令のP2ステージが行なわれるときにリセットされ
る。この例外は第2汎用レジスタ18Bの内容は後続の
命令のアドレス検出に用いられるので、この第2汎用レ
ジスタ18Bが書きかえられた時点でアドレスコンフリ
クトが解消するので、たとえ第1Eユニツ)20Aでの
演算が開始されていなくても、アドレスコンフリクトの
検出を行う必要がないことによる。この例外により、後
続の命令のDステージの実行を早めることができる。
以上のごとくに7リツプフロツプ200〜202のセッ
トとリセットを制御するためにセット回路250、リセ
ット回路252,254が設けられている。
すなわち、回路250は線42を介して命令デコーダ1
2から与えられるレジスタ変更表示信号CHGGRが1
のときに、信号DSに応答して、入力ポインタIPに依
存して、フリップフロップ200〜202の一つをセッ
トする。この結果、命令キューレジスタ14ヘ一つの解
読情報がセツットされたときに、これらの7リツプ70
ツブ200〜202の対応する一つがセットされる。
回路252はこれらの7リツプフロツプを対応する命令
に対するL1ステージの終了後にリセットするためのも
ので、LLステージの開始を指示するのに用いた演算開
始信号BOP1をレジスタ236でラッチすることによ
シ信号BOP1を1マシンサイクル遅延させた信号BO
PLD K応答し、Llステージで用いられた出力ポイ
ンタOPIをレジスタ237で同じように遅延させて得
られるポインタ0PIDによシ指定される7リツグ70
ツブ200〜202の一つを選択的にリセットする。回
路254は第2Eユニツ)20Bで実行可能な命令に対
するP2ステージが終了した時にこれらのフリップフロ
ップを例外的にリセットするためのもので、第2Eユニ
ツト20BよpE2ステージの終了時に出力される第2
汎用レジスタ18Bへの書込み信号WC2に応答して、
ポインタ0P2Dに依存してこれらのフリップフロップ
200〜202の一つを選択的にリセットする。このポ
インタ0F2Dは、L2ステージで用いられた出力ポイ
ンタOP2を1マシンサイクルだけ、フリップフロップ
155,156 (第6図)によシ遅延して得られるも
のである。
レジスタ218〜220は命令キューレジスタ14内に
セットされた解読情報の各々の書込みレジスタ番号EL
wを記憶するレジスタで、セット回路225が、デコー
ド成功信号DSが入力されたときに、そのときの入力ポ
インタIPに依存して、a42を介して命令デコーダ1
2から送られている書込みレジスタ番号几Wをこれらの
レジスタ218〜220に選択的にセットする。
コンパレータ224は上記分類(1)K属する命令に対
するアドレスコンフリクトを検出するだめのもので、線
40を介して命令レジスタloにセットされた後続の命
令のアドレスレジスタ番号(ベースレジスタ番号R1と
インデックスレジスタ番号几X)と、レジスタ218〜
220にセットされた書込みレジスタ番号との一致を検
出するためのものである。ただし、レジスタ218〜2
20の内、対応するフリップフロップ200,201又
は202がセットされているレジスタのみが、この一致
検出の対象となる。このコンパレータ224の一致出力
は線221.オアゲー)235゜線58を介してアドレ
スコンフリクト検出信号ACONFとして第1エユニツ
ト22Aに送出され、後続命令のDステージの開始の制
御に用いられる。
上述の分類(2)K属する命令に対するコンフリクトの
検出は次のように行なわれる。
7リツプフロツプ258は命令キューレジスタ14から
第1Eユニツト20Aに汎用レジスタを書きかえる命令
に対する解読情報がセットされたとき(LXステージ実
行のあと)Kセットされ、第1Eユニツ) 20Aでの
演算結果が第2汎用レジスタ18Bに書込まれたとき(
PIステージのとき)にリセットされる。ただし、第1
Eユニツト20人にセットされた解読情報が第2gユニ
ット20Bで実行可能なときには、フリップフロップ2
58はセットされない。このためフリップフロップ25
8は信号0PIDに応答してフリップフロップ200〜
202の出力を選択するセレクタ256の出力を、信号
BOPID K応答してセットし、第1Eユニツト2O
Aでの演算実行後に第13−’−=7ト20Aから出力
される、第2汎用レジスタ18Bに対する書込み信号W
Cl2に応答してリセットするようになっている。
なお、リセット回路252も同じ信号BOPID。
0PIDに応答してクリップフロップ200〜202の
いずれかをリセットするが、フリップフロップ258の
セットがなされた後、リセット回路252が動作するよ
うに回路252を構成する。
一方、セレクタ227は信号0PIDに応答しテレシス
タ218〜220の一つを選択し、レジスタ228 は
信号BOPIDに応答してこのセレクタの出力をセット
する。したがって、レジスタ228は、第1Eユニツト
で実行中の命令の書込みレジスタ番号孔Wを格納する。
コンパレータ230は7リツプフロツプ258のセット
出力が入力されているときに起動され、レジスタ228
内のレジスタ番号Rwと線40を介して入力される後続
の命令のアドレスレジスタ番号Rm、Rxとを比較し、
一致を検出したときには線234゜オアゲー)235.
線58を介してアドレスコンフリクト検出信号ACON
Fを第1■ユニツト22Aに送出するようになっている
。こうして、上述の分類(2)に対するコンフリクトの
検出が終了する。
仮定では、M命令に対するデコード成功信号DSはタイ
ミングco、’1’2で出力され、このときの入力ポイ
ンタIPは2であるので、タイミングCI、Toでフリ
ップフロップ202がセットされ、レジスタ220にM
命令の書込みレジスタ番号孔w(M)がセットされる。
タイミングCI。
TOで命令レジスタ10に次の人命台がセットされると
、この人命台のアドレスレジスタ番号R1とRxがコン
パレータ224でレジスタ220内の書込みレジスタ番
号孔w(M)と比較される。
仮定では、A、M命令間にはアドレスコンフリクトがな
いので、信号ACONFはサイクルC1では0である。
この信号A C0NFが0であることに応答して、第1
エユニツ)22Aは、A命令に対するデコード成功信号
DSタイミングCI、T2で出力する。この信号DSに
応答して、人命台の書込みレジスタ番号孔w (A)が
入力ポインタIPの値0に対応するレジスタ218にセ
ットされ、かつフリップフロップ200がセットされる
。次に、タイミングC2,ToでL命令が命令レジスタ
10にセットされ、その命令のアドレスレジスタ番号が
仮定によりレジスタ218内にある、A命令の書込みレ
ジスタ番号孔w (A)に一致するため、サイクルC2
の間はコンパレータ224が出力する信号ACONFは
1となる。このため、L命令に対するデコード成功信号
DSはタイミングC2,T2では出力されず、L命令の
実行は延期される。
一方、人命台のE2ステージがその後第2Eユニツト2
0Bで実行され、タイミングC4,T2で書込み信号W
C2が第2Eユニツ) 20Bによシ出力される。この
とき、出力ポインタOP2はすでに1に更新されている
が、出力ポインタOP2を1サイクル遅らして得られる
ポインタ0P2Dは1サイクル前の出力ポインタOP2
の値0を出力している。したがって、リセット回路25
4はフリップフロップ200をタイミングC5,TOで
リセットする。この結果、コンパレータ224から線2
21への出力は0となる。したがって、このとき、A、
L命令間のコンフリクトが解除されたことになる。しか
し、このタイミングでは、M命令のElステージが終了
していないので、実行中のM命令と次のL命令との間で
アドレスコンフリクトがない状態のときにかぎりL命令
のDステージを開始することができる。このコンフリク
トの検出は、コンパレータ230によシ行なわれる。
すなわち、M命令に対する演算開始信号BOP 1はタ
イミングC2,Toで出力されるので、この信号BOP
1を1サイクル遅延した信号BOPID に応答して、
タイミングC4,Toにフリップフロップ258がセッ
トされるとともに、フリップフロップ202がリセット
され、レジスタ228にレジスタ220にセットされて
いたM命令の書込みレジスタ番号孔w(M)がセットさ
れる。
したがって、タイミングC4,TO以降において、命令
レジスタ10内のL命令のアドレスレジスタ番号孔s、
I%xとこの書込みレジスタ番号孔w(M)とがコンパ
レータ230で比較される。
仮定により、M、L命令間にコンフリクトがないと仮定
しているので、コンパレータ230(7)サイクルC4
以降の出力は0である。したがって、コンフリクト検出
信号ACONFはコンパレータ224の出力が0となる
タイミングC5,TO以降0となる。この結果、タイミ
ングC5,T2で第1Iユニツ)22AによりL命令に
対するデコード成功信号DSが出力され、L命令のDス
テージがサイクルC5から開始されることになる。
なお、その後人命令に対して信号BOP1がタイミング
C7,TOで出力されるので、フリップフロッジ258
.レジスタ228はタイミングC9゜Toに書きかえら
れる。以下、同じようにL命令に対しても同様の動作が
行なわれる。
〔動作の詳細■〕条件コードコンフリクトがある場合 この場合の装置とその動作説明のために以下では、M、
A、BCがこの順に実行され、Be命令での分岐成功判
定の結果、分岐成功のときにはL命令が実行されるもの
とする。、また、これらの命令間およびこれらに先行す
る命令とこれらの命令の間でアドレスコンフリクトがな
いと仮定する。
(Be命令の処理) このときの動作のタイムチャートは第11A〜11C図
に示される。ただし、この図では、条件コードコンフリ
クトの動作の理解に必要な信号のみを示しである。
M、A命令は先に述べたのと全く同じように実行され、
Be命令のDステージがサイクルC2で実行されると仮
定する。
Be命令のDステージにおいては、M9人命令と同様に
加算器24でアドレスが算出されるが、このアドレスは
分岐先の命令のアドレスである。
Be命令のデコーダ12による解読情報は、他の命令と
同じようにデコード成功信号DS(これはタイミングC
2,T2で出力される)に応答して命令キューレジスタ
14に格納される。また、デコーダ12の出力の内、分
岐命令表示信号BCおよびマスク信号MASKが線42
を介して条件コードコンフリクト検出回路36に送られ
る。回路36は、後述するように条件コードコンフリク
ト信号CC0NFをタイミングC3,Toで1にする。
第1エユニツ)22Aはこの信号に応答して、後続の命
令に対するデコード成功信号DSの発生を抑止する。こ
うしてBe命令のDステージが終了する。Be命令のA
ステージにおいては上述の命令アドレスに基づき主メモ
リから、タイミングC3,TOで読出されたL命令がフ
ェッチ回路(図示せず)の制御によシ命令バッファ6A
6Bの内のターゲットストリーム側にタイミングC4,
TOに格納される。フェッチ回路はさらに引続き、この
L命令につづく命令列を順次主メモリ26から読出し、
ターゲットストリーム側の命令バッファ6人又は6Bに
順次格納する。このため、このフェッチ回路には従来と
同じように、デコーダ12から分岐表示信号BCと、加
算器24の出力と、フリップフロップ9の出力とが入力
されておシ、デコード成功信号DSが1となったときに
信号BCが入力されたとき、そのときの加算器24の出
力アドレスを取シ込むように7工ツチ回路が構成されて
いる。その後、フェッチ回路はフリップフロップ9の出
力によシ指定されるターゲットストリーム側の命令バッ
ク76A又は6Bに、主メモリ26から読出された分岐
先命令を格納するとともに、その後、先に取シ込んだア
ドレスを順次カウントアツプして、そのアドレスに基づ
き主メモリ24から分岐先命令につづく命令列を順次読
出すように構成されている。こうして、命令バッファ6
A又は6Bの一方にターゲットストリームを順次格納す
ることができる。
なお、この人ステージにおいては、主メモリ26から読
出された分岐先命令は他の命令の場合と同じように、オ
ペランドキューバッファ28に格納される。しかし、こ
れはオペランドでないため、第1.第2Eユニット20
A、20Bでは利用されない。
サイクルC4においては、人命令の第2Eユニツ)20
Bでの演算が終了するため、信号EOP2がこのサイク
ルにおいて出力される。したがって、第2エユニツ)2
2Bよシ信号BOP2 がこのサイクルC4で出力され
る。このため、Be命令のL2ステージがサイクルC4
において可能となる。
L2ステージにおいては、セレクタ16Bによシ選択さ
れた、Be命令の解読情報が第2Eユニツト20Bにセ
ットされる。Be命令が必要とする演算は、この解読情
報に基づく分岐成功不成功の判定である。しかし、他の
命令と異なり、本実施例ではこの判定が条件コードコン
フリクト検出回路36にニジなされる。したがって、セ
レクタ16Bの出力は1144Bを介して、この検出回
路36に送られ、そこにセットされる。なお、セレフタ
16Bの出力は他の命令と同じく、第2Eユニツト20
Bにも送られる。
また、L2ステージではセレクタ30BがBC命令に関
するデータを選択するように制御される。
L2ステージの次のステージでは、上述のごとく、分岐
判定が回路36で行われ、第2Eユニツト20Bは実質
的に動作しないで、演算終了信号EOP2をサイクルC
5から出力するのみである。
しかし、他の命令と同じく、このステージをE2ステー
ジと呼ぶことにする。
とのE2ステージにおいては、条件コードコンフリクト
検出回路36がレジスタ34Bの出力に基づく分岐判定
が可能かどうかを検出する。この分岐判定がE2ステー
ジで可能となるのは、BC命令の前の命令が条件コード
を変更する命令でかつ第2E5.ニット20Bで実行で
きる命令である。
したがって、レジスタ34B内の信号VALIDが1の
ときである。分岐判定が可能なときには判定の終了時に
、コンフリクト信号CC0NFを0にする。また、判定
の結果、分岐が成功のときには分岐成功信号BCTKN
を線74に出力する。一方、分岐判定不可能のときKは
、これらの信号CC0NFは変化しないし、信号BCT
KNは出力されない。
今の場合、先行する人命令は第2Eユニツト20Bで実
行可能で、かつ、条件コードを変更する命令であるので
、第2Eユニツト20Bから、人命令のE2ステージの
終了後には、レジスタ34B内の信号VALIDは値1
を有する。したがって、回路36は分岐判定可能なもの
として、レジスタ34Bから入力される条件コードCC
2と、命令デコーダ12からすでに入力されているマス
ク信号MA S Kによシ分岐判定を行う。この結果、
分岐成功と判定されたと仮定すると、信号BCTKNが
1となる。これによりフリップフロッグ9が反転される
。また、条件コードコンフリクト信号CC0NFタイミ
ングC6,TOでゼロになる。こうして、BC命令のE
2ステージが終了する。
次のステージ(これをP2ステージと呼ぶ)では次の動
作が行なわれる。すなわち、フリップフロップ9の反転
に伴ない、読出し回路8は分岐先のL命令をタイミング
C6,TOで命令レジスタ10にセットする。また、信
号CC0NFがOであシ、また、仮定によシアドレスコ
ンフリクトがないと仮定しているので、第11ユニツト
22Aは次の命令に対するデコード成功信号DSをタイ
ミングC6,T2で出力する。こうして、分岐成功の場
合、分岐先のL命令のDステージがサイクルC6で実行
可能となる。なお、読出し回路8はBC命令のDステー
ジの開始後、分岐不成功時に実行すべき命令を命令レジ
スタ10にあらかじめセットする。したがって、分岐判
定の結果、分岐不成功のときには、信号DSに応答して
、分岐不成功側の命令が実行される。
以上の説明から明らかなごとく、分岐判定は、先行する
人命令の、第2Eユニツ)20Bでの演算が終了したサ
イクルの次のサイクルで実行可能となる。したがつて、
M命令の第1Eユニツト20Aでの演算が終了していな
いために、A命令をJc(D第1Eユニツ)20Aで実
行できない状態におっても、第2Eユニツ)20Bでの
人命令の実行によシ得られる条件コードを利用して、B
C命令の分岐判定を早く実行できる。すなわち、条件コ
ードコンフリクトの解消を早く行うことができる。その
結果、BC命令につづく命令を早く実行できる。
なお、サイクルC8で人命令のE1ステージが終了する
ため、BC命令のLL、 El、PIステージがそれぞ
れサイクルC8,C9,CIOで実行される。L1ステ
ージではセレクタ16A。
30Aの出力が他の命令と同じように第1gユニット2
0Aにセットされるが、E1ステージでは、第1Eユニ
ツ)20Aでは実質的に何の演算もされず、信号gOP
lが出力される。一方、条件コードコンフリクト検出回
路36は、先のE2ステージで分岐判定が不可能な場合
に1条件コードレジスタ34Aから出力される条件コー
ドCCIに基づき分岐判定を行う。この判定終了により
コンフリクト信号CC0NFを0にし、分岐成功のとき
には、信号BCTKNを1にする。今の例では、E2ス
テージで分岐判定が可能であったので、回路36はとく
に判定動作をしない。
(分岐判定) 第10図において、レジスタ403は線56Aを介して
第1エユニツト22Aからデコード成功信号DSが入力
されたとき、線42を介して命令デコーダ12から入力
されるマスク信号MA S KをタイミングTOでセッ
トする。したがって、今の例ではタイミングC2,TO
にBe命令がセットされると仮定しているので、レジス
タ403からは、Be命令のマスク信号MA S Kが
タイミングC3,TOから出力される。フリップフロッ
プ406の出力は条件コードコンフリクト信号CC0N
Fとして用いられる。コントロールロジック404はデ
コード成功信号Dsが第1エユニツト20Aから入力さ
れ、BC命令表示信号BCがともに入力されたときに7
リツプ70ツブ406をセットし、ブランチ判定回路4
17から分岐判定終了信号ENDが入力されたときに7
リツプフロツプ406をリセットする。今の例では、タ
イミングC2,TOおよびC2,T2でそれぞれ信号B
e、DSが入力されるので条件コードコンフリクト信号
CC0NFはタイミングC3,TOで1になる。この結
果、すでに述べたようK、第1エユニツト22Aは後続
の命令に対してデコード成功信号DSを出力するのを抑
止する。ブランチ判定回路417は、レジスタ403か
ら入力されるマスク信号MA S Kで示される分岐条
件を、線71Aを介してレジスタ34Aよ少入力される
条件コードCCI又は線71Bを介してレジスタ34B
よυ入力される条件コードCC2が満すか否かを判定す
る。この判定を行うタイミングはフリップフロップ41
3又は414の出力J1又はJ2が1になるととに行な
われる。フリップフロップ413は、アンドゲート40
9にそれぞれ線44人。
52Aを介してそれぞれセレクタ16人、第1エユニツ
)22Aからそれぞれ、BC命令表示信号BCおよび第
1演算開始信号が入力されたとき、すなわち、Be命令
のL1ステージが実行されたときにセットされる。この
結果、フリップフロップ413の出力J1はBe命令の
E1ステージにおいて1となる。同様に、フリップフロ
ップ414はアンドゲート410にそれぞれ線44 B
、 52Bを介してそれぞれセレクタ16B、第2■ユ
ニツト22BからBC命令表示信号BCと第2演算開始
信号BOP 2が入力され、Be命令のL2ステージの
実行の結果セットされる。この結果フリップフロップ4
14はBe命令のE2ステージにおいてlとなる。この
結果、Be命令のEl又はE2ステージにおいて分岐判
定がなされることになる。
Be命令のE2ステージにおいて分岐判定をしてもよい
のは、条件コードレジスタ34Bから出力されている信
号VALIDが1のときである。すでに述べたごとく、
レジスタ34Bは、条件コードを変更する命令のE2ス
テージが終了するごとに書きかえられ、しかもこの命令
が第2Eユニツト20Bで実行可能なときには、信号V
ALIDは1となシ、そうでないときには、信号VAL
IDはOとなる。したがって、Be命令のE2ステージ
において、信号VAL I Dが1でおることは、Be
命令に先行して実行された条件コードを変更する命令の
内、最も最近に実行された命令は第2Eユニツ)20B
で実行可能な命令であったことを示す。
したがって、信号VALIDが1のときには、レジスタ
34B内の条件コードCC2に基づいて分岐判定をする
ことができる。一方、信号YALIDが0であることは
、第2Eユニツト20Bで実行できない、条件コードを
変更する命令がBe命令の前に実行されたことを示す。
したがって、この場合は、分岐判定をBe命令のE1ス
テージで行う必要がある。したがって、分岐判定回路4
17では、次の論理式に基づき分岐判定終了信号END
を出力する。
END=CCONFx(J1+VALIDxJ2)ここ
でクロスおよびプラスのサインはそれぞれ論理積論理和
を示す。したがって、E2ステージで分岐判定が終了し
て、信号ENDが1になったときには、その後信号CC
0NFが0になるので、その後のE1ステージでは信号
ENDは0のままである。
現在考えている例では、Be命令の一つ前の人命令は第
2E二二ツ)20Bで実行できる、条件コードを変更す
る命令であるので、Be命令のE2ステージにおいては
、信号VAL I Dは1となっている。したがって、
このBe命令の分岐判定はE2ステージで行なわれる。
その結果、タイミングC5,TOにおいて、信号END
は1となシフリップ70ツブ406の出力CC0NFは
、タイミングC6,TOにおいて0となる。
分岐判定回路417は、信号ENDが1になったときに
ルジスタ403から人力されるマスク信号MASKと条
件コードとを比較して分岐成功か否かを判定する。Be
命令のE2.Elステージでの分岐判定において、条件
コードCC2,CCIがそれぞれこの比較に用いられる
。分岐成功の判定は従来技術と同じように行なわれる。
たとえばマスク信号MARKが4ビツトの信号とすると
き、条件コードCCI又はCC2は2ビツトからなる。
この条件コードで表わされる10進数に対応する桁位置
にある信号MASK内のビットが1であれば分岐成功と
判定される。
分岐成功の場合には、信号ENDとともに分岐成功信号
BcTKNが1となる。今考えている例では、信号BC
’TKNはサイクルC5で1となる。
以上のごとくにして分岐判定が行なわれ、信号CC0N
Fが0になるサイクルC6から、次の命令のDステージ
が開始されることになる。
〔発明の効果〕
以上述べたごとく、本発明では、第1演算ユニツトでの
おる命令に対する演算を開始する前に、第2演算ユニツ
トによりその演算を開始できるので、その演算結果を利
用する後続の命令の実行を早めることができ、処理速度
を実効的に高めることができる。
【図面の簡単な説明】
第1A、IB図は本発明による実施例の異なる部分のブ
ロック回路図である。第2図は、ディジタルコンピュー
タを構成するための第1A図、第1B図の配置を示す。 第3A、3B図はそれぞれ本発明による実施例で用いる
一つの命令フォーマットの例を示す。第4図は、上記実
施例で用いる第1の命令制御ユニットの概略回路構成図
である。 第5図は上記実施例で用いる第1の演算実行ユニットの
概略構成図でおる。第6図は上記実施例で用いる第2の
命令制御ユニットの概略構成図である。第7図は上記実
施例で用いる第2の演算実行ユニットの概略構成図であ
る。第8図は上記実施例で用いるアドレスコンフリクト
検出回路の概略構成図である。第9図は上記実施例で用
いる条件コードコンフリクト検出回路の概略構成図であ
る。 第1OAから100図は、上記実施例の、アドレスコン
フリクトがある場合のタイムチャートである。第1LA
とIIB図は、上記実施例の、条件コードコンフリクト
がある場合のタイムチャートである。 葛 3八図 第3B図 η 4 図 心出巴吉まま宏田coへへり夕。呼 め叶toめh t’−t−さ叶寸ト叶寸寸ト9手続補正
書(方式) %式% 発明の名称 パイプライン型のデータ処理装置 補正をする者 軒(との師 特許出願人 名 称 (510143式会社 日 立 製 作 所代
 理 人 ←す呻 補正の内容 明細書第77頁第9行の「第9図」から第13うまでの
「る。」までを「第9Aから9C図は。 上記実施例の、アドレスコンフリクトがある場合のタイ
ムチャートである。第1O図は上記実施例で用いる条件
コードコンフリクト検出回路の概略苛成図である。」と
補正する。

Claims (1)

  1. 【特許請求の範囲】 1、パイプラインモードで各命令を複数のステージに分
    けて実行するデータ処理装置であって、命令の実行を制
    御する手段と、 実行可能な命令を順次解読し、それぞれの演算ステージ
    実行に必要なデータを生成する手段と、 複数の命令に対して生成されたデータを待行列として格
    納する手段と、 複数の命令が必要とする演算を実行可能な第1の演算実
    行手段と、 該複数の命令の内の一部の命令が必要とする演算を実行
    可能な第2の演算実行手段とを有し、該制御手段は、該
    第1の演算実行手段での演算終了に同期して、順次、次
    の命令のだめのデータを該格納手段から選択して該第1
    の演算実行手段に送出する手段と、該第2の演算実行手
    の一ハ袖質致7 W目地1イ1昭kk小会A^各めのデ
    ータを該格納手段から選択して該第2の演算実行手段に
    送出する手段と、各命令について、先行する命令の演算
    結果をその所定のステージにおいて利用するか否かを検
    出する手段と、該検出結果が肯定的となった命令に対し
    ては該所定のステージの実行を、該先行命令に対する演
    算が該第1.第2の演算実行手段のいずれかで終了する
    まで禁止する手段とを有するデータ処理装置。 2、該検出手段は、各命令が該先行命令の演算結果を各
    命令の演算に必要なオペランドアドレスを算出するステ
    ージにおいて、利用して該アドレスを算出するか否かを
    検出する手段である第1項のデータ処理装置。 3、該検出手段は、各命令が該先行命令の演算の結果に
    より定められる条件コードを各命令の所定ステージにお
    いて利用して、分岐成功不成功の判定を行うか否かを検
    出する手段である第1項のデータ処理装置。
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 true JPS6037037A (ja) 1985-02-26
JPH0545983B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01274267A (ja) * 1988-04-02 1989-11-02 Internatl Business Mach Corp <Ibm> 同期化方法

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 演算処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01274267A (ja) * 1988-04-02 1989-11-02 Internatl Business Mach Corp <Ibm> 同期化方法

Also Published As

Publication number Publication date
JPH0545983B2 (ja) 1993-07-12

Similar Documents

Publication Publication Date Title
US4532589A (en) Digital data processor with two operation units
JPH077385B2 (ja) データ処理装置
US5896529A (en) Branch prediction based on correlation between sets of bunches of branch instructions
AU610742B2 (en) Data processing apparatus
AU613217B2 (en) Data processing apparatus
US11068265B2 (en) Sequence alignment method of vector processor
JPH0231419B2 (ja)
US11379243B2 (en) Microprocessor with multistep-ahead branch predictor
JPS6239780B2 (ja)
JPH04296937A (ja) ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法
JPH02297630A (ja) デイジタル・データ処理システム
US4541047A (en) Pipelined data processing system
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
EP0354585B1 (en) Instruction pipeline microprocessor
JPH02227730A (ja) データ処理システム
EP1193594A2 (en) Register renaming apparatus and processor
JPH0689173A (ja) ブランチ・ヒストリーを持つ命令実行処理装置
JPS6037037A (ja) データ処理装置
US6732251B2 (en) Register file circuitry
JP2901247B2 (ja) 掃出し制御方式
JPH0793152A (ja) マイクロプロセッサ制御装置
JPH03269728A (ja) パイプライン計算機における命令実行制御方式
JPS63251835A (ja) ベクトル処理装置
JPS59212961A (ja) データ処理装置
US20220166859A1 (en) Network packet processor for processing a data packet