Cykliczna kontrola nadmiarowości (CRC) w układach FPGA z serii Stratix®
Możliwość wykrywania pojedynczych przypadkowych zakłóceń (SEU) i reagowania na nie w trakcie działania układu FPGA staje się ważniejsza niż kiedykolwiek wcześniej. Wszystkie układy FPGA Stratix® mają dedykowane obwody twardej własności intelektualnej (IP) cyklicznej kontroli nadmiarowej (CRC), które wykrywają przesunięcia bitów CRAM i sygnalizują błąd na dedykowanym pinie CRC_ERROR.
Począwszy od generacji procesów 130-nm (układy FPGA Stratix®), układy Intel® FPGA zawierają obwody wykrywania błędów tła we wszystkich układach FPGA z wykorzystaniem sprzętowej miernika CRC, aby umożliwić ciągłą weryfikację zawartości CRAM podczas pracy urządzenia. Kontrola CRC gwarantuje wykrywanie błędów wielobitowych. Zaletą integracji obwodu CRC w układzie scalonym w twardych bramkach jest to, że obwód jest wytrzymały i odporny na miękkie błędy. Ponadto obwód CRC jest samodzielnym blokiem i jest włączany po prostu poprzez zaznaczenie pola w opcjach kompilacji oprogramowania Quartus® II.
Dzięki procesowi i technikom projektowania, układy Intel® FPGA poprawiają FIT/MB z każdą generacją technologiczną. Zapewniliśmy również ulepszone rozwiązania łagodzące skutki błędów miękkich na różnych poziomach — krzemu, IP i narzędzi.
Jednym z takich przykładów ulepszenia jest większa funkcjonalność i wyrafinowanie obwodów CRC, jak pokazano w tabeli 1.
Tabela 1. Ulepszenia CRC w układach FPGA z serii Stratix®
Rodzina FPGA z serii Stratix®1 |
CRC CRAM |
CRC CRAM |
CRAM |
Wprowadzenie |
Błąd |
Błąd CRAM |
Wbudowana |
---|---|---|---|---|---|---|---|
Tak |
- |
- |
- |
- |
- |
- |
|
Tak |
- |
- |
- |
- |
- |
- |
|
- |
Tak |
Tak |
Tak |
Tak |
- |
Tak |
|
- |
Tak |
Tak |
Tak |
Tak |
- |
Tak |
|
- |
Tak |
Tak |
Tak |
Tak |
Tak |
Tak |
- Wybierz odpowiedni link rodziny układów FPGA z serii Stratix®, aby uzyskać szczegółowe informacje na temat właściwości CRC w określonej rodzinie Stratix®.
Sprawdzanie błędów konfiguracji
Wszystkie układy FPGA z serii Stratix® obliczają CRC podczas konfiguracji i przechowują ją w rejestrach. Dedykowane obwody sprawdzają je względem automatycznie obliczonej kontroli CRC. Pin CRC_ERROR informuje o awariach podczas niezamierzonej zmiany konfiguracji pamięci RAM i ułatwia przeprowadzenie rekonfiguracji. Kontrola CRC jest nadzorowana za pomocą oprogramowania projektowego Quartus® II.
Od czasu wprowadzenia dedykowanych obwodów sprawdzania konfiguracji tła CRC w układach FPGA pierwszej generacji serii Stratix®, układy Intel® FPGA stale zwiększały możliwości:
- Zamiast pojedynczej wartości CRC dla całego urządzenia, układy FPGA serii Stratix® (FPGA Stratix® III i późniejsze) przechowują wartość CRC dla każdej ramki konfiguracyjnej, co pozwala na szybsze wykrywanie SEU.
- Mechanizm wykrywania błędów CRC w układach FPGA serii Stratix® (FPGA Stratix® III i nowszych) podaje lokalizację SEU zarówno dla błędów jednobitowych, jak i przyległych wielobitowych.
- Obwód konfiguracji CRC w układach FPGA z serii Stratix® (FPGA Stratix® III i nowszych) umożliwia wstrzykiwanie błędów różnego rodzaju w celu symulacji zdarzeń SEU i testowania strategii łagodzenia skutków.
- Obwód wykrywania lub korekcji CRC w układach FPGA Stratix® V zwiększa zasięg wykrywania błędów (99.99999998%) i może korygować jedno- i dwubitowe błędy wielobitowe.
- Czas wykrywania CRC w układach FPGA Stratix® V został poprawiony około 7-krotnie dla równoważnych gęstości w porównaniu z rodziną Stratix® IV z ulepszonym schematem CRC.
- Wstrzykiwanie błędów w układach FPGA Stratix® V zostało ulepszone, dzięki czemu użytkownik może wprowadzać wiele błędów w układach FPGA.
Klasyfikacja błędów konfiguracji
Ponieważ większość błędów konfiguracji nie ma wpływu na funkcjonalność układu FPGA, możliwość zignorowania tych „nieistotnych” miękkich błędów zapewnia znaczne wydłużenie średniego czasu między awariami (MTBF) spowodowanymi przez SEU, co przekłada się na dłuższy czas bezawaryjnej pracy systemu. Wykorzystując dane o lokalizacji dostarczane przez ulepszony obwód CRC w układach FPGA serii Stratix® (FPGA Stratix® III i nowszych) oraz niewielką ilość logiki do sprawdzenia lokalizacji błędu względem mapy krytyczności, SEU może zostać określony jako „istotny” lub „nieistotny”.
W przypadku „nieistotnego” błędu konfiguracji można zdecydować o zignorowaniu SEU i kontynuowaniu działania. Mapa krytyczności jest tworzona automatycznie przez narzędzie programistyczne oprogramowania Quartus® II, a dostęp do niej uzyskuje się poprzez interfejs zdefiniowany przez użytkownika, taki jak aktywna szeregowa pamięć konfiguracyjna. Logika procesora krytyczności jest zintegrowana w oprogramowaniu Quartus® II jako megafunkcja IP.
Korekta błędów konfiguracji
W celu minimalizacji wpływu błędów SEU, układy FPGA Stratix® V mogą korygować przerzucanie bitów CRAM bez przestojów systemu. Istnieją dwa rodzaje automatycznej korekcji SEU.
- Wewnętrzna kontrola: dzięki tej opcji wykrywanie/korekcja CRC CRAM działa w tle i nie wymaga żadnego projektu użytkownika ani komponentów zewnętrznych. Po włączeniu poprzez oprogramowanie Quartus® II obwód CRC wdrożony w twardej logice, może wykrywać błędy wielobitowe i korygować błędy jedno- lub dwubitowe w ramce w ułamku milisekundy, podczas gdy pozostała część układu FPGA nieprzerwanie działa.
- Dynamiczne przeładowanie .pof: koryguje przerzucanie bitów CRAM poprzez ponowne załadowanie obrazów CRAM z zewnętrznego pliku .pof. Korekta ramki po ramce może działać w tle lub może ją zainicjować użytkownik. Opcję tą warto rozważyć w przypadku korygowania wielokrotnego przerzucania bitów CRAM (więcej niż podwójne błędy sąsiednie) na ramkę.
Sprawdzanie błędów pamięci wbudowanej
Oprócz sprawdzania pamięci konfiguracyjnej układy FPGA z serii Stratix® (FPGA Stratix® III i nowsze) mogą sprawdzić integralność pamięci wbudowanej. Nowy blok pamięci wbudowanej M20K zapewnia obwód twardego kodu korekcji błędów (ECC), który może być używany w trybie potokowym, niepotokowym lub z całkowitym pominięciem. Kod ECC używany w pamięci M20K może wykrywać nawet błędy trzybitowe i korygować nawet błędy dwubitowe. Ulepszony zasięg wielobitowy oraz fizyczne przechodzenie bitów w jednym słowie zapewnia ograniczenie wielobitowych zakłóceń w układach FPGA Stratix® V. Użycie dziewiątego bitu pamięci, wraz z automatycznie generowaną megafunkcją ECC, umożliwia łagodzenie skutków SEU dla struktur pamięci zbudowanych przy użyciu bloków macierzy logicznych pamięci (MLAB). Menedżer wtyczki MegaWizard w oprogramowaniu Quartus® II sprawia, że konfiguracja funkcji ECC jest prosta.