Infinity Fabric
Infinity Fabric (IF, Инфинити Фабрик, Бесконечная Ткань) — проприетарная шина, разработанная компанией AMD для связывания своих процессоров Ryzen, Threadripper, Epyc и некоторых GPU. Представляет собой эволюцию старой доброй HyperTransport, но с некоторыми приколами и подводными камнями, о которых и пойдет речь.
Суть[править]
В эпоху многоядерности остро встал вопрос: как связать все эти ядра между собой, с памятью, с периферией, да ещё и так, чтобы всё это работало быстро и не превращалось в бутылочное горлышко? Intel в своих процессорах использует кольцевую шину (Ring Bus) и Mesh Interconnect (в серверных), а AMD решила пойти своим путём, выкатив Infinity Fabric.
IF представляет собой не одну-единственную шину, а целое семейство, включающее в себя:
- Scalable Control Fabric (SCF) — отвечает за управление всякой служебной информацией, типа настроек питания, температур, управления вентиляторами и прочей ерунды.
- Scalable Data Fabric (SDF) — вот это уже поинтереснее. Именно по SDF передаются основные данные между ядрами, кэшами, контроллерами памяти и PCIe.
- GMI (Global Memory Interconnect) — используется для соединения нескольких чиплетов (die) в одном процессоре (например, в Threadripper и Epyc). По сути, тот же SDF, но для межчиплетного общения.
- Infinity Scalable Link (ISL) — аналог GMI, но для соединения нескольких сокетов (многопроцессорные системы). Редкость в наши дни.
Ключевая фишка IF заключается в его модульности и масштабируемости. AMD может собирать процессоры из разных чиплетов, как из кубиков LEGO, соединяя их с помощью IF. Это позволяет создавать процессоры с огромным количеством ядер (привет, Epyc!), не упираясь в ограничения монолитного дизайна.
IF и разгон памяти[править]
А вот тут начинается самое интересное и, одновременно, самое больное место для оверклокеров. Дело в том, что частота Infinity Fabric (FCLK) в большинстве случаев жёстко привязана к частоте контроллера памяти (UCLK) и, соответственно, к частоте самой оперативной памяти (MEMCLK). Обычно используется соотношение 1:1:1 (FCLK=UCLK=MEMCLK).
То есть, хочешь разогнать память? Придётся гнать и IF. И вот тут-то и начинаются танцы с бубном.
Дело в том, что IF не всегда стабильно работает на высоких частотах. Для каждого поколения Ryzen и для каждой конкретной материнской платы существует свой «потолок» FCLK, выше которого система может начать глючить, вылетать в синий экран или вообще не стартовать.
Особо упоротые оверклокеры, конечно, научились обходить эти ограничения, используя асинхронный режим (например, FCLK:UCLK:MEMCLK = 1:1:2), но это чревато увеличением задержек и падением производительности.
Поколения Ryzen и IF[править]
Ryzen 1000 (Zen): Первое поколение Ryzen было, мягко говоря, не самым удачным в плане разгона памяти и IF. Достичь стабильных 3200 МГц на памяти было уже большим успехом, а о высоких частотах FCLK можно было только мечтать. Частенько встречались «дыры» в стабильности, когда система работала на, скажем, 2933 МГц, но намертво висла на 3000 МГц, а потом снова оживала на 3066 МГц.
Ryzen 2000 (Zen+): Небольшой шаг вперёд. AMD подтянула контроллер памяти и IF, позволив большинству систем стабильно работать на 3466-3600 МГц. «Дыры» стали встречаться реже, но всё ещё присутствовали.
Ryzen 3000 (Zen 2): Вот тут уже стало интереснее. AMD перешла на чиплетный дизайн, разделив процессор на CPU die (CCD) с ядрами и I/O die (IOD) с контроллерами памяти, PCIe и прочей периферией. Infinity Fabric стала связывать эти чиплеты между собой. Заявленная максимальная частота FCLK поднялась до 1800—1900 МГц (что соответствует 3600-3800 МГц для памяти в режиме 1:1:1), но на практике достичь таких значений удавалось далеко не всем. Появился мем про «сладкий спот» (sweet spot) в районе 3733 МГц, где большинство систем работало стабильно. Выход за пределы «сладкого спота» часто приводил к переходу в асинхронный режим (1:1:2), что негативно сказывалось на задержках.
Ryzen 5000 (Zen 3): AMD продолжила полировать IF. Заявленный «потолок» FCLK вырос до 2000 МГц (4000 МГц для памяти), но, как и раньше, это был скорее маркетинговый ход, чем реальность. Большинство систем стабильно работало в районе 1800—1900 МГц, но особо удачливые экземпляры процессоров и материнских плат могли покорять и 2000 МГц. «Дыры» в стабильности практически исчезли.
Ryzen 7000 (Zen 4): В Zen 4 AMD значительно переработала I/O die, добавив туда встроенную графику RDNA 2. Контроллер памяти и IF снова улучшили. Официально заявлена поддержка DDR5-5200 (что соответствует FCLK 2600 МГц в режиме 1:1, но UCLK в данном случае вдвое ниже, то есть 1300 МГц). Номинальным режимом работы памяти стал DDR5-6000 с FCLK 2000 МГц, но как и в прошлом, всё сильно зависит от конкретных комплектующих. Появилась возможность асинхронной работы FCLK.