AMD внедряет «FRED» вместе с Intel для архитектуры «Zen 6»

Amd Zen 6 Fred Intel процессорная архитектура X86

AMD внедряет инструкции FRED вместе с Intel для архитектуры Zen 6, что обещает более чистые переходы между ядром и приложениями и повышение производительности.

AMD, по всей видимости, фундаментально перерабатывает свою процессорную архитектуру для грядущих чипов Zen 6, а не просто делает ее подмножеством Zen 5. В рамках этих улучшений, благодаря пользователю X под ником InstLatX64, теперь известно, что AMD наконец-то приняла инструкции FRED от Intel для своего нового кремния, наряду со свежими инструкциями для матричного умножения и обращения битов. FRED является полной заменой механизма таблицы описателей прерываний (IDT) эпохи 80286, которому сейчас значительно больше 40 лет. IDT в настоящее время является стандартным способом обработки системных событий, таких как доставка сетевого пакета или ввод с мыши, и передача его данных драйверу или приложению.

Принятие FRED компанией AMD стало результатом создания обеими компаниями группы x86 Ecosystem Advisory Group для координации работы над новым набором инструкций. В октябре прошлого года, через год после основания альянса, AMD согласилась внедрить FRED в свои будущие чипы. На данный момент ни один из серийных чипов обеих компаний не поддерживает FRED, хотя есть основания полагать, что Intel Nova и Panther Lake, а также AMD Zen 6 станут первыми линейками, которые это сделают.

Некоторое время ситуация с совместимостью выглядела несколько шахин, поскольку у AMD были свои расширения Supervisor Entry Extensions (SEE). В то время как FRED от Intel является полной заменой IDT, AMD SEE можно охарактеризовать как жизнеспособное решение, требующее минимальных изменений в унаследованном программном обеспечении. Сам Линус Торвальдс четко изложил свое мнение в сообщении на форуме, выразив надежду, что оба поставщика реализуют обе идеи, но похвалив подход Intel как более полное решение, которое полностью избавляется от устаревшего кода.

Что касается поддержки программного обеспечения, то ядро Linux имеет предварительную поддержку FRED начиная с версии 6.9. Опять же, вполне разумно ожидать, что любая следующая версия настольной или серверной Windows также будет поддерживать эту функцию. Следует отметить, что этой функцией могут пользоваться только низкоуровневые программы, такие как операционные системы и драйверы; она не касается фактических приложений.

Что касается того, что такое FRED на самом деле, мы можем предложить упрощенное объяснение. Системное событие (например, получение входящего сетевого пакета) называется прерыванием, а передача данных и/или кода для обработки включает переход кольца. Этот сценарий постоянно происходит в любой операционной системе, во всех ее частях, от хранения данных (завершение записи) до ввода с мыши (например, простой щелчок).

До сих пор программистам приходилось полагаться на IDT, для которого точными техническими прилагательными являются “хакерский” и “неуклюжий”. IDT обеспечивал лишь половинчатый переход от кода ядра к коду приложения, что означало, что программистам приходилось выполнять множество других операций вручную, быть осторожными с граничными случаями, думать о нескольких уровнях кольца и обходить потенциальные состояния гонки (когда два системных события происходят одновременно и перекрывают друг друга).

FRED улучшает все эти аспекты, предоставляя однократные инструкции, гарантирующие чистый переход из ядра в приложение и обратно с согласованным стеком (информация о событии и месте продолжения выполнения). Основные инструкции FRED являются атомарными, то есть выполняются все сразу (или не выполняются вовсе), поэтому программистам не нужно беспокоиться о несогласованном состоянии, когда им нужно обработать прерывание. Также требуется гораздо меньше умственных усилий, так как нужно думать о гораздо меньшем количестве вещей. Даже старые уровни кольца убраны, сведены к 0 (ядро) и 3 (пользователь).

В совокупности это означает, что разработчики могут просто вызвать FRED, и он выполнит всю необходимую работу за них за один раз, и им больше не придется кодировать обход множества крайних случаев и теоретических проблем. Это должно обеспечить более стабильные ядра, системные драйверы, загрузчики и другое низкоуровневое программное обеспечение.

По крайней мере, теоретически, FRED также призван улучшить общую производительность системы, поскольку он потребляет меньше циклов процессора, что приводит к снижению задержки событий. Это может накапливаться при высоких нагрузках, таких как обработка больших сетевых передач, и, возможно, даже при играх с высокой частотой обновления и работе со звуком — хотя потенциальный прирост будет варьироваться для каждого типа рабочей нагрузки.

FRED, безусловно, станет благом для производительности в сценариях виртуализации, которые особенно включают обработку событий, проходящих через несколько уровней. Архитектура x86 давно критикуется за слишком долгое сохранение устаревших функций, поэтому скорое появление FRED — это хорошая новость.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Похожие новости: