Призрак: SIMD причина?
Короткий вопрос: я прочитал статью об уязвимом призраке.
Это говорит о том, что затрагиваются только высокопроизводительные процессоры ARM, а не младшие. Поскольку младшие процессорные процессоры ARM не поддерживают инструкции SIMD (также называемые расширением NEON в ARM), для меня это звучит так, как будто SIMD является проблемой. Я не настолько глубоко в этой теме, но я нашел бумагу для умозрительных инструкций по SIMD.
Я просто хочу знать, прав ли я или ошибаюсь.
1 ответ
Нет, особенность "высокого класса", которая имеет значение на этих процессорах ARM, является неупорядоченным выполнением с предсказанием ветвлений + спекулятивным выполнением.
Процессоры с порядком работы с NEON (например, Cortex A-53) не включены в список затронутых процессоров, потому что Spectre зависит от спекулятивного выполнения.
Spectre запускает предикторы ветвления, поэтому непрямая ветвь в привилегированном коде неверно предсказана, чтобы пойти куда-то, что вызывает зависящее от данных изменение в микроархитектурном состоянии до того, как ошибочный прогноз обнаружен.
В Meltdown вы сами запускаете инструкции в непривилегированном коде; Процессоры Intel продолжают спекулятивное выполнение после загрузки, которая должна была дать сбой, используя запись TLB для страницы только для ядра. Ошибка не возникает до тех пор, пока загрузка не попытается удалиться (что можно даже отложить, запустив отдельную цепочку медленных зависимостей инструкций перед ошибкой-загрузкой + использованием этих данных, поскольку инструкции удаляются по порядку).
Для получения дополнительной микроархитектурной информации о том, как работает Meltdown, см. Почему процессоры AMD не менее / менее уязвимы для Meltdown? (и Призрак)?