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

Вот как вы думаете, современные процессоры, встретив в коде условный переход типа if () {} else {}, какую ветвь кода выполняют?

Правильный ответ: обе.

Почему? Потому что оперативная память, раздери её Вулкан, до сих пор является самой тормозной частью компьютера. Компьютер может выполнять инструкции гораздо быстрее, чем подтаскивать данные из памяти, поэтому он тупо выполняет обе ветви, и данные, полученные в результате ветви, которая не должна была исполниться, потом выбрасывает.

Только вот с выбрасыванием есть… эффекты. Которыми можно злоупотребить. Именно отсюда растут ноги туевой хучи эксплойтов типа Spectre, Meltdown, и прочих радостей. Теперь с эффектами засветились процессоры AMD.

Я плохо понимаю конкретику, но каким-то образом злоумышленники могут заставить центральный процессор считать, что команда XOR является рекурсивным вызовом. Далее, как водится, идёт переполнение буфера, и возврат стека на произвольный адрес, который любезно подсовывает ему хакер. Таким образом могут быть возвращены приватные данные из другого непривилегированного процесса.

https://www.bleepingcomputer.com/news/security/new-inception-attack-leaks-sensitive-data-from-all-amd-zen-cpus/

Когда же всё это починят? Да никогда. Убирание спекулятивного исполнения стоит огромного падения в производительности. Поэтому оно с нами будет как минимум до тех пор, пока память типа SRAM не будет стоить как обычная оперативка RAM.