logo
Методичка

10.2.2 Иерархия кэш-памяти в архитектуре Nehalem

Одна из главных особенностей новой архитектуры – это изменение структуры кэш-памяти процессора (рис. 10.8). Собственно, кэш-память первого уровня (L1) практически не претерпела изменений. Изменился лишь размер TLB-буфера и ассоциативность кэша инструкций. Если ранее кэш L1 делился на 32-килобайтный кэш данных и 32-килобайтный кэш инструкций и оба кэша являлись восьмиканальными, а размер строки кэша составлял 64 байт, то теперь кэш L1 делится на восьмиканальный 32-килобайтный кэш данных и четырехканальный 32-килобайтный кэш инструкций.

Новизна заключается в том, что к каждому ядру процессора теперь добавлены унифицированный (единый для инструкций и данных) кэш второго уровня (L2) размером 256 Кбайт и разделяемый между всеми ядрами процессора кэш третьего уровня (L3).

Кэш L2 также является восьмиканальным, а размер строки кэша составляет 64 байт. Кэш L3 является 16-канальным. Размер разделяемого кэша L3 может быть различным и зависит от количества ядер процессора. В частности, для четырехъядерного процессора Bloomfield размер L3-кэша составляет 8 Мбайт.

Кэш L3 является инклюзивным (inclusive) по своей архитектуре по отношению к кэшам L1 и L2, то есть в кэше L3 всегда дублируется содержимое кэшей L1 и L2. Отметим, что кэши L1 и L2 не являются ни инклюзивными, ни эксклюзивными по отношению друг к другу.

Использование именно инклюзивного L3-кэша имеет свои преимущества по сравнению с эксклюзивной архитектурой. Рассмотрим несколько характерных примеров чтения данных из кэша L3.

Предположим сначала, что ядро процессора Core 0, обнаружив, что требуемых ему данных нет ни в кэше L1, ни в кэше L2, обращается к кэшу L3. Если требуемых данных нет также и в кэше L3, то в случае эксклюзивной архитектуры кэша L3 потребовалось бы также проверить наличие требуемых данных в кэшах L1 и L2 каждого из ядер – Core 1, Core 2 и Core 3.

В случае инклюзивной архитектуры кэша L3 необходимость в подобной проверке отпадает, поскольку эта архитектура гарантирует, что при отсутствии данных в кэше L3 они будут отсутствовать и в кэшах L1 и L2. Если же требуемые ядру Core 0 данные обнаруживаются в кэше L3, то при эксклюзивной архитектуре кэша более не требуется предпринимать каких-либо действий, поскольку эта архитектура гарантирует отсутствие таких данных в кэшах L1 и L2 ядер Core I, Core 2 и Core 3.

При инклюзивной архитектуре кэша L3 наличие требуемых данных в кэше L3 означает, что эти данные также содержатся и в каком-то из кэшей ядра Core 1, Core 2 или Core 3. Однако в архитектуре Nehalem в этом случае не требуется дополнительной проверки кэшей L1 и L2 всех остальных ядер. Достигается это тем, что в тег-поле кэш-строки L3-кэша записывается, какому из ядер принадлежат данные, поэтому достаточно лишь прочитать содержимое этого тега.

Перед тем как мы перейдем к архитектуре процессоров AMD, необходимо отметить, что новые процессоры Nehalem несовместимы с чипсетами Intel четвертой серии. Более того, для них используются кулеры с новой системой крепления. Одновременно с выходом процессора Bloomfield – первого четырехядерного процессора на базе архитектуры Nehalem – появились и первые материнские платы на чипсете Intel X58 Express, имеющем кодовое название Tylersburg.