¿Qué es un «disturbio de lectura»? ¿Están los proveedores de flash haciendo algo para mitigar este problema en el nivel del controlador?
Una perturbación de lectura ocurre cuando la metodología de lectura utilizada en una celda NAND hace que los datos cambien en las celdas NAND adyacentes o cercanas dentro de un bloque flash. Todas las celdas de los chips NAND flash existen en el mismo dado. Eso significa que puede haber un acoplamiento cruzado entre las celdas limítrofes de un bloque. Las lecturas de celda requieren energía para pasar a través de esa celda para determinar su estado. Esa energía tiene el potencial de sangrar suficiente carga de una celda adyacente para que empuje el bit de esa celda más allá de su umbral. El resultado es un cambio en su estado. Lo curioso de este problema de flash es que la celda que se lee no es la que cambia. Son los vecinos de la celda de lectura los que están en riesgo. El cambio de datos no solicitado nunca es algo bueno.
En general, la perturbación de lectura no es tan común hoy en día porque requiere muchas lecturas en una celda específica para que suceda. Por lo general, la cantidad de lecturas necesarias para provocar una perturbación de lectura se mide en cientos de miles. Y los proveedores de almacenamiento flash son bastante conscientes del problema de las perturbaciones de lectura. Esa conciencia les ha llevado a construir una serie de medidas para mitigar o eliminar el problema.
La primera es establecer un umbral de lectura de bloque desde el último ciclo de borrado. El controlador copia ese bloque a otro bloque no utilizado o borrado cuando se alcanza el umbral. El bloque se actualiza por completo y reinicia el contador. El segundo son los códigos de corrección y detección de errores (ECC) más sensibles que detectan un error de lectura y lo corrigen. Si el controlador flash no copia el bloque antes de que se produzca un error de perturbación de lectura y los errores son demasiados para que el ECC los corrija, se producirán pérdidas de datos.