Assicurare la riconfigurazione degli Fpga nello spazio

Nel 2007 il Ministero Federale Tedesco dell'Economia e della Tecnologia commissionò al Centro Aerospaziale Tedesco uno studio di fattibilità su un satellite sperimentale per esplorare i metodi di comunicazione. Il governo e i ricercatori accademici useranno il satellite, noto come satellite di comunicazione Heinrich Hertz, per eseguire esperimenti nella banda Ka e K. Il suo lancio è previsto per il 2017. Un elemento chiave di questo sistema è il processore su scheda progettato dal centro Franuhofer, realizzato su Fpga Virtex-5QV di Xilinx.
Il processore Fraunhofer su scheda - che è coinvolto nella verifica in orbita dei moduli nello spazio - è il modulo essenziale del transponder rigenerativo del satellite. Dato che il satellite Heinrich Hertz sarà usato per un vasto numero di esperimenti nel campo delle comunicazioni, abbiamo scelto di sfruttare la capacità dell'Fpga di essere riconfigurato per diversi compiti. Questo consente di risparmiare spazio, riduce il peso e rende possibile l'uso dei protocolli futuri di comunicazione. Tuttavia, siccome lo spazio è forse l'ambiente più ostile per l'elettronica, abbiano dovuto effettuare alcuni passaggi chiave per assicurare che il sistema possa essere riconfigurato in modo affidabile. Gli Fpga di Xilinx resistenti alle radiazioni offrono una soluzione perfetta per le applicazioni riconfigurabili nello spazio in relazione alla dose ionizzante totale, agli effetti degli eventi singoli, alle vibrazioni e ai cicli termici. La riconfigurazione dell'hardware digitale di questi Fpga costituisce una funzione essenziale in questa missione satellitare geostazionaria, allo scopo di assicurare la flessibilità del sistema. Per ottenere una riconfigurazione robusta senza un singolo punto di guasto, abbiamo ideato una metodologia a due tracce che utilizza due metodi di configurazione in parallelo. A parte il metodo allo stato dell'arte, abbiamo anche introdotto un metodo di riconfigurazione a prova di guasto attraverso la riconfigurazione parziale, che rende possibile l'auto-riconfigurazione degli Fpga.
Un metodo diretto per configurare gli Fpga consiste nell'usare un processore esterno resistente alle radiazioni con una memoria di massa resistente alle radiazioni (ad esempio, una memoria flash). In questo caso, il file di configurazione (parziale) è archiviato nella memoria e il processore configura l'Fpga con la sequenza di bit. Questo approccio offre una buona flessibilità se il vostro progetto richiede una riconfigurazione totale dell'Fpga e presenta numerosi file di configurazione su scheda. Potete aggiornare o verificare i file di configurazione attraverso un canale di telemetria/telecomando a bassa velocità di trasmissione dati o un collegamento di trasmissione o di ricezione per le comunicazioni digitali con una velocità di trasmissione dati superiore. Questo metodo di configurazione Sota è non ridondante. Ipotizziamo un guasto del processore o dell'interfaccia di configurazione. Ora è impossibile riconfigurare l'Fpga e tutti i dispositivi Virtex-5QV sono inutili.

Il concetto globale di configurazione per l'Fpga

I metodi di configurazione per un Fpga sono il metodo Sota e il metodo con configurazione a prova di guasto (noto anche come configurazione iniziale), che richiede solo una memoria non volatile resistente alle radiazioni (Prom o Ram magnetoresistiva) come componente esterno. Questo componente archivia il firmware iniziale, riconoscibile come contenuto dell'Fpga. Usiamo questi due metodi di configurazione in parallelo allo scopo di trarre beneficio dai vantaggi di entrambi. Con questo approccio aumentiamo anche l'affidabilità nella riconfigurazione e superiamo il problema del singolo punto di guasto.
Un metodo di configurazione a prova di guasto
Abbiamo progettato questo metodo di configurazione iniziale a prova di guasto allo scopo di rendere possibile l'auto-riconfigurazione dell'Fpga. Attraverso il metodo di configurazione iniziale, l'Fpga si autoconfigura all'avvio del processore su scheda. Usiamo il protocollo di configurazione master seriale per la Prom o l'interfaccia byte periferica per la Ram magnetoresistiva (Mram). Tuttavia, è richiesta solo una memoria non volatile per Fpga per questo metodo di configurazione a prova di guasto. Abbiamo separato il firmware della configurazione iniziale in aree dinamiche (in blu) e statiche (in rosso chiaro e in rosso). Con la riconfigurazione parziale (PR), è possibile riconfigurare le aree dinamiche mentre stanno ancora girando le aree statiche e altre aree dinamiche. Dopo una sequenza di avvio, l'Fpga si autoconfigura automaticamente con il firmware iniziale ed è pronto a ricevere nuovi file di bit parziali o anche completi (solo dalla Mram). Un trasmettitore a terra include questi file di bit all'interno di una sequenza di dati, li cifra, li codifica e li modula, e li invia attraverso il collegamento verso il satellite. In seguito al condizionamento e alla digitalizzazione del segnale, la prima partizione configurabile (RP0) all'interno dell'Fpga riceve la sequenza di dati digitali. RP0 esegue una demodulazione digitale e la decodifica. La Ram a blocchi, o Bram, condivide il file di bit impacchettato con il sistema MicroBlaze. Il MicroBlaze spacchetta il file di bit e lo archivia nella Sram o Sdram. Il processore MicroBlaze riconfigura una partizione dinamica riconfigurabile (RP) o tutte le RP con un accesso diretto in memoria (Dma) attraverso la porta di accesso interna di configurazione (Icap). La parte statica dell'Fpga non dovrebbe essere configurata. In caso di un RP0 sovrascritto, un comando ad alta priorità sul bus di controllo del satellite può riavviare il processore su scheda. Questo comando è in grado di ripristinare la configurazione iniziale a prova di guasto. Esistono numerose nuove applicazioni possibili per le partizioni riconfigurabili, inclusi i trasmettitori digitali, i ricevitori digitali e la sostituzione di un protocollo per le comunicazioni altamente affidabile, tra gli altri. Potete anche riconfigurare e passare a nuovi sottomoduli come i demappatori o i decodificatori per la codifica e la modulazione adattativa. Potete anche sostituire l'intero file di bit di configurazione a prova di guasto con un nuovo file iniziale riverificato attraverso la Mram come memoria di massa per la configurazione iniziale. Con un trasmettitore digitale, il processore su scheda può anche re-inviare i dati di configurazione sulla Terra al fine di verificare i file di bit sul campo.

Affidabilità della configurazione

Uno dei principali vantaggi legati all'uso di entrambi i metodi di configurazione (Sota e iniziale) è un aumento dell'affidabilità complessiva del sistema. Esiste un inconveniente nel metodo iniziale a prova di guasto, che riguarda le risorse Fpga utilizzabili. In una missione orbitale geosincrona con un termine di 15 anni, l'affidabilità delle procedure più importanti come la configurazione dipende dai tassi di guasto durante il tempo di funzionamento (Fit) di entrambi i metodi di configurazione. Ipotizziamo un tasso tipico di Fit di 500 in un processore di configurazione rappresentativo e nelle sue periferiche per il metodo di configurazione Sota. La Prom raggiunge un tasso Fit molto migliore di 61 (metodo di stress dei componenti per la previsione del tasso di guasto in condizioni operative relative alla norma MIL-HDBK 217). Ciò nonostante, entrambi i metodi sono a singolo punto di guasto. Solo il funzionamento parallelo garantisce un aumento significativo nell'affidabilità della procedura di configurazione. Il calcolo dell'affidabilità del metodo di configurazione Sota considerato autonomamente fornisce Rsc = 0.9364 e Ric = 0.9920 per il metodo iniziale, con i parametri dati per la missione. L'affidabilità complessiva di configurazione per i sistemi in parallelo è Rc = 0.9929. Dobbiamo confrontare Rc e Rsc allo scopo di ottenere il guadagno dell'affidabilità di riconfigurazione. Il guadagno ottenuto (Rc - Rsc) è del 5,65 per cento. La configurazione iniziale presenta alcune restrizioni in termini di risorse Fpga. Ciò nondimeno, potete ancora riconfigurare l'intero Fpga in ogni momento con il metodo di configurazione Sota più complesso se il processore esterno di configurazione è ancora funzionante. Entrambi i metodi possono correggere i guasti dell'Fpga causati da singoli eventi di perdita del controllo della configurazione. Per il metodo di configurazione Sota, il processore di configurazione esterno effettua un filtraggio, come fa il MicroBlaze auto-filtrato per il metodo di configurazione iniziale.

Configurazione a prova di guasto

L'Fpga è diviso in tre parti: MicroBlaze, blocchi di proprietà intellettuale e RP. Un aspetto del sistema MicroBlaze è la gestione della memoria. Accanto alla Prom o alla Mram abbiamo collegato una Sram e una Dram. Questi due tipi diversi di memoria rendono possibili applicazioni come le memorie tampone temporanee dei pacchetti e la memorizzazione di contenuti (ad esempio, file video). Il blocco multiplexer della memoria (Mem Mux) consente di ottenere una flessibilità superiore. Esso combina la memoria ai blocchi RP o alla regione MicroBlaze. I semafori controllano il multiplexer attraverso una connessione di ingresso/uscita con funzione generica (Gpio). Di conseguenza, solo una regione può usare la memoria con porta singola in ogni istante determinato. La configurazione iniziale contiene anche la memoria interna con la Bram, che presenta un'opportunità per uno scambio rapido di dati di entrambe le regioni. Il modulo di interfaccia wrapper della struttura in Xilinx Platform Studio (XPS) consente l'integrazione universale del sistema MicroBlaze con supporto e connessione di porte indipendenti. Abbiamo messo a punto i blocchi IP come le Bram, i RocketIO e il controllore digitale del clock (Dcm). Il blocco di commutazione RP connette i blocchi RP attraverso le impostazioni nella configurazione di commutazione dei blocchi RP, e connette in modo flessibile i blocchi RP. Un controllo del flusso di dati (Dfc) gestisce il flusso di dati fra i blocchi RP. Gli Fpga comunicano l'uno con l'altro per mezzo dei RocketIO e della trasmissione di segnali differenziali a bassa tensione (Lvds). Abbiamo diviso i blocchi RP in due partizioni con il 20 per cento di risorse di blocchi logici configurabili (Clb) dell'Fpga e due partizioni con il 10 per cento di risorse Clb. Abbiamo anche cercato di condividere le slice DSP48 e la Bram in parti uguali e il più possibile a tutte le partizioni. La parte principale dell'implementazione è la progettazione del sistema e la disposizione dei componenti su scheda, che abbiamo realizzato con il tool PlanAhead di Xilinx. Abbiamo combinato il sistema MicroBlaze, i blocchi IP, la progettazione software e i moduli parziali in linguaggio utente di descrizione hardware, chiamati moduli riconfigurabili. Abbiamo anche definito la posizione dei blocchi RP, pianificato i cicli di funzionamento del progetto, scelto una strategia di sintesi e vincolato il processo in questa fase. Un file di mappa della memoria Bram definisce le risorse della memoria Bram per la memoria dati e istruzioni. Questo consente un'integrazione del software MicroBlaze iniziale nel file di bit. Attualmente stiamo sviluppando un ricevitore altamente affidabile per la prima partizione (RP0), che sarà usato nella configurazione iniziale (sul satellite) per ricevere i dati di configurazione (demodulazione, demappatura, deinterlacciamento e decodifica). Abbiamo ottenuto un numero di Clb leggermente più alto, per mezzo dei quali le slice Dsp raggiungono pressoché il massimo. Le risorse Bram corrispondono ai blocchi Clb per via del fatto che i MicroBlaze richiedono risorse di memoria Bram. Le risorse consumate dall'area statica sono circa il 30 per cento. Abbiamo progettato questo firmware per il dispositivo Virtex-5 FX130 commerciale, allo scopo di provare il concetto con una scheda sperimentale elegante. A questo punto, siamo pronti per trasferire questo progetto sul Virtex-5QV e per mettere a punto ulteriori caratteristiche, come la ridondanza modulare tripla o i codici di correzione degli errori.

Il problema è risolto

Un singolo punto di guasto relativo alla configurazione dell'Fpga è un problema in applicazioni altamente affidabili. Potete superare questo problema con una configurazione iniziale, che richiede solo un dispositivo aggiuntivo per Fpga. La riconfigurazione parziale consente la configurazione dell'Fpga da remoto attraverso la configurazione iniziale a prova di guasto. L'uso di entrambe le configurazioni in parallelo combina i loro vantaggi principali: l'aumento del 5,65% nell'affidabilità della configurazione e nella flessibilità di riconfigurare l'Fpga completo. Le sfide nella progettazione e nella realizzazione del sistema richiedono un compromesso fra la complessità legata all'instradamento dei segnali e alle risorse di temporizzazione e le risorse utilizzabili nel progetto. Una scheda sperimentale elegante ne mostra la realizzazione e la verifica con successo in uno scenario del mondo reale.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome