MEMMU logo

Memory Expansion for MMU-Less Embedded Systems

Northwestern University
Electrical Engineering and Computer Science
Lan S. Bai
Lei Yang
Prof. Robert Dick

Summary Download Publications Contact Related Projects


MEMMU is an automated runtime memory compression technique for MMU-less embedded systems. It provides application developers with access to more usable RAM and requires no or minor changes to application code and no changes to hardware. MEMMU is composed of a runtime library and LLVM passes for compile-time transformation. The runtime library contains memory compression and management functions. The LLVM passes transform the application to use the MEMMU runtime library functions for memory access. It also applies compile-time memory access optimizations. MEMMU can be used on MMU-less embedded systems that do not have hardware virtual memory support, such as TelosB wireless sensor node. Our experiments using Telosb showed that MEMMU is often capable of expanding usable memory by up to 50% with less than 10% performance penalty on wireless sensor applications. It presently supports applications written in C and nesC languages. It is freely available for academic and non-profit use. MEMMU flow diagram


The version below contains source code of MEMMU runtime library written in C, MEMMU LLVM passes written in C++, and a Python script to automatically apply the transformation flow of MEMMU on original program.


Page maintained by Lan Bai.