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

データ処理装置

Info

Publication number
JPH04195630A
JPH04195630A JP33534690A JP33534690A JPH04195630A JP H04195630 A JPH04195630 A JP H04195630A JP 33534690 A JP33534690 A JP 33534690A JP 33534690 A JP33534690 A JP 33534690A JP H04195630 A JPH04195630 A JP H04195630A
Authority
JP
Japan
Prior art keywords
instruction
branch
fetch
address
code
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
JP33534690A
Other languages
English (en)
Inventor
Katsunori Suzuki
勝則 鈴木
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP33534690A priority Critical patent/JPH04195630A/ja
Publication of JPH04195630A publication Critical patent/JPH04195630A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明はパイプライン処理を行なうデータ処理袋W(
以下プロセッサと呼ぶ)に関し、特に分岐命令の予測を
行なうプロセッサを提供するものである。
〔従来の技術〕
パイプライン処理は計算機の高速化に極めて有効な手法
の1っである。しかし、パイプラインの処理段数が増加
すると、各種のオーバーヘッドにより、処理性能の向上
が飽和してくる。オーバーヘッドを生じる要因の1つと
して、ジャンプ命令の実行によるパイプラインの乱れが
挙げられる。
レヤノプ命令が実行されると、実行ステージより前段で
の処理がすべてキャンセルされるため、パイプラインの
段数が多い程ジャンプ命令実行によるオーバーヘッドが
大きい。ジャンプ命令の実行頻度は20%程度と高(、
プロセッサの性能向上を図る上で、ジャンプ命令の高速
化は必要不可欠な問題であり、現在多くの研究が行なわ
れている。
次に、従来例として分岐予測機構を持った5段のパイプ
ライン処理を行なうG1l1cro/100プロセツサ
について説明する。
パイプライン処理の構成を第5図に示す。
命令のブリフェッチを行う命令フェッチステージ以下(
IFステーノと呼ぶ) (51)では、専用のカウンタ
ー00)にてフェッチすべき命令のアドレスを計算し、
CPU外部のメモリから命令をブリフェッチし命令キュ
ー(7)に入力する。また、命令を選択的に登録する事
の出来る256バイトの命令キャッシュを持つ。
命令のデコードを行うデコードステージ(以下Dステー
ジと呼ぶ) (52)では、IFステージ(51)の命
令キュー(7)に登録された命令を順次入力しデコード
した結果、オペコード及びアドレッシングモードに関す
る情報(以下Dコードと呼ぶ)  (521及びAコー
ド(52B)を出力する。また、条件分岐命令分岐予測
を行なう動的分岐予測機構がこのブロックに含まれる。
更に、PC演算部(4)も含み命令のPC値を計算する
。また、分岐命令に関する先行ジャンプ処理時の分岐先
アドレスの計算も行なう。
オペランドのアドレス計算を行うオペラシドアドレス計
算ステージ(以下Aステージと呼ぶ)(53)では、D
ステージ(52)から渡された情報を基に、後段のオペ
コードをデコードしマイクロプログラムルーチンのエン
トリ番地やマイクロプログラムへのパラメータなどを含
むRコード(53A)と、オペランドのアドレスとアク
セス方法指示情報などを含むFコード(53B)との2
つを出力する。
マイクロROMアクセス(以下Rステージと呼ぶ) (
54A)とオペランドのブリフェッチ(以下OFステー
ジと呼ぶ)54Bを行うオペランドフェッチステージ(
以下Fステージと呼ぶ) (541では、演算制御情報
とリテラルなどを含むEコード(54C)と、オペラン
ドやオペランドアドレスなどを含むSコード(54D)
との2つを出力する。
命令の実行を行う実行ステージ(以下Eステージと呼ぶ
) (55)ては、ALU、バレルシック、プライオリ
ティエンコータ等の演算器が含まれる。
また、4バイトのストアーバッファがあり、演算実行と
1つ前の命令のオペランドのストアを並列に実行する事
が出来る。
各ステージは他のステージとは独立に動作し、論理上は
5つのステージが完全に独立動作する。
各ステージは1回の処理を最小2クロックで行うことが
できる。従って、理想的には2クロツクごとに次々とパ
イプライン処理が進行し、25MH1動作時のピーク性
能は12.5MIPSとなる。
第6図はIFステージ(51)とDステージ(52)の
関係を示す図である。
図において、(2)はIFステージ内の命令フェッチ部
、(3)はDステージ(52)内の命令デコード部、(
4)はPC値を計算するPC演算部、(60)は命令デ
コード部(3)でデコードした命令の命令長、(61)
は分岐命令の分岐先アドレスを出力するCAババス(6
2A、)は命令デコード部(3)で分岐命令をデコード
した時に出力する分岐の変位、(62)は分岐の変位を
出力する変位バス、(64)はDステージ内で処理中の
PC値、(63)はPC加算器を示す。
次に、無条件分岐命令(BRA)の処理動作について説
明する。
G MICRO/ 1.00ではDステージ(52)で
プリブランチ処理(先行分岐処理)を行なっている。B
RA命令が命令フェッチ部(2)より入力され、命令デ
コード部(3)でデコードされると、必ずプリブランチ
処理が行なわれる。この場合、命令長(60)の代わり
に分岐変位(62A)がPC計算部(4)に送られる。
pc計算部(4)ではこの分岐変位(62A)とDPC
(64)の値が加算され、分岐先のアドアレスが計算さ
れる。加算結果はCAババス61)を介して命令フェッ
チ部(2)に送られ、分岐処理が行なわれる。命令デコ
ード部(3)は分岐命令の分岐先命令がフェッチされる
まで待状態にはいり、命令フェッチ部(2)から分岐先
命令が入力されると、直ちにデコードを開始する。
第7図はBRA命令に関してブリブランチ処理を行なっ
た場合、第8図はブリブランチ処理を行なわなかった場
合のタイミングチャートを示す〇図では命令キャッシュ
がヒツトする場合を示している。BRA命令の処理に要
する時間が8クロツクから5クロツクに削減され、処理
時間が3クロツク短縮されるが、依然として無駄な処理
クロックが生ずる。
〔発明が解決しようとする課題〕
従来の分岐予測機構を持つパイプライン処理を行うプロ
セッサでは以上の様に、分岐命令を処理した場合に無駄
な時間が生じ、パイプライン処理の処理性能の向上が図
れないという問題点があった。
この発明は上記のような問題点を解消するためになされ
たもので、分岐命令を処理した場合に無駄な時間の生じ
ないプロセッサを得ることを目的とする。
〔課題を解決するための手段〕
この発明に係るプロセッサは、命令フェッチ時にフェッ
チした命令が分岐命令であるかどうかを判定する比較器
と、過去の分岐命令の分岐先アドレス及び分岐先命令を
登録する記憶装置を備えたものである。
〔作用〕
この発明におけるプロセッサは、過去に一度実行された
分岐命令は再実行される確率が高いため、過去の分岐命
令の分岐先アドレス及び分岐先命令を登録し、命令フェ
ッチ部で命令の順番を入れ換えることによりパイプライ
ン損失をなくし、分岐命令を他の基本命令と同一のパイ
プラインで淀みなく実行出来る。
〔発明の実施例〕
以下、この発明の一実施例を図について説明する。第1
図はこの発明の実施例であるプロセッサの系統ブロック
図である。
図において、(1)はプロセッサ、(2)は命令フェッ
チ部、(2A)はデータバスから7エツチした命令コー
ド、(3)は命令デコード部、(4)はpc演算部、(
5)は実行部、(5A)は実行部で分岐命令を判定した
時に出力する実行部分岐信号、(5B)は分岐命令時の
初期化信号、(60)は命令デコード部(3)でデコー
ドした命令の命令長、(61)は分岐命令の分岐先アド
レスを出力するCAババス(62A)は命令デコード部
(3)で分岐命令をデコードした時に出力する分岐の変
位、(62)は分岐の変位を出力する変位バス、(8C
)は登録されている分岐先アドレス(8A)とPC演算
部(4)での計算結果の不一致を示すアドレス不一致信
号を示す。
第2図は第1図の命令フェッチ部(2)の内部構成を示
す系統ブロック図である。図において(2A)は外部メ
モリからフェッチされた命令コード、(6)は比較機能
を持ったCRAMで、予め分岐命令を記憶して置く。(
6A)は分岐命令がフェッチされた事を示す分岐命令検
出フラグ、(7)は命令キュー、(8A)は過去の分岐
先アドレスを登録して置くメモリで、CAババス61)
入力と比較できるCAMで構成されている。(8B)は
メモリ(8A)に対応する分岐先命令を登録して置くメ
モリ、(8D)はCAババス値と分岐先アドレス登録メ
モリ(8A)の比較の結果のヒツト48号、(8C)は
各エツトすがらのヒツト信号を受けてアドレスの不一致
を示す信号、(9)は登録されたメモ!J (8A)及
び(8B)が有効かを示す登録有効フラグ、(10)は
フェッチすべき命令のアトし・スを示すアドレスカウン
タ、(5B)は実行部から入力される分岐初期化信号、
(7A)は命令キュー(7)の入力を切り換えるセレク
タを示す。
本実施例では無条件分岐命令の分岐予測を命令フェッチ
時に行なうものであり、予めCA M f61に無条件
分岐命令のコードを登録して置く必要がある。この登録
;まROM化してもかまわない。CAM(6)では外部
からフェッチした命令コードを直ちに比較するため命令
固定長の命令セットを持ったプロセッサである事が必要
である。
次に分岐予測を行なう動作について説明する。
リセット時には、分岐先アドレス登録(8A)及び分岐
先命令登録(8B)には何も登録されていないため、登
録有効フラグ(9)はすべてリセットされた状態にある
リセットシーケンス実行後、アドレスカウンタQOIに
セットされたアドレスに従って命令フェッチを開始する
。プリフェッチされた命令は命令キュ−(7)に入力さ
れると同時にCA M f8)にも入力され、予め登録
されていた分岐命令のコードと比較される。この比較の
動作は命令がフェッチされる度に繰り返される。
上記ブリフェッチ動作の繰り返し中に分岐命令をフェッ
チすると、命令キュー(7)に入力されると同時にCA
 M (51によって比較され、対応するエントリーの
分岐命令検出フラグ(6A)をセットする。
但し、初めての検出であるため登録有効フラグ(9)は
リセットされているので、分岐予測動作にLよ切り替わ
らない(分岐予測動作については後述する)。
そのため、命令キュー(7)には分岐命令の次に外部か
らフェッチした命令を順次入力されろ。
命令キュー(7)に入力された分岐命令は命令デコード
部(3)に入力され、命令コードのデコードを行なう。
PC演算部(4)は命令デコード部(3)の出力結果に
従って、次命令の先頭アドレスを計算する。即ち、通常
の命令をデコードした場合では、命令デコード部(3]
からのデコード命令長(60)を加算して、次命令の先
頭アドレスを計算する。デコードした命令が分岐命令の
場合には、命令デコード部(3)からの分岐変位(62
A、lを加算して、分岐先のアトしスを計算する。分岐
先アトしスはCAババス61)に出力され命令フェッチ
部(2)に入力される。
命令フェッチ部(2)では、CAババス61)を介して
入力された分岐先アドレスを分岐命令検出フラグ(6A
)がセットされているニレトリの分岐先アドレス登1f
8A)に入力する。初めての分岐命令の実行であるから
分岐先アドレス登録(8A)には何も登録されていない
。そのため、CAM(61による比較(よ不一致でヒツ
ト信号(8D)はLOWのままである。その結果、アド
レス不一致信号(8C)をアサートする。
実行部(5)での命令結果、分岐すると判断し実行部分
岐信号(5A)をアサートする。一方、命令フェッチ部
(2)よりアドレス不一致信号(8C)を受は分岐初期
化信号(5B)をアサートし、命令キュー(7)及び命
令デコード部(3)をクリヤーする。
命令フェッチ部(2)では分岐初期化信号(5B)を受
けて、分岐命令検出フラグ(6A)のセットされている
エノトりの(8A)に、CAババス61)から分岐先ア
ドレスを書き込む。同時に、この分岐先アドレスはアド
レスカウンタGo)にもセットされて、このアドレスに
従って命令のフェッチ開始する。
フェッチされた分岐先命令は命令キュー(7)に入力さ
れると同時に、CA M f61にも入力しく6A)の
フラグがセットされているエントリのメモリ (8B)
に分岐先命令を登録及び登録有効フラグ(9)をセット
する。乙の分岐先命令の登録後、分岐命令検出フラグ(
6A)をリセットする。アドレスカウンタ00)は分岐
先命令フェッチ後、それに引きつづき順次カウントアツ
プしてブリフェッチを続ける。
次に、以前に実行された分岐命令がフェッチされた場合
の動作について説明する。
アトし・スカウンタ00)に従って順次命令をフェッチ
し、命令キュー(7)に入力すると共にCA M 16
1にも入力する。もし、フェッチした命令が分岐命令な
らば対応するエントリのフラグ(6A)をセットする。
同時に、対応するエンI〜りに登録されている分岐先ア
ドレス(8A)及び分岐先命令(8B)を読み出す。
登録有効フラグ(9)がセットされているなら、読み出
された分岐先アドレス(8A)はインクリメントされた
後、アドレスカウンタα0)に入力され、分岐先命令の
次命令をフェッチする。一方、読み出された分岐先命令
(8B)は、命令キュー(7)の入力セレクタ(7A)
に入力する。通常、この入力セレクタは外部からフェッ
チした命令をセレクトしている。セレクタ(7A)の切
り替えは、登録有効フラグ(9)のセットされているエ
ントリがヒツトした次サイクルだけ入力を(8B)側に
切り替える。次のサイクルからは通常どうり、アドレス
カウンタ口αに従って外部からフェッチした命令を入力
する。
上記の様にして、命令キューf71には分岐命令、分岐
先命令、・・・の順に入力され、命令デコード部(3)
に出力する。
命令キュー(7)に入力された分岐命令は命令デコF 
部131 Ic入力され、命令コードのデコードを行な
う。
pc演算部(4)は命令デコード部(3)の出力結果に
従って、分岐変位(62A)を加算して分岐先のアドレ
スを計算する。分岐先アドレスはCAババス61)に出
力され命令フェッチ部12)に入力される。
命令フェッチ部(2)では、CAババス61)を介して
入力された分岐先アドレスを分岐命令検出フラグ(6A
)がセットされているエノl−りの分岐先アドレス登録
(8A)に入力する。メモリ(8A)のCAMによる比
較が一致したならヒツト信号(8D)をアサートして、
アドレス不一致信号(8C)をネゲートする。実行部(
5)での命令結果、分岐すると判断し実行部分岐43号
(5A)をアサートする。一方、命令フェッチ部(2)
よりアドレス不一致信号(8C)のネゲー)−を受け、
分岐初期化(=号(5B)を出力せずに、引き続き命令
デコード部(3)からのデコード結果を受取り命令を実
行する。
一方、メモIJ(8A、)のCAMによる比較が不一致
ならばヒツト信号(8D)をLOWのままで、アドレス
不一致イご号(8C)をアサートする。
実行部(5)での命令結果、分岐すると判断し実行部分
U信号(5A)をアサ−1・する。一方、命令フェッチ
部(2)よりアトしス不一致信号(8C)を受は分岐初
期化イス号(5B)をアサートし、命令キュー(7)及
び命令デコード部(3)をクリヤーする。
以下の命令フェッチ部(2)の分岐先アドレス(8A)
の更新は前述した最初に登録する場合と同様である。第
3図は上記無条件分岐命令に関する分岐予測をおこなっ
た場合、第4図は分岐予測を行わなかった場合のタイミ
ングチャートを示す。第3図かられかるように、分岐予
測が成功した場合にはパイプライン損失がなく、分岐命
令を他の基本命令と同一のパイプラインで淀みなく実行
する。
〔発明の効果〕
以上のようにこの発明によれば、命令フェッチ部で予め
登録された分岐命令とフェッチしてきた命令とを比較す
ることにより、フェッチ時に分岐予測を行うことにより
、分岐予測が成功した場合にはパイプライン損失がなく
、分岐命令を他の基本命令と同一のパイプラインで淀み
なく実行する効果がある。
【図面の簡単な説明】
第1図はこの発明の一実施例であるプロセッサの系統ブ
ロック図、第2図は第1図の命令フェッチ部(2)の内
部構成を示す系統ブロック図、第3図は第1図のプロセ
ッサの無条件分岐命令に関する分岐予測をおこなった場
合のタイミノグチヤード、第4図は第1図のプロセッサ
の分岐予測を行わなかった場合のタイミングチャート、
第5図は従来のパイプライン処理の構成を示すブロフク
図、第6図は第5図のIFステージ(51)とDステー
ジ(52)の関係を示す系統ブロック図、第7図は第5
図のプリブランチ処理を行なった場合のタイミングチャ
ート、第8図は第5図のプリブランチ処理を行なわなか
った場合のタイミングチャートである。 図において、(1)はプロセッサ、(2)は命令フェッ
チ部、(2A)は命令コード(3)は命令デフード部、
(4)はpc演算部、(5)は実行部、(5A)は実行
部分岐信号、(5B)は分岐初期化信号、+61 +!
 CA M、(6A)は分岐命令検出フラグ、(7)は
命令キュー、(7A)はセレクタ、(s A)fs B
)!、fメ(−リ、(8c)はアドレス不一致信号、(
8D)はヒラ1−(3号、(9)は登録有効フラグ、0
0)はアドレスカラシタ、(60)は命令長、(61)
はCAババス(62)は変位バス、(62A)は変位を
示す。なお、図中、同一符号は同一、または相当部分を
示す。

Claims (2)

    【特許請求の範囲】
  1. (1)命令をフェッチする命令フェッチ回路と、命令を
    デコードする命令デコード回路と、命令を実行する命令
    実行回路とを有するデータ処理装置において、 前記命令フェッチ回路に分岐命令コードを記憶する第1
    の記憶手段と、前記分岐命令の分岐先アドレスを記憶す
    る第2の記憶手段を備えた事を特徴とするデータ処理装
    置。
  2. (2)命令をフェッチする命令フェッチ回路と、命令を
    デコードする命令デコード回路と、命令を実行する命令
    実行回路とを有するデータ処理装置において、 前記命令フェッチ回路に分岐命令コードを記憶する第2
    の記憶手段と、前記分岐命令の分岐先アドレスを記憶す
    る第2の記憶手段と、前記分岐命令の分岐先命令を記憶
    する第3の記憶手段を備えた事を特徴とするデータ処理
    装置。
JP33534690A 1990-11-28 1990-11-28 データ処理装置 Pending JPH04195630A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33534690A JPH04195630A (ja) 1990-11-28 1990-11-28 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33534690A JPH04195630A (ja) 1990-11-28 1990-11-28 データ処理装置

Publications (1)

Publication Number Publication Date
JPH04195630A true JPH04195630A (ja) 1992-07-15

Family

ID=18287497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33534690A Pending JPH04195630A (ja) 1990-11-28 1990-11-28 データ処理装置

Country Status (1)

Country Link
JP (1) JPH04195630A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242949A (ja) * 1993-01-15 1994-09-02 Internatl Business Mach Corp <Ibm> キュー管理式命令キャッシュ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242949A (ja) * 1993-01-15 1994-09-02 Internatl Business Mach Corp <Ibm> キュー管理式命令キャッシュ

Similar Documents

Publication Publication Date Title
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
US5826089A (en) Instruction translation unit configured to translate from a first instruction set to a second instruction set
JP2504830Y2 (ja) デ―タ処理装置
JPH06110683A (ja) マイクロプロセッサの拡張ブランチターゲット方法及びその装置
EP1241567B1 (en) Method and apparatus for executing coprocessor instructions
JP2507638B2 (ja) デ―タ処理装置
KR20090094335A (ko) 서브루틴 호를 인지하기 위한 방법들 및 장치
US20040186985A1 (en) Method and apparatus for branch prediction based on branch targets
JP2006520964A5 (ja)
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
JPH04195630A (ja) データ処理装置
JPH10124312A (ja) 中央処理装置
JP2001100994A (ja) モードを変更する分岐命令を制御する命令処理装置および方法
EP0889394A2 (en) Program control method
JPH07262006A (ja) 分岐ターゲットアドレスキャッシュを備えたデータプロセッサ
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP2944335B2 (ja) 情報処理装置
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JP2503223B2 (ja) 先行制御方式
JPH02144626A (ja) マイクロプロセッサ
JP2001034474A (ja) データ処理装置及びデータ処理方法
JPH01258031A (ja) データ処理装置
JPH0462637A (ja) マイクロプロセッサ
JPH0855033A (ja) 情報処理装置