JPS6310451B2 - - Google Patents

Info

Publication number
JPS6310451B2
JPS6310451B2 JP57201557A JP20155782A JPS6310451B2 JP S6310451 B2 JPS6310451 B2 JP S6310451B2 JP 57201557 A JP57201557 A JP 57201557A JP 20155782 A JP20155782 A JP 20155782A JP S6310451 B2 JPS6310451 B2 JP S6310451B2
Authority
JP
Japan
Prior art keywords
instruction
branch
address
information
circuit
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
Application number
JP57201557A
Other languages
English (en)
Other versions
JPS5991552A (ja
Inventor
Toshiteru Shibuya
Shuichi Hanatani
Masanobu Akagi
Koemon Nigo
Ritsuo Sugaya
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 JP57201557A priority Critical patent/JPS5991552A/ja
Priority to DE8383111451T priority patent/DE3382350D1/de
Priority to EP83111451A priority patent/EP0109655B1/en
Publication of JPS5991552A publication Critical patent/JPS5991552A/ja
Publication of JPS6310451B2 publication Critical patent/JPS6310451B2/ja
Priority to US07/286,021 priority patent/US4984154A/en
Granted 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)

Description

【発明の詳細な説明】 発明の属する技術分野 本発明はデータ処理システムの命令シーケンス
のステツプに含まれる分岐条件判定ステツプ実行
処理に先立つて判定結果を予測しつつ次の命令の
先取りを行なうセツトアソシアテイブ型分岐ヒス
トリーテーブルを有する命令先取り装置に関す
る。
従来技術 少なくとも1個の分岐命令を含む命令群が記憶
装置に命令シーケンスの形で格納されているデー
タ処理システムにおいては、このような命令シー
ケンスの実行は、次のように行なわれる。
まず、前記記憶装置の分岐元アドレスに分岐命
令が格納される。次に、この分岐命令に引き続い
て実行される命令が先取りされる。このあと、分
岐命令が実行され、この実行結果により次に実行
される命令が明らかになる。このようなシステム
は米国特許4200927号に提案されている。しかし、
このシステムでは、分岐命令先取り制御において
実行結果の判別時まで命令先取り制御を停止させ
ると、処理の迅速化が妨げられる。
この欠点の除去のため、分岐命令の実行結果を
予め予測しこの予測に従つて命令先取りを行なう
方式が提案されている。この予測が正しく行なわ
れたときには、データ処理システムは処理時間の
少ない遅れで稼動する。例えば、そのような従来
の予測方式としては次の3つの方式がある。第1
の予測方式では、全ての分岐命令の分岐先方向が
成功側または不成功側のいずれか一方のみに予測
されている。
他の1つの予測方式では、過去の事実に基づい
て分岐先方向を予測する。すなわち、同じ分岐命
令の過去の実行結果において分岐先がすでに明ら
かにされているという事実を用いてこの結果に基
づいて予測を行なうことにより予測的中率を高め
ている。このような予測方式の代表例が特開昭57
−76638号公報に示されている。
さらにもう1つの予測方式では、分岐命令に対
応して分岐の方向を予測する分岐指示フラグを多
数用意し分岐命令の発生に応答してこれら分岐指
示フラグを参照することにより分岐先を予測して
いる。この例の詳細は特開昭53−74857号公報を
参照できる。しかし、上述の3つのいずれの予測
方式においても分岐命令の読出し、解読が必要不
可欠であり、予測適中にもかかわらずこれらの読
出しおよび解読動作分だけ処理が遅れるという欠
点がある。
この欠点を除去する予測方式が特開昭57−
59253号公報に示されている。この方式では主記
憶装置の命令部の写しである命令キヤツシユメモ
リのブロツクに対応して該ブロツク中に含まれる
分岐命令の分岐先アドレスを、該ブロツクの次に
フエツチされるべきブロツクのアドレスとして記
憶手段に保持している。命令先取り動作におい
て、命令キヤツシユメモリへのアクセスと同時に
前記記憶手段をアクセスして前記分岐先アドレス
を読出し、読み出された分岐先アドレスにより先
取りすべき命令のアドレスを決定している点にお
いて、この方式は上述の従来の3つの予測方式と
異なり処理の迅速化に有効である。しかし、この
方式では、命令キヤツシユメモリのブロツク対応
で予測するため、該ブロツクに分岐命令が複数個
存在するときには、そのそれぞれの分岐命令に対
応して予測を行なうことができない。この結果、
精度の粗い予測的中率しか得られないという欠点
がある。
発明の目的 本発明の目的は上述の欠点を除去するようにし
たセツトアソシアテイブ型分岐ヒストリテーブル
を有する命令先取り装置を提供することにある。
発明の構成 一定の読出幅を1ワードとして記憶手段から該
ワード単位に命令先取りを行う命令先取り装置に
おいて、分岐命令アドレスを指定する情報と該分
岐命令の分岐先アドレスを指定する情報を含む分
岐情報とを対にして、予め定めたセツト数、レベ
ル数を有し、前記分岐命令アドレスを指定する情
報の一部を保持するデイレクトリ記憶部と、この
デイレクトリ記憶部の分岐命令アドレスを指定す
る情報と対になつた分岐情報を格納するデータ記
憶部とから構成され、前記分岐命令アドレスを指
定する情報と分岐情報とを複数対記憶するセツト
アソシアテイブ型分岐ヒストリテーブル手段と、
この分岐ヒストリテーブル手段に記憶されている
分岐命令アドレスを指定する情報のうちワード部
を指定する分岐命令ワードアドレスと、命令先取
りを行う際に先取りすべき命令先取りアドレスの
ワード部を指定する命令先取りワードアドレスと
の一致を検出する一致検出手段と、前記分岐ヒス
トリテーブル手段から読出された複数の情報対の
それぞれの分岐命令アドレスのワード内アドレス
と前記命令先取りアドレスのワード内アドレスと
の大小関係を調べるプライオリテイ検出手段と、
前記一致検出手段と前記プライオリテイ検出手段
との検出結果に基づいて前記分岐ヒストリテーブ
ル内より命令先取りワードアドレスと等しいワー
ドアドレスを有する分岐命令で、かつ命令先取り
アドレスよりワード内アドレスが若くない分岐命
令のうち、ワード内アドレスが最も若い分岐命令
アドレスと対になつた分岐情報を取出し、該分岐
情報の示す分岐先アドレスに従つて次に先取りす
べき命令先取りワードアドレスを決定する決定手
段とを含む。
発明の原理と作用 本発明の特徴は分岐命令の実行における分岐方
向に加えて分岐先アドレスがその同じ分岐命令の
過去の結果の把握により比較的高い的中率で予測
可能であるという事実に基づいて装置が動作する
ことにある。
発明の実施例 次に、本発明の一実施例を図面を参照して詳細
に説明する。第1図を参照すると、本発明の一実
施例は、命令アドレス生成回路401、命令アド
レス変換回路402、命令解読回路403、オペ
ランドアドレス生成回路404、オペランドアド
レス変換回路405、オペランド記憶回路を有す
るオペランド読出し回路406、命令実行回路4
07、命令記憶回路408、命令バツフア40
9、分岐ヒストリテーブル(BHT)410、命
令アドレスレジスタ411、命令アドレス加算回
路412分岐情報バツフア413、命令整列回路
414、分岐情報切換回路415、分岐情報レジ
スタ416,417,418,および419、予
測確認回路420、アドレス生成回路421、選
択回路422、レジスタ423、命令先取り制御
回路424、およびフリツプフロツプ425から
構成されている。
命令記憶回路408およびオペランド読出し回
路406内のオペランド記憶回路はともに主記憶
装置そのものであつてもよく、さらに命令記憶回
路408が主記憶装置の命令部の一部の写しであ
る命令キヤツシユメモリ、前記オペランド記憶回
路が主記憶装置のオペランド部の一部の写しであ
るオペランドキヤツシユメモリとして構成されう
る。
本発明は、前述の命令の処理単位に対応した装
置構成を必ずしも有する必要はなく、例えば命令
アドレス生成回路401とオペランドアドレス生
成回路404、命令アドレス変換回路402とオ
ペランドアドレス変換回路405、命令記憶回路
408とオペランド読出し回路406内の記憶回
路が共用されたコンピユータシステムにおいても
適用され得る。前記分岐ヒストリテーブル
(BHT)410は分岐命令のアドレスを指定する
情報と該分岐命令の実行の予測としての分岐否フ
ラグと分岐先アドレスを第3図に示すように対に
して記憶している。前記命令記憶回路408に対
する前記命令アドレスレジスタ(IAR)411
は、命令読出しのリクエストアドレスを保持して
命令の読出し動作を実行する。さらに前記命令ア
ドレスレジスタ411(IAR)は、分岐ヒストリ
テーブル410(BHT)および命令アドレス加
算回路412に、信号線101を介して接続され
ている。前記レジスタ411の内容は該分岐ヒス
トリテーブル410(BAT)を索引し、読出さ
れるべき命令のアドレスがそれに登録されている
か否かを示す信号を信号線106に出力する。登
録されていれば、対応する分岐先アドレスが信号
線105に読出される。登録されていなければ、
前記命令アドレス加算回路412により、後続の
命令語の命令先取りのためのアドレスが生成され
る。前記命令アドレス加算回路412は1回のリ
クエストで読出される命令語を8Byteと仮定した
とき単に“IAR+8”を出力107に生成する回
路である。なお、信号線107のIAR+8を命令
アドレスレジスタ411(IAR)にセツトする時
にはIAR+8のアドレスのうち下位3ビツトは
“0”にクリアされてリセツトされる。前記命令
バツフア409は、命令記憶回路408か読出さ
れた8Byteの先取り命令語を蓄積し、命令処理部
への命令の供給における待行列(Queue)を形成
する。前記命令整列回路414は、命令バツフア
409が空のとき信号線102を介して、命令記
憶回路408から読出される8Byteの命令語に応
答して前記命令バツフア409が空でないとき、
信号線103を介して前記命令バツフアに貯えら
れる8Byteの命令語に応答して命令を抽出して信
号線104を介して命令解読回路403に命令を
供給する回路である。前記分岐情報バツフア41
3は、前記命令バツフア409に格納される命令
語に対応して用意されており、その命令語中に分
岐成功と予測された分岐命令が存在すれば、第7
図に示す該分岐命令の分岐情報を格納する回路で
あり、分岐命令のアドレスは信号線101を介し
て、また、分岐情報としての分岐先アドレスおよ
びVビツトは、分岐ヒストリテーブル410
(BHT)から信号線105を介してそれぞれセツ
トされる。前記分岐情報切替回路415は、命令
バツフア409が空のとき信号線101および1
05を介して与えられる前記分岐情報を、そうで
ないときは前記分岐情報バツフア403を介して
与えられる前記分岐情報をそれぞれ出力する。前
記レジスタ416,417、および418はそれ
ぞれ分岐命令の命令解読、命令アドレス生成、ア
ドレス変換の各処理ステージに対応し、その分岐
情報を保持する。前記分岐情報レジスタ419は
その分岐先アドレス部を該分岐命令の実行によつ
て生成される実際の分岐先アドレスに置き換えて
保持するレジスタである。前記予測確認回路42
0は分岐命令の実行によつて生成される実際の分
岐命令の生成結果と、前記分岐情報レジスタ41
8に保持される該分岐命令の予測情報との一致を
とる回路である。前記アドレス生成回路421は
前記分岐情報レジスタ419に保持される分岐命
令のアドレスと該分岐命令自身の命令語長とを加
算し分岐NOGO側の命令の命令アドレスを生成
する。前記選択回路422は分岐命令の成否信号
線111の状態に応答して該信号線の状態が分岐
GOを示すとき線115を介して与えられる前記
分岐情報レジスタ419に保持される分岐先アド
レス部の出力を選択し、前記線の状態が分岐
NOGOを示すとき線116を介して与えられる
前記アドレス生成回路421の出力を選択し、信
号線113を介して該選択回路422の出力をレ
シスタ423に供給する。前記レジスタ423は
分岐命令の予測が失敗したとき、分岐ヒストリラ
ーブル410(BHT)を更新するためのもので
あり、さらに信号線117を介して命令アドレス
レジスタ411(IAR)に命令先取りのための新
たなアドレスを供給する。前記命令先取り制御回
路424は線106を介して分岐ヒストリテーブ
ル410(BHT)から与えられる分岐予測信号
および予測確認回路から線112を介して与えら
れる予測成否信号に基づいて命令アドレスレジス
タ411(IAR)の入力を制御する回路である。
次に前記分岐ヒストリテーブル410(BHT)
前記予測確認回路420および前記命令先取り制
御回路424の詳細なブロツク図とタイムチヤー
トを参照しながら、本実施例の動作を詳細に説明
する。
第2図を参照すると、前記分岐ヒストリテーブ
ル410(BHT)は、デイレクトリ記憶部50
1データ記憶部502、テスト回路503,50
4,505,および506、プライオリテイ回路
507、レベル選択回路508、およびオア回路
509を備えている。前記記憶部501および5
02は、1回のリクエストに対して命令記憶回路
408から読出される命令語の単位をブロツクの
単位とし、セツト数m、レベル数nの記憶部であ
る。
第3図を参照すると、記憶部501には分岐命
令の命令アドレスの一部とその内容が有効か否か
を示すVビツトが格納され記憶部502には、分
岐先アドレスの実アドレスが格納されている。前
記Vビツトは対応する分岐ヒストリテーブル
(BHT)410のワードの有効性を示すと同時に
該分岐命令の実行の予測としての分岐成否フラグ
の機能を有する。
この分岐ヒストリテーブル(BHT)410へ
の索引は以下のようなセツトアソシアテイブ法に
よつて行われる。
第5図に示される前記テスト回路503,50
4,505、および506はテーブル410の各
レベルに対応して命令アドレスレジスタ411
(IAR)に保持されるリクエストアドレスが各レ
ベルのBHT―AAi(iはレベルに対応するサフイ
クスを示す)に登録されているか否かを示す信号
を信号線130,131,132,133に出力
する。
第4図を参照すると前記テスト回路503,5
04,505および506のそれぞれは、一致回
路701および大小比較回路702から構成され
ている。前記比較回路701では、命令アドレス
レジスタ(IAR)411に保持されるリクエスト
アドレスの一部IAR(:18―28)をセツトアドレ
スとして読出された記憶部501の各レベルの内
容と前記レジスタ411の内容IAR(:4―17)
とが比較され、等しいアドレスが存在するか否か
を検出する。該一致回路701の出力により命令
アドレスレジスタ(IAR)411に保持されるリ
クエストアドレスで読出されるべき命令語の
8Byteブロツク中に、すでに分岐ヒストリテーブ
ル(BHT)410に登録された分岐命令が存在
するか否かが判明する。しかし、リクエストアド
レスとそれが読出すべき分岐命令との対応をとる
には上記一致検出のみでは不十分である。
第5図を参照すると、1回のリクエストで続出
される8Byteの命令語のワード中に2Byte命令
BC0,A,BC1,BC2の4個の命令が存在する。
命令BC0,BC1,BC2がともに分岐成功と予測さ
れた分岐命令であるときには、各々の分岐命令は
ともにそのアドレスの一部が記憶部(BHT―
AA)501に登録される。このとき他の分岐命
令から命令Aに分岐して命令Aのアドレス〈A〉
が前記命令語のブロツクを読出すためのリクエス
トアドレスとして命令アドレスレジスタ(IAR)
411に保持されるときには、分岐ヒストリテー
ブル(BHT)410から読出されるべき分岐命
令の情報は命令の実行の経路から、分岐命令BC1
の情報でなければならない。
従つて、前記レジスタ(IAR)411に保持さ
れるリクエストアドレスと前記記憶部(BHT―
AAi)501に保持される分岐命令のアドレスと
の関係が、上記の一致条件とともに次の関係が成
立するとき対応するレベルのBHT―HITi信号が
生成される。この信号は線130―133を介し
て第3回路509に与えられ、該BHT―HITi信
号のオア信号が線106を介して出力され分岐予
測信号(BHT―HIT信号)となる。
BHT−HITi={IAR(:4−17) =BHT−AAi(:4−17)} ∩{IAR(:29,30) ≦BHT−AAi(:29,30)} ∩BHT−AAi(V) 再び第4図を参照すると、前記大小比較回路
は、この条件を実現する回路である。さらに、前
記信号BHT―HITiの条件が2ケ以上のレベルに
おいて成立したとき記憶部501の対応するレベ
ル(BHT―AAi)に保持される分岐命令のアド
レスの8Byteワード内アドレスBHT―AAi(:
29,30)の値の最も小さいレベルが選択される必
要がある。
再び第5図を参照すると、命令BC1およびBC2
の分岐命令関係情報が格納される分岐ヒストリテ
ーブル410のレベルで、前記信号BHT―HITi
条件が共に成立する。このとき命令の実行の経路
から命令BC1に対するレベルが選択される必要が
ある。前記プライオリテイ回路507は、前記信
号BHT―HITiの2ケ以上の成立に対するもので
あり、この出力により記憶部BHT―DA502
のセツトアドレスIAR(:18―28)で示されるエ
ントリの分岐先アドレスがレベル選択回路508
を介して読出される。
第6図を参照すると、前記プライオリテイ回路
507はアンド回路群601―604およびオア
回路群605―608から構成されている。前記
アンド回路群601―604はn+1個並列に配
置されている。前記第2図におけるレベル選択回
路508の選択信号は第6図における信号V0
V1,V2,V3により以下のように与えられる。
V0のとき V0L0,V0L1,………,V0Lo V0・V1のとき V1L0,V1L1,………,V1Lo V0・V1・V2のとき
V2L0,V2L1,………,V2Lo V0・V1・V2・V3のとき
V3L0,V3L1,………,V3Lo 以上のようにして、第2図におけるレベル選択
回路508から読出された分岐情報は第1図の命
令記憶回路408から読出される命令と、対応づ
けることが可能である。
第9図には、命令記憶回路408における命令
と分岐ヒストリテーブル(BHT)410におけ
る分岐情報の上記対応関係が示されている。命令
の実行順序が命令A0分岐命令BC0、B1、BC1
B2、B3、BC2、B3、BC2、C1、C2……と予測さ
れた場合である。なお、〈A〉はA命令のアドレ
スを、BCjは分岐命令をそれぞれ示す。
第10図を参照すると、前記第9図に示した分
岐ヒストリテーブルBHT410による命令先取
り動作は次のようにされる。リクエストアドレス
の命令アドレスレジスタ411のセツトに応答し
て命令記憶回路408から命令語が読出され、こ
れと同時にテーブルBHT410が索引される。
信号線106を介してBHT―HIT信号が出力さ
れると記憶部BHT―DA502の分岐先アドレ
ス〈B1〉がアドレスレジスタ411にセツトさ
れ、命令先取りが行われる。前記信号線106を
介してBHT―HIT信号が出力されないときに
は、命令アドレス加算回路412に命令Aの8バ
イト境界アドレス≪A≫が与えられ、「8」加算
されたアドレスが出力され、次の命令先取りが逐
次行われる。
以上の命令の先取りに従えば、命令記憶回路4
08から読出される命令語は、テーブルBHT4
10の内容による予測に従つて順次読出され、命
令バツフア409には予測された命令の実行順に
格納することが可能である。
このとき、たとえ信号BHT―HITが出力され
ても、分岐予測予向と反対側の命令先取り動作を
一部行わせしめた後に分岐予測方向の命令先取り
動作を行つてもよい。
以上のようにして命令先取りされた命令が分岐
命令で第1図の命令整列回路414により、命令
解読回路403に導かれたとき同時に該分岐命令
に対応する分岐情報が最初の分岐情報レジスタ4
16(QR0)にセツトされる。
以降前記分岐命令の進行に伴い、前記命令解
読、アドレス変換に対応して前記分岐情報が第2
および第3の分岐情報レジスタ417(QR1)お
よび418(QR2)に転送される。そして、前記
分岐命令の実行によつて生成される実際の分岐命
令の生成結果と前記分岐情報レジスタ418
(QR2)に保持される該分岐命令の予測情報との
一致が予測確認回路420によりチエツクされ
る。
第8図を参照すると、前記予測確認回路420
は比較回路801、フリツプフロツプ802およ
び803、アンド回路804―806、真偽回路
807および808、およびオア回路809から
構成されている。前記比較回路801には、分岐
命令の実行により生成された分岐先アドレスの実
アドレスが命令アドレス変換回路402から信号
線109を介して与えられるとともに、分岐情報
レジスタ418(QR2)から予測された分岐先が
線108を介して与えられる。前記比較回路80
1では両者の一致、不一致が判定される。判定結
果と前記レジスタ418から線108を介して与
えられるVビツトがアンド回路806に与えられ
る。論理結果により分岐GOと予測されたときこ
の事実を示す信号がフリツプフロツプ802にセ
ツトされる。このフリツプフロツプ802の出力
が“1”で実際の分岐命令を実行した結果が分岐
NOGOであればアンド回路805から予測GO失
敗信号123が生成される。前記フリツプフロツ
プ801の出力が“1”で、分岐命令の実行結果
がGOであればアンド回路808から予測NOGO
失敗信号125が生成される。さらに該信号12
4と前記予測GO失敗信号123との論理和がオ
ア回路809から予測失敗信号112として生成
される。
第1図および第11図を参照すると、分岐情報
レジスタ419(QR3)の分岐先アドレス部に
は、前記命令アドレス変換回路402から新たに
生成される分岐先アドレスがセツトされる。ま
た、前記分岐情報レジスタ419(QR3)の分岐
命令BC1のアドレス部の内容と該分岐命令BC1
身の命令語長部の内容とがアドレス生成回路42
1により加算され分岐NOGO側の命令の命令ア
ドレスが生成される。
そして分岐命令BC1の実際の実行により、分岐
GOならば前記分岐情報レジスタ419(QR3
から線115を介して与えられる分岐先アドレス
部の出力〈D1〉が分岐NOGOならば線116を
介して与えられる前記アドレス生成回路421の
出力〈B2〉が選択回路422により選択される。
前記分岐命令BC1の予測失敗信号112が予測確
認回路421から該選択回路422の出力〈D1
が線113を介してレジスタ423(WR)にセ
ツトされる。
一方、分岐情報レジスタ419(QR3)の分岐
命令のアドレス〈BC1〉は信号線114を介して
命令アドレスレジスタ411(IAR)にセツトさ
れる。このアドレスは該分岐命令に対応する分岐
ヒストリテーブル410(BHT)の更新のため
線101を介して該テーブル410にライトアド
レスとして供給される。前記予測失敗信号112
の出力がフリツプフロツプ425に与えられ、こ
の出力が指示パルスとして線119を介してテー
ブル401に与えられる。この出力に応答して分
岐命令の次の命令先取り時のための分岐予測情報
の更新が行なわれる。この更新は、本実施例では
予測NOGOの失敗のとき、前記レジスタ423
(WR)に保持される新たな分岐先アドレスで行
なわれ、予測GO失敗のときはVビツトをリセツ
トするように行われるが分岐予測情報の更新にお
けるアルゴリズムを用いて他の方法により行なつ
て差しつかえない。予測失敗したとき予測側に後
続する命令の動作はすべてキヤンセルされ、前記
レジスタ423(WR)に保持される新たなリク
エストアドレスが分岐ヒストリテーブル410
(BHT)の更新後に命令アドレスレジスタ411
(IAR)に供給され改めて命令の取出しが開始さ
れる。
第12図を参照すると、前記命令先取り制御回
路424はフリツプフロツプ1201、真偽回路
1202―1204およびアンド回路1205か
ら構成されている。前記フリツプフロツプ120
1は前記予測失敗信号112を1マシンサイクル
保持するためのフリツプフロツプである。この回
路424の出力はアドレスレジスタ411の前段
にあるセレクタの選択指示信号となる。この選択
指示信号は、前記命令アドレス加算回路412の
出力、前記レジスタ423の出力、前記テーブル
410の出力、および分岐情報レジスタ419の
出力のうちのどれを選択するかを指示するための
信号である。なお、この命令先取り制御回路42
4の制御により分岐予測が的中したときには後述
する第16図の命令処理が行なわれ、分岐予測が
失敗したときには後述する第17図の命令処理が
行なわれる。前記命令アドレス加算回路11は線
106を介してBHT―HIT信号が出力されない
とき分岐NOGO側の命令の先取りを行うための
アドレス生成を行う。このときアドレスは実アド
レスで加算が行われるために、例えば、ページン
グを行うコンピユータシステムにおいて前記アド
レス加算がページ境界を越えた場合アドレス変換
を改めてやり直す必要が生じる。このために、前
記命令アドレス加算回路11にページ境界越え検
出回路を設け該検出回路によりページ境界越えが
生じた場合、信号線L11により命令アドレス生成
回路1を起動し、命令先取り動作を改めて命令ア
ドレス生成回路(IA)401および命令アドレ
ス変換回路(IT)402から行うように制御す
ればよい。
ここで、問題となるのはあらたに分岐ヒストリ
テーブルBHT410に前記命令アドレス情報を
登録するとき既存のどの部分に格納された命令ア
ドレス情報を追い出すかである。
この方法としては使われた順序、すなわち最も
古く使われたものから順に追い出す法LRU
(Least Recontly Used)情報が入つた順序すな
わち、最も古く入つたものから順に追い出す方法
FIFO(First In First Out)等があるがどちらを
用いてもよい。
発明の効果 次に本発明の効果を第13図から第17図を参
照しながら詳細に説明する。
第13図を参照すると、命令の処理は一般的に
次の8つの処理単位に分けられる。
(1) IAステージ:実行すべき命令の命令アドレ
ス(論理アドレス)が生成される。
(2) ITステージ:生成された命令アドレスのア
ドレス変換が行われる。
(3) ICステージ:変換された命令の実アドレス
で記憶装置から命令が読出される。
(4) IDステージ:読出された命令が解読される。
(5) OAステージ:解読された命令のオペランド
アドレス(論理アドレス)が生成される。
(6) OTステージ:生成されたオペランドアドレ
スのアドレス変換が行なわれる。
(7) OCステージ:変換されたオペランドの実ア
ドレスで記憶装置からオペランドが読出され
る。
(8) EXステージ:命令が実行される。
上述のITステージおよびOTステージのアドレ
ス変換において、アドレス変換バツフアを設け必
要な変換テーブルが該アドレス変換バツフアに存
在すれば上記アドレス変換処理は高速に実行し得
る。また、上述のICステージおよびOCステージ
の命令およびオペランドの読出し動作において主
記憶装置のデータの一部の写しを保持するキヤツ
シユメモリを設け必要な命令およびオペランドが
該キヤツシユメモリに存在すればICステージお
よびOCステージの処理は高速に行いうる。情報
処理システムは上述の各処理単位に対応したリリ
ースを必ずしも有する必要はない。しかし、説明
の簡単のためにここでは各処理単位にその機能を
果す回路があうものとする。上述のIT,OTおよ
びIC,OCの各ステージの高速処理が可能なとき
複数の命令の処理の流れを無駄なく実行する8段
のパイプライン制御が可能である。
このときの分岐命令を含む命令の処理の流れを
第14図および第15図を参照しながら説明す
る。
第14図は分岐命令の命令先取りにおいて、前
述のすべての分岐“GO”であると予測した場合
の命令の処理の流れを示す。すなわち、命令A0
は分岐命令BCの分岐条件を決定する命令で該分
岐条件は命令A0の実行結果、すなわち、時刻t7
において決定される。分岐命令BCは時刻t4にお
いて解読されると命令アドレスの生成回路を用い
て、分岐先命令B1のアドレスを生成し、以後B1
命令を先取りするように動作する。時刻t2,t3,
およびt4には分岐NOGO側の後続命令A1,A2
およびA3の命令先取りのためのアドレス生成が
開始される。時刻t6およびt7には予測動作として
の分岐GO側の後続命令B2およびB3の命令先取り
動作が開始される。時刻t7において分岐条件の判
定結果により、時刻t8以降は正しい命令の処理の
流れに従つて処理が継続される。
この場合、分岐命令の出現によるパイプライン
のロスサイクルは 予測的中(分岐GO)のとき 3サイクル 予測失敗(分岐NOGO)のとき 3サイクル である。
分岐GO率γ 予測的中率αとしたとき、この
場合γ=αであり、予測的中率は5分5分であ
る。従つてγ=α=0.5であり1分岐命令当り平
均的なロスサイクルは 3×γ+3×(1−γ)=3サイクル である。
一方第15図は分岐命令の命令先取りにおい
て、前述の同じ分岐命令の過去の結果に基づいて
予測を行つた場合の命令の処理の流れで示す。
すなわち、分岐命令BCは、時刻t4において解
読されるとともに分岐命令のアドレステーブルを
探索しその有無によるか、もしくは分岐指示フラ
グの指示の予測により、分岐GO側の命令B1を先
取りするか分岐NOGO側の命令A1を先取りする
かを決定する。前回と同様に時刻t2,t3およびt4
には分岐NOGO側の後続命令A1,A2,およびA3
の命令先取りのためのアドレス生成が開始され
る。時刻t6およびt7には予測による命令先取りの
後続命令B1およびB2もしくはA4およびA5の命令
のアドレス生成が開始される。時刻t7において分
岐条件の判定結果により時刻t8以降は正しい命令
の処理の流れに従つて処理が継続される。この場
合、分岐命令の出現によるパイプラインのロスサ
イクルは 分岐GOと予測して的中したとき 3サイクル 分岐NOGOと予測して的中したとき
0サイクル 分岐GOと予測して失敗したとき 3サイクル 分岐NOGOと予測して失敗したとき
6サイクル である。従つて、分岐GO率γ=0.5 予測的中率
α=0.8と仮定したとき1分岐命令当りの平均的
なロスサイクルは 3・γ・α+0・(1−γ)・α+3γ(1−α) +6(1−γ)(1−α)=2.1サイクル を得る。
従つて、この従来の発明は同じ分岐命令の過去
の結果に基づいて予測を行つた場合、高い予測的
中率を得るという原理を用いることにより、常に
分岐GOと予測する第14図に示す処理に比べ幾
分の改良がみられる。しかし、この改良された発
明においても、たとえ予測的中時分岐GOの場合
は依然として3サイクルのロスサイクルを要する
ことになり、これ以上短縮できない。
従つて、分岐命令が生じた場合たとえ予測が的
中してもロスサイクルを生じることになる。
第16図および第17図は本発明による命令の
処理の流れを示している。
本発明における命令の処理単位ICステージは
命令を記憶装置から読出す機能の他に、分岐ヒス
トリテーブルを索引し読出される命令のアドレス
が該分岐ヒストリテーブルに登録されているる否
かを検出し、登録されていれば対応する分岐情報
を読出し、登録されていなければ後続命令の命令
先取りのためのアドレスを生成する機能を有す
る。
第16図および第17図を参照すると、分岐命
令BCの時刻t1における動作は次のようにして行
なわれる。また、該分岐命令BCが命令キヤツシ
ユメモリから読出されると同時に分岐ヒストリテ
ーブルが索引される。該分岐命令BCの命令アド
レスが登録されていれば対応する分岐情報が読出
される。該分岐情報と分析した結果、分岐GO側
の予測として該分岐情報中に含まれる分岐先アド
レスにより分岐先命令B1の命令先取りを開始す
るか、もしくは分岐NOGO側の予測として分岐
NOGC側の命令A1の命令アドレスを生成して命
令A1の先取りを開始するかが決定される。以降
時刻t5までは前記分岐命令BCの予測期間であり
予測側の後続命令が先取りされ時刻t5において分
岐条件が決定される。予測的中特には第16図に
示すようにパイプラインの流れは乱れを生ずるこ
となく処理が継続される。予測失敗時には第17
図に示すようにt6時刻で前記分岐ヒストリテーブ
ルの更新を行つた後に正しい命令の流れから命令
の取出しを行うように制御される。この場合、分
岐命令の出現によるパイプラインのロスサイクル
は 予測が的中したとき 0サイクル 予測が失敗したとき 5サイクル である。予測的中率αはこの場合分岐方向だけで
なく分岐先アドレスをも予測することから分岐方
向だけの予測に比べ若干低くなるが、その割合は
微々たるものである。従つて、予測的中率α=
0.8として1分岐命令当りの平均的なロスサイク
ルは 0・α+5・(1−α)=1サイクル となり従来技術に比べて格段に改良される。
この発明では、分岐命令のアドレスと該分岐命
令のアドレスと該分岐命令の分岐先アドレスを含
む分岐情報とを対にして記憶する分岐ヒストリテ
ーブルを命令先取り時に索引する。このあとで前
記分岐先アドレスで次の命令先取を行わせしめる
ことにより、命令の解読を行うことなく前記分岐
ヒストリテーブルの記述に従つて命令語を先取り
することができる。このことにより該分岐ヒスト
リテーブルの記述が正しい場合に限り命令バツフ
アには、命令の実行の経路に従つた命令の待行列
を形成せしめ、情報処理システムのパイプライン
制御における分岐命令の実行をロスサイクルをと
もなうことなく行なうことができるという効果が
ある。
さらに本発明では、分岐命令のアドレスと該分
岐命令の分岐先アドレスを指定する情報を含む分
岐情報を対にして複数対記憶する分岐ヒストリテ
ーブルをセツトアソシアテイブ型メモリで構成す
ることにより大容量のメモリからなる分岐ヒスト
リテーブルを実現することができるという効果が
ある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図は
分岐ヒストリテーブルの詳細な構成を示す図、第
3図は第2図の記憶部501および601の記憶
形式を示す図、第4図は第2図のテスト回路50
3―506の詳細な構成を示す図、第5図は命令
語の構成を示す図、第6図は第2図のプライオリ
テイ回路507の詳細な構成を示す図、第7図は
第1図のレジスタ417―419の格納形式を示
す図、第8図は第1図の予測確認回路420の詳
細な構成を示す図、第9図は第1図の命令記憶回
路408における命令と分岐ヒストリテーブル4
10における分岐情報との対応関係を説明するた
めの図、第10図は第9図のテーブル410によ
る命令先取り動作を説明するための図、第11図
は予測失敗時における命令先取り動作開始までの
動作を説明するための図、第12図は第1図の命
令先取り制御回路の詳細な構成を示す図、第13
図は命令の処理の流れの概要を示す図、第14図
および第15図は従来の予測方式を用いた命令の
処理の流れを示す図、第16図は本発明におい
て、分岐命令の予測が的中したときの命令の処理
の流れを示す図、および第17図は本発明におい
て分岐命令の予測が失敗したときの命令の処理の
流れを示す図である。 第1図から第17図において、401…命令ア
ドレス生成回路、402…命令アドレス変換回
路、403…命令解読回路、404…オペランド
アドレス生成回路、405…オペランドアドレス
変換回路、406…オペランド読出し回路、40
7…命令実行回路、408…命令記憶回路、40
9…命令バツフア、410…分岐ヒストリテーブ
ル(BHT)、411…命令アドレスレジスタ
(IAR)、412…命令アドレス加算回路、413
…分岐情報バツフア、414…命令整列回路、4
15…分岐情報切換回路、416…分岐情報レジ
スタ(QR0)、417…分岐情報レジスタ
(QR1)、418…分岐情報レジスタ(QR2)、4
19…分岐情報レジスタ(QR3)、420…予測
確認回路、421…アドレス生成回路、422…
選択回路、423…レジスタ(WR)、424…
命令先取り制御回路、425…フリツプフロツ
プ、501,502…記憶部、503,504,
505,506…テスト回路、507…プライオ
リテイ回路、508…選択回路、509…オア回
路。

Claims (1)

  1. 【特許請求の範囲】 1 一定の読出幅を1ワードとして記憶手段から
    該ワード単位に命令先取りを行う命令先取り装置
    において、 分岐命令アドレスを指定する情報と該分岐命令
    の分岐先アドレスを指定する情報を含む分岐情報
    とを対にして、予め定めたセツト数、レベル数を
    有し、前記分岐命令アドレスを指定する情報の一
    部を保持するデイレクトリ記憶部と、このデイレ
    クトリ記憶部の分岐命令アドレスを指定する情報
    と対になつた分岐情報を格納するデータ記憶部と
    から構成され、前記分岐命令アドレスを指定する
    情報と分岐情報とを複数対記憶するセツトアソシ
    アテイブ型分岐ヒストリテーブル手段と、 この分岐ヒストリテーブル手段に記憶されてい
    る分岐命令アドレスを指定する情報のうちワード
    部を指定する分岐命令ワードアドレスと、命令先
    取りを行う際に先取りすべき命令先取りアドレス
    のワード部を指定する命令先取りワードアドレス
    との一致を検出する一致検出手段と、 前記分岐ヒストリテーブル手段から読み出され
    た複数の情報対のそれぞれの分岐命令アドレスの
    ワード内アドレスと前記命令先取りアドレスのワ
    ード内アドレスとの大小関係を調べるプライオリ
    テイ検出手段と、 前記一致検出手段と前記プライオリテイ検出手
    段との検出結果に基づいて前記分岐ヒストリテー
    ブル内より命令先取りワードアドレスと等しいワ
    ードアドレスを有する分岐命令で、かつ命令先取
    りアドレスよりワード内アドレスが若くない分岐
    命令のうち、ワード内アドレスが最も若い分岐命
    令アドレスと対になつた分岐情報を取出し、該分
    岐情報の示す分岐先アドレスに従つて次に先取り
    すべき命令先取りワードアドレスを決定する決定
    手段とを含むことを特徴とするセツトアソシアテ
    イブ型分岐ヒストリテーブルを有する命令先取り
    装置。
JP57201557A 1982-11-17 1982-11-17 セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置 Granted JPS5991552A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP57201557A JPS5991552A (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
JP57201557A JPS5991552A (ja) 1982-11-17 1982-11-17 セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置

Publications (2)

Publication Number Publication Date
JPS5991552A JPS5991552A (ja) 1984-05-26
JPS6310451B2 true JPS6310451B2 (ja) 1988-03-07

Family

ID=16443018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57201557A Granted JPS5991552A (ja) 1982-11-17 1982-11-17 セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置

Country Status (1)

Country Link
JP (1) JPS5991552A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2534674B2 (ja) * 1986-07-17 1996-09-18 日本電気株式会社 情報処理装置
JPH03139726A (ja) * 1989-10-26 1991-06-13 Hitachi Ltd 命令読出し制御方式

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5022384A (ja) * 1973-06-29 1975-03-10
JPS5599655A (en) * 1979-01-26 1980-07-29 Tetsunori Nishimoto Branch control unit
JPS5759253A (en) * 1980-09-29 1982-04-09 Nec Corp Branch instruction prefetch system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5022384A (ja) * 1973-06-29 1975-03-10
JPS5599655A (en) * 1979-01-26 1980-07-29 Tetsunori Nishimoto Branch control unit
JPS5759253A (en) * 1980-09-29 1982-04-09 Nec Corp Branch instruction prefetch system

Also Published As

Publication number Publication date
JPS5991552A (ja) 1984-05-26

Similar Documents

Publication Publication Date Title
US4701844A (en) Dual cache for independent prefetch and execution units
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
US4881170A (en) Instruction prefetch control apparatus
US4725947A (en) Data processor with a branch target instruction storage
US4811215A (en) Instruction execution accelerator for a pipelined digital machine with virtual memory
US4764861A (en) Instruction fpefetching device with prediction of a branch destination for each branch count instruction
EP0109655B1 (en) Instruction prefetching device with prediction of a branch destination address
EP0021399B1 (en) A method and a machine for multiple instruction execution
EP0180725B1 (en) Instruction prefetch operation for branch instructions
US20020078330A1 (en) Computer system for executing branch instructions
US5297281A (en) Multiple sequence processor system
JPH0283735A (ja) 命令先取り装置
KR930003124B1 (ko) 파이프라인방식의 분기명령제어장치
US5740391A (en) Preventing premature early exception signaling with special instruction encoding
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
EP0156307A2 (en) Pipelined processor having dual cache memories
JPS6310451B2 (ja)
JPH046983B2 (ja)
EP0415351A2 (en) Data processor for processing instruction after conditional branch instruction at high speed
JPS5991554A (ja) 分岐方向予測を行なう命令先取り装置
KR950000088B1 (ko) 데이터처리시스템
JPS6051947A (ja) 仮想記憶計算機における命令先取方式
JPH0695306B2 (ja) 命令先取り装置
JPH07200406A (ja) キャッシュシステム
JP2542565B2 (ja) 分岐予測制御方式