JPH02255918A - 命令取出し制御方式 - Google Patents

命令取出し制御方式

Info

Publication number
JPH02255918A
JPH02255918A JP1334893A JP33489389A JPH02255918A JP H02255918 A JPH02255918 A JP H02255918A JP 1334893 A JP1334893 A JP 1334893A JP 33489389 A JP33489389 A JP 33489389A JP H02255918 A JPH02255918 A JP H02255918A
Authority
JP
Japan
Prior art keywords
instruction
branch
cycle
register
determination
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.)
Pending
Application number
JP1334893A
Other languages
English (en)
Inventor
Tsuyoshi Mori
森 強
Masayuki Okada
誠之 岡田
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 JP1334893A priority Critical patent/JPH02255918A/ja
Publication of JPH02255918A publication Critical patent/JPH02255918A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概  要〕 分岐命令の実行による分岐判定サイクルに先立って、そ
の先立つサイクルにおいて条件判定を行うことができる
かを判定し、予め分岐判定を行う命令取出し制御方式に
関し、 分岐命令の実行に際し、該分岐命令が無条件分岐命令あ
るいは分岐の予測が可能な条件分岐命令である場合に、
効果的に分岐先命令に引続く命令群の先取りを行い得る
命令取出し制御方式を提供することを目的とし、 命令の実行及び命令の先取りをパイプライン方式で行い
、かつ、分岐命令に対しては、該分岐命令の分岐先命令
の取り出しを分岐判定サイクルに先行して行う計算機シ
ステムにおいて、上記分岐命令の実行の際には、そのパ
イプライン中の分岐判定サイクルに先立つサイクルにお
いて条件判定を行うことができることを検出し、かつ、
分岐判定を行う第1の分岐判定手段と、該第1の分岐判
定手段により分岐成立と判断される場合には、分岐命令
のパイプライン中の分岐判定サイクルを待つことなしに
、上記分岐先命令に引続く命令群の先取りを開始する手
段とを設けるように構成する。
〔産業上の利用分野〕
本発明は、lサイクル・パイプライン方式を用いた計算
機システムにおける分岐命令の実行の際の、分岐先命令
に引続く命令群の取出し制御方式に関し、特に分岐命令
の実行による分岐判定サイクルに先立って、その先立つ
サイクルにおいて条件判定を行うことができるかを判定
し、予め分岐判定を行う命令取出し制御方式に関する。
〔従来の技術〕
第10図は従来技術の1サイクル・パイプライン方式に
おける分岐命令の実行について説明する図を示しており
、図中の最上部の数字(1)〜Q21はマシンサイクル
の各タイミングを表し、各命令中の処理区分記号り、A
、T、B、E、Wはパイプライン制御中の各処理ステー
ト(以下、「サイクル」または「ステージjともいう)
を表している。
すなわち、Dはデコード・サイクルであり、実行すべき
命令を解読し、Aはアドレス計算サイクルであり、分岐
先命令の取出しのためのアドレス計算が行われ、Tはア
ドレス変換サイクルであり、論理アドレスを実アドレス
に変換し、Bは分岐先命令取出しサイクル、Eは分岐判
定サイクルであり、分岐条件の成立・不成立の判定が行
われ、Wは演算結果格納サイクルを表し、良く知られた
ものである。
また、パイプライン方式においては、実行される命令に
ついて先取り(ブリフェッチ)が行われるが、この命令
の先取りについても、通常パイプライン方式で処理され
ており、図面下方の命令先取りパイプライン中の期間区
分記号IA、ET。
IBは、分岐命令に引続く命令の先取りの為の処理サイ
クル、IA串、JT”、IB”は分岐先命令に引続く命
令の先取りのための処理サイクルを表している(各処理
サイクルの機能は第11図で説明される)。例えば、処
理IPPで示される命令先取りパイプラインのアドレス
計算サイクル■A、アドレス変換サイクルIT、及びバ
ッファからの取り出しサイクルIBは、分岐命令Bの分
岐が成立しない場合には命舘[株]+3をフェッチする
ためのものである。
また、図中、最下部の先取りされる命令の種別を示す記
号r Next Jは分岐命令に引続く部分の命令(こ
れをrNext側」ともいう)が先取りされることを示
し、r Target Jは分岐先命令に引続(部分の
命令(これをrTarget側」ともいう)が先取りさ
れることを示しており、’ (Next) Jは分岐命
令に引続く命令が先取りされる場合とされない場合が選
択されることを示している。
第10図に示した例では、分岐命憧がまず実行され、該
分岐命枢ルに引続く命令群■、■±1、■+2、■+3
が順次実行され、タイミング(5)の段階で、分岐命領
ルの分岐判定サイクル(Eステート)での分岐判定によ
り分岐条件が成立し、分岐先命令■、および該分岐先命
令に続(命令群■+1.■+2.・・・が実行される場
合の例を示している。また、分岐命令■のBステートで
行われる分岐先命令のフェッチが、1回のフェッチで取
り出し得た命令が分岐先命令■、■+1、■+2の3個
の場合の例であり、分岐命罎のEステートでの分岐判定
結果により分岐が行われ、分岐先命令T、■+1、■+
2の実行の開始が円滑に行われる場合の例である。
ところで、パイプライン方式においては、前述の如く、
命令の先取りがパイプラインとして処理されるため、そ
のフェッチ・ア・ドレスの決定については、第11図に
示すように、実際に命令の先取りを行う段階IBよりも
2サイクル前でアドレス演算IAがなされる必要がある
。第11図は、命令先取りパイプラインについて説明す
る図を示しており、図中の期間区分記号、IA、IT、
IBは各処理サイクルを示し、IAはアドレス計算サイ
クル(Adrs)、ITはアドレス変換サイクル(TL
B/TAG )、IBは命令取り出しサイク/I、’(
fetch )を表している。
すなわち、一般に分岐命令に限らず、先取りされるべき
命令Next 1 、Next 2に対し、実際に命令
がフェッチされるIBサイクルの2サイクル前のIAサ
イクルにおいて、既にアドレスが決定されている必要が
ある。
(発明が解決しようとする課題〕 いま、パイプライン処理が第1O図に示した形態で実行
され、かつ、命令の先取りが第11図で示した形態で実
行される場合に、第10図中の分岐命令■の分岐判定サ
イクル(Eステート)と同じサイクル(図中のタイミン
グ(5))、または次のサイクル(図中のタイミング(
6)、 (7)の部分)で行う命令の先取りを、分岐先
命令■に続く部分(”Target、側」)に関して行
うか、分岐命令■に続(部分(’Next側」)に関し
て行うかが問題となる。
例えば、第12図の分岐先命令の開始時にTarget
側命令フェッチがない場合の例(その1)に示されるよ
うに、分岐命輯の分岐判定サイクル(Eステート)での
分岐条件が成立し、かつ、分岐命令中のBステート(図
中のタイミング(4)の時点)で分岐先の1マシン命令
のTのみがフェッチされた場合、タイミング(5)では
該分岐先命令■の実行は可能であるが、この時、Tar
get側の命令■十1はまだフェッチされていないため
、タイミング(6)では該命令■+1の実行を開始する
ことができなくなる。
この問題を解決するためには、分岐命令■のBステート
で分岐先命令■と共に分岐先命令に引き続く命令■+1
、■+2等もフェッチしてしまう手段が考えられるが、
この場合でも、1回でフェッチできる命令量は中央処理
装置(CPU)の構成方法、及び命令長にもよるが、通
常せいぜい1〜2命令長であり、例えば、第13図の分
岐先命令の開始時にTarget側命令フェッチがない
場合の例(その2)に示すように、分岐先台く及び■+
1の2つの命令力5フェッチされた場合でも、タイミン
グ(5)、 (6)でTarget側の命令■+2のフ
ェッチが行われないため、タイミング(7)で命約+2
の実行が開始できず、中央処理装置(CPU)は実行す
べき命令のフェッチ待ち状態に陥ることとなる。
これらの問題を解決するためには、例えば、第13図に
おいて、タイミング(6)でTarget側の命令■+
2のフェッチを行う為には、少なくともタイミング(4
)の時点でそのフェッチ・アドレスを決定する必要があ
る。この決定には分岐命憧のAステートでのアドレス計
算の結果を用いる為、あえて分岐条件の成立/不成立を
決定するEサイクル迄待つ必要はないともいえる。しか
しなから、Target側の命令のフェッチを起動した
場合には、その後分岐命令に続く部分の命令フェッチに
切り替えるには余分なハードウェアの追加が必要となる
すなわち、分岐先命令アドレスを保持し、かつ、それに
続く部分の命令フェッチを行った場合にこれを更新する
手段すなわち分岐先命令に引き続く命令のアドレスの計
算手段が、Next側の分岐命令に引き続く命令のアド
レス計算手段とは別に必要となる。
分岐命令の代表的なものに演算命令の実行に伴って更新
されるフラグ群(あるいは条件コード)の値を判定する
条件分岐命令がある。
この条件分岐命令の直前に演算命令があり、かつ、その
演算命令のEステートでフラグ群が更新されるとすると
、少なくとも分岐命令のEステートまでは分岐判定を行
うことができない。これは演算命令におけるフラグ群の
更新は、通常演算サイクル以降となる為である。
しかし、直前に演算命令が実行されないケースでは、分
岐命令の本来の判定サイクル(ここではEサイクル)を
待つことなく判定を行うことができる。
一方、分岐命令の中には無条件で分岐するものが存在し
、それは分岐命令の命令コードなどで判ることが多い。
例えば、市販されるあるシステムでは、BAL(Bra
nch and Ltnk ) 、B A S (Br
anch and 5ave)命令は無条件命令である
が、これは命令コードで判別できるし、また、B C(
Branch on Condition )命令は条
件分岐命令であるが、その命令コードのビット8〜11
がX’F’(16進数)でビット12〜15がX′0′
でない場合には無条件に分岐し、またビット8〜11、
または、ビット12〜15がX′0′の場合には分岐し
ない。
このような場合には、分岐条件の成立/不成立に係わら
ず、無条件に分岐するものとして、分岐先命令に引続く
命令群の取り出しへ制御を移動するのが効果的である。
すなわち、これはバッファメモリ15の命令■の入って
いる先頭アドレスを引き出すために行われる。
本発明は、分岐命令の実行に際し、該分岐命令が無条件
分岐命令あるいは分岐の予測が可能な条件分岐命令であ
る場合に、効果的に分岐先命令に引続く命令群の先取り
を行い得る命令取出し制御方式を提供することを目的と
する。
〔課題を解決するための手段〕
本発明によれば、上述の目的は前記特許請求の範囲に記
載した手段により達成される。
すなわち、本発明は、命令の実行及び命令の先取りをパ
イプライン方式で行い、かつ、分岐命令に対しては、該
分岐命令の分岐先命令の取り出しを分岐判定サイクルに
先行して行う計算機システムにおいて、上記分岐命令の
実行の際には、そのパイプライン中の分岐判定サイクル
に先立って、当該分岐命令中の命令コードから予め分岐
判定を行う手段あるいはその先立つサイクルにおいて条
件判定を行うことができることを検出し、かつ、分岐判
定を行う手段と該分岐判定手段により分岐成立と判断さ
れる場合には、分岐命令のパイプライン中の分岐判定サ
イクルを待つことなしに、上記分岐先命令の引続く命令
群の先取りを開始する手段とを設けた命令取出し制御方
式である。
〔作   用〕
分岐命令の実行にあたって、そのパイプライン中の分岐
条件判定サイクルに先立って、命令先取りの為にその先
立つサイクルにおいて条件判定を行うことができるかを
判定し、分岐判定を行い分岐成立の場合には、例えば分
岐先命令のデコード開始の次のサイクルの時点にその分
岐先命令に続く部分の命令を命令レジスタに対してフェ
ッチし命令デコードをパイプライン的に行い、中央処理
装置(CPU)が命令フェッチの待ち状態に陥ることの
ないようにする。
第1図は、本発明の方式による1サイクル・パイプライ
ンにおける無条件分岐命令の実行について説明する図を
示しており、例えば、分岐先命令■、■+1、■+2が
1命令ずつフェッチされる場合の例である。
同図において、タイミング(2)の段階、すなわち、分
岐白傷■のAステートで分岐先命令■のアドレス計算(
図中の符号aで示す部分)が行われ、また、該分岐命令
■の命令コード等から無条件分岐か否かあるいは分岐が
予測可能か否か分岐判定(図中の符号すで示す部分)が
行われる。分岐成立と判断された場合には、タイミング
(3)の段階で命令先取りパイプラインの処理ステート
■A”(1)でのアドレス計算は、分岐先命令■+1に
対して行い(図中の符号Cで示す部分)、タイミング(
4)の段階の処理ステートIA”″(2)でのアドレス
計算は分岐先命令■+2に対して行う(図中の符号dで
示す部分)。
従って、タイミング(5)の段階では最初のTarge
t側の命令■+1のフェッチを行うことができる為、分
岐先の先頭命令Tに続く命令■+1及びさらにそれに引
続く命令■+2の実行が滞りなく行い得ることとなる。
〔実  施  例〕
第2図は本発明の一実施例を示す図であり、第3図は、
第2図に示す本発明の実施例の一般の命令の実行の場合
について説明する図、第4図は分岐予測ができない場合
の分岐命令の実行の場合について説明する図、第5図は
分岐予測が行える場合の分岐命令の実行の場合について
説明する図である。
第2図の実施例中の、■は命令フェッチに使用される命
令先取リバッファ、2は命令レジスタ、4は通常用命令
及び分岐先用命令を分岐判定回路23によって切り替え
る為のセレクタ、5は本発明による命令コードに対する
分岐判定回路、6は汎用レジスタ群(OR)、7はアド
レス計算の為のレジスタ群(XR,BR,D)、8はア
ドレス加算器、9はアドレス加算器の結果を受は取るレ
ジスタ(LAR#T)、10.11は分岐判定回路5の
結果をパイプラインの進みに合わせて保持するフラグ(
Fl、F2)、12はレジスタ(LAR#T)9の値を
基にアドレス変換を行うアドレス変換回路、13はアド
レス変換回路の結果を保持するレジスタ(PAR#B)
、14はレジスタ(LAR#T)9の値を変換せずに保
持し、1タイミングずらすためのレジスタ(LAR#B
)、15はバッファメモリ、16はレジスタ(PAR#
B)13の値をパイプラインの進みに合わせて1タイミ
ングずらして保持するレジスタ(PAR#E)、18は
レジスタ(PAR#E)16ひ値をパイプラインの進み
に合わせてIタイミングずらして保持するレジスタ(P
 A R#W)、19は演算オペレーションのオペラン
ドをバッファメモリ15から受は取るレジスタ、20は
演算のオペランドを汎用レジスタ群6から受は取るレジ
スタ、21は演算回路、22は演算結果を保持するレジ
スタ、23は従来よりある分岐判定回路、30は命令先
取りアドレスを保持するレジスタ(LIA#A)、31
は先取りした命令長を選択するセレクタであり、このセ
レクタへの入力信号■、■。
■の内、 信号■は通常の命令先取りでのフェッチ量を、信号■は
分岐判定回路5で分岐が決定される分岐命令によってバ
ッファメモリ15から命令先取リバッファ1にフェッチ
されるべき分岐先命令の命令長を、 信号■は分岐判定回路23で分岐が決定される分岐命令
によってバッファメモリ15から命令先取りバッファ1
にフェッチされる分岐先命令の命令長を表し、それぞれ
の信号は図示されない回路で作成される。
32は、セレクタ31と同様に命令フェッチアドレスの
セレクタを表し、セレクタ31の信号■■■に対応して
、 信号■は通常の命令先取りではレジスタ30を、信号■
は分岐判定回路5で分岐が決定される場合にはレジスタ
9を、 信号■は分岐判定回路23で分岐が決定される場合には
レジスタI4を、 それぞれの内容を選択するものである。
33は分岐判定回路5又は分岐判定回路23の結果に基
づいて、選択制御信号を形成する回路であり、分岐判定
回路5及び分岐判定回路23の結果が同時に分岐を示す
場合には分岐判定回!23を優先させる制御を行う。
34はアドレス加算器、35はアドレス加算器の結果を
受は取るレジスタ(L IA#T) 、36はアドレス
変換回路、37はアドレス変換の結果・を受は取るレジ
スタ(P IA#B)を表している。
50はDサイクルにおいて当該命令が条件コードを設定
することをデコートする回路、51は50の出力を保持
するフラグ、52は51の出力を保持するフラグ、53
は52の出力を保持するフラグ、54は53の出力を保
持するフラグ、6゜は条件コードの生成と条件コードを
用いた分岐判定とのタイミングを見るタイミング判定回
路、70は条件コード生成回路、71は条件コードフラ
グである。
なお、便宜上、汎用レジスタ群6及びバッファメモリ1
5がそれぞれ3箇所に示されているがこれらは同一のも
のである。
以下、本実施例における命令実行の状態を、−般の命令
の場合、分岐予測ができない場合の分岐命令の場合、分
岐予測が行える場合の分岐命令の実行の場合のそれぞれ
について項分けして説明する。
また、これらに続いて分岐予測の例について述べる。
(1−の への−′−〇 ム 第3図は、第2図に示す本発明の実施例の一般の命令の
実行の場合について説明する図を示しており、以下、同
図に従い、一般の命令すなわち分岐命令でない命令の実
行について説明する。
この計算機の初期状態においては、最初に実行される命
令■のアドレスが命令先取りアドレスを保持するレジス
タ(LIA#A)30にセット(設定)される(該アド
レス値を図中の符号aで示すMA”とする)。またセレ
クタ31に入力する命令先取りでのフェッチ量の信号■
は“′0′。
であり、これは、バッファメモリ15の命令■の入って
いる領域先頭のアドレスに対応する。またこの時、分岐
判定回路5及び23は共に非分岐を示している。
この状態で、タイミング(1)では、レジスタ(LIA
#A)30の値(図中の°“IA”)に、セレクタ31
で選択された信号■の値“0”′が加算器34によって
加算され、レジスタ(L IA#T)35及びレジスタ
(L IA;#A)30にセットされる(図中の符号す
で示す部分)。すなわち、これはバッファメモリ15の
命令■の入っている先頭アドレスを引き出すために行わ
れる。
続くタイミング(2)では、レジスタ(L IA#T)
35に保持されたアドレス(IA)がアドレス変換回路
36で実アドレスに変換され、レジスタ(PIA#B)
37にその結果(図中の記号“PIA”で示す値)がセ
ットされる(図中の符号Cで示す部分)。
また、同時にこのアドレスによってフェッチされる命令
量が信号■に現れ(図中の記号゛e″で示す値)、加算
器34では次の命令フェッチアドレスの計算が行われ、
その結果(図中の記号°“IA +f ”で示す値)が
レジスタ(LIA#T)35及びレジスタ(LIA#A
)30にセットされる(図中の符号dで示す部分)。す
なわち、これはバッファメモリ15の命令■の入ってい
る領域のアドレスを引き出すために行われる。
命令■、■、■の入っているアドレスIA、IA+l、
IA+2fをアクセスすることになることを次に示す。
以下、命令先取りバッファ1が先取り命令列で充たされ
るまで、この命令フェッチの動作は毎サイクル(あるい
は間隔をおいて)開始され、レジスタ(LIA#A)3
0及びレジスタ(LIA#T)35に保持された値は、
IA+2!、IA+3f、・・・  IA+nlと更進
され、またレジスタ(PIA#B)37に保持される値
も同様に、P IA+I L P rA+22、・・P
IA+nf、と更進されて行く。これによって、バッフ
ァメモリ15の命令■の入っているアドレスからlアド
レスごとに命令を順次読み出していくことにより、パイ
プライン動作が実行される。
次に、タイミング(3)では、レジスタ(P I A#
B)37の値“PIA””によってバッファメモリ15
がアクセスされ、その結果(図中の命令■)が命令先取
りバッファ1にセットされる(図中の符号eで示す部分
)。この時、命令先取りバッファ1が空である(初期状
態ゆえに)場合も、命令先取りバッファ1が空でない場
合も、該命令先取りバッファ1内にその命令の順序に従
って蓄えられ、次のサイクルのはじまりでは、命令レジ
スタ2にセットされている状態となっている。
タイミング(4)では、命令レジスタ2内の命令■のデ
コードが開始される(Dステート)。すなわち、命令レ
ジスタ2の値により汎用レジスタ群(GR)6がアクセ
スされてアドレス計算に必要なレジスタの値をレジスタ
群(XR,BR,D)7にセットする。
本例では、命令コード中のX2部及び82部で示される
レジスタ番号の汎用レジスタの値がレジスタ群(XR,
BR,D)7の内のレジスタ(XR,BR)に読み出さ
れ、また命令コード内の02部がそのままレジスタ群(
XR,BR,D)7内のレジスタ(D)にセットされる
。一般に命令レジスタ2内のアドレスは論理アドレスで
あり、実アドレスへの変換の前処理としてアドレス部の
X2.B2によって基底アドレスを汎用レジスタ6から
引き出し、アドレス部のディスプレイスメントD2をア
ドレス加算部8で加えることが行われている。
そして、デコードが済んだこの命令にかわって次の命令
(図中の命令■)が命令レジスタ2に命令先取りバッフ
ァ1からセットされる。
またもし、開始された命令が分岐命令であれば、その命
令コードから、あるいは直前のパイプラインの状態等か
ら分岐判定回路5で分岐判定を行いその結果をフラグ(
Fl)10にセットする。分岐予測ができる命令でない
場合には分岐判定回路5の出力は“O11であり、フラ
グ(Fl)10へも″0゛′をセットする。なお、分岐
命令の実行については後述する。
次のタイミング(5)では、レジスタ群(XR,ER,
D)7の値によって、オペランドアドレス計算が実行さ
れる(Aステート)。すなわち、レジスタ群(XR,B
R,D)7の値がアドレス加算器8で加算され、該加算
結果(図中で記号“OA■“′で示すイ直)をレジスタ
(LAR;#T)9ヘセツトする。
またフラグ(Fl)10の内容はフラグ(F2)11に
移される。また、このタイミング(5)では、次の命令
■のデコード(Dステート)が開始される。
次のタイミング(6)ではレジスタ(LAR#T)9の
値(OA■)がアドレス変換回路12により変換され、
その結果(図中で記号“’POA■′°で示す値)がレ
ジスタ(PAR#B)13にセットされる(Tステート
)。またレジスタ(LAR#T)9の値(OA■)をそ
のままレジスタ(LAR#B)14へもセットする。
次のタイミング(7)ではレジスタ(PAR#B)13
の値によってバッファメモリ15がアクセスされる(B
ステート)。そのフエツチデークはレジスタ19にセッ
トされる。また同時に汎用レジスタ群6が命令レジスタ
2のアドレス部の一部の内容をBサイクルまで待たせた
信号(図示せず)でアクセスされてその結果がレジスタ
20に七ツトされる。またレジスタ(PAR#B)13
の値(POA■)は、レジスタ(PAR#E)16にセ
ットされる。
次のタイミング(8)は演算サイクル(Eステート)で
あり、レジスタ19及び20の値が演算回路21によっ
て演算され結果がレジスタ22にセットされる。すなわ
ち、バッファメモリ15のデータと汎用レジスタ6のデ
ータとの加算等が行われる。
また、レジスタ(PAR#E)16の値はレジスタ(P
AR#W)18ヘセツトされる。
次のタイミング(9)は格納サイクル(Wステート)で
あり、レジスタ22内の値がバッファメモリ15や汎用
レジスタ群6へ格納される。このときバッファメモリの
アクセスにはレジスタ(PAR#W)18の値(POA
■)が使用される。
以下、同様の手順で、命令■が実行されて行く。
以上、一般命令の実行の場合について説明したが、これ
は命令実行の一例であり、勿論その命令の定義によって
はバッファメモリのアクセスや汎用レジスタ群のアクセ
スなどが行われない場合もある。
次に、条件分岐命令(単に「分岐命令」ともいう)の実
行の場合を第4図によって説明する。
分岐命令の場合でも、第3図で説明した一般命令と同様
に命令フェッチが行われ、図中のタイミング(4)で分
岐命恒ルのデコード(Dステート)が開始される。この
場合、分岐判定回路5は命令コード、あるいは直前のパ
イプラインの状態等から分岐判定を行い、“′0”° 
(つまりこの場合分岐予測不能を示す)を出力する(図
中の符号aで示す部分)。汎用レジスタ群(XR,BR
,D)7及びアドレス加算器8及びアドレス変換回路1
2等によるアドレス計算及びアドレス変換は第3図の場
合と同様な手順で行われ、すなわちタイミング(6)で
は、レジスタ(LAR#T)9の値(図中の符号すで示
す“’TAB“)がアドレス変換され、その結果(PT
AB)がレジスタ(LAR#B)13にセットされる(
図中の符号Cで示す)。
次のタイミング(7)はBステートであるが、このとき
のバッファメモリ15からのフェッチデータは分岐先の
命令であり、これは命令レジスタ2ヘセツトされる。
分岐命枢珍は、そのBステート(タイミング7)で、そ
の分岐判定回路23によって分岐判定が行われる。
この判定結果が非分岐であれば、分岐命令以外の一般の
命令の場合と同様な手順により、命令先取り回路部内の
セレクタ31.32及び命令レジスタ2及びセレクタ4
などは通常の処理を選択する。
一方、分岐が成立した場合には、セレクタ4は分岐先用
命令を選択し、命令レジスタ2にセットし、分岐先台く
の実行が開始される(図中の符号dで示す部分)。すな
わち、このタイミングでの分岐判定の結果、分岐が成立
した場合にはセレクタ4はバッファメモリ15からのフ
ェッチデータを、分岐が不成立の場合には命令先取りバ
ッファ1からの命令をそれぞれ選択して命令レジスタ2
にセットする。
また、分岐命令■に続いて実行が開始されていた命令■
、命令■+1、命Q+2、及び命令■+3はその実行が
中断され、また同様に、その時実行されていた命令先取
リシーケンスも中断される(図中の破線のパイプライン
処理シーケンスで表現される部分)。
また、分岐判定回路23の出力“1′”により(図中の
符号りで示す部分)、セレクタ31は信号■を、セレク
タ32は信号Cすなわちレジスタ(LAR#B)14を
選択する。信号■はタイミング(力でフェッチした分岐
先用命令の長さであり、=れによって加算器34の出力
には、その分岐先命令の次の命令(■+1)のアドレス
が出力されることになる。
該アドレスは、レジスタ(LIA#T)35にセットさ
れ(図中の符号eで示すアドレス“TA十l“)、以下
、このアドレスによる命令フェッチがタイミング(9)
で行われ(図中の符号fで示す部分)、命枢■+1のデ
コードがタイミング00)で開始される(図中の符号g
で示す部分)。
つまり、分岐先命令■のデコード開始サイクルであるタ
イミング(8)とその次の命令(■+1)のデコード開
始サイクルであるタイミング00)との間に1サイクル
だけ命令を開始できないサイクルが生じてしまい、パイ
プライン動作を行うとはいうことができない。
以上説明した分岐予測ができない場合の分岐命令の実行
の場合は、本発明の実施例においても、従来技術の場合
と同様であり、もし、これを改善しようとすれば、分岐
側と通常側の命令フェッチの選択をこの例のアドレス加
算器34の前ではなく、アドレス変換回路36の直前、
あるいはバッツァメモリ15のアクセスの直前などへ変
更する必要があるが、それにはアドレス加算器、あるい
はアドレス変換回路の二重化などが必要となりハードウ
ェア量が著しく増大することになり、不経済である。
−なえる への \  の・−の”人 次に、分岐予測が行える場合の分岐命令の実行の場合に
ついて、第5図を用いて説明する。
同図の場合でも、第3図の場合と同様に、分岐命令■の
命令フェッチが行われて、図中のタイミング(4)で該
分岐命令■のデコードが開始される(図中の符号aで示
す部分)。
この時分岐判定回路5は、命令コード、あるいは直前の
パイプラインの状態等から分岐判定を行い、分岐が成立
すると予測できる場合に“l°゛を、そうでない場合に
“′0′°を出力する。(図中の符合すで示す部分)。
その後、第4図の条件分岐命令の場合と同様に、タイミ
ング(5)、 (6)、 (7)でアドレス計算(Aス
テート)、アドレス変換(Tステート)及び分岐先命令
フェッチ(Bステート)が実行される。
また、タイミング(8〕すなわちEステートでは分岐判
定回路23の出力(図中の符号りで示す部分)によって
セレクタ4が分岐先用命令を選択することによって分岐
先命令■のデコードが開始される(図中の符号Cで示す
部分)。
分岐判定は分岐命令■のDサイクルで行う。分岐命令■
がDサイクルにあるとき分岐判定回路5が″“1″を出
力すると、その出力はフラグ10゜11を経て、タイミ
ング(6)において、セレクタ31は信号■を、セレク
タ32は信号すすなわちレジスタ(LAR#、T)9を
選択する。信号■はタイミング(7)でフェッチされる
であろう分岐先命令の長さを示す信号であ/)(図中の
信号°“A ++で示す値)、信号■とレジスタ(LA
R#T)9の内容(図中の記号“TABで示す値)とを
アドレス加算器34で加算することにより、該加算器3
4の出力には分岐先命令の次の命令のアドレス(TA+
1)が現れることになる。
該アドレスは、レジスタ(LIA#T)35にセットさ
れ(図中の符号eで示す“アドレス加算器1”)、以下
、このアドレスによる命令フェッチがタイミング(8)
で行われ(図中の符号fで示す部分)、命−d+1のデ
コードがタイミング(9)で開始される(図中の符号g
で示す部分)。
これによって分岐予測が行える場合の分岐命令の実行の
場合では分岐先命令とその次の命令の間に無駄な時間を
生じることはない。
なお、タイミング(7)では分岐判定回路23が分岐成
立を示す信号を選択回路33へ送出するが、この判定結
果で条件分岐と同様にセレクタ31及び32を切り替え
ると再度分岐先命令の次の命令の為の命令フェッチが開
始されてしまう為、これを抑止する必要がある。この為
には選択回路33では、分岐判定回路5が“1°゛を出
力した分岐命令によって分岐先命令に続く部分の命令フ
ェッチを起動した場合にはその後の分岐判定で更に命令
フェッチが起動されないようにする必要がある。
3し、これ以外の理由によって分岐判定回路23と分岐
判定回路5とから同時に分岐成立が示された場合には分
岐判定回路23の条件を優先させることになる。これは
分岐判定回路23で判定される命令のほうが分岐判定回
路5で判定される命令よりも先に実行される命令であり
、この分岐命令の分岐が成立した場合には後続の分岐命
令は実行され得ない為である。
第6図において、条件コードを更新する命令であるかど
うかを命令レジスタ2の内容からデコーダ50で解読し
、更新の有無を示すフラグを出力する。またデコーダ5
0′は該当する汎用レジスタの内容を更新する命令であ
るかどうかを命令レジスタ2の内容から解読し、その更
新の有無を示すフラグを出力する。
第6図(a)は分岐判定回路5の具体的回路であり、デ
コーダ命令レジスタ2の出力をデコーダ80でデコード
し、分岐条件か無条件分岐かの解読を行う。さらにゲー
ト82を用いて分岐命令の直前から連続する複数の命令
が条件コードを更新しない命令であることを判定する。
またゲート82′を用いて分岐命令の直前から連続する
複数の命令が該当する汎用レジスタを更新しない命令で
あることを判定する。結果として無条件分岐の場合と条
件分岐であっても予測可能な命令の場合には分岐回路5
の出力を1とする。条件分岐の場合は、フラグ51,5
2,53.54の全部が0のタイミングであることをタ
イミング判定回路60内のアンド回路82で判定する。
すなわちアンド回路82は分岐命令の直前から連続する
複数、例えば4個の命令が条件コードを更新しない命令
であることを判定する。また一方フラグ51’、52’
53’、54’及び55′の全部が0のタイミングであ
ることをタイミング判定回路60’内のアンド回路82
′で判定する。すなわちアンド回路82′は分岐命令の
直前から連続する複数の命令が該当する汎用レジスタの
内容を更新しない命令であることを判定する。条件分岐
であってタイミング判定回路60の出力が1であること
をアンド回rj883で判定し、かつ条件コードフラグ
71と命令レジスタ72の内容とが所定の関係であるこ
とを判定回路8工で判定した場合、またはデコーダ回路
80によって分岐命令が汎用レジスタの値から分岐判定
を行う必要がある分岐命令例えば、カウンタブランチ命
令であると解読し、さらにアンド回路82′によって直
前の複数の命令が汎用レジスタを更新しない命令である
と判定した場合でかつチェック回路81’によって汎用
レジスタの値が例えば16進で”oooo  oooi
”でないことすなわち1以外の時は分岐成功とする。
アンド回路84または84′の出力が1となり、この時
予測可能な分岐命令となる。そしてオア回路85からは
無条件分岐かアンド回路84または84′の出力が1の
時、出力1を生じて分岐判定回路5の出力を1とする。
すなわち本来の分岐判定サイクルに先立つサイクルによ
って分岐判定が可能となる。
この判定回路81は分岐命令内の情報(命令レジスタ2
の出力として表れる)と条件コード(演算回路21の演
算結果が条件コード生成回路70を介して条件コードフ
ラグ71から出力されるもの)から分岐判定を、命令レ
ジスタ2の出力と条件コードとが所定の関係にあった時
に行う回路であり、その論理は通常CPUの命令定義に
よる。
したがって、判定回路81は命令条件コードの組み合わ
せによって分岐命令の分岐を行うかどうかの判定フラグ
(ビット)を出力するものであり、この具体的回路を第
6図(b)について説明する。
分岐命令の命令レジスタ2内のマスクフィールドの例え
ばM+ 、Mz 、M3 、Maの4ビツトと条件コー
ドフラグ71からの条件コードC,,C2からくるパタ
ーンの組み合4せによって、条件が成立する。たとえば
、M4が1であって、C3と02が共に(1,1)のと
きには、アンド回路90と91の出力がともに1となっ
て、OR回路92を介して、出力が1となる。他も同様
で、C1=0、C2=1、かつM2==1、C2=0、
C2=0かつM=1のとき、出力Aが1になり、かつタ
イミング判定回路60の出力が1のときに、分岐判定回
路5の出力1となる。したがって、条件分岐であっても
、条件分岐命令のアドレス部で指定されるアドレスに分
岐することができ、したがって、予測が可能となる。
第6図(C)は判断回路81′の詳細図を示すものであ
りこの判断回路8ビはデコーダ80がその命令がカウン
タブランチ命令であることを判定した時に用いられるも
のであってこの回路については後に詳細に説明する。
次に、選択回路33の一構成例を第7図に示す。
同図において、40.41はフラグ(F2a。
F2b)、42で示すシンボルはANDゲート、43で
示すシンボルはORゲートを表している。
本図に示す分岐判定回路の選択回路33では、第2図中
のフラグ11をさらにフラグ(F2a)、フラグ(F2
b)41に分割し、パイプラインの進みに合わせ、分岐
命令がBステートのときにフラグ40に、Eステートの
ときにフラグ41に設定されるように制御し、第7図の
真理値表に従って、第2図のセレクタ31及び32の選
択信号を住成する。
(4)分岐予測方法の例 (a)命令コードによる 分岐命令の中には、前述の様に命令コードのみから分岐
判定を行えるものが存在する。
この判定は前述の様に無条件分岐命令の検出を行うこと
ができるが、また、命令セットの中に無条件非分岐命令
が含まれている場合には無条件非分岐命令を検出するこ
とができる。
の)フラグ群のセットサイクルと分岐予測サイクルの関
係による これは、分岐判定の材料上なる演算の結果によってセッ
トされるフラグ群の値が、分岐命令の分岐予測サイクル
から、本来の分岐サイクルまでの間に変更されないこと
を検出し、そのフラグ群の値でもって分岐判定を行うも
のである。
これには、まず、フラグ群の値が変更されないことを調
べる必要がある。
第9図において、分岐命憧の分岐予測サイクルであるD
ステートが実行されるタイミング(6)におけるフラグ
群の最新値は、演算命令1のEステートによって更新さ
れた値である。
このとき、命令2〜命令5がフラグ群を更新しない命令
か否かをチェックし、そうであればタイミング(6)に
おけるフラグ群の値は、分岐命令■の本来の分岐判定サ
イクルであるタイミング0ωにおける値と同じであると
言える。
この為、タイミング(6)で分岐判定を行うことができ
る。
なお、命令2〜命令5のいずれかがフラグ群を更新する
命令であれば、タイミング(6)では分岐判定を行うこ
とができず、本来の分岐判定サイクルであるタイミング
aωで判定を行うことになる。
条件コードの生成と条件コードを用いた分岐判定とのタ
イミングを見るタイミング判定回路(第2図)による分
岐判定について説明する。
第9図において、命令1が条件コード(フラグ)の更新
を行う命令で、命令2、命令3、命令4及び命令5が更
新しない命令の場合を述べる。
命令1はそのDサイクルにおいて、条件コードをセット
することがデコード回路50でデコードされてフラグ5
1にセットされる。この値が命令1の実行に伴って順次
フラグ52.53.54及び55にセットされていく。
一方命令2.3.4及び命令5はそれぞれのDサイクル
で条件コードをセットしない命令であることがデコード
されてフラグ51にその結果が七つトされる。
この結果、分岐命令■の最初の分岐判定サイクルである
タイミング(6)では、フラグ55には命令1が条件コ
ードをセットすること、すなわち更新有りがフラグ54
には命令2が条件コードを更新しないことが、フラグ5
3には命令3が条件コードを更新しないことが、フラグ
52には命令2が条件コードを更新しないことが、フラ
グ51には命令5が条件コードを更新しないことが、そ
れぞれセットされていることになる。
タイミング判定回路60ではこれらのフラグの値から分
岐命令BがそのDサイクルで条件コードによる分岐判定
を行うことができるかどうか判定する。すなわち、フラ
グ51.52.53及び54がすべて条件コードの更新
がないことを示している場合に、分岐命令■はそのDサ
イクルで分岐判定回路5によって条件コードによる分岐
判定を行うことができる。
それ以外の場合には、分岐命令■のDサイクルであるタ
イミング(6)以降に条件コードの更新があることにな
り(例えばフラグ52が更新有りである場合には、命令
4がそのEサイクルであるタイミング(8)で更新を行
う)、タイミング(6)での条件コードを用いた分岐判
定は行えないことになる。
(C)カウンタブランチ命令での分岐予測によるカウン
タブランチ命令とは、指定された汎用レジスタの値を減
算し、その結果が1以外のときを分岐成功とする命令で
あり、高級命令のDO小ループどを構成するのに用いら
れるものである。
すなわちDoループではカウンタ値が0になるまで、D
O小ループ内容を繰り返すことになりDO小ループ先頭
に分岐することになり、カウンタ値がOになれば、DO
小ループ抜けてDO小ループ最終の次のアドレスに行く
。したがってカウンタブランチ命令の時には、カウンタ
ブランチ命令の分岐先命令に続く命令の先取りを行える
ので、DO小ループ高速に行うことができる。
このタイプの分岐命令では通常減算する値は1である為
、汎用レジスタを読み出した場合にはその値が1以外が
分岐成功となる。
第6図(C)は汎用レジスタの値から分岐判定を行う必
要があるかをチェックするチェック回路である。まず判
定サイクルにおいてその汎用レジスタの値を第2図のラ
イン5′を介して読み出し、その値が1であるか否かを
チェックする。すなわち、カウンタブランチ命令では指
定された汎用レジスタの内容を減算し、その結果から1
6進で“o。
00 0001”でない時に1を出力し、これをアンド
回路84′に与える。このことにより、汎用レジスタの
内容から予測可能な分岐判定を判定回路5を用いて行う
ことができる。ただしこの場合にも、その分岐予測タイ
ミングから本来の判定サイクルまでの間に一回判定レジ
スタの値が変更を受けないことを、前述した回路50’
、51’52’、53’、54’、55’、82’を用
いて検出する必要がある。
すなわち、命令レジスタ2の内容をデコーダ80でカウ
ンタブランチ命令と判別し、かつその命令の連続5つ前
までの命令が汎用レジスタの内容を変更しないものであ
り、かつ現在のカウンタブランチ命令によって指定され
る汎用レジスタの内容が1でないとき、予測可能なカウ
ンタブランチ命令と判定する。
〔発明の効果〕
本発明を用いることによって、分岐予測がイテえる場合
の分岐命令の実行の場合、分岐先命令に続く命令の実行
が待たされる確率を下げることができる。実行される命
令数に対する無条件命令の割合にもよるが、分岐命令が
現れる確率は高い為、総合性能を向上させることができ
る。
【図面の簡単な説明】
第1図は1サイクル・パイプラインにおける無条件分岐
命令の実行について説明する図、第2図は本発明の一実
施例を示す図、 第3図は本発明の実施例の一般の命令の実行の場合につ
いて説明する図、 第4図は本発明の実施例の条件分岐命令の実行の場合に
ついて説明する図、 第5図は本発明の実施例の無条件分岐命令の実行の場合
について説明する図、 第6図(a)、(ト))及び(C)は分岐判定回路5の
具体的回路を示す図、 第7図は分岐条件選択回路の構成例を示す図、第8図は
分岐条件選択回路の真理値表を示す図、第9図は分岐予
測サイクルを説明する図、第10図は1サイクル・パイ
プラインにおける分岐命令の実行について説明する図、 第11図は命令先取りパイプラインについて説明する図
、 第12図は分岐先命令の開始時にTarget側命令フ
ェッチがない場合の例(そのl)を示す図、第13図は
分岐先命令の開始時にTarget側命令フェッチがな
い場合の例(その2)を示す図である。 l・・・命令フェッチに使用される命令先取リバッファ
、 2・・・命令のデコードに使用される命令レジスタ、 4・・・セレクタ、 5・・・分岐判定回路、 6・・・汎用レジスタ群(GR)、 7・・・アドレス計算の為のレジスタ群(XR,BR,
D)、 8・・・アドレス加算器、 9・・・アドレス加算器の結果を受は取るレジスタ(L
AR#T)、 10.11・・・分岐判定回路5の結果をパイプライン
の進みに合わせて保 持するフラグ(Fl、F2)、 12・・・レジスタ(LAR#T)の値を基にアドレス
変換を行うアドレス変換回 路、 13・・・アドレス変換回路の結果を保持するレジスタ
(PAR#B)、 14・・・レジスタ(LAR#T)9の値を変換せずに
保持するレジスタ(LAR #B)、 15・・・バッファメモリ、 16・・・レジスタ(PAR#B)13の値をパイプラ
インの進みに合わせて保持 するレジスタ(PAR#E)、 18・・・レジスタ(PAR#E)16の値をパイプラ
インの進みに合わせて保持 するレジスタ(PAR#W)、 19・・・演算のオペランドをバッファメモリ15から
受は取るレジスタ、 20・・・演算のオペランドを汎用レジスタ群6から受
は取るレジスタ、 ・演算回路、 ・演算結果を保持するレジスタ、 ・分岐判定回路、 ・命令先取りアドレスを保持するレジ スタ(L IA#A)、 ・命令長を選択するセレクタ、 ・命令フェッチアドレスのセレクタ、 ・分岐判定回路の選択回路、 ・アドレス加算器、 ・レジスタ(L IA#T)、 ・アドレス変換回路、 レジスタ(P I A#B)、 フラグ(F2a)、 フラグCF2b)、 ANDゲート、 ORゲート。

Claims (1)

  1. 【特許請求の範囲】 1)命令の実行及び命令の先取りをパイプライン方式で
    行い、かつ、分岐命令に対しては、該分岐命令の分岐先
    命令の取り出しを分岐判定サイクルに先行して行う計算
    機システムにおいて、上記分岐命令の実行の際には、そ
    のパイプライン中の分岐判定サイクルに先立つサイクル
    において条件判定を行うことができることを検出し、か
    つ、分岐判定を行う第1の分岐判定手段と、該第1の分
    岐判定手段により分岐成立と判断される場合には、分岐
    命令のパイプライン中の分岐判定サイクルを待つことな
    しに、上記分岐先命令に引続く命令群の先取りを開始す
    る手段とを設けたことを特徴とする命令取出し制御方式
    。 2)前記第1の分岐判定手段において、命令コードと条
    件コードの両方から分岐判定に先立って条件分岐の判定
    を行うことを特徴とする請求項1記載の命令取出し制御
    方式。 3)前記第1の分岐判定手段は命令コードから分岐判定
    に先立って無条件分岐の判定を行うことを特徴とする請
    求項1記載の命令取出し制御方式。 4)前記第1の分岐判定手段は、命令のデコードサイク
    ルにおいて分岐判定を行うことを特徴とする請求項1記
    載の命令取出し制御方式。 5)前記第1の分岐判定手段は、命令コードをデコード
    し、条件分岐か無条件分岐かの解読を行う手段と、 前記分岐命令の直前の命令から連続する複数の命令が条
    件コードを更新しないことを判別する判別手段と、 前記命令コードと、条件コードの組み合わせにより、分
    岐判定サイクルに先立って判定可能な分岐命令を選択す
    る分岐命令選択手段と、 前記解読手段が条件分岐であることを解読し、前記判別
    手段により直前より連続する複数サイクルに条件コード
    を更新しないことを判別し、かつ前記分岐命令選択手段
    により分岐命令となる命令を選択された場合に、分岐命
    令が予測可能であると判断する判断手段からなることを
    特徴する請求項1記載の命令取出し制御方式。 6)前記第1の分岐判定手段は、前記分岐命令が汎用レ
    ジスタの値を演算し、その結果が特定の値である場合に
    分岐成功とするカウンタブランチ命令であることを判別
    したときには、前記汎用レジスタの値が前記特定値であ
    るかどうかチェックすることを特徴とする請求項5記載
    の命令取出し制御方式。 7)命令デコーダの内容がカウンタブランチ命令である
    ことを判別する手段と、分岐命令の前に連続する命令の
    所定数が汎用レジスタの内容を更新しないことを判断す
    る手段と、分岐命令によって指定された汎用レジスタの
    内容が特定の値でないことを判断する手段と、上記3つ
    の手段の全ての条件が成立したときにカウンタブランチ
    命令が予測可能であると決定する手段とからなる特許請
    求項1記載の命令取出し制御方式。 8)前記第1の分岐判定手段は、命令コードをデコード
    し、条件分岐か無条件分岐かの解読を行う手段と、 前記第1の分岐判定手段において、前記分岐命令の直前
    から連続する複数の命令が条件コードを更新しない命令
    であることを判定する第1の判別手段と、 前記第1の分岐判定手段において、前記命令の直前から
    連続する複数の命令が該当する汎用レジスタを更新しな
    い命令であることを判定する第2の判別手段と を設け、 前記分岐命令が無条件分岐であるとき、または、前記分
    岐命令が命令コードと条件コードから分岐判定を行う必
    要がある分岐命令であり、かつ、前記第1の判別手段に
    よって分岐予測が可能と判定されるとき、または、 前記分岐命令が汎用レジスタの値から分岐判定を行う必
    要がなる分岐命令であり、かつ、前記第2の判別手段に
    よって分岐予測が可能と判定されるときに、 本来の分岐判定サイクルに先立つサイクルによる分岐判
    定を可能とする手段を持つことを特徴とする請求項1記
    載の命令取出し制御方法。 9)前記先取り開始手段は、前記第1の分岐判定手段の
    結果と、本来の分岐判定サイクルにおいて条件コードか
    ら分岐するかどうかの判定を行う第2の分岐判定手段と
    の結果に基づいて、分岐命令に引き続く命令、あるいは
    分岐先命令に引き続く命令をバッファメモリから引き出
    すためのアドレス情報をセットしているレジスタ(9)
    、(14)、(30)を選択する選択手段(31)、(
    32)、(33)を有することを特徴とする請求項1記
    載の命令取出し制御方式。 10)前記選択手段は、前記第1の分岐判定手段と前記
    第2の分岐判定手段に基づいて、通常の分岐命令か予測
    可能な分岐命令かを選択する分岐条件選択回路(33)
    と、前記アドレス情報を選択するアドレス情報選択手段
    (32)と、選択される命令の命令長を選定する命令長
    選択回路(31)と有する請求項9記載の命令取出し制
    御方式。 11)前記第1の分岐判定回路によって分岐判定された
    場合にはその分岐命令の分岐先命令とそれに引き続く命
    令のデコードを連続するサイクルで行う命令先取り実行
    手段をさらに有することによりパイプライン制御を行う
    請求項1記載の命令取出し制御方式。 12)命令をデコードし、命令の論理アドレスを計算し
    、実アドレスに変換した後、命令とデータが格納されて
    いるバッファメモリから、命令又はデータを読み出し、
    命令に基づくデータの演算を行い、結果を再びバッファ
    メモリ或いは汎用レジスタに書き込む命令実行パイプラ
    イン処理を行う手段と、 現在の命令に引き続く命令、分岐命令に対する分岐先命
    令に引き続く命令を前記各命令の命令実行パイプライン
    処理のデコードサイクルに先立って前記バッファメモリ
    から読み出す命令先取りパイプライン処理手段と、 上記分岐命令の実行の際には、そのパイプライン中の分
    岐判定サイクルに先立って分岐を判定する第1の分岐判
    定手段と、 該第1の分岐判定手段により分岐成立と判断される場合
    には分岐命令のパイプライン中の分岐判定サイクルを待
    つことなしに、前記分岐先命令に引き続く命令群の先取
    りを開始する手段とを設けたことを特徴とする命令取出
    し制御方式。 13)命令をデコードし、命令の論理アドレスを計算し
    、実アドレスに変換した後、命令とデータが格納されて
    いるバッファメモリから、命令又はデータを読み出し、
    命令に基づくデータの演算を行い、結果を再びバッファ
    メモリ或いは汎用レジスタに書き込む命令実行パイプラ
    イン処理を行い、現在の命令に引き続く命令、分岐命令
    に対する分岐先命令に引き続く命令を前記各命令の命令
    実行パイプライン処理のデコードサイクルに先立って前
    記バッファメモリから読み出す命令先取りパイプライン
    処理を行い、 上記分岐命令の実行の際には、そのパイプライン中の分
    岐判定サイクルに先立って分岐を判定し、この結果分岐
    成立と判断される場合には分岐命令のパイプライン中の
    分岐判定サイクルを待つことなしに、前記分岐先命令に
    引き続く命令群の先取りを開始することを特徴とする命
    令取出し制御方法。
JP1334893A 1988-12-27 1989-12-26 命令取出し制御方式 Pending JPH02255918A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1334893A JPH02255918A (ja) 1988-12-27 1989-12-26 命令取出し制御方式

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP63-327765 1988-12-27
JP32776588 1988-12-27
JP1334893A JPH02255918A (ja) 1988-12-27 1989-12-26 命令取出し制御方式

Publications (1)

Publication Number Publication Date
JPH02255918A true JPH02255918A (ja) 1990-10-16

Family

ID=26572628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1334893A Pending JPH02255918A (ja) 1988-12-27 1989-12-26 命令取出し制御方式

Country Status (1)

Country Link
JP (1) JPH02255918A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11210101B2 (en) 2018-09-20 2021-12-28 Fujitsu Limited Arithmetic processing device and control method implemented by arithmetic processing device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50128949A (ja) * 1974-03-29 1975-10-11
JPS52130256A (en) * 1976-04-26 1977-11-01 Hitachi Ltd Information processing unit
JPS57150040A (en) * 1981-03-11 1982-09-16 Mitsubishi Electric Corp Pipeline computer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50128949A (ja) * 1974-03-29 1975-10-11
JPS52130256A (en) * 1976-04-26 1977-11-01 Hitachi Ltd Information processing unit
JPS57150040A (en) * 1981-03-11 1982-09-16 Mitsubishi Electric Corp Pipeline computer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11210101B2 (en) 2018-09-20 2021-12-28 Fujitsu Limited Arithmetic processing device and control method implemented by arithmetic processing device

Similar Documents

Publication Publication Date Title
KR100395763B1 (ko) 멀티프로세싱 마이크로프로세서에 적합한 분기 예측기
US6647489B1 (en) Compare branch instruction pairing within a single integer pipeline
US7117347B2 (en) Processor including fallback branch prediction mechanism for far jump and far call instructions
JP3565504B2 (ja) プロセッサにおける分岐予測方法及びプロセッサ
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
US7711930B2 (en) Apparatus and method for decreasing the latency between instruction cache and a pipeline processor
US20020029333A1 (en) Methods and apparatus for branch prediction using hybrid history with index sharing
US6981131B2 (en) Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction
JPH03116233A (ja) データプロセッサの命令処理システム
US10664280B2 (en) Fetch ahead branch target buffer
EP0094535B1 (en) Pipe-line data processing system
JP3486690B2 (ja) パイプライン方式プロセッサ
JP2004013255A (ja) 遅延分岐機能を備えた情報処理装置
KR920006770B1 (ko) 명령을 페치(fetch)하기 위한 제어 시스템
JP3532835B2 (ja) データ処理装置およびプログラム変換装置
JP3723019B2 (ja) サブルーチンリターン相当の命令の分岐予測を行う装置および方法
JP3708022B2 (ja) プロセッサ
JPH02255918A (ja) 命令取出し制御方式
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JP4728877B2 (ja) マイクロプロセッサおよびパイプライン制御方法
JP2883035B2 (ja) パイプライン・プロセッサ
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
JP2877531B2 (ja) 並列演算処理装置
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
JPH01258032A (ja) パイプライン処理機構を持つデータ処理装置