Compiler Support for Long-life, Low-overhead Intermittent Computation on Energy Harvesting Flash-based Devices

With the advent of energy harvesters, supporting fast and efficient computation on energy harvesting devices has become a key challenge in the field of energy harvesting on ubiquitous devices. Computation on energy harvesting devices is equivalent to spreading the execution time of a lasting applica...

Full description

Bibliographic Details
Main Author: Ahmad, Saim
Other Authors: Computer Science
Format: Others
Published: Virginia Tech 2021
Subjects:
Online Access:http://hdl.handle.net/10919/103389
id ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-103389
record_format oai_dc
collection NDLTD
format Others
sources NDLTD
topic Compilers
Energy Harvesting
Embedded Systems
spellingShingle Compilers
Energy Harvesting
Embedded Systems
Ahmad, Saim
Compiler Support for Long-life, Low-overhead Intermittent Computation on Energy Harvesting Flash-based Devices
description With the advent of energy harvesters, supporting fast and efficient computation on energy harvesting devices has become a key challenge in the field of energy harvesting on ubiquitous devices. Computation on energy harvesting devices is equivalent to spreading the execution time of a lasting application over short, frequent cycles of power. However, we must ensure that results obtained from intermittently executing an application do produce results that are congruent to those produced by executing the application on a device with a continuous source of power. The current state-of-the-art systems that enable intermittent computation on energy harvesters make use of novel compiler analysis techniques as well as on-board hardware on devices to measure the energy remaining for useful computation. However, currently available programming models, which mostly target devices with FRAM as the NVM, would cause failure on devices that employ the Flash as primary NVM, thereby resulting in a non-universal solution that is restricted by the choice of NVM. This is primarily the result of the Flash's limited read/write endurance. This research aims to contribute to the world of energy harvesting devices by providing solutions that would enable intermittent computation regardless of the choice of NVM on a device by utilizing only the SRAM to save state and perform computation. Utilizing the SRAM further reduces run-time overhead as SRAM reads/writes are less costlier than NVM reads/writes. Our proposed solutions rely on programmer-guidance and compiler analysis to correct and efficient intermittent computation. We then extend our system to provide a complete compiler-based solution without programmer intervention. Our system is able to run applications that would otherwise render any device with Flash as NVM useless in a matter of hours. === Master of Science === As batteries continue to take up space and make small-scale sensors hefty, battery-less devices have grown increasingly popular for non-resource intensive computations. From tracking air pressure in vehicle tires to monitoring room temperature, battery-less devices have countless applications in various walks of life. These devices function by periodically harvesting energy from the environment and its surroundings to power short bursts of computation. When device energy levels reach a lower-bound threshold these devices must power off to scavenge useful energy from the environment to further perform short bursts of computation. Usually, energy harvesting devices draw power from solar, thermal or RF energy. This vastly depends on the build of the device, also known as a microprocessor (a processing unit built to perform small-scale computations). Due to these devices constantly powering on and off, performing continuous computation on such devices is rather more difficult when compared to systems with a continuous source of power. Since applications can require more time to complete than one power cycle of such devices, by default, applications running on these devices will restart execution from the beginning at the start of every power cycle. Therefore, it is necessary for such devices to have mechanisms to remember where the were before the device lost power. The past decade has seen many solutions proposed to aid an application in restarting execution rather than recomputing everything from the beginning. Solutions utilize different categories of devices with different storage technologies as well different software and hardware utilities available to programmers in this domain. In this research, we propose two different low-overhead, long-life computation models to support intermittent computation on a subset of energy harvesting devices which use Flash-based memory to store persistent data. Our approaches are heavily dependent on programmer guidance and different program analysis techniques to sustain computation across power cycles.
author2 Computer Science
author_facet Computer Science
Ahmad, Saim
author Ahmad, Saim
author_sort Ahmad, Saim
title Compiler Support for Long-life, Low-overhead Intermittent Computation on Energy Harvesting Flash-based Devices
title_short Compiler Support for Long-life, Low-overhead Intermittent Computation on Energy Harvesting Flash-based Devices
title_full Compiler Support for Long-life, Low-overhead Intermittent Computation on Energy Harvesting Flash-based Devices
title_fullStr Compiler Support for Long-life, Low-overhead Intermittent Computation on Energy Harvesting Flash-based Devices
title_full_unstemmed Compiler Support for Long-life, Low-overhead Intermittent Computation on Energy Harvesting Flash-based Devices
title_sort compiler support for long-life, low-overhead intermittent computation on energy harvesting flash-based devices
publisher Virginia Tech
publishDate 2021
url http://hdl.handle.net/10919/103389
work_keys_str_mv AT ahmadsaim compilersupportforlonglifelowoverheadintermittentcomputationonenergyharvestingflashbaseddevices
_version_ 1719405463292870656
spelling ndltd-VTETD-oai-vtechworks.lib.vt.edu-10919-1033892021-05-22T05:27:18Z Compiler Support for Long-life, Low-overhead Intermittent Computation on Energy Harvesting Flash-based Devices Ahmad, Saim Computer Science Hicks, Matthew Butt, Ali Min, Chang Woo Compilers Energy Harvesting Embedded Systems With the advent of energy harvesters, supporting fast and efficient computation on energy harvesting devices has become a key challenge in the field of energy harvesting on ubiquitous devices. Computation on energy harvesting devices is equivalent to spreading the execution time of a lasting application over short, frequent cycles of power. However, we must ensure that results obtained from intermittently executing an application do produce results that are congruent to those produced by executing the application on a device with a continuous source of power. The current state-of-the-art systems that enable intermittent computation on energy harvesters make use of novel compiler analysis techniques as well as on-board hardware on devices to measure the energy remaining for useful computation. However, currently available programming models, which mostly target devices with FRAM as the NVM, would cause failure on devices that employ the Flash as primary NVM, thereby resulting in a non-universal solution that is restricted by the choice of NVM. This is primarily the result of the Flash's limited read/write endurance. This research aims to contribute to the world of energy harvesting devices by providing solutions that would enable intermittent computation regardless of the choice of NVM on a device by utilizing only the SRAM to save state and perform computation. Utilizing the SRAM further reduces run-time overhead as SRAM reads/writes are less costlier than NVM reads/writes. Our proposed solutions rely on programmer-guidance and compiler analysis to correct and efficient intermittent computation. We then extend our system to provide a complete compiler-based solution without programmer intervention. Our system is able to run applications that would otherwise render any device with Flash as NVM useless in a matter of hours. Master of Science As batteries continue to take up space and make small-scale sensors hefty, battery-less devices have grown increasingly popular for non-resource intensive computations. From tracking air pressure in vehicle tires to monitoring room temperature, battery-less devices have countless applications in various walks of life. These devices function by periodically harvesting energy from the environment and its surroundings to power short bursts of computation. When device energy levels reach a lower-bound threshold these devices must power off to scavenge useful energy from the environment to further perform short bursts of computation. Usually, energy harvesting devices draw power from solar, thermal or RF energy. This vastly depends on the build of the device, also known as a microprocessor (a processing unit built to perform small-scale computations). Due to these devices constantly powering on and off, performing continuous computation on such devices is rather more difficult when compared to systems with a continuous source of power. Since applications can require more time to complete than one power cycle of such devices, by default, applications running on these devices will restart execution from the beginning at the start of every power cycle. Therefore, it is necessary for such devices to have mechanisms to remember where the were before the device lost power. The past decade has seen many solutions proposed to aid an application in restarting execution rather than recomputing everything from the beginning. Solutions utilize different categories of devices with different storage technologies as well different software and hardware utilities available to programmers in this domain. In this research, we propose two different low-overhead, long-life computation models to support intermittent computation on a subset of energy harvesting devices which use Flash-based memory to store persistent data. Our approaches are heavily dependent on programmer guidance and different program analysis techniques to sustain computation across power cycles. 2021-05-20T08:00:45Z 2021-05-20T08:00:45Z 2021-05-19 Thesis vt_gsexam:31149 http://hdl.handle.net/10919/103389 In Copyright http://rightsstatements.org/vocab/InC/1.0/ ETD application/pdf Virginia Tech