You are here:

Home Research Memory architecture aware compilation



Memory architecture aware compilation

During the recent years, the speed of processing has been increasing significantly faster than the speed of memories. Therefore, many high-performance applications are typically constrained by the speed of the memory system. This effect has been called the “memory wall”: the path toward higher performances is blocked by the limited speed of memories.

Problems resulting from this fact can partially be reduced by exploiting the principle of locality and memory hierarchies. According to the principle of locality, real applications do typically exhibit some locality in the way in which they access memory. Memory hierarchies contain small, fast memories as well as larger, slower memories. The “trick” is to map hot spots of applications to the small memories such that the memory hierarchy appears to be a single large and fast memory. Typically, caches are used in such hierarchies. For embedded systems, caches come with some disadvantages: their timing behaviour is difficult to predict and may exhibit a large variance. Also, caches are power-hungry. We proposed using scratchpad memories. Such memories behave like a kind of software-managed cache, replacing or complementing the usual hardware-managed cache. Our goal is to find good mapping strategies for such scratchpad-memories.

In a more general context, we try to find transformations of embedded software exploiting the memory architecture in general. Toward this end, we make the memory architecture visible to optimization tools. These tools are then expected to modify the software such that improvements in terms of (average or worst case) execution times, energy consumption or memory footprints are achieved. The vision is to enable any software designer to optimize his/her software for the memory architecture at hand.

Current project:

The work described above is our focus in the Mnemee project, funded by the European Commission through the 7th framework programme. The project provides the resources for actual implementation work at Informatik Centrum Dortmund e.V. in cooperation with researchers at TU Dortmund.