Cyclic Redundancy Check (CRC) in FPGAs der Stratix-Serie
Die Fähigkeit, Single Event Upsets (SEUs) während des Betriebs eines FPGA zu erkennen und darauf zu reagieren, ist wichtiger denn je geworden. Alle Stratix®-FPGAs verfügen über dedizierte Cyclic Redundancy Check (CRC), Hard Intellectual Property (IP) Schaltungen, die CRAM-Bitflips erkennen und einen Fehler an einem dedizierten CRC_ERROR-Pin anzeigen.
Seit der 130-nm-Prozessgeneration (Stratix-FPGAs) hat Intel® FPGA in alle FPGAs eine Schaltung zur Fehlererkennung im Hintergrund integriert, die einen harten CRC-Checker verwendet, um eine kontinuierliche Überprüfung des CRAM-Inhalts während des Gerätebetriebs zu ermöglichen. Mit dem CRC werden garantiert Mehrbitfehler erkannt. Der Vorteil der Integration von CRC-Schaltkreisen auf dem Chip in Hardgates ist, dass die Schaltkreise robust und nicht anfällig für weiche Fehler sind. Darüber hinaus ist der CRC-Schaltkreis ein eigenständiger Block und wird einfach durch Ankreuzen eines Kästchens in den Quartus® II Kompilierungsoptionen aktiviert.
Durch Prozess- und Designtechniken hat Intel FPGA die FIT/Mb mit jeder Technologiegeneration verbessert. Wir haben auch verbesserte Lösungen zur Minderung von Soft Errors auf verschiedenen Ebenen bereitgestellt – Silizium, IP und Tools.
Ein Beispiel für eine solche Verbesserung ist die erhöhte Funktionalität und Ausgereiftheit von CRC-Schaltungen, wie in Tabelle 1 dargestellt.
Tabelle 1: CRC Verbesserungen in FPGAs der Stratix-Serie
FPGA-Produktreihe1 der Stratix-Serie |
CRAM CRC |
CRAM CRC |
CRAM |
Einspritzung |
Fehler |
CRAM Fehler |
On-Chip |
---|---|---|---|---|---|---|---|
Ja |
- |
- |
- |
- |
- |
- |
|
Ja |
- |
- |
- |
- |
- |
- |
|
- |
Ja |
Ja |
Ja |
Ja |
- |
Ja |
|
- |
Ja |
Ja |
Ja |
Ja |
- |
Ja |
|
- |
Ja |
Ja |
Ja |
Ja |
Ja |
Ja |
- Wählen Sie den entsprechenden Link zur Stratix-Produktreihe, um vollständige Details zu den CRC-Funktionen in einer bestimmten FPGA-Produktreihe der Stratix-Serie zu erhalten.
Überprüfen von Konfigurationsfehlern
Alle FPGAs der Intel Stratix-Serie berechnen den CRC während der Konfiguration und speichern ihn in Registern. Ein spezieller Schaltkreis vergleicht sie mit einem automatisch berechneten CRC. Der CRC_ERROR-Pin meldet Fehler, wenn Konfigurations-RAM-Daten unbeabsichtigt verändert werden, und erleichtert die Auslösung einer Neukonfiguration. Die CRC-Prüfung wird über die Quartus-II-Designsoftware gesteuert.
Seit der Einführung dedizierter CRC-Schaltkreise für die Überprüfung der Hintergrundkonfiguration in der ersten Generation von Stratix FPGAs hat Intel FPGA die Fähigkeiten kontinuierlich verbessert:
- Anstelle eines einzigen CRC-Werts für das gesamte Gerät speichern FPGAs der Stratix-Serie (Stratix III FPGAs und höher) jeweils einen CRC-Wert für den Konfigurationsrahmen, wodurch eine schnellere SEU-Erkennung ermöglicht wird.
- Die CRC-Fehlererkennungs-Engine in FPGAs der Stratix-Serie (ab Stratix III FPGAs) liefert den Ort der SEU sowohl für Einzelbit- als auch für benachbarte Mehrbitfehler.
- Die CRC-Konfigurationsschaltung in FPGAs der Stratix-Serie (Stratix III FPGAs und höher) ermöglicht verschiedene Arten von Fehlerinjektionen, um SEU-Ereignisse zu simulieren und die Abschwächungsstrategie zu testen.
- Die CRC-Erkennungs-/Korrekturschaltung in Stratix V-FPGAs bietet eine erhöhte Fehlererkennungsabdeckung (99,99999998 %) und kann einzelne und doppelt benachbarte Mehrbitfehler korrigieren.
- Die CRC-Erkennungszeit in Stratix V FPGAs wurde bei vergleichbaren Dichten im Vergleich zur Stratix® IV-Produktreihe mit einem verbesserten CRC-Schema um das 7-fache verbessert.
- Die Fehlerinjektion in Stratix V-FPGAs wurde verbessert, sodass der Benutzer mehrere Fehler in das FPGA injizieren kann.
Klassifizierung von Konfigurationsfehlern
Da die meisten Konfigurationsfehler keinen Einfluss auf die Funktionalität eines FPGAs haben, erhöht die Möglichkeit, diese „Don’t-Care-“-Softfehler zu ignorieren, die tatsächliche mittlere Zeit zwischen Ausfällen (MTBFs) von SEUs stufenweise, was zu einer verbesserten Systembetriebszeit führt. Mithilfe der vom erweiterten CRC-Schaltkreis in FPGAs der Stratix-Serie (ab Stratix III FPGAs) bereitgestellten Positionsdaten und einer kleinen Menge an Logik zur Überprüfung der Fehlerposition anhand der Kritikalitätskarte kann eine SEU als „Care-“ oder „Don’t-Care-“ eingestuft werden.
Im Falle eines „Don’t-Care“-Konfigurationsfehlers können Sie die SEU ignorieren und weiterlaufen lassen. Die Kritikalitätskarte wird automatisch vom Quartus II Software-Entwicklungstool generiert und ist über eine benutzerdefinierte Schnittstelle zugänglich, z. B. über den aktiven seriellen Konfigurationsspeicher. Die Kritikalitätsprozessorlogik ist als IP-Megafunktion in die Quartus II Software integriert.
Korrektur von Konfigurationsfehlern
Um die Auswirkungen von SEU zu minimieren, können Stratix V FPGAs die CRAM-Bitflips ohne Systemausfallzeit korrigieren. Es gibt zwei Arten der automatischen SEU-Korrektur.
- Internes Scrubbing: Bei dieser Option läuft die CRAM CRC-Erkennung/Korrektur im Hintergrund und erfordert kein Benutzerdesign oder externe Komponenten. Wenn der CRC-Schaltkreis, der in harter Logik implementiert ist, über die Quartus II Software aktiviert wird, kann er Multibit-Fehler erkennen und einzelne oder doppelt benachbarte Fehler in einem Frame in einem Bruchteil von Millisekunden korrigieren, während der Rest des FPGAs in Betrieb ist.
- Dynamisches Neuladen von .pof: Korrigieren Sie CRAM-Bit-Flips, indem Sie CRAM-Bilder aus der externen .pof-Datei neu laden. Die Bild-für-Bild-Korrektur kann im Hintergrund erfolgen, oder Sie können sie initiieren. Diese Option kann zur Korrektur mehrerer CRAM-Bitflips (mehr als zwei benachbarte Fehler) pro Frame berücksichtigt werden.
Überprüfen von On-Chip-Speicherfehlern
Zusätzlich zur Überprüfung des Konfigurationsspeichers können die FPGAs der Stratix-Serie (ab Stratix III FPGAs) die Integrität des On-Chip-Speichers überprüfen. Der neue eingebettete M20K-Speicherblock bietet einen Schaltkreis mit hartem Fehlerkorrekturcode (ECC), der im Pipeline- oder Nicht-Pipeline-Modus verwendet oder ganz umgangen werden kann. Der für M20K-Speicher verwendete ECC-Code kann bis zu 3-Bit-Fehler erkennen und bis zu 2-Bit-Fehler korrigieren. Die verbesserte Multi-Bit-Abdeckung zusammen mit der physikalischen Verschachtelung von Bits in einem Wort bietet eine Minderung von Multi-Bit-Störungen in Stratix V FPGAs. Die Verwendung des neunten Speicherbits kann zusammen mit einer automatisch generierten ECC-Megafunktion eine SEU-Abschwächung für Speicherstrukturen bereitstellen, die unter Verwendung von Speicherlogik-Array-Blöcken (MLABs) aufgebaut sind. Der MegaWizard-Plug-In-Manager in der Quartus II-Software macht die Konfiguration der ECC-Funktionalität einfach.