JP2555664B2 - 分岐ヒストリテーブル書込制御方式 - Google Patents

分岐ヒストリテーブル書込制御方式

Info

Publication number
JP2555664B2
JP2555664B2 JP63011123A JP1112388A JP2555664B2 JP 2555664 B2 JP2555664 B2 JP 2555664B2 JP 63011123 A JP63011123 A JP 63011123A JP 1112388 A JP1112388 A JP 1112388A JP 2555664 B2 JP2555664 B2 JP 2555664B2
Authority
JP
Japan
Prior art keywords
instruction
branch
history table
stream
execution
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
JP63011123A
Other languages
English (en)
Other versions
JPS63303432A (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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP63011123A priority Critical patent/JP2555664B2/ja
Publication of JPS63303432A publication Critical patent/JPS63303432A/ja
Application granted granted Critical
Publication of JP2555664B2 publication Critical patent/JP2555664B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は先行制御型データプロセッサにおける分岐ヒ
ストリテーブルに対する書込制御を行なう分岐ヒストリ
テーブル書込制御方式に関する。
〔従来の技術〕
一般に分岐命令を実行するとき、その分岐先アドレス
の先行制御がそのデータプロセッサの性能を左右するこ
とになる。このため、分岐方向が過去実行された分岐予
測結果と同一方向である場合が多いことに着目して、分
岐命令アドレスと実行された分岐先アドレスとの対を分
岐ヒストリテーブルに格納し、分岐先アドレスを計算す
ることなしに分岐ヒストリテーブルを索引して分岐先ア
ドレスを求める技術が提案されている。この技術の詳細
は米国特許第3,559,183号および第4,604,691号を参照で
きる。
この分岐ヒストリテーブルへは分岐命令の演算実行ス
テージにより求められた分岐先アドレスが格納される。
また、この分岐ヒストリテーブルへの索引は、この演算
実行ステージより前のステージである命令先取りステー
ジで行なわれる。
〔発明が解決しようとする問題点〕
一連の命令からなる命令ストリームが先行制御の対象
となる場合、先行命令による分岐ヒストリテーブルへの
登録と後続命令による分岐ヒストリテーブルの索引とが
競合する。
分岐ヒストリテーブルを実現するランダムアクセスメ
モリは、一般に登録中は索引ができない。
このため、ループを意識したブランチオンカウント
(BCT)命令のような分岐命令では、ストリームのルー
プ対象命令数に依存して、分岐命令を含むストリームの
命令先取動作が分岐ヒストリテーブルへの登録動作と競
合し、その登録動作が優先され分岐ヒストリテーブルへ
の索引ができないという欠点がある。
本発明の目的は上述の欠点を除去するようにし分岐ヒ
ストリテーブルへの無駄な登録を阻止することにより、
ループの分岐性能を向上させるようにした先行制御型デ
ータプロセッサにおける分岐ヒストリテーブル書込制御
方式を提供することにある。
〔問題点を解決するための手段〕
本発明の分岐ヒストリテーブル書込制御装置は、分岐
命令アドレスおよび分岐先アドレスを対にして分岐ヒス
トリテーブルに記憶する分岐ヒストリテーブル書込制御
装置であって、分岐命令の実行結果に基づいて前記分岐
ヒストリテーブルに分岐先アドレスの書込を指示する書
込指示信号を出力する書込指示手段と、前記分岐命令が
計数分岐命令である場合において、前記書込指示手段か
らの書込指示信号が入力されるときにセットされるとと
もに前記計数分岐命令が分岐しないことを示す分岐失敗
信号が入力されるときにリセットされる実行表示手段
と、前記実行表示手段がセットされているときに、前記
書込指示手段の前記書込指示信号を無効化する無効化手
段とを含む。
〔実施例〕
次に本発明について図面を参照して詳細に説明する。
第1図を参照すると、本発明の一実施例は、記憶装置
(図示せず)から信号線112を介して与えられる命令語
の命令を解読し、解読結果を信号線102に出力し、信号
線114を介して与えられる分岐結果を受付ける命令解読
ユニット1を有する。
第2図を参照すると、命令解読ユニット1は、記憶装
置(MEM)から信号線112を介して与えられる命令語の命
令コード(OP CODE)を格納する命令コードレジスタ1
1、この命令コードレジスタ11から線120を介して与えら
れる命令コードに基づいて命令の種別を示す命令情報を
線121に送出するとともに線114を介して与えられる分析
結果に基づいて先行予測の失敗を評価して正しい分岐方
向の命令の解読を開始する命令解読回路12およびこの命
令解読回路12からの命令情報および分岐関連情報を命令
実行時まで格納し、命令実行に対応して線1021および10
22に命令情報および分岐関連情報を出力する命令情報バ
ッファ13を備えている。
次にこの命令情報バッファ13からの命令情報の指示に
従い命令を実行し分岐予測を確認する演算ユニット4の
説明の前に分岐ヒストリテーブル3を用いて行なわれる
アドレス先行制御について詳細に説明する。
第1図を参照すると、アドレスの先行制御を行なうア
ドレス制御ユニット8は、記憶装置(MEM)から線112を
介して与えられる命令語および分岐ヒストリテーブル3
から線106を介して与えられる分岐先アドレスに基づい
てもとめられた命令アドレスを線101に送出し、分岐先
アドレスを線103に送出し、命令先取りまたはオペラン
ド先取りのアドレスを線104を介して記憶装置(MEM)に
送出する。
命令アドレスレジスタ2は、アドレス制御ユニット8
から線101を介して与えられる命令先取アドレスまたは
分岐命令アドレスを格納し、線105に送出する。
分岐ヒストリテーブル3は、索引時には、命令アドレ
スレジスタ2から線105を介して与えられる命令先取ア
ドレスに対応して予測分岐先アドレスを線106を介して
アドレス制御ユニット8に送出する。この命令アドレス
レジスタ2は登録時には線105を介して与えられる分岐
命令アドレスで示される位置に、アドレス制御ユニット
8から線103を介して与えられる分岐先アドレスを、線1
11を介して与えられるイネーブル信号に応答して登録す
る。このアドレス制御ユニット8,命令アドレスレジスタ
2,および分岐ヒストリテーブル3の詳細は1987年2月26
日に出願された国際出願番号PCT/JP87/00122号明細書を
参照できる。
本発明の特徴の1つである線111に送出されるイネー
ブル信号の発生について詳細に説明する。
この信号発生のもととなる演算ユニット4について説
明する。
第3図を参照すると、演算ユニット4は記憶装置(ME
M)から線107を介して与えられるオペランドを、線1021
を介して与えられる命令情報の指示に従い演算実行する
命令実行回路41およびこの命令実行回路41から線401を
介して与えられる実行結果を線1022を介して与えられる
分岐関連情報で処理し分岐予測を評価する予測確認回路
42を備えている。
この予測確認回路42は、線1022を介して与えられる分
岐命令の種類や先行制御での分岐予測の評価により得ら
れる分岐予測失敗や分岐方向を示す情報を線114および1
08(1081−1084)に出力する。線114および1081には分
岐予測失敗を示す信号が伝送される。線1082には所定の
回数同じ方向に分岐しその後別の方向に分岐するループ
用分岐命令であるブランチオンカウント(以下BCT)命
令実行信号が伝送される。また、線1083には分岐ヒスト
リテーブル3を利用しない予測を示す信号が伝送され
る。線1084には分岐結果方向が分岐(GO)側であること
を示す信号が伝送される。
第4図を参照すると、分岐ヒストリテーブル制御回路
5は、線1083を介して与えられる分岐ヒストリテーブル
3を利用しない予測を示す信号と線1084を介して与えら
れる分岐結果が分岐(GO)側であることを示す信号との
論理積をアンドゲート53でとり分岐先書込指示信号を線
115に発生し、この書込指示信号および線1082を介して
与えられるBCT命令実行信号の論理積をアンドゲート52
でとりループの繰返しを示すループフラグ回路6をセッ
トする。従って、アンドゲート52の出力はループ開始信
号となる。このループフラグ回路6は、BCT命令実行信
号と分岐予測失敗信号との論理積をアンドゲート52でと
られた信号によりリセットされる。
従ってアンドゲート52の出力はループ終了信号とな
る。
なお、分岐ヒストリテーブル制御回路7は、線1082を
介して与えられるBCT命令実行信号がそのまま線110に出
力される。
書込制御回路7は線110を介して与えられるBCT命令実
行信号および線113を介して与えられるループフラグセ
ット表示信号の否定論理積がナンドゲート71でとられ
る。このナンドゲート71の出力および線115を介して与
えられる書込指示信号との論理積がアンドゲート72でと
られる。このアンドゲート72の出力が線111を介して分
岐ヒストリテーブル3のイネーブル信号となる。
ループフラグ回路6のセット表示信号は、BCT命令実
行中でループを繰返し実行していることを示しており、
このセット表示信号の出力により線115を介して与えら
れる書込信号の指示に応答したイネーブル信号の発生を
抑止する。何故このようなイネーブル信号の発生の抑止
をしなければならないかを以下命令ストリーム例を使用
して説明する。
次に本発明の一実施例の動作を第1の命令ストリーム
例を用いて図を参照しながら詳細に説明する。
第5図を参照すると、ある命令ストリーム例は7つの
命令OP1−OP7および分岐命令TRCTnから構成される。
第6図を参照すると、第5図に示す命令ストリームが
4回以上繰返して実行されることを想定する。まず、命
令ストリームの第1回目の実行を示すストリームAにお
いては第1図の分岐ヒストリテーブル3の分岐命令TRCT
nの命令アドレスに対応する位置には初期値が格納され
ている。従って、分岐先命令のアドレスを分岐ヒストリ
テーブル3に格納する必要がある。
一方、ストリームAの分岐命令TRCTnが解読される
と、その分岐命令TRCTnの実行結果を待たないで2回目
の実行を示すストリームBの命令が先取りされる。
第7図を参照すると、ストリームAの分岐命令TRCTn
自身も2ワード分の命令、すなわちストリーBの命令OP
1およびOP2の先取を行なう。これとともに、これら命令
OP1およびOP2に続く4つの命令OP3,4,5および6も先取
りされる。
再び第6図を参照すると、このようにして、2回目の
実行を示すストリームB、3回目の実行を示すストリー
ムC、および4回目の実行を示すストリームDの先取り
が行なわれる。
この先取りのため分岐ヒストリテーブル3が利用され
る、すなわち分岐方向が過去実行された分岐予測結果と
同一方向であることが多いため、同じ分岐先アドレスが
繰返し登録される。
第6図に示す例ではストリームA,BおよびCの分岐命
令TRCTnの分岐先アドレスは同一命令OP1の命令アドレス
となる。
このループを考慮した同一分岐先アドレスの分岐ヒス
トリテーブルへの登録の繰返しを避けることがこの発明
の特徴である。
次に分岐予測したときのパイプラインでの先行制御に
ついて第8図を参照して説明する。
まず命令ストリームAの分岐命令TRCTnの命令先取が
デコードステージDIから開始され、アドレス生成ステー
ジAIで分岐命令アドレスが確定される。ページングステ
ージPIで分岐ヒストリテーブル3が索引され分岐先アド
レスの存在が確認されて取出される。この直後のステー
ジから予測分岐先の命令先取が行なわれる。先取された
分岐先命令がキャッシュメモリから転送される転送ステ
ージの直後に分岐先命令の実行ステージを開始できる。
これは分岐命令の実行ステージと1マシンサイクル遅延
されるのみですむ。
次に第5図に示した命令ストリームをループし分岐予
測しない場合の動作を第9図を参照しながら詳細に説明
する。
この命令ストリームでの先取りは、分岐命令TRCTnで
2つの命令OP1およびOP2の先取りが行なわれ、次に2つ
づつ命令OP3およびOP4,OP5およびOP6およびOP7およびTR
CTnの先取りが行なわれる。
分岐先命令OP1の実行パイプラインは、分岐命令TRCTn
による分岐先命令OP1のキャッシュからの転送終了に応
答して開始される。
従って命令ストリームAの実行パイプラインでの動作
開始時点から分岐先命令の実行パイプラインの動作開始
時点まで12マシンサイクルを必要とする。
第10図を参照すると、命令ストリームAの分岐先アド
レスは分岐ヒストリテーブル3に存在しないため書込ス
テージで分岐先アドレスが書込まれる(参照)。この
書込動作中に命令ストリームBの分岐命令TRCTnの先取
動作では、分岐ヒストリテーブルを参照できない(参
照)。したがってストリームBの分岐命令TRCTnは、分
岐先アドレスが分岐ヒストリテーブルに存在しないと認
識するため、同一分岐先アドレスを分岐ヒストリテーブ
ルに登録する(参照)。この登録により次に先取され
る命令ストリームCの分岐命令TRCTnも、分岐先アドレ
スが分岐ヒストリテーブルに存在しないと認識するた
め、同一分岐先アドレスが分岐ヒストリテーブルに登録
される。従って、この繰返しにより、分岐命令を含む命
令ストリームの実行パイプラインの動作開始時点と分岐
命令を含む命令ストリームの実行パイプラインの動作開
始時点との間は固定的に12マシンサイクル必要となる。
次に本発明の一実施例の動作を第11図を参照して詳細
に説明する。
第1図,第6図および第11図を参照すると、第1回目
の命令ストリームAの分岐命令TRCTnは、第2回目の命
令ストリームBの分岐先命令OP1およびそれに続く命令O
P2の先取を行なう。この先取パイプラインのの転送
ステージTで分岐先命令OP1がキャッシュメモリから読
出される。この転送ステージTでキャッシュメモリから
読出された分岐先命令OP1は次のマシンサイクルから実
行パイプライン動作を開始する。命令ストリームBの後
続命令OP3,4,5および6は、命令先取パイプラインお
よびに引続いて実行パイプラインで動作する。分岐ヒ
ストリテーブル3の分岐先アドレスフィールドは初期値
が格納されていると、分岐命令TRCTnはページングステ
ージPで認識するため、実行ステージEで演算され生成
された分岐先アドレスが、書込ステージWで分岐ヒスト
リテーブル3に登録される。この登録動作と、分岐先命
令OP1を含む命令ストリームBの分岐命令の先取パイプ
ラインのページングステージPIにおける分岐ヒストリ
テーブル3の索引動作とが競合する。この競合により命
令ストリームBの分岐命令TRCTnは先取パイプライン
のページングステージで分岐ヒストリテーブル3を索引
できないため、分岐ヒストリテーブル3には分岐先アド
レスが存在しないと認識する。従ってストリームBの分
岐命令TRCTnは分岐ヒストリテーブル3に分岐先アドレ
スの存在しないことを認識するため、実行パイプライン
の書込ステージWで分岐ヒストリテーブル3に実行ステ
ージEでの実行結果である分岐先アドレスを登録しよう
とする。
この動作を第4図を参照して詳細に説明する。
まず、ストリームAの分岐命令TRCTnの実行において
分岐ヒストリテーブル制御回路5,ループフラグ回路6お
よび書込制御回路7は以下のように動作する。
第4図を参照すると、信号線1083を介して与えられる
分岐ヒストリテーブル3を利用しない予測を示す信号が
与えられる。すなわち、信号線1083を介して、実行され
た分岐命令が分岐ヒストリテーブル3内の予測分岐先ア
ドレスで示す命令以外の命令への分岐であることを示す
信号が与えられる。この信号と、線1084を介して与えら
れる分岐方向が分岐(GO)側であることを示す信号との
論理積がアンドゲート53でとられ、新しい分岐先書込指
示を示す信号が線115を介して与えられる。しかし、一
回目のストリーム、すなわちストリームAの分岐命令TR
CTnの実行ではループフラグ回路6には初期値として
“0"が設定されている。したがってナンドゲート71の出
力は“1"となり、アンドゲート72からは線111にイネー
ブル信号が出力される。この出力とともに線1082を介し
てBCT命令実行信号が与えられかつアンドゲート53から
は新しい分岐先書込指示信号が出力されるため、アンド
ゲート52からループフラグ回路6用セット信号が出力さ
れる。このセット信号によりループフラグ回路6が“1"
にセットされる。
次にストリームBの分岐命令TRCTnの実行について説
明する。ストリームAの分岐命令TRCTnの実行によりル
ープフラグ回路6はセットされているため、線113には
“1"が出力されている。一方、ストリームBの分岐命令
TRCTnの実行に応答して線1082を介してBCT命令実行信号
が与えられるため、線110を介して、そのまま出力され
る。このため、ナンドゲート71から値“0"が出力され、
線115を介して与えられる新しい分岐先書込指示信号が
アンドゲート72により抑止され線111を介してイネーブ
ル信号は発生されない。
なお、最終回のループであるストリーム(図示せず)
の分岐命令TRCTnではループの繰返しから抜出るため、
線1081を介して分岐予測失敗信号が与えられる。この時
線1082を介してBCT命令実行信号が与えられるため、ア
ンドゲート51で論理積がとられ値“1"が出力される。こ
の出力に応答してループフラグ回路6はリセットされ
る。
第11図を参照すると、ストリームBの分岐命令TRCTn
の実行で分岐ヒストリテーブル3への登録が阻止される
ため、ストリームCの分岐命令TRCTnの先取パイプライ
ンのページングステージで分岐ヒストリテーブルが参
照できる。このため、ストリームDの分岐先命令OP1の
先取パイプラインの動作が開始される。この先取パイ
プラインの転送ステージによりストリームDの分岐先
命令OP1が取出され実行パイプラインの動作が開始でき
る。しかし、ストリームCの命令が8命令あり、そのパ
イプラインで8マシンサイクル必要とされるため、スト
リームCの最終命令である分岐命令TRCTnの解読ステー
ジDの終了後でなければ、ストリームDの分岐先命令OP
1の実行パイプラインの動作が開始できない。
したがって、3回目のストリームであるストリームC
の最初の命令OP1の実行パイプラインでの動作開始時点
から、4回目のストリームであるストリームDの最初の
命令OP1の実行開始時点まで8マシンサイクルですみ、
その結果処理の高速化が実現できる。
なお4回目のストリーム以下この間隔は8マシンサイ
クルですむ。
〔発明の効果〕
本発明はループ実行中の分岐ヒストリテーブルへの無
駄な書込を抑止することにより、ループの分岐性能を向
上できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図; 第2図は第1図の命令解読ユニット1の詳細な構成を示
す図; 第3図は第1図の演算ユニット4の詳細な構成を示す
図; 第4図は第1図の分岐ヒストリテーブル制御回路5,ルー
プフラグ回路6および分岐ヒストリテーブル制御回路7
の詳細な構成を示す図、および第5図から第11図は本発
明の一実施例に適用される命令ストリームおよびその動
作を説明するための図である。 図において、1……命令解読ユニット、2……命令アド
レスレジスタ、3……分岐ヒストリテーブル、4……演
算ユニット、5……分岐ヒストリテーブル制御回路、6
……ループフラグ回路、7……書込制御回路、8……ア
ドレス制御回路。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】分岐命令アドレスおよび分岐先アドレスを
    対にして分岐ヒストリテーブルに記憶する分岐ヒストリ
    テーブル書込制御装置において、 分岐命令の実行結果に基づいて前記分岐ヒストリテーブ
    ルに分岐先アドレスの書込を指示する書込指示信号を出
    力する書込指示手段と、 前記分岐命令が計数分岐命令である場合において、前記
    書込指示手段からの書込指示信号が入力されるときにセ
    ットされるとともに前記計数分岐命令が分岐しないこと
    を示す分岐失敗信号が入力されるときにリセットされる
    実行表示手段と、 前記実行表示手段がセットされているときに、前記書込
    指示手段の前記書込指示信号を無効化する無効化手段と
    を含むことを特徴とする分岐ヒストリテーブル書込制御
    装置。
JP63011123A 1987-01-22 1988-01-20 分岐ヒストリテーブル書込制御方式 Expired - Lifetime JP2555664B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63011123A JP2555664B2 (ja) 1987-01-22 1988-01-20 分岐ヒストリテーブル書込制御方式

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP1134387 1987-01-22
JP62-11343 1987-01-22
JP63011123A JP2555664B2 (ja) 1987-01-22 1988-01-20 分岐ヒストリテーブル書込制御方式

Publications (2)

Publication Number Publication Date
JPS63303432A JPS63303432A (ja) 1988-12-12
JP2555664B2 true JP2555664B2 (ja) 1996-11-20

Family

ID=26346519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63011123A Expired - Lifetime JP2555664B2 (ja) 1987-01-22 1988-01-20 分岐ヒストリテーブル書込制御方式

Country Status (1)

Country Link
JP (1) JP2555664B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3683439B2 (ja) 1999-08-24 2005-08-17 富士通株式会社 分岐予測を抑止する情報処理装置および方法
US20060190710A1 (en) * 2005-02-24 2006-08-24 Bohuslav Rychlik Suppressing update of a branch history register by loop-ending branches

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60164842A (ja) * 1984-02-08 1985-08-27 Nec Corp 命令先取り装置
JPS60175148A (ja) * 1984-02-21 1985-09-09 Nec Corp 命令先取り装置
JPS61175733A (ja) * 1985-01-30 1986-08-07 Nec Corp 分岐予測制御方式

Also Published As

Publication number Publication date
JPS63303432A (ja) 1988-12-12

Similar Documents

Publication Publication Date Title
US5237666A (en) Apparatus using address of a predetermined preceding instruction and target instruction address stored in history table to prefetch target instruction
JPH0283735A (ja) 命令先取り装置
EP0378415A2 (en) Multiple instruction dispatch mechanism
JPH056894B2 (ja)
US5175827A (en) Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table
US5615375A (en) Interrupt control circuit
JP2555664B2 (ja) 分岐ヒストリテーブル書込制御方式
US4566062A (en) Timing control system in data processor
KR970012141A (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
EP0573071A2 (en) A microprocessor
JPH03147134A (ja) 命令シーケンス制御装置
JP2503223B2 (ja) 先行制御方式
JP2545594B2 (ja) オペランドデータ先取り方式
JP3471691B2 (ja) マイクロ命令における分岐命令制御方式
JP3739556B2 (ja) 情報処理装置
JPS6134168B2 (ja)
JP2806690B2 (ja) マイクロプロセッサ
KR950014161B1 (ko) 어레이 프로세서(array processor)의 2단계(stage) 명령어 파이프라인 처리방법
JP2924004B2 (ja) 命令コード転送方式
JPH0241770B2 (ja)
JPH01239638A (ja) 分岐予測を行う情報処理装置
JPH03164945A (ja) データ処理装置
JPS6047618B2 (ja) 情報処理装置
JPH02254541A (ja) 条件分岐命令の制御方式
JPS61133440A (ja) デ−タ処理装置