CPU

Микроархитектура AMD ZEN: шаг вперед или назад? Часть 2


В 2017 году компания AMD представила процессоры Ryzen с новой микроархитектурой Zen. Сегодня редакция ServersTech.ru детально разберет микроархитектуру Zen на примере кэш-памяти и TLB.

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

Кэш инструкций первого уровня L1I

K10

Bulldozer

Zen

Объем, КБ

64

64*

64

Ассоциативность

2-way

2-way

4-way

*общий для двух ядер

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

Кэш инструкций первого уровня L1D

K10

Bulldozer

Zen

Объем, КБ

64

16

32

Ассоциативность

2-way

4-way

8-way

Латентность, такт

3

4

4

Пропускная способность, байт/такт

2х 16

2x 16

2х 16 (load)

1х 16 (store)

С кэшем данных ситуация еще интереснее: самый емкий кэш был у K10 - 64 КБ, в последующем за ним Bulldozer объем кэша вчетверо сократился - до 16 КБ, а в новом Zen объем кэша увеличили до 32 КБ (такой же объем использует Intel в своих процессорах с микроархитектурой Core). При этом стоит заметить, что вне зависимости от объема ассоциативность кэша постоянно росла с 2 в K10 до 8 в Zen (что должно положительно сказаться на количестве промахов). Пропускную способность в Zen увеличили до 48 байт/такт (стоит отметить, что при расширении FPU до 256 бит потребуется более скоростной кэш, как например, в Skylake – 96 байт/такт). Латентность кэша осталась на том же уровне, что и у Bulldozer - 4 такта, тогда как у K10 - 3 такта.

Кэш второго уровня L2

K10

Bulldozer

Zen

Объем, КБ

512

2048*

512

Ассоциативность

16-way

16-way

8-way

Латентность, такт

14-15

18-20

17

Пропускная способность, байт/такт

16

16

2x 32

*общий для двух ядер

Объем кэш-памяти второго уровня в Zen AMD аналогичен K10 - 512 КБ - в какой-то мере это выглядит шагом назад, ведь у Bulldozer на лицо существенно больший объем 2048 КБ (1024КБ в пересчете на одно ядро). Помимо емкости изменения коснулись ассоциативности, латентности и пропускной способности кэша: AMD снизила в Zen ассоциативность кэша второго уровня с 16 до 8; латентность кэша L2 в Zen хоть и ниже, чем у Bulldozer, но выше, чем у K10; пропускная способность кэша в Zen подросла с 16 до 64 байт/такт (достигнув уровня Skylake).

Кэш третьего уровня L3

K10

Bulldozer

Zen

Объем

512КБ/ядро

1МБ/ядро

2МБ/ядро

Ассоциативность

32-way

64-way

16-way

Латентность, такт

55-59

65

36-37

Пропускная способность, байт/такт

32

2х 16

32

Емкость кэша третьего уровня росла с каждой новой микроархитектурой: K10 - 512КБ на ядро; Bulldozer – 1024 КБ на ядро; Zen – 2048 КБ на ядро. При этом ассоциативность сначала вдвое увеличили с 32 до 64 при переходе с K10 на Bulldozer, а затем при переходе с Bulldozer на Zen вчетверо сократили – с 64 до 16. Пропускная способность кэша третьего уровня уже долгие годы не меняется и находится на уровне 32 байт/такт – аналогичная ситуация у Интел, где с Nehalem ПС кэша L3 находится на уровне 32 байт/такт. Чего не скажешь про латентность, которая сократилась с 65 до 36-37 тактов (если сравнивать Bulldozer с Zen).

Кэш µOP

K10

Bulldozer

Zen

-

-

2048

8-way

(формат: количество записей, ассоциативность)

В Zen появился µOP-кэш, в котором хранятся декодированные инструкции, что позволяет исключить стадию декодирования и выборки, если необходимая инструкция находится в кэше. Аналогичный кэш достаточно давно используется Intel в процессорах Core (правда с чуть меньшей емкостью - 1536 инструкций против 2048).

ITLB L0

K10

Bulldozer

Zen

-

-

8

(формат записи: размер страницы, количество записей, ассоциативность)

В микроархитектуре Zen добавили буфер ассоциативной трансляции ITLB L0.

ITLB L1

K10

Bulldozer

Zen

4KB: 32

2MB: 16

4KB: 48

2MB, 1GB: 24

4KB, 2MB, 1GB: 64

(формат записи: размер страницы, количество записей, ассоциативность)

Емкость ITLB кэша первого уровня росла от архитектуры к архитектуре – с 32 до 64 записей, при этом начиная с Bulldozer появилась поддержка гигабайтных страниц.

DTLB L1

K10

Bulldozer

Zen

4KB, 2MB: 48

1GB: 8

4KB, 2MB, 1GB: 32

4KB, 2MB, 1GB: 64

(формат записи: размер страницы, количество записей, ассоциативность)

Емкость DTLB в Zen также увеличилась с 32 до 64 записей относительно предшественника.

ITLB L2

K10

Bulldozer

Zen

4KB: 512

4-way

4KB: 512

4-way

4KB, 2MB: 512

8-way

(формат записи: размер страницы, количество записей, ассоциативность)

Емкость ITLB кэша второго уровня не меняется на протяжении 10 лет – правда стоит отметить, что в Zen появилась поддержка 2-мегабайтных страниц.

DTLB L2

K10

Bulldozer

Zen

4KB: 512

4-way

2MB: 128

2-way

4KB, 2MB, 1GB: 1024

8-way

4KB, 2MB: 1536

12-way

(формат записи: размер страницы, количество записей, ассоциативность)

Емкость DTLB кэша второго уровня растет с каждой новой микроархитектурой – если в K10 она была 512 записей для 4-килобайтных страниц, то в Zen – 1536.

Заключение

Подводя промежуточный итог, можно отметить следующие моменты:
- Емкость кэша L1I в Zen сохранилась на уровне K10;
- Емкость кэша L1D от архитектуре к архитектуры постоянно менялась и установилась на уровне 32 КБ в Zen (именно такой объем Интел использует уже много лет в своих процессорах с архитектурой Core);
- Емкость кэша L2 в Zen аналогична K10 - 512 КБ;
- Емкость кэша третьего уровня постоянно росла - с 512 КБ до 2048 КБ на ядро;
- AMD добавила OP-кэш в Zen (еще одно удачное решение Интел перекочевало к конкуренту);
- в Zen был добавлен ITLB L0;
- Если емкость ITLB L1 росла из поколения в поколение, то таковая ITLB L2 не изменялась с K10;
- Емкость DTLB L1 и DTLB L2 постоянно росла.
Таким образом, можно отметить, что компания AMD, разрабатывая Zen, взяла не только свои удачные наработки из K10, но и из решений конкурента.

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

0 logo low

Copyright © by ServersTech.ru, 2015-2020. Копирование запрещено.
Коммерческие предложения, сотрудничество и реклама: cooperation@serverstech.ru
Предложения, вопросы и пожелания читателей: readership@serverstech.ru
Copyright © 2015-2020 ServersTech.ru. Все права сохранены
Copyright © 2015-2020 ServersTech.ru. All rights reserved