Микроархитектура Zen 2: вот почему мы ждём Ryzen 3000
19.06.19
В преддверии выхода десктопных процессоров Ryzen 3000 мы решили разобраться, откуда в Zen 2 взялся 15-процентный прирост IPC. А также выяснить, какие ещё приятные сюрпризы, помимо возросших частот и увеличенного числа вычислительных ядер, заложены в архитектуре процессоров AMD нового поколения
Через две недели с небольшим нас, по всей видимости, ожидает чудо. Такой вывод можно сделать, если обобщить все те предположения, которые высказывают пользователи в ожидании предстоящего анонса процессоров Ryzen третьего поколения. Но даже самые смелые высказывания о том, будто бы во второй половине года на рынке процессоров для ПК нас ждёт смена лидера (по производительности), нельзя назвать полностью беспочвенными. Ещё в начале года, на выставке CES 2019, компания AMD пообещала, что её процессоры нового поколения увеличат удельное быстродействие (при неизменной тактовой частоте) как минимум на 15 %. А теперь мы узнали, что к этому приложится заметный рост тактовых частот, кардинальное увеличение числа вычислительных ядер и снижение тепловыделения.
Каждое из этих обещаний в отдельности уже кажется как минимум очень смелым. Но чтобы всё сразу?! Тем не менее всё это возможно. На прошедшем в рамках выставки E3 2019 специальном мероприятии Next Horizon компания AMD подробно объяснила, как так вышло, что микроархитектура Zen 2, которая изначально должна была стать банальным переводом Zen на рельсы 7-нм техпроцесса, смогла оказаться настоящим прорывом, имеющим шансы перевернуть весь процессорный рынок.
С момента выхода первых процессоров с микроархитектурой Zen прошло чуть более двух лет. За это время AMD уже успела выпустить промежуточное поколение микроархитектуры, Zen+. Однако в нём мы не увидели практически никаких улучшений. Суть прошлого обновления фактически свелась к переходу с 14-нм на 12-нм производственную технологию, да и только. Новая микроархитектура Zen 2, встреча с которой нас ожидает в июле, вновь предполагает смену техпроцесса — с 12 нм на 7 нм — с одновременной сменой производственного подрядчика: теперь CPU компании будет изготавливать не GlobalFoundries, а TSMC. Но это далеко не всё: вместе с техпроцессом кардинально меняется и масса других вещей.
Чтобы понять, насколько Ryzen 3000 будут непохожими на своих предшественников, достаточно посмотреть на любую фотографию этих процессоров со снятой теплорассеивающей крышкой. Одного взгляда будет достаточно, чтобы понять: процессоры AMD уходят от использования монолитного полупроводникового кристалла. Ядра в них распределены по нескольким полупроводниковым кристаллам – чиплетам, также в отдельный чиплет будут вынесены и все контроллеры ввода-вывода. К этому стоит добавить, что одновременно с внедрением коренных изменений в конструктив процессоров AMD переработала внутреннее устройство вычислительных ядер и позаботилась о том, чтобы устранить основные узкие места прошлых CPU с микроархитектурами Zen и Zen+.
Кроме того, с приходом Ryzen 3000 изменения затронут и всю экосистему, в которой будут работать такие процессоры. Совместимость новинок с традиционным разъёмом Socket AM4 при этом сохранится, но полностью все их преимущества можно будет почувствовать лишь в новых материнских платах, которые смогут обеспечить поддержку интерфейса PCI Express 4.0.
Все многочисленные улучшения и оптимизации, сделанные в процессорах поколения Zen 2, заслуживают явно большего, чем простого перечисления. Поэтому по итогам мероприятия AMD Next Horizon, на котором смог побывать представитель нашего сайта, мы решили подготовить отдельный обстоятельный материал и подробно проанализировать, почему Zen 2 – это действительно круто.
Технология 7 нм – ключ ко всему
Цели, которые ставила перед собой компания AMD во время работы над новой микроархитектурой Zen 2, были вполне очевидными. Основная задача состояла в улучшении производительности процессоров как для десктопов, так и в серверном сегменте, при обязательном сохранении преемственности и совместимости с имеющимися платформами. Иными словами, речь шла о дальнейшей масштабируемости имеющихся процессорных семейств Ryzen и EPYC и комплексном улучшении их потребительских качеств.
Прочный фундамент под дизайн Zen 2 должен был подвести новый технологический процесс. При переходе от 14- к 12-нм нормам, который произошел в апреле прошлого года, процессоры Ryzen лишь немного выиграли в тактовых частотах и смогли довольно незначительно нарастить свою удельную производительность.
Но свежий техпроцесс с разрешением 7-нм должен был катализировать куда более существенный прогресс в улучшении всего набора потребительских характеристик. В силу того, что давний производственный партнёр AMD, компания GlobalFoundries, отказался от освоения 7-нм технологии, чипмейкеру пришлось переориентироваться на сотрудничество с TSMC. И в конечном итоге AMD явно не прогадала. В пользу этого говорят числа: базовый процессорный строительный блок — четырёхъядерный комплекс CCX (Core Complex) с L3-кешем объёмом 8 Мбайт — при производстве по 12-нм техпроцессу GlobalFoundries имел площадь 60 мм2. Подобный комплекс Zen 2 с четырьмя усовершенствованными ядрами и вдвое более вместительным, 16-мегабайтным L3-кешем, произведённый на TSMC по 7-нм техпроцессу, занимает почти вдвое меньшую площадь – 31,3 мм2.
Полный процессорный кристалл (чиплет) в Zen 2, как и раньше, формируется из двух CCX. То есть он содержит восемь ядер и кеш-память третьего уровня объёмом 32 Мбайт. При этом суммарная площадь такого кристалла составляет всего 74 мм2, что существенно меньше 213 мм2, которые занимает кристалл процессора с дизайном Zen/Zen+, например, того же Ryzen 7 2700X. Столь заметный выигрыш в плотности размещения транзисторов открыл перед разработчиками AMD широкие возможности по усовершенствованию микроархитектуры, которое могло бы быть проведено без какого-либо существенного ущерба для себестоимости новых процессоров.
Ещё в начале этого года компания AMD объявила о том, что микроархитектура Zen 2 обеспечит 15-процентное преимущество в производительности по сравнению с Zen+ за счёт одних только микроархитектурных улучшений, то есть на одинаковой тактовой частоте. Однако массу преимуществ дал и новый прогрессивный полупроводниковый процесс. Например, при одинаковом энергопотреблении для Zen 2 обещана как минимум в 1,25 раза более высокая производительность, чем у предшественников, а при одинаковом быстродействии новые процессоры должны быть чуть ли не вдвое экономичнее. Более того, AMD не стесняется даже говорить о том, что в отдельных ситуациях преимущество новых процессоров Zen 2 будет составлять более 75 % по сравнению с прошлыми Zen+ того же класса и более 45 % по сравнению с равноценными решениями конкурента.
Безусловно, все эти выкладки ещё должны будут пройти проверку на прочность независимыми тестами и обзорами, которые выйдут 7 июля. В рамках же своего мероприятия AMD активно оперировала показателями Cinebench R20, которые говорят о том, что если сравнивать Zen 2 и процессоры Intel с аналогичным количеством ядер, то предложения AMD выигрывают как по однопоточной, так и по многопоточной производительности, а также по энергопотреблению и по цене.
Один лишь пример: согласно данным AMD, старший восьмиядерный Ryzen 7 3800X с ценой $400 очень близок к 500-долларовому восьмиядерному Core i9-9900K в однопоточном и многопоточном рендеринге, но при этом его энергопотребление сравнимо с потреблением Core i7-9700K.
Ядра Zen 2: «тик» и «так» одновременно
Согласно первоначальному плану, микроархитектура Zen 2 должна была представлять собой простой перенос старого дизайна Zen на новый техпроцесс. Однако позднее, анализируя слабые места своих первых поколений процессоров Zen и Zen+, инженеры AMD приняли решение по возможности подрихтовать и базовую микроархитектуру. И надо сказать, этот план, судя по всему, отлично сработал. Несмотря на то, что в Zen 2 нет никаких кардинальных переделок, рост IPC (среднего числа выполняемых за такт инструкций) на 15 % — прекрасная иллюстрация того, что всё было сделано правильно.
В то же время нужно понимать, что Zen 2 — микроархитектура, очень похожая на оригинальную Zen/Zen+. Все базовые элементы процессорного ядра остались неизменными, а переделки касаются лишь повышения эффективности имеющихся функциональных блоков. Соответственно, внутренняя конфигурация ядра не изменилась: оно способно декодировать до четырёх инструкций и исполнять до шести инструкций за такт. Кроме того, осталась неизменной и поддержка технологии SMT: каждое ядро Zen 2 может исполнять по два потока одновременно.
Что же поменялось? Как обычно и бывает при работе над совершенствованием имеющихся микроархитектур, первым местом приложения сил инженеров стал блок выборки инструкций и предсказания переходов. Впрочем, здесь изменения не очень явные, поскольку в основе этого блока продолжает лежать «нейронный» алгоритм, основанный на использовании перцептрона. Хотя в целом такая схема даёт не очень впечатляющие результаты, при работе с буфером целей ветвления первого уровня она обеспечивает хорошую энергоэффективность, поэтому AMD не стала от неё отказываться и просто добавила к ней дополнительный многоступенчатый статистический механизм TAGE (Tagged geometric), работающий с буфером целей ветвления второго уровня.
Одновременно были увеличены и размеры буферов целей ветвления. Таблица первого уровня в Zen 2 включает 512 записей вместо 256, а второго уровня – 7К записей вместо 4К. Что касается нулевого уровня, то соответствующий буфер, как и раньше, включает 16 записей, но зато массив адресов косвенных переходов расширился до 1K записей. Иными словами, в новой микроархитектуре переходы прогнозируются явно лучше, чем в первоначальных Zen/Zen+. А это значит, что ситуации, когда процессор должен полностью сбрасывать исполнительный конвейер из-за неправильно предсказанного перехода, будут случаться гораздо реже.
Другим усовершенствованием Zen 2 стало то, что AMD решила существенно перераспределить ресурсы, занятые кешированием инструкций. Кеш микроопераций, в котором хранятся уже декодированные x86-инструкции, был увеличен вдвое – до 4096 записей. При этом классический кеш инструкций первого уровня, в котором сохраняются команды до их декодирования, напротив, сократился. В то время как раньше его объём составлял 64 Кбайт при 4-канальной ассоциативности, в Zen 2 он был урезан до 32 Кбайт с одновременным увеличением степени ассоциативности до 8.
Моделирование, проведённое AMD, показало, что такие изменения положительно сказываются на производительности. И если судить по произошедшему росту IPC, это действительно так. Любопытно, что в результате изменений в размерах кеш-памяти, Zen 2 стали процессорами с самым вместительным кешем микроопераций. Например, в микроархитектуре Skylake этот кеш рассчитан на 1,5К операций, в то время как в Sunny Cove инженеры Intel расширили его всего до 2,25К операций.
Изменения во входной части исполнительного конвейера не повлекли за собой никаких существенных перемен в организации работы планировщиков. Как и раньше, декодер Zen 2 способен поставлять по четыре инструкции за такт и вместе с кешем микроопераций, из которого может поступать до восьми связанных инструкций, они заполняют очередь микроопераций, из которой инструкции выбирают два планировщика: один для целочисленных операций, другой — для операций с числами с плавающей точкой. При этом целочисленный планировщик может отправлять на исполнение по шесть микроопераций за такт, а вещественночисленный – по четыре.
Зато заметные изменения в микроархитектуре произошли на стадии исполнения инструкций. Если говорить об исполнении целочисленных инструкций, то тут — впридачу к увеличению размера буферов (как самого планировщика, так регистрового файла и буфера переупорядочивания) примерно на 10-15 % — появился дополнительный блок генерации адресов (AGU). В сумме это означает, что число исполнительных портов в Zen 2 выросло с шести до семи: четыре порта для арифметико-логических операций (ALU) и три порта – для операций генерации адресов (AGU). В результате микроархитектура Zen 2 может инициировать по две 256-битных операции чтения и по одной 256-битной операции записи каждый такт. Прошлая версия микроархитектуры была по понятным причинам ограничена только двумя подобными операциями за такт, причём лишь шириной 128 бит.
Но что ещё важнее, в Zen 2 компания AMD удвоила пропускную способность блока операций с плавающей точкой. Теперь он стал полностью 256-битным, что означает возможность прямого исполнения им AVX2-инструкций. В первоначальной архитектуре Zen/Zen+ такие команды, работающие с 256-битными регистрами, перед выполнением разбивались на пару 128-битных инструкций и обрабатывались в два приёма, следовательно, от Zen 2 можно ожидать двукратного увеличения темпа работы с AVX2-кодом. Состав же исполнительных устройств в FPU при этом остался старым. Предусмотрено два устройства для операций сложения и два – для операций умножения, что даёт Zen 2 возможность одновременно выполнять по две 256-битные FMA-команды. Здесь же очень пригождается способность новой микроархитектуры инициировать 256-битные операции пересылки данных: в результате исполнение AVX2-кода может происходить без каких-либо задержек. К тому же в Zen 2 AMD смогла добиться того, что обработка AVX2-инструкций может проводиться без какого-либо снижения тактовой частоты, как это происходит в процессорах Intel.
Попутно AMD сообщила и о том, что ей удалось увеличить скорость умножений чисел с плавающей точкой с четырёх до трёх тактов. В конечном итоге это также вносит свой вклад в увеличение удельной производительности процессоров с новой микроархитектурой.
Как следует из сказанного, микроархитектура Zen 2 стала немного «шире» Zen в смысле способностей параллельного исполнения инструкций. Но в то же время она стала «шире» и в смысле работы с данными. Хотя подсистема кеш-памяти, работающей с данными, структурно не изменилась, она получила шины с большей пропускной способностью, которые позволяют получать необходимые данные, не задерживая выполнение AVX2-команд. Если конкретнее, то это означает, что L1-кеш данных сохранил размер 32 Кбайт на ядро с 8-канальной ассоциативностью, а L2-кеш, как и раньше, имеет объём 512 Кбайт на ядро с 8-канальной ассоциативностью, но теперь кеш-память может обслуживать по две 256-битных операции чтения и по одной 256-битной операции записи за такт на уровне L1, а также по одной 256-битной операции чтения и записи за такт на уровне L2. Латентность кеш-памяти не изменилась и составляет 4 такта для L1 и 12 тактов для L2.
Несмотря на неизменность структуры кеш-памяти, в Zen 2 была улучшена работа L2 TLB (буфера трансляции адресов). В первом поколении процессоров Zen размер этой таблицы составлял 1,5К, теперь же она увеличилась до 2К, причём её латентность при этом даже стала ниже. Но самое главное, теперь L2 TLB поддерживает страницы объёмом 1 Гбайт, чего в прошлых версиях микроархитектуры реализовано не было.
Ещё одним заметным изменением в Zen 2 стало удвоение объёма кеш-памяти третьего уровня. В новых процессорах её объём составляет не 8, как раньше, а 16 Мбайт на каждый четырёхъядерный CCX. Так AMD попыталась компенсировать расчленение процессора на несколько независимых кристаллов. Разработчики Zen 2 полагают, что рост объёма L3-кеша позволит снизить количество пересылок данных между чипсетами с ядрами и чиплетом с контроллером памяти. Может, это и так, но не стоит забывать о том, что увеличение объёма кеш-памяти практически всегда сопряжено с ростом латентности. И она у L3-кеша в Zen 2 действительно выросла до 40 тактов, в то время как в процессорах Zen L3-кеш имел латентность примерно на 5 тактов ниже.
От ядра – к CCX и CCD, и далее – к CPU
Выше уже говорилось о том, что конструкция процессоров Ryzen 3000 заметно отличается от того, как были устроены все прошлые Ryzen. Тем не менее CCX-комплексы собираются из ядер Zen 2 ровно так же, как и раньше. В один блок CCX объединяется 4 ядра и 16 Мбайт общей кеш-памяти третьего уровня.
Пара CCX располагается на одном 7-нм полупроводниковом кристалле и формирует процессорный чиплет, получивший аббревиатуру CCD (Core Complex Die). Помимо ядер и кеша, в CCD-чиплет входит также контроллер шины Infinity Fabric, посредством которого должно обеспечиваться соединение CCD с обязательным для любого Ryzen 3000 чиплетом ввода-вывода.
В чиплете ввода-вывода (I/O) процессоров поколения Zen 2 располагаются так называемые внеядерные компоненты, а также элементы северного моста и SoC. В нём, помимо всего прочего, находятся контроллер памяти и контроллер шины PCI Express 4.0. Также в I/O-чиплете реализованы и две шины Infinity Fabric, необходимые для соединения с CCD-чиплетами.
В зависимости от того, о каком процессоре семейства Ryzen 3000 идёт речь, он может состоять либо из двух, либо из трёх чиплетов. В процессорах с числом ядер восемь и менее применяется один CCD-чиплет и один I/O-чиплет. В процессорах с числом ядер более восьми CCD-чиплетов становится уже два. Однако нужно понимать, что процессор при этом всё равно остаётся единым целым. За счёт того, что в любых Ryzen 3000 контроллер памяти находится в I/O-чиплете и он всего один, любое из ядер может гладко обращаться к любым её областям: никаких NUMA-конфигураций, которые портили жизнь владельцам процессоров Threadripper, в случае Zen 2 не будет.
Стоит напомнить, что Zen 2 – далеко не первая попытка перейти на многокристальную компоновку процессоров. Раньше производители уже прибегали к такому подходу. Например, опирались на два полупроводниковых кристалла четырёхъядерные Core 2 Quad, а ещё раньше такой же приём был использован при создании двухъядерных Pentium D. Но впоследствии производители всё же перешли на монолитную конструкцию процессоров, так как она оказалась более эффективной при росте числа ядер и переносе в процессор компонентов северного моста.
Однако новые Ryzen 3000, в состав которых входит два или три чиплета, – отнюдь не шаг назад. Напротив, это переход на следующий уровень, поскольку AMD в новом поколении процессоров идёт не простым экстенсивным методом, наращивая количество вычислительных ядер за счёт добавления дополнительных кристаллов, а применяет куда более интеллектуальный подход, вводя в обиход чиплеты с различной функциональностью и объединяя их в единое целое специализированной высокоскоростной шиной Infinity Fabric.
Выигрыш, который даёт использование многокристальной компоновки, вполне очевиден. В первую очередь она позволяет снизить себестоимость. Производство чиплетов, имеющих сравнительно небольшую площадь кристалла, заметно проще, чем изготовление крупного монолитного процессора. Меньшие кристаллы не только позволяют получить более высокий выход годных чипов, но и эффективнее размещаются на круглой полупроводниковой подложке, что дополнительно снижает количество отходов. В конце концов, именно чиплетная компоновка позволила AMD создать весьма сложные процессоры Ryzen 3000 сравнительно недорогими, даже несмотря на то, что их выпуск организован на мощностях TSMC по самому передовому и новому для индустрии техпроцессу с нормами 7 нм.
Распределение функций процессора по различным чиплетам позволило AMD сэкономить и ещё в одном аспекте. Новый техпроцесс оказалось совсем необязательно применять при производстве всех частей процессоров. «Тонкие» передовые нормы важны для процессорных ядер, поскольку они прямо влияют на частотный потенциал и энергопотребление, но нет никакой нужды использовать их для изготовления более простого чиплета, отвечающего за функции ввода-вывода. Именно поэтому I/O-чиплет в Ryzen 3000 производится по-старинке – на фабриках GlobalFoundries по 12-нм техпроцессу, который использовался при изготовлении процессоров Ryzen второго поколения.
Впрочем, нужно иметь в виду, что чиплетная конструкция порождает и определённые трудности. Например, в современных процессорах очень высокие требования предъявляются к тому, как соединяются и взаимодействуют друг с другом различные части CPU. Реализовать такую шину при многочиповой компоновке оказывается несколько сложнее. Впрочем, эта задача была успешно решена инженерами AMD. Процессоры Ryzen первого и второго поколений, хотя они и были основаны на монолитном ядре, использовали для соединения CCX и контроллера памяти, северного моста и элементов SoC специализированную шину Infinity Fabric. В новых процессорах Ryzen 3000 применяется вторая версия этой шины: именно она отвечает за передачу данных между всеми чиплетами.
Откровенно говоря, к тому, как работает Infinity Fabric, ранее высказывались вполне обоснованные претензии: она не всегда могла обеспечить должный уровень быстродействия при взаимодействии процессорных ядер с L3-кешем и с контроллером памяти. В процессорах Ryzen 3000 компания AMD постаралась исправить основные недостатки Infinity Fabric.
Во-первых, эта шина была расширена вдвое: теперь её ширина составляет 512 бит, что означает двукратное увеличение пропускной способности и возможность пересылки по 32 байта за такт в каждом направлении. Разработчики уверяют, что на этот шаг они пошли в первую очередь из-за появления в Ryzen 3000 поддержки PCI Express 4.0, но очевидно, что более производительная шина, которая связывает все ключевые компоненты процессора, сыграет положительную роль и во многих других случаях.
Во-вторых, Infinity Fabric теперь «развязана» с контроллером памяти по частоте. Раньше частота работы этой шины была синхронизирована с частотой памяти, что, с одной стороны, приводило к сильной зависимости производительности процессоров Ryzen от скорости установленных в системе модулей DDR4 SDRAM, а с другой – препятствовало разгону памяти выше 3466-3600 МГц. Теперь же шина Infinity Fabric сможет работать с контроллером памяти не только синхронно, но и на вдвое меньшей относительно него частоте – с применением делителя 2:1. Это — по крайней мере теоретически — означает гораздо большую свободу в выборе скорости памяти, хотя AMD продолжает настаивать на том, что синхронный режим для Infinity Fabric всё равно будет обеспечивать лучшую производительность, и оптимальнее с Ryzen 3000 использовать модули памяти DDR4-3600 с низкими таймингами.
Тем не менее уже сейчас известно о том, что память в Socket AM4-системах, оснащённых процессорами Ryzen 3000, действительно можно будет сильно разгонять.
Например, AMD показала работу модулей памяти в режиме DDR4-5100 в системе, построенной на Socket AM4-материнской плате MSI MEG X570 Godlike.
Чиплеты и Socket AM4: неожиданные сложности
Чиплетный дизайн процессоров поставил перед инженерами AMD и ещё одну непростую задачу. Как оказалось, физически собрать два или три кристалла на одной текстолитовой плате с 1331 ножками и размером 40 × 40 мм не так-то просто. Каждый из полупроводниковых кристаллов-чиплетов имеет собственный массив контактов, и правильно развести их соединения у AMD получилось, лишь увеличив количество слоев проводников в процессорной плате до двенадцати. При этом маршрутизация контактных дорожек Ryzen 3000 всё равно выглядит нетривиально и очень запутанно: ранее AMD ещё не приходилось разрабатывать столь сложных процессорных плат.
Безусловно, задача конструирования процессорной платы для чиплетной процессорной компоновки Ryzen 3000 могла бы быть существенно упрощена, если бы AMD отказалась от Socket AM4 в пользу какого-то нового разъёма с большей площадью. Но поскольку компания пообещала пользователям сохранять совместимость массовых CPU с единой экосистемой до 2020 года, было решено пойти на дополнительные разработки и всё же впихнуть два CCD-чиплета и один I/O-чиплет на PGA-плату, устанавливаемую в привычный разъём.
При этом неожиданные проблемы возникли и на ещё одном этапе. CCD-чиплет с вычислительными ядрами выпускается по 7-нм техпроцессу и имеет очень небольшую площадь, поэтому контакты для монтажа на процессорную плату на нём приходится размещать очень плотно. Расстояние между контактами на кристаллах, с которыми имела дело AMD раньше, составляло как минимум 150 микрон. В кристаллах же Zen 2 это расстояние уменьшилось до 130 микрон. И как оказалось, в мире существует лишь два производителя печатных плат, которые способны изготавливать текстолитовые подложки под кристаллы со столь плотной контактной матрицей.
Ради возможности сборки Ryzen 3000 в виде совместимых с Socket AM4-процессоров компании AMD пришлось пойти и ещё на одно ухищрение. Выпускаемые по 7-нм технологии CCD-чиплеты были переведены на другую технологию изготовления контактов для монтажа на процессорной плате. На смену применявшимся ранее шарообразным контактам пришли цилиндрические медные столбики, которые, во-первых, имеют меньший диаметр и допускают более плотное размещение, а во-вторых, позволяют выровнять высоту 7-нм и 12-нм чиплетов для установки на них единой плоской теплорассеивающей крышки.
Рассказывая о том, насколько непростым оказался процесс сборки получившихся CPU, о котором обычно никто даже и не задумывается, представители AMD подчеркнули, что теперь компании приходится серьёзно углубляться в логистику. Дело в том, что за выпуск Ryzen 3000 в конечном итоге отвечает четыре подрядчика из четырёх разных стран: I/O-чиплеты изготавливает американская GlobalFoundries, CCD-чиплеты производит тайваньская TSMC, текстолитовые платы для процессоров AMD заказывает в Японии, а финальная сборка процессоров в единое целое происходит в Китае. Поэтому не стоит удивляться тому, что на крышке будущих продуктов AMD можно будет прочитать: «Diffused in USA, Diffused in Taiwan, Made in China».
Тактовая частота и однопоточная производительность
Несмотря на то, что микроархитектура Zen стала огромным шагом вперёд по сравнению с предыдущими процессорами класса Bulldozer, однопоточная производительность оставалась достаточно слабым местом Ryzen и первого, и второго поколений. Там, где была важна именно производительность одного потока, Ryzen заметно уступали процессорам Intel. Однако в Zen 2 эта ситуация, судя по всему, наконец-то будет переломлена. AMD не только говорит о 15-процентном росте показателя IPC благодаря усовершенствованиям микроархитектуры, но и указывает на то, что в комплексе прирост производительности при однопоточной нагрузке может достигать величины в 21 %.
Столь впечатляющей прирост быстродействия складывается из нескольких составляющих, и новая микроархитектура здесь – лишь одно из слагаемых. Рост IPC вносит 60 % вклада, но также большую роль играет прогресс в тактовых частотах, ставший возможным благодаря внедрению техпроцесса с 7-нм нормами.
И это на самом деле не само собой разумеющееся улучшение. Рост частот – ещё один результат проведённой инженерной работы. Дело в том, что полупроводниковые кристаллы, для производства которых используются новые техпроцессы с более тонкими нормами, требуют использования более низкого напряжения питания. А это увеличению частотного потенциала вовсе не способствует. Однако в случае с Ryzen 3000 компании AMD удалось поймать двух зайцев сразу: с одной стороны, Zen 2 действительно питаются от более низкого напряжения, но с другой – они способны работать на более высоких, чем прошлые 14- и 12-нм процессоры, частотах. В частности, в то время как максимальная частота процессоров Ryzen второго поколения достигала 4,35 ГГц, новые Ryzen 3000 при умеренной нагрузке смогут развивать частоты на уровне 4,6-4,7 ГГц.
Большую роль в увеличении однопоточной производительности играет технология Precision Boost 2, отвечающая за турбо-режим, то есть, за автоматический разгон процессора в те моменты, когда это позволяет его температура и энергопотребление. В целом в работе этой технологии особых изменений не произошло за исключением того, что в процессорах Ryzen 3000 больше не будет дополнительной функции XFR, роль которой на себя возьмёт всё та же Precision Boost 2. Но AMD обещает, что пользователи систем, построенных на новых процессорах, смогут усилить агрессивность автоматического разгона за счёт специальной функции Precision Boost Override.
При условии хорошего охлаждения процессора и использовании «правильной» материнской платы, эта функция сможет прибавить к рабочим частотам процессора дополнительную пару сотен мегагерц, что неминуемо выльется в дополнительный рост быстродействия как в однопоточном, так и многопоточном режиме.
Модельный ряд Ryzen 3000
Начало продаж процессоров Ryzen 3000, обозначаемых также кодовым именем Matisse, запланировано на 7 июля. В этот день на прилавках появятся пять новых Ryzen третьего поколения с числом ядер от шести до двенадцати. Также AMD запланировала и выпуск шестнадцатиядерного флагманского Ryzen 3 3950X, но этот процессор увидит свет только в сентябре. Но это всё равно можно воспринимать как грандиозную атаку на позиции Intel, которая в настоящее время может предложить в массовом сегменте лишь процессоры с восемью ядрами.
В конечном итоге семейство Ryzen 3000 усилит позиции AMD по всем направлениям. Эти процессоры будут быстрее предшественников за счёт улучшений в микроархитектуре, они будут работать на более высоких частотах и кроме того получат увеличенное число вычислительных ядер. Кажется, что всё это в сумме сможет совершить настоящий переворот на рынке массовых процессоров. И реальность такого сценария подкрепляется ещё одним немаловажным фактором – теми ценами, которые AMD назначила своим новинкам.
Стоит особо подчеркнуть, что AMD решила не предлагать пользователям десктопов процессоры с микроархитектурой Zen 2, имеющие менее шести ядер. Самый младший представитель семейства Matisse относится к классу Ryzen 5.
Но в то же время в дополнение к носителям микроархитектуры Zen 2 компания AMD намеревается также выпустить два новых гибридных процессора Picasso (Ryzen 5 3400G и Ryzen 3 3200G), которые будут обладать четырьмя вычислительными ядрами и графическим ядром Vega. Несмотря на то, что формально такие процессоры тоже относятся к серии Ryzen 3000, в их основе будет лежать предыдущая микроархитектура Zen+, и производиться они будут по старой 12-нм технологии.
AMD подружилась с Microsoft: необходимые патчи уже есть
Немало упрёков в свой адрес компании AMD приходится выслушивать из-за того, что анонсы её процессоров обычно получаются недостаточно хорошо подготовленными в смысле поддержки программной экосистемой. Наиболее серьёзные неудобства такого рода возникают из-за того, что ядро операционной системы Windows, как правило, оказывается плохо знакомым с особенностями топологии продуктов AMD. В результате, новинки на первых порах демонстрируют заниженную производительность, и по предыдущему опыту такая ситуация может продолжаться достаточно долго, пока Microsoft или сама AMD не подготовит необходимые патчи. Так было и с Bulldozer, и с первыми Zen, и с Threadripper, а потому чего-то подобного можно было бы ожидать и в случае с процессорами на микроархитектуре Zen 2.
Однако на этот раз AMD уверяет, что позаботилась о правильной работе самой распространённой операционной системы с процессорами Ryzen 3000 ещё до их появления в продаже. Последнее обновление Windows 10 May 2019 Update, которое компания Microsoft распространяет с 22 мая, уже содержит исправления в планировщике задач, направленные на оптимизацию производительности Ryzen 3000. В первую очередь речь идёт о том, что при распределении потоков по ядрам Ryzen операционная система может различать их принадлежность разным CCX и разным CCD-чиплетам. В обновлённой версии ОС планировщик в первую очередь отдаёт предпочтение загрузке работой ядер, относящихся к одному CCX-модулю. Ядра же, принадлежащие к следующему CCX, задействуются только тогда, когда все четыре ядра предшествующего CCX уже заняты работой.
Данная стратегия должна разгрузить шину Infinity Fabric и уменьшить задержки в том случае, если несколько потоков пользуется ограниченным количеством ядер, но при этом активно взаимодействует друг с другом или с кеш-памятью третьего уровня. Например, такая ситуация часто возникает в игровых приложениях. И по оценкам AMD, реализованная группировка потоков по CCX сможет дополнительно увеличить игровую производительность на величину до 15 %.
Кроме того, в новой версии Windows 10 реализован и более быстрый механизм управления частотой процессора при включении турбо-режима или при выходе из энергосберегающих состояний. Новый механизм Collaborative Processor Performance Control (CPPC2) позволяет на порядок ускорить динамическое переключение частоты, подобно тому как работает технология Intel Speed Shift. Эффект от этого нововведения будет хорошо заметен в случае неравномерных нагрузок. Так, согласно оценкам AMD, включение CPPC2 увеличивает показатель в PCMark 10 примерно на 6 %.
Стоит отметить, что технология CPPC2 – это механизм, применимый исключительно к новым процессорам с микроархитектурой Zen 2. А вот результат оптимизации работы планировщика ОС смогут ощутить на себе в том числе и обладатели систем, построенных на процессорах Ryzen прошлых поколений. Требуется лишь обновить Windows и драйвер чипсета.
Zen 2 (почти) полностью без уязвимостей
Немаловажной особенностью микроархитектуры Zen 2 является её безопасность. Выявленные в прошлом году процессорные уязвимости Meltdown, Spectre и проч. нанесли серьёзный урон всей отрасли. Но к счастью для AMD, микроархитектура Zen/Zen+, в которой дополнительные проверки на уровне буферов TLB были заложены изначально, оказалась подвержена выявленным уязвимостям в минимальной степени. Тем не менее, в проекте Zen 2 на уровне микроархитектуры были внесены дополнительные исправления, которые гарантируют защиту процессоров от тех разновидностей атак класса Spectre, которые всё-таки затрагивали предыдущие процессоры AMD.
Микроархитектурные изменения позволят процессорам Ryzen 3000 более успешно противостоять уязвимостям Spectre и Speculative Store Bypass, однако это всё-таки не полностью аппаратные патчи, поскольку для их функционирования всё ещё нужна поддержка со стороны операционной системы. Тем не менее, AMD подчёркивает, что программные заплатки для Ryzen 3000, в отличие от исправлений для систем, построенных на процессорах Intel, никак не сказываются на производительности.
Здесь же будет уместным напомнить, что недавно выявленные процессорные уязвимости Foreshadow и Zombieload микроархитектуру Zen 2 (как и Zen/Zen+) вообще не затрагивают.
Выводы
В этой статье мы обсудили ключевые особенности микроархитектуры Zen 2, которые заставляют нас ждать выхода процессоров Ryzen 3000 с особым нетерпением. Мы всё ещё не располагаем результатами независимых тестов, но то, что AMD обещает «на бумаге», выглядит очень волнующе. В новом поколении микроархитектуры AMD поработала над устранением основных узких мест, присущих Zen/Zen+, а кроме того, усилила и традиционные сильные стороны. Вышло так, что, внеся относительно небольшой набор изменений, AMD смогла добиться внушительного, 15-процентного прироста в удельной производительности, что кажется настоящим чудом на фоне того, с какой скоростью внедряет микроархитектурные изменения в своих процессорах компания Intel.
Подумать только, за последние два года и два поколения дизайна – Zen+ и Zen 2 – AMD смогла усилить удельное быстродействие своих процессоров на целых 20 %. В дополнение к этому их частота выросла на 12 %, а число вычислительных ядер увеличилось вдвое. И всё это, между прочим, случилось сразу же после ещё одного внушительного полуторакратного скачка в производительности, который произошёл при переходе от Bulldozer к Zen.
Но всё же о том, что Zen 2 – это окончательная и бесповоротная победа AMD, говорить пока рано. С точки зрения многопоточной производительности процессоры AMD успешно противостояли предложениям Intel и раньше. Поэтому у нас нет никаких сомнений, что старшие процессоры серии Ryzen 3000, и в особенности модели с 12 и 16 вычислительными ядрами, заметно превзойдут по производительности в ресурсоёмких приложениях массовые решения конкурента, которые в настоящее время и в ближайшей перспективе смогут предложить не более восьми вычислительных ядер.
Однако главная интрига остаётся в том, сумеет ли Ryzen 3000 в конечном итоге победить Coffee Lake Refresh в играх, поскольку с этим аспектом производительности у прошлых процессоров AMD всё было далеко не радужно. В Zen 2 обещано много улучшений, которые должны увеличить однопоточную производительность и сделать Ryzen 3000 более привлекательными для геймеров, но и Intel не сидит сложа руки, а готовит раскочегаренную до 5 ГГц версию своего флагманского восьмиядерного процессора Core i9-9900KS. Впрочем, это не мешает представителям AMD демонстрировать безудержный оптимизм и высказываться в духе «вряд ли есть какая-то причина, по которой люди захотят покупать процессор Intel после того, как мы запустим модельный ряд Ryzen 3000». (Это – дословное высказывание Трэвиса Кирша (Travis Kirsch), директора по менеджменту клиентских продуктов AMD).
Ждать ответа на все вопросы остаётся совсем немного. Подробные тесты представителей модельного ряда Ryzen 3000 будут опубликованы на нашем сайте 7 июля – всего через две с половиной недели.
3DNews
19.06.19
В преддверии выхода десктопных процессоров Ryzen 3000 мы решили разобраться, откуда в Zen 2 взялся 15-процентный прирост IPC. А также выяснить, какие ещё приятные сюрпризы, помимо возросших частот и увеличенного числа вычислительных ядер, заложены в архитектуре процессоров AMD нового поколения
Через две недели с небольшим нас, по всей видимости, ожидает чудо. Такой вывод можно сделать, если обобщить все те предположения, которые высказывают пользователи в ожидании предстоящего анонса процессоров Ryzen третьего поколения. Но даже самые смелые высказывания о том, будто бы во второй половине года на рынке процессоров для ПК нас ждёт смена лидера (по производительности), нельзя назвать полностью беспочвенными. Ещё в начале года, на выставке CES 2019, компания AMD пообещала, что её процессоры нового поколения увеличат удельное быстродействие (при неизменной тактовой частоте) как минимум на 15 %. А теперь мы узнали, что к этому приложится заметный рост тактовых частот, кардинальное увеличение числа вычислительных ядер и снижение тепловыделения.
Каждое из этих обещаний в отдельности уже кажется как минимум очень смелым. Но чтобы всё сразу?! Тем не менее всё это возможно. На прошедшем в рамках выставки E3 2019 специальном мероприятии Next Horizon компания AMD подробно объяснила, как так вышло, что микроархитектура Zen 2, которая изначально должна была стать банальным переводом Zen на рельсы 7-нм техпроцесса, смогла оказаться настоящим прорывом, имеющим шансы перевернуть весь процессорный рынок.
С момента выхода первых процессоров с микроархитектурой Zen прошло чуть более двух лет. За это время AMD уже успела выпустить промежуточное поколение микроархитектуры, Zen+. Однако в нём мы не увидели практически никаких улучшений. Суть прошлого обновления фактически свелась к переходу с 14-нм на 12-нм производственную технологию, да и только. Новая микроархитектура Zen 2, встреча с которой нас ожидает в июле, вновь предполагает смену техпроцесса — с 12 нм на 7 нм — с одновременной сменой производственного подрядчика: теперь CPU компании будет изготавливать не GlobalFoundries, а TSMC. Но это далеко не всё: вместе с техпроцессом кардинально меняется и масса других вещей.
Чтобы понять, насколько Ryzen 3000 будут непохожими на своих предшественников, достаточно посмотреть на любую фотографию этих процессоров со снятой теплорассеивающей крышкой. Одного взгляда будет достаточно, чтобы понять: процессоры AMD уходят от использования монолитного полупроводникового кристалла. Ядра в них распределены по нескольким полупроводниковым кристаллам – чиплетам, также в отдельный чиплет будут вынесены и все контроллеры ввода-вывода. К этому стоит добавить, что одновременно с внедрением коренных изменений в конструктив процессоров AMD переработала внутреннее устройство вычислительных ядер и позаботилась о том, чтобы устранить основные узкие места прошлых CPU с микроархитектурами Zen и Zen+.
Кроме того, с приходом Ryzen 3000 изменения затронут и всю экосистему, в которой будут работать такие процессоры. Совместимость новинок с традиционным разъёмом Socket AM4 при этом сохранится, но полностью все их преимущества можно будет почувствовать лишь в новых материнских платах, которые смогут обеспечить поддержку интерфейса PCI Express 4.0.
Все многочисленные улучшения и оптимизации, сделанные в процессорах поколения Zen 2, заслуживают явно большего, чем простого перечисления. Поэтому по итогам мероприятия AMD Next Horizon, на котором смог побывать представитель нашего сайта, мы решили подготовить отдельный обстоятельный материал и подробно проанализировать, почему Zen 2 – это действительно круто.
Технология 7 нм – ключ ко всему
Цели, которые ставила перед собой компания AMD во время работы над новой микроархитектурой Zen 2, были вполне очевидными. Основная задача состояла в улучшении производительности процессоров как для десктопов, так и в серверном сегменте, при обязательном сохранении преемственности и совместимости с имеющимися платформами. Иными словами, речь шла о дальнейшей масштабируемости имеющихся процессорных семейств Ryzen и EPYC и комплексном улучшении их потребительских качеств.
Прочный фундамент под дизайн Zen 2 должен был подвести новый технологический процесс. При переходе от 14- к 12-нм нормам, который произошел в апреле прошлого года, процессоры Ryzen лишь немного выиграли в тактовых частотах и смогли довольно незначительно нарастить свою удельную производительность.
Но свежий техпроцесс с разрешением 7-нм должен был катализировать куда более существенный прогресс в улучшении всего набора потребительских характеристик. В силу того, что давний производственный партнёр AMD, компания GlobalFoundries, отказался от освоения 7-нм технологии, чипмейкеру пришлось переориентироваться на сотрудничество с TSMC. И в конечном итоге AMD явно не прогадала. В пользу этого говорят числа: базовый процессорный строительный блок — четырёхъядерный комплекс CCX (Core Complex) с L3-кешем объёмом 8 Мбайт — при производстве по 12-нм техпроцессу GlobalFoundries имел площадь 60 мм2. Подобный комплекс Zen 2 с четырьмя усовершенствованными ядрами и вдвое более вместительным, 16-мегабайтным L3-кешем, произведённый на TSMC по 7-нм техпроцессу, занимает почти вдвое меньшую площадь – 31,3 мм2.
Полный процессорный кристалл (чиплет) в Zen 2, как и раньше, формируется из двух CCX. То есть он содержит восемь ядер и кеш-память третьего уровня объёмом 32 Мбайт. При этом суммарная площадь такого кристалла составляет всего 74 мм2, что существенно меньше 213 мм2, которые занимает кристалл процессора с дизайном Zen/Zen+, например, того же Ryzen 7 2700X. Столь заметный выигрыш в плотности размещения транзисторов открыл перед разработчиками AMD широкие возможности по усовершенствованию микроархитектуры, которое могло бы быть проведено без какого-либо существенного ущерба для себестоимости новых процессоров.
Ещё в начале этого года компания AMD объявила о том, что микроархитектура Zen 2 обеспечит 15-процентное преимущество в производительности по сравнению с Zen+ за счёт одних только микроархитектурных улучшений, то есть на одинаковой тактовой частоте. Однако массу преимуществ дал и новый прогрессивный полупроводниковый процесс. Например, при одинаковом энергопотреблении для Zen 2 обещана как минимум в 1,25 раза более высокая производительность, чем у предшественников, а при одинаковом быстродействии новые процессоры должны быть чуть ли не вдвое экономичнее. Более того, AMD не стесняется даже говорить о том, что в отдельных ситуациях преимущество новых процессоров Zen 2 будет составлять более 75 % по сравнению с прошлыми Zen+ того же класса и более 45 % по сравнению с равноценными решениями конкурента.
Безусловно, все эти выкладки ещё должны будут пройти проверку на прочность независимыми тестами и обзорами, которые выйдут 7 июля. В рамках же своего мероприятия AMD активно оперировала показателями Cinebench R20, которые говорят о том, что если сравнивать Zen 2 и процессоры Intel с аналогичным количеством ядер, то предложения AMD выигрывают как по однопоточной, так и по многопоточной производительности, а также по энергопотреблению и по цене.
Один лишь пример: согласно данным AMD, старший восьмиядерный Ryzen 7 3800X с ценой $400 очень близок к 500-долларовому восьмиядерному Core i9-9900K в однопоточном и многопоточном рендеринге, но при этом его энергопотребление сравнимо с потреблением Core i7-9700K.
Ядра Zen 2: «тик» и «так» одновременно
Согласно первоначальному плану, микроархитектура Zen 2 должна была представлять собой простой перенос старого дизайна Zen на новый техпроцесс. Однако позднее, анализируя слабые места своих первых поколений процессоров Zen и Zen+, инженеры AMD приняли решение по возможности подрихтовать и базовую микроархитектуру. И надо сказать, этот план, судя по всему, отлично сработал. Несмотря на то, что в Zen 2 нет никаких кардинальных переделок, рост IPC (среднего числа выполняемых за такт инструкций) на 15 % — прекрасная иллюстрация того, что всё было сделано правильно.
В то же время нужно понимать, что Zen 2 — микроархитектура, очень похожая на оригинальную Zen/Zen+. Все базовые элементы процессорного ядра остались неизменными, а переделки касаются лишь повышения эффективности имеющихся функциональных блоков. Соответственно, внутренняя конфигурация ядра не изменилась: оно способно декодировать до четырёх инструкций и исполнять до шести инструкций за такт. Кроме того, осталась неизменной и поддержка технологии SMT: каждое ядро Zen 2 может исполнять по два потока одновременно.
Что же поменялось? Как обычно и бывает при работе над совершенствованием имеющихся микроархитектур, первым местом приложения сил инженеров стал блок выборки инструкций и предсказания переходов. Впрочем, здесь изменения не очень явные, поскольку в основе этого блока продолжает лежать «нейронный» алгоритм, основанный на использовании перцептрона. Хотя в целом такая схема даёт не очень впечатляющие результаты, при работе с буфером целей ветвления первого уровня она обеспечивает хорошую энергоэффективность, поэтому AMD не стала от неё отказываться и просто добавила к ней дополнительный многоступенчатый статистический механизм TAGE (Tagged geometric), работающий с буфером целей ветвления второго уровня.
Одновременно были увеличены и размеры буферов целей ветвления. Таблица первого уровня в Zen 2 включает 512 записей вместо 256, а второго уровня – 7К записей вместо 4К. Что касается нулевого уровня, то соответствующий буфер, как и раньше, включает 16 записей, но зато массив адресов косвенных переходов расширился до 1K записей. Иными словами, в новой микроархитектуре переходы прогнозируются явно лучше, чем в первоначальных Zen/Zen+. А это значит, что ситуации, когда процессор должен полностью сбрасывать исполнительный конвейер из-за неправильно предсказанного перехода, будут случаться гораздо реже.
Другим усовершенствованием Zen 2 стало то, что AMD решила существенно перераспределить ресурсы, занятые кешированием инструкций. Кеш микроопераций, в котором хранятся уже декодированные x86-инструкции, был увеличен вдвое – до 4096 записей. При этом классический кеш инструкций первого уровня, в котором сохраняются команды до их декодирования, напротив, сократился. В то время как раньше его объём составлял 64 Кбайт при 4-канальной ассоциативности, в Zen 2 он был урезан до 32 Кбайт с одновременным увеличением степени ассоциативности до 8.
Моделирование, проведённое AMD, показало, что такие изменения положительно сказываются на производительности. И если судить по произошедшему росту IPC, это действительно так. Любопытно, что в результате изменений в размерах кеш-памяти, Zen 2 стали процессорами с самым вместительным кешем микроопераций. Например, в микроархитектуре Skylake этот кеш рассчитан на 1,5К операций, в то время как в Sunny Cove инженеры Intel расширили его всего до 2,25К операций.
Изменения во входной части исполнительного конвейера не повлекли за собой никаких существенных перемен в организации работы планировщиков. Как и раньше, декодер Zen 2 способен поставлять по четыре инструкции за такт и вместе с кешем микроопераций, из которого может поступать до восьми связанных инструкций, они заполняют очередь микроопераций, из которой инструкции выбирают два планировщика: один для целочисленных операций, другой — для операций с числами с плавающей точкой. При этом целочисленный планировщик может отправлять на исполнение по шесть микроопераций за такт, а вещественночисленный – по четыре.
Зато заметные изменения в микроархитектуре произошли на стадии исполнения инструкций. Если говорить об исполнении целочисленных инструкций, то тут — впридачу к увеличению размера буферов (как самого планировщика, так регистрового файла и буфера переупорядочивания) примерно на 10-15 % — появился дополнительный блок генерации адресов (AGU). В сумме это означает, что число исполнительных портов в Zen 2 выросло с шести до семи: четыре порта для арифметико-логических операций (ALU) и три порта – для операций генерации адресов (AGU). В результате микроархитектура Zen 2 может инициировать по две 256-битных операции чтения и по одной 256-битной операции записи каждый такт. Прошлая версия микроархитектуры была по понятным причинам ограничена только двумя подобными операциями за такт, причём лишь шириной 128 бит.
Но что ещё важнее, в Zen 2 компания AMD удвоила пропускную способность блока операций с плавающей точкой. Теперь он стал полностью 256-битным, что означает возможность прямого исполнения им AVX2-инструкций. В первоначальной архитектуре Zen/Zen+ такие команды, работающие с 256-битными регистрами, перед выполнением разбивались на пару 128-битных инструкций и обрабатывались в два приёма, следовательно, от Zen 2 можно ожидать двукратного увеличения темпа работы с AVX2-кодом. Состав же исполнительных устройств в FPU при этом остался старым. Предусмотрено два устройства для операций сложения и два – для операций умножения, что даёт Zen 2 возможность одновременно выполнять по две 256-битные FMA-команды. Здесь же очень пригождается способность новой микроархитектуры инициировать 256-битные операции пересылки данных: в результате исполнение AVX2-кода может происходить без каких-либо задержек. К тому же в Zen 2 AMD смогла добиться того, что обработка AVX2-инструкций может проводиться без какого-либо снижения тактовой частоты, как это происходит в процессорах Intel.
Попутно AMD сообщила и о том, что ей удалось увеличить скорость умножений чисел с плавающей точкой с четырёх до трёх тактов. В конечном итоге это также вносит свой вклад в увеличение удельной производительности процессоров с новой микроархитектурой.
Как следует из сказанного, микроархитектура Zen 2 стала немного «шире» Zen в смысле способностей параллельного исполнения инструкций. Но в то же время она стала «шире» и в смысле работы с данными. Хотя подсистема кеш-памяти, работающей с данными, структурно не изменилась, она получила шины с большей пропускной способностью, которые позволяют получать необходимые данные, не задерживая выполнение AVX2-команд. Если конкретнее, то это означает, что L1-кеш данных сохранил размер 32 Кбайт на ядро с 8-канальной ассоциативностью, а L2-кеш, как и раньше, имеет объём 512 Кбайт на ядро с 8-канальной ассоциативностью, но теперь кеш-память может обслуживать по две 256-битных операции чтения и по одной 256-битной операции записи за такт на уровне L1, а также по одной 256-битной операции чтения и записи за такт на уровне L2. Латентность кеш-памяти не изменилась и составляет 4 такта для L1 и 12 тактов для L2.
Несмотря на неизменность структуры кеш-памяти, в Zen 2 была улучшена работа L2 TLB (буфера трансляции адресов). В первом поколении процессоров Zen размер этой таблицы составлял 1,5К, теперь же она увеличилась до 2К, причём её латентность при этом даже стала ниже. Но самое главное, теперь L2 TLB поддерживает страницы объёмом 1 Гбайт, чего в прошлых версиях микроархитектуры реализовано не было.
Ещё одним заметным изменением в Zen 2 стало удвоение объёма кеш-памяти третьего уровня. В новых процессорах её объём составляет не 8, как раньше, а 16 Мбайт на каждый четырёхъядерный CCX. Так AMD попыталась компенсировать расчленение процессора на несколько независимых кристаллов. Разработчики Zen 2 полагают, что рост объёма L3-кеша позволит снизить количество пересылок данных между чипсетами с ядрами и чиплетом с контроллером памяти. Может, это и так, но не стоит забывать о том, что увеличение объёма кеш-памяти практически всегда сопряжено с ростом латентности. И она у L3-кеша в Zen 2 действительно выросла до 40 тактов, в то время как в процессорах Zen L3-кеш имел латентность примерно на 5 тактов ниже.
От ядра – к CCX и CCD, и далее – к CPU
Выше уже говорилось о том, что конструкция процессоров Ryzen 3000 заметно отличается от того, как были устроены все прошлые Ryzen. Тем не менее CCX-комплексы собираются из ядер Zen 2 ровно так же, как и раньше. В один блок CCX объединяется 4 ядра и 16 Мбайт общей кеш-памяти третьего уровня.
Пара CCX располагается на одном 7-нм полупроводниковом кристалле и формирует процессорный чиплет, получивший аббревиатуру CCD (Core Complex Die). Помимо ядер и кеша, в CCD-чиплет входит также контроллер шины Infinity Fabric, посредством которого должно обеспечиваться соединение CCD с обязательным для любого Ryzen 3000 чиплетом ввода-вывода.
В чиплете ввода-вывода (I/O) процессоров поколения Zen 2 располагаются так называемые внеядерные компоненты, а также элементы северного моста и SoC. В нём, помимо всего прочего, находятся контроллер памяти и контроллер шины PCI Express 4.0. Также в I/O-чиплете реализованы и две шины Infinity Fabric, необходимые для соединения с CCD-чиплетами.
В зависимости от того, о каком процессоре семейства Ryzen 3000 идёт речь, он может состоять либо из двух, либо из трёх чиплетов. В процессорах с числом ядер восемь и менее применяется один CCD-чиплет и один I/O-чиплет. В процессорах с числом ядер более восьми CCD-чиплетов становится уже два. Однако нужно понимать, что процессор при этом всё равно остаётся единым целым. За счёт того, что в любых Ryzen 3000 контроллер памяти находится в I/O-чиплете и он всего один, любое из ядер может гладко обращаться к любым её областям: никаких NUMA-конфигураций, которые портили жизнь владельцам процессоров Threadripper, в случае Zen 2 не будет.
Стоит напомнить, что Zen 2 – далеко не первая попытка перейти на многокристальную компоновку процессоров. Раньше производители уже прибегали к такому подходу. Например, опирались на два полупроводниковых кристалла четырёхъядерные Core 2 Quad, а ещё раньше такой же приём был использован при создании двухъядерных Pentium D. Но впоследствии производители всё же перешли на монолитную конструкцию процессоров, так как она оказалась более эффективной при росте числа ядер и переносе в процессор компонентов северного моста.
Однако новые Ryzen 3000, в состав которых входит два или три чиплета, – отнюдь не шаг назад. Напротив, это переход на следующий уровень, поскольку AMD в новом поколении процессоров идёт не простым экстенсивным методом, наращивая количество вычислительных ядер за счёт добавления дополнительных кристаллов, а применяет куда более интеллектуальный подход, вводя в обиход чиплеты с различной функциональностью и объединяя их в единое целое специализированной высокоскоростной шиной Infinity Fabric.
Выигрыш, который даёт использование многокристальной компоновки, вполне очевиден. В первую очередь она позволяет снизить себестоимость. Производство чиплетов, имеющих сравнительно небольшую площадь кристалла, заметно проще, чем изготовление крупного монолитного процессора. Меньшие кристаллы не только позволяют получить более высокий выход годных чипов, но и эффективнее размещаются на круглой полупроводниковой подложке, что дополнительно снижает количество отходов. В конце концов, именно чиплетная компоновка позволила AMD создать весьма сложные процессоры Ryzen 3000 сравнительно недорогими, даже несмотря на то, что их выпуск организован на мощностях TSMC по самому передовому и новому для индустрии техпроцессу с нормами 7 нм.
Распределение функций процессора по различным чиплетам позволило AMD сэкономить и ещё в одном аспекте. Новый техпроцесс оказалось совсем необязательно применять при производстве всех частей процессоров. «Тонкие» передовые нормы важны для процессорных ядер, поскольку они прямо влияют на частотный потенциал и энергопотребление, но нет никакой нужды использовать их для изготовления более простого чиплета, отвечающего за функции ввода-вывода. Именно поэтому I/O-чиплет в Ryzen 3000 производится по-старинке – на фабриках GlobalFoundries по 12-нм техпроцессу, который использовался при изготовлении процессоров Ryzen второго поколения.
Впрочем, нужно иметь в виду, что чиплетная конструкция порождает и определённые трудности. Например, в современных процессорах очень высокие требования предъявляются к тому, как соединяются и взаимодействуют друг с другом различные части CPU. Реализовать такую шину при многочиповой компоновке оказывается несколько сложнее. Впрочем, эта задача была успешно решена инженерами AMD. Процессоры Ryzen первого и второго поколений, хотя они и были основаны на монолитном ядре, использовали для соединения CCX и контроллера памяти, северного моста и элементов SoC специализированную шину Infinity Fabric. В новых процессорах Ryzen 3000 применяется вторая версия этой шины: именно она отвечает за передачу данных между всеми чиплетами.
Откровенно говоря, к тому, как работает Infinity Fabric, ранее высказывались вполне обоснованные претензии: она не всегда могла обеспечить должный уровень быстродействия при взаимодействии процессорных ядер с L3-кешем и с контроллером памяти. В процессорах Ryzen 3000 компания AMD постаралась исправить основные недостатки Infinity Fabric.
Во-первых, эта шина была расширена вдвое: теперь её ширина составляет 512 бит, что означает двукратное увеличение пропускной способности и возможность пересылки по 32 байта за такт в каждом направлении. Разработчики уверяют, что на этот шаг они пошли в первую очередь из-за появления в Ryzen 3000 поддержки PCI Express 4.0, но очевидно, что более производительная шина, которая связывает все ключевые компоненты процессора, сыграет положительную роль и во многих других случаях.
Во-вторых, Infinity Fabric теперь «развязана» с контроллером памяти по частоте. Раньше частота работы этой шины была синхронизирована с частотой памяти, что, с одной стороны, приводило к сильной зависимости производительности процессоров Ryzen от скорости установленных в системе модулей DDR4 SDRAM, а с другой – препятствовало разгону памяти выше 3466-3600 МГц. Теперь же шина Infinity Fabric сможет работать с контроллером памяти не только синхронно, но и на вдвое меньшей относительно него частоте – с применением делителя 2:1. Это — по крайней мере теоретически — означает гораздо большую свободу в выборе скорости памяти, хотя AMD продолжает настаивать на том, что синхронный режим для Infinity Fabric всё равно будет обеспечивать лучшую производительность, и оптимальнее с Ryzen 3000 использовать модули памяти DDR4-3600 с низкими таймингами.
Тем не менее уже сейчас известно о том, что память в Socket AM4-системах, оснащённых процессорами Ryzen 3000, действительно можно будет сильно разгонять.
Например, AMD показала работу модулей памяти в режиме DDR4-5100 в системе, построенной на Socket AM4-материнской плате MSI MEG X570 Godlike.
Чиплеты и Socket AM4: неожиданные сложности
Чиплетный дизайн процессоров поставил перед инженерами AMD и ещё одну непростую задачу. Как оказалось, физически собрать два или три кристалла на одной текстолитовой плате с 1331 ножками и размером 40 × 40 мм не так-то просто. Каждый из полупроводниковых кристаллов-чиплетов имеет собственный массив контактов, и правильно развести их соединения у AMD получилось, лишь увеличив количество слоев проводников в процессорной плате до двенадцати. При этом маршрутизация контактных дорожек Ryzen 3000 всё равно выглядит нетривиально и очень запутанно: ранее AMD ещё не приходилось разрабатывать столь сложных процессорных плат.
Безусловно, задача конструирования процессорной платы для чиплетной процессорной компоновки Ryzen 3000 могла бы быть существенно упрощена, если бы AMD отказалась от Socket AM4 в пользу какого-то нового разъёма с большей площадью. Но поскольку компания пообещала пользователям сохранять совместимость массовых CPU с единой экосистемой до 2020 года, было решено пойти на дополнительные разработки и всё же впихнуть два CCD-чиплета и один I/O-чиплет на PGA-плату, устанавливаемую в привычный разъём.
При этом неожиданные проблемы возникли и на ещё одном этапе. CCD-чиплет с вычислительными ядрами выпускается по 7-нм техпроцессу и имеет очень небольшую площадь, поэтому контакты для монтажа на процессорную плату на нём приходится размещать очень плотно. Расстояние между контактами на кристаллах, с которыми имела дело AMD раньше, составляло как минимум 150 микрон. В кристаллах же Zen 2 это расстояние уменьшилось до 130 микрон. И как оказалось, в мире существует лишь два производителя печатных плат, которые способны изготавливать текстолитовые подложки под кристаллы со столь плотной контактной матрицей.
Ради возможности сборки Ryzen 3000 в виде совместимых с Socket AM4-процессоров компании AMD пришлось пойти и ещё на одно ухищрение. Выпускаемые по 7-нм технологии CCD-чиплеты были переведены на другую технологию изготовления контактов для монтажа на процессорной плате. На смену применявшимся ранее шарообразным контактам пришли цилиндрические медные столбики, которые, во-первых, имеют меньший диаметр и допускают более плотное размещение, а во-вторых, позволяют выровнять высоту 7-нм и 12-нм чиплетов для установки на них единой плоской теплорассеивающей крышки.
Рассказывая о том, насколько непростым оказался процесс сборки получившихся CPU, о котором обычно никто даже и не задумывается, представители AMD подчеркнули, что теперь компании приходится серьёзно углубляться в логистику. Дело в том, что за выпуск Ryzen 3000 в конечном итоге отвечает четыре подрядчика из четырёх разных стран: I/O-чиплеты изготавливает американская GlobalFoundries, CCD-чиплеты производит тайваньская TSMC, текстолитовые платы для процессоров AMD заказывает в Японии, а финальная сборка процессоров в единое целое происходит в Китае. Поэтому не стоит удивляться тому, что на крышке будущих продуктов AMD можно будет прочитать: «Diffused in USA, Diffused in Taiwan, Made in China».
Тактовая частота и однопоточная производительность
Несмотря на то, что микроархитектура Zen стала огромным шагом вперёд по сравнению с предыдущими процессорами класса Bulldozer, однопоточная производительность оставалась достаточно слабым местом Ryzen и первого, и второго поколений. Там, где была важна именно производительность одного потока, Ryzen заметно уступали процессорам Intel. Однако в Zen 2 эта ситуация, судя по всему, наконец-то будет переломлена. AMD не только говорит о 15-процентном росте показателя IPC благодаря усовершенствованиям микроархитектуры, но и указывает на то, что в комплексе прирост производительности при однопоточной нагрузке может достигать величины в 21 %.
Столь впечатляющей прирост быстродействия складывается из нескольких составляющих, и новая микроархитектура здесь – лишь одно из слагаемых. Рост IPC вносит 60 % вклада, но также большую роль играет прогресс в тактовых частотах, ставший возможным благодаря внедрению техпроцесса с 7-нм нормами.
И это на самом деле не само собой разумеющееся улучшение. Рост частот – ещё один результат проведённой инженерной работы. Дело в том, что полупроводниковые кристаллы, для производства которых используются новые техпроцессы с более тонкими нормами, требуют использования более низкого напряжения питания. А это увеличению частотного потенциала вовсе не способствует. Однако в случае с Ryzen 3000 компании AMD удалось поймать двух зайцев сразу: с одной стороны, Zen 2 действительно питаются от более низкого напряжения, но с другой – они способны работать на более высоких, чем прошлые 14- и 12-нм процессоры, частотах. В частности, в то время как максимальная частота процессоров Ryzen второго поколения достигала 4,35 ГГц, новые Ryzen 3000 при умеренной нагрузке смогут развивать частоты на уровне 4,6-4,7 ГГц.
Большую роль в увеличении однопоточной производительности играет технология Precision Boost 2, отвечающая за турбо-режим, то есть, за автоматический разгон процессора в те моменты, когда это позволяет его температура и энергопотребление. В целом в работе этой технологии особых изменений не произошло за исключением того, что в процессорах Ryzen 3000 больше не будет дополнительной функции XFR, роль которой на себя возьмёт всё та же Precision Boost 2. Но AMD обещает, что пользователи систем, построенных на новых процессорах, смогут усилить агрессивность автоматического разгона за счёт специальной функции Precision Boost Override.
При условии хорошего охлаждения процессора и использовании «правильной» материнской платы, эта функция сможет прибавить к рабочим частотам процессора дополнительную пару сотен мегагерц, что неминуемо выльется в дополнительный рост быстродействия как в однопоточном, так и многопоточном режиме.
Модельный ряд Ryzen 3000
Начало продаж процессоров Ryzen 3000, обозначаемых также кодовым именем Matisse, запланировано на 7 июля. В этот день на прилавках появятся пять новых Ryzen третьего поколения с числом ядер от шести до двенадцати. Также AMD запланировала и выпуск шестнадцатиядерного флагманского Ryzen 3 3950X, но этот процессор увидит свет только в сентябре. Но это всё равно можно воспринимать как грандиозную атаку на позиции Intel, которая в настоящее время может предложить в массовом сегменте лишь процессоры с восемью ядрами.
В конечном итоге семейство Ryzen 3000 усилит позиции AMD по всем направлениям. Эти процессоры будут быстрее предшественников за счёт улучшений в микроархитектуре, они будут работать на более высоких частотах и кроме того получат увеличенное число вычислительных ядер. Кажется, что всё это в сумме сможет совершить настоящий переворот на рынке массовых процессоров. И реальность такого сценария подкрепляется ещё одним немаловажным фактором – теми ценами, которые AMD назначила своим новинкам.
Ядра/ потоки | Базовая частота, ГГц | Турбо частота, ГГц | L2-кеш, Мбайт | L3-кеш, Мбайт | TDP, Вт | Цена | Начало продаж | |
---|---|---|---|---|---|---|---|---|
Ryzen 9 3950X | 16/32 | 3,5 | 4,7 | 8 | 64 | 105 | $749 | сентябрь |
Ryzen 9 3900X | 12/24 | 3,8 | 4,6 | 6 | 64 | 105 | $499 | 7 июля |
Ryzen 7 3800X | 8/16 | 3,9 | 4,5 | 4 | 32 | 105 | $399 | 7 июля |
Ryzen 7 3700X | 8/16 | 3,6 | 4,4 | 4 | 32 | 65 | $329 | 7 июля |
Ryzen 5 3600X | 6/12 | 3,8 | 4,4 | 3 | 32 | 95 | $249 | 7 июля |
Ryzen 5 3600 | 6/12 | 3,6 | 4,2 | 3 | 32 | 65 | $199 | 7 июля |
Но в то же время в дополнение к носителям микроархитектуры Zen 2 компания AMD намеревается также выпустить два новых гибридных процессора Picasso (Ryzen 5 3400G и Ryzen 3 3200G), которые будут обладать четырьмя вычислительными ядрами и графическим ядром Vega. Несмотря на то, что формально такие процессоры тоже относятся к серии Ryzen 3000, в их основе будет лежать предыдущая микроархитектура Zen+, и производиться они будут по старой 12-нм технологии.
AMD подружилась с Microsoft: необходимые патчи уже есть
Немало упрёков в свой адрес компании AMD приходится выслушивать из-за того, что анонсы её процессоров обычно получаются недостаточно хорошо подготовленными в смысле поддержки программной экосистемой. Наиболее серьёзные неудобства такого рода возникают из-за того, что ядро операционной системы Windows, как правило, оказывается плохо знакомым с особенностями топологии продуктов AMD. В результате, новинки на первых порах демонстрируют заниженную производительность, и по предыдущему опыту такая ситуация может продолжаться достаточно долго, пока Microsoft или сама AMD не подготовит необходимые патчи. Так было и с Bulldozer, и с первыми Zen, и с Threadripper, а потому чего-то подобного можно было бы ожидать и в случае с процессорами на микроархитектуре Zen 2.
Однако на этот раз AMD уверяет, что позаботилась о правильной работе самой распространённой операционной системы с процессорами Ryzen 3000 ещё до их появления в продаже. Последнее обновление Windows 10 May 2019 Update, которое компания Microsoft распространяет с 22 мая, уже содержит исправления в планировщике задач, направленные на оптимизацию производительности Ryzen 3000. В первую очередь речь идёт о том, что при распределении потоков по ядрам Ryzen операционная система может различать их принадлежность разным CCX и разным CCD-чиплетам. В обновлённой версии ОС планировщик в первую очередь отдаёт предпочтение загрузке работой ядер, относящихся к одному CCX-модулю. Ядра же, принадлежащие к следующему CCX, задействуются только тогда, когда все четыре ядра предшествующего CCX уже заняты работой.
Данная стратегия должна разгрузить шину Infinity Fabric и уменьшить задержки в том случае, если несколько потоков пользуется ограниченным количеством ядер, но при этом активно взаимодействует друг с другом или с кеш-памятью третьего уровня. Например, такая ситуация часто возникает в игровых приложениях. И по оценкам AMD, реализованная группировка потоков по CCX сможет дополнительно увеличить игровую производительность на величину до 15 %.
Кроме того, в новой версии Windows 10 реализован и более быстрый механизм управления частотой процессора при включении турбо-режима или при выходе из энергосберегающих состояний. Новый механизм Collaborative Processor Performance Control (CPPC2) позволяет на порядок ускорить динамическое переключение частоты, подобно тому как работает технология Intel Speed Shift. Эффект от этого нововведения будет хорошо заметен в случае неравномерных нагрузок. Так, согласно оценкам AMD, включение CPPC2 увеличивает показатель в PCMark 10 примерно на 6 %.
Стоит отметить, что технология CPPC2 – это механизм, применимый исключительно к новым процессорам с микроархитектурой Zen 2. А вот результат оптимизации работы планировщика ОС смогут ощутить на себе в том числе и обладатели систем, построенных на процессорах Ryzen прошлых поколений. Требуется лишь обновить Windows и драйвер чипсета.
Zen 2 (почти) полностью без уязвимостей
Немаловажной особенностью микроархитектуры Zen 2 является её безопасность. Выявленные в прошлом году процессорные уязвимости Meltdown, Spectre и проч. нанесли серьёзный урон всей отрасли. Но к счастью для AMD, микроархитектура Zen/Zen+, в которой дополнительные проверки на уровне буферов TLB были заложены изначально, оказалась подвержена выявленным уязвимостям в минимальной степени. Тем не менее, в проекте Zen 2 на уровне микроархитектуры были внесены дополнительные исправления, которые гарантируют защиту процессоров от тех разновидностей атак класса Spectre, которые всё-таки затрагивали предыдущие процессоры AMD.
Микроархитектурные изменения позволят процессорам Ryzen 3000 более успешно противостоять уязвимостям Spectre и Speculative Store Bypass, однако это всё-таки не полностью аппаратные патчи, поскольку для их функционирования всё ещё нужна поддержка со стороны операционной системы. Тем не менее, AMD подчёркивает, что программные заплатки для Ryzen 3000, в отличие от исправлений для систем, построенных на процессорах Intel, никак не сказываются на производительности.
Здесь же будет уместным напомнить, что недавно выявленные процессорные уязвимости Foreshadow и Zombieload микроархитектуру Zen 2 (как и Zen/Zen+) вообще не затрагивают.
Выводы
В этой статье мы обсудили ключевые особенности микроархитектуры Zen 2, которые заставляют нас ждать выхода процессоров Ryzen 3000 с особым нетерпением. Мы всё ещё не располагаем результатами независимых тестов, но то, что AMD обещает «на бумаге», выглядит очень волнующе. В новом поколении микроархитектуры AMD поработала над устранением основных узких мест, присущих Zen/Zen+, а кроме того, усилила и традиционные сильные стороны. Вышло так, что, внеся относительно небольшой набор изменений, AMD смогла добиться внушительного, 15-процентного прироста в удельной производительности, что кажется настоящим чудом на фоне того, с какой скоростью внедряет микроархитектурные изменения в своих процессорах компания Intel.
Подумать только, за последние два года и два поколения дизайна – Zen+ и Zen 2 – AMD смогла усилить удельное быстродействие своих процессоров на целых 20 %. В дополнение к этому их частота выросла на 12 %, а число вычислительных ядер увеличилось вдвое. И всё это, между прочим, случилось сразу же после ещё одного внушительного полуторакратного скачка в производительности, который произошёл при переходе от Bulldozer к Zen.
Но всё же о том, что Zen 2 – это окончательная и бесповоротная победа AMD, говорить пока рано. С точки зрения многопоточной производительности процессоры AMD успешно противостояли предложениям Intel и раньше. Поэтому у нас нет никаких сомнений, что старшие процессоры серии Ryzen 3000, и в особенности модели с 12 и 16 вычислительными ядрами, заметно превзойдут по производительности в ресурсоёмких приложениях массовые решения конкурента, которые в настоящее время и в ближайшей перспективе смогут предложить не более восьми вычислительных ядер.
Однако главная интрига остаётся в том, сумеет ли Ryzen 3000 в конечном итоге победить Coffee Lake Refresh в играх, поскольку с этим аспектом производительности у прошлых процессоров AMD всё было далеко не радужно. В Zen 2 обещано много улучшений, которые должны увеличить однопоточную производительность и сделать Ryzen 3000 более привлекательными для геймеров, но и Intel не сидит сложа руки, а готовит раскочегаренную до 5 ГГц версию своего флагманского восьмиядерного процессора Core i9-9900KS. Впрочем, это не мешает представителям AMD демонстрировать безудержный оптимизм и высказываться в духе «вряд ли есть какая-то причина, по которой люди захотят покупать процессор Intel после того, как мы запустим модельный ряд Ryzen 3000». (Это – дословное высказывание Трэвиса Кирша (Travis Kirsch), директора по менеджменту клиентских продуктов AMD).
Ждать ответа на все вопросы остаётся совсем немного. Подробные тесты представителей модельного ряда Ryzen 3000 будут опубликованы на нашем сайте 7 июля – всего через две с половиной недели.
3DNews