Timely Execution on Intermittently Powered Batteryless Sensors

Mayfly

Posted by Jackie on April 16, 2019

Timely Execution on Intermittently Powered Batteryless Sensors





Background

Battery-free energy harvesting sensors Irregular power supply and low energy storage result in frequent power failures, and reliable operation in frequent failure situations is a challenge.Because power down is unpredictable, we can use Flash or FRAM to solve this problem. However, each of these methods ignores the fact that an application’s success or failure often depends on when tasks are executed and when data are collected, processed, and communicated. Application designers often understand these constraints (albeit imperfectly), but lack effective tools for communicating them in code.Also, Timekeeping is Complex. Real data often ages: When the sensor collects the data and is about to process it, this time the power is turned off. When the power is available, the data may be old, so we need to add the time value to the program, but this increases the power consumption and is complicated.In batteryless sensors, it is difficult to meet stringent timing requirements because the sensors are present in an unpredictable energy environment.When devices operate intermittently, programmers must add code to track when data are generated, when data have expired, and when it is advantageous to gather more data.Current languages ignore the timeliness property of data caused by intermittent execution, leaving the developer with few ways to strongly and safely express time constraints of data.


Contributions

The Mayfly language is a declarative, graph based programming language that enables developers to focus on application policy, sensing goals, and timing of sensing tasks while reducing the cognitive burden of intermittent programming.Mayfly is a coordination language and runtime built on top of Embedded-C that combines intermittent execution fragments to form coherent sensing schedules—maintaining forward progress, data consistency, data freshness, and data utility across multiple power failures. Mayfly makes the passing of time explicit, binding data to the time it was gathered, and keeping track of data and time through power failures.


Paper

Paper 👉Paper Pages