1. 程式人生 > >【體系結構】轉移預測器效能的定量評價

【體系結構】轉移預測器效能的定量評價

幾種預測器的設計參見前一篇博文(這裡

定量評價幾種預測器的預測準確率

轉移預測的分析和評測過程主要基於給定的指令序列蹤跡。輸入的文字檔案將給出指令序列蹤跡,該檔案包含N行,每一行包括三個資料,分別為當前指令PC、下一指令PC、當前指令型別(0代表轉移指令,1代表其它指令),下面是一個具體的範例:
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預測器通過結合區域性資訊和全域性歷史資訊,在同樣空間的情況下,平均預測準確率最高。