JPH0545984B2 - - Google Patents

Info

Publication number
JPH0545984B2
JPH0545984B2 JP58085752A JP8575283A JPH0545984B2 JP H0545984 B2 JPH0545984 B2 JP H0545984B2 JP 58085752 A JP58085752 A JP 58085752A JP 8575283 A JP8575283 A JP 8575283A JP H0545984 B2 JPH0545984 B2 JP H0545984B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
executed
time interval
arithmetic unit
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
JP58085752A
Other languages
English (en)
Other versions
JPS59212961A (ja
Inventor
Yoichi Shintani
Tsuguo Shimizu
Kenichi Wada
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 JP8575283A priority Critical patent/JPS59212961A/ja
Publication of JPS59212961A publication Critical patent/JPS59212961A/ja
Publication of JPH0545984B2 publication Critical patent/JPH0545984B2/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/025Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle two

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が指定する演算結果を利用して求め
る場合には、命令Aの演算結果が確定するまで、
命令Bの実行を遅延しなければならない。例えば
命令Aが実行されるとインデツクスレジスタまた
はベースレジスタが書きかえられ、しかも命令B
はそのインデツクスレジスタまたはベースレジス
タの内容と命令B内に含まれるアドレス情報を加
算して主メモリアクセスのためのアドレスを計算
する場合がこれに相当する。このように、先行す
る命令Aの演算結果を用いて命令Bの実行のため
アドレスを決めなければならない状態をアドレス
コンフリクトがあると呼ぶ。この場合、命令Bの
アドレス計算ステージは、命令Aの演算が終了す
るまで遅延される。
先願(特願昭56−194002および特願昭58−
62143号)の階層型演算方式を用いたコンピユー
タにおいては、この遅延を少くするために、すべ
ての命令が必要とする演算を実行できる主演算装
置とは別に、一部の命令が要求する簡単な演算の
みを実行できる従演算装置とを設けた。この先願
においては、主演算装置でのみ演算の実行できる
命令Cの演算に要するサイクル数が大きい場合
に、この命令Cが主演算装置で実行されている時
に、従演算装置ではこの命令Cの演算をスキツプ
して次の命令Aの演算を早期に実行し、この結果
をさらに後続の命令Bのアドレス計算におけるイ
ンデツクスレジスタまたはベースレジスタの内容
として用いることによつて、命令Bのアドレス計
算ステージの遅延を少なくしていた。つまりこの
先願において、命令Aの従演算装置における演算
が主演算装置における演算よりも早期に実行でき
るのは、主演算装置においては命令Cの演算のた
めに多くのサイクル数(N1とする)が経過した
後、次命令Aの演算が開始されるのに比して従演
算装置においては命令Cの演算をN1より少ない
サイクル数(NSとする)でスキツプし、しかも
スキツプした後、直ちに次命令Aの演算を開始す
るからである。従つて、逆に命令Cの主演算装置
での演算サイクル数N1が、上記スキツプサイク
ル数NSに等しい程少い場合や、命令Cが従演算
装置においても演算実行を行うためN1と同じサ
イクル数が経過した後に次命令Aの演算が開始さ
れる場合においては、命令Aの従演算装置におけ
る演算が主演算装置における演算よりもそれほど
に実行できることは期待できない。
同じ問題が条件付分岐命令のときにも生ずる。
この命令(以下ではBC命令と呼ぶ)の演算実行
サイクルにおいて、そのサイクルの条件コードに
基き分岐成功か否かの判定が行われる。従つて、
分岐命令に先行する命令Dによる演算が条件コー
ドを変更する命令のときには、この先行命令Dの
演算が終了するまで分岐判定ができない。このよ
うに、先行する命令Dの演算の終了の後にBC命
令の分岐判定をしなければならない状態を条件コ
ードコンフリクトのある状態と呼ぶ。この場合、
BC命令の分岐判定は、命令Dの演算が終了する
まで遅延される。
条件コードコンフリクトに伴う、分岐判定の遅
延を少なくするために、上記と同様の階層型演算
方式を用いた先願特願昭56−194001および特願昭
58−62143号記載のコンピユータがあつた。これ
においても主演算装置においてのみ演算の実行で
きる命令Eの演算に要するサイクル数(N1)が
大きい場合に、この命令Eが主演算装置で実行さ
れている時に、従演算装置ではこの命令Eの演算
をN1より少ないサイクル数NSにてスキツプして
次の命令Dの演算を早期に実行し、この結果をさ
らに後続のBC命令の分岐判定に用いることによ
つて、分岐判定の遅延を少なくしていた。この先
願においても、上記アドレスコンフリクトに階層
型演算方式を適用した場合と同様に、N1がNSに
等しい程小さい場合や、命令Eが従演算装置にお
いても演算を行う必要のある場合は、命令Dの従
演算装置における演算を主演算に比して早期に行
うことは期待できない。
〔発明の目的〕
本発明の目的は従つて先願の階層型演算方式に
おける上述の問題点を解決し、もつてアドレスコ
ンフリクト、条件コードコンフリクトによる処理
の遅延がより少ない、従つてより高性能のパイプ
ライン制御のコンピユータを提供することにあ
る。
〔発明の概要〕
先願の階層型演算方式においては、演算サイク
ル数の多い、従つて従演算装置では演算しない命
令を高速にスキツプすることによつて後続命令の
演算を早期に従演算装置にて行うものであつた
が、本発明においては、ある命令の従演算装置で
の演算サイクル数N2を、該命令の主演算装置で
の演算サイクル数N1に比較して短縮することに
よつて、また主演算装置においてのみ演算される
命令のうち最も演算サイクル数の短いものについ
ても、従演算装置において該命令をスキツプする
ために要するサイクル数を短縮することによつ
て、上述の先願の階層型演算方式の問題を解決す
るものである。
主演算装置に対して従演算装置をより高速に動
作させることは、後者をより高速の回路にて構成
すること、あるいは、さらに後者の論理規模が小
さいことに着目して後者を高集積度実装系を用い
て構成することによつて実現可能である。
動作ピツチの異る2つの演算装置を含むデータ
処理装置を構成する場合には、各ピツチの公約数
をピツチとするタイミングパルスによつて全体を
同期化することが容易な方法であり、さらに緒々
の制御信号の信号幅をすべて同一とすることが論
理構成を容易とする。具体例として、主演算装置
が2サイクルピツチ、従演算装置を含むその他の
部分が1サイクルピツチで命令を処理できるデー
タ処理装置においては、全体を1サイクルピツチ
のタイミングパルスを用いて同期化し、しかも
緒々の制御信号の信号幅をすべて1サイクルとし
て構成することがよい。従つて主演算装置におけ
る演算終了信号は1回の発行において、1サイク
ルの間オンであり、次の1サイクルはオフとなる
よう構成される。
〔発明の実施例〕
〔装置の概要〕 6A,6Bは命令バツフア、8はこれらの命令
バツフアの一方から命令を選択的に読出すための
読出し回路、10は命令レジスタ、12は命令デ
コーダ、500はデコードされた情報を受け取る
レジスタ、14は命令デコーダ12からの解読情
報を格納するための命令キユーレジスタであり、
14はここでは3つの命令の解読情報を格納する
ために3つのレジスタからなる。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命令制御ユニ
ツト(以下単に第2ユニツトと呼ぶ)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,20
Bの両方で実行される。しかし、第1、第2Eユ
ニツト20A,20Bでの同じ命令に対する同じ
演算は異なるタイミングで起動可能になつてい
る。すなわち、第1、第2Eユニツト20A,2
0Bがそれぞれ必要とする解読情報を別々に供給
するために二つのセレクタ16A,16Bが設け
られ、また、これらのユニツト20A,20Bが
それぞれ必要とするメモリオペランドを別々に供
給するために二つのセレクタ30A,30Bが設
けられ、第1Eユニツト20A、セレクタ16A,
30Aは第1Iユニツト22Aにより制御され、第
2Eユニツト20B、セレクタ16B,30Bは
第2Iユニツト22Bにより制御されるようになつ
ている。この結果、ある命令の第1Eユニツト2
0Aでの実行ができない状態においても、その命
令の第2Eユニツト20Bでの実行が可能となり、
これにより、アドレスコンフリクト又は条件コー
ドコンフリクトの解消が早められるようになつて
いる。
〔命令フオーマツト〕
本装置で用いる命令は、(株)日立製作所Mシ
リーズコンピユータあるいは米国IBM社370シリ
ーズコンピユータで用いられるのと同じものであ
る。これらの命令はいくつかのフオーマツトに分
類されるが、第3A図に本発明の理解に必要な一
つのフオーマツトを示す。このフオーマツトを持
つ命令の例は、加算、ロード命令で、それぞれ、
簡単のためにA,L命令と以下では称する。これ
らの命令のビツト0−7はオペレーシヨンコード
(OPCODE)を表し、ビツト8−11はレジスタ部
(R)であり、A命令では演算のために読出すべ
きオペランドが格納されている汎用レジスタ番号
を示し、かつ、演算結果が格納されるレジスタ番
号をも示している。また、L命令ではこのレジス
タ部は、演算結果を格納すべきレジスタ番号を示
す。ビツト12−15および16−19はそれぞれインデ
ツクス部(X)、ベース部(B)であり、それぞ
れメインメモリ26から読出すべきストレジオペ
ランドのアドレス算出に用いる汎用レジスタの番
号を示す。以下ではレジスタ部、インデツクス
部、ベース部が示す汎用レジスタ番号をそれぞれ
オペランドレジスタ番号ROP、インデツクスレジ
スタ番号RX、ベースレジスタ番号RBと呼ぶこと
にする。さらに、ビツト20−31は、上記アドレス
算出に用いられる偏立値DISPを示すデイスプレ
ースメント部(D)である。
第3B図はBC命令の命令フオーマツトを示す。
このフオーマツトのビツト8−11はマスク部
(M)であり、分岐成功となる条件コードの値を
指定するものである。
BC命令のインデツクス部(X)、ベース部
(B)、偏位置DISPは、メインメモリ26から読
み出すべき分岐先命令のアドレス計算に用いられ
る。
以下の実施例においてはA,L,BC命令のみ
を用いて説明する。この内、第2Eユニツト20
Bで実行可能な命令はA,L命令であり、また、
条件コードを書きかえる命令はA命令である。
〔命令の読出し〕
命令バツフア6A,6Bの一方は、現在処理さ
れようとしている命令を含む、メモリ上の連続し
た命令列(メインストリームと呼ぶ)を格納する
ために用いられ、他方は、メインストリーム上の
分岐命令の処理が開始された後にその分岐先命令
から始まるメモリ上の連続した命令列(ターゲツ
トストリームと呼ぶ)を格納するのに用いられ
る。処理された分岐命令が分岐成功と判定され、
分岐先命令の処理が始まると、それまでターゲツ
トストリームとされていた命令列はその後はメイ
ンストリームとみなされる。このように分岐命令
が分岐成功となる度にメインストリームを格納す
る命令バツフアは切り換わる。メインメモリ26
からの命令列のフエツチおよびバツフア6A,6
Bへの命令列の格納の制御は命令フエツチ回路
(図示せず)により実施される。読出し回路8は
バツフア6A,6Bの内、現在メインストリーム
を格納しているものから、命令を順次選択して順
次命令レジスタ10に送出する。この読出し回路
8はフリツプフロツプ(以下では、フリツプフロ
ツプのことをFFと略記することがある)9の値
が1か0によりバツフア6A,6Bを選択する。
このフリツプフロツプ9は、後述するように分岐
成功信号BCTKNが1となるごとにその値をかえ
る。
命令レジスタ10には、後述するように、命令
レジスタ10内の命令のデコードステージが実行
されるごとに、制御回路(図示せず)により、読
出し回路8が出力する命令がセツトされる。
(命令実行動作の概要) 階層型演算方式を適用したコンピユータの例と
して、先願特願昭58−62143号に掲げたものを考
えると、それにおけるLoad命令の実行ステージ
は第9D図のようになる。すなわち、命令のデコ
ード及びアドレス計算のためのDステージ、オペ
ランドあるいは分岐先命令の読み出しのためのA
ステージ、第1、第2Eユニツトへのセツトアツ
プのためのL1,L2ステージ、第1、第2Eユニツ
トにおける演算のためのE1,E2ステージ、第1、
第2汎用レジスタへの演算結果の書き込みのため
のP1,P2ステージからなる。上記先願において、
上記の各ステージはそれぞれ1マシンサイクルを
要する。
一方、本発明の実施例におけるLoad命令の実
行ステージは第9E図のようになる。すなわち命
令のデコード及びアドレス計算のためのD,
D′ステージ、オペランドあるいは分岐先命令の
読み出しのためのA,A′ステージ、第1、第2E
ユニツトへのセツトアツプのためのL1,L2ステ
ージ、第1、第2Eユニツトにおける演算のため
のE1,E2ステージ、第1、第2汎用レジスタへ
の演算結果の書き込みのためのP1,P2ステージ
からなる。すなわち上記先願におけるDステージ
での処理が本実施例におけるD,D′ステージで
の処理に、またAステージがA,A′ステージに
対応する。ここで本実施例においては上記先願に
おけるタイミングパルスT0の1/2のピツチのタイ
ミングパルスT0′を用いることとし、従つて、マ
シンサイクルは1/2としたものとする。従つて本
実施例において、D,D′,A,A′,L2,E2,P2
の各ステージはそれぞれ1マシンサイクルずつ要
し、L1,E1,P1は2マシンサイクルずつ要す
る。
ここで注意すべきことは、上記先願と本実施例
とではマシンサイクルは後者が1/2と短縮されて
いるものの、命令デコード及びアドレス計算のス
テージ(DとD,D′)、オペランド等の読み出し
ステージ(AとA,A′)、第1Eユニツトへのセツ
トアツプステージ(それぞれL1)、第1Eユニツト
での演算ステージ(それぞれE1)第1汎用レジ
スタへの演算結果への書き込みステージ(それぞ
れP1)については、実時間は同じである。従つ
てこれらの論理回路の構成にあたつては、先願に
おいても本実施例においても、同等レベルの回
路、実装技術を用いて実現することが可能と言え
る。
一方、本実施例において、L2,E2,P2の各ス
テージは1マシンサイクルずつで実行可能とする
ため、先願におけるL2,E2,P2ステージに比較
して、1/2の実時間で処理することとなる。これ
は、L2,E2,P2の実行に係る回路が、ほぼ、第
2Iユニツト、第2Eユニツト、第2汎用レジスタ
に限られるため、それらの論理規模が装置全体に
占める割合が小さく、従つて全体の中の極く限ら
れた空間に配置することが可能であることゆえ実
現できる。あるいは、これら3つの論理のみ高性
能の回路、実装技術を用いて構成することによつ
ても実現できる。この場合でも、この高性能の回
路、実装技術が周辺論理に比較して高価であつて
も、全体に占める割合が小さいことから、装置全
体の価格上昇への影響は少なくすることが可能で
ある。
命令レジスタ10にセツトされた命令は、次の
ステージに分けて実行される。
(D,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:オペランド読出しレジスタ番号で、上
述のA命令ではオペランドレジスタ番号
ROPに等しい。
(3) RW:演算結果を書込むレジスタ番号で、上
述2つの命令ではオペランドレジスタ番号
ROPに等しい。
(4) SUBGR:演算結果を汎用レジスタに格納す
べき命令の内、第2Eユニツト20Bで実
行可能な命令かどうかを示す第2演算表示
信号。たとえば、A命令、L命令のときに
この信号が1となる。
(5) CHGGR:演算結果を汎用レジスタに格納す
べき命令であることを示すレジスタ変更表
示信号。たとえば、A,L命令のときにこ
の信号が1となる。
(6) SUBCC:条件コードを変更する命令の内、
第2Eユニツト20Bにおいて実行可能な
命令であることを示す第2演算表示信号。
たとえばA命令のときにこの信号が1とな
る。
(7) CHGCC:条件コードを変更する命令である
ことを示すCC変更表示信号。たとえば、
A命令のときにこの信号は1となる。
(8) BC:BC命令であることを示すBC命令表示
信号。
(9) MASK:BC命令のマスク部そのもの。
なお、命令デコーダ12はこれら以外の、命令
実行制御に必要な解読情報を生成するが、これは
従来技術と同じであり、また本発明に直接関係が
ないため説明を省く。
なお、このD,D′ステージはそれぞれ1マシ
ンサイクルで終了する。
(A,A′ステージ) D,D′ステージで計算されたメモリアドレス
に基づき、メインメモリ26からオペランドを読
出し、オペランドキユーバツフア28の一つのレ
ジスタに格納する。このA,A′ステージもそれ
ぞれ1マシンサイクルで終了する。
(L1ステージ) 第1Eユニツト20Aに命令の解読情報と演算
に必要なレジスタオペランドとメモリオペランド
をセツトする。すなわち、セレクタ16Aにより
実行すべき命令の解読情報を選択して、線44A
に出力する。選択された解読情報の内、読出しレ
ジスタ番号RRは第1汎用レジスタ18Aに入力
され、これに基づき必要なオペランドRDATA1
が読出され、このオペランドが線46Aを介して
第1Eユニツト20Aに送られる。一方、解読情
報の内、OP CODE、書込みレジスタ番号RW
第2演算表示信号SUBGR、レジスタ変更表示信
号CHGGR、条件コード変更表示信号CHGCC、
は第1Eユニツト20Aに送出される。さらに、
セレクタ30Aは、オペランドキユーバツフア2
8から必要なメモリオペランドMDATA1を選択
して線45Aを介して第1Eユニツト20Aに送
出する。第1Eユニツト20Aはこうして入力さ
れたいろいろのデータを内部のレジスタに取り込
む。このステージは2マシンサイクルで実行され
る。
(E1ステージ) 第1Eユニツト20AがL1ステージで取り込ま
れたデータに基づき所望の演算を実行し、結果
WDATA1を線50Aに出力する。このとき、同
時に、すぐに取り込まれた書込みレジスタ番号
RW、第1汎用レジスタの書込み信号WC1が出力
される。
また、演算が条件コードを変更すべきもののと
きには演算結果に依存して条件コードCC1を算
出し、このコードCC1とセツト指示信号SET1
が線70Aに出力される。
なお、このステージが要するマシンサイクル数
は2マシンサイクルである。命令の種類により、
2ステージ以上E1ステージを要するものがある。
従つて、最も短かい演算は2マシンサイクルで終
了し、長いものは2の倍数マシンサイクルにて終
了する。なお、このE1ステージに属するステー
ジの最後のステージの前半のマシンサイクルには
演算終了信号EOP1が48Aに出力される。し
たがつて、最短の2マシンサイクルで終了する演
算の場合、演算を開始したサイクルで信号EOP
1が出力される。
(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にセツトされる。なお、このP1
ステージはE1ステージにつづく2マシンサイク
ルで終了する。
以上のようにして、一つの命令の実行が終了す
る。しかし、第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が線48
Bに出力されるので、この最後のサイクルを
EOP2サイクルと呼ぶことができる。したがつ
て、現在、仮定しているように、第2Eユニツト
20Bは必らず1マシンサイクルで終了する演算
のみを行う場合には、このE2ステージはEOP2
サイクルのみからなる。
(P2ステージ) E2ステージで求められた演算結果WDATA2
は、書込みレジスタ番号RWで示される、第2汎
用レジスタ18B内のレジスタに、書込まれる。
また、算出された条件コードCC2が線70Bを
介してレジスタ34Bにセツトされる。
〔動作の詳細I〕
以下では、まず、アドレスコンフリクトがある
場合アドレスコンフリクトの場合の装置動作を通
して装置の詳細を説明する。装置の内、条件コー
ドに関与する部分とその動作の説明は後でまとめ
て説明する。
以下では、アドレスコンフリクトがある時の装
置動作の説明のため第1のL命令L(1)、第2のL
命令L(2)、A、第3のL命令L(3)がこの順に実行
されると仮定する。また、A命令のオペランドレ
ジスタ番号ROPとL(3)命令のアドレスレジスタ番
号RX又はRBが等しく、したがつてこれらの二つ
の命令間にアドレスコンフフリクトが生じると仮
定する。ただし、L(1),L(2),Aの各命令間、L
(1),L(2)とL(3)の間あるいはL(1),L(2),A,L
(3)命令とこれらに先行する命令間にはアドレスコ
ンフリクトがないものと仮定する。また、条件コ
ードコンフリクトはどの命令間にも存在しないと
仮定する。
9A〜9Cのタイムチヤートを参照して説明す
る。
(D,D′ステージの詳細) 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を有する。さらに、キユ
ー制御回路73は命令キユーレジスタ14の各レ
ジスタが空いているか否かを表示するための三つ
のフリツプフロツプ518〜520を有し、これ
らの三つのフリツプフロツプのセツト状態によ
り、どのレジスタも空いていないときにキユービ
ジー信号BSYをANDゲート528から出力する
ようになつている。デコード成功決定回路75
は、フリツプフロツプ70の出力が1でコンフリ
クト信号ACONF、CCONF、キユービジー信号
BSYがいずれも0のときに、デコード成功信号
DSを線56Aに出力し、FF511でタイミング
調整を行つた後、、命令キユーレジスタ14にこ
れを送り、デコーダ12からの解読情報の取り込
みを指示する。命令キユーレジスタ14内のどの
レジスタにこの解読情報を取り込むかを指示する
ための入力ポインタIPはキユー制御回路73が
線56Aに出力し、FF505,506にてタイ
ミング調整を行つた後、命令キユーレジスタ14
に送る。この入力ポインタIPを出力するため、
キユー制御回路73は内部に0,1,2を順次カ
ウントするカウンタ502を有し、そのカウント
値を入力ポインタIPとして出力するようになつ
ている。このカウンタの更新はデコード成功信号
DSの立上がりから一サイクル遅れて行なわれる。
また、信号DSによりフリツプフロツプ70がリ
セツトされ、制御回路(図示せず)がこのリセツ
トに応答して命令レジスタ10に次の命令をセツ
トする。
今、命令キユーレジスタ14内の0番、1番、
2番のレジスタに前述のL(1),L(2),A命令がこ
の順でセツトされると仮定する。この結果、L(3)
命令は、L(1)命令の後に0番のレジスタにセツト
されることになる。また、各サイクルの最初およ
び中間のタイミングをT0,T1と呼ぶことにす
る。また添付した図面内のレジスタ又はフリツプ
フロツプの脇に記載されたT0又はT1はこれら
のレジスタはフリツプフロツプの内容が変更され
るタイミングがT0又はT1であることを示す。
さて、L(1)命令が命令レジスタ10にタイミング
C0,T0(すなわち、サイクルC0内のタイミ
ングT0以下同様)にセツトされる。L(1)命令は
先行する他の命令に対してアドレスコンフリクト
又は条件コードコンフリクトがなく、また、命令
キユーレジスタ14がビジーでないと仮定すると
デコーダ成功信号DSがタイミングC0,T1に
て出力され、入力ポインタIPはそのとき仮定に
より値0を有しているので、これらの信号によ
り、L(1)命令の解読情報は命令キユーレジスタ1
4内の0番のレジスタにタイミングC2,T0に
セツトされる。
この後、タイミングC1,T1に入力ポインタ
IPは1に更新される。タイミングC1,T0に
はL(2)命令が命令レジスタ10にセツトされ、L
(2)命令のDステージがL(1)命令のDステージより
1サイクル遅れて、全く同じように実行される。
この結果命令キユーレジスタ14内の1番のレジ
スタにL(2)命令の解読情報がセツトされ、かつ入
力ポインタは2に更新される。同様にして、A命
令のDステージがサイクルC2に実行され、その
解読情報が命令キユーレジスタ14内の2番のレ
ジスタにセツトされ、かつIPは0に更新される。
タイミングC3,T0には次のL(3)命令が命令
レジスタ10にセツトされる。しかし、このL(3)
命令は、仮定により、すでに命令キユーレジスタ
14にセツトされているA命令に対してアドレス
コンフリクトがある。したがつて、アドレスコン
フリクト検出回路32の出力ACONFが後述する
ように1となり、デコード成功決定回路75はデ
コード成功信号DSをこのアドレスコンフリクト
の解除が検出されるまで出力しない。したがつ
て、L(3)命令は命令キユーレジスタ14に取り込
まれず、Dステージの実行が延期される。本実施
例では、L(3)命令のDステージが実行されるの
は、後述するごとく、サイクルC8である。した
がつて入力ポインタIPはそれまで値0を保持し
つづける。
なお、D,D′ステージにおけるアドレス計算
は次のようなタイミングの下で行なわれる。
L(1)命令がタイミングC0,T0にて命令レジ
スタ10にセツトされた後、第2汎用レジスタ1
8Bからこの命令が指定するアドレス情報がただ
ちに読出され、アドレス加算器24では、入力さ
れたデータを一端内部のレジスタ(図示せず)に
保持した後、1サイクルで加算を行い、その結果
を出力する。従つて、アドレス加算器24が出力
するメモリアドレスはタイミングC2,T0に確
定する。
L(2)命令のためのアドレス計算はL(1)命令より
1サイクル遅れて全く同じようになされ、L(2)命
令のためのメモリアドレスはタイミングC3,T
0に確定する。
第1Iユニツト22A内のキユー制御回路73で
は、命令キユーレジスタ14に新たな解読情報を
セツトするごとに、このレジスタ14内の各レジ
スタが空いているか否かを表示するフリツプフロ
ツプ518〜520の内、該当するものをセツト
する。
(A,A′ステージの詳細) このステージでは、D,D′ステージで求めら
れたメモリアドレスに基づきメインメモリ26か
らメモリオペランドが読出され、オペランドキユ
ーバツフア28にセツトされる。すでに述べたご
とく、L(1)命令の解読情報が命令キユーレジスタ
14内の0番のレジスタにセツトされている。し
たがつて、L(1)命令に対応するメモリオペランド
も、オペランドキユーバツフア28内の0番のレ
ジスタにセツトされる。このため、第1Iユニツト
22Aは入力ポインタIP、デコード成功信号DS
をそれぞれ、フリツプフロツプ511〜513,
505〜510で2.5サイクル遅延した信号IPD,
DSDを線57Aを介してバツフア28に供給す
るようになつている。この結果、L(1)命令のため
のメモリオペランドは、信号DSD,IPDに応答し
てタイミングC4,T0にバツフア28内の0番
のレジスタにセツトされる。同様にL(2)命令のた
めのメモリオペランドはタイミングC5,T0に
バツフア28内の1番のレジスタにセツトされ
る。
(L1ステージの詳細) 各命令のL1ステージはそれに先行する命令の
E1ステージが終了したとき、すなわち、第1Eユ
ニツトから第1演算終了信号EOP1が出力され
たときに開始される。このL1ステージでは命令
キユーレジスタ14とオペランドキユーバツフア
28からそれぞれ一つの解読情報と一つのメモリ
オペランドがそれぞれセレクタ16A,30Aに
より選択され、第1Eユニツト20Aにセツトさ
れる。
これらの制御は第1Iユニツト22Aが行う。す
なわち、第1Iユニツト22A内のキユー制御回路
73は、セレクタ16A,30Aに選択すべきレ
ジスタ番号又はバツフア番号を示す出力ポインタ
OP1を線53Aを介して送出するカウンタ53
2を有する。このカウンタは、0,1,2の値を
順次繰り返しカウントするものである。キユー制
御回路73は、第1Eユニツト20Aから第1演
算終了信号EOP1が出力されると、1サイクル
後に第1演算開始信号BOP1を線52Aを介し
て1サイクルの間出力するとともに、信号BOP
1が出力されたサイクルの次のサイクルのタイミ
ングT0で出力ポインタOP1を更新する。
後述するように信号EOP1は先行する命令の
最終のE1ステージの前半のサイクルのタイミン
グT0からその後信号BOP1が入力されるまで
1サイクルおきに第1Eユニツト20Aから出力
されるようになつている。L(1)命令に先行する命
令(これを今、命令Xと呼ぶ)のE1ステージが
サイクルC4,C5にて終了すると仮定すると、
信号EOP1はタイミングC4,T0から1サイ
クルの間出力される。このときキユー制御回路7
3は出力ポインタOP1として仮定によりL(1)命
令を選択するための値0を出力しており、またタ
イミングC5,T0から1サイクルの間、第1演
算開始信号BOP1を出力する。なお、出力ポイ
ンタOP1は、このBOP1に応答してタイミング
C6,T0において、1に更新される。このた
め、キユー制御回路73には、フリツプフロツプ
518〜520の1サイクル遅延、2サイクル遅
延、3サイクル遅延となるフリツプフロツプ52
1〜523,549〜551,524〜526お
よび、524〜526のうちOP1信号で示され
るものの値を選択するセレクタ527がある。さ
らにこのセレクタの出力とEOP1信号の論理積
をとるゲート529および、529の出力をT0
にてとりこむフリツプフロツプ530がある。5
30の出力は第1Eユニツトにおける演算開始信
号BOP1である。またゲート529の出力が1
となると、上記フリツプフロツプ518〜52
0,521〜523,549〜551,524〜
526のうちこの時のOP1の値で示される命令
キユーに対応するものが、リセツトされる。この
リセツトはデコーダ531によつて生成される信
号により行われる。
以上のごとくして、サイクルC4,C5におい
て出力される出力ポインタOP1の値0に基づき、
セレクタ16A,30AからL(1)命令の解読情
報、メモリオペランドの選択が行なわれる。
一方、サイクルC5において出力された第1演
算開始信号BOP1に基づき、第1Eユニツト20
Aはこれらの選択情報を取り込む。このとき、セ
レクタ16Aにより選択された解読情報の内、読
出しレジスタ番号RRは第1汎用レジスタ18A
に入力され、それに基づき読出されたレジスタオ
ペランドRDATA1が線46Aを介して第1Eユニ
ツト20Aに入力される。第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における入
力データに取り込が行なわれる。
今考えている例では、タイミングC6,T0に
おいて、L(1)命令に関連するデータが第1Eユニ
ツト20Aに取り込まれ、L(1)命令のL1ステー
ジが終了する。次の命令のL1ステージは、L(1)
命令に対する演算終了信号EOP1が出力される
タイミング(ここではサイクルC6)より実行さ
れる。また、A命令のL1ステージは、L(2)命令
に対するEOP1が出力されるタイミングC8よ
り実行される。
しかし、L(3)命令は、A命令のEOP1が出た
C10サイクルにおいて、まだ命令解読及びオペ
ランド読み出しが終了していない(A,A′ステ
ージがそれ以前に完了していない)ため、L1ス
テージは実行されない。L(3)命令のL1ステージ
が実行されるのは、L(3)命令のA,A′ステージ
が完了した後のC12ステージ以降である。
(E1ステージの詳細) 第1演算回路400は、入力されたOP CODE
にて指定される演算、たとえばA命令に対しては
加算を、レジスタオペランドRDATA1、メモリ
オペランドMDATA1に対して実行し、結果デー
タWDATA1を線50Aに出力するとともに、演
算の最終E1ステージの前半サイクルのタイミン
グT0からその後信号BOP1が、入力されるま
で演算終了信号EOP1を1サイクルおきに出力
する。このとき、入力された解読情報内の書込み
レジスタ番号RWは結果データWDATA1が算出
されるまで、回路400内に保持されており、結
果データWDATA1とともに線50Aに出力され
るようになつている。また入力された条件コード
変更表示信号CHGCCが1のときには、回路40
0はOPCODEと結果データWDATA1に依存し
て、条件コードCC1を算出し、この信号ととも
にセツト信号SET1をこの最終E1ステージの後
半サイクルで出力する。信号CHGCCが0のとき
には信号SET1は0のままである。さらに、回
路400は取込まれているレジスタ変更表示信号
CHGGRが1のときには、結果データWDATA1
の出力と同期して、書込み信号WC1を線50A
に出力するように構成されている。回路400
は、たとえばマイクロ命令制御の回路により構成
される。
一方、フリツプフロツプ401にタイミングT
0でセツトされた第2演算表示信号SUBGRはタ
イミングT0でフリツプフロツプ403に移され
る。このフリツプフロツプ403内の信号
SUBGRの反転信号と回路400から線50Aに
出力される書込み信号WC1がアンドゲート40
5に入力される。したがつて、ゲート405の出
力WC12は、第1演算回路400で実行された
演算が第2Eユニツトでは実行不可能でかつ汎用
レジスタを書きかえるもののときのみ1となる。
この出力WC12は演算結果WDATA1を第2汎
用レジスタ18Bに書込むのに用いられる。
(P1ステージの詳細) 第1Eユニツト20Aから線50A上に出力さ
れた結果データWDATA1は、その線上の書込み
信号WC1,WC12に基づき、第1、第2汎用
レジスタ18A,18B内の、書込みレジスタ番
号RWを有するレジスタにタイミングT0で書き
込まれる。また、算出された条件コードCC1は
セツト信号SET1に応答して、レジスタ34A
に書込まれる。したがつて、レジスタ34Aは条
件コードを変更する命令の内、最も新しく実行さ
れた命令が出力した条件コードがセツトされてい
る。こうして、L(1)命令のP1ステージはサイク
ルC8,C9,L(2)命令はC10,C11,A命
令はC12,C13で実行される。ただし、これ
ら3つの命令はいずれも第2Eユニツト20Bで
実行可能のため(SUBGR=1),WC12=0と
なり、結果データWDATA1は第2汎用レジスタ
18Bには書込まれない。また、L(1),L(2)命令
は条件コードを変更する命令でないのでレジスタ
34Aの内容は変更されない。またA命令の演算
により求まつた条件コードCC1はサイクルC1
0でレジスタ34Aにセツトされることになる。
以上のようにして、L(1),L(2),A命令のD〜
P1ステージが実行される。しかし、次のL(3)命
令に対してアドレスコンフリクトを有するので、
このコンフリクトが解消するまで、L(3)命令のD
ステージは実行されない。
上記先頭に述べた先願によると、このコンフリ
クトが解消されるのは、A命令の第2Eユニツト
での演算結果が得られた時以降であるが、A命令
に先行するL(1),L(2)命令が第1、第2Eユニツ
トのいずれでも演算を行い、しかも上記先願では
演算実行時間が同じであるため、A命令における
第1、第2Eユニツトでの演算結果が得られる時
刻は同じである。従つて、上記先願において、A
命令の第2Eユニツトでの演算結果が得られるの
は、C12サイクルとなる。ゆえに、L(3)命令の
Dステージは、C12サイクルから開始される。
一方本実施例では、L(3)命令のDステージの開
始を早めるために、第1、第2Eユニツトのいず
れでも演算を行う命令においては、第2Eユニツ
トでの演算サイクル数を第1Eユニツトにおける
演算サイクル数より短くし、しかも次命令の第
2Eユニツトにおける演算が前命令の演算終了後
直ちに開始できるようにしている。
以下この点をさらに詳しく説明する。
(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でのみ入力データの取り込みを行
うものとする。さらにフリツプフロツプ538〜
540はそれぞれフリツプフロツプ101〜10
3の出力を、フリツプフロツプ546〜548は
それぞれ538〜540の出力を、またフリツプ
フロツプ120〜122もそれぞれフリツプフロ
ツプ546〜548の出力を1サイクル遅延して
出力するためのもので、これらのフリツプフロツ
プ538〜540,546〜548,120〜1
22もタイミングT0でのみ出力を変化するもの
とする。
フリツプフロツプ149,150,153,1
54、インクリメンタ148は0,1,2を順次
カウントするカウンタを構成し、フリツプフロツ
プ153,154の出力は、第2Eユニツト20
Bで実行されるべき命令に関する情報の選択のた
めの出力ポインタOP2として用いられる。すな
わち、この出力ポインタOP2は、線53Bを介
してセレクタ16B,30Bに入力され、実行す
べき命令の解読情報およびメモリオペランド
MDATA2がこれらのセレクタにより選択的に線
44B,45Bにそれぞれ出力されるようにな
る。しかし、これらの情報を第2Eユニツト20
Bにセツトしてもよいのは第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が起動され、そのときの出力ポインタOP
2をカウントアツプした値を示す信号をフリツプ
フロツプ149,150に出力する。こうして出
力ポインタOP2は、信号BOP2が出力されるご
とに更新されることになる。また、信号BOP2
によりデコーダ113が起動される。このデコー
ダ113はそのときの出力ポインタの値に応じ
て、オアゲート107〜109の一つに信号1を
送る。このときデコーダ100にはデコード成功
信号DSが入力されていないかあるいは信号DSが
入力されていてもそのときの入力ポインタの値は
出力ポインタOP2の値と異なるので、出力ポイ
ンタOP2に対応するフリツプフロツプ101又
は102又は103のデータ端子には、デコーダ
100から信号1が入力されることはない。した
がつて、出力ポインタOP2に対応してフリツプ
フロツプ101〜103の一つがリセツトされる
ことになる。
すでに述べたように、仮定では、L(1)命令のD
ステージのためのデコード成功信号DSはタイミ
ングC0,T1で、出力され、このときの入力ポ
インタIPは0であるが、フリツプフロツプ10
1がタイミングC1,T0でセツトされ、フリツ
プフロツプ538,546,120がこれより順
に1サイクルずつ遅れたタイミングC2,C3,
C4、の各T0でセツトされる。このときフリツ
プフロツプ153,154より出力される出力ポ
インタOP2は仮定により、L2ステージを実行す
べきL(1)命令に対するものでなければならず、値
0を示す。したがつて、セレクタ129の出力は
タイミングC4,T0では1であり、このときL
(1)命令の前の命令Xに対する第2Eユニツトでの
演算が終了していると仮定しているので、信号
EOP2は1である。したがつて、信号BOP2も
1となる。こうして第2Eユニツト20Bに対し
てL(1)命令の実行に必要なデータがセツトされ
る。こうして、L(1)命令のL2ステージがサイク
ルC4に行なわれる。また、この信号BOP2に
よりインクリメンタ148が起動され、そのとき
の出力ポインタOP2をカウントアツプした値1
を出力する。この値はフリツプフロツプ149,
150にタイミングC4,T1で取り込まれ、さ
らに、フリツプフロツプ153,154にタイミ
ングC5,T0で取り込まれる。したがつて、出
力ポインタOP2はサイクルC5では、次のL(2)
命令のための値1に更新される。
なお、信号BOP2によりデコーダ113がタ
イミングC4,T0で起動され、そのときの出力
ポインタOP2の値0に対するORゲート107お
よびフリツプフロツプ538,546,120の
リセツト入力端子Rに1信号を出力する。この結
果、フリツプフロツプ101,538,546,
120がタイミングC5,T0でリセツトされ
る。
全く同じようにL(2),A命令のL2ステージが
行なわれ、それぞれサイクルC5,C6はこの命
令のための信号BOP2が出力される。
この間、出力ポインタOP2はタイミングC5,
T0で1になり、次にタイミングC6,T0で2
にさらに、C7,T0で0に更新される。
ただし、次のL(3)命令はA命令に対してアドレ
スコンフリクトがあるため、この命令のためのデ
コード成功信号DSがタイミングC8,T1で出
力されるので、L命令のL2ステージはサイクル
C12まで延期される。したがつて、出力ポイン
タOP2はタイミングC7,T0での値0をそれ
ぞれ保持しつづけている。
タイミングC8,T1でL(3)命令のためのデコ
ード成功信号DSが出力されると、タイミングC
9,T0でフリツプフロツプ101がセツトされ
る。その後L(1),L(2),A命令の場合と全く同様
にタイミングC12,T0でL(3)命令のための演
算開始信号BOP2が出力される。
(E2ステージの動作) 第2Eユニツト20Bでは第7図に示すように
レジスタ298〜305にそれぞれ、第2演算表
示信号SUBCC、条件コード変更表示信号
CHGCC演算開始信号BOP2、レジスタ変更信号
SUBGR、書込みレジスタ番号RW、オペレーシ
ヨンコードOP CODE、レジスタオペランド
RDATA2、メモリオペランドMDATA2が信号
BOP2に応答してL2ステージの動作によりセツ
トされている。第2演算回路307は信号BOP
2で起動され、レジスタ303にセツトされた
OP CODEにより指定される演算を行ない、演算
結果WDATA2をレジスタ310に送出する。ま
た、OP CODEが条件コードを変更する演算を指
示しているときには、条件コードCC2を演算結
果WDATA2と演算の種類に依存して算出して出
力する。また演算の最終サイクルで線48Bに演
算終了信号EOP2を出力するようになつている。
この信号は、次にBOP2信号が入力されるまで
毎サイクル出力される。また、入力されたOP
CODEで指定される演算をこの第2演算回路30
7が実行できないときでも、この回路307はこ
の信号EOP2を次に信号BOP2が入力されるま
で毎サイクル出力する。したがつて、現在、仮定
では、第2演算回路307は1マシンサイクルの
演算しか実行しないと仮定しているので、信号
EOP2は毎サイクル出力されることになる。ま
た、レジスタ310に演算結果WDATA2がタイ
ミングT0でセツトされ、レジスタ302にセツ
トされている書込みレジスタ番号RWがレジスタ
309にタイミングT0でセツトされ、同様にレ
ジスタ300,301にそれぞれセツトされた信
号BOP2とSUBGRとが論理積ゲートを介してタ
イミングT0でレジスタ308にセツトされる。
レジスタ308の出力はその値が1のときに第2
汎用レジスタ18Bに結果WDATA2を書込むべ
きことを示す書込信号WC2である。
レジスタ298の出力VALIDは条件コードCC
2が有効であることを示す信号であり、第2演算
表示信号SUBCCが1である命令のL2ステージが
実行されたときに1となる。すなわち、L2ステ
ージが実行された命令の演算が第2Eユニツト2
0Bで実行可能であり、かつ、条件コードを変更
する命令のときに信号VALIDが1となり、それ
以外の命令のときには0となる。
また、レジスタ299の出力とレジスタ300
の出力の論理積がアンドゲートから出力される。
この論理積SET2は、条件コードを変更する命
令のEステージで1となり、それ以外の命令では
0となる。この信号SET2は、条件コードCC2
と有効表示信号VALIDを条件コードレジスタ3
4B(第1B図)にセツトするのに用いられる。
L(1),L(2),A命令に対しては各々サイクルC
5,C6,C7で演算が行なわれ、結果データ
WDATA2、書込レジスタ番号RW、書込み信号
WC2がそれぞれタイミングC6,C7,C8の
T0で線50Bに出力されることになる。L(3)命
令についてもサイクルC13で演算が同じように
行なわれる。
またA命令においては、条件コードCC2とそ
のセツト信号SET2、有効信号VALIDがタイミ
ングC7,T0にて線70Bに出力される。
(P2ステージの詳細) E2ステージでこのように求められた結果デー
タWDATA2は線50Bを介して第2汎用レジス
タ18Bに送られ、書込み信号WC2が1のとき
に番号RWで示されるレジスタに書込まれる。
また、セツト信号SET2が1のときには、条
件コードレジスタ34B(第1B図)に条件コー
ドCC2と有効表示信号VALIDがセツトされる。
セツト信号SET2が0のときには、レジスタ3
4Bの内容はかわらない。したがつて、E2ステ
ージを実行される命令が条件コードをかえる命令
のときには、レジスタ34Bの内容が書きかえら
れる。したがつて、この命令が第2Eユニツトで
実行可能なときには、レジスタ34Bの新しい内
容は、値1をもつVALID信号と第2Eユニツト2
0Bで新たに求められた条件コードCC2である。
しかし、この命令が第2Eユニツト20Bで実行
できない命令のときには、レジスタ34Bの新し
い内容は値0をもつVALID信号と、第2Eユニツ
ト20Bから線70Bに出力されている無意味な
データである。一方、E2ステージが実行された
命令が条件コードをかえない命令のときには、レ
ジスタ34Bの内容は書きかえられない。
L(1),L(2),A命令については、それぞれタイ
ミングC7,C8,C9のT0にて演算結果が第
2汎用レジスタに書き込まれ、またL(3)命令につ
いてはタイミングC15,T0にて書き込まれ
る。また、A命令については、タイミングC8,
T0にて条件コードと値1を持つVALID信号が
レジスタ34Bにセツトされる。
本実施例においては従つて、A命令の結果はC
9,T0にて第2汎用レジスタに書き込まれるた
め、この時点でこの結果をアドレス計算で用いる
必要のあるL(3)命令とのアドレスコンフリクトが
解消し、後述するようにアドレスコンフリクト検
出回路32の出力ACONFが0となり、第1Iユニ
ツト20Aは次のL(3)命令のDステージを開始で
きる。従つて後続のL(3)命令のDステージはC8
にて開始することができ、上記先願に比較して4
ステージ(先願における2サイクル)早めること
ができる。
この4サイクルの短縮の内訳けは、Dステージ
の開始後第2汎用レジスタに書き込みが終了する
までのサイクル数の短縮分2サイクルと、第2E
ユニツトが第1Eユニツトに比べL(1),L(2)命令
を半分のピツチで演算を行えるため、1命令毎に
1サイクルずつ計2サイクル早期に第2Eユニツ
トでの演算が開始できたことによる短縮分2サイ
クルである。
ここで、第2Eユニツトが上記先願に比べ、実
際に半分のピツチで演算を行える上で、命令のデ
コードそのものが先願に比べ半分のピツチで行わ
れる必要があること、そして本実施例においてそ
のように構成していることは言うまでもない。
(アドレスコンフリクト検出動作) アドレスコンフリクト検出回路32の構成は、
第8図に示すように上記先願におけると同様でよ
く、ここでは概略のみ説明する。
フリツプフロツプ200〜202は、命令キユ
ーレジスタ14の#0〜#2の各レジスタに対応
し、その中に入つている命令が汎用レジスタを変
更する命令であり、しかも未だ変更を終えていな
い状態であることを示す。レジスタ218〜22
0は、命令キユーレジスタ14の#0〜#2の各
レジスタに対応し、その中に汎用レジスタを変更
する命令が入つている場合、その書き込みレジス
タ番号RWを保持する。比較器224は、命令レ
ジスタに保持されている命令のインデツクスレジ
スタ及びベースレジスタ番号RX,RBと、命令キ
ユーレジスタ内の汎用レジスタの変更の終つてい
ない命令の書き込みレジスタ番号とを比較し、比
較結果をオアゲート235に出力する。
セレクタ256は、フリツプフロツプ200〜
202の値のうち、第1Eユニツトでの演算が開
始したものを選択し、フリツプフロツプ258に
出力する。
またセレクタ227は、レジスタ218〜22
0に格納されている書き込みレジスタ番号のう
ち、第1Eユニツトでの演算が開始したものを選
択し、レジスタ228に出力する。比較器230
は、命令レジスタに保持されている命令のRX
RBと、第1Eユニツトでの演算中の、汎用レジス
タの変更の終つていない命令の書き込みレジスタ
番号とを比較し、比較結果をオアゲート235に
出力する。オアゲート235は線58にアドレス
コンフリクトの発生を示すACONF信号を出力す
る。
フリツプフロツプ200〜202及びレジスタ
218〜220へのセツトは、それぞれセツト回
路250,225によつてDS信号の立つた時に、
IP信号で示される番号のものに対してなされる。
フリツプフロツプ200〜202のリセツトは、
第2Eユニツトの演算結果の第2汎用レジスタへ
の書き込み信号WC2Gが立つた時にリセツト回
路254によつて、また第2Eユニツトでは演算
の行われない命令については第1Eユニツトでの
演算が開始した時にリセツト回路252によつて
行われる。
レジスタ237,542は、OP1の遅延信号
を作成する。レジスタ236,543はBOP1
の遅延信号を作成する。
第9C図に、フリツプフロツプ200〜20
2,258、レジスタ218〜220,228、
比較器224,230、ACONF信号58のタイ
ムチヤートを示す。
〔動作の詳細〕 条件コードコンフリクトがある場合、この場合
の装置とその動作説明のために以下では、L(1),
A,BCがこの順に実行され、L(2)命令が実行さ
れるものとする。また、これらの命令間およびこ
れらに先行する命令とこれらの命令の間でアドレ
スコンフリクトがないと仮定する。
(BC命令の処理) このときの動作のタイムチヤートは第11A〜
11B図に示される。ただし、この図では、条件
コードコンフリクトの動作の理解に必要な信号の
みを示してある。
L(1),A命令は先に述べたのと全く同じように
実行され、BC命令のDステージがサイクルC2
で実行されると仮定する。
BC命令のD,D′ステージにおいては、L(1),
A命令と同様に加算器24でアドレスが算出され
るが、このアドレスは分岐先の命令のアドレスで
ある。BC命令の命令デコーダ12による解読情
報は、他の命令と同じようにデコーダ成功信号
DS(これはタイミングC2,T1で出力される)
に応答して命令キユーレジスタ14に格納され
る。また、命令デコーダ12の出力の内、分岐命
令表示信号BC及びマスク信号MASKが線42を
介して条件コードコンフリクト検出回路36に送
られる。回路36は、後述するように条件コード
コンフリクト信号CCONFをタイミングC3,T
0で1にする。第1Iユニツト22Aはこの信号に
応答して、後続の命令に対するデコード成功信号
DSの発生を抑止する。こうしてBC命令のD,
D′ステージが終了する。BC命令のA,A′ステー
ジにおいては上述の命令アドレスに基づきメイン
メモリ26からタイミングC5,T0で読出され
たL(2)命令がフエツチ回路(図示せず)の制御に
より命令バツフア6A,6Bの内のターゲツトス
トリーム側にタイミングC6,T0に格納され
る。フエツチ回路はさらに引続き、このL(2)命令
につづく命令列を順次メインメモリ26から読出
し、ターゲツトストリーム側の命令バツフア6A
又は6Bに順次格納する。
サイクルC6においては、A命令の第2Eユニ
ツト20Bでの演算が終了するため、信号EOP
2がこのサイクルにおいて出力される。したがつ
て、第2Iユニツト22Bより信号BOP2がこの
サイクルC6で出力される。このため、BC命令
のL2ステージがサイクルC6において可能とな
る。
BC命令のL2ステージにおいては、セレクタ1
6Bにより選択された、BC命令の解読情報が第
2Eユニツト20Bにセツトされる。BC命令が必
要とする演算は、この解読情報に基づく分岐成功
の判定である。しかし、他の命令と異なり、本実
施例ではこの判定が条件コードコンフリクト検出
回路36によりなされる。したがつて、セレクタ
16Bの出力は線44Bを介して、この検出回路
36に送られ、そこにセツトされる。なお、セレ
クタ16Bの出力は他の命令と同じく、第2Eユ
ニツト20Bにも送られる。
また、L2ステージではセレクタ30BがBC命
令に関するデータを選択するように制御される。
L2ステージの次のステージでは、上述のごとく、
分岐成功判定が回路36で行われ、第2Eユニツ
ト20Bは実質的に動作しないで、演算終了信号
EOP2をサイクルC7から出力するのみである。
しかし、他の命令と同じくこのステージを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が
(第1A図)が反転される。また、条件コードコ
ンフリクト信号CCONFはタイミングC9,T0
でゼロになる。こうして、BC命令のE2ステージ
が終了する。
次のステージ(これをP2ステージと呼ぶ)で
は次の動作が行なわれる。すなわち、フリツプフ
ロツプ9の反転に伴ない、読出し回路8(第1A
図)は分岐先のL(2)命令をタイミングC8,T0
で命令レジスタ10にセツトする。また、信号
CCONFが0であり、また、仮定によりアドレス
コンフリクトがないと仮定しているので、第1Iユ
ニツト22Aは次の命令に対するデコード成功信
号DSをタイミングC8,T1で出力する。こう
して、分岐成功の場合、分岐先のL(2)命令のDス
テージがサイクルC8で実行可能となる。なお、
読出し回路8はBC命令のDステージの開始後、
分岐不成功時に実行すべき命令を命令レジスタ1
0にあらかじめセツトする。したがつて、分岐判
定の結果、分岐不成功のときには、信号DSに応
答して、分岐不成功側の命令が実行される。
一方、上記先願においては、A命令の第2Eユ
ニツトの演算はC8,C9サイクルにて行われ、
分岐判定はC10サイクルに行われ、従つて、分
岐先命令L(2)のDステージはC12から開始され
る。
ゆえに本発明によればL(2)のDステージは上記
従来例に比較して4サイクル早めることができ
る。この4サイクルの短縮の内訳けは、Dステー
ジの開始後、第2Eユニツトによつて条件コード
が得られるまでのサイクル数の短縮分2サイクル
と、第2Eユニツトが第1Eユニツトに比べL(1)命
令を半分のピツチで演算を行えるため、A命令の
第2Eユニツトでの演算が1サイクル早期に開始
できることによる短縮分1サイクルと、条件コー
ドが得られてから分岐判定及び命令レジスタへの
分岐先命令切り出しを行うまでのサイクル数の短
縮による1サイクルである。
(条件コードコンフリクト検出回路とその動作) 条件コードコンフリクト検出回路36の構成は
第10図に示すように、上記従来例におけるとほ
ぼ同様でよく、ここでは概略のみ説明する。
フリツプフロツプ406は、条件コードコンフ
リクトの発生を示すCCONF信号を線72に出力
する。406はBC命令についてDS信号が立つた
時にセツトされ、分岐判定回路417からの分岐
判定終了信号ENDに応答して、制御回路404
によりセツトされる。
アンドゲート409はBC命令の第1Eユニツト
での演算開始条件をフリツプフロツプ413に入
力する。413はこれを、CC1を用いて分岐判
定を行う場合の判定指令信号J1として、分岐判
定回路417に出力する。
アンドゲート410はBC命令の第2Eユニツト
での演算開始条件をフリツプフロツプ414に入
力する。414はこれを、CC2を用いて分岐判
定を行う場合の判定指令信号J2として、分岐判
定回路417に出力する。
レジスタ403は、BC命令のマスク値MASK
を格納し、分岐判定回路417に出力する。
分岐判定回路417は、分岐判定終了を意味す
るEND信号と、分岐成功を示すBCTKN信号と
を出力する。
CCONF,J1,J2,END,BCTKN及びそ
れらに関連する信号のタイムチヤートを第11B
図に示す。
〔発明の効果〕
本発明によれば、システムプログラムのように
Load,Add等の演算ステージの短い命令が大半
を占めるプログラムにおいても第2Eユニツトに
よつて第1Eユニツトに比較して早期に演算結果
を求めることができるため、アドレスコンフリク
ト、BC命令の高速化が実現できる。最近の大型
汎用計算機においては、システムプログラムを実
行した場合の、1命令当りの平均処理時間のう
ち、アドレスコンフリクト及びBC命令の分岐判
定によるものはそれぞれ10%程度と考えられる
が、本発明はこれらを大幅に削減する効果があ
り、大型汎用計算機の高速化に有効と考えられ
る。
【図面の簡単な説明】
第1A,1B図は本発明による実施例の異なる
部分のブロツク回路図、第2図は、デイジタルコ
ンピユータを構成するための第1A図、第1B図
の配置を示す。第3A,3B図はそれぞれ本発明
による実施例で用いる一つの命令フオーマツトの
例を示す。第4図は上記実施例で用いる第1の命
令制御ユニツトの概略回路構成図である。第5図
は上記実施例で用いる第1の演算実行ユニツトの
概略構成図である。第6図は上記実施例で用いる
第2の命令制御ユニツトの概略構成図である。第
7図は上記実施例で用いる第2の演算実行ユニツ
トの概略構成図である。第8図は上記実施例で用
いるアドレスコンフリクト検出回路の概略構成図
である。第9Aから9C図は、上記実施例のアド
レスコンフリクトがある場合のタイムチヤートで
ある。第9D,9E図は先願と本実施例における
命令処理ステージをそれぞれ示す。第10図は上
記実施例で用いる条件コードコンフリクト検出回
路の概略構成図を示す。第11Aと11B図は、
上記実施例の、条件コードコンフリクトがある場
合のタイムチヤートである。

Claims (1)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8575283A JPS59212961A (ja) 1983-05-18 1983-05-18 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8575283A JPS59212961A (ja) 1983-05-18 1983-05-18 データ処理装置

Publications (2)

Publication Number Publication Date
JPS59212961A JPS59212961A (ja) 1984-12-01
JPH0545984B2 true JPH0545984B2 (ja) 1993-07-12

Family

ID=13867584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8575283A Granted JPS59212961A (ja) 1983-05-18 1983-05-18 データ処理装置

Country Status (1)

Country Link
JP (1) JPS59212961A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6019028B2 (ja) * 1977-08-26 1985-05-14 株式会社日立製作所 情報処理装置
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
JPS59212961A (ja) 1984-12-01

Similar Documents

Publication Publication Date Title
US4532589A (en) Digital data processor with two operation units
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
JP3984786B2 (ja) 異なる待ち時間を伴う命令のスケジューリング
US4409654A (en) Data processor adapted for interruption to an instruction stream
US6304954B1 (en) Executing multiple instructions in multi-pipelined processor by dynamically switching memory ports of fewer number than the pipeline
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JPH077385B2 (ja) データ処理装置
US5832202A (en) Exception recovery in a data processing system
JP2002163127A (ja) トレース制御回路
EP0223150B1 (en) Information processing apparatus
US5590359A (en) Method and apparatus for generating a status word in a pipelined processor
US20080016321A1 (en) Interleaved hardware multithreading processor architecture
US5276822A (en) System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
US8631173B2 (en) Semiconductor device
US6016541A (en) Instruction controlling system and method thereof
JPH0545984B2 (ja)
US5682521A (en) Microprocessor control system which selects operating instructions and operands in an order based upon the number of transferred executable operating instructions
US6981130B2 (en) Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel
WO2024146076A1 (zh) 乱序处理器中队列的队列项选择方法及装置
JPH0545983B2 (ja)
JP2901247B2 (ja) 掃出し制御方式
JPH07111683B2 (ja) タスク切換機能付プロセッサ
JP2682759B2 (ja) 命令フェッチ回路
JP2927102B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
EP0556825A1 (en) Microprocessor