Optimization of dymamic memory managers in high performance embedded systems using grammatical evolution
Rubén Ramiro · 2009
RESUMEN Los sistemas empotrados son pequenos dispositivos electronicos con una o varias funciones dedicadas y que se encuentran integrados en un dispositivo mas general. Hoy en dia vivimos rodeados de este tipo de sistemas aunque en ocasiones no nos percatemos de ello porque forman parte de nuestra vida cotidiana (un coche suele incluir mas de 200). Este trabajo se centra en los sistemas empotrados de altas prestaciones (moviles de ultima generacion, pda’s, reproductores portatiles, etc.). Estos dispositivos tienen que hacer frente a una serie de restricciones que anteriormente no eran un problema. Es necesario un alto rendimiento (para satisfacer las necesidades del usuario), a la vez que un consumo reducido de energia (para alargar la duracion de las baterias) y un uso moderado de memoria (para abaratar el coste del dispositivo final). Los sistemas empotrados de altas prestaciones son de naturaleza dinamica y tienen un alto grado de impredecibilidad. Para hacer frente a estas caracteristicas, los sistemas se dotan de un mecanismo que gestiona los accesos a la memoria, el llamado gestor de memoria dinamica. En este trabajo se plantea un innovador flujo de diseno para disenar gestores de memoria dinamica optimizados para el sistema en estudio. A partir de un estudio del perfil de las ejecuciones tipicas del dispositivo, de forma automatica y sin apenas intervencion por parte del disenador se crea un gestor para la memoria dinamica que optimiza la energia consumida, el rendimiento del sistema y el uso de memoria del mismo. Para la optimizacion se utilizan algoritmos de gramatica evolutiva. Nuestros resultados experimentales muestran que se consigue una reduccion del consumo de energia de hasta un 70%, una reduccion de la memoria usada de hasta un 20% y un aumento del rendimiento de hasta un 56% en comparacion con sistemas de proposito general utilizados en este tipo de sistemas. Estos resultados se consiguen reduciendo el tiempo necesario para disenar el gestor hasta 25 veces respecto del tiempo necesario para el diseno de gestores en anteriores metodologias. Todo el sistema desarrollado es paralelizable, pudiendo reducir aun mas el tiempo de computo (hasta en un 25% mas). Finalmente se ha realizado un estudio sobre la posibilidad de anadir fiabilidad al sistema haciendo uso del gestor de memoria, concluyendo que con las metodologias planteadas se puede reducir la probabilidad de fallos en memoria, a la vez que se mantienen o incluso mejoran las principales metricas para los sistemas empotrados. [ABSTRACT] The embedded systems are specialized computer systems that are part of a larger system or machine. They are deployed by the billions each year in myriad applications and we can find it everywhere (a car usually has more than 200 embedded systems). This research work is focused in the high performance embedded systems (mobile phones, pda’s, multimedia players, etc.) that in the last years had became to be widely used in our lives. The design of these systems is difficult because they must meet some constraints, mainly in performance (to offer a quick response to the user), in energy consumption (because of the battery) and in the final memory used (to reduce the final costs of the system). The main problem of these systems is the dynamic nature and the unpredictability of the inputs, due to the high user interaction. These features make necessary the addition of extra mechanisms that manage the unpredictable memory accesses. These mechanisms are the dynamic memory managers. Usually adaptations of general purpose dynamic memory managers or ad-hoc dynamic memory managers have been used in the embedded systems, but or they do not meet all the constraints aforementioned or they require a really long design process. We present a new and innovative design flow in this research work. It automatically, i.e. without designer interaction, and in a fast way creates a dynamic memory manager that optimizes the system in energy consumption, in performance and in memory usage. To this end we use a profile of the typical applications run in the device and grammatical evolutionary optimization algorithms. Our experimental results show that using our methodologies it is possible to obtain improvements in performance of 56%, reductions in memory used of 20% and reductions in energy consumption of 70% in contrast to general purpose approaches. Furthermore, the computational design time necessary is 25 times less than previous methodologies. Since the system is suitable to be parallelized, it is possible to reduce still more the time needed to design dynamic memory managers (in a 25% less time). Finally we have done an analysis to add reliability to the final system using the dynamic memory managers. The conclusions obtained are that it is possible to reduce the probability of errors in memory maintaining or even improving the main metrics, performance, energy consumption and memory usage.