Как известно, выпуск нового процессора, особенно «прорывного» – дело небыстрое, и зачастую на рынок выходят недоделанные решения. В большинстве случаев эти ошибки не фатальны, хотя их список может исчисляться десятками страниц, но история знает и яркие примеры серьёзных провалов: «двойная сигма», не позволявшая дефектным процессорам Intel 80386 работать в 32-битном режиме, ошибка F00F в ранних Pentium, приводившая к зависанию системы, а также некорректная отработка операции деления в первых Pentium 60/66. Увы, как выяснилось на днях, не минула сия судьба и AMD Ryzen на базе новейшей архитектуры Zen.
По информации зарубежных источников, разработчику Александру Еэ (Alexander Yee) удалось выловить серьёзную ошибку в текущей ревизии кремния Ryzen с помощью специальной тестовой программы собственной разработки. Эта программа измеряет производительность процессора в операциях с плавающей запятой. Как оказалось, использует максимально оптимизированный код с поддержкой всех современных наборов инструкций, включая SSE и FMA3 (Fused Multiply-Add 3). В Ryzen AMD отказалась от поддержки FMA4, но в реализацию FMA3 вкралась ошибка: использование 128-битных команд FMA3 может приводить к краху системы, и Александру Еэ удалось добиться воспроизводимости этого результата.
Позднее это подтвердили и другие пользователи. На ресурсе Heise Online проверили поведение Ryzen 7 1700X на плате MSI X370 XPower Gaming Titanium и Ryzen 7 1700 на одной из самых популярных плат с разъёмом AM4 — ASUS Crosshair VI Hero. В обоих случаях система зависала и требовала «холодной» перезагрузки. Как оказалось, ошибка всегда проявляется при определённых условиях использования FMA3 и лежит в области микрокода (AGESA, AMD Generic Encapsulated Software Architecture). Проще говоря, обновление микрокода процессора и/или BIOS системной платы может решить проблему. В AMD пока не дали комментариев.