Método y dispositivo para mejorar la capacidad de escritura flash USB.
Un sistema de memoria que comprende:
una memoria (100) que requiere una operación de borrado antes de una operación de escritura,
estando dicha memoria (100) dividida en bloques (B1, B2, ..., Bx), y una Tabla de Asignación de Ficheros (FAT) que está almacenada en dicha memoria (100); un controlador de memoria (101) que opera para interrogar a dicha FAT y para localizar y borrar bloques de memoria que no tienen sectores en los mismos asignados a ficheros activos, teniendo lugar dicha interrogación y borrado durante intervalos en los que no están siendo leídos o escritos ficheros en dicha memoria (100),
caracterizado por que
habiendo sido designados un número fijo de dichos bloques como bloques de almacenamiento temporal (T1, T2, ..., T24) y estando preparados para recibir datos, cuando el tamaño de un fichero que va a ser almacenado en dicha memoria excede el tamaño acumulado de dichos bloques de almacenamiento temporal (T1, T2, ..., T24), una vez que el fichero ha sido escrito en dichos bloques de almacenamiento temporal (T1, T2, ..., T24) para el almacenamiento de datos, la parte sobrante de dicho fichero puede ser escrita en dichos bloques de memoria borrados de dicha memoria (100) sin tener que esperar a que tenga lugar una operación de borrado.
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/US2005/025760.
Solicitante: CYPRESS SEMICONDUCTOR CORPORATION.
Nacionalidad solicitante: Estados Unidos de América.
Dirección: 198 CHAMPION COURT SAN JOSE, CA 95134-1709 ESTADOS UNIDOS DE AMERICA.
Inventor/es: KOLOKOWSKY,STEPHEN HENRY.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F12/02 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 12/00 Acceso, direccionamiento o asignación en sistemas o arquitecturas de memoria (entrada digital a partir de, o salida digital hacia soportes de registro, p. ej. hacia unidades de almacenamiento de disco G06F 3/06). › Direccionamiento o asignación; Traslado (secuenciación de direcciones de programa G06F 9/00; disposiciones para seleccionar una dirección en una memoria digital G11C 8/00).
- G06F3/06 G06F […] › G06F 3/00 Disposiciones de entrada para la transferencia de datos destinados a ser procesados en una forma utilizable por el computador; Disposiciones de salida para la transferencia de datos desde la unidad de procesamiento a la unidad de salida, p. ej. disposiciones de interfaz. › Entrada digital a partir de, o salida digital hacia soportes de registro.
- G11C16/04 G […] › G11 REGISTRO DE LA INFORMACION. › G11C MEMORIAS ESTATICAS (dispositivos semiconductores para memorias H01L, p. ej. H01L 27/108 - H01L 27/11597). › G11C 16/00 Memorias de sólo lectura programables y borrables (G11C 14/00 tiene prioridad). › utilizando transistores de umbral variable, p. ej. FAMOS.
PDF original: ES-2440773_T3.pdf
Fragmento de la descripción:
Método y dispositivo para mejorar la capacidad de escritura flash USB
Campo de la invención La invención presente trata de memorias flash y más en particular a memorias flash conectadas a un sistema por un Bus Serie Universal (USB) .
Antecedentes de la invención Existen multitud de tipos diferentes de memorias flash; sin embargo, la invención presente trata de lo que en general se conoce como memoria flash NAND, y el término memoria flash tal como se utiliza aquí se refiere en general a una memoria flash NAND.
Una característica importante de los dispositivos de memoria flash es que pueden mantener los datos almacenados sin una fuente de energía exterior. Así, la memoria flash se utiliza con frecuencia en dispositivos tales como “pendrives” o cámaras digitales. Un dispositivo de memoria flash pude ser retirado de un ordenador o cámara sin que se pierdan los datos almacenados en el dispositivo.
La operación de lectura en una memoria flash se realiza de una manera similar a la operación de lectura en las antiguas y más baratas Memorias de Acceso Aleatorio (RAM) . Sin embargo, la operación de escritura en una memoria flash se ejecuta de una manera diferente a la manera a la que se ejecutan las operaciones de escritura en las memorias RAM.
En una memoria RAM es posible escribir datos nuevos en posiciones de la memoria individuales que contienen otros datos. Esto no es posible en una memoria flash. Los nuevos datos no pueden ser escritos en posiciones de memoria que ya contienen datos. En la memoria flash, una posición debe ser borrada antes de que se puedan escribir nuevos datos en esa posición. Además, una posición individual en una memoria flash no puede ser borrada. Las memorias flash se dividen en bloques y una operación de borrado se realiza sobre el bloque entero. Así, si habían sido guardados previamente datos en un bloque, la totalidad del bloque que contiene una posición particular debe ser borrada antes de que se puedan escribir datos en cualquiera de las posiciones individuales particulares dentro de ese bloque.
Si un bloque de una memoria flash contiene datos que deben ser conservados, antes de escribir nuevos datos en una posición particular de ese bloque, cualquier dato que exista en el resto del bloque que contiene la posición particular debe ser recolocado temporalmente. La razón para esto es que se debe borrar la totalidad del bloque al objeto de borrar una posición en particular. Cualquier dato existente almacenado en un bloque que uno desee preservar debe ser almacenado en alguna otra posición antes de la operación de borrado.
Un tipo de memora flash utilizado ampliamente se denomina Tarjeta de Disco Flexible de Estado Sólido (SSFDC) , o más comúnmente una SmartMedia ™. Las especificaciones SmartMedia fueron desarrolladas, y son mantenidas,
por el Forum SSFDC. Las especificaciones SmartMedia están fácilmente disponibles. Las especificaciones SmartMedia requieren que una memoria disponga de veinticuatro bloques temporales (ya borrados) disponibles para el almacenamiento de datos.
Con un dispositivo SmartMedia estándar, hay una diferencia significativa en las operaciones requeridas para almacenar un fichero relativamente pequeño (cuyo tamaño sea de veinticuatro o menos bloques) y las operaciones requeridas para almacenar un fichero cuyo tamaño es mayor de veinticuatro bloques. Al objeto de almacenar un fichero mayor de veinticuatro bloques, se debe realizar una o más operaciones de borrado de un bloque antes de que se pueda completar la operación de escritura del fichero.
A continuación hay ejemplos que indican los pasos requeridos para una operación de escritura típica en una memoria flash. Se debe comprender que éstos son meramente ejemplos y que existe una gran variedad de dispositivos de memoria flash, cada uno con sus características individuales propias.
El primer ejemplo es una situación de “caso ideal” en el que el tamaño del fichero se corresponde exactamente con el tamaño del bloque de la memoria flash. En la mayoría de las situaciones, este es un escenario improbable; sin embargo, puede ser un ejemplo útil. En este ejemplo, no se produce ningún movimiento de bloque parcial. El controlador de la memoria simplemente identifica uno de los bloques vacíos y escribe los datos en ese bloque. Se debe notar que las especificaciones SmartMedia requieren que haya veinticuatro bloques vacíos disponibles. Una vez que el almacenamiento de datos sea completado, el controlador borra un bloque no asignado de maneta que haya veinticuatro bloques borrados listos para recibir datos.
El segundo ejemplo es uno en el que se van a cambiar una pequeña cantidad de datos en un bloque que ya contiene datos. Esto es de alguna manera un ejemplo más realista. Este ejemplo requiere una operación de movimiento de bloque parcial. En primer lugar los datos existentes que no va a ser cambiados se mueven a uno de los bloques disponibles (previamente borrados) . A continuación, se añaden los nuevos datos a los datos de este El tercer ejemplo es un ejemplo particularmente relevante para la invención presente. En este ejemplo un fichero de tamaño mayor que veinticuatro bloques se escribe en la memoria flash. En primer lugar, los veinticuatro bloques disponibles (que fueron previamente borrados) se llenan con datos nuevos. A continuación el controlador debe localizar otros bloques que ya no tienen datos que estén en uso y debe borrar esos bloques. Finalmente los datos adicionales del fichero se escriben en estos nuevos bloques borrados. Así, la operación de almacenaje no puede ser completada hasta que ha sido ejecutada una operación de borrado relativamente grande.
Los sistemas de almacenamiento utilizan una tabla de asignación de ficheros (FAT) para guardar qué dirección lógica contiene datos relacionados con cada fichero en particular. La invención presente se aprovecha del hecho de que la tabla se almacena en una memoria flash. La tabla FAT indica al sistema operativo qué direcciones lógicas están asignadas a qué ficheros. En cualquier momento en particular, cualquier dirección lógica que no está asignada a un fichero no está siendo utilizada por ninguno de los ficheros almacenados en la memoria. El controlador de memoria mantiene una tabla que correlaciona las direcciones lógicas con las direcciones físicas correspondientes.
El documento US-B1 6 611 907 describe un aparato de acceso que consigue una reducción en el tiempo de proceso requerido para modificar los bloques que se pueden borrar, así como formar un formato de almacenamiento de datos en una tarjeta de memoria semiconductora que permite que una memoria no volátil tenga una vida útil más larga.
El documento WO/2002/005102 describe un lector de tarjetas de memoria flash que lee y escribe múltiples tipos de tarjetas de memorias flash.
Los documentos WO /2004/05965142 y el documento King J. et al: “Una capa de traslación de flash eficiente en el espacio para sistemas de flash compactos”, y el documento SSN 0098-3063 define el estado general de la técnica de la invención presente.
Sumario de la invención Un dispositivo de memoria flash tiene en general un número limitado de bloques que han sido borrados y que están preparados para recibir datos. Una tabla de asignación de ficheros (la FAT) se almacena en una memoria flash y contiene información que indica qué bloques están ocupados por ficheros y qué bloques no están ocupados por ficheros. Con la invención presente, tal como se definen en las reivindicaciones adjuntas, el controlador de memoria puede interrogar continua o periódicamente a la tabla FAT para determinar qué direcciones lógicas no están asignadas a ficheros almacenados en la memoria en ese momento. Si se determina que un bloque de direcciones lógicas no está asignado a un fichero, el bloque correspondiente de direcciones físicas es borrado y marcado como listo para recibir datos. Así un fichero de mayor tamaño que número normal de bloques borrados puede ser almacenado en la memoria sin tener que esperar a que tenga lugar una operación de borrado antes de que la operación de almacenamiento pueda ser completada.
Breve descripción de las Figuras 1. La Figura 1 ilustra una memoria flash organizada de acuerdo con las especificaciones SmartMedia.
2. La Figura 2 es un diagrama de bloques de una realización de la invención presente.
3. Las Figuras 3A, 3B y 3C son diagramas de flujo de bloques que muestran la operación de la realización preferida.
4. La Figura 4 es un diagrama de flujo general mostrando la operación del sistema.
Descripción detallada La invención presente será descrita a continuación con mayor detalle mediante... [Seguir leyendo]
Reivindicaciones:
1. Un sistema de memoria que comprende:
una memoria (100) que requiere una operación de borrado antes de una operación de escritura, estando dicha memoria (100) dividida en bloques (B1, B2, …, Bx) , y una Tabla de Asignación de Ficheros (FAT) que está almacenada en dicha memoria (100) ;
un controlador de memoria (101) que opera para interrogar a dicha FAT y para localizar y borrar bloques de memoria que no tienen sectores en los mismos asignados a ficheros activos, teniendo lugar dicha interrogación y borrado durante intervalos en los que no están siendo leídos o escritos ficheros en dicha memoria (100) ,
caracterizado por que habiendo sido designados un número fijo de dichos bloques como bloques de almacenamiento temporal (T1, T2, …, T24) y estando preparados para recibir datos, cuando el tamaño de un fichero que va a ser almacenado en dicha memoria excede el tamaño acumulado de dichos bloques de almacenamiento temporal (T1, T2, …, T24) , una vez que el fichero ha sido escrito en dichos bloques de almacenamiento temporal (T1, T2, …, T24) para el almacenamiento de datos, la parte sobrante de dicho fichero puede ser escrita en dichos bloques de memoria borrados de dicha memoria (100) sin tener que esperar a que tenga lugar una operación de borrado.
2. El sistema descrito en la reivindicación 1 en el que dicha memoria (100) es una memoria flash.
3. El sistema descrito en la reivindicación 1 en el que dicha memoria (100) es una memoria flash NAND.
4. El sistema descrito en la reivindicación 1 en el que dicha memoria (100) opera de manera consistente con las especificaciones SmartMedia excepto para dichas operaciones de interrogación y borrado.
5. El sistema descrito en la reivindicación 1 en el que dicha memoria (100) tiene al menos veinticuatro bloques de almacenamiento temporal, preparados para una operación de escritura.
6. Un método para operar una memoria (100) que está dividida en bloques y que requiere que cada bloque particular sea borrado antes de la escritura en cada uno de los bloques en particular, teniendo dicha memoria (100) una tabal de asignación de ficheros (FAT) almacenada en la misma que comprende los pasos de:
interrogar a dicha FAT cuando no están teniendo lugar operaciones de lectura o escritura para identificar bloques no asignados a los ficheros actuales; y
borrar dichos bloques identificados cuando no están teniendo lugar operaciones de lectura o escritura;
caracterizado por:
almacenar un fichero en un número fijo de bloques de almacenamiento temporal (T1, T2, …, T24) de dicha memoria (100) ,
cuando el tamaño de dicho fichero excede el tamaño acumulado de dichos bloques de almacenamiento temporal (T1, T2, …, T24) , dicha parte en exceso de dicho fichero se almacena en dichos bloques borrados de dicha memoria (100) sin esperar a que tenga lugar una operación de borrado.
7. El método descrito en la reivindicación 6 en el que dicha memoria (100) es una memoria flash.
8. El método descrito en la reivindicación 6 en el que dicha memoria (100) es una memoria flash NAND.
9. El método descrito en la reivindicación 6 en el que dicha memoria (100) opera de manera consistente con las especificaciones SmartMedia excepto por dichas operaciones de interrogación y borrado.
10. El sistema de memoria descrito en la reivindicación 1 en el que dicho controlador de memoria (101) incluye una interfase de Bus Serie Universal (102) .
11. Un sistema que incluye una computadora central (103) en combinación con el sistema de memoria descrito en la reivindicación 10, estando dicha computadora central (103) conectada a dicho sistema de memoria mediante un Bus Serie Universal (102) .
Figura 3B
Patentes similares o relacionadas:
Almacenamiento de datos gráficos comprimidos en ancho de banda, del 6 de Noviembre de 2019, de QUALCOMM INCORPORATED: Un procedimiento, que comprende: almacenar, mediante al menos un procesador, una pluralidad de datos gráficos comprimidos en ancho de banda en una pluralidad respectiva […]
Método de procesado de datos, aparato de almacenamiento, disco de estado sólido y sistema de almacenamiento, del 28 de Agosto de 2019, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de procesado de datos, aplicado a un sistema de almacenamiento, en donde el sistema de almacenamiento comprende un anfitrión, un controlador y un […]
Gestión de memoria automática que usa una unidad de gestión de memoria, del 24 de Julio de 2019, de aicas GmbH: Método implementado por ordenador , para actuar sobre un módulo automático de gestión de memoria en un sistema informático que tiene una memoria de acceso […]
Uso de compresión de memoria para reducir la carga de compromiso de memoria, del 6 de Mayo de 2019, de Microsoft Technology Licensing, LLC: Un método de reducir una cantidad de compromiso de memoria para un programa en un dispositivo de cálculo , comprendiendo el método: determinar […]
Controlador de acceso a memoria, sistemas y procedimientos para optimizar los tiempos de acceso a memoria, del 9 de Enero de 2019, de QUALCOMM INCORPORATED: Un controlador de memoria , que comprende: un controlador configurado para acceder al menos a una ubicación de memoria correspondiente […]
Sistema de gestión de datos y método, del 30 de Noviembre de 2018, de LIFESCAN SCOTLAND LIMITED: Un sistema de gestión de datos que comprende: - una primera sección de memoria no volátil dividida en una pluralidad de ubicaciones […]
Método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, nodo y sistema, del 21 de Noviembre de 2018, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT que comprende un primer nodo de almacenamiento y un segundo […]
Método de gestión de la asignación de memoria flash en un token electrónico, del 27 de Diciembre de 2017, de GEMALTO SA: Un método para gestionar la asignación de memoria flash en un token electrónico (ET), disponiendo dicho token (ET) de una memoria (ME) que comprende […]