• Aucun résultat trouvé

Chapitre I : Contexte et Etat de l’art

III.4.2 Test en accélérateur de particules neutrons

III.4.2.1 Conditions expérimentales

Pour valider le facteur de décote obtenu avec notre méthodologie, une première expérimentation a été réalisée aux neutrons 14 MeV, à la SODERN [SOD04]. Ce moyen de test a donné l’opportunité de vérifier le bon fonctionnement du système de détection de fautes et de l’équipement de contrôle. Les composants sous test doivent être disposés de manière radiale par rapport au flux de particules car la source émet les neutrons de manière iosotropique. Il est donc

110

nécessaire de calculer la distance du composant par rapport au centre du tube pour obtenir le flux de neutrons (qui varie en 1/r²). La Figure III-12 montre l’installation de l’expérimentation. Les neutrons mono-énergétiques sont produits grâce à la réaction de fusion du deutérium-tritium. Cette installation produit jusqu'à 109 neutron/s sur 4π stéradian.

Figure III-12 : Positionnement de la carte par rapport au tube (gauche) à la SODERN

L’avantage de ce moyen de test est la disponibilité et la proximité de l’installation. De plus, il n’est pas nécessaire de procéder à l’ouverture du boîtier du composant, les neutrons pouvant traverser la matière. Cependant, la principale contrainte pour réaliser des tests avec une source de neutrons est le blindage des autres éléments de la carte. En effet, il a été nécessaire de trouver un compromis entre l’irradiation sous un faible flux du FPGA et la protection des autres composants de la carte sous test. Ainsi, le FPGA est situé à 4 cm du tube.

Pendant la moitié des tests (n°1 à 3), la SRAM de 1 MB et les autres composants de la carte étaient protégés par 3 cm de polyéthylène. Le flux de neutrons à la surface du FPGA était donc de 8x105 n/cm²/s. Pour les tests n° 4 à 7, la protection de polyéthylène a été retirée pour augmenter le flux de neutrons à la surface de la puce. Il était donc de 1x106 n/cm²/s néanmoins la probabilité d’obtenir une erreur dans la SRAM était supérieure.

III.4.2.2 Résultat obtenus

La section efficace pour une technologie 130 nm de FPGA est estimée à 2x10-14 cm²/bit [NOR10]. Elle correspond à la section-efficace d’une mémoire SRAM de 130nm. Les résultats obtenus sont exposés dans le Tableau III-3. Pour chaque test numéroté de 1 à 7, la fluence, le nombre d’erreurs attendues et le nombre d’erreurs observées durant l’irradiation sont donnés. Le

111

nombre d’erreurs attendues « global » est le nombre d’erreurs dans toutes les BRAM utilisées pour une fluence donnée. Comme mentionné précédemment, en raison des inconvénients de l’IP de détection, seules les erreurs en mémoire cache durant le temps d’exécution de l’application sont observées. Ainsi, une estimation de ce nombre d’erreurs est donnée dans la quatrième colonne du tableau. Dans la dernière colonne du Tableau III-3 , le nombre d’erreurs observées pendant l’exécution de l’application est présenté. Deux types d’erreurs se distinguent : les erreurs liées au résultat final de l’application et les erreurs détectées dans la mémoire cache par le système de détection de faute.

L’irradiation du composant exécutant l’application FFT n’a pas pu être réalisée par manque de temps. De ce fait, seul le programme « addition de vecteurs » a été testé aux neutrons. Le résultat final attendu à la fin de chaque exécution de ce programme est un mot de 32 bits « 0x0181F060 », correspondant au CRC calculé. Après irradiation, le résultat final peut être de trois types :

- Erreur de résultat final d’application : une valeur différente est obtenue, - Une perte de séquencement : le programme se termine de façon inattendue, - Pas d’erreur : la valeur du résultat final est correcte.

Tableau III-3 : Comparaison entre les erreurs détectées et les erreurs prédites

N° test Fluence

(n/cm²)

Nombre d’erreurs attendues Nombre d’erreurs observées durant

l’irradiation

Global Dans le cache

durant l’application Erreurs d’application Erreurs de parité en cache 1 4,7x108 1,2 0,3 - - 2 1,7x109 4,3 1,0 - - 3 9,5x108 2,4 0,5 - - 4 1,7x109 4,2 1,0 2 - 5 9,8x108 2,4 0,6 - - 6 9,1x108 2,3 0,5 - - 7 4,5x109 11,1 2,5 1 2

Temps total d’exposition aux radiations 123 min

Pour les tests n° 1, 2, 3, 5 et 6, aucune erreur n’a été observée. Durant le test n°4, nous avons détecté deux erreurs de résultat final. La première erreur était « 0xD0C2B135 » et la seconde erreur était « 0xBD71B175 ». Cependant, le signal indiquant une erreur de parité n’a pas été déclenché. Pendant le test n°7, nous avons observé deux types d’erreurs :

112

- Au cycle d’application 3611, une erreur de parité (erreur3) dans le cache d’instructions et une erreur de résultat d’application.

- Au cycle 4468, une erreur de parité (erreur4) dans le cache d’instructions mais pas d’erreur de résultat d’application.

Le Tableau III-4 résume les principaux résultats de notre expérimentation.

Tableau III-4 : Comparaison entre les erreurs prédites et les erreurs détectées

Erreurs Adresse Fautes Prédites par l’analyseur de cache

erreur1 pas applicable

erreur2 pas applicable

erreur3 0x4000A958 oui oui

erreur4 0x4000A968 non oui

Pour l’erreur1 et l’erreur2, il n’y a pas eu d’erreurs de parité détectées. Nous pouvons en déduire que ces erreurs ne sont pas reliées à la mémoire cache mais sont probablement dues à d’autres éléments du FPGA comme les bascules ou les BRAM (hors cache). Ainsi, ces résultats ne peuvent pas être utilisés pour valider la méthode d’analyse de cache. L’erreur3 correspond à une erreur de parité dans le cache d’instructions à l’adresse “0x4000A958”. Après vérification dans les résultats issus de l’analyseur de cache, cette adresse est incluse dans nos prédictions comme étant critique à ce cycle d’horloge. L’erreur4 est apparue à l’adresse “0x4000A968” et n’a pas engendré d’erreur dans le résultat final de l’application. L’analyseur de cache avait considéré cette erreur comme critique.

Nos essais effectués aux neutrons 14 MeV n’ont donné que quelques résultats à cause du temps d’irradiation très court associés à un flux de particules relativement faibles. Cependant, plusieurs modes de défaillance ont été observés en cohérence avec les prédictions de l’analyseur de cache. Ce test expérimental a surtout permis de vérifier l’exécution correcte du dispositif développé pour la détection de fautes dans les mémoires cache.