... | ... | @@ -71,7 +71,7 @@ |
|
|
* [2] "A Comparison of Dynamic Branch Predictions that use Two Levels of Branch History", Tse-Yu yehand Yale N. Patt, ACM SIGARCH Computer Architecture News, Volume 21 Issue 2, pp.257-266, 1993. http://www.eecs.harvard.edu/cs146-246/p257-yeh.pdf
|
|
|
|
|
|
---
|
|
|
[^1]: 無条件分岐についての情報を分岐方向予測器に学習させるのはやや無駄が多い。
|
|
|
[^1]: 無条件分岐を常に条件が成立する条件分岐であるとみなして、条件分岐と共通の方法で予測することも可能だが、やや無駄である。
|
|
|
[^2]: キャッシュメモリとの混同に注意。キャッシュとは、データのコピーを持つことで局所性を利用して高速化する技術一般のことである。キャッシュメモリと同様、高速小容量、タグがある、置換が行われる、局所性を利用している、などの特徴を持つ。しかし、何か具体的な「元データ」のようなものがあってそれのコピーを保存しているとは限らない。計算結果を再利用に備えて保存しておくというタイプのキャッシュも存在する。分岐先バッファもそのタイプで、デコード・実行した結果をメモしてあるだけである。
|
|
|
[^3]: 近年の商用プロセッサでは、条件分岐の場合は条件が成立したときのみ分岐先バッファに書き込むらしい(論文:https://ieeexplore.ieee.org/document/9408197 )。絶対に成立しない分岐命令 (例えば配列外アクセスであるかを検査する分岐命令など。never-taken branch)のために分岐先バッファの容量が使われることがなるという利益がある。
|
|
|
[^4]: 分岐先バッファはキャッシュだが、タグを全部は持たないというハードウェア容量ケチり最適化がある。その最適化をした場合、分岐先バッファは嘘を言うことがある。予測を間違えてもどうせ分岐予測失敗対策のハードウェアが存在するので問題ないという思想である。そもそも、プログラムが変化すれば「このPCの命令は以前分岐命令だったから、今回もそのはず」というのは成り立たないから、分岐先バッファを全面的に信用することはできない。
|
... | ... | |