One of the primary challenges in embedded system design is designing the memory hierarchy and restructuring the application to take advantage of it. This task is particularly important for embedded image and video processing applications that make heavy use of large multidimensional arrays of signals and nested loops. In this paper, we show imple reuse vector/matrix abstraction can provide compiler with useful information in a concise form. Using this information, compiler can either adapt application to an existing memory hierarchy or can come up with a memory hierarchy. Our initial results indicate that the compiler is very successful in both optimizing code for a given memory hierarchy and designing a hierarchy with reasonable performance/size ratio. Categories and Subject Descriptors B.3 [Hardware]: Memory Structures; D.3.4 [Programming Languages]: Processors--Compilers;Optimization General Terms Design, Experimentation, Performance Keywords Data Reuse, Scratch Pad Memory, Memory ...
Mahmut T. Kandemir, Alok N. Choudhary