lshw y lscpu no están de acuerdo con los cachés, ¿cuál es el correcto?

14

Estoy tratando de encontrar detalles específicos sobre los cachés (en particular, qué cachés se comparten entre los núcleos y cuáles no) y me he topado con una inconsistencia.

sudo lshw dice

*-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

pero lscpuafirma

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

No me preocupo demasiado por la instrucción y la caché de datos que se agregan, pero ¿a dónde se fue L2?

Observado en una máquina con Ubuntu 10.10, o para dejar uname -ahablar:

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

Esta es una pregunta general, pero tenga en cuenta que ni las especificaciones de fabricante más precisas que pude encontrar ni Wikipedia tienen los detalles necesarios.

Pregunta de bonificación no relacionada: ¿ External Cachesignifica que el caché se comparte entre los (cuatro) núcleos (y Internal Cachelo contrario)?

Rafael
fuente
Dos pensamientos Primero, ¿qué dice el fabricante? Mi enfoque probablemente sería buscar las especificaciones de la CPU y luego intentar razonar desde allí. En segundo lugar, si es algo que podría hacer, me gustaría ver qué obtiene si lo intenta después de iniciar un Live CD / USB para el Ubuntu o Fedora más reciente. (¿Tal vez es un error que ya está solucionado? Supongo que hay otras formas de verificar si existió un error y se solucionó, pero ...)
John irracional
@irrationalJohn: Buen punto sobre las especificaciones oficiales (aunque no está relacionado con la pregunta más general). Lamentablemente, las especificaciones ni siquiera ayudan (ver edición). Además, no puedo manipular la máquina.
Raphael

Respuestas:

3

Gracias por agregar la información adicional sobre el procesador a su pregunta. Es útil saber que los ejemplos que publicó se refieren a un Intel Core i7-920 Processor.

La información proporcionada por lscpues más precisa porque incluye los tres niveles de caché, L1, L2 y L3. Parece que lshwsolo se modificó mínimamente para reflejar la incorporación de Intel de un caché L3 a sus CPU. En lugar de mostrar información sobre los tres niveles de caché, la información sobre el tamaño del caché L3 aparentemente se informa como caché L2.

Supongo que las especificaciones que miró no incluían caché L1 y L2 porque dentro de una microarquitectura dada son todas iguales. Por ejemplo, para Nehalem esto es " 64 KB L1 caché / núcleo (32 KB L1 Datos + 32 KB L1 Instrucción) y 256 KB L2 caché / núcleo ".

Creo que dar a cada núcleo su propio L1 y L2 con un solo L3 común mucho más grande se introdujo por primera vez como parte de la Nehalem (microarquitectura) (en noviembre de 2008?).

No sé por qué lshwusa el término External Cachepara referirse a la L3. Pero me parece engañoso ya que el caché L3 está en el dado de la CPU y no es lo que consideraría externo . Nuevamente, esto se siente como tratar de usar un software antiguo para describir el hardware más nuevo mientras se realizan cambios mínimos en el software.

(Probablemente se podría aprender más mirando el código fuente real, pero no tuve tiempo para intentar hacer eso).

Finalmente, sí, el caché L3 se comparte entre los núcleos / subprocesos. La siguiente cita es del artículo de Wikipedia vinculado anteriormente, " Hyper-threading se reintroduce junto con una reducción en L2, que se ha incorporado como caché L3 que todos los núcleos pueden utilizar " .

John irracional
fuente
Gracias por la ayuda con respecto a las especificaciones. Aún así, tener que buscar especificaciones apesta si tenemos herramientas que pretenden lo que queremos.
Rafael
@RI no sabía que estabas (todavía) buscando algo. Francamente, el problema que generalmente tengo con Intel es que se proporciona demasiada información. ¿Qué tipo de información le interesa? Mirando a la derecha en la página Intel i7-920 verá Enlaces rápidos . El enlace de la hoja de datos lo lleva a una página de documentos técnicos . Hay dos volúmenes en los procesadores i7-900 incluso antes de que enumeren las especificaciones mecánicas y térmicas. El desarrollador de software sirve en otra página. Demasiados para enumerar.
John irracional
Bueno, comparé algoritmos paralelos por lo que la arquitectura de caché era importante. Es una mierda que las herramientas de GNU / Linux aparentemente no sean (todas) confiables. De todos modos, la pregunta era más sobre las herramientas que la máquina específica en la que estaba trabajando.
Raphael
@Raphael Realmente no sé por qué lshwdevuelve los resultados de caché que hace. Pero posiblemente no querían cambiar su formato de salida por preocupación, podrían romper un script que analizara su salida. Puede pintar en una esquina con demasiada facilidad con las herramientas de software.
John irracional