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
Application number
ES03250294T
Other languages
English (en)
Inventor
Carlos J. Gonzalez
Daniel C. Guterman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Application granted granted Critical
Publication of ES2262946T3 publication Critical patent/ES2262946T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/106Data output latches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • G11C2013/0057Read 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.
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.
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.
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.
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.
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.
ES03250294T 2002-01-18 2003-01-17 Metodo para reducir los efectos del ruido en las memorias no volatiles por lectura multiple. Expired - Lifetime ES2262946T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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