Los procesadores Intel basados en la microarquitectura Intel deberían admitir la captación previa de hardware de caché .
Estoy usando un Q8200 pero no puedo encontrar ninguna opción en el BIOS para habilitar / deshabilitar el prefetcher. También modifiqué el MSR 0x1A0 pero parece no producir efectos en el rendimiento (lo medí a través de un punto de referencia de memoria).
Por lo tanto, sospecho que Q8200 no tiene prefetcher de hardware de caché. Además, en la hoja de datos del prefetcher de caché de la serie Q8000 nunca se menciona.
¿Alguien puede confirmar o negar mi duda?
cpu
cache
intel-core2
RicoRico
fuente
fuente
Respuestas:
El procesador Intel Core 2 Quad 8200 se basa en la microarquitectura Intel Core .
Mirando los eventos del contador de rendimiento para esa microarquitectura (Capítulo 19.10 del Manual Intel 3 ), puede encontrar un evento llamado L2_LD (Core, Prefetch, Cache Line State) que lee
El caché L2 es el caché de último nivel para Yorkfield-6M (que es el núcleo que implementa la microarquitectura Core).
El Capítulo 35.1 también confirma que el MSR IA32_MISC_ENABLE (1a0h) tiene el bit 9 para deshabilitar los captadores previos.
Así, los prefetchers están allí.
La hoja de datos está destinada a ingenieros eléctricos, no describe la funcionalidad de la CPU, ya que es demasiado compleja y vale la pena separarla en un segundo volumen.
La comparación de los comportamientos internos de la CPU, como el prefetcher, es complicado. El prefetcher se activa solo por patrones específicos.
Es mejor medir, a través de eventos de rendimiento, las solicitudes de caché L2 debido al captador previo.
Cómo lograr esto está más allá del alcance de esta respuesta, pero puedes echar un vistazo a la herramienta de rendimiento .
fuente
perf
herramienta parece continuar registrando los eventos de captación previa, por lo que no estoy seguro de si los contadores de rendimiento no son confiables en este caso o modificar 0x1a0 no funciona.-e rD029,rC029
en los que el primero cuenta la referencia L2 solo debido al PF y el segundo cuenta la referencia L2 sin el PF (rF029
contaría ambos). No soy un experto en perf , así que revise esta pregunta sobre la sintaxis correcta para especificar eventos personalizados. En este caso, el número de evento es 0x29 y las máscaras u son 0xd0, 0xc0 y 0xf0 respectivamente.-e rDF29,rCF29,rFF29
perf
no son probablemente los correctos. Desactivar prefetcher funciona y rDF29 informa 0!