Using Empirical Science to Engineer Systems: Optimizing Cache for Power and Performance

The design process of modern embedded systems invariably places a large emphasis on power demands and system performance. Engineers seeking to optimize will inevitably look to adjust the microprocessor memory hierarchy. To provide adequate coverage for an extensive set of applications designers need to investigate as many cache parameter settings as possible. In this paper we describe the development of a methodology able to explore a vast design space. This methodology relies on the statistically based field of Design of Experiments (DOE) to efficiently navigate through these endless possibilities, and take on the chore of multiple objective optimization. We then also detail a tactic to determine an optimal set of configurations which will accommodate multiple applications on the same platform simultaneously. The intention here is not just to solve the problem of cache tuning, but to establish some of the structure necessary for the long overdue integration of the use of empirically based techniques, alongside other well-established methods, in the design and testing of systems.

[1]  Frank Vahid,et al.  Soft-core Processor Customization using the Design of Experiments Paradigm , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[2]  A. Molnos,et al.  Data Cache Optimization in Multimedia Applications , 2003 .

[3]  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).

[4]  Graham R. Nudd,et al.  Analytical Modeling of Set-Associative Cache Behavior , 1999, IEEE Trans. Computers.

[5]  R. H. Myers,et al.  Response Surface Methodology: Process and Product Optimization Using Designed Experiments , 1995 .

[6]  Frank Vahid,et al.  Configurable cache subsetting for fast cache tuning , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[8]  Nikil D. Dutt,et al.  Automatic tuning of two-level caches to embedded applications , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[9]  Frank Vahid,et al.  Cache configuration exploration on prototyping platforms , 2003, 14th IEEE International Workshop on Rapid Systems Prototyping, 2003. Proceedings..

[10]  Margaret Martonosi,et al.  Wattch: a framework for architectural-level power analysis and optimizations , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[11]  Douglas C. Montgomery,et al.  Response Surface Methodology: Process and Product Optimization Using Designed Experiments , 1995 .

[12]  Ulrich Meyer,et al.  Algorithms for Memory Hierarchies , 2003, Lecture Notes in Computer Science.

[13]  Margaret J. Robertson,et al.  Design and Analysis of Experiments , 2006, Handbook of statistics.

[14]  Frank Vahid,et al.  Platune: a tuning framework for system-on-a-chip platforms , 2002, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[15]  Jop F. Sibeyn,et al.  Algorithms for Memory Hierarchies: Advanced Lectures , 2003 .

[16]  Frank Vahid,et al.  A self-tuning cache architecture for embedded systems , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[17]  Ravi Shankar,et al.  Cache optimization for mobile devices running multimedia applications , 2004, IEEE Sixth International Symposium on Multimedia Software Engineering.