Este equipo de expertos pasados algunos días de investigación y de recopilar de información, encontramos la solución, nuestro deseo es que te resulte útil para tu plan.
Solución:
Descargo de responsabilidad: en lo siguiente usaré (mal) el término “celda de memoria” como sinónimo de transistor de puerta flotante. Esto no es siempre true, como, por ejemplo, algunos chips flash recientes utilizan un medio de captura de carga de almacenamiento discreto, en lugar de una puerta flotante monolítica. Todavía se mantienen las mismas consideraciones true.
Me gustaría conocer el vínculo entre el diseño físico de las celdas flash NOR y NAND y el concepto de bloques y páginas.
Cada memoria flash es una array de las células de memoria. Esta array se divide en bloques. Dependiendo de la topología de la memoria flash (NOR o NAND, ver nota 1), cada bloque tendrá las celdas de cada línea de bits conectadas en paralelo o en “serie” (ver nota 2). A continuación se muestra una descripción de un bloque de memoria 4×4 NOR (izquierda) y NAND (derecha).
En la imagen anterior, el bloque es la totalidad de 16 celdas. array, mientras que las páginas son las celdas conectadas a la misma línea de palabras. Por supuesto, los bloques y las páginas no son tan pequeños.
También me gustaría saber la razón exacta por la que el borrado solo ocurre en lo que respecta a los bloques.
Debido a la definición de flash. Las memorias flash se denominan de esta forma porque, a diferencia de EEPROM, las celdas se borran en bloque, en paralelo, es decir, al mismo tiempo, por lo que son más rápidos que EEPROM. Borrar un número similar de celdas en EEPROM lleva mucho más tiempo, ya que se realiza por byte.
¿Por qué el tiempo de borrado es tan lento?
El proceso de borrado de células es muy lento, porque se basa en un efecto mecánico cuántico llamado túnel de Fowler-Nordheim (FN). Cada puerta flotante almacena una carga muy pequeña (cientos de $ nC / cm ^ 2 $ hasta $ mu C / cm ^ 2 $, según la tecnología en particular), pero la corriente de túnel FN también es pequeña ( entre algunas decenas $ mu A / cm ^ 2 $ hasta varias $ mA / cm ^ 2 $. El valor real depende del voltaje de programación del fabricante (la corriente FN crece exponencialmente con el voltaje). Como resultado, el tiempo necesario para el borrado es muy largo (normalmente algunos ms).
Tampoco entiendo por qué la memoria NAND no se puede mapear en memoria como la memoria NOR. Sé que se debe al hecho de que las celdas NOR están conectadas en paralelo a las líneas de bits, pero no entiendo por qué no puede leer una palabra completa a la vez en la memoria NAND.
En teoría, se podría hacer un controlador flash NAND que permita mapear la memoria NAND. El problema es que sera lento como el infierno. Y, ver más adelante, bastante poco práctico.
De hecho, en una primera instancia, la baja velocidad de lectura aleatoria se deriva de la topología NAND. Suponga que desea leer una palabra en la última página. En una topología NOR, la línea de bits se carga con la capacitancia de las otras celdas N-1 (más la capacitancia de la línea de bits, así como la capacitancia de extracción y decodificación). Por tanto, el retardo de propagación aumenta casi linealmente con el número de líneas de palabras. En una topología NAND, los MOSFET están en serie. La red se puede aproximar como se muestra a continuación.
El tiempo de propagación se puede aproximar con el retardo de Elmore, que se puede calcular como $$ t_ PD = k cdot sum_ i = 1 ^ N C_i sum_ j = 1 ^ iR_j $ PS
Suponiendo valores iguales de C y R, tiene que esta fórmula produce aproximadamente $ k cdot R cdot C cdot frac N (N + 1) 2 $, es decir el retardo de propagación aumenta con el cuadrado del número de líneas de palabras por bloque. En un flash NAND típico hay 32-64 líneas de palabras por bloque, por lo tanto, descuidando las capacitancias de las líneas de bits, el tiempo puede ser aproximadamente 30-60 veces mayor que NOR (dado el mismo número de líneas de palabras).
Para mejorar esto, un búfer de página (un pequeño static ram) se inserta en el flash NAND (consulte también la nota 3). Cuando desea leer una palabra en una página, toda la página se copia en un búfer de página. Las lecturas posteriores en la misma página se producen desde esa SRAM, y la velocidad es muy rápida. Por lo tanto, el acceso aleatorio es muy lento, pero el acceso secuencial es muy rápido.
Sin embargo, el tiempo de acceso definido por la topología no es el único límite de velocidad. De hecho, el primer objetivo de la memoria flash NAND es simplemente una alta densidad de memoria, en lugar de una velocidad de acceso aleatorio (y confiabilidad …).
Por lo tanto, para mejorar las densidades, se reduce el tamaño de la celda, incluido el óxido de túnel (para mantener bajo control los efectos de canal corto). Un óxido más delgado significa que existe una mayor probabilidad de que haya un defecto crítico presente en el óxido del túnel. Un solo defecto “bien ubicado” (es decir, justo en el medio, donde maximiza la tunelización asistida por trampa) puede descargar con el tiempo la compuerta flotante (este problema se agrava menos si se usa un almacenamiento de trampa de carga, porque la información no se almacena en un solo electrodo conductor, sino que se almacena en varios sitios discretos y aislados). Para mejorar el rendimiento, el fabricante venderá dispositivos incluso si contienen varios bloques defectuosos. Dichos bloques están marcados mediante pruebas de fábrica. Sin embargo, las operaciones de programa y borrado ocurren en campos eléctricos muy altos (alrededor de 10MV / cm), que son extremadamente estresantes para el óxido del túnel (sin contar también la captura de carga fija), y se pueden generar nuevos defectos en ciclos repetidos de programa / borrado (por eso tiene una resistencia máxima de ciclos de PE de 10k-1M). Como resultado, las nuevas celdas pueden fallar con el tiempo. Por lo tanto, se debe implementar un algoritmo adecuado de detección y corrección de errores, así como la identificación, recuperación y copia de bloques defectuosos. Sin hablar también de nivelación de desgaste, etc.
No solo la mala gestión de bloques plantea una fuerte limitación en términos de velocidad de lectura aleatoria, sino que también tiene las siguientes implicaciones, que son muy indeseables en un dispositivo mapeado en memoria:
- A menos que implemente algún circuito de alias de memoria (que esencialmente verifica si el bloque es malo y usa otro bloque en su lugar, sin cambiar la dirección), el mapa de memoria no podría ser contiguo incluso en un dispositivo “nuevo”.
- No solo la memoria no puede ser contigua: diferentes chips tendrán diferentes bloques defectuosos iniciales. Por lo tanto, ni siquiera puede usar instrucciones relativas de programa-contador (sin hablar de direccionamiento absoluto) como cargar, almacenar, saltos, etc. ¡Cada programa debe ser diferente!
- Pero incluso si tiene un dispositivo, sin bloques defectuosos, los bloques defectuosos se pueden descubrir con el tiempo. Tenga en cuenta que una celda puede tener un defecto que limita el tiempo de retención de datos. Si este tiempo es menor que la vida útil del dispositivo, pero mayor que el procedimiento de prueba de fábrica, el bloque no se marcará como defectuoso. El bloque se deteriorará con el tiempo, cuando (si) el bit de la celda dañada cambia de estado.
Por lo tanto, normalmente, si se utiliza la memoria flash NAND como almacenamiento de código, el sistema (por ejemplo, utilizando la ROM de arranque) copia parte de la memoria flash NAND en la RAM y ejecuta el código desde allí. Esto no solo permite una ejecución rápida, sino que el código se ejecutará en una memoria contigua, independientemente de cuántos bloques defectuosos tenga la memoria flash NAND.
Las líneas de palabras seleccionan qué palabra se va a leer / escribir y las líneas de bits llevan los datos, ¿no es así?
La dirección se divide en dirección de bloque (que luego se decodifica y selecciona un bloque en particular), dirección de página (que luego se decodifica y selecciona una línea de palabra en particular) y dirección de columna (que luego se decodifica y selecciona un grupo de n líneas de bits, como grande como el ancho de la memoria (normalmente 8 o 16).
Notas:
- Los términos NOR y NAND se derivan de la semejanza de cada línea de bits con la red desplegable de una puerta CMOS NOR o NAND. De hecho, en un parpadeo NOR, la línea de bits será 0 si y solo si el MOSFET de puerta flotante seleccionado tiene un voltaje de umbral bajo. En un flash NAND, la línea de bits será 1, si y solo si el MOSFET de gat flotante seleccionado tiene un voltaje de umbral alto.
- Las celdas están en paralelo o en serie, excepto la puerta.
- Algunos flash NOR también tienen un búfer de página, para mejorar aún más la velocidad de lectura secuencial.
Para responder por qué el borrado solo ocurre en bloques a nivel físico, las celdas NAND reales se implementan en un pozo P dentro de un pozo N profundo. Debido a que el borrado implica configurar el sustrato a un voltaje alto para que los electrones puedan salir a través del túnel FN, todas las celdas dentro de un pozo P se establecen en el mismo voltaje de sustrato. Basado en esta imagen1:
los voltajes del pozo P son comunes en muchas celdas y, por lo tanto, el ajuste de este voltaje borra un bloque.
Aquí puedes ver las reseñas y valoraciones de los lectores
Tienes la opción de amparar nuestra labor ejecutando un comentario y dejando una valoración te damos las gracias.