Презентация высокопроизводительной микроархитектуры Zen, или как AMD испортила праздник на улице Intel.

Advanced Micro Devices в среду подтвердила, что выходящие в следующем году микропроцессоры будут базироваться на новейшей микроархитектуре Zen. Компания пообещала серьёзное увеличение быстродействия новых микросхем по сравнению с существующими, а также сообщила, что её инженеры уже работают над улучшенной версией технологии Zen, архитектурой под названием Zen+.

Марк Пэйпермастер (Mark Papermaster), технический директор AMD, рассказал финансовым аналитикам, что процессорные ядра Zen будут исполнять на 40 % больше инструкций за такт (instructions per clock, IPC) по сравнению с ядрами Excavator. По сути, это означает, что центральные процессоры AMD следующего поколения будут на 40 % быстрее предшественников при одинаковом количестве ядер и тактовой частое. Согласно данным AMD, микросхемы на основе ядер Zen+ покажут ещё более впечатляющую производительность на такт, что означает дальнейшее серьёзное улучшение на микроархитектурном уровне.

Ядра Excavator являются вершиной развития микроархитектуры Bulldozer, обещавшей революцию в области построения многоядерных процессоров в 2010–2011 годах, но так и не сумевшей стать достойным конкурентом современным микроархитектурам корпорации Intel. Одной из причин фактического фиаско Bulldozer принято считать «модульный» дизайн процессорных ядер (неформально называемый clustered multi-thread (CMT) по аналогии с clustered integer-core, разработанной DEC в 1996 году для RISC-процессора Alpha 21264. Поскольку каждый двухъядерный модуль Bulldozer включает в себя два блока исполнения целочисленных операций (с сопутствующей логикой), но один блок исполнения операций с плавающей запятой (а также делит между целочисленными ядрами блок выборки инструкций, декодер инструкций, а также кеш второго уровня), в случае с операциями с плавающей запятой он ведёт себя как не очень эффективный одноядерный чип.

Микроархитектура Zen обещает стать противоположностью Bulldozer. Каждое ядро Zen будет включать в себя шесть блоков исполнения целочисленных операций, два 256-разрядных блока исполнения операций с плавающей запятой, собственные декодер инструкций, блок выборки инструкций, блок предсказания переходов, собственную кеш-память и т.д.

Кроме того, подобно процессорам Intel (начиная с Pentium 4), новые процессоры AMD будут поддерживать технологию одновременной многопоточности (simultaneous multithreading, SMT). Применение SMT позволит новым ядрам исполнять инструкции из нескольких независимых потоков на различных функциональных модулях ядра Zen за один такт, тем самым увеличивая пиковую производительность.

Согласно AMD, микроархитектура Zen будет обладать инклюзивной многоуровневой подсистемой кеш-памяти, заточенной под минимальные задержки и максимальную пропускную способность. Замена эксклюзивной подсистемы кеш-памяти (каждый уровень хранит уникальную информацию) на инклюзивную (большие по объёму кеши нижних уровней могут хранить копии содержимого меньших по объёму кешей верхнего уровня) происходит фактически впервые в истории процессоров AMD. Начиная с чипа K6 компания применяла исключительно эксклюзивную иерархию кешей.

Увеличение исполнения инструкций за такт на 40 % по сравнению с Excavator не означает, что процессоры на базе Zen будут на 40 % быстрее существующих микросхем AMD FX или A10. Поскольку новые чипы могут работать на более высоких тактовых частотах, вполне возможно, что они будут значительно быстрее современных APU и CPU разработки AMD. Напротив, если тактовые частоты новинок будут низкими, новая продукция AMD сможет показать лишь умеренный прирост производительности по сравнению с сегодняшними решениями.

Как и ожидалось, микропроцессоры на базе микроархитектуры Zen - такие как Summit Ridge, Bristol Ridge и Basilisk - будут производиться по технологии 14 нм с применением транзисторов с вертикально расположенным затвором (fin-shaped field effect transistor, FinFET) на фабрике компании GlobalFoundries. Ожидается, что для изготовления новых чипов будет применена наиболее совершенная версия 14-нм техпроцесса - 14LPP (14nm low-power plus).

Принимая во внимание крайне медленное развитие процессорных микроархитектур в последние годы, 40-% прирост производительности за такт впечатляет. Тем не менее, многое будет зависеть не только от самой микроархитектуры, но и от практической реализации процессоров, а также их тактовых частот. При благоприятном для AMD стечении обстоятельств, очень может быть, что будущие процессоры FX будут в состоянии конкурировать с наиболее мощными микросхемами Intel Core i7 во второй половине следующего года.

Краткое описание архитектуры

Особенности микроархитектуры:

  • два потока на ядро;
  • 8 МБ общей кэш-памяти третьего уровня;
  • большая унифицированная кэш-память второго уровня;
  • кэш декодированных инструкций;
  • два блока со стандартом шифрования AES для обеспечения безопасности;
  • высокоэффективные FinFET-транзисторы.(14 нанометров) Все представители процессоров AMD Zen будут совместимы с материнскими платами, поддерживающими сокет AM4

Сравнение

Инженерный образец AMD Zen в сравнении с процессором Intel Broadwell -E Core i7-6900K закончил рендеринг в программе для 3D-моделирования Blender на 2 % быстрее при равных частотах обоих процессоров(3 GHz, что является уменьшенной базовой частотой для i7 6900k).

Напишите отзыв о статье "Zen (микроархитектура)"

Примечания

Ссылки

  • / AMD (англ.)

Отрывок, характеризующий Zen (микроархитектура)

Графиня несколько раз во время службы оглядывалась на умиленное, с блестящими глазами, лицо своей дочери и молилась богу о том, чтобы он помог ей.
Неожиданно, в середине и не в порядке службы, который Наташа хорошо знала, дьячок вынес скамеечку, ту самую, на которой читались коленопреклоненные молитвы в троицын день, и поставил ее перед царскими дверьми. Священник вышел в своей лиловой бархатной скуфье, оправил волосы и с усилием стал на колена. Все сделали то же и с недоумением смотрели друг на друга. Это была молитва, только что полученная из Синода, молитва о спасении России от вражеского нашествия.
– «Господи боже сил, боже спасения нашего, – начал священник тем ясным, ненапыщенным и кротким голосом, которым читают только одни духовные славянские чтецы и который так неотразимо действует на русское сердце. – Господи боже сил, боже спасения нашего! Призри ныне в милости и щедротах на смиренные люди твоя, и человеколюбно услыши, и пощади, и помилуй нас. Се враг смущаяй землю твою и хотяй положити вселенную всю пусту, восста на ны; се людие беззаконии собрашася, еже погубити достояние твое, разорити честный Иерусалим твой, возлюбленную тебе Россию: осквернити храмы твои, раскопати алтари и поругатися святыне нашей. Доколе, господи, доколе грешницы восхвалятся? Доколе употребляти имать законопреступный власть?
Владыко господи! Услыши нас, молящихся тебе: укрепи силою твоею благочестивейшего, самодержавнейшего великого государя нашего императора Александра Павловича; помяни правду его и кротость, воздаждь ему по благости его, ею же хранит ны, твой возлюбленный Израиль. Благослови его советы, начинания и дела; утверди всемогущною твоею десницею царство его и подаждь ему победу на врага, яко же Моисею на Амалика, Гедеону на Мадиама и Давиду на Голиафа. Сохрани воинство его; положи лук медян мышцам, во имя твое ополчившихся, и препояши их силою на брань. Приими оружие и щит, и восстани в помощь нашу, да постыдятся и посрамятся мыслящий нам злая, да будут пред лицем верного ти воинства, яко прах пред лицем ветра, и ангел твой сильный да будет оскорбляяй и погоняяй их; да приидет им сеть, юже не сведают, и их ловитва, юже сокрыша, да обымет их; да падут под ногами рабов твоих и в попрание воем нашим да будут. Господи! не изнеможет у тебе спасати во многих и в малых; ты еси бог, да не превозможет противу тебе человек.
Боже отец наших! Помяни щедроты твоя и милости, яже от века суть: не отвержи нас от лица твоего, ниже возгнушайся недостоинством нашим, но помилуй нас по велицей милости твоей и по множеству щедрот твоих презри беззакония и грехи наша. Сердце чисто созижди в нас, и дух прав обнови во утробе нашей; всех нас укрепи верою в тя, утверди надеждою, одушеви истинною друг ко другу любовию, вооружи единодушием на праведное защищение одержания, еже дал еси нам и отцем нашим, да не вознесется жезл нечестивых на жребий освященных.

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

AMD Zen

Прогнозирование, декодирование, очереди и выполнение

Прежде всего, давайте погрузимся прямо в блок-схему, как показано:

Если мы сосредоточимся только на левом, чтобы начать, мы можем увидеть большинство деталей микроархитектуры высокого уровня, включая базовые кэши, новое включение op-cache, некоторые подробности об декодерах и диспетчерах, планировщиках, портах выполнения и загрузке / хранении договоренности. Несколько слайдов позже в презентации говорят о пропускной способности кэша.

Во-первых, одно из больших отклонений от предыдущих архитектур микроархитектуры AMD - это наличие микро-операционного кеша (может быть, стоит отметить, что эти слайды иногда говорят о том, когда это означает микрооперацию, что создает небольшую путаницу). Дизайн Bulldozer AMD не имел кэша операций, требуя, чтобы он извлекал детали из других кешей для реализации часто используемых микроопераций. Intel реализовала аналогичную договоренность в течение нескольких поколений с большим эффектом (некоторые из них стали основным шагом для Conroe), поэтому увидеть ее здесь достаточно многообещающе для AMD. Нам не сообщили о масштабах или объеме этого буфера, и AMD, возможно, предоставит эту информацию со временем.

Помимо ожидаемых «усовершенствований предсказания ветвей», которые так же неопределенны, как они звучат, AMD пока не раскрыла устройства декодера в Zen, но указала, что они могут декодировать четыре команды за цикл для подачи в очередь операций, Эта очередь, с помощью op-cache, может доставлять 6 ops / cycle для планировщиков. Причины, по которым очередь может отправлять больше за цикл, - это то, что декодер может предоставить инструкцию, которая затем попадает в два микрооператора (что упрощает определение команд и микроопераций). Тем не менее, эта очередь микроопераций помогает подавать отдельные целые и сегменты с плавающей запятой CPU. В отличие от Intel, которая использует комбинированный планировщик для INT / FP, диаграмма AMD предполагает, что в это время они останутся отдельными со своими собственными планировщиками.

На стороне INT сердечника будут выполняться операции ALU, а также операции AGU / загрузки и хранения. Устройства загрузки / хранения могут выполнять 2 16-байтовые нагрузки и один магазин 16-Byte за цикл, используя 32 KB 8-путь, набор ассоциативной записи L1 Data cache. AMD явно сделала это кешем обратной записи, а не кешем записи, который мы видели в Bulldozer, который был источником большого количества времени простоя в определенных кодах. AMD также заявляет, что нагрузка / магазины будет иметь более низкую задержку в кэшах, но не объяснила, в какой степени они улучшились.

Сторона FP ядра обеспечит два порта с несколькими портами и два ADD-порта, что должно предусматривать две объединенные операции FMAC или один 256-бит AVX за цикл. Комбинация сегментов INT и FP означает, что AMD собирается для широкого ядра и хочет использовать значительное количество параллелизма на уровне инструкций. Насколько он будет зависеть от кэшей и буферов переупорядочения - реальных данных о буферах не было дано в настоящее время, за исключением того, что в ядрах будет добавлено окно планировщика команд большего размера + 75% для операций упорядочения и + 50 % более широкая ширина вопроса для потенциальной пропускной способности. Более широкие ядра, при прочих равных условиях, позволят AMD одновременно использовать многопоточность, чтобы потенциально использовать несколько потоков с линейным и, естественно, низким уровнем IPC.

В 2017 году компания AMD представила процессоры Ryzen с новой микроархитектурой Zen. Сегодня редакция сайт детально разберет микроархитектуру Zen, проследив как изменились задержка и пропуск инструкций с K10.

Помимо привычных способов повышения производительности процессора (повышение тактовой частоты, увеличение ширины исполнительного тракта, расширение разрядности ИУ и векторизация инструкций), существует неочевидный способ - снижение таймингов инструкций, то есть сокращение времени выполнения инструкций. Например, снижение времени выполнения операции деления вдвое будет условно равно удвоению тактовой частоты процессора при выполнении деления (с большим количеством допущений). Таким образом, снижение таймингов выполнения инструкций может быть вполне действенным способом, хоть и весьма ограниченным и специфичным (так как для повышения быстройдествия всего процессора необходимо снизить тайминги всех инструкций, тогда как в реальности обычно происходит снижение таймингов лишь определенных инструкциий, что ускоряет процессор только в узком круге задач).
Всего существует два наиболее важных тайминга: задержка (latency) и пропуск (reciprocal throughput). Где задержка выражается в тактах, которые необходимы для выполнения инструкции, а пропуск - количество тактов, которые необходимо пропустить для выполнения следующей инструкции в данном ИУ. Сравним тайминги некоторых инструкций для K10, Bulldozer и Zen, используя справочные данные Agner Fog .

Таблицы будут построены следующим образом: в колонке «Инструкция» будет указана инструкция и операнды (m, m32, m64, m128, m256 - память; r, r32, r64 - РОН; mm - регистры MMX; xmm - регистры SSE; ymm - регистры AVX); в колонках K10, Bulldozer и Zen будут указаны непосредственно тайминги в тактах для данных микроархитектур по схеме «задержка (пропуск)».

Инструкции X86

Инструкция

MOV: перессылка данных из памяти в регистры у Zen на уровне K10 - 3 такта, в то время как у Bulldozer - 4 такта.
XCHG: обмен данными между регистрами у Zen «бесплатный» (с пропуском в 0.33 такта), в то время как у K10 и Bulldozer 2 и 1 такта соответственно. Обмен данными между регистром и памятью у Zen больше, чем у K10 - 30 тактов против 21, но меньше, чем у Bulldozer - 50.
PUSH: для помещения числа в стек всем участникам требуется 1 такт.
POP: извлечение числа из вершины стека у Zen происходит за полтакта, в то время как раньше это требовало 1 такт.
ADD: операция сложения чисел у K10, Bulldozer и Zen требует 1 такт, но необходимо отметить, что у K10 пропуск 1/3 такта, Bulldozer - 1/2, а у Zen - 1/4 такта.
Аналогичная ситуация и с вычитанием (SUB), изменением знака числа (NEG), инкрементом (INC), декрементом (DEC), логическим И (AND), логическим ИЛИ (OR), логическим исключающим ИЛИ (XOR), инверсией битов (NOT).
MUL: беззнаковое умножение на Zen стало вдвое быстрее, чем на Bulldozer - 3 такта против 6.
IMUL: умножение на Zen требует всего 3 такта, в то время как на Bulldozer - 6, а на K10 - 4.
DIV: деление беззнаковых чисел также ускорилось: Zen требует 14-46 тактов; Bulldozer - 16-75; K10 - 15-78.
IDIV: операция деления существенно ускорилась в Zen - 14-47 тактов против 22-79 у Bulldozer.
Подводя промежуточный итог, основные инструкции из набора Х86 стали выполняться на Zen быстрее, чем на предшественниках, то есть Zen даже на одинаковой частоте с предшественниками будет показывать большую производительность (при преобладании представленных инструкций в коде).

Инструкции X87

На сегодняшний день набор инструкций Х87 почти не используется в современных программах, а в процессорах он оставлен для совместивости (тот самый «+» архитектуры х86). Данный набор инструкций уже давно не разивается - не добавляются ни новые инструкции, ни регистры.

Инструкция

FLD: загрузка вещественного числа в стек в Zen стала быстрее - 1 такт против 2 тактов, но пропуск увеличился - в K10 и Bulldozer пропуск равнялся 0,5 такта, а в Zen - 1 такт.
FST: с копированием вещественного числа из стека ситуация аналогичная FLD.
FILD: загрузка целого числа в стек в Zen стала быстрее, чем в Bulldozer - 8 тактов против 12, но медленнее, чем в K10 (6 тактов).
FIST: с копированием целого числа из стека ситуация аналогичная FILD.
FISTP: со считыванием целого числа из стека ситуация аналогичная FILD.
FADD: сложение вещественных чисел в Zen происходит за 5 тактов, тогда как в Bulldozer - 5-6, а в K10 - 4.
FSUB: с вычитанием вещественных чисел ситуация аналогичная FADD.
FMUL: с умножением вещественных чисел ситуация аналогичная FADD.
FDIV: деление вещественных чисел действительно стало быстрее - как по задержке, так и по пропуску: Zen выполняет операцию за 8-15 тактов, а Bulldozer - 10-42 и K10 - 31.
FSQRT: извлечение квадратного корня также ускорилось: Zen выполняет операцию за 8-21 тактов, а Bulldozer - 10-53 и K10 - 35.
FXTRACT: извлечение экспоненты и мантиссы у Zen стало медленнее, чем в Bulldozer - увеличился пропуск на 2 такта, при сохранении задержки на прежнем уровне в 10 тактов.
FCOS: вычисление косинуса в Zen происходит быстрее, чем в Bulldozer - 50-115 тактов против 160.
FSIN: с вычислением синуса ситуация аналогичная FCOS.
Как отмечалось выше, набор инструкций Х87 не развивается и сохраняется для совместимости - это видно по времени исполнения инструкций в Zen, где скорость выполнения многих инструкций хоть и выше, чем в Bulldozer, но ниже, чем в K10, который вышел в 2007 году. Из рассмотренных инструкций существенное ускорение получили только деление вещественных чисел FDIV и извлечение квадратного корня FSQRT.

Инструкции MMX

Набор инструкций MMX был анонсирован 1997 году и предложил восемь 64-битных регистров mm и 57 инструкций. На сегодняшний день данный набор инструкций устарел и не развивается - оставлен в современных процессорах для совместимости.

Инструкция

MOVD: перессылка данных в Zen в зависимости от операндов стала либо быстрее, либо осталась на уровне K10, например: пересылка из РОН в регистры mm в Zen осуществляется за 3 такта, тогда как в K10 - за 6 тактов.
MOVQ: пересылка учетверенных слов между регистрами mm в Zen вдвое быстрее, чем в K10 - 1 такт против 2 (аналогично и пропуск - 0.25 такта против 0.5).

С логическим ИЛИ (POR), логическим И (PAND), побитовым логическим НЕ (PANDN) ситуация аналогичная PXOR.
PMADDWD: умножение четырех слов в Zen происходит с той же скоростью, что и в K10 (но быстрее, чем в Bulldozer).
PCMPEQB: проверка равенства байтов в Zen требует 1 такт, а в K10 и Bulldozer - 2 такта.
Как можно заметить, из рассмотренных инструкций значительная часть стала выполняться быстрее в Zen, чем у предшественников.

Инструкции SSE

Наборы инструкций SSE (SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2) получили широкое распространение и до последнего времени (до появления AVX) активно развивались. Данные наборы инструкций решили основные недостатки MMX (работа только с целыми числами и невозможность параллельной работы с MMX и X87) и предоставили восемь (в последствии 16) 128-битных регистров. Большое количество инструкций (около 300), 128-битные регистры, работа с вещественными числами и удобство работы (по сравнению со стеком в Х87) позволили отказаться от MMX и Х87. Рассматротрим некоторые инструкции из наборов SSE.

Инструкция

MOVD: перессылка данных в Zen в зависимости от операндов стала либо быстрее, либо осталась на уровне K10, например, пересылка из РОН в регистры xmm в Zen осуществляется за 3 такта, тогда как в K10 - за 6 тактов.
MOVQ: пересылка учетверенных слов между регистрами xmm в Zen в 2,5 раза быстрее, чем в K10 - 1 такт против 2.5.
PXOR: побитовое логическое исключающее ИЛИ в Zen осуществляется за 1 такт против 2 в K10.
ADDPS: параллельное сложение четырех пар чисел с плавающей точкой в Zen происходит за 3 такта, тогда как в K10 - 4, а в Bulldozer - 5-6.
Аналогично и с инструкциями сложения вещественных чисел (ADDSS), параллельного вычитания вещественных чисел (SUBPS) и параллельного умножения вещественных чисел (MULPS и MULSS).
DIVPS: параллельное деление вещественных чисел в Zen стало существенно быстрее, чем в K10 - 10 тактов против 18 (аналогично и с пропуском).
SQRTPS: извлечение квадратных корней из четырех чисел требует 9-10 тактов у Zen, в то время как у K10 - 21 такт, а у Bulldozer - 14-15.
ANDPS: операция побитового логического И в Zen осуществляется за 1 такт, а в в K10 и Bulldozer - за 2 такта.
Аналогично и с операциями побитового логического ИЛИ (ORPS) и побитового логического исключающего ИЛИ (XORPS).
Инструкции AVX Наша Редакция не включила по причине того, что они отсутствуют в K10, а следовательно, не получится проследить развитие микроархитектур.

Заключение

Как можно заметить, компания AMD основательно поработала над микроархитектурой Zen, изменив не только концепцию построения ядра, количество ИУ, декодеров и прочее, но и также сократила тайминги выполнения многих инструкций, что также положительно скажется на производительности в различных приложениях. При этом важно понимать, что «ускорились» далеко не все инструкции, так например, если классические инструкции Х86 в большей своей мере (из рассмотренных) стали выполняться в Zen быстрее по сравнению с предшественниками, то инструкции Х87 практически не получили какого-либо ускорения (что еще раз говорит о том, что набор инструкций Х87 устарел, хотя и остается необходимым для совместимости). Векторные инструкции (MMX и SSE) также стали выполняться быстрее. Таким образом, AMD не просто «скопировала» части K10 и Bulldozer в Zen, а существенно переработала ИУ, сделав их быстрее (интересно будет сравнить по таймингам Intel и AMD).

Остальные материалы по микроархитектуре Zen собраны .

Компания AMD уже давно пообещала, что после вывода на рынок полного модельного ряда Ryzen для настольных систем она примется за Ryzen Mobile — мобильные разновидности новых процессоров. Такие процессоры давно обсуждаются под кодовым именем Raven Ridge, и согласно предварительным данным, они получат четыре вычислительных ядра Zen и графическое ядро с архитектурой Vega. Теперь же, благодаря базе данных бенчмарка Ashes of Singularity, получено реальное подтверждение не только существования такой разработки, но и то, что она находится в стадии, близкой к финальной. Более того, зафиксированные результаты раскрывают имя будущего APU: он проходит под названием Ryzen 5 2500U.

Вероятно, AMD Ryzen 5 2500U окажется одной из старших моделей в перспективном семействе APU Raven Ridge, нацеленном на лёгкие и тонкие ноутбуки. Если данные бенчмарка верны, то такой процессор получит четыре ядра с поддержкой технологии SMT (многопоточности) и графическое ядро AMD 1500 Graphics, относящееся к поколению Vega. Иными словами, двухтысячная серия в номенклатуре Ryzen будет отдана для APU компании, базирующихся на микроархитектуре Zen.

Ранее компания AMD уже успела подтвердить, что процессоры Raven Ridge действительно получат графическое ядро, основанное на архитектуре Vega. Также, согласно официальной информации, первые ноутбуки с процессорами семейства Ryzen Mobile появятся на прилавках магазинов до конца года. Пилотные модели мобильных компьютеров на базе новых процессорах AMD, нацеленные на массовый сегмент, вероятно будут анонсированы в конце третьего квартала. Подобные же продукты для корпоративного рынка запланированы на первую половину 2018 года.

В сравнении с прошлым поколением APU, Bristol Ridge, перспективные гибридные процессоры AMD с новой архитектурой должны будут предложить как минимум 50-процентный рост вычислительной производительности и не менее чем 40-процентный прирост графического быстродействия при снижении энергопотребления более чем вдвое.

К сожалению, появившиеся в базе данных бенчмарка Ashes of Singularity скоростные показатели будущего APU пока не релевантны и не отражают реальное быстродействие Raven Ridge.

Статьи по теме: