Найдите размер целевого буфера ветки (BTB)

Можно ли каким-либо образом перепроектировать организацию предсказателя ветвления процессоров, чтобы найти размер целевого буфера ветвления (BTB) с помощью программы C?

Если да, то есть ли у вас идеи, какой должна быть программа?

Я могу придумать программу, которая запускает разное количество ветвей, где я могу построить диаграмму времени выполнения по количеству ветвей, и где я могу увидеть колено на диаграмме, где количество ветвей равно количеству BTB.


person samira    schedule 11.07.2016    source источник
comment
Возможный дубликат размера BTB для Haswell, Sandy Bridge, Ivy Мост и Скайлейк?   -  person osgx    schedule 21.07.2016
comment
Проверьте xania.org/201602/bpu-part-one Статическое прогнозирование ветвлений на более новых процессорах Intel. процессоры xania.org/201602/bpu-part-two Предсказание переходов — часть вторая и позже его публикации под тем же тегом; тестовый код находится по адресу github.com/mattgodbolt/agner (tests/btb*py). Лучше не рисовать только время выполнения, а использовать аппаратные счетчики производительности для микроархитектуры, чтобы получить статистику промахов BTB. Ваш процессор x86, Intel или AMD, или вы хотите ARM, или вам нужен универсальный тест?   -  person osgx    schedule 21.07.2016