ES2262946T3 - Metodo para reducir los efectos del ruido en las memorias no volatiles por lectura multiple. - Google Patents
Metodo para reducir los efectos del ruido en las memorias no volatiles por lectura multiple.Info
- Publication number
- ES2262946T3 ES2262946T3 ES03250294T ES03250294T ES2262946T3 ES 2262946 T3 ES2262946 T3 ES 2262946T3 ES 03250294 T ES03250294 T ES 03250294T ES 03250294 T ES03250294 T ES 03250294T ES 2262946 T3 ES2262946 T3 ES 2262946T3
- Authority
- ES
- Spain
- Prior art keywords
- storage
- state
- storage element
- noise
- reading
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/106—Data output latches
-
- 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/26—Sensing or reading circuits; Data output 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/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
- G11C2013/0057—Read done in two steps, e.g. wherein the cell is read twice and one of the two read values serving as a reference value
Landscapes
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Apparatus For Radiation Diagnosis (AREA)
- Image Processing (AREA)
Abstract
Un método para escribir un valor de datos objetivo en una memoria no volátil, que comprende alterar el estado de un elemento de almacenamiento (301) en la memoria no volátil; verificar un parámetro (Di) indicativo del estado resultante del elemento de almacenamiento en relación con un valor de referencia indicativo del valor de los datos objetivo; y determinar si alterar más el estado del elemento de almacenamiento como respuesta a dicha verificación, que se caracteriza por el hecho de que, al verificar el parámetro se realizan una pluralidad de comparaciones para comparar el parámetro con el valor de referencia indicativo del valor de los datos objetivo.
Description
Método para reducir los efectos del ruido en las
memorias no volátiles por lectura múltiple.
Esta invención se refiere generalmente a
dispositivos de memoria legibles por ordenador, y, más
específicamente a métodos para reducir el ruido durante la lectura
de la información que contienen.
En memorias semiconductoras no volátiles, tales
como EEPROM, se ha aumentado la cantidad de datos almacenados por
celda de memoria para aumentar las densidades de almacenamiento. Al
mismo tiempo, se han reducido los voltajes operativos de dichos
dispositivos para reducir el consumo eléctrico. Esto tiene como
resultado un mayor número de estados almacenados en un intervalo
más pequeño de valores de voltaje o corriente A medida que
disminuye la separación de voltaje o corriente entre estados de
datos, los efectos del ruido son más significativos en la lectura
de dichas celdas. Por ejemplo, variaciones en el valor umbral
aceptable en un almacenamiento binario, pueden hacer que una celda
EEPROM de 5 voltios deje de ser aceptable en un dispositivo que
funciona a 3 voltios con 4 o más bits almacenables por celda.
Algunas consecuencias del ruido, y métodos para manejarlo, en una
memoria no volátil se describen en la patente estadounidense núm.
6.044.019.
Un ejemplo de comportamiento ruidoso de describe
en la Figura 1A, adaptado de la patente núm. 6.044.019. Esta figura
muestra la variación en la corriente que fluye a través de una
celda de memoria como respuesta a un conjunto determinado de
condiciones de polarización. La corriente fluctúa en una cantidad
\DeltaI debido a diversos efectos de ruido de la celda de memoria
y de sus circuitos de interconexión. Si, por ejemplo, el circuito
de memoria funciona mediante detección de corriente, a medida que
la separación de los estados se aproxima a \DeltaI, el ruido
empezará a producir valores erróneos de lectura. A pesar de que
pueden reducirse las consecuencias del ruido integrando técnicas de
detección, tales como las descritas en la patente número 6.044.019,
o bien pueden tratarse con códigos de corrección de errores (ECC) u
otro método de gestión de errores equivalente, tal como la
descrita en la patente estadounidense 5.418.752, las memorias
podrían beneficiarse de otros métodos para reducir los efectos del
ruido en el funcionamiento de la memoria.
También se hace referencia a la especificación
de patente europea núm. 1.096.501. Este documento se refiere a
dispositivos de memoria magnética de acceso aleatorio en los que
amplificadores sensores detectan la resistencia de las celdas de
memoria de una matriz de celdas. Describe un proceso de lectura en
el que se usa el resultado acumulado de múltiples lecturas para
formar un parámetro que indica qué nivel lógico binario contiene
una celda.
La presente invención se dirige hacia un método
para reducir los efectos del ruido en memorias no volátiles,
permitiendo así al sistema almacenar más estados por elemento de
almacenamiento en circuitos en los que el ruido y otros
transitorios son un factor significativo. El método descrito es un
método para escribir un valor de datos objetivo en una memoria no
volátil, que comprende alterar el estado de un elemento de
almacenamiento en la memoria no volátil; verificar un parámetro
(\Phii) indicativo del estado resultante del elemento de
almacenamiento en relación con un valor de referencia indicativo
del valor de los datos objetivo; y determinar si alterar más el
estado del elemento de almacenamiento como respuesta a dicha
verificación. Según la invención, al verificar el parámetro se
realizan una pluralidad de comparaciones independientes para
comparar el parámetro con el valor de referencia indicativo del
valor de los datos objetivo. Normalmente, el elemento de
almacenamiento es uno formado por una pluralidad de elementos de
almacenamiento en los que se escriben datos simultáneamente. Los
resultados de las comparaciones pueden acumularse y calcular el
promedio de cada elemento de almacenamiento para reducir los
efectos del ruido en los circuitos así como otros transitorios que
puedan afectar de forma adversa a la calidad de la
lectura.
lectura.
En métodos de la invención, el elemento de
almacenamiento puede ser un dispositivo de almacenamiento de carga,
aunque normalmente es un elemento de almacenamiento de estado
múltiple. En esta variante, se prefiere que el parámetro sea una
corriente; un voltaje; un tiempo; una frecuencia; una propiedad
magnética; y una propiedad óptica. Asimismo, en esta variante la
memoria no volátil comprenderá normalmente una unidad de memoria
que contiene una pluralidad de elementos de almacenamiento entre
los que se incluye dicho elemento de almacenamiento y un
controlador, y en donde las comparaciones se realizan por un
controlador y la unidad de memoria.
Cuando el elemento de almacenamiento es un
elemento de almacenamiento de estado múltiple, las comparaciones
pueden realizarse usando una técnica numérica digital; o pueden
comprender un método de detección de picos o una detección filtrada
analógica.
En métodos de la invención, la pluralidad de
comparaciones independientes pueden realizarse en un segundo modo
de verificación, incluyendo el método realizar uno o más ciclos de
verificación del programa usando un primer modo de verificación con
una sola comparación con un valor de referencia; alterar el estado
del elemento de almacenamiento; y verificar el estado resultante
usando un segundo modo de verificación. La transición desde el
primer al segundo modo de verificación puede realizarse en
respuesta al parámetro (\Phii) indicativo del estado resultante
del elemento de almacenamiento que sobrepasa un nivel del primer
modo de verificación o en respuesta a la transición desde un modo
de programación grueso a un modo de programación fino.
De lo que antecede se entenderá que la presente
invención puede implantarse a través de diversas técnicas. En un
primer conjunto de modos de aplicación, se realiza una lectura y
transferencia completa de los datos desde el dispositivo de
almacenamiento hacia el dispositivo controlador para cada
iteración, realizando el controlador el promediado. En un segundo
conjunto de modos de aplicación, se realiza una lectura completa
para cada interrupción, sin embargo el promediado se realiza dentro
del dispositivo de almacenamiento y no se produce ninguna
transferencia de datos hasta que se envían los resultados
definitivos. Un tercer conjunto de modos de aplicación realizan una
lectura completa seguida por una serie de relecturas más rápidas
aprovechando la información de estado ya establecida para evitar
una lectura completa, con un algoritmo inteligente para guiar el
estado en el que se detecta el estado de almacenamiento. Esta
técnica puede usarse como modo normal de operación, o bien puede
invocarse en estado de excepción, en función de las características
del sistema.
Una forma similar de promediar la señal puede
utilizarse durante la fase de verificación de la programación. Un
modo de aplicación de ejemplo de esta técnica sería la utilización
de un esquema de detección pico, tal y como se ha indicado
anteriormente. En este escenario, se realizan diversas
comprobaciones de verificación en el estado objetivo antes de
decidir si el elemento de almacenamiento ha alcanzado la etapa
final. Si falla alguna porción determinada de la verificación, el
elemento de almacenamiento recibe programación adicional.
Aspectos, características y ventajas adicionales
de la presente invención resultarán aparentes a partir de la
siguiente descripción, la cual deberá considerarse junto con los
dibujos que la acompañan, en donde:
Las Figuras 1A-C muestran
ejemplos de respuesta ruidosa en una celda de memoria.
La Figura 2 ilustra el efecto del ruido en un
programa y en la operación de verificación.
La Figura 3 es un diagrama esquemático del
funcionamiento de la presente invención según un modo de aplicación
de ejemplo.
Las Figuras 4A y 4B son diagramas de bloque de
modos de aplicación de circuitos de algunos aspectos de la presente
invención.
La Figura 5 es una representación esquemática de
una implantación de búsqueda binaria de un modo de aplicación de
ejemplo.
La capacidad de almacenamiento de las memorias
semiconductoras no volátiles ha aumentado tanto por la reducción
del tamaño físico de los componentes individuales de los circuitos,
entre los que se incluye la celda de memoria, como por el aumento
de la cantidad de datos almacenables en una sola celda de memoria.
Por ejemplo, dispositivos tales como los descritos en las patentes
estadounidenses 5.712.180 y 6.103.573 y la solicitud de patente
estadounidense con núm. de serie 09/505.555, presentada el 17 de
febrero de 2000, y el número de serie 09/667.344, presentada el 22
de septiembre de 2000, todas ellas asignadas a SanDisk Corporation,
pueden almacenar cuatro o más bits lógicos por transistor físico de
almacenamiento de puerta flotante. En el caso de cuatro bits
lógicos, este almacenamiento requerirá que cada puerta flotante
pueda tener codificado en ella uno de los dieciséis estados de
memoria posibles. Cada uno de dichos estados de memoria corresponde
a un valor único, o, más precisamente, a un estrecho intervalo de
valores, de carga almacenada en la puerta flotante que está lo
suficientemente separada del intervalo de valores de almacenamiento
de carga de sus estados vecinos para diferenciarlo claramente de
los estados vecinos así como del resto de estados. Esto es así para
una operación de lectura normal y para una lectura de verificación
efectuada como parte de una operación de programación.
En la solicitud de patente estadounidense con
núm. de serie 09/671.793, presentada el 27 de septiembre de 2000, y
en una memoria titulada "Sense Amplifier for Multilevel Non-
Volatile Integrated Memory Devices" por Shahzad Khalid,
presentada el 20 de noviembre, 2001, asignadas a SanDisk
Corporation, se describen una serie de técnicas para leer celdas de
memoria. La primera de estas solicitudes describe la lectura del
contenido de la celda de memoria con una resolución de 7 bits o
superior para su utilización en almacenamiento de 4 bits. Cuando
este número de niveles está contenido en una ventana de 3 voltios
de voltajes operativos, habitual en una memoria FLASH, esto tiene
como resultado una capacidad de resolución de aproximadamente 25
mV. Con este intervalo, los niveles de ruido anteriormente
aceptables pueden conducir al estado de una celda que se lee con un
error de uno o más niveles de estado.
Las Figuras 1A-1C ilustran
ejemplos de fluctuaciones de ruido en la lectura de una celda de
memoria. La Figura 1A muestra el caso en que el valor de algunos
parámetros indicativos del estado de la celda de memoria, en este
caso la corriente I(t) fluctúa alrededor de un valor medio
<I>. En otros modos de aplicación, la memoria puede funcionar
leyendo niveles de voltaje. Si el valor de la I(t) se lee
más o menos instantáneamente a intervalos regulares, el resultado
sería parecido al mostrado en la Figura 1B. Si, en lugar de ello,
el periodo durante el cual se lee el parámetro que indica el estado
de la celda es varias veces más largo que la escala temporal
habitual de las fluctuaciones, puede determinarse un valor
relativamente preciso del estado de la celda. Algunos métodos para
conseguirlo se describen en la patente estadounidense número
6.044.019, de la cual se han adaptado las Figuras 1A y 1C
incorporadas a la presente mediante su referencia anterior.
Según se describe en dicha patente, una celda de
memoria posee su corriente de fuente-drenaje
I(t)detectada por un amplificador sensor. El
amplificador sensor, I(t) normalmente posee un componente de
ruido según se ilustra en las Figuras 1A y 1C con fluctuaciones de
ruido indicadas mediante \DeltaI. Una característica especial del
amplificador sensor de dicha invención es procesar esta corriente
fluctuante mediante un integrador, que produce de forma eficaz una
corriente promediada en el tiempo <I(t)>_{T} durante
un periodo predeterminado T. Un módulo A/D además convierte la
corriente analógica promediada en el tiempo detectada en un formato
digital que corresponde al estado de memoria de salida \Phi.
La Figura 1C ilustra una corriente de
fuente-drenaje I(t) con fluctuaciones de
ruido durante un periodo característico \Delta_{TI}, y el
<I(t)>_{T} promediado en el tiempo resultante según
procesa el amplificador sensor de la presente invención. La
corriente de fuente-drenaje detectada de una celda
de memoria I(t), posee un componente de ruido aleatorio
dependiente del tiempo \DeltaI. Cuando I(t) se promedia
durante un periodo de tiempo T suficiente, las fluctuaciones de
ruido se atenúan sustancialmente. El error que resulta en
<I(t)>_{T} viene dado por SI que es sustancialmente
inferior a \DeltaI. El periodo de tiempo suficiente de promediado
sería un periodo T sustancialmente mayor a un tiempo característico
T_{\Delta I} de la fluctuación de ruido. Esto T_{\Delta I}
puede definirse como un periodo en el que se ha atenuado lo
suficiente una cantidad predeterminada de fluctuación.
Por ejemplo, en muchos dispositivos EEPROM o
Flash EEPROM, el tiempo de fluctuación T_{\Delta I}
característico se ha estimado desde 10 nanosegundos a varios
cientos de nanosegundos. Por lo tanto, para estos dispositivos
típicos, el tiempo de promediado analógico o de integración T para
el dispositivo descrito en la patente estadounidense número
6.044.019 debería ser sustancialmente superior a T_{\Delta I}. En
contraposición a esto, la detección de la técnica anterior de
I(t) se detecta de forma más o menos "simultáneamente",
es decir, en un tiempo sustancialmente inferior a T_{\Delta I},
y produce el tipo de salida mostrado en la Figura 1B en función de
cuándo se realiza la medición. Cuando el tiempo de integración T es
esencialmente cero, como en el caso convencional de no promediado
en el tiempo, la fluctuación del ruido de una corriente detectada
la da \DeltaI. A medida que aumenta el promediado en el tiempo,
la fluctuación de ruido en la corriente detectada promediada
disminuye debido al aumento de las cancelaciones de fase.
Programar una celda de memoria se consigue
normalmente a través de un ciclo de programación/verificación, tal
como el descrito por ejemplo, en la patente estadounidense número
5.172.338. En el proceso típico, se pulsa una celda de memoria con
un voltaje de programación y se comprueba su valor para determinar
si ha alcanzado el estado objetivo deseado. De lo contrario, se
repite el proceso hasta que se verifique tal hecho. Puesto que esta
verificación es un proceso de detección, también resultará afectada
por el ruido. Esto se muestra en la Figura 2.
La Figura 2 muestra la influencia del ruido en
un proceso de programación/verificación. Tras cada pulso de
programación, se comprueba el estado de la celda a través de un
proceso de detección. En relación con la Figura 2, el estado del
parámetro medido, I(t), después de dicho pulso, se muestra
como el valor I(t) 201 que incluye un componente de ruido.
Cuando el estado de la celda reflejado por 201 está por debajo del
valor objetivo, vuelve a aplicarse impulsos a la celda, tal y como
indica el intervalo en blanco, a lo que le sigue una nueva
detección 202. A medida que el estado de la celda se aproxima al
valor objetivo, el componente de ruido puede conducir a una
verificación errónea.
Cuando el estado de la celda está próximo al
valor objetivo, los picos en el parámetro debidos al ruido pueden
sobrepasar el valor objetivo, incluso aunque la celda no esté aún
en el estado deseado. Esto se demuestra mediante 204, en donde los
picos en I(t) cruzan el valor objetivo incluso aunque su
valor promedio, <I(t)> , no esté aún en el valor
objetivo. Si la lectura de verificación se realiza en uno de dichos
valores pico de 204, la celda podría verificar incorrectamente en
lugar de continuar hacia el estado más preciso representado por
205.
Al detectar el estado de una celda, como parte
de una operación de verificación o como operación de lectura, para
obtener un valor preciso de su estado mediante los métodos
descritos anteriormente es necesario que el periodo de lectura T
sea largo en relación con el tiempo característico T_{\Delta I}
de la fluctuación del ruido. Esta técnica puede presentar una serie
de deficiencias. En función de cúan largo sea el tiempo
característico, podrá ser necesario un periodo de lectura
excesivamente largo en comparación con las otras operaciones de la
memoria, lo cual podría tener como resultado la correspondiente
pérdida inaceptable de velocidad de lectura. La presente invención
usa un tiempo de detección corto, pero repite el proceso diversas
veces en una lectura determinada, promediando las múltiples
detecciones para obtener el estado de la celda. Para ruido con un
componente con un tiempo característico largo, las múltiples
detecciones cortas pueden requerir un tiempo combinado inferior al
necesario para la lectura única de la integración analógica.
Asimismo, puesto que se leen simultáneamente un gran número de
celdas de memoria, existen límites prácticos en la integración de
circuitos analógicos usados en la técnica de integración.
Otra limitación de la técnica de integración es
que el valor <I(t)> puede desviarse debido a eventos
de gran ruido de duración muy corta. Tales eventos de duración
corta pueden aislarse en una lectura sencilla del método de
detección múltiple y a continuación pueden eliminarse junto con
otros valores periféricos cuando se computa el promedio.
Adicionalmente, puesto que el valor de cada una de las celdas
detectadas se determina por separado un número de veces, los
valores pueden procesarse en una serie de formas adicionales aún no
disponibles para la técnica de integración.
Más especialmente, los elementos de
almacenamiento se leen múltiples veces y los resultados se acumulan
y se promedian digitalmente para cada elemento de almacenamiento.
De este modo se reducen los efectos del ruido en los circuitos, así
como otros transitorios que pueden afectar adversamente la calidad
de la lectura. A continuación se describen diversos modos de
aplicación. En un modo de aplicación, se realiza una lectura
completa y transferencia de los datos del dispositivo de
almacenamiento al dispositivo controlador para cada iteración,
realizando el controlador el promediado. Alternativamente, el
dispositivo puede efectuar una lectura completa de los datos para
cada iteración, pero siendo el dispositivo de almacenamiento quien
realiza el promediado digital y sin que se produzca transferencia
al controlador hasta que se envían los resultados finales. En
lugar de realizar una lectura completa de cada iteración, la
memoria puede realizar una lectura completa inicial, seguida de una
serie de relecturas más rápidas que aprovechan la información de
estado ya establecida para evitar una lectura completa, con algún
algoritmo inteligente para guiar el estado en el que se detecta el
elemento de almacenamiento. Estas técnicas pueden usarse como modo
normal de funcionamiento, o bien pueden invocarse en estado de
excepción, en función de las características del sistema. Una forma
similar de promediar la señal puede utilizarse durante la fase de
verificación de la programación. Un modo de aplicación de esta
técnica usaría un esquema de detección de picos. En este escenario,
se realizan diversas comprobaciones de verificación en el estado
objetivo antes de decidir si el elemento de almacenamiento ha
alcanzado el estado final. Si falla una porción determinada de la
verificación, el elemento de almacenamiento se programa más. A
medida que se reduce la cantidad de ruido, esta técnica permite al
sistema almacenar más estados por elemento de almacenamiento en
comparación con cuando el ruido y otros transitorios son un factor
significativo.
Las dos técnicas de lectura, el promediado
digital de múltiples lecturas y el tiempo de integración ampliado
para el promediado analógico, deben considerarse complementarias.
Su efectividad relativa depende de la frecuencia característica del
ruido. Puesto que el ruido puede proceder de una serie de fuentes
diferentes cada una con frecuencias características diferentes, la
utilización de la primera, de la segunda o de ambas técnicas
dependerá de las condiciones de funcionamiento del dispositivo. Por
ejemplo, si el ruido está formado por un componente de alta
frecuencia y un componente de baja frecuencia, el tiempo de
integración para cada una de las operaciones de detección
individuales podría ser lo suficientemente largo para integrar
eficazmente los componentes de alta frecuencia, mientras que
podrían usarse las múltiples lecturas de la presente invención para
reducir el efecto del componente de baja frecuencia. Tanto la
longitud del intervalo de integración como el número de relecturas
pueden ajustarse según las características de frecuencia del ruido.
Pueden ajustarse mediante parámetros durante la comprobación y
almacenarse en el sistema.
Una técnica de lectura adicional que puede
combinarse con estas otras técnicas se describe en una patente
estaodunidense pendiente de publicación titulada "Noise Reduction
Technique For Transistors and Small Devices Utilizing an Episodic
Agitation" de Nima Mokhlesi, Daniel C. Guterman, y Geoff
Gongwer, presentada simultáneamente con la presente solicitud. Esta
solicitud describe técnicas adecuadas cuando el ruido tiene un
componente con un comportamiento bimodal.
El estado de un elemento de almacenamiento puede
determinarse usando una serie de diferentes parámetros. En los
ejemplos anteriores, la determinación del nivel de carga almacenada
de una celda puede realizarse mediante detección de corriente,
cuando se detecta la magnitud de su conducción, mediante
condiciones de polarización fijas. Alternativamente, dicha
determinación puede realizarse a través de un voltaje de detección
umbral, cuando se detecta el inicio de dicha conducción mediante
diversas condiciones de polarización de la puerta de dirección.
Estos métodos representan un par de los enfoques más estándar.
Alternativamente, la determinación puede
realizarse dinámicamente haciendo que la tensión de control
determinada de la celda controle la tasa de descarga de un nodo de
detección mantenido dinámicamente (por ejemplo, mediante un
condensador precargado). Al detectar el momento que debe alcanzarse
un nivel de descarga determinado, se determina el nivel de carga
almacenada. En este caso, el parámetro indicativo del estado de la
celda es una hora. Este enfoque se describe en la patente
estadounidense número 6.222.762, y en la solicitud de patente
estadounidense titulada "Sense Amplifier for Multilevel
Non-Volatile Integrated Memory Devices". Otra
técnica alternativa determina el estado de los elementos de
almacenamiento usando la frecuencia como parámetro, un enfoque
descrito en la patente estadounidense número 6.044.019.
Los enfoques de detección actuales se
desarrollan más completamente en la patente estadounidense
5.172.338 y en la solicitud de patente estadounidense con número de
serie 08/910.947, que puede emplearse con los diversos modos de
aplicación descritos a continuación. Sin embargo, la mayoría de lo
expuesto a continuación usa el enfoque de detección de voltaje
umbral, V_{th}, (llamado alternativamente margen de voltaje)
puesto que así se mejora la resolución de detección, se conserva la
corriente y, en consecuencia, la potencia, asociada con operaciones
de lectura en masa paralelas y reduce la vulnerabilidad a la
resistencia elevada de la línea de bits. El enfoque de detección
V_{th}, o margen de voltaje, se desarrolla íntegramente en la
patente estadounidense número 6.22.762. Otra técnica de detección
de voltaje, es el control del voltaje en la fuente para comprobar
un voltaje de drenaje fijo como respuesta a un voltaje de puerta
determinado, es la técnica de seguimiento de fuente descrita, por
ejemplo, en la solicitud de patente estadounidense con número de
serie 09/671.793.
La detección real en una técnica de margen de
voltaje puede realizarse de diversas formas, por ejemplo,
comparando secuencialmente el voltaje umbral de una celda con cada
uno de los valores de referencia asociados. En el caso de celdas
de estado múltiple, puede ser más eficaz aprovechar una búsqueda
binaria condicional de datos celda a celda como se describe en la
patente estadounidense número 6.222.762 mencionada anteriormente,
que, por ejemplo, puede determinar en paralelo el V_{th} de cada
una de las celdas detectadas en una resolución de uno de dieciséis
a través de una operación de detección secuencial de cuatro pasos.
La cantidad de resolución necesaria para la detección se discute en
la solicitud de patente estadounidense con núm. de serie
09/671.793. Como es habitual, el grado de resolución usado es a
menudo un intercambio entre una mayor resolución, lo cual tiene
como resultado más "bits" potenciales más allá de la
resolución mínima necesaria de 4 bits de los modos de aplicación de
ejemplo (por ej., para su uso para mejorar la fiabilidad de la
memoria) y el coste asociado con más área, para detectar y almacenar
dichos bits adicionales, así como más tiempo consumido, debido a
los pasos de detección adicionales de la búsqueda binaria de dichos
bits adicionales y debido a la transferencia de dicha información
adicional.
Debe tenerse en cuenta que no todo el tiempo
añadido para la detección y procesamiento adicional, o posiblemente
para un mayor tiempo de integración, deba reflejarse directamente
en la velocidad del dispositivo, puesto que el dispositivo puede
ejecutar muchas de dichas operaciones en paralelo. Por ejemplo, si
un proceso de lectura normal requiere una operación de lectura de
11 pasos con 3 ms por paso, la presente invención puede añadir una
media docena adicional, o pasos de lectura final y potencialmente
duplicar el tiempo de integración si se ha producido algún
componente de ruido en el intervalo de 1 ms. De este modo se
ralentizará el tiempo de lectura nominal de una celda determinada,
pero se ofrecerá una mayor densidad de almacenamiento. El aumento
del paralelismo podría reducir el efecto de este aumento en el
tiempo de lectura de una sola celda. Técnicas para aumentar la
cantidad de paralelismo en memorias no volátiles se describen en la
solicitud de patente estadounidense con núm. de serie 09/766.436,
presentada el 19 de enero de 2001. A pesar de que aumentar el
número de operaciones realizadas en paralelo a menudo crea ruido,
las presentes técnicas también serán aplicables a la reducción de
dicho ruido.
Para extraer los datos almacenados en las celdas
de memoria, estos datos deben estar escritos y almacenados con la
suficiente fidelidad. En consecuencia, para lograr dicha fidelidad,
es importante minimizar los efectos del ruido en las partes de
verificación de la operación de programación así como en la
operación de lectura real cuando el estado de la celda se convierte
en un valor de datos.
La Figura 3 es un diagrama de bloque esquemático
del funcionamiento de la presente invención según un modo de
aplicación de ejemplo. El voltaje de puerta de la celda 301 se
ajusta y se precargan sus líneas de bits. Durante la porción de
integración de la fase de lectura, el voltaje V(t) (incluido
el componente de ruido) se suministra a un sensor amplificador SA
310 con un convertidor analógico a digital A- D 311. El sensor
amplificador SA 310 convierte este voltaje en un estado de datos de
salida \Phi_{i}. El funcionamiento del sensor amplificador
puede ser el descrito en la solicitud de patente estadounidense con
núm. de serie 09/671.793, por ejemplo. Según se describe en dicha
memoria, el nivel de voltaje se detecta con una resolución de
2^{7}=128 estados que se utilizarán para discriminar las celdas
que almacenan 4 ó 5 bits por celda. La celda se lee varias veces,
cada vez produciendo un estado de datos \Phi_{i}. Debido al
ruido y al uso de un tiempo de integración más corto que el tiempo
característico del ruido, el \Phi_{i} se producirá con una
propagación como la mostrada en la Figura 1B.
Entonces se promedian los estados de datos
\Phi_{i}. Esto puede realizarse a través de una serie de formas
diferentes, como se describe a continuación, con un modo de
aplicación de ejemplo sencillo mostrado en la Figura 3. El circuito
de promediado AVE 320 está formado por un acumulador \Sigma_{i}
321 y un divisor 323. Por ejemplo, el estado de datos puede medirse
ocho veces, el resultado acumularse en 321 para producir
\Phi_{i} \Sigma^{B}_{i-1}, y el divisor 323
puede ser un registro de desplazamiento, que cuando se desplaza
tres veces dividirá la suma entre ocho. El resultado \Phi de AVE
320 es el valor de lectura promedio, en este ejemplo un medio
simple.
Un sistema de memoria está formado normalmente
por uno o más chips de memoria, cada uno de los cuales contiene las
matrices reales de celdas de memoria, además de un chip
controlador, a pesar de que en un modo de aplicación de chip único,
la función del controlador puede integrarse en el mismo chip dentro
del cual está contenida la matriz. A pesar de que el circuito de
lectura SA 310 estará situado en el mismo chip que las celdas de
memoria, tanto la ubicación como el funcionamiento del circuito de
promediado AVE 320 puede tener una serie de modos de aplicación
diferentes. Más particularmente, exactamente cómo se forma el
promedio a partir de las lecturas individuales junto con el
circuito implicado en formar este compuesto, tiene una serie de
posibles variaciones. Por ejemplo, el circuito AVE 320 de la Figura
3 puede colocarse totalmente en el mismo circuito que la celda de
memoria de modo que solo el valor compuesto vuelve a transferirse al
controlador al final del proceso. Alternativamente, cada uno de los
\Phi_{i} individuales puede ser transferido al controlador y
promediado allí.
A pesar de que variarán detalles específicos de
los modos de aplicación descritos a continuación, en las Figuras 4A
y 4B se muestran un par de situaciones genéricas. En ellas se
muestra un chip de memoria MEM 400 y un controlador CONT 460. El
chip de memoria contiene la matriz de celdas de memoria 401 a la
que se conecta el circuito decodificador de fila 411 y el circuito
del decodificador de columna 413. El circuito de lectura 421
contendrá los sensores amplificadores, tales como el bloque 310 de
la Figura 3, así como otros circuitos asociados. A continuación se
suministra el resultado del circuito de lectura a un conjunto de
registros 425, que pueden no estar presentes en función del modo de
aplicación. A pesar de que esta discusión se proporciona en su
mayoría en lo relativo a una sola celda, por lo general se leen en
paralelo un gran número de celdas y los registros y otros elementos
deben soportar dicho paralelismo. Los otros elementos del circuito
se suprimen para simplificar la descripción, pero se describen
íntegramente en las diversas patentes y solicitudes que se
incorporan a la presente memoria como referencia. Por ejemplo, los
circuitos también contienen circuitos de escritura que no se
muestran explícitamente, pero que puede considerarse que se
incorporan en el bloque de lectura u otros bloques, y un conjunto
de registros de programación que puede ser el mismo que el de los
registros de lectura 429. El bus 430 que conecta la porción de
memoria 400 al controlador 460 transferirá datos así como
direcciones, comandos, parámetros, etc., entre ambos. El
controlador 460 también tendrá todos los elementos habituales
además de los mostrados
específicamente.
específicamente.
La Figura 4A es un modo de aplicación en donde
las lecturas individuales, \Phi_{i} (o \Phi_{0} y
\Phi'_{i} según se describe a continuación), se envían desde
la memoria al controlador. Estos valores pueden almacenarse
temporalmente en el REG 425 de la MEM 400 antes de ser enviados al
controlador CONT 460. Una vez en el controlador, los valores pueden
almacenarse en el REG 461 u otra memoria y el promedio. formado en
el circuito AVE 463 antes de ser producidos en la unidad
principal. En el caso en el que AVE 463 acumula los valores a
medida que llegan de la MEM 400 para formar un promedio móvil, los
valores no necesitan ser almacenados individualmente en el REG
461.
La variación de la Figura 4B muestra un ejemplo
en el que el compuesto se forma en la memoria MEM 400 y a
continuación se pasa al controlador para ser producido en la unidad
principal. El modo de aplicación mostrado en la Figura 4B muestra
un circuito de promediado como la Figura 3, formado por un
acumulador 423 y un divisor 429 para formar una media a partir de
las lecturas individuales. Implantaciones alternativas del chip de
memoria tendrían otros elementos adicionales, tales como el
conjunto de registros 425 de la Figura 4A que no se muestran aquí
para poder almacenar individualmente los valores de
lectura.
lectura.
Para cualquiera de los modos de aplicación, el
proceso básico de lectura de la presente invención consiste en
suministrar simultáneamente una posición de parámetro p(t),
tal como un voltaje o corriente, indicativo del estado de la celda,
de modo que el circuito de lectura de cada una de las celdas del
conjunto se lee en paralelo. Para ello, las celdas que vayan a ser
leídas se desvían según la técnica de lectura utilizada. El
parámetro p(t) contendrá un componente de ruido. A
continuación, el circuito de lectura produce el estado de datos
\Phi_{i}(p) que corresponde a las condiciones de
polarización a partir de las cuales se forma el valor compuesto y
se produce desde el controlador.
En un primer conjunto de modos de aplicación,
todas las lecturas de las celdas son lecturas completas; es decir,
si la celda está siendo leída para una resolución de, por ejemplo,
7 bits, tal como la descrita en la solicitud de patente
estadounidense con núm. de serie 09/671.793 anteriormente indicada,
todas las lecturas son según esta resolución, incluyendo todos los
pasos necesarios para detectar la resolución completa, y se pasan
al controlador. Estos estados de datos pueden usarse para formar un
promedio móvil, tal como el mostrado en el circuito de promediado
320 de la Figura 3, o almacenados en otro lugar del controlador
del registro 461 de la Figura 4 u otra memoria de controlador. Al
almacenar todos los estados de datos medidos, el controlador puede
realizar una variedad más amplia de procesos de ponderación. Los
estados de datos pueden transferirse desde el circuito de memoria
400 a medida que se determinan, o bien pueden almacenarse
temporalmente en el registro 425 antes de su transferencia.
Para los valores medidos, puede formarse una
serie de compuestos diferentes en el controlador. Este compuesto
puede ser una media simple, una media ponderada o una media
ignorando los valores periféricos, o una raíz cuadrática media,
media basada en otras potencias y puede implantarse mediante
hardware, software o firmware. Una implantación basada en
controlador puede, en consecuencia, ser utilizada sin la
introducción de circuitos adicionales, además de la posibilidad de
aumentar la capacidad de almacenamiento. Este tipo de implantación
tiene como resultado la mayor cantidad de transferencia de
información entre el circuito de memoria y el circuito del
controlador de los modos de aplicación descritos, lo cual puede ser
un inconveniente, especialmente cuando el circuito de controlador y
el de memoria están en chips diferentes debido al aumento del
tráfico del bus. Una implantación basada puramente en un
dispositivo de memoria requeriría la introducción de circuitos
adicionales, que incluyen posiblemente capacidad suficiente de
registro para contener los resultados de las lecturas múltiples de
todas las celdas leídas en
paralelo.
paralelo.
Una forma de reducir la cantidad de información
transferida al controlador es realizar una lectura completa de la
celda, seguido por una serie de lecturas parciales, las cuales
requieren menos bits para indicar la desviación del valor de
referencia, en donde la desviación está limitada en el intervalo.
Esto tendría como resultado un valor base \Phi_{0} del estado
de los datos y un número de lecturas \Phi'_{i} que muestra la
fluctuación alrededor de dicho valor base debido al ruido. Como
este método produce menos datos a analizar (y posiblemente para
almacenar), de este modo se ahorra la cantidad de datos que deben
transferirse al controlador, si el promediado se realiza allí, y
posiblemente en el tiempo necesario para realizar el análisis,
incluso en los modos de aplicación en los que el promediado se
realiza en el chip de memoria. También reduce el tiempo total de
lectura.
Se tiene en cuenta el caso en donde el estado de
la celda de memoria se determina con una resolución de 7 bits. Si
la lectura usa una técnica de búsqueda binaria, requeriría al
menos siete lecturas en siete puntos de interrupción. En
consecuencia, una lectura completa del estado de la celda repetida
cuatro veces requeriría un mínimo de 28 operaciones de detección.
Si en lugar de ello se realiza una lectura completa de la celda a
determinar \Phi_{0} seguido por tres lecturas con una
resolución de 2 bits para determinar las fluctuaciones
\Phi'_{i} alrededor de la base \Phi_{0}, tendría como
resultado 13 operaciones de detección. En este ejemplo, el conjunto
(\Phi_{0}, \Phi'_{i}) contendrá la misma información a
medida que se realiza la lectura completa con menos de la mitad de
las operaciones de detección y menos de la mitad de los datos que
necesitan ser almacenados, transferidos, o ambas cosas. Por
supuesto, esto supone que la magnitud de las fluctuaciones se
encuentra dentro del intervalo medido alrededor del nivel base.
(Alternativamente, de este modo se eliminará el efecto de las
fluctuaciones de mayor magnitud debido a un efecto de saturación).
El intervalo y número de las lecturas parciales puede ajustarse
mediante parámetros del sistema y puede determinarse durante la
comprobación del chip y también pueden ser alterados en respuesta a
las condiciones del sistema. En un circuito ruidoso, puede ser
necesario ajustar las lecturas parciales para cubrir un intervalo
mayor. Para la mayoría de disposiciones, la mejor precisión para un
número determinado de operaciones de detección se obtiene al tener
el mismo número dedicado para determinar \Phi_{0} en relación con
\Phi'_{i}.
El ejemplo de búsqueda binaria puede requerir un
cambio de algoritmo, como se muestra en la representación
esquemática de la Figura 5 para una de las celdas leídas en
paralelo. Continuando con el ejemplo anterior, para leer el estado
de la celda con una resolución de 7 bits se podría usar puntos
interrupción del voltaje 128. La primera lectura de la serie
determinaría si la celda se encontraba en la mitad superior o en la
mitad inferior de la ventana de memoria, determinando la segunda
lectura si la celda se encuentra en la mitad superior o inferior de
la mitad determinada previamente, y así sucesivamente.
Considerando dicha búsqueda binaria, en donde,
por ejemplo, la celda está en el estado 64, justo encima del nivel
V64 de la Figura 5. Sin ruido en la celda o en otros elementos del
circuito, leería en el estado 64. En consecuencia, leería por
encima del punto de interrupción en la primera lectura (501 a) y
por debajo del punto de interrupción en cada lectura posterior
(501b-501g). Esto se representa en la Figura 5
mediante la flecha de dirección que indica si el voltaje de
medición está por encima o por debajo del punto de interrupción
usado para leer la celda. Con ruido, podría leer diversos estados
por encima o por debajo. Sin embargo, para determinar los efectos
de este ruido, con solo usar los últimos pocos pasos del algoritmo
(por ejemplo 501 f y 501 g) nunca podría capturarse un valor
inferior al primer punto de interrupción. Para reflejar debidamente
los efectos del ruido sería necesario una lectura completa de 7
pasos o un cambio de algoritmo. En consecuencia, una búsqueda
binaria completa puede usarse para determinar un nivel base
\Phi_{0} desde el algoritmo de lectura completa seguido por un
segundo modo para determinar el \Phi'_{i}. Las relecturas
múltiples más rápidas podrían usar una búsqueda binaria reducida
centrada alrededor de \Phi_{0} o pasar a un método no
binario.
La Figura 5 muestra el uso de una búsqueda
binaria reducida para las relecturas 511, 513 y 515. Una vez más,
las primeras siete lecturas (501a-501g) determinan
el estado base \Phi_{0} es el estado 64. Como una fluctuación
alrededor de este estado podría fácilmente estar por debajo del
primer nivel de lectura 501a, cualquier lectura posterior usando el
mismo algoritmo las pasaría por alto. En consecuencia, para
determinar con precisión el \Phi'_{i} que corresponde a este
\Phi_{0}, el algoritmo cambia a una búsqueda binaria reducida
centrada en el estado \Phi_{0}. La Figura 5 muestra tres
lecturas parciales (511, 513, 515) cada una formada por una
búsqueda binaria de 2 bits (a y b) centrada en el valor de la
lectura completa.
En este ejemplo, el primero de estos resultados
de lectura por encima del primer punto de interrupción (511a) y el
segundo punto de interrupción (511b), corresponden al estado 65.
Debe tenerse en cuenta que el resultado real puede estar muy por
encima de este estado debido a una gran fluctuación momentánea, se
produce un efecto de "saturación", en efecto limitar la
cantidad de dicho pico se contribuirá al promedio. El segundo
conjunto de relecturas proporciona un resultado por debajo del
primer punto de interrupción en 513a, seguido por una lectura por
encima del segundo punto de interrupción 513b, correspondiente al
estado 63. De forma similar, las relecturas de 515a y 515b regresan
al estado 64. Por lo tanto, en este ejemplo, la primera lectura de
\Phi_{0}, contiene 7 bits de datos para cada celda leída,
mientras que cada una de las relecturas contiene 2 bits de datos, o
un total de 6 bits para todo el proceso de relectura.
El proceso de la Figura 5 es un ejemplo de una
operación de lectura con un primer modo de lectura en donde la
celda se lee una vez y un segundo modo donde la celda se lee varias
veces. En otro ejemplo, en el que el parámetro medido de la celda
se compara en paralelo con un número de niveles de referencia, la
primera lectura podría ser un modo grueso donde se leen algunos
números de los bits más significativos, seguido por múltiples
lecturas para los bits restantes menos significativos. En otro
ejemplo, durante un proceso de verificación como el mostrado en la
Figura 2, durante las primeras etapas cuando la celda está lejos
del valor objetivo (tal como en 201), la celda podría ser leída
solo una vez, con un cambio de modo de lectura a medida que la
celda se aproxima al valor objetivo (tal como en 204 y 205). El uso
de una técnica de programación con un modo grueso y un modo fino
se describe en la solicitud de patente estadounidense número
09/793.370 presentada el 26 de febrero de 2001.
Volviendo a las Figuras 4a y 4b, como ya se ha
indicado en algunos de estos modos de aplicación, puede implantarse
transfiriendo todos los datos, las lecturas múltiples completas
\Phi_{i} (p) o el juego de lecturas parciales múltiples y una
lectura completa (\Phi_{0},\Phi'_{i}), al controlador 460 y
procesarlos allí, como se ilustra en la Figura 4a.
Alternativamente, el procesamiento puede realizarse en el chip de
memoria transfiriendo el resultado final al controlador y a
continuación hacia fuera del sistema, como se ilustra en la Figura
4b. El procesamiento también puede ser dividido, transfiriendo las
lecturas en un estado intermedio. Por ejemplo, las lecturas
parciales podrían acumularse en el chip de memoria y a continuación
transferirse al controlador para su división u otro
procesamiento
adicional.
adicional.
Otro ejemplo en el que el procesamiento está
divido entre el controlador y el chip de memoria implica el uso de
celdas de referencia o de rastreo, como las descritas en la
solicitud de patente estadounidense con núm. de serie 09/671.793
mencionada anteriormente. Esta solicitud describe un método en el
que el rastreo son celdas son leídas con una resolución de 7 bits
para poder determinar los puntos de interrupción y leer las celdas
de datos con una resolución de 4 bits. En este método, las celdas
de rastreo pueden leerse varias veces según la presente invención
con el compuesto formado en el controlador. Una vez determinados
los puntos de interrupción usando la presente invención, dichos
puntos de interrupción se vuelven a transferir al chip de memoria
para leer las celdas de datos.
Un método para determinar el compuesto de los
chips de memoria sería formar un promedio móvil en el circuito de
memoria 400. Puede tratarse de un acumulador y un circuito de
división que corresponde al bloque 320 de la Figura 3.
Alternativamente, los valores pueden acumularse en el elemento 423,
almacenarse en el registro 425 y a continuación transferirse al
controlador 460 para su ulterior procesamiento. Los valores de
lectura también pueden almacenarse individualmente en primer lugar
en el registro 425 y a continuación procesarse por otros circuitos
del chip de memoria como se ha descrito anteriormente en los
ejemplos de la implantación de controlador.
Implantar el promediado en el circuito de
memoria 400 tendrá por lo general el coste de introducir elementos
adicionales en el circuito que normalmente no están incluidos. En
función de cómo se forma la media u otro compuesto, puede incluir
alguna combinación de tamaño de registro aumentado para almacenar
valores de lectura, la introducción de circuitos adicionales,
circuitos de división, algún tipo de máquina de estado, etc. Por
otro lado, la reducción resultante de la cantidad de información
que es necesario transferir al controlador puede ser especialmente
ventajosa en el proceso de verificación del programa para mantener
una velocidad de escritura elevada.
Como se describe en la patente estadounidense
número 5.172.338 y otras referencias, un proceso de programación
típico de una celda de memoria de tipo de puerta flotante consiste
en aplicar impulsos a la celda para cambiar su estado, leer la
celda para determinar si ha alcanzado el estado deseado, terminar
la programación en tal caso y de lo contrario continuar con el
ciclo de lectura de pulsos hasta que se verifique que la celda ha
alcanzado el estado deseado. El efecto del ruido se discutió
anteriormente en relación con la Figura 2. Almacenar y recuperar
con precisión datos en una memoria requiere precisión tanto en el
proceso de escritura como en el de lectura. En relación con la
Figura 2, el valor medio de 205 corresponde al estado deseado; sin
embargo, si se detiene la programación en respuesta a valores pico
de 204 que suben por encima del valor objetivo, tendría como
resultado un estado con una media más baja verificada como
correcta. Este error puede estar formado por el ruido durante el
proceso de lectura. En consecuencia, reducir las consecuencias del
ruido en el proceso de verificación es igualmente importante a
medida que aumenta la densidad de los estados almacenados en una
celda.
Los diferentes aspectos de la presente invención
pueden incorporarse al proceso de verificación de una serie de
formas. La situación de verificación difiere del proceso de lectura
estándar en que el estado de la celda se mide contra un valor
objetivo dependiente de los datos del parámetro medido que debe
satisfacer el algoritmo de programación iterativo, en oposición a
la búsqueda a través de un espacio de parámetro de referencia para
determinar el estado actual de la celda. En otras palabras, no toda
la información y procesamiento están normalmente implicados en la
verificación de un programa, solo cuando han sobrepasado un valor
de referencia determinado. Un modo de aplicación de esta técnica
sería usar un esquema de detección de picos. Alternativamente,
pueden usarse otros medios de detección, tales como detección
promedia analógica filtrada. En este escenario, se realizan diversas
comprobaciones de verificación en el estado objetivo antes de
decidir si el elemento de almacenamiento ha alcanzado el estado
final. Si falla alguna porción determinada de la verificación, el
elemento de almacenamiento recibe programación adicional. Por
ejemplo, a pesar de que el estado correspondiente a 204 de la
Figura 2 posee picos que cruzarían dos veces el valor objetivo si
se realizaran lecturas múltiples más o menos instantáneas, leería
el valor objetivo no más de dos veces. En contraposición, el estado
que corresponde a 205 leería el valor objetivo una pluralidad
\hbox{de veces.}
Realizar múltiples lecturas cuando el estado de
la celda está lejos del estado deseado ralentizaría
significativamente el proceso por un pequeño aumento de la
eficacia. En consecuencia, en las primeras etapas del proceso de
programación cuando la celda está lejos del valor objetivo (por
ejemplo, 201 en la Figura 2), puede usarse el modo de lectura
sencilla estándar, con una transición hacia el segundo modo a
medida que se aproxima al estado objetivo. Esto sucederá tras una
serie de pulsos diferentes para diferentes estados, produciéndose la
transición antes en el caso de estados situados más abajo. Por
ejemplo, la transición podría dispararse con el primer nivel de
verificación con un pico que sobrepase el nivel objetivo (tal como
204 en la figura 2) o como parte de la transición desde un modo de
programación grueso a la programación fina según se describe en la
solicitud de patente estadounidense número 09/793.370.
Otro ejemplo del funcionamiento de dos modos es
el modo de lectura múltiple, invocado en estado de excepción,
usando el modo de lectura sencilla estándar de otro modo.
Otro ejemplo del funcionamiento de dos modos es
que cuando un primer modo usa una lectura sencilla estándar, un
segundo modo usa lecturas múltiples. El modo de lectura múltiple se
invoca en estado de excepción, utilizándose el modo de lectura
sencilla de otro modo. Por ejemplo, el código de corrección de
error (ECC) es el principal indicador de un problema, o excepción,
en el funcionamiento del dispositivo. Cuando el nivel de error de
la memoria sobrepasa un valor predeterminado (por ejemplo, superior
a un bit), puede invocarse la técnica de lectura múltiple.
Una situación de excepción también puede basarse
en la lectura del seguimiento o celdas de referencia. Según se ha
descrito anteriormente, en un modo de aplicación las celdas de
referencia se leen con una resolución de 7 bits, mientras que las
celdas de datos se leen solo con una resolución de 4 bits. En
consecuencia, las celdas de referencia serán más sensibles al
ruido. Al usar las celdas de referencia para supervisar el nivel de
ruido, puede colocarse un indicador para invocar la técnica de
lectura múltiple si se determina que el nivel de ruido sobrepasa el
umbral cuando se procesan las celdas de seguimiento.
A pesar de que la descripción se ha centrado en
modos de aplicación que usan un dispositivo de almacenamiento de la
carga, como una EEPROM de puerta flotante o celdas FLASH, para el
dispositivo de memoria, puede aplicarse a otros modos de aplicación
en las que este tipo de ruido sea un problema, lo cual incluye
medios magnéticos y ópticos. Esta invención puede tener una
aplicación de gran alcance en todos los tipos de detección de
dispositivo/transistor, lo cual incluye, sin por ello limitarse,
transistores sub 0,1 um, transistores de un electrón,
nanotransistores orgánicos/basados en carbono, y transistores
molecular. Por ejemplo, también pueden utilizarse celdas NROM y
MNOS, tal como las descritas respectivamente en la patente
estadounidense 5.768.192 de Eitan y en la patente estadounidense
número 4.630.086 de Sato et al., o celdas magnéticas RAM y
FRAM, tales como las descritas respectivamente en la patente
estadounidense 5.991.193 de Gallagher et al. y en la patente
estadounidense número 5.892.706 de Shimizu et al. Mediante
este enfoque, los sistemas que actualmente no son prácticos por el
ruido podrán convertirse en tecnologías viables. En estos otros
tipos de elementos de almacenamiento puede diferir la mecánica
particular para determinar el parámetro que refleja el estado del
elemento, por ejemplo las propiedades magnéticas pueden medirse en
un medio magnético y las propiedades ópticas pueden medirse en un
CD-ROM u otros medios ópticos, pero el proceso
posterior sigue los ejemplos anteriores.
Claims (11)
1. Un método para escribir un valor de datos
objetivo en una memoria no volátil, que comprende alterar el estado
de un elemento de almacenamiento (301) en la memoria no volátil;
verificar un parámetro (\Phi_{i}) indicativo del estado
resultante del elemento de almacenamiento en relación con un valor
de referencia indicativo del valor de los datos objetivo; y
determinar si alterar más el estado del elemento de almacenamiento
como respuesta a dicha verificación, que se caracteriza por
el hecho de que, al verificar el parámetro se realizan una
pluralidad de comparaciones para comparar el parámetro con el valor
de referencia indicativo del valor de los datos objetivo.
2. Un método según la Reivindicación 1, en donde
el elemento de almacenamiento (301) es un elemento de
almacenamiento de estado múltiple y un dispositivo de
almacenamiento de la carga.
3. Un método según la Reivindicación 2, en donde
el elemento de almacenamiento (301) es un elemento de
almacenamiento de estado múltiple y en donde las comparaciones se
realizan usando una técnica numérica digital.
4. Un método según la Reivindicación 2, en donde
el elemento de almacenamiento (301) es un elemento de
almacenamiento de estado múltiple y en donde las comparaciones
comprenden un método de detección de picos.
5. Un método según la Reivindicación 2, en donde
el elemento de almacenamiento (301) es un elemento de
almacenamiento de estado múltiple, y en donde las comparaciones
comprenden una detección promedia analógica filtrada.
6. Un método según cualquiera de las
Reivindicaciones anteriores, en donde el elemento de almacenamiento
(301) es un dispositivo de almacenamiento de la carga, y el
parámetro es una corriente; un voltaje; un tiempo; una frecuencia;
una propiedad magnética; y una propiedad óptica.
7. Un método según cualquiera de las
Reivindicaciones anteriores, en donde el elemento de almacenamiento
(301) es un elemento de almacenamiento de estado múltiple y en
donde la memoria no volátil comprende una unidad de memoria (400)
que contiene una pluralidad de elementos de almacenamiento entre
los que se incluye dicho elemento de almacenamiento y un
controlador (460), y en donde las comparaciones se realizan por un
controlador y la unidad de memoria.
8. Un método según cualquiera de las
Reivindicaciones anteriores, en donde el elemento de almacenamiento
(301) es uno formado por una pluralidad de elementos de
almacenamiento en los que se escriben datos simultáneamente.
9. Un método según cualquiera de las
Reivindicaciones anteriores, en donde realizar dicha pluralidad de
comparaciones independientes es un segundo modo de verificación y
en donde el método incluye además realizar uno o más ciclos de
verificación del programa usando un primer modo de verificación con
una sola comparación con un valor de referencia; alterar el estado
del elemento de almacenamiento (301); y verificar el estado
resultante usando un segundo modo de verificación.
10. Un método según la Reivindicación 9, en
donde la transición desde el primer al segundo modo de verificación
puede realizarse en respuesta al parámetro (\Phi_{i})
indicativo del estado resultante del elemento de almacenamiento
(301) que sobrepasa un nivel del primer modo de verificación.
11. Un método según la Reivindicación 9, en
donde la transición desde el primer al segundo modo de verificación
puede realizarse en respuesta a la transición desde un modo de
programación grueso a un modo de programación fino.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/052,888 US6621739B2 (en) | 2002-01-18 | 2002-01-18 | Reducing the effects of noise in non-volatile memories through multiple reads |
US52888 | 2002-01-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2262946T3 true ES2262946T3 (es) | 2006-12-01 |
Family
ID=21980564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES03250294T Expired - Lifetime ES2262946T3 (es) | 2002-01-18 | 2003-01-17 | Metodo para reducir los efectos del ruido en las memorias no volatiles por lectura multiple. |
Country Status (8)
Country | Link |
---|---|
US (5) | US6621739B2 (es) |
EP (1) | EP1329894B1 (es) |
JP (2) | JP4482278B2 (es) |
KR (1) | KR101092882B1 (es) |
CN (1) | CN1434456B (es) |
AT (1) | ATE330316T1 (es) |
DE (1) | DE60305987T2 (es) |
ES (1) | ES2262946T3 (es) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8422307B2 (en) | 2009-07-07 | 2013-04-16 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and read method using dynamically determined read voltages |
Families Citing this family (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6621739B2 (en) * | 2002-01-18 | 2003-09-16 | Sandisk Corporation | Reducing the effects of noise in non-volatile memories through multiple reads |
US7073103B2 (en) * | 2002-12-05 | 2006-07-04 | Sandisk Corporation | Smart verify for multi-state memories |
US7237074B2 (en) * | 2003-06-13 | 2007-06-26 | Sandisk Corporation | Tracking cells for a memory system |
US7372730B2 (en) * | 2004-01-26 | 2008-05-13 | Sandisk Corporation | Method of reading NAND memory to compensate for coupling between storage elements |
US7068539B2 (en) * | 2004-01-27 | 2006-06-27 | Sandisk Corporation | Charge packet metering for coarse/fine programming of non-volatile memory |
JP2008525924A (ja) | 2004-10-21 | 2008-07-17 | エヌエックスピー ビー ヴィ | 記憶装置及びリフレッシュ機構に基づく平均しきい値を発生する方法 |
US9099174B2 (en) | 2012-10-09 | 2015-08-04 | Micron Technology, Inc. | Drift acceleration in resistance variable memory |
CN103280239B (zh) | 2006-05-12 | 2016-04-06 | 苹果公司 | 存储设备中的失真估计和消除 |
KR101202537B1 (ko) * | 2006-05-12 | 2012-11-19 | 애플 인크. | 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩 |
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 |
US7840875B2 (en) * | 2006-05-15 | 2010-11-23 | Sandisk Corporation | Convolutional coding methods for nonvolatile memory |
US20070266296A1 (en) * | 2006-05-15 | 2007-11-15 | Conley Kevin M | Nonvolatile Memory with Convolutional Coding |
US7495953B2 (en) * | 2006-07-20 | 2009-02-24 | Sandisk Corporation | System for configuring compensation |
US7522454B2 (en) * | 2006-07-20 | 2009-04-21 | Sandisk Corporation | Compensating for coupling based on sensing a neighbor using coupling |
US7506113B2 (en) * | 2006-07-20 | 2009-03-17 | Sandisk Corporation | Method for configuring compensation |
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 |
US7885119B2 (en) * | 2006-07-20 | 2011-02-08 | Sandisk Corporation | Compensating for coupling during programming |
WO2008026203A2 (en) | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
US7805663B2 (en) * | 2006-09-28 | 2010-09-28 | Sandisk Corporation | Methods of adapting operation of nonvolatile memory |
US20080092015A1 (en) * | 2006-09-28 | 2008-04-17 | Yigal Brandman | Nonvolatile memory with adaptive operation |
US7818653B2 (en) * | 2006-09-28 | 2010-10-19 | Sandisk Corporation | Methods of soft-input soft-output decoding for nonvolatile memory |
US7904783B2 (en) * | 2006-09-28 | 2011-03-08 | Sandisk Corporation | Soft-input soft-output decoder for nonvolatile memory |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
WO2008053473A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Memory cell readout using successive approximation |
US7904780B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of modulating error correction coding |
US7558109B2 (en) * | 2006-11-03 | 2009-07-07 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
US8001441B2 (en) * | 2006-11-03 | 2011-08-16 | Sandisk Technologies Inc. | Nonvolatile memory with modulated error correction coding |
US7904788B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of varying read threshold voltage in nonvolatile memory |
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 |
US7593263B2 (en) | 2006-12-17 | 2009-09-22 | Anobit Technologies Ltd. | Memory device with reduced reading latency |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7978541B2 (en) * | 2007-01-02 | 2011-07-12 | Marvell World Trade Ltd. | High speed interface for multi-level memory |
US7480184B2 (en) * | 2007-01-07 | 2009-01-20 | International Business Machines Corporation | Maximum likelihood statistical method of operations for multi-bit semiconductor memory |
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 |
WO2008111058A2 (en) | 2007-03-12 | 2008-09-18 | Anobit Technologies Ltd. | Adaptive estimation of memory cell read thresholds |
US7904793B2 (en) | 2007-03-29 | 2011-03-08 | Sandisk Corporation | Method for decoding data in non-volatile storage using reliability metrics based on multiple reads |
US7797480B2 (en) * | 2007-03-29 | 2010-09-14 | Sandisk Corporation | Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics |
US7966550B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Soft bit data transmission for error correction control in non-volatile memory |
WO2008121577A1 (en) * | 2007-03-31 | 2008-10-09 | Sandisk Corporation | Soft bit data transmission for error correction control in non-volatile memory |
US7975209B2 (en) * | 2007-03-31 | 2011-07-05 | Sandisk Technologies Inc. | Non-volatile memory with guided simulated annealing error correction control |
US7966546B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Non-volatile memory with soft bit data transmission for error correction control |
US7971127B2 (en) * | 2007-03-31 | 2011-06-28 | Sandisk Technologies Inc. | Guided simulated annealing in non-volatile memory error correction control |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US7599224B2 (en) * | 2007-07-03 | 2009-10-06 | Sandisk Corporation | Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7508715B2 (en) * | 2007-07-03 | 2009-03-24 | Sandisk Corporation | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
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 |
US7778093B2 (en) * | 2007-08-08 | 2010-08-17 | Mediatek Inc. | Memory control circuit capable of dynamically adjusting deglitch windows, and related method |
US8174905B2 (en) | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
WO2009037697A2 (en) | 2007-09-20 | 2009-03-26 | Densbits Technologies Ltd. | Improved 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 |
US7710781B2 (en) * | 2007-09-25 | 2010-05-04 | Intel Corporation | Data storage and processing algorithm for placement of multi-level flash cell (MLC) VT |
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 |
WO2009053961A2 (en) | 2007-10-25 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for multiple coding rates in flash devices |
KR101509836B1 (ko) | 2007-11-13 | 2015-04-06 | 애플 인크. | 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택 |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
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 |
US8453022B2 (en) | 2007-12-05 | 2013-05-28 | Densbits Technologies Ltd. | Apparatus and methods for generating row-specific reading thresholds in flash memory |
WO2009072105A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications |
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 |
US8359516B2 (en) | 2007-12-12 | 2013-01-22 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
WO2009078006A2 (en) | 2007-12-18 | 2009-06-25 | Densbits Technologies Ltd. | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith |
US8085586B2 (en) | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
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 |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8972472B2 (en) | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
US7808836B2 (en) * | 2008-04-29 | 2010-10-05 | Sandisk Il Ltd. | Non-volatile memory with adaptive setting of state voltage levels |
US7808819B2 (en) * | 2008-04-29 | 2010-10-05 | Sandisk Il Ltd. | Method for adaptive setting of state voltage levels in non-volatile memory |
US8433980B2 (en) * | 2008-06-23 | 2013-04-30 | Sandisk Il Ltd. | Fast, low-power reading of data in a flash memory |
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 |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | 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 |
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 |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
US7929338B2 (en) * | 2009-02-24 | 2011-04-19 | International Business Machines Corporation | Memory reading method for resistance drift mitigation |
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 |
KR101574208B1 (ko) * | 2009-03-31 | 2015-12-07 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그리고 그것의 동작 방법 |
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 |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
KR20100120991A (ko) * | 2009-05-07 | 2010-11-17 | 삼성전자주식회사 | 이레이저 조작을 수행하는 메모리 시스템 및 그것의 읽기 방법 |
US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
KR101586046B1 (ko) | 2009-05-26 | 2016-01-18 | 삼성전자주식회사 | 저장 장치 및 그것의 읽기 방법 |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
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 |
TWI446350B (zh) * | 2009-12-08 | 2014-07-21 | Silicon Motion Inc | 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器 |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
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 |
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 |
US9104610B2 (en) | 2010-04-06 | 2015-08-11 | 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 |
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 |
US8416624B2 (en) | 2010-05-21 | 2013-04-09 | SanDisk Technologies, Inc. | Erase and programming techniques to reduce the widening of state distributions in non-volatile memories |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8510639B2 (en) | 2010-07-01 | 2013-08-13 | 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 |
US20120008414A1 (en) | 2010-07-06 | 2012-01-12 | Michael Katz | 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 |
KR20120011642A (ko) * | 2010-07-29 | 2012-02-08 | 삼성전자주식회사 | 기준 셀을 포함하는 불휘발성 메모리 장치 및 그것의 기준 전류 설정 방법 |
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 |
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 |
US8374031B2 (en) | 2010-09-29 | 2013-02-12 | SanDisk Technologies, Inc. | Techniques for the fast settling of word lines in NAND flash memory |
US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
KR101177458B1 (ko) * | 2010-11-08 | 2012-08-27 | 숭실대학교산학협력단 | 플래시 메모리 장치에서 발생하는 커플링 잡음 전압 산출 장치 및 방법 |
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 |
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 |
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 |
US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
US9372792B1 (en) | 2011-05-12 | 2016-06-21 | 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 |
US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
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 |
US8553468B2 (en) | 2011-09-21 | 2013-10-08 | Densbits Technologies Ltd. | System and method for managing erase operations in a non-volatile memory |
US8737132B2 (en) | 2012-01-06 | 2014-05-27 | Sandisk Technologies Inc. | Charge cycling by equalizing the source and bit line levels between pulses during no-verify write operations for NAND flash memory |
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 |
WO2013147811A1 (en) * | 2012-03-29 | 2013-10-03 | Intel Corporation | Method and system to obtain state confidence data using multistrobe read of a non-volatile memory |
US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
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 |
JP5586666B2 (ja) | 2012-08-01 | 2014-09-10 | 力晶科技股▲ふん▼有限公司 | 不揮発性半導体記憶装置とその読み出し方法 |
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 |
US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
US9129711B2 (en) | 2013-02-28 | 2015-09-08 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
JP2014175033A (ja) * | 2013-03-12 | 2014-09-22 | Toshiba Corp | 半導体記憶装置 |
US9190159B2 (en) | 2013-03-15 | 2015-11-17 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
US9390779B2 (en) | 2013-03-15 | 2016-07-12 | Qualcomm Incorporated | System and method of sensing a memory cell |
US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
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 |
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 |
DE102014002369B4 (de) * | 2014-02-18 | 2020-03-05 | Giesecke+Devrient Mobile Security Gmbh | Speicherprogrammierung in einem Sicherheitsmodul |
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 |
US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
US9443606B2 (en) | 2014-10-28 | 2016-09-13 | Sandisk Technologies Llc | Word line dependent two strobe sensing mode for nonvolatile storage elements |
US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
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 |
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 |
KR102435027B1 (ko) | 2015-11-09 | 2022-08-23 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 읽기 방법 |
KR102459077B1 (ko) | 2016-01-12 | 2022-10-27 | 삼성전자주식회사 | 비선형 필터링 방식을 사용하는 메모리 시스템 및 그것의 읽기 방법 |
US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
US9666259B1 (en) | 2016-04-12 | 2017-05-30 | Qualcomm Incorporated | Dual mode sensing scheme |
US10268575B2 (en) | 2017-01-18 | 2019-04-23 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and memory system including the same |
US10304550B1 (en) | 2017-11-29 | 2019-05-28 | Sandisk Technologies Llc | Sense amplifier with negative threshold sensing for non-volatile memory |
US10643695B1 (en) | 2019-01-10 | 2020-05-05 | Sandisk Technologies Llc | Concurrent multi-state program verify for non-volatile memory |
US11107535B2 (en) | 2019-09-10 | 2021-08-31 | Adesto Technologies Corporation | Memory device with adaptive noise and voltage suppression during read-while-write operations |
US11024392B1 (en) | 2019-12-23 | 2021-06-01 | Sandisk Technologies Llc | Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory |
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 (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5955071A (ja) | 1982-09-24 | 1984-03-29 | Hitachi Micro Comput Eng Ltd | 不揮発性半導体装置 |
US5095344A (en) * | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
JP2765930B2 (ja) * | 1989-03-29 | 1998-06-18 | 株式会社日立製作所 | 情報記録媒体およびトラッキング方法 |
US5172338B1 (en) | 1989-04-13 | 1997-07-08 | Sandisk Corp | Multi-state eeprom read and write circuits and techniques |
DE69033438T2 (de) | 1989-04-13 | 2000-07-06 | Sandisk Corp., Santa Clara | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
DE69031276T2 (de) * | 1989-06-12 | 1998-01-15 | Toshiba Kawasaki Kk | Halbleiterspeicheranordnung |
JPH0457294A (ja) * | 1990-06-22 | 1992-02-25 | Ricoh Co Ltd | プログラム可能な不揮発性半導体メモリ装置 |
KR960002006B1 (ko) * | 1991-03-12 | 1996-02-09 | 가부시끼가이샤 도시바 | 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치 |
US5438573A (en) | 1991-09-13 | 1995-08-01 | Sundisk Corporation | Flash EEPROM array data and header file structure |
JPH0589646A (ja) * | 1991-09-27 | 1993-04-09 | Sony Corp | データ再生装置 |
TW261687B (es) | 1991-11-26 | 1995-11-01 | Hitachi Seisakusyo Kk | |
US6222762B1 (en) | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US5712180A (en) | 1992-01-14 | 1998-01-27 | Sundisk Corporation | EEPROM with split gate source side injection |
JP2856621B2 (ja) | 1993-02-24 | 1999-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
US5404485A (en) | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5603001A (en) | 1994-05-09 | 1997-02-11 | Kabushiki Kaisha Toshiba | Semiconductor disk system having a plurality of flash memories |
US5539690A (en) * | 1994-06-02 | 1996-07-23 | Intel Corporation | Write verify schemes for flash memory with multilevel cells |
US5798964A (en) | 1994-08-29 | 1998-08-25 | Toshiba Corporation | FRAM, FRAM card, and card system using the same |
KR100566464B1 (ko) * | 1995-01-31 | 2006-03-31 | 가부시끼가이샤 히다치 세이사꾸쇼 | 반도체 메모리 장치 |
US6353554B1 (en) * | 1995-02-27 | 2002-03-05 | Btg International Inc. | Memory apparatus including programmable non-volatile multi-bit memory cell, and apparatus and method for demarcating memory states of the cell |
US6081878A (en) | 1997-03-31 | 2000-06-27 | Lexar Media, Inc. | Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices |
JP3140960B2 (ja) | 1996-04-05 | 2001-03-05 | 富士通株式会社 | モデム信号送信装置及びモデム信号送信方法並びにモデム信号受信装置及びモデム信号受信方法並びにモデム信号送受信システム及びモデム信号送受信方法 |
JP3180669B2 (ja) * | 1996-06-03 | 2001-06-25 | 日本電気株式会社 | 不揮発性半導体メモリおよびその書き込み方法 |
US5724284A (en) * | 1996-06-24 | 1998-03-03 | Advanced Micro Devices, Inc. | Multiple bits-per-cell flash shift register page buffer |
US5768192A (en) | 1996-07-23 | 1998-06-16 | Saifun Semiconductors, Ltd. | Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping |
US5787484A (en) | 1996-08-08 | 1998-07-28 | Micron Technology, Inc. | System and method which compares data preread from memory cells to data to be written to the cells |
US6002982A (en) * | 1996-11-01 | 1999-12-14 | Fry; William R. | Sports computer with GPS receiver and performance tracking capabilities |
US5890192A (en) | 1996-11-05 | 1999-03-30 | Sandisk Corporation | Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM |
US5717632A (en) * | 1996-11-27 | 1998-02-10 | Advanced Micro Devices, Inc. | Apparatus and method for multiple-level storage in non-volatile memories |
US5991193A (en) * | 1997-12-02 | 1999-11-23 | International Business Machines Corporation | Voltage biasing for magnetic ram with magnetic tunnel memory cells |
JPH11214640A (ja) * | 1998-01-28 | 1999-08-06 | Hitachi Ltd | 半導体記憶素子、半導体記憶装置とその制御方法 |
US6208542B1 (en) * | 1998-06-30 | 2001-03-27 | Sandisk Corporation | Techniques for storing digital data in an analog or multilevel memory |
US6044019A (en) | 1998-10-23 | 2000-03-28 | Sandisk Corporation | Non-volatile memory with improved sensing and method therefor |
US6103573A (en) | 1999-06-30 | 2000-08-15 | Sandisk Corporation | Processing techniques for making a dual floating gate EEPROM cell array |
JP2001067884A (ja) * | 1999-08-31 | 2001-03-16 | Hitachi Ltd | 不揮発性半導体記憶装置 |
KR100308132B1 (ko) * | 1999-10-07 | 2001-11-02 | 김영환 | 비휘발성 메모리소자와 그의 셀어레이 및 그의 데이타 센싱방법 |
US6188615B1 (en) * | 1999-10-29 | 2001-02-13 | Hewlett-Packard Company | MRAM device including digital sense amplifiers |
US6246933B1 (en) * | 1999-11-04 | 2001-06-12 | BAGUé ADOLFO VAEZA | Traffic accident data recorder and traffic accident reproduction system and method |
TW587252B (en) | 2000-01-18 | 2004-05-11 | Hitachi Ltd | Semiconductor memory device and data processing device |
US6215705B1 (en) * | 2000-02-10 | 2001-04-10 | Advanced Micro Devices, Inc. | Simultaneous program, program-verify scheme |
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 |
JP2001273778A (ja) * | 2000-03-27 | 2001-10-05 | Seiko Epson Corp | メモリデバイスおよびその製造方法、並びにメモリデバイス記録方法 |
JP2002008380A (ja) * | 2000-06-21 | 2002-01-11 | Hitachi Ltd | 多値メモリ |
KR100365644B1 (ko) * | 2000-06-28 | 2002-12-26 | 삼성전자 주식회사 | 멀티비트 불휘발성 메모리 장치 |
JP3828376B2 (ja) * | 2001-05-07 | 2006-10-04 | 株式会社東芝 | 記憶システム |
US6621739B2 (en) * | 2002-01-18 | 2003-09-16 | Sandisk Corporation | Reducing the effects of noise in non-volatile memories through multiple reads |
US6916359B2 (en) * | 2002-04-25 | 2005-07-12 | The Boc Group, Inc. | Ozone production processes |
JP2005235287A (ja) * | 2004-02-19 | 2005-09-02 | Nec Electronics Corp | 不揮発性半導体記憶装置のプログラミング方法、プログラミング装置、及び、不揮発性半導体記憶装置 |
US7130222B1 (en) * | 2005-09-26 | 2006-10-31 | Macronix International Co., Ltd. | Nonvolatile memory with program while program verify |
-
2002
- 2002-01-18 US US10/052,888 patent/US6621739B2/en not_active Expired - Lifetime
-
2003
- 2003-01-10 KR KR1020030001616A patent/KR101092882B1/ko not_active IP Right Cessation
- 2003-01-17 CN CN031006965A patent/CN1434456B/zh not_active Expired - Fee Related
- 2003-01-17 AT AT03250294T patent/ATE330316T1/de not_active IP Right Cessation
- 2003-01-17 ES ES03250294T patent/ES2262946T3/es not_active Expired - Lifetime
- 2003-01-17 DE DE60305987T patent/DE60305987T2/de not_active Expired - Lifetime
- 2003-01-17 EP EP03250294A patent/EP1329894B1/en not_active Expired - Lifetime
- 2003-01-20 JP JP2003010561A patent/JP4482278B2/ja not_active Expired - Fee Related
- 2003-05-16 US US10/439,508 patent/US6785164B2/en not_active Expired - Lifetime
-
2004
- 2004-03-12 US US10/799,416 patent/US6952365B2/en not_active Expired - Fee Related
-
2005
- 2005-07-27 US US11/191,823 patent/US7177195B2/en not_active Expired - Lifetime
-
2007
- 2007-02-12 US US11/674,000 patent/US7848149B2/en not_active Expired - Fee Related
-
2010
- 2010-01-27 JP JP2010015232A patent/JP2010146722A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8422307B2 (en) | 2009-07-07 | 2013-04-16 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and read method using dynamically determined read voltages |
Also Published As
Publication number | Publication date |
---|---|
JP4482278B2 (ja) | 2010-06-16 |
JP2010146722A (ja) | 2010-07-01 |
KR101092882B1 (ko) | 2011-12-12 |
US6621739B2 (en) | 2003-09-16 |
DE60305987D1 (de) | 2006-07-27 |
ATE330316T1 (de) | 2006-07-15 |
KR20030063130A (ko) | 2003-07-28 |
US6952365B2 (en) | 2005-10-04 |
US7848149B2 (en) | 2010-12-07 |
CN1434456B (zh) | 2012-03-21 |
US6785164B2 (en) | 2004-08-31 |
US20030137878A1 (en) | 2003-07-24 |
US20040170058A1 (en) | 2004-09-02 |
JP2004005909A (ja) | 2004-01-08 |
US20030202403A1 (en) | 2003-10-30 |
US7177195B2 (en) | 2007-02-13 |
US20050259472A1 (en) | 2005-11-24 |
EP1329894B1 (en) | 2006-06-14 |
CN1434456A (zh) | 2003-08-06 |
DE60305987T2 (de) | 2007-02-15 |
EP1329894A1 (en) | 2003-07-23 |
US20070133279A1 (en) | 2007-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2262946T3 (es) | Metodo para reducir los efectos del ruido en las memorias no volatiles por lectura multiple. | |
US7643348B2 (en) | Predictive programming in non-volatile memory | |
US7768832B2 (en) | Analog read and write paths in a solid state memory device | |
US7305596B2 (en) | Nonvolatile memory and nonvolatile memory apparatus | |
TWI464737B (zh) | 以控制器效能需求為基礎之程式化 | |
US7813172B2 (en) | Nonvolatile memory with correlated multiple pass programming | |
US7551483B2 (en) | Non-volatile memory with predictive programming | |
EP2704012A1 (en) | Adaptive error correction for non-volatile memories | |
US7796435B2 (en) | Method for correlated multiple pass programming in nonvolatile memory | |
JP2010530595A (ja) | セル当たりのビットの変更を用いたメモリのプログラミング | |
KR20110027435A (ko) | 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 | |
CN112116936B (zh) | 用于执行存储器控制信号的动态芯片上校准的系统及方法 | |
US8189382B2 (en) | Read method for MLC | |
CN114155902A (zh) | 判断存储器系统读取电压的存储器装置及其方法 | |
US8750045B2 (en) | Experience count dependent program algorithm for flash memory | |
US7190621B2 (en) | Sensing scheme for a non-volatile semiconductor memory cell | |
JP5052070B2 (ja) | データ読み出し回路及びデータ読み出し方法 | |
US7894271B2 (en) | Sensing of memory cells in a solid state memory device by fixed discharge of a bit line |