Optimization of memory banking in embedded multidimensional signal processing applications

Hierarchical memory organizations are used in embedded systems to reduce energy consumption and improve performance by assigning the frequently-accessed data to the low levels of memory hierarchy. Within a given level of hierarchy, energy and access times can be further reduced by memory banking.

This paper addresses the problem of banking optimization, presenting a dynamic programming approach that takes into account all three major design objectives — energy consumption, performance, and die area, letting the designers decide on their relative importance for a specific project. The time complexity is independent of the size of the storage access trace and of the memory size — a significant advantage in terms of computation speed when these two parameters are large.