Intermittent power failures can lead to big problems for low-power embedded computer systems, but a new class of energy-harvesting systems don’t require a battery or a power outlet to operate.
Brandon Lucia, an assistant professor of electrical and computer engineering at Carnegie Mellon University, and PhD student Alexei Colin have created the first programming language designed to build reliable software for intermittent, energy-harvesting computers. Their work was presented today at the 2016 SPLASH conference in Amsterdam.
“Energy is not always available in the environment for a device to harvest,” said Lucia. “Intermittent operation makes it difficult to build applications because existing software programming languages – and programmers themselves – assume that energy is a continuously available resource.”
The new language, called Chain, asks an application developer to define a set of computational tasks that compute and exchange data through a novel way of manipulating the computer’s memory called a channel. Through this new programming language, tasks are executed despite arbitrary power failures.
Channel-based memory is critical to Chain’s ability to avoid software errors even during power failures. It ensures a computational task has an intact version of the data it needs once the power resumes. Since Chain doesn’t rely on a conventional approach like checkpointing, restarting a Chain-based program after power failure has almost no time cost.
The language has potential uses in future Internet of Things applications, wearables, and ingestible medical devices.
“Chain provides important reliability guarantees in a familiar and flexible programming interface that is well-positioned to be the foundation for today’s and future energy-harvesting applications,” Lucia said.
Lucia, Colin, and collaborator Alanson Sample of Disney Research Pittsburgh are set to push Chain into real-world deployment early next year. Software written in Chain will run onboard a KickSat nanosatellite in low-Earth orbit. Once in orbit, the satellites will use tiny solar panels to harvest energy, powering them to collect and process sensor data and send information back to Earth.
Read more here: www.pddnet.com/news/2016/11/energy-harvesting-computer-systems-get-power-environment