ES2262014T3 - Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria. - Google Patents
Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria.Info
- Publication number
- ES2262014T3 ES2262014T3 ES03794474T ES03794474T ES2262014T3 ES 2262014 T3 ES2262014 T3 ES 2262014T3 ES 03794474 T ES03794474 T ES 03794474T ES 03794474 T ES03794474 T ES 03794474T ES 2262014 T3 ES2262014 T3 ES 2262014T3
- Authority
- ES
- Spain
- Prior art keywords
- levels
- storage
- data
- row
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Dram (AREA)
Abstract
Un método para operar una matriz de células de memoria no volátil que almacena datos como diferentes niveles de carga en elementos de almacenamiento de carga, en donde entre los grupos adyacentes de los elementos de almacenamiento de carga existe acoplamiento de campo: programar datos en un primer grupo (35) de los elementos de almacenamiento de la carga con un primer juego de niveles de almacenamiento (VL) junto con una indicación TB=L de que se ha usado el primer juego de niveles de almacenamiento, a continuación programar datos en un segundo grupo (39) de los elementos de almacenamiento de carga con el primer juego de niveles de almacenamiento junto con una indicación de que se ha usado el primer juego de niveles de almacenamiento, y a continuación aumentar los niveles de carga del primero (35) de los grupos de elementos de almacenamiento de carga desde el primer juego de niveles de almacenamiento hasta un segundo juego de niveles de almacenamiento y almacenar una indicación (TB=H) de que se ha usado el segundo juego de niveles de almacenamiento.
Description
Técnicas para reducir los efectos de las uniones
entre elementos de almacenaje de filas adyacentes de células de
memoria.
La presente invención se refiere generalmente al
ámbito de las memorias de datos, y más específicamente, a memorias
del tipo que almacenan datos como niveles de carga electrónica, lo
cual incluye sin limitarse a memorias flash eléctricamente
programables y borrables de solo lectura (flash EEPROM) que
utilizan puertas flotantes conductivas o material dieléctrico como
elementos de almacenamiento de la carga.
Es común en los productos comerciales actuales
que cada elemento de almacenamiento de una matriz flash EEPROM
almacene un solo bit de datos funcionando en un modo binario, en
donde están definidos como niveles de almacenamiento dos intervalos
de niveles umbral de los transistores del elemento de
almacenamiento. Los niveles umbral de los transistores corresponden
a intervalos de niveles de carga almacenados en sus elementos de
almacenamiento. Además de comprimir el tamaño de las matrices de
memoria, la tendencia es aumentar más la densidad del almacenamiento
de datos de dichas matrices de memoria almacenando más de un bit de
datos en cada transistor como elemento de almacenamiento. Esto se
consigue definiendo más de dos niveles umbral como estados de
almacenamiento para cada transistor de almacenamiento, ahora se
incluyen cuatro de dichos estados (2 bits de datos por elemento de
almacenamiento) en los productos comerciales. Se contemplan más
estados de almacenamiento, tales como 16 estados (4 bits de datos)
por elemento de almacenamiento. Cada transistor de memoria del
elemento de almacenamiento posee un intervalo total determinado
(ventada) de voltajes umbral en los que puede accionarse y dicho
intervalo está dividido entre el número de estados definidos para él
y de márgenes entre los estados lo cual permite su clara
diferenciación.
A medida que aumenta el número de estados
almacenados en cada célula de memoria, disminuye la tolerancia de
cualquier cambio en el nivel de carga programado de los elementos
de almacenamiento. Puesto que los intervalos de carga designados
para cada estado de almacenamiento deben ser necesariamente más
estrechos y deben colocarse más cerca entre sí a medida que aumenta
el número de estados almacenados en cada elemento de almacenamiento
de la célula de memoria, la programación debe realizarse con un
mayor grado de precisión y se reduce el alcance de cualquier cambio
de postprogramación en los niveles de carga almacenada que pueda
tolerarse, ya se trate de cambios reales o aparentes. Pueden
crearse alteraciones reales en la carga almacenada en una célula al
programar y leer dicha célula, y durante la lectura, programación y
borrado de otras células que tengan el mismo grado de acoplamiento
eléctrico con dicha célula, tales como las presentes en la misma
columna o hilera, y las que comparten una línea o nodo.
Se producen cambios aparentes en los niveles de
carga almacenados debido al acoplamiento de campo entre los
elementos de almacenamiento. El grado de este acoplamiento aumenta
necesariamente a medida que disminuyen los espacios entre los
elementos de almacenamiento de la célula de memoria, lo cual ocurre
como resultado de mejoras en las técnicas de fabricación de
circuitos integrados. El problema ocurre de forma más pronunciada
entre dos grupos de células adyacentes que han sido programadas en
momentos diferentes. Un grupo de células se programa para añadir un
nivel de carga a sus elementos de almacenamiento que corresponden a
un juego de datos. Tras programar el segundo grupo de células con
un segundo juego de datos, a menudo parece que los niveles de carga
realizan la lectura desde los elementos de almacenamiento del
primer grupo de células a menudo son diferentes de los programados
debido al efecto de la carga del segundo grupo de elementos de
almacenamiento que están siendo acoplados capacitativamente con el
primero. Esto se conoce como el efecto de Yupin y se describe en la
patente estadounidense núm. 5.867.429. Esta patente describe el
aislamiento físico de los dos grupos de elementos de almacenamiento
entre sí, o bien la consideración del efecto de la carga en el
segundo grupo de elementos de almacenamiento al leer los del primer
grupo.
La invención se dirige hacia un método para
accionar una matriz de células de memoria no volátil que almacenan
datos como diferentes niveles de carga en elementos de
almacenamiento de carga de las mismas, en donde grupos adyacentes
de los elementos de almacenamiento de carga presentan acoplamiento
de campo entre sí. El método comprende programar datos en un primer
grupo de los elementos de almacenamiento de carga con un primer
juego de niveles de carga junto con una indicación de que se ha
usado el primer juego de niveles de almacenamiento, a continuación
programar datos en un segundo grupo de elementos de almacenamiento
de carga con el primer juego de niveles de almacenamiento junto
con una indicación de que se ha usado el primer juego de niveles de
almacenamiento, y a continuación aumentar los niveles de carga del
primero de los grupos de elementos de almacenamiento de carga desde
el primer juego de niveles de almacenamiento hasta un segundo juego
de niveles de almacenamiento y almacenar una indicación (TB = H) de
que se ha usado el segundo juego de niveles de almacenamiento.
La invención también proporciona un sistema de
memoria, que comprende una matriz de hileras y columnas de células
de memoria no volátil reprogramables que incluye elementos de
almacenamiento de carga que almacena individualmente niveles de
carga indicadores de los datos en ellas almacenados, en donde
existe un grado de acoplamiento de campo entre los elementos de
almacenamiento de carga de las células de memoria de hileras
adyacentes y programar circuitos que programan sucesivamente
células de memoria de hileras individuales de una unidad de hileras
haciendo que las células de memoria de una primera hilera se
programen y verifiquen como que poseen niveles intermedios de carga
de almacenamiento de datos junto con una indicación de que se han
utilizado los niveles intermedios, haciendo que a continuación las
células de memoria de una segunda hilera adyacente a la primera
hilera se programen y verifiquen como que poseen niveles de carga
de almacenamiento de datos intermedios junto a una indicación de
que se han usado los niveles intermedios, haciendo que a
continuación las células de memoria de la primera hilera se
programen y verifiquen como que poseen niveles finales de carga de
almacenamiento de datos junto con una indicación de que se han
usado los niveles finales, haciendo que a continuación las células
de memoria de la tercera hilera adyacente a la segunda hilera se
programen y verifiquen como que poseen niveles de carga de
almacenamiento de datos intermedios junto con la indicación de que
se han usado los niveles intermedios, haciendo que a continuación,
las células de memoria de la segunda hilera se programen y
verifiquen como que poseen niveles finales de carga de
almacenamiento de datos junto con una indicación de que se han
usado los niveles finales y que repite este proceso hilera por
hilera hasta que se han programado todas las hileras de la unidad en
los niveles de carga de almacenamiento de datos finales.
Según una solicitud de un aspecto de la presente
invención, para superar los efectos en cada una de las hileras
adyacentes de células de memoria programadas, hileras adyacentes se
programan en dos pasos. En un primer paso, se programa una primera
hilera de células de memoria con datos en un primer juego
intermedio de niveles umbral. Tras programar de forma similar una
segunda hilera de células de memoria adyacente, se incrementan los
niveles umbral de la primera hilera de células de memoria hasta un
segundo juego final de niveles umbral. Puesto que la programación
final de la primera hilera se produce bajo la influencia de la
programación inicial de la segunda hilera, los datos leídos desde
la primera hilera no está afectada adversamente por los niveles
programados inicialmente en la segunda hilera. Una vez programada
una tercera hilera adyacente a la segunda hilera en el primer juego
de niveles umbral, se incrementan los niveles umbral de la segunda
hilera hasta el juego final. El proceso se continúa para la
programación de cualquier hilera adicional de células de memoria
con acoplamiento de campo entre hileras adyacentes.
Según una solicitud de otro aspecto de la
presente invención, una identificación del juego de niveles en el
que un grupo, tal como una hilera, de células, programada se
almacena de forma que pueda leerse junto al grupo programado de
células. Un grupo de células de memoria se lee inicialmente con
voltajes de lectura aplicados escogidos para leer de forma óptima
las células programadas con el más común de los juegos de niveles.
Sin embargo, si la identificación leída inicialmente muestra que
las células fueron programadas con el otro juego de niveles, el
grupo células se vuelve a leer con voltajes de lectura aplicados que
corresponden al otro juego de niveles.
La presente invención puede implantarse en
diversos tipos de matrices de células flash EEPROM. Una matriz NOR
de un diseño posee sus células de memoria conectadas entre las
líneas de bits (columna) adyacentes y puertas de control conectadas
a las líneas de palabras (hileras). Las células individuales
contienen un transistor como elemento de almacenamiento, con o sin
un transistor exclusivo formado en serie con él, o dos transistores
como elemento de almacenamiento separados por un solo transistor
exclusivo. Ejemplos de dichas matrices y su uso en sistemas de
almacenamiento se proporcionan en las siguientes patentes
estadounidenses y solicitudes pendientes de tramitación de SanDisk
Corporation, patentes núm. 5.095.344, 5.172.338, 5.602.987,
5.663.901, 5.430.859, 5.657.332, 5.712.180, 5.890.192, 6.091.633,
6.103.573 y 6.151.248 y núm. de serie de solicitud 09/505,555,
presentada el 17 de febrero de 2000, núm. de serie 09/667,344,
presentada el 22 de septiembre de 2000, núm. de serie 09/925,102,
presentada el 8 de agosto de 2001, y núm. de serie 09/925,134,
presentada el 8 de agosto de 2001.
Una matriz NAND de un diseño posee un número de
células de memoria, tal como 8, 16 ó incluso 32, conectadas en una
secuencia en serie entre una línea de bits y un potencial de
referencia a través de transistores exclusivos en ambos extremos.
Las líneas de palabras están conectadas con puertas de control de
células en diferentes secuencias en serie. Ejemplos relevantes de
dichas matrices y su funcionamiento se describen en las siguientes
patentes estadounidenses y solicitudes de patente, incorporadas a
la presente memoria en su totalidad mediante esta referencia:
Patentes núm. 5.570.315, 5.774.397 y 6.046.935, y la solicitud con
núm. de serie 09/893,277, presentada el 27 de junio de 2001.
Concretamente, dos bits de datos de diferentes páginas lógicas de
datos entrantes se programan en uno de los cuatro estados de las
células individuales en dos pasos, primero programando una célula
en un estado según un bit de datos y a continuación, si los datos
lo requieren, reprogramar dicha célula en otro de dichos estados
según el segundo bit de datos entrantes.
Las patentes citadas anteriormente y las
solicitudes de patente describen sistemas flash EEPROM que usan
puertas flotantes conductivas como elementos de almacenamiento de
la célula de memoria. Alternativamente, los sistemas flash EEPROM
con células de memoria que emplean material dieléctrico de captura
de carga se operan sustancialmente del mismo modo. Ejemplos de esto
se incluyen en la solicitud de patente con núm. de serie 10/002,
696, presentada el 31 de octubre de 2001 por Harari et al.,
titulada "Multi-State
Non-volatile Integrated Circuit Memory Systems that
Employ Dielectric Storage Elements", el acoplamiento de campo
entre elementos de almacenamiento dieléctrico de células de memoria
adyacentes también puede afectar a la precisión de los datos
leídos desde dichos sistemas de memoria.
Aspectos, características y ventajas adicionales
de la presente invención pueden extraerse de la siguiente
descripción detallada de realizaciones ejemplares de la misma, cuya
descripción deberá leerse en relación con los dibujos que acompañan
a la presente memoria.
La Figura 1 ilustra esquemáticamente un ejemplo
de sistema de memoria y operación en el que puede implantarse la
presente invención;
La Figura 2 es un ejemplo, en vista en planta de
elementos de almacenamiento de células de memoria de la matriz de
células de memoria del sistema de la Figura 1;
La Figura 3 incluye curvas de distribuciones
programadas de nivel de la célula de memoria que ilustran el efecto
de acoplamiento de campo entre dos grupos adyacentes de células de
memoria programadas en secuencia;
Las Figuras 4A-4C son curvas que
ilustran principios de la presente invención y los resultados de su
aplicación según un ejemplo;
La Figura 5 ilustra un ejemplo de secuencia de
programación de hileras de un tipo determinado de matriz de
memoria;
La Figura 6 describe una serie de operaciones
para programar datos hilera por hilera en la secuencia de la
Figura 5;
La Figura 7 describe una serie de operaciones
para leer datos de hileras de una memoria que han sido programadas
según el método de la Figura 6, y
La Figura 8 ilustra un ejemplo detallado de la
estructura de datos de una página.
Con el objeto de explicar la presente invención
y ejemplificar sus implantaciones, en la Figura 1 se muestra un
diagrama general de la interrelación de los componentes principales
de un ejemplo de sistema de memoria en masa. Un componente
principal de este sistema es una memoria 11, tal como una matriz de
células de memoria formada sobre un sustrato semiconductor, en
donde uno o más bits de datos se almacenan en las células de
memoria individuales almacenando uno de los dos o más niveles de
carga en elementos de almacenamiento individuales de las células de
memoria. Una flash EEPROM no volátil es un tipo común
\hbox{de memoria para este tipo de sistemas, y se utiliza en este ejemplo.}
Un segundo componente principal del sistema de
memoria de la Figura 1 es un controlador 13. El controlador 13 se
comunica a través de un bus 15 a un ordenador principal u otro
sistema que utiliza el sistema de memoria para almacenar datos. El
controlador 13 también controla el funcionamiento de la matriz de
células de memoria 11 para escribir datos proporcionados por el
sistema central, leer datos solicitados por el sistema central y
realizar varias funciones de administración interna para el
funcionamiento de la memoria. El controlador 13 normalmente incluye
un microprocesador de uso general, con memoria de software no
volátil asociada, varios circuitos lógicos y otros similares.
Pueden incluirse una o más máquinas de estado y otros circuitos de
control como parte de la matriz para controlar el funcionamiento de
rutinas específicas, en cual caso, se reducen las funciones del
controlador del sistema.
La matriz de células de memoria 11 se dirige
mediante el controlador 13 a través de descodificadores de
dirección 17. Los descodificadores 17 aplican los voltajes
correctos a las líneas de puerta y de bits de la matriz 11 para
programar datos en, leer datos de, o borrar un grupo de células de
memoria dirigidas con el controlador 13. Circuitos adicionales 19
incluyen dispositivos de programación que controlan los voltajes
aplicados a elementos de la matriz que dependen de los datos que
están siendo programados en un grupo dirigido de células. Los
circuitos 19 también incluyen amplificadores de detección y otros
circuitos necesarios para leer datos de un grupo dirigido de
células de memoria. En las patentes y solicitudes de patente
identificadas en la sección de Antecedentes anterior se describen
varias formas específicas de los circuitos 17 y 19. Datos que vayan
a programarse en la matriz, o datos leídos recientemente de la
matriz, se almacenan normalmente en una memoria de buffer 21 del
controlador 13. El controlador 13 también contiene normalmente
varios registros para almacenar temporalmente datos de comandos y
estado, entre otros.
La matriz 11 está dividida en un gran número de
BLOQUES 0 - N de células de memoria. Como es común en los sistemas
flash EEPROM el bloque es la unidad de borrado. Es decir, cada
bloque contiene el número mínimo de células de memoria que se
borran conjuntamente. Cada bloque está dividido normalmente en un
número de páginas, como se ilustra en la Figura 1. Aunque una
página es una unidad de programación, las páginas individuales
pueden dividirse en segmentos. Un segmento puede contener el número
mínimo de células en las que se escribe a la vez como operación
básica de programación, almacenando tan solo un bit de datos.
Normalmente se almacenan una o más páginas de datos en una hilera
de células de memoria. Normalmente se almacena un sector de datos
en cada página, a pesar de que pueden incluirse múltiples sectores.
Tal y como se muestra en la Figura 1, un sector incluye datos del
usuario y datos de cabecera. Datos de cabecera incluyen normalmente
un ECC que ha sido calculado a partir de los datos de usuario del
sector. Una porción 23 del controlador 13 calcula el ECC cuando se
programan los datos en la matriz 11 y también lo comprueba cuando
se leen los datos desde la matriz 11. Alternativamente, los ECC y/o
otros datos de cabecera se almacenan en páginas diferentes, o
incluso en bloques diferentes, de los datos de usuarios a los que
pertenecen. Los datos de cabecera incluyen uno o más bits TB (bits
de rastreo) que designan el nivel de verificación del umbral con el
que se ha programado la página de datos. A continuación se
describen los usos del campo TB.
Un sector de datos de usuario es normalmente de
512 bytes, lo cual corresponde al tamaño de un sector en unidades
de discos magnéticos. Los datos de cabecera son normalmente
16-20 bytes adicionales. Comúnmente, se incluye un
sector de datos en cada página, aunque dos o más sectores pueden
formar una página. Un gran número de páginas forman un bloque,
desde 8 páginas, por ejemplo, hasta 32, 64 o más páginas. El número
de bloques se escoge para proporcionar una capacidad de
almacenamiento de datos deseada para el sistema de memoria. La
matriz 11 está dividida normalmente en unas cuantas submatrices (no
mostradas), cada una de las cuales contiene una proporción de los
bloques, que funcionan de forma un tanto independiente entre sí
para aumentar el grado de paralelismo en la ejecución de diversas
operaciones de memoria. Un ejemplo del uso de múltiples submatrices
se describe en la patente estadounidense núm. 5.890.192, la cual
se incorpora a la presente memoria a modo de referencia.
La Figura 2 muestra una disposición de los
elementos de almacenamiento (recuadros) en una matriz de células de
memoria para ilustrar el acoplamiento capacitativo (líneas
discontinuas) entre hileras de ellas. Considerando que un elemento
de almacenamiento 25 de una hilera 35, por ejemplo, presenta
acoplamiento de campo con los elementos de almacenamiento de las
hileras adyacentes 37 y 39. El elemento de almacenamiento 25 está
más íntimamente acoplado a los elementos de almacenamiento 27 y 31
debido a su proximidad, pero también posee un grado inferior de
acoplamiento con los elementos de almacenamiento 26, 28, 32 y 30 que
están más alejados. La cantidad de acoplamiento entre dos elementos
de almacenamiento depende de la distancia existente entre ellos, de
la constante dieléctrica del material aislante colocado entre
ellos, de si existen superficies conductivas entre ellos, entre
otros.
A pesar de que la Figura 2 ilustra solo
acoplamiento de campo entre hileras de elementos de almacenamiento,
dicho acoplamiento también se produce entre columnas de elementos
de almacenamiento. Esto no se tiene en cuenta en los ejemplos
descritos en la presente memoria, ya que, en estos ejemplos, los
datos se programan en células de memoria en unidades de hileras
individuales, se ha descubierto que el acoplamiento es la causa del
cambio aparente en los niveles programados. Por ejemplo, si se
programan datos como niveles de carga diferentes en los elementos
de almacenamiento de la hilera 35, un cambio posterior en los
niveles de carga en una o ambas de las hileras adyacentes 37 y 39
provocará un cambio en los niveles de carga aparente que son a
continuación leídos desde los elementos de almacenamiento de la
hilera 35. La cantidad de dicho cambio en el nivel de carga
aparente leído desde un elemento de almacenamiento determinado de
la hilera 35 depende del grado de acoplamiento con otros elementos
de almacenamiento cuya carga cambió posteriormente de nivel y de la
cantidad de dicha carga. Cuando el cambio posterior está provocado
por la programación de datos en la hilera adyacente, las cantidades
de los cambios que resultan son desconocidas a menos que se
controlen los patrones de datos programados en cada hilera y se
realicen cálculos de su efecto como parte de la operación de
lectura.
La Figura 3 muestra un ejemplo del efecto sobre
un primer grupo de células de memoria, tal como una hilera de
células de la programación posterior de un segundo grupo de células
de memoria, tal como una hilera adyacente de células. En este
ejemplo, se definen cuatro niveles de carga diferentes, para
almacenar dos bits de datos en cada elemento de almacenamiento.
Puesto que el nivel de carga almacenada en un elemento de carga
cambia el voltaje umbral (VT) de su transistor de célula de
memoria, el voltaje umbral se muestra en el eje horizontal de las
curvas de la Figura 3. Las líneas continuas muestran las
distribuciones del número de voltajes umbral de todas las células
en una página inmediatamente después de ser programadas, antes de
realizar ningún cambio en las páginas adyacentes. El eje vertical
es el número de células en cada nivel umbral, las curvas poseen
esencialmente una distribución gaussiana. Una curva 45 es la
distribución de las células en el estado borrado, que, en este
ejemplo, también se designa como un estado programado de los bits
11. Cuando se borra un bloque de células, las células se
restablecen en el estado 11.
Cada célula de una página que está siendo
programada en uno de los otros estados programados 47, 49, ó 51
posee electrones inyectados en su elemento de almacenamiento hasta
que el umbral alcanza el estado que corresponde respectivamente a
los datos 01, 00 ó 01 programados en la célula. Las técnicas de
programación adecuadas se describen en otras patentes identificadas
anteriormente en los Antecedentes. Concretamente, las células de
una página que está siendo programada se programan en paralelo. Las
programadas en el estado 10 se pulsan alternativamente con
voltajes de programación y a continuación se verifica mediante el
uso de un nivel umbral de verificación V10. Cuando se determina que
una célula ha sido programada en un nivel umbral superior a V10, la
programación se detiene en dicha célula pero continúa en otras
células que aún no han alcanzado su nivel de verificación. Si se
programa en 00, se usa un nivel de verificación V00 Si se programa
en 01, se usa un nivel de verificación V01. El par de bits de datos
concreto asignado a cada una de las distribuciones 45, 47, 49 y 51
puede ser diferente del mostrado en la Figura 3 e incluso puede dar
vueltas durante el funcionamiento del sistema de memoria para
igualar el desgaste de la matriz.
Es deseable mantener un margen suficiente entre
los estados 45, 47, 49 y 51 para que pueda leerse sin ambigüedades
el estado de cada célula. Cuando va a leerse una página de células
programada tal como se ha descrito anteriormente, sus estados se
comparan individualmente en relación con los niveles umbral de
referencia dentro de los márgenes de dichos estados. Estos se
muestran en el ejemplo de la Figura 3 como R10 (VT = 0), R00 y R01.
Por supuesto, para poder usar totalmente una ventana de umbral
disponible, puesto que se incluyen muchos estados diferentes, se
muestran cuatro estados. Otro ejemplo es dieciséis estados. Un gran
número de estados pueden ser resultado del ancho de las
distribuciones que va estrechándose con la programación con
incrementos de voltaje más pequeños en pulsos sucesivos aunque esto
requiere más tiempo para realizar la programación. Por lo tanto, es
deseable, solamente o junto con el estrechamiento de las
distribuciones de células programadas, tomar medidas para reducir
la necesidad de dichos grandes márgenes entre estados.
Preferentemente, los márgenes grandes se mantienen normalmente para
permitir que las distribuciones de células programadas cambien o se
expandan como resultado de ciclos operativos repetitivos que se
producen tras su programación, como la experiencia ha demostrado
que sucede. Es altamente deseable reducir dicho cambio y expansión
para poder reducir la anchura de los márgenes entre estados.
La expansión de las distribuciones que se
produce como resultado de la programación posterior de una hilera
adyacente de células se muestra en las líneas discontinuas de la
Figura 3. Incluso cuando se mantienen márgenes significativos
durante la programación inicial de una hilera de células, estos
márgenes pueden estrecharse significativamente cuando las
distribuciones de expanden como resultado de la programación
posterior de un hilera de células adyacente. Si solo unas cuantas
de las células se expanden desde abajo hasta arriba de los umbrales
de lectura R10, R00 y/o R01, se producirán suficientes lecturas
erróneas desbordar un ECC. En tal caso, los datos no pueden leerse
con dichos umbrales, de modo que normalmente se designan como
inválidos a menos se que tome alguna medida extraordinaria. Una
técnica usada en el pasado para recuperar datos incluye volver leer
la página simplemente moviendo los niveles umbral de lectura R10,
R00 y/o R01 dentro de los márgenes para evitar el efecto de la
expansión. Sin embargo, puesto que la expansión puede proceder de
ambos lados de cada margen esto requiere que los márgenes se
mantengan más anchos de lo que es normalmente deseable para evitar
que se sobrepongan las distribuciones de estados adyacentes. Por lo
tanto, es preferible adoptar otras medidas para mantener márgenes
anchos entre los estados programados.
Las distribuciones programadas parecen
expandirse de la forma mostrada en la Figura 3 cuando los datos
posteriormente programados en la página adyacente son aleatorios;
es decir, cuando el estado almacenado en cada elemento de
almacenamiento puede ser cualquiera de los cuatro estados posibles.
Por ejemplo, un elemento de almacenamiento programado en un nivel
en el borde inferior de la distribución 47, se leerá como que tiene
el mismo nivel en la distribución 47' si no cambia el nivel de carga
de los elementos de almacenamiento adyacentes durante la posterior
programación. Por otro lado, un elemento de almacenamiento
programado inicialmente en un nivel en el borde superior de la
distribución 47 podrá, si los elementos de almacenamiento
adyacentes se programan posteriormente desde un estado de borrado
11 al estado superior 01, tener un nivel que se incremente en una
cantidad \Delta. Los niveles de carga más elevados de los
elementos de almacenamiento adyacentes están acoplados con el
elemento de almacenamiento programado previamente cuyo nivel está
siendo leído. Otras combinaciones de programación inicial y
posterior de células adyacentes de la distribución 47 entra entre
estos dos extremos, lo cual tiene como resultado la distribución
aparente 47'. El extremo inferior de la distribución aparente 47'
permanece en el mismo nivel pero su expansión aumenta \Delta.
Un ejemplo de una técnica de dos pasos para
programar células de memoria de la matriz de las Figuras 2 y 3 se
proporciona en las Figuras 4A, 4B y 4C. En la Figura 4A se muestran
cuatro distribuciones umbral de estado 61, 62, 63 y 64, resultado
de un primer paso de programación de un grupo, tal como una hilera.
La distribución 61 es para el estado de borrado, que es también el
estado programado 11. La curva 62 muestra la distribución de las
células programadas en el estado 10 usando un nivel umbral de
verificación VL10 durante la programación. De forma similar, la
curva 63 representa la distribución de las células programadas en
el estado 00 con un nivel de verificación VL00, y la curva 64 la
distribución de las células programadas en el estado 01 con un
nivel de verificación VL01. La programación se consigue de la forma
típica descrita en las patentes y solicitudes de patente citadas
anteriormente, particularmente pulsando de forma alternativa un
conjunto de células que están siendo programadas en paralelo y a
continuación leyendo (verificando) sus estados individualmente,
terminando la programación de cada célula cuando se determina que
se sobrepasa el nivel umbral de verificación del estado en el que
está siendo programada. Las distribuciones 61, 62, 63 y 64
individualmente poseen un ancho determinado por la magnitud del
aumento de nivel de cada pulso de programa desde el último. Las
distribuciones 61, 62, 63 y 64 pueden ser las mismas que las
distribuciones 45, 47, 49 y 51 de la Figura 3, con la salvedad de
que las células representadas por la Figura 4A aún no están
totalmente programadas, mientras que las representadas por la
Figura 3 están totalmente programadas.
La Figura 4B muestra las distribuciones
ampliadas de la Figura 4A que se producen en las células
programadas cuando otro grupo, tal como una hilera, de células
adyacentes físicamente se programan posteriormente con las mismas
distribuciones. Las distribuciones 61, 62, 63 y 64 de la Figura 4A
se expanden en las distribuciones 71, 72, 73 y 74 respectivas tras
la programación del grupo adyacente de células cuyos elementos de
almacenamiento presentan acoplamiento de campo con aquellos cuyos
umbrales están representados en las Figuras 4A y 4B. La expansión
se produce por una cantidad \Delta, según se ha descrito
anteriormente en relación con la Figura 3 para las distribuciones
respectivas 45', 47' 49' y 51'.
Tras programar los grupos de células adyacentes,
lo cual tiene como resultado la expansión mostrada en la Figura 4B,
el grupo de células programadas inicialmente vuelve a programarse
con los mismos datos que antes pero con niveles de verificación más
elevados. Los niveles de verificación VL- - usados en la
programación inicial ilustrada en la Figura 4A son inferiores a los
niveles de verificación VH- - usados en la reprogramación
final del mismo grupo de células ilustrado en la Figura 4C. La
diferencia puede ser, en una implantación específica, el umbral
incremental \Delta, lo cual se muestra en la Figura 4C. Puesto
que esta segunda programación final de un grupo de células se
produce tras programar el primer nivel (VL- -) del grupo
adyacente de células, el efecto de las células adyacentes a través
del acoplamiento de campo eléctrico sobre el primer grupo se tiene
en cuenta automáticamente durante el segundo paso de programación
de la Figura 4C. Las células se programan en el segundo paso
mientras existe el efecto de campo en las células adyacentes
programadas posteriormente. El efecto en las distribuciones del
primer grupo de células del último segundo paso de programación del
grupo de células adyacentes es muy pequeño puesto que se aumentan
los umbrales una pequeña cantidad en el segundo paso. También se
apreciará que las distribuciones de la Figura 4C tras el segundo
paso de programación se estrechan hasta ser el del primer paso de
programación de la Figura 4A, asumiendo que se utilice en ambas el
mismo cambio incremental de pulso de programación en el primer y
segundo paso de programación de un grupo de células.
A pesar de que puede conseguirse mediante otras
técnicas, el incremento del nivel de carga de las células del
primer grupo durante el segundo paso de programación se efectúa
preferiblemente reprogramando las células con los mismos datos pero
usando los niveles umbral de verificación más elevados. Estos datos
pueden permanecer en una memoria de buffer después del primer paso
de programación hasta el segundo paso de programación. Pero puesto
que esto requiere una memoria de buffer mayor de lo normal, por lo
general no es deseable. Preferiblemente, los datos programados en un
grupo de células con los niveles umbral más bajos VL- - se
leen desde ese grupo tras programar inicialmente el grupo de
células adyacente. Los datos leídos se reprograman en las mismas
células pero con los niveles umbral VH- - más elevados.
En la Figura 4A se incluyen también ejemplos de
niveles umbral de lectura para células que han sido programadas
solo con el primer paso, y en la Figura 4C para las que han
recibido ambos pasos de programación. En ambos casos, los umbrales
de lectura están posicionados aproximadamente a medio camino en los
márgenes entre las distribuciones adyacentes. En el caso de células
programadas en el primer nivel (Figura 4A), los umbrales de
lectura son RL10, RL00 y RL01 colocados aproximadamente a medio
camino entre las distribuciones adyacentes. Tras la programación
del segundo paso (Figura 4C), los umbrales leídos RH10, RH00 y RH01
se usan, lo cual corresponde a los de la Figura 4A pero son
superiores en cierta cantidad umbral, en este caso \Delta, para
poder permanecer aproximadamente a medio camino entre las
distribuciones recolocadas.
Las técnicas de programación y lectura descritas
pueden aplicarse ventajosamente a un sistema de memoria, tal como
flash EEPROM, que posee las páginas dispuestas en hileras. Es
decir, las técnicas se utilizan en una matriz de células de memoria
en donde la unidad de programación incluye una o más hileras de
células de memoria. Por ejemplo, el proceso puede explicarse en
relación con la Figura 2. Los elementos de almacenamiento de la
hilera 35 se programan con el primer paso, seguido por la
programación de los elementos de almacenamiento de la hilera 37 con
el segundo paso si ya habían sido programados con el primer paso. A
continuación se programa la hilera 39 con el primer paso, seguido
de la programación de la hilera 35 con el segundo paso. Las hileras
adyacentes de elementos de almacenamiento de célula de memoria
están programados de esta forma hacia atrás y hacia adelante de una
matriz hasta que la unidad de datos que está siendo programada lo
ha sido por completo. Esto es también el tema de la Figura 5, en
donde se ilustra el proceso para programar las hileras 0 - 7. La
última hilera que debe programarse se programa con el primer paso,
dejando el segundo paso hasta una operación de programación
posterior que comience con la siguiente hilera adyacente borrada de
células de memoria. Una excepción a esto puede ser cuando la
última hilera programada es también la última hilera del bloque. La
última hilera del bloque puede programarse con un paso en los
niveles umbral superiores VH- - Debido a que los bloques de
células están normalmente aislados entre sí, no habrá otras hileras
programadas posteriormente que tengan el suficiente acoplamiento de
campo con la última hilera para que afecte a los valores leídos de
la última hilera del bloque.
Puesto que los voltajes de lectura óptimos para
una hilera dependen de si la hilera ha sido programa con un paso
(Figura 4A) o con dos pasos (Figura 4C), el estado programado de
una hilera se almacena durante la programación como bits de
rastreo (TB). Este bit se almacena preferiblemente como parte de
los datos de cabecera de la página programada de datos del usuario.
Estos bits de rastreo se muestran en la Figura 1 como que se
almacenan como parte de los datos de cabecera de la página en la
misma hilera que los datos de usuario. Como parte del primer paso
de programación, TB se ajusta en BAJO para indicar que la
programación se ha producido con el juego más bajo de umbrales de
verificación. Como parte del segundo paso de programación, TB se
reescribe en ALTO. En el ejemplo de cuatro estados descrito, TB
utiliza convenientemente dos bits: Para el primer paso TB = 11
(BAJO), el estado borrado de una célula y después del segundo paso,
TB = 10 (ALTO), un estado programado más elevado de dicha célula.
Esto permite que el TB de una página se actualice fácilmente como
parte del segundo paso de programación mediante su programación
adicional.
La lectura se produce normalmente con los
voltajes de lectura más elevados (Figura 4C) puesto que casi todas
las hileras están programadas con dos pasos. Pero como parte de
esta operación inicial de lectura, también se lee el TB. Su valor
se determina anteriormente en el proceso de lectura de la página.
Si TB = BAJO, la página se relee con el juego más bajo de voltajes
de lectura (Figura 4A). A pesar de que de este modo son necesarias
dos lecturas de algunas hileras, el rendimiento de la memoria no
resulta afectado significativamente puesto que normalmente será una
proporción muy pequeña de las hileras de una matriz de memoria que
permanezcan programadas con los niveles más bajos en un momento
dado. Incluso a pesar de que una hilera programada con los niveles
de verificación más bajos se esté leyendo con los niveles de
lectura más elevados, no debería producirse ningún error en la
lectura de sus bits de rastreo cuando se utiliza el estado de
borrado 11 para indicar TB = BAJO.
El diagrama de flujo de la Figura 6 muestra la
secuencia de pasos para programar una serie de hileras adyacentes
(tal como la ilustrada en la Figura 5) en secuencia utilizando las
técnicas descritas anteriormente. Se asume, por ejemplo, que todas
las páginas de las hileras 0, 1 y 2 ya están programadas, las
hileras 0 y 1 con dos pasos pero la hilera 2 solo con un paso. Un
primer paso para programar hileras posteriores 3+ con datos es
dirigir la hilera 3 como se indica en 91 de la Figura 6. Todas las
páginas de la hilera 3 se programan a continuación con un primer
paso (Figura 4A) con TB = BAJO, según se indica en 93. A
continuación se dirige la hilera 2 inmediatamente anterior, según
se indica en 95. A continuación se leen los datos de la hilera 2
anterior con los niveles de lectura bajos (Figura 4A), según se
indica en 97, incluyendo su TB, según se indica en 99. Si TB =
BAJO, como en este ejemplo, la lectura TB se actualiza a TB = ALTO,
en 10. Los datos leídos se reprograman en la hilera 2 anterior,
junto con su TB = ALTO, según se indica en 103. Esto completa un
ciclo de programación de datos. Pero puesto que la mayoría de
operaciones de programación de datos implica programar más páginas
que las incluidas en una hilera, se determina en 105 si deben
programarse hileras adicionales. En tal caso, se repite el proceso
programando la siguiente hilera 4 borrada con un primer paso, a lo
que le sigue el aumento de los niveles de carga de la hilera 5
reprogramando sus datos. Este ciclo continua por las hileras de la
Figura 5, en donde los elementos de almacenamiento de células de
memoria de las hileras adyacentes están acoplados capacitativamente
entre sí en un nivel significativo.
En la Figura 7 se ilustra un proceso de lectura
de datos de hileras programadas según la Figura 6. Se dirige una
primera hilera que debe ser leída, según se indica en 107. A
continuación, dicha hilera es leída con los voltajes de lectura más
elevados (Figura 4C), según se indica en 109. Puesto que esta
lectura también incluye la lectura del bit de rastreo, se determina
en 111 si TB = BAJO o TB = ALTO. Si TB = BAJO, se vuelve a leer la
hilera con los niveles de lectura más bajos (Figura 4A), según se
indica en 113, a lo que le sigue el almacenamiento temporal de los
datos leídos, en 115. Así se completa la lectura de una hilera.
Pero puesto que la mayoría de operaciones de lectura tienen que
realizarse en muchas hileras de forma secuencial, una pregunta 117
determina si deben leerse más hileras. En tal caso, se lee la
siguiente hilera en orden, según se indica en 119 y el proceso
regresa a 109.
En relación con la Figura 8, se describe un
ejemplo de la estructura de datos de una página de células de
memoria. Los datos de usuario 131 y los datos de cabecera 133 que
pertenecen a los datos del usuario se almacenan de forma accesible
para el usuario a través del controlador de memoria del dispositivo
principal. Los datos de cabecera 133 incluyen un ECC calculado a
partir de los datos del usuario, diversos indicadores, entre otros.
Los datos de cabecera 135, tales como el recuento del número de
veces que se ha borrado y reprogramado el bloque en el que se
encuentra la página de la Figura 8, voltajes que deben usarse en la
programación, lectura y borrado, entre otros, se oculta su acceso
por el sistema central pero son utilizados por el controlador de
memoria para operar el sistema de memoria. Asimismo almacenado en
la región oculta se encuentran los bits TB y, normalmente, se
incluyen células redundantes 137 para sustituir cualquier bit que
falle en la región 131 de datos del usuario. Por lo tanto, el
usuario no puede acceder a los bits TB desde un dispositivo
central; en lugar de eso, los bits TB se escriben y leen mediante
el controlador del sistema de memoria.
Claims (25)
1. Un método para operar una matriz de células
de memoria no volátil que almacena datos como diferentes niveles de
carga en elementos de almacenamiento de carga, en donde entre los
grupos adyacentes de los elementos de almacenamiento de carga
existe acoplamiento de campo:
programar datos en un primer grupo (35) de los
elementos de almacenamiento de la carga con un primer juego de
niveles de almacenamiento (VL) junto con una indicación TB=L de que
se ha usado el primer juego de niveles de almacenamiento, a
continuación programar datos en un segundo grupo (39) de los
elementos de almacenamiento de carga con el primer juego de niveles
de almacenamiento junto con una indicación de que se ha usado el
primer juego de niveles de almacenamiento, y
a continuación aumentar los niveles de carga del
primero (35) de los grupos de elementos de almacenamiento de carga
desde el primer juego de niveles de almacenamiento hasta un segundo
juego de niveles de almacenamiento y almacenar una indicación
(TB=H) de que se ha usado el segundo juego de niveles de
almacenamiento.
2. El método de la reivindicación 1, en donde
los grupos adyacentes de elementos de almacenamiento de carga están
colocados en hileras adyacentes de células de memoria.
3. El método de la reivindicación 1, en donde
los elementos de almacenamiento de carga son puertas flotantes
conductivas.
4. El método de la reivindicación 1, en donde el
primer y el segundo juego de niveles de almacenamiento incluyen
cada uno más de dos niveles de almacenamiento, de modo que
almacenan más de un bit de datos en los elementos de almacenamiento
individuales.
5. Un método para accionar una matriz de células
de memoria con al menos un primer y un segundo grupo de células de
memoria, en donde el primer y el segundo grupo poseen acoplamiento
de campo eléctrico entre sí, que comprende:
Programar datos en el primer grupo (35) células
de memoria con un primer juego de niveles de verificación de umbral
(V2), incluyendo almacenar una indicación (TB=O) de que se ha
utilizado el primer juego de niveles umbral,
a continuación programar datos en el segundo
grupo (39) de células de memoria con el primer juego de niveles de
verificación umbral, incluyendo el almacenamiento de una indicación
(TB=L) de que se ha utilizado el primer juego de niveles umbral
a continuación leyendo los datos programados en
el primer grupo (35) de células de memoria y dicha indicación con
un primer juego de niveles de lectura (RL), y a continuación
reprogramando los datos leídos en el primer grupo con un segundo
juego de niveles umbral de verificación (VH), incluyendo el
almacenamiento de una indicación (TB=H) de que se ha utilizado el
segundo juego de niveles umbral, siendo el segundo juego de niveles
umbral de verificación superior al primer juego de niveles umbral
de verificación
en donde los datos pueden leerse desde el primer
grupo con un segundo juego de niveles de lectura (RH) que es
superior al segundo juego de niveles de lectura.
6. El método de la reivindicación 5, que
comprende adicionalmente:
leer datos almacenados en el segundo grupo de
células de memoria con el segundo juego de niveles de lectura,
incluyendo la indicación de que el primer juego de niveles umbral
ha sido utilizado durante la programación, y
en respuesta a la lectura de que se ha utilizado
el primer juego de niveles umbral durante la programación,
relectura de los datos almacenados en el segundo grupo de células
de memoria con el primer juego de niveles de lectura.
7. El método de la reivindicación 6, en donde
los grupos adyacentes de células de memoria se colocan en hileras
adyacentes de las células de memoria.
8. El método de la reivindicación 6, en donde
las células de memoria incluyen al menos un elemento de
almacenamiento de la carga que se programa con los datos.
9. El método de la reivindicación 8, en donde
los elementos de almacenamiento de carga son puertas flotantes
conductivas.
10. El método de la reivindicación 6, en donde
el primer y el segundo juego de niveles umbral de verificación
incluyen más de dos niveles, de modo que pueden almacenar más de un
bit de datos en las células de memoria individuales.
11. Un método para programar células de memoria
no volátil de un tipo que almacenan datos como niveles de carga
diferentes en elementos de almacenamiento de carga, en donde los
elementos de almacenamiento de carga están dispuestos en, al menos,
una primera, (37) segunda (35) y tercera (39) hilera en secuencia
en una matriz de células con los elementos de almacenamiento de al
menos dichas hileras colocados inmediatamente adyacentes entre sí y
entre las que existe acoplamiento de campo, comprendiendo en el
orden indicado:
programar los elementos de almacenamiento de
carga de la segunda hilera (35) en los primeros niveles (VL) que
son inferiores a los niveles de almacenamiento de datos,
incrementar los niveles de carga de los elementos de almacenamiento
de carga de la primera hilera (37) hasta menos de los niveles de
almacenamiento de datos y hasta los niveles de almacenamiento de
datos
programar los elementos de almacenamiento de
carga de la tercera hilera (39) en los primeros niveles que son
inferiores a los niveles de almacenamiento de datos, e incrementar
los niveles de carga de los elementos de almacenamiento de carga de
la segunda hilera (35) hasta menos de los niveles de almacenamiento
de datos y hasta los niveles de almacenamiento de datos.
12. El método de la reivindicación 11, en donde
el incremento de los niveles de carga de los elementos de
almacenamiento de carga de la primera y de la segunda hilera
incluye:
leer los datos almacenados en la primera o
segunda hilera, y programar las células de memoria de la primera o
segunda hilera con los datos leídos desde allí hasta los niveles de
carga de almacenamiento de datos.
13. El método de la reivindicación 12, en donde
incrementar los niveles de carga de los elementos de carga de la
primera y segunda hilera se consigue sin borrar los datos
almacenados en la primera o en la segunda hilera.
14. Un método para operar una matriz de células
de memoria no volátil que almacena datos como diferentes niveles de
carga en elementos de almacenamiento de la carga de ellas, en donde
los elementos de almacenamiento de carga de grupos adyacentes se
acoplan capacitativamente entre sí, comprendiendo:
programando inicialmente datos en grupos
individuales de elementos de almacenamiento de la carga con un
primer juego de niveles de almacenamiento junto con una indicación
(TB=L) de que se ha usado el primer juego de niveles de
almacenamiento, aumentando a continuación los niveles de carga de
los grupos individuales de los elementos de almacenamiento de carga
desde el primer juego de niveles de almacenamiento hasta un segundo
juego de niveles de almacenamiento y almacenar una indicación
(TB=H) de que se ha usado el segundo juego de niveles de
almacenamiento, leyendo inicialmente los grupos individuales de
elementos de almacenamiento de carga incluyendo dicha indicación
con niveles de lectura (RH) que corresponden al uso del segundo
juego de niveles de almacenamiento; y si la indicación (TB=L) lee
inicialmente que se ha usado el primer juego de niveles de
almacenamiento, releer los grupos individuales de elementos de
almacenamiento de carga con niveles de lectura (RL) que
corresponden al uso del primer juego de niveles de
almacenamiento.
15. El método de la reivindicación 14, en donde
incrementar los niveles de carga de los grupos individuales de
elementos de almacenamiento de carga incluye:
leer los datos almacenados en los grupos
individuales de elementos de almacenamiento de carga, y programar
las células de memoria de los grupos individuales desde los que se
han leído los datos.
16. El método de la reivindicación 14, en donde
incrementar los niveles de carga de los grupos individuales de
elementos de almacenamiento de carga incluye hacerlo sin borrar los
datos almacenados en la primera o en la segunda hilera.
17. El método de la reivindicación 14, en donde
los grupos adyacentes de elementos de almacenamiento de carga
incluye hileras adyacentes de células de memoria.
18. El método de la reivindicación 14, en donde
los elementos de almacenamiento de carga son puertas flotantes
conductivas.
19. El método de la reivindicación 14, en donde
el primer y el segundo juego de niveles de almacenamiento incluyen
cada uno más de dos niveles de almacenamiento, de modo que
almacenan más de un bit de datos en los elementos de almacenamiento
individuales.
20. Un sistema de memoria, que comprende:
una matriz de hileras y columnas de células de
memoria no volátil reprogramables que incluye elementos de
almacenamiento de carga (25) que almacena individualmente niveles
de carga indicadores de los datos en ellas almacenados, en donde
existe un grado de acoplamiento de campo entre los elementos de
almacenamiento de carga de las células de memoria de hileras
adyacentes, y programar circuitos que programan sucesivamente
células de memoria de hileras individuales (35, 37, 39) de una
unidad de hileras haciendo que las células de memoria de una
primera hilera (35) se programen y verifiquen como que poseen
niveles intermedios de carga de almacenamiento de datos junto con
una indicación de que se han utilizado los niveles intermedios,
haciendo que a continuación las células de memoria de una segunda
hilera (39) adyacente a la primera hilera se programen y verifiquen
como que poseen niveles de carga de almacenamiento de datos
intermedios junto a una indicación de que se han usado los niveles
intermedios, haciendo que a continuación las células de memoria de
la primera hilera (35) se programen y verifiquen como que poseen
niveles finales de carga de almacenamiento de datos junto con una
indicación de que se han usado los niveles finales, haciendo que a
continuación las células de memoria de la tercera hilera (37)
adyacente a la segunda hilera se programen y verifiquen como que
poseen niveles de carga de almacenamiento de datos intermedios
junto con la indicación de que se han usado los niveles
intermedios, haciendo que a continuación, las células de memoria de
la segunda hilera (39) se programen y verifiquen como que poseen
niveles finales de carga de almacenamiento de datos junto con una
indicación de que se han usado los niveles finales y que repite
este proceso hilera por hilera hasta que se han programado todas
las hileras de la unidad en los niveles de carga de almacenamiento
de datos finales.
21. El sistema de memoria de la reivindicación
20, en donde los circuitos de programación hacen que los niveles
finales de almacenamiento de carga en los que se programan los
elementos de almacenamiento de carga individuales de las células de
memoria sean más de dos niveles de almacenamiento de carga.
22. El sistema de memoria de la reivindicación
20, en donde la matriz de células de memoria utilizan una
arquitectura NAND.
23. El sistema de memoria de la reivindicación
20, en donde la unidad de hileras se encuentra en un bloque de
células de memoria de la matriz, en donde las células de memoria
del bloque pueden borrarse conjuntamente antes de programarlas.
24. El sistema de memoria de la reivindicación
20, en donde la unidad de hileras posee capacidad para almacenar
una página de datos.
25. El sistema de memoria de la reivindicación
20, que comprende adicionalmente leer circuitos que indican los
niveles de carga de almacenamiento intermedio de una hilera
determinada como la fuente de datos de los circuitos de
programación para, posteriormente, programar y verificar si las
células de memoria de la hilera determinada poseen niveles de carga
finales de almacenamiento de datos.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US237426 | 1999-01-26 | ||
US10/237,426 US6781877B2 (en) | 2002-09-06 | 2002-09-06 | Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2262014T3 true ES2262014T3 (es) | 2006-11-16 |
Family
ID=31977713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03794474T Expired - Lifetime ES2262014T3 (es) | 2002-09-06 | 2003-08-13 | Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria. |
Country Status (10)
Country | Link |
---|---|
US (3) | US6781877B2 (es) |
EP (1) | EP1535285B1 (es) |
JP (1) | JP4391941B2 (es) |
KR (1) | KR100986680B1 (es) |
CN (1) | CN100578667C (es) |
AT (1) | ATE321339T1 (es) |
AU (1) | AU2003262675A1 (es) |
DE (1) | DE60304220T2 (es) |
ES (1) | ES2262014T3 (es) |
WO (1) | WO2004023489A1 (es) |
Families Citing this family (390)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542407B1 (en) * | 2002-01-18 | 2003-04-01 | Sandisk Corporation | Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells |
US6781877B2 (en) * | 2002-09-06 | 2004-08-24 | Sandisk Corporation | Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells |
US6983428B2 (en) | 2002-09-24 | 2006-01-03 | Sandisk Corporation | Highly compact non-volatile memory and method thereof |
US6891753B2 (en) * | 2002-09-24 | 2005-05-10 | Sandisk Corporation | Highly compact non-volatile memory and method therefor with internal serial buses |
US6944063B2 (en) * | 2003-01-28 | 2005-09-13 | Sandisk Corporation | Non-volatile semiconductor memory with large erase blocks storing cycle counts |
JP4469649B2 (ja) * | 2003-09-17 | 2010-05-26 | 株式会社ルネサステクノロジ | 半導体フラッシュメモリ |
US7020017B2 (en) * | 2004-04-06 | 2006-03-28 | Sandisk Corporation | Variable programming of non-volatile memory |
US7057939B2 (en) | 2004-04-23 | 2006-06-06 | Sandisk Corporation | Non-volatile memory and control with improved partial page program capability |
US7274596B2 (en) * | 2004-06-30 | 2007-09-25 | Micron Technology, Inc. | Reduction of adjacent floating gate data pattern sensitivity |
JP4410188B2 (ja) * | 2004-11-12 | 2010-02-03 | 株式会社東芝 | 半導体記憶装置のデータ書き込み方法 |
US7441067B2 (en) | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
US6980471B1 (en) | 2004-12-23 | 2005-12-27 | Sandisk Corporation | Substrate electron injection techniques for programming non-volatile charge storage memory cells |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US9104315B2 (en) | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
US20060184718A1 (en) | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7196928B2 (en) * | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling during read operations of non-volatile memory |
US7196946B2 (en) * | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling in non-volatile storage |
US7187585B2 (en) * | 2005-04-05 | 2007-03-06 | Sandisk Corporation | Read operation for non-volatile storage that includes compensation for coupling |
US7339834B2 (en) * | 2005-06-03 | 2008-03-04 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
US7457910B2 (en) | 2005-06-29 | 2008-11-25 | Sandisk Corproation | Method and system for managing partitions in a storage device |
US7558906B2 (en) | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
US7552271B2 (en) | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
US7949845B2 (en) * | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US7218552B1 (en) | 2005-09-09 | 2007-05-15 | Sandisk Corporation | Last-first mode and method for programming of non-volatile memory with reduced program disturb |
US7170788B1 (en) | 2005-09-09 | 2007-01-30 | Sandisk Corporation | Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb |
US7529905B2 (en) * | 2005-10-13 | 2009-05-05 | Sandisk Corporation | Method of storing transformed units of data in a memory system having fixed sized storage blocks |
US7814262B2 (en) * | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
US7301817B2 (en) * | 2005-10-27 | 2007-11-27 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
US7366022B2 (en) * | 2005-10-27 | 2008-04-29 | Sandisk Corporation | Apparatus for programming of multi-state non-volatile memory using smart verify |
US7289348B2 (en) * | 2005-11-10 | 2007-10-30 | Sandisk Corporation | Reverse coupling effect with timing information |
US8683081B2 (en) * | 2005-11-14 | 2014-03-25 | Sandisk Technologies Inc. | Methods for displaying advertisement content on host system using application launched from removable memory device |
US8683082B2 (en) * | 2005-11-14 | 2014-03-25 | Sandisk Technologies Inc. | Removable memory devices for displaying advertisement content on host systems using applications launched from removable memory devices |
US7353073B2 (en) * | 2005-12-01 | 2008-04-01 | Sandisk Corporation | Method for managing appliances |
US7739078B2 (en) * | 2005-12-01 | 2010-06-15 | Sandisk Corporation | System for managing appliances |
US7262994B2 (en) * | 2005-12-06 | 2007-08-28 | Sandisk Corporation | System for reducing read disturb for non-volatile storage |
US7349258B2 (en) * | 2005-12-06 | 2008-03-25 | Sandisk Corporation | Reducing read disturb for non-volatile storage |
US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
US20070143117A1 (en) * | 2005-12-21 | 2007-06-21 | Conley Kevin M | Voice controlled portable memory storage device |
US7769978B2 (en) | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US20070143111A1 (en) * | 2005-12-21 | 2007-06-21 | Conley Kevin M | Voice controlled portable memory storage device |
US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US20070143560A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with memory allocation for a directly mapped file storage system |
US20070143566A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with data alignment in a directly mapped file storage system |
US8161289B2 (en) * | 2005-12-21 | 2012-04-17 | SanDisk Technologies, Inc. | Voice controlled portable memory storage device |
US20070143378A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with adaptive file handling in a directly mapped file storage system |
US20070156998A1 (en) * | 2005-12-21 | 2007-07-05 | Gorobets Sergey A | Methods for memory allocation in non-volatile memories with a directly mapped file storage system |
US20070143567A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for data alignment in non-volatile memories with a directly mapped file storage system |
US7917949B2 (en) * | 2005-12-21 | 2011-03-29 | Sandisk Corporation | Voice controlled portable memory storage device |
US7793068B2 (en) | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
US20070143561A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system |
US8484632B2 (en) * | 2005-12-22 | 2013-07-09 | Sandisk Technologies Inc. | System for program code execution with memory storage controller participation |
US8479186B2 (en) * | 2005-12-22 | 2013-07-02 | Sandisk Technologies Inc. | Method for program code execution with memory storage controller participation |
US7352629B2 (en) * | 2005-12-29 | 2008-04-01 | Sandisk Corporation | Systems for continued verification in non-volatile memory write operations |
US7443726B2 (en) * | 2005-12-29 | 2008-10-28 | Sandisk Corporation | Systems for alternate row-based reading and writing for non-volatile memory |
US7349260B2 (en) | 2005-12-29 | 2008-03-25 | Sandisk Corporation | Alternate row-based reading and writing for non-volatile memory |
US7307887B2 (en) * | 2005-12-29 | 2007-12-11 | Sandisk Corporation | Continued verification in non-volatile memory write operations |
JP4177847B2 (ja) | 2006-01-06 | 2008-11-05 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR100673025B1 (ko) * | 2006-01-24 | 2007-01-24 | 삼성전자주식회사 | 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법 |
KR100841336B1 (ko) * | 2006-01-24 | 2008-06-26 | 삼성전자주식회사 | 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리를 구비한 메모리 시스템 |
KR100673026B1 (ko) * | 2006-01-24 | 2007-01-24 | 삼성전자주식회사 | 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법 |
JP4157563B2 (ja) * | 2006-01-31 | 2008-10-01 | 株式会社東芝 | 半導体集積回路装置 |
US7483311B2 (en) * | 2006-02-07 | 2009-01-27 | Micron Technology, Inc. | Erase operation in a flash memory device |
KR100666223B1 (ko) * | 2006-02-22 | 2007-01-09 | 삼성전자주식회사 | 메모리셀 사이의 커플링 노이즈를 저감시키는 3-레벨불휘발성 반도체 메모리 장치 및 이에 대한 구동방법 |
US7499319B2 (en) * | 2006-03-03 | 2009-03-03 | Sandisk Corporation | Read operation for non-volatile storage with compensation for coupling |
US7436733B2 (en) * | 2006-03-03 | 2008-10-14 | Sandisk Corporation | System for performing read operation on non-volatile storage with compensation for coupling |
EP1840901B1 (en) * | 2006-03-31 | 2010-04-28 | STMicroelectronics Srl | Method for programming a memory device suitable to minimize floating gate couplings and memory device |
US7436713B2 (en) | 2006-04-12 | 2008-10-14 | Sandisk Corporation | Reducing the impact of program disturb |
US7426137B2 (en) | 2006-04-12 | 2008-09-16 | Sandisk Corporation | Apparatus for reducing the impact of program disturb during read |
US7499326B2 (en) | 2006-04-12 | 2009-03-03 | Sandisk Corporation | Apparatus for reducing the impact of program disturb |
US7515463B2 (en) | 2006-04-12 | 2009-04-07 | Sandisk Corporation | Reducing the impact of program disturb during read |
JP5142478B2 (ja) * | 2006-04-13 | 2013-02-13 | 株式会社東芝 | 半導体記憶装置 |
US7516261B2 (en) * | 2006-04-21 | 2009-04-07 | Sandisk Corporation | Method for U3 adapter |
US7447821B2 (en) * | 2006-04-21 | 2008-11-04 | Sandisk Corporation | U3 adapter |
KR100763353B1 (ko) * | 2006-04-26 | 2007-10-04 | 삼성전자주식회사 | 인접하는 메모리셀과의 커플링 노이즈를 저감시키는불휘발성 반도체 메모리 장치 |
WO2007132457A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
WO2007132452A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies | Reducing programming error in memory devices |
CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
US7457163B2 (en) * | 2006-06-01 | 2008-11-25 | Sandisk Corporation | System for verifying non-volatile storage using different voltages |
WO2008097320A2 (en) * | 2006-06-01 | 2008-08-14 | Virginia Tech Intellectual Properties, Inc. | Premixing injector for gas turbine engines |
US7440331B2 (en) | 2006-06-01 | 2008-10-21 | Sandisk Corporation | Verify operation for non-volatile storage using different voltages |
US7310272B1 (en) * | 2006-06-02 | 2007-12-18 | Sandisk Corporation | System for performing data pattern sensitivity compensation using different voltage |
US7450421B2 (en) * | 2006-06-02 | 2008-11-11 | Sandisk Corporation | Data pattern sensitivity compensation using different voltage |
US7952922B2 (en) * | 2006-06-06 | 2011-05-31 | Micron Technology, Inc. | Method for programming a non-volatile memory device to reduce floating-gate-to-floating-gate coupling effect |
KR101041595B1 (ko) * | 2006-06-19 | 2011-06-15 | 샌디스크 코포레이션 | 비휘발성 메모리에서 개선된 판독 동작을 위해 선택 상태에서 보상을 사용하여 감지 및 다른 크기의 마진 프로그래밍 |
US7606084B2 (en) * | 2006-06-19 | 2009-10-20 | Sandisk Corporation | Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory |
US7352628B2 (en) * | 2006-06-19 | 2008-04-01 | Sandisk Corporation | Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory |
US7486561B2 (en) * | 2006-06-22 | 2009-02-03 | Sandisk Corporation | Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages |
US7489549B2 (en) * | 2006-06-22 | 2009-02-10 | Sandisk Corporation | System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages |
US7894269B2 (en) * | 2006-07-20 | 2011-02-22 | Sandisk Corporation | Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells |
US7495953B2 (en) * | 2006-07-20 | 2009-02-24 | Sandisk Corporation | System for configuring compensation |
US7885119B2 (en) * | 2006-07-20 | 2011-02-08 | Sandisk Corporation | Compensating for coupling during programming |
US7522454B2 (en) * | 2006-07-20 | 2009-04-21 | Sandisk Corporation | Compensating for coupling based on sensing a neighbor using coupling |
US7400535B2 (en) * | 2006-07-20 | 2008-07-15 | Sandisk Corporation | System that compensates for coupling during programming |
US7443729B2 (en) * | 2006-07-20 | 2008-10-28 | Sandisk Corporation | System that compensates for coupling based on sensing a neighbor using coupling |
US7506113B2 (en) * | 2006-07-20 | 2009-03-17 | Sandisk Corporation | Method for configuring compensation |
WO2008026203A2 (en) | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
KR100805840B1 (ko) * | 2006-09-01 | 2008-02-21 | 삼성전자주식회사 | 캐시를 이용한 플래시 메모리 장치 및 그것의 프로그램방법 |
US7734861B2 (en) * | 2006-09-08 | 2010-06-08 | Sandisk Corporation | Pseudo random and command driven bit compensation for the cycling effects in flash memory |
US7606966B2 (en) * | 2006-09-08 | 2009-10-20 | Sandisk Corporation | Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory |
US7885112B2 (en) | 2007-09-07 | 2011-02-08 | Sandisk Corporation | Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages |
US7684247B2 (en) * | 2006-09-29 | 2010-03-23 | Sandisk Corporation | Reverse reading in non-volatile memory with compensation for coupling |
US7447076B2 (en) * | 2006-09-29 | 2008-11-04 | Sandisk Corporation | Systems for reverse reading in non-volatile memory with compensation for coupling |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for non-volatile memory with worst-case control data management |
US20080091871A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Non-volatile memory with worst-case control data management |
US7372748B2 (en) * | 2006-10-16 | 2008-05-13 | Sandisk Corporation | Voltage regulator in a non-volatile memory device |
US7821826B2 (en) | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
US7975192B2 (en) * | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7593263B2 (en) | 2006-12-17 | 2009-09-22 | Anobit Technologies Ltd. | Memory device with reduced reading latency |
US20080155175A1 (en) * | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Host System That Manages a LBA Interface With Flash Memory |
US7739444B2 (en) | 2006-12-26 | 2010-06-15 | Sandisk Corporation | System using a direct data file system with a continuous logical address space interface |
US8209461B2 (en) | 2006-12-26 | 2012-06-26 | Sandisk Technologies Inc. | Configuration of host LBA interface with flash memory |
US8166267B2 (en) * | 2006-12-26 | 2012-04-24 | Sandisk Technologies Inc. | Managing a LBA interface in a direct data file memory system |
US8046522B2 (en) * | 2006-12-26 | 2011-10-25 | SanDisk Technologies, Inc. | Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks |
US7917686B2 (en) * | 2006-12-26 | 2011-03-29 | Sandisk Corporation | Host system with direct data file interface configurability |
US7616505B2 (en) * | 2006-12-28 | 2009-11-10 | Sandisk Corporation | Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations |
WO2008083132A2 (en) * | 2006-12-28 | 2008-07-10 | Sandisk Corporation | Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations |
US7616506B2 (en) * | 2006-12-28 | 2009-11-10 | Sandisk Corporation | Systems for complete word line look ahead with efficient data latch assignment in non-volatile memory read operations |
US7701765B2 (en) | 2006-12-28 | 2010-04-20 | Micron Technology, Inc. | Non-volatile multilevel memory cell programming |
US7590002B2 (en) * | 2006-12-29 | 2009-09-15 | Sandisk Corporation | Resistance sensing and compensation for non-volatile storage |
US7440324B2 (en) * | 2006-12-29 | 2008-10-21 | Sandisk Corporation | Apparatus with alternating read mode |
US7890723B2 (en) * | 2006-12-29 | 2011-02-15 | Sandisk Corporation | Method for code execution |
US7606070B2 (en) * | 2006-12-29 | 2009-10-20 | Sandisk Corporation | Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation |
US7616498B2 (en) * | 2006-12-29 | 2009-11-10 | Sandisk Corporation | Non-volatile storage system with resistance sensing and compensation |
US7518923B2 (en) * | 2006-12-29 | 2009-04-14 | Sandisk Corporation | Margined neighbor reading for non-volatile memory read operations including coupling compensation |
WO2008083137A1 (en) * | 2006-12-29 | 2008-07-10 | Sandisk Corporation | Reading of a nonvolatile memory cell by taking account of the stored state of a neighboring memory cell |
US7890724B2 (en) * | 2006-12-29 | 2011-02-15 | Sandisk Corporation | System for code execution |
US7495962B2 (en) * | 2006-12-29 | 2009-02-24 | Sandisk Corporation | Alternating read mode |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US7751240B2 (en) | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US7679965B2 (en) * | 2007-01-31 | 2010-03-16 | Sandisk Il Ltd | Flash memory with improved programming precision |
US8370562B2 (en) * | 2007-02-25 | 2013-02-05 | Sandisk Il Ltd. | Interruptible cache flushing in flash memory systems |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
US7535764B2 (en) * | 2007-03-21 | 2009-05-19 | Sandisk Corporation | Adjusting resistance of non-volatile memory using dummy memory cells |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US20080294813A1 (en) * | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Managing Housekeeping Operations in Flash Memory |
US20080294814A1 (en) * | 2007-05-24 | 2008-11-27 | Sergey Anatolievich Gorobets | Flash Memory System with Management of Housekeeping Operations |
US20080307156A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium |
US8239639B2 (en) * | 2007-06-08 | 2012-08-07 | Sandisk Technologies Inc. | Method and apparatus for providing data type and host file information to a mass storage system |
US8713283B2 (en) * | 2007-06-08 | 2014-04-29 | Sandisk Technologies Inc. | Method of interfacing a host operating through a logical address space with a direct file storage medium |
US9396103B2 (en) * | 2007-06-08 | 2016-07-19 | Sandisk Technologies Llc | Method and system for storage address re-mapping for a memory device |
US7936599B2 (en) * | 2007-06-15 | 2011-05-03 | Micron Technology, Inc. | Coarse and fine programming in a solid state memory |
US7719889B2 (en) | 2007-06-25 | 2010-05-18 | Sandisk Corporation | Methods of programming multilevel cell nonvolatile memory |
US7630252B2 (en) * | 2007-06-25 | 2009-12-08 | Sandisk Corporation | Systems for programming multilevel cell nonvolatile memory |
KR100888842B1 (ko) * | 2007-06-28 | 2009-03-17 | 삼성전자주식회사 | 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법 |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US7535767B2 (en) * | 2007-08-06 | 2009-05-19 | Spansion Llc | Reading multi-cell memory devices utilizing complementary bit information |
US7652929B2 (en) * | 2007-09-17 | 2010-01-26 | Sandisk Corporation | Non-volatile memory and method for biasing adjacent word line for verify during programming |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US8650352B2 (en) * | 2007-09-20 | 2014-02-11 | Densbits Technologies Ltd. | Systems and methods for determining logical values of coupled flash memory cells |
WO2009095902A2 (en) | 2008-01-31 | 2009-08-06 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
US7751237B2 (en) * | 2007-09-25 | 2010-07-06 | Sandisk Il, Ltd. | Post-facto correction for cross coupling in a flash memory |
US20090088876A1 (en) * | 2007-09-28 | 2009-04-02 | Conley Kevin M | Portable, digital media player and associated methods |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8527819B2 (en) | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
US8443242B2 (en) | 2007-10-25 | 2013-05-14 | Densbits Technologies Ltd. | Systems and methods for multiple coding rates in flash devices |
US7668012B2 (en) * | 2007-10-31 | 2010-02-23 | Micron Technology, Inc. | Memory cell programming |
US8270246B2 (en) | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
WO2009072104A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith |
US8607128B2 (en) * | 2007-12-05 | 2013-12-10 | Densbits Technologies Ltd. | Low power chien-search based BCH/RS decoding system for flash memory, mobile communications devices and other applications |
WO2009072103A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells |
US8359516B2 (en) | 2007-12-12 | 2013-01-22 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
WO2009074979A2 (en) | 2007-12-12 | 2009-06-18 | Densbits Technologies Ltd. | Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8327246B2 (en) | 2007-12-18 | 2012-12-04 | Densbits Technologies Ltd. | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith |
US8880483B2 (en) * | 2007-12-21 | 2014-11-04 | Sandisk Technologies Inc. | System and method for implementing extensions to intelligently manage resources of a mass storage system |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
KR101368694B1 (ko) * | 2008-01-22 | 2014-03-03 | 삼성전자주식회사 | 메모리 프로그래밍 장치 및 방법 |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
JP2011522301A (ja) | 2008-03-11 | 2011-07-28 | アギア システムズ インコーポレーテッド | クロス・ページ・セクタ、マルチ・ページ符号化およびパー・ページ符号化を使用して多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法および装置 |
US7835203B2 (en) * | 2008-03-12 | 2010-11-16 | Macronix International Co., Ltd | Programming method and memory device using the same |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8972472B2 (en) * | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US7848144B2 (en) | 2008-06-16 | 2010-12-07 | Sandisk Corporation | Reverse order page writing in flash memories |
US8458563B2 (en) * | 2008-06-23 | 2013-06-04 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by joint decoding and cell voltage distribution tracking |
US8464131B2 (en) * | 2008-06-23 | 2013-06-11 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by constrained decoding |
US7800956B2 (en) * | 2008-06-27 | 2010-09-21 | Sandisk Corporation | Programming algorithm to reduce disturb with minimal extra time penalty |
JP5710475B2 (ja) * | 2008-07-01 | 2015-04-30 | エルエスアイ コーポレーション | フラッシュ・メモリにおけるソフト・デマッピングおよびセル間干渉軽減のための方法および装置 |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US8332725B2 (en) | 2008-08-20 | 2012-12-11 | Densbits Technologies Ltd. | Reprogramming non volatile memory portions |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US7839687B2 (en) * | 2008-10-16 | 2010-11-23 | Sandisk Corporation | Multi-pass programming for memory using word line coupling |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
KR101642465B1 (ko) * | 2008-12-12 | 2016-07-25 | 삼성전자주식회사 | 불휘발성 메모리 장치의 액세스 방법 |
US7944754B2 (en) * | 2008-12-31 | 2011-05-17 | Sandisk Corporation | Non-volatile memory and method with continuous scanning time-domain sensing |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US7813181B2 (en) * | 2008-12-31 | 2010-10-12 | Sandisk Corporation | Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations |
US8244960B2 (en) * | 2009-01-05 | 2012-08-14 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partition management methods |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8040744B2 (en) * | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
US8094500B2 (en) * | 2009-01-05 | 2012-01-10 | Sandisk Technologies Inc. | Non-volatile memory and method with write cache partitioning |
US8700840B2 (en) * | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8832354B2 (en) | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8458574B2 (en) | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
US8819385B2 (en) | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
KR101717798B1 (ko) | 2009-04-08 | 2017-03-17 | 샌디스크 테크놀로지스 엘엘씨 | 수직의 비트 라인들 및 이중 전역 비트 라인 아키텍처를 가지는 재프로그래밍 가능한 메모리 요소들의 3차원 어레이 |
US8351236B2 (en) | 2009-04-08 | 2013-01-08 | Sandisk 3D Llc | Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a single-sided word line architecture |
US7983065B2 (en) * | 2009-04-08 | 2011-07-19 | Sandisk 3D Llc | Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines |
US8199576B2 (en) * | 2009-04-08 | 2012-06-12 | Sandisk 3D Llc | Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
US8027195B2 (en) * | 2009-06-05 | 2011-09-27 | SanDisk Technologies, Inc. | Folding data stored in binary format into multi-state format within non-volatile memory devices |
US8102705B2 (en) | 2009-06-05 | 2012-01-24 | Sandisk Technologies Inc. | Structure and method for shuffling data within non-volatile memory devices |
US7974124B2 (en) * | 2009-06-24 | 2011-07-05 | Sandisk Corporation | Pointer based column selection techniques in non-volatile memories |
US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8144511B2 (en) | 2009-08-19 | 2012-03-27 | Sandisk Technologies Inc. | Selective memory cell program and erase |
US8305812B2 (en) | 2009-08-26 | 2012-11-06 | Densbits Technologies Ltd. | Flash memory module and method for programming a page of flash memory cells |
US9330767B1 (en) | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
US8868821B2 (en) | 2009-08-26 | 2014-10-21 | Densbits Technologies Ltd. | Systems and methods for pre-equalization and code design for a flash memory |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
US8626988B2 (en) * | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
US8473669B2 (en) * | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US20110153912A1 (en) | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US8144512B2 (en) | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
US8468294B2 (en) * | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
US8054684B2 (en) | 2009-12-18 | 2011-11-08 | Sandisk Technologies Inc. | Non-volatile memory and method with atomic program sequence and write abort detection |
US9037777B2 (en) * | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
US8607124B2 (en) * | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8848430B2 (en) * | 2010-02-23 | 2014-09-30 | Sandisk 3D Llc | Step soft program for reversible resistivity-switching elements |
US8700970B2 (en) * | 2010-02-28 | 2014-04-15 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
US8527840B2 (en) | 2010-04-06 | 2013-09-03 | Densbits Technologies Ltd. | System and method for restoring damaged data programmed on a flash device |
US8516274B2 (en) | 2010-04-06 | 2013-08-20 | Densbits Technologies Ltd. | Method, system and medium for analog encryption in a flash memory |
US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
TWI447733B (zh) * | 2010-04-14 | 2014-08-01 | Phison Electronics Corp | 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器 |
WO2011128867A1 (en) | 2010-04-15 | 2011-10-20 | Ramot At Tel Aviv University Ltd. | Multiple programming of flash memory without erase |
US9021177B2 (en) | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8385102B2 (en) | 2010-05-11 | 2013-02-26 | Sandisk 3D Llc | Alternating bipolar forming voltage for resistivity-switching elements |
US8526237B2 (en) | 2010-06-08 | 2013-09-03 | Sandisk 3D Llc | Non-volatile memory having 3D array of read/write elements and read/write circuits and method thereof |
US20110297912A1 (en) | 2010-06-08 | 2011-12-08 | George Samachisa | Non-Volatile Memory Having 3d Array of Read/Write Elements with Vertical Bit Lines and Laterally Aligned Active Elements and Methods Thereof |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8417876B2 (en) | 2010-06-23 | 2013-04-09 | Sandisk Technologies Inc. | Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems |
US8543757B2 (en) | 2010-06-23 | 2013-09-24 | Sandisk Technologies Inc. | Techniques of maintaining logical to physical mapping information in non-volatile memory systems |
US8468431B2 (en) | 2010-07-01 | 2013-06-18 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
US8539311B2 (en) | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
US8467249B2 (en) | 2010-07-06 | 2013-06-18 | Densbits Technologies Ltd. | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8310870B2 (en) | 2010-08-03 | 2012-11-13 | Sandisk Technologies Inc. | Natural threshold voltage distribution compaction in non-volatile memory |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
US8508995B2 (en) | 2010-09-15 | 2013-08-13 | Densbits Technologies Ltd. | System and method for adjusting read voltage thresholds in memories |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
US8452911B2 (en) | 2010-09-30 | 2013-05-28 | Sandisk Technologies Inc. | Synchronized maintenance operations in a multi-bank storage system |
US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
US9227456B2 (en) | 2010-12-14 | 2016-01-05 | Sandisk 3D Llc | Memories with cylindrical read/write stacks |
EP2731110B1 (en) | 2010-12-14 | 2016-09-07 | SanDisk Technologies LLC | Architecture for three dimensional non-volatile storage with vertical bit lines |
US8472280B2 (en) | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
US9898361B2 (en) | 2011-01-04 | 2018-02-20 | Seagate Technology Llc | Multi-tier detection and decoding in flash memories |
US9292377B2 (en) | 2011-01-04 | 2016-03-22 | Seagate Technology Llc | Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values |
US10079068B2 (en) | 2011-02-23 | 2018-09-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices and method for wear estimation based memory management |
US8693258B2 (en) | 2011-03-17 | 2014-04-08 | Densbits Technologies Ltd. | Obtaining soft information using a hard interface |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
US9324433B2 (en) * | 2011-04-25 | 2016-04-26 | Microsoft Technology Licensing, Llc | Intelligent flash reprogramming |
US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
US8843693B2 (en) | 2011-05-17 | 2014-09-23 | SanDisk Technologies, Inc. | Non-volatile memory and method with improved data scrambling |
US8667211B2 (en) | 2011-06-01 | 2014-03-04 | Densbits Technologies Ltd. | System and method for managing a non-volatile memory |
US8588003B1 (en) | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
US8743615B2 (en) | 2011-08-22 | 2014-06-03 | Sandisk Technologies Inc. | Read compensation for partially programmed blocks of non-volatile storage |
JP2012014827A (ja) * | 2011-09-12 | 2012-01-19 | Toshiba Corp | 半導体記憶装置 |
US8553468B2 (en) | 2011-09-21 | 2013-10-08 | Densbits Technologies Ltd. | System and method for managing erase operations in a non-volatile memory |
JP2012043530A (ja) * | 2011-10-24 | 2012-03-01 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8762627B2 (en) | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
US9171627B2 (en) | 2012-04-11 | 2015-10-27 | Aplus Flash Technology, Inc. | Non-boosting program inhibit scheme in NAND design |
US9087595B2 (en) | 2012-04-20 | 2015-07-21 | Aplus Flash Technology, Inc. | Shielding 2-cycle half-page read and program schemes for advanced NAND flash design |
US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
US8895437B2 (en) | 2012-06-15 | 2014-11-25 | Sandisk 3D Llc | Method for forming staircase word lines in a 3D non-volatile memory having vertical bit lines |
US9281029B2 (en) | 2012-06-15 | 2016-03-08 | Sandisk 3D Llc | Non-volatile memory having 3D array architecture with bit line voltage control and methods thereof |
US8750045B2 (en) | 2012-07-27 | 2014-06-10 | Sandisk Technologies Inc. | Experience count dependent program algorithm for flash memory |
US9921954B1 (en) | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
US9490035B2 (en) | 2012-09-28 | 2016-11-08 | SanDisk Technologies, Inc. | Centralized variable rate serializer and deserializer for bad column management |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
US9025374B2 (en) * | 2012-12-13 | 2015-05-05 | Sandisk Technologies Inc. | System and method to update read voltages in a non-volatile memory in response to tracking data |
US9336133B2 (en) | 2012-12-31 | 2016-05-10 | Sandisk Technologies Inc. | Method and system for managing program cycles including maintenance programming operations in a multi-layer memory |
US9223693B2 (en) | 2012-12-31 | 2015-12-29 | Sandisk Technologies Inc. | Memory system having an unequal number of memory die on different control channels |
US9348746B2 (en) | 2012-12-31 | 2016-05-24 | Sandisk Technologies | Method and system for managing block reclaim operations in a multi-layer memory |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US8873284B2 (en) | 2012-12-31 | 2014-10-28 | Sandisk Technologies Inc. | Method and system for program scheduling in a multi-layer memory |
US9465731B2 (en) | 2012-12-31 | 2016-10-11 | Sandisk Technologies Llc | Multi-layer non-volatile memory system having multiple partitions in a layer |
US9734911B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
US9064547B2 (en) | 2013-03-05 | 2015-06-23 | Sandisk 3D Llc | 3D non-volatile memory having low-current cells and methods |
US9183940B2 (en) | 2013-05-21 | 2015-11-10 | Aplus Flash Technology, Inc. | Low disturbance, power-consumption, and latency in NAND read and program-verify operations |
US10013322B2 (en) * | 2013-06-03 | 2018-07-03 | Hitachi, Ltd. | Storage apparatus and storage apparatus control method |
US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
US9123430B2 (en) | 2013-06-14 | 2015-09-01 | Sandisk 3D Llc | Differential current sense amplifier and method for non-volatile memory |
US8933516B1 (en) | 2013-06-24 | 2015-01-13 | Sandisk 3D Llc | High capacity select switches for three-dimensional structures |
US9263137B2 (en) | 2013-06-27 | 2016-02-16 | Aplus Flash Technology, Inc. | NAND array architecture for multiple simutaneous program and read |
US9230677B2 (en) | 2013-07-25 | 2016-01-05 | Aplus Flash Technology, Inc | NAND array hiarchical BL structures for multiple-WL and all-BL simultaneous erase, erase-verify, program, program-verify, and read operations |
US9293205B2 (en) | 2013-09-14 | 2016-03-22 | Aplus Flash Technology, Inc | Multi-task concurrent/pipeline NAND operations on all planes |
US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9047970B2 (en) | 2013-10-28 | 2015-06-02 | Sandisk Technologies Inc. | Word line coupling for deep program-verify, erase-verify and read |
WO2015100434A2 (en) | 2013-12-25 | 2015-07-02 | Aplus Flash Technology, Inc | A HYBRID NAND WITH ALL-BL m-PAGE OPERATION SCHEME |
US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
US9230689B2 (en) | 2014-03-17 | 2016-01-05 | Sandisk Technologies Inc. | Finding read disturbs on non-volatile memories |
US9123392B1 (en) | 2014-03-28 | 2015-09-01 | Sandisk 3D Llc | Non-volatile 3D memory with cell-selectable word line decoding |
US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
US9659636B2 (en) | 2014-07-22 | 2017-05-23 | Peter Wung Lee | NAND memory array with BL-hierarchical structure for concurrent all-BL, all-threshold-state program, and alternative-WL program, odd/even read and verify operations |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
US10055267B2 (en) | 2015-03-04 | 2018-08-21 | Sandisk Technologies Llc | Block management scheme to handle cluster failures in non-volatile memory |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
US10157681B2 (en) | 2015-09-14 | 2018-12-18 | Sandisk Technologies Llc | Programming of nonvolatile memory with verify level dependent on memory state and programming loop count |
US9711211B2 (en) | 2015-10-29 | 2017-07-18 | Sandisk Technologies Llc | Dynamic threshold voltage compaction for non-volatile memory |
US10042553B2 (en) | 2015-10-30 | 2018-08-07 | Sandisk Technologies Llc | Method and system for programming a multi-layer non-volatile memory having a single fold data path |
US9778855B2 (en) | 2015-10-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for precision interleaving of data writes in a non-volatile memory |
US10133490B2 (en) | 2015-10-30 | 2018-11-20 | Sandisk Technologies Llc | System and method for managing extended maintenance scheduling in a non-volatile memory |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
KR20170064312A (ko) * | 2015-12-01 | 2017-06-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
US10248499B2 (en) | 2016-06-24 | 2019-04-02 | Sandisk Technologies Llc | Non-volatile storage system using two pass programming with bit error control |
TWI613660B (zh) * | 2016-10-11 | 2018-02-01 | 群聯電子股份有限公司 | 記憶體程式化方法、記憶體控制電路單元與記憶體儲存裝置 |
CN107958687B (zh) * | 2016-10-18 | 2021-05-11 | 群联电子股份有限公司 | 存储器编程方法、存储器控制电路单元及其存储装置 |
US10614886B2 (en) | 2017-09-22 | 2020-04-07 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and a method of programming the nonvolatile memory device |
US10425084B2 (en) * | 2017-10-03 | 2019-09-24 | Murata Manufacturing Co., Ltd. | Oven controlled MEMS oscillator and system and method for calibrating the same |
US10600484B2 (en) * | 2017-12-20 | 2020-03-24 | Silicon Storage Technology, Inc. | System and method for minimizing floating gate to floating gate coupling effects during programming in flash memory |
US10719248B2 (en) | 2018-04-20 | 2020-07-21 | Micron Technology, Inc. | Apparatuses and methods for counter update operations |
US11055226B2 (en) * | 2018-06-29 | 2021-07-06 | Intel Corporation | Mitigation of cache-latency based side-channel attacks |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095344A (en) | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
US5172338B1 (en) | 1989-04-13 | 1997-07-08 | Sandisk Corp | Multi-state eeprom read and write circuits and techniques |
DE69033262T2 (de) | 1989-04-13 | 2000-02-24 | Sandisk Corp., Santa Clara | EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher |
US5663901A (en) | 1991-04-11 | 1997-09-02 | Sandisk Corporation | Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems |
US5430859A (en) | 1991-07-26 | 1995-07-04 | Sundisk Corporation | Solid state memory system including plural memory chips and a serialized bus |
US5712180A (en) | 1992-01-14 | 1998-01-27 | Sundisk Corporation | EEPROM with split gate source side injection |
US5657332A (en) | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5532962A (en) | 1992-05-20 | 1996-07-02 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US5555204A (en) | 1993-06-29 | 1996-09-10 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
KR0169267B1 (ko) | 1993-09-21 | 1999-02-01 | 사토 후미오 | 불휘발성 반도체 기억장치 |
US5815434A (en) * | 1995-09-29 | 1998-09-29 | Intel Corporation | Multiple writes per a single erase for a nonvolatile memory |
KR0172401B1 (ko) * | 1995-12-07 | 1999-03-30 | 김광호 | 다수상태 불휘발성 반도체 메모리 장치 |
US5903495A (en) | 1996-03-18 | 1999-05-11 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
US5890192A (en) | 1996-11-05 | 1999-03-30 | Sandisk Corporation | Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM |
US5867429A (en) | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6058042A (en) * | 1997-12-26 | 2000-05-02 | Sony Corporation | Semiconductor nonvolatile memory device and method of data programming the same |
US6103573A (en) | 1999-06-30 | 2000-08-15 | Sandisk Corporation | Processing techniques for making a dual floating gate EEPROM cell array |
US6151248A (en) | 1999-06-30 | 2000-11-21 | Sandisk Corporation | Dual floating gate EEPROM cell array with steering gates shared by adjacent cells |
US6091633A (en) | 1999-08-09 | 2000-07-18 | Sandisk Corporation | Memory array architecture utilizing global bit lines shared by multiple cells |
JP2001067884A (ja) * | 1999-08-31 | 2001-03-16 | Hitachi Ltd | 不揮発性半導体記憶装置 |
JP3863330B2 (ja) * | 1999-09-28 | 2006-12-27 | 株式会社東芝 | 不揮発性半導体メモリ |
US6426893B1 (en) | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
US6512263B1 (en) | 2000-09-22 | 2003-01-28 | Sandisk Corporation | Non-volatile memory cell array having discontinuous source and drain diffusions contacted by continuous bit line conductors and methods of forming |
US6522580B2 (en) | 2001-06-27 | 2003-02-18 | Sandisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
KR100390959B1 (ko) * | 2001-06-29 | 2003-07-12 | 주식회사 하이닉스반도체 | 센싱회로를 이용한 멀티레벨 플래시 메모리 프로그램/리드방법 |
US6897522B2 (en) | 2001-10-31 | 2005-05-24 | Sandisk Corporation | Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements |
US6542407B1 (en) * | 2002-01-18 | 2003-04-01 | Sandisk Corporation | Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells |
US6781877B2 (en) * | 2002-09-06 | 2004-08-24 | Sandisk Corporation | Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells |
-
2002
- 2002-09-06 US US10/237,426 patent/US6781877B2/en not_active Expired - Lifetime
-
2003
- 2003-08-13 AU AU2003262675A patent/AU2003262675A1/en not_active Abandoned
- 2003-08-13 AT AT03794474T patent/ATE321339T1/de not_active IP Right Cessation
- 2003-08-13 DE DE60304220T patent/DE60304220T2/de not_active Expired - Lifetime
- 2003-08-13 CN CN03823462A patent/CN100578667C/zh not_active Expired - Fee Related
- 2003-08-13 EP EP03794474A patent/EP1535285B1/en not_active Expired - Lifetime
- 2003-08-13 WO PCT/US2003/025512 patent/WO2004023489A1/en active IP Right Grant
- 2003-08-13 JP JP2004534286A patent/JP4391941B2/ja not_active Expired - Fee Related
- 2003-08-13 ES ES03794474T patent/ES2262014T3/es not_active Expired - Lifetime
- 2003-08-13 KR KR1020057003940A patent/KR100986680B1/ko active IP Right Grant
-
2004
- 2004-08-20 US US10/923,320 patent/US6870768B2/en not_active Expired - Lifetime
-
2005
- 2005-02-09 US US11/055,776 patent/US7046548B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20050146931A1 (en) | 2005-07-07 |
DE60304220T2 (de) | 2007-03-29 |
US6781877B2 (en) | 2004-08-24 |
JP4391941B2 (ja) | 2009-12-24 |
EP1535285B1 (en) | 2006-03-22 |
ATE321339T1 (de) | 2006-04-15 |
US7046548B2 (en) | 2006-05-16 |
KR20050083680A (ko) | 2005-08-26 |
US6870768B2 (en) | 2005-03-22 |
DE60304220D1 (de) | 2006-05-11 |
CN100578667C (zh) | 2010-01-06 |
WO2004023489A1 (en) | 2004-03-18 |
US20040047182A1 (en) | 2004-03-11 |
EP1535285A1 (en) | 2005-06-01 |
US20050018482A1 (en) | 2005-01-27 |
KR100986680B1 (ko) | 2010-10-08 |
AU2003262675A1 (en) | 2004-03-29 |
CN1703757A (zh) | 2005-11-30 |
JP2005538485A (ja) | 2005-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2262014T3 (es) | Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria. | |
US6542407B1 (en) | Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells | |
KR101578812B1 (ko) | 가장 빠른 및/또는 가장 느린 프로그래밍 비트를 무시하여 프로그램 검증이 감소된 비휘발성 메모리와 방법 | |
KR101871546B1 (ko) | 개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법 | |
US7826271B2 (en) | Nonvolatile memory with index programming and reduced verify | |
US8300458B2 (en) | Nonvolatile memory with correlated multiple pass programming | |
JP2010524147A (ja) | 不揮発性メモリと予測プログラミングの方法 | |
US20100097857A1 (en) | Predictive Programming in Non-Volatile Memory | |
US8964467B1 (en) | Systems and methods for partial page programming of multi level cells | |
US9570160B1 (en) | Non-volatile storage system with defect detetction and early programming termination | |
US7796435B2 (en) | Method for correlated multiple pass programming in nonvolatile memory | |
US20080253193A1 (en) | Non-Volatile Memory with Predictive Programming | |
EP2289069A1 (en) | Nonvolatile memory and method with index programming and reduced verify | |
US8750045B2 (en) | Experience count dependent program algorithm for flash memory | |
EP2297739A2 (en) | Nonvolatile memory and method for correlated multiple pass programming |