MX2007006033A - Acceso de memoria de alta velocidad y robusta con temporizador de interfaz adaptiva. - Google Patents

Acceso de memoria de alta velocidad y robusta con temporizador de interfaz adaptiva.

Info

Publication number
MX2007006033A
MX2007006033A MX2007006033A MX2007006033A MX2007006033A MX 2007006033 A MX2007006033 A MX 2007006033A MX 2007006033 A MX2007006033 A MX 2007006033A MX 2007006033 A MX2007006033 A MX 2007006033A MX 2007006033 A MX2007006033 A MX 2007006033A
Authority
MX
Mexico
Prior art keywords
memory
nand
fast
page
access
Prior art date
Application number
MX2007006033A
Other languages
English (en)
Inventor
Dexter Tamio Chun
Ajit Patil
Ian Huang
Jason Chan
Timothy Gold
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of MX2007006033A publication Critical patent/MX2007006033A/es

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

Se describen tecnicas para tener acceso de manera rapida y confiable a un dispositivo de memoria (por ejemplo, una memoria rapida NAND) con temporizador de interfaz adaptiva; para el acceso de memoria con temporizador de interfaz adaptiva, la memoria rapida NAND es accesada a una velocidad de acceso de memoria inicial, la cual puede ser la velocidad pronosticada para lograr el acceso de memoria confiable; la codificacion de correccion de error (ECC), la cual a menudo se emplea para memoria rapida NAND, es entonces utilizada par asegurar el acceso confiable de la memoria rapida NAND; para una operacion de lectura, una pagina de datos se lee a la vez de la memoria rapida NAND, y la ECC determina si la lectura de la pagina de la memoria rapida NAND contiene errores; si se encuentran errores, entonces se selecciona una velocidad de acceso de memoria mas baja, y la pagina con error es leida nuevamente de la memoria rapida NAND a la nueva velocidad; las tecnicas se pueden utilizar para escribir datos en la memoria rapida NAND.

Description

ACCESO DE MEMORIA DE ALTA VELOCIDAD Y ROBUSTA CON r TEMPORIZADOR DE INTERFAZ ADAPTIVA CAMPO DE LA INVENCIÓN 5- La presente invención se relaciona generalmente a circuitos electrónicos, y muy especificamente a técnicas para tener acceso a un dispositivo de memoria. 10 ANTECEDENTES DE LA INVENCIÓN Los dispositivos de comunicación inalámbrica (por ejemplo, teléfonos celulares) tienen capacidad de proveer varios servicios de comunicación tal como voz y datos en 15 paquete. Los dispositivos inalámbricos de más reciente generación también pueden tener la capacidad de proveer funcionalidad mejorada y pueden ser utilizados como un asistente digital personal (PDA) , una terminal de red, un dispositivo de cómputo, y asi sucesivamente. Conforme los 20 dispositivos inalámbricos se vuelven más complejos y proveen más funciones y características, más potencia de cómputo y memorias más grandes son inevitablemente requeridas. Por lo regular se necesita una memoria grande para almacenar un código de programa y datos utilizados 25 para soportar comunicación de datos y/o voz asi como otras funciones y características. Diversos tipos de memoria se pueden utilizar para dispositivos inalámbricos, tal como memoria de acceso aleatorio estático (SRAM) , RAM dinámica sincrónica (SDRAM) , y memoria rápida. SRAM y SDRAM son memorias volátiles que pierden los datos ahi almacenados una vez que se remueve la potencia. SRAM y SDRAM pueden ser accesadas en una manera aleatoria, la cual es la manera en la que la mayoría de los procesadores tienen acceso a las memorias para código de programa y datos. Por lo tanto, SRAM y/o SDRAM comúnmente se utilizan como la memoria principal de tiempo de ejecución en dispositivos inalámbricos. La memoria rápida es una memoria no-volátil que puede retener los datos ahi almacenados aún después de que se remueve la potencia. La memoria rápida NAND, la cual es un tipo de memoria rápida, es un diseño de memoria de alta densidad y tiene ciertas ventajas sobre otros tipos de memoria. En particular, la memoria rápida NAND tiene gran capacidad de almacenaje (por ejemplo, un giga bit o más), buena velocidad para acceso de memoria continua y bajo costo. Sin embargo, la memoria rápida NAND también tiene ciertos inconvenientes inherentes tal como un desempeño deficiente para acceso de memoria aleatoria. En consecuencia, la memoria rápida NAND es típicamente accesada en unidades de páginas, una página a la vez, en donde cada página es de un tamaño en particular (por ejemplo, 512 bytes) . Conforme el costo de memorias en dispositivos inalámbricos se -vuelve más prohibitivo, la memoria rápida NAND es un buen candidato a utilizar como la unidad de almacenaje masivo para estos dispositivos. Sin embargo, debido a que la estructura de la memoria rápida NAND no es conveniente para el acceso aleatorio, el código de programa no puede ser ejecutado directamente desde la memoria rápida NAND. En su lugar, SRAM y/o SDRAM pueden ser utilizadas para proveer almacenaje de tiempo de ejecución para código de programas y datos que necesiten ser accesados en una manera aleatoria. Una arquitectura de memoria que incorpora ambas, la memoria rápida NAND y SRAM/SDRAM tiene la capacidad de proveer una gran capacidad de almacenaje con acceso aleatorio a un costo reducido. Para un dispositivo que tiene dicha arquitectura de memoria, el código de programa puede ser cargado en la memoria rápida NAND para almacenaje permanente. Una vez que es encendido, el dispositivo lleva a cabo un "arranque", el cual implica (entre otras cosas) transferir el código de programa desde la memoria rápida NAND a la SRAM/SDRAM. Debido a que el código del programa puede ser grande en tamaño (por ejemplo, varios mega bits), el tiempo de arranque puede ser muy largo (por ejemplo, en el orden de segundos) . Tiempo de arranque lento puede conducir a la insatisfacción del usuario y es especialmente indeseable para dispositivos que pueden ser apagados y encendidos frecuentemente, tal como teléfonos celulares. Por lo tanto, existe la necesidad de técnicas para tener acceso rápido a la memoria rápida NAND para transferencia de datos.
SUMARIO DE LA INVENCIÓN Aqui se describen técnicas para acceder rápida y confiablemente a un dispositivo de memoria, tal como una memoria rápida NAND, con temporizador de interfaz adaptiva. A menudo se puede tener acceso a la memoria rápida NAND de manera confiable a una velocidad más alta que la velocidad de acceso de memoria lenta necesaria para la condición del peor caso, lo cual no es común. La velocidad del acceso de memoria está definido por, y está inversamente relacionado con la duración de tiempo utilizado por cada acceso de memoria rápida NAND. Para el acceso de memoria con temporizador de interfaz adaptiva, la memoria rápida NAND es primero accesada a una velocidad de acceso de memoria inicial, la cual puede ser una velocidad de acceso de memoria que sea pronosticada para lograr acceso de memoria rápido y confiable. La codificación de corrección de error (ECC) la cual es a menudo empleada para memoria rápida NAND, es entonces utilizada para asegurar el acceso confiable de la memoria rápida NAND. Para una operación de lectura, una página de datos es leida a la vez a partir de la memoria rápida NAND, y la ECC determina si la lectura de página de la memoria rápida NAND contiene algún error. Si se encuentran errores, entonces se selecciona una velocidad de acceso de memoria más lenta, y la página con error es leida nuevamente de la memoria rápida NAND a esta velocidad de acceso de memoria más lento. Las técnicas también se pueden utilizar para escribir datos a la memoria rápida NAND. En una modalidad, un controlador de memoria rápida NAND incluye una unidad de control y una unidad de detección. Para leer de una memoria rápida NAND, la unidad de control obtiene un primer (o inicial) establecimiento para una primera velocidad de acceso a la memoria. La unidad de control genera, conforme al primer establecimiento, varias señales de control para leer una primera página de datos de la memoria rápida NAND a la primera velocidad de acceso a la memoria. La unidad de detección determina si la primera página de datos de lectura contiene algún error. Si la primera página contiene errores, entonces la unidad de control obtiene un segundo establecimiento .para una segunda velocidad de acceso a la memoria que es más lenta que la primera velocidad de acceso de memoria. El proceso de leer una página, revisar la página en busca de errores, y seleccionar una velocidad de acceso a la memoria más lenta continúa hasta que la página es exitosamente leida de la memoria rápida NAND. Cada página posterior es entonces leida de la memoria rápida NAND en la misma manera, por ejemplo, iniciando con la velocidad de acceso de memoria que resultó en una lectura exitosa de la página anterior. El controlador de memoria rápida NAND también puede escribir a la memoria rápida NAND con temporizador de interfaz adaptiva, como se describirá a continuación. . , Varios aspectos y modalidades de la invención están descritos en mayor detalle más adelante.
BREVE DESCRIPCION DE LAS FIGURAS Las características y naturaleza de la presente invención serán más aparentes a partir de la siguiente descripción detallada, cuando se tome en conjunto con las figuras en las cuales caracteres de referencia similares se identifican de manera correspondiente desde el principio y en las cuales : La figura 1 muestra un diagrama en bloques de un dispositivo de comunicación inalámbrica; La figura 2 muestra una estructura ejemplar de una memoria rápida NAND; La figura 3 muestra un diagrama en bloques de un controlador de memoria rápida NAND; La figura 4 muestra un diagrama de temporización para leer datos de la memoria rápida NAND; La figura 5 muestra un diagrama de temporización para escribir datos en la memoria rápida NAND; Las figuras 6A y 6B muestran la generación de señales de capacidad de lectura (RE_n) y capacidad de escritura (WE_n) para velocidades de acceso a la memoria con dos y cuatro ciclos de reloj de entrada, respectivamente, por acceso de memoria; La figura 7 muestra un proceso para leer datos de la memoria rápida NAND con temporizador de interfaz adaptiva; y La figura 8 muestra un proceso para escribir datos a la memoria rápida NAND con temporizador de interfaz adaptiva.
DESCRIPCION DETALLADA DE LA INVENCIÓN La palabra "ejemplar" aqui se utiliza para decir "que sirve como un ejemplo, instancia, o ilustración" Cualquier modalidad o diseño aqui descrito como "ejemplar" no deber ser considerado necesariamente como preferido o en ventaja sobre otras modalidades o diseños. Las técnicas de acceso a la memoria aqui descritas pueden ser utilizadas para varios dispositivos electrónicos, tal como aquellos utilizados para comunicación inalámbrica, electrónicos personales, cómputo, conexión en red, y asi sucesivamente. Por claridad, estas técnicas están descritas para un dispositivo de comunicación inalámbrica utilizado para establecer comunicación con uno o más sistemas de comunicación inalámbrica, tal como un sistema (CDMA) de acceso Múltiple por División de Código, un sistema Global para Comunicaciones Móviles (GSM), y/o algunos otros sistemas. Un sistema CDMA puede ejecutar cdma2000, CDMA de banda ancha (W-CDMA) o alguna otra tecnología de acceso de radio CDMA (RAT) . W-CDMA y GSM son parte del Sistema Universal de Telecomunicaciones Móviles (UMTS) , el cual está descrito en documentos de un consorcio llamado "Proyecto de Sociedad de 3era Generación" (3GPP) . cdma2000 está descrito en documentos de un consorcio llamado "Proyecto 2 de Sociedad de 3era Generación (3GPP2) . Los documentos de 3GPP y 3GPP2 están públicamente disponibles. La figura 1 muestra un diagrama en bloques de un dispositivo de comunicación inalámbrica 100, el cual puede soportar cdma2000, GSM, W-CDMA, y/u otros sistemas inalámbricos/redes. El dispositivo inalámbrico 100 puede ser un teléfono celular, un portátil, un dispositivo manual, un módulo inalámbrico, un PDA, una terminal, un módem, o algún otro aparato. El dispositivo inalámbrico 100 tiene la capacidad de proveer comunicación bi-direccional a través de una trayectoria de recepción y una trayectoria de transmisión. Para la trayectoria de recepción, las señales transmitidas por las estaciones base son recibidas por una antena 112 y se proveen a una unidad receptora (RCVR) 114. La unidad receptora 114 acondiciona y digitaliza la señal recibida y provee muestras de entrada a una sección digital 120 para procesamiento adicional. Para la trayectoria de transmisión, una unidad transmisora (TMTR) 116 recibe y acondiciona datos que van a ser transmitidos por el dispositivo inalámbrico 100 y genera una señal modulada, la cual es transmitida por medio de la antena 112 a las estaciones base. La sección digital 120 incluye varias unidades de memoria, interfaz y procesamiento que llevan a cabo el procesamiento digital para el dispositivo inalámbrico 100. Para la modalidad mostrada en la figura 1, la sección digital 120 incluye un procesador de módem 122, un procesador principal 124, un • controlado principal 130, una SRAM 132, un controlador de memoria rápida NAND 140, un controlador SDRAM 142, y un controlador de enlace externo 144. Un procesador de módem 122 lleva a cabo el proceso para transmisión y recepción de datos (por ejemplo, codificación, modulación, desmodulación, decodificación, y asi sucesivamente) El procesador principal 124 puede llevar a cabo el procesamiento para audio, videos gráficos, y/u otras aplicaciones tales como, por ejemplo, llamadas multi-direccionales, exploración de red, reproductor de media, juegos, interfaz de usuario, y asi sucesivamente. La sección digital 120 puede incluir procesadores múltiples para diferentes funciones. El controlador de memoria rápida NAND 140 facilita la transferencia de datos entre la sección digital 120 y una memoria rápida NAND 150. El controlador SDRAM 142 facilita la transferencia de datos entre la sección digital 120 y una SDRAM 152. El controlador de enlace externo 144 puede dirigir .Ja operación del controlador de memoria rápida NAND 140 y el controlador SDRAM 142 y puede facilitar la transferencia de datos entre la memoria rápida NAND 150 Y SDRAM 152. El controlador de enlace externo 144 puede además dirigir y/o conectarse en interfaz con otras unidades y dispositivos que están fuera de la sección digital 120 tal. como, por ejemplo, una pantalla de cristal liquido (LCD) , un enlace serial, un dispositivo de entrada (por ejemplo, teclados), y asi sucesivamente. El controlador principal 130 puede dirigir la operación de varias unidades de procesamiento e interfaz dentro de la sección digital 120. SRAM 132 almacena código de programa y datos utilizados por los controladores y procesadores dentro de la sección digital 120. Las diversas unidades dentro de la sección digital 120 pueden establecer comunicación a través de uno o más enlaces 134. Los .controladores y procesadores dentro de la sección digital 120 pueden ser ejecutados con uno o más procesadores de señal digital (DSP) , micro procesadores, procesadores (RISC) de cómputo de conjunto de instrucción reducida, procesadores (CISC) de cómputo de conjunto de instrucción compleja, y asi sucesivamente. Las unidades dentro de la sección digital 120 pueden estar fabricadas en uno o más circuitos integrados de aplicación especifica (ASIC) o algún .otro tipo de circuito integrado (IC) . La memoria rápida NAND 150 y SDRAM 152 son dispositivos de memoria que están fuera de la sección digital 120 y proveen almacenaje masivo para las unidades de procesamiento dentro de la sección digital 120. La memoria rápida NAND 150 provee almacenaje no-volátil para código de programa y datos utilizados por la sección digital 120. La memoria rápida NAND 150 también se puede reemplazar con algún otro tipo de memoria no-volátil. SDRAM 152 provee almacenaje con capacidad de acceso aleatorio para código de programa y datos utilizados por la sección digital 120. La memoria SDRAM 152 también se puede reemplazar con algún otro tipo de memoria volátil (por ejemplo, SRAM, DRAM, y asi sucesivamente) y/o memoria no-volátil (por ejemplo memoria rápida ÑOR) . Para la modalidad mostrada en la figura 1, el controlador de memoria rápida NAND 140 y la memoria rápida NAND 150 establecen comunicación a través de un enlace 160, y el controlador SDRAM 142 y SDRAM 152 establecen comunicación a través de un enlace 162. Aunque no se muestran en la figura 1 por simplicidad, otros dispositivos también se pueden acoplar al enlace 160 y/o enlace 162. El enlace 162 puede ser designado como un enlace rápido y diseñado para velocidad rápida de operación. Esto se puede lograr añadiendo algunos (y solo rápidos de manera tipica) dispositivos externos al enlace 162 y reduciendo al minimo la capacitancia parásita en el enlace 162. El enlace 160 puede ser designado como un enlace lento y utilizado para soportar dispositivos más lentos. Por ejemplo, un LCD, una SRAM", un dispositivo de entrada, y asi sucesivamente (no mostrado en la -figura 1) pueden establecer comunicación con la sección digital 120 a través de un enlace 160. La capacitancia parásita en el enlace 160 puede por lo tanto ser mucho más alta que la capacitancia parásita en el enlace 162. Para asegurar un arranque confiable apenas se encienda el dispositivo inalámbrico 100, los datos pueden ser recuperados de la memoria rápida NAND 150 a la velocidad de acceso de memoria más rápida posible que es garantizada para cumplir con todos los requerimientos de temporización para la memoria rápida NAND bajo la condición del peor caso. Esta condición de peor caso corresponde a las variaciones peores posibles en el proceso IC, temperatura, voltaje, carga del enlace, y asi sucesivamente. La velocidad de acceso a la memoria para la condición del peor caso es llamada la velocidad de acceso del peor caso. Debido a que la condición del peor caso puede ser severa, la velocidad de acceso del peor caso para la memoria rápida NAND puede ser muy lenta. Si muchas páginas de datos son recuperadas a la velocidad del peor caso, entonces el tiempo de arranque puede ser muy lento, lo cual podria ser altamente indeseable. La temporización de interfaz adaptiva se puede utilizar para lograr el acceso rápido y confiable de la memoria rápida NAND. La condición del peor caso no se encuentra la mayoría de las veces, y la memoria rápida NAND puede ser a menudo accesada de manera confiable a una velocidad más alta que la velocidad de acceso del peor caso. La codificación de corrección de error (ECC) se utiliza de manera tipica para que la memoria rápida NAND provea la integridad de datos y asegurar el acceso confiable de la memoria rápida NAND. Para un arranque de encendido, la memoria rápida NAND puede ser accesada a una velocidad de acceso a la memoria inicial, la cual puede ser una velocidad pronosticada para lograr el acceso a la memoria confiable. Esta velocidad de acceso a la memoria inicial es típicamente más rápida (y puede ser mucho más rápida) que la velocidad de acceso del peor caso. La capacidad ECC de la memoria rápida NAND se utiliza entonces para determinar si la velocidad de acceso a la memoria inicial para la memoria rápida NAND es buena o si se deberla seleccionar una velocidad de acceso a la memoria más lenta. La figura 2 muestra una estructura ejemplar de memora rápida NAND 150. La memoria rápida NAND está dividida en B bloques de igual tamaño, y cada bloque tiene P páginas de igual tamaño. Cada página incluye un área de datos compuesta de D bytes y un área de reserva compuesta de S bytes. En general, B,P,D, y S pueden ser cualquier valor. Como un ejemplo especifico, una memoria rápida NAND puede tener B=4096 bloques, donde cada bloque contiene P=32 páginas y cada página incluye D=512 bytes de datos y S=16 bytes de reserva. Esta memoria rápida NAND tendría una capacidad de almacenaje de 512 Mbits o 64 Mbytes. Ciertas operaciones de la memoria rápida NAND (por ejemplo, lectura y escritura) son típicamente llevados a cabo en unidades de páginas mientras otras operaciones de la memoria rápida NAND (por ejemplo borrar) son típicamente llevadas a cabo en unidades de bloques. Varios dispositivos de memoria rápida NAND están comercialmente disponibles. Las técnicas de acceso de memoria aqui descritas se pueden utilizar con memoria rápida NAND de cualquier tamaño y estructura. La memoria rápida NAND asi como otros dispositivos de memoria son susceptibles a errores durante las operaciones . de lectura y escritura debido a varios factores tal como, por ejemplo, temporización de interfaz no-conforme. Además, la memoria rápida NAND es altamente susceptible a los errores de bit a lo largo de su vida de operación. Para verificar la integridad de los datos almacenados en/leidos desde la memoria rápida NAND, la codificación de detección de error o codificación de corrección de error se puede utilizar para cada página de datos en la memoria NAND. La codificación de detección de error tiene la capacidad de detectar errores en una página pero no de corregirlos. La codificación de corrección de error tiene la capacidad de detectar errores en una página y corregir hasta un número predeterminado de errores de bit en la página. Cada página está asociada con un área de reserva, como se muestra en la figura 2, y el área de reserva se puede utilizar para almacenar información de detección/corrección de error para la página. Las técnicas de acceso a la memoria aqui descritas se pueden utilizar en conjunto con la codificación de detección de error o codificación de corrección de error. Por claridad, éstas técnicas están especificamente descritas más adelante en conjunto con la codificación de corrección de error. La figura 3 muestra un diagrama en bloques de una modalidad del controlador de la memoria rápida NAND 140 con capacidad ECC. El controlador de la memoria rápida NAND 140 incluye una unidad de control 310, una unidad ECC 320, y una memoria intermedia de página 330, todos estos pueden operar para leer o escribir una página de datos a la vez a/desde la memora rápida NAND 150. Los registradores 312 dentro de la unidad de control 310 almacena parámetros pertinentes (por ejemplo, la configuración actual) para la unidad de control. Para una operación de lectura, la unidad de control 310 es primero cargada con la dirección de una página especifica que va a ser leida de la memoria rápida NAND 150 y después se provee con un comando para comenzar a leer la página. La dirección de la página y comando pueden venir del controlador principal 130 o procesador principal 124. La unidad de control 310 provee entonces un comando de lectura y la dirección de la página seleccionada a la memoria rápida NAND. La unidad de control 310 de ahi en adelante genera y provee las señales de control apropiadas para leer un byte de datos a la vez de la memoria rápida NAND para la página seleccionada. Cada lectura de byte de datos de la memoria rápida NAND es almacenada en la memoria intermedia de página 330. La unidad ECC 320 también recibe cada byte de datos conforme es leido y utiliza el byte de datos para generar un valor ECC para la página seleccionada. Después de que todos los bytes en la página seleccionada se han leido de la memoria rápida NAND, el valor ECC almacenado en el área de reserva para la página seleccionada es leido. La unidad ECC 320 compara entonces el valor ECC almacenado contra el valor ECC generado por la página seleccionada. Basado en el resultado de la comparación, la unidad ECC 320 tiene la capacidad de determinar si ha.y errores en la página recién leida de la memoria rápida NAND. La unidad ECC 320 también puede utilizar el valor ECC almacenado para determinar la ubicación de cada error de bit y para corregir cada error de bit, hasta el número máximo de errores de bit. Para cada página, el número máximo de errores de bit que se puede corregir en base al valor ECC es determinado por la capacidad de corrección de error del esquema ECC seleccionado para uso. La unidad ECC 320 puede informar a la unidad de control 310 de errores detectados, corregidos y/o incorregibles. Los errores incorregibles son errores que exceden la capacidad de corrección de error del esquema ECC utilizado para la memoria rápida NAND. Para una operación de escritura, la unidad de control 310 es primero cargada con la dirección de una página especifica en la memoria rápida NAND en donde una página de datos se va a escribir y después se provee con un comando para comenzar a escribir la página. La unidad de control 310 después provee un comando de escritura y la dirección de la página seleccionada a la memoria rápida NAND. La unidad de control 310 genera de ahi en adelante y provee las señales de control apropiadas para escribir un byte de datos a la vez a partir de la memoria intermedia de página 330 a la memoria rápida NAND. La unidad ECC 320 también recibe cada byte . de datos escrito a la memoria rápida NAND y utiliza el byte de datos para generar un valor ECC para la página. Después de que todos los bytes de datos se han escrito a la memoria rápida NAND, el valor ECC generado por la unidad ECC 320 es escrito para el área de reserva para la página. Cada página de datos en la memoria rápida NAND está entonces asociada con un valor ECC que puede ser utilizado, durante una lectura posterior, para detectar y corregir errores de bit en la página. El cuadro 1 enlista las señales de control intercambiadas entre la unidad de control 310 y la memoria rápida NAND 150.
CUADRO 1 La "n" para las señales CS__n, RE_n, y WE_n indica que estas señales están activas con baja lógica. Cuando la memoria rápida NAND está ocupada, como se indica por medio de la señal Ready que está en baja lógica, la unidad de control 310 no provee ninguna señal de control a la memoria rápida NAND. La descripción detallada de las señales de control enlistadas en el cuadro 1 se puede obtener a partir de las hojas de datos para dispositivos de memoria rápida NAND comercialmente disponibles. La figura 4 muestra un diagrama de temporización para leer una página de datos de la memoria rápida NAND. Para leer la página seleccionada, la memoria rápida NAND se activa primero trayendo la señal CS_n a la lógica baja. Un comando de lectura es enviado entonces a la memoria rápida NAND trayendo la señal CLE a la lógica alta y proveyendo el comando de lectura al puerto I/O de la memoria rápida NAND. La dirección de página es después enviada a la memoria rápida NAND trayendo la señal ALE a la lógica alta y proveyendo la dirección de la página al puerto I/O. Se provee un byte a la vez a la dirección de página, con el número de bytes de dirección determinado por el tamaño y la estructura de la memoria rápida NAND. La lectura real de la página seleccionada puede comenzar cuando la señal Ready es traída a la lógica alta, lo cual indica que la memoria rápida NAND no está ocupada. Cada byte de datos para la página seleccionada es leído a partir de la memoria rápida NAND mediante el aprovisionamiento de la señal RE_n apropiada a la memoria rápida NAND. Después de que todos los bytes datos para la página seleccionada se han leido de la memoria rápida NAND, el valor ECC almacenado en el área de reserva para la página seleccionada es leído de la memoria rápida NAND.
Después de que el valor ECC entero ha sido leido, la memoria rápida NAND es deshabilitada trayendo la señal CS_n a la lógica alta. La figura 5 muestra un diagrama de temporización para escribir una página de datos a la memoria rápida NAND. Para escribir , la página seleccionada, la memoria rápida NAND es primero activada trayendo la señal CS_n a la lógica baja. La memoria rápida NAND indica que no está ocupada trayendo la señal Ready a la lógica alta. Un comando de escritura es enviado entonces a la memoria rápida NAND, y la dirección de, página es de ahi en adelante enviada a la memoria rápida NAND a través del puerto I/O. Cada byte de datos para la página seleccionada es después escrito a la memoria rápida NAND mediante el aprovisionamiento de la señal WE_n apropiada a la memoria rápida NAND. El byte de datos también es recibido por la unidad ECC 320 y utilizado para genera un valor ECC para la página. Después de que todos los bytes de datos para la página seleccionada han sido escritos a la memoria rápida NAND, el valor ECC generado para la página es escrito al área de reserva para la página seleccionada. Después de que el valor ECC entero ha sido escrito, un comando de confirmar escritura es enviado a la memoria rápida NAND y la memoria rápida NAND es entonces deshabilitada trayendo la señal CS n a la lógica alta.
Haciendo referencia a la figura 3, la unidad de control 310 recibe un reloj de entrada (CLK) y genera las señales de control RE_n, WE__n y otras señales de control para la memoria rápida NAND con base en este reloj de entrada. La unidad de control 310 puede utilizar cualquier número de ciclos de reloj de entrada para cada acceso a la memoria rápida NAND. Un acceso a la memoria rápida NAND es una lectura o una escritura de un byte de datos de/para la memoria rápida NAND. El número de ciclos de reloj de entrada para cada acceso de memoria determina la velocidad de acceso a la memoria, es decir, la velocidad de acceso de memoria está inversamente relacionada con el número de ciclos de reloj de entrada por acceso de memoria. La velocidad de acceso de memoria rápida NAND es seleccionada para lograr el acceso confiable de la memoria rápida NAND y puede ser dinámicamente ajustada en base al desempeño de acceso, como se describe más adelante. La unidad de control 310 genera la señal RE_n apropiada para leer datos de la memoria rápida NAND y la señal WE_n apropiada para escribir datos a la memoria rápida NAND, ambos en base a la velocidad de acceso de memoria rápida NAND seleccionada. La figura 6A muestra un diagrama de temporización de una modalidad para generar las señales RE_n y WE_n para una velocidad de acceso a la memoria rápida NAND con dos ciclos de reloj de entrada (o 2TCL?) po acceso de memoria rápida NAND. Para que cada acceso de memoria lea un byte de datos de la memoria rápida NAND, la señal RE_n tiene una porción de establecimiento de lógica alta (etiquetada como Restablecimiento) seguido por una porción activa de lógica baja (etiquetado como Ractiva) • Para la modalidad en la figura 6A, la porción de establecimiento de lectura tiene una amplitud de un ciclo de reloj , y la porción activa de lectura también tiene una amplitud de un ciclo de relo . Para que cada acceso a la memoria escriba un byte de datos a la memoria rápida NAND, la señal WE_n tiene una porción de establecimiento de lógica alta (etiquetada como Westabiecimiento) r seguida por una porción activa de lógica baja (etiquetado como Wactiva) , Y además seguida por una porción de lógica alta sostenida (etiquetada como Wsostenida) • Para la modalidad en la figura 6A, la porción de establecimiento de escritura es la mitad de la amplitud de un ciclo de reloj , la porción activa de escritura tiene una amplitud de un ciclo de reloj, y la porción de escritura sostenida también tiene la amplitud de la mitad de un ciclo de reloj . La figura 6B muestra un diagrama de temporización de una modalidad para generar las señales RE_n y WE_n para una velocidad de acceso de memoria rápida NAND con cuatro ciclos de reloj de entrada (o 4TCLK) por acceso a la memoria rápida NAND. Para la señal RE_n, la porción de establecimiento de lectura tiene una amplitud de un ciclo de reloj , y la porción activa de lectura tiene una amplitud de tres ciclos de reloj . Para la señal WE_n, la porción de establecimiento de escritura tiene una amplitud de un ciclo de reloj , la porción activa de escritura tiene una amplitud de dos ciclos de reloj , y la porción de escritura sostenida también tiene una amplitud de un ciclo de reloj . El cuadro 2 muestra una modalidad para generar señales RE_n y WE_n con diferentes números de ciclos de reloj de entrada para diferentes configuraciones de acceso a la memoria rápida NAND (o simplemente, "configuraciones") . Una configuración también puede ser referida como un estado de espera, un modo, una configuración, o alguna otra terminología. Cada configuración está asociada con una velocidad de acceso a la memoria rápida NAND diferente, la cual es determinada en un número entero de ciclos de reloj de entrada en la columna 2 del Cuadro 2. Para cada configuración, la porción de establecimiento Restablecimiento y l porción activa Ractiva para la señal RE__n son proporcionadas en la tercera y cuarta columnas, respectivamente, del Cuadro 2. La porción de establecimiento Westabiecimiento, la porción activa activa, y la porción sostenida Wsostenida para la señal WE_n son proporcionadas en la quinta, sexta, y séptima columnas, respectivamente, del cuadro 2.
CUADRO 2 El cuadro 2 muestra una modalidad específica con ocho configuraciones y modalidades especificas de las señales RE_n ' y WE_n para operaciones de lectura y escritura, respectivamente. En general, cualquier número de configuraciones puede ser soportado, cada configuración puede estar asociada con cualquier (entero o no-entero) número de ciclos de reloj de entrada, y las diversas porciones de las señales RE_n y WE_n pueden ser definidas para tener cualquier duración de tiempo conveniente. El número de configuraciones y la definición para cada configuración puede depender de varios factores tales como, por ejemplo, los requerimientos de temporización del dispositivo de memoria rápida NAND, la frecuencia del reloj de entrada, la carga de capacitancia en el enlace entre el controlador de la memoria rápida NAND y la memoria rápida NAND, y así sucesivamente. Una memoria rápida NAND típicamente requiere que la señal RE_n esté en la lógica baja por un tiempo más largo, y Ractiva es a menudo ligeramente más prolongada que Testabiecimiento • Sin embargo, ambos Ractiva y Restablecimiento aumentan en duración cuando hay excesiva carga de capacitancia en el enlace, o bajo condiciones cuando los controladores de ruta/línea pueden estar debilitados . La figura 7 muestra un diagrama de flujo de un proceso 700 para lectura de datos de la memoria rápida NAND con temporizacion de interfaz adaptiva. El proceso 700 se puede utilizar para transferir código de programa de la memoria rápida NAND a la SDRAM como parte de un arranque siempre que el dispositivo inalámbrico sea encendido. Inicialmente, el controlador de memoria rápida NAND 140 está configurado con una configuración inicial, la cual puede ser para la velocidad de acceso a la memoria rápida NAND pronosticada para proveer acceso confiable de la memoria rápida NAND (bloque 712) . Esta configuración inicial puede, ser determinada en base al diseño del dispositivo inalámbrico y puede además ser seleccionada para lograr la lectura exitosa de la memoria rápida NAND bajo la mayoría de las condiciones de operación. Esta configuración inicial también puede ser la configuración que fue utilizada más recientemente para leer con éxito a partir de la memoria rápida NAND. La configuración inicial también puede ser la configuración para la velocidad de acceso a la memoria más rápida soportada por el dispositivo inalámbrico (por ejemplo configuración 0 en el cuadro 2) . En cualquier caso, la unidad de control 310 genera la RE_n, WE_n, y otras señales de control para la memoria rápida NAND conforme ß la configuración inicial. Un índice de página i es establecido para que la primera página sea leída de la memoria rápida NAND (bloque 714) . La página i es después leída de la memoria rápida NAND utilizando las señales de control generadas conforme a la configuración actual la cual, para la primera página, es la configuración inicial (bloque 722) . En una modalidad, después de que la página i entera ha sido leída de la memoria rápida NAND, se toma una determinación de si cualquier error incorregible es encontrado para la página i (bloque 724) . Si hay errores incorregibles para la página i, como se determinó en el bloque 726, entonces el controlador de la memoria rápida NAND 140 es reconfigurado con otra configuración para una velocidad de acceso a la memoria más lenta que la configuración que actualmente está siendo utilizada (bloque 728) . En otra modalidad, después de que la página i entera ha sido leída, se toma una determinación de si cualquier error corregido o incorregible és encontrado para la página i (bloque 724). Si hay errores de cualquier tipo para la página i , entonces el controlador de la memoria rápida NAND 140 es reconfigurado con otra configuración para una velocidad de acceso de memoria más lenta (bloque 728). Otra configuración se puede seleccionar de varias maneras en el bloque 728. En una modalidad, se selecciona la configuración para la siguiente velocidad de acceso a la memoria más lenta. Por ejemplo, si se encuentran errores con la configuración 1 en el cuadro 2, entonces se selecciona la _ configuración 2. En otra modalidad, se selecciona una configuración para una velocidad de acceso a la memoria que es aproximadamente dos veces tan lenta como la configuración actual. Por ejemplo, si los errores son encontrados con la configuración 1, -la cual utiliza tres ciclos de reloj de entrada por acceso de memoria, entonces se selecciona la configuración 4 que tiene seis ciclos de reloj de entrada por acceso de memoria. En otra modalidad todavía, se selecciona la configuración para la velocidad de acceso de peor caso si se encuentran errores. Por ejemplo, si la configuración 5 es para la velocidad de acceso del peor caso, entonces la configuración 5 se puede seleccionar si los errores son encontrados para la página i, sin tomar en cuenta la configuración utilizada para leer la página i. En todavía otra modalidad, se selecciona la configuración para la velocidad de acceso a la memoria más lenta si se encuentran errores. En cualquier caso, después del bloque 728, el proceso regresa al bloque 722 para leer la misma página i de la memoria rápida NAND, aunque utiliza las señales de control generadas conforme a la nueva configuración seleccionada. Si no se encuentran errores para que la página recién leída, como se determina en el bloque 726, entonces se toma una determinación respecto a si todas las páginas han sido leídas de la memoria rápida NAND (Bloque 730) . Si la respuesta es No' , entonces el índice de página aumenta como i=i+l (bloque 732). El proceso regresa entonces al bloque 722 para leer la siguiente página de la memoria rápida NAND. De Jo contrario, si todas las páginas han sido leídas de la memoria rápida NAND, entonces el proceso termina. La configuración actual que resulta en una lectura exitosa de la memoria rápida NAND se puede guardar (por ejemplo, en los registradores 312 dentro de la unidad de control 310 en la figura 3) y se puede utilizar después como la configuración inicial para el siguiente acceso a la memoria rápida NAND. Si el proceso 700 es llevado a cabo para un arranque de encendido, entonces el código de programa se puede leer de la memoria rápida NAND y cargar en la SDRAM. Después de que la transferencia es completada, el código de programa en la SDRAM se puede llevar a cabo por los procesadores y/o controladores dentro de la sección digital 120. La figura 8 muestra un diagrama de flujo de un proceso 800 para escribir datos a la memoria rápida NAND con temporización de interfaz adaptiva. El proceso 800 se puede utilizar para escribir código de programa o una gran cantidad de datos en la memoria rápida NAND. Inicialmente, el controlador de la memoria rápida NAND 140 está configurado con una configuración inicial, la cual puede ser para la velocidad de acceso a la memoria rápida NAND pronosticada para proveer acceso confiable de la memoria rápida NAND (bloque 812) . Esta configuración inicial se puede determinar como se describió anteriormente en la figura 7. La unidad de control 310 genera la RE_n, WE_n, y otras señales de control para la memoria rápida NAND conforme a la configuración inicial. Un índice de página i es establecido para la primera página que se va a escribir a la memoria rápida NAND (bloque 814). La página i se escribe a la memoria rápida NAND utilizando las señales de control generadas conforme a la configuración actual la cual, para la primera página, es la configuración inicial (bloque 820) . Un valor ECC se calcula para la página i y se escribe al área de reserva para la página i (también en el bloque 820) . Después de que la página entera i se escribió a la memoria rápida NAND, esta misma página i se lee de regreso de la memoria rápida NAND utilizando las señales de control generadas conforme a la configuración actual (bloque 822) . Se toma entonces una determinación respecto a si se encontraron errores para la página i (bloque 824) . Esto se puede lograr (1) calculando un valor ECC para la página leída de la memoria rápida NAND y (2) comparando el valor ECC calculado para la página leída de la memoria rápida NAND contra el valor ECC calculado para la página escrita a la memoria rápida NAND. Si hay errores para la página i, como se determinó en el bloque 826, entonces el controlador de la memoria rápida NAND 140 es reconfigurado con otra configuración para una velocidad de acceso a la memoria más lenta que la .configuración que actualmente se está utilizando (bloque 828). Esta nueva configuración se puede seleccionar como se describió anteriormente para la figura 7. El proceso regresa entonces al bloque 820 para escribir la misma página i a la memoria rápida NAND, no obstante utilizando las señales de control generadas conforme a la nueva configuración seleccionada. Si no se encuentran errores para que la página recién leida, como se determinó en el bloque 826, entonces se toma una determinación respecto a si todas las páginas se escribieron' a la memoria rápida NAND (bloque 830). Si la respuesta es ?No' , entonces el índice de página se incrementa como i=i+l (bloque 832) , y el proceso regresa al bloque 820 para escribir' la siguiente página a . la memoria rápida NAND en la misma manera. De otra forma, el proceso termina si todas las páginas se escribieron. La configuración actual que resulta en una escritura exitosa a la memoria rápida NAND se puede guardar (por ejemplo, en los registros 312 dentro de la unidad de control 310 en la figura 3) y utilizar después como la configuración inicial para el siguiente acceso a la memoria rápida NAND. La modalidad que se muestra en la figura 8 escribe una página a la vez a la memoria rápida NAND y también lee de regreso y verifica cada página que se escribe a la memoria rápida NAND. En otra modalidad, la configuración que resulta en una escritura exitosa de la primera página a la memoria rápida NAND se puede estimar para proveer acceso confiable de la memoria rápida NAND. Cada página restante se puede escribir a la memoria rápida NAND utilizando la configuración estimada como confiable. Alternativamente, cada página restante se puede escribir a la memoria rápida NAND utilizando otra configuración con una velocidad de acceso a la memoria más baja y tener más margen de tiempo que la configuración utilizada para escribir exitosamente la primera página. Las figuras 7 y 8 muestran procesos ejemplares para leer datos de y escribir datos a la memoria rápida NAND con tempoxización de interfaz adaptiva. La lectura y escritura para la memoria rápida NAND con temporización de interfaz adaptiva también se pueden llevar a cabo en otras maneras, y esto está dentro del alcance de la invención. El acceso a la memoria con temporización de interfaz adaptiva, como aquí se describe, se puede llevar a cabo en conjunto con varios tipos de codificación de corrección de error y codificación de detección de error. Algunos códigos ejemplares de corrección de error incluyen códigos de bloque tal como código Hamming, código Reed-Solomon, código BCH (Bose, Chaudhuri, y Hocquenghem) , y así sucesivamente. Los códigos de bloque sistemáticos pueden proveer facilidad de empleo ya que cada página de bloque codificado incluye datos originales sin modificación (lo cual es a menudo llamado la porción sistemática) seguido por datos de paridad (lo cual con frecuencia se denomina la porción de paridad) . Los datos de paridad son el valor ECC generado a partir de la porción de datos. Cada página de bloque codificado sistemática incluye por lo tanto P bytes de datos seguidos por S bytes de paridad. Los datos para la página se pueden escribir en o leer de la memoria rápida NAND seguidos inmediatamente por los datos de paridad, y no se necesita un almacenaje temporal para la porción sistemática o de paridad. La codificación de bloque está descrita en numerosas referencias disponibles en la técnica. Una de dichas referencias es un bloque por S. Lin y D. Costello, titulada "Codificación de control de Error: Fundamentos y Aplicaciones", Prentice Hall, 1983. En una modalidad se utiliza un código Hamming para la codificación de corrección de error para una memoria rápida NAND que tiene un tamaño de 512 bytes y un área de reserva de 16 bytes por página. Cada página de 512 bytes de datos está dividida en cuatro conjuntos independientes, donde cada conjunto incluye 128 bytes de datos. El código Hamming codifica los 128 bytes de datos en cada conjunto y genera 20 bits de código para el conjunto. El encabezado de codificación total para cada página es de 80 bits de código, lo cual se puede guardar en los 16 bytes de reserva para la página. Este código Hamming tiene la siguiente capacidad de corrección/detección de error: (1) puede corregir un error de bit en cada conjunto, (2) puede detectar dos o más errores de bit en cada conjunto, y (3) puede corregir hasta cuatro errores de bit distribuidos sobre cuatro conjuntos en cada página. Lo anterior representa un diseño de codificación de corrección de error específico. Otros diseños también se pueden ejecutar y están dentro del alcance de la invención.
Los códigos de detección de error sin capacidad de corrección de error también se pueden utilizar para detectar errores en los datos de la memoria rápida NAND. Un código de detección de error común es un código de chequeo de redundancia cíclica (CRC) . El acceso a la memoria con temporización de interfaz adaptiva permite el arranque rápido y confiable. El buen desempeño se puede lograr sin tener que utilizar dispositivos de memoria rápida NAND de grado más alto de velocidad. Además, no hay limitación en el enlace entre la memoria rápida NAND y el controlador de memoria rápida NAND. Diferentes dispositivos externos se pueden acoplar a este enlace para diferentes dispositivos inalámbricos y para diferentes configuraciones del mismo dispositivo inalámbrico. El proceso de arranque se puede adaptar de manera dinámica y automática a las diferentes configuraciones del dispositivo inalámbrico para proveer un arranque confiable cada vez que el dispositivo es encendido . Las técnicas de acceso a la memoria aquí descritas se pueden utilizar para varias aplicaciones. Dichas aplicaciones incluyen arranque de encendido inicial del código de programa ejecutable (desde la memoria rápida NAND a la SDRAM) , descarga y reproducción de código de aplicación (por ejemplo, código para audio, video y otras aplicaciones finales) , carga de tiempo de ejecución de código ejecutable (de la memoria rápida NAND a la SDRAM), y así sucesivamente. Por claridad, la descripción anterior es para una arquitectura de memoria específica en la cual la memoria rápida NAND y la SDRAM están fuera de la sección digital 120. En general, las técnicas de acceso a la memoria aquí descritas se pueden utilizar para varios tipos de memoria, siempre y cuando los datos almacenados en la memoria estén protegidos con un código de detección/corrección de error que pueda indicar errores que ocurren durante las transferencias de datos hacia/desde la memoria. La sección digital 120 se puede ejecutar con un ASIC, y la memoria rápida NAND y SDRAM se pueden ejecutar en los mismos circuitos integrados o separados que están fuera del ASIC. Las técnicas aqui descritas también se pueden utilizar en diseños por medio de los cuales la memoria rápida NAND, la SDRAM, o ambas, son ejecutadas en la sección digital 120. También por claridad, varios aspectos y modalidades se han descrito especificamente para la memoria rápida NAND Y SDRAM. Otros tipos de memoria se pueden utilizar para la memoria rápida NAND y la SDRAM. Las técnicas de acceso de memoria se pueden utilizar para otros tipos de dispositivo de memoria además de la memoria rápida NAND. Estas técnicas también se pueden utilizar para la transferencia de datos entre la memoria rápida NAND y otros tipos de memoria tal como, por ejemplo, una SRAM asincrona, una SRAM de lectura de página asincrona, una pseudo-RAM, una DRAM, una pseudo-RAM (no-paginada y paginada) una RAM en ráfaga y asi sucesivamente. Las técnicas de acceso a la memoria aquí descritas se pueden utilizar para dispositivos de comunicación inalámbrica, dispositivos electrónicos del consumidor (por ejemplo, cámaras digitales, reproductores de audio digitales, lectores/escritores de tarjeta de memoria, y así sucesivamente) sistemas de cómputo, otros dispositivos portátiles, y otros dispositivos y sistemas electrónicos. Estas técnicas se pueden utilizar ventajosamente para cualquier dispositivo en el cual se utiliza la memoria rápida NAND como la unidad de almacenaje masiva, por ejemplo, en una manera similar a un disco duro, de manera que grandes cantidades de datos se puedan escribir a y/o leer desde la memoria rápida NAND. Estas técnicas también se pueden utilizar para varias formas de memoria rápida NAND, tal como tarjetas de memoria rápida compacta, tarjetas de memoria de datos asegurados (SD) , y así sucesivamente. Las técnicas de acceso a la memoria aqui descritas se pueden ejecutar a través de varios medios. Las unidades utilizadas para soportar acceso a la memoria (por ejemplo el controlador de memoria rápida NAND 140) se puede ejecutar dentro" de un ASIC, un DSP, un dispositivo de procesamiento • de señal digital (DSPD) , un dispositivo lógico programable (PLD) , una matriz de puertas de campo programable (FPGA) , un procesador, un controlador, un micro-controlador, un microprocesador, otras unidades electrónicas diseñadas para llevar a cabo las funciones aqui descritas, o una combinación de las mismas. La descripción anterior de las modalidades descritas se provee para permitir a cualquier persona experta en la . técnica hacer o utilizar la presente invención. Varias modificaciones a estas modalidades serán rápidamente aparentes para los expertos en la técnica, y los principios genéricos aquí definidos se pueden aplicar a otras modalidades sin apartarse del espíritu o alcance de la invención. Por lo tanto, la presente invención no pretende quedar limitada a las modalidades aquí mostradas sino que se le .acordará el alcance más amplio consistente con los principios y características novedosas aqui descritas.

Claims (1)

  1. NOVEDAD DE LA INVENCIÓN Habiendo descrito el presente invento, se considera como una novedad y, por lo tanto, se reclama como prioridad lo contenido en las siguientes: REIVINDICACIONES 1.- Un método para leer datos de un dispositivo de memoria, que comprende: seleccionar una primera velocidad de acceso a la memoria para tener acceso al dispositivo de memoria; leer una primera página del dispositivo de memoria a la primera velocidad de acceso a la memoria; determinar si la primera página de datos leídos del dispositivo de memoria incluye errores; y seleccionar una segunda velocidad de acceso a la memoria para tener acceso al dispositivo de memoria si la primera página de datos leídos del dispositivo de memoria incluye errores, la segunda velocidad de acceso a la memoria es más lenta que la primera velocidad de acceso a la memoria. 2.- El método de conformidad con la reivindicación 1, caracterizado porque el dispositivo de memoria es una memoria rápida NAND. 3. - Un método para leer datos de una memoria rápida NAND, que comprende: seleccionar una primera velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND; leer una primera página de datos de la memoria rápida NAND a la primera velocidad de acceso a la memoria; determinar si la primera página de datos leída de la memoria rápida NAND incluye errores; y seleccionar una segunda velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND si la primera página de datos leidos de la memoria rápida NAND incluye errores, la segunda velocidad de acceso a la memoria es más lenta que la primera velocidad de acceso a la memoria. . - El método de conformidad con la reivindicación 3, que comprende además: si la primera página de datos leídos de la memoria rápida NAND incluye errores, leer la primera página de datos de la memoria rápida NAND nuevamente a la segunda velocidad de acceso a la memoria. 5. - El método de conformidad con la reivindicación 3, que comprende además: si la primera página de datos leídos de la memoria rápida NAND no incluye errores, leer cada una de al menos una página adicional de datos de la memoria rápida NAND a la primera velocidad de acceso a la memoria. 6.- El método de conformidad con la reivindicación 3, que además comprende: generar señales de control para leer datos de la memoria rápida NAND conforme a la velocidad de acceso a la memoria actualmente seleccionada. 1 . - El método de conformidad con la reivindicación 3, caracterizado porque la primera y segunda velocidades de acceso a la memoria están asociadas con el primer y segundo números de ciclos de reloj, respectivamente, para cada acceso a la memoria rápida NAND. 8.- El método de conformidad con la reivindicación 3, caracterizado porque la determinación de si la primera página de los datos leídos de la memoria rápida NAND incluye errores comprende: determinar si la primera página de datos leídos de la memoria rápida NAND incluye errores en base a la codificación de corrección de error (ECC) utilizada para datos almacenados en la memoria rápida NAND. 9. - El método de conformidad con la reivindicación 3, caracterizado porque la determinación de si la primera página de los datos leídos de la memoria rápida NAND incluye errores comprende: calcular un valor de codificación de corrección de error (ECC) para la primera página de datos leídos de la memoria rápida NAND, comparar el valor ECC calculado contra un valor ECC leído de la memoria rápida NAND para la primera página, y determinar si la primera página incluye errores basado en el valor ECC calculado y el valor ECC leido para la primera página. 10.- El método de conformidad con la reivindicación 3, caracterizado porque determinar si la primera página de datos leídos de la memoria rápida NAND incluye errores comprende : determinar si la primera página de datos leídos de la memoria rápida NAND incluye errores en base a la codificación de detección de error para datos almacenados en la memoria rápida NAND. 11.- El método de conformidad con la reivindicación 3, caracterizado porque la primera velocidad de acceso a la. memoria es una velocidad de acceso a la memoria más rápida entre una pluralidad de velocidades de acceso a la memoria soportadas. 12.- El método de conformidad con la reivindicación 3, caracterizado porque la primera velocidad de acceso a la ( memoria es una velocidad de acceso a la memoria utilizada previamente para leer con éxito datos de la memoria rápida NAND. 13.- El método de conformidad con la reivindicación.3., caracterizado porque la primera velocidad de acceso a la memoria es una velocidad de acceso a la memoria pronosticada para proveer acceso confiable de la memoria rápida NAND para la mayoría de las condiciones de operación. 14.- El método de conformidad con la reivindicación 3, caracterizado porque la segunda velocidad de acceso a la memoria es una siguiente velocidad de acceso a la memoria más lenta que la primera velocidad de acceso a la memoria entre una pluralidad de velocidades de acceso a la memoria soportadas. 15.- El método de conformidad con la reivindicación 3, caracterizado porque la segunda velocidad de acceso a la memoria es un porcentaje predeterminado más lenta que la primera velocidad de acceso a la memoria. 16.- El método de conformidad con la reivindicación 3, caracterizado porque la segunda velocidad de acceso a la memoria es una velocidad de acceso a la memoria pronosticada para proveer acceso confiable de la memoria rápida NAND para la condición de operación del peor caso. 17.- El método de conformidad con la reivindicación 3, caracterizado porque los datos leídos de la memoria rápida NAND es para el código de programa. 18.- Un controlador de memoria que comprende: una unidad de control operable para obtener una primera velocidad de acceso a la memoria para tener acceso a una memoria rápida NAND y para dirigir la lectura de una primera página de datos de la memoria rápida NAND a la primera velocidad de acceso a le memoria; y una unidad de detección operable para determinar si la primera página de datos leídos de la memoria rápida NAND incluye errores, y en donde la unidad de control es operable para obtener una segunda velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND si la primera página de datos leida de la memoria rápida NAND incluye errores, la segunda velocidad de acceso a la memoria que es más lenta que la primera velocidad de acceso a la memoria. 19.- El controlador de memoria de conformidad con la reivindicación 18, caracterizado porque la unidad de control es además operable para generar señales de control para leer datos de la memoria rápida NAND conforme a una velocidad de acceso a la memoria seleccionada actualmente. 20.- El controlador de memoria de conformidad con la reivindicación 18, caracterizado porque la primera y segunda velocidades de acceso a la memoria están asociadas con el primer y segundo números de ciclos de reloj , respectivamente, para cada acceso a la memoria rápida NAND. 21.- Un aparato para leer datos de una memoria rápida NAND, que comprende: medios para seleccionar una primera velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND; medios para leer una primera página de datos de la memoria rápida NAND a la primera velocidad de acceso a la memoria; medios para determinar si la primera página de datos leídos de la memoria rápida NAND incluye errores; y medios para seleccionar una segunda velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND si la primera página de datos leídos de la memoria rápida NAND incluye errores, la segunda velocidad de acceso a la memoria es más lenta que la primera velocidad de acceso a la memoria. 22.- El aparato de conformidad con la reivindicación 21, que además comprende: medios para generar señales de control para leer datos de la memoria rápida NAND conforme a una velocidad de acceso a la memoria seleccionada actualmente. 23.- Un circuito integrado que comprende: una unidad de control operable para obtener una primera velocidad de acceso a la memoria para tener acceso a una memoria rápida NAND externa al circuito integrado y para dirigir la lectura de una primera página de datos de la memoria rápida NAND a la primera velocidad de acceso a la memoria; y una unidad de detección operable para determinar si la primera página de datos leídos de la memoria rápida NAND incluye errores; y en donde la unidad de control es operable para obtener una segunda velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND si la primera página de datos leídos de la memoria rápida NAND incluye errores, la segunda velocidad de acceso a la memoria es más lenta que la primera velocidad de acceso a la memoria. 24.- Un dispositivo inalámbrico que comprende: una unidad de control operable para obtener una primera velocidad de acceso a la memoria para tener acceso a una memoria rápida NAND y para dirigir la lectura de una primera página de datos de la memoria rápida NAND a la primera velocidad de acceso a la memoria; y una unidad de detección operable para determinar si la primera página de datos leídos de la memoria rápida NAND incluye errores; y en donde la unidad de control es operable para obtener una segunda velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND si la primera página de datos leídos de la memoria rápida NAND incluye errores, la segunda velocidad de acceso a la memoria es más lenta que la primera velocidad de acceso a la memoria. 25.- El dispositivo inalámbrico de conformidad con la reivindicación 24, caracterizado porque los datos leídos de la memoria rápida NAND es código de programa para el dispositivo inalámbrico. 26.- El dispositivo inalámbrico de conformidad con la reivindicación 25, caracterizado porque la unidad de control es operable para leer el código de programa de la memoria rápida NAND cada vez que se enciende el dispositivo inalámbrico. 27.- Un método para escribir datos a una memoria rápida NAND, que . comprende : seleccionar una primera velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND; escribir una primera página de datos a la memoria rápida NAND a la primera velocidad de acceso a la memoria; determinar si la primera página de datos fue correctamente escrita a la memoria rápida NAND; y seleccionar una segunda velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND si la primera página de datos no fue correctamente escrita a la memoria rápida NAND, la segunda velocidad de acceso de memoria es más lenta que la primera velocidad de acceso a la memoria. 28.- El método de conformidad con la reivindicación 27, caracterizado porque la determinación de si la primera página de datos fue correctamente escrita a la memoria rápida NAND incluye: leer la primera página de datos de regreso de la memoria rápida NAND a la primera velocidad de acceso a la memoria, determinar si la primera página de datos leídos de la memoria rápida NAND incluye errores, y declarar que la primera página de datos sea correctamente escrita a la memoria rápida NAND si la primera página de datos leída de regreso de la memoria rápida NAND no incluye errores. 29.- El método de conformidad con la reivindicación 27, caracterizado porque la primera y segunda velocidades de acceso a la memoria están asociadas con el primer y segundo números de ciclos de reloj , respectivamente, para cada acceso a la memoria rápida NAND. 30.- Un controlador de memoria que comprende: una unidad de control operable para obtener una primera velocidad de acceso a la memoria para tener acceso a una memoria rápida NAND y para dirigir la escritura de una primera página de datos a la memoria rápida NAND a la primera velocidad de acceso a la memoria; una unidad de detección operable para determinar si la primera página de datos fue correctamente escrita a la memoria rápida NAND, y en donde la unidad de control es además operable para obtener una segunda velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND si la primera página de datos no fue correctamente escrita a la memoria rápida NAND, la segunda velocidad de acceso a la memoria es más lenta que la primera velocidad de acceso a la memoria. 31.- El controlador de memoria de conformidad con la reivindicación 30, caracterizado porque la unidad de detección es operable para: recibir la primera página de datos leída de regreso de la memoria rápida NAND a la primera velocidad de acceso a la memoria, determinar si la primera página de datos leída de regreso de la memoria rápida NAND incluye errores, y declarar que la primera página de datos sea correctamente escrita a la memoria rápida NAND si la primera página -de datos leida de regreso de la memoria rápida NAND no incluye errores. 32.- Un aparato para escribir datos a la memoria rápida NAND, que comprende: medios para seleccionar una primera velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND; medios para escribir una primera página de datos a la memoria rápida NAND a la primera velocidad de acceso a la memoria; medios para determinar si la primera página de datos fue correctamente escrita a la memoria rápida NAND; y medios para seleccionar una segunda velocidad de acceso a la memoria para tener acceso a la memoria rápida NAND si la primera página de datos no fue correctamente escrita a la memoria rápida NAND, la segunda velocidad de acceso a la memoria es más lenta que la primera velocidad de acceso a la memoria. 33.-- El aparato de conformidad con la reivindicación 32, caracterizado porque el medio para determinar si la primera página de datos fue correctamente escrita a la memoria rápida NAND incluye: medios para leer la primera página de datos de regreso de la memoria rápida NAND a la primera velocidad de acceso a la memoria, medios para determinar si la primera página de datos leída de regreso de la memoria rápida NAND incluye errores, y medios para declarar que la primera página de datos sea correctamente escrita a la memoria rápida NAND si la primera página de datos leída de regreso de la memoria rápida NAND no incluye errores.
MX2007006033A 2004-11-18 2005-11-16 Acceso de memoria de alta velocidad y robusta con temporizador de interfaz adaptiva. MX2007006033A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/993,034 US7061804B2 (en) 2004-11-18 2004-11-18 Robust and high-speed memory access with adaptive interface timing
PCT/US2005/041692 WO2006055717A2 (en) 2004-11-18 2005-11-16 Robust and high-speed memory access with adaptive interface timing

Publications (1)

Publication Number Publication Date
MX2007006033A true MX2007006033A (es) 2007-07-20

Family

ID=36386084

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2007006033A MX2007006033A (es) 2004-11-18 2005-11-16 Acceso de memoria de alta velocidad y robusta con temporizador de interfaz adaptiva.

Country Status (5)

Country Link
US (1) US7061804B2 (es)
CN (1) CN100578660C (es)
MX (1) MX2007006033A (es)
TW (1) TW200632933A (es)
WO (1) WO2006055717A2 (es)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20035072A0 (fi) * 2003-05-22 2003-05-22 Nokia Corp Liitäntäväylä, elektroniikkalaite ja järjestelmä
EP1909289A1 (en) * 2005-06-28 2008-04-09 Spansion LLC Semiconductor device and control method thereof
JP4991131B2 (ja) * 2005-08-12 2012-08-01 株式会社東芝 半導体記憶装置
CN100349108C (zh) * 2005-11-21 2007-11-14 北京中星微电子有限公司 与非门快闪存储器的物理接口、接口方法和管理设备
KR100678124B1 (ko) * 2006-01-26 2007-02-02 삼성전자주식회사 화상 통신 단말 및 화상 통신 단말의 화상 통신 데이터처리 방법
US7471562B2 (en) * 2006-05-08 2008-12-30 Macronix International Co., Ltd. Method and apparatus for accessing nonvolatile memory with read error by changing read reference
US7773421B2 (en) * 2006-05-08 2010-08-10 Macronix International Co., Ltd. Method and apparatus for accessing memory with read error by changing comparison
US8077516B2 (en) * 2006-05-08 2011-12-13 Macronix International Co., Ltd. Method and apparatus for accessing memory with read error by changing comparison
JP2008090433A (ja) * 2006-09-29 2008-04-17 Toshiba Corp メモリコントローラ、メモリシステム及びデータ転送方法
KR100784865B1 (ko) 2006-12-12 2007-12-14 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것을 포함한 메모리 시스템
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
KR101394693B1 (ko) 2007-08-08 2014-05-15 엘지전자 주식회사 Pld 및 nand 플래시 메모리를 이용한 전자기기의 부팅 방법
US8499229B2 (en) * 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US8046542B2 (en) 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US8327245B2 (en) 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US9152496B2 (en) * 2007-12-21 2015-10-06 Cypress Semiconductor Corporation High performance flash channel interface
US8484407B2 (en) 2007-12-21 2013-07-09 Rambus Inc. Flash memory timing pre-characterization
KR100897298B1 (ko) 2007-12-27 2009-05-14 (주)인디링스 읽기 신호 타이밍을 조정하는 플래시 메모리 장치 및플래시 메모리 장치의 읽기 제어 방법
CN101645026B (zh) * 2008-08-07 2011-11-16 创惟科技股份有限公司 根据错误更正码更新闪存页面的储存装置与方法
US8175012B2 (en) * 2009-03-26 2012-05-08 Mediatek Inc. Decoding/encoding method for booting from a NAND flash and system thereof
US8413015B2 (en) * 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
CN102034552A (zh) * 2009-09-25 2011-04-27 威刚科技(苏州)有限公司 存储装置与其资料处理方法
US8843692B2 (en) 2010-04-27 2014-09-23 Conversant Intellectual Property Management Inc. System of interconnected nonvolatile memories having automatic status packet
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US8555050B2 (en) * 2010-07-15 2013-10-08 Broadcom Corporation Apparatus and method thereof for reliable booting from NAND flash memory
US8464137B2 (en) 2010-12-03 2013-06-11 International Business Machines Corporation Probabilistic multi-tier error correction in not-and (NAND) flash memory
US8595597B2 (en) 2011-03-03 2013-11-26 Intel Corporation Adjustable programming speed for NAND memory devices
US8996957B1 (en) 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9021337B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8788910B1 (en) 2012-05-22 2014-07-22 Pmc-Sierra, Inc. Systems and methods for low latency, high reliability error correction in a flash drive
US9047214B1 (en) 2012-05-22 2015-06-02 Pmc-Sierra, Inc. System and method for tolerating a failed page in a flash device
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US8972824B1 (en) 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US9021336B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US8793556B1 (en) 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US9021333B1 (en) 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US9577673B2 (en) 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
US9053012B1 (en) 2013-03-15 2015-06-09 Pmc-Sierra, Inc. Systems and methods for storing data for solid-state memory
US9009565B1 (en) 2013-03-15 2015-04-14 Pmc-Sierra, Inc. Systems and methods for mapping for solid-state memory
US9208018B1 (en) 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9081701B1 (en) 2013-03-15 2015-07-14 Pmc-Sierra, Inc. Systems and methods for decoding data for solid-state memory
US9026867B1 (en) 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory
CN103455454B (zh) 2013-09-02 2016-09-07 华为技术有限公司 一种控制存储器启动的方法和装置
KR102239356B1 (ko) 2015-02-17 2021-04-13 삼성전자주식회사 클록 제어 유닛 또는 전원 제어 유닛을 포함하는 저장 장치와 메모리 시스템, 그리고 그것의 동작 방법
US9772777B2 (en) 2015-04-27 2017-09-26 Southwest Research Institute Systems and methods for improved access to flash memory devices
JP6860830B2 (ja) * 2016-06-28 2021-04-21 日本精機株式会社 車両用表示装置
US9672905B1 (en) * 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
CN109903800A (zh) * 2019-03-15 2019-06-18 中国科学院上海微系统与信息技术研究所 相变储存器控制装置、相变储存器控制方法、电子装置及存储介质
CN110955387B (zh) * 2019-10-25 2023-10-24 合肥沛睿微电子股份有限公司 自适应识别闪存类型方法及计算机可读取存储介质及装置
KR102685828B1 (ko) * 2022-08-29 2024-07-17 주식회사 피델릭스 입력 클락 신호의 주파수에 따라 동작 상태가 변경되는 반도체 메모리 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
US5784332A (en) * 1996-12-12 1998-07-21 Micron Technology Corporation Clock frequency detector for a synchronous memory device
JP3999900B2 (ja) * 1998-09-10 2007-10-31 株式会社東芝 不揮発性半導体メモリ
JP2002063069A (ja) * 2000-08-21 2002-02-28 Hitachi Ltd メモリ制御装置、データ処理システム及び半導体装置

Also Published As

Publication number Publication date
US7061804B2 (en) 2006-06-13
WO2006055717A3 (en) 2006-09-14
WO2006055717A2 (en) 2006-05-26
CN101099216A (zh) 2008-01-02
US20060104115A1 (en) 2006-05-18
TW200632933A (en) 2006-09-16
CN100578660C (zh) 2010-01-06

Similar Documents

Publication Publication Date Title
MX2007006033A (es) Acceso de memoria de alta velocidad y robusta con temporizador de interfaz adaptiva.
US20220026980A1 (en) Card and host apparatus
US10824523B2 (en) Data storage device and operating method thereof
US9336081B2 (en) Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access
CN110059017B (zh) 用于存取安全数字sd卡的方法及sd卡的控制器
US7949929B2 (en) Controller and storage device having the same
US10917119B2 (en) Data storage system and associated data storing method for reducing data error rate
US7370138B2 (en) Mobile communication terminal including NAND flash memory and method for booting the same
US8762814B2 (en) Method for enhancing error correction capability, and associated memory device and controller thereof
CN109491828B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN111580741B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
US11972827B2 (en) Semiconductor storage device and reading method
EP3499376A1 (en) Memory system varying operation of memory controller according to internal status of memory device
CN113360429B (zh) 数据重建方法、存储器存储装置及存储器控制电路单元
CN111406282B (zh) 一种用于存储设备的存储器控制电路
US20240202060A1 (en) Data storage device and method for performing error recovery
CN107305476B (zh) 数据校正方法、存储器控制电路单元与存储器存储装置
CN112799973A (zh) 编码控制方法、存储器存储装置及存储器控制电路单元

Legal Events

Date Code Title Description
FG Grant or registration