Energy-harvesting computer systems are an emerging class of technology that does not require a battery or a power outlet to operate. Instead these computers use energy from the environment.
The problem is that harvested energy sources are weak and lead to power being only supplied intermittently with power failures and unreliable behavior common in the emerging technology.
Researchers at Carnegie Mellon University are trying to improve the way harvested energy computers work by improving their reliability. They have created what they claim is the first programmable language specifically designed to build reliable software for intermittent, energy-harvesting computers.
Dubbed Chain, the programmable language allows developers to define a set of computational tasks that compute and exchange data by manipulating the system’s memory. This allows the programmable language to execute the tasks correctly despite arbitrary power failures.
“When power is not continuously available, power failures disrupt the software’s execution, often leading to unrecoverable errors,” says Brandon Lucia, assistant professor of electrical and computer engineering at Carnegie Mellon. “Chain solves this problem by requiring computational tasks in the program to use a novel channel-based memory abstraction that ensures tasks complete without error.”
Key to Chain’s ability to avoid software errors is channel-based memory. These channels allow tasks to have an intact version of the data it needs when power resumes, regardless of when power fails. Restarting a Chain program after a failure has virtually zero time cost because it does not use a conventional approach, such as memory checkpointing, researchers say. This ability could make energy harvesting an essential technology for future Internet of Things devices or implantable or ingestible medical devices.
The technology will be deployed in the real world next year as Carnegie Mellon is working with Disney Research and satellite company KickSat to launch two tiny, postage stamp-sized satellites that will run the energy-harvesting programmable language. Once in orbit, these satellites will use tiny solar panels to harvest solar energy and then use that energy to collect and process data to send back to Earth.
“The potential benefit of reliable energy-harvesting computer systems is far-reaching,” says Lucia. “Small satellites are proliferating and the space industry itself is expanding. If we can guarantee that even tiny, energy-harvesting satellites operate without interruption, we can make it easier to conduct other scientific research in space. Further out, we may even see future applications like extraterrestrial natural resource discovery relying on this technology.”