DDR5-память давно вышла из разряда технологических новинок и стала если не обыденностью, то, по крайней мере, привычным выбором для систем ценового диапазона выше среднего. Наибольший вклад в продвижение нового стандарта, вне всяких сомнений, внесла компания Intel, начавшая перевод потребительских систем на DDR5 ещё два года назад. Но теперь DDR5 активно пропагандируется и AMD, поскольку актуальное семейство процессоров Ryzen 7000 вслед за Alder Lake и Raptor Lake тоже перешло на эту разновидность памяти.
При этом нельзя сказать, что подход AMD к реализации поддержки DDR5 в своей платформе оказался похож на подход Intel. И дело даже не в отсутствии переходных решений и категорическом отказе от совместимости с DDR4 в новом поколении процессоров. Гораздо серьёзнее то, что AMD выбрала собственную методику интеграции контроллера памяти в архитектуру CPU, из-за чего Ryzen 7000 взаимодействуют с DDR5 совсем не так, как к этому привыкли пользователи процессоров Intel.
На нашем сайте вышло довольно много материалов об особенностях работы DDR5 SDRAM в системах на базе процессоров Core 12-го и 13-го поколений (посмотрите, например, недавний тест Core i9-13900K с DDR5-8000). Однако никаких аналогичных исследований, посвящённых Ryzen 7000, до сих пор не проводилось. Сегодня мы устраним эту недосказанность и аргументировано ответим на основные вопросы про память, которые могут возникнуть у пользователей платформы Socket AM5.
Главная причина, по которой про работу DDR5-памяти с Ryzen 7000 нужно говорить отдельно, состоит в том, что процессоры Zen 4 по своему концептуальному строению не отличаются от Zen 3. Они собраны из чиплетов с похожей функциональностью, а значит, вычислительные ядра в Ryzen 7000 физически отделены от контроллера памяти, располагаясь в соседнем по отношению к нему полупроводниковом кристалле. Как и раньше, для конструирования потребительских вариантов Zen 4 компания AMD использует два вида кристаллов: чиплеты CCD, в которых находится по восемь вычислительных ядер с 32-Мбайт L3-кешем, и чиплет I/O, где расположены контроллеры памяти и PCI Express, а также встроенное графическое ядро.
Подробнее об устройстве представителей серии Ryzen 7000 можно прочитать в нашем обзоре Ryzen 9 7950X, а здесь мы сосредоточимся на том, как в этих процессорах работает контроллер памяти и как вычислительным ядрам удаётся взаимодействовать с ним при условии, что он находится от них на некотором отдалении. В качестве основного объекта исследования мы выбрали Ryzen 7 7800X3D — этот процессор в серии Ryzen 7000 пользуется наивысшей популярностью, поскольку предлагает выгодное соотношение игровой производительности и цены и даже претендует на звание лучшего варианта для построения геймерских ПК.
И если говорить конкретно о Ryzen 7 7800X3D, то в нём восемь ядер с наращённым до 96 Мбайт 3D-кешем находятся в одном полупроводниковом кристалле, а контроллер DDR5 — в другом. Из этого вытекает как минимум два важных следствия. Во-первых, от подсистемы памяти Ryzen 7000 не стоит ждать таких же показателей производительности, какие выдают системы, основанные на процессорах Intel, где контроллер памяти находится от вычислительных ядер в непосредственной близости. И во-вторых, существенное влияние на скорость работы Ryzen 7000 с памятью должна оказывать шина, соединяющая между собой чиплеты внутри процессора, — Infinity Fabric. И про эту шину нам сегодня придётся вспоминать постоянно, поскольку многие особенности Ryzen 7000 связаны именно с ней. Но давайте обо всём по порядку.
⇡#Как всё устроено в Ryzen 7000
Важность шины Infinity Fabric для процессоров Ryzen нескольких последних поколений невозможно подвергнуть сомнению. С анонсом каждой новой серии процессоров AMD давала даже специальные рекомендации, каким образом следует подходить к настройке её параметров. Например, в Ryzen 5000, чтобы устранить негативный эффект от наличия в магистрали «процессор — память» промежуточного звена в виде Infinity Fabric, компания рекомендовала стремиться к синхронной работе этой шины и контроллера памяти. И в этих процессорах, рассчитанных на DDR4 SDRAM, достигнуть равенства частот было не так уж и сложно: нужное соотношение между ними автоматически выдерживалось при использовании памяти в режимах вплоть до DDR4-3600 включительно. Именно поэтому DDR4-3600 и была названа AMD идеальным вариантом для Ryzen 5000 — при установке такой памяти всё в платформе Socket AM4 работало синхронно само собой и между частотами Infinity Fabric, контроллера памяти и собственно модулей DDR4 SDRAM сохранялось соотношение 1:1:1.
Но тогда же выяснилась и неприятная особенность — отклонение от этого соотношения приводило к заметному падению производительности. Поэтому использовать с Ryzen 5000 более скоростную память имело смысл лишь с оговорками. Например, с DDR4-3800 синхронности частот Infinity Fabric, контроллера памяти и модулей DDR4 можно было достичь с помощью ручной настройки, но ещё более скоростная память делала это невозможным в принципе. Поэтому DDR4-4000 и более быстрые модули для Ryzen 5000 противопоказаны.
Корень всех проблем кроется именно в Infinity Fabric: в Ryzen 5000 эта шина в общем случае не умеет работать без ошибок на частоте выше 1900 МГц. Некоторые экземпляры процессоров позволяют разогнать её до 1933 МГц, открывая дорогу к синхронной работе DDR4-3866, но сути это не меняет — высокочастотная память в системах на базе Ryzen 5000 не даёт прироста производительности в первую очередь из-за рассинхронизации частот памяти и Infinity Fabric.
В Ryzen 7000 ситуация изменилась: в этих процессорах появился контроллер DDR5 — памяти, которая работает на существенно более высокой частоте по сравнению с DDR4. Поэтому синхронное тактование Infinity Fabric с DDR5 стало невозможным изначально. За счёт перехода на более современные техпроцессы AMD удалось поднять потолок частоты этой шины, но довольно скромно — максимальная скорость Infinity Fabric, которая достижима в особенно удачных экземплярах Ryzen 7000, не превышает 2133-2166 МГц, а типичным максимумом её возможностей считается частота 2000 МГц. Именно поэтому для новых процессоров AMD переписала рекомендации по настройке частот и теперь говорит исключительно о выгодах одинаковой частоты контроллера памяти и модулей DDR5, советуя перекладывать настройку частоты Infinity Fabric на плечи материнской платы.
Предпочтительным режимом памяти для всех процессоров серии Ryzen 7000 компания называет DDR5-6000 — в этом случае между частотами контроллера и модулей памяти удаётся сохранять соотношение 1:1, которое активируется автоматически. По мере совершенствования BIOS материнских плат синхронно с контроллером научилась работать и более скоростная DDR5-6400, правда, в этом случае правильную частоту контроллера нужно выставлять вручную. Но дальнейший рост частоты DDR5 в любом случае потребует полного отказа от синхронности и перевода частоты контроллера памяти в режим 1:2, что существенно портит латентности и, по мнению AMD, наносит непоправимый удар по производительности.
При этом синхронный режим памяти в Ryzen 7000, строго говоря, не является таковым из-за работы шины Infinity Fabric на собственной независимой частоте. В платформе Socket AM5 эта частота равна 2000 МГц вне зависимости от выбора скоростного режима памяти. Таким образом, системы на базе Ryzen 7000 лишились полной сквозной синхронизации при пересылках данных по магистрали «процессор — память». Комментируя эту нестыковку, AMD ссылается на улучшенную буферизацию Infinity Fabric, благодаря которой ей якобы удалось минимизировать потери в производительности, и предлагает пользователям не задумываться о частоте этой внутрипроцессорной шины вообще.
Однако не всё так просто. Буферизацией можно добиться устранения излишних задержек, но она не способна решить вопрос с полосой пропускания, которой у Infinity Fabric, работающей на частоте 2000 МГц, стало закономерно не хватать. Для соединения CCD- и I/O-чиплетов в процессорах Ryzen используется вариант Infinity Fabric шириной 32 байт, и это значит, что пропускная способность Infinity Fabric в Ryzen 7000 составляет 64 Гбайт/с. Современная двухканальная DDR5-память способна обеспечить гораздо более высокую пропускную способность, но современные процессоры AMD, очевидно, этим преимуществом DDR5 воспользоваться не могут, поскольку между памятью и процессорными ядрами осталась медленная шина, перекочевавшая из Zen 3 в Zen 4 без каких-либо значимых изменений.
Следовательно, рекомендацию AMD использовать c Ryzen 7000 как можно более скоростную память, которая не потребует перевода контроллера в режим 1:2 (то есть DDR5-6000 или DDR5-6400), можно подвергнуть сомнению. Производительность процессоров актуального поколения не должна существенно зависеть от пропускной способности памяти — даже двухканальная DDR5-5200, которая значится в официальной спецификации любого представителя серии Ryzen 7000, перекрывает возможности Infinity Fabric с серьёзным запасом. Поэтому основное влияние на производительность должны оказывать другие параметры памяти, например её задержки.
И это сразу делает бесполезными все знания о работе DDR5, которые мы получили, тестируя такую память в системах на LGA1700. В случае платформы Socket AM5 они попросту неприменимы. Здесь мы имеем дело с абсолютно уникальным вариантом реализации поддержки DDR5, который требует отдельного и независимого исследования. И далее с помощью серии экспериментов мы попробуем разобраться, как рациональнее подойти к поиску и настройке памяти владельцам Ryzen 7 7800X3D (и других процессоров семейства Zen 4).
⇡#Описание тестовой системы и методики тестирования
Для досконального исследования особенностей работы подсистемы памяти Ryzen 7 7800X3D мы провели тестирование двух с половиной десятков вариантов настроек DDR5. Все тесты выполнялись в системе, составленной из следующего набора оборудования:
Тестирование выполнялось в операционной системе Microsoft Windows 11 Pro (22H2) Build 22621.1555 с использованием следующего комплекта драйверов:
Описание использовавшихся для измерения вычислительной производительности инструментов:
Синтетические тесты:
Приложения:
Игры:
Во всех игровых тестах в качестве результатов приводится среднее количество кадров в секунду, а также 0,01-квантиль (первая перцентиль) для значений FPS. Использование 0,01-квантиля вместо показателей минимального FPS обусловлено стремлением очистить результаты от случайных всплесков производительности, которые были спровоцированы не связанными напрямую с работой основных компонентов платформы причинами.
⇡#Что важнее: частота или тайминги?
Чтобы проиллюстрировать, как меняется производительность Socket AM5-системы с ростом частоты DDR5, мы сравнили быстродействие системы на базе Ryzen 7 7800X3D с тремя вариантами памяти — с двухканальными 32-Гбайт комплектами DDR5-5600, DDR5-6000 и DDR5-6400 с одной и той же схемой таймингов 30-38-38-96. Для наглядности в этот список был добавлен и четвёртый вариант подсистемы памяти — DDR5-6400 с таймингами 40-40-40-76. Его участие позволит определить, действительно ли частота памяти имеет большее значение на фоне таймингов и может ли скоростная DDR5 с не самой агрессивной схемой задержек соперничать с более медленной памятью с минимальной латентностью.
С учётом всего сказанного выше, результаты тестов удивления не вызывают. Проблемы c масштабированием производительности при росте частоты памяти выявляются уже в синтетических бенчмарках. Как видно по результатам CacheMem, увеличение частоты работы DDR5 почти не приводит к росту практически измеренной пропускной способности.
Так, рост частоты памяти с 5600 до 6400 МГц поднимает практическую скорость чтения и копирования данных лишь на 1 %. Масштабируется исключительно скорость записи — она при повышении частоты DDR5 на 15 % возрастает на 12 %. И в этом отношении Ryzen 7 7800X3D ведёт себя совершенно уникально. И у процессоров Ryzen прошлого поколения, и даже у Core семейств Alder Lake и Raptor Lake с ростом частоты памяти пропорционально увеличиваются все показатели, характеризующие пропускную способность, эффективность же контроллера памяти Ryzen 7000 на таком фоне вызывает резонные вопросы.
Не слишком заметно влияние частоты DDR5 и на практическую латентность памяти, но в относительном выражении оно всё-таки достигает нескольких процентов при переходе от DDR5-5600 к DDR5-6400 с одинаковыми таймингами. Однако латентность в первую очередь зависит всё-таки от таймингов, поэтому не стоит удивляться, что одинаковую практическую латентность может выдать как DDR5-5600, так и DDR5-6400, когда в первом случае выставлены агрессивные, а во втором — более расслабленные задержки.
Иными словами, уже по результатам синтетических тестов понятно, что одна только высокая частота DDR5 не является синонимом высокой производительности Ryzen 7 7X3D и минимизацией задержек можно легко переплюнуть 800-МГц шаг в частоте памяти.
Слабая зависимость реальной производительности Ryzen 7 7800X3D от частоты памяти хорошо прослеживается и в приложениях. Один 400-МГц шаг в частоте DDR5 при неизменной схеме задержек даёт прирост в быстродействии на уровне 1-2 %. И даже в очень чутко реагирующем на производительность подсистемы памяти архиваторе DDR5-6400 обеспечивает лишь 6-процентное превосходство над DDR5-5600. При этом влияние таймингов куда существеннее — система с DDR5-5600 CL30 не уступает по средней производительности системе с распространённой на рынке DDR5-6400 CL40. И это значит, что рекомендация выбирать для Socket AM5-систем любую DDR5 с частотой 6000-6400 МГц как минимум некорректна.
Сделанные выводы можно проиллюстрировать и результатами тестов в играх, которые относятся к числу задач, зависимых от скоростных характеристик подсистемы памяти. Однако все четыре протестированных варианта памяти обеспечивают примерно одинаковый уровень FPS. Преимущество DDR5-6000 перед DDR5-5600 составляет лишь 1-2 %. И даже переход от DDR5-5600 к DDR5-6400 при сохранении неизменной схемы задержек выливается лишь в незначительный рост средней частоты кадров на уровне 2-3 %. Более того, DDR5-6400 со схемой таймингов 40-40-40-76 вновь не может похвастать превосходством над DDR5-5600 с задержками 30-38-38-96 — эти варианты комплектов памяти выдают примерно равную производительность.
Иными словами, выбирать для Ryzen 7 7800X3D память, основываясь на её частоте (как рекомендует AMD), неправильно. Гораздо сильнее частоты на производительность влияют задержки, и в первую очередь внимание нужно обращать именно на них. И тому есть простое объяснение, о котором уже было сказано выше. В Ryzen 7000 для связи между CCD-чиплетом с процессорными ядрами и I/O-чиплетом с контроллером памяти используется такая же шина Infinity Fabric, как и в процессорах прошлого поколения. По этой шине можно переслать 32 байта за такт, что с учётом её частоты 2000 МГц означает пропускную способность на уровне 64 Гбайт/с. Это немного выше пропускной способности Infinity Fabric в процессорах прошлого поколения за счёт её 10-процентного разгона, но всё равно значительно ниже предельной пропускной способности современной двухканальной DDR5-памяти, которая достигает 89,6 Гбайт/с у DDR5-5600 и 102,4 Гбайт/с у DDR5-6400.
Поэтому использовать скоростную DDR5-память с Ryzen 7 7800X3D и другими процессорами серии Ryzen 7000 не имеет особого смысла — воспользоваться её возросшей пропускной способностью вычислительные ядра всё равно не смогут. И дело тут вовсе не в том, что увеличение частоты памяти выше 6000-6400 МГц приводит к необходимости снижать частоту контроллера памяти. Гораздо хуже, что процессоры Zen 4 спроектированы точно так же, как их предшественники, — будто бы под DDR4. Добавление корректной поддержки DDR5 требовало внесения существенных изменений в чиплетную архитектуру, но они по каким-то причинам в Zen 4 сделаны не были. В итоге владельцам Ryzen 7000 придётся иметь дело с искусственно заниженной практической пропускной способностью DDR5-памяти, которая хуже, чем в LGA1700-системах, где-то в полтора раза.
⇡#Идеальная DDR5 для Ryzen 7 7800X3D — это…
Поскольку любая DDR5 обладает избыточной пропускной способностью для представителей серии Ryzen 7000, при конфигурировании подсистемы памяти в платформе Socket AM5 на первом месте оказываются низкие задержки. Однако дать простую рекомендацию в духе «Выбирайте для Ryzen 7 7800X3D память с самыми низкими задержками в спецификации» мы всё-таки не можем, поскольку реальная латентность DDR5 зависит не только от таймингов, но и от её рабочей частоты.
Дело в том, что производители указывают величину задержек в тактах, продолжительность которых пропорционально зависит от того, на какой частоте функционируют модули. Поэтому, например, DDR5-6000 с таймингом CAS Latency (CL), равным 30, будет работать как минимум не хуже, чем DDR5-5600 с CAS Latency (CL) 28.
Добавить прозрачности в зависимость латентности от частоты и задержек должна приведённая ниже таблица, в которой приведена длительность тайминга CL в наносекундах для распространённых режимов DDR5. Такие значения уже можно сопоставлять между собой напрямую даже для модулей памяти, работающей на разной частоте.
Латентность, нс | |||||||
---|---|---|---|---|---|---|---|
CL40 | CL38 | CL36 | CL34 | CL32 | CL30 | CL28 | |
DDR5-6400 | 12,5 | 11,9 | 11,3 | 10,6 | 10,0 | 9,4 | 8,8 |
DDR5-6000 | 13,3 | 12,7 | 12,0 | 11,3 | 10,7 | 10,0 | 9,3 |
DDR5-5600 | 14,3 | 13,6 | 12,9 | 12,1 | 11,4 | 10,7 | 10,0 |
DDR5-5200 | 15,4 | 14,6 | 13,8 | 13,1 | 12,3 | 11,5 | 10,8 |
DDR5-4800 | 16,7 | 15,8 | 15,0 | 14,2 | 13,3 | 12,5 | 11,7 |
Из таблицы, например, следует, что широко распространённая DDR5-6400 CL40 с точки зрения Ryzen 7 7800X3D (или какого-то другого процессора серии Ryzen 7000) будет не так уж и хороша, поскольку заметно лучшую латентность сможет обеспечить не только DDR5-5600 CL32, но и даже DDR5-5200 CL-30. Поэтому выбирать для Socket AM5-систем модули DDR5 с частотой 6000 или 6400 МГц действительно имеет смысл, только если речь идёт о памяти, которая наряду с высокой частотой предлагает и низкие задержки — CL30 или CL32.
Впрочем, жизнь всегда устроена несколько сложнее, чем описывает теория. Функционирование памяти в реальных условиях зависит не только от базового тайминга CL, но и от многих других параметров, которых в общей сложности набирается несколько десятков. Эти параметры зависят от качества чипов памяти и не связаны с CL жёсткими соотношениями. Поэтому в реальных условиях соотношение производительности между разными видами DDR5 несколько отличается от того, что написано в приведённой выше таблице.
Чтобы досконально разобраться с этим вопросом, мы собрали вместе несколько вариантов комплектов модулей DDR5, работающих при разных частотах и разных комбинациях таймингов. Упор при этом был сделан на популярные варианты наборов 2 × 16 Гбайт с наиболее интересной для пользователей Ryzen 7 7800X3D частотой 5600, 6000 и 6400 МГц. Кроме того, в тестирование был добавлен и «канонический» вариант DDR5-5200 (с таймингами 38-38-38-84), поскольку именно такая память поддерживается процессорами Ryzen 7000 согласно их паспортной спецификации.
Результаты измерения пропускной способности и латентности в Aida64 Cachemem теперь уже вряд ли способны удивить. Они наглядно подтверждают всё то, что было выяснено ранее, — любые виды DDR5 SDRAM показывают в платформе Socket AM5 почти одинаковую скорость чтения и копирования, вне зависимости от их частоты. Масштабируется лишь скорость записи — при такой активности DDR5-6400 опережает базовую DDR5-5200 на 20-25 %.
Что касается практической латентности, то её относительные значения распределяются в близком соответствии с приведённой таблицей. Например, DDR5-5600 CL30 выигрывает у DDR5-6400 CL40, а DDR5-6000 CL30 показывает немного лучший результат, чем DDR5-6400 CL32.
Всё это находит отражение в реальных приложениях, хотя реальные ресурсоёмкие задачи и не слишком чутко реагируют на скорость подсистемы памяти в системах на процессорах Ryzen 7000. Тем не менее, используя DDR5-5600, DDR5-6000 или DDR5-6400 с низкими таймингами, можно добиться среднего выигрыша в 2,5-3,5 %, если сравнивать с той производительностью, которая получается в системе с DDR5-5200. При этом скоростная память с высокими таймингами выглядит довольно слабо. DDR5-6400 с задержками 40-40-40-76 или DDR5-6000 с таймингами 36-36-36-76 — явно проигрышные варианты, потому что лучшее быстродействие способны обеспечить более доступные по цене комплекты DDR5-5600 со схемой таймингов 30-36-36-89 или 28-34-34-89.
Примерно такая же картина прослеживается и в играх с той лишь разницей, что среди них есть такие, в которых влияние памяти, а точнее её задержек, куда существеннее. Например, в The Witcher 3: Wild Hunt или в Marvel's Spider-Man Remastered использование DDR5-6000 или DDR5-6400 с CL30 позволяет получить 8-процентное преимущество в минимальном FPS, если сравнивать с DDR5-5200 CL38 или c DDR5-5600 CL40.
Всё это подводит нас к выводу, что при выборе DDR5 для Ryzen 7 7800X3D ориентироваться лучше на модули с более низкими задержками CL28-CL30, а на их частоту стоит обращать внимание в гораздо меньшей степени.
Такой подход оправдан и ещё по одной причине. Почти все модули памяти, имеющие задержку CL34 и ниже, основываются на чипах SK Hynix A-die или M-die. И именно такие модули имеют самый высокий разгонный потенциал, позволяя опытным пользователям дополнительно улучшать производительность с помощью тонкого подбора настроек. Причём это касается не только частоты DDR5, которая, как мы выяснили, почти не влияет на производительность Ryzen 7 7800X3D, но и всего набора таймингов.
⇡#Нужно ли настраивать тайминги и что делать, если их слишком много?
Тайминги оказались для Ryzen 7 7800X3D более важным параметром, нежели её частота, но до сих пор нельзя было сказать, что производительность этого процессора существенно зависит от настроек подсистемы памяти. Преимуществом на уровне единиц процентов в некоторых приложениях, которое даёт быстрая DDR5, можно было бы и пренебречь. Однако в действительности хорошие модули памяти позволяют получить куда более значительный прирост производительности, если не доверять их настройку материнской плате и профилям XMP/EXPO, а проводить её вручную. Дело в том, что BIOS материнских плат почти не оптимизирует вторичные и третичные тайминги, но в системах на Ryzen 7000 они могут повлиять на производительность куда сильнее основных задержек.
В Сети можно найти массу рекомендаций, каким образом следует проводить оптимизацию всего набора задержек, и это — довольно муторный и трудоёмкий процесс. Однако в случае процессоров Ryzen 7000 он существенно упрощается из-за ограниченной пропускной способности внутренней шины Infinity Fabric, которая нивелирует влияние не только частоты DDR5, но и целого ряда задержек.
Оценив влияние различных параметров памяти, мы составили следующую таблицу, в которой выделили наиболее важные тайминги, оперируя которыми можно существенно улучшить производительность системы на Ryzen 7 7800X3D с минимальными трудозатратами.
Тайминг | Степень влияния тайминга | |||
---|---|---|---|---|
Скорость чтения | Скорость копирования | Скорость записи | Латентность | |
CL | Слабая | Сильная | Средняя | Сильная |
RCD | Слабая | Сильная | Средняя | Сильная |
RP | Слабая | Сильная | Слабая | Средняя |
RAS | Слабая | Средняя | Слабая | Средняя |
RC | Средняя | Слабая | Средняя | Слабая |
WR | Слабая | Сильная | Средняя | Средняя |
RFC | Сильная | Сильная | Сильная | Сильная |
REFI | Сильная | Сильная | Слабая | Сильная |
RTP | Слабая | Слабая | Слабая | Слабая |
RRDL | Слабая | Слабая | Слабая | Слабая |
RRDS | Слабая | Слабая | Слабая | Слабая |
FAW | Слабая | Средняя | Слабая | Слабая |
WTRL | Слабая | Слабая | Слабая | Слабая |
WTRS | Слабая | Слабая | Слабая | Слабая |
RDRDSCL | Слабая | Слабая | Слабая | Слабая |
RDRDSC | Слабая | Слабая | Слабая | Слабая |
RDRDSD | Слабая | Слабая | Слабая | Слабая |
RDRDDD | Слабая | Слабая | Слабая | Слабая |
WRWRSCL | Слабая | Слабая | Слабая | Слабая |
WRWRSC | Слабая | Слабая | Слабая | Слабая |
WRWRSD | Слабая | Слабая | Слабая | Слабая |
WRWRDD | Слабая | Слабая | Слабая | Слабая |
WRRD | Слабая | Слабая | Слабая | Слабая |
RDWR | Слабая | Слабая | Слабая | Слабая |
Таким образом, довольно результативной оптимизации подсистемы памяти можно добиться, притрагиваясь лишь к небольшому набору настроек, включающему три первичных тайминга (CL, RCD и RP), три вторичных тайминга (WR, RFC и REFI). При этом в большинстве случаев пытаться снизить методом проб и ошибок придётся лишь четыре величины — CL, RCD, RP и RFC. Тайминг WR вместе с RTP и FAW можно сразу выставить в 48, 12 и 32 соответственно — это их минимально допустимые значения, которые подходят к 99 % всех модулей DDR5, вне зависимости от их частоты. А для REFI нужно сразу попробовать максимальное значение 65535 и снижать его только в случае нестабильности (REFI — единственный тайминг, который для повышения производительности нужно увеличивать).
Несложно прикинуть и примерное стартовое значение для RFC, от которого нужно отталкиваться при поиске стабильного варианта. Его абсолютная величина (в наносекундах) определяется типом чипов DDR5. Например, для чипов SK Hynix она находится около 130-160 нс, для Samsung — около 260-270 нс, а для Micron — около 260-360 нс. Для перевода этих задержек в такты, которые устанавливаются в BIOS материнских плат, можно воспользоваться простой формулой RFC (такты) = Частота памяти (МГц) * RFC (нс) / 2000.
Также необходимо учесть, что способности модулей DDR5 к стабильной работе при агрессивных задержках, как правило, существенно улучшаются при повышенном напряжении питания. Поэтому при подборе таймингов величины напряжений DRAM VDD и DRAM VDDQ лучше сразу повысить до 1,35-1,4 В — это абсолютно безопасные уровни несмотря на то, что номинальным напряжением для чипов DDR5, определённым JEDEC, является 1,1 В. А вот с повышением напряжения CPU SoC лучше не рисковать — как было выяснено, именно оно выводит из строя процессоры Ryzen 7000, от чего серьёзно пострадали многие владельцы процессоров с 3D-кешем. Тем не менее его значения до 1,3 В считаются вполне допустимыми.
Для оценки эффективности ручной настройки таймингов мы воспользовались комплектом G.Skill из пары 16-Гбайт модулей DDR5-6400 с номинальными задержками 32-39-39-102. Этот комплект основывается на чипах SK Hynix A-die и потому легко поддаётся оптимизации. Его первичные тайминги могут быть снижены до схемы 30-37-37-55, существенно ужать можно и остальные настройки. Ниже приведены скриншоты, на которых сопоставлены три варианта настроек этих модулей: тайминги, которые выставляет для этого комплекта материнская плата; оптимизированные настройки с задействованием «быстрой схемы»; и результат полного ручного подбора наиболее производительных настроек.
Чтобы прояснить картину относительно результативности оптимизации таймингов, мы провели ещё один комплект тестов производительности, где сравнили работу выбранного комплекта памяти с настройками «по автомату» с двумя вариантами таймингов, подобранных вручную.
И уже по синтетическим тестам видно, что минимизация таймингов даёт весьма ощутимый эффект, вполне сравнимый с тем, чего можно было бы добиться при покупке более скоростного комплекта DDR5 SDRAM. Более того, настройка позволяет даже добиться некоторого улучшения скорости чтения из памяти, которая до этого момента казалась безнадёжно ограниченной полосой пропускания шины Infinity Fabric.
За счёт одной только настройки таймингов достигается примерно 4-процентное улучшение производительности в ресурсоёмких приложениях. Причём максимальный эффект от такой оптимизации, который традиционно наблюдается в архиваторе, доходит до внушительных 16 %. При этом простая быстрая ручная настройка таймингов, затрагивающая лишь наиболее критичные параметры, проявляет себя тоже очень неплохо. Она даёт выиграть у «автоматических настроек» в среднем 2,8 % производительности.
С играми ситуация ещё интереснее. В этой категории приложений полная настройка таймингов увеличивает FPS в среднем (по шести играм) на 3,8 %, но если говорить о среднем минимальном FPS, то его улучшение достигает уже 6,5 %. Оптимизация таймингов по сокращённой схеме тоже проявляет себя очень неплохо. Она повышает среднюю частоту кадров на 2,9 %, а минимальная кадровая частота возрастает по сравнению с автоматическими настройками на 5,2 %.
Иными словами, поскольку производительность Ryzen 7 7800X3D (как и других представителей семейства Ryzen 7000) зависит от таймингов куда сильнее, чем от частоты, пренебрегать их тюнингом явно не следует. Это процедура помогает полнее раскрыть производительность «лучшего игрового CPU компании AMD».
⇡#Чем плохо, если память быстрее DDR5-6400?
Тестируя разные варианты DDR5 в комплекте с Ryzen 7 7800X3D, до настоящего момента мы следовали совету AMD и не пытались использовать память с частотой выше чем 6400 МГц. Подъём частоты DDR5 выше этой границы действительно требует отказа от синхронного режима работы контроллера памяти и его перевода в режим половинной частоты, что, по словам AMD, существенно снижает производительность. Впрочем, до недавних пор более быстрая память в Socket AM5-системах вообще не работала из-за ошибок, допущенных в микрокоде. Но AMD смогла решить эту проблему, и с версиями BIOS, основанными на AGESA 1.0.0.7c (и новее), скоростные режимы памяти стали всё-таки доступны для использования.
Это стало поводом проверить, действительно ли высокоскоростная память в системе, основанной на Ryzen 7 7800X3D, снижает производительность. Для тестов был выбран режим DDR5-7200, в котором мы задействовали два различных набора таймингов. Во-первых, стандартную (для модулей памяти на чипах SK Hynix) схему 34-45-45-115. Во-вторых, оптимизированную схему задержек 34-43-43-55, в которой все второстепенные тайминги были тщательно подобраны вручную для максимизации производительности.
Систему, укомплектованную DDR5-7200, мы сравнили с ней же самой, но работающей с DDR5-6400 при использовании «стандартных» таймингов 30-38-38-96, а также таймингов, оптимизированных вручную, как было описано в предыдущем разделе.
Впрочем, сразу же следует оговориться, что ждать от DDR5-7200 какого-то дополнительного импульса к повышению производительности Ryzen 7 7800X3D довольно странно. Как уже стало ясно, производительность представителей серии Ryzen 7000 практически не масштабируется с увеличением частоты DDR5 из-за внутренних ограничений архитектуры, и основное значение имеют задержки. А они при переходе через границу 6400 МГц для памяти действительно возрастают, так как контроллер теряет возможность работать с модулями DDR5 SDRAM на единой частоте.
В результате в бенчмарке Aida64 Cachemem, который измеряет реальные скоростные показатели подсистемы памяти, DDR5-7200 и DDR5-6400 выдают близкую пропускную способность, несмотря на 13-процентное различие в частоте, а с точки зрения практической латентности более скоростная память проигрывает.
С такими вводными победить DDR5-7200 не может ни при каких условиях. И именно это мы видим в тестах производительности в приложениях. Система на базе Ryzen 7 7800X3D с DDR5-6400 работает быстрее как в случае использования автоматических таймингов, так и после их настройки. Впрочем, проигрыш DDR5-7200 не столь драматичен — его величина составляет 1,0-1,5 %.
Примерно такую же ситуацию можно наблюдать и в играх. DDR5-6400, работающая с контроллером памяти в режиме 1:1, позволяет получить на 1-2 % более высокую частоту кадров. Таким образом, AMD говорит о ненужности скоростной памяти для Ryzen 7000 совершенно обоснованно — это подтверждается нашими тестами.
Кроме того, результаты наглядно доказывают и ещё один тезис — о важности настройки таймингов. Например, работающая в асинхронном режиме DDR5-7200 с оптимизированными задержками обеспечивает заметно более высокую производительность, нежели DDR5-6400, для таймингов которой используются автоматически выставляемые значения. Иными словами, слабое влияние частоты DDR5 на производительность платформы Socket AM5 прослеживается в любых режимах тактования контроллера памяти.
⇡#Можно ли починить Infinity Fabric?
Чтобы проведённое тестирование можно было назвать полностью исчерпывающим, нужно проверить ещё один момент. Как неоднократно упоминалось выше, массу проблем с работой памяти в платформе Socket AM5 создаёт внутрипроцессорная шина Infinity Fabric. В архитектуре Ryzen 7000 она выступает узким местом, не давая этим процессорам воспользоваться преимуществами быстрой DDR5 SDRAM. И именно эта шина несёт ответственность за низкие показатели реальной пропускной способности подсистемы памяти Ryzen 7 7800X3D вне зависимости от того, в каком режиме работает DDR5.
Для всех этих проблем напрашивается вполне очевидный способ лечения — разгон Infinity Fabric, благо AMD предоставляет такую возможность — настройка частоты этой шины доступна в BIOS материнских плат. Однако не стоит думать, что увеличение её частоты выше номинальных 2000 МГц может позволить переломить тенденцию. Дело в том, что AMD уже сама разогнала Infinity Fabric настолько, насколько это было возможно. В процессорах прошлого поколения она работала на частоте 1800 МГц, а в Ryzen 7000 эту частоту подняли на 10 %, и это очень близко к пределу её возможностей.
Максимум, на который можно рассчитывать, — прибавка к номинальной частоте Infinity Fabric дополнительных 100 МГц, что повысит её пропускную способность с 64 до 67 Гбайт/с и вряд ли как-то качественно повлияет на ситуацию. Кроме того, при разгоне этой шины выше 2000 МГц возникают серьёзные сложности с проверкой её стабильной работы. Протокол Infinity Fabric обладает продвинутыми средствами коррекции ошибок, и при их возникновении стабильность теряется далеко не сразу. Вместо этого от прироста частоты возникает обратный эффект — реальная пропускная способность шины не растёт, а падает. Более того, такая ситуация, скорее всего, будет «плавающей»: падение производительности будет возникать не всегда и не во всех приложениях — поэтому отловить её может быть очень непросто.
Например, наш экземпляр Ryzen 7 7800X3D стабильно работал при частоте Infinity Fabric до 2133 МГц включительно, но в отдельных приложениях уже на частоте 2067 МГц можно было наблюдать не рост, а снижение производительности. Иными словами, надёжный разгон Infinity Fabric оказался возможен лишь до 2033 МГц, а дальнейшее повышение её частоты увеличивало показатели не повсеместно, а в лишь в синтетических тестах и в таких приложениях, где на магистраль «процессор — память» не ложится серьёзная нагрузка.
Наглядно это показано на следующих диаграммах, иллюстрирующих масштабирование производительности Ryzen 7 7800X3D с DDR5-6400-памятью (с оптимизированными вручную настройками) при переключении частот Infinity Fabric.
Измерения скорости подсистемы памяти, сделанные в Aida64 Cachemem, позволяют убедиться, что Infinity Fabric действительно является критическим участком в работе Ryzen 7 7800X3D с памятью. Увеличение частоты этой шины пропорционально поднимает пропускную способность и при чтении, и при копировании. Снижается и латентность, но немного в меньших масштабах. Тем не менее полученные числа дают очень позитивный сигнал: кажется, что разгон Infinity Fabric — прекрасный приём для улучшения работы процессора с памятью.
Однако результаты тестов в приложениях оснований для безудержного оптимизма не дают. Во многих случаях увеличение частоты Infinity Fabric срабатывает лишь в пределах одного шага — до 2033 МГц. Дальнейший рост этой частоты не приводит к улучшению быстродействия из-за переразгона, который влечёт за собой рост числа ошибок при передаче данных. Более того, существуют приложения, где первые проблемы начинают возникать уже на частоте 2033 МГц — речь идёт о перекодировании видео. Поэтому, как бы заманчиво ни выглядела идея разгона Infinity Fabric, для рабочих систем, используемых в создании и обработке цифрового контента, она подходит плохо из-за непредсказуемых результатов.
С играми ситуация выглядит более определённой. Увеличение частоты Infinity Fabric с 2000 до 2033 МГц повышает средний FPS примерно на 1 %, причём игр, где бы такой разгон приводил к негативному результату, на первый взгляд нет. Впрочем, дальнейшее увеличение этой частоты уже не кажется хорошей идеей — и средний, и минимальный FPS при переходе к 2066 МГц местами проседает.
Таким образом, хотя частота Infinity Fabric действительно способна повлиять на производительность подсистемы памяти, повышать её нужно с большой осторожностью. Причём критерием успешного разгона этой шины должна быть не стабильная работа системы, которая может сохраняться, несмотря на переразгон, а прирост производительности в широком спектре выполняемых на ней задач.
Этим материалом мы постарались ответить на весь набор вопросов, которые могут возникнуть при выборе памяти для систем, построенных на процессорах Ryzen 7000. Особое внимание уделялось процессору Ryzen 7 7800X3D, как наиболее интересному представителю семейства, но все сделанные выводы, безусловно, справедливы и для других моделей Socket AM5-процессоров.
Итак, что удалось выяснить.
Таким образом, если вы хотите получить от процессора Ryzen 7 7800X3D максимум производительности, то для компьютера на его основе лучше выбирать основанные на чипах SK Hynix модули DDR5-6000 или DDR5-6400 с агрессивными задержками, использовать режим контроллера памяти 1:1 и вручную настроить все тайминги. Как и для процессоров Ryzen прошлого поколения, правильная настройка памяти способна повлиять на комплексную производительность платформы слишком сильно, чтобы ей было не жалко пренебрегать.