Задать вопрос

Как вызвать провал конвейера?

Как вызывать провал конвейера на современном процессоре?
Было несколько идей, но я не уверен в них:
1. В условный оператор if запихать кучу условий (например, if(A&0&B&C.....), где A,B,C - какие-то операции). Предполагал, что в процессор произойдет загрузка всех операций, но после второй будет произведен сброс конвейера. Тем самым будет простой размером примерно с количество ступеней конвейера.
2. С помощью расширения GCC __builtin_expect направить процессор на ложную ветку if-else. Предполагал, что в процессор будет произведена загрузка операций, которые не будут выполнены. Конвейер будет сброшен.

Собственно, сабж.
  • Вопрос задан
  • 851 просмотр
Подписаться 7 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • SF Education
    Бэкенд-разработчик на Python
    3 месяца
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы