Optimizing L1 cache for embedded systems through grammatical evolution

Nowadays, embedded systems are provided with cache memories that are large enough to influence in both performance and energy consumption as never occurred before in this kind of systems. In addition, the cache memory system has been identified as a component that improves those metrics by adapting its configuration according to the memory access patterns of the applications being run. However, given that cache memories have many parameters which may be set to a high number of different values, designers are faced with a wide and time-consuming exploration space. In this paper, we propose an optimization framework based on Grammatical Evolution (GE) which is able to efficiently find the best cache configurations for a given set of benchmark applications. This metaheuristic allows an important reduction of the optimization runtime obtaining good results in a low number of generations. Besides, this reduction is also increased due to the efficient storage of evaluated caches. Moreover, we selected GE because the plasticity of the grammar eases the creation of phenotypes that form the call to the cache simulator required for the evaluation of the different configurations. Experimental results for the Mediabench suite show that our proposal is able to find cache configurations that obtain an average improvement of 62 % versus a real world baseline configuration.

[1]  Bharadwaj S. Amrutur,et al.  Efficient cache exploration method for a tiled chip multiprocessor , 2012, 2012 19th International Conference on High Performance Computing.

[2]  Xuecheng Zou,et al.  Dynamically Reconfigurable Cache for Low-Power Embedded System , 2007, Third International Conference on Natural Computation (ICNC 2007).

[3]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[4]  David A. Patterson,et al.  Computer Architecture, Fifth Edition: A Quantitative Approach , 2011 .

[5]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[6]  Conor Ryan,et al.  Grammatical Evolution , 2001, Genetic Programming Series.

[7]  Weixun Wang,et al.  Dynamic Reconfiguration of Two-Level Caches in Soft Real-Time Embedded Systems , 2009, 2009 IEEE Computer Society Annual Symposium on VLSI.

[8]  Ann Gordon-Ross,et al.  Phase-based cache reconfiguration for a highly-configurable two-level cache hierarchy , 2008, GLSVLSI '08.

[9]  Anthony Brabazon,et al.  Evolving Behaviour Trees for the Mario AI Competition Using Grammatical Evolution , 2011, EvoApplications.

[10]  Michael O'Neill,et al.  Grammatical evolution - evolutionary automatic programming in an arbitrary language , 2003, Genetic programming.

[11]  Sanjay Ranka,et al.  Dynamic cache reconfiguration and partitioning for energy optimization in real-time multi-core systems , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[12]  Maurizio Palesi,et al.  Multi-objective design space exploration using genetic algorithms , 2002, Proceedings of the Tenth International Symposium on Hardware/Software Codesign. CODES 2002 (IEEE Cat. No.02TH8627).

[13]  Sri Parameswaran,et al.  Finding optimal L1 cache configuration for embedded systems , 2006, Asia and South Pacific Conference on Design Automation, 2006..

[14]  Anthony Brabazon,et al.  Foundations in Grammatical Evolution for Dynamic Environments , 2009, Studies in Computational Intelligence.

[15]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[16]  Michael O'Neill,et al.  Implementing an intuitive mutation operator for interactive evolutionary 3D design , 2010, IEEE Congress on Evolutionary Computation.

[17]  Bruce Jacob,et al.  Instruction-level power dissipation in the Intel XScale embedded microprocessor , 2005, IS&T/SPIE Electronic Imaging.

[18]  Josefa Díaz,et al.  A methodology to automatically optimize dynamic memory managers applying grammatical evolution , 2014, J. Syst. Softw..

[19]  Michael O'Neill,et al.  Biologically Inspired Algorithms for Financial Modelling (Natural Computing Series) , 2005 .

[20]  Todd M. Austin,et al.  The SimpleScalar tool set, version 2.0 , 1997, CARN.

[21]  Anthony Brabazon,et al.  GEVA: grammatical evolution in Java , 2008, SEVO.

[22]  Scott A. Mahlke,et al.  Trimaran: An Infrastructure for Research in Instruction-Level Parallelism , 2004, LCPC.

[23]  Afrin Naz,et al.  Making a case for split data caches for embedded applications , 2006, SIGARCH Comput. Archit. News.

[24]  Ann Gordon-Ross,et al.  Dynamic Cache Reconfiguration for Soft Real-Time Systems , 2012, TECS.

[25]  Anthony Brabazon,et al.  Biologically inspired algorithms for financial modelling , 2006, Natural computing series.

[26]  Julian Togelius,et al.  Evolving levels for Super Mario Bros using grammatical evolution , 2012, 2012 IEEE Conference on Computational Intelligence and Games (CIG).

[27]  Anthony Brabazon,et al.  Evolving a Ms. PacMan Controller Using Grammatical Evolution , 2010, EvoApplications.

[28]  Luca P. Carloni,et al.  Supervised design space exploration by compositional approximation of Pareto sets , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[29]  Abel G. Silva-Filho,et al.  An Optimization Mechanism Intended for Two-Level Cache Hierarchy to Improve Energy and Performance Using the NSGAII Algorithm , 2008, 2008 20th International Symposium on Computer Architecture and High Performance Computing.