Qu'est-ce que Perturbation en lecture (read disturb) ?
En flash NAND, phénomène où des lectures répétées d'un même bloc appliquent une faible tension aux cellules non lues, dont la tension de seuil dérive peu à peu.
Nom japonais: リードディスターブ
Domaine: SRAM et mémoire flash
Pourquoi lire une page sollicite ses voisines
Les cellules de flash NAND sont connectées en série dans des chaînes. Pour lire une ligne de mot, la grille de la cellule sélectionnée reçoit une tension de lecture, tandis que toutes les autres lignes de mot du bloc reçoivent une tension de passage de plusieurs volts, assez élevée pour rendre ces cellules pleinement passantes quelles que soient leurs données. Cette tension de passage crée un faible champ à travers l'oxyde tunnel des cellules non sélectionnées, et chaque lecture injecte une infime quantité de charge dans leur couche de stockage. Au fil de nombreuses lectures, leurs tensions de seuil dérivent vers le haut. Les cellules effacées, qui ont la tension de seuil la plus basse, sont généralement les plus vulnérables.
Quand la perturbation en lecture devient un problème
Une seule lecture provoque un décalage négligeable, mais la perturbation en lecture devient significative après des dizaines à des centaines de milliers de lectures d'un même bloc. Elle touche donc les blocs contenant des données lues très souvent mais rarement réécrites, comme le code de démarrage ou des tables de correspondance très sollicitées. Les cellules stockant plusieurs bits (MLC, TLC, QLC) sont plus sensibles, car les fenêtres de tension de seuil qui séparent leurs états sont étroites, et les cellules usées par de nombreux cycles de programmation/effacement le sont encore davantage.
Questions fréquentes
Qu'est-ce que la perturbation en lecture en flash NAND ?
La perturbation en lecture (read disturb) est la dérive progressive vers le haut de la tension de seuil des cellules non sélectionnées d'un bloc NAND, provoquée par la tension de passage qui leur est appliquée à chaque lecture. Après suffisamment de lectures, elle peut inverser des bits stockés.
La perturbation en lecture cause-t-elle un dommage permanent ?
Non. Le décalage provient d'une charge supplémentaire injectée dans les cellules : effacer le bloc et réécrire les données rétablit des marges normales, contrairement à l'usure due aux cycles de programmation/effacement.
Quelle est la différence entre la perturbation en lecture et les erreurs de rétention ?
La perturbation en lecture ajoute de la charge et élève les tensions de seuil proportionnellement au nombre de lectures subies par un bloc. Les erreurs de rétention proviennent de la fuite de charge au fil du temps, qui abaisse les tensions de seuil même lorsque les données ne sont pas consultées.