Компания AMD последние три года не перестает радовать всех без исключения. Фанаты красного лагеря довольны производительностью, а синего — более низкими ценами и наконец-то появившемуся прогрессу. Команда Лизы Су после представления первых решений архитектуры Zen настолько отточила свое детище, что новинки в лице серии Ryzen 5000 стали даже дороже своих предшественников. И такое возможно, когда ты полностью уверен в своем продукте. Но так ли это — мы узнаем уже в конце тестирования, а пока давайте выясним, что нового принесла архитектура Zen 3.

AMD Ryzen 9 5950X и Ryzen 9 5900X

Zen 3

Несмотря на то, что архитектура Zen уже претерпела кардинальных изменений на итерации Zen 2, компания AMD не сбавила обороты и за год ей удалось сделать очередную революцию без смены техпроцесса. Zen 3 действительно серьезный шаг вперед, который знаменуется 19% IPC и рядом других новшеств.

Aрхитектура AMD Zen 3

Глядя на иллюстрацию выше, можно заметить, что усердная работа велась по многим направлениям, дабы удовлетворить требования всех пользователей и, в частности, обрадовать геймеров. Оптимизации коснулись всех элементов конвейеров: целевой буфер ветвления (BTB) увеличился вдвое, значительно улучшена пропускная способность предсказателя ветвления, устранен эффект «пузырьков» в выборках, уменьшен штраф за неправильное предсказание переходов, быстрая последовательность получения и более мелкая гранулярность переключений Op-кэша. Блоки исполнения инструкций, загрузки и хранения данных также получили ряд усовершенствований, но об этом чуть позже.

CCD и иерархия кэшей

Наверно самый основной козырь микроархитектуры Zen 3 — это измененная структура CCD (Core Complex Dies). Теперь кристалл стал монолитный и не содержит в себе два модуля CCX (CPU Complex), которые ранее были соединены между собой с помощью Infinity Fabric.

Aрхитектура AMD Zen 3

Благодаря измененной компоновке теперь каждое ядро может обращаться напрямую к кэшу L3 без использования Infinity Fabric, что значительно снизило задержку доступа к данным. Тем не менее, задержка L3-кэша увеличилась, с 39 до 46 тактов. Основная причина этого явления оказался объём монолитной структуры, а вторая — возросшие тактовые частоты L3. К счастью вторая причина способна несколько компенсировать увеличившуюся латентность. Механизм заполнения кэша третьего уровня — виктимный, то есть на него не распространяется предварительная выборка, данные просто вытесняются в него из L2. Таким образом, L3-кеш оказывается преимущественно эксклюзивным.

Что касается остальной иерархии кэшей, изменения некоторые все же есть.

Aрхитектура AMD Zen 3

Кэш-память L1-I и L1-D по-прежнему имеет 32 Кбайт с 8-канальной ассоциативностью, а кэш-память второго уровня 512 Кбайт с 8-канальной ассоциативностью. Микрооперационный кэш не изменился и составляет 4 Кбайт.

Zen 3 поддерживает 64 существенных пропусков между L2 и L3 на ядро и 192 между L3 и оперативной памятью.

Кэш инструкций (L1-I) на цикл может обеспечивать 32-байтовую выборку, в то время как кэш данных (L1-D) допускает 3x 32-байтовых загрузки и 2х 32-байтовых сохранения за цикл. Очередь на сохранение возросла с 48 до 64.

Aрхитектура AMD Zen 3

Стоит отметить, что подобное решение характерно для большинства высокоинтенсивных рабочих нагрузок, которые в конечном итоге приводят к большему количеству загрузок, чем сохранений.

Также Zen 3 может загружать два и сохранять один 256-битный вектор за одну операцию при условии обращения к разным DC-банкам.

Буфер трансляции адресов (DTLB) не изменился и составляет 2К. AMD также указывает, что была улучшена предварительная выборка через границы страницы.

Блок выборки инструкций и предсказания переходов

Aрхитектура AMD Zen 3

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

Буферы целей ветвления были несколько переработаны. Таблица первого уровня в Zen 3 включает 1024 записей вместо 512, а второго уровня — 6,5K записей вместо 7К. Массив косвенных адресов увеличился с 1К записей до 1,5К. В совокупности, все эти изменения должны позволить процессору более быстро восстанавливать исполнительный конвейер после неправильно предсказанного перехода.

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

Еще одним интересным новшеством является борьба с «пузырьками» в предсказаниях. Во всех процессорах Ryzen используется регистр программного счетчика (ПС) для определения текущей инструкции, выбираемой в конвейере, чтобы предотвратить выборку новых инструкций. Когда инструкция на этапе декодирования остановлена, значение в регистре ПС и инструкции на этапе выборки сохраняются, чтобы предотвратить изменения. Значения сохраняются до тех пор, пока инструкция, вызывающая конфликт, не пройдет стадию выполнения. Такое событие часто называют пузырем по аналогии с пузырем воздуха в отоплении или вашем контуре СВО. В некоторых микроархитектурах взятая ветвь предсказаний приводит к появлению пузыря в конвейере выборки, даже если она правильно предсказана. С многоуровневыми предикторами второй уровень может скорректировать прогноз первого уровня, поэтому прогноз, можно сказать, что он правильный, но для перенаправления выборки будет введен небольшой пузырек. При буферизации такой эффект обычно не дает существенного эффекта. Ветвь также будет использовать ресурсы предсказателя ветвления, возможно, уменьшая предсказуемость других ветвей (например, принимая запись BTB, которая в противном случае не была бы удалена до повторного использования или «растраты» битов в глобальной истории).

Zen 3 принес перемены и в организацию работы планировщиков. Четыре целочисленных планировщика теперь унифицированные и могут обладать очередью в 24 записи для AGU или 24 записи для ALU (вместо 4х16 ALU и 28 AGU).

Aрхитектура AMD Zen 3

Планировщики целочисленных значений могут принимать до шести микроопераций за такт, которые подаются в более жирный буфер переупорядочения с 256 записями (вместо 224 в Zen 2).

Модуль Integer имеет восемь исполнительных портов, через которые подключены четыре ALU (арифметико-логических блока), три AGU (блоков генерации адресов) и один BRU (блок позволяет программе принимать решения, а также выполнять переходы и вызовы процедур).

Aрхитектура AMD Zen 3

Блок AGU все так же может подавать три микрооперации за такт в файл регистра. Регистровый файл общего назначения чуть подрос с 180 до 192 записей.

Не обошли стороной и модуль вещественных значений (FP). По заявлению AMD структура для загрузки исполнительного модуля получила больший параллелизм, при этом снизились внутренние задержки (это также касается и целочисленного модуля).

Aрхитектура AMD Zen 3

В частотности операция умножения-накопления (FMAC) выполняется на один цикл быстрее. Появились также два новых блока F2I и STORE F2I, суть работы которых преобразование вещественных значений в целочисленные, а также последующее хранение. То есть в итоге диспетчеризация стала несколько сложнее, а планировщик стал несколько больше. Конкретных значений, к сожалению, компания AMD не приводит, но, тем не менее, это должно увеличить производительность в приложениях, которые используют AVX2.

IOD и разгон оперативной памяти

Пожалуй, IOD единственный кристалл, который не содержит никаких архитектурных изменений.

Aрхитектура AMD Zen 3

В случае с одночиплетной конфигурацией скорость записи составляет половину от скорости чтения (точно так же, как и c микроархитектурой Zen 2). Напомним, что это не является недостатком, ведь большинство приложений используют больше операций чтения, чем записи (за исключением специализированных тестовых приложений). Также самые внимательные из вас могли заметить, что это напоминает ситуацию с иерархией кэшей, там присутствуют три чтения и две записи за такт. То есть архитектура сбалансирована везде.

Двучиплетные конфигурации (Ryzen 9 5900X и Ryzen 9 5950X) получают полноценную скорость записи. Тут также без изменений.

Aрхитектура AMD Zen 3

За счет более высокой частоты ядер и реорганизации CCX латентность доступа к DRAM снизилась почти на 10 нс и в большинстве случаев будет составлять 55 нс при использовании памяти с частотой 3800 МГц и CAS 16. Но тут также присутствует разочарование — пока все образцы отказались покорять частоту FCLK выше, чем 1900 МГц. Контроллер памяти не трогали и не дорабатывали.

Безопасность

Aрхитектура AMD Zen 3

Безопасность данных всегда была главным приоритетом компании AMD и как многие из вас знают, именно процессоры Ryzen не получали заплаток безопасности с даунгрейдом производительности. Тем не менее, AMD продолжает улучшать безопасность и представляет поддержку CET во всех процессорах с микроархитектурой Zen 3.

CET разработан для защиты от неправомерного использования легитимного кода с помощью атак с перехватом управления, широко используемых методов в больших классах вредоносных программ. CET предлагает разработчикам программного обеспечения две ключевые возможности для защиты от вредоносных программ, перехватывающих поток управления: косвенное отслеживание переходов и теневой стек. Непрямое отслеживание переходов обеспечивает непрямую защиту переходов для защиты от методов атаки с использованием переходов/вызовов программирования (JOP/COP). Теневой стек обеспечивает защиту адреса возврата, чтобы помочь защититься от методов атак, ориентированных на возврат (ROP).

Precision Boost 2

Как показала практика с CTR, технология Precision Boost 2 от AMD продемонстрировала нулевую эффективность еще в процессорах с микроархитектурой Zen 2, поскольку никакого интеллектуального подхода к увеличению частоты относительно напряжения не происходило. В итоге пользователь получал реальную печку. Сейчас ничего не изменилось и в материалах для прессы отсутствуют упоминания про обновленный механизм авторазгона или новый заводской способ поиска удачных ядер, которые будут максимально пригодны для малопоточного boost. К этому мы обязательно вернемся в будущих материалах, поскольку процедура оценки качества ядер занимает много времени, а также требуется выборка образцов для подведения корректных итогов.

Что касается стандартного буста, на данный момент он великолепен и в большинстве случаев полученные значения даже превышают маркетинговые цифры.

Aрхитектура AMD Zen 3

Безопасные напряжения и прочие рекомендации

Изо дня в день пользователей волнует, какое напряжение должно быть и какое значение будет безопасным. Итак, небольшая шпаргалка. Для игр и мелких приложений значение CPU VID может колебаться до 1,5 В и это является нормой. Для тяжелой нагрузки максимальное значение CPU VID не должно превышать 1,35 В. Значения в простое могут колебаться в диапазоне 0,2–1,45 В, что соответствует значениям P-state P2 и P1 (слабый boost).

Aрхитектура AMD Zen 3

Причем значение 1,45 В отнюдь не означает, что на все ядра подается именно это напряжение, большинство ядер вообще могут быть в состоянии сна C6 или другом C-состоянии. Еще одним важным моментом является скорость изменения значений эффективной частоты и VID, оно составляет около 1 мс — это означает, что запущенный HWinfo или Ryzen Master «ловит» только 1/1000 от того что происходит на самом деле в системе.

Хотелось бы отметить, что теперь после установки драйверов на чипсет (не забываем устанавливать!) не нужно активировать никакие профили Ryzen Balanced или Ryzen Performance — их теперь попросту нет, AMD их упразднила.

Aрхитектура AMD Zen 3

Теперь управление питанием процессора происходит с помощью стандартных планов питания Windows. Причем ядра у процессоров Ryzen с микроархитектурой Zen 3 стали спать больше и пропали спонтанные температурные всплески. Система Windows должна быть обязательно с майским обновлением 2004, в противном случае у вас могут быть проблемы с бустом или энергосбережением в простое.

Максимально допустимая температура теперь составляет 95 градусов для процессоров с заявленным пакетом TDP в 65 Вт и 90 градусов для процессоров с TDP 105 Вт.

Aрхитектура AMD Zen 3