AMD объяснила причину выпуска обновления микрокода для защиты от Spectre

В Сети не утихает спор о том, так ли требовалось AMD обновлять микрокод процессоров, если подтверждения возможности атаки пока не опубликовано, и вероятность существования уязвимости близка к нулю. AMD опубликовала новый документ Software Techniques for Managing Speculation on AMD Processors.

AMD пришлось обновлять микрокод, поскольку Microsoft вместе с патчем (Mitigation V2-4) добавила новые инструкции к архитектуре x86 Instruction Set Architecture (ISA). Инструкции включают Indirect Branch Prediction Barrier (IBPB), Indirect Branch Restricted Speculation (IBRS) и Single Thread Indirect Branch Predictors (STIBP).

Документ AMD описывает их следующим образом:

  • IBPB – Places a barrier such that indirect branch predictions from earlier execution cannot influence execution after the barrier.
  • IBRS – Restricts indirect branch speculation when set.
  • STIBP – Provides sibling thread protection on processors that require sibling indirect branch prediction protection 

Пока не совсем понятно, какие процессоры AMD поддерживают упомянутые три функции. Сама AMD говорит следующее: "Будучи новой функцией, данный механизм доступен лишь на ограниченном числе современных процессоров AMD, он требует патч микрокода. Данные три функции привязаны к конкретным CPUID, не все процессоры поддерживают все функции."

Если бы Microsoft использовала модификацию компилятора Retpoline, то обновлять микрокод не пришлось бы. Если верить словам Google, существенной потери производительности нет. В данном отношении подобная реализация кажется вполне разумной, поскольку можно обойтись без обновления микрокода. Но пока ничто не говорит о том, что Microsoft выберет такой путь.

С процессорами Intel ситуация иная: обновление микрокода требуется для всех новых процессоров, независимо от Mitigation V2-4 или Mitigation V1-1 (Retpoline). Для старых процессоров можно закрыть только Retpoline.

Нравится11
Комментарии
    B
    i
    u
    Спойлер