JP2580396B2 - パイプラインにおける分岐命令制御方式 - Google Patents

パイプラインにおける分岐命令制御方式

Info

Publication number
JP2580396B2
JP2580396B2 JP3031929A JP3192991A JP2580396B2 JP 2580396 B2 JP2580396 B2 JP 2580396B2 JP 3031929 A JP3031929 A JP 3031929A JP 3192991 A JP3192991 A JP 3192991A JP 2580396 B2 JP2580396 B2 JP 2580396B2
Authority
JP
Japan
Prior art keywords
condition code
instruction
cycle
branch
register
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 - Fee Related
Application number
JP3031929A
Other languages
English (en)
Other versions
JPH04245539A (ja
Inventor
岳夫 浅川
愛一郎 井上
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 JP3031929A priority Critical patent/JP2580396B2/ja
Priority to CA002060137A priority patent/CA2060137C/en
Priority to EP92300756A priority patent/EP0497579B1/en
Priority to DE69230230T priority patent/DE69230230T2/de
Priority to AU10581/92A priority patent/AU634681B2/en
Priority to US07/828,701 priority patent/US5408620A/en
Publication of JPH04245539A publication Critical patent/JPH04245539A/ja
Application granted granted Critical
Publication of JP2580396B2 publication Critical patent/JP2580396B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30094Condition code generation, e.g. Carry, Zero flag
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

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

【発明の詳細な説明】 【産業上の利用分野】
【0001】本発明は,パイプライン処理において,条
件付分岐命令を処理する方式に関する。パイプライン処
理により,条件付分岐命令を処理する場合には,処理を
高速化するために,分岐成否の決定以前に分岐不成立側
の命令ストリームを後続命令ストリームとしてパイプラ
インに投入するようにして,分岐不成立時のロスタイム
をなくすようにしている。あるいは分岐予測機構を設
け,分岐命令実行以前に分岐先命令ストリームを先行取
り出し,分岐成立側の命令ストリームを後続命令として
パイプラインに投入し,分岐成立時のロスタイムをなく
すようにしている。
【0002】しかし,従来のパイプラインにおける分岐
命令処理においては,条件コード設定サイクルが固定さ
れているかもしくは後続命令に条件コードを変更する命
令が含まれている場合には,分岐判定成否が確定するま
で後続命令をパイプラインに投入できない場合がありロ
スタイムを十分になくすことのできないものであった。
本発明は,後続命令ストリームに条件コードを変更する
命令が含まれている場合にも条件付分岐命令に連続して
パイプラインに投入でき,分岐条件コードが確定された
段階で分岐成立もしくは不成立を判定するようにするこ
とによりパイプライン処理を高速することを目的とす
る。
【0003】
【従来の技術】図9〜図12により従来のパイプライン
の構成および分岐命令処理方式を説明する。図9は従来
のパイプラインの構成を示す。図は6サイクルの場合の
パイプラインを示す。図において,80(GRスタッ
ク)は汎用レジスタ,81〜82はそれぞれベースレジ
スタ,インデックスレジスタであって,アドレス計算用
のレジスタである。83はアドレス加算器,84はアド
レス加算器の結果を格納するレジスタである。85はT
LB(変換索引緩衝機構)であって,レジスタ84に格
納された有効アドレスを実アドレスに変換するものであ
る。86はTLB(85)の結果を格納するレジスタ,
87(LBS(ローカルバッファストレージ))は主記
憶上のデータをコピーして保持し,高速にアクセスでき
るものである。88はLBS(87)の結果を格納する
レジスタ(オペラントワードレジスタ)である。89は
演算を実行する演算器である。90は演算器89の演算
結果を格納するレジスタ(リザルトワードレジスタ)で
ある。91は演算結果を様々なレジスタに書き込むため
の各種レジスタである。
【0004】図9の構成の動作を説明する。Dサイクル
ではオペコードがデコードされ,GRスタック(80)
よりアドレス計算用データが読み出され,ベースレジス
タ81,インデックスレジスタ82にセットされる。A
サイクルでは, ベースレジスタ81,インデックスレ
ジスタ82に格納されたデータがアドレス加算器83に
より加算され,有効アドレスとしてレジスタ84にセッ
トされる。Tサイクルでは有効アドレスがTLB(変換
索引緩衝機構)85により実アドレスに変換され,実ア
ドレスレジスタ86にセットされる。Bサイクルでは実
アドレスによりLBS(87)からデータが読み出され
オペランドワードレジスタ88にセットされる。Eサイ
クルでは演算が実行され,結果がリザルトワードレジス
タ90にセットされる。Wサイクルではリザルトワード
レジスタのデータを各種レジスタ91に書き込む。
【0005】また,各種レジスタ91に格納したデータ
はレジスタオペランドバス(ROB)によりオペランド
ワードレジスタ88に読出し,演算器89に送ることが
できる。パイプラインにおいては条件分岐命令の実行の
ための分岐決定の判断に必要となる条件コードは,必ず
しも演算器89において生成されるとは限らず,Aサイ
クル等においても生成される場合がある。そのため,条
件コードが生成されると命令実行中の最も早い時点で生
成された条件コードを参照することにより分岐決定を高
速化するようにしている。
【0006】図10にパイプライン処理におけるフロー
を示す。図において,例えば,2フロー目がDサイクル
に投入されたとき1フロー目はAサイクルの処理がなさ
れている。同様に,例えば,5フロー目の命令がDサイ
クルに投入されたとき,1フロー目はEサイクル,2フ
ロー目はBサイクル,3フロー目はTサイクル,4フロ
ー目はAサイクルの処理がなされる。パイプライン処理
においては図示のように,各命令が順次各サイクルにお
いて実行される。
【0007】図11は従来の条件付分岐命令の処理方式
(1)を示す。図は分岐が成功した場合の分岐先命令群
と分岐が不成立の場合の後続命令群を先取りしておき,
命令読出のタイムロスを少なくするようにした方式を示
す。
【0008】図において,101〜106はそれぞれパ
イプライン処理のDサイクル〜Wサイクルを示す。10
7〜〜111は,パイプラインに投入され,それぞれの
サイクルにおいて処理されている命令が条件コード設定
命令等の条件コードを変更する命令である場合には1,
条件コードを変更しない命令の場合には0である条件コ
ード処理判定コードがセットされるレジスタである。そ
して,それぞれ,A〜Wサイクルに対応している。11
2〜117は,各サイクルにおける処理が分岐命令の場
合には1,他の命令の場合には0である分岐命令判定コ
ードがセットされるレジスタである。120は条件コー
処理判定コードがセットされた各レジスタ107〜1
11および分岐命令判定コード112〜117がセット
されたレジスタ112〜117の値に基づいて条件コー
ドが確定したかどうかを判定する条件コード確定判定回
路である。121はレジスタ107〜111に格納され
た値を入力するノア回路,122はレジスタ108〜1
11に格納された値を入力するノア回路,122はレジ
スタ108〜111に格納された値を入力するノア回
路,123はレジスタ109〜111に格納された値を
入力するノア回路,124はレジスタ110〜111に
格納された値を入力するノア回路,125はレジスタ1
11に格納された値を入力するノット回路である。12
6はノア回路121とレジスタ112の値を入力する
ンド回路,127はノア回路122とレジスタ113の
値を入力するアンド回路,128はノア回路123とレ
ジスタ114の値を入力するアンド回路,129はノア
回路124とレジスタ115の値を入力するアンド回
路,130はノット回路125とレジスタ116の値を
入力するアンド回路である。
【0009】図の構成における動作を説明する。条件コ
ード処理判定コードは付随する命令AサイクルからW
サイクルに移行するのにともない,対応するレジスタ1
07〜111を移動する。そして,例えば次のような命
令ストリームがあった場合を考える。 命令1 条件コード設定命令, 命令2 条件コードを設定しない命令, 命令3 条件コードを設定しない命令, 命令4 条件コードを設定しない命令, 命令5 条件コードを設定しない命令, 命令6 条件付分岐命令 ・・・・・・・・
【0010】命令6がAサイクルにあるとき,命令1は
条件コードを生成してパイプラインを抜けている。そし
て,条件コード処理判定コードのレジスタ107〜11
1の各値は0である。分岐命令判定コードが処理されて
いるレジスタ113の値は1であるからアンド回路12
7より1が出力され,条件コードが確定したことを示
す。その信号に従って,条件分岐の成否を行うことによ
り,条件付分岐命令がパイプラインの途中のサイクルに
おいて分岐成否の判定を行い,条件付分岐判断を高速で
きる(特開昭52−130256号公報参照)。
【0011】しかし,上記従来の方式においては,たと
え条件コード設定命令がTサイクルで生成されるような
ものでも,Wサイクルの処理を終了してからでなけれ
ば,条件付分岐の成否の判定を行うことができず,条件
付分岐命令の成否判断の高速化という点では不十分なも
のであった。
【0012】図12に,条件コード設定命令がパイプラ
インの最終サイクルに達する以前において,条件コード
を確定できる条件付分岐命令の処理方式(2)を示す。
図は,条件コード設定命令が6サイクルのパイプライン
において,条件コードを設定する場合を示す。
【0013】図において,140〜145はパイプライ
ンにおけるDサイクル〜Wサイクルである。146はW
サイクルの結果を格納する各種レジスタである。147
はAサイクルにおいて生成された条件コードを格納する
レジスタ,148はEサイクルにおいて生成された条件
コードを格納するレジスタである。149はAサイクル
において条件コードが確定したことを示すコードを格納
するレジスタである(0で条件コード確定,1で条件コ
ード未確定),150はEサイクルにおいて条件コード
が確定したことを示すコードを格納するレジスタである
(0で条件コード確定,1で条件コード未確定),15
1は分岐判定制御回路であって,生成された条件コード
をレジスタ147もくはレジスタ148より取り出し,
条件確定コードをレジスタ149もしくはレジスタ15
0より取り出すものである。152はAサイクルもしく
はEサイクルにおいて生成された条件コードを入力する
オア回路,153はAステーシもしくはEサイクルにお
いて生成された条件確定コードを入力するオア回路であ
る。154は分岐判定回路であって,分岐判定制御回路
151の出力に基づいて条件付命令の分岐成否の判断を
行うものである。
【0014】図12の構成の動作を説明する。図示の構
成において,条件付分岐命令の命令に続く後続命令とし
て,例えば,条件不成立の場合の命令を命令ストリーム
としてパイプラインに投入されているとする。そして,
条件付分岐命令の直前にEサイクルで条件コードを生成
する条件コード設定命令があるとする。条件コード設定
命令がEサイクルにおいて処理された時点で条件コード
が確定し,条件コードレジスタ148に条件コードが書
き込まれる。同時に、条件確定コード1が条件確定コー
ド150に書き込まれる。その結果は分岐判定回路15
4に送られ,条件コードが分岐条件と比較されて分岐の
成否が判定される。その結果,分岐成立であれば,条件
付分岐命令の後続の命令がキャンセルされ,同時に,分
岐成立先の命令に処理が移行する。分岐不成立の場合に
は,後続の命令が実行される(特公平2−13333
公報参照)。
【0015】このように,条件コードが生成された後の
早い時期に分岐成否が決定されるが,従来の構成では,
条件確定コードを固定された手段で設けていた。従っ
て,条件付分岐命令の後続命令が条件コード設定命令の
場合,条件付分岐命令の直前の条件コード設定命令が生
成した条件コードによる分岐成否の判定前に,後続の条
件コード設定命令により,条件確定コードが書き換えら
れてしまう場合がある。そのため,条件付分岐命令の分
岐成否の決定以前に後続命令ストリームをパイプライン
に投入することができなかった。
【0016】
【発明が解決しようとする課題】上記のように,従来の
条件付分岐命令の制御方式では高速化は不十分なもので
あった。本発明は,条件付分岐命令の後続命令ストリー
ムをパイプラインに投入できるとともに,条件コード生
成と同時に分岐成否を判定できるようにして,パイプラ
イン処理を高速化することを目的とする。
【0017】
【課題を解決するための手段】従来は条件コードを生成
するサイクルにおける条件コードの生成を示す情報は0
か1だけで表していたのに対し,本発明では条件コード
設定命令を実行する際にどのサイクルにおいて条件コー
ドを生成するかを示す情報を条件コード設定命令に付属
させ,タグ情報として流すようにした。パイプライン処
理においては任意のサイクルにおいて,自フロー以前に
実行されるフローと自フロー以降に実行されるフローを
区別することができる。本発明は,その原理に基づいて
各サイクルにおける自フロー以前のタグ情報を参照し
て,条件コード確定を早期に検出するようにした。
【0018】前述の図10により,この原理を説明す
る。例えば,図における5フロー目のTサイクルでは,
B,E,Wサイクルのパイプラインタグを参照すること
により,Bサイクルでは,E,Wサイクルのパイプライ
ンタグを参照することにより,自フロー以前のフローの
条件コード設定命令の条件コード確定サイクルを参照す
ることができる。そして,条件付分岐命令の各サイクル
毎に条件コード設定サイクルを指定するパイプラインタ
グを参照することにより,複数サイクルにおいて条件コ
ード設定命令がなされている場合にも,分岐条件が確定
しているかどうかを,参照すべき条件コードを選択して
分岐成立,不成立を判定することが可能である。
【0019】図1に本発明の原理図を示す。図は6サイ
クルの場合を例として示し,各サイクルにおける機能は
の場合と同様であるので説明は省略する。条件コー
ド設定命令における条件コードの生成は,条件コード設
定命令の種類に応じてWサイクルの他,Aサイクル,
サイクル,Eサイクルにおいて生成されるものとする。
【0020】図において,1〜6はパイプラインにおけ
る各サイクルのステージである(以後単にサイクルと称
する)。7はWサイクルの結果を格納する各種レジスタ
である。8はAサイクル(2)において生成された条件
コードを一時格納する条件コード取り出しレジスタであ
る。9はサイクル(4)において生成された条件コー
ドを一時格納する条件コード取り出しレジスタである。
10はEサイクル(5)において生成された条件コード
を一時格納する条件コード取り出しレジスタである。1
1は10の内容をWサイクル以降保持する条件コード取
り出しレジスタである。12は命令に付属するタグ情報
を格納するレジスタであって,例として,2ビットで表
されるCC−SET−0,CC−SET−1,CC−S
ET−2,CC−SET−3の4通りの情報である。C
C−SET−0は条件コードを変更しない命令を示
し,CC−SET−1はレジスタオペランド間の加
算,減算等を行う命令で,Aサイクルにおいて生成さ
れ,Tサイクルで条件コードが確定される命令を示す。
CC−SET−2は,即値オペランド(命令に含まれて
いる演算対象のデータ)とメモリオペランドとの論理演
算,比較等を行う命令で,Eサイクルにおいて条件コー
ドを確定する命令であることを示す。CC−SET−3
Wサイクルにおいて条件コードを生成する上記以外
の命令を示す。13〜17はタグ情報を格納するタグレ
ジスタ(パイプラインタグ)であって,それぞれサイク
ルD(1)〜サイクルW(6)において処理されている
命令のタグ情報を格納する。そして,命令が各サイクル
を移動するにともない対応するパイプラインタグを移動
する。
【0021】18は分岐判定制御部であって各サイクル
のタグ情報に基づいて,対象とする条件コードが確定し
たことを判定し,同時に分岐成否を判定するものであ
る。20は条件コード選択回路であって,各サイクルの
タグ情報に基づいて条件コードの確定したことおよび条
件コードを生成したサイクルを検出するものである。2
1は分岐条件判定回路であって選択された条件コードと
分岐条件を比較して条件付分岐命令の条件の成否(条件
成立,条件不成立)を判定する回路である。22は条件
コード選択回路20の判定したサイクルで生成された条
件コードを選択するセレクタである。23は選択された
条件コードとマスク(分岐成否を決定するための基準と
なる値)を比較し分岐の成立もしくは不成立を判定する
ための比較器である。
【0022】
【作用】図1の動作を説明する。例えば,条件分岐命令
がTサイクル実行中であるとする。このとき,条件コー
ドが生成されているかどうかB,E,Wサイクルのタグ
を参照するだけで行うことができる。即ち,Bサイクル
にBサイクルで条件コードを確定する条件コード設定命
令が存在する場合(B−CC−SETが1),もしくは
Bサイクルに条件コードを変更する命令が存在せずEサ
イクルにサイクルで条件コードを生成する条件コード
設定命令が存在する場合(E−CC−SETが1でB−
CC−SETが0)には条件コード選択回路20の出力
は,分岐判定制御部18のセレクタ22を制御して,条
件コード取り出しレジスタに格納されているBサイク
ルにおいて生成された条件コードを取り出す。そして,
比較器23においてマスクと比較して分岐の成立もしく
は不成立を決定する。
【0023】上記例では,条件付分岐命令がTサイクル
にあり,条件コード取り出しレジスタに格納されてい
る条件コードを取り出す場合についてのものであるが,
条件コード選択回路20は,図示の回路構成以外の構成
を備えていて,他のサイクルにおいて生成された条件コ
ードを格納する条件コード取り出しレジスタ9〜10を
選択することも可能である。また,上記説明では,条件
付分岐命令がTサイクルにある場合について考えたが,
条件コード選択回路20は条件付分岐命令が他のサイク
ルに有る場合にも,必要な条件コードを選択するための
回路を備えている。本発明によれば,条件付分岐命令は
必ず先行する条件コード設定命令の生成した条件コード
を参照するようになるので,後続命令として条件コード
設定命令をパイプラインに投入しても誤動作することは
ない。
【0024】
【実施例】図2〜図8により本発明の実施例を説明す
る。図2は本発明の実施例構成を示す。図において,G
Rスタック,TLB,LBS,演算器,各種レジスタ,
アドレス加算器203,レジスタ201〜202,レジ
スタ204〜208は前述の図9におけるものと同様で
あるので説明は省略する。レジスタ209はアドレス加
算器203で生成された条件コードを保持する。その条
件コードは信号線214により分岐判定制御部(後述)
に送られる。LBSより取り出されたメモリオペランド
の一部はレジスタ212に保持される。その内容は信号
線217により分岐判定制御部に送られる。210はE
サイクルにおいて演算器により生成される条件コードが
保持される。Eサイクルにおいてはすべての条件コード
設定命令の条件コードが生成されレジスタ210にセッ
トされる。レジスタ210の内容は条件コード設定命令
のWサイクルにおいてレジスタ211に格納される。レ
ジスタ211は条件コード設定命令実行時のみ更新さ
れ,レジスタ211の内容は信号線216により分岐判
定制御部に送られる。
【0025】メモリオペランドアドレスを生成するアド
レス加算器203でレジスタオペランド間の加算,減算
により生成された条件コードはレジスタ209に保持さ
れる。これらの命令ではAサイクル,Eサイクルにおい
て条件コード設定が可能であり,その結果は信号線21
4,215により分岐判定制御部に送られる。さらに,
即値オペラントとメモリオペランドとの論理演算,比較
などを行う条件コードを設定する命令においても複数の
サイクルにおいて条件コード設定可能であり,レジスタ
212から信号線217を介してメモリオペランドのデ
ータの一部が分岐判定制御部に送られる(即値オペラン
ドは,命令コードの中にオペランドが指定されているも
ので通常8ビットの長さを有するものである)。
【0026】220〜225は命令に付属するタグ情報
を格納するレジスタである。命令が処理サイクルを移行
するにともないタグ情報も各レジスタの間で移行して行
く。各レジスタの内容は分岐判定制御部に送られる。2
30は分岐判定制御部であって,対象とする条件コード
が確定したことと,対象とする条件コードを選択するも
のである。231は条件コード選択回路,232は分岐
判定回路である。
【0027】図3は本発明のパイプラインタグと条件付
分岐命令の構成を示す。図においてレジスタ230〜2
34はそれぞれパイプラインにおけるAサイクル〜Wサ
イクルに対応するパイプラインタグ(レジスタ)であ
る。235〜238はデコーダであって,それぞれに接
続されたパイプラインタグに格納されるタグ情報をデコ
ードして分岐判定制御部に出力するものである。タグ情
報CC−SETは2ビットで構成され,デコードされて
使用される。T−CC−SET−0,T−CC−SET
−1,T−CC−SET−2,T−CC−SET−3は
それぞれ,Tサイクルのパイプラインタグに格納された
タグ情報CC−SET−0,CC−SET−1,CC−
SET−2,CC−SET−3であることを示す。同様
に,B−CC−SET−0,B−CC−SET−1,・
・・・・,E−CC−SET−0,・・・・,W−CC
−SET−0,・・・,W−CC−SET−3はそれぞ
れBサイクル,Eサイクル,Wサイクルのパイプライン
タグに格納されたタグ情報を示す。各タグ情報は,それ
ぞれが付随する命令が各サイクル(D〜W)を移行する
のに伴って各パイプラインタグ(230〜234)を移
行する。
【0028】240は条件付分岐命令の構成を示す。ビ
ット0〜ビット7により条件付分岐命令であることを示
すコードを与える。ビット8〜ビット11は条件コード
と比較するためのコードを与えるマスクフィールドであ
る。X,Bで指定されたレジスタの内容とD(12ビッ
ト)との加算の結果が分岐先命令アドレスを与える。マ
スクフィールドは4ビットのマスクとして使用される。
4個の条件コード(0,1,2,3)は,マスク4個の
ビットに対して図における245に示すように対応す
る。
【0029】生成された条件コードとマスクビットを比
較し,一致すれば分岐が行われ,一致しなければパイプ
ラインに投入された後続命令ストリームに従って処理が
進行される。 命令レジスタのビット8〜ビット11ま
での4ビットがタグとしてパイプラインに流される(B
RANCH MASK信号)。命令レジスタのビット0
〜ビット7までの8ビットがデコードされて「47(H
EX)」をパイプラインに流す(CONDITION
BRACH信号)。
【0030】図4は分岐判定制御部における条件コード
選択回路の実施例である(必要に応じて図2を参照す
る)。図は条件付分岐命令がAサイクルにある場合に,
条件コードが確定したこと示す信号を出力するとともに
選択すべき条件コードを取り出す信号を出力するための
回路である。図示のようにパイプラインタグの出力を入
力するアンド回路300〜305およびオア回路30
2,オア回路306の出力およびアンド回路303〜3
05をの出力を入力するオア回路306,オア回路30
6の出力とAサイクルにおける命令が条件付分岐命令で
あることを示す信号(A−CONDITION−BRA
NCH)を入力し、一致がとれた場合に,Aサイクルの
条件付分岐命令の条件コードが確定したことを示す信号
(A−BR−CHECK)を出力するアンド回路307
により構成される。401〜404はそれぞれ,オア回
路302,アンド回路303,アンド回路304,アン
ド回路305の出力信号を示す。401は分岐条件が確
定したことを示すとともにTサイクルにおいて生成され
た条件コード(図2における214)を選択するための
信号線である。同様に,402〜403はそれぞれEサ
イクル,Wサイクルにおいて生成された条件コードを選
択するための信号である。404はすでにパイプライン
を抜けてしまった命令によりセットされた条件コード
(216)を選択するための信号である。但し,402
はメモリオペランド(217)を選択し,Eサイクルの
即値(E−IMMEDIAT−OPERAND(後
述))とともに条件判定制御部における演算器(後述)
における論理和,論理積等を行い条件コードを生成する
ようにする。なおアンド回路304に入力される¬W−
CC−SET−0はCC−SET−1〜CC−SET−
3のいずれであっても条件コードを書き換えることを表
す信号である(W−CC−SET−0の否定)。
【0031】次に401の信号生成について説明する。
条件付分岐命令処理中に,Tサイクルにおいて生成され
条件コードを選択してよい場合は,Tサイクルに条件
コード214をセットする命令が存在する場合(Tサイ
クルのT−CC−SET−1がオンの場合),Tサイク
ルに条件コードを設定する命令がなくBサイクルに条件
コード214をセットする命令が存在する場合(T−C
C−SET−0,B−CC−SET−1がオンの場
合),TサイクルおよびBサイクルに条件コードをセッ
トする命令がなくてEサイクルに条件コード214をセ
ットする命令がある場合(T−CC−SET−0,B−
CC−SET−0,E−CC−SET−1がオンの場
合)である。アンド回路300〜301およびオア回路
302によりタグ情報の各値が以上の条件を満たす場合
に信号401からオンの信号が出力される。またオア回
路306およびアンド回路307を介してAサイクルが
条件付分岐命令であることを示す信号との論理積をと
り,条件付分岐命令のAサイクルにおいて分岐条件が確
定したことを示すA−BRACH−CHECKが出力
される。このA−BRACH−CHECKはパイプラ
インの状態を管理する回路に送られ命令の流れの切り換
え制御を行う。
【0032】同様に,アンド回路303により,Tサイ
クルおよびBサイクルに条件コードを変更する命令がな
くEサイクルにEサイクルにおいて条件コードが確定す
る条件コード設定命令が存在する場合(T−CC−SE
T−0,B−CC−SET−0およびE−CC−SET
−2がオン)に条件コード217を選択するための信号
402が出力される。同様に,Wサイクルにおいて条件
コードが確定するのは,Tサイクル,Bサイクル,Eサ
イクルに条件コードを書換える命令がなく(T−CC−
SET−0,B−CC−SET−0,E−CC−SET
−0がオン),Wサイクルにおいて条件コードがセット
される場合(¬W−CC−SET−0がオン)に限られ
るので,図示のアンド回路304においてサイクルで
生成される条件コード215を選択する信号が生成され
る。
【0033】さらに,パイプラインを抜けた条件コード
設定命令により生成された条件コード(216)の選択
はT,B,E,Wの各サイクルに条件コード設定命令が
存在しない場合(T−CC−SET−0,B−CC−S
ET−0,E−CC−SET−0,W−CC−SET−
0)に限られるので,図示のアンド回路305によりそ
の選択信号を生成する。
【0034】図5は分岐判定回路の実施例を示す(必要
に応じて図2,図3を参照する)。図において,406
は演算器であって,メモリオペランド217(図2にお
けるレジスタ212に保持されている条件コード)とE
サイクルにおける即値オペランド(E−IMMEDIA
T−OPERAND)とにより論理和,論理積,排他的
論理和,および比較等を行うものである。405はセレ
クタであって,図4における分岐判定回路の結果に基づ
いて,信号214,演算器406,信号215,信号2
16を選択するためのものである。図4における条件コ
ード選択回路の出力する信号401,402,403,
404に基づいてそれぞれ信号214,演算器406,
信号215,信号216を選択する。
【0035】407は比較器であって,セレクタで選択
された条件コードとAサイクルにある条件付命令のマス
クの値(A−BRANCH−MASK)を比較し分岐条
件の成立,不成立を判定する。成立の場合にオン,不成
立の場合にオフの信号を出力する。そしてその結果とA
サイクルが条件付分岐命令であることを示す信号(A−
CONDITION−BRANCH)とにより論理積を
とり一致した場合に,Aサイクルにおいて分岐成立を示
す信号(A−TKNがオン)を出力する。分岐不成立の
場合はA−TKNオフの信号を出力する。そして、条件
付分岐命令の後続ストリームが分岐成立側であれば処理
を続行し,分岐不成立であれば,後続命令をキャンセル
して,分岐先命令を実行する。
【0036】図6に条件付分岐命令がTサイクルにある
場合にあって条件コード確定を示す信号を出力するため
の条件コード選択回路の実施例を示す。条件付分岐命令
がTサイクルにある場合に,条件コード確定を判定する
ためには,Bサイクル,Eサイクル,Wサイクルのパイ
プラインタグの情報を参照することにより判定すること
ができる。図示の構成の動作は図4における条件コード
選択回路における動作と,パイプラインタグの参照を
B,E,Wのサイクルにより行うようにした点で異なる
のみあるので,説明は省略する。なお,図において,信
号501〜504はそれぞれ図2における信号214,
217,215,216を選択するための信号である。
【0037】図7に図6の条件コード選択回路の出力に
基づいて分岐成否を判定する分岐判定回路の実施例を示
す。図5の分岐判定回路と構成および動作が同じである
ので説明は省略する。なお、セレクタ505は図6にお
ける条件コード選択回路の出力する信号501〜504
に応じてそれぞれ,信号214,演算器406,信号2
15,信号216を選択する。
【0038】図8(a) ,(b) に実施例のタイムチャート
を示す。図(a) は命令ストリームとしてAR(レジスタ
間の内容を加算することにより条件コードを生成する命
令),C(レジスタオペランドとメモリオペランドとの
比較を行う命令),BC(条件付分岐命令),ARの4
つ命令が連続するストリームについてパイプラインにお
ける処理を示す。第1フローのAR命令はTサイクルに
おいて条件コードを確定できる。第2フローのC命令は
Wサイクルで条件コードが確定する。分岐命令の次のフ
ローには後続命令としてAR命令がパイプラインに投入
される。そして,C命令の条件コードが設定されるサイ
クル7で分岐条件が確定する。BC命令およびその後続
命令ストリームはパイプライン処理をサイクル7まで進
めるとともに,BC命令はそのEサイクルでE−BR−
CHECKをオンにして,分岐成否を決定する。E−B
RANCH−CHECKがオンになった時点でE−TK
N信号がオンかどうかにより後続命令ストリームキャン
セルするかどうか決定する。E−TKNがオンとなった
場合,後続ストリームが分岐成立のとき実行される命令
であれば処理が実行され,分岐不成立のとき実行される
命令であればキャンセルされ,分岐成立の時に実行され
る命令に分岐する。
【0039】図8(b) は,命令ストリームとしてC,A
R,BC,ARの4つの連続するストリームについての
パイプライン処理を示す。第2フローのARはTサイク
ルに条件コードが確定し,BC命令はAサイクルで分岐
成否を判定する。従って,図(b) において,後続命令の
フローにAR命令があるが,BC命令の直前のAR命令
はTサイクルにおいて条件コードを生成するので,BC
命令はAサイクルで分岐成否を判定するので,BC命令
のBサイクルで後続のAR命令の条件コードが生成され
るがBC命令はその条件コードを参照することはない。
【0040】
【発明の効果】本発明によれば,条件付分岐命令のパイ
プライン処理において,先行する条件コード設定命令に
よる条件コードが確定した後の早い時期に条件の成否の
判定ができる。またその条件コードは,条件付分岐命令
の後続命令に条件コード設定命令である場合でも,後続
命令により生成された条件コードが先行する条件付分岐
命令の分岐成否判定に参照されることはないので,条件
付分岐命令を後続命令ストリームとしてパイプラインに
投入することが可能になり,条件付分岐命令のパイプラ
イン処理が高速化する。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の実施例構成を示す図である。
【図3】本発明のパイプラインタグと条件付分岐命令の
構成を示す図である。
【図4】本発明の条件コード選択回路の実施例を示す図
である。
【図5】本発明の分岐判定回路の実施例を示す図であ
る。
【図6】本発明の条件コード選択回路の実施例を示す図
である。
【図7】本発明の分岐判定回路の実施例を示す図であ
る。
【図8】本発明の実施例のタイムチャートを示す図であ
る。
【図9】従来のパイプラインの構成を示す図である。
【図10】従来のパイプラインのフローを示す図であ
る。
【図11】従来のパイプラインにおける分岐命令処理方
式(1)を示す図である。
【図12】従来のパイプラインにおける分岐命令処理方
式(2)を示す図である。
【符号の説明】
1 Dサイクル 2 Aサイクル 3 Tサイクル 4 Bサイクル 5 Eサイクル 6 Wサイクル 7 各種レジスタ 8,9,10,11 条件コード取り出しレジスタ 12 タグ情報 13,14,15,16,17 タグレジスタ 18 分岐判定制御部 20 条件コード選択回路 21 分岐条件判定回路 22 セレクタ 23 比較器。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 条件付分岐命令の分岐成否を判定するた
    めの条件コードを異なる条件コード設定命令に応じて異
    なるサイクルにおいて生成することの可能なパイプライ
    ン処理における分岐命令制御方式において, 条件コード設定命令により生成された条件コードを条件
    コードが生成された時点で一時格納する条件コード取り
    出しレジスタ(8〜11)と, 実行命令が条件コードを変更しない命令であるかもしく
    は条件コードを変更する命令の場合には条件コードを生
    成するサイクルを指定するタグ情報を格納するものであ
    って各サイクルに対応して備えられたタグレジスタ(1
    2〜17)と,上記タグ情報 に基づいて条件コードが確定したことを判
    定するとともに生成された条件コードを格納する条件コ
    ード取り出しレジスタ(8〜11)を選択する分岐判定
    制御部(18)とを備え, 上記タグ情報は命令が各サイクルに移行するのに伴って
    対応するサイクルのタグレジスタ(12〜17)を移行
    し, 分岐判定制御部(18)は,各タグレジスタの上記タグ
    情報に基づいて条件コードの確定を判断するとともに確
    定した条件コードを格納した条件コード取り出しレジス
    タ(8〜11)を選択し,その条件コードを取り出し,
    分岐命令の分岐条件を比較することにより分岐制御の成
    否を決定することを特徴とするパイプライン処理におけ
    る分岐命令制御方式。
JP3031929A 1991-01-31 1991-01-31 パイプラインにおける分岐命令制御方式 Expired - Fee Related JP2580396B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP3031929A JP2580396B2 (ja) 1991-01-31 1991-01-31 パイプラインにおける分岐命令制御方式
CA002060137A CA2060137C (en) 1991-01-31 1992-01-28 Circuit for executing conditional branch instructions in pipeline process
EP92300756A EP0497579B1 (en) 1991-01-31 1992-01-29 Circuit for executing conditional branch instructions in a pipelined processor
DE69230230T DE69230230T2 (de) 1991-01-31 1992-01-29 Schaltungsanordnung zur Ausführung von bedingten Verzweigungsbefehlen in einem Pipelineprozessor
AU10581/92A AU634681B2 (en) 1991-01-31 1992-01-31 Circuit for executing conditional branch instructions in pipeline process
US07/828,701 US5408620A (en) 1991-01-31 1992-01-31 Circuit for executing conditional branch instructions in pipeline process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3031929A JP2580396B2 (ja) 1991-01-31 1991-01-31 パイプラインにおける分岐命令制御方式

Publications (2)

Publication Number Publication Date
JPH04245539A JPH04245539A (ja) 1992-09-02
JP2580396B2 true JP2580396B2 (ja) 1997-02-12

Family

ID=12344668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3031929A Expired - Fee Related JP2580396B2 (ja) 1991-01-31 1991-01-31 パイプラインにおける分岐命令制御方式

Country Status (6)

Country Link
US (1) US5408620A (ja)
EP (1) EP0497579B1 (ja)
JP (1) JP2580396B2 (ja)
AU (1) AU634681B2 (ja)
CA (1) CA2060137C (ja)
DE (1) DE69230230T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11651179B2 (en) 2017-02-20 2023-05-16 3M Innovative Properties Company Optical articles and systems interacting with the same
US11682185B2 (en) 2017-09-27 2023-06-20 3M Innovative Properties Company Personal protective equipment management system using optical patterns for equipment and safety monitoring

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603045A (en) * 1994-12-16 1997-02-11 Vlsi Technology, Inc. Microprocessor system having instruction cache with reserved branch target section
EP0777874B1 (en) * 1995-06-27 2003-03-12 Koninklijke Philips Electronics N.V. Pipelined data processing circuit
US5999738A (en) * 1996-11-27 1999-12-07 Hewlett-Packard Company Flexible scheduling of non-speculative instructions
US6430682B1 (en) * 1998-09-11 2002-08-06 Agere Systems Guardian Corp. Reliable branch predictions for real-time applications
US6968545B1 (en) * 2000-09-11 2005-11-22 Agilent Technologies, Inc. Method and apparatus for no-latency conditional branching
US6981131B2 (en) * 2002-09-04 2005-12-27 Arm Limited Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction
US9652242B2 (en) * 2012-05-02 2017-05-16 Apple Inc. Apparatus for predicate calculation in processor instruction set

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3875391A (en) * 1973-11-02 1975-04-01 Raytheon Co Pipeline signal processor
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
JPS52130256A (en) * 1976-04-26 1977-11-01 Hitachi Ltd Information processing unit
GB1527289A (en) * 1976-08-17 1978-10-04 Int Computers Ltd Data processing systems
JPS58158745A (ja) * 1982-03-12 1983-09-21 Nec Corp パイプライン制御形情報処理装置
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
ATE57582T1 (de) * 1986-03-21 1990-11-15 Siemens Ag Anordnung zur bearbeitung von sprungbefehlen innach dem fliessbandprinzip arbeitenden datenverarbeitungsanlagen.
JPH0213333A (ja) * 1988-06-30 1990-01-17 Minoru Sangyo Kk 水耕栽培用の定植パネル
DE68927218T2 (de) * 1988-10-18 1997-02-06 Hewlett Packard Co Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor
EP0400194B1 (de) * 1989-06-02 1995-08-23 Siemens Nixdorf Informationssysteme Aktiengesellschaft Verfahren und Anordnung zur Bearbeitung von Sprungbefehlen in nach dem Fliessbandprinzip arbeitenden Datenverarbeitungsanlagen

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11651179B2 (en) 2017-02-20 2023-05-16 3M Innovative Properties Company Optical articles and systems interacting with the same
US11682185B2 (en) 2017-09-27 2023-06-20 3M Innovative Properties Company Personal protective equipment management system using optical patterns for equipment and safety monitoring

Also Published As

Publication number Publication date
JPH04245539A (ja) 1992-09-02
AU634681B2 (en) 1993-02-25
AU1058192A (en) 1993-02-25
EP0497579B1 (en) 1999-11-03
DE69230230T2 (de) 2000-02-17
EP0497579A3 (en) 1994-07-13
EP0497579A2 (en) 1992-08-05
CA2060137A1 (en) 1992-08-01
DE69230230D1 (de) 1999-12-09
US5408620A (en) 1995-04-18
CA2060137C (en) 1997-09-30

Similar Documents

Publication Publication Date Title
JPH0540627A (ja) 並列演算処理装置
US4739470A (en) Data processing system
EP0094535B1 (en) Pipe-line data processing system
JP2580396B2 (ja) パイプラインにおける分岐命令制御方式
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
JP4025493B2 (ja) 適切な発行先に命令を発行する命令発行装置
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
US5479620A (en) Control unit modifying micro instructions for one cycle execution
JP3532835B2 (ja) データ処理装置およびプログラム変換装置
KR920006770B1 (ko) 명령을 페치(fetch)하기 위한 제어 시스템
US6789185B1 (en) Instruction control apparatus and method using micro program
JP3769445B2 (ja) データ駆動型情報処理装置
JP2553728B2 (ja) 演算装置
JP3335735B2 (ja) 演算処理装置
JP2001306321A (ja) プロセッサ
JP2778610B2 (ja) パイプライン演算制御方法およびシステム
JP2591325B2 (ja) 分岐制御装置
JPH0991139A (ja) 情報処理装置
JP2919184B2 (ja) パイプライン処理を行う情報処理装置
JPH06332698A (ja) 情報処理装置
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
JPH03255530A (ja) 並列命令フェッチ機構
JPH1031618A (ja) データ変換方式
JPH06332701A (ja) 情報処理装置
JP2629479B2 (ja) 情報処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960820

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees