Cuando leo cualquier documento sobre flashes NAND y NOR. Dicen que NAND es memoria secuencial mientras que NOR es aleatoria. No entiendo qué impide que la memoria NAND sea aleatoria también, ya que la única diferencia en estas dos memorias es que son en serie y en paralelo.
NAND flash no almacena datos sin errores. Tiene una tasa de error de bit (comparativamente) alta. Por esta razón, 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 verificarlo 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 páginas.
La tendencia durante los últimos 10 años ha sido que el tamaño de página y la densidad de NAND aumenten, 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 se tarde en leer, comprobar y corregir los datos. En los casos en que se debe corregir un error, el tiempo de lectura efectivo es mucho más largo que en 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 básicamente se requiere aceleración de hardware para que funcione sin afectar el rendimiento del sistema.
Cuando se trata de escribir datos en flash NAND, existen algunos problemas adicionales. Para escribir datos, primero debe borrar. NAND flash no permite la escritura aleatoria. Los borrados toman 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 la resistencia. El flash NAND solo se puede borrar tantas veces antes de que se estropee. Entonces, a veces, vas a modificar un byte y luego encuentras que el bloque es malo. Debe marcar el bloque como incorrecto, luego reubicar todo el bloque en otro lugar, solo para escribir un byte. Y eso significa que debe realizar un seguimiento de dónde se han reubicado o reasignado los bloques.
Espero que esté comenzando a ver algunas de las dificultades asociadas con el uso de NAND flash 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 bloques defectuosos de flash NAND.
st2000
marcus muller
jimmyb
Andrés