Multithreaded Signal-to-Memory Mapping Algorithm for Embedded Multidimensional Signal Processing

Many signal processing systems, particularly in the multimedia and telecommunication domains, are synthesized to execute data-dominated applications. Their behavior is described in a high-level programming language, where the code is typically organized in sequences of loop nests and the main data structures are multidimensional arrays. This paper proposes a memory management algorithm for mapping multidimensional signals (arrays) to physical memory blocs.

The advantages of this novel technique are the following: (a) it can be applied to multilayer memory hierarchies, which makes it particularly useful in embedded systems design, (b) it provides metrics of quality for the overall memory allocation solution: the minimum data storage of each multidimensional signal in the behavioral specification (therefore, the optimal memory sharing between the elements of same arrays), as well as the minimum data storage for the entire specification (therefore, the optimal memory sharing between all the array elements and scalars in the code), (c) it is well-suited to a dynamic multithreading implementation, which makes it computationally efficient.