Есть ли какое-то особое преимущество с 8-позиционной ассоциативностью кеша, которое я не вижу? (Также заранее извиняюсь, если это глупый вопрос.)
Почему ассоциативность набора кэша в современных процессорах 8-позиционная ассоциативность набора?
Ответы (1)
Обратите внимание на то, что ледяное озеро создает неровности, которые до 12 способов, 48 КБ (добавление дополнительных способов в каждый набор, та же индексация). В 8-полосном режиме нет ничего волшебного. Предыдущие разработки AMD, такие как K8 и Bulldozer, экспериментировали с различной геометрией L1d и L1i, например, 64k / 2-way. (Однако менее успешно, чем Intel 16k / 4-way, чем 32k / 8-way.)
Для кэша L1d / L1i 8-сторонний позволяет кэшу 32 КБ быть VIPT без псевдонима (см. это), учитывая 4k страниц x86. 32kiB - это хорошая золотая середина со степенью двойки, которая достаточно мала, чтобы быть быстрой, но достаточно большой и достаточно ассоциативной для хорошей скорости попадания, а 8-way - это минимальная ассоциативность, если вы хотите избежать дополнительных уловок, чтобы избежать наложения спектров.
См. Почему размер кэша L1 меньше, чем размер кеша L2 в большинстве процессоров? подробнее о том, почему у нас есть иерархии кешей (потому что невозможно построить огромный кеш размером L2 или L3 с задержкой и количеством портов чтения / записи, которые нам нужны / нужны для L1, и попытка была бы плохим способом потратить ваш бюджет мощности). См. Также Какой метод сопоставления кэша используется в Intel процессор Core i7?
8-полосный тоже достаточно ассоциативен, например большинство циклов над массивами имеют менее 8 общих входных и выходных потоков (которые будут псевдонимами друг друга в L1d, если они исходят из одних и тех же смещений в массивах, выровненных по страницам), и известная проблема - иметь больше. (И некоторые формы наложения 4k различных доступов также являются известной проблемой, которую программное обеспечение в основном пытается избежать.)
Также обратите внимание, что кэш 2-го уровня SKL 256 КБ является только 4-сторонним ассоциативным по сравнению с 1-мегабайтным 16-канальным кэшем SKX L2. (Кэш L2 Skylake улучшен за счет снижения ассоциативности?). И кеши L3 обычно более чем 8-сторонние ассоциативные, но я думаю, вы говорите о кешах L1d / L1i.