幾種預測器的設計參見前一篇博文(這裏)
定量評價幾種預測器的預測準確率
0x0EA31410 0x0EA31414 1
0x0EA31414 0x0EA31470 0
0x0EA31470 0x0EA31474 1
0x0EA31474 0x0EA31478 0
0x0EA31478 0x0EA3147C 1
實驗中使用gcc.log,compress.log,craft.log,gzip.log,mcf.log,parser.log,vpr.log 7個測試數據,實驗結果如下:
仿照書中的例子,繪製三種預測器不正確率的結果:實驗結果很明顯看到Tournament預測器取得了更好的預測結構。但另一方面,在同樣空間的限制下,使用相關分支預測信息的[10,2]關聯預測器反而沒有簡單的局部歷史表預測效果好。事實上,分支歷史表可以看做[1,2]關聯預測器。分析可能是推論的分支信息過多,減少相關分支數目可能會提高預測準確率。於是,實驗中嘗試了[2,2],[4,2],[6,2],[8,2](對應的地址分別爲12,10,8,6bit,空間均爲32K),結果如下:
可以看到使用[4,2]相關分支預測器平均準確率最高。而過度增加相關分支數量,可能會降低預測準確率。
實驗結論
2bit分支歷史表預測器可以提供較好的分支預測準確率。適當利用全局信息,使用相關分支預測技術,也可以提高預測分支準確率。Tournament預測器通過結合局部信息和全局歷史信息,在同樣空間的情況下,平均預測準確率最高。