Hardware/software techniques for improving cache performance in embedded systems


Embedded Software Forum of the Design, Automation and Test in Europe Conference, Munich, Germany, 01 March 2003, pp.387-401 identifier

  • Publication Type: Conference Paper / Full Text
  • Volume:
  • City: Munich
  • Country: Germany
  • Page Numbers: pp.387-401
  • Çanakkale Onsekiz Mart University Affiliated: No


The widening gap between processor and memory speeds renders data locality optimization a very important issue in data-intensive embedded applications. Throughout the years hardware designers and compiler writers focused on optimizing data cache locality using intelligent cache management mechanisms and program-level transformations, respectively. Until now, there has not been significant research investigating the interaction between these optimizations. In this work, we investigate this interaction and propose a selective hardware/compiler strategy to optimize cache locality for integer, numerical (array-intensive), and mixed codes. In our framework, the role of the compiler is to identify program regions that can be optimized at compile time using loop and data transformations and to mark (at compile-time) the unoptimizable regions with special instructions that activate/deactivate a hardware optimization mechanism selectively at run-time. Our results show that our technique can improve program performance by as much as 60% with respect to the base configuration and 17% with respect to non-selective hardware/compiler approach.