CPU

Эволюция Intel Core: Nehalem, Sandy Bridge, Haswell, Skylake. Часть 2


В данном материале мы рассмотрим эволюцию Core на примере кэша и TLB.

Остальные материалы по микроархитектуре Skylake и эволюции Intel Core собраны здесь.

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

Nehalem Sandy Bridge Haswell Skylake
Объем, КБ 32 32 32 32
Ассоциативность 4-way 8-way 8-way 8-way

Объем кэша инструкций с анонса Nehalem не изменился, что неудивительно, так как данная величина наследуется еще с Conroe, то есть с 2006 года. С одной стороны у прямого конкурента за данный период организация кэша первого уровня успела поменяться несколько раз; с другой - если 32КБ не мешает современным процессорам Интел показывать как большую производительность, так и энергоэффективность, чем у конкурентов, то зачем что-то менять? Единственное, что можно отметить, при переходе Nehalem-Sandy Bridge изменилась ассоциативность с 4 на 8.

Кэш данных первого уровня L1d

Nehalem Sandy Bridge Haswell Skylake
Объем, КБ 32 32 32 32
Ассоциативность 8-way 8-way 8-way 8-way
Размер строки, байт 64 64 64 64
Латентность, такт 4 4 4 4
Пропускная способность, байт/такт 16

32 (2x 16)

96 (64 чтение, 32 запись)

96 (2х 32 чтение, 32 запись)

Что касается кэша данных первого уровня, то он значительно эволюционировал с первого поколения Core: если в Nehalem кэш L1d имел пропускную способность на уровне 16 байт/такт, то в Haswell - 96 байт/такт (64 байт/такт - чтение, 32 байт/такт - запись). Skylake не принес ничего нового, оставив ПС на прежнем уровне, то есть 96 байт/такт. Вероятно, данная ПС характерна будет только для мобильных и десктопных Skylake, но не для серверных Skylake-EP/EX, так как у первых инструкции AVX остались 256-битными, а вторые обещают поддержку 512-битных инструкций, что потребует либо увеличения ПС кэша вдвое, либо придется искусственно снизить темп выполнения 512-битных инструкций (кстати, как реализует Intel исполнение 512-битных инструкций тоже еще неизвестно - это можно сделать как расширением разрядности текущих ИУ, так и выполнением 512-битных инструкций на 256-битных ИУ с существенным снижением темпа их выполнения - подобная практика не нова, например, 256-битные инструкции в Bulldozer/Piledriver/Steamroller выполняются на 128-битных ИУ).
В целом, самый значительный скачок был при переходе Sandy Bridge-Haswell - пропускная способность утроилась, а переход Nehalem-Sandy Bridge лишь удвоил ПС. То есть, фактически мы имеем рост ПС с каждой сменой микроархитектуры, и Skylake не будет выбиваться, если Интел увеличит ПС кэша в Skylake-EP/EX.

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

Nehalem Sandy Bridge Haswell Skylake
Объем, КБ 256 256 256 256
Ассоциативность 8-way 8-way 8-way 4-way
Размер строки, байт 64 64 64 64
Латентность, такт 10 12 11 12
Пропускная способность, байт/такт 32 32 64 64

Кэш второго уровня более консервативен и по сути самым значимым был переход Sandy Bridge-Haswell, который удвоил его ПС, доведя до 64 байт/такт. В остальном изменения минимальны: переход Nehalem-Sandy Bridge повысил латентность кэша на 2 такта, а переход Haswell-Skylake изменил ассоциативность с 8 на 4.

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

Nehalem Sandy Bridge Haswell Skylake
Объем, КБ 2МБ/ядро 2МБ/ядро 2МБ/ядро 2МБ/ядро
Ассоциативность 16-way 16-way 16-way 16-way
Размер строки, байт 64 64 64 64
Латентность, такт 35-40 26-31 34 44
Пропускная способность, байт/такт 32 32 32 32

Кэш третьего уровня скорее даже «деградирует», чем эволюционирует - за годы развития Core его латентность выросла с 35-40 тактов до 44 (но следует иметь в виду, что его частота функционирования постоянно растет). В целом, значительных изменений LLC не было - ПС как была 32 байт/такт в Nehalem, так и осталась в Skylake.

ITLB

Nehalem Sandy Bridge Haswell Skylake

4КБ: 128;

2МБ/4МБ: 7/thread

4КБ: 128;

2МБ/4МБ: 8/thread

4КБ: 128, 4-way;

2МБ/4МБ: 8/thread

4КБ: 128, 8-way;

2МБ/4МБ: 8/thread

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

ITLB также как и LLC практически не изменился за всё это время: переход Nehalem-Sandy Bridge увеличил количество записей для 2МБ/4МБ страниц с 7 до 8.

DTLB

Nehalem Sandy Bridge Haswell Skylake

4КБ: 64;

2МБ/4МБ: 32;

4КБ: 64;

2МБ/4МБ: 32;

1ГБ: 4

4КБ: 64, 4-way;

2МБ/4МБ: 32, 4-way;

1ГБ: 4, 4-way

4КБ: 64, 4-way;

2МБ/4МБ: 32, 4-way;

1ГБ: 4, 4-way

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

DTLB переходит от поколения к поколению практически без изменений: переход Nehalem-Sandy Bridge добавил поддержку гигабайтных страниц и, пожалуй, на этом заканчиваются изменения.

STLB

Nehalem Sandy Bridge Haswell Skylake
4КБ: 512, 4-way 4КБ: 512,4-way 4КБ/2МБ/4МБ:   1024,8-way

4КБ/2МБ/4МБ: 1536,12-way;

1ГБ: 16, 4-way

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

В отличие от ITLB и DTLB, STLB показывает большую динамику развития: переход Sandy Bridge-Haswell удвоил емкость с 512 до 1024 записей; переход Haswell-Skylake увеличил емкость еще на 50% для 4КБ/2МБ/4МБ страниц, доведя ее до 1536 записей, а также добавил поддержку 1ГБ страниц (16 записей).

Заключение

Таким образом, наиболее значительные изменения претерпели кэш данных первого уровня и STLB. Постоянное совершенствование кэша L1d обусловлено как повышением разрядности ИУ и инструкций, так и увеличением количества портов запуска, так например, увеличение количества портов запуска и ИУ при переходе Sandy Bridge-Haswell потребовало значительной переработки кэша L1d для обеспечения высокой загрузки ИУ.

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