これは宿題ではありません。私はこのサイト(IMO)を読んでいて、分岐予測についてかなりよく紹介されており、講義に続いて問題を解決しようと決めました。
次のコードを検討してください [分岐遅延スロットなし]:
add $2, $0, $0 addi $11, $0, 5 addi $12, $0, 3 outer: addi $2, $2, 1 add $1, $0, $0 inner: addi $1, $1, 1 bne $1, $11, inner bne $2, $12, outer
最初の追加命令はアドレス 0 にあります。
- 2 つのエントリを持つパターン履歴テーブルを使用した場合の予測ミス率は? [予測ミス率 = 予測ミス数 / 予測数]
- 2 エントリのローカル履歴テーブルと 4 エントリのパターン履歴テーブルを持つローカル履歴予測子を使用するとどうなるでしょうか?
まず、条件にエラーがあり、両方の add 命令が、残りの命令と同様に、$0 の代わりに即値 0 を持つ addi でなければならないのではないかと思います。この件について詳しい人はコメントできますか?
第二に、私は問題を解決しようとしました (上記のように、add が即時 0 のaddiであると見なします) 。私の答えは次のとおりです。
1. 予測ミス率 8/10 (予測ミス 8 回、予測 10 回) 2. 予測予測ミス率
13/5
(予測ミス 13 回、予測 5 回)
講義の内容を本当に理解できたのだろうか。ありがとう。