Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

Спекулятивное исполнение

Из Википедии — свободной энциклопедии

Спекулятивное выполнение — это метод оптимизации, при котором компьютерная система выполняет некоторую задачу, которая может оказаться ненужной. Работа выполняется до того, как станет известно, действительно ли она необходима, чтобы предотвратить задержку, которая может возникнуть при выполнении работы после того, как станет известно, что она необходима. Если выясняется, что работа в конце концов не нужна, большинство изменений, внесённых в работу, отменяются, а результаты игнорируются.

Цель состоит в том, чтобы предоставить больше параллелизма, если доступны дополнительные ресурсы[en]. Этот подход используется во множестве областей, включая предсказание ветвления в конвейерных процессорах, предсказание значения для использования локальности значения, предварительная выборка памяти и файлов и оптимистичное управление параллелизмом[en] в системах баз данных[1][2][3].

Спекулятивная многопоточность — это особый случай спекулятивного исполнения.

Обзор

Современные конвейерные микропроцессоры используют спекулятивное выполнение для снижения стоимости инструкций условного перехода с использованием схем, которые прогнозируют путь выполнения программы на основе истории выполнения переходов[2]. Чтобы улучшить производительность и использование компьютерных ресурсов, инструкции могут быть запланированы в то время, когда ещё не определено, что инструкции должны быть выполнены перед ветвлением[4][5].

Варианты

Спекулятивные вычисления были связаны с более ранней концепцией[6].

Нетерпеливое исполнение

Нетерпеливое исполнение — это форма спекулятивного исполнения, при которой выполняются обе стороны условной ветви; однако результаты фиксируются только в том случае, если предикат истинен. При неограниченных ресурсах активное выполнение (также известное как выполнение оракула) теоретически обеспечит такую же производительность, как и идеальное предсказание ветвлений. При ограниченных ресурсах активное выполнение следует использовать осторожно, поскольку количество необходимых ресурсов растёт экспоненциально с каждым уровнем ветви, выполняемой с нетерпением[7].

Прогнозируемое исполнение

Прогнозируемое исполнение — это форма спекулятивного исполнения, при которой предсказывается некоторый результат, и выполнение продолжается по предсказанному пути до тех пор, пока не станет известен фактический результат. Если прогноз верен, прогнозируемое выполнение разрешается зафиксировать; однако, если есть неверное предсказание, выполнение должно быть развёрнуто и выполнено повторно. Общие формы этого включают предсказатель ветвления и предсказание зависимости от памяти. Обобщённую форму иногда называют прогнозом стоимости[8].

Связанные понятия

Ленивое выполнение

Ленивое исполнение противоположно нетерпеливому исполнению и не предполагает спекуляций. Включение спекулятивного исполнения в реализации язык программирования Haskell, ленивого языка, является актуальной темой исследований. Нетерпеливый Haskell, вариант языка, основан на идее спекулятивного исполнения. В докторской диссертации 2003 года GHC сделана поддержка своего рода спекулятивного исполнения с механизмом отмены отказа в случае неудачного выбора, называемого оптимистическим исполнением[9]. Это сочли слишком сложным[10].

Уязвимости безопасности

Начиная с 2017 года, ряд уязвимостей безопасности был обнаружен в реализациях спекулятивного выполнения на общих архитектурах процессоров, что позволило повысить привилегии.

К ним относятся:

См. также

Примечания

  1. Ленивое и спекулятивное исполнение Батлер Лэмпсон Microsoft Research OPODIS, Бордо, Франция 12 декабря 2006 года
  2. 1 2 Международная корпорация бизнес-машин. Исследовательский отдел, Прабхакар Рагхаван, Хадас Шахнаи, Мира Янив. Динамические схемы для спекулятивного исполнения кода. — IBM, 1998.
  3. Х. Т. Кунг, Джон Т. Робинсон (Июнь 1981 года). "Об оптимистичных методах управления параллелизмом". 6. 
  4. Бернд Криг-Брюкнер. ESOP '92: 4-й Европейский симпозиум по программированию, Ренн, Франция, 26-28 февраля 1992 года: доклады. — Springer, 1992. — P. 56–57. — ISBN 978-3-540-55253-6.
  5. (ESOP — сокращение от английского сочетания European Symposium On Programming, по-русски Европейский симпозиум по программированию)
  6. Рэнди Б. Осборн. Спекулятивные вычисления в Мультилисп // Параллельный Лисп: языки и системы (PS). Конспект лекций по информатике 441. — Исследовательская лаборатория Корпорация цифрового оборудования, 1990-03-21. — P. 103–137. — ISBN 3-540-52782-6. — doi:10.1007/BFb0024152.
  7. Юрий Шильц, Борут Робич, Тео Унгерер. Архитектура процессора: от потока данных до суперскаляра и дальше. — Springer, 1999. — P. 148–150. — ISBN 978-3-540-64798-0.
  8. Марк Д. Хилл, Норман П. Джуппи[en], Гуриндар С. Сохи. Чтения по компьютерной архитектуре. — Морган Кауфман, 2000. — ISBN 9781558605398.
  9. Саймон Пейтон Джонс, Роберт Энналс (1 августа 2003 года). “Оптимистическая оценка: стратегия быстрой оценки для нестрогих программ”. Дата обращения 15 мая 2019 года – via www.microsoft.com. Проверьте дату в |access-date=, |date= (справка на английском)
  10. [Haskell] Optimistic Evaluation?
Эта страница в последний раз была отредактирована 18 августа 2021 в 19:06.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).