¿Qué es Nand Flash y Bad block?

Oct 25, 2022

FLASH DE 1 NAND

1.1 Introducción de la memoria FLASH NAND

NAND FLASH Memory, memoria flash de nombre chino. Recibe su nombre debido a su rápida velocidad de borrado.

NAND FLASH fue inventado por el Sr. Fujio Masuoka del Grupo Toshiba de Japón. A diferencia de otros dispositivos de almacenamiento, las líneas de datos y las líneas de dirección NAND FLASH están multiplexadas y las líneas de dirección no se pueden usar para direccionamiento aleatorio. Por lo tanto, NAND FLASH usa páginas de página como unidad de lectura (generalmente una sola página es de 2K Bytes) y bloques como unidad de borrado. (Generalmente, un solo bloque es de 128 KB o 256 KB). Después de enviar un comando de borrado, NAND FLASH borra todos los bloques a 1 a la vez, y todo el contenido dentro se convierte en 0xFF. Debido a que el tiempo de borrado es muy corto, es tan rápido como un rayo. Entonces llamamos a esta memoria Memoria FLASH.


1.2 Mecanismo de implementación de hardware de NAND FLASH

La unidad básica de NAND FLASH es un MOSFET con puerta flotante.

Los datos se almacenan en forma de carga eléctrica en celdas de memoria Flash. La cantidad de carga almacenada depende del voltaje aplicado a la puerta externa. La representación de los datos está representada por si el voltaje de la carga almacenada supera un umbral específico Vth, y si la carga almacenada es suficiente y supera el umbral Vth, representa 1. Por escribir 0, es para descargar y la carga se reduce a menos de Vth, lo que significa 0.


2 bloque defectuoso

2.1 Definición de bloque defectuoso

Dado que el proceso de NAND Flash no puede garantizar la confiabilidad del rendimiento de la matriz de memoria NAND durante su ciclo de vida, se producirán bloques defectuosos durante la producción y el uso de NAND. Las características de los bloques defectuosos son: al programar/borrar este bloque, algunos bits no pueden subirse, lo que provocará errores en las operaciones de programa de página y borrado de bloque.


2.2 Clasificación de bloques defectuosos: bloque defectuoso de fábrica FBB y bloque defectuoso usado GBB

(1) FBB: Factory Bad Block, el bloque defectuoso de fábrica, el bloque defectuoso que acaba de salir de la fábrica, se denomina bloque defectuoso enmascarado o bloque defectuoso/inválido inicial. Cuando NAND Flash salga de fábrica, habrá una cierta cantidad de bloques defectuosos debido al proceso de fabricación. Al mismo tiempo, la fábrica original probará el NAND FLASH antes de salir de la fábrica, y los bloques utilizados para la prueba también pueden ser marcados como bloques defectuosos por la fábrica original.

Antes de salir de fábrica, la fábrica original marcará los bloques defectuosos. La marca específica es que para la memoria flash NAND común con un tamaño de página de 2K, para la memoria flash NAND, la marca de bloque defectuoso generalmente se encuentra en la primera página de cada bloque. El primer byte del área de reserva de la página. En concreto, puedes consultar la ficha técnica de diferentes productos. Si no es 0xFF, significa que es un bloque defectuoso. En consecuencia, todos los bloques normales, los bloques buenos y todos los datos en ellos son 0xFF.

(2) GBB: Grown Bad Block, utilizando bloques defectuosos. Durante el uso de NAND Flash, debido a que la vida útil de borrado y escritura de NAND Flash es limitada (generalmente no más de 100,000 veces), también se producirán bloques defectuosos después de un cierto período de uso . Si se encuentra un error de borrado de bloque o programa de página, el bloque se puede marcar como un bloque defectuoso. Para mantener la coherencia con la información inherente del bloque defectuoso, el primer byte (byte) del área de repuesto también se marcará con otros valores distintos de 0xFF.


2.3 Tabla de bloques defectuosos:

El primer bloque de un flash debe estar en buen estado cuando sale de fábrica, de lo contrario significa que no se puede usar todo el flash. Porque generalmente el primer bloque se utilizará para guardar la tabla de bloques defectuosos (BBT, Bad Block Table). Debido al mecanismo de trabajo de la gestión de bloques defectuosos (Administración de bloques defectuosos) en el controlador NAND Flash bajo la arquitectura MTD del kernel de Linux y el controlador NAND Flash de UBOOT, después de cargar el controlador, si no agrega parámetros, solicita activamente omitir el escaneo de bloque defectuoso. Si es así, buscará activamente bloques defectuosos y establecerá el BBT necesario para la gestión posterior de bloques defectuosos.


2.4 Número y ubicación de bloques defectuosos

La fábrica NAND FLASH original tendrá un estándar para el número y la ubicación de los bloques defectuosos. La fábrica original generalmente promete que la cantidad de bloques defectuosos no supera el 2 por ciento, pero la ubicación de los bloques defectuosos no está garantizada (pero el primer bloque debe ser bueno cuando sale de la fábrica, porque el primero se utilizará para tienda BTT). Por ejemplo, un chip NAND tiene 2048 bloques, 2048*0.02=40.96, por lo que la cantidad de bloques defectuosos no superará los 40. Pero donde aparecen los bloques defectuosos, si son continuos o al azar, no hay garantía.


2.5 El impacto de los bloques malos en los bloques buenos

Un bloque defectuoso no afecta el rendimiento de los bloques buenos porque está aislado de las líneas de bits mediante puertas seleccionadas)


2.6 Detección de bloques defectuosos

Se realiza una operación de "borrado" en estos bloques marcados como "bloques defectuosos". Si se produce el error de borrado de bloque, prueba que el bloque es un bloque realmente malo.


2.7 Notas sobre la operación de borrado

De hecho, también podemos borrar bloques defectuosos marcados. Después de borrarse a la fuerza de esta manera, la información del bloque defectuoso ya no existe. Para bloques defectuosos de fábrica, generalmente no se recomienda borrar la información marcada.

Hay un comando en UBOOT llamado "nand scrub", que borra todo el contenido del bloque, incluida la marca de bloque defectuoso, ya sea la marca de fábrica o la nueva marca que aparece en el proceso de uso posterior. Por lo general, no se recomienda usar esto. Cuando se produce la fábrica NAND FLASH, los bloques defectuosos NAND se prueban y marcan en un rango relativamente amplio de temperatura y voltaje. Estos bloques defectuosos aún pueden funcionar bajo cierta temperatura o voltaje, pero pueden cambiarse en otro momento cuando cambien las condiciones. fracaso, convirtiéndose en una potencial bomba de relojería. Si se borran los bloques defectuosos marcados por la fábrica original, es fácil encontrarse con el problema de la pérdida de datos al escribir y guardar datos.

Es mejor usar "nand erase" para borrar solo los bloques buenos, para los bloques que ya están marcados como bloques malos, no los borre.


3 Mala gestión de bloques

El controlador de dispositivo o FLASH administrará los bloques defectuosos, que es BBM (Administración de bloques defectuosos). Agregaremos esto más tarde.


Observación

1 ¿Por qué un buen bloque está marcado con 0xff: porque el borrado de Nand Flash es cambiar todos los bits del bloque correspondiente a 1, durante la operación de escritura, cada bit del chip solo se puede cambiar de 1 a 0, pero no. Cambie de 0 a 1. 0XFF significa que todo se puede borrar a 11111111. Indica que se puede borrar con éxito y es un buen bloque.

———————————————

Declaración de derechos de autor: este artículo es un artículo original del blogger de CSDN "Alexander{{0}}Lai" y sigue el acuerdo de derechos de autor CC 4.0 BY-SA. Adjunte el enlace de la fuente original y esta declaración para su reimpresión.