Disney Optimizes Software for EH-Powered Devices

April 03, 2016 by Jeff Shepard

Energy-autonomous computing devices have the potential to extend the reach of computing to a scale beyond either wired or battery-powered systems. However, these devices pose a unique set of challenges to application developers who lack both hardware and software support tools. Energy harvesting (EH) devices experience power intermittence which causes the system to reset and power-cycle unpredictably, tens to hundreds of times per second. This can result in code execution errors that are not possible in continuously-powered systems and cannot be diagnosed with conventional debugging tools such as JTAG and/or oscilloscopes.

Today, in a paper titled, “An Energy-interference-free Hardware-Software Debugger for Intermittent Energy-harvesting Systems,” at the ACM International Conference on Architectural Support for Programming Languages and Operating Systems authors from Disney Research and Carnegie Mellon University proposed the Energy-interference-free Debugger, a hardware and software platform for monitoring and debugging intermittent systems without adversely affecting their energy state. The Energy-interference-free Debugger re-creates a familiar debugging environment for intermittent software and augments it with debugging primitives for effective diagnosis of intermittence bugs.

An evaluation of the Energy-interference-free Debugger (EDB) quantifies its energy-interference-freedom and shows its value in a set of debugging tasks in complex test programs and several real applications, including RFID code and a machine-learning-based activity recognition system.

Intermittence can cause correct software to misbehave. Intermittence-induced jumps back to a prior point in an execution inhibit forward progress and may repeatedly execute code that should not be repeated. Intermittence can also leave memory in an inconsistent state that is impossible in a continuously powered execution. These failure modes represent a new class of intermittence bugs. To avoid intermittence-related malfunction, code must correctly leverage non-volatile memory. Writing intermittence-safe code for an energy-harvesting application or runtime system requires the programmer to understand, find, and fix intermittence bugs.

This paper addresses the lack of basic debugging support for intermittent systems with the ED), a complement of hardware and software for energy-interference-free monitoring and manipulation of intermittent devices. EDB can passively monitor a target device for its energy level, I/O events (e.g., I2C, RFID), and program events. Monitoring with EDB, unlike with conventional debuggers, is energy-interference-free, because it is designed to be electrically isolated from the target device. EDB also provides a capability to actively manipulate the amount of energy stored on the device. Using this mechanism, EDB can compensate for the energy consumed by arbitrarily expensive tasks, effectively eliminating their impact on the energy state experienced by the program.

Using its ability to manipulate a target device’s energy, EDB also supports active debugging tasks with energy-interference-freedom, including assertions, instrumentation, tracing, and interactive debugging. The authors evaluated their prototype of EDB, including custom hardware, showing that it is energy-interference-free in both its passive and active tasks, and that it provides invaluable debugging information that is out of reach using existing tools and techniques. They conclude stating, “We see EDB and its energy-interference-freedom as a key part of future support for reliability in intermittent energy-harvesting devices.”