Когда будет полезно динамическое предсказание ветвления?

Для статического предсказания ветвления всегда предполагается, что ветвление не занято, в то время как для динамического предсказания ветвления, если ветвление берется раньше, тогда более вероятно, что оно будет взято снова. Но я не могу придумать ситуацию, что это полезно? Какое приложение выиграет от этого? Почему бы просто не использовать статическое предсказание ветвлений?

1 ответ

Решение
    boolean b = compute something;
         :
    for (int j=0; j<1000000; j++)
        if (b) one statement;
        else another statement;

if будет вызывать условную ветвь с одинаковым полученным / не взятым результатом каждый раз, но это может варьироваться от одного прогона к следующему.

(Я знаю, что можно написать этот код немного лучше с if управление парой циклов if-free, но здесь дело не в этом)

Другие вопросы по тегам