« Fonctionnement d'un ordinateur/Les architectures tolérantes aux pannes » : différence entre les versions

m
aucun résumé de modification
mAucun résumé des modifications
Avec la redondance matérielle passive, tous les composants travaillent en parallèle : ils reçoivent les données en entrée, les traitent, et fournissent un résultat plus ou moins en même temps. La sortie des composants est reliée à un système qui se chargera de corriger les erreurs ou fautes en sortie, sans pour autant les détecter. Par exemple, on peut imaginer ce que cela donnerait avec des unités de calcul redondantes : toutes les unités de calcul recevraient les opérandes en même temps, feraient leurs calculs indépendamment les unes des autres, et fourniraient leur résultat à un système qui corrigerait d'éventuelles erreurs de calcul ou pannes.
 
[[File:Tolérance aux pannes matérielle passive.png|centre|Tolérance aux pannes matérielle passive]]
 
===Vote à majorité===
Avec le vote à majorité sur les résultats, si différentes valeurs sont disponibles sur ses entrées, il prend simplement la valeur majoritaire sur les autres. Par exemple, prenons le cas avec 5 composants : si un composant tombe en panne, les quatre autres donneront un résultat correct : à 4 sorties contre une, c'est le résultat correct qui l'emportera.
 
[[File:Vote à majorité simple.png|centre|Vote à majorité simple]]
 
Il faut savoir que cette méthode ne fonctionne convenablement que si le nombre de composants est impair : dans le cas contraire, on peut avoir autant de composants en panne que de composants fonctionnels, ce qui fait qu'aucune majorité ne peut être dégagée. Si le nombre de composants en panne est inférieur au nombre de composants sans panne, ce système de vote à majorité donnera systématiquement le bon résultat. Ainsi, utiliser 3 composants permet de résister à une panne de composant, utiliser 5 composants permet de résister à une panne de 2 composants, en utiliser 7 permet de résister à 3 composants en panne, etc.
Ce vote à majorité peut aussi s'effectuer non au niveau du résultat, mais au niveau des bits. Dans ce cas, le circuit de correction d'erreur va placer les bits des différents résultats sur la même colonne, et choisit pour chaque colonne le bit qui est majoritaire. Ce calcul peut s'effectuer naturellement en utilisant ces portes à majorité, des portes logiques spécifiquement conçues pour déterminer quel est le bit majoritaire sur ses entrées. Des variantes de ce système de vote existent. Celles-ci consiste à prendre non pas le résultat ou bit majoritaire, mais seulement le plus fréquent (ou la médiane des différents résultats).
 
[[File:Vote à majorité bit à bit.png|centre|Vote à majorité bit à bit]]
 
===Implémentation===
Ce mécanisme fonctionne très bien, à un détail près : le circuit de vote à majorité est un point faillible du système : s'il tombe en panne, tout le système tombe en panne. Pour éviter cela, il est là encore possible de dupliquer ce système de vote à majorité, ce qui est utilise quand le résultat doit être réutilisé par d'autres (qui sont eux-mêmes dupliqués).
 
[[File:Triple Modular Redundancy et sa variante améliorée.png|centre|Triple Modular Redundancy et sa variante améliorée]]
 
Ce système de vote à majorité peut s'utiliser pour les communications avec la mémoire. Il peut notamment servir pour gérer les lectures ou écritures dans une mémoire, voire les deux. On peut aussi l'utiliser pour gérer les communications à l'intérieur d'un composant. Par exemple, on pourrait imaginer utiliser ces méthodes pour l'unité de calcul et les registres : dans les schémas suivants, il suffirait de remplacer la mémoire par les bancs de registre (register files) et le processeur par l'unité de calcul. Bref, les possibilités sont relativement nombreuses.
 
[[File:Vote à majorité sur les lectures et écritures - optimisé.png|centre|Vote à majorité sur les lectures et écritures - optimisé]]
 
==Redondance matérielle active==
Une première technique de redondance active se contente de dupliquer le composant en un composant principal et un composant de réserve. On peut alors détecter une erreur en comparant la sortie des deux composants : si elle est différente, on est certain qu'il y a eu une erreur (on suppose qu'il n'y en a pas eu en cas d'accord entre les deux composants). Une fois l'erreur détectée, on ne peut cependant pas la corriger. Le premier processeur à utiliser cette méthode était l'EDVAC, dans les années 1950. Il comprenait deux unités de calcul, et continuait d’exécuter son programme tant que les deux unités de calcul donnaient des résultats identiques. En cas de non-agrément entre les deux unités de calcul, le processeur ré-exécutait l'instruction fautive.
 
[[File:Duplication avec comparaison.png|centre|Duplication avec comparaison]]
 
On peut améliorer ce circuit afin qu'il puisse corriger l'erreur. Pour cela, on rajoute un troisième composant de réserve, dont on suppose qu'il ne sera pas en panne. Si une erreur est détectée par le comparateur, on préfère utiliser la sortie du composant de réserve.
 
[[File:Duplication par comparaison avec un composant de réserve.png|centre|Duplication par comparaison avec un composant de réserve]]
 
===Standby Sparing===
Avec cette méthode, le système de correction des pannes choisit un résultat parmi ceux qu'il reçoit, et considère que ce résultat est le bon. En somme, il choisit la sortie d'un composant parmi toutes les autres : c'est donc un multiplexeur ou un switch. Quand le composant choisit tombe en panne, le multiplexeur/switch se reconfigure et choisit alors une autre sortie (celle d'un autre composant). Reste que cette configuration du switch demande de détecter les pannes, afin de commander le multiplexeur switch. On trouve donc, pour chaque composant, un système de détection des pannes, ainsi qu'un circuit combinatoire qui commande le multiplexeur/switch.
 
[[File:Standby Sparing.png|centre|Standby Sparing]]
 
===Pair And Spare===
Il faut noter que les deux techniques précédentes sont loin d'être incompatibles. On peut notamment les utiliser de concert : la technique de duplication par comparaison peut être utilisée pour détecter les erreurs, et la technique du Standby Sparing pour effectuer la correction. On peut aussi faire l'inverse.
 
[[File:Pair And Spare.png|centre|Pair And Spare]]
 
===Spare and Pair===
Un exemple typique est l'architecture Stratus (aussi connue IBM/System 88). Celui-ci contient quatre processeurs logiques qui font leurs calculs en parallèle : le résultat est choisi parmi les processeurs sans pannes. Une panne ou erreur est détectée avec duplication par comparaison : chaque processeur logique est dupliqué et une panne est détectée si les deux processeurs sont en désaccord sur le résultat. L'ensemble contient donc huit processeurs.
 
[[File:Spare and Pair.png|centre|Spare and Pair]]
 
==Redondance matérielle hybride==
Avec la redondance à triple duplex, plusieurs composants qui utilisent la duplication avec comparaison sont suivis par une porte à majorité. Le principe de cette technique est simple : si un composant est en panne, alors son résultat ne doit pas être pris en compte dans le calcul du vote à majorité.
 
[[File:Redondance à triple duplex.png|centre|Redondance à triple duplex]]
 
===Redondance passive auto-correctrice===
La redondance passive auto-correctrice est similaire à la technique précédente, à un détail près : on n'utilise pas vraiment la duplication par comparaison de la même manière. Le principe de cette technique est le même que la précédente : si un composant est en panne, alors son résultat ne doit pas être pris en compte. Sauf que cette fois-ci, on détecte une panne en comparant le résultat du composant avec le vote majoritaire : il y a une panne si les deux ne sont pas identiques. Ainsi, au lieu d'avoir deux composants en entrée du comparateur, on n'en aura qu'un seul : l'autre entrée du comparateur sera reliée à la sortie de la porte à majorité.
 
[[File:Redondance passive auto-correctrice.png|centre|Redondance passive auto-correctrice]]
 
===Redondance passive avec composants de réserve===
Avec la redondance passive avec composants de réserve, plusieurs modules qui utilisent la redondance active sont suivis par un système de vote à majorité.
 
[[File:Redondance passive avec composants de réserve.png|centre|Redondance passive avec composants de réserve]]
 
{{AutoCat}}
39 555

modifications