Buffer and Register Allocation for Memory Space Optimization

  • Authors:
  • Youcef Bouchebaba;Bruno Girodias;Fabien Coelho;Gabriela Nicolescu;El Mostapha Aboulhamid

  • Affiliations:
  • Génie Informatique, Ecole Polytechnique de Montréal, Montréal, Canada H3C 3A7;Génie Informatique, Ecole Polytechnique de Montréal, Montréal, Canada H3C 3A7;ENSMP/CRI, Fontainebleau, France 77305;Génie Informatique, Ecole Polytechnique de Montréal, Montréal, Canada H3C 3A7;Université de Montréal, Montréal, Canada H3C 357

  • Venue:
  • Journal of VLSI Signal Processing Systems
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

In today's embedded systems, memory hierarchy is rapidly becoming a major factor in terms of power, performance and area. This is especially true for embedded multimedia applications using temporary multi-dimensional arrays that are typically used to store intermediate results during multimedia processing. In this paper, we propose a new technique that optimizes the use of the cache and the registers. It consists in combining buffer and register allocation to reduce the size of the temporary arrays. Firstly we use the concept of live data to replace each array by a buffer of lower size. Then we replace references to these buffers by registers. The buffer allocation step keeps only useful data in memory and the register allocation step allows taking advantage of data reuse in internal loops. Codes considered in this paper are multimedia applications structured as a sequence of loop nests. The experiments are made on Unix environment and on the StepNP simulator (MPSoC platform of STMicroelctronics). They show that our technique yields significant reduction of the number of data cache and TLB misses.