Controllo di ridondanza ciclico (CRC) negli FPGA della serie Stratix®
La capacità di rilevare e agire su singoli eventi di disturbo (SEU) mentre un FPGA è in funzione è diventata più importante che mai. Tutti gli FPGA Stratix® dispongono di circuiti hard intellectual property (IP) dedicati al controllo di ridondanza ciclico (CRC) che rilevano i flip del bit CRAM e indicano un errore su un pin CRC_ERROR dedicato.
A partire dalla generazione del processo a 130 nm ( FPGA Stratix®), Intel® FPGA ha incluso in tutti gli FPGA un circuito di rilevamento degli errori in background utilizzando un hard CRC checker per consentire una verifica continua del contenuto della CRAM durante il funzionamento del dispositivo. Il CRC è garantito per rilevare gli errori multi-bit. Il vantaggio di integrare il circuito CRC su chip in porte rigide è che il circuito è robusto e non suscettibile di errori soft. Inoltre, il circuito CRC è un blocco autonomo ed è abilitato semplicemente selezionando una casella nelle opzioni di compilazione di Quartus® II.
Attraverso il processo e le tecniche di progettazione, Intel® FPGA ha migliorato il FIT/Mb con ogni generazione di tecnologia. Abbiamo anche fornito soluzioni di mitigazione migliorate per gli errori soft a vari livelli - silicio, IP e strumenti.
Uno di questi esempi di miglioramento è l'aumento della funzionalità e della sofisticazione dei circuiti CRC, come mostrato nella Tabella 1.
Tabella 1. Miglioramenti CRC negli FPGA della serie Stratix®
Famiglia FPGA serie Stratix®1 |
CRAM CRC |
CRAM CRC |
CRAM |
Iniezione |
Errore |
Errore CRAM |
On-chip |
---|---|---|---|---|---|---|---|
Sì |
- |
- |
- |
- |
- |
- |
|
Sì |
- |
- |
- |
- |
- |
- |
|
- |
Sì |
Sì |
Sì |
Sì |
- |
Sì |
|
- |
Sì |
Sì |
Sì |
Sì |
- |
Sì |
|
- |
Sì |
Sì |
Sì |
Sì |
Sì |
Sì |
- Seleziona il link appropriato alla famiglia della serie Stratix® per i dettagli completi sulle funzionalità CRC in una specifica famiglia di FPGA Stratix®.
Controllo di errore di configurazione
Tutti gli FPGA Intel® FPGA serie Stratix® calcolano il CRC durante la configurazione e lo archiviano nei registri. Un circuito dedicato lo controlla con un CRC calcolato automaticamente. Il pin CRC_ERROR segnala il problema quando i dati della RAM di configurazione vengono cambiati involontariamente e facilita l'attivazione della riconfigurazione. Il controllo CRC è controllato attraverso il software di progettazione Quartus® II.
Da quando è stata introdotta la circuitazione CRC dedicata al controllo della configurazione in background nella prima generazione di FPGA Stratix®, Intel® FPGA ha continuamente migliorato la capacità:
- Invece di un singolo valore CRC per l'intero dispositivo, gli FPGA della serie Stratix® (FPGA Stratix® III e successivi) memorizzano un valore CRC per ogni frame di configurazione, permettendo così un rilevamento SEU più veloce.
- Il motore di rilevamento degli errori CRC negli FPGA della serie Stratix® (FPGA Stratix® III e successivi) fornisce la posizione del SEU sia per gli errori a bit singolo che per quelli a bit multipli adiacenti.
- Il circuito di configurazione CRC negli FPGA della serie Stratix® (FPGA Stratix® III e successivi) permette vari tipi di injection di errori per simulare eventi SEU e testare la strategia di mitigazione.
- Il circuito di rilevamento/correzione CRC negli FPGA Stratix® V ha aumentato la copertura di rilevamento degli errori (99,99999998%) e può correggere errori multi-bit singoli e doppi adiacenti.
- Il tempo di rilevamento CRC negli FPGA Stratix® V è stato migliorato di ~7X per densità equivalenti rispetto alla famiglia Stratix® IV con uno schema CRC migliorato.
- Il fault injection negli FPGA Stratix® V è migliorato e l'utente può iniettare più guasti nell'FPGA.
Classificazione di errore di configurazione
Dal momento che la maggior parte degli errori di configurazione non ha alcun effetto sulla funzionalità di un FPGA, la capacità di ignorare questi errori soft "don't care" fornisce un aumento del tempo medio effettivo tra i guasti (MTBF) da SEU con conseguente miglioramento dell'uptime del sistema. Utilizzando i dati di localizzazione forniti dal circuito CRC potenziato negli FPGA della serie Stratix® (FPGA Stratix® III e successivi), e una piccola quantità di logica per controllare la posizione dell'errore rispetto alla mappa di criticità, un SEU può essere determinato per essere "care" o "don't care".
Nel caso di un errore di configurazione "don't care", si può decidere di ignorare il SEU e continuare l'esecuzione. La mappa di criticità è generata automaticamente dallo strumento di sviluppo software Quartus® II, ed è accessibile tramite un'interfaccia definita dall'utente, come la memoria di configurazione seriale attiva. La logica del processore di criticità è integrata nel software Quartus® II come megafunzione IP.
Correzione di errore di configurazione
Per minimizzare l'impatto degli errori SEU, gli FPGA Stratix® V possono correggere i bit flips della CRAM senza tempi di inatttività del sistema. Ci sono due tipi di correzione automatica del SEU.
- Scrubbing interno: Con questa opzione, il rilevamento/correzione CRAM CRC viene eseguito in background e non richiede alcun progetto dell'utente o componenti esterni. Quando abilitato attraverso il software Quartus® II, il circuito CRC, implementato in logica rigida, può rilevare errori multi-bit e correggere errori singoli o doppi adiacenti in un frame in una frazione di millisecondi mentre il resto dell'FPGA è in funzione.
- Ricarica dinamica .pof: Corregge i bit flips della CRAM ricaricando le immagini CRAM dal file esterno .pof. La correzione frame-by-frame può avvenire in background, o pupi avviarla tu stesso. Questa opzione può essere considerata per la correzione di più flip di bit CRAM (più di due errori adiacenti) per frame.
Controllo di errore memoria on-chip
Oltre al controllo della memoria di configurazione, gli FPGA della serie Stratix® (FPGA Stratix® III e successivi) possono controllare l'integrità della memoria on-chip. Il nuovo blocco di memoria embedded M20K offre un circuito hard error correction code (ECC) che può essere usato in modalità pipelined o non-pipelined o bypassato del tutto. Il codice ECC utilizzato per la memoria M20K può rilevare fino a tre bit di errori e correggere fino a due bit di errori. La copertura multi-bit migliorata insieme all'interleaving fisico dei bit in una parola fornisce una mitigazione per gli upsets multi-bit in FPGAs Stratix® V. L'utilizzo del nono bit di memoria, insieme a una megafunzione ECC generata automaticamente, può fornire una mitigazione SEU per le strutture di memoria costruite utilizzando blocchi di matrice logica di memoria (MLAB). Il MegaWizard Plug-In Manager all'interno del software Quartus® II rende semplice la configurazione della funzionalità ECC.