Dlaczego układy FPGA oparte na SRAM są używane częściej niż układy FPGA oparte na NVM?


21

Układy FPGA oparte na pamięci SRAM muszą ponownie ładować strumień bitów po wyłączeniu zasilania. Tymczasem nielotny nie potrzebuje tego.

Zastanawiam się, dlaczego przeprowadzono więcej eksperymentów i badań bezpieczeństwa na SRAM FPGA niż na bazie NVM, wydaje się, że niestabilna technologia jest częściej używana bez względu na jej granice bezpieczeństwa (jeśli chodzi o zapewnienie bezpiecznego rozruchu).

(PS: Nie mam statystyk, jest to osobista obserwacja)


Nie jestem pewien co do twoich statystyk, ale układy FPGA FLASH są stosunkowo nowe w porównaniu do SRAM. Tak aby mogły być powodem jeśli dane są prawdziwe.
Eugene Sh.

3
Czy porównałeś koszty? Wyobrażam sobie, że te nielotne są droższe.
Hearth

@EugeneSh Nie mam statystyk, jest to osobista obserwacja (zaktualizowałem to jako PS w pytaniu, aby nie mylić ludzi)
Lavender

W ostatnim projekcie, którego dotknąłem, użyto sram, ponieważ wielokrotnie konfigurowano go dla różnych funkcji
PlasmaHH

Odpowiedzi:


33

Głównym sterownikiem jest fakt, że SRAM jest wysoce kompatybilny z tym samym procesem fizycznym, który jest wykorzystywany do implementacji rzeczywistej logiki. Rzeczywiście, większość układów FPGA w dzisiejszych czasach opiera się na LUT (tablicach przeglądowych), które tak naprawdę są tylko niewielkimi kawałkami pamięci RAM.

Z drugiej strony proces wymagany do zbudowania pamięci EEPROM (pamięć nieulotna) wymaga dodatkowych kroków - stworzenia pływających bram o specjalnej grubości tlenku itp. Proces ten NIE jest bezpośrednio zgodny z procesem logiki / SRAM. Oznacza to, że nielotne układy FPGA stanowią w pewnym stopniu kompromis w obu obszarach.


21

Oprócz odpowiedzi Dave'a Tweeda dotyczącej zaangażowanych procesów produkcyjnych, większość układów FPGA opartych na pamięci flash nadal używa SRAM do napędzania swoich tkanin. Strumień bitów jest ładowany do pamięci SRAM z pamięci flash, podobnie jak w bardziej konwencjonalnym układzie FPGA, jedyną różnicą jest to, że lampa błyskowa jest wewnętrzna. Ta architektura jest widoczna, gdy spojrzysz na ich arkusze danych i adnotacje. W szczególności niektóre urządzenia, takie jak Lattice MachXO2 / 3, obsługują przeprogramowanie pamięci flash podczas pracy urządzenia, co jest możliwe tylko dlatego, że urządzenie działa w rzeczywistości z pamięci SRAM zamiast bezpośrednio z pamięci flash. Tak więc FPGA „na bazie flash” potrzebuje flasha oprócz SRAM, co oznacza, że ​​potrzebuje więcej obszaru matrycy.

Jeśli chodzi o bezpieczeństwo, masz rację, wskazując, że proces uruchamiania FPGA może być słabym punktem, jeśli chodzi o umożliwianie przechwytywania strumienia bitów. Aby pomóc wypełnić tę lukę, wiele układów FPGA obsługuje teraz szyfrowanie strumienia bitów, które jest oparte na bezpiecznym kluczu przechowywanym w dedykowanej pamięci w układzie FPGA. Obraz strumienia bitów jest szyfrowany tym kluczem, ładowany do pamięci konfiguracji, a następnie, gdy FPGA uruchamia się, odczytuje zaszyfrowany strumień bitów i odszyfrowuje go, gdy ładuje go do swojego (Niektóre mikrokontrolery wymagające pamięci zewnętrznej mają podobne możliwości i zasady są w dużej mierze takie same.)


3
W rzeczywistości pierwszy akapit odnosi się do stosunkowo ograniczonego zestawu układów FPGA. Wiele układów FPGA opartych na pamięci flash jest reklamowanych jako „natychmiastowe włączenie” (silna zaleta w wielu aplikacjach), co oznacza, że ​​nie ma wewnętrznego transferu - komórki flash sterują bezpośrednio połączeniami i logiką.
Dave Tweed

3
Z tego, co widziałem, nawet urządzenia „instant on” wciąż muszą ładować pamięć CRAM, dzieje się to po prostu znacznie szybciej (chyba ze względu na szerszy interfejs z wewnętrznej lampy błyskowej) niż w częściach wymagających zewnętrznej lampy błyskowej. Na przykład MAX10 jest „włączony”, ale patrz str. 28 tutaj: intel.com/content/dam/altera-www/global/en_US/pdfs/literature/... Ale jeśli masz odniesienie, które pokazuje całkowicie pamięć CRAM- mniej architektury Chciałbym się o tym dowiedzieć.
ajb

3
Spójrz na Actel (teraz Microsemi) - zarówno ich zabezpieczenia, jak i urządzenia oparte na pamięci flash są zerowe.
Dave Tweed

8

Przede wszystkim zależy to od twoich wymagań. Podczas gdy rozmiar, waga i moc (SWaP) są głównymi czynnikami generującymi układy scalone, jeśli nie jesteś zmuszony do opracowania układu ASIC z powodu tych wymagań, wydajność jest kolejnym czynnikiem, który może zepchnąć cię z powrotem do układu ASIC, ale możesz użyć FPGA, jeśli możesz sobie pozwolić na kompromisy SWaP.

  • Układy FPGA oparte na FLASH nie wymagają konfiguracji, ponieważ są „natychmiastowe”. Twój projekt może tego wymagać.
  • Technologia FLASH ma niższą moc niż SRAM
  • Układ FPGA oparty na FLASH nie potrzebuje BOOT PROM, a więc jeden układ kontra dwa (lub więcej).
  • Może być wymagane włączenie zasilania w poprzednim stanie.
  • Oparte na FLASH oferuje więcej rozwiązań tolerujących promieniowanie. Istnieją sposoby radzenia sobie z wymaganiami dotyczącymi promieniowania lub ogólnie SEU w układach FPGA opartych na SRAM, ale Microsemi oferuje „wzmocnioną technologię”

Układy FPGA oparte na technologii FLASH (Actel, teraz Microsemi), tradycyjnie, nie miały gęstości ani wydajności, jakie można uzyskać dzięki układom FPGA opartym na SRAM, więc jeśli wydajność była czynnikiem decydującym, wybrałbyś Xilinx lub Altera (obecnie Intel) lub może Krata.

Zasadniczo kierujesz się wymaganiami swojego systemu, a konkretnie Twojego układu scalonego. Od samego początku spełniasz te wymagania i przeprowadzasz analizę handlową różnych układów FPGA (arkusz kalkulacyjny). SWaP i wydajność, a następnie powtarzające się koszty są głównymi kwestiami, które chcesz powtórzyć ze swoim zespołem (systemy, CCA, może nawet SW), które są sprzężeniem zwrotnym z głównym inżynierem / kierownikiem projektu. Inne problemy, takie jak niezawodność, możliwości produkcyjne itp., Są zwykle przedstawiane przez innych członków zespołu z tych organizacji, ale zwykle nie mają większego znaczenia bez początkowej wymiany i zazwyczaj nie uniemożliwiają wyboru.

W Internecie znajdują się artykuły, jeśli szukasz „SRAM vs FLASH FPGA”, ale prawdopodobnie dowiesz się więcej na podstawie analizy handlu opartej na swoich wymaganiach, korzystając z arkuszy danych, niż cokolwiek innego.


2

Aby rozwiązać problem bezpieczeństwa, większość nowoczesnych układów SRAM FPGA można skonfigurować za pomocą szyfrowanego strumienia , zwykle z nowoczesnymi standardami szyfrowania, takimi jak 256-bitowy AES. Prawdopodobnie jest to tak samo bezpieczne, jak przechowywanie konfiguracji wewnętrznie: oddany administrator, który jest w stanie wyodrębnić klucz prywatny z odklejonego układu, będzie mógł również odczytać wewnętrzną pamięć flash.

Układy FPGA oparte na pamięci flash są zwykle używane, gdy implementacja jest raczej prosta (więc duża pamięć SRAM FPGA nie jest potrzebna) lub gdy wymagane jest natychmiastowe uruchomienie.


Argumentowałbym, że układy FPGA oparte na pamięci flash mogą również rozwiązać problemy związane z bezpieczeństwem. Zobacz artykuł z EEtimes dotyczących łagodzenia przed atakami z wykorzystaniem różnicową analizę mocy (DPA) eetimes.com/document.asp?doc_id=1327477
boink

@boink To prawda, w szczególności starsze układy FPGA były dość wrażliwe ( przykład ), ale spodziewam się, że sytuacja uległa poprawie. Artykuł, do którego się odwołujesz, wydaje się reklamować środki zaradcze DPA.
Dmitrij Grigoriew
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.