Building NVRAM-Aware Swapping Through Code Migration in Mobile Devices

Kan Zhong, Duo Liu*, Lingbo Long, Jinting Ren, Yang Li, Edwin Hsing Mean Sha

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

9 Scopus citations

Abstract

Mobile applications are becoming increasingly feature-rich and powerful, but also dependent on large main memories, which consume a large portion of system energy, especially for devices equipped with 4/6 GB DRAM. Swapping inactive DRAM pages to byte-addressable, non-volatile memory (NVRAM) is a promising solution to this problem. However, most NVRAMs have limited write endurance and the current victim pages selecting algorithm does not aware it. Therefore, to make it practical, the design of an NVRAM based swapping system must also consider endurance. In this paper, we target at prolonging the lifetime of NVRAM based swap area in mobile devices by reducing the write activities to NVRAM based swap area. Different from traditional wisdom, such as wear leveling and hot/cold data identification, we propose to build a system called nCode, which exploits the fact that code pages are easy to identify, read-only, and therefore a perfect candidate for swapping. Utilizing NVRAM's byte-addressability, we support execute-in-place (XIP) of the code pages in the swap area, without copying them back to DRAM based main memory. Experimental results based on the Google Nexus 5 smartphone show that nCode can effectively prolong the lifetime of NVRAM under various workloads.

Original languageEnglish
Article number7944530
Pages (from-to)3089-3099
Number of pages11
JournalIEEE Transactions on Parallel and Distributed Systems
Volume28
Issue number11
DOIs
StatePublished - 1 Nov 2017
Externally publishedYes

Keywords

  • Smartphone
  • application relaunching delay
  • non-volatile memory
  • swapping

Fingerprint

Dive into the research topics of 'Building NVRAM-Aware Swapping Through Code Migration in Mobile Devices'. Together they form a unique fingerprint.

Cite this