Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Динамическое (спекулятивное) исполнение кратко

Лекция



Привет, Вы узнаете о том , что такое спекулятивное исполнение, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое спекулятивное исполнение , настоятельно рекомендую прочитать все из категории Операционные системы и системное программировние.

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

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

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

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

Одной из главных особенностей шестого поколения микропроцессоров архитектуры IA32 является динамическое(спекулятивное)исполнение. Под этим термином подразумевается следующая совокупность возможностей:

  • Глубокое предсказание ветвлений (с вероятностью >90% можно предсказать 1015 ближайших переходов).

  • Анализ потока данных (на 20-30 шагов вперед просмотреть программу и определить зависимость команд по данным или ресурсам).

  • Опережающее исполнение команд (МП P6 может выполнять команды в порядке, отличном от их следования в программе).

Внутренняя организация МП P6 соответствует архитектуре RISC, поэтому блок выборки команд, считав поток инструкций IA-32 из L1 кэша инструкций, декодирует их в серию микроопераций. Об этом говорит сайт https://intellect.icu . Поток микроопераций попадает в буфер переупорядочивания (пул инструкций). В нем содержатся как не выполненные пока микрооперации, так и уже выполненные, но еще не повлиявшие на состояние процессора. Для декодирования инструкций предназначены три параллельных дешифратора: два для простых и один для сложных инструкций. Каждая инструкция IA-32 декодируется в 1-4 микрооперации. Микрооперации выполняются пятью параллельными исполнительными устройствами: два для целочисленной арифметики, два для вещественной арифметики и блок интерфейса с памятью. Таким образом, возможно выполнение до пяти микроопераций за такт.

Блок исполнительных устройств способен выбирать инструкции из пула в любом порядке. При этом благодаря блоку предсказания ветвлений возможно выполнение инструкций, следующих за условными переходами. Блок резервирования постоянно отслеживает в пуле инструкций те микрооперации, которые готовы к исполнению (исходные данные не зависят от результата других невыполненных инструкций) и направляет их на свободное исполнительное устройство соответствующего типа. Одно из целочисленных исполнительных устройств дополнительно занимается проверкой правильности предсказания переходов. При обнаружении неправильно предсказанного перехода все микрооперации, следующие за переходом, удаляются из пула и производится заполнение конвейера команд инструкциями по новому адресу.

Взаимная зависимость команд от значения регистров архитектуры IA-32 может требовать ожидания освобождения регистров. Для решения этой проблемы предназначены 40 внутренних регистров общего назначения, используемых в реальных вычислениях.

Блок удаления отслеживает результат спекулятивно выполненных микроопераций. Если микрооперация более не зависит от других микроопераций, ее результат переносится на состояние процессора, и она удаляется из буфера переупорядочивания. Блок удаления подтверждает выполнение инструкций (до трех микроопераций за такт) в порядке их следования в программе, принимая во внимание прерывания, исключения, точки останова и промахи предсказания переходов.

Описанная схема отображена на рис. 5.2.

Динамическое (спекулятивное) исполнение

Рис. 5.2.Блок схема микропроцессора Pentium Pro

Варианты

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

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

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

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

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

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

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

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

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

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

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

  • Spectre
  • Meltdown
  • Spoiler
  • Foreshadow
  • Выборка микроархитектурных данных

Вау!! 😲 Ты еще не читал? Это зря!

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

Из статьи мы узнали кратко, но содержательно про спекулятивное исполнение
создано: 2023-12-05
обновлено: 2023-12-05
14



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Операционные системы и системное программировние

Термины: Операционные системы и системное программировние