JPS63231627A - 先行制御方式 - Google Patents

先行制御方式

Info

Publication number
JPS63231627A
JPS63231627A JP6654587A JP6654587A JPS63231627A JP S63231627 A JPS63231627 A JP S63231627A JP 6654587 A JP6654587 A JP 6654587A JP 6654587 A JP6654587 A JP 6654587A JP S63231627 A JPS63231627 A JP S63231627A
Authority
JP
Japan
Prior art keywords
instruction
branch
stage
condition code
address
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
JP6654587A
Other languages
English (en)
Other versions
JP2503223B2 (ja
Inventor
Fumio Matsunoshita
松野 下文郎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6654587A priority Critical patent/JP2503223B2/ja
Publication of JPS63231627A publication Critical patent/JPS63231627A/ja
Application granted granted Critical
Publication of JP2503223B2 publication Critical patent/JP2503223B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 アドレス計算が不要なレジスタ間演算命令などを実行す
る場合、その結果のコンディションコードの値を予測で
算出し、そのコンディションコードを使用して処理を決
定する後続の命令は、その予測値を使用して早期に処理
の決定を行なうことにより、待ち時間を減らし、処理の
高速化を図ったものである。
〔産業上の利用分野〕
本発明は、パイプライン方式の処理装置に関するもので
あり、特に後続命令が先行命令のコンディションコード
を使用して実行すべき処理を決定する場合の先行制御方
式に関する。
〔従来の技術〕
一般に処理装置で実行される命令には、主記憶装置をア
クセスするためにアドレス計算を必要とするものと、レ
ジスタ間演算命令のようにオペランドのアドレス計算を
必要としないものとがある。
また加算(AR)、減算(SR)、比較(CR)などの
演算命令では、演算結果が負になったり、オーバーフロ
ーしたりするなどの例外状態を生じる場合があり、それ
ぞれに定められた例外処理が行なわれる。
このため、これらの演算命令は、その実行終了時に演算
結果にしたがった値のコンディションコードを設定し、
後続する命令、たとえば分岐(BR)命令は、そのコン
ディションコードの値を判定して、対応する処理を切り
分けるようになっている。
ところでこのような演算命令と分岐命令とが連続してい
る場合、後続の分岐命令は、先行の演算命令が実行終了
した後でなければ、コンディションコードを参照するこ
とができないため、必ず待たされることになる。
第4図に示すパイプラインのフロー図を用いて、従来の
方式を説明する。
第4図において、横軸は、パイプラインの実行サイクル
を示しており、■ないし[相]は順次のサイクルを参照
可能にするため、便宜上番号付けしたものである。
図示の例は、加算命令ARに続いて分岐命令BRが実行
させ、さらに後続命令あるいは分岐先命令が実行される
場合のものである。
各命令は、パイプラインに投入されると、サイクル(τ
)ごとに、D、A、、TSB、E、、Wの各ステージを
lllff次流れてゆく。ここでDば命令のデコード、
Aはアドレス計算、Tはバッツァメモリのタグチェック
、Bはバッファ読み出し、Eは実行、Wは結果の書き込
みを表わしている。
加算命令ARは、サイクル■にパイプラインへ投入され
、サイクル■のEステージで加算演算を実行して、その
結果により、サイクル■のWステージでコンディジタン
コード(CCで表わす)に値を設定する。
分岐命令BRは、加算命令ARよりもlτ後のサイクル
■にパイプラインへ投入される。
分岐介層BRは、サイクル■のAステージで分岐先命令
のアドレス計算を行ない、サイクル■のBステージでバ
ッファから分岐先命令を読み出して、Eステージの最初
で命令を先取り(プリフェッチ)する、以後この命令を
先取り命令と呼ぶ。
続いてサイクル■のEステージで、加算命令ARが設定
したCCの値を参照し、条件判定を行なって、次に実行
する命令を分岐命令BRの後続命令でよいか、あるいは
分岐先の先取り命令に変更するかどうかを決定する。
もしも分岐が成功した場合には、先取り命令は、分岐命
令BRの投入から4τ遅れたサイクル■に、パイプライ
ンへ投入される。
他方、分岐が成功しない場合については、予め分岐が成
功しない場合を考えて分岐命令BRの後続命令を順次パ
イプラインへ投入しておく方法がとられているので(サ
イクル■ないし■で後続命令がパイプラインへ投入され
ている)、特別な遅゛れは生じない、なお分岐が成功し
た場合、予めパイプラインへ投入されていたこれらの後
続命令は無効化されるので不都合は生じない。
〔発明が解決しようとする問題点〕
従来のパイプライン方式の処理装置では、コンディショ
ンコードの設定処理を含む演算命令等と、そのコンディ
ションコードを使用して条件を判定し、処理を切り分け
る分岐命令等との組みを実行するたびに待ち時間が生じ
1.これらの命令の出現頻度が多い程、処理装置の処理
速度は低下するという問題があった。
〔問題点を解決するための手段〕
レジスタ間演算命令などのオペランドのアドレスを計算
する必要がない命令ではアドレス計算回路が空いている
ことに着目して、これを用いてコンディションコードの
予測値を算出し、それをコ  −ンディションコードを
使用する後続の命令に渡すことにより、後続命令の待ち
時間を短縮するものである。
第1図により、本発明の詳細な説明する。
第1図は、本発明による処理装置のパイプラインの概念
的なフローである0図中、■はコンディションコードC
Cを設定する処理を伴う先行命令の例の加算命令ARの
フロー、■はコンディジ四ンコーFCCを使用して次の
処理を決定する後続命令の例として分岐命令BRのフロ
ー、■は後続命令■が決定した処理を実行する分岐先の
先取り命令のフローである。
また各命令フローにおいて、D、A、T、B。
E、Wはパイプラインの順次のステージを表わしている
同様に各命令フローにおいて共通に、10は命令バッフ
ァ、11は命令レジスタ、12はアドレス計算回路、1
3はバッファメモリ、14は演算ユニット、15は第1
コンデイシヨンコードラツチCC−1,16は第2コン
デイシヨンコードラツチCC−2,17は条件比較回路
を表わしている。なお便宜上、各命令フロー中には、そ
れぞれ必要とされるハードウェア要素のみが示されてい
る。
命令バッファ10は、パイプラインへ投入するための先
取りされた命令を一時的に保持しておくもので、複数段
で構成される。
命令レジスタ11は、Dステージでパイプラインに投入
された命令を保持し、命令のOPコードやアドレス情報
等の取り出しに使用される。
アドレス計算回路12は、通常は命令のアドレス情報に
基づいて、オペランドや命令フエンチ用の実効アドレス
の計算をAステージで行なう。しかし本発明においては
、特に加算命令Al1等のレジスタ間演算命令のように
、オペランドの実効アドレス計算が不要であってかつコ
ンディションコードCCの設定を伴う加算命令ARの場
合、コンディションコードCCの予測演算にも使用され
る。
後者の場合は、汎用レジスタが入力源として使用される
バッファメモリ13は、主記憶装置(図示せず)に対す
るアクセス時間を短縮するため、データの一時蓄積用に
中間に設けられており、T、Bステージでオペランドや
命令を取り出すために使用される。
演算ユニット14は、命令により定められる算術演算や
論理演算をEステージで実行する。
第1コンデイシツン゛コードラフチ15(CC−1)に
は、演算ユニット14の演算結果に基づいて生成された
コンディションコードCCの値が、Wステージで設定さ
れる。
第2コンデイジタンコードランチ16(CC−2)は本
発明に固有のものであり、アドレス計算回路12が図の
■のへステージでコンディションコードCCの予測演算
を行なったときに得られた予測値が、Tステージで設定
される。
条件比較回路17は本発明に固有のものであり、コンデ
ィジ式ンコードCCを使用する分岐命令BRに指定され
ているCC値と、第2コンデイシヨンコードラフチ16
  (CC−2)に設定された予測CC値とを図の■の
Aステージで比較し、その結果により、分岐先命令の先
取りを実行するかどうかを決定する。
図の■において、条件比較回路17が2つのCC値の一
致を検出したときには、条件成立すなわち分岐成功とし
、アドレス計算回路12がAステージで計算した先取り
命令の実効アドレスにより、TおよびBステージにおい
てバッファメモリ13をアクセスさせる。
バッファメモリ13から読み出された先取り命令は、■
のEステージの始めに、図の■に示すように命令バッフ
ァ10に格納され、続いてパイプラインに投入される。
〔作用〕
本発明の作用を、第1図と、第2図に示すパイプライン
のフロー図とを用いて説明する。第2図は、第4図に示
した従来方式のフロー図に対応するものであり、図中の
記号、番号および通用されている命令等の具体例は共通
であるので、重複する説明は省略する。
第2図において、加算命令ARのフローでは、第1図の
第2コンデイシヨンコードラツチ16(CC−2)で説
明したように、Aステージでアドレス計算回路12を用
いてのコンディションコ−ドの予測演算を行ない、その
結果の値を、Tステージで第2コンデイシヨンコードラ
フチ16(CC−2)に設定し、次の分岐命令BRによ
り参照可能にする。なお、Eステージで演算ユニット1
4が実際に行なった演算の結果に基づき生成されたコン
ディションコードCCが、Wステージで第1コンデイシ
ヨンコードラツチ15(CC−1)に設定されるが、こ
こでは使用されない。
分岐命令BRのフローでは、Aステージにおいて、アド
レス計rt回路I2が分岐先の先取り命令の実効アドレ
スを計算するとともに、条件比較回路17で第2コンデ
イシヨンコードラツチ16(CC−2)の予測(ltC
Cをチェックする。その結果が分岐成功であれば、Tス
テージおよびBステージでバッファメモリ13をアクセ
スし、分岐先の先取り命令を読み出し、その先取り命令
をEステージの始めに、命令バッファ10に格納する。
すなわち、分岐命令BRのEステージでは、加算命令A
Rが同じサイクル■のWステージで第1コンデイシラン
コードラツチ15(CC−1)に設定する実際のCCを
参照して条件判定を行なう必要がなく、そのサイクル■
中に直ちに分岐先の先取り命令を命令バッファ10から
パイプラインへ投入することができる。
このため、第4図の従来方式の場合にくらべて、待ち時
間が1サイクル(τ)分短縮され、分岐命令BRからの
遅れは3τとなる。
アドレス計算回路12で行なうコンディションコードの
予測演算は、演算ユニ7)14が行なう実際の演算より
も節略なものであり、たとえば加算命令の場合には、演
算結果が01、正、負、桁上げのいずれの状態であるか
だけ知ることができるものであればよい。この場合、予
測演算により得られた結果がO5正、負、桁上げのいず
れであるかにより、コンディションコードCCの予測値
としてそれぞれ0.1.2.3が設定される。
〔実施例〕
第3図は、本発明による処理装置のパイプラインの1実
施例構成図である。
第3図において、10ないし17で示されるブロック要
素は第1図に示されているものと同じである。第3図に
おいて細部構成を示すために新たに付加されているブロ
ック要素は18ないし28で示されている。以下に図中
のブロック要素のリストを示す。
10:命令バッファであり、実行待ちの命令を一時的に
保持する。
11:命令レジスタであり、実行のため投入された命令
を保持する。
12ニアドレス計算回路であり、オペランドや先取り命
令の実効アドレスを算出する。コンディションコードC
Cの予測値算出にも使用される。
13:バッファメモリである。
14:演算ユニットである。
15:第1コンデイシヨンコードラツチ(CC−1)で
あり、演算ユニット14によりコンディションコードC
Cを設定される。
16 :第1コンデイシヨンコードラツチ(CC−2)
であり、アドレス計算回路がCCの予測値を算出して設
定する。
17:条件比較回路であり、命令中の指定CC値とCC
−2の予測CC値とを比較し、分岐の成功/不成功を判
定する。
18:汎用のレジスタ群であり、コンディションコード
の予測演算を行なうときにアドレス計算回路12への人
力データ源となる。
19〜21ニアドレスレジスタであり、アドレス計算回
路12の入力レジスタを構成する。
22:加算器であり、アドレスレジスタ19〜21の値
を加算する。
23:実効アドレスレジスタ(EAR)であり、アドレ
ス計算回路12が算出した実効アドレスが格納される。
24:使用中レジスフ番号ラッチであり、パイプライン
を先行している命令が使用しているレジスタの番号を保
持する。
25:レジスタ比較回路であり、命令間での使用レジス
タの番号を比較し、干渉を検出する。
26:レジスタ干渉ラッチであり、レジスタ比較回路2
5が命令間でのレジスタ番号の一敗を検出したとき、レ
ジスタ干渉の存在を示すためONに設定される。
27;命令制御回路であり、命令のOPコードから、命
令取り出し要求iFc+1を出すかどうかを決定する。
28:主記憶装置である。
次に本実施例の動作を説明する。
命令バッファ10から加算命令ARが命令レジスタ11
に入ると、そのOPコードがデコードされて、命令制御
回路27に入る。
命令制御回路27は、この命令がどのような命令かを判
断するが、この場合加算命令ARは、レジスタ間の加算
命令なので、オペランドのアドレス計算を行なう必要が
ないと判断して、加算命令A[?で指示されたレジスタ
の内容を、汎用レジスフ群18から読み出して1、アド
レスレジスタ19.20に入力する。
この場合加算命令ARだけでなくアドレスレジスタ20
の出力に■で示すように、内容を反転させることによっ
て減算や比較も行なわせる事ができる。
アドレスレジスタ19.20を入力して加算器22で計
算を行なわせ、その結果をレジスタEAR23に保持す
ると同時に、計算結果が例えば“0′の時は“0”に、
正の時は1”に、負の時は“2“に、桁上がりがある時
は°3”というように、第2コンデイシヨンコードラツ
チ1G(CC−2)にセントする。この時点ですでにC
Cを予測した事になる。
次に加算命令ARは、バッファメモリ13からデータを
読み出す必要がないのでEステージまで進む。
Eステージでは、演算ユニット14で実際の演算を行な
わせる。加算命令等は、レジスタ間で演算を行ない、ま
たレジスタに書き込む動作が必要なため、指定されたレ
ジスタの内容を演算ユニット14に渡してやる。
演算ユニット14では、渡されたデータを演算してその
結果をレジスタに書き込むと同時に、本来のCCを第1
コンデイシタンコードラフチ15(CG−1)に設定す
る。
次に分岐命令BRが命令レジスタ11に投入されると、
そのOPコードがデコードされ、命令制御回路27に入
る。ここで再びどのような命令かを判断するが、分岐命
令の場合は、CCを見て指定されたアドレスへ分岐する
かもしくはそのまま後続命令を処理するかの判断が必要
である。
従来方式の場合、この時点ではまだどちらに決定するか
判断する事ができないので、分岐先アドレスを計算し、
そのアドレスからの命令の先取り要求を出すと同時に、
後続命令をバイブラインに投入することが行なわれた。
そしてCCが設定された時点で処理が決定され、どちら
か一方が選択され、もう一方の命令は無効化された。
しかし本発明方式では、すでに予測2されたCCが設定
されているので、分岐命令BCのCC部(MASK部)
とを条件比較回路17を使って比較し、それによって分
岐するかどうかを決定する(一致したら分岐)。
そして−敗の場合は、分岐先命令の取り出し要求(iF
CH)をバッファメモリ13に対して出す。他方一致し
なかったなら、分岐先命令の取り出し要求(iFCH)
は出さずに、後続命令をパイプラインに投入する。
一方、従来方式では、常に分岐先命令の取り出し要求を
出していたために、もしバッファメモリ13にその命令
がなかった場合には、主記憶装置28までデータの取り
出し要求(REQUEST)を行なわなければならなか
った。分岐するのであれば問題はないが、分岐しないと
決定された場合には主記憶装置に対して無駄な要求を出
した事になり、他の事象に遅れをきたす事にもなってい
た。
しかし本発明方式では、CCの予測を行なって、分岐先
命令の取り出し要求を出すか出さないかを判断できるの
で、分岐しない場合は取り出し要求を出すことがなく、
主記ta装置へ余分な要求が出ないため、他の事象に影
響を与えないですむ利点がある。
さらに重要な点は、CCにより分岐が決定すると仮定す
ると、従来方式では先取り命令が命令バッファ10に入
った時点にはまだCCが決定されていないためにIt遅
れて実行を開始するが、本発明方式ではCCの予測を行
なっているので、先取り命令が命令バッファ10に入っ
た時点で実行を開始できることである。
〔発明の効果〕
以上述べたように、本発明による先行制御方式では、コ
ンディションコードを設定する先行命令がアドレス計算
を行なわないものである場合、アドレス計算のAステー
ジで早期にコンディションコードの値を予測で求めてし
まい、またコンディションコードを使用する後続の命令
も、アドレス計算のAステージで、この予測されたコン
ディションコードを使用し、次の処理を早期に決定して
しまうので、命令の先取り要求を必要な場合にだけ出す
ことができ、また先取りした命令の実行も可能な最短時
間で開始させることができる。
このためパイプラインの効率が向上し、処理装置の処理
速度が改善される。
【図面の簡単な説明】
第1図は本発明の原理説明図、第2図は本発明の詳細な
説明するためのパイプラインのフロー図、第3図は本発
明の1実施例によるパイプラインのブロック構成図、第
4図は従来方式によるパイプラインのフロー図である。 第1図中、 lO:命令バッファ 11:命令レジスタ 12ニアドレス計算回路 13:バンファメモリ 14:演算ユニット 16:第2コンデイシヨンコードラツチCC−217:
条件比較回路

Claims (1)

  1. 【特許請求の範囲】 アドレス計算回路(12)をそなえた命令制御部をもつ
    パイプライン方式の処理装置において、アドレス計算が
    不要でかつコンディションコードを設定する命令を実行
    する際、その命令の実行終了を持たずに上記アドレス計
    算回路(12)を用いて演算によりコンディションコー
    ドの予測値を求め、 上記のコンディションコードを用いて処理すべき内容を
    決定する後続の命令に対しては、上記コンディションコ
    ードの予測値を渡し、処理すべき内容の決定を早期に実
    行させるよう制御することを特徴とする先行制御方式。
JP6654587A 1987-03-20 1987-03-20 先行制御方式 Expired - Lifetime JP2503223B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6654587A JP2503223B2 (ja) 1987-03-20 1987-03-20 先行制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6654587A JP2503223B2 (ja) 1987-03-20 1987-03-20 先行制御方式

Publications (2)

Publication Number Publication Date
JPS63231627A true JPS63231627A (ja) 1988-09-27
JP2503223B2 JP2503223B2 (ja) 1996-06-05

Family

ID=13318977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6654587A Expired - Lifetime JP2503223B2 (ja) 1987-03-20 1987-03-20 先行制御方式

Country Status (1)

Country Link
JP (1) JP2503223B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848269A (en) * 1994-06-14 1998-12-08 Mitsubishi Denki Kabushiki Kaisha Branch predicting mechanism for enhancing accuracy in branch prediction by reference to data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848269A (en) * 1994-06-14 1998-12-08 Mitsubishi Denki Kabushiki Kaisha Branch predicting mechanism for enhancing accuracy in branch prediction by reference to data

Also Published As

Publication number Publication date
JP2503223B2 (ja) 1996-06-05

Similar Documents

Publication Publication Date Title
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JPS6341093B2 (ja)
JPH0527143B2 (ja)
JP3490005B2 (ja) 命令制御装置及びその方法
JPS63231627A (ja) 先行制御方式
JPS6116335A (ja) 情報処理装置
JPS581246A (ja) 命令処理順序制御方式
JPH0512751B2 (ja)
JPH10124312A (ja) 中央処理装置
JP2783285B2 (ja) 情報処理装置
US6360310B1 (en) Apparatus and method for instruction cache access
JPS59183434A (ja) 命令先取り制御方式
JP3471691B2 (ja) マイクロ命令における分岐命令制御方式
JPH10154072A (ja) パイプライン処理装置
JPS6411973B2 (ja)
JPS6020245A (ja) デ−タ処理装置の命令制御回路
JPH06124206A (ja) 分岐命令予測処理装置及びその処理方法
JPH03291724A (ja) マイクロプログラム制御方式
JPH02254541A (ja) 条件分岐命令の制御方式
JPS61273637A (ja) 情報処理装置
JPS6217841A (ja) 情報処理装置
JPS6049439A (ja) マイクロプログラム制御方式
JPH02206836A (ja) データ処理装置
JPH0552533B2 (ja)