Abstract
A video player may prefetch video frames into buffer to allow disk to go into standby mode, which involves complete spindown of the spindle motor. Frequent spindowns, however, affect disk longevity, so it is essential to limit the number of times that disk enters standby mode. We present the design and implementation of a data prefetching scheme that minimizes disk power consumption for a limited number of disk spindowns. We first present a data prefetching model that fully utilizes the available buffer space and analyze how power consumption is affected by the bit-rates of the frames in the buffer. We then formulate the problem that determines when the disk should enter standby mode and provide an optimal solution using dynamic programming. We implemented our algorithm in MPlayer running on the Linux 2.6. Experimental results show that it reduces disk energy consumption by up to 59%.