JPS5991551A - 分岐先アドレス予測を行なう命令先取り装置 - Google Patents

分岐先アドレス予測を行なう命令先取り装置

Info

Publication number
JPS5991551A
JPS5991551A JP57201556A JP20155682A JPS5991551A JP S5991551 A JPS5991551 A JP S5991551A JP 57201556 A JP57201556 A JP 57201556A JP 20155682 A JP20155682 A JP 20155682A JP S5991551 A JPS5991551 A JP S5991551A
Authority
JP
Japan
Prior art keywords
instruction
branch
address
circuit
information
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
JP57201556A
Other languages
English (en)
Inventor
Ritsuo Sugaya
菅谷 律雄
Shuichi Hanatani
花谷 修一
Masanobu Akagi
赤木 正信
Koemon Nigo
仁後 公衛門
Toshiteru Shibuya
渋谷 俊輝
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
NEC Corp
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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Priority to JP57201556A priority Critical patent/JPS5991551A/ja
Priority to DE8383111451T priority patent/DE3382350D1/de
Priority to EP83111451A priority patent/EP0109655B1/en
Publication of JPS5991551A publication Critical patent/JPS5991551A/ja
Priority to US07/286,021 priority patent/US4984154A/en
Pending 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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

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)

Abstract

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

Description

【発明の詳細な説明】 発明の属する技術分野 本発明はデータ処理システムの命令シーケンスのステッ
プに含まれる分岐条件判定ステップ実行処理に先立って
判定結果を予測しつつ次の命令の先取りを行なう分岐先
アドレス予測を行なう命令。
先取り装置に関する。
従来技術 少なくとも1個の分岐命令を含む命令群が記憶装置に命
令シーケンスの形で格納されているテー夕処理システム
においては、このような命令シーケンスの実行は、次の
ように行なわれる。
まず、前記記憶装置の分岐元アドレスに分岐命令が格納
される。次に、この分岐命令に引き続いて実行される命
令が先取りされる。このあと、分岐命令が実行され、こ
の実行結果により次に実行される命令が明らかになる。
このようなシステムは米国特許4.200.927号に
提案されている。しかし、このシステムでは、分岐命令
先取り制御において実行結果の判別時まで命令先取り制
御を停止させると、処理の迅速化が妨げられる。この欠
点の除去のため、分岐命令の実行結果を予め予測しこの
予測に従って命令先取りを行なう方式が提案されている
。この予測が正しく行なわれたときには、データ処理シ
ステムは処理時間の少ない遅れで稼働する。例えば、そ
のような従来の予測方式としては次の3つの方式がある
。第1の予測方式では、全ての分岐命令の分岐先方向が
成功側または不成功側のいずれか一方のみに予測されて
いる。
他の1つの予測方式では、過去の事実に基づいて分岐先
方向を予測する。すなわち同じ分岐命令の過去の実行結
果において分岐先がすでに明らかにされているという事
実を用いてこの結果に基づいて予測を行なうことにより
予測的中率を高めている。このような予測方式の代表例
が特開昭57−76638号公報に示されている。
さらにもう1つの予測方式では、分岐命令に対応して分
岐の方向を予測する分岐指示フラグを多数用意し分岐命
令の発生に応答してこれら分岐指示フラグを参照するこ
とにより分岐先を予測している。この例の詳細は特開昭
53−74857号公報を参照できる。しかし、上述の
3つのいずれの予測方式においても分岐命令の読出し、
解読が必要不可欠であり、予測連中にもかかわらずこれ
らの読出しおよび解読動作分たけ処理が遅れるという欠
点がある。
この欠点を除去する予測方式が特開昭57−59253
号公報に示されている。この方式では、主記憶装置の命
令部の写しである命令キャッジ−メモリのブロックに対
応して該ブロック中に含まれる分岐命令の分岐先アドレ
スを、該ブロックの次にフエツチされるべきブロックの
アドレスとして記憶手段に保持している。命令先取り動
作において、命令キャッシュメモリへのアクセスと同時
に前記記憶手段をアクセスして前記分岐先アドレスを読
出し、読み出された分岐先アドレスにより先取りすべき
命令のアドレスを決定している点において、この方式は
上述の従来の3つの予測方式と異なり処理の迅速化に有
効である。しかし、この方式では、命令キャッジ−メモ
リのブロック対応で予測するため、該ブロックに分岐命
令が複数個存在するときにはそのそれぞれの分岐命令に
対応して予測を行なうことができない。この結果、精度
の粗い予測的中率しか得られないという欠点がある。
発明の目的 本発明の目的は上述の欠点を除去するようにした分岐先
アドレス予告を行なう命令先取り装置を提供することに
ある。
発明の構成 本発明の装置は、分岐命令のアドレスを指定する情報と
該分岐命令に対応する分岐先アドレスを含む分岐情報と
を対にして複数対記憶する分岐ヒス) IJテーブル手
段と、命令先取り動作を行なうるか否かを調べ、該分岐
命令の登録の判明に応答して応答する分岐情報を前記分
岐ヒストリテーブル手段から読み出す手段と、該分岐情
報に従い分岐命令の解読を行なうことなく命令先取り動
作を開始する命令先取り制御手段と、命令実行装置で先
アドレスの比較による分岐命令の分岐先アドレスが正し
く予測されたことを確認する手段と、分岐命令の分岐予
測が間違っていると判定された場合は該分岐命令の正し
い後続命令を取り出し実行する手段と、前記分岐命令の
実行結果で前記分岐ヒス) IJテーブル中の分岐情報
を更新する手段とを備えている2、 発明の原理と作用 本発明の特徴は分岐命令の実行における分岐方向に加え
て分岐先アドレスがその同じ分岐命令の過去の結果の把
握により比較的高い的中率で予測可能であるという事実
に基づいて装置が動作することにある。
発明の実施例 次に本発明の一実施例を図面を参照して詳細に説明する
。第1図を参照すると、本発明の一実施例は、命令アド
レス生成回路401、命令アドレス変換回路402、命
令解読回路403、オペランドアドレス生成回路404
、オペランドアドレス変換回路405、オペランド記憶
回路を有するオペランド読出し回路406、命令実行回
路407、命令記憶回路408、命令バッファ409、
分岐ヒストリテーブル(BHT)410、命令アドレス
レジスタ411、命令アドレス加算回路412、分岐情
報バッファ413、命令整列回路414、分岐情報切換
回路415、分岐情報レジスタ416.417.418
、および419、予測確認回路420、アドレス生成回
路421、選択面命令記憶回路408およびオペランド
読出し回路406内のオペランド記憶回路はともに主記
憶装置そのものであってもよく、さらに命令記憶回路4
08が主記憶装置の命令部の一部の写しである命令キャ
ッジ−メモリ、前記オペランド記憶回路が主記憶装置の
オペランド部の一部の写しであるオペランドキャッシュ
メモリとして構成されうる。
本発明は前述の命令の処理単位に対応した装置構成を必
ずしも有する必要はなく例えば命令アドレス生成回路4
01とオペランドアドレス生成回路404、命令アドレ
ス変換回路402とオペランドアドレス変換回路405
、命令記憶回路408とオペランド読出し回路406内
の記憶回路が共用されたコンピュータシステムにおいて
も適用され得る。前記分岐ヒストリテーブル(BHT)
410は分岐命令のアドレスを指定する情報と該分岐命
令の実行の予測としての分岐成否フラグと分岐先アドレ
スを第3図に示すように対にして記憶している。前記命
令記憶回路408に対する前記命令アドレスレジスタ(
IAR)411は、命令読出しのリクエストアドレスを
保持して命令の読出し動作を実行する。
さらに前記命令アドレスレジスタ414 (IAR)は
分岐ヒストリテーブル410(BHT)および命令アド
レス加算回路412に信号線101を介して接続されて
いる。前記レジスタ411の内容は該分岐ヒストリテー
ブル410(BAT)を索引し読出されるべき命令のア
ドレスがそれに登録されているか否かを示す信号を信号
線106に出力する。登録されていれば対応する分岐先
アドレスが信号5105に読出される。登録されていな
ければ前記命令アドレス加算回路412により後続の命
令語の命令先取りのためのアドレスが生成される。前記
命令アドレス加算回路412は1回のリクエストで読出
される命令語を8Byteと仮定したとき単に督’ I
AR+−811を出力107に生成する回路である。前
記命令バッファ409は、命令記憶回路408から読出
された8 B y t eの先取り命令語を蓄積し命令
処理部への命令の供給における待行列(Queua )
を形成する。
前記命令整列回路414は、命令バッファ409が空の
とき信号線102を介して命令記憶回路408から読出
される8Byteの命令語に応答して前記命令バッファ
409が空でないとき信号m103を介して前記命令バ
ッファに貯えられる8Byteの命令語に応答して命令
を抽出して信号9104を介して命令解読回路403に
命令を供給する回路である。前記分岐情報バッファ41
3は、前記命令バッファ409に格納される命令語に対
応して用意されておりその命令語中に分岐成功と予測さ
れた分岐命令が存在ずれば、第7図に示す該分岐命令の
分岐情報を格納する回路であり、分岐命令のアトt・ス
は信号線101を介してまた分岐情報としての分岐先ア
ドレスおよびVビットは分岐ヒストリテーブル410(
BHT)から信号線105を介してそれぞれセットされ
る。前記分岐情報切替回路415は、命令バッファ40
9が空のとき信号線101および105を介して与えら
れる前記分岐情報をそうでないときは前記分岐情報バッ
ファ403を介して与えられる前記分岐情報をそれぞれ
出力する。前記レジスタ416.417、および418
はそれぞれ分岐命令の命令解読、命令アドレス生成、ア
ドレス変換の各処理ステージに対応しその分岐情報を保
持する。前記分岐情報レジスタ419はその分岐分アド
レス部を該分岐命令の実行によって生成される実際の分
岐先アドレスに置き換えて保持するレジスタである。前
記予測確認回路420は分岐命令の実行によって生成さ
れる実際の分岐命令の生成結果と前記分岐情報レジスタ
418に保持される該分岐命令の予測情報との一致をと
る回路である。前記アドレス生成回路421は前記分岐
情報レジスタ419に保持される分岐命令のアドレスと
該分岐命令自身の命令語長とを加算し分岐N0GO側の
命令の命令アドレスを生成する。前記選択回路422は
分岐命令の成否信号線111の状態に応答して該信号線
の状態が分岐GOを示すとき線115を介して与えられ
る前記分岐情報レジスタ419に保持される分岐先アド
レスの出力を選択し、前記線の状態が分岐N0GOを示
すとき線116を介して与えられる前記アドレス生成回
路421の出力を選択し、信号m113を介して該選択
回路422の出力をレジスタ423に供給する。
前記レジスタ423は分岐命令の予測が失敗したとき分
岐ヒストリテーブル410(BHT)を更新するための
ものであり、さらに信号線117を介して命令アドレス
レジスタ411(IAR)に命令先取りのための新たな
アドレスを供給する。前記命令先取り制御回路424は
線106を介して分岐ヒストリテーブル410CBHT
)から与えられる分岐予測信号および予測確認回路から
線112を介して与えられる予測成否信号に基づいて命
令アドレスレジスタ411(IAR)の入力を制御する
回路である。
次ニ前記分岐ヒストリテーブル410 (BHT)、前
記予測確認回路420および前記命令先取り制御回路4
24の詳細なブロック図とタイムチャー トを参照しな
がら本実施例の動作を詳細に説明する。
第2図を参照すると、前記分岐ヒストリテーブル410
(B)iT)は、ディレクトリ記憶部501、データ記
憶部502、テスト匪1路503.504.505、お
よび506、プライオリティ回路507、レベル選択回
路508、およびオア回路509を備えている。
前記記憶部501および502は、1回のリクエストに
対して命令記憶回路408から読出される命令語の単位
をブロックの単位とし、セット数mルベル数nの記憶部
である。
第3図を参照すると、記憶部501には分岐命令の命令
アドレスの一部とその内容が有効か否かを示す■ビット
が格納され記憶部502には分岐先アドレスの実アドレ
スが格納されている。前記、■ビットは対応する分岐ヒ
ス) IJ y−プル(BHT)410のワードの有効
性を示すと同時に該分岐命令の実行の予測としての分岐
成否フラグの機能を有する。
この分岐ヒストリテーブル(Bl(T)410への索引
は以下のようなセットアソシアティブ法によって行われ
る。
第5図に示される前記テスト回路503.504.50
5、および506はテーブル410の各レベルに対1+
i5、シて命令アドレスレジスタ4xl(Ll)に保持
されるリクエストアドレスが各レベルのBHT−AAi
 (iはレベルに対応するサフィクスを示す)に登録さ
れているか否かを示す信号を信号線130.131.1
32.133に出力する。
第4図を参照すると、前記テスト回路503.504.
505および506のそれぞれは、一致回路701およ
び大小比較回路702から構成されている。
前記比較回路701では、命令アドレスレジスタ(IA
R)411に保持されるリクエストアドレスの一部IA
R(:18−28)をセットアドレスとして読出された
記憶部501の各レベルの内容とを読出し前記レジスタ
411の内容IAR(: 4−17 )とが比較され、
等しいアドレスが存在するか否かを検出する。該一致回
路701の出力により命令アドレスレジスタ(IAR)
411に保持されるリクエストアドレスで読出されるべ
き命令語8Byteブロツク中ニすでに分岐ヒストリテ
ーブル(BHT)410に登録された分岐命令が存在す
るか否かが、判明する。
しかしリクエストアドレスとそれが読出すべき分岐命令
とのス」応をとるには上記一致検出のみでは不十分であ
る。第5図を参照すると、1回のリクエストで読出され
る8Byteの命令語のブロック中に2Byte命令B
CO,A、BCI、BC2の4個の命令が存在する。命
令BCO1BCI、BC2がともに分岐成功と予測され
た分岐命令であるときには、各々の分岐命令はともにそ
のアドレスの一部が記fM部(BHT−AA ) 50
1に登録される。このとき他の分岐命令から命令人に分
岐して命令Aのアドレス<A>が前記命令語のブロック
を読出すためのリクエストアドレスとして命令アドレス
レジスタ(IAR)411に保持されるときには、分岐
ヒストリテーブル(BHT)410から読出されるべき
分岐命令の情報は命令の実行の経路から分岐命令BCI
の情報でなければならない。
従って前記レジスタ(1,A、R) 411に保持され
るリクエストアドレスと前記記憶部(BHT−AA i
 ) 501に保持される分岐命令のアドレスとの関係
が上記の一致条件とともに次の関係が成立するとき対応
するレベルのBl〜IT−HITi信号が生成される。
この信号は線130−133を介してオア回路509に
与えられ、該BHT−HI’I’ i信号のオア信号が
線106を介して出力され分岐予測信号(BHT−)L
IT信号)となる。
BHT−HIT i =  (I皿(:4−17)  
=BHT−益i(:4−17))凸(If部1:29.
30)≦BHT−AAi (:29.30))A BH
T−AAi (V) 再び第4図を参照すると、前記大小比較回路は、この条
件を実現する回路である。さらに前記信号BHT−HI
Tiの条件が2ヶ以上のレイルにおいて成立したとき記
憶部501の対応するレベル(BHT−AAi )に保
持される分岐命令のアドレスの8Byteブロツク内ア
ドレスBHT −AA i (: 29.30 )の値
の最メグも小さいレベルが選択される必要がある。
再び第5図を参照すると、命令BCIおよびBC2の分
岐命令関係情報が格納される分岐ヒストリテーブル41
0のレベルで前記信号BHT−HI1.Ti条件が共に
成立する。このとき命令の実行の経路から命令BCIに
対するレベルが選択される必要がある。
前記プライオリティ回路507は、前記信号BHT−1
−11Tiの2ヶ以上の成立に対するものであり、この
出力により記憶部BHT−DA502のセットアドレス
IAR(:18−28)で示されるエントリの分岐先ア
ドレスがレベル選択回路508を介して読出される。
第6図を参照すると、前記プライ第1ノテイ回路507
はアンド回路群601−604およびオア回路群605
−608  から構成されている。前記アンド回路群6
01−604はn −1−1並列列心こ配置されてt/
入る。
前記第2図におけるレベル選択回路508のnヶのレベ
ルの選択信号は第6図における信号■。、■□、■2、
■3により以下のように与えられる。
voのとき       ■。Lo、■0L1、 、■
0Lnv 、vのとき     ’VILo、 VlL
、、 、v1Ln1 ■、■、■。トキv2Lo、v2L工、 ”2”no 
 1 2 vo、v、 、v2.v3のとき ■3Lo1■3L□
、 、■、Ln以上のようにして第2図におけるレベル
選択回路508から読出された分岐情報は第1図の命令
記憶回路408から読出される命令と対応づ番すること
が可能である。
第9図には、命令記憶回路408Gこお番する命令と分
岐ヒストリテーブル(BHT)410にお番する分岐情
報の上記対応関係が示されている。命令の実イテ順序が
命令A。、分岐命令BCo1B□、BCl、B2、B3
、BCCCと予測された場合である。な 2%   1’   2 お、〈A〉は人命令のアドレスを、BCo(ま分岐命令
をそれぞれ示す。
第10図を参照すると、前記第9図番こ示した分岐ヒス
トリテーブルBHT410による命令先取り動作は次の
ようにされる。リクエストアドレスの命令アドレスレジ
スタ411のセットQこ応答して命令記憶回路408か
ら命令語が読出され、これと同時にテーブルBHT41
0が索引される。信号線106を介してBHT−BIT
信号が出力されると記1意部B1−4T−DA502の
分岐先アドレス〈B1〉力(アドレスレジスタ411に
セントされ、命令先取り力く行われる。前記信号線10
6を介してBl(T−HI T信号が出力されないとき
には命令アドレスカ目算回路412に命令Aの8]くイ
ト4!11−アドレス<<A>>力(から読出される命
令語は、テーブルBl−IT410の内容による予測に
従って順次読出さ才t1命令)々ノファ409には予測
された命令の実行順に格納することが11丁能である。
このときたとえ信号BHT−1−I I ’I’が出方
されても分岐予測方向と反対側の命令先取り動作を一部
行わせしめた後に分岐予測方向の命令先取り動作を行っ
てもよい。
以上のようにして命令先取りされた命令が分岐命令で第
1図の命令整列回路414により命令解読回路403に
導かれたとき同時に該分岐命令に対応する分岐情報が最
初の分岐情報レジスタ416 (QRO)に−じットさ
れる。
以降前記分岐命令の進行に伴い前記命令解読、アドレス
変換に対応して前記分岐情報が第2および第3の分岐情
報レジスタ417(QRI)および418 (QR2)
に転送される。そして前記分岐命令の実行によって生成
される実際の分岐命令の生成結果と前記分岐情報レジス
タ418(QI(,2)に保持される該分岐命令の予測
情報との一致が予測確認回路420によりチェックされ
る。
第8図を参照すると、前記予測確認回路420は比−較
回路801、フリップ70ツブ802および803、ア
ンド回路804−806、真偽回路807および808
、およびオア回路809から構成されている。前記比較
回路801には分岐命令の実行により生成された分岐先
アドレスの実アドレスが命令アドレス変換回路402か
ら信号線109を介して与えられるとともに、分岐情報
レジスタ418(QR2)から予測された分岐先が線1
08を介して与えられる。前記比較回路801では両者
の一致、不一致が判定される。判定結果と前記レジスタ
418からm108を介して与えられるVビットがアン
ド回路806に与えられる。論理程結果により分岐GO
と予測されたときこの事実を示す信号が7リツプフロソ
プ802にセットされる。このフリップフロップ802
の出力がII I 11で実際の分岐命令を実行した結
果が分岐N0GOであればアンド回路805から予i1
:!IGO失敗信号123が生成される。前記フリップ
フロップ801の出力が1)1″で分岐命令の実行結果
かGOであればアンド回路804から予測N0GO失敗
信号124が生成され。さらに該信号124と前記予測
GO失敗信号123との論理和がオア回路809から予
測失敗信号112として生成される。
第1図および第11図を参照すると、分岐情報レジスタ
41.9 (QR3)の分岐先アドレス部には前記命令
アドレス変換回路402から新たに生成される分岐先ア
ドレスがセットされる。また前記分岐情報レジスタ41
9(QR3)の分岐命令BCIのアドレス部の内容と該
分岐命令BCI自身の命令語長部の内容とがアドレス生
成回路421により加算され分岐N0GO側の命令の命
令アドレスが生成される。
ぞして分岐命令BCIの実際の実行により分岐■からは
前記分岐情報レジスタ419(+$3)から線115を
介して与えられる分岐先アドレス部の出力〈Dl〉が分
岐N0GOならば線116を介して与えられる前記アド
レス生成回路421の出力〈B2〉か選択回路422に
より選択される。前記分岐命令BCIの予測失敗信号1
12が予測確認回路421から発生したとき該選択回路
422の出力〈Dl〉が線113を介してレジスタ42
3(WR)にセットされる。
一方分岐情報レジスタ419 (QR3)の分岐命令の
アドレス<:BCl>は信号線114を介して命令アド
レスレジスタ411(IAR)にセントされる。このア
ドレスは該分岐命令に対応する分岐ヒス) IJチー 
プル410(BHT)の更新のため線101を介して該
テーブル410に′フィトアドレスとして供給される。
前記予測失敗信号112の出力が7リツプフロノプ42
5に与えられ、この出力か指示パネルとして線119を
介してテーブル401に与えられる。
この出力に応答して分岐命令の次の命令先取り時のため
の分岐予測情報の更新が行なhれる。この更新は本実施
例では予測N0GO失敗のとき前記レジスタ423(W
R)に保持される新たな分岐先アドレスで行なわれ、予
測GO失敗のときは■ビットをリセットするように行わ
れるが分岐予測情報の更新におけるアルゴリズムを用い
て他の方法により行なって差しつかえない。予測失敗し
たとき予測側に後続する命令の動作はすへてキャンセル
され前記レジスタ423(WR)に保持される新たなリ
クエストアドレスが分岐ヒストリテーブル410(BI
−IT)の更新後に命令アドレスレジスタ411(Il
l)に供給され改めて命令の取出しが開始される。
第12図を参照すると、前記命令先取り制御回路424
はフリップフロップ1201、真偽回路1202−1.
204およびアンド回路1205から榴成されている。
前記フリップフロップ1201は前記予測失敗信号11
2を1マシンサイクル保持するためのフリップフロップ
である。この回路424の出力はアドレスレジスタ41
1の前段にあるセレクタの選択指示信号となる。この選
択指示信号は、前記命令アドレス加算回路412の出力
、前記テーブル410の出力、および分岐情報レジスタ
419の出力のうちのどれを選択するかを指示するだめ
の信号である。なお、この命令先取り制御回路424の
制御により分岐予測が的中したときには後述する第16
図の命令処理が行なわれ、分岐予測が失敗したときには
後述する第17図の命令処理が行なわれる。
前記命令アドレス加算回路11は線106を介してB)
I’r−)LIT信号が出力されないとき分岐N0GO
側の命令の先取りを行うためのアドレス生成2行う。
このときアドレスは実アドレスで加算が行われるために
、例えば、ページングを行うコンピュータシステムにお
いて前記アドレス加算がページ境界を越えた場合アドレ
ス変換を改めてやり直す必要が生じる。このために前記
命令アドレス加算回路11にページ境界越え検出回路を
設は該検出回路によりページ境界越えが生じた場合信号
線Lllにより命令アドレス生成回路1を起動し命令先
取り動作を改めて命令アドレス生成回路(IA)401
及び命令アドレス変換回路(IT)402から行うよう
に制御すればよい。
ここで問題となるのはあらたに分岐ヒストリテーブルB
HT410に前記命令アドレス情報を登録するとき既存
のどの部分に格納された命令アドレス情報を追い出すか
である。
この方法としては使われた順序、すなわち最も古く使わ
れたものから順に追い出す法LRU(LeastRec
cntly ’Used ’)情報が入った順序、すな
わち最も古く入ったものから順に追い出ず方法FIFO
(First In First Out )等がある
がとちらを用いてもよい。
発明の効果 次に本発明の効果を第13図から第17図を参照しなが
ら詳細に説明する。
第13図を参照すると、命令の処理は一般的に次の8つ
の処理単位に分けられる。
(1)  IA スy−シ: 実行ずべき命令の命令ア
ドレス(論理アドレス)が生 J父される。
(2)  ITXステージ生成された命令アドレスのア
ドレス変換が行われる。
(3)  ICステージ:変換された命令の実アドレス
で記憶装置から命令が読 出される。
(4)  IDステージ:続出された命令が解読される
(5)OAXステージ解読された命令のオペランドアド
レス(lアドレス) が生成される。
(6)OTXステージ生成されたオペランドアドレスの
アドレス変換が行な われる。
(74QCステージ:変換されたオペランドの実アドレ
スで記憶装置からオ ペランドが読出される。
(8)EXステージ:命令が実行される。
上述のITXステージよびOTXステージアドレス変換
においてアドレス変換バッファを設は必要な変換テーブ
ルが該アドレス変換バッファに存在すれば上記アドレス
変換処理は高速に実行し得る。
また、上述のICステージおよびocXステージ命令お
よびオペランドの読出し動作において主記憶装置のテー
クの一部の写しを保持するキャッシュメモリに存在すれ
ばICステージおよびocXステージ処理は高速に行い
うる。情報処理システムは−F述の各処理単位に対応し
たリリースを必ずしも有する必要はない。しかし、説明
の簡単のためにここでは各処理単位にその機能を果す回
路があるものとする。上述のIT、OTおよびIC,Q
Cの各ステージの高速処理が可能なとき複数の命令の処
理の流れを無駄なく実行する8段のパイプライン制御が
可能である。
このときの分岐命令を含む命令の処理の流れを第14図
および第15図を参照しながら説明する。
第14図は分岐命令の命令先取りにおいて前述のすべて
の分岐は“GO”であると予測した場合の命令の処理の
流れを示す。すなわち、命令AOは分岐命令BCの分岐
条件を決定する命令で該分岐条件は命令AOの実行結果
、すなわち、時刻t7において決定される。分岐命令B
Cは時刻t4において解読されると命令アドレスの生成
回路を用いて分岐先命令B1のアドレスを生成し以後B
1命令を先取りするように動作する。時刻t2、t3、
およびt4には分岐N0GO側の後続命令A1、A2、
およびA3の命令先取りのためのアドレス生成が開始さ
れる。時刻t6およびt7には予測動作としての分岐G
O側の後続命令B2およびB3の命令先取り動作が開始
される。時刻t7において分岐条件の判定結果により、
時刻t8以降は正しい命令の処理の流れに従って処理が
継続される。
この場合、分岐命令の出現によるパイプラインのロスサ
イクルは 予測的中(分岐GO)   のとき 3サイクル予測失
敗(分岐N0GO)のとき 3サイクルである。
分岐GO率γ 予測的中率α としたときこの場合γ=
αであり予測的中率は5分5分である。
従ってγ=α二05であり1分岐命令光り平均的なロス
サイクルは 3×γ+3×(−γ)=3サイクル である。
一方、第15図は分岐命令の命令先取りにおいて前述の
同じ分岐命令の過失の結果に基づいて予測を行った場合
の命令の処理の流れと示す。すなわち、分岐命令BCは
時刻t4において解読されるとともに分岐命令のアドレ
ステーブルを探索しその有無によるかもしくは分岐指示
フラグの指示の予測により、分岐GO側の命令B1を先
取りするか分岐N0GO側の命令A1を先取りするかを
決定する。
前回と同様に時刻t2、t3およびt4には分岐N0G
O側の後続命令AI、A2およびA3の命令先取りのた
めのアドレス生成が開始される。時刻t6およびt7に
は予測による命令先取りの後続命令B1およびB2もし
くはA4およびA5の命令のアドレス生成が開始される
。時刻t7において分岐条件の判定結果により時刻t8
以降は正しい命令の処理の流れに従って処理が継続され
る。
この場合分岐命令の出現によるパイプラインのロスサイ
クルは 分岐GOと予測して的中したとき 3サイクル分岐N0
GOと予測して的中したとき 0サイクル分岐GOと予
測して失敗したとき 3サイクル分岐N0GOと予測し
て失敗したとき 6サイクルである。従って、分岐Go
率γ=05 予測的中率α=08と仮定したとき1分岐
命令光りの平均的なロスサイクルは 3、− r−a十〇・(1−r)α+3rfl:1−a
)+6(1−r) (1−a)=21サイクル を得る。
従ってこの従来の発明は同じ分岐命令の過去の結果に基
づいて予測を行った場合高い予測的中率を得るという原
理を用いることにより常に分岐(1)と予測する第14
図に示す処理に比べ幾分の改良がみられる。しかしこの
改良された発明においてもたとえ予測的中時分岐GOの
場合は依然として3サイクルのロスサイクルを要するこ
とになりこれ以上短縮できない。従って分岐命令が生じ
た場合たとえ予測が的中してもロスサイクルを生じるこ
とになる。
第16図および第17図は本発明による命令の処理の流
れを示している。本発明における命令の処理単位ICス
テージは命令を記憶装置から読出す機能の他に、分岐ヒ
ストリテーブルを索引し読出されるl命令のアドレスが
該分岐ヒストリテーブルに登録されているか否かを検出
し、登録されていれば対応する分岐情報を読出し、登録
されていなければ後続命令の命令先取りのためのアドレ
スを生成する機能を有する。
第16図および第17図を参照すると、分岐命令BCの
時刻t14こおける動作は次のようにして行なわれる。
まず、該分岐命令BCが命令キャッシュメモリから読出
されると同時に分岐ヒストリテーブルが索引される。該
分岐命令BCの命令アドレスが登録されていれは対応す
る分岐情報が読出される。該分岐情報と分析した結果、
分岐GO側の予測上して該分岐情報中に含まれる分岐先
アドレスにより分岐先命令B1の命令先取りを開始する
かもしくは分岐N0GO側の予測として分岐N0GO側
の命令A1の命令アドレスを生成して命令A1の先取り
を開始するかが決定される。以降時刻t5までは前記分
岐命令BCの予測期間であり予測側の後続命令が先取り
され時刻t5において分岐条件が決定される。予測的中
時には第16図に示すようにパイプラインの流れは乱れ
を生ずることなく処理が継続される。予測失敗時には第
17図に示すように16時刻で前記分岐ヒストリテーブ
ルの更新を行った後に正しい命令の流れから命令の取出
しを行うように制御される。この場合分岐命令の出現に
よるパイプラインのロスサイクルは予測が的中したとき
      0サイクル予測が失敗したとき     
 5サイクルである。予測的中率αはこの場合分岐方向
だけでなく分岐先アドレスをも予測することから分岐方
向だけの予測に比べ若干低くなるがその割合は機微たる
ものである。従って、予測的中率α=0.8として1分
岐命令当りの平均的なロスサイクルは0・α+5・(1
−α)=1サイクル となり従来技術に比べて格段に改良される。
本発明には、分岐ヒス) IJテーブルに分岐命令の分
岐先アドレスを含む分岐情報を登録し、分岐命令の実行
時は実行結果から得られる分岐先アドレスと該分岐命令
に対応する分岐ヒス) IJテーブルの分岐先アドレス
を比較して分岐命令の分岐予測が的中したか否かを調べ
、分岐予測失敗時には正しい後続命令を取り出し実行を
再開し、分岐情報を更新する手段をもつことにより実行
の度に分岐先アドレスが変化し得る分岐命令を含む分岐
予測を可能とし、分岐予測的中時はバイブライン制御に
おける分岐命令の実行をロスサイクルなしで処理できる
という効釆がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図は分岐ヒス
トリテーブルの詳細な構成を示す図、第3図は第2図の
記憶部501および601の記憶形式を示す図、第4図
は第2図のテスト回路503−506の詳細な構成を示
す図、第5図は命令語の構成を示す図、第6図は第2図
のプライオリティ回路507の詳細な構成を示す図、第
7図は第1図のレジスタ417−419の格納形式を示
す図、第8図は第1図の予測確認回路420の詳細な構
成を示す図、第9図は第1図の命令記憶回路408にお
ける命令と分岐ヒストリテーブル410における分岐情
報との対応関係を説明するための図、第10図は第9図
のテーブル410による命令先取り動作を説明するだめ
の図、第11図は予測失敗時における命令先取り動作開
始までの動作を説明するための図、第12図は第1図の
命令先取り制御回路の詳細な構成を示す図、第13図は
命令の処理の流れの概要を示す図、第14図および第1
5図は従来の予測方式を用いた命令の処理の流れを示す
図、第16図は本発明において、分岐命令の予測が的中
したときの命令の処理の流れを示す図、および第17図
は本発明において分岐命令の予測が失敗したときの命令
の処理の流れを示す図である。 第1図から第17図において、401− 命令アドレス
生成回路、402  命令アドレス変換回路、403 
 命令解読回路、404  オペランドアドレス生成回
路、405 ・・オペランドアドレス変換回路、406
  オペランド読出し回路、407 ・・命令実行回路
、408・・命令記憶回路、409命令ハソフア、41
0 ・・分岐ヒストリテーブル(BHT)、411  
命令アドレスレジスタ(■鉦)、412  命令アドレ
ス加算回路、413 ・分岐情報バッファ、414  
命令整列回路、415  分岐情報切換回路、416・
 分岐情報レジスタ(映0)417 ・分岐情報レジス
タ(QRI)、 418  分岐情報レジスタ(QR2
)、419・ 分岐情報レジスタ(QR3)、420 
 予測確認回路、421 ・アドレス生成回路、422
・・・・選択回路、423レジスタ(WR)、424・
 命令先取り制御回路、425  フリップフロップ、
501.502− 記憶部、503.504.505.
506  テスト回路、507   プライオリティ回
路、508 選択回路、509  オア回路。 代理人 弁理士  内 原   晋 クロン7 第1/ 圀 第12図 第13 暫 l tol tt1t21 t3’ t41 tsl 
 t61t71 tB1第14  区 1tol tt1t21ts1f:41 tsl  t
61t71−(,51牟215 図 tθ tt  t2  t3tyy  ts  t6粟
76図 / \ 8/   Al tlf、:zltsltりl ts l t61 t7
1 ta ’口で 一石]5 截77に

Claims (1)

  1. 【特許請求の範囲】 情報処理装置における分岐命令のアドレスを指定する情
    報と該分岐命令に対応する分岐先アドレスを含む分岐情
    報とを対にして複数対記憶する分岐ヒストリテーブル手
    段と、 命令先取りにおいて先取りされる分岐命令のアドレスを
    指定する情報か前記分岐ヒストリテーブル手段に登録さ
    れているか否かを調べ該分岐命令の登録の判明に応答し
    て前記分岐ヒス) IJテーブル手段から対応する分岐
    情報を読み出す手段と、該分岐情報に従い命令の先取り
    動作を開始する命令先取り制御手段と、 命令実行装置で実行された分岐命令の分岐先アドレスの
    結果と該分岐命令の分岐ヒストリテーブル手段の分岐情
    報の分岐先アドレスとを比較し、該分岐命令の後続命令
    が正しく先取りされたか否かを確認する手段と、 前記確認手段により分岐命令の分岐予測が間違っている
    と判定された場合には、該分岐命令の正しい後続命令を
    取り出し実行する手段と、前記分岐命令の実行結果で前
    記分岐ヒス) IJテーブル手段中の該分岐命令情報を
    更新する手段とを含むことを特徴とする分岐先アドレス
    予測を行なう命令先取り装置。
JP57201556A 1982-11-17 1982-11-17 分岐先アドレス予測を行なう命令先取り装置 Pending JPS5991551A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP57201556A JPS5991551A (ja) 1982-11-17 1982-11-17 分岐先アドレス予測を行なう命令先取り装置
DE8383111451T DE3382350D1 (de) 1982-11-17 1983-11-15 Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse.
EP83111451A EP0109655B1 (en) 1982-11-17 1983-11-15 Instruction prefetching device with prediction of a branch destination address
US07/286,021 US4984154A (en) 1982-11-17 1988-12-19 Instruction prefetching device with prediction of a branch destination address

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57201556A JPS5991551A (ja) 1982-11-17 1982-11-17 分岐先アドレス予測を行なう命令先取り装置

Publications (1)

Publication Number Publication Date
JPS5991551A true JPS5991551A (ja) 1984-05-26

Family

ID=16442999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57201556A Pending JPS5991551A (ja) 1982-11-17 1982-11-17 分岐先アドレス予測を行なう命令先取り装置

Country Status (1)

Country Link
JP (1) JPS5991551A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01258032A (ja) * 1988-04-07 1989-10-16 Mitsubishi Electric Corp パイプライン処理機構を持つデータ処理装置
JPH0254336A (ja) * 1988-08-18 1990-02-23 Mitsubishi Electric Corp データ処理装置
JPH02144626A (ja) * 1988-11-25 1990-06-04 Nec Corp マイクロプロセッサ
JPH02153428A (ja) * 1988-12-05 1990-06-13 Matsushita Electric Ind Co Ltd キャッシュ装置と命令読出し装置
US5732254A (en) * 1996-02-09 1998-03-24 Fujitsu Limited Pipeline system branch history table storing branch instruction addresses and target addresses with inhibit bits
US5978904A (en) * 1988-03-01 1999-11-02 Mitsubishi Denki Kabushiki Kaisha Data processor
US6484253B1 (en) 1997-01-24 2002-11-19 Mitsubishi Denki Kabushiki Kaisha Data processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0771491A (ja) * 1993-08-30 1995-03-17 Asmo Co Ltd 逆転防止軸受装置
JP2009131047A (ja) * 2007-11-22 2009-06-11 Asmo Co Ltd パワーウインド用モータ
WO2011145388A1 (ja) * 2010-05-19 2011-11-24 アイシン精機株式会社 セルフロッククラッチ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0771491A (ja) * 1993-08-30 1995-03-17 Asmo Co Ltd 逆転防止軸受装置
JP2009131047A (ja) * 2007-11-22 2009-06-11 Asmo Co Ltd パワーウインド用モータ
WO2011145388A1 (ja) * 2010-05-19 2011-11-24 アイシン精機株式会社 セルフロッククラッチ

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978904A (en) * 1988-03-01 1999-11-02 Mitsubishi Denki Kabushiki Kaisha Data processor
US6408385B1 (en) 1988-03-01 2002-06-18 Mitsubishi Denki Dabushiki Kaisha Data processor
JPH01258032A (ja) * 1988-04-07 1989-10-16 Mitsubishi Electric Corp パイプライン処理機構を持つデータ処理装置
JPH0254336A (ja) * 1988-08-18 1990-02-23 Mitsubishi Electric Corp データ処理装置
JPH02144626A (ja) * 1988-11-25 1990-06-04 Nec Corp マイクロプロセッサ
JPH02153428A (ja) * 1988-12-05 1990-06-13 Matsushita Electric Ind Co Ltd キャッシュ装置と命令読出し装置
US5732254A (en) * 1996-02-09 1998-03-24 Fujitsu Limited Pipeline system branch history table storing branch instruction addresses and target addresses with inhibit bits
US6484253B1 (en) 1997-01-24 2002-11-19 Mitsubishi Denki Kabushiki Kaisha Data processor

Similar Documents

Publication Publication Date Title
US4881170A (en) Instruction prefetch control apparatus
US4764861A (en) Instruction fpefetching device with prediction of a branch destination for each branch count instruction
EP0381470B1 (en) Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer
US4725947A (en) Data processor with a branch target instruction storage
US4477872A (en) Decode history table for conditional branch instructions
US4811215A (en) Instruction execution accelerator for a pipelined digital machine with virtual memory
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
JPH0242569A (ja) ベクター処理システムに用いる文脈スイッチング方法及び装置
US5297281A (en) Multiple sequence processor system
JPH0283735A (ja) 命令先取り装置
JPS6255736A (ja) デジタルプロセッサ制御装置
JP3486690B2 (ja) パイプライン方式プロセッサ
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
US4924425A (en) Method for immediately writing an operand to a selected word location within a block of a buffer memory
JP2570859B2 (ja) データ処理装置
JPH046983B2 (ja)
JPS5991554A (ja) 分岐方向予測を行なう命令先取り装置
JPS6236258B2 (ja)
JPS6310451B2 (ja)
JPH0695306B2 (ja) 命令先取り装置
JPS6051947A (ja) 仮想記憶計算機における命令先取方式
JPS60175148A (ja) 命令先取り装置
JPH07200406A (ja) キャッシュシステム
JP2901573B2 (ja) スーパースカラー方式の情報処理装置
JPH0754460B2 (ja) 命令先取り装置