Emplazamiento de objetos de datos dinámicos sobre organizaciones de memoria heterogéneas en sistemas empotrados
- Francky Catthoor Director/a
- José Manuel Mendías Cuadros Director
Universidad de defensa: Universidad Complutense de Madrid
Fecha de defensa: 20 de noviembre de 2015
- Román Hermida Correa Presidente
- José Ignacio Gómez Pérez Secretario/a
- David Atienza Alonso Vocal
- Jesús Javier Resano Ezcaray Vocal
- Antonio Fernández Anta Vocal
Tipo: Tesis
Resumen
El modelo computacional más extendido hoy día se basa en unidades de procesamiento que leen tanto sus instrucciones como sus datos desde elementos de almacenamiento conocidos como memorias. Sin embargo, pronto se hizo evidente que la velocidad de los procesadores se incrementaba mucho más rápido que la velocidad de acceso a los datos, por lo que aquéllos debían pararse y esperar a que llegasen nuevas instrucciones y datos desde las memorias. Este problema es conocido como la barrera de la memoria. Una observación fundamental es que, dada una tecnología de silicio, la velocidad de acceso de una memoria se reduce según su tamaño aumenta. Así, pronto surgió el concepto de jerarquía de memoria que combina varias memorias de distintos tamaños y velocidades. La presencia de memorias diferentes lleva al problema de emplazar los datos correctos en cada una. La memoria caché (una memoria pequeña y rápida que almacena el subconjunto más accedido de los datos contenidos en otra memoria mayor) ofrece una visión uniforme del espacio de memoria. La observación clave detrás de su diseño es la localidad en el acceso a los datos, tanto temporal como espacial. Aunque las memorias caché han mejorado la velocidad de acceso a los datos, suponen un coste adicional en área y consumo energético. A lo largo de los años se han propuesto diversas técnicas para mejorar el rendimiento del sistema de memoria usando conocimiento específico sobre las aplicaciones, en contraste con el funcionamiento genérico, aunque transparente, de la memoria caché. La idea general es que el software controle los movimientos de datos entre elementos de la jerarquía de memoria. Estas técnicas siguen requiriendo una alta localidad de accesos para compensar el coste energético de los movimientos. Otro hito relevante fue la introducción de la memoria dinámica porque permitió al software adaptarse a condiciones cambiantes. Sin embargo, especialmente en el caso de las estructuras dinámicas de datos (EDDs), su uso puede reducir la localidad de los accesos a datos. En esta tesis se argumenta que, para aplicaciones que usen memoria dinámica y tengan una localidad de accesos baja, un emplazamiento de datos a medida puede comportar ahorros de energía y aumentos de rendimiento significativos en comparación con las técnicas basadas en movimientos de datos. Para evitar que los recursos asignados en exclusiva a los ejemplares de una EDD se desaprovechen durante ciertos periodos, una caracterización y análisis en tiempo de diseño determinan qué EDDs se pueden agrupar en un mismo recurso de memoria. Este agrupamiento es una solución de compromiso que permite mejorar el rendimiento y el consumo energético del sistema emplazando los datos más críticos en los recursos más eficientes. Este planteamiento introduce dos cuestiones. Primero, qué mecanismo implementará el emplazamiento; se propone emplear el propio gestor de memoria dinámica. Segundo, de qué información dispondrá; se propone incluir el tipo de los objetos en su interfaz. Así, conocerá el comportamiento típico de los ejemplares de la EDD correspondiente al elegir el recurso de memoria en el que deba alojarse cada objeto. Las propuestas anteriores se sustentan mediante una herramienta que incluye un simulador de organizaciones de memoria. Esta herramienta puede utilizarse tanto para mejorar el emplazamiento en una plataforma existente, como para dirigir el proceso de diseño de la propia plataforma según las necesidades particulares de las aplicaciones. Como contribución adicional, se presenta un método para la caracterización de los accesos a datos dinámicos de las aplicaciones. Los metadatos generados podrían actuar como repositorio central para sucesivas herramientas de optimización. Esta información es explotada para enlazar diferentes herramientas de optimización en un caso práctico.