Small-scale IoT devices powered by energy harvested from the environment are gaining popularity due to their ability to eliminate batteries that are bulky, require high maintenance costs, and have a detrimental impact on the environment. However, the energy harvested from the environment is unpredictable, meaning it is not a stable power supply. This makes the computation in these devices intermittent. Intermittent computing is characterized by an alternation between active computing periods and periods where the device is powered off, waiting to harvest enough energy from the environment to resume computing. In intermittent computing systems, frequent energy failures occur, resulting in the loss of data stored in volatile memory that has not been persisted in Non-Volatile Memory(NVM). Unlike ordinary devices, like laptops and smartphones, energy harvesting devices lack the computational and memory resources to equip a full-fledged operating system to manage recovery after an energy failure. To enable these devices to continue computing from the point where energy failed, it is necessary to save the execution state in NVM. Writes in NVM to persist the state are an overhead. Although these operations do not directly contribute to program execution, they allow the program to appear as if it is executing continuously despite frequent interruptions. STT-MRAM, an emerging NVM technology, can be used as NVM for intermittent systems to lower this overhead since it has better energy efficiency characteristics compared to other NVM technologies like FeRAM, MRAM, and flash memories. Writes in STT-MRAM are stochastic in nature. Specifically, the probability of an STT-MRAM cell switching from one state to another during a write operation depends on the amount of current provided to it. This is an opportunity for us. By piloting the current for writing the cell, we can decrease the energy consumed by writes in STT-MRAM at the cost of introducing some errors in the written data. In our research, we examine the benefits and drawbacks of using STT-MRAM with approximated writes as the persistent storage for an intermittent computing system. To do this, we build an experimental framework to simulate both approximated and correct executions of various benchmarks. This allows us to calculate the energy saved due to approximated writes and the decrease in the quality of the outputs. By analyzing this data, we can identify when the proposed approximate computing technique is effective, reducing a relevant amount of the NVM writes overhead while maintaining an acceptable quality in the produced output. Further, we explore, for each benchmark, the trade-off between quality and energy consumption. By exploring this trade-off, we determine the optimal approximation level that achieves the best energy efficiency while maintaining an acceptable reduction in the accuracy of the results. Our results demonstrate that, for example, for an image decoder program, using approximated execution can save up to 50% of the energy used for a correct execution, with a Root Mean Squared Error (RMSE) of 35 compared to the correct execution, indicating that this technique can significantly reduce energy usage while still producing acceptable output quality. However, the results for a Fast Fourier Transform program are vastly different. Despite applying the strongest level of approximation, the energy consumption is only reduced by 4% compared to a fully correct execution. At the same time, the quality of the output is significantly affected, with a high probability of obtaining results with an Average Relative Error (ARE) greater than 100%.

Dispositivi di piccole dimensioni alimentati dall’energia raccolta dall’ambiente stanno diventando sempre più popolari grazie alla loro capacità di eliminare le batterie che sono ingombranti, richiedono costi di manutenzione elevati e hanno un impatto negativo sull’ambiente. L’energia raccolta dall’ambiente ha un comportamento imprevedibile, il che significa che non è una fonte di alimentazione stabile. Ciò rende il calcolo in questi dispositivi intermittente. La computazione intermittente è caratterizzata dall’alternanza tra periodi di calcolo attivo e periodi in cui il dispositivo è spento, in attesa di raccogliere abbastanza energia dall’ambiente per riprendere l’esecuzione. Nei sistemi di computazione intermittente si verificano frequenti interruzioni dovute alla mancanza di energia, con conseguente perdita dei dati memorizzati nella memoria volatile che non sono stati resi persistenti nella memoria non volatile (NVM). A differenza dei dispositivi ordinari, come laptop e smartphone, i dispositivi che utilizzano energia raccolta dall’ambiente non dispongono delle risorse computazionali e di memoria per avere un sistema operativo che gestisce il corretto recupero dopo un’interruzione dovuta alla mancanza di energia. Per consentire la computazione dopo un’interruzione per mancanza di energia è necessario salvare lo stato dell’esecuzione nella NVM. Le scritture nella NVM per salvare lo stato di esecuzione rappresentano un overhead. Anche se queste operazioni non contribuiscono direttamente all’esecuzione del programma, consentono al programma di sembrare in esecuzione continuamente nonostante le frequenti interruzioni. La STT-MRAM è una tecnologia emergente di NVM, può essere utilizzata come NVM per i sistemi intermittenti per ridurre questo overhead in quanto ha migliori caratteristiche di efficienza energetica rispetto ad altre tecnologie di NVM come FeRAM, MRAM e flash. Le scritture in STT-MRAM sono di natura stocastica. In particolare, la probabilità che una cella STT-MRAM passi da uno stato all’altro durante un’operazione di scrittura dipende dalla quantità di corrente fornita ad essa. Questa è un’opportunità per noi, poiché pilotando la corrente per la scrittura della cella possiamo diminuire l’energia consumata dalle scritture in STT-MRAM introducendo però errori nei dati scritti. Nella nostra ricerca, esaminiamo i benefici e gli svantaggi dell’utilizzo di STT-MRAM con scritture approssimate come NVM per un sistema di computazione intermittente. Per fare ciò, costruiamo un framework sperimentale per simulare esecuzioni approssimate e corrette di vari benchmark, consentendoci di calcolare l’energia risparmiata grazie alle scritture approssimate e la riduzione della qualità degli output. Analizzando questi dati, possiamo identificare quando la tecnica di calcolo approssimativo proposta è efficace, riducendo una quantità rilevante dell’overhead di scrittura in NVM pur mantenendo una buona qualità nella produzione di output. Infine, esploriamo, per ogni benchmark, il compromesso tra qualità e consumo energetico. Esplorando questo compromesso, determiniamo il livello di approssimazione ottimale che garantisce la migliore efficienza energetica pur mantenendo una riduzione accettabile dell’accuratezza dei risultati. I nostri risultati dimostrano che, per un programma decodificatore di immagini, l’utilizzo dell’esecuzione approssimata può risparmiare fino al 50% dell’energia utilizzata per un’esecuzione corretta, con un RMSE di soli 35 rispetto all’esecuzione corretta, indicando che questa tecnica può ridurre significativamente l’utilizzo di energia pur producendo una qualità di output accettabile. Tuttavia, i risultati per un programma di Fast Fourier Transform (FFT) sono molto diversi. Nonostante l’applicazione del livello di approssimazione più forte, il consumo di energia è ridotto solo del 4% rispetto a un’esecuzione completamente corretta, mentre la qualità dell’output è significativamente compromessa, con una elevata probabilità di ottenere risultati con un Errore Relativo Medio (ARE) superiore al 100%.

exploring the energy/quality trade-off of non volatile memory in intermittent computing

BARJAMI, REI
2022/2023

Abstract

Small-scale IoT devices powered by energy harvested from the environment are gaining popularity due to their ability to eliminate batteries that are bulky, require high maintenance costs, and have a detrimental impact on the environment. However, the energy harvested from the environment is unpredictable, meaning it is not a stable power supply. This makes the computation in these devices intermittent. Intermittent computing is characterized by an alternation between active computing periods and periods where the device is powered off, waiting to harvest enough energy from the environment to resume computing. In intermittent computing systems, frequent energy failures occur, resulting in the loss of data stored in volatile memory that has not been persisted in Non-Volatile Memory(NVM). Unlike ordinary devices, like laptops and smartphones, energy harvesting devices lack the computational and memory resources to equip a full-fledged operating system to manage recovery after an energy failure. To enable these devices to continue computing from the point where energy failed, it is necessary to save the execution state in NVM. Writes in NVM to persist the state are an overhead. Although these operations do not directly contribute to program execution, they allow the program to appear as if it is executing continuously despite frequent interruptions. STT-MRAM, an emerging NVM technology, can be used as NVM for intermittent systems to lower this overhead since it has better energy efficiency characteristics compared to other NVM technologies like FeRAM, MRAM, and flash memories. Writes in STT-MRAM are stochastic in nature. Specifically, the probability of an STT-MRAM cell switching from one state to another during a write operation depends on the amount of current provided to it. This is an opportunity for us. By piloting the current for writing the cell, we can decrease the energy consumed by writes in STT-MRAM at the cost of introducing some errors in the written data. In our research, we examine the benefits and drawbacks of using STT-MRAM with approximated writes as the persistent storage for an intermittent computing system. To do this, we build an experimental framework to simulate both approximated and correct executions of various benchmarks. This allows us to calculate the energy saved due to approximated writes and the decrease in the quality of the outputs. By analyzing this data, we can identify when the proposed approximate computing technique is effective, reducing a relevant amount of the NVM writes overhead while maintaining an acceptable quality in the produced output. Further, we explore, for each benchmark, the trade-off between quality and energy consumption. By exploring this trade-off, we determine the optimal approximation level that achieves the best energy efficiency while maintaining an acceptable reduction in the accuracy of the results. Our results demonstrate that, for example, for an image decoder program, using approximated execution can save up to 50% of the energy used for a correct execution, with a Root Mean Squared Error (RMSE) of 35 compared to the correct execution, indicating that this technique can significantly reduce energy usage while still producing acceptable output quality. However, the results for a Fast Fourier Transform program are vastly different. Despite applying the strongest level of approximation, the energy consumption is only reduced by 4% compared to a fully correct execution. At the same time, the quality of the output is significantly affected, with a high probability of obtaining results with an Average Relative Error (ARE) greater than 100%.
MIELE, ANTONIO ROSARIO
ING - Scuola di Ingegneria Industriale e dell'Informazione
4-mag-2023
2022/2023
Dispositivi di piccole dimensioni alimentati dall’energia raccolta dall’ambiente stanno diventando sempre più popolari grazie alla loro capacità di eliminare le batterie che sono ingombranti, richiedono costi di manutenzione elevati e hanno un impatto negativo sull’ambiente. L’energia raccolta dall’ambiente ha un comportamento imprevedibile, il che significa che non è una fonte di alimentazione stabile. Ciò rende il calcolo in questi dispositivi intermittente. La computazione intermittente è caratterizzata dall’alternanza tra periodi di calcolo attivo e periodi in cui il dispositivo è spento, in attesa di raccogliere abbastanza energia dall’ambiente per riprendere l’esecuzione. Nei sistemi di computazione intermittente si verificano frequenti interruzioni dovute alla mancanza di energia, con conseguente perdita dei dati memorizzati nella memoria volatile che non sono stati resi persistenti nella memoria non volatile (NVM). A differenza dei dispositivi ordinari, come laptop e smartphone, i dispositivi che utilizzano energia raccolta dall’ambiente non dispongono delle risorse computazionali e di memoria per avere un sistema operativo che gestisce il corretto recupero dopo un’interruzione dovuta alla mancanza di energia. Per consentire la computazione dopo un’interruzione per mancanza di energia è necessario salvare lo stato dell’esecuzione nella NVM. Le scritture nella NVM per salvare lo stato di esecuzione rappresentano un overhead. Anche se queste operazioni non contribuiscono direttamente all’esecuzione del programma, consentono al programma di sembrare in esecuzione continuamente nonostante le frequenti interruzioni. La STT-MRAM è una tecnologia emergente di NVM, può essere utilizzata come NVM per i sistemi intermittenti per ridurre questo overhead in quanto ha migliori caratteristiche di efficienza energetica rispetto ad altre tecnologie di NVM come FeRAM, MRAM e flash. Le scritture in STT-MRAM sono di natura stocastica. In particolare, la probabilità che una cella STT-MRAM passi da uno stato all’altro durante un’operazione di scrittura dipende dalla quantità di corrente fornita ad essa. Questa è un’opportunità per noi, poiché pilotando la corrente per la scrittura della cella possiamo diminuire l’energia consumata dalle scritture in STT-MRAM introducendo però errori nei dati scritti. Nella nostra ricerca, esaminiamo i benefici e gli svantaggi dell’utilizzo di STT-MRAM con scritture approssimate come NVM per un sistema di computazione intermittente. Per fare ciò, costruiamo un framework sperimentale per simulare esecuzioni approssimate e corrette di vari benchmark, consentendoci di calcolare l’energia risparmiata grazie alle scritture approssimate e la riduzione della qualità degli output. Analizzando questi dati, possiamo identificare quando la tecnica di calcolo approssimativo proposta è efficace, riducendo una quantità rilevante dell’overhead di scrittura in NVM pur mantenendo una buona qualità nella produzione di output. Infine, esploriamo, per ogni benchmark, il compromesso tra qualità e consumo energetico. Esplorando questo compromesso, determiniamo il livello di approssimazione ottimale che garantisce la migliore efficienza energetica pur mantenendo una riduzione accettabile dell’accuratezza dei risultati. I nostri risultati dimostrano che, per un programma decodificatore di immagini, l’utilizzo dell’esecuzione approssimata può risparmiare fino al 50% dell’energia utilizzata per un’esecuzione corretta, con un RMSE di soli 35 rispetto all’esecuzione corretta, indicando che questa tecnica può ridurre significativamente l’utilizzo di energia pur producendo una qualità di output accettabile. Tuttavia, i risultati per un programma di Fast Fourier Transform (FFT) sono molto diversi. Nonostante l’applicazione del livello di approssimazione più forte, il consumo di energia è ridotto solo del 4% rispetto a un’esecuzione completamente corretta, mentre la qualità dell’output è significativamente compromessa, con una elevata probabilità di ottenere risultati con un Errore Relativo Medio (ARE) superiore al 100%.
File allegati
File Dimensione Formato  
2023_05_Barjami.pdf

accessibile in internet per tutti

Dimensione 2.27 MB
Formato Adobe PDF
2.27 MB Adobe PDF Visualizza/Apri
2023_05_Barjami_ExecutiveSummary.pdf

accessibile in internet per tutti

Dimensione 972.19 kB
Formato Adobe PDF
972.19 kB 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/204254