lshw и lscpu не согласны с кэшем - что правильно?

14

Я пытаюсь выяснить особенности кэшей (в частности, какие кэши распределяются между ядрами, а какие нет), и они наткнулись на несоответствие.

sudo lshw говорит

*-cache:0
     description: L1 cache
     physical id: a
     slot: Internal Cache
     size: 64KiB
     capacity: 64KiB
     capabilities: synchronous internal write-back
*-cache:1
     description: L2 cache
     physical id: b
     slot: External Cache
     size: 8MiB
     capabilities: synchronous internal write-back

но lscpuутверждает

L1d cache:   32K
L1i cache:   32K
L2 cache:   256K
L3 cache:  8192K

Я не слишком беспокоюсь о том, что инструкции и кеш данных добавляются вместе, но куда делся L2?

Наблюдается на машине под управлением Ubuntu 10.10 или позволяет uname -aговорить:

Linux name 2.6.35-32-generic #66-Ubuntu SMP Mon Feb 13 21:04:32 UTC 2012 x86_64 GNU/Linux

Это общий вопрос, но учтите, что ни самая точная спецификация производителя, которую я мог найти, ни Википедия не имеют необходимых деталей.

Несвязанный бонусный вопрос: External Cacheозначает ли кеш разделение между (четырьмя) ядрами (и Internal Cacheнаоборот)?

Рафаэль
источник
Две мысли Во-первых, что говорит производитель? Мой подход, вероятно, заключался бы в том, чтобы найти спецификации для процессора и затем попытаться рассуждать дальше. Во-вторых, если это то, что вы могли бы сделать, мне было бы интересно посмотреть, что вы получите, если попробуете это после загрузки Live CD / USB для самой последней версии Ubuntu или Fedora. (Может быть, это ошибка, которая уже исправлена? Полагаю, есть и другие способы проверить, существует ли ошибка и была ли она исправлена, но ...)
иррациональный Джон
@irrationalJohn: Хорошие замечания по поводу официальных спецификаций (хотя и не связанных с более общим вопросом). К сожалению, спецификации даже не помогают (см. Редактирование). Кроме того, я не могу вмешиваться в машину.
Рафаэль

Ответы:

3

Спасибо за добавление дополнительной информации о процессоре к вашему вопросу. Полезно знать, что приведенные вами примеры относятся к Intel Core i7-920 Processor.

Предоставленная информация lscpuболее точна, поскольку включает в себя все три уровня кеша: L1, L2 и L3. Похоже, что он lshwбыл лишь минимально изменен, чтобы отразить добавление Intel кэш-памяти L3 к своим процессорам. Вместо отображения информации обо всех трех уровнях кэша, информация о размере кэша L3, по-видимому, сообщается как кэш L2.

Я предполагаю, что спецификации, которые вы рассматривали, не включали кэш L1 и L2, потому что в рамках данной микроархитектуры они все одинаковы. Например, для Nehalem это « 64 КБ L1 кэш / ядро ​​(32 КБ L1 Data + 32 КБ L1 Инструкция) и 256 КБ L2 кэш / ядро ».

Я считаю, что предоставление каждому ядру своих собственных L1 и L2 с одним, гораздо большим общим L3 было впервые представлено как часть Nehalem (микроархитектура) (в ноябре 2008 года?).

Я не знаю, почему lshwиспользуется термин External Cacheдля обозначения L3. Но меня это вводит в заблуждение, поскольку кэш L3 находится на кристалле ЦП, а не на внешнем уровне . Опять же, это похоже на попытку использовать старое программное обеспечение для описания нового оборудования, при этом внося минимальные изменения в программное обеспечение.

(Возможно, можно узнать больше, посмотрев на исходный код, но у меня не было времени, чтобы попытаться это сделать.)

Наконец, да, кэш L3 распределяется между ядрами / потоками. Ниже приводится цитата из статьи Википедии связана выше, « Гиперпоточность вновь вводится наряду с уменьшением L2, который включен в качестве кэш - памяти L3 , которая может использоваться всеми ядрами . »

иррациональный Джон
источник
Спасибо за помощь относительно спецификаций. Тем не менее, необходимость выслеживать спецификации - отстой, если у нас есть инструменты, которые претендуют на то, что мы хотим.
Рафаэль
@RI не знал, что вы (все еще) что-то искали. Честно говоря, проблема, с которой я обычно сталкиваюсь в Intel, заключается в том, что слишком много информации предоставляется. Какая информация вас интересует? Глядя вправо на страницу Intel i7-920, вы увидите быстрые ссылки . Ссылка на таблицу приводит вас на страницу технической документации . На процессорах i7-900 есть два тома, прежде чем они перечислят механические и термические характеристики. Разработчик программного обеспечения укомплектован на другой странице. Слишком много, чтобы перечислить.
иррациональный Джон
Ну, я тестировал параллельные алгоритмы, поэтому архитектура кеша была важна. Отстойно, что инструменты GNU / Linux явно не (все) надежны. В любом случае, вопрос был больше об инструментах, чем о конкретной машине, над которой я работал.
Рафаэль
@ Рафаэль Я действительно не знаю, почему lshwвозвращает результаты кеша, которые он делает. Но, возможно, они не хотели менять свой формат вывода из-за опасений, что они могут сломать скрипт, который проанализировал их вывод. Вы можете легко нарисовать себя в углу с помощью программных инструментов.
иррациональный Джон