¿Por qué la memoria flash debe escribirse / borrarse en páginas / bloques?

10

El título lo dice todo.

Estoy tratando de entender el funcionamiento de las tecnologías de memoria flash, a nivel de transistor. Después de bastante investigación, obtuve buenas intuiciones sobre los transistores de puerta flotante y cómo uno inyecta electrones o los elimina de la célula. Soy de un entorno de CS, por lo que mi comprensión de los fenómenos físicos como el túnel o la inyección de electrones calientes probablemente sea bastante inestable, pero aún así me siento cómodo. También tuve una idea acerca de cómo se lee desde los diseños de memoria NOR o NAND.

Pero leí en todas partes que la memoria flash solo se puede borrar en unidades de bloques, y solo se puede escribir en unidades de página. Sin embargo, no encontré justificación para esta limitación, y estoy tratando de intuir por qué es así.

Gyom
fuente

Respuestas:

1

La mejor respuesta que he encontrado a su pregunta se trata en Cómo funciona la memoria flash, donde dice:

Los electrones en las celdas de un chip de memoria flash pueden volver a la normalidad ("1") mediante la aplicación de un campo eléctrico, una carga de mayor voltaje. La memoria flash utiliza cableado en circuito para aplicar el campo eléctrico a todo el chip o a secciones predeterminadas conocidas como bloques. Esto borra el área objetivo del chip, que luego puede reescribirse. La memoria flash funciona mucho más rápido que las EEPROM tradicionales porque en lugar de borrar un byte a la vez, borra un bloque o todo el chip y luego lo reescribe.

No entiendo por qué el "cableado en circuito" permite la programación a nivel de bit (cambio de 1 a 0), pero podría estar relacionado con la forma diferente en que se realizan las transiciones 1 a 0 (programación mediante inyección en caliente) en comparación con 0 a 1 transición (borrado a través del túnel Fowler-Nordheim).

Tommaso
fuente
6

Es por definición. Una memoria flash que permite escribir bits individuales se llama EEPROM .

Flash difiere de EEPROM en que los borrados se realizan en bloques, en lugar de bits individuales. Debido a que el borrado es una operación relativamente lenta y debe hacerse antes de escribir, realizar el borrado en un bloque grande hace que las operaciones de escritura grandes sean más rápidas, en virtud de borrar una gran cantidad de bits en paralelo.

Borrar en bloques también permite simplificaciones al IC, reduciendo costos. Las economías de escala reducen aún más el costo del flash sobre EEPROM, ya que el flash se usa en grandes cantidades en estos días para unidades de disco de estado sólido, mientras que EEPROM se usa en cantidades mucho más pequeñas.

Phil Frost
fuente
gracias por esta respuesta ¿Esta línea de pensamiento también explica de alguna manera por qué las operaciones de escritura deben realizarse página por página?
Gyom
1
@Gyom eso no es cierto para todos los tipos de flash. En ocasiones, el protocolo impone la limitación (por ejemplo, SATA no tiene forma de escribir menos de 512 "sectores" de bytes). Dependiendo del tipo de flash y el protocolo utilizado para acceder a él, es posible escribir solo un byte en un bloque que se haya borrado previamente.
Phil Frost
4

Tienes razón en el hecho de que no hay justificación física para tener que borrar en unidades de bloque.

La programación de una celda se realiza creando un campo eléctrico entre el volumen y la puerta de control como se muestra en la figura 1, y la misma idea es válida para borrar la celda, un campo eléctrico en la dirección opuesta haría el trabajo como se muestra en la figura 2. ingrese la descripción de la imagen aquí Sin embargo, por razones constructivas, es relativamente complejo generar y usar el voltaje negativo, por lo que la estrategia utilizada es la que se muestra en la figura 3, estableciendo un alto voltaje en la masa (que es la referencia lógica de tierra en el sector). Los transistores de selección ya no se pueden usar, solo las puertas de control se pueden bajar, y esto obliga a un borrado completo del sector.

cruano
fuente
La memoria flash por definición se borra en bloque. Es por eso que se llaman "flash", porque con una operación de borrado se borran muchas celdas en paralelo. En cambio, en una EEPROM, debe hacerlo por byte, lo que lleva mucho más tiempo. Por cierto, el voltaje de borrado se divide entre el voltaje de la puerta y el volumen (uno positivo, uno negativo). Es mucho más fácil invertir un voltaje, con respecto a tener que generar y lidiar con voltajes muy altos.
siguiente pirateo el
La mayoría de los chips tienen muchas uniones PN que normalmente están sesgadas de tal manera que no se conducen. ¿Sería posible polarizar los cables de fila y columna a los voltajes necesarios para borrar un chip sin que ninguna de esas uniones PN interfiera con las cosas? Sin duda, sería posible utilizar varios tipos de pozos flotantes para evitar problemas con tales uniones PN, pero hacerlo por celda probablemente sería exageradamente costoso.
supercat