Si puede obtener acceso a un "Westmere" sistema de las características de rendimiento de su código debe ser bastante similar a lo que tiene en el "Nehalem", basada, pero usted tendrá acceso a una nuevo evento de contador de rendimiento de hardware que mide casi exactamente lo que desea.
En Westmere, la mejor estimación del rendimiento perdido mientras se esperan errores de TLB es probablemente del contador de rendimiento de hardware Evento 08H, Máscara 04H "DTLB_LOAD_MISSES.WALK_CYCLES", que se describe como contar "Cycles Page Miss Handler is ocupado con una caminata de página debido a una falla de carga en el TLB de segundo nivel ". Esto se describe en "Intel® 64 e IA-32 arquitecturas de software de 3B Manual volumen Desarrollador: Guía de programación del sistema, Parte 2" (número de documento: 253669) disponible en línea, en http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.html
La razón de este evento es necesario es que el tiempo de procesamiento erróneo de TLB está dominado por el tiempo requerido para leer la línea de caché que contiene la entrada de la tabla de páginas. Si esa línea de caché está en la memoria caché L2, la sobrecarga de un TLB será muy pequeña (del orden de 10 ciclos). Si la línea está en la memoria caché L3, entonces tal vez 25 ciclos. Si la línea está en la memoria, entonces ~ 200 ciclos.
- Si también hay un fallo en los cachés página de traducción de nivel superior, se tardará varios viajes a la memoria para encontrar y recuperar la entrada de tabla de página deseado (por ejemplo, https://stackoverflow.com/a/9674980/1264917).
- En algunos procesadores, los contadores de caché L2 pueden indicar cuántas caminatas de mesa golpean y fallan en el L2, pero no en Nehalem. (No ayudaría mucho en este caso, dado que TLB anda ese hit en el L3 también es bastante rápido y lo que realmente quiere son los recorridos TLB que tienen que ir a la memoria.)
Esto podría ser útil: http://oprofile.sourceforge.net/docs/intel-corei7-events.php –