Cuando la CPU con un caché L1 escribe, lo que normalmente sucede es que (suponiendo que la línea de caché en la que está escribiendo ya está en el caché L1) el caché (además de actualizar los datos) marca esa línea de caché como sucia , y escribirá la línea con los datos actualizados en algún momento posterior.
Una posible optimización sería hacer que el caché compare los contenidos de la escritura y los contenidos anteriores del caché, y si son iguales, no marque la línea como sucia. Debido a que esto podría permitir que la memoria caché evite reescrituras en ocasiones, puedo ver cómo el fabricante de la CPU podría considerar que esto vale las puertas necesarias para hacer esta lógica.
Mi pregunta: ¿hay CPU que realicen esta optimización?
Antecedentes de por qué pregunto: estoy escribiendo un código que necesita tener accesos constantes a la memoria; es decir, alguien que puede escuchar el comportamiento del caché no debería poder deducir lo que estoy haciendo. Algunos de mis accesos son escrituras, y en la forma obvia de implementar este código, muchas de las escrituras escribirán los mismos datos que ya están allí. Necesito hacer las escrituras porque, dependiendo de los datos, los datos que estoy escribiendo pueden o no ser los mismos, y es importante realizar la misma acción independientemente. Si la CPU se optimiza al no escribir realmente una 'escritura sin cambios', eso significaría que el comportamiento de la memoria caché variará dependiendo de lo que esté haciendo, lo que subvertiría mi objetivo.
Entonces, ¿hay una CPU que intente optimizar las escrituras de esta manera?