We present AutoDVS, a dynamic voltage scaling (DVS) system for hand-held computers. Unlike extant DVS systems, AutoDVS distinguishes common, course-grain, program behavior and couples forecasting techniques to make accurate predictions of future behavior. AutoDVS uses these predictions in combination to guide dynamic voltage scaling. AutoDVS estimates periods of user interactivity, user non-interactivity (think time), and computation per-program and system wide to ensure quality of service while reducing energy consumption.
We describe our implementation of AutoDVS which consists of a set light-weight, Linux, kernel modules and user library routines for the iPAQ hand-held computer. We evaluate AutoDVS using real user workloads of iPAQ software that consist of interactive and soft-real time tasks executing alone and concurrently. Our results indicate that AutoDVS decreases energy consumption significantly without negatively impacting user perception of system performance.