Спекулятивное исполнение
-
Спекулятивное выполнение
- Оптимизация, при которой система выполняет задачи, которые могут не потребоваться.
- Предотвращает задержки, выполняя задачи до подтверждения их необходимости.
- Если задача не нужна, изменения отменяются, а результаты игнорируются.
- Цель — увеличить параллелизм при наличии ресурсов.
-
Применение спекулятивного выполнения
- Используется в предсказании ветвлений, локальности значений, предварительной выборке памяти и файлов.
- Управление оптимистичным параллелизмом в базах данных.
-
Спекулятивная многопоточность
- Частный случай спекулятивного выполнения, где несколько потоков выполняют задачи одновременно.
-
Обзор современных микропроцессоров
- Современные микропроцессоры используют спекулятивное выполнение для снижения стоимости условных переходов.
- Инструкции планируются заранее, чтобы повысить производительность и эффективность.
-
Варианты спекулятивного выполнения
- Спекулятивное вычисление — более ранняя концепция, связанная со спекулятивным выполнением.
- Нетерпеливое выполнение — обе стороны условной ветви выполняются, но результаты фиксируются только при истинном предикате.
- Прогнозируемое выполнение — выполнение продолжается по прогнозируемому пути до получения фактического результата.
-
Связанные понятия и уязвимости
- Ленивое выполнение — противоположность нетерпеливому выполнению, не предполагает спекуляций.
- Eager Haskell — вариант ленивого языка программирования с поддержкой спекулятивного выполнения.
- В 2017 году обнаружены уязвимости в системах безопасности, связанные со спекулятивным выполнением.
Полный текст статьи: