NAND flash no almacena datos sin errores. Tiene una tasa de error de bits (comparativamente) alta. Por este motivo, las páginas de datos en NAND se almacenan con datos redundantes que permiten la verificación y corrección de errores. Esto significa que cuando lee un byte de NAND flash, puede tener un error. Para comprobarlo o corregirlo, debe leer toda la página de datos para obtener los datos redundantes. Esto lo convierte fundamentalmente en un medio de almacenamiento orientado a la página.
La tendencia en los últimos 10 años más o menos ha sido en el aumento del tamaño de página y la densidad de NAND, pero la corrección de errores requerida también se ha vuelto más compleja y la probabilidad de errores de un solo bit también ha aumentado.
El tiempo efectivo de una operación de lectura de página depende de cuánto tiempo se tarda en leer, verificar y corregir los datos. En los casos en los que se debe corregir un error, el tiempo de lectura efectivo es mucho más largo que el caso sin error. Esta suele ser una característica indeseable de la memoria RAM. El proceso de corrección de errores es computacionalmente intensivo, y la aceleración de hardware es básicamente necesaria para que funcione sin perjudicar el rendimiento del sistema.
Cuando se trata de escribir datos en NAND flash, hay algunos problemas adicionales. Para escribir datos, primero debes borrar. NAND flash no permite la escritura aleatoria. Los borrados llevan un tiempo relativamente largo, y deben realizarse en un bloque completo de páginas. Entonces, para escribir un byte, primero debe leer un bloque en la memoria volátil, luego borrarlo y luego volver a escribir los datos modificados (incluidos los datos redundantes recién calculados para la página que modificó).
Ahora tenemos que hablar de resistencia. El flash NAND solo se puede borrar tantas veces antes de que se vuelva malo. Entonces, a veces, vas a modificar un byte, luego encuentras que el bloqueo es malo. Tienes que marcar el bloque como malo, luego reubicar todo el bloque en otro lugar, solo para escribir un byte. Y eso significa que debe hacer un seguimiento de dónde se han reubicado o reasignado los bloques.
Espero que comiences a ver algunas de las dificultades asociadas con el uso de la memoria flash NAND como RAM.
Si desea investigar más sobre esto, aquí hay algunos términos de búsqueda: resistencia de flash NAND, ECC de flash NAND, gestión de bloque de flash NAND mal.