En el flash NAND o NOR, ¿el tiempo del programa es completamente independiente de los valores de bytes?

1

Sé que el valor de borrado de las celdas NAND y NOR es todo 1s, y el proceso de programación implica el borrado de bits. ¿El tiempo de programa de algunos datos de longitud x siempre es el mismo, independientemente del número de 0s en esos datos? Por ejemplo, ¿lleva menos tiempo programar 11110000 que lo que tomaría programar 00000000?

    
pregunta Nikita Kiryanov

1 respuesta

1

Respuesta corta :

Puede haber una duración dependiente de los datos, especialmente en dispositivos que ya están programados y borrados muchas veces.

Respuesta no tan breve:

Normalmente, la programación no implica un solo pulso 1 . El número de pulsos depende de "qué tan rápido" se logran los datos correctos.

De hecho, el chip Flash tiene su máquina de estado interna que verifica si las celdas se programaron en los valores correctos. Si hay un bit, que no se ha programado en 0, se genera un nuevo impulso. Esto se repite "algunas" veces.

Esto es necesario porque, además de la dispersión de célula a célula, con muchos ciclos de borrado programado, queda atrapada una pequeña cantidad de carga, especialmente en la capa de nitruro de silicio, que forma el apilamiento ONO (óxido-nitruro-óxido) del dieléctrico de interpoli, se alterna entre la puerta flotante y la puerta de control. Además, se pueden generar defectos en los dielectris, reduciendo el tiempo de retención. Los bloques defectuosos también deben identificarse en NAND Flash, para permitir que el dispositivo se siga utilizando, sin comprometer la funcionalidad del chip.

Porlotanto,sicomienzaconunbyteen0b1111111(borrado)ydeseaprogramarun0b00001111,entonceselchipdebeverificarquelos4bitsprogramados(borrados)esténenelrangocorrecto.Estosehaceenparalelo,perosepuedendarpulsosadicionalesaesosbits,quenoseidentificancomo"0". Por supuesto, habrá un número máximo de pulsos, y si los bits aún no están en el valor correcto, generalmente se señala un error.

El peor de los casos, en términos de tiempo, es cuando programa un 0b00000000, ya que la probabilidad de que un bit no esté en "0" después del primer pulso será mayor.

Si programa un 0b11111111, no habrá ningún impulso en absoluto 2 , ya que los bits ya deben estar en ese valor, después de borrar.

Finalmente, el borrado se realiza en base a bloques, pero el algoritmo inteligente garantiza que todas las celdas tengan el mismo valor "1". Esto no es trivial, ya que el borrado excesivo en el flash NOR es perjudicial: si el voltaje de umbral de una celda es demasiado bajo, se queda atascado en 1 línea de bits.

NOTAS:

1 Los métodos de programación pueden ser los túneles de Fowler-Nordheim, en NAND Flash, o la inyección de portadora en caliente de canal, en NOR Flash. Por lo tanto, el pulso podría estar en la puerta o ambos en la puerta y drenar. Aún así, incluso en CHC, esto se considera un solo pulso de programación (ocurre "casi simultáneamente").

2 En realidad, la máquina de estado puede generar el primer pulso, pero está sincronizada con la máscara ~ 0b11111111, por lo que las células no reciben el pulso. La máquina de estado identificará entonces que todos los bits ya tienen el valor correcto (se borraron y permanecen borrados), por lo que no se generarán más pulsos.

    
respondido por el next-hack

Lea otras preguntas en las etiquetas