¿Por qué el FPGA basado en SRAM se usa más que el FPGA basado en NVM?

20

Los FPGA basados ​​en SRAM necesitan cargar nuevamente el flujo de bits después del apagado. Mientras tanto, el no volátil no necesita eso.

Me pregunto, por qué se realizan más experimentos e investigaciones de seguridad en el SRAM FPGA que en el basado en NVM, parece que la tecnología volátil se usa más independientemente de sus límites de seguridad (cuando se trata de garantizar un arranque seguro).

(PD: no tengo estadísticas, es una observación personal)

Lavanda
fuente
No estoy seguro acerca de sus estadísticas, pero los FPGA FLASH son relativamente nuevos en comparación con los SRAM. Entonces esa podría ser una razón si sus datos son verdaderos.
Eugene Sh.
3
¿Has comparado el costo? Me imagino que los no volátiles son más caros.
Hogar
@EugeneSh No tengo estadísticas, es una observación personal (actualicé eso como PS en la pregunta para no confundir a las personas)
Lavender
El último proyecto que toqué usó sram porque lo reconfiguraron muchas veces para diferentes funcionalidades
PlasmaHH

Respuestas:

33

El controlador principal es el hecho de que SRAM es altamente compatible con el mismo proceso físico que se utiliza para implementar la lógica real. De hecho, la mayoría de los FPGA en estos días se basan en LUT (tablas de búsqueda), que en realidad son solo pequeños trozos de RAM.

Por otro lado, el proceso requerido para construir EEPROM (memoria no volátil) requiere pasos adicionales: crear compuertas flotantes con un grosor de óxido especial, etc. Este proceso NO es directamente compatible con el proceso lógico / SRAM. Esto significa que los FPGA no volátiles son un compromiso en ambas áreas.

Dave Tweed
fuente
21

Además de la respuesta de Dave Tweed con respecto a los procesos de fabricación involucrados, la mayoría de los FPGA basados ​​en flash todavía usan SRAM para manejar su estructura. El flujo de bits se carga en la SRAM desde el flash al igual que en un FPGA más convencional, la única diferencia es que el flash es interno. Esta arquitectura es evidente cuando nos fijamos en sus hojas de datos y notas de aplicación. En particular, algunos dispositivos como Lattice MachXO2 / 3 admiten la reprogramación de su flash mientras el dispositivo se está ejecutando, lo cual solo es posible porque el dispositivo realmente se ejecuta desde SRAM en lugar de directamente desde el flash. Entonces, un FPGA "basado en flash" necesita el flash además del SRAM, lo que significa que necesita más área de matriz.

Con respecto a la seguridad, tiene razón al señalar que el proceso de inicio de FPGA puede ser un punto débil en términos de permitir que se capture el flujo de bits. Para ayudar a cerrar esta brecha, muchos FPGA ahora incorporan soporte para el cifrado de flujo de bits, que se basa en una clave segura almacenada en la memoria dedicada dentro del FPGA. Una imagen de flujo de bits se encripta con esta clave, se carga en la memoria de configuración y luego, cuando se inicia el FPGA, lee el flujo de bits encriptado y lo descifra a medida que lo carga (algunos microcontroladores que requieren memoria externa tienen capacidades similares, y los principios son en gran medida los mismos)

ajb
fuente
3
En realidad, su primer párrafo es cierto para un conjunto relativamente limitado de FPGA. Muchos FPGA basados ​​en flash se anuncian como "encendido instantáneo" (un fuerte punto de venta en muchas aplicaciones), lo que significa que no hay transferencia interna: las celdas flash controlan las conexiones y la lógica directamente.
Dave Tweed
3
Por lo que he visto, incluso los dispositivos "instantáneos" aún tienen que cargar CRAM, simplemente sucede mucho más rápido (supongo que debido a una interfaz más amplia desde el flash interno) que en las partes que requieren flash externo. Por ejemplo, el MAX10 es "instantáneo", pero vea la p.28 aquí: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/… Pero si tiene una referencia que muestra un CRAM- menos arquitectura me interesaría aprender sobre ella.
ajb
3
Mire Actel (ahora Microsemi): tanto sus dispositivos antifusibles como los basados ​​en flash son de copia cero.
Dave Tweed
8

Más que nada, depende de sus requisitos. Si bien el tamaño, el peso y la potencia (SWaP) son los principales impulsores de los circuitos integrados en general, si no está obligado a desarrollar un ASIC debido a esos requisitos, el rendimiento es su próxima consideración, lo que puede llevarlo de vuelta a un ASIC de todos modos, pero, puede utilizar un FPGA si puede permitirse las compensaciones de SWaP.

  • Los FPGA basados ​​en FLASH requieren "no hay tiempo" para configurar, ya que son "instantáneos". Su diseño puede requerir esto.
  • La tecnología FLASH tiene menos potencia que la SRAM
  • FPGA basado en FLASH no necesita una PROMOCIÓN DE ARRANQUE, por lo tanto, un chip frente a dos (o más).
  • Es posible que tenga un requisito para encender en el estado anterior.
  • FLASH-based ofrece más soluciones tolerantes a la radiación. Hay formas de lidiar con los requisitos de radiación, o SEU en general, en los FPGA basados ​​en SRAM, pero Microsemi ofrece "tecnología reforzada"

Los FPGA basados ​​en FLASH (Actel, ahora Microsemi), tradicionalmente, no han tenido la densidad o el rendimiento que uno podría lograr con los FPGA basados ​​en SRAM, por lo tanto, si el rendimiento fuera el factor determinante, elegiría Xilinx o Altera (ahora Intel), o Quizás enrejado.

Esencialmente, usted es guiado por los requisitos de su sistema y su IC específicamente. Al principio, usted aborda estos requisitos y realiza un estudio comercial de los diferentes FPGA (hoja de cálculo). El SWaP y el rendimiento, seguidos por el costo recurrente son las principales consideraciones que desea iterar con su equipo (sistemas, CCA, tal vez incluso SW) que se retroalimenta al ingeniero / gerente jefe de su proyecto. Otras inquietudes, como la confiabilidad, la capacidad de fabricación, etc., generalmente son proporcionadas por otros miembros del equipo de esas organizaciones respectivas, pero generalmente no significan mucho sin su comercio inicial, y generalmente no impedirán su elección.

Hay artículos en la web si busca "FPAM SRAM vs FLASH", pero es probable que aprenda más de un estudio comercial sobre sus requisitos utilizando las hojas de datos que cualquier otra cosa.

CapnJJ
fuente
2

Para abordar el aspecto de seguridad, la mayoría de los FPGA SRAM modernos se pueden configurar con una secuencia cifrada , generalmente con estándares de cifrado modernos como AES de 256 bits. Podría decirse que es tan seguro como almacenar la configuración internamente: un atacante dedicado que pueda extraer la clave privada de un chip descabezado también podrá leer el flash interno.

Los FPGA basados ​​en flash se usan generalmente cuando la implementación es bastante simple (por lo que no se necesita un FPGA SRAM grande) o cuando se requiere un inicio instantáneo.

Dmitry Grigoryev
fuente
Yo diría que los FPGA basados ​​en flash también pueden abordar problemas de seguridad. Consulte el artículo de EEtimes sobre la mitigación contra ataques mediante el análisis de potencia diferencial (DPA): eetimes.com/document.asp?doc_id=1327477
boink
@boink Cierto, los FPGA anteriores en particular eran bastante vulnerables ( ejemplo ), pero espero que la situación haya mejorado por ahora. El artículo al que hace referencia parece anunciar contramedidas de DPA.
Dmitry Grigoryev