¿Cómo puedo medir mediante programación (no consultar el sistema operativo) el tamaño y el orden de asociatividad de las cachés L1 y L2 (cachés de datos)?Tamaño de medida y orden de las cachés L1 y L2
Las suposiciones sobre el sistema:
- Ha L1 y L2 cache (puede ser L3 también, puede ser el intercambio de caché),
- Se puede tener una unidad de captación previa de hardware (como P4 +),
- Tiene un clocksource estable (tickcounter o buen HPET para gettimeofday).
No hay suposiciones sobre el sistema operativo (puede ser Linux, Windows u otra cosa) y no podemos usar consultas POSIX.
El lenguaje es C, y optimizaciones del compilador puede estar desactivado.
Pregunta muy interesante. +1 –
Hay una biblioteca que mide los tamaños de caché en tiempo de compilación. Se llama ATLAS http://math-atlas.sourceforge.net/. Supongo que también puedes encontrar información allí. –
¿Identificación del procesador con búsqueda? (¿O es eso hacer trampa?) –