In the last decades, Static RAM (SRAM) Field Programmable Gate Arrays (FPGAs) have become an attractive technology for the electronics of embedded systems, for both fast prototyping and final production. Their most attractive feature is the flexibility, related to the opportunity of re-programming (or reconfiguring) the device in a few clock cycles and on-line, while the device is operating. This allows the system implemented on the FPGA to be updated/upgraded, also remotely. SRAM-based FPGAs are currently employed in many applicative domains and their use is being investigated also for mission-critical applications, such as the space scenario, the reference settings for this thesis. In fact, in the space environment, such devices are an attractive technology for the possibility of remote update/upgrade, coping with the difficulty of system maintenance. Nevertheless, the harsh environmental conditions and the long lifetime required for space systems prevent the straightforward adoption of SRAM-based FPGAs, due to their susceptibility to faults. In fact, this same environment is particularly critical for static RAM technology, susceptible to physical phenomena that cause both transient and permanent faults. Thus, appropriate tolerance and recovery techniques are adopted; in general, fault tolerance techniques are mostly based on spatial redundancy, whereas recovery ones exploit the FPGAs' reconfiguration capability, allowing to cope with the occurrence of faults by re-programming the faulty parts. Indeed, hardened systems may require many resources due to their size and complexity, hence a single device may not suffice in terms of available resources, and multi-FPGA solutions are taken into account and investigated. Furthermore, the availability of more devices on multi-FPGA platforms can be exploited to increase reliability as the overall functionality is spread over multiple devices, possibly also using redundant implementations. The research proposed in this PhD thesis fits in the described scenario. The aim is the definition of a reliability-aware methodology for the design of embedded systems on multi-FPGA platforms. The designed system must be able to detect faults occurrence globally and autonomously, in order to recover or to mitigate the effects of the faults. Two categories of faults are identified, based on their impact on the device elements; - non-recoverable faults, that are those that cause a permanent problem, making the portion of the fabric unusable, and - recoverable faults, transient problems that can be fixed without causing a lasting effect. While some aspects can be taken from previous solutions available in literature, several open issues exist. In fact, reliability techniques have been widely addressed in the case of systems based on a single FPGA, but the problem extended to multi-FPGA platforms has been rarely taken into account. Indeed, the single FPGA approaches can not be straightforwardly adopted for the multi-FPGA scenario, that poses several challenges, as, for instance, the partitioning of the system among the available devices. Furthermore, in the previous contributions, only recoverable faults are usually targeted, whereas non-recoverable ones are rarely analyzed. Thus, no complete design methodology handling all the peculiar issues of the considered scenario has been proposed yet, a gap we aim at filling with our work. Not only we define the methodology in its relevant aspects, but we also design and develop a framework for supporting the designer in its application. The final system thus exposes reliability properties and increases its overall lifetime and availability.

Negli ultimi decenni, i dispositivi FPGA (Field Programmable Gate Array) basati su SRAM (Static RAM) sono diventati una tecnologia di interesse per l'elettronica dei sistemi dedicati, sia per la prototipazione veloce che per la produzione finale. La loro caratteristica di maggiore interesse è la flessibilità, relativa all'opportunità di riprogrammare (o riconfigurare) il dispositivo in pochi cicli di clock e on-line, mentre il dispositivo è operativo. Questo permette di aggiornare/migliorare il sistema implementato sulla FPGA, anche remotamente. Le FPGA basate su SRAM sono attualmente impiegate in molti domini applicativi e il loro uso viene vagliato anche per applicazioni critiche, come lo scenario delle missioni spaziali, di riferimento per questa tesi. Infatti, nell'ambiente spazio, tali dispositivi sono una tecnologia di interesse per la possibilità di aggiornamento/miglioramento remoto, che fa fronte alla difficoltà di manutenzione del sistema. Tuttavia, le difficili condizioni ambientali e il lungo tempo di vita richiesto per i sistemi per lo spazio ostacolano l'immediata adozione delle FPGA basate su SRAM, a causa della loro sensibilità ai guasti. Infatti, questo stesso ambiente è particolarmente critico per la tecnologia RAM statica, sensibile a fenomeni fisici che causano guasti sia transitori che permanenti. Di conseguenza, vengono adottate appropriate tecnologie di tolleranza e recupero; in generale, le tecniche di tolleranza sono per lo più basate sulla ridondanza spaziale, mentre quelle di recupero sfruttano la capacità di riconfigurazione delle FPGA, permettendo di far fronte al verificarsi dei guasti riprogrammando le parti guaste. Invero, i sistemi irrobustiti possono richiedere molte risorse a causa della loro dimensione e complessità, quindi un singolo dispositivo può non essere sufficiente in termini di risorse disponibili, e le soluzioni multi-FPGA vengono prese in considerazione e valutate. Inoltre, la disponibilità di più dispositivi sulle piattaforme multi-FPGA può essere sfruttata per aumentare l'affidabilità poichè la funzionalità globale è distribuita su più dispositivi, eventualmente anche usando implementazioni ridondanti. La ricerca proposta in questa tesi di dottorato si inserisce nello scenario descritto. L'obiettivo è la definizione di una metodologia orientata all'affidabilità per il progetto di sistemi dedicati su piattaforme multi-FPGA. Il sistema progettato deve essere in grado di identificare il verificarsi di guasti globalmente e autonomamente, per recuperare o mitigare gli effetti dei guasti. Vengono identificate due categorie di guasti, in base al loro impatto sugli elementi del dispositivo: - guasti non recuperabili, che sono quelli che causano un problema permanente, rendendo inutilizzabile la porzione del dispositivo, e - guasti recuperabili, problemi transitori che possono essere risolti senza causare un effetto persistente. Nonostante alcuni aspetti possano essere presi da soluzioni precedenti disponibili in letteratura, esistono molti punti aperti. Infatti, le tecniche di affidabilità sono state ampiamente affrontate nel caso di sistemi basate su una singola FPGA, ma il problema esteso alle piattaforme multi-FPGA è stato raramente preso in considerazione. Invero, gli approcci per singola FPGA non possono essere direttamente adottati per lo scenario multi-FPGA, che pone molte sfide, come, per esempio, il partizionamento del sistema tra i dispositivi disponibili. Inoltre, nei contributi precedenti, sono di solito trattati solo i guasti recuperabili, mentre quelli non recuperabili sono raramente analizzati. Di conseguenza, non è ancora stata proposta una metodologia di progetto completa che gestisca tutti i problemi peculiari dello scenario considerato, un vuoto che puntiamo a colmare con il nostro lavoro. Non solo definiamo la metodologia nei suoi aspetti rilevanti, ma inoltre progettiamo e sviluppiamo una struttura che supporti il progettista nella sua applicazione. Di conseguenza il sistema finale espone proprietà di affidabilità e aumenta il suo tempo di vita globale e la sua disponibilità.

A reliability-aware design methodology for embedded systems on multi-FPGA platforms

SANDIONIGI, CHIARA

Abstract

In the last decades, Static RAM (SRAM) Field Programmable Gate Arrays (FPGAs) have become an attractive technology for the electronics of embedded systems, for both fast prototyping and final production. Their most attractive feature is the flexibility, related to the opportunity of re-programming (or reconfiguring) the device in a few clock cycles and on-line, while the device is operating. This allows the system implemented on the FPGA to be updated/upgraded, also remotely. SRAM-based FPGAs are currently employed in many applicative domains and their use is being investigated also for mission-critical applications, such as the space scenario, the reference settings for this thesis. In fact, in the space environment, such devices are an attractive technology for the possibility of remote update/upgrade, coping with the difficulty of system maintenance. Nevertheless, the harsh environmental conditions and the long lifetime required for space systems prevent the straightforward adoption of SRAM-based FPGAs, due to their susceptibility to faults. In fact, this same environment is particularly critical for static RAM technology, susceptible to physical phenomena that cause both transient and permanent faults. Thus, appropriate tolerance and recovery techniques are adopted; in general, fault tolerance techniques are mostly based on spatial redundancy, whereas recovery ones exploit the FPGAs' reconfiguration capability, allowing to cope with the occurrence of faults by re-programming the faulty parts. Indeed, hardened systems may require many resources due to their size and complexity, hence a single device may not suffice in terms of available resources, and multi-FPGA solutions are taken into account and investigated. Furthermore, the availability of more devices on multi-FPGA platforms can be exploited to increase reliability as the overall functionality is spread over multiple devices, possibly also using redundant implementations. The research proposed in this PhD thesis fits in the described scenario. The aim is the definition of a reliability-aware methodology for the design of embedded systems on multi-FPGA platforms. The designed system must be able to detect faults occurrence globally and autonomously, in order to recover or to mitigate the effects of the faults. Two categories of faults are identified, based on their impact on the device elements; - non-recoverable faults, that are those that cause a permanent problem, making the portion of the fabric unusable, and - recoverable faults, transient problems that can be fixed without causing a lasting effect. While some aspects can be taken from previous solutions available in literature, several open issues exist. In fact, reliability techniques have been widely addressed in the case of systems based on a single FPGA, but the problem extended to multi-FPGA platforms has been rarely taken into account. Indeed, the single FPGA approaches can not be straightforwardly adopted for the multi-FPGA scenario, that poses several challenges, as, for instance, the partitioning of the system among the available devices. Furthermore, in the previous contributions, only recoverable faults are usually targeted, whereas non-recoverable ones are rarely analyzed. Thus, no complete design methodology handling all the peculiar issues of the considered scenario has been proposed yet, a gap we aim at filling with our work. Not only we define the methodology in its relevant aspects, but we also design and develop a framework for supporting the designer in its application. The final system thus exposes reliability properties and increases its overall lifetime and availability.
BOLCHINI, CRISTIANA
FIORINI, CARLO ETTORE
SCIUTO, DONATELLA
22-feb-2012
Negli ultimi decenni, i dispositivi FPGA (Field Programmable Gate Array) basati su SRAM (Static RAM) sono diventati una tecnologia di interesse per l'elettronica dei sistemi dedicati, sia per la prototipazione veloce che per la produzione finale. La loro caratteristica di maggiore interesse è la flessibilità, relativa all'opportunità di riprogrammare (o riconfigurare) il dispositivo in pochi cicli di clock e on-line, mentre il dispositivo è operativo. Questo permette di aggiornare/migliorare il sistema implementato sulla FPGA, anche remotamente. Le FPGA basate su SRAM sono attualmente impiegate in molti domini applicativi e il loro uso viene vagliato anche per applicazioni critiche, come lo scenario delle missioni spaziali, di riferimento per questa tesi. Infatti, nell'ambiente spazio, tali dispositivi sono una tecnologia di interesse per la possibilità di aggiornamento/miglioramento remoto, che fa fronte alla difficoltà di manutenzione del sistema. Tuttavia, le difficili condizioni ambientali e il lungo tempo di vita richiesto per i sistemi per lo spazio ostacolano l'immediata adozione delle FPGA basate su SRAM, a causa della loro sensibilità ai guasti. Infatti, questo stesso ambiente è particolarmente critico per la tecnologia RAM statica, sensibile a fenomeni fisici che causano guasti sia transitori che permanenti. Di conseguenza, vengono adottate appropriate tecnologie di tolleranza e recupero; in generale, le tecniche di tolleranza sono per lo più basate sulla ridondanza spaziale, mentre quelle di recupero sfruttano la capacità di riconfigurazione delle FPGA, permettendo di far fronte al verificarsi dei guasti riprogrammando le parti guaste. Invero, i sistemi irrobustiti possono richiedere molte risorse a causa della loro dimensione e complessità, quindi un singolo dispositivo può non essere sufficiente in termini di risorse disponibili, e le soluzioni multi-FPGA vengono prese in considerazione e valutate. Inoltre, la disponibilità di più dispositivi sulle piattaforme multi-FPGA può essere sfruttata per aumentare l'affidabilità poichè la funzionalità globale è distribuita su più dispositivi, eventualmente anche usando implementazioni ridondanti. La ricerca proposta in questa tesi di dottorato si inserisce nello scenario descritto. L'obiettivo è la definizione di una metodologia orientata all'affidabilità per il progetto di sistemi dedicati su piattaforme multi-FPGA. Il sistema progettato deve essere in grado di identificare il verificarsi di guasti globalmente e autonomamente, per recuperare o mitigare gli effetti dei guasti. Vengono identificate due categorie di guasti, in base al loro impatto sugli elementi del dispositivo: - guasti non recuperabili, che sono quelli che causano un problema permanente, rendendo inutilizzabile la porzione del dispositivo, e - guasti recuperabili, problemi transitori che possono essere risolti senza causare un effetto persistente. Nonostante alcuni aspetti possano essere presi da soluzioni precedenti disponibili in letteratura, esistono molti punti aperti. Infatti, le tecniche di affidabilità sono state ampiamente affrontate nel caso di sistemi basate su una singola FPGA, ma il problema esteso alle piattaforme multi-FPGA è stato raramente preso in considerazione. Invero, gli approcci per singola FPGA non possono essere direttamente adottati per lo scenario multi-FPGA, che pone molte sfide, come, per esempio, il partizionamento del sistema tra i dispositivi disponibili. Inoltre, nei contributi precedenti, sono di solito trattati solo i guasti recuperabili, mentre quelli non recuperabili sono raramente analizzati. Di conseguenza, non è ancora stata proposta una metodologia di progetto completa che gestisca tutti i problemi peculiari dello scenario considerato, un vuoto che puntiamo a colmare con il nostro lavoro. Non solo definiamo la metodologia nei suoi aspetti rilevanti, ma inoltre progettiamo e sviluppiamo una struttura che supporti il progettista nella sua applicazione. Di conseguenza il sistema finale espone proprietà di affidabilità e aumenta il suo tempo di vita globale e la sua disponibilità.
Tesi di dottorato
File allegati
File Dimensione Formato  
2012_02_PhD_Sandionigi.pdf

accessibile in internet per tutti

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