Кэши памяти - размеры отдельных уровней
Мне было просто интересно, когда такая программа, как CPU-Z или CPU-ID, определяет уровни вашего кэша и говорит, например:
Размер D1-кэша L1: 16 КБ "x 8" (4-позиционный ассоциативный набор) Размер I-кэша L1: 64 КБ "x 4" (2-сторонний ассоциативный набор)
На что ссылаются x 8 и x 4? Пожалуйста, предоставьте немного фона, если это возможно. У меня есть несколько мыслей о том, что это могло бы означать, но я не хочу продолжать оставаться в курсе.
Мне интересно, как я уже описываю различные уровни кэша моего процессора в статье.
Для тех, кто ценит визуальные эффекты, вот изображения программы: http://image.prntscr.com/image/b6d216efd51449efb7da115cea064824.png http://image.prntscr.com/image/ae3a164e2cbb48a1a192c445d6179c1c.png
Большое спасибо!
1 ответ
Возьмем для примера процессор AMD FX-8350 с 8 ядрами.
"Кэш" может быть выделен для одного ядра или распределен между ядрами.
Когда CPU-Z говорит x8
это означает, что существует 8 таких кешей, поэтому каждое ядро получает кеш для себя. x4
означает 4 кэша, поэтому каждый из этих кэшей разделен между двумя ядрами.
Если бы был x2
запись, это будет означать 2 кэша, каждый из которых разделен на 4 ядра. И кэш L3 эффективно x1
(CPU-Z просто оставляет это поле пустым), поэтому этот кеш распределяется между всеми ядрами. Я надеюсь это имеет смысл. AMD говорит это так:
- 16-килобайтный 4-сторонний ассоциативный кэш-память L1 с защитой от записи и ECC на ядро
- Кэш инструкций L1 с 64-кбайтной ассоциативной защитой четности, разделенный между двумя ядрами
- 1024-килобайтный 16-канальный ассоциативный ECC-защищенный кэш L2, разделяемый между двумя ядрами
- 8192 КБ (8 МБ) Максимальный 64-полосный ассоциативный кэш, совместно используемый всеми ядрами на узле