ES2262014T3 - Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria. - Google Patents

Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria.

Info

Publication number
ES2262014T3
ES2262014T3 ES03794474T ES03794474T ES2262014T3 ES 2262014 T3 ES2262014 T3 ES 2262014T3 ES 03794474 T ES03794474 T ES 03794474T ES 03794474 T ES03794474 T ES 03794474T ES 2262014 T3 ES2262014 T3 ES 2262014T3
Authority
ES
Spain
Prior art keywords
levels
storage
data
row
load
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES03794474T
Other languages
English (en)
Inventor
Raul-Adrian Cernea
Khandker N. Quader
Yan Li
Jian Chen
Yupin Fong
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=31977713&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2262014(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by SanDisk Corp filed Critical SanDisk Corp
Application granted granted Critical
Publication of ES2262014T3 publication Critical patent/ES2262014T3/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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input 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/10Programming or data input 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Dram (AREA)

Abstract

Un método para operar una matriz de células de memoria no volátil que almacena datos como diferentes niveles de carga en elementos de almacenamiento de carga, en donde entre los grupos adyacentes de los elementos de almacenamiento de carga existe acoplamiento de campo: programar datos en un primer grupo (35) de los elementos de almacenamiento de la carga con un primer juego de niveles de almacenamiento (VL) junto con una indicación TB=L de que se ha usado el primer juego de niveles de almacenamiento, a continuación programar datos en un segundo grupo (39) de los elementos de almacenamiento de carga con el primer juego de niveles de almacenamiento junto con una indicación de que se ha usado el primer juego de niveles de almacenamiento, y a continuación aumentar los niveles de carga del primero (35) de los grupos de elementos de almacenamiento de carga desde el primer juego de niveles de almacenamiento hasta un segundo juego de niveles de almacenamiento y almacenar una indicación (TB=H) de que se ha usado el segundo juego de niveles de almacenamiento.

Description

Técnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de células de memoria.
La presente invención se refiere generalmente al ámbito de las memorias de datos, y más específicamente, a memorias del tipo que almacenan datos como niveles de carga electrónica, lo cual incluye sin limitarse a memorias flash eléctricamente programables y borrables de solo lectura (flash EEPROM) que utilizan puertas flotantes conductivas o material dieléctrico como elementos de almacenamiento de la carga.
Es común en los productos comerciales actuales que cada elemento de almacenamiento de una matriz flash EEPROM almacene un solo bit de datos funcionando en un modo binario, en donde están definidos como niveles de almacenamiento dos intervalos de niveles umbral de los transistores del elemento de almacenamiento. Los niveles umbral de los transistores corresponden a intervalos de niveles de carga almacenados en sus elementos de almacenamiento. Además de comprimir el tamaño de las matrices de memoria, la tendencia es aumentar más la densidad del almacenamiento de datos de dichas matrices de memoria almacenando más de un bit de datos en cada transistor como elemento de almacenamiento. Esto se consigue definiendo más de dos niveles umbral como estados de almacenamiento para cada transistor de almacenamiento, ahora se incluyen cuatro de dichos estados (2 bits de datos por elemento de almacenamiento) en los productos comerciales. Se contemplan más estados de almacenamiento, tales como 16 estados (4 bits de datos) por elemento de almacenamiento. Cada transistor de memoria del elemento de almacenamiento posee un intervalo total determinado (ventada) de voltajes umbral en los que puede accionarse y dicho intervalo está dividido entre el número de estados definidos para él y de márgenes entre los estados lo cual permite su clara diferenciación.
A medida que aumenta el número de estados almacenados en cada célula de memoria, disminuye la tolerancia de cualquier cambio en el nivel de carga programado de los elementos de almacenamiento. Puesto que los intervalos de carga designados para cada estado de almacenamiento deben ser necesariamente más estrechos y deben colocarse más cerca entre sí a medida que aumenta el número de estados almacenados en cada elemento de almacenamiento de la célula de memoria, la programación debe realizarse con un mayor grado de precisión y se reduce el alcance de cualquier cambio de postprogramación en los niveles de carga almacenada que pueda tolerarse, ya se trate de cambios reales o aparentes. Pueden crearse alteraciones reales en la carga almacenada en una célula al programar y leer dicha célula, y durante la lectura, programación y borrado de otras células que tengan el mismo grado de acoplamiento eléctrico con dicha célula, tales como las presentes en la misma columna o hilera, y las que comparten una línea o nodo.
Se producen cambios aparentes en los niveles de carga almacenados debido al acoplamiento de campo entre los elementos de almacenamiento. El grado de este acoplamiento aumenta necesariamente a medida que disminuyen los espacios entre los elementos de almacenamiento de la célula de memoria, lo cual ocurre como resultado de mejoras en las técnicas de fabricación de circuitos integrados. El problema ocurre de forma más pronunciada entre dos grupos de células adyacentes que han sido programadas en momentos diferentes. Un grupo de células se programa para añadir un nivel de carga a sus elementos de almacenamiento que corresponden a un juego de datos. Tras programar el segundo grupo de células con un segundo juego de datos, a menudo parece que los niveles de carga realizan la lectura desde los elementos de almacenamiento del primer grupo de células a menudo son diferentes de los programados debido al efecto de la carga del segundo grupo de elementos de almacenamiento que están siendo acoplados capacitativamente con el primero. Esto se conoce como el efecto de Yupin y se describe en la patente estadounidense núm. 5.867.429. Esta patente describe el aislamiento físico de los dos grupos de elementos de almacenamiento entre sí, o bien la consideración del efecto de la carga en el segundo grupo de elementos de almacenamiento al leer los del primer grupo.
La invención se dirige hacia un método para accionar una matriz de células de memoria no volátil que almacenan datos como diferentes niveles de carga en elementos de almacenamiento de carga de las mismas, en donde grupos adyacentes de los elementos de almacenamiento de carga presentan acoplamiento de campo entre sí. El método comprende programar datos en un primer grupo de los elementos de almacenamiento de carga con un primer juego de niveles de carga junto con una indicación de que se ha usado el primer juego de niveles de almacenamiento, a continuación programar datos en un segundo grupo de elementos de almacenamiento de carga con el primer juego de niveles de almacenamiento junto con una indicación de que se ha usado el primer juego de niveles de almacenamiento, y a continuación aumentar los niveles de carga del primero de los grupos de elementos de almacenamiento de carga desde el primer juego de niveles de almacenamiento hasta un segundo juego de niveles de almacenamiento y almacenar una indicación (TB = H) de que se ha usado el segundo juego de niveles de almacenamiento.
La invención también proporciona un sistema de memoria, que comprende una matriz de hileras y columnas de células de memoria no volátil reprogramables que incluye elementos de almacenamiento de carga que almacena individualmente niveles de carga indicadores de los datos en ellas almacenados, en donde existe un grado de acoplamiento de campo entre los elementos de almacenamiento de carga de las células de memoria de hileras adyacentes y programar circuitos que programan sucesivamente células de memoria de hileras individuales de una unidad de hileras haciendo que las células de memoria de una primera hilera se programen y verifiquen como que poseen niveles intermedios de carga de almacenamiento de datos junto con una indicación de que se han utilizado los niveles intermedios, haciendo que a continuación las células de memoria de una segunda hilera adyacente a la primera hilera se programen y verifiquen como que poseen niveles de carga de almacenamiento de datos intermedios junto a una indicación de que se han usado los niveles intermedios, haciendo que a continuación las células de memoria de la primera hilera se programen y verifiquen como que poseen niveles finales de carga de almacenamiento de datos junto con una indicación de que se han usado los niveles finales, haciendo que a continuación las células de memoria de la tercera hilera adyacente a la segunda hilera se programen y verifiquen como que poseen niveles de carga de almacenamiento de datos intermedios junto con la indicación de que se han usado los niveles intermedios, haciendo que a continuación, las células de memoria de la segunda hilera se programen y verifiquen como que poseen niveles finales de carga de almacenamiento de datos junto con una indicación de que se han usado los niveles finales y que repite este proceso hilera por hilera hasta que se han programado todas las hileras de la unidad en los niveles de carga de almacenamiento de datos finales.
Según una solicitud de un aspecto de la presente invención, para superar los efectos en cada una de las hileras adyacentes de células de memoria programadas, hileras adyacentes se programan en dos pasos. En un primer paso, se programa una primera hilera de células de memoria con datos en un primer juego intermedio de niveles umbral. Tras programar de forma similar una segunda hilera de células de memoria adyacente, se incrementan los niveles umbral de la primera hilera de células de memoria hasta un segundo juego final de niveles umbral. Puesto que la programación final de la primera hilera se produce bajo la influencia de la programación inicial de la segunda hilera, los datos leídos desde la primera hilera no está afectada adversamente por los niveles programados inicialmente en la segunda hilera. Una vez programada una tercera hilera adyacente a la segunda hilera en el primer juego de niveles umbral, se incrementan los niveles umbral de la segunda hilera hasta el juego final. El proceso se continúa para la programación de cualquier hilera adicional de células de memoria con acoplamiento de campo entre hileras adyacentes.
Según una solicitud de otro aspecto de la presente invención, una identificación del juego de niveles en el que un grupo, tal como una hilera, de células, programada se almacena de forma que pueda leerse junto al grupo programado de células. Un grupo de células de memoria se lee inicialmente con voltajes de lectura aplicados escogidos para leer de forma óptima las células programadas con el más común de los juegos de niveles. Sin embargo, si la identificación leída inicialmente muestra que las células fueron programadas con el otro juego de niveles, el grupo células se vuelve a leer con voltajes de lectura aplicados que corresponden al otro juego de niveles.
La presente invención puede implantarse en diversos tipos de matrices de células flash EEPROM. Una matriz NOR de un diseño posee sus células de memoria conectadas entre las líneas de bits (columna) adyacentes y puertas de control conectadas a las líneas de palabras (hileras). Las células individuales contienen un transistor como elemento de almacenamiento, con o sin un transistor exclusivo formado en serie con él, o dos transistores como elemento de almacenamiento separados por un solo transistor exclusivo. Ejemplos de dichas matrices y su uso en sistemas de almacenamiento se proporcionan en las siguientes patentes estadounidenses y solicitudes pendientes de tramitación de SanDisk Corporation, patentes núm. 5.095.344, 5.172.338, 5.602.987, 5.663.901, 5.430.859, 5.657.332, 5.712.180, 5.890.192, 6.091.633, 6.103.573 y 6.151.248 y núm. de serie de solicitud 09/505,555, presentada el 17 de febrero de 2000, núm. de serie 09/667,344, presentada el 22 de septiembre de 2000, núm. de serie 09/925,102, presentada el 8 de agosto de 2001, y núm. de serie 09/925,134, presentada el 8 de agosto de 2001.
Una matriz NAND de un diseño posee un número de células de memoria, tal como 8, 16 ó incluso 32, conectadas en una secuencia en serie entre una línea de bits y un potencial de referencia a través de transistores exclusivos en ambos extremos. Las líneas de palabras están conectadas con puertas de control de células en diferentes secuencias en serie. Ejemplos relevantes de dichas matrices y su funcionamiento se describen en las siguientes patentes estadounidenses y solicitudes de patente, incorporadas a la presente memoria en su totalidad mediante esta referencia: Patentes núm. 5.570.315, 5.774.397 y 6.046.935, y la solicitud con núm. de serie 09/893,277, presentada el 27 de junio de 2001. Concretamente, dos bits de datos de diferentes páginas lógicas de datos entrantes se programan en uno de los cuatro estados de las células individuales en dos pasos, primero programando una célula en un estado según un bit de datos y a continuación, si los datos lo requieren, reprogramar dicha célula en otro de dichos estados según el segundo bit de datos entrantes.
Las patentes citadas anteriormente y las solicitudes de patente describen sistemas flash EEPROM que usan puertas flotantes conductivas como elementos de almacenamiento de la célula de memoria. Alternativamente, los sistemas flash EEPROM con células de memoria que emplean material dieléctrico de captura de carga se operan sustancialmente del mismo modo. Ejemplos de esto se incluyen en la solicitud de patente con núm. de serie 10/002, 696, presentada el 31 de octubre de 2001 por Harari et al., titulada "Multi-State Non-volatile Integrated Circuit Memory Systems that Employ Dielectric Storage Elements", el acoplamiento de campo entre elementos de almacenamiento dieléctrico de células de memoria adyacentes también puede afectar a la precisión de los datos leídos desde dichos sistemas de memoria.
Aspectos, características y ventajas adicionales de la presente invención pueden extraerse de la siguiente descripción detallada de realizaciones ejemplares de la misma, cuya descripción deberá leerse en relación con los dibujos que acompañan a la presente memoria.
La Figura 1 ilustra esquemáticamente un ejemplo de sistema de memoria y operación en el que puede implantarse la presente invención;
La Figura 2 es un ejemplo, en vista en planta de elementos de almacenamiento de células de memoria de la matriz de células de memoria del sistema de la Figura 1;
La Figura 3 incluye curvas de distribuciones programadas de nivel de la célula de memoria que ilustran el efecto de acoplamiento de campo entre dos grupos adyacentes de células de memoria programadas en secuencia;
Las Figuras 4A-4C son curvas que ilustran principios de la presente invención y los resultados de su aplicación según un ejemplo;
La Figura 5 ilustra un ejemplo de secuencia de programación de hileras de un tipo determinado de matriz de memoria;
La Figura 6 describe una serie de operaciones para programar datos hilera por hilera en la secuencia de la Figura 5;
La Figura 7 describe una serie de operaciones para leer datos de hileras de una memoria que han sido programadas según el método de la Figura 6, y
La Figura 8 ilustra un ejemplo detallado de la estructura de datos de una página.
Con el objeto de explicar la presente invención y ejemplificar sus implantaciones, en la Figura 1 se muestra un diagrama general de la interrelación de los componentes principales de un ejemplo de sistema de memoria en masa. Un componente principal de este sistema es una memoria 11, tal como una matriz de células de memoria formada sobre un sustrato semiconductor, en donde uno o más bits de datos se almacenan en las células de memoria individuales almacenando uno de los dos o más niveles de carga en elementos de almacenamiento individuales de las células de memoria. Una flash EEPROM no volátil es un tipo común
\hbox{de
memoria para este  tipo de sistemas, y se utiliza en este
ejemplo.}
Un segundo componente principal del sistema de memoria de la Figura 1 es un controlador 13. El controlador 13 se comunica a través de un bus 15 a un ordenador principal u otro sistema que utiliza el sistema de memoria para almacenar datos. El controlador 13 también controla el funcionamiento de la matriz de células de memoria 11 para escribir datos proporcionados por el sistema central, leer datos solicitados por el sistema central y realizar varias funciones de administración interna para el funcionamiento de la memoria. El controlador 13 normalmente incluye un microprocesador de uso general, con memoria de software no volátil asociada, varios circuitos lógicos y otros similares. Pueden incluirse una o más máquinas de estado y otros circuitos de control como parte de la matriz para controlar el funcionamiento de rutinas específicas, en cual caso, se reducen las funciones del controlador del sistema.
La matriz de células de memoria 11 se dirige mediante el controlador 13 a través de descodificadores de dirección 17. Los descodificadores 17 aplican los voltajes correctos a las líneas de puerta y de bits de la matriz 11 para programar datos en, leer datos de, o borrar un grupo de células de memoria dirigidas con el controlador 13. Circuitos adicionales 19 incluyen dispositivos de programación que controlan los voltajes aplicados a elementos de la matriz que dependen de los datos que están siendo programados en un grupo dirigido de células. Los circuitos 19 también incluyen amplificadores de detección y otros circuitos necesarios para leer datos de un grupo dirigido de células de memoria. En las patentes y solicitudes de patente identificadas en la sección de Antecedentes anterior se describen varias formas específicas de los circuitos 17 y 19. Datos que vayan a programarse en la matriz, o datos leídos recientemente de la matriz, se almacenan normalmente en una memoria de buffer 21 del controlador 13. El controlador 13 también contiene normalmente varios registros para almacenar temporalmente datos de comandos y estado, entre otros.
La matriz 11 está dividida en un gran número de BLOQUES 0 - N de células de memoria. Como es común en los sistemas flash EEPROM el bloque es la unidad de borrado. Es decir, cada bloque contiene el número mínimo de células de memoria que se borran conjuntamente. Cada bloque está dividido normalmente en un número de páginas, como se ilustra en la Figura 1. Aunque una página es una unidad de programación, las páginas individuales pueden dividirse en segmentos. Un segmento puede contener el número mínimo de células en las que se escribe a la vez como operación básica de programación, almacenando tan solo un bit de datos. Normalmente se almacenan una o más páginas de datos en una hilera de células de memoria. Normalmente se almacena un sector de datos en cada página, a pesar de que pueden incluirse múltiples sectores. Tal y como se muestra en la Figura 1, un sector incluye datos del usuario y datos de cabecera. Datos de cabecera incluyen normalmente un ECC que ha sido calculado a partir de los datos de usuario del sector. Una porción 23 del controlador 13 calcula el ECC cuando se programan los datos en la matriz 11 y también lo comprueba cuando se leen los datos desde la matriz 11. Alternativamente, los ECC y/o otros datos de cabecera se almacenan en páginas diferentes, o incluso en bloques diferentes, de los datos de usuarios a los que pertenecen. Los datos de cabecera incluyen uno o más bits TB (bits de rastreo) que designan el nivel de verificación del umbral con el que se ha programado la página de datos. A continuación se describen los usos del campo TB.
Un sector de datos de usuario es normalmente de 512 bytes, lo cual corresponde al tamaño de un sector en unidades de discos magnéticos. Los datos de cabecera son normalmente 16-20 bytes adicionales. Comúnmente, se incluye un sector de datos en cada página, aunque dos o más sectores pueden formar una página. Un gran número de páginas forman un bloque, desde 8 páginas, por ejemplo, hasta 32, 64 o más páginas. El número de bloques se escoge para proporcionar una capacidad de almacenamiento de datos deseada para el sistema de memoria. La matriz 11 está dividida normalmente en unas cuantas submatrices (no mostradas), cada una de las cuales contiene una proporción de los bloques, que funcionan de forma un tanto independiente entre sí para aumentar el grado de paralelismo en la ejecución de diversas operaciones de memoria. Un ejemplo del uso de múltiples submatrices se describe en la patente estadounidense núm. 5.890.192, la cual se incorpora a la presente memoria a modo de referencia.
La Figura 2 muestra una disposición de los elementos de almacenamiento (recuadros) en una matriz de células de memoria para ilustrar el acoplamiento capacitativo (líneas discontinuas) entre hileras de ellas. Considerando que un elemento de almacenamiento 25 de una hilera 35, por ejemplo, presenta acoplamiento de campo con los elementos de almacenamiento de las hileras adyacentes 37 y 39. El elemento de almacenamiento 25 está más íntimamente acoplado a los elementos de almacenamiento 27 y 31 debido a su proximidad, pero también posee un grado inferior de acoplamiento con los elementos de almacenamiento 26, 28, 32 y 30 que están más alejados. La cantidad de acoplamiento entre dos elementos de almacenamiento depende de la distancia existente entre ellos, de la constante dieléctrica del material aislante colocado entre ellos, de si existen superficies conductivas entre ellos, entre otros.
A pesar de que la Figura 2 ilustra solo acoplamiento de campo entre hileras de elementos de almacenamiento, dicho acoplamiento también se produce entre columnas de elementos de almacenamiento. Esto no se tiene en cuenta en los ejemplos descritos en la presente memoria, ya que, en estos ejemplos, los datos se programan en células de memoria en unidades de hileras individuales, se ha descubierto que el acoplamiento es la causa del cambio aparente en los niveles programados. Por ejemplo, si se programan datos como niveles de carga diferentes en los elementos de almacenamiento de la hilera 35, un cambio posterior en los niveles de carga en una o ambas de las hileras adyacentes 37 y 39 provocará un cambio en los niveles de carga aparente que son a continuación leídos desde los elementos de almacenamiento de la hilera 35. La cantidad de dicho cambio en el nivel de carga aparente leído desde un elemento de almacenamiento determinado de la hilera 35 depende del grado de acoplamiento con otros elementos de almacenamiento cuya carga cambió posteriormente de nivel y de la cantidad de dicha carga. Cuando el cambio posterior está provocado por la programación de datos en la hilera adyacente, las cantidades de los cambios que resultan son desconocidas a menos que se controlen los patrones de datos programados en cada hilera y se realicen cálculos de su efecto como parte de la operación de lectura.
La Figura 3 muestra un ejemplo del efecto sobre un primer grupo de células de memoria, tal como una hilera de células de la programación posterior de un segundo grupo de células de memoria, tal como una hilera adyacente de células. En este ejemplo, se definen cuatro niveles de carga diferentes, para almacenar dos bits de datos en cada elemento de almacenamiento. Puesto que el nivel de carga almacenada en un elemento de carga cambia el voltaje umbral (VT) de su transistor de célula de memoria, el voltaje umbral se muestra en el eje horizontal de las curvas de la Figura 3. Las líneas continuas muestran las distribuciones del número de voltajes umbral de todas las células en una página inmediatamente después de ser programadas, antes de realizar ningún cambio en las páginas adyacentes. El eje vertical es el número de células en cada nivel umbral, las curvas poseen esencialmente una distribución gaussiana. Una curva 45 es la distribución de las células en el estado borrado, que, en este ejemplo, también se designa como un estado programado de los bits 11. Cuando se borra un bloque de células, las células se restablecen en el estado 11.
Cada célula de una página que está siendo programada en uno de los otros estados programados 47, 49, ó 51 posee electrones inyectados en su elemento de almacenamiento hasta que el umbral alcanza el estado que corresponde respectivamente a los datos 01, 00 ó 01 programados en la célula. Las técnicas de programación adecuadas se describen en otras patentes identificadas anteriormente en los Antecedentes. Concretamente, las células de una página que está siendo programada se programan en paralelo. Las programadas en el estado 10 se pulsan alternativamente con voltajes de programación y a continuación se verifica mediante el uso de un nivel umbral de verificación V10. Cuando se determina que una célula ha sido programada en un nivel umbral superior a V10, la programación se detiene en dicha célula pero continúa en otras células que aún no han alcanzado su nivel de verificación. Si se programa en 00, se usa un nivel de verificación V00 Si se programa en 01, se usa un nivel de verificación V01. El par de bits de datos concreto asignado a cada una de las distribuciones 45, 47, 49 y 51 puede ser diferente del mostrado en la Figura 3 e incluso puede dar vueltas durante el funcionamiento del sistema de memoria para igualar el desgaste de la matriz.
Es deseable mantener un margen suficiente entre los estados 45, 47, 49 y 51 para que pueda leerse sin ambigüedades el estado de cada célula. Cuando va a leerse una página de células programada tal como se ha descrito anteriormente, sus estados se comparan individualmente en relación con los niveles umbral de referencia dentro de los márgenes de dichos estados. Estos se muestran en el ejemplo de la Figura 3 como R10 (VT = 0), R00 y R01. Por supuesto, para poder usar totalmente una ventana de umbral disponible, puesto que se incluyen muchos estados diferentes, se muestran cuatro estados. Otro ejemplo es dieciséis estados. Un gran número de estados pueden ser resultado del ancho de las distribuciones que va estrechándose con la programación con incrementos de voltaje más pequeños en pulsos sucesivos aunque esto requiere más tiempo para realizar la programación. Por lo tanto, es deseable, solamente o junto con el estrechamiento de las distribuciones de células programadas, tomar medidas para reducir la necesidad de dichos grandes márgenes entre estados. Preferentemente, los márgenes grandes se mantienen normalmente para permitir que las distribuciones de células programadas cambien o se expandan como resultado de ciclos operativos repetitivos que se producen tras su programación, como la experiencia ha demostrado que sucede. Es altamente deseable reducir dicho cambio y expansión para poder reducir la anchura de los márgenes entre estados.
La expansión de las distribuciones que se produce como resultado de la programación posterior de una hilera adyacente de células se muestra en las líneas discontinuas de la Figura 3. Incluso cuando se mantienen márgenes significativos durante la programación inicial de una hilera de células, estos márgenes pueden estrecharse significativamente cuando las distribuciones de expanden como resultado de la programación posterior de un hilera de células adyacente. Si solo unas cuantas de las células se expanden desde abajo hasta arriba de los umbrales de lectura R10, R00 y/o R01, se producirán suficientes lecturas erróneas desbordar un ECC. En tal caso, los datos no pueden leerse con dichos umbrales, de modo que normalmente se designan como inválidos a menos se que tome alguna medida extraordinaria. Una técnica usada en el pasado para recuperar datos incluye volver leer la página simplemente moviendo los niveles umbral de lectura R10, R00 y/o R01 dentro de los márgenes para evitar el efecto de la expansión. Sin embargo, puesto que la expansión puede proceder de ambos lados de cada margen esto requiere que los márgenes se mantengan más anchos de lo que es normalmente deseable para evitar que se sobrepongan las distribuciones de estados adyacentes. Por lo tanto, es preferible adoptar otras medidas para mantener márgenes anchos entre los estados programados.
Las distribuciones programadas parecen expandirse de la forma mostrada en la Figura 3 cuando los datos posteriormente programados en la página adyacente son aleatorios; es decir, cuando el estado almacenado en cada elemento de almacenamiento puede ser cualquiera de los cuatro estados posibles. Por ejemplo, un elemento de almacenamiento programado en un nivel en el borde inferior de la distribución 47, se leerá como que tiene el mismo nivel en la distribución 47' si no cambia el nivel de carga de los elementos de almacenamiento adyacentes durante la posterior programación. Por otro lado, un elemento de almacenamiento programado inicialmente en un nivel en el borde superior de la distribución 47 podrá, si los elementos de almacenamiento adyacentes se programan posteriormente desde un estado de borrado 11 al estado superior 01, tener un nivel que se incremente en una cantidad \Delta. Los niveles de carga más elevados de los elementos de almacenamiento adyacentes están acoplados con el elemento de almacenamiento programado previamente cuyo nivel está siendo leído. Otras combinaciones de programación inicial y posterior de células adyacentes de la distribución 47 entra entre estos dos extremos, lo cual tiene como resultado la distribución aparente 47'. El extremo inferior de la distribución aparente 47' permanece en el mismo nivel pero su expansión aumenta \Delta.
Un ejemplo de una técnica de dos pasos para programar células de memoria de la matriz de las Figuras 2 y 3 se proporciona en las Figuras 4A, 4B y 4C. En la Figura 4A se muestran cuatro distribuciones umbral de estado 61, 62, 63 y 64, resultado de un primer paso de programación de un grupo, tal como una hilera. La distribución 61 es para el estado de borrado, que es también el estado programado 11. La curva 62 muestra la distribución de las células programadas en el estado 10 usando un nivel umbral de verificación VL10 durante la programación. De forma similar, la curva 63 representa la distribución de las células programadas en el estado 00 con un nivel de verificación VL00, y la curva 64 la distribución de las células programadas en el estado 01 con un nivel de verificación VL01. La programación se consigue de la forma típica descrita en las patentes y solicitudes de patente citadas anteriormente, particularmente pulsando de forma alternativa un conjunto de células que están siendo programadas en paralelo y a continuación leyendo (verificando) sus estados individualmente, terminando la programación de cada célula cuando se determina que se sobrepasa el nivel umbral de verificación del estado en el que está siendo programada. Las distribuciones 61, 62, 63 y 64 individualmente poseen un ancho determinado por la magnitud del aumento de nivel de cada pulso de programa desde el último. Las distribuciones 61, 62, 63 y 64 pueden ser las mismas que las distribuciones 45, 47, 49 y 51 de la Figura 3, con la salvedad de que las células representadas por la Figura 4A aún no están totalmente programadas, mientras que las representadas por la Figura 3 están totalmente programadas.
La Figura 4B muestra las distribuciones ampliadas de la Figura 4A que se producen en las células programadas cuando otro grupo, tal como una hilera, de células adyacentes físicamente se programan posteriormente con las mismas distribuciones. Las distribuciones 61, 62, 63 y 64 de la Figura 4A se expanden en las distribuciones 71, 72, 73 y 74 respectivas tras la programación del grupo adyacente de células cuyos elementos de almacenamiento presentan acoplamiento de campo con aquellos cuyos umbrales están representados en las Figuras 4A y 4B. La expansión se produce por una cantidad \Delta, según se ha descrito anteriormente en relación con la Figura 3 para las distribuciones respectivas 45', 47' 49' y 51'.
Tras programar los grupos de células adyacentes, lo cual tiene como resultado la expansión mostrada en la Figura 4B, el grupo de células programadas inicialmente vuelve a programarse con los mismos datos que antes pero con niveles de verificación más elevados. Los niveles de verificación VL- - usados en la programación inicial ilustrada en la Figura 4A son inferiores a los niveles de verificación VH- - usados en la reprogramación final del mismo grupo de células ilustrado en la Figura 4C. La diferencia puede ser, en una implantación específica, el umbral incremental \Delta, lo cual se muestra en la Figura 4C. Puesto que esta segunda programación final de un grupo de células se produce tras programar el primer nivel (VL- -) del grupo adyacente de células, el efecto de las células adyacentes a través del acoplamiento de campo eléctrico sobre el primer grupo se tiene en cuenta automáticamente durante el segundo paso de programación de la Figura 4C. Las células se programan en el segundo paso mientras existe el efecto de campo en las células adyacentes programadas posteriormente. El efecto en las distribuciones del primer grupo de células del último segundo paso de programación del grupo de células adyacentes es muy pequeño puesto que se aumentan los umbrales una pequeña cantidad en el segundo paso. También se apreciará que las distribuciones de la Figura 4C tras el segundo paso de programación se estrechan hasta ser el del primer paso de programación de la Figura 4A, asumiendo que se utilice en ambas el mismo cambio incremental de pulso de programación en el primer y segundo paso de programación de un grupo de células.
A pesar de que puede conseguirse mediante otras técnicas, el incremento del nivel de carga de las células del primer grupo durante el segundo paso de programación se efectúa preferiblemente reprogramando las células con los mismos datos pero usando los niveles umbral de verificación más elevados. Estos datos pueden permanecer en una memoria de buffer después del primer paso de programación hasta el segundo paso de programación. Pero puesto que esto requiere una memoria de buffer mayor de lo normal, por lo general no es deseable. Preferiblemente, los datos programados en un grupo de células con los niveles umbral más bajos VL- - se leen desde ese grupo tras programar inicialmente el grupo de células adyacente. Los datos leídos se reprograman en las mismas células pero con los niveles umbral VH- - más elevados.
En la Figura 4A se incluyen también ejemplos de niveles umbral de lectura para células que han sido programadas solo con el primer paso, y en la Figura 4C para las que han recibido ambos pasos de programación. En ambos casos, los umbrales de lectura están posicionados aproximadamente a medio camino en los márgenes entre las distribuciones adyacentes. En el caso de células programadas en el primer nivel (Figura 4A), los umbrales de lectura son RL10, RL00 y RL01 colocados aproximadamente a medio camino entre las distribuciones adyacentes. Tras la programación del segundo paso (Figura 4C), los umbrales leídos RH10, RH00 y RH01 se usan, lo cual corresponde a los de la Figura 4A pero son superiores en cierta cantidad umbral, en este caso \Delta, para poder permanecer aproximadamente a medio camino entre las distribuciones recolocadas.
Las técnicas de programación y lectura descritas pueden aplicarse ventajosamente a un sistema de memoria, tal como flash EEPROM, que posee las páginas dispuestas en hileras. Es decir, las técnicas se utilizan en una matriz de células de memoria en donde la unidad de programación incluye una o más hileras de células de memoria. Por ejemplo, el proceso puede explicarse en relación con la Figura 2. Los elementos de almacenamiento de la hilera 35 se programan con el primer paso, seguido por la programación de los elementos de almacenamiento de la hilera 37 con el segundo paso si ya habían sido programados con el primer paso. A continuación se programa la hilera 39 con el primer paso, seguido de la programación de la hilera 35 con el segundo paso. Las hileras adyacentes de elementos de almacenamiento de célula de memoria están programados de esta forma hacia atrás y hacia adelante de una matriz hasta que la unidad de datos que está siendo programada lo ha sido por completo. Esto es también el tema de la Figura 5, en donde se ilustra el proceso para programar las hileras 0 - 7. La última hilera que debe programarse se programa con el primer paso, dejando el segundo paso hasta una operación de programación posterior que comience con la siguiente hilera adyacente borrada de células de memoria. Una excepción a esto puede ser cuando la última hilera programada es también la última hilera del bloque. La última hilera del bloque puede programarse con un paso en los niveles umbral superiores VH- - Debido a que los bloques de células están normalmente aislados entre sí, no habrá otras hileras programadas posteriormente que tengan el suficiente acoplamiento de campo con la última hilera para que afecte a los valores leídos de la última hilera del bloque.
Puesto que los voltajes de lectura óptimos para una hilera dependen de si la hilera ha sido programa con un paso (Figura 4A) o con dos pasos (Figura 4C), el estado programado de una hilera se almacena durante la programación como bits de rastreo (TB). Este bit se almacena preferiblemente como parte de los datos de cabecera de la página programada de datos del usuario. Estos bits de rastreo se muestran en la Figura 1 como que se almacenan como parte de los datos de cabecera de la página en la misma hilera que los datos de usuario. Como parte del primer paso de programación, TB se ajusta en BAJO para indicar que la programación se ha producido con el juego más bajo de umbrales de verificación. Como parte del segundo paso de programación, TB se reescribe en ALTO. En el ejemplo de cuatro estados descrito, TB utiliza convenientemente dos bits: Para el primer paso TB = 11 (BAJO), el estado borrado de una célula y después del segundo paso, TB = 10 (ALTO), un estado programado más elevado de dicha célula. Esto permite que el TB de una página se actualice fácilmente como parte del segundo paso de programación mediante su programación adicional.
La lectura se produce normalmente con los voltajes de lectura más elevados (Figura 4C) puesto que casi todas las hileras están programadas con dos pasos. Pero como parte de esta operación inicial de lectura, también se lee el TB. Su valor se determina anteriormente en el proceso de lectura de la página. Si TB = BAJO, la página se relee con el juego más bajo de voltajes de lectura (Figura 4A). A pesar de que de este modo son necesarias dos lecturas de algunas hileras, el rendimiento de la memoria no resulta afectado significativamente puesto que normalmente será una proporción muy pequeña de las hileras de una matriz de memoria que permanezcan programadas con los niveles más bajos en un momento dado. Incluso a pesar de que una hilera programada con los niveles de verificación más bajos se esté leyendo con los niveles de lectura más elevados, no debería producirse ningún error en la lectura de sus bits de rastreo cuando se utiliza el estado de borrado 11 para indicar TB = BAJO.
El diagrama de flujo de la Figura 6 muestra la secuencia de pasos para programar una serie de hileras adyacentes (tal como la ilustrada en la Figura 5) en secuencia utilizando las técnicas descritas anteriormente. Se asume, por ejemplo, que todas las páginas de las hileras 0, 1 y 2 ya están programadas, las hileras 0 y 1 con dos pasos pero la hilera 2 solo con un paso. Un primer paso para programar hileras posteriores 3+ con datos es dirigir la hilera 3 como se indica en 91 de la Figura 6. Todas las páginas de la hilera 3 se programan a continuación con un primer paso (Figura 4A) con TB = BAJO, según se indica en 93. A continuación se dirige la hilera 2 inmediatamente anterior, según se indica en 95. A continuación se leen los datos de la hilera 2 anterior con los niveles de lectura bajos (Figura 4A), según se indica en 97, incluyendo su TB, según se indica en 99. Si TB = BAJO, como en este ejemplo, la lectura TB se actualiza a TB = ALTO, en 10. Los datos leídos se reprograman en la hilera 2 anterior, junto con su TB = ALTO, según se indica en 103. Esto completa un ciclo de programación de datos. Pero puesto que la mayoría de operaciones de programación de datos implica programar más páginas que las incluidas en una hilera, se determina en 105 si deben programarse hileras adicionales. En tal caso, se repite el proceso programando la siguiente hilera 4 borrada con un primer paso, a lo que le sigue el aumento de los niveles de carga de la hilera 5 reprogramando sus datos. Este ciclo continua por las hileras de la Figura 5, en donde los elementos de almacenamiento de células de memoria de las hileras adyacentes están acoplados capacitativamente entre sí en un nivel significativo.
En la Figura 7 se ilustra un proceso de lectura de datos de hileras programadas según la Figura 6. Se dirige una primera hilera que debe ser leída, según se indica en 107. A continuación, dicha hilera es leída con los voltajes de lectura más elevados (Figura 4C), según se indica en 109. Puesto que esta lectura también incluye la lectura del bit de rastreo, se determina en 111 si TB = BAJO o TB = ALTO. Si TB = BAJO, se vuelve a leer la hilera con los niveles de lectura más bajos (Figura 4A), según se indica en 113, a lo que le sigue el almacenamiento temporal de los datos leídos, en 115. Así se completa la lectura de una hilera. Pero puesto que la mayoría de operaciones de lectura tienen que realizarse en muchas hileras de forma secuencial, una pregunta 117 determina si deben leerse más hileras. En tal caso, se lee la siguiente hilera en orden, según se indica en 119 y el proceso regresa a 109.
En relación con la Figura 8, se describe un ejemplo de la estructura de datos de una página de células de memoria. Los datos de usuario 131 y los datos de cabecera 133 que pertenecen a los datos del usuario se almacenan de forma accesible para el usuario a través del controlador de memoria del dispositivo principal. Los datos de cabecera 133 incluyen un ECC calculado a partir de los datos del usuario, diversos indicadores, entre otros. Los datos de cabecera 135, tales como el recuento del número de veces que se ha borrado y reprogramado el bloque en el que se encuentra la página de la Figura 8, voltajes que deben usarse en la programación, lectura y borrado, entre otros, se oculta su acceso por el sistema central pero son utilizados por el controlador de memoria para operar el sistema de memoria. Asimismo almacenado en la región oculta se encuentran los bits TB y, normalmente, se incluyen células redundantes 137 para sustituir cualquier bit que falle en la región 131 de datos del usuario. Por lo tanto, el usuario no puede acceder a los bits TB desde un dispositivo central; en lugar de eso, los bits TB se escriben y leen mediante el controlador del sistema de memoria.

Claims (25)

1. Un método para operar una matriz de células de memoria no volátil que almacena datos como diferentes niveles de carga en elementos de almacenamiento de carga, en donde entre los grupos adyacentes de los elementos de almacenamiento de carga existe acoplamiento de campo:
programar datos en un primer grupo (35) de los elementos de almacenamiento de la carga con un primer juego de niveles de almacenamiento (VL) junto con una indicación TB=L de que se ha usado el primer juego de niveles de almacenamiento, a continuación programar datos en un segundo grupo (39) de los elementos de almacenamiento de carga con el primer juego de niveles de almacenamiento junto con una indicación de que se ha usado el primer juego de niveles de almacenamiento, y
a continuación aumentar los niveles de carga del primero (35) de los grupos de elementos de almacenamiento de carga desde el primer juego de niveles de almacenamiento hasta un segundo juego de niveles de almacenamiento y almacenar una indicación (TB=H) de que se ha usado el segundo juego de niveles de almacenamiento.
2. El método de la reivindicación 1, en donde los grupos adyacentes de elementos de almacenamiento de carga están colocados en hileras adyacentes de células de memoria.
3. El método de la reivindicación 1, en donde los elementos de almacenamiento de carga son puertas flotantes conductivas.
4. El método de la reivindicación 1, en donde el primer y el segundo juego de niveles de almacenamiento incluyen cada uno más de dos niveles de almacenamiento, de modo que almacenan más de un bit de datos en los elementos de almacenamiento individuales.
5. Un método para accionar una matriz de células de memoria con al menos un primer y un segundo grupo de células de memoria, en donde el primer y el segundo grupo poseen acoplamiento de campo eléctrico entre sí, que comprende:
Programar datos en el primer grupo (35) células de memoria con un primer juego de niveles de verificación de umbral (V2), incluyendo almacenar una indicación (TB=O) de que se ha utilizado el primer juego de niveles umbral,
a continuación programar datos en el segundo grupo (39) de células de memoria con el primer juego de niveles de verificación umbral, incluyendo el almacenamiento de una indicación (TB=L) de que se ha utilizado el primer juego de niveles umbral
a continuación leyendo los datos programados en el primer grupo (35) de células de memoria y dicha indicación con un primer juego de niveles de lectura (RL), y a continuación reprogramando los datos leídos en el primer grupo con un segundo juego de niveles umbral de verificación (VH), incluyendo el almacenamiento de una indicación (TB=H) de que se ha utilizado el segundo juego de niveles umbral, siendo el segundo juego de niveles umbral de verificación superior al primer juego de niveles umbral de verificación
en donde los datos pueden leerse desde el primer grupo con un segundo juego de niveles de lectura (RH) que es superior al segundo juego de niveles de lectura.
6. El método de la reivindicación 5, que comprende adicionalmente:
leer datos almacenados en el segundo grupo de células de memoria con el segundo juego de niveles de lectura, incluyendo la indicación de que el primer juego de niveles umbral ha sido utilizado durante la programación, y
en respuesta a la lectura de que se ha utilizado el primer juego de niveles umbral durante la programación, relectura de los datos almacenados en el segundo grupo de células de memoria con el primer juego de niveles de lectura.
7. El método de la reivindicación 6, en donde los grupos adyacentes de células de memoria se colocan en hileras adyacentes de las células de memoria.
8. El método de la reivindicación 6, en donde las células de memoria incluyen al menos un elemento de almacenamiento de la carga que se programa con los datos.
9. El método de la reivindicación 8, en donde los elementos de almacenamiento de carga son puertas flotantes conductivas.
10. El método de la reivindicación 6, en donde el primer y el segundo juego de niveles umbral de verificación incluyen más de dos niveles, de modo que pueden almacenar más de un bit de datos en las células de memoria individuales.
11. Un método para programar células de memoria no volátil de un tipo que almacenan datos como niveles de carga diferentes en elementos de almacenamiento de carga, en donde los elementos de almacenamiento de carga están dispuestos en, al menos, una primera, (37) segunda (35) y tercera (39) hilera en secuencia en una matriz de células con los elementos de almacenamiento de al menos dichas hileras colocados inmediatamente adyacentes entre sí y entre las que existe acoplamiento de campo, comprendiendo en el orden indicado:
programar los elementos de almacenamiento de carga de la segunda hilera (35) en los primeros niveles (VL) que son inferiores a los niveles de almacenamiento de datos, incrementar los niveles de carga de los elementos de almacenamiento de carga de la primera hilera (37) hasta menos de los niveles de almacenamiento de datos y hasta los niveles de almacenamiento de datos
programar los elementos de almacenamiento de carga de la tercera hilera (39) en los primeros niveles que son inferiores a los niveles de almacenamiento de datos, e incrementar los niveles de carga de los elementos de almacenamiento de carga de la segunda hilera (35) hasta menos de los niveles de almacenamiento de datos y hasta los niveles de almacenamiento de datos.
12. El método de la reivindicación 11, en donde el incremento de los niveles de carga de los elementos de almacenamiento de carga de la primera y de la segunda hilera incluye:
leer los datos almacenados en la primera o segunda hilera, y programar las células de memoria de la primera o segunda hilera con los datos leídos desde allí hasta los niveles de carga de almacenamiento de datos.
13. El método de la reivindicación 12, en donde incrementar los niveles de carga de los elementos de carga de la primera y segunda hilera se consigue sin borrar los datos almacenados en la primera o en la segunda hilera.
14. Un método para operar una matriz de células de memoria no volátil que almacena datos como diferentes niveles de carga en elementos de almacenamiento de la carga de ellas, en donde los elementos de almacenamiento de carga de grupos adyacentes se acoplan capacitativamente entre sí, comprendiendo:
programando inicialmente datos en grupos individuales de elementos de almacenamiento de la carga con un primer juego de niveles de almacenamiento junto con una indicación (TB=L) de que se ha usado el primer juego de niveles de almacenamiento, aumentando a continuación los niveles de carga de los grupos individuales de los elementos de almacenamiento de carga desde el primer juego de niveles de almacenamiento hasta un segundo juego de niveles de almacenamiento y almacenar una indicación (TB=H) de que se ha usado el segundo juego de niveles de almacenamiento, leyendo inicialmente los grupos individuales de elementos de almacenamiento de carga incluyendo dicha indicación con niveles de lectura (RH) que corresponden al uso del segundo juego de niveles de almacenamiento; y si la indicación (TB=L) lee inicialmente que se ha usado el primer juego de niveles de almacenamiento, releer los grupos individuales de elementos de almacenamiento de carga con niveles de lectura (RL) que corresponden al uso del primer juego de niveles de almacenamiento.
15. El método de la reivindicación 14, en donde incrementar los niveles de carga de los grupos individuales de elementos de almacenamiento de carga incluye:
leer los datos almacenados en los grupos individuales de elementos de almacenamiento de carga, y programar las células de memoria de los grupos individuales desde los que se han leído los datos.
16. El método de la reivindicación 14, en donde incrementar los niveles de carga de los grupos individuales de elementos de almacenamiento de carga incluye hacerlo sin borrar los datos almacenados en la primera o en la segunda hilera.
17. El método de la reivindicación 14, en donde los grupos adyacentes de elementos de almacenamiento de carga incluye hileras adyacentes de células de memoria.
18. El método de la reivindicación 14, en donde los elementos de almacenamiento de carga son puertas flotantes conductivas.
19. El método de la reivindicación 14, en donde el primer y el segundo juego de niveles de almacenamiento incluyen cada uno más de dos niveles de almacenamiento, de modo que almacenan más de un bit de datos en los elementos de almacenamiento individuales.
20. Un sistema de memoria, que comprende:
una matriz de hileras y columnas de células de memoria no volátil reprogramables que incluye elementos de almacenamiento de carga (25) que almacena individualmente niveles de carga indicadores de los datos en ellas almacenados, en donde existe un grado de acoplamiento de campo entre los elementos de almacenamiento de carga de las células de memoria de hileras adyacentes, y programar circuitos que programan sucesivamente células de memoria de hileras individuales (35, 37, 39) de una unidad de hileras haciendo que las células de memoria de una primera hilera (35) se programen y verifiquen como que poseen niveles intermedios de carga de almacenamiento de datos junto con una indicación de que se han utilizado los niveles intermedios, haciendo que a continuación las células de memoria de una segunda hilera (39) adyacente a la primera hilera se programen y verifiquen como que poseen niveles de carga de almacenamiento de datos intermedios junto a una indicación de que se han usado los niveles intermedios, haciendo que a continuación las células de memoria de la primera hilera (35) se programen y verifiquen como que poseen niveles finales de carga de almacenamiento de datos junto con una indicación de que se han usado los niveles finales, haciendo que a continuación las células de memoria de la tercera hilera (37) adyacente a la segunda hilera se programen y verifiquen como que poseen niveles de carga de almacenamiento de datos intermedios junto con la indicación de que se han usado los niveles intermedios, haciendo que a continuación, las células de memoria de la segunda hilera (39) se programen y verifiquen como que poseen niveles finales de carga de almacenamiento de datos junto con una indicación de que se han usado los niveles finales y que repite este proceso hilera por hilera hasta que se han programado todas las hileras de la unidad en los niveles de carga de almacenamiento de datos finales.
21. El sistema de memoria de la reivindicación 20, en donde los circuitos de programación hacen que los niveles finales de almacenamiento de carga en los que se programan los elementos de almacenamiento de carga individuales de las células de memoria sean más de dos niveles de almacenamiento de carga.
22. El sistema de memoria de la reivindicación 20, en donde la matriz de células de memoria utilizan una arquitectura NAND.
23. El sistema de memoria de la reivindicación 20, en donde la unidad de hileras se encuentra en un bloque de células de memoria de la matriz, en donde las células de memoria del bloque pueden borrarse conjuntamente antes de programarlas.
24. El sistema de memoria de la reivindicación 20, en donde la unidad de hileras posee capacidad para almacenar una página de datos.
25. El sistema de memoria de la reivindicación 20, que comprende adicionalmente leer circuitos que indican los niveles de carga de almacenamiento intermedio de una hilera determinada como la fuente de datos de los circuitos de programación para, posteriormente, programar y verificar si las células de memoria de la hilera determinada poseen niveles de carga finales de almacenamiento de datos.
ES03794474T 2002-09-06 2003-08-13 Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria. Expired - Lifetime ES2262014T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US237426 1999-01-26
US10/237,426 US6781877B2 (en) 2002-09-06 2002-09-06 Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells

Publications (1)

Publication Number Publication Date
ES2262014T3 true ES2262014T3 (es) 2006-11-16

Family

ID=31977713

Family Applications (1)

Application Number Title Priority Date Filing Date
ES03794474T Expired - Lifetime ES2262014T3 (es) 2002-09-06 2003-08-13 Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria.

Country Status (10)

Country Link
US (3) US6781877B2 (es)
EP (1) EP1535285B1 (es)
JP (1) JP4391941B2 (es)
KR (1) KR100986680B1 (es)
CN (1) CN100578667C (es)
AT (1) ATE321339T1 (es)
AU (1) AU2003262675A1 (es)
DE (1) DE60304220T2 (es)
ES (1) ES2262014T3 (es)
WO (1) WO2004023489A1 (es)

Families Citing this family (390)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US6781877B2 (en) * 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US6983428B2 (en) 2002-09-24 2006-01-03 Sandisk Corporation Highly compact non-volatile memory and method thereof
US6891753B2 (en) * 2002-09-24 2005-05-10 Sandisk Corporation Highly compact non-volatile memory and method therefor with internal serial buses
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
JP4469649B2 (ja) * 2003-09-17 2010-05-26 株式会社ルネサステクノロジ 半導体フラッシュメモリ
US7020017B2 (en) * 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7057939B2 (en) 2004-04-23 2006-06-06 Sandisk Corporation Non-volatile memory and control with improved partial page program capability
US7274596B2 (en) * 2004-06-30 2007-09-25 Micron Technology, Inc. Reduction of adjacent floating gate data pattern sensitivity
JP4410188B2 (ja) * 2004-11-12 2010-02-03 株式会社東芝 半導体記憶装置のデータ書き込み方法
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US6980471B1 (en) 2004-12-23 2005-12-27 Sandisk Corporation Substrate electron injection techniques for programming non-volatile charge storage memory cells
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184718A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7196928B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7196946B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling in non-volatile storage
US7187585B2 (en) * 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7457910B2 (en) 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7218552B1 (en) 2005-09-09 2007-05-15 Sandisk Corporation Last-first mode and method for programming of non-volatile memory with reduced program disturb
US7170788B1 (en) 2005-09-09 2007-01-30 Sandisk Corporation Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7301817B2 (en) * 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify
US7366022B2 (en) * 2005-10-27 2008-04-29 Sandisk Corporation Apparatus for programming of multi-state non-volatile memory using smart verify
US7289348B2 (en) * 2005-11-10 2007-10-30 Sandisk Corporation Reverse coupling effect with timing information
US8683081B2 (en) * 2005-11-14 2014-03-25 Sandisk Technologies Inc. Methods for displaying advertisement content on host system using application launched from removable memory device
US8683082B2 (en) * 2005-11-14 2014-03-25 Sandisk Technologies Inc. Removable memory devices for displaying advertisement content on host systems using applications launched from removable memory devices
US7353073B2 (en) * 2005-12-01 2008-04-01 Sandisk Corporation Method for managing appliances
US7739078B2 (en) * 2005-12-01 2010-06-15 Sandisk Corporation System for managing appliances
US7262994B2 (en) * 2005-12-06 2007-08-28 Sandisk Corporation System for reducing read disturb for non-volatile storage
US7349258B2 (en) * 2005-12-06 2008-03-25 Sandisk Corporation Reducing read disturb for non-volatile storage
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US20070143117A1 (en) * 2005-12-21 2007-06-21 Conley Kevin M Voice controlled portable memory storage device
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20070143111A1 (en) * 2005-12-21 2007-06-21 Conley Kevin M Voice controlled portable memory storage device
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20070143560A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with memory allocation for a directly mapped file storage system
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US8161289B2 (en) * 2005-12-21 2012-04-17 SanDisk Technologies, Inc. Voice controlled portable memory storage device
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
US7917949B2 (en) * 2005-12-21 2011-03-29 Sandisk Corporation Voice controlled portable memory storage device
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
US8484632B2 (en) * 2005-12-22 2013-07-09 Sandisk Technologies Inc. System for program code execution with memory storage controller participation
US8479186B2 (en) * 2005-12-22 2013-07-02 Sandisk Technologies Inc. Method for program code execution with memory storage controller participation
US7352629B2 (en) * 2005-12-29 2008-04-01 Sandisk Corporation Systems for continued verification in non-volatile memory write operations
US7443726B2 (en) * 2005-12-29 2008-10-28 Sandisk Corporation Systems for alternate row-based reading and writing for non-volatile memory
US7349260B2 (en) 2005-12-29 2008-03-25 Sandisk Corporation Alternate row-based reading and writing for non-volatile memory
US7307887B2 (en) * 2005-12-29 2007-12-11 Sandisk Corporation Continued verification in non-volatile memory write operations
JP4177847B2 (ja) 2006-01-06 2008-11-05 株式会社東芝 不揮発性半導体記憶装置
KR100673025B1 (ko) * 2006-01-24 2007-01-24 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법
KR100841336B1 (ko) * 2006-01-24 2008-06-26 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리를 구비한 메모리 시스템
KR100673026B1 (ko) * 2006-01-24 2007-01-24 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법
JP4157563B2 (ja) * 2006-01-31 2008-10-01 株式会社東芝 半導体集積回路装置
US7483311B2 (en) * 2006-02-07 2009-01-27 Micron Technology, Inc. Erase operation in a flash memory device
KR100666223B1 (ko) * 2006-02-22 2007-01-09 삼성전자주식회사 메모리셀 사이의 커플링 노이즈를 저감시키는 3-레벨불휘발성 반도체 메모리 장치 및 이에 대한 구동방법
US7499319B2 (en) * 2006-03-03 2009-03-03 Sandisk Corporation Read operation for non-volatile storage with compensation for coupling
US7436733B2 (en) * 2006-03-03 2008-10-14 Sandisk Corporation System for performing read operation on non-volatile storage with compensation for coupling
EP1840901B1 (en) * 2006-03-31 2010-04-28 STMicroelectronics Srl Method for programming a memory device suitable to minimize floating gate couplings and memory device
US7436713B2 (en) 2006-04-12 2008-10-14 Sandisk Corporation Reducing the impact of program disturb
US7426137B2 (en) 2006-04-12 2008-09-16 Sandisk Corporation Apparatus for reducing the impact of program disturb during read
US7499326B2 (en) 2006-04-12 2009-03-03 Sandisk Corporation Apparatus for reducing the impact of program disturb
US7515463B2 (en) 2006-04-12 2009-04-07 Sandisk Corporation Reducing the impact of program disturb during read
JP5142478B2 (ja) * 2006-04-13 2013-02-13 株式会社東芝 半導体記憶装置
US7516261B2 (en) * 2006-04-21 2009-04-07 Sandisk Corporation Method for U3 adapter
US7447821B2 (en) * 2006-04-21 2008-11-04 Sandisk Corporation U3 adapter
KR100763353B1 (ko) * 2006-04-26 2007-10-04 삼성전자주식회사 인접하는 메모리셀과의 커플링 노이즈를 저감시키는불휘발성 반도체 메모리 장치
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
WO2007132452A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
US7457163B2 (en) * 2006-06-01 2008-11-25 Sandisk Corporation System for verifying non-volatile storage using different voltages
WO2008097320A2 (en) * 2006-06-01 2008-08-14 Virginia Tech Intellectual Properties, Inc. Premixing injector for gas turbine engines
US7440331B2 (en) 2006-06-01 2008-10-21 Sandisk Corporation Verify operation for non-volatile storage using different voltages
US7310272B1 (en) * 2006-06-02 2007-12-18 Sandisk Corporation System for performing data pattern sensitivity compensation using different voltage
US7450421B2 (en) * 2006-06-02 2008-11-11 Sandisk Corporation Data pattern sensitivity compensation using different voltage
US7952922B2 (en) * 2006-06-06 2011-05-31 Micron Technology, Inc. Method for programming a non-volatile memory device to reduce floating-gate-to-floating-gate coupling effect
KR101041595B1 (ko) * 2006-06-19 2011-06-15 샌디스크 코포레이션 비휘발성 메모리에서 개선된 판독 동작을 위해 선택 상태에서 보상을 사용하여 감지 및 다른 크기의 마진 프로그래밍
US7606084B2 (en) * 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7352628B2 (en) * 2006-06-19 2008-04-01 Sandisk Corporation Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory
US7486561B2 (en) * 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7489549B2 (en) * 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7894269B2 (en) * 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7495953B2 (en) * 2006-07-20 2009-02-24 Sandisk Corporation System for configuring compensation
US7885119B2 (en) * 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7522454B2 (en) * 2006-07-20 2009-04-21 Sandisk Corporation Compensating for coupling based on sensing a neighbor using coupling
US7400535B2 (en) * 2006-07-20 2008-07-15 Sandisk Corporation System that compensates for coupling during programming
US7443729B2 (en) * 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7506113B2 (en) * 2006-07-20 2009-03-17 Sandisk Corporation Method for configuring compensation
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
KR100805840B1 (ko) * 2006-09-01 2008-02-21 삼성전자주식회사 캐시를 이용한 플래시 메모리 장치 및 그것의 프로그램방법
US7734861B2 (en) * 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory
US7606966B2 (en) * 2006-09-08 2009-10-20 Sandisk Corporation Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
US7885112B2 (en) 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US7684247B2 (en) * 2006-09-29 2010-03-23 Sandisk Corporation Reverse reading in non-volatile memory with compensation for coupling
US7447076B2 (en) * 2006-09-29 2008-11-04 Sandisk Corporation Systems for reverse reading in non-volatile memory with compensation for coupling
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
US7372748B2 (en) * 2006-10-16 2008-05-13 Sandisk Corporation Voltage regulator in a non-volatile memory device
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7593263B2 (en) 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US7917686B2 (en) * 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US7616505B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
WO2008083132A2 (en) * 2006-12-28 2008-07-10 Sandisk Corporation Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US7616506B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Systems for complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US7701765B2 (en) 2006-12-28 2010-04-20 Micron Technology, Inc. Non-volatile multilevel memory cell programming
US7590002B2 (en) * 2006-12-29 2009-09-15 Sandisk Corporation Resistance sensing and compensation for non-volatile storage
US7440324B2 (en) * 2006-12-29 2008-10-21 Sandisk Corporation Apparatus with alternating read mode
US7890723B2 (en) * 2006-12-29 2011-02-15 Sandisk Corporation Method for code execution
US7606070B2 (en) * 2006-12-29 2009-10-20 Sandisk Corporation Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation
US7616498B2 (en) * 2006-12-29 2009-11-10 Sandisk Corporation Non-volatile storage system with resistance sensing and compensation
US7518923B2 (en) * 2006-12-29 2009-04-14 Sandisk Corporation Margined neighbor reading for non-volatile memory read operations including coupling compensation
WO2008083137A1 (en) * 2006-12-29 2008-07-10 Sandisk Corporation Reading of a nonvolatile memory cell by taking account of the stored state of a neighboring memory cell
US7890724B2 (en) * 2006-12-29 2011-02-15 Sandisk Corporation System for code execution
US7495962B2 (en) * 2006-12-29 2009-02-24 Sandisk Corporation Alternating read mode
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US7679965B2 (en) * 2007-01-31 2010-03-16 Sandisk Il Ltd Flash memory with improved programming precision
US8370562B2 (en) * 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US7535764B2 (en) * 2007-03-21 2009-05-19 Sandisk Corporation Adjusting resistance of non-volatile memory using dummy memory cells
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US7936599B2 (en) * 2007-06-15 2011-05-03 Micron Technology, Inc. Coarse and fine programming in a solid state memory
US7719889B2 (en) 2007-06-25 2010-05-18 Sandisk Corporation Methods of programming multilevel cell nonvolatile memory
US7630252B2 (en) * 2007-06-25 2009-12-08 Sandisk Corporation Systems for programming multilevel cell nonvolatile memory
KR100888842B1 (ko) * 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US7535767B2 (en) * 2007-08-06 2009-05-19 Spansion Llc Reading multi-cell memory devices utilizing complementary bit information
US7652929B2 (en) * 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8650352B2 (en) * 2007-09-20 2014-02-11 Densbits Technologies Ltd. Systems and methods for determining logical values of coupled flash memory cells
WO2009095902A2 (en) 2008-01-31 2009-08-06 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US7751237B2 (en) * 2007-09-25 2010-07-06 Sandisk Il, Ltd. Post-facto correction for cross coupling in a flash memory
US20090088876A1 (en) * 2007-09-28 2009-04-02 Conley Kevin M Portable, digital media player and associated methods
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US8443242B2 (en) 2007-10-25 2013-05-14 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
US7668012B2 (en) * 2007-10-31 2010-02-23 Micron Technology, Inc. Memory cell programming
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
WO2009072104A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith
US8607128B2 (en) * 2007-12-05 2013-12-10 Densbits Technologies Ltd. Low power chien-search based BCH/RS decoding system for flash memory, mobile communications devices and other applications
WO2009072103A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
US8359516B2 (en) 2007-12-12 2013-01-22 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
WO2009074979A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8327246B2 (en) 2007-12-18 2012-12-04 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
KR101368694B1 (ko) * 2008-01-22 2014-03-03 삼성전자주식회사 메모리 프로그래밍 장치 및 방법
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
JP2011522301A (ja) 2008-03-11 2011-07-28 アギア システムズ インコーポレーテッド クロス・ページ・セクタ、マルチ・ページ符号化およびパー・ページ符号化を使用して多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法および装置
US7835203B2 (en) * 2008-03-12 2010-11-16 Macronix International Co., Ltd Programming method and memory device using the same
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8972472B2 (en) * 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US7848144B2 (en) 2008-06-16 2010-12-07 Sandisk Corporation Reverse order page writing in flash memories
US8458563B2 (en) * 2008-06-23 2013-06-04 Ramot At Tel Aviv University Ltd. Reading a flash memory by joint decoding and cell voltage distribution tracking
US8464131B2 (en) * 2008-06-23 2013-06-11 Ramot At Tel Aviv University Ltd. Reading a flash memory by constrained decoding
US7800956B2 (en) * 2008-06-27 2010-09-21 Sandisk Corporation Programming algorithm to reduce disturb with minimal extra time penalty
JP5710475B2 (ja) * 2008-07-01 2015-04-30 エルエスアイ コーポレーション フラッシュ・メモリにおけるソフト・デマッピングおよびセル間干渉軽減のための方法および装置
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US7839687B2 (en) * 2008-10-16 2010-11-23 Sandisk Corporation Multi-pass programming for memory using word line coupling
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
KR101642465B1 (ko) * 2008-12-12 2016-07-25 삼성전자주식회사 불휘발성 메모리 장치의 액세스 방법
US7944754B2 (en) * 2008-12-31 2011-05-17 Sandisk Corporation Non-volatile memory and method with continuous scanning time-domain sensing
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US7813181B2 (en) * 2008-12-31 2010-10-12 Sandisk Corporation Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
KR101717798B1 (ko) 2009-04-08 2017-03-17 샌디스크 테크놀로지스 엘엘씨 수직의 비트 라인들 및 이중 전역 비트 라인 아키텍처를 가지는 재프로그래밍 가능한 메모리 요소들의 3차원 어레이
US8351236B2 (en) 2009-04-08 2013-01-08 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a single-sided word line architecture
US7983065B2 (en) * 2009-04-08 2011-07-19 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines
US8199576B2 (en) * 2009-04-08 2012-06-12 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8027195B2 (en) * 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
US8102705B2 (en) 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
US7974124B2 (en) * 2009-06-24 2011-07-05 Sandisk Corporation Pointer based column selection techniques in non-volatile memories
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8144511B2 (en) 2009-08-19 2012-03-27 Sandisk Technologies Inc. Selective memory cell program and erase
US8305812B2 (en) 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) * 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US20110153912A1 (en) 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US8054684B2 (en) 2009-12-18 2011-11-08 Sandisk Technologies Inc. Non-volatile memory and method with atomic program sequence and write abort detection
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8607124B2 (en) * 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8848430B2 (en) * 2010-02-23 2014-09-30 Sandisk 3D Llc Step soft program for reversible resistivity-switching elements
US8700970B2 (en) * 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US8516274B2 (en) 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
TWI447733B (zh) * 2010-04-14 2014-08-01 Phison Electronics Corp 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器
WO2011128867A1 (en) 2010-04-15 2011-10-20 Ramot At Tel Aviv University Ltd. Multiple programming of flash memory without erase
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8385102B2 (en) 2010-05-11 2013-02-26 Sandisk 3D Llc Alternating bipolar forming voltage for resistivity-switching elements
US8526237B2 (en) 2010-06-08 2013-09-03 Sandisk 3D Llc Non-volatile memory having 3D array of read/write elements and read/write circuits and method thereof
US20110297912A1 (en) 2010-06-08 2011-12-08 George Samachisa Non-Volatile Memory Having 3d Array of Read/Write Elements with Vertical Bit Lines and Laterally Aligned Active Elements and Methods Thereof
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US8543757B2 (en) 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8310870B2 (en) 2010-08-03 2012-11-13 Sandisk Technologies Inc. Natural threshold voltage distribution compaction in non-volatile memory
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US9227456B2 (en) 2010-12-14 2016-01-05 Sandisk 3D Llc Memories with cylindrical read/write stacks
EP2731110B1 (en) 2010-12-14 2016-09-07 SanDisk Technologies LLC Architecture for three dimensional non-volatile storage with vertical bit lines
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US9292377B2 (en) 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9324433B2 (en) * 2011-04-25 2016-04-26 Microsoft Technology Licensing, Llc Intelligent flash reprogramming
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US8843693B2 (en) 2011-05-17 2014-09-23 SanDisk Technologies, Inc. Non-volatile memory and method with improved data scrambling
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
US8743615B2 (en) 2011-08-22 2014-06-03 Sandisk Technologies Inc. Read compensation for partially programmed blocks of non-volatile storage
JP2012014827A (ja) * 2011-09-12 2012-01-19 Toshiba Corp 半導体記憶装置
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
JP2012043530A (ja) * 2011-10-24 2012-03-01 Toshiba Corp 不揮発性半導体記憶装置
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US9171627B2 (en) 2012-04-11 2015-10-27 Aplus Flash Technology, Inc. Non-boosting program inhibit scheme in NAND design
US9087595B2 (en) 2012-04-20 2015-07-21 Aplus Flash Technology, Inc. Shielding 2-cycle half-page read and program schemes for advanced NAND flash design
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US8895437B2 (en) 2012-06-15 2014-11-25 Sandisk 3D Llc Method for forming staircase word lines in a 3D non-volatile memory having vertical bit lines
US9281029B2 (en) 2012-06-15 2016-03-08 Sandisk 3D Llc Non-volatile memory having 3D array architecture with bit line voltage control and methods thereof
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9025374B2 (en) * 2012-12-13 2015-05-05 Sandisk Technologies Inc. System and method to update read voltages in a non-volatile memory in response to tracking data
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9064547B2 (en) 2013-03-05 2015-06-23 Sandisk 3D Llc 3D non-volatile memory having low-current cells and methods
US9183940B2 (en) 2013-05-21 2015-11-10 Aplus Flash Technology, Inc. Low disturbance, power-consumption, and latency in NAND read and program-verify operations
US10013322B2 (en) * 2013-06-03 2018-07-03 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9123430B2 (en) 2013-06-14 2015-09-01 Sandisk 3D Llc Differential current sense amplifier and method for non-volatile memory
US8933516B1 (en) 2013-06-24 2015-01-13 Sandisk 3D Llc High capacity select switches for three-dimensional structures
US9263137B2 (en) 2013-06-27 2016-02-16 Aplus Flash Technology, Inc. NAND array architecture for multiple simutaneous program and read
US9230677B2 (en) 2013-07-25 2016-01-05 Aplus Flash Technology, Inc NAND array hiarchical BL structures for multiple-WL and all-BL simultaneous erase, erase-verify, program, program-verify, and read operations
US9293205B2 (en) 2013-09-14 2016-03-22 Aplus Flash Technology, Inc Multi-task concurrent/pipeline NAND operations on all planes
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9047970B2 (en) 2013-10-28 2015-06-02 Sandisk Technologies Inc. Word line coupling for deep program-verify, erase-verify and read
WO2015100434A2 (en) 2013-12-25 2015-07-02 Aplus Flash Technology, Inc A HYBRID NAND WITH ALL-BL m-PAGE OPERATION SCHEME
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9123392B1 (en) 2014-03-28 2015-09-01 Sandisk 3D Llc Non-volatile 3D memory with cell-selectable word line decoding
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9659636B2 (en) 2014-07-22 2017-05-23 Peter Wung Lee NAND memory array with BL-hierarchical structure for concurrent all-BL, all-threshold-state program, and alternative-WL program, odd/even read and verify operations
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US10055267B2 (en) 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US10157681B2 (en) 2015-09-14 2018-12-18 Sandisk Technologies Llc Programming of nonvolatile memory with verify level dependent on memory state and programming loop count
US9711211B2 (en) 2015-10-29 2017-07-18 Sandisk Technologies Llc Dynamic threshold voltage compaction for non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
KR20170064312A (ko) * 2015-12-01 2017-06-09 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US10248499B2 (en) 2016-06-24 2019-04-02 Sandisk Technologies Llc Non-volatile storage system using two pass programming with bit error control
TWI613660B (zh) * 2016-10-11 2018-02-01 群聯電子股份有限公司 記憶體程式化方法、記憶體控制電路單元與記憶體儲存裝置
CN107958687B (zh) * 2016-10-18 2021-05-11 群联电子股份有限公司 存储器编程方法、存储器控制电路单元及其存储装置
US10614886B2 (en) 2017-09-22 2020-04-07 Samsung Electronics Co., Ltd. Nonvolatile memory device and a method of programming the nonvolatile memory device
US10425084B2 (en) * 2017-10-03 2019-09-24 Murata Manufacturing Co., Ltd. Oven controlled MEMS oscillator and system and method for calibrating the same
US10600484B2 (en) * 2017-12-20 2020-03-24 Silicon Storage Technology, Inc. System and method for minimizing floating gate to floating gate coupling effects during programming in flash memory
US10719248B2 (en) 2018-04-20 2020-07-21 Micron Technology, Inc. Apparatuses and methods for counter update operations
US11055226B2 (en) * 2018-06-29 2021-07-06 Intel Corporation Mitigation of cache-latency based side-channel attacks
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
DE69033262T2 (de) 1989-04-13 2000-02-24 Sandisk Corp., Santa Clara EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
US5663901A (en) 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
US5430859A (en) 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5712180A (en) 1992-01-14 1998-01-27 Sundisk Corporation EEPROM with split gate source side injection
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5815434A (en) * 1995-09-29 1998-09-29 Intel Corporation Multiple writes per a single erase for a nonvolatile memory
KR0172401B1 (ko) * 1995-12-07 1999-03-30 김광호 다수상태 불휘발성 반도체 메모리 장치
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6058042A (en) * 1997-12-26 2000-05-02 Sony Corporation Semiconductor nonvolatile memory device and method of data programming the same
US6103573A (en) 1999-06-30 2000-08-15 Sandisk Corporation Processing techniques for making a dual floating gate EEPROM cell array
US6151248A (en) 1999-06-30 2000-11-21 Sandisk Corporation Dual floating gate EEPROM cell array with steering gates shared by adjacent cells
US6091633A (en) 1999-08-09 2000-07-18 Sandisk Corporation Memory array architecture utilizing global bit lines shared by multiple cells
JP2001067884A (ja) * 1999-08-31 2001-03-16 Hitachi Ltd 不揮発性半導体記憶装置
JP3863330B2 (ja) * 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6512263B1 (en) 2000-09-22 2003-01-28 Sandisk Corporation Non-volatile memory cell array having discontinuous source and drain diffusions contacted by continuous bit line conductors and methods of forming
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
KR100390959B1 (ko) * 2001-06-29 2003-07-12 주식회사 하이닉스반도체 센싱회로를 이용한 멀티레벨 플래시 메모리 프로그램/리드방법
US6897522B2 (en) 2001-10-31 2005-05-24 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US6781877B2 (en) * 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells

Also Published As

Publication number Publication date
US20050146931A1 (en) 2005-07-07
DE60304220T2 (de) 2007-03-29
US6781877B2 (en) 2004-08-24
JP4391941B2 (ja) 2009-12-24
EP1535285B1 (en) 2006-03-22
ATE321339T1 (de) 2006-04-15
US7046548B2 (en) 2006-05-16
KR20050083680A (ko) 2005-08-26
US6870768B2 (en) 2005-03-22
DE60304220D1 (de) 2006-05-11
CN100578667C (zh) 2010-01-06
WO2004023489A1 (en) 2004-03-18
US20040047182A1 (en) 2004-03-11
EP1535285A1 (en) 2005-06-01
US20050018482A1 (en) 2005-01-27
KR100986680B1 (ko) 2010-10-08
AU2003262675A1 (en) 2004-03-29
CN1703757A (zh) 2005-11-30
JP2005538485A (ja) 2005-12-15

Similar Documents

Publication Publication Date Title
ES2262014T3 (es) Tecnicas para reducir los efectos de las uniones entre elementos de almacenaje de filas adyacentes de celulas de memoria.
US6542407B1 (en) Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
KR101578812B1 (ko) 가장 빠른 및/또는 가장 느린 프로그래밍 비트를 무시하여 프로그램 검증이 감소된 비휘발성 메모리와 방법
KR101871546B1 (ko) 개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법
US7826271B2 (en) Nonvolatile memory with index programming and reduced verify
US8300458B2 (en) Nonvolatile memory with correlated multiple pass programming
JP2010524147A (ja) 不揮発性メモリと予測プログラミングの方法
US20100097857A1 (en) Predictive Programming in Non-Volatile Memory
US8964467B1 (en) Systems and methods for partial page programming of multi level cells
US9570160B1 (en) Non-volatile storage system with defect detetction and early programming termination
US7796435B2 (en) Method for correlated multiple pass programming in nonvolatile memory
US20080253193A1 (en) Non-Volatile Memory with Predictive Programming
EP2289069A1 (en) Nonvolatile memory and method with index programming and reduced verify
US8750045B2 (en) Experience count dependent program algorithm for flash memory
EP2297739A2 (en) Nonvolatile memory and method for correlated multiple pass programming