Northwestern University and NEC Labs AmericaCRAMES Memory compression technique doubles storage in embedded systems, such as cell phones
Small mobile devices are inherently limited in the amount of memory they can carry, thereby restricting what applications they can run.
"You will always have limited storage on mobile devices, because you want the device to be small and portable and very power-efficient," says Craig Mathias, principal at Farpoint Group, a wireless and mobile consultancy in Ashland, Mass., and a Computerworld.com columnist. "Memory compression can help in that regard, multiplying the efficiency of the storage you do have."
This summer, Tokyo-based NEC Corp. will release a new software memory compression technique called CRAMES (Compressed RAM for Embedded Systems) on its N904i cell phones. CRAMES more than doubles memory capacity while limiting power drain and performance loss to only 2.7%.
Memory compression technique more than doubles usable storage in embedded systems, such as cell phones.
The company's research arm, NEC Laboratories America Inc., began researching compression technologies eight years ago. In 2004, lab consultant Haris Lekatsas and department head Srimat Chakradhar decided to explore integrating compression into the operating system. CRAMES was developed by Lei Yang, a doctoral student at Northwestern University, along with her academic adviser, assistant professor Robert P. Dick.
"The idea was to transparently compress and decompress selected regions of memory to drastically reduce the memory footprint of embedded applications," says Dick. "By carrying out online compression and decompression entirely in software, hardware platform redesign could be avoided."
Dick says researchers had previously tried compressing software but rejected that approach because it drained power and hurt performance. The Northwestern team aimed to find a way to run applications that required more memory, but without the drain.
To manage compressed memory, the development team decided to use the Linux kernel's swapping mechanism to determine which pages should be compressed. Initially, they were able to reduce the drain to 10% using the established LZO compression algorithm. To further boost performance, the team developed a new compression algorithm called PBPM (Partial Based Partial Match). Other refinements include compressing data only when memory is low, modifying the memory management technology to reduce fragmentation and modifying the Linux kernel so it can eliminate defunct processes when necessary. Together, these steps held power drain and performance loss to 2.7%.
"Embedded system designers and especially designers of cellular phones and [PDAs] need to pack more functionality on the devices every year to remain competitive," says Dick. CRAMES has allowed NEC to pack in more functionality without waiting for the next cycle of hardware design to catch up with the new increasing demands on memory."