Transiently powered embedded systems are becoming popular because of their self-sustainable, no maintenance and easily deployable nature. However, there is an intrinsic challenge with these systems: they can be unpredictably interrupted, as energy harvesting by no means can ensure a predictable supply of energy. Reboots will frequently happen, which translates into a waste of resources, including energy, as applications need to re-initialize and re-acquire the state. As a result, the overall performance inevitably suffers. To allow an application to cross the boundaries of periods of energy unavailability, prior solutions, either save only a portion of program memory (avoiding the heap) limiting developers to employ sophisticated programming techniques, or resort to hardware modifications by replacing SRAM with FRAM, that may not only impact cost but also processing speed. This thesis aims to design software techniques for transiently-powered embedded devices, allowing an application to make progress, with a minimum possible energy spent on saving the system state and without resorting to hardware modifications. In the first part of the thesis, we present the detailed analysis of the existing energy harvesting and wireless energy transfer solutions for wireless sensor networks (WSNs). We define desirable properties, classify existing solutions, and argue about their applicability in different deployment environments. Later, we conduct a comprehensive survey of the state of the art for transiently-powered embedded systems. We discuss challenges, define goals and classify transiently-powered embedded system solutions into different categories based on the techniques they use to ensure forward progress of the application. In the second part of the thesis, we develop three different techniques for saving system state quickly and in an energy-efficient manner, exploiting different properties of non-volatile memory. Key to their efficiency is the way the state information is organized on non-volatile memory. Our results, through extensive evaluation, crucially indicate that there is no "one-size-fits-all" solution. It is the application's memory characteristics that will make one technique preferable over another. These evaluation results also lead us to design an additional technique, DICE, in which, instead of reading non-volatile memory to compute changes in the main memory (which is energy-hungry operation and used in previous techniques), we track changes in the main memory through just code instrumentation. This makes DICE not only further reduce the amount of data to write onto non-volatile memory to ensure forward progress of the application, but also helps existing system support complete a given workload with better energy efficiency and reduced execution latency. Finally, we present HarvOS that decides when to save the system state by looking at the worst-case energy cost required to reach the next opportunity to save system state, depending on the program structure as represented in the control-flow graph. HarvOS allows the system to make an informed decision, at every opportunity to save system state, on whether to continue with the normal execution or save the system state. Our evaluation indicates that HarvOS allows transiently-powered embedded systems to complete a given workload with 68% fewer restarts, compared to existing literature.

I sistemi embedded con alimentazione transitoria stanno diventando popolari a causa della loro natura autosufficiente, senza manutenzione e facilmente dispiegabile. Tuttavia, esiste una sfida intrinseca con questi sistemi: possono essere interrotti in modo imprevedibile, poiché la raccolta di energia non garantisce in alcun modo un prevedibile apporto di energia. I riavvii si verificano spesso, il che si traduce in uno spreco di risorse, compresa l'energia, poiché le applicazioni devono reinizializzare e riacquistare lo stato. Di conseguenza, le prestazioni complessive ne soffrono inevitabilmente. Per consentire a un'applicazione di superare i limiti dei periodi di indisponibilità di energia, soluzioni precedenti, è possibile salvare solo una parte della memoria del programma (evitando l'heap) limitando gli sviluppatori ad impiegare sofisticate tecniche di programmazione, o ricorrere a modifiche hardware sostituendo SRAM con FRAM, che potrebbe non solo avere un impatto sui costi ma anche sulla velocità di elaborazione. Questa tesi ha lo scopo di progettare tecniche software per dispositivi embedded a corrente transitoria, consentendo a un'applicazione di progredire, con una spesa minima possibile per salvare lo stato del sistema e senza ricorrere a modifiche hardware. Nella prima parte della tesi, presentiamo l'analisi dettagliata delle attuali soluzioni di energy harvesting e di trasferimento dell'energia wireless per le reti di sensori wireless (WSN). Definiamo proprietà desiderabili, classifichiamo soluzioni esistenti e discutiamo sulla loro applicabilità in diversi ambienti di distribuzione. Successivamente, conduciamo un'indagine completa sullo stato dell'arte per i sistemi embedded a corrente transitoria. Discutiamo le sfide, definiamo gli obiettivi e classifichiamo le soluzioni di sistemi embedded con alimentazione transitoria in diverse categorie in base alle tecniche che utilizzano per garantire il progresso della domanda. Nella seconda parte della tesi, sviluppiamo tre diverse tecniche per il salvataggio rapido dello stato del sistema e in modo efficiente dal punto di vista energetico, sfruttando diverse proprietà della memoria non volatile. La chiave della loro efficienza è il modo in cui le informazioni di stato sono organizzate sulla memoria non volatile. I nostri risultati, attraverso un'ampia valutazione, indicano in modo cruciale che non esiste una soluzione "taglia unica". Sono le caratteristiche della memoria dell'applicazione che renderanno preferibile una tecnica rispetto ad un'altra. Questi risultati di valutazione ci portano anche a progettare una tecnica addizionale, DICE, in cui, invece di leggere la memoria non volatile per calcolare i cambiamenti nella memoria principale (che è un'operazione che richiede energia e utilizzata nelle tecniche precedenti), tracciamo i cambiamenti nel memoria principale attraverso la sola strumentazione di codice. Ciò fa sì che DICE non solo riduca ulteriormente la quantità di dati da scrivere su memoria non volatile per garantire il progresso in avanti dell'applicazione, ma aiuta anche il supporto del sistema esistente a completare un determinato carico di lavoro con una migliore efficienza energetica e una minore latenza di esecuzione. Infine, presentiamo HarvOS che decide quando salvare lo stato del sistema osservando il peggiore costo energetico richiesto per raggiungere la prossima opportunità di salvare lo stato del sistema, a seconda della struttura del programma rappresentata nel grafico del flusso di controllo. HarvOS consente al sistema di prendere una decisione informata, ad ogni occasione per salvare lo stato del sistema, se continuare con la normale esecuzione o salvare lo stato del sistema. La nostra valutazione indica che HarvOS consente ai sistemi embedded con alimentazione transitoria di completare un determinato carico di lavoro con il 68% in meno di riavvii, rispetto alla letteratura esistente.

System support for transiently-powered embedded sensing systems

BHATTI, NAVEED ANWAR

Abstract

Transiently powered embedded systems are becoming popular because of their self-sustainable, no maintenance and easily deployable nature. However, there is an intrinsic challenge with these systems: they can be unpredictably interrupted, as energy harvesting by no means can ensure a predictable supply of energy. Reboots will frequently happen, which translates into a waste of resources, including energy, as applications need to re-initialize and re-acquire the state. As a result, the overall performance inevitably suffers. To allow an application to cross the boundaries of periods of energy unavailability, prior solutions, either save only a portion of program memory (avoiding the heap) limiting developers to employ sophisticated programming techniques, or resort to hardware modifications by replacing SRAM with FRAM, that may not only impact cost but also processing speed. This thesis aims to design software techniques for transiently-powered embedded devices, allowing an application to make progress, with a minimum possible energy spent on saving the system state and without resorting to hardware modifications. In the first part of the thesis, we present the detailed analysis of the existing energy harvesting and wireless energy transfer solutions for wireless sensor networks (WSNs). We define desirable properties, classify existing solutions, and argue about their applicability in different deployment environments. Later, we conduct a comprehensive survey of the state of the art for transiently-powered embedded systems. We discuss challenges, define goals and classify transiently-powered embedded system solutions into different categories based on the techniques they use to ensure forward progress of the application. In the second part of the thesis, we develop three different techniques for saving system state quickly and in an energy-efficient manner, exploiting different properties of non-volatile memory. Key to their efficiency is the way the state information is organized on non-volatile memory. Our results, through extensive evaluation, crucially indicate that there is no "one-size-fits-all" solution. It is the application's memory characteristics that will make one technique preferable over another. These evaluation results also lead us to design an additional technique, DICE, in which, instead of reading non-volatile memory to compute changes in the main memory (which is energy-hungry operation and used in previous techniques), we track changes in the main memory through just code instrumentation. This makes DICE not only further reduce the amount of data to write onto non-volatile memory to ensure forward progress of the application, but also helps existing system support complete a given workload with better energy efficiency and reduced execution latency. Finally, we present HarvOS that decides when to save the system state by looking at the worst-case energy cost required to reach the next opportunity to save system state, depending on the program structure as represented in the control-flow graph. HarvOS allows the system to make an informed decision, at every opportunity to save system state, on whether to continue with the normal execution or save the system state. Our evaluation indicates that HarvOS allows transiently-powered embedded systems to complete a given workload with 68% fewer restarts, compared to existing literature.
BONARINI, ANDREA
BARESI, LUCIANO
15-feb-2018
I sistemi embedded con alimentazione transitoria stanno diventando popolari a causa della loro natura autosufficiente, senza manutenzione e facilmente dispiegabile. Tuttavia, esiste una sfida intrinseca con questi sistemi: possono essere interrotti in modo imprevedibile, poiché la raccolta di energia non garantisce in alcun modo un prevedibile apporto di energia. I riavvii si verificano spesso, il che si traduce in uno spreco di risorse, compresa l'energia, poiché le applicazioni devono reinizializzare e riacquistare lo stato. Di conseguenza, le prestazioni complessive ne soffrono inevitabilmente. Per consentire a un'applicazione di superare i limiti dei periodi di indisponibilità di energia, soluzioni precedenti, è possibile salvare solo una parte della memoria del programma (evitando l'heap) limitando gli sviluppatori ad impiegare sofisticate tecniche di programmazione, o ricorrere a modifiche hardware sostituendo SRAM con FRAM, che potrebbe non solo avere un impatto sui costi ma anche sulla velocità di elaborazione. Questa tesi ha lo scopo di progettare tecniche software per dispositivi embedded a corrente transitoria, consentendo a un'applicazione di progredire, con una spesa minima possibile per salvare lo stato del sistema e senza ricorrere a modifiche hardware. Nella prima parte della tesi, presentiamo l'analisi dettagliata delle attuali soluzioni di energy harvesting e di trasferimento dell'energia wireless per le reti di sensori wireless (WSN). Definiamo proprietà desiderabili, classifichiamo soluzioni esistenti e discutiamo sulla loro applicabilità in diversi ambienti di distribuzione. Successivamente, conduciamo un'indagine completa sullo stato dell'arte per i sistemi embedded a corrente transitoria. Discutiamo le sfide, definiamo gli obiettivi e classifichiamo le soluzioni di sistemi embedded con alimentazione transitoria in diverse categorie in base alle tecniche che utilizzano per garantire il progresso della domanda. Nella seconda parte della tesi, sviluppiamo tre diverse tecniche per il salvataggio rapido dello stato del sistema e in modo efficiente dal punto di vista energetico, sfruttando diverse proprietà della memoria non volatile. La chiave della loro efficienza è il modo in cui le informazioni di stato sono organizzate sulla memoria non volatile. I nostri risultati, attraverso un'ampia valutazione, indicano in modo cruciale che non esiste una soluzione "taglia unica". Sono le caratteristiche della memoria dell'applicazione che renderanno preferibile una tecnica rispetto ad un'altra. Questi risultati di valutazione ci portano anche a progettare una tecnica addizionale, DICE, in cui, invece di leggere la memoria non volatile per calcolare i cambiamenti nella memoria principale (che è un'operazione che richiede energia e utilizzata nelle tecniche precedenti), tracciamo i cambiamenti nel memoria principale attraverso la sola strumentazione di codice. Ciò fa sì che DICE non solo riduca ulteriormente la quantità di dati da scrivere su memoria non volatile per garantire il progresso in avanti dell'applicazione, ma aiuta anche il supporto del sistema esistente a completare un determinato carico di lavoro con una migliore efficienza energetica e una minore latenza di esecuzione. Infine, presentiamo HarvOS che decide quando salvare lo stato del sistema osservando il peggiore costo energetico richiesto per raggiungere la prossima opportunità di salvare lo stato del sistema, a seconda della struttura del programma rappresentata nel grafico del flusso di controllo. HarvOS consente al sistema di prendere una decisione informata, ad ogni occasione per salvare lo stato del sistema, se continuare con la normale esecuzione o salvare lo stato del sistema. La nostra valutazione indica che HarvOS consente ai sistemi embedded con alimentazione transitoria di completare un determinato carico di lavoro con il 68% in meno di riavvii, rispetto alla letteratura esistente.
Tesi di dottorato
File allegati
File Dimensione Formato  
thesis.pdf

accessibile in internet per tutti

Descrizione: Thesis text
Dimensione 10.58 MB
Formato Adobe PDF
10.58 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/137902