Какова ширина пути данных между контроллером памяти и кэшем в процессоре Intel? - PullRequest
3 голосов
/ 29 января 2020

Насколько я понимаю, в 64-битной системе шина памяти имеет 64 бита. Таким образом, передача между контроллером памяти (M C) и DRAM имеет 64 бита. Поскольку размер блока кэша составляет 64 байта, выполняется ли передача данных размером с блок кэша из M C в Cache? (ie ширина пути данных имеет размер блока кэша) или выполняется 8-кратная передача (каждый из 64 бит, учитывая ширину пути данных 64 бита, такую ​​же, как шина памяти?)

1 Ответ

4 голосов
/ 29 января 2020

Обычно где-то посередине. например, неосновная кольцевая шина в основных процессорах Intel (до Skylake Xeon) имеет ширину 32 байт в каждом направлении, поэтому пакетная передача строки кэша от одной остановки межсоединения к следующей занимает 2 цикла. Intel могла бы заменить двунаправленное 32-байтовое кольцо данных однонаправленным 64-байтовым кольцом (с потенциально немного меньшей площадью), но это значительно увеличило бы задержку всех наихудших транзакций, особенно попаданий L3, в худшем случае. Этот 64-байтовый дизайн также не будет масштабируемым с количеством ядер, поскольку наихудшая задержка становится выше. ( Почему нет шины данных, которая имеет ширину, равную размеру строки кэша? ). Intel Knights Ferry использует кольцо шириной 64 байта в каждом направлении. Такое массивное соединение стало возможным благодаря наличию меньших ядер, отсутствию выделенного кэша L3 и гораздо большему d ie по сравнению с процессорами того же поколения (или даже новее). Ширина межсоединения в более новых процессорах Intel, вероятно, составляет либо 32 байта, либо 64 байта в каждом направлении. (См .: Какова ширина данных me sh в SKX? )

Шина L2-L3 (т. Е. Путь, который соединяет частный кэш L2 со связанным с ним L3 slice) имеет меньшую ширину полосы пропускания, чем у межсоединения, поэтому шина L2-L3 может иметь меньшую ширину (возможно 16 байт). Путь из L2 -> L1 кеша данных имеет ширину 64 байта в Skylake. Некоторые источники, не принадлежащие Intel, заявляют о ширине этих путей, но они могут быть или не быть точными.

Кстати, шина памяти была 64-битной со времен SDRAM / DDR1, до того как x86-64 был вещь. Сама шина памяти работает с пакетной передачей 64 байта.

И не связана с шириной шины памяти, x86, поскольку 32-битный P5 Pentium гарантировал, что 8-байтовые (64-битные) выровненные доступы будут атомами c ( возможно только с использованием x87 или MMX на этом Uarch). Этот факт проистекает из ширины порта загрузки / хранения и протоколов передачи кеш-> кеш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...