Dynamic Power Management for Streaming Data Nathaniel Pettis, Le Cai, and Yung-Hsiang Lu ISLPED’04, August 9-11, 2004 指導教授: Chia-Lin Yang Reporter: Po-Liang Wu
Outline Introduction Problem Description Mathematical Solution Experiments Conclusion
Introduction Currently, many devices have several power consumption states, such as idle, sleep, turned off. Dynamic power management (DPM) changes a component’s power states to save power. However, change power states may introduce extra overheads both on performance and energy
Introduction This paper inserts a buffer between producer and consumer to achieve longer idle period and reduce power consumption. Producer Buffer Consumer Disk Decoder RAM
Outline Introduction Problem Description Mathematical Solution Experiments Conclusion
Problem Description constant Producer Wake up Producer Sleep Producer Wake up Producer Sleep constant variable α: the rate of storing data into the buffer β: the rate of removing data from the buffer Q: Maximum data can be stored in the buffer λ: awakening delay w: awakening point
Problem Description In reality, consuming rate β may vary, so this paper models β as a random variable. f(β): the density function of β Let γ be the expected value of β, We assume that α > γ; otherwise, the buffer will eventually underflow.
Energy Penalty for Underflow Awakening point w size: Large: the buffer consumes more power Small: the buffer will underflow easily This paper qualifies underflow by assigning an energy penalty when underflow occurs. The underflow occurs only if the consumed data exceeds awakening data w, that is λβ > w.
Energy Penalty for Underflow Let ρ be the energy penalty for each MB of underflowed data. Let p(w) be the penalty energy: x: data consuming rate f(x): consuming rate probability amount of data overflow
Outline Introduction Problem Description Mathematical Solution Experiments Conclusion
Mathematical Solution α: producing rate γ: average consuming rate w: awakening point (w- λγ)+(α-γ)t1 w- λγ average amount of data Q = (w- λγ)+(α-γ)t1 Average data during t1: [(w- λγ) + (w- λγ+(α-γ)t1)] / 2
Mathematical Solution System energy consumption in one period = producer energy + buffer energy + underflow penalty Producer energy: pp*t1+k, k is a constant Buffer energy: Underflow penalty: Power consumption: energy consumption/(t1+t2)
Mathematical Solution Let S be the amount of data is produced in a period, S = α*t1 The expected length of one period t1+t2 = S/γ Power consumption: We have two variables, S and w, to minimize average power in one period. We take partial derivatives with respect to S and w to derive optimal value S*, w* and Q*.
Mathematical Solution When pb is large, we should decrease w*. When ρ increases, w* should increase to avoid underflowing. When γ is large, w* should increase to keep more data. α: producing rate γ: average consuming rate w: awakening point ρ: energy penalty per MB
Outline Introduction Problem Description Mathematical Solution Experiments Conclusion
Experiments Configurations Application MPEG-1 video codec Consuming rate (β) 1.5 Mbps +- 50% with uniform distribution Producing rate (α) 1.824 MB/s Awakening delay (λ) 0.238 s Energy penalty (ρ) 10 J/MB Producer power consumption (pp) 0.221 W Buffer power consumption (pb) 0.012 W/MB Optimal awakening point (w*) 44.6 kB Optimal buffer size (Q*) 2.06 MB
Experiment Results – Buffer vs. Unbuffered The power saving is 74.5% if we can turn off each byte of buffer. The power saving is 73.6% if we use 256KB as the unit of buffer. For MPEG-2 video, the power saving is 34% State-changing overhead Energy Reduction
Experiment Results – Buffer Size and Awakening Point When the awakening point is less the w*, power savings can be achieved by increasing the buffer size. w*
Outline Introduction Problem Description Mathematical Solution Experiments Conclusion
Conclusion This paper presents a method to calculate optimal buffer size and awakening point for streaming data to reduce power consumption. The results shows over 74% power reduction for MPEG-1 video and 34% for MPEG-2 video.
Q & A Is it reasonable to assume that each unit of buffer can be turned? Can the overhead of turning on/off the buffer be neglected? If we have the knowledge of working load, can we adaptively change the buffer size or change the device power mode appropriately?
Thank You !
Examples – DPM Run Idle Sleep 10us 90us 160ms P=400mW P=50mW P=0.16mW