В Сети не утихает спор о том, так ли требовалось 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.