En general, no creo que esto sea posible. Funciona para DRAM y el archivo de paginación, ya que es un recurso administrado por el SO, el caché es administrado por la propia CPU.
El sistema operativo podría hacer un ciclo de temporización ajustado de una lectura de memoria y tratar de ver si se completa lo suficientemente rápido para estar en la caché o si tenía que ir a la memoria principal; esto sería muy propenso a errores.
En sistemas multi-core/multi-proc, hay cache coherency protocols que se usan entre procesadores para determinar cuándo deben invalidar las memorias caché de los demás, supongo que podría tener un dispositivo personalizado que husmeara este protocolo que el sistema operativo consultaría.
¿Qué estás tratando de hacer? Si desea forzar algo en la memoria, los procesadores x86 actuales admiten la recuperación previa de memoria en la caché de forma no bloqueante, por ejemplo, con Visual C++ puede usar _mm_prefetch
para buscar una línea en la caché.
EDITAR: No he hecho esto yo mismo, por lo tanto, use bajo su propio riesgo. Para determinar errores de caché para creación de perfiles, es posible que pueda utilizar algunos registros específicos de la arquitectura. http://download.intel.com/design/processor/manuals/253669.pdf, el Apéndice A proporciona "Eventos de ajuste de rendimiento". Esto no se puede usar para determinar si una dirección individual está en la memoria caché o cuando está cargada en la memoria caché, pero se puede usar para las estadísticas generales. Creo que esto es lo que usa vTune (un perfilador fenomenal para este nivel).
Gracias. Estoy interesado ya que estoy jugando con la escritura de kernels. Estoy interesado en perfilar fallas en la línea de caché en el hardware real. No me di cuenta de cuán perjudiciales son para las CPU modernas hasta que vi las diapositivas de Herb Sutter: http://is.gd/oWwp –
. Hay formas de hacer un perfil de esto en el hardware, vtune sí. – Michael
Una gran cantidad de CPU modernas tienen contadores de rendimiento que pueden proporcionar todo tipo de información, incluidas las estadísticas relacionadas con la caché. – sigjuice