JPS63189943A - 分岐予測制御方式 - Google Patents
分岐予測制御方式Info
- Publication number
- JPS63189943A JPS63189943A JP2211187A JP2211187A JPS63189943A JP S63189943 A JPS63189943 A JP S63189943A JP 2211187 A JP2211187 A JP 2211187A JP 2211187 A JP2211187 A JP 2211187A JP S63189943 A JPS63189943 A JP S63189943A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- address
- cache
- register
- 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
Links
- 238000000034 method Methods 0.000 claims description 21
- 230000015572 biosynthetic process Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000020509 sex determination Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
この発明は、パイプライン制御を採用した計算機におい
て、分岐命令を高速に実行させるための分岐予測制御方
式に関するものである。
て、分岐命令を高速に実行させるための分岐予測制御方
式に関するものである。
第2図は、例えば日経エレクトロニクスA373(19
85,7,15)に開示されたNICACO81500
に採用されている従来の分岐予測制御方式の構成を示す
ブロック図である。ただし、同図では説明に不要な部分
は一部省略してるる。図において、1bは命令キャッジ
、でらり、命令アドレス(これは論理アドレスである)
の一部から成るタグと命令データとから構成されている
。2bは分岐予測テーブルであり、分岐命令の論理アド
レスの一部から成るタグとその分岐命令の指定する分岐
先アドレスとから構成される。3はパイプライン制御に
おいて先取りする命令のアドレスを指定する先取り命令
アドレスレジスタ、4及び5はそれぞれ先取り命令アド
レスの一部と命令キャッジ、1b及び分岐予測テーブル
2bのタグ部とを比較する比較器、6は命令キャッジ、
1bの比較で一致が検出された時に、命令キャッシェl
b内の命令データを命令バッファ、命令レジスタ(いず
れも図示しない)を介して命令デコ−ド部(図示しない
)へ送出するためのゲート回路、7aは分岐予測テーブ
ル2bの比較で一致が検出された時に、分岐予測テーブ
ル2b内の分岐先アドレスを先取り命令アドレスレジス
タ3及び予測正画性判定回路(図示しない)へ送出する
ためのゲート回路である。8は分岐すると予測して実際
には分岐しなかった場合に、元の命令ス) IJ−ムに
戻すためのアドレスを保持する復帰用アドレスバッファ
、9aは分岐予測テーブル2bに分岐先アドレスを登録
する際に、書込みデータを保持する書込みレジスタであ
る。また、10は現在処理中の命令ス) IJ−ムで次
回の命令アドレスを計算するためのインクリメンタであ
り、この場合、命令の読出し単位が8バイトであるので
+8のインクリメントを行う。
85,7,15)に開示されたNICACO81500
に採用されている従来の分岐予測制御方式の構成を示す
ブロック図である。ただし、同図では説明に不要な部分
は一部省略してるる。図において、1bは命令キャッジ
、でらり、命令アドレス(これは論理アドレスである)
の一部から成るタグと命令データとから構成されている
。2bは分岐予測テーブルであり、分岐命令の論理アド
レスの一部から成るタグとその分岐命令の指定する分岐
先アドレスとから構成される。3はパイプライン制御に
おいて先取りする命令のアドレスを指定する先取り命令
アドレスレジスタ、4及び5はそれぞれ先取り命令アド
レスの一部と命令キャッジ、1b及び分岐予測テーブル
2bのタグ部とを比較する比較器、6は命令キャッジ、
1bの比較で一致が検出された時に、命令キャッシェl
b内の命令データを命令バッファ、命令レジスタ(いず
れも図示しない)を介して命令デコ−ド部(図示しない
)へ送出するためのゲート回路、7aは分岐予測テーブ
ル2bの比較で一致が検出された時に、分岐予測テーブ
ル2b内の分岐先アドレスを先取り命令アドレスレジス
タ3及び予測正画性判定回路(図示しない)へ送出する
ためのゲート回路である。8は分岐すると予測して実際
には分岐しなかった場合に、元の命令ス) IJ−ムに
戻すためのアドレスを保持する復帰用アドレスバッファ
、9aは分岐予測テーブル2bに分岐先アドレスを登録
する際に、書込みデータを保持する書込みレジスタであ
る。また、10は現在処理中の命令ス) IJ−ムで次
回の命令アドレスを計算するためのインクリメンタであ
り、この場合、命令の読出し単位が8バイトであるので
+8のインクリメントを行う。
次に、上記第2図に示す従来の分岐予測制御方式の動作
について説明する。先取り命令アドレスレジスタ3はパ
イプライン制御において先行して取り出す命令のアドレ
スを保持するレジスタであり、その下位ビットにより命
令キャッシュ1bのエン) IJを指定してその内容を
読み出す。上位ビットは読み出されたタグ部の命令アド
レスの一部と比較され、一致が検出されれば、同時に読
み出されている命令データをゲート回路6を通して命令
バッファや命令レジスタ(いずれも図示しない)に送る
。上記命令データはパイプライン制御によリゾコード、
実行等の処理が施されろ。先取り命令アドレスレジスタ
3zζは論理アドレスが格納されているため、この論理
アドレスによってのみアクセスされる命令キャッシュ1
bはバーチャルキャツシ為である。
について説明する。先取り命令アドレスレジスタ3はパ
イプライン制御において先行して取り出す命令のアドレ
スを保持するレジスタであり、その下位ビットにより命
令キャッシュ1bのエン) IJを指定してその内容を
読み出す。上位ビットは読み出されたタグ部の命令アド
レスの一部と比較され、一致が検出されれば、同時に読
み出されている命令データをゲート回路6を通して命令
バッファや命令レジスタ(いずれも図示しない)に送る
。上記命令データはパイプライン制御によリゾコード、
実行等の処理が施されろ。先取り命令アドレスレジスタ
3zζは論理アドレスが格納されているため、この論理
アドレスによってのみアクセスされる命令キャッシュ1
bはバーチャルキャツシ為である。
分岐予測テーブル2bはプログラム中に現われる分岐命
令の中で、実際に分岐が成功した命令のアドレスと、そ
の分岐命令が指定する分岐先アドレスを保持している。
令の中で、実際に分岐が成功した命令のアドレスと、そ
の分岐命令が指定する分岐先アドレスを保持している。
先取り命令アドレスレジスタ3の下位ビットは分岐予測
テーブル2bのエントリを指定してその内容を読み出す
。次に先取り命令アドレスレジスタ3の上位ビットは読
み出されたタグ部の分岐アドレスの一部と比較器5によ
り比較され、一致が検出されると、それは、先取り命令
アドレスレジスタ3内に格納されたアドレスが指定する
命令は分岐命令を含み、かつその分岐命令が以前実行さ
れた際に分岐成立したことを示している。従ってこの場
合に、その分岐命令が今回の実行においても分岐成立す
ると予測して、分岐予測テーブル2b内に登録されてい
る分岐先アドレスをゲート回路7aを通して先取り命令
アドレスレジスタ3へ送出する。それ以降は分岐先のは
令ス) IJ−ムが順次に処理されていくことになる。
テーブル2bのエントリを指定してその内容を読み出す
。次に先取り命令アドレスレジスタ3の上位ビットは読
み出されたタグ部の分岐アドレスの一部と比較器5によ
り比較され、一致が検出されると、それは、先取り命令
アドレスレジスタ3内に格納されたアドレスが指定する
命令は分岐命令を含み、かつその分岐命令が以前実行さ
れた際に分岐成立したことを示している。従ってこの場
合に、その分岐命令が今回の実行においても分岐成立す
ると予測して、分岐予測テーブル2b内に登録されてい
る分岐先アドレスをゲート回路7aを通して先取り命令
アドレスレジスタ3へ送出する。それ以降は分岐先のは
令ス) IJ−ムが順次に処理されていくことになる。
一方、先取り命令アドレスレジスタ3内に格納された命
令アドレスで指定される命令が分岐命令でない場合は、
分岐予測テーブル2bの比較結果は必ず不一致となり、
この場合には先取り命令アドレスレジスタ3の内容がイ
ンクリメンタ10を介してインクリメントされ、次の先
取り命令のアドレスを指定するために先取り命令アドレ
スレジスタ3に格納される。また、先取り命令アドレス
レジスタ3内に格納された命令アドレスで指定される命
令が分岐命令であっても、以前その命令を実行した際に
分岐不成立であった場合に゛は、その命令アドレスは分
岐予測テーブル2bに登録されていないために比較結果
は必ず不一致となり、以後、分岐命令でない場合と同様
に先取り命令アドレスレジスタ3の内容をインクリメン
トしてその内容を更新する。この場合、前回の実行で分
岐が不成立であったことにより今回もこの分岐命令は分
岐不成立と予測している。このように分岐予測テーブル
2bにより分岐方向を予測して、予測されたアドレスで
命令キャッシユlbをアクセスすることにより、従来の
ノ(イブライン制御を採用した計算機において、分岐成
立時に問題となっていたパイプラインの乱れを、予測が
的′中している限りパイプラインに乱れが生じないよう
にしている。
令アドレスで指定される命令が分岐命令でない場合は、
分岐予測テーブル2bの比較結果は必ず不一致となり、
この場合には先取り命令アドレスレジスタ3の内容がイ
ンクリメンタ10を介してインクリメントされ、次の先
取り命令のアドレスを指定するために先取り命令アドレ
スレジスタ3に格納される。また、先取り命令アドレス
レジスタ3内に格納された命令アドレスで指定される命
令が分岐命令であっても、以前その命令を実行した際に
分岐不成立であった場合に゛は、その命令アドレスは分
岐予測テーブル2bに登録されていないために比較結果
は必ず不一致となり、以後、分岐命令でない場合と同様
に先取り命令アドレスレジスタ3の内容をインクリメン
トしてその内容を更新する。この場合、前回の実行で分
岐が不成立であったことにより今回もこの分岐命令は分
岐不成立と予測している。このように分岐予測テーブル
2bにより分岐方向を予測して、予測されたアドレスで
命令キャッシユlbをアクセスすることにより、従来の
ノ(イブライン制御を採用した計算機において、分岐成
立時に問題となっていたパイプラインの乱れを、予測が
的′中している限りパイプラインに乱れが生じないよう
にしている。
次に、分岐予測テーブル2bによる予測がはずれた場合
について説明する。まず、分岐命令で分岐成立と予測し
た場合に、分岐予測テーブル2bから読み出された分岐
先アドレスは先取り命令アドレスレジスタ3へ送られる
と同時に予測正当性判定回路(図示しない)へ送られる
。予測正当性判定回路は該当分岐命令が実行された時点
で予測が正しかったか否かを判定する回路であり、予測
が正しかったと判断されればそのまま処理を続行させる
。また、予測が誤った(すなわち、分岐成立と予測した
が命令実行の結果は分岐不成立であった)場合には、現
在進行している分岐先命令ストリームの処理を中止し、
元の命令ストリームの命令アドレスを保持している復帰
用アドレスバッファ8から先取り命令アドレスレジスタ
3へ命令アドレスを復帰させ、元の命令ストリームの処
理を再開する。この際、分岐予測テーブル2bの該当エ
ントリを以後の予測に備えて無効化しておく。
について説明する。まず、分岐命令で分岐成立と予測し
た場合に、分岐予測テーブル2bから読み出された分岐
先アドレスは先取り命令アドレスレジスタ3へ送られる
と同時に予測正当性判定回路(図示しない)へ送られる
。予測正当性判定回路は該当分岐命令が実行された時点
で予測が正しかったか否かを判定する回路であり、予測
が正しかったと判断されればそのまま処理を続行させる
。また、予測が誤った(すなわち、分岐成立と予測した
が命令実行の結果は分岐不成立であった)場合には、現
在進行している分岐先命令ストリームの処理を中止し、
元の命令ストリームの命令アドレスを保持している復帰
用アドレスバッファ8から先取り命令アドレスレジスタ
3へ命令アドレスを復帰させ、元の命令ストリームの処
理を再開する。この際、分岐予測テーブル2bの該当エ
ントリを以後の予測に備えて無効化しておく。
これにより次回に同一分岐命令が実行される際には、分
岐不成立と予測されることになる。
岐不成立と予測されることになる。
分岐不成立と予測して命令実行時に分岐が成立した場合
には、現在進行している命令ストリームの処理を中止し
、アドレス計算部(図示しない)により計算された分岐
先アドレスを書込みレジスタ9aを介して先取り命令ア
ドレスレジスタ3へ設定し、分岐先命令ス) IJ−ム
の処理を開始する。
には、現在進行している命令ストリームの処理を中止し
、アドレス計算部(図示しない)により計算された分岐
先アドレスを書込みレジスタ9aを介して先取り命令ア
ドレスレジスタ3へ設定し、分岐先命令ス) IJ−ム
の処理を開始する。
また同時に、書込みレジスタ9aを介して分岐予測テー
ブル2bへ分岐先アドレスを書き込んでおき、次に同一
分岐命令が実行される際には、分岐成立と予測するよう
にしている。
ブル2bへ分岐先アドレスを書き込んでおき、次に同一
分岐命令が実行される際には、分岐成立と予測するよう
にしている。
上記のような従来の命令キャッジS1b及び分岐予測テ
ーブル2bを用いた分岐予測制御方式では、高速処理を
目的として上述のように命令キャッシュ1bをバーチャ
ルキャッシュで構成している。メモリ上の命令領域へデ
ータの書込みを許可していないシステムでは何ら問題は
ないが、命令領域へデータの書込みを許可しているシス
テムにおいて、メモリへのデータ書込みにより命令領域
の内容が更新され、かつそのデータが命令キャッジ、1
bに登碌されている場合には、命令キャッジ、1bとメ
モリの内容の整合性を保証するために命令キヤ、シ、l
b内の該当データを更新あるいは無効化する必要がある
。
ーブル2bを用いた分岐予測制御方式では、高速処理を
目的として上述のように命令キャッシュ1bをバーチャ
ルキャッシュで構成している。メモリ上の命令領域へデ
ータの書込みを許可していないシステムでは何ら問題は
ないが、命令領域へデータの書込みを許可しているシス
テムにおいて、メモリへのデータ書込みにより命令領域
の内容が更新され、かつそのデータが命令キャッジ、1
bに登碌されている場合には、命令キャッジ、1bとメ
モリの内容の整合性を保証するために命令キヤ、シ、l
b内の該当データを更新あるいは無効化する必要がある
。
メモリへの書込みを実施するユニットが自系のCPU(
中央処理装置)のみである場合には、自系で生成したス
トア時の論理アドレスを命令キャッジ−1b内のタグ部
に格納された論理アドレスと比較して、その一致を調べ
ることにより無効化ないしは更新の処理を行えば良い。
中央処理装置)のみである場合には、自系で生成したス
トア時の論理アドレスを命令キャッジ−1b内のタグ部
に格納された論理アドレスと比較して、その一致を調べ
ることにより無効化ないしは更新の処理を行えば良い。
しかしながらマルチプロセッサ構成の場合のように、他
系のCPUもメモリへの書込みを実施するような場合に
は、他系のCPUが発行したストアアドレスを取り込ん
で命令キャッジ為1bの無効化ないしは更新を行う必要
がある。これを実現する一つの方法トシテは、メモリへ
のストアを常に監視し、ストア実行時にそのアドレスを
命令キャッジ、lbのタグ部と比較して一致が検出され
れば、命令キャッジ為1bに登碌されたデータが更新さ
れたと判断して、命令キダッシS1b内のそのデータを
無効化するなどがろる。この時、このストアアドレスは
直接メモリへ送られる実アドレスであるため、タグ部に
8理アドレスを登鎌しているバーチャル。
系のCPUもメモリへの書込みを実施するような場合に
は、他系のCPUが発行したストアアドレスを取り込ん
で命令キャッジ為1bの無効化ないしは更新を行う必要
がある。これを実現する一つの方法トシテは、メモリへ
のストアを常に監視し、ストア実行時にそのアドレスを
命令キャッジ、lbのタグ部と比較して一致が検出され
れば、命令キャッジ為1bに登碌されたデータが更新さ
れたと判断して、命令キダッシS1b内のそのデータを
無効化するなどがろる。この時、このストアアドレスは
直接メモリへ送られる実アドレスであるため、タグ部に
8理アドレスを登鎌しているバーチャル。
キャッジ為ではアドレスを直接に比較できない。
従ってこの方法を採用しようとした場合には、パーチャ
ルキャッシ為のタグ部のアドレスの比較が可能となるよ
うに実アドレスを論理アドレスに変換するための手段を
備える必要がある。この手段としては、いわゆるT L
B (Translation Look−asid
e 13uffer )と呼ばれるものとは逆に、実ア
ドレスから論理アドレスへの変換を行うアドレス変換バ
ッファや、このアドレス変換バッファでの変換が失敗し
た時にメモリ上の変換テーブルを参照しながらアドレス
の変換を行うアドレス変換機構がある。しかしながら、
これらの手段を備えるためには膨大なハードウェアの追
加が必要となり、かつストアの発生ごとにアドレス変換
を行うためにオーバヘッドがかなり大きいという問題点
があった。
ルキャッシ為のタグ部のアドレスの比較が可能となるよ
うに実アドレスを論理アドレスに変換するための手段を
備える必要がある。この手段としては、いわゆるT L
B (Translation Look−asid
e 13uffer )と呼ばれるものとは逆に、実ア
ドレスから論理アドレスへの変換を行うアドレス変換バ
ッファや、このアドレス変換バッファでの変換が失敗し
た時にメモリ上の変換テーブルを参照しながらアドレス
の変換を行うアドレス変換機構がある。しかしながら、
これらの手段を備えるためには膨大なハードウェアの追
加が必要となり、かつストアの発生ごとにアドレス変換
を行うためにオーバヘッドがかなり大きいという問題点
があった。
メモリと命令キヤ、シ&lb内のデータの整合性を保証
する他の方法としては、やはりメモリ上へのストアを常
に監視して、メモリへのストアが発生した際に命令キャ
ッジ、1bの内容をすべて無効化してしまうという方法
がある。この方法ではハードウェアの追加はわずかであ
るが、ストア発生ごとに命令キャッジ、1bをリセット
するため、この命令キャッジ、Ib内のデータの有効利
用が図れずに性能低下の大きな要因となる。
する他の方法としては、やはりメモリ上へのストアを常
に監視して、メモリへのストアが発生した際に命令キャ
ッジ、1bの内容をすべて無効化してしまうという方法
がある。この方法ではハードウェアの追加はわずかであ
るが、ストア発生ごとに命令キャッジ、1bをリセット
するため、この命令キャッジ、Ib内のデータの有効利
用が図れずに性能低下の大きな要因となる。
以上述べたように、分岐命令の高速実行を目的として分
岐予測テーブル2bとバーチャル構成の命令キャッシェ
2bを備えた分岐予測制御方式では、命令領域へのデー
タ書込みが発生した場合に、正しい命令処理を高速に実
行することができないという問題点があった。
岐予測テーブル2bとバーチャル構成の命令キャッシェ
2bを備えた分岐予測制御方式では、命令領域へのデー
タ書込みが発生した場合に、正しい命令処理を高速に実
行することができないという問題点があった。
この発明は、かかる問題点を解決するためになされたも
ので、命令領域へのデータ書込みが許可されている計算
機でも、高速、かつ有効な分岐予測制御を可能にさせる
分岐予測制御方式を得ることを目的とする。
ので、命令領域へのデータ書込みが許可されている計算
機でも、高速、かつ有効な分岐予測制御を可能にさせる
分岐予測制御方式を得ることを目的とする。
この発明に係る分岐予測制御方式は、命令キャッジ、に
タグ部が実行アドレスで構成されるリアルキャッシェを
用い、かつ分岐予測テーブル内のタグ部に分岐命令の実
アドレスを登録し、さらにデータ部に分岐先命令の実ア
ドレスも併せて登録するようにしたものである。
タグ部が実行アドレスで構成されるリアルキャッシェを
用い、かつ分岐予測テーブル内のタグ部に分岐命令の実
アドレスを登録し、さらにデータ部に分岐先命令の実ア
ドレスも併せて登録するようにしたものである。
この発明の分岐予測制御方式においては、分岐予測テー
ブル内に実アドレスを登録することは命令キャッシュに
リアルキャッジ、を使用することを可能ならしめ、これ
によってメモリへのデータ書込み時に容易にリアルキャ
ッシュを無効化する処理を可能とすることができる。
ブル内に実アドレスを登録することは命令キャッシュに
リアルキャッジ、を使用することを可能ならしめ、これ
によってメモリへのデータ書込み時に容易にリアルキャ
ッシュを無効化する処理を可能とすることができる。
第1図はこの発明の一実施例である分岐予測制御方式の
構成を示すブロック図である。図において、1aは命令
キャッシュであり、これは命令の実ページアドレスを持
つタグ部と命令データとから成るリアルキャッシェであ
る。2&は分岐予測テーブルでらり、分岐命令の論理ア
ドレスの一部から成るタグ部と、その分岐命令の指定す
る分岐先論理アドレス及び実ば一ジアドレスとから成る
。
構成を示すブロック図である。図において、1aは命令
キャッシュであり、これは命令の実ページアドレスを持
つタグ部と命令データとから成るリアルキャッシェであ
る。2&は分岐予測テーブルでらり、分岐命令の論理ア
ドレスの一部から成るタグ部と、その分岐命令の指定す
る分岐先論理アドレス及び実ば一ジアドレスとから成る
。
3はパイプライン制御において先取りする命令のアドレ
スを指定する先取り命令アドレスレジスタ、4は先取り
命令の実ば一ジアドレスと命令キャッジxlaのタグを
比較する比較器、5は先取り命令アドレスの一部と分岐
予測テーブル2aのタグを比較する比較器、6は命令キ
ャッシュlaの比較で一致が検出された時に、命令キャ
ッジ& 1 &内の命令データを命令バッファ、命令レ
ジスタ(いずれも図示しない)を介して命令デコード部
(図示しない)へ送出するためのゲート回路、7aは分
岐予測データ2aの比較で一致が検出された時に、分岐
予測テーブル2a内の分岐先アドレスを先取り命令アド
レスレジスタ3及び予測正当性判定回路(図示しない)
へ送出するためのゲート回路である。7bは分岐予測テ
ーブル21の比較で一致が検出された時に、分岐予測テ
ーブル2a内の分岐先実ページアドレスを後述する実に
一ジレジスタ11へ送出するためのゲート回路である。
スを指定する先取り命令アドレスレジスタ、4は先取り
命令の実ば一ジアドレスと命令キャッジxlaのタグを
比較する比較器、5は先取り命令アドレスの一部と分岐
予測テーブル2aのタグを比較する比較器、6は命令キ
ャッシュlaの比較で一致が検出された時に、命令キャ
ッジ& 1 &内の命令データを命令バッファ、命令レ
ジスタ(いずれも図示しない)を介して命令デコード部
(図示しない)へ送出するためのゲート回路、7aは分
岐予測データ2aの比較で一致が検出された時に、分岐
予測テーブル2a内の分岐先アドレスを先取り命令アド
レスレジスタ3及び予測正当性判定回路(図示しない)
へ送出するためのゲート回路である。7bは分岐予測テ
ーブル21の比較で一致が検出された時に、分岐予測テ
ーブル2a内の分岐先実ページアドレスを後述する実に
一ジレジスタ11へ送出するためのゲート回路である。
8は分岐が成立すると予測して実際には分岐が不成立・
であった場合に、元の命令ストリームにmm、t−mす
ためのアドレスを保持する復帰用アドレスバッファ、9
mは分岐予測テーブル2aに分岐先アドレス8登罎する
際に櫓込みデータを保持する書込みレジスタである。9
bは分岐予測テーブル2aに分岐充実は−ジアドレスを
登録する際に書込みデータを保持する書込みレジスタで
ある。
であった場合に、元の命令ストリームにmm、t−mす
ためのアドレスを保持する復帰用アドレスバッファ、9
mは分岐予測テーブル2aに分岐先アドレス8登罎する
際に櫓込みデータを保持する書込みレジスタである。9
bは分岐予測テーブル2aに分岐充実は−ジアドレスを
登録する際に書込みデータを保持する書込みレジスタで
ある。
lOは現在処理中の命令ス) IJ−ムで次の命令アド
レスを計算するためのインクリメンタでおり、この実施
例では命令の続出し単位を8バイトとしているので+8
のインクリメントを行う。もちろん読出し単位が8バイ
トでない場合には適当なインクリメント値を設定するこ
とが可能である。11は先取り命令の実は−ジアドレス
を保持する実イージレジスタであり、命令読出しの際に
命令キャッジxlaのタグ部及び分岐予測テーブル2a
のタグ部との比較がなされる。12は分岐が成立すると
予測して実際には分岐が不成立であった場合に、元の命
令ス) IJ−ムヘ制御を戻す際に必要な復帰用の′実
ば一ジアドレスを保持する実は−ジパ、ファである。
レスを計算するためのインクリメンタでおり、この実施
例では命令の続出し単位を8バイトとしているので+8
のインクリメントを行う。もちろん読出し単位が8バイ
トでない場合には適当なインクリメント値を設定するこ
とが可能である。11は先取り命令の実は−ジアドレス
を保持する実イージレジスタであり、命令読出しの際に
命令キャッジxlaのタグ部及び分岐予測テーブル2a
のタグ部との比較がなされる。12は分岐が成立すると
予測して実際には分岐が不成立であった場合に、元の命
令ス) IJ−ムヘ制御を戻す際に必要な復帰用の′実
ば一ジアドレスを保持する実は−ジパ、ファである。
次に、上記第1図に示すこの発明の一実施例である分岐
予測制御方式の動作について説明する。
予測制御方式の動作について説明する。
この発明による特徴的な部分は、分岐予測テーブル2a
を用いた分岐予測制御方式において、命令キャッシユ1
&としてリアルキャッシュを用い、かつ分岐予測テーブ
ル2a内に分岐命令の実イージアドレス及び分岐先命令
の実イージアドレスを登録するようにしたところにある
。
を用いた分岐予測制御方式において、命令キャッシユ1
&としてリアルキャッシュを用い、かつ分岐予測テーブ
ル2a内に分岐命令の実イージアドレス及び分岐先命令
の実イージアドレスを登録するようにしたところにある
。
まず、先取り命令アドレスレジスタ3にはパイプライン
制御において先行して取り出す命令の論理アドレスが設
定されており、実ページレジスタ11には該桶繍令の実
ページアドレスが設定されているものとする。上記実バ
ージアドレスの設定に際しては論理ページアドレスを笑
イージアドレスへ変換するアドレス変換機構と、交換さ
れたアドレスを実は−ジレジスタ11へ設定する手段が
必要であり、また、実ページレジスタ11にはその保持
しているデータが現在有効か否かを示す状態情報が必要
であるが、それらについてはこの発明とは直接に関連が
ないために第1図の中では省略されている。また、先取
り命令アドレスが更新の結果としては−ジバウンダリク
ロスした場合には、実ページレジスタ11の内容も更新
する必要があるが、その手段についてもこの発明とは直
接に関連がないために第1図の中には含まれていない。
制御において先行して取り出す命令の論理アドレスが設
定されており、実ページレジスタ11には該桶繍令の実
ページアドレスが設定されているものとする。上記実バ
ージアドレスの設定に際しては論理ページアドレスを笑
イージアドレスへ変換するアドレス変換機構と、交換さ
れたアドレスを実は−ジレジスタ11へ設定する手段が
必要であり、また、実ページレジスタ11にはその保持
しているデータが現在有効か否かを示す状態情報が必要
であるが、それらについてはこの発明とは直接に関連が
ないために第1図の中では省略されている。また、先取
り命令アドレスが更新の結果としては−ジバウンダリク
ロスした場合には、実ページレジスタ11の内容も更新
する必要があるが、その手段についてもこの発明とは直
接に関連がないために第1図の中には含まれていない。
先取り命令アドレスレジスタ3の下位ビットにより命令
キャッジz l &のエントリを指定してその内容を読
み出す。読み出された命令キャッジ為1aのタグ部と実
は−ジレジスタ11の内容トが比較器4で比較され、一
致が検出されれば、同時に読み出されている命令データ
を゛ゲート回路6を通して命令バッファや命令レジスタ
(いずれも図示しない)へ送る。上記命令データはパイ
プライン制御によりデコード、実行等の処理が施される
。
キャッジz l &のエントリを指定してその内容を読
み出す。読み出された命令キャッジ為1aのタグ部と実
は−ジレジスタ11の内容トが比較器4で比較され、一
致が検出されれば、同時に読み出されている命令データ
を゛ゲート回路6を通して命令バッファや命令レジスタ
(いずれも図示しない)へ送る。上記命令データはパイ
プライン制御によりデコード、実行等の処理が施される
。
一方、上記命令キャッジa、laのアクセスと同時に、
先取り命令アドレスレジスタ3の下位ビットにより分岐
予測テーブル2aのエントリを指定してその内容を読み
出す。次に、実は−ジレジスタ11の内容が読み出され
た分岐予測テーブル2aのタグ部の分岐アドレスの一部
と比較器5により比較され、一致が検出されると、それ
は先取り命令アドレスレジスタ3内に格納されたアドレ
スで指定される命令が分岐命令を含み、かつその分岐命
令が以前実行された際に分岐成立したことを示している
。従りてこの場合に、その分岐命令が今回の命令実行に
おいても分岐が成立すると予・測して、分岐予測テーブ
ル2&内に登録されている分岐先アドレスをゲート回路
7aを通して先取り命令アドレスレジスタ3へ送出する
。また同時に、分岐予測テーブル2a内に登録されてい
る分岐先実間−ジアドレスをゲート回路7bを通して実
ページレジスタ11へ送出し、以後の命令キャッシユ1
aの比較用のデータとする。以降は、分岐先の命令ス)
IJ−ムが順次に処理されていくことになる。
先取り命令アドレスレジスタ3の下位ビットにより分岐
予測テーブル2aのエントリを指定してその内容を読み
出す。次に、実は−ジレジスタ11の内容が読み出され
た分岐予測テーブル2aのタグ部の分岐アドレスの一部
と比較器5により比較され、一致が検出されると、それ
は先取り命令アドレスレジスタ3内に格納されたアドレ
スで指定される命令が分岐命令を含み、かつその分岐命
令が以前実行された際に分岐成立したことを示している
。従りてこの場合に、その分岐命令が今回の命令実行に
おいても分岐が成立すると予・測して、分岐予測テーブ
ル2&内に登録されている分岐先アドレスをゲート回路
7aを通して先取り命令アドレスレジスタ3へ送出する
。また同時に、分岐予測テーブル2a内に登録されてい
る分岐先実間−ジアドレスをゲート回路7bを通して実
ページレジスタ11へ送出し、以後の命令キャッシユ1
aの比較用のデータとする。以降は、分岐先の命令ス)
IJ−ムが順次に処理されていくことになる。
一方、先取り命令アドレスレジスタ3内に格納された命
令アドレスで指定された命令が分岐命令でない場合には
、その命令に関する情報が分岐予測テーブル2aに登・
録され得ないため、分岐予測テーブル2aの比較結果は
必ず不一致となる。この場合には、先取り命令アドレス
レジスタ3の内容がインクリメンタ10を介してインク
リメントされ、次の先取り命令のアドレスを指定するた
めに先取り命令アドレスレジスタ3に格納される。
令アドレスで指定された命令が分岐命令でない場合には
、その命令に関する情報が分岐予測テーブル2aに登・
録され得ないため、分岐予測テーブル2aの比較結果は
必ず不一致となる。この場合には、先取り命令アドレス
レジスタ3の内容がインクリメンタ10を介してインク
リメントされ、次の先取り命令のアドレスを指定するた
めに先取り命令アドレスレジスタ3に格納される。
また、先取り命令アドレスレジスタ3内に格納された命
令アドレスで指定される命令が分岐命令で6うても、以
前にその命令を実行した際に分岐不成立で6りた場合に
は、その命令に関する情報は分岐予測テーブル2aに登
録されていないために比較結果は必ず不一致となる。こ
の場合、前回の実行で分岐が不成立であうたことにより
、今回もこの分岐命令は分岐が不成立になると予測して
おり、分岐命令でない場合と同様に先取り命令アドレス
レジスタ3の内容をインクリメントしてその内容を更新
する。以降は現在処理中の命令ストリームを引き続き処
理していくことになる。
令アドレスで指定される命令が分岐命令で6うても、以
前にその命令を実行した際に分岐不成立で6りた場合に
は、その命令に関する情報は分岐予測テーブル2aに登
録されていないために比較結果は必ず不一致となる。こ
の場合、前回の実行で分岐が不成立であうたことにより
、今回もこの分岐命令は分岐が不成立になると予測して
おり、分岐命令でない場合と同様に先取り命令アドレス
レジスタ3の内容をインクリメントしてその内容を更新
する。以降は現在処理中の命令ストリームを引き続き処
理していくことになる。
次に、7分岐予測テーブル2aによる予測がはずれた場
合について説明する。まず、分岐命令で分岐成立と予測
した場合、分岐予測テーブル2aから読み出された分岐
先アドレスは先取り命令アドレスレジスタ3へ送出され
ると同時に、予測正当性判定回路(図示しない)へ送出
される。予測正当性判定回路は従来の技術の部分で述べ
たものと同様のものであり、該当分岐命令が実行された
時点で予測が正しかったか否かを判定し、予測が正しか
ったと判断されればそのまま処理を続行させる。予測が
誤った(すなわち、分岐成立と予測したが、命令実行の
結果は分岐不成立でめった)場合には、現在進行してい
る分岐先命令ス) IJ−ムの処理を中止し、元の命令
ストリームの命令の論理アドレスを保持している復帰用
アドレスバッファ8から先取り命令アドレスレジスタ3
へ命令アドレスを復帰させ、同時に元の命令ストリーム
の実は−ジアドレスを保持している実バージバッファ1
2から実ば一ジレジスタ11へ元の命令ストリームの実
ば一ジアドレスを復帰させる。この際、分岐予測テーブ
ル2&の該当エン) +3を以後の予測に備えて無効化
しておく。これにより次回に同命令が実行される際には
、分岐は不成立と予測されることになる。なお、復帰用
アドレスバッファ8及び実は−ジバッファ12へのデー
タの設定は分岐成立と予測した時点、すなわち分岐予測
テーブル2aの比較で一致が検出された時点で行ってお
く。
合について説明する。まず、分岐命令で分岐成立と予測
した場合、分岐予測テーブル2aから読み出された分岐
先アドレスは先取り命令アドレスレジスタ3へ送出され
ると同時に、予測正当性判定回路(図示しない)へ送出
される。予測正当性判定回路は従来の技術の部分で述べ
たものと同様のものであり、該当分岐命令が実行された
時点で予測が正しかったか否かを判定し、予測が正しか
ったと判断されればそのまま処理を続行させる。予測が
誤った(すなわち、分岐成立と予測したが、命令実行の
結果は分岐不成立でめった)場合には、現在進行してい
る分岐先命令ス) IJ−ムの処理を中止し、元の命令
ストリームの命令の論理アドレスを保持している復帰用
アドレスバッファ8から先取り命令アドレスレジスタ3
へ命令アドレスを復帰させ、同時に元の命令ストリーム
の実は−ジアドレスを保持している実バージバッファ1
2から実ば一ジレジスタ11へ元の命令ストリームの実
ば一ジアドレスを復帰させる。この際、分岐予測テーブ
ル2&の該当エン) +3を以後の予測に備えて無効化
しておく。これにより次回に同命令が実行される際には
、分岐は不成立と予測されることになる。なお、復帰用
アドレスバッファ8及び実は−ジバッファ12へのデー
タの設定は分岐成立と予測した時点、すなわち分岐予測
テーブル2aの比較で一致が検出された時点で行ってお
く。
次に、分岐不成立と予測して命令実行時に分岐が成立し
た場合には、現在進行している命令ストリームの処理を
中止し、アドレス計算部(図示しない)により計算され
た分岐先アドレスを書込みレジスタ9aを介して先取り
命令アドレスレジスタ3へ設定し、分岐先命令ス) I
J−ムの処理を開始する。この際、分岐予測テーブル2
aへは実に−ジレジスタ11から該当分岐命令の実は−
ジアドレスを書込み、アドレス計算部(図示しない)に
より計算された分岐先アドレスを書込みレジスタ9aを
介して書込み、さらにアドレス変換機構(図示しない)
により実アドレスに変換された分岐先命令の実ページア
ドレスを書込みレジスタ9bを介して書き込んでおく。
た場合には、現在進行している命令ストリームの処理を
中止し、アドレス計算部(図示しない)により計算され
た分岐先アドレスを書込みレジスタ9aを介して先取り
命令アドレスレジスタ3へ設定し、分岐先命令ス) I
J−ムの処理を開始する。この際、分岐予測テーブル2
aへは実に−ジレジスタ11から該当分岐命令の実は−
ジアドレスを書込み、アドレス計算部(図示しない)に
より計算された分岐先アドレスを書込みレジスタ9aを
介して書込み、さらにアドレス変換機構(図示しない)
により実アドレスに変換された分岐先命令の実ページア
ドレスを書込みレジスタ9bを介して書き込んでおく。
これにより次に該当分岐命令が実行される際には、分岐
が成立すると予測できるようにする。
が成立すると予測できるようにする。
以上説明したように、この発明の実施例では、命令キャ
ッジ&1mとしてタグ部に実に一ジアドレスを保持する
リアルキャッジ、を使用し、分岐予測テーブル2aには
タグ部に分岐命令の実イージアドレスを登録し、同じく
データ部に分岐先命令の実に一ジアドレスを登録するよ
うにしている。
ッジ&1mとしてタグ部に実に一ジアドレスを保持する
リアルキャッジ、を使用し、分岐予測テーブル2aには
タグ部に分岐命令の実イージアドレスを登録し、同じく
データ部に分岐先命令の実に一ジアドレスを登録するよ
うにしている。
これによって、分岐命令の高速処理が可能になると共に
、メモリの命令領域にデータ書込みがあった場合に、容
易に命令キャッジ& 1 &及び分岐予測テーブル2凰
の無効化の処理ができる可能性を与えている。以下、こ
の無効化について説明する。
、メモリの命令領域にデータ書込みがあった場合に、容
易に命令キャッジ& 1 &及び分岐予測テーブル2凰
の無効化の処理ができる可能性を与えている。以下、こ
の無効化について説明する。
メ七りへのデータ書込み時の命令キャッジ為1aの無効
化に関しては、メモリへのストアを常時監視して、スト
ア発生時に該当ストアアドレスを敗り込んで命令キャッ
ジxlaのタグ部と比較し、一致が検出されれば、その
エントリを無効lζするという方法が考えられる。この
−効化の処理は命令キャッシェ1&1分岐予測テーブル
2aと共に必要である。この場合、取り込んだストアア
ドレスは笑アドレスであるため、その比較対象となる命
令キャッジs、 l &及び分岐予測テーブル2aのタ
グ部には実アドレスが格納されている必要がある。この
発明による実施例では第1図に示すように、命令キャッ
ジ& 1 &のタグ部には命令の4 k−ジアドレスが
格納され、分岐予測テーブル2aのタグ部には分岐命令
の5jI!は−ジアドレスが格納されているため、上記
無効化の処理が容易にできるようになっている。なお、
命令干ヤッシュ1a及び分岐予測テーブル2aの無効化
の処理の実現手法につい°Cは、この発明の要旨とする
範囲以外のことでちるから祥細な説明は省略する。
化に関しては、メモリへのストアを常時監視して、スト
ア発生時に該当ストアアドレスを敗り込んで命令キャッ
ジxlaのタグ部と比較し、一致が検出されれば、その
エントリを無効lζするという方法が考えられる。この
−効化の処理は命令キャッシェ1&1分岐予測テーブル
2aと共に必要である。この場合、取り込んだストアア
ドレスは笑アドレスであるため、その比較対象となる命
令キャッジs、 l &及び分岐予測テーブル2aのタ
グ部には実アドレスが格納されている必要がある。この
発明による実施例では第1図に示すように、命令キャッ
ジ& 1 &のタグ部には命令の4 k−ジアドレスが
格納され、分岐予測テーブル2aのタグ部には分岐命令
の5jI!は−ジアドレスが格納されているため、上記
無効化の処理が容易にできるようになっている。なお、
命令干ヤッシュ1a及び分岐予測テーブル2aの無効化
の処理の実現手法につい°Cは、この発明の要旨とする
範囲以外のことでちるから祥細な説明は省略する。
なお、上記実施例では、分岐予測テーブル2aのタグ部
に分岐命令の4−<−ジアドレスを登録したものを示し
ているが、は−ジ内アドレスの一部を実ページアドレス
に付加させても良い。
に分岐命令の4−<−ジアドレスを登録したものを示し
ているが、は−ジ内アドレスの一部を実ページアドレス
に付加させても良い。
また、上記実施例では、インクリメンタ1oのインクリ
メント値を+8としているが、命令読出し幅に合わせて
他の値に設定しても艮い。
メント値を+8としているが、命令読出し幅に合わせて
他の値に設定しても艮い。
この発明は以上説明したように、分岐予測制御方式にお
いて、命令キャッシュとしてリアルキャッジ−を使用し
、分岐予測テーブルのタグ部に分岐命令の実は−ジアド
レスを[0し、さらにデータ部に分岐先命令の実は−ジ
アドレスを登録するようにしたので、分岐命令の実行に
関してこの捕の従来方式と同等の高速性を保ちつつ、メ
モリ内の命令領琥へのデータ書込みを許可する計算機に
おいて、容易に命令キャッシュ及び分岐予測テーブルの
無効化が可能となる分岐予測制御方式が得られるという
優れた効果を奏するものである。
いて、命令キャッシュとしてリアルキャッジ−を使用し
、分岐予測テーブルのタグ部に分岐命令の実は−ジアド
レスを[0し、さらにデータ部に分岐先命令の実は−ジ
アドレスを登録するようにしたので、分岐命令の実行に
関してこの捕の従来方式と同等の高速性を保ちつつ、メ
モリ内の命令領琥へのデータ書込みを許可する計算機に
おいて、容易に命令キャッシュ及び分岐予測テーブルの
無効化が可能となる分岐予測制御方式が得られるという
優れた効果を奏するものである。
第1図はこの発明の一実施例である分岐予測制御方式の
構成を示すブロック図、第2図は従来の分岐予測?1i
II’flJ方式の構成を示すブロック図である。 図において、la、lb・・・命令キャッシェ、2m、
2b・・・分岐予測テーブル゛、3・・・先取り命令ア
ドレスレジスタ、4.5・・・比較器、6.7h、7b
・・・ゲート回路、8・・・復帰用アドレス−くツファ
、9a、9ム・・・書込みレジスタ、10・・・インク
リメ磨ンタ、11・・・実ページレジスタ、12・・・
実d −’)バッファである。 なお、各図中、同一符号は同一、又は相当部分を示す。
構成を示すブロック図、第2図は従来の分岐予測?1i
II’flJ方式の構成を示すブロック図である。 図において、la、lb・・・命令キャッシェ、2m、
2b・・・分岐予測テーブル゛、3・・・先取り命令ア
ドレスレジスタ、4.5・・・比較器、6.7h、7b
・・・ゲート回路、8・・・復帰用アドレス−くツファ
、9a、9ム・・・書込みレジスタ、10・・・インク
リメ磨ンタ、11・・・実ページレジスタ、12・・・
実d −’)バッファである。 なお、各図中、同一符号は同一、又は相当部分を示す。
Claims (1)
- パイプライン制御を採用した計算機において、先取り命
令アドレスをもってアクセスする命令キャッシュと、先
取り命令が分岐命令であった場合に、その分岐先アドレ
スを指定する分岐予測テーブルを備え、上記命令キャッ
シュのタグ部には命令の実アドレスを格納し、上記分岐
予測テーブルのタグ部には分岐命令の実アドレスを格納
し、同じくデータ部には分岐先命令の論理アドレスと分
岐先命令の実アドレスとを格納し、分岐成立の予測を行
う際には、上記分岐予測テーブルから読み出した分岐先
命令の論理アドレスを先取り命令アドレスに設定し、さ
らに読み出した分岐先命令の実アドレスを先取り命令の
実アドレスに設定することを特徴とする分岐予測制御方
式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2211187A JPS63189943A (ja) | 1987-02-02 | 1987-02-02 | 分岐予測制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2211187A JPS63189943A (ja) | 1987-02-02 | 1987-02-02 | 分岐予測制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63189943A true JPS63189943A (ja) | 1988-08-05 |
Family
ID=12073774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2211187A Pending JPS63189943A (ja) | 1987-02-02 | 1987-02-02 | 分岐予測制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63189943A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0384630A (ja) * | 1989-08-28 | 1991-04-10 | Nec Corp | マイクロプロセッサ |
US6256727B1 (en) | 1998-05-12 | 2001-07-03 | International Business Machines Corporation | Method and system for fetching noncontiguous instructions in a single clock cycle |
-
1987
- 1987-02-02 JP JP2211187A patent/JPS63189943A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0384630A (ja) * | 1989-08-28 | 1991-04-10 | Nec Corp | マイクロプロセッサ |
US6256727B1 (en) | 1998-05-12 | 2001-07-03 | International Business Machines Corporation | Method and system for fetching noncontiguous instructions in a single clock cycle |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0118828B1 (en) | Instruction fetch apparatus and method of operating same | |
US5539895A (en) | Hierarchical computer cache system | |
US10083126B2 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
US8499123B1 (en) | Multi-stage pipeline for cache access | |
JPS6135584B2 (ja) | ||
US8074029B2 (en) | Processor equipped with a pre-fetch function and pre-fetch control method | |
KR100335672B1 (ko) | 메모리페이지크로싱예측주석을사용하는실제주소지정데이타기억구조로부터의빠른데이타검색 | |
KR20170139659A (ko) | 메모리를 어드레싱하기 위한 별개의 레지스터들을 가진 컴퓨터 프로세서 | |
US5263144A (en) | Method and apparatus for sharing data between processors in a computer system | |
US10983914B2 (en) | Information processing apparatus, arithmetic processing device, and method for controlling information processing apparatus | |
JPH0340047A (ja) | キヤツシユ・ライン・ストア方法 | |
US5051894A (en) | Apparatus and method for address translation of non-aligned double word virtual addresses | |
US5619673A (en) | Virtual access cache protection bits handling method and apparatus | |
JPH1055276A (ja) | 多重レベル分岐予測方法および装置 | |
JPS63189943A (ja) | 分岐予測制御方式 | |
KR20040047398A (ko) | 캐쉬 메모리를 이용한 데이터 억세스 방법 | |
JP3757768B2 (ja) | ベクトルメモリアクセス時スカラメモリアクセス命令発行制御方式 | |
JPH07234819A (ja) | キャッシュメモリ | |
JP2555461B2 (ja) | キャッシュメモリシステム | |
JP2542565B2 (ja) | 分岐予測制御方式 | |
JPH04340145A (ja) | キャッシュメモリ装置 | |
JPH08161226A (ja) | データ先読み制御方法,キャッシュ制御装置およびデータ処理装置 | |
JPH0336647A (ja) | キャッシュ・バッファリング制御方式 | |
JPH0421044A (ja) | 1チップキャッシュメモリ | |
JPH09218825A (ja) | 可変キャッシュ方式 |