Что такое спекулятивное исполнение?
С помощью AMD-ориентированной потенциальной безопасности в новостях в новостях самое время для пересмотра вопроса о том, что такое спекулятивное исполнение и как он работает. Эта тема получила большую дискуссию несколько лет назад, когда призрак и расплавов часто встречались в новостях, а новые боковых атак выскакивали каждые несколько месяцев.
Спекулирующее исполнение - это методика, используемая для повышения производительности всех современных микропроцессоров до одной степени или иной степени, включая чипы, построенные или разработанные AMD, ARM, IBM и Intel. Современные процессоры CPU, которые не используют спекулятивные исполнения, предназначены для ультранизких электроэнергии или минимальных задач обработки. Различные недостатки безопасности, такие как призрак, расплавов, предвещание и MDS все целена в качестве спекулятивного исполнения несколько лет назад, как правило, на Intel CPU.
Что такое спекулятивное исполнение?
Спекулирующее исполнение является одним из трех компонентов выполнения вне заказа, также известного как динамическое исполнение. Наряду с множественным предсказанием ветвления (используется для прогнозирования инструкций, которые, скорее всего, будут необходимы в ближайшем будущем) и анализе данных DataFlow (используется для выравнивания инструкций для оптимального исполнения, в отличие от их вступлений в том порядке, в котором они пришли), спекулятивное исполнение. Драматическое улучшение производительности по сравнению с предыдущими процессорами Intel при первом введенном в середине 1990-х годов. Поскольку эти методы работали так хорошо, они были быстро приняты AMD, который использовал обработку вне заказа, начиная с K5.
Фокус на рычаге на мобильных процессорах с низким энергопотреблением изначально сохранил его из ООО «Игровое поле», но компания приняла выделение вне заказа, когда она построила CORTEX A9 и продолжала расширять использование методики с более поздней, более мощной Cortex -Бруди процессоров.
Вот как это работает. Современные процессоры - все трубопроводные, что означает, что они способны выполнять несколько инструкций параллельно, как показано на диаграмме ниже.
Представьте, что зеленый блок представляет собой ветвь IF-Thels. Предсказатель ветвления рассчитывает, какая ветвь с большей вероятностью будет предпринять, выбирает следующий набор инструкций, связанных с этим ветви, и начинается специфически выполняет их, прежде чем он знает, какой из двух ветвей кода будет использоваться. На диаграмме выше, эти спекулятивные инструкции представлены как фиолетовая коробка. Если предсказатель филиала правильно догадался, затем следующий набор инструкций, которые необходимы процессором, выровняются вверх и готовы к работе, без кабинета трубопровода или задержки выполнения.
Без прогнозирования ветвления и спекулятивным исполнением ЦП не знает, какая ветвь возьмет до первой инструкции на трубопроводе (зеленую коробку) завершается выполнением и перемещается до стадии 4. Вместо того, чтобы двигаться прямо из одного набора инструкций на Далее ЦП должен дождаться соответствующих инструкций для прибытия. Это вредит производительность системы с тех пор, как время CPU может выполнять полезную работу.
Причина, по которой это «спекулятивное» исполнение состоит в том, что ЦП может быть неправильным. Если это так, система загружает соответствующие данные и вместо этого выполняет эти инструкции. Но предикторы ветви не просто не ошибаются; Уровень точности обычно выше 95 процентов.
Зачем использовать спекулятивное исполнение?
Наибольшие десятилетия назад были изобретены экспонирование вне заказа, CPU были то, что мы сегодня называем «в порядке». Инструкции, выполненные в том порядке, в котором они были получены, без попытки заказать их или выполнять их более эффективно. Одной из основных проблем с выполнением в заказах является то, что стойл трубопровода останавливает весь процессор до тех пор, пока проблема не будет решена.
Другая проблема, которая привела к развитию спекулятивного исполнения, была разрыв между процессором и основными скоростями памяти. На графике ниже показан разрыв между часами CPU и памяти. По мере роста пробела, сколько времени ЦП потратил в ожидание основной памяти для доставки информации. Особенности, такие как L1, L2, и L3 кэши и спекулятивные казни, были разработаны для того, чтобы поддерживать процессор заняты и минимизировать время, которое оно потрачено на холостом ходу.
Это сработало. Сочетание крупных кэшей или кассеты вне заказа давало возможности Pentium Pentium Pentium Pentium Pentium и Pentium II, чтобы растянуть их ноги, по способам предыдущих чипсов не могли соответствовать. Этот график от анандтехской статьи 1997 года показывает преимущество четко.
Благодаря сочетанию спекулятивных казни и больших кэшей, Pentium II 166 решительно превосходит Pentium 250 MMX, несмотря на то, что последнее имеет 1,51x часовой скорости в течение первого.
В конечном итоге, это был Pentium II, который доставил преимущества выполнения вне заказа для большинства потребителей. Pentium II был быстрым микропроцессором по отношению к системам Pentium, которые работали на вершине всего за короткое время. AMD был абсолютно способным вариантом второго уровня, но пока исходный Athlon не запустил, Intel не был замок на абсолютной короне производительности.
Pentium Pro и более поздний Pentium II были гораздо быстрее, чем более ранние архитектуры Intel. Это не было гарантировано. Когда Intel спроектировал Pentium Pro, он потратил значительное количество его бюджета умирания и мощности, что позволяет вне выполнения заказа. Но ставка окупилась, большое время.
Intel была уязвима для большего количества боковых атак, которые пришли на рынок за последние три года, чем AMD или ARM, потому что он решил спекулировать более агрессивно и нанесение воздействия определенных типов данных в процессе. Несколько раундов патчей снизили эти уязвимости в предыдущих чипсах, а более новые процессоры разработаны с помощью исправлений безопасности для некоторых из этих проблем в оборудовании. Следует также отметить, что риск этих видов боковых атак остается теоретическим. За прошедшие годы, поскольку они всплыли, атака, используя эти методы.
Существуют различия между тем, как Intel, AMD и ARM реализуют спекулятивное исполнение, и эти различия являются частью того, почему Intel подвергается воздействию некоторых из этих атак в том, что другие поставщики не являются. Но спекулятивное исполнение, как техника, просто слишком ценно, чтобы остановить использование. Каждая единственная высококачественная архитектура CPU сегодня использует выполнение вне заказа. И спекулятивное исполнение, в то время как реализовано по-разному от компании к компании, используется каждым из них. Без спекулятивного выполнения выполнения вне заказа не будут функционировать.
Состояние побочных уязвимостей в 2021 году
С 2018 - 2020 годов мы увидели, что ряд обсуждаемых уязвимостей по боковым каналам, в том числе призрак, расплавов, предвещание, Ridl, MDS, Zombieload и другие. Стало немного ультрадно для исследователей безопасности, чтобы выпустить серьезный отчет, дружественное к рынком имени и периодическими воспитанными волосами PR, которые подняли призрак (без каламбура) разрушительных проблем безопасности, которые, на сегодняшний день, не появились.
Исследование по боковым каналам продолжается - в процессоре Intel CPU было найдено новая потенциальная уязвимость в марте Intel в марте, но часть по причине боковых атак-канальных атак заключается в том, что физика позволяет нам подняться на информацию, используя каналы, не предназначенные для его передачи. (Боковые канальные атаки - это атаки, которые сосредоточены на слабостях реализации для утечки данных, а не сосредоточены на конкретном алгоритме, чтобы взломать его).
Мы регулярно изучаем вещи о космическом пространстве, наблюдая за ним в спектре энергии, которые люди не могут естественным образом воспринимать. Мы наблюдаем за нейтрино, используя детекторы, тонутые глубоко в таких местах, как озеро Байкал, именно потому, что характеристики этих мест помогают нам различить слабый сигнал, который мы ищем от шума вселенной, идущей о своем бизнесе. Многие из того, что мы знаем о геологии, астрономии, сейсмологии и любом поле, где прямое наблюдение данных либо невозможна, либо непрактично, либо непрактично, относящиеся к идее «протекающих» боковых каналов. Люди очень хороши при дразнященности данных, измеряя косвенно. Существуют продолжающиеся усилия по проектированию чипов, которые делают подвиги на боковых каналах сложнее, но это будет очень сложно полностью запереть их.
Это не должно подразумевать, что эти проблемы безопасности не являются серьезными или что фирмы ЦП должны выбросить руки и отказываться от их исправления, потому что вселенная неудобна, но сейчас это гигантская игра в моль Не удалось обеспечить чип против всех таких атак. По мере изобретена новые методы безопасности, новые методы Snooping, которые могут показаться на других боковых каналах. Некоторые исправления, такие как отключение Hyper-Threading, могут улучшить безопасность, но поставляется с существенными хитами производительности в определенных приложениях.
К счастью, на данный момент все это обратно является теоретическим. Intel была компания пострадала больше всего по этим раскрывающим раскрывающим средством, но ни один из раскрытий боковых каналов, которые не упали с момента призрака и расплава, были использованы в публичной атаке. Amd, аналогично, знает ни одной группы или организации, ориентируясь на дзен 3 его недавнее раскрытие. Вопросы, такие как Ransomware, стали намного хуже в последние два года, без необходимости помощи от уязвимостей боковых каналов.
В долгосрочной перспективе мы ожидаем, что AMD, Intel и другие поставщики продолжают исправлять эти проблемы, когда они возникают с комбинацией аппаратных, программного обеспечения и обновлений прошивки. Концептуально концептуальные атаки на боковых каналах крайне сложны, если не невозможно, чтобы предотвратить. Специфические проблемы могут быть смягчены или обработаны, но характер спекулятивного исполнения означает, что определенное количество данных будет утечна в определенные обстоятельства. Может быть невозможно предотвратить его, не отказываясь от гораздо большего количества производительности, чем большинство пользователей когда-либо хотят торговать.
Читать далее
Что такое спекулятивное исполнение?
Спекулятивное выполнение жизненно важно для высокой производительности в современных ПК. Мы обсуждаем, как это работает и почему это считается потенциальной угрозой безопасности.
Что такое спекулятивное исполнение?
Спекулятивное исполнение было в новостях в последнее время, как правило, при обсуждении ошибок Meltdown и Spectre. Мы объясняем эту тему.
Новые уязвимости в области спекулятивного исполнения
Новый вектор атаки против процессоров Intel был обнаружен, опять же, на спекулятивном исполнении.
Intel раскрывает новые спекулятивные уязвимости безопасности выполнения
Корпорация Intel раскрыла новый набор спекулятивных проблем безопасности выполнения, которые при определенных обстоятельствах могут привести к утечке данных из процессоров. Насколько серьезная проблема, которую они представляют в практическом плане, все еще обсуждается.