• Aucun résultat trouvé

Contribution à la compréhension de la causalité des er- er-reurs

Nano-Satellites" 10.1 Contexte

10.3.1 Contribution à la compréhension de la causalité des er- er-reurs

Conception et implantation du banc d'essai

An de mieux comprendre le comportement d'un FPGA sous-alimenté tout en tenant compte de l'impact d'autres facteurs, nous avons avons conçu un banc d'essai permettant de comparer les valeurs de sorties de deux FPGA dont les entrées reçoivent le même signal de stimulus, mais où des erreurs sont articiellement générées pour un des deux. Nous

dénissons F comme la fonction de transfert attendue (FPGA sans erreur) et ˆF comme

la fonction de transfert pour le FPGA soumis aux erreurs via les facteurs contrôlables

(voir gure 10.1). Les deux FPGA sont soumis aux mêmes facteurs non-contrôlables

(voir gure 10.2).

Figure 10.1: Facteurs contrôlables. Extrait de la thèse de doctorat d'Alex Birklykke. Le banc de test est schématisé dans la gure 10.3; une photographie est disponible dans la publication C.21 listée dans le chapitre 5.

Figure 10.2: Facteurs non-contrôlables. Extrait de la thèse de doctorat d'Alex Birklykke.

Figure 10.3: Vue schématisée du banc de test. Extrait de la publication C.21.

Le premier FPGA est celui qui est soumis aux erreurs, nous y référons en tant que UUT (Unit Under Test). Le second, que nous avons appelé STALA (pour STAtistical Logic Analyser) génère les vecteurs de test (envoyés au FPGA UUT) et la réponse sans erreur. Il eectue aussi l'analyse statistique (comparaison des résultats avec et sans erreurs). Les facteurs tension, fréquence, conguration du FPGA et propriétés statistiques des vecteurs de test sont contrôlables. La tension et la fréquence sont fournies par des sources externes commandées via le bus GPIB et la conguration du FPGA se fait via le bus JTAG. Le câblage fait que la gestion dynamique s'applique seulement au FPGA UUT ; cependant, il n'élimine pas les interférences éventuelles. De plus, le banc permet d'automatiser les expérimentations au moyen d'un programme Python qui génère les scripts pour la synthèse FPGA, le lancement des expériences et l'analyse des résultats.

Causalité des erreurs : théorie et pratique

Nous avons évalué deux modèles théoriques issue de la littérature, à savoir un modèle d'erreur de seuil (threshold error model) et un modèle d'erreur de timing (timing error model) [15], [16], [17] et les avons comparés avec les résultats pratiques obtenus avec le banc d'essai décrit plus haut.

Le modèle d'erreur de seuil représente les cas où le bruit présent dans l'environnement perturbe les signaux numériques au point où des erreurs se produisent (une valeur haute ('1') devient une valeur basse ('0') ou vice-versa). Elles sont plutôt rares lorsque la tension d'alimentation est proche de la valeur nominale, mais peuvent se produire plus facilement lorsqu'elle est abaissée.

Nous avons montré dans la publication C.20 listée dans le chapitre 5 que la si fonction de transfert F représente un inverseur ou une chaîne de buers, alors le taux d'erreur d'un système avec des erreurs de seuil peut se modéliser comme suit :

pe= (1− p)α + pβ

avec α le taux de faux positifs, β le taux de faux négatifs et p = P r(X = 1) la probabilité de valeur de bit à l'entrée du circuit.

Nous avons aussi observé que pour des valeurs de α et β, le taux d'erreur est linéairement dépendant de p. En conséquence, si le taux d'erreurs observé pour un FPGA sous-alimenté est aussi linéairement dépendant de p, alors il est probable que les erreurs de seuil soient la principale cause d'erreur.

D'un autre côté, le modèle d'erreur de timing représente les cas où une violation de timing se produit, soit à cause de la sous-alimentation, soit du bruit, soit d'une combinaison des deux. Une violation de timing se produit quand le délai du chemin (critique) excède la période d'horloge. Dans ce cas, le signal est soit lent à monter soit lent à descendre. Dans les deux cas, la conséquence est que la bascule (latch) qui suit la logique combinatoire mémorise l'ancienne valeur au lieu de la nouvelle et correcte. En conséquence, l'eet des erreurs de timing est que le signal devient temporairement bloque sur d'anciennes valeurs. Dans la publication C.20 nous avons montré que le taux d'erreur dans le cas d'erreurs de timing peut se modéliser comme suit :

pe = p(1− p)(α + β)(1 − ρ)

avec α et β respectivement les probabilités que le signal soit lent à monter ou lent à de-scendre. ρ décrit la corrélation temporelle entre les bits adjacents dans le vecteur de test.

Contrairement au modèle précédent, nous observons que le taux d'erreur dans le case d'erreurs de timing dépend de ρ selon un polynôme du deuxième ordre. En conséquence, si le taux d'erreurs observé pour un FPGA sous-alimenté montre cette même dépendance à ρ, alors il est probable que les erreurs de timing soient la principale cause d'erreur. Enn, avec ces deux modèles en tête, nous avons évalué la cause des erreurs dans le FPGA UUT. La publication C.20 contient tout un ensemble de graphiques illustrant le taux d'erreur dans diérents cas ; la gure 10.4 en est un exemple. Le taux d'erreur est clairement dépendent de la probabilité de bit en entrée de manière polynomiale ; nous concluons donc que les erreurs sont essentiellement de type timing.

Nous observons aussi l'augmentation soudaine du taux d'erreur (vers 50 mV), ce qui indique que le phénomène est dichotome (soit il y a des erreurs, soit il n'y en pas). De plus, le taux d'erreur est positif seulement lorsque 0 < p < 1, c.à.d. que la violation de timing n'est qu'une condition nécessaire aux erreurs ; il faut aussi que le chemin où elle a lieu soit actif (sensitized). Enn, nous observons que le timing du circuit est le facteur qui lie la tension et les erreurs. Ainsi, un prérequis pour prédire les erreurs de timing est la possibilité de prédire le timing en fonction de la tension (voir ce qui suit.)

Figure 10.4: Exemple de taux d'erreur pour un FPGA sujet à l'ajustement dynamique de la fréquence et de la tension (sous-alimentation). Extrait de la publication C.20.