AI-новости8 августа 2026 г., 15:18 МСК🤖 Auto

Самая медленная инструкция x86: 198 млрд циклов за 62 секунды

Исследователь Christopher Domas запустил проект CPU Deoptimization, чтобы найти инструкцию с максимальной задержкой. Рекордсменом стал fxrstor64, выполнившийся 62 секунды.

Баннер новости 5372

Анти-оптимизация: поиск самого медленного кода

В то время как инженеры Intel и AMD стремятся ускорить процессоры, исследователь Christopher Domas (известный в GitHub как @xoreaxeaxeax) пошел по обратному пути. Он создал проект CPU Deoptimization — своеобразный «Зал позора» для инструкций x86, цель которого — найти команду, выполняющуюся максимально долго. Это не просто хакерская забавa: анализ крайних случаев помогает понять архитектурные узкие места и пределы производительности современных CPU.

Рекордсмен: fxrstor64 и 198 миллиардов циклов

Абсолютным победителем стала инструкция fxrstor64, предназначенная для восстановления состояния регистров SIMD (ширина 512 бит). В стандартных условиях она работает быстро, но Домас смог искусственно замедлить её до абсурдных значений, используя три этапа:

  1. Поиск узкого места: С помощью собственного инструмента mmiotic исследователь нашел область с высокой задержкой во внутренней шине PCIe.
  2. Нагрузка на MMIO: Был инициирован загрузочный запрос 512-байтового состояния из Memory-Mapped I/O, что заняло 74 млрд циклов (23 секунды).
  3. Голодание шины: Ключевой шаг — параллельная серия 4-байтных чтений из другого регистра с высокой задержкой. Это перегрузило корневой комплекс PCIe, заставив инструкцию fxrstor64 ждать в очереди за «бесполезными» операциями.

Итоговый результат: 198 002 498 236 циклов или ровно 62 секунды на процессоре Intel Core i7-8559U.

Другие участники «Зала позора»

Помимо главного аутсайдера, проект выявил интересные особенности других архитектур. Например, на старом процессоре VIA Eden инструкция rdmsr (чтение специфического регистра) показала аномально высокую задержку из-за использования недокументированного регистра 0x133. Ниже приведена сводка по зафиксированным рекордам медлительности.

Инструкция Процессор Задержка (циклы) Время выполнения Причина замедления
fxrstor64 Intel Core i7-8559U 198 002 498 236 62 секунды Перегрузка шины PCIe и очередь MMIO-запросов
rdmsr VIA Eden (embedded) 161 602 202 мкс Доступ к недокументированному регистру 0x133

Почему это важно для индустрии?

Проект демонстрирует, что производительность зависит не только от тактовой частоты, но и от взаимодействия инструкций с подсистемой памяти и шинами. Домас планирует расширить проект на архитектуры ARM и RISC-V. Важно отметить, что все тесты проводились на «чистом» железе без модификаций, а результаты нормализованы по базовой частоте процессора. Единственное правило: оценивается выполнение строго одной инструкции без прерываний и эмуляции.

Эксперимент также напоминает о проекте movfuscator — компиляторе C, который использует только инструкцию пересылки данных (mov), доказывая, что даже самые простые команды могут стать «бутылочным горлышком» при неправильном контексте выполнения.

Источник: Tom's Hardware ↗