當執行此程序時LOOPS> BTB_SIZE, 例如,如何獲得CPU的分支目標緩衝區(BTB)大小?
從
int n = 0;
for (int i = 0; i < LOOPS; i++)
n++;
到
int n = 0;
int loops = LOOPS/2;
for(int i = 0; i < loops; i+=2)
n += 2;
可以減少分支懷念它是非常有用的。
BTB ref:http://www-ee.eng.hawaii.edu/~tep/EE461/Notes/ILP/buffer.html但它不告訴如何獲得BTB大小。
檢查http://xania.org/201602/bpu-part-one較新的英特爾處理器上的靜態分支預測 http://xania.org/201602/bpu-part-two分支預測 - 第二部分及其後相同標籤的出版物(http://xania.org/Microarchitecture-archive);測試代碼在https://github.com/mattgodbolt/agner(tests/btb * py)和https://github.com/rmmh/whomp – osgx 2016-07-21 20:06:47