Mobile, resource-constrained, battery-powered devices
have emerged as key access points to the world\u27s digital
infrastructure. To enable our understanding of the
performance of these devices, we must be able to
efficiently collect accurate profile data from these
devices after they are deployed in the field.
Moreover, understanding the full-system power and energy behavior
of these systems for real programs is vital if users
are to accurately characterize, model, and develop
effective techniques for extending battery life.
Unfortunately, extant approaches to measuring and characterizing
power and energy consumption focus on high-end processors,
do not consider the complete device, employ inaccurate (program-only)
simulation, rely on inaccurate, course-grained battery level
data from the device, or employ expensive power measurement
tools that are difficult to share across research groups and students.
To address these issues, we developed remote performance monitor (RPM).
The first component of RPM is an efficient technique for
collecting accurate sample-based program profiles. The key
to the efficacy of this technique is that we identify when
to sample using the repeating patterns in program execution, phases.
To enable fine-grained, full-system characterization of embedded
computers, we couple and unify phase-aware profiling, hardware
performance monitoring, and power and energy measurement within RPM.
RPM consists of a tightly coupled set of components which
(1) control lab equipment for power measurements and analysis, (2)
configure target system characteristics at run-time (such as CPU and memory
bus speed), (3) collect target system data using on-board hardware performance monitors (HPMs) and (4) provide a remote access interface.
Users of RPM can submit and configure experiments that execute
programs on the RPM target device (currently a Stargate
sensor platform that is very similar to an HP iPAQ)
to collect very accurate power, energy, and CPU performance data
with high resolution