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 lscpu
afirma
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 -a
hablar:
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 Cache
significa que el caché se comparte entre los (cuatro) núcleos (y Internal Cache
lo contrario)?
cpu
cache
system-information
Rafael
fuente
fuente
Respuestas:
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
lscpu
es más precisa porque incluye los tres niveles de caché, L1, L2 y L3. Parece quelshw
solo 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é
lshw
usa el términoExternal Cache
para 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 " .
fuente
lshw
devuelve 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.