Кэши памяти - размеры отдельных уровней

Мне было просто интересно, когда такая программа, как 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-полосный ассоциативный кэш, совместно используемый всеми ядрами на узле
Другие вопросы по тегам