Perché l'FPGA basato su SRAM viene utilizzato più dell'FPGA basato su NVM?


20

Gli FPGA basati su SRAM devono caricare nuovamente il bitstream dopo lo spegnimento. Nel frattempo quello non volatile non ne ha bisogno.

Mi chiedo, perché vengono effettuati più esperimenti e ricerche sulla sicurezza sull'SRGA FPGA rispetto a quello basato su NVM, sembra che la tecnologia volatile sia più utilizzata indipendentemente dai suoi limiti di sicurezza (quando si tratta di garantire un avvio sicuro).

(PS: non ho statistiche, è un'osservazione personale)


Non sono sicuro delle tue statistiche, ma gli FPGA FLASH sono relativamente nuovi rispetto a quelli SRAM. Quindi questo potrebbe essere un motivo se i tuoi dati sono veri.
Eugene Sh.

3
Hai confrontato il costo? Immagino che quelli non volatili siano più cari.
Hearth,

@EugeneSh Non ho statistiche, è un'osservazione personale (l'ho aggiornato come PS nella domanda per non confondere le persone)
Lavanda,

L'ultimo progetto che ho toccato ha usato sram perché lo hanno riconfigurato molte volte per diverse funzionalità
PlasmaHH,

Risposte:


33

Il driver principale è il fatto che SRAM è altamente compatibile con lo stesso processo fisico utilizzato per implementare la logica effettiva. In effetti, la maggior parte degli FPGA in questi giorni si basano su LUT (tabelle di ricerca), che sono in realtà solo piccoli frammenti di RAM.

D'altra parte, il processo richiesto per costruire EEPROM (memoria non volatile) richiede passaggi aggiuntivi: per creare cancelli galleggianti con uno spessore di ossido speciale, ecc. Questo processo NON è direttamente compatibile con il processo di logica / SRAM. Ciò significa che gli FPGA non volatili rappresentano in qualche modo un compromesso in entrambe le aree.


21

Oltre alla risposta di Dave Tweed in merito ai processi di fabbricazione coinvolti, la maggior parte degli FPGA basati su flash utilizza ancora SRAM per guidare il proprio tessuto. Il bitstream viene caricato nella SRAM dal flash proprio come in un FPGA più convenzionale, l'unica differenza è che il flash è interno. Questa architettura è evidente quando si guardano i loro fogli dati e le loro note. In particolare, alcuni dispositivi come Lattice MachXO2 / 3 supportano la riprogrammazione del loro flash mentre il dispositivo è in esecuzione, il che è possibile solo perché il dispositivo funziona effettivamente da SRAM invece che direttamente dal flash. Quindi un FPGA "basato su flash" ha bisogno del flash oltre alla SRAM, il che significa che ha bisogno di più area die.

Per quanto riguarda la sicurezza, hai ragione a sottolineare che il processo di avvio FPGA può essere un punto debole in termini di acquisizione del flusso di bit. Per colmare questa lacuna, molti FPGA ora incorporano il supporto per la crittografia bitstream, che si basa su una chiave sicura memorizzata nella memoria dedicata all'interno dell'FPGA. Un'immagine bitstream viene crittografata con questa chiave, caricata nella memoria di configurazione, quindi all'avvio dell'FPGA legge il bitstream crittografato e lo decodifica mentre lo carica nel suo (Alcuni microcontrollori che richiedono memoria esterna hanno capacità simili e i principi sono sostanzialmente gli stessi).


3
In realtà, il tuo primo paragrafo è vero per un set relativamente limitato di FPGA. Molti FPGA basati su flash sono pubblicizzati come "instant on" (un forte punto di forza in molte applicazioni), il che significa che non vi è alcun trasferimento interno: le celle flash controllano direttamente le connessioni e la logica.
Dave Tweed

3
Da quello che ho visto anche i dispositivi "istantanei" devono ancora caricare CRAM, succede molto più velocemente (suppongo che a causa di un'interfaccia più ampia dal flash interno) rispetto alle parti che richiedono flash esterno. Ad esempio, il MAX10 è "instant on", ma vedi p.28 qui: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/… Ma se hai un riferimento che mostra un CRAM- totale meno architettura sarei interessato a conoscerlo.
Aj

3
Guarda Actel (ora Microsemi): entrambi i dispositivi antifusibile e basati su flash sono a zero copia.
Dave Tweed

8

Più di ogni altra cosa dipende dalle tue esigenze. Sebbene dimensioni, peso e potenza (SWaP) siano i principali driver per i circuiti integrati in generale, se non sei obbligato a sviluppare un ASIC a causa di tali requisiti, le prestazioni sono la tua prossima considerazione, che può comunque riportarti a un ASIC, ma potresti essere in grado di utilizzare un FPGA se puoi permetterti i compromessi SWaP.

  • Gli FPGA basati su FLASH richiedono "nessun tempo" per la configurazione, in quanto sono "istantanei". Il tuo progetto potrebbe richiedere questo.
  • La tecnologia FLASH ha una potenza inferiore rispetto a SRAM
  • FPGA basato su FLASH non ha bisogno di una PROM BOOT, quindi un chip contro due (o più).
  • Potrebbe essere necessario accendere lo stato precedente.
  • Basato su FLASH offre più soluzioni Rad-Tolerant. Esistono modi per gestire i requisiti di radiazione, o SEU in generale, negli FPGA basati su SRAM, ma Microsemi offre "tecnologia avanzata"

Gli FPGA basati su FLASH (Actel, ora Microsemi), tradizionalmente, non avevano la densità o le prestazioni che si potevano ottenere con gli FPGA basati su SRAM, quindi, se le prestazioni fossero il fattore trainante, sceglierei Xilinx o Altera (ora Intel), oppure forse Lattice.

In sostanza, sei guidato dai requisiti del tuo sistema e del tuo IC in particolare. All'inizio ti rivolgi a questi requisiti ed esegui uno studio commerciale dei diversi FPGA (foglio di calcolo). SWaP e prestazioni, seguiti da costi ricorrenti, sono le principali considerazioni su cui si desidera iterare con il proprio team (sistemi, CCA, forse anche SW) che viene restituito al proprio ingegnere capo / responsabile del progetto. Altre preoccupazioni come affidabilità, producibilità, ecc. Sono generalmente fornite da altri membri del team di quelle rispettive organizzazioni, ma di solito non significano molto senza il tuo commercio iniziale e in genere non impediscono la tua scelta.

Ci sono articoli sul web se cerchi "SRAM vs FLASH FPGAs", ma probabilmente imparerai di più da uno studio commerciale sui tuoi requisiti usando le schede tecniche di qualsiasi altra cosa.


2

Per affrontare l'aspetto della sicurezza, la maggior parte dei moderni FPGA SRAM possono essere configurati con un flusso crittografato , in genere con moderni standard di crittografia come AES a 256 bit. Probabilmente è sicuro quanto archiviare la configurazione internamente: un attacher dedicato che è in grado di estrarre la chiave privata da un chip decappato sarà anche in grado di leggere il flash interno.

Gli FPGA basati su Flash sono in genere utilizzati quando l'implementazione è piuttosto semplice (quindi non è necessario un FPGA SRAM di grandi dimensioni) o quando è richiesto un avvio immediato.


Direi che gli FPGA basati su flash potrebbero anche risolvere problemi di sicurezza. Vedi articolo da EETimes per quanto riguarda la mitigazione contro gli attacchi che utilizzano l'analisi di potenza differenziale (DPA): eetimes.com/document.asp?doc_id=1327477
Boink

@boink Vero, gli FPGA più vecchi in particolare erano piuttosto vulnerabili ( esempio ), ma mi aspetto che la situazione sia migliorata ormai. L'articolo a cui ti riferisci sembra pubblicizzare contromisure DPA.
Dmitry Grigoryev
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.