Los investigadores del Instituto IMDEA Software Pepe Vila, Pierre Ganty y Marco Guarnieri, y Boris Koepf, de Microsoft Research, son los autores del reciente artículo “CacheQuery: Learning Replacement Policies from Hardware Caches” aceptado en la 41ª Conferencia ACM SIGPLAN sobre Diseño e Implementación de Lenguajes de Programación (PLDI 2020).
Los cachés son pequeñas y rápidas memorias que se encuentran entre la CPU y la memoria principal (DRAM) de nuestros ordenadores. Su principal objetivo es acelerar los cálculos reduciendo el tiempo que se tarda en cargar y almacenar los datos, y como su capacidad es limitada, deben anticipar qué datos se van a utilizar en un futuro próximo. Cuanto mejor sea esta predicción, mejor será el rendimiento.
Así pues, la política de sustitución de la memoria caché es la lógica que decide qué datos se mantienen en la memoria caché y cuáles se sustituyen para dar cabida a datos más útiles. Se trata de un componente crítico para el rendimiento de los ordenadores.
En la mayoría de los procesadores modernos estas políticas no están documentadas, y como tienen un enorme impacto en el rendimiento, hace muy difícil predecir y analizar el comportamiento o la seguridad de los programas que se utilizan.
“Carecemos de modelos precisos de nuestro hardware. Con nuestro enfoque, cerramos esta brecha, y permitimos que otras personas entiendan cómo la política optimiza ciertas cargas de trabajo, para que puedan predecir el comportamiento temporal de los sistemas críticos (es decir, coches o aviones), calcular los límites de la fuga de información de los programas criptográficos, o escribir simuladores de hardware más precisos” comenta Pepe Vila, investigador predoctoral del Instituto IMDEA Software.
La transparencia, es el primer paso para mejorar la seguridad de los sistemas informáticos. En este sentido, el investigador del Instituto, Marco Guarnieri, dice que: “los microprocesadores y las memorias son componentes centrales de la infraestructura informática. Las vulnerabilidades de seguridad en estos componentes pueden dar lugar a ataques que pueden afectar a cualquier programa que se ejecute sobre ellos. Para evaluar y estudiar la seguridad de éstos, los investigadores necesitan modelos de alto nivel que documenten y describan sus comportamientos. Desafortunadamente, muchos detalles cruciales de cómo funcionan estos componentes no están documentados. Vemos nuestra investigación como un primer paso hacia la generación automática de tales modelos de alto nivel a partir de mediciones de hardware y, en última instancia, hacia sistemas más seguros”.