¿Cómo se pueden apagar los cachés de CPU L1, L2, L3 en chips modernos x86 / amd64?

Cada CPU moderna de alto rendimiento de la arquitectura x86 / x86_64 tiene cierta jerarquía de cachés de datos: L1, L2 y, a veces, L3 (y L4 en casos muy raros), y los datos cargados desde / a la RAM principal se almacenan en caché en algunos de ellos.

A veces, el programador puede desear que algunos datos no se almacenen en caché en algunos o en todos los niveles de caché (por ejemplo, cuando desea memorizar 16 GB de RAM y mantener algunos datos todavía en la caché): hay algunas instrucciones no temporales (NT) para esto como MOVNTDQA (https://stackoverflow.com/a/37092 http://lwn.net/Articles/255364/)

Pero, ¿hay alguna forma programática (para algunas familias de CPU AMD o Intel como P3, P4, Core, Core i *, ...) para desactivar completamente (pero temporalmente) algunos o todos los niveles de la memoria caché, para cambiar cómo cada memoria La instrucción de acceso (globalmente o para algunas aplicaciones / regiones de RAM) utiliza la jerarquía de memoria? Por ejemplo: ¿apaga L1, apaga L1 y L2? O cambie cada tipo de acceso de memoria a UC "sin caché" (CD + NW bits de CR0 ??? SDM vol3a páginas423 424, 425 y "Indicador de desactivación de caché de tercer nivel, bit 6 del IA32_MISC_ENABLE MSR (disponible solo en procesadores basados en la microarquitectura Intel NetBurst): permite que el caché L3 se desactive y habilite, independientemente de los cachés L1 y L2").

Creo que tal acción ayudará a proteger los datos de los ataques / fugas del canal lateral de caché, como robar claves AES, canales de caché encubiertos, Meltdown / Spectre. Aunque esta desactivación tendrá un enorme costo de rendimiento.

PD: Recuerdo un programa de este tipo publicado hace muchos años en un sitio web de noticias técnicas, pero no puedo encontrarlo ahora. Era solo un exe de Windows escribir algunos valores mágicos en un MSR y hacer que cada programa de Windows se ejecutara muy lentamente. Los cachés se apagaron hasta que se reiniciara o hasta que se iniciara el programa con la opción "deshacer".

Respuestas a la pregunta(1)

Su respuesta a la pregunta