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

Estoy tratando de entender el funcionamiento de la memoria flash, a nivel de transistor. Después de bastante investigación, he adquirido buenas intuiciones sobre los transistores de puerta flotante y cómo uno inyecta electrones o los elimina de la celda. Tengo experiencia en informática, por lo que mi comprensión de los fenómenos físicos como la tunelización o la inyección de electrones calientes probablemente sea bastante inestable, pero aún así me siento cómodo con eso. También me hice una idea de cómo se lee de los diseños de memoria NOR o NAND.

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

Respuestas (3)

La mejor respuesta que he encontrado a su pregunta está cubierta 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 el circuito para aplicar el campo eléctrico a todo el chip oa secciones predeterminadas conocidas como bloques. Esto borra el área objetivo del chip, que luego se puede volver a escribir. 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 el chip completo y luego lo vuelve a escribir.

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

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

Flash se diferencia 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 realizarse antes de escribir, realizar el borrado en un bloque grande hace que las operaciones de escritura grandes sean más rápidas, en virtud del borrado de una gran cantidad de bits en paralelo.

El borrado en bloques también permite simplificar el IC, lo que reduce el costo. Las economías de escala reducen aún más el costo de flash sobre EEPROM, ya que flash se usa en grandes cantidades en estos días para unidades de estado sólido, mientras que EEPROM se usa en cantidades mucho más pequeñas.

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 eso no es cierto para todos los tipos de flash. A veces, la limitación la impone el protocolo (por ejemplo, SATA no tiene forma de escribir "sectores" de menos de 512 bytes). Según el tipo de flash y el protocolo utilizado para acceder a él, es posible que se pueda escribir un solo byte en un bloque que se haya borrado previamente.
(+1) Estos son los puntos clave "borrar una gran cantidad de bits en paralelo" y, en menor medida "Borrar en bloques también permite simplificaciones al IC, reduciendo costos" . Podría valer la pena enfatizarlos más en el texto.

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

La programación de una celda se realiza creando un campo eléctrico entre el bulto 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 el volumen (que es la referencia de tierra lógica 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 borrar un sector completo.

Las memorias flash por definición se borran en bloque. Por eso se llaman "flash", porque con una operación de borrado borras muchas celdas en paralelo. En cambio, en una EEPROM, debe hacer esto por byte, lo que lleva mucho más tiempo. Por cierto, el voltaje de borrado se divide entre el voltaje masivo y el de puerta (uno positivo, uno negativo). Es mucho más fácil invertir un voltaje, con respecto a tener que generar y manejar voltajes muy altos.
La mayoría de los chips tienen muchas uniones PN que normalmente están polarizadas de tal manera que no conducen. ¿Sería posible sesgar 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 usar varios tipos de pozos flotantes para evitar problemas con tales uniones PN, pero hacerlo por celda probablemente sería escandalosamente costoso.