ES2269213T3 - Dispositivo de comunicacion movil que presenta una memoria flash y una memoria sram incorporadas e integradas. - Google Patents

Dispositivo de comunicacion movil que presenta una memoria flash y una memoria sram incorporadas e integradas. Download PDF

Info

Publication number
ES2269213T3
ES2269213T3 ES00986483T ES00986483T ES2269213T3 ES 2269213 T3 ES2269213 T3 ES 2269213T3 ES 00986483 T ES00986483 T ES 00986483T ES 00986483 T ES00986483 T ES 00986483T ES 2269213 T3 ES2269213 T3 ES 2269213T3
Authority
ES
Spain
Prior art keywords
flash
flash memory
memory
macros
macro
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES00986483T
Other languages
English (en)
Inventor
Sanjay Jha
Stephen Simmonds
Jalal Elhusseini
Nicholas K. Yu
Safi Khan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
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
Application granted granted Critical
Publication of ES2269213T3 publication Critical patent/ES2269213T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • 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/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • 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/22Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Non-Volatile Memory (AREA)

Abstract

Sistema de memoria flash (112) que comprende: unas celdas de memoria flash dispuestas como un conjunto de macros flash (130), y unos medios de lectura durante escritura (144, 146) para escribir en una de dichas macros flash, mientras se lee simultáneamente en otra de dichas macros flash; en el que el sistema está conectado a un microprocesador (102) y en el que dichos medios de lectura durante escritura (144, 146) incluyen: unos medios de escritura (146) para escribir las señales recibidas desde el microprocesador a una macro seleccionada de dichas macros flash (130); y caracterizado porque dichos medios de lectura durante escritura incluyen además unos medios de suspensión, sensibles a la recepción de un mandato de lectura del microprocesador dirigido a dicha macro seleccionada de dichas macros flash, para suspender la operación del microprocesador hasta que los medios de escritura (146) hayan finalizado su operación, y para ejecutar el mandato de lectura.

Description

Dispositivo de comunicación móvil que presenta una memoria flash y una memoria SRAM incorporadas e integradas.
I. Campo de la invención
La presente invención se refiere en general a los dispositivos de comunicación móvil, tales como los teléfonos celulares, y en particular, a una memoria flash y una memoria estática de acceso aleatorio (SRAM) para ser utilizadas en éstos.
II. Descripción de la técnica relacionada
Una memoria flash es un tipo de memoria no volátil que conserva la información almacenada incluso después de una desconexión de la alimentación. Esto contrasta con los dispositivos de memoria volátil, tales como los dispositivos de SRAM o RAM dinámica (DRAM), que pierden los datos almacenados cuando se desconecta la alimentación. Además de ser no volátil, la memoria flash puede borrarse y reprogramarse eléctricamente dentro del sistema en el cual está incorporada. Por el contrario, en otros dispositivos de memoria no volátil, tales como los dispositivos de memoria de sólo lectura, programable y borrable (EPROM), se requieren unas tensiones especiales para la reprogramación y, por consiguiente, la memoria sólo suele ser reprogramable por el fabricante o el personal de servicio especializado.
En consecuencia, la memoria flash se emplea ventajosamente en los dispositivos que requieren memoria no volátil que pueda ser borrada y reprogramada selectivamente. En particular, la memoria flash es muy adecuada para ser utilizada en los ordenadores personales de sobremesa, los ordenadores portátiles, los cartuchos de videojuegos, las grabadoras digitales de voz, los asistentes personales digitales (PDA) y los teléfonos celulares (u otras estaciones móviles de los sistemas de comunicación inalámbrica). Habitualmente, dentro de dichos sistemas, la memoria flash está configurada como una única macro flash, que puede ser leída o escrita, pero no ambas cosas, en un momento determinado. Para la mayoría de los dispositivos esto resulta suficiente. Por ejemplo, en la mayoría de los dispositivos que contienen una memoria flash, los datos que van a almacenarse en la memoria flash se almacenan en memoria volátil hasta que el dispositivo se desconecta y, a continuación, la memoria flash se reprograma con los datos durante una operación de apagado. Así pues, es improbable que el dispositivo necesite leer y escribir alguna vez en la memoria flash al mismo tiempo. En un ejemplo, un PC o un ordenador portátil puede almacenar los cambios para un sistema básico de entrada-salida (BIOS) en una memoria DRAM hasta que el ordenador deba desconectarse, siendo transferidos, entonces, dichos cambios para el BIOS a una memoria flash.
No obstante, la implementación de la memoria flash dentro de un teléfono celular presenta algunos problemas. En los teléfonos celulares, tal vez sea necesario realizar con mayor frecuencia muchas operaciones de lectura y de escritura en la memoria flash. Los teléfonos celulares consumen una cantidad considerable de energía durante su uso y, para resultar comercialmente atractivos, deben ser capaces de funcionar con eficacia durante largos períodos de tiempo entre recargas. Por este motivo, los teléfonos celulares suelen estar configurados de una forma que les permita interrumpir la alimentación de los componentes internos tantas veces como sea posible. Muchos de los componentes de los teléfonos celulares CDMA, por ejemplo, son desactivados entre cada intervalo de radiobúsqueda consecutivo del sistema CDMA. (Los intervalos de radiobúsqueda tienen lugar cada 30 milisegundos). En consecuencia, no es posible acumular operaciones de escritura pendientes dentro de una memoria no volátil hasta que se realiza la operación final única de apagado. En su lugar, tal vez sea necesario escribir puntualmente los datos en la memoria flash antes de cada interrupción de energía temporal consecutiva. Por otra parte, la necesidad de reprogramar con frecuencia la memoria flash suele ser muy superior en un teléfono celular, particularmente en un teléfono celular inteligente, es decir, un teléfono celular configurado con un PDA para proporcionar, de ese modo, funciones de telefonía celular y funciones de PDA. Por lo que a los ordenadores se refiere, tal vez sólo sea necesario reprogramar las memorias flash en caso de que se produzca algún cambio en el BIOS u otros parámetros de configuración del sistema. En los teléfonos celulares inteligentes, tal vez se necesite reprogramar frecuentemente la memoria flash para registrar nuevos números de teléfonos, direcciones, fechas de calendario, fechas de reuniones y similares. En los teléfonos inteligentes configurados para registrar notas de voz, es posible que la memoria flash deba ser reprogramada cada vez que el teléfono se utiliza para registrar una nota de voz. En consecuencia, tal vez sea necesario realizar operaciones de lectura y escritura con mucha mayor frecuencia en relación con los teléfonos celulares y, entonces, el sistema de memoria flash convencional, que no permite realizar operaciones de lectura y escritura en la memoria flash de forma simultánea, puede resultar inadecuado.
Por otra parte, en las aplicaciones telefónicas celulares, puede que sea necesario acceder a la memoria flash con mucha más rapidez que en otras aplicaciones. Esto es particularmente cierto en caso de que los datos que se desean recuperar de la memoria flash deban ser utilizados en conexión con cualquier función en tiempo real del teléfono celular, tal como una llamada telefónica de voz. Para dichas funciones, cualquier retardo en la lectura de la memoria flash, debido a la necesidad de esperar a que finalice una operación de escritura previa, puede resultar significativo.
Además, aunque no sea necesario retardar una operación de lectura hasta que finalice una operación de escritura, los tiempos de lectura de las memorias flash convencionales pueden ser bastante lentos. Las memorias flash se degradan con el uso y, en consecuencia, el tiempo de lectura para las celdas flash particulares que han sido reescritas con frecuencia resulta lento en comparación con otras celdas flash que no han sido reescritas con frecuencia. Por ello, cuando un dispositivo que contiene una memoria flash ha sido utilizado durante cierto tiempo, algunas de sus celdas flash presentarán unos tiempos de lectura más lentos que otras. Para tener en cuenta una posible degradación, los dispositivos que contienen celdas flash habitualmente establecen un tiempo de lectura interno de la memoria flash relativamente lento. En este sentido, el sistema de bus conectado a la memoria flash dispuesto para recuperar los datos de la memoria flash se preprograma con un número de estados de espera suficiente para adaptarse a los tiempos de acceso potencialmente lentos de las celdas que pueden degradarse. Dicho de otro modo, el sistema de bus es preprogramado para adaptarse a la peor situación hipotética por lo que al tiempo de acceso a la memoria flash se refiere. Por consiguiente, todos los accesos de lectura serán relativamente lentos, incluso en las ubicaciones de memoria flash que todavía no se han degradado. En muchos dispositivos, el lento tiempo de lectura no resulta problemático. No obstante, con respecto a los teléfonos celulares, es mucho más importante reducir al mínimo el tiempo necesario para cada acceso a la memoria flash, particularmente, mientras el teléfono celular está realizando funciones en tiempo real. En consecuencia, será sumamente deseable proporcionar un sistema de memoria flash mejorado, en particular, para ser utilizado dentro de teléfonos celulares o dispositivos similares, que superen las desventajas indicadas.
Habitualmente, en los teléfonos celulares, se utiliza una memoria flash, que permite el almacenamiento no volátil, en conjunción con una SRAM, que permite el almacenamiento volátil. Típicamente, los dispositivos de memoria flash y SRAM están separados entre sí y están montados también separados del ASIC principal del teléfono celular que incluye el microprocesador y los diversos componentes periféricos que se encargan de las funciones de telefonía celular. En dichas implementaciones, debido a que la memoria flash y la memoria SRAM son independientes del ASIC, el tiempo necesario para acceder a la memoria flash y la SRAM puede ser relativamente lento, entorpeciéndose pues el rendimiento global del sistema. En consecuencia, también es deseable proporcionar una arquitectura de sistema mejorada para utilizar dentro de los teléfonos celulares, que incluya una memoria flash, una SRAM y un ASIC central que permita un acceso ágil a la memoria flash y SRAM.
Asimismo, puesto que tal vez sea necesario acceder con frecuencia a la memoria flash del teléfono celular, existe el riesgo de que se sobrescriban involuntariamente algunas partes de los datos almacenados en la memoria flash. Esto es particularmente cierto en los teléfonos celulares de última generación que pueden incluir numerosos componentes de hardware, cada uno de los cuales es capaz de reprogramar partes de la memoria flash. Este problema se agrava debido al hecho de que habitualmente es necesario diseñar y comercializar con mucha rapidez el software que va a ser utilizado dentro de los teléfonos celulares, para adaptarlo a un mercado en constante cambio. Por consiguiente, existe un riesgo bastante significativo de que el software pueda provocar accidentalmente la reescritura o la supresión de algunas partes de los datos de la memoria flash. Este problema es particularmente serio cuando la parte de memoria flash borrada accidentalmente contenía números de teléfonos importantes, tales como los teléfonos de la policía, los bomberos o similares, o contenía programas de software importantes, tales como un cargador de arranque y similares, necesarios para el funcionamiento del teléfono. En consecuencia, será sumamente deseable proporcionar un sistema de memoria flash mejorado que reduzca al mínimo el riesgo de borrar accidentalmente algunas partes de la memoria flash. El documento de la técnica anterior WO99/35650 da a conocer una memoria flash con capacidad de lectura durante escritura.
Sumario de la invención
Según la presente invención, se proporciona un sistema de memoria flash según la reivindicación 1.
Las celdas de la memoria flash se dividen en un conjunto de macros flash, a las que se puede acceder de forma independiente. Es posible realizar una operación de escritura en una de las macros flash mientras se realiza una operación de lectura en otra de las macros flash. De esta manera, el tiempo de respuesta global del sistema se reduce, debido, en parte, a la no necesidad de posponer las operaciones de lectura hasta la finalización de una operación de escritura. En realidad, puesto que las operaciones de escritura de la memoria flash suelen llevar mucho más tiempo que las operaciones de lectura de la memoria flash, es posible realizar numerosas operaciones de lectura en paralelo durante una sola operación de escritura de la memoria flash.
Según un aspecto de la presente invención, se proporciona un sistema de memoria flash con estados de espera programables. En un ejemplo de forma de realización, las celdas de la memoria flash también se disponen como un conjunto de macros flash. Un bus de memoria flash interconecta las macros flash y un controlador de memoria flash. El controlador de memoria flash incluye una unidad de registro de estados de espera para almacenar un número programable de estados de espera asociados a las macros flash, presentando cada flash macro un número programable de estados de espera. Asimismo, el controlador de memoria flash incluye una unidad de acceso a la macro flash para acceder a una macro flash seleccionada. La unidad de acceso a la macro flash accede a la macro flash seleccionada mediante el programa del bus de memoria flash con el número de estados de espera asociados a la macro flash seleccionada. Con esta disposición, es posible acceder a las partes de la memoria flash que son reprogramadas frecuentemente y que, por lo tanto, están sujetas a la degradación, utilizando un número de estados de espera superior al de otras partes de la memoria flash. Como consecuencia de lo anterior, el acceso a las partes de la memoria flash que no son reprogramadas frecuentemente puede tener lugar con mucha más rapidez que en los sistemas en los que todas las operaciones de lectura de la memoria flash son retrasadas un cierto numero de estados de espera para adaptarse al peor caso de tiempo de acceso a la memoria correspondiente al peor caso de degradación.
Según un aspecto de la presente invención, se proporciona un sistema de memoria flash con protección por contraseña. En un ejemplo de forma de realización, el sistema de memoria flash incluye celdas de memoria flash dispuestas como un conjunto de macros flash, junto con un controlador de memoria flash que presenta unos medios para almacenar una contraseña separada asociada a cada macro flash, siendo dichos medios, sensibles a la recepción de una contraseña válida desde una macro flash seleccionada, operativos para habilitar la programación de supresión de las celdas flash de la macro flash seleccionada y, al mismo tiempo, impedir la programación de supresión de las demás celdas flash. Con esta configuración, se reduce en gran medida el riesgo de supresión accidental de algunas partes de la memoria flash. Para poder realizar una operación de supresión, debe proporcionarse una contraseña válida. Por consiguiente, las operaciones de supresión accidentales resultantes de errores de software y similares se reducen mucho. Además, proporcionando contraseñas diferentes para las partes diferentes de la memoria flash, es posible restringir las operaciones de supresión de los programas informáticos individuales o los componentes de hardware periféricos individuales, de tal forma que sólo sean aplicables a partes particulares de la memoria flash. De esta forma, los riesgos de supresión o reprogramación accidental de grandes partes de la memoria flash se reducen en gran medida. En una implementación específica, una parte de la memoria flash contiene un cargador de arranque que se utiliza para arrancar el sistema en el que reside la memoria flash. Se proporciona una contraseña separada asociada al cargador de arranque para reducir todavía más el riesgo de reprogramar accidentalmente el cargador de arranque.
Según un aspecto de la presente invención, se proporciona un sistema de memoria flash con un mapa de memoria programable. El sistema de memoria flash incluye celdas de memoria flash y un controlador de memoria flash que está provisto de medios para dividir las celdas de memoria flash en posiciones altas y posiciones bajas de la memoria. En las celdas de memoria flash, se almacena un cargador de arranque empezando por la dirección de memoria más baja del espacio de la memoria flash. Los medios para dividir incluyen los medios para intercambiar las posiciones altas y bajas de la memoria una vez que han finalizado las operaciones realizadas por el cargador de arranque. Con esta disposición, el cargador de arranque, al cual se suele acceder sólo durante la operación de encendido inicial, es traspasado a la memoria alta para permitir que otros datos y programas a los cuales tal vez sea necesario acceder con más frecuencia sean almacenados en la memoria baja, facilitando de ese modo el acceso a los mismos.
Otros objetivos, características y ventajas de la presente invención se pondrán de manifiesto a partir de la siguiente descripción considerada conjuntamente con los dibujos adjuntos.
Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques de un ASIC de módem de voz y datos que presenta un sistema de memoria flash y SRAM incorporado e integrado para ser utilizado en un teléfono móvil.
La Figura 2 es un diagrama de bloques del sistema de memoria flash del ASIC de la Figura 1.
La Figura 3 es un diagrama de bloques de una memoria de estados de espera para ser utilizada en el sistema de memoria flash de la Figura 2.
La Figura 4 es un diagrama de bloques de una memoria de contraseñas para ser utilizada en el sistema de memoria flash de la Figura 2.
La Figura 5 es un diagrama de bloques de un registro de estados de memoria flash para ser utilizado con el sistema de memoria flash de la Figura 2.
La Figura 6 es un diagrama de bloques de un espacio de memoria divisible de la memoria flash de la Figura 2.
Descripción detallada de aspectos de la invención ejemplares
Con referencia a las Figuras, se describirán a continuación algunos ejemplos de los aspectos de la presente invención. La presente invención se describirá principalmente con referencia a un sistema de memoria flash y SRAM incorporada e integrada para utilizar con un ASIC de módem de voz y datos de un teléfono celular CDMA. No obstante, los principios de la presente invención son también aplicables a otros sistemas.
La Figura 1 ilustra un ASIC de módem de voz y datos 100 para ser utilizado en un dispositivo móvil de comunicaciones inalámbricas, tal como un teléfono celular configurado para funcionar dentro de un sistema de comunicación inalámbrica CDMA. El ASIC del módem de voz y datos incluye unos circuitos encargados de las funciones de telefonía del teléfono celular. Aunque no se representan, el teléfono celular puede incluir otros ASIC u otros circuitos integrados configurados para realizar otras funciones. Por ejemplo, si el teléfono celular está configurado como un teléfono inteligente para proporcionar tanto funciones de PDA como funciones de telefonía inalámbrica, puede proporcionarse un ASIC separado para controlar las funciones de PDA. Como alternativa, todas las funciones pueden integrarse dentro de un solo ASIC.
Para gestionar las funciones de telefonía inalámbrica del teléfono celular, el ASIC incluye un microprocesador 102 que controla las funciones del módem de voz y datos. El microprocesador puede ser, por ejemplo, un microprocesador de conjunto de instrucciones reducido (RISC), tal como el microprocesador ARM 7TDMI proporcionado por Arm, IncJ. ARM 7TDMI y Arm, Inc. son marcas registradas de Arm, Inc. En otras implementaciones, se emplean otros microprocesadores que incluyen, por ejemplo, los microprocesadores de conjunto de instrucciones complejo (CISC). Dentro del ASIC, se incluyen diversos componentes periféricos, denotados de forma general por 104, que realizan funciones de telefonía inalámbrica CDMA específicas.
Un bus del sistema 106 interconecta el microprocesador y los diversos componentes CDMA periféricos. En funcionamiento, el microprocesador controla los diversos componentes CDMA periféricos, por medio del bus del sistema, para realizar diversas funciones relacionadas con el procesamiento de las comunicaciones inalámbricas CDMA, tales como la conversión de las señales CDMA recibidas desde una estación base (no representada) en señales de voz para reproducirlas a través de un altavoz del teléfono celular, o la conversión de las señales de voz recibidas desde el micrófono del teléfono celular en señales CDMA para transmitirlas a la estación base. Cuando se realizan estas y otras funciones, el microprocesador y los componentes periféricos almacenan datos u otro tipo de información, ya sea en un sistema de memoria interna 108 contenido en el ASIC, o bien en un sistema de memoria externa 110 que puede comprender uno o más chips de memoria SRAM, DRAM o flash montados dentro del teléfono celular y fuera del ASIC. En general, los datos u otro tipo de información a los que es necesario acceder con rapidez, tales como los datos utilizados con referencia al procesamiento en tiempo real de las llamadas telefónicas y similares, se almacenan dentro del sistema de memoria interna para facilitar el acceso. Los datos que no necesitan ser recuperados con tanta rapidez, tales como los datos que se van a utilizar en funciones de tiempo no real, se almacenan en el sistema de memoria externa.
El sistema de memoria interna incluye un sistema de memoria flash 112 y una SRAM 113 integrada como un solo sistema de memoria. En el ejemplo de implementación de la Figura 1, los circuitos del sistema de memoria único y los circuitos del microprocesador y los componentes CDMA periféricos están integrados en una sola plaqueta de silicio. En otras implementaciones, los circuitos del sistema de memoria único se proporcionan en una plaqueta y el microprocesador y los componentes CDMA periféricos se proporcionan en otra plaqueta. Preferentemente, en esta implementación, las dos plaquetas de silicio separadas están integradas dentro de un solo chip. En cualquier caso, una unidad de interfaz de memoria interna 115 interconecta el sistema de memoria interna con el microprocesador y los componentes CDMA periféricos por medio del bus del sistema 106. Una unidad de interfaz de memoria externa 117 interconecta el sistema de memoria externa con el microprocesador y los componentes CDMA periféricos a través del bus del sistema 106 también.
La memoria flash del sistema de memoria flash 112 del sistema de memoria interna se utiliza principalmente para almacenar el código de software CDMA que va a ser utilizado por el microprocesador o los componentes CDMA periféricos. Habitualmente, la memoria flash incluye también un cargador de arranque que es recuperado y ejecutado por el microprocesador durante la operación de encendido inicial. El cargador de arranque incluye instrucciones para acceder a otros programas CDMA almacenados dentro de la memoria flash, y ejecutarlos. La memoria flash se emplea asimismo para permitir el almacenamiento no volátil de los datos utilizados en relación con el teléfono celular, tal como los nombres, los números de teléfono, las direcciones y similares. Si el teléfono celular está configurado como un teléfono inteligente para realizar además las operaciones de un PDA, entonces los datos utilizados por el PDA, tales como los datos de fechas de reuniones, calendarios de trabajo, horarios, notas de voz y similares se almacenan también en la memoria flash. En general, cualquier tipo de software o datos que sea necesario conservar aun cuando el teléfono celular haya sido completamente apagado se almacenará preferentemente en el sistema de memoria flash incorporado en el ASIC o en el sistema de memoria flash proporcionado dentro de la memoria externa, si lo hubiera.
La SRAM 113 incorporada permite el almacenamiento volátil de otros tipos de datos o programas de software empleados por el microprocesador o los componentes periféricos en relación con sus funciones. Por ejemplo, cuando se reciben señales CDMA desde una estación base durante una conversación telefónica celular, los diversos componentes periféricos pueden almacenar las señales, o las versiones procesadas de éstas, dentro de la SRAM. En un ejemplo específico, una vez que el decodificador de Viterbi ha procesado las señales de entrada, los símbolos decodificados para la voz se almacenan dentro de la SRAM en espera de ser procesados posteriormente por el vocodificador. La memoria externa puede emplearse también como una memoria volátil para almacenar datos y, particularmente, datos a los cuales no es necesario acceder a altas velocidades.
A continuación, haciendo referencia brevemente a los componentes CDMA periféricos del ASIC 100, para la transmisión de las señales, se proporciona un vocodificador 114 que puede incluir un DSP que convierte las señales de voz recibidas a través de un micrófono (no representado) en símbolos digitalizados u otros paquetes de información. Un codificador CDMA 116 codifica los símbolos generados por el vocodificador para detectar y corregir los errores. Un intercalador CDMA 118 intercala las señales codificadas para proporcionar diversidad en el tiempo y reducir, de esta manera, la potencia de transmisión. Un modulador CDMA 120 modula las señales intercaladas que van a ser transmitidas posteriormente por medio de una antena (no representada). Para procesar las señales recibidas, un demodulador CDMA 122 demodula las señales, un desintercalador 124 desintercala las señales para eliminar el efecto de cualquier intercalación previa, y un decodificador CDMA 126 decodifica las señales para extraer las señales de voz o datos codificadas en las mismas. En las comunicaciones de voz, las señales de voz decodificadas se proporcionan al usuario del teléfono a través de un altavoz (no representado). En las comunicaciones de datos, las señales de datos decodificadas son sometidas por otros componentes del teléfono a un procesamiento adicional, tal como, por ejemplo, un procesamiento para la presentación visual (en una pantalla no representada) utilizando un programa de navegador web, un programa de correo electrónico o un programa similar.
Por lo tanto, la Figura 1, ilustra, entre otras características, un ASIC que presenta una memoria flash y una SRAM incorporadas. La incorporación de la memoria flash y la SRAM en el ASIC permite el acercamiento físico entre el microprocesador, la memoria flash y la SRAM. En consecuencia, las señales del bus de datos y de control que se desplazan desde el microprocesador hasta la memoria, y viceversa, sufren menos retardos de encaminamiento y capacitancia que en las placas de circuito impreso cuando se utiliza memoria externa al chip. Esto reduce el tiempo global de acceso a la memoria y aumenta la velocidad de procesamiento global. Asimismo, gracias a la incorporación de la memoria flash y SRAM en el ASIC, es posible reducir el tamaño global de los componentes electrónicos del teléfono celular, en comparación con los sistemas que requieren que toda la memoria sea externa al ASIC. Por lo tanto, el teléfono celular puede configurarse utilizando un diseño de tamaño y grosor reducidos. La incorporación de la memoria flash y la SRAM en el ASIC permite también ahorrar una cantidad significativa de energía. En particular, si la memoria flash y la SRAM se proporcionan fuera del chip, se consume una cantidad considerable de potencia y energía en la conmutación de los diversos pins de entrada/salida necesarios para acceder a la memoria flash y la SRAM y a las pistas de señal de la placa de circuito impreso. Por lo tanto, si se almacenan los datos y los programas a los que se necesita acceder con frecuencia en la memoria flash y la SRAM incorporadas, se conseguirá reducir el consumo de potencia y, con ello, el tiempo de espera del teléfono celular, pudiendo entonces el cliente prolongar el tiempo de utilización del teléfono antes de efectuar una recarga del mismo. Además, el consumo global de corriente mientras los dispositivos están activos es menor y, por lo tanto, todavía se reduce más el consumo de energía. Preferentemente, el bus del sistema, el microprocesador y el sistema de memoria interna están configurados para procesar trayectorias de datos de 32 bits. Habitualmente, se accede a la memoria flash y SRAM externas utilizando sólo una trayectoria de datos de 8 bits. Por lo tanto, si se incorpora una trayectoria de datos de 32 bits, los tiempos se reducirán todavía más. Por otra parte, puesto que es posible procesar una mayor cantidad de datos durante cada ciclo de reloj, las frecuencias de reloj globales de los componentes del ASIC pueden reducirse, disminuyendo aún más el consumo de potencia. En el caso de la memoria externa al chip, no es habitual utilizar trayectorias de datos de 32 bits debido a limitaciones de pins y de encaminamiento. Otra de las ventajas de la provisión de la memoria flash y la SRAM incorporadas en el ASIC es que se reduce el número total de chips necesarios en la placa madre del teléfono celular y, gracias a la simplificación de los procesos de fabricación, se incrementa la fiabilidad.
Por lo tanto, el hecho de proporcionar una memoria flash y una SRAM incorporadas en el ASIC 100 aporta numerosas ventajas. En lo sucesivo, se describirán en mayor detalle las características específicas de la memoria flash y la SRAM del sistema de memoria interna. Estas características proporcionan, por ejemplo, un menor tiempo de acceso, una mayor protección contra las operaciones de reescritura accidentales u otras ventajas similares.
Con referencia a la Figura 2, el sistema de memoria flash incorporada incluye una matriz de memoria flash 130 y un controlador de memoria flash 132. La matriz de memoria flash 130 incluye celdas de memoria flash que definen hasta N macros flash diferentes a las que es posible acceder independientemente como se indicará más adelante. Dicho de otro modo, en una macro flash, puede realizarse una operación de lectura mientras se realiza una operación de escritura en otra de las macros flash. En un ejemplo concreto, N se establece en 4 y, entonces, la memoria flash puede subdividirse en un total de cuatro macros flash separadas. Un bus del sistema de memoria flash 134 interconecta la matriz de memoria flash y el controlador flash, y permite que el controlador flash acceda a la matriz de memoria flash para realizar operaciones de lectura o escritura. Preferentemente, los tres componentes se configuran para adaptarse a trayectorias de datos de 32 bits. El controlador flash 132 incluye una unidad de acceso a la macro flash 136 y diversos registros de memoria, incluido un registro de estados de espera programable 138, un registro de contraseñas programable 140 y un registro de estados 142. La unidad de acceso a la memoria flash utiliza la información almacenada en los diversos registros para controlar el acceso a las macros flash de la matriz de memoria flash. Más adelante, se describirá con mayor detalle la información almacenada en los registros y la manera en que se utiliza dicha información.
La unidad de acceso a la memoria flash 136 incluye una unidad de lectura de memoria flash 144 y una unidad de escritura de memoria flash 146. La unidad de lectura se utiliza para leer los datos o los programas de software almacenados en la unidad de memoria flash. La unidad de escritura se utiliza para reprogramar partes de la memoria flash para que almacenen nuevos datos o nuevos programas. Las unidades de lectura y escritura proporcionan conjuntamente unos medios de lectura durante escritura que permiten realizar simultáneamente una operación de lectura en una de las macros flash y una operación de escritura en otra de las macros flash. Por lo tanto, en un ejemplo específico, la unidad de lectura 144 puede realizar una operación de lectura en la macro flash nº 1, mientras la unidad de escritura realiza una operación de escritura en la macro flash nº 2. En una operación de lectura, se envía, a la matriz de memoria flash 130, un mandato de lectura en el que se especifica una dirección de memoria particular dentro del conjunto de la matriz de memoria, a través del bus flash 134. En el caso de una operación de lectura de la macro flash nº 1, la dirección indicará una dirección de memoria de 32 bits de los espacios de dirección de la macro flash nº 1. Asimismo, en una operación de escritura, se envía un mandato de escritura a la memoria flash, a través del bus flash. El mandato de escritura indica una dirección de la macro flash y, además, indica los datos que se van a almacenar en ésta. Para una implementación de trayectoria de datos de 32 bits, el mandato de escritura proporcionará 32 bits de datos junto con la dirección de memoria. Además, como se describirá a continuación, las operaciones de escritura sólo se llevan a cabo si se recibe una contraseña correcta desde el microprocesador o un componente periférico, como una parte del mandato de escritura.
Las operaciones de escritura de la memoria flash llevan una cantidad de tiempo sustancialmente superior a la de las operaciones de lectura de la memoria flash. Las operaciones de lectura, por ejemplo, pueden realizarse en un solo ciclo de reloj. Las operaciones de escritura pueden precisar centenares de ciclos de reloj. En consecuencia, es posible realizar una cantidad muy elevada de operaciones de lectura individuales mientras se realiza una sola operación de escritura. Las operaciones de lectura se realizan en una macro cualquiera que no sea la macro sometida a la operación de escritura. Si se recibe, desde el microprocesador, una petición de lectura en la que se especifica una dirección de la macro flash que actualmente está siendo sometida a una operación de escritura, la unidad de acceso a la macro flash pospone la operación de lectura hasta que finalice la operación de escritura. Además, la unidad de acceso a la memoria flash envía, al microprocesador que controla el procesador, una señal para que se suspenda la operación hasta que finalice la operación de escritura. Esto puede realizarse utilizando una señal de interrupción u otra técnica convencional. En otras implementaciones, tales como las implementaciones en las que se emplea un microprocesador capaz de llevar a cabo un procesamiento especulativo, tal vez sea deseable permitir que el microprocesador continúe funcionando mientras se está realizando la operación de escritura.
Por consiguiente, se proporciona un mecanismo de lectura durante escritura. El mecanismo de lectura durante escritura proporciona tiempos de acceso de lectura más rápidos, por término medio, debido a que no es necesario posponer las operaciones de lectura hasta que finalice una operación de escritura pendiente, a menos que la petición de lectura especifique la misma macro flash. Así pues, el sistema global ganará en eficacia, puesto que será capaz de realizar más operaciones dentro de un período de tiempo determinado y podrá ser ejecutado a una frecuencia de reloj que generalmente será más baja, reduciéndose de ese modo el consumo de energía.
La unidad de acceso a la memoria flash incluye además una unidad de supresión 147 para suprimir partes de la memoria flash. La unidad de supresión recibe, desde el microprocesador u otro componente, un mandato de supresión en el que se indica una dirección de partida y la cantidad de datos que deben suprimirse. El mandato de supresión puede indicar la supresión de una sola palabra (32 bits), una página entera o toda la matriz de memoria flash. Como en las operaciones de escritura, las operaciones de lectura sólo se realizan si se recibe una contraseña correcta desde el microprocesador o un componente periférico, como una parte del mandato de supresión. Durante una operación de supresión de toda la matriz de memoria flash, denominada operación de "supresión masiva" en la presente memoria, las demás peticiones de lectura o escritura para la memoria flash se bloquean hasta que finaliza la operación de supresión masiva. En el ejemplo de implementación, también se bloquean todas las operaciones de memoria flash cuando se suprime una página de la memoria flash, aunque la operación vaya a realizarse en una macro flash distinta de la macro flash que está siendo sometida a la supresión de una página. En otras implementaciones, se permiten operaciones de memoria flash en otras macros flash que no están afectadas por la supresión de la página. Asimismo, dependiendo de la implementación particular de la memoria flash, tal vez sea necesario realizar una operación de supresión antes de cualquier operación (o programa) de escritura. Más particularmente, si la memoria flash está configurada para que una operación de escritura sólo pueda provocar el cambio de un bit "uno" por un bit "cero", entonces será necesario realizar una operación de supresión en la palabra o las palabras donde se va a escribir antes de realizar la operación de escritura concreta. La operación de supresión convierte todos los bits programados previamente como "cero" en bits "uno", de tal forma que la subsiguiente operación de escritura puede reprogramar los bits seleccionados de la palabra como bits "cero". En dicha implementación, por lo tanto, cuando la unidad de escritura de memoria flash 146 recibe un mandato de escritura, la unidad controla en primer lugar la unidad de supresión 147 para suprimir la palabra o las palabras sometidas a la operación de escritura antes de realizar la operación de escritura. Otra posibilidad, es que la unidad de escritura 146 no realice de forma automática una operación de supresión antes de una operación de escritura. En dicha implementación, los diseñadores de software deberán asegurarse de que el software que accede a la memoria flash realice las operaciones de supresión antes de las operaciones de escritura.
La unidad de acceso a la memoria flash incluye también una unidad de intercambio de memoria 149 para intercambiar las partes de memoria alta y baja del espacio de dirección de la memoria global de la matriz de memoria 130. La operación de la unidad de intercambio de memoria se describirá en mayor detalle con referencia a la Figura 5.
La Figura 3 ilustra el registro de memoria de estados de espera 138 para los estados de espera del bus flash, dispuesto para ser utilizado con diferentes partes de la matriz de la memoria flash. El registro de memoria de estados de espera incluye M registros de memoria separados para almacenar los valores de estado de espera asociados a M partes separadas de la matriz de memoria flash. En una implementación, M se establece en N, de tal forma que sólo existe un registro de estados de espera separado para cada macro flash. En otras implementaciones, pueden existir varios registros de estados de espera por cada macro flash o varias macros flash por cada registro de estados de espera. En una implementación específica, N se establece en cuatro y M se establece en 16. Cada registro de estados de espera contiene un valor de estados de espera para utilizar durante las operaciones de lectura en cualquier dirección de memoria de una correspondiente parte de la matriz de memoria. El valor de estados de espera indica el número de ciclos del bus de la memoria flash que la unidad de acceso a la memoria flash debe esperar hasta que se recuperan los datos por medio de una operación de lectura. Si el valor de estados de espera se establece en cero, la unidad de acceso a la memoria flash accede al bus flash durante el ciclo de reloj inmediatamente posterior al ciclo de reloj en el que se ha validado una operación de lectura para la matriz flash. Si el valor de estados de espera se establece en 3, entonces la unidad de acceso a la memoria flash espera tres ciclos de reloj tras la aserción de una operación de lectura.
Las diferentes partes de la matriz de la memoria flash pueden presentar diferentes valores de estados de espera para adaptarse a los diferentes grados de degradación de las matrices de memoria flash. De manera esquemática, cuánto más a menudo se escriba en una celda flash, más lentamente responderá la celda flash a las subsiguientes operaciones de lectura. Debido a que en las diferentes partes de la memoria flash se almacenan tipos de datos o programas diferentes, se producirán diferentes grados de degradación del tiempo de lectura. Más particularmente, las partes de la memoria flash que se reescriben con frecuencia, tales como las partes utilizadas para almacenar notas de voz, están sometidas a una mayor cantidad de degradación que las partes de la memoria flash que se reescriben con poca frecuencia, tales como las partes en las que se almacena el cargador de arranque. (En una implementación descrita más adelante, el cargador de arranque se introduce y retira de la memoria alta dando por resultado cierto grado de degradación en las celdas de memoria utilizadas para almacenar el cargador de arranque.)
Por lo tanto, se almacena un valor de estados de espera separado en el registro de estados de espera de cada parte de la memoria, que depende del grado de degradación esperado de dicha memoria. Para aquellas partes de la memoria cuya reprogramación se preve que ocurra sólo de vez en cuando, se preprograma un estado de espera de cero dentro del correspondiente registro de la memoria de estados de espera. Para aquellas partes de la matriz cuya reprogramación se preve que ocurra con frecuencia, se preprograma un valor de estados de espera de 3, preferentemente. La cantidad de reprogramación esperada se determina de antemano, basándose en el diseño de hardware y software global del sistema. Por lo tanto, si ciertos componentes de hardware y software que realizan frecuentes operaciones de escritura en la memoria flash, tales como los componentes de notas de voz, están diseñados para utilizar sólo la macro flash nº 3, entonces el valor de estados de espera para la macro flash nº 3 se preestablece en 3. Otra posibilidad es que se preestablezca un valor de estados de espera 0 para la macro flash nº 1, un valor de estados de espera 1 para la macro flash nº 2, un valor de estados de espera 2 para la macro flash nº 3, y así sucesivamente. Los diseñadores de software y hardware pueden diseñar los sistemas para que éstos realicen las operaciones de escritura en las macros flash según la frecuencia de escritura esperada. Los diseñadores que crean un tipo de hardware o software que realiza frecuentes escrituras en la memoria flash configurarán los sistemas para que éstos escriban en la macro flash nº 4. Los diseñadores que crean un tipo de hardware o software que sólo escribe en la memoria flash de vez en cuando configurarán los sistemas para que éstos escriban en la macro flash nº 1. Otra posibilidad es que la unidad de acceso a la memoria flash esté configurada para realizar el seguimiento del número de operaciones de escritura llevadas a cabo en cada macro flash, y para incrementar selectivamente el número de estados de espera asociados, en la medida que corresponda. Los registros de estados de espera se preestablecen todos en cero en el momento de la fabricación del teléfono celular. Más adelante, dependiendo del grado de reescritura al que son sometidas las diferentes macros flash durante la utilización del teléfono celular, los valores individuales almacenados dentro de los registros de estados de espera se pueden restablecer selectivamente en 1, luego en 2 tal vez y, finalmente, en 3 o un valor superior. Dependiendo de la memoria flash particular utilizada, y del uso que se hace del teléfono celular, los registros de estados de espera tal vez no se restablezcan del valor cero al valor uno hasta al cabo de un año o dos o tal vez no alcancen nunca el valor 3. En otros casos, quizá sea necesario restablecer los valores con más frecuencia. En otras implementaciones, se proporciona un número aún mayor de valores de estados de espera, incluidos, por ejemplo, los valores de estados de espera de cero a 10. El número total de valores de estados de espera y el número de operaciones de reprogramación realizadas antes de incrementar el número de estados de espera depende en gran medida de la matriz de memoria flash, el bus flash y el controlador flash particulares, así como de la frecuencia global del reloj utilizado para controlar los diversos componentes. No obstante, con cada selección de componentes y cada selección de señal de reloj, pueden realizarse experimentos rutinarios para determinar los valores aceptables u óptimos de los valores de estados de espera, y para determinar con qué frecuencia es necesario incrementar los valores de estados de espera. En cualquier caso, proporcionando valores de estados de espera programables, es posible reducir los tiempos medios de acceso a la memoria, e incrementar de ese modo todavía más la velocidad de procesamiento o utilizar un reloj más lento para conseguir velocidades de procesamiento similares.
La Figura 4 ilustra el registro de contraseñas de la memoria flash 140 en el que se almacenar las contraseñas asociadas a las diferentes partes de la matriz de memoria flash. En el registro de contraseñas de la memoria flash, se almacenan P contraseñas, cada una de las cuales está asociada a una correspondiente parte de la matriz de memoria flash. En un ejemplo, P se establece en 16. Para facilitar la programación, P puede establecerse en el mismo valor de M. En cada registro de contraseña particular, se almacena una contraseña exclusiva necesaria para poder realizar una operación de escritura o supresión en la parte correspondiente de la matriz de memoria. Por lo tanto, cada mandato de escritura recibido desde el microprocesador u otro componente del ASIC especifica una contraseña, junto con una dirección de memoria y los datos que se van a escribir en esa dirección. Cada mandato de supresión indica también una contraseña, junto con las direcciones de memoria que deben suprimirse. Cuando se recibe un mandato de escritura, la unidad de escritura 146 (Figura 2) compara la contraseña recibida dentro del mandato de escritura con la contraseña almacenada en el registro de contraseña de la dirección de memoria indicada en el mandato de escritura. Si las contraseñas coinciden, la unidad de escritura procede a realizar el mandato de escritura enviando la operación de escritura a la memoria flash. Si las contraseñas no coinciden, la unidad de escritura envía una señal de error al componente que emite el mandato de escritura, en el que se le indica que el mandato de escritura no ha podido ser realizado debido a una contraseña incorrecta. Los mandatos de supresión son tratados de la misma manera.
De esta forma, pues, es como se proporciona la protección por contraseña. La protección por contraseña está destinada, en parte, a impedir la supresión o reprogramación accidental de algunas áreas de la memoria flash, que podría producirse quizás como consecuencia de un error de software o similar. En este sentido, es bastante improbable que un mandato de escritura o supresión accidental incluya la contraseña correcta. Asimismo, si el conjunto del sistema está configurado para que los diferentes componentes periféricos lean y escriban en partes diferentes de la memoria flash, entonces la protección por contraseña impide también que un componente periférico escriba accidentalmente en un área de la memoria reservada a otro componente. Por ejemplo, el vocodificador puede leer o escribir sólo en la memoria flash nº 2. Como alternativa, se pueden proporcionar otros protocolos de contraseña. Por ejemplo, en lugar de asociar una contraseña diferente a cada parte diferente de la memoria, es posible asociar directamente contraseñas diferentes a distintos componentes emisores. Por ello, será posible, por ejemplo, asociar una primera contraseña a los mandatos recibidos desde el microprocesador y una segunda contraseña a los mandatos recibidos desde el vocodificador. A pesar de que en esta implementación cada dispositivo puede leer o escribir potencialmente en cualquiera de las macros flash, el riesgo de realizar operaciones de escritura accidentales se reduce al mínimo. Cada contraseña puede ser, por ejemplo, una secuencia binaria exclusiva de 16 bits. Mediante la protección por contraseña, se evita la pérdida de datos importantes, tales como los números de teléfono de la policía, los bomberos o similares. Asimismo, se reduce el riesgo de que se alteren partes del código CDMA almacenado en la memoria flash. En un caso extremo, la alteración de uno o varios de los programas CDMA almacenados en la memoria flash podría provocar el fallo de todo el teléfono celular, hecho que obligaría al cliente a devolver el teléfono celular al fabricante para su reemplazo o reparación. En otras implementaciones, el usuario puede tener capacidad para registrar contraseñas particulares que serán utilizadas con los datos almacenados por el usuario. Por ejemplo, si una de las macros flash se utiliza exclusivamente para almacenar notas de voz, el usuario puede introducir una contraseña exclusiva, por medio del teclado del teléfono celular, impidiendo de ese modo el acceso no autorizado a la nota de voz por otro usuario del teléfono. Asimismo, las partes particulares de la memoria destinadas a almacenar números de teléfono, direcciones y similares pueden tener asociada, también, una contraseña introducida por el usuario para impedir el acceso no autorizado. Como puede apreciarse, existe una amplia diversidad de contextos diferentes para la utilización de contraseñas.
Como se ha indicado, una parte de la matriz de memoria flash puede ser empleada para almacenar un cargador de arranque. Se dispone de un registro de contraseña adicional e independiente 150 para la parte de memoria en la que se almacena el cargador de arranque. En consecuencia, no se ejecutará ningún mandato de escritura o supresión que afecte a la parte de la memoria en la que se almacena el cargador de arranque, a menos que el mandato proporcione además la contraseña independiente del cargador de arranque. De esta forma, pues, se proporciona un nivel adicional de protección mediante contraseña al cargador de arranque, que es un elemento crucial, y se reduce al mínimo el riesgo de que el cargador de arranque sea alterado por error.
La Figura 5 ilustra el registro de estados de la memoria flash 142, en el que se almacena el estado de las macros flash de la matriz de memoria flash. El registro de estados incluye N elementos de memoria individuales en los que se almacena por separado el estado de cada una de las N macros flash. Cada registro de estado indica, entre otras características posibles, si la macro flash correspondiente está siendo sometida actualmente a una operación de lectura o escritura pendiente. Además, el registro de estado puede indicar también la entidad software o hardware que realiza la operación de lectura o escritura. Si se almacena la identidad del dispositivo a partir del cual se deriva la operación de lectura o escritura, el microprocesador podrá determinar, mediante unas tablas de asignación de prioridades adecuadas mantenidas por el microprocesador, si una operación de memoria flash recién solicitada es de prioridad más alta y, de ser así, el microprocesador podrá detener el controlador flash y hacer que éste cancele la operación de lectura o escritura para permitir que la operación de memoria flash de prioridad más alta sea realizada de inmediato.
Además, en los registros de estados, puede almacenarse, asimismo, cualquier indicación del estado de una operación de lectura o escritura actual. Por ejemplo, en el registro de estados, se puede registrar la hora a la que el mandato de lectura o escritura ha sido enviado a la matriz de memoria flash. Por lo tanto, el microprocesador puede acceder al valor de la hora y determinar cuando se preve que haya finalizado el mandato. Basándose en el hecho de que una operación de escritura habitualmente lleva 100 ciclos de reloj, el microprocesador determina si el mandato de escritura pendiente ha sido emitido recientemente o está a punto de finalizar. El microprocesador podrá decidir, entonces, si interrumpe o no al controlador flash para realizar una operación de escritura de prioridad más alta. Por lo que a las operaciones de lectura respecta, el registro de estados puede indicar el número de ciclos de espera utilizados en relación con la operación de lectura particular. Como puede apreciarse, es posible almacenar una gran variedad de información de estado dentro de un registro de estados, dependiendo de la preprogramación del sistema. En general, la información de estado se proporciona para mejorar la eficacia global del sistema y permitir la realización de un número mayor de operaciones dentro de un período de tiempo determinado, o utilizar una frecuencia de reloj inferior y realizar el mismo número de operaciones por segundo.
La Figura 6 ilustra el funcionamiento de la unidad de intercambio de memoria 149 (Figura 2) que es operativa para intercambiar partes de memoria alta y baja de un espacio de dirección de memoria global 152 de la matriz de memoria 130 (Figura 2). En funcionamiento, el cargador de arranque está almacenado inicialmente en una dirección de memoria más baja del espacio de la memoria (por ejemplo, la dirección 0 x 00). Los programas de software principales se almacenan empezando por una dirección de memoria alta, tal como la dirección 0 x 05800000. El cargador de arranque incluye mandatos que especifican cuál de los programas de software principales de la memoria flash debe ser ejecutado como una parte de una operación de encendido o de reposición. Una vez que el cargador de arranque ha finalizado sus operaciones, la unidad de intercambio de memoria intercambia la memoria alta y la memoria baja. Por lo tanto, después de la operación de intercambio, los programas de software flash principales se almacenan empezando por la posición de memoria 0 x 0. El cargador de arranque se almacena en una dirección de memoria alta, tal como la dirección 0 x 05800000. Por consiguiente, un salto a la memoria baja permite, entonces, entrar en el software principal de las macros flash. El acceso al software flash principal resultará más fácil de esta forma. Si a continuación se apaga y vuelve a encender el teléfono celular o si se realiza alguna operación de reposición, las direcciones de memoria se intercambian de nuevo y, entonces, el cargador de arranque residirá en la dirección de memoria más baja para permitir que éste empiece a funcionar correctamente.
La descripción anterior hace referencia a algunos ejemplos de los aspectos de un sistema de microprocesador basado en la tecnología CDMA, que presenta una memoria flash y una memoria SRAM incorporadas. Los principios de la presente invención son aplicables también a otros sistemas.

Claims (11)

1. Sistema de memoria flash (112) que comprende:
unas celdas de memoria flash dispuestas como un conjunto de macros flash (130), y
unos medios de lectura durante escritura (144, 146) para escribir en una de dichas macros flash, mientras se lee simultáneamente en otra de dichas macros flash; en el que el sistema está conectado a un microprocesador (102) y en el que dichos medios de lectura durante escritura (144, 146) incluyen:
unos medios de escritura (146) para escribir las señales recibidas desde el microprocesador a una macro seleccionada de dichas macros flash (130); y
caracterizado porque dichos medios de lectura durante escritura incluyen además unos medios de suspensión, sensibles a la recepción de un mandato de lectura del microprocesador dirigido a dicha macro seleccionada de dichas macros flash, para suspender la operación del microprocesador hasta que los medios de escritura (146) hayan finalizado su operación, y para ejecutar el mandato de lectura.
2. Sistema según la reivindicación 1, que incluye además unos medios de almacenamiento (142) para almacenar un valor representativo del estado actual de los medios de lectura durante escritura (144, 146), siendo dicho valor accesible por el microprocesador.
3. Sistema según la reivindicación 1, que comprende además:
un controlador de memoria flash (132);
un bus de memoria flash (134) que interconecta las macros de memoria flash y el controlador de memoria flash;
en el que dicho controlador de memoria flash (132) incluye:
unos medios de almacenamiento (138) para almacenar un número programable de estados de espera asociados a las macros flash, correspondiendo un número programable de estados de espera a cada macro flash, y
unos medios de acceso para acceder a una macro flash seleccionada, que comprenden dichos medios de lectura durante escritura, accediendo dichos medios de acceso a la macro flash seleccionada utilizando el bus de memoria flash programado con el número de estados de espera asociado a la macro flash seleccionada.
4. Sistema según la reivindicación 3, en el que dichos medios de almacenamiento incluyen unas unidades de registro de estados de espera, siendo programable cada una de dichas unidades de registro de estados de espera para representar cualquier número entero de estados de espera.
5. Sistema según la reivindicación 1, que comprende además:
un controlador de memoria flash (132) que incluye:
unos medios de almacenamiento (140) para almacenar una contraseña separada asociada a cada macro flash, y
unos medios de habilitación, sensibles a la recepción de una contraseña válida para una macro seleccionada de dichas macros flash, para habilitar la programación o la supresión de celdas flash de dicha macro flash seleccionada mientras se impide, de forma simultánea, la programación o la supresión de todas las demás celdas flash.
6. Sistema de memoria flash según la reivindicación 5, en el que el software del cargador de arranque se almacena en una parte de las celdas flash de una de dichas macros flash.
7. Sistema de memoria flash según la reivindicación 6, que incluye además:
unos medios de almacenamiento para almacenar una contraseña asociada al cargador de arranque;
y
unos medios de habilitación, sensibles a la recepción de una contraseña válida para el cargador de arranque, para habilitar la programación o la supresión de dichas celdas flash de dicho cargador de arranque.
8. Sistema de memoria flash según la reivindicación 6, que incluye además unos medios de supresión (147) para suprimir unas celdas flash seleccionadas de las macros flash, realizando dichos medios de supresión selectivamente una operación de supresión de palabra, una operación de supresión de página o una operación de supresión masiva.
9. Sistema de memoria flash según la reivindicación 6, en el que los medios de almacenamiento (140) para almacenar una contraseña separada asociada a cada macro flash almacenan las contraseñas en una memoria de cableado.
10. Sistema según la reivindicación 1, que comprende además:
un controlador de memoria flash (132) que incluye unos medios de división para dividir dichas celdas de memoria flash en posiciones altas y bajas de memoria;
en el que, en dichas celdas de memoria flash, se almacena un cargador de arranque empezando por la dirección de memoria más baja del espacio de la memoria flash y
en el que dichos medios de división incluyen unos medios de intercambio (149) para intercambiar las posiciones altas y bajas de memoria, una vez que las operaciones realizadas por el cargador de arranque han finalizado.
11. Sistema según la reivindicación 1, que comprende además una unidad de acceso a la memoria flash (136) que presenta dichos medios de lectura durante escritura (144, 146) para escribir en una de dichas macros flash mientras se lee, simultáneamente, otra de dichas macros flash.
ES00986483T 1999-12-17 2000-12-14 Dispositivo de comunicacion movil que presenta una memoria flash y una memoria sram incorporadas e integradas. Expired - Lifetime ES2269213T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/465,665 US6407949B1 (en) 1999-12-17 1999-12-17 Mobile communication device having integrated embedded flash and SRAM memory
US465665 1999-12-17

Publications (1)

Publication Number Publication Date
ES2269213T3 true ES2269213T3 (es) 2007-04-01

Family

ID=23848684

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00986483T Expired - Lifetime ES2269213T3 (es) 1999-12-17 2000-12-14 Dispositivo de comunicacion movil que presenta una memoria flash y una memoria sram incorporadas e integradas.

Country Status (12)

Country Link
US (2) US6407949B1 (es)
EP (4) EP1713080A1 (es)
JP (5) JP4795598B2 (es)
KR (1) KR20030011067A (es)
CN (1) CN1411601A (es)
AT (1) ATE339764T1 (es)
AU (1) AU2271301A (es)
CA (4) CA2704894A1 (es)
DE (1) DE60030765T2 (es)
ES (1) ES2269213T3 (es)
HK (1) HK1052248A1 (es)
WO (1) WO2001045106A2 (es)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001025053A (ja) 1999-07-09 2001-01-26 Mitsubishi Electric Corp 携帯電話のメモリシステム
US6563746B2 (en) * 1999-11-09 2003-05-13 Fujitsu Limited Circuit for entering/exiting semiconductor memory device into/from low power consumption mode and method of controlling internal circuit at low power consumption mode
US6407949B1 (en) * 1999-12-17 2002-06-18 Qualcomm, Incorporated Mobile communication device having integrated embedded flash and SRAM memory
US6785806B1 (en) 1999-12-30 2004-08-31 Intel Corporation Bios having macro/effector pairs for hardware initialization
PL355475A1 (en) * 2000-02-21 2004-05-04 Trek 2000 International Ltd. A portable data storage device
JP2001249471A (ja) 2000-03-07 2001-09-14 Fuji Denki Gazo Device Kk 電子写真用感光体
US6741978B1 (en) * 2000-04-12 2004-05-25 Intel Corporation Accessing file data stored in non-volatile re-programmable semiconductor memories
JP4840553B2 (ja) * 2001-07-31 2011-12-21 日本電気株式会社 無線通信機と、そのブートプログラム書き換え方法及びプログラム
US20030046575A1 (en) * 2001-08-30 2003-03-06 International Business Machines Corporation Digital identity information cards
TW538338B (en) * 2001-12-19 2003-06-21 Yi-Lang Jang Data protection device using addresses
GB2385956B (en) * 2002-03-01 2004-06-02 3Com Corp Key based register locking mechanism
EP1345236B1 (en) * 2002-03-14 2011-05-11 STMicroelectronics Srl A non-volatile memory device
CA2380762A1 (en) * 2002-04-04 2003-10-04 Intrinsyc Software, Inc. Internet-enabled device provisioning, upgrade and recovery mechanism
US8108588B2 (en) * 2003-04-16 2012-01-31 Sandisk Il Ltd. Monolithic read-while-write flash memory device
US7171288B2 (en) * 2003-10-06 2007-01-30 Invacare Corporation Method and apparatus for reprogramming a programmed controller of a power driven wheelchair
US7210002B2 (en) * 2003-11-19 2007-04-24 Qualcomm Incorporated System and method for operating dual bank read-while-write flash
KR100533683B1 (ko) * 2004-02-03 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
US20050177754A1 (en) * 2004-02-09 2005-08-11 Board Of Control Of Michigan Technological University Password management peripheral system and method
JP2007526724A (ja) * 2004-03-04 2007-09-13 クゥアルコム・インコーポレイテッド ワイアレス・ネットワークにおける低データ・レート・トラフィックの早期打ち切り
JP4768237B2 (ja) * 2004-06-25 2011-09-07 株式会社東芝 携帯可能電子装置及び携帯可能電子装置の制御方法
JP4460967B2 (ja) * 2004-07-23 2010-05-12 株式会社東芝 メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
US20060069849A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US20060215437A1 (en) * 2005-03-28 2006-09-28 Trika Sanjeev N Recovering from memory imprints
KR20080032035A (ko) 2005-05-25 2008-04-14 엔엑스피 비 브이 휴대용 전자 단말기 및 휴대용 전자 단말기 관리 방법
JP2007011872A (ja) * 2005-07-01 2007-01-18 Toshiba Corp メモリカードとその制御方法
JP2009503656A (ja) * 2005-07-21 2009-01-29 クレブエックス・リミテッド・ライアビリティ・カンパニー メモリロックシステム
JP2007128633A (ja) 2005-10-07 2007-05-24 Matsushita Electric Ind Co Ltd 半導体記憶装置及びこれを備えた送受信システム
US7598166B2 (en) * 2006-09-08 2009-10-06 International Business Machines Corporation Dielectric layers for metal lines in semiconductor chips
US7941587B2 (en) * 2007-09-17 2011-05-10 Cadence Design Systems, Inc Programmable sequence generator for a flash memory controller
KR100971532B1 (ko) * 2008-05-27 2010-07-21 삼성전자주식회사 구동 트랜지스터를 포함하는 반도체 소자
US7761635B1 (en) * 2008-06-20 2010-07-20 Tableau, Llc Bridge device access system
US8209439B2 (en) * 2008-08-25 2012-06-26 Sandisk Il Ltd. Managing multiple concurrent operations with various priority levels in a local storage device
US20100174913A1 (en) * 2009-01-03 2010-07-08 Johnson Simon B Multi-factor authentication system for encryption key storage and method of operation therefor
US9286493B2 (en) * 2009-01-07 2016-03-15 Clevx, Llc Encryption bridge system and method of operation thereof
DE102009014995A1 (de) * 2009-03-26 2010-09-30 Giesecke & Devrient Gmbh Sicherer Speicherzugriff auf einem portablen Datenträger
US8572344B2 (en) * 2009-05-04 2013-10-29 Hewlett-Packard Development Company, L.P. Storage device erase command having a control field controllable by a requestor device
GB2491774B (en) * 2010-04-12 2018-05-09 Hewlett Packard Development Co Authenticating clearing of non-volatile cache of storage device
US8495601B2 (en) 2010-06-09 2013-07-23 Lear Corporation Shared memory architecture
US8539472B2 (en) 2010-06-09 2013-09-17 Lear Corporation Method and system of updating shared memory
US8570809B2 (en) 2011-12-02 2013-10-29 Cypress Semiconductor Corp. Flash memory devices and systems
TWI520148B (zh) * 2012-07-05 2016-02-01 慧榮科技股份有限公司 記憶體裝置和記憶體控制方法
CN102855922A (zh) * 2012-09-05 2013-01-02 南京智达康无线通信科技股份有限公司 一种在Flash中记录死机信息的方法
US10185331B2 (en) * 2013-03-11 2019-01-22 Ice Computer, Inc. Modular computer and thermal management
CN105678117B (zh) * 2014-11-19 2019-12-20 比亚迪股份有限公司 单片机闪存程序的安全性保护方法及保护装置及单片机
US10146704B2 (en) * 2016-02-16 2018-12-04 Dell Products L.P. Volatile/non-volatile memory device access provisioning system
US10185664B1 (en) * 2017-06-30 2019-01-22 Vmware, Inc. Method for switching address spaces via an intermediate address space

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02235156A (ja) 1989-03-08 1990-09-18 Canon Inc 情報処理装置
US5245572A (en) * 1991-07-30 1993-09-14 Intel Corporation Floating gate nonvolatile memory with reading while writing capability
US5473775A (en) * 1991-10-11 1995-12-05 Kabushiki Kaisha Toshiba Personal computer using flash memory as BIOS-ROM
JP2971267B2 (ja) * 1991-10-11 1999-11-02 株式会社東芝 フラッシュメモリをbios−romとして使用したパーソナルコンピュータ
JP3152535B2 (ja) * 1993-03-18 2001-04-03 富士通株式会社 データ処理装置
US5463766A (en) * 1993-03-22 1995-10-31 Dell Usa, L.P. System and method for loading diagnostics routines from disk
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
US5592641A (en) * 1993-06-30 1997-01-07 Intel Corporation Method and device for selectively locking write access to blocks in a memory array using write protect inputs and block enabled status
JP3464271B2 (ja) * 1994-04-12 2003-11-05 三菱電機株式会社 不揮発性半導体記憶装置
FR2719939A1 (fr) 1994-05-11 1995-11-17 Sgs Thomson Microelectronics Mémoire non volatile modifiable électriquement à interface de commande.
JP3739102B2 (ja) * 1994-07-07 2006-01-25 富士通株式会社 不揮発性半導体記憶装置
JPH0844628A (ja) * 1994-08-03 1996-02-16 Hitachi Ltd 不揮発性メモリ、およびそれを用いたメモリカード、情報処理装置、ならびに不揮発性メモリのソフトウェアライトプロテクト制御方法
DE19536206A1 (de) * 1994-09-30 1996-04-04 Samsung Electronics Co Ltd Intelligente Karte
US5978941A (en) * 1995-03-15 1999-11-02 Hitachi, Ltd. Semiconductor memory device having deterioration determining function
JPH0969067A (ja) * 1995-08-31 1997-03-11 Hitachi Ltd 半導体記憶装置、及びデータ処理装置
JPH09114768A (ja) * 1995-10-20 1997-05-02 Toshiba Corp コンピュータシステム
KR100359414B1 (ko) * 1996-01-25 2003-01-24 동경 엘렉트론 디바이스 주식회사 데이타독출/기록방법및그를이용한메모리제어장치및시스템
US6148360A (en) 1996-09-20 2000-11-14 Intel Corporation Nonvolatile writeable memory with program suspend command
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5987581A (en) * 1997-04-02 1999-11-16 Intel Corporation Configurable address line inverter for remapping memory
US5930826A (en) * 1997-04-07 1999-07-27 Aplus Integrated Circuits, Inc. Flash memory protection attribute status bits held in a flash memory array
JPH1196078A (ja) * 1997-09-24 1999-04-09 Matsushita Electric Ind Co Ltd 半導体メモリ装置
EP0905704B1 (en) 1997-09-24 2010-03-31 STMicroelectronics S.r.l. Sectored semiconductor memory device with configurable memory sector addresses
US5822244A (en) * 1997-09-24 1998-10-13 Motorola, Inc. Method and apparatus for suspending a program/erase operation in a flash memory
JPH11110293A (ja) * 1997-09-29 1999-04-23 Mitsubishi Electric Corp 不揮発性メモリ制御回路
JPH11110294A (ja) * 1997-10-01 1999-04-23 Toshiba Corp マイクロコンピュータ及び情報処理装置
WO1999033057A1 (en) 1997-12-23 1999-07-01 Macronix International Co., Ltd. Technique for increasing endurance of integrated circuit memory
US6088264A (en) * 1998-01-05 2000-07-11 Intel Corporation Flash memory partitioning for read-while-write operation
EP1058930B1 (en) 1998-01-06 2009-06-03 Macronix International Co., Ltd. A memory supporting multiple address protocols
JP3544859B2 (ja) * 1998-05-11 2004-07-21 富士通株式会社 不揮発性半導体メモリを使用した2次記憶装置
US6205548B1 (en) * 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory
US6356987B1 (en) * 1999-03-10 2002-03-12 Atmel Corporation Microprocessing device having programmable wait states
US6407949B1 (en) * 1999-12-17 2002-06-18 Qualcomm, Incorporated Mobile communication device having integrated embedded flash and SRAM memory

Also Published As

Publication number Publication date
ATE339764T1 (de) 2006-10-15
CA2704892A1 (en) 2001-06-21
JP2012141993A (ja) 2012-07-26
DE60030765T2 (de) 2007-09-13
WO2001045106A3 (en) 2002-01-10
EP1710806B1 (en) 2016-02-03
EP1713080A1 (en) 2006-10-18
US6407949B1 (en) 2002-06-18
JP5123410B2 (ja) 2013-01-23
JP5801436B2 (ja) 2015-10-28
EP1713079B1 (en) 2018-03-21
EP1710806A1 (en) 2006-10-11
CN1411601A (zh) 2003-04-16
KR20030011067A (ko) 2003-02-06
US20010036109A1 (en) 2001-11-01
DE60030765D1 (de) 2006-10-26
JP4795598B2 (ja) 2011-10-19
JP5453471B2 (ja) 2014-03-26
JP2003517168A (ja) 2003-05-20
CA2393143A1 (en) 2001-06-21
AU2271301A (en) 2001-06-25
EP1713079A1 (en) 2006-10-18
JP2014160485A (ja) 2014-09-04
JP2011192290A (ja) 2011-09-29
HK1052248A1 (zh) 2003-09-05
US6392925B2 (en) 2002-05-21
EP1238393A2 (en) 2002-09-11
CA2704893A1 (en) 2001-06-21
CA2704894A1 (en) 2001-06-21
WO2001045106A2 (en) 2001-06-21
JP2012141994A (ja) 2012-07-26
EP1238393B1 (en) 2006-09-13

Similar Documents

Publication Publication Date Title
ES2269213T3 (es) Dispositivo de comunicacion movil que presenta una memoria flash y una memoria sram incorporadas e integradas.
US7061804B2 (en) Robust and high-speed memory access with adaptive interface timing
CN100433192C (zh) 使用动态随机存取存储器和闪存的系统
JP2005502144A (ja) プロセッサ性能を改善するためのフラッシュバーストモードを利用する方法および装置
JP2006520958A (ja) プロファイル記憶装置を有する汎用メモリ装置
JPH1050078A (ja) 電気的に消去およびプログラムが可能なリード・オンリ・メモリの消去およびプログラミング保護方法および装置
KR100922412B1 (ko) 반도체 기억 장치의 제어 방법 및 반도체 기억 장치
US6948041B2 (en) Permanent memory block protection in a flash memory device
US6822902B2 (en) Apparatus and method for interfacing between modem and memory in mobile station
US7685333B2 (en) Method and system for communicating with memory devices utilizing selected timing parameters from a timing table
US20080133820A1 (en) DDR flash implementation with row buffer interface to legacy flash functions
JPH0850643A (ja) 記憶装置
JP2000276461A (ja) マイクロコンピュータ
JPH0744468A (ja) 記憶装置
WO2001045112A1 (en) Mobile communication device having flash memory system with word line buffer
JPS63208950A (ja) 評価用マイクロコンピユ−タ