Flikker: saving DRAM refresh-power through critical data partitioning

  • Authors:
  • Song Liu;Karthik Pattabiraman;Thomas Moscibroda;Benjamin G. Zorn

  • Affiliations:
  • Northwestern University, Evanston, IL, USA;University of British Columbia, Vancouver, BC, Canada;Microsoft Research, Redmond, WA, USA;Microsoft Research, Redmond, WA, USA

  • Venue:
  • Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Energy has become a first-class design constraint in computer systems. Memory is a significant contributor to total system power. This paper introduces Flikker, an application-level technique to reduce refresh power in DRAM memories. Flikker enables developers to specify critical and non-critical data in programs and the runtime system allocates this data in separate parts of memory. The portion of memory containing critical data is refreshed at the regular refresh-rate, while the portion containing non-critical data is refreshed at substantially lower rates. This partitioning saves energy at the cost of a modest increase in data corruption in the non-critical data. Flikker thus exposes and leverages an interesting trade-off between energy consumption and hardware correctness. We show that many applications are naturally tolerant to errors in the non-critical data, and in the vast majority of cases, the errors have little or no impact on the application's final outcome. We also find that Flikker can save between 20-25% of the power consumed by the memory sub-system in a mobile device, with negligible impact on application performance. Flikker is implemented almost entirely in software, and requires only modest changes to the hardware.