The problem of guaranteeing the correct behavior in digital systems even when faults occur has been investigated for several years. However, the researchers’ efforts have been mainly devoted to safety- and mission- critical systems, where the occurrence of faults (both transient and permanent) can be extremely hazardous. Nowadays, the need to provide reliability also for non-critical application environments is gaining a lot of momentum, due to the pervasiveness of embedded systems and their increasing susceptibility due to technology scaling. While in critical applications the budget devoted to reliability is almost unlimited and it is not to be compromised, in non-critical scenarios the limited available budget used to guarantee the best performance and energy consumption is to be shared for providing reliability as well. In the past, great effort has been devoted to provide strict reliability management. This led to the shared belief that reliability is to be considered from the early stages of the embedded systems design process. In fact, as this process is becoming more and more complex, approaches that do not consider reliability throughout all the design steps may lead to expensive or not-optimized solutions. Moreover, considering reliability in a holistic way allows to drive the several decisions by exploiting the synergy of both the most classical aspects and reliability-oriented ones. Postponing the reliability assessment to the later phases of the design flow on a system prototype is not appealing, because failure in achieving the desired level of reliability would be detected too late. However, the complexity of managing reliability, performance and power/energy consumption all at the same time grows exponentially, especially when several decision variables are available in the considered system. For this reason it is not possible to envision a system able to properly react to any possible scenario on the basis of decisions precomputed at design time; a new paradigm based on self-adaptability is to be designed. Self-adaptive systems are becoming quite common when dealing with such complex systems: relevant examples are available in literature if performance management is considered. Given these motivations, we argue that the self-adaptive paradigm is to be implemented when designing embedded systems with the aim of considering reliability as a driving dimension. In particular, in this thesis we propose a comprehensive management framework for dealing with reliability in multi/manycore embedded systems. Reliability is considered both for permanent/transient faults management and components aging mitigation. This framework implements a well-known control loop where the status of the system and the environment are sensed (observe), adaptation is defined through decisions made at runtime to meet the specified goals and constraints (decide), and the values of the system parameters are modified accordingly (act). The designed framework is integrated in a two-layer heterogeneous multi/manycore architecture which is considered as the reference hardware platform. Self-adaptability is enabled through independent control layers implemented on top of the reference architecture. At the top-level, the manycore one, a control cycle ensures the combined optimization of the overall architecture lifetime and of the energy consumption due to communication among nodes. On the other hand, within each node, two control cycles have been designed: one for dealing with faults occurrence (through the selection of the proper scheduling technique) and another one for mitigating components aging and minimizing energy consumption (thanks to smart mapping algorithms). Moreover, in the considered optimization process, performance is always considered as a constraint, in the form of applications deadlines, in order to guarantee a satisfying quality of service. In addition to the above contributions, two more ones deserve to be considered. First, the definition of a model to describe and classify self-adaptive computing systems on the basis of their driving dimensions (goals and constraints), the available measures and acting parameters. Second, a tool for estimating the reliability function and the expected lifetime of complex multi/manycore architectures, able to tolerate multiple failures and considering varying workloads.

Il problema di garantire il corretto funzionamento dei sistemi digitali è da molti anni oggetto di ricerca accademica. Tuttavia, gli sforzi dei ricercatori si sono concentrati soprattutto su sistemi il cui fallimento causa gravi ripercussioni sulla salute delle persone o sulla buona riuscita di progetti particolarmente onerosi. Al giorno d’oggi, invece, sta diventando sempre più importante la necessità di rendere affidabili anche quei sistemi che non possono essere definiti critici, ma che hanno raggiunto una grande diffusione e risultano sempre più proni alla rottura a causa delle ridotte dimensioni dei loro componenti. Mentre in scenari critici le risorse allocate per far fronte a problemi di affidabilità sono pressoché illimitate e non si deve scendere a compromessi, in scenari che non presentano criticità le risorse a disposizione sono limitate e devono essere sfruttate per ottimizzare il funzionamento del dispositivo stesso, anche in termini di prestazioni ed energia consumata. Le ricerche svolte in passato hanno portato alla luce la necessità di considerare i requisiti di affidabilità del sistema sin dal principio del processo di progettazione. Infatti, a causa della sempre crescente complessità di questo processo, approcci che non considerano il livello di affidabilità richiesto in tutti i passi di progettazione rischiano di portare a soluzioni eccessivamente costose e/o non ottimizzate. Considerare, invece, gli aspetti di affidabilità come parte integrante di tutto il processo di progettazione permette trarre giovamento sia da tecniche classiche che da tecniche esplicitamente orientate all’affidabilità. Postporre la verifica del livello di affidabilità raggiunto al termine del processo di prototipazione non è invece una pratica saggia, poiché, in caso di fallimento, può causare la perdita di tempo e denaro. Questa necessità di integrazione causa però un aumento della complessità di progetto, in particolar modo quando i parametri su cui è possibile agire sono molti. Per questo motivo non è pensabile un sistema capace di reagire correttamente ad ogni possibile situazione sulla base di decisione pre-calcolate; è necessario adottare un paradigma di progettazione che preveda l’auto adattamento del sistema a tempo di esecuzione. I sistemi auto-adattativi per la gestione di sistemi complessi stanno infatti diventando sempre più comuni, soprattutto nell’ambito dell’ottimizzazione delle prestazioni. Sulla base di queste motivazioni, sosteniamo che il paradigma di progettazione basato su auto-adattatività debba essere impiegato anche quando si ha a che fare con sistemi embedded che richiedano un determinato livello di affidabilità. In particolare, in questa tesi si propone un’infrastruttura completa per la gestione dell’affidabilità in sistemi embedded composti da multi/manycore. L’affidabilità viene considerata sia in termini di gestione dei guasti (sia transitori che permanenti) sia come mitigazione dell’invecchiamento dei componenti. L’infrastruttura proposta realizza un ciclo di controllo proposto in letteratura e composto da tre fasi fondamentali: l’osservazione dello stato interno del sistema e dell’ambiente in cui vive (osserva), l’adattamento attraverso decisioni prese a tempo di esecuzione per rispettare i vincoli e gli obiettivi precedentemente specificati (decidi) e l’attuazione delle decisioni prese attraverso la modifica dei parametri del sistema (agisci). L’infrastruttura è stata progettata in modo da integrarsi all’interno dell’architettura di riferimento, composta da due livelli: ad un livello più alto una piattaforma manycore, in cui ogni nodo, a livello più basso, è composto da un sistema multicore. Il sistema è reso auto-adattativo tramite la realizzazione di cicli di controllo indipendenti che lavorano ai diversi livelli di astrazione. Ad alto livello, un primo ciclo di controllo garantisce l’ottimizzazione congiunta dell’invecchiamento dei nodi e del consumo di energia dovuto alla comunicazione tra gli stessi. All’interno di ogni nodo sono stati realizzati altri due cicli di controllo: il primo si occupa di gestire le occorrenze di guasti (attraverso la selezione della tecnica di scheduling più adatta tra quelle disponibili), mentre il secondo di bilanciare l’invecchiamento dei componenti e di minimizzare l’energia consumata (grazie ad algoritmi di mapping intelligenti). Nel corso di questo processo di ottimizzazione, le prestazioni del sistema vengono sempre considerate come un vincolo da rispettare, nella forma di deadline temporali, in modo tale che il sistema garantisca sempre una soddisfacente qualità del servizio erogato. Altri due contributi di questa tesi meritano di essere citati, a complemento di quelli già descritti in precedenza. In primo luogo, la definizione di un modello per descrivere e classificare i sistemi auto-adattativi sulla base delle dimensioni che guidano il loro adattamento, dei dati disponibili e dei parametri sui quali è possibili agire. In secondo luogo, uno strumento per stimare l’affidabilità e il tempo di vista atteso di un’architettura complessa come quella di riferimento, sottoposta a carichi di lavoro variabili nel tempo e capace di tollerare la rottura di alcuni suoi componenti.

Towards the definition of a methodology for the design of tunable dependable systems

CARMINATI, MATTEO

Abstract

The problem of guaranteeing the correct behavior in digital systems even when faults occur has been investigated for several years. However, the researchers’ efforts have been mainly devoted to safety- and mission- critical systems, where the occurrence of faults (both transient and permanent) can be extremely hazardous. Nowadays, the need to provide reliability also for non-critical application environments is gaining a lot of momentum, due to the pervasiveness of embedded systems and their increasing susceptibility due to technology scaling. While in critical applications the budget devoted to reliability is almost unlimited and it is not to be compromised, in non-critical scenarios the limited available budget used to guarantee the best performance and energy consumption is to be shared for providing reliability as well. In the past, great effort has been devoted to provide strict reliability management. This led to the shared belief that reliability is to be considered from the early stages of the embedded systems design process. In fact, as this process is becoming more and more complex, approaches that do not consider reliability throughout all the design steps may lead to expensive or not-optimized solutions. Moreover, considering reliability in a holistic way allows to drive the several decisions by exploiting the synergy of both the most classical aspects and reliability-oriented ones. Postponing the reliability assessment to the later phases of the design flow on a system prototype is not appealing, because failure in achieving the desired level of reliability would be detected too late. However, the complexity of managing reliability, performance and power/energy consumption all at the same time grows exponentially, especially when several decision variables are available in the considered system. For this reason it is not possible to envision a system able to properly react to any possible scenario on the basis of decisions precomputed at design time; a new paradigm based on self-adaptability is to be designed. Self-adaptive systems are becoming quite common when dealing with such complex systems: relevant examples are available in literature if performance management is considered. Given these motivations, we argue that the self-adaptive paradigm is to be implemented when designing embedded systems with the aim of considering reliability as a driving dimension. In particular, in this thesis we propose a comprehensive management framework for dealing with reliability in multi/manycore embedded systems. Reliability is considered both for permanent/transient faults management and components aging mitigation. This framework implements a well-known control loop where the status of the system and the environment are sensed (observe), adaptation is defined through decisions made at runtime to meet the specified goals and constraints (decide), and the values of the system parameters are modified accordingly (act). The designed framework is integrated in a two-layer heterogeneous multi/manycore architecture which is considered as the reference hardware platform. Self-adaptability is enabled through independent control layers implemented on top of the reference architecture. At the top-level, the manycore one, a control cycle ensures the combined optimization of the overall architecture lifetime and of the energy consumption due to communication among nodes. On the other hand, within each node, two control cycles have been designed: one for dealing with faults occurrence (through the selection of the proper scheduling technique) and another one for mitigating components aging and minimizing energy consumption (thanks to smart mapping algorithms). Moreover, in the considered optimization process, performance is always considered as a constraint, in the form of applications deadlines, in order to guarantee a satisfying quality of service. In addition to the above contributions, two more ones deserve to be considered. First, the definition of a model to describe and classify self-adaptive computing systems on the basis of their driving dimensions (goals and constraints), the available measures and acting parameters. Second, a tool for estimating the reliability function and the expected lifetime of complex multi/manycore architectures, able to tolerate multiple failures and considering varying workloads.
FIORINI, CARLO ETTORE
SCIUTO, DONATELLA
16-feb-2015
Il problema di garantire il corretto funzionamento dei sistemi digitali è da molti anni oggetto di ricerca accademica. Tuttavia, gli sforzi dei ricercatori si sono concentrati soprattutto su sistemi il cui fallimento causa gravi ripercussioni sulla salute delle persone o sulla buona riuscita di progetti particolarmente onerosi. Al giorno d’oggi, invece, sta diventando sempre più importante la necessità di rendere affidabili anche quei sistemi che non possono essere definiti critici, ma che hanno raggiunto una grande diffusione e risultano sempre più proni alla rottura a causa delle ridotte dimensioni dei loro componenti. Mentre in scenari critici le risorse allocate per far fronte a problemi di affidabilità sono pressoché illimitate e non si deve scendere a compromessi, in scenari che non presentano criticità le risorse a disposizione sono limitate e devono essere sfruttate per ottimizzare il funzionamento del dispositivo stesso, anche in termini di prestazioni ed energia consumata. Le ricerche svolte in passato hanno portato alla luce la necessità di considerare i requisiti di affidabilità del sistema sin dal principio del processo di progettazione. Infatti, a causa della sempre crescente complessità di questo processo, approcci che non considerano il livello di affidabilità richiesto in tutti i passi di progettazione rischiano di portare a soluzioni eccessivamente costose e/o non ottimizzate. Considerare, invece, gli aspetti di affidabilità come parte integrante di tutto il processo di progettazione permette trarre giovamento sia da tecniche classiche che da tecniche esplicitamente orientate all’affidabilità. Postporre la verifica del livello di affidabilità raggiunto al termine del processo di prototipazione non è invece una pratica saggia, poiché, in caso di fallimento, può causare la perdita di tempo e denaro. Questa necessità di integrazione causa però un aumento della complessità di progetto, in particolar modo quando i parametri su cui è possibile agire sono molti. Per questo motivo non è pensabile un sistema capace di reagire correttamente ad ogni possibile situazione sulla base di decisione pre-calcolate; è necessario adottare un paradigma di progettazione che preveda l’auto adattamento del sistema a tempo di esecuzione. I sistemi auto-adattativi per la gestione di sistemi complessi stanno infatti diventando sempre più comuni, soprattutto nell’ambito dell’ottimizzazione delle prestazioni. Sulla base di queste motivazioni, sosteniamo che il paradigma di progettazione basato su auto-adattatività debba essere impiegato anche quando si ha a che fare con sistemi embedded che richiedano un determinato livello di affidabilità. In particolare, in questa tesi si propone un’infrastruttura completa per la gestione dell’affidabilità in sistemi embedded composti da multi/manycore. L’affidabilità viene considerata sia in termini di gestione dei guasti (sia transitori che permanenti) sia come mitigazione dell’invecchiamento dei componenti. L’infrastruttura proposta realizza un ciclo di controllo proposto in letteratura e composto da tre fasi fondamentali: l’osservazione dello stato interno del sistema e dell’ambiente in cui vive (osserva), l’adattamento attraverso decisioni prese a tempo di esecuzione per rispettare i vincoli e gli obiettivi precedentemente specificati (decidi) e l’attuazione delle decisioni prese attraverso la modifica dei parametri del sistema (agisci). L’infrastruttura è stata progettata in modo da integrarsi all’interno dell’architettura di riferimento, composta da due livelli: ad un livello più alto una piattaforma manycore, in cui ogni nodo, a livello più basso, è composto da un sistema multicore. Il sistema è reso auto-adattativo tramite la realizzazione di cicli di controllo indipendenti che lavorano ai diversi livelli di astrazione. Ad alto livello, un primo ciclo di controllo garantisce l’ottimizzazione congiunta dell’invecchiamento dei nodi e del consumo di energia dovuto alla comunicazione tra gli stessi. All’interno di ogni nodo sono stati realizzati altri due cicli di controllo: il primo si occupa di gestire le occorrenze di guasti (attraverso la selezione della tecnica di scheduling più adatta tra quelle disponibili), mentre il secondo di bilanciare l’invecchiamento dei componenti e di minimizzare l’energia consumata (grazie ad algoritmi di mapping intelligenti). Nel corso di questo processo di ottimizzazione, le prestazioni del sistema vengono sempre considerate come un vincolo da rispettare, nella forma di deadline temporali, in modo tale che il sistema garantisca sempre una soddisfacente qualità del servizio erogato. Altri due contributi di questa tesi meritano di essere citati, a complemento di quelli già descritti in precedenza. In primo luogo, la definizione di un modello per descrivere e classificare i sistemi auto-adattativi sulla base delle dimensioni che guidano il loro adattamento, dei dati disponibili e dei parametri sui quali è possibili agire. In secondo luogo, uno strumento per stimare l’affidabilità e il tempo di vista atteso di un’architettura complessa come quella di riferimento, sottoposta a carichi di lavoro variabili nel tempo e capace di tollerare la rottura di alcuni suoi componenti.
Tesi di dottorato
File allegati
File Dimensione Formato  
2015_02_PhD_Carminati.pdf

accessibile in internet per tutti

Descrizione: Thesis text
Dimensione 1.8 MB
Formato Adobe PDF
1.8 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/100465