Por que o FPGA baseado em SRAM é usado mais que o FPGA baseado em NVM?


20

Os FPGAs baseados em SRAM precisam carregar o fluxo de bits novamente após o desligamento. Enquanto isso, o não volátil não precisa disso.

Eu me pergunto, por que mais experimentos e pesquisas de segurança são feitos no SRAM FPGA do que no NVM, parece que a tecnologia volátil é mais usada independentemente de seus limites de segurança (quando se trata de garantir uma inicialização segura).

(PS: Não tenho estatísticas, é uma observação pessoal)


Não tenho certeza sobre suas estatísticas, mas os FPGAs FLASH são relativamente novos em comparação com os SRAM. Portanto, esse pode ser um motivo se seus dados forem verdadeiros.
Eugene Sh.

3
Você comparou o custo? Eu imagino que os não voláteis são mais caros.
Hearthout

@EugeneSh Não tenho estatísticas, é uma observação pessoal (I atualizado que como um PS na questão, a fim das pessoas não confunda)
Lavender

O último projeto Toquei SRAM usados porque reconfigurá-lo muitas vezes para diferentes funcionalidades
PlasmaHH

Respostas:


32

O principal driver é o fato de a SRAM ser altamente compatível com o mesmo processo físico que é usado para implementar a lógica real. De fato, a maioria dos FPGAs hoje em dia são baseados em LUTs (tabelas de pesquisa), que são na verdade apenas pequenos bits de RAM.

Por outro lado, o processo necessário para construir EEPROM (memória não volátil) requer etapas extras - para criar portas flutuantes com espessura de óxido especial, etc. Este processo NÃO é diretamente compatível com o processo lógico / SRAM. Isso significa que FPGAs não voláteis são um pouco comprometidos em ambas as áreas.


21

Além da resposta de Dave Tweed sobre os processos de fabricação envolvidos, a maioria dos FPGAs baseados em flash ainda usam a SRAM para direcionar sua malha. O fluxo de bits é carregado na SRAM pelo flash, como em um FPGA mais convencional, a única diferença é que o flash é interno. Essa arquitetura é evidente quando você olha para suas folhas de dados e notas de aplicativo. Em particular, alguns dispositivos como o Lattice MachXO2 / 3 suportam a reprogramação do flash enquanto o dispositivo está em execução, o que só é possível porque o dispositivo realmente executa a partir da SRAM em vez de diretamente a partir do flash. Portanto, um FPGA "baseado em flash" precisa do flash além da SRAM, o que significa que precisa de mais área da matriz.

Em relação à segurança, você tem razão em apontar que o processo de inicialização do FPGA pode ser um ponto fraco em termos de permitir que o fluxo de bits seja capturado. Para ajudar a preencher essa lacuna, muitos FPGAs agora incorporam suporte à criptografia de fluxo de bits, que se baseia em uma chave segura armazenada na memória dedicada dentro do FPGA. Uma imagem de fluxo de bits é criptografada com essa chave, carregada na memória de configuração e, quando o FPGA é inicializado, lê o fluxo de bits criptografado e descriptografa-o à medida que o carrega (alguns microcontroladores que exigem memória externa têm recursos semelhantes e os princípios são basicamente os mesmos.)


2
Na verdade, seu primeiro parágrafo é verdadeiro para um conjunto relativamente limitado de FPGAs. Muitos FPGAs baseados em flash são anunciados como "instant on" (um forte ponto de venda em muitas aplicações), o que significa que não há transferência interna - as células flash controlam as conexões e a lógica diretamente.
Dave Tweed

3
Pelo que vi até dispositivos "instantâneos" ainda precisam carregar o CRAM, isso acontece muito mais rápido (acho que devido a uma interface mais ampla do flash interno) do que em partes que exigem flash externo. Por exemplo, o MAX10 é "instant on", mas consulte a p.28 aqui: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/… Mas se você tiver uma referência que mostre um CRAM- menos arquitetura, eu estaria interessado em aprender sobre isso.
ajb

2
Veja a Actel (agora Microsemi) - seus dispositivos baseados em fusível e flash são de cópia zero.
Dave Tweed

8

Mais do que tudo, depende de suas necessidades. Embora tamanho, peso e potência (SWaP) sejam os principais drivers para ICs em geral, se você não for obrigado a desenvolver um ASIC por causa desses requisitos, o desempenho é sua próxima consideração, o que pode levar você de volta a um ASIC de qualquer maneira, mas, você poderá usar um FPGA se puder pagar as compensações do SWaP.

  • Os FPGAs baseados em FLASH não precisam de tempo para serem configurados, pois são "instantaneamente ativados". Seu design pode exigir isso.
  • A tecnologia FLASH é menor que a SRAM
  • O FPGA baseado em FLASH não precisa de um BOOT PROM, portanto, um chip versus dois (ou mais).
  • Você pode ter um requisito para ligar no estado anterior.
  • O FLASH oferece mais soluções tolerantes a rad. Existem maneiras de lidar com requisitos de radiação, ou SEUs em geral, em FPGAs baseados em SRAM, mas a Microsemi oferece "tecnologia reforçada"

Os FPGAs baseados em FLASH (Actel, agora Microsemi), tradicionalmente, não tinham a densidade ou o desempenho que se poderia obter com os FPGAs baseados em SRAM; portanto, se o desempenho fosse o fator determinante, você escolheria Xilinx ou Altera (agora Intel) ou talvez Malha.

Essencialmente, você é orientado pelos requisitos do seu sistema e do seu IC especificamente. Desde o início, você atende a esses requisitos e realiza um estudo comercial dos diferentes FPGAs (planilha). SWaP e desempenho, seguidos de custos recorrentes, são as principais considerações sobre as quais você deseja interagir com sua equipe (sistemas, CCA, talvez até SW), que é realimentada pelo engenheiro / gerente-chefe do projeto. Outras preocupações, como confiabilidade, capacidade de fabricação, etc. geralmente são fornecidas por outros membros da equipe dessas organizações, mas geralmente não significam muito sem o seu comércio inicial e geralmente não impedem sua escolha.

Existem artigos na Web se você pesquisar "SRAM vs FLASH FPGAs", mas provavelmente aprenderá mais com um estudo comercial sobre seus requisitos usando as folhas de dados do que com qualquer outra coisa.


2

Para abordar o aspecto de segurança, os FPGAs da SRAM mais modernos podem ser configurados com um fluxo criptografado , geralmente com padrões modernos de criptografia, como o AES de 256 bits. Pode-se argumentar que é tão seguro quanto armazenar a configuração internamente: um attacher dedicado capaz de extrair a chave privada de um chip decapado também poderá ler o flash interno.

Normalmente, os FPGAs baseados em flash são usados ​​quando a implementação é bastante simples (portanto, não é necessário um FPGA SRAM grande) ou quando é necessária uma inicialização instantânea.


Eu argumentaria que os FPGAs baseados em flash também podem tratar de questões de segurança. Veja o artigo de EETimes sobre mitigação contra ataques usando análise de poder diferencial (DPA): eetimes.com/document.asp?doc_id=1327477
boink

@boink É verdade que os FPGAs mais antigos, em particular, eram bastante vulneráveis ​​( exemplo ), mas espero que a situação melhore agora. O artigo a que você se refere parece anunciar contramedidas do DPA.
Dmitry Grigoryev
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.