Les erreurs de parité en mémoire sont détectées à l'aide d'un simple bit de parité. Voici comment cela fonctionne :
1. Calcul des bits de parité : Lorsque les données sont écrites en mémoire, un bit de parité est calculé pour chaque octet (ou mot, selon l'architecture du système). Ce bit est défini sur 0 ou 1 pour que le nombre total de 1 dans l'octet (y compris le bit de parité) soit pair (parité paire) ou impair (parité impaire). Le système utilise systématiquement une parité paire ou impaire.
2. Stockage mémoire : Le bit de parité est stocké avec l'octet de données en mémoire.
3. Contrôle de parité en lecture : Lorsque les données sont lues dans la mémoire, le système recalcule le bit de parité en fonction des données récupérées.
4. Détection d'erreur : Ce bit de parité recalculé est ensuite comparé au bit de parité stocké. S'ils sont différents, une erreur de parité est détectée. Cela indique qu'au moins un bit dans les données a basculé (passé de 0 à 1 ou vice versa).
Exemple (parité paire) :
Disons que nous avons l'octet de données « 10110100 ».
* Nombre de 1 :4 (pair)
* Bit de parité paire :0 (pour garder le nombre total de 1 pair)
* Stocké en mémoire :`101101000`
Si un bit s'inverse pendant le stockage ou la récupération et que nous lisons « 101101100 », la parité recalculée serait 1 (cinq 1), ce qui ne correspond pas au bit de parité stocké (0). Cela signale une erreur de parité.
Limites :
* Détection d'erreur sur un seul bit uniquement : La vérification de parité ne peut détecter qu'un nombre *impair* d'erreurs sur les bits. Si deux bits s'inversent, la parité sera toujours correcte, entraînant une erreur non détectée.
* Emplacement de l'erreur non identifié : La parité détecte uniquement la *présence* d'une erreur, pas son *emplacement* dans l'octet. La correction des erreurs nécessite des techniques plus sophistiquées comme l'ECC (Error Correction Code).
Bien que simple, la vérification de parité constitue un moyen rentable de détecter une partie importante des erreurs de mémoire, ce qui en fait une fonctionnalité courante dans de nombreux systèmes de mémoire. Des méthodes de détection et de correction d'erreurs plus robustes sont utilisées là où une plus grande fiabilité est cruciale (comme dans les serveurs et le calcul haute performance).
|