Fpga basati su Flash per ambienti ostili

APPLICAZIONI AEROSPAZIALI –

Caratterizzati da consumi inferiori rispetto agli Fpga basati su Sram i dispositivi programmabili basati su Flash delle più recenti generazioni possono contare su caratteristiche e tool che permettono di ridurre ulteriormente la dissipazione di potenza.

Sebbene gli Fpga siano utilizzati da molto tempo nel settore militare, le opzione per i progettisti che operano in questo comparto sono recentemente aumentate. La disponibilità di Fpga riprogrammabili, non volatili e con elevato numero di gate in grado di operare nell'intervallo di temperatura militare e conformi alle specifiche Mil-Std 883 classe B ha consentito ai contractor che operano nel settore militare di sviluppare sistemi molto più complessi e caratterizzati da una sensibile riduzione del consumo di potenza. Gli Fpga basati su Flash, grazie ai loro vantaggi intrinseci rispetto agli equivalenti dispositivi basati su Sram, hanno reso tutto ciò possibile e vengono ora utilizzati in un'ampia gamma di applicazioni tra cui computer di volo per aerei militari, computer da missione, sistemi Sms (Stores Management System) e controllo digitale del motore.

Un ambiente particolarmente “ostile”
Spesso i sistemi militari devono operare in ambienti con vincoli molto severi dal punto di vista termico. In parecchi casi le apparecchiature hardware per applicazioni militari sono progettate in modo da operare in assenza di un flusso d'aria di raffreddamento: la presenza di una ventola potrebbe infatti favorire l'ingresso di particelle estranee e detriti, con conseguenze negative sull'affidabilità. Senza dimenticare che se il corretto funzionamento di un sistema dipende dal flusso d'aria prodotto da una ventola per il raffreddamento, un guasto di quest'ultima può provocare il surriscaldamento del sistema stesso con gli effetti negativi che ciò comporta. Di conseguenza il progetto di un sistema può prevedere l'assenza di un flusso d'aria di raffreddamento. I più recenti Fpga basati su Flash, che abbinano caratteristiche quali funzionamento nell'intervallo di temperatura militare, basso consumo di corrente e ridotta dissipazione termica, si propongono come una soluzione efficace per le applicazioni come quella appena descritta. In un recente programma per la realizzazione di un velivolo militare si è incontrata una situazione di questo tipo: i sistemi che non prevedono nessun flusso d'aria per il raffreddamento hanno provocato il superamento della massima temperatura di giunzione dei semiconduttori utilizzati, che erano adatti all'uso nell'intervallo di temperatura industriale (da -40 a +85 °C). Di conseguenza è stato necessario modificare l'elenco dei componenti richiesti per questo progetto in modo da includere componenti capaci di operare nell'intervallo di temperatura militare (da -5 a +125 °C). La disponibilità di Fpga basati su Flash espressamente ideati per l'usi nel campo di temperatura militare ha reso possibile l'apporto di questa modifica alla lista dei componenti.

Tool per la riduzione dei consumi
Il principale vantaggio degli Fpga basati su Flash rispetto ai dispositivi logici programmabili basati su Sram è la dissipazione di potenza. I consumi di potenza dei primi sono intrinsecamente inferiori rispetto a quelli dei secondi a parità di densità. Oltre a ciò, gli attuali Fpga basati su Flash possono contare su caratteristiche e tool che permettono di ridurre ulteriormente la dissipazione di potenza. Un funzionalità estremamente importante che fornisce un valido ausilio ai progettisti impegnati nella minimizzazione dei consumi è il layout pilotato dalla potenza consumi. L'utilizzo di questa opzione consente ai progettisti di ridurre fino al 30% i consumi di potenza di un Fpga rispetto a un software di piazzamento e sbroglio (place and route) tradizionale. Il software per il layout power-driven, che ha un impatto nullo o quantomeno trascurabile sulle temporizzazioni, permette di indirizzare il piazzamento del layout fisico del progetto Fpga in modo da minimizzare il consumo di potenza dinamica nelle applicazioni sensibili ai consumi. Il layout power driven opera in modo da ridurre il carico capacitivo sulle reti mediante la minimizzazione della lunghezza delle connessioni di sbroglio (routing). Esso cerca inoltre di ridurre la potenza necessaria per il pilotaggio delle reti di clock mediante la diminuzione delle risorse globali - in termini di righe e reti a spina (in pratica una griglia regolare) - utilizzate dai clock. Oltre al layout power-driven, sono disponibili tool avanzati per l'analisi di un progetto che rappresentano un valido ausilio nello sviluppo di design in cui i consumi rappresentano un elemento critico. Gli odierni dispositivi elettronici per applicazioni militari non sempre richiedono il massimo della potenza durante il periodo in cui sono in funzione (“on” time). Questo tempo di “on” è una combinazione di modalità attive e semi-attive - come ad esempio modalità statica, modalità sleep o modalità di stand-by. Oltre alle tradizionali analisi su reti, porte, I/O, domini di clock, memorie, terminali di alimentazione, istanze dei componenti e modalità oerative, gli attuali tool analizzano la potenza sulla base dei consumi totali del progetto misurati in funzione del tempo. Tool di questo tipo permettono ai progettisti di creare un profilo di potenza per un dato design. Tale profilo può essere ottenuto da una combinazione di modalità dinamica, statica e in standby. La stima della potenza totale è basata sulla media ponderata del consumo di potenza in tutte le modalità. Ciò permette di ottenere una valutazione più realistica dei consumi.

Flessibilità di scelta
A livello di dispositivo, il range di tensione di alimentazione degli Fpga basati su Flash operanti nell'intervallo di temperatura militare è compreso tra 1,2 e 1,5 V. Un intervallo così ampio permette ai progettisti di scegliere la tensione di alimentazione più adatta per la particolare applicazione considerata. Per esempio, nel caso di un'applicazione che richieda prestazioni elevate, può essere necessaria una tensione di alimentazione di 1,5 V. Se il progettista deve minimizzare il consumo di potenza, può scegliere una tensione di alimentazione nominale di 1,2 V. In questo caso i ritardi di propagazione possono risultare più lunghi in misura pari a circa il 23%, fatto questo che provoca una penalizzazione in termini di prestazioni rispetto a quelle ottenibili con un'alimentazione a 1,5 V, ma i consumi saranno ridotti in misura pari a 1/3. I progettisti sono quindi liberi di scegliere qualsiasi valore di tensione di alimentazione compresa tra 1,2 e 1,5 V in modo da ottenere il miglior compromesso tra prestazioni e consumi per la particolare applicazione considerata. Inoltre è anche possibile modificare in maniera dinamica l'intervallo di tensione di alimentazione durante il funzionamento. Per esempio, se un Fpga basato su Flash sta effettuando un'operazione di elaborazione dati, potrebbe monitorare il flusso di dati che sta processando. Quando il flusso di dati è scarso, potrebbe inviare un segnale al circuito di alimentazione per ridurre la tensione di alimentazione a 1,2 V, al fine di diminuire i consumi. Nel momento in cui il flusso di dati si intensifica, l'Fpga potrebbe inviare un segnale al circuito di alimentazione in modo da far aumentare la tensione di alimentazione a 1,5 V al fine di migliorare le prestazioni. Quando è richiesta la massima capacità di elaborazione può risultare accettabile un maggior consumo di potenza al fine di elaborare in maniera efficace grandi quantità di dati. Nelle applicazioni che richiedono consumi minimi durante i periodi di inattività, i più recenti Fpga basati su Flash dispongono di una modalità di stand-by abbastanza sofisticate che viene attivata in tempi brevissimi. Essa ottimizza il risparmio di potenza ponendo clock e I/O in modalità tri-state preservando nel contempo gli stati interni dei registri e della Ram dell'utente. Il tempo di commutazione richiesto per entrare o uscire da questa modalità di stand-by è inferiore al microsecondo.

Affidabilità a prova di neutroni
La non volatilità della tecnologia di interconnessione programmabile basata su Flash non richiede la presenza di alcun dispositivo esterno per la memorizzazione del codice. Ciò comporta una riduzione degli ingombri a bordo della scheda a parità di logica programmabile utilizzata. In secondo luogo, le celle programmabili degli attuali Fpga sono immuni ai fenomeni di upset (inversione dei bit) provocati dai neutroni presenti nell'atmosfera. Per contro è stato dimostrato nel corso di numerosi test condotti da organismi indipendenti che gli Fpga basati su Sram sono soggetti a variazioni di configurazione e quindi a malfunzionamenti a causa di questi neutroni. Noti come “firm error” (ovvero di natura non transitoria), questi upset sono estremamente gravi poiché l'Fpga che ne è affetto può generare dati errati per parecchi millisecondi prima che l'errore venga identificato e corretto. Durante questo intervallo di tempo i dispositivi a valle possono intraprendere azioni sulla base di questi dati errati, con conseguenze imprevedibili e a volte catastrofiche. Gli odierni Fpga basati su Flash sono immuni di questi fenomeni perché l'energia trasferita quando un neutrone dell'atmosfera entra in collisione con il silicio è insufficiente per depositare la quantità di carica necessaria per modificare lo stato della Flash. Un ulteriore vantaggio per quel che concerne i consumi degli Fpga basati su Flash è collegato all'assenza di guasti a livello di configurazione prodotti dai neutroni. La necessità di alleviare gli effetti di queste modalità di guasto comporta un aumento dei consumi degli Fpga basati su Sram. Durante la riconfigurazione di un Fpga basato su Sram il consumo di corrente può arrivare fino a 1 A per un dispositivo da un milione di gate. Ciò è dovuto al fatto che nel corso della riconfigurazione vi è un breve periodo durante il quale le celle della Sram che controllano il collegamento delle risorse di interconnessione sono indeterminate. Ciò può dar luogo al sorgere di parecchie contese all'interno dell'Fpga che provocano il verificarsi di corto circuiti. Anche se la durata di questi eventi che richiedono una corrente di elevata intensità è piuttosto breve, l'alimentazione deve essere progettata in modo da poter far fronte a queste eventualità - infatti se in fase di avvio la corrente è insufficiente, l'Fpga può non essere alimentato correttamente.
In definitiva se si prendono opportuni accorgimenti per gestire il consumo di potenza a livello di chip, è possibile effettuare un controllo efficiente dei consumi a livello dell'intero sistema. I sistemi elettronici portatili oppure montati a bordo dei veicoli e dei sistemi d'arma sono divenuti sempre più complessi. Anche se la tecnologia delle batterie ha compiuto notevoli progressi, i progettisti dei sistemi elettronici non possono fare affidamento sui costruttori di batterie per mantenere il passo con l'evoluzione tecnologica, bensì adottare accorgimenti efficaci per la riduzione dei consumi. Gli Fpga basati su Flash rappresentano un importante passo in avanti in questa direzione.

Pubblica i tuoi commenti