Contrôle de redondance cyclique (CRC) dans les FPGA de la série Stratix®
La capacité de détecter et d'agir sur les perturbations d'événement unique (SEU) pendant qu'un FPGA fonctionne est devenue plus importante que jamais. Tous les FPGA Stratix® sont dotés de circuits dédiés à la propriété intellectuelle (IP) de contrôle de redondance cyclique (CRC) qui détectent les basculements de bits CRAM et indiquent une erreur sur une broche CRC_ERROR dédiée.
Depuis la génération de processus de 130 nm (Stratix® FPGA), Intel® FPGA a inclus des circuits de détection d'erreur d'arrière-plan dans tous les FPGA utilisant un vérificateur CRC dur pour permettre une vérification continue du contenu de la CRAM pendant le fonctionnement de l'appareil. Le CRC est garanti pour détecter les erreurs multi-bits. L'avantage de l'intégration de circuits CRC sur puce dans les portes dures est que les circuits sont robustes et non sensibles aux erreurs logicielles. De plus, le circuit CRC est un bloc autonome qui est simplement activé en cochant une case dans les options de compilation Quartus® II.
Grâce à des techniques de processus et de conception, Intel® FPGA a amélioré le FIT/Mb à chaque génération de technologies. Nous avons également fourni des solutions d'atténuation améliorées pour les erreurs logicielles à différents niveaux : silicium, IP et outils.
Un exemple d'amélioration est l'augmentation de la fonctionnalité et de la sophistication des circuits CRC, comme indiqué dans le tableau 1.
Tableau 1. Améliorations CRC dans les FPGA de la série Stratix®
Famille FPGA série Stratix® 1 |
CRAM CRC |
CRAM CRC |
CRAM |
Injection |
Erreur ! |
Erreur CRAM |
Sur puce |
---|---|---|---|---|---|---|---|
Oui |
- |
- |
- |
- |
- |
- |
|
Oui |
- |
- |
- |
- |
- |
- |
|
- |
Oui |
Oui |
Oui |
Oui |
- |
Oui |
|
- |
Oui |
Oui |
Oui |
Oui |
- |
Oui |
|
- |
Oui |
Oui |
Oui |
Oui |
Oui |
Oui |
- Sélectionnez le lien approprié de la famille de la série Stratix® pour obtenir des détails complets sur les fonctionnalités CRC dans une famille Stratix® FPGA spécifique.
Vérification des erreurs de configuration
Tous les FPGA de la série Intel FPGA Stratix® calculent le CRC lors de la configuration et le stockent dans des registres. Des circuits dédiés le comparent à un CRC calculé automatiquement. La broche CRC_ERROR signale un échec lorsque les données de la RAM de configuration sont modifiées par inadvertance et facilite le déclenchement de la reconfiguration. La vérification CRC est contrôlée par le logiciel de conception Quartus II.
Depuis que les circuits de vérification de configuration d'arrière-plan CRC dédiés ont été introduits dans la première génération de FPGA Stratix®, Intel FPGA a continuellement amélioré la capacité :
- Au lieu d'une seule valeur CRC pour l'ensemble du dispositif, les FPGA de la série Stratix® (FPGA Stratix® III et versions ultérieures) stockent une valeur CRC pour chaque trame de configuration, ce qui permet une détection SEU plus rapide.
- Le moteur de détection d'erreurs CRC dans les FPGA de la série Stratix® (FPGA Stratix® III et versions ultérieures) fournit l'emplacement de la SEU pour les erreurs à un seul bit et à plusieurs bits adjacents.
- Le circuit de configuration CRC des FPGA de la série Stratix® (FPGA Stratix® III et versions ultérieures) permet divers types d'injection d'erreurs pour simuler les événements SEU et tester la stratégie d'atténuation.
- Le circuit de détection / correction CRC des FPGA Stratix® V a une couverture de détection d'erreurs accrue (99,99999998 %) et est capable de corriger les erreurs multi-bits adjacentes simples et doubles.
- Le temps de détection du CRC dans les FPGA Stratix® V a été amélioré d'environ 7 fois pour des densités équivalentes par rapport à la famille Stratix® IV avec un schéma CRC amélioré.
- L'injection de défauts dans les FPGA Stratix® V est améliorée lorsque l'utilisateur peut injecter plusieurs défauts dans le FPGA.
Classification des erreurs de configuration
Étant donné que la majorité des erreurs de configuration n'ont aucun effet sur la fonctionnalité d'un FPGA, la possibilité d'ignorer ces erreurs logicielles « indifférentes » permet d'augmenter considérablement le temps moyen réel entre les défaillances (MTBF) des SEU, ce qui améliore la disponibilité du système. En utilisant les données d'emplacement fournies par le circuit CRC amélioré dans les FPGA de la série Stratix® (FPGA Stratix® III et versions ultérieures), et une faible logique pour vérifier l'emplacement de l'erreur par rapport à la carte de criticité, un SEU peut être déterminé comme étant « à prendre en charge » ou « indifférent ».
En cas d'erreur de configuration « indifférente », vous pouvez décider d'ignorer le SEU et de continuer à exécuter. La carte de criticité est générée automatiquement par l'outil de développement logiciel Quartus II et est accessible via une interface définie par l'utilisateur, telle que la mémoire de configuration série active. La logique du processeur de criticité est intégrée dans le logiciel Quartus II en tant que mégafonction IP.
Correction d'erreur de configuration
Afin de minimiser l'impact des erreurs SEU, les FPGA Stratix® V peuvent corriger les basculements de bits CRAM sans temps d'arrêt du système. Il existe deux types de corrections SEU automatiques.
- Nettoyage interne : avec cette option, la détection / correction CRAM CRC s'exécute en arrière-plan et ne nécessite aucune conception de l'utilisateur ni aucun composant externe. Lorsqu'il est activé via le logiciel Quartus II, le circuit CRC, implémenté en logique matérielle, peut détecter les erreurs multi-bits et corriger les erreurs simples ou doubles adjacentes dans une trame en une fraction de milliseconde pendant que le reste du FPGA est en fonctionnement.
- Rechargement dynamique .pof : corrige les basculements de bits CRAM en rechargeant les images CRAM à partir du fichier .pof externe. La correction de trame peut se produire en arrière-plan ou vous pouvez l'initier. Cette option peut être envisagée pour corriger plusieurs basculements de bits CRAM (plus du double d'erreurs adjacentes) par trame.
Vérification des erreurs de mémoire sur puce
En plus de la vérification de la mémoire de configuration, les FPGA de la série Stratix® (FPGA Stratix® III et versions ultérieures) peuvent vérifier l'intégrité de la mémoire sur puce. Le nouveau bloc de mémoire embarqué M20K offre un circuit de code de correction d'erreur (ECC) qui peut être utilisé en mode pipeline ou non pipeline ou contourné en totalité. Le code ECC utilisé pour la mémoire M20K peut détecter des erreurs jusqu'à trois bits et corriger des erreurs jusqu'à deux bits. La couverture multi-bits améliorée ainsi que l'entrelacement physique des bits dans un mot permettent d'atténuer les perturbations multi-bits dans les FPGA Stratix® V. L'utilisation du neuvième bit de mémoire, ainsi qu'une mégafonction ECC générée automatiquement, peuvent fournir une atténuation SEU pour les structures de mémoire construites à l'aide de blocs de matrice logique de mémoire (MLAB). Le gestionnaire de plug-ins MegaWizard du logiciel Quartus II simplifie la configuration de la fonctionnalité ECC.