Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROCESSING UNIT AND METHOD OF MANAGING STORAGE IN PROCESSING SYSTEMS WITH LIMITED RESOURCES
Document Type and Number:
WIPO Patent Application WO/2006/030036
Kind Code:
A1
Abstract:
The invention relates to a processing unit and to a method of managing storage in processing systems with limited resources. In particular, the invention relates to storage management in limited resource environments such as smart cards. More specifically, the invention relates to a method of managing volatile data storage resources, in order to reduce the amount of volatile storage required to operate the stack of the system and, in this way, keep more volatile storage available for other requirements or to manage the system or other applications. When the stack grows and approaches the pre-set limit, the system transfers a stack block from the volatile storage to a non-volatile storage zone, thereby enabling the stack to be compressed and the size thereof to be increased virtually.

Inventors:
CANIS ROBLES JAVIER (ES)
Application Number:
PCT/ES2004/000372
Publication Date:
March 23, 2006
Filing Date:
August 10, 2004
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MICROELECTRONICA ESPANOLA S A (ES)
CANIS ROBLES JAVIER (ES)
International Classes:
G06F12/08; G06K19/07; G07F7/00; (IPC1-7): G06F12/08; G06K19/07; G07F7/00
Foreign References:
US5497494A1996-03-05
US6220510B12001-04-24
EP1039473A22000-09-27
Other References:
PATENT ABSTRACTS OF JAPAN vol. 015, no. 075 5 December 1990 (1990-12-05)
Attorney, Agent or Firm:
Carpintero Lopez, Francisco (S.L. Alcal, 35 MADRID, ES)
Download PDF:
Claims:
1. R E I V I N D I C A C I O N E S .
2. Método de gestión de memoria para sistemas de procesado con recursos limitados, donde dicha memoria comprende zonas de memoria novolátil y una pila formada por zonas de memoria volátil, con objeto de reducir Ia cantidad de memoria volátil necesaria para implementar dicha pila caracterizado porque comprende definir un tamaño máximo de memoria volátil usada por Ia pila, y transferir al menos un bloque de datos de Ia pila a zona de memoria novolátil, cuando el nivel de almacenamiento de datos en Ia pila es próximo al tamaño máximo definido para Ia misma.
3. Método según Ia reivindicación 1 caracterizado porque una vez transferido el bloque de datos, se compacta Ia pila y se incrementa el puntero de Ia pila.
4. Método según Ia reivindicación 1 o 2 caracterizado porque se comprueba el nivel de almacenamiento de datos en Ia pila de manera continuada.
5. Método según cualquiera de las reivindicaciones anteriores caracterizado porque el tamaño máximo de memoria volátil que se define es fijo.
6. Método según cualquiera de las reivindicaciones 1 a 3 caracterizado porque el tamaño máximo de memoria volátil que se define es variable.
7. Método según cualquiera de las reivindicaciones anteriores caracterizado porque se transfiere más de un bloque a zonas de memoria no volátil.
8. Método según cualquiera de las reivindicaciones anteriores caracterizado porque el bloque de datos que se transfiere, es el que ocupa las posiciones más superiores de Ia pila. 8.
9. Método según cualquiera de las reivindicaciones anteriores caracterizado porque el tamaño de los bloques es fijo.
10. Método según cualquiera de las reivindicaciones 1 a 7 caracterizado porque el tamaño de los bloques es variable.
11. Método según cualquiera de las reivindicaciones anteriores caracterizado porque cuando es necesario disponer en Ia pila de uno de los bloques de datos transferidos a memoria novolátil, se expande Ia pila y se recupera el bloque de datos transfiriéndolo desde Ia memoria novolátil a su posición original en Ia pila.
12. Unidad de procesado que comprende medios de procesado programables y al menos una memoria con porciones de memoria volátil, caracterizado porque Ia memoria es gestionada según el método de las reivindicaciones 1 a 10.
13. Unidad de procesado según Ia reivindicación 11 caracterizado porque Ia unidad de procesado es parte de una tarjeta inteligente.
Description:
UNIDAD DE PROCESADO Y MÉTODO DEGESTlON DE MEMORIA EN SISTEMAS DE PROCESADO CON RECURSOS LIMITADOS

D E S C R I P C I Ó N

OBJETO DE LA INVENCIÓN

La presente invención está relacionada con Ia gestión de memoria en entornos de recursos limitados, es decir, en sistemas con capacidad de procesamiento y almacenamiento reducidos, como por ejemplo los existentes en una tarjeta inteligente.

De manera más particular, Ia invención se refiere a un método de gestión de los recursos de almacenamiento de datos de memoria volátil, que tiene por objeto reducir el tamaño de memoria volátil necesaria para implementar Ia pila del sistema, y así reservar más memoria volátil disponible para otras necesidades o gestiones del sistema o de otras aplicaciones.

Es además objeto de Ia invención proporcionar medios de procesado que operan según el método de gestión de memoria anteriormente referido.

ANTECEDENTES DE LA INVENCIÓN

Los sistemas de procesado de datos portátiles limitados en memoria volátil, como por ejemplo los existentes en una tarjeta inteligente, están afectados de grandes restricciones de uso de este tipo de memoria en el sistema debido al escaso tamaño de memoria disponible. En sistemas multiaplicación, estas restricciones se acentúan aún más debido a que cada aplicación puede requerir el uso de este tipo de memoria para uso interno, sin que sea deseada su reutilización o compartición con otras aplicaciones.

Convencionalmente Ia pila está compuesta por una estructura de datos tipo LIFO (el último datos almacenado es el primero recuperado) y un puntero que indica cuál es el último elemento almacenado. La pila es utilizada para controlar Ia ejecución de los programas (encadenamiento de funciones y variables locales). Existe un tamaño de memoria volátil reservada para Ia pila, el puntero de pila indica el nivel de uso de Ia misma.

Normalmente Ia pila se llena hacia posiciones de memoria menores, con el límite del tamaño reservado para ésta. En el caso que se superara el límite establecido, el sistema debería abortar Ia ejecución del proceso en curso y reportar el error, ya que si no se controlara podría causar un error grave en el sistema pudiendo suponer un agujero de seguridad.

DESCRIPCIÓN DE LA INVENCIÓN

La presente invención resuelve el problema técnico planteado, mediante Ia materia inventiva comprendida en las adjuntas reivindicaciones independientes.

La presente invención permite definir un tamaño fijo o variable máximo de memoria volátil usada para Ia pila, sin que se produzca desbordamiento o limitaciones del sistema. Esto se consigue realizando copias de bloques de datos de memoria volátil de Ia pila a memoria no volátil, ya que Ia memoria no volátil, tal y como memoria RAM o EEPROM por ejemplo, tiene menos restricciones en tamaño que Ia memoria volátil.

Cuando Ia pila crece y se acerca al limite establecido para ésta, el sistema realiza una transferencia de un bloque de pila situado en Ia memoria volátil a zona de memoria no volátil, esta transferencia permite una compresión de Ia pila aumentando de forma virtual su tamaño.

Por Io tanto un primer aspecto de Ia invención se refiere a un método de gestión de memoria, donde dicha memoria comprende zonas de memoria no-volátil y una pila formada por zonas de memoria volátil, de modo que se define un tamaño máximo de memoria volátil usada por Ia pila, y se transfiere al menos un bloque de datos de Ia pila a zona de memoria no-volátil, cuando el nivel de almacenamiento de datos en Ia pila es próximo al tamaño máximo definido para Ia misma, es decir cuando podría causar que Ia siguiente inclusión de datos produjera el desbordamiento de Ia misma.

Una vez transferido el bloque de datos, se compacta Ia pila, es decir, se reagrupan los datos para liberar espacio de memoria y se incrementa el puntero de Ia pila.

El tamaño máximo de memoria volátil que se define, puede ser fijo o variable en función de Ia cantidad de pila (incluida los bloques desplazados a Ia memoria no volátil) gastada con anterioridad.

La copia de memoria volátil de Ia pila a memoria no volátil se puede producir varias veces, es decir se transfiere más de un bloque a zonas de memoria no-volátil, con Ia única limitación del tamaño de memoria no volátil disponible.

Los bloques de datos que se transfieren, son los que ocupan las posiciones más superiores de Ia pila ya que son para los que pasará más tiempo antes de que el sistema los necesite. El tamaño de los bloques puede ser fijo o variable en función de que cual sea el tamaño óptimo teniendo en cuenta usos previos de Ia pila.

Cuando es necesario disponer en Ia pila de uno de los bloques de datos transferidos a memoria no-volátil, se expande Ia pila y se recupera el bloque de datos transfiriéndolo desde Ia memoria no-volátil a su posición original en Ia pila en orden inverso a como fueron extraídos. Antes de que el sistema requiera posiciones de Ia pila que están almacenadas en memoria no volátil, se realiza una expansión de Ia pila, colocándose el último bloque de memoria de pila transferido a memoria no volátil a su posición original de Ia pila situada en memoria volátil. Otro aspecto de Ia invención se refiere a una unidad de procesado que comprende medios de procesado programables tal y como un microprocesador y al menos una memoria con porciones de memoria volátil, Ia cual se caracteriza porque Ia memoria es gestionada según el método anteriormente descrito.

La unidad de procesado se puede implementar mediante un circuito integrado, el cual puede estar incorporado en cualquier tipo de dispositivo, como por ejemplo una tarjeta inteligente.

La invención permite por Io tanto liberar espacio en Ia porción de memoria volátil empleada por Ia pila, evitar su desbordamiento, y permitir el uso de este tipo de memoria para otras aplicaciones. Como consecuencia de estas ventajas, se consigue aumentar "virtualmente" Ia memoria volátil disponible en un sistema como por ejemplo en una tarjeta inteligente, por Io que se prolonga Ia vida útil de Ia tarjeta puesto que no es necesario su sustitución cuando hay que cargar nuevas aplicaciones que necesiten más memoria, y se aumentan los posibles usos de Ia tarjeta.

DESCRIPCIÓN DE LOS DIBUJOS

Para complementar Ia descripción que se está realizando y con objeto de ayudar a una mejor comprensión de las características del invento, de acuerdo con un ejemplo preferente de realización práctica del mismo, se acompaña como parte integrante de dicha descripción, un juego de dibujos en donde con carácter ilustrativo y no limitativo, se ha representado Io siguiente:

La figura 1.- muestra esquemáticamente en Ia figura 1A un bloque representativo de una porción de memoria volátil en Ia que se indica con zonas oscurecidas Ia zona de desbordamiento y Ia zona de memoria volátil usada por Ia pila próxima a Ia zona de desbordamiento. La figura 1 B es una representación similar a Ia de Ia figura 1A en Ia que se ilustra mediante una flecha, como un bloque delimitado por líneas discontinuas, es transferido a porciones de memoria no-volátil. La figura 2.- muestra en Ia figura 2A como una vez transferido un bloque de datos a memoria no-volátil, se compacta Ia pila. La figura 2B ilustra cómo se transfiere un bloque de datos cada vez que Ia porción de memoria volátil usada por Ia pila, se acerca a Ia zona de desbordamiento.

La figura 3.- consiste en una representación similar a Ia de Ia figura 1 , en Ia que se muestra el proceso de expansión de Ia pila para recuperar en Ia pila un bloque de datos que se trasfirió a memoria no-volátil.

REALIZACIÓN PREFERENTE DE LA INVENCIÓN

En Ia figura 1A se aprecia una porción de memoria volátil (1) en Ia que se define una zona de desbordamiento (4), y una zona de memoria volátil usada por Ia pila (5) definida por Ia posición del puntero de Ia pila (3). Cuando Ia pila crece hacia posiciones de memoria menores, es decir cuando se detecta que el puntero de Ia pila (3) se acerca peligrosamente a Ia zona de desbordamiento (4), de modo que se pueda producir el desbordamiento de Ia pila, tal y como es el caso de Ia figura 1A, se transfiere un primer bloque de datos (7) de Ia pila en uso a zona de memoria no- volátil (2) tal y como expresa Ia flecha (8) de Ia figura 1 B.

La zona de pila y el tamaño que conforman dicho primer bloque de datos (7) pueden variar en función de Ia gestión que el sistema haga de Ia pila, preferiblemente se elegirá el más ventajoso para cada sistema, por ejemplo, una zona de pila usada en Ia que el puntero de pila este normalmente por debajo.

Una vez transferido el bloque (7) se produce una compactación (6) de Ia pila y un incremento del puntero de pila (3), es decir se desplaza a zonas inferiores tal y como se ha representado en Ia figura 2A. De este modo se libera a Ia pila de datos para almacenar, con objeto de que las porciones de memoria volátil (1 ) liberadas puedan ser utilizadas en otras necesidades del sistema o por otras aplicaciones. Esta copia de bloques y compactación de Ia pila se producirá cada vez que el puntero de pila (3) se acerque a Ia zona de desbordamiento (4), tal y como se ha representado en Ia figura 2B y en Ia que se aprecia como un segundo bloque de datos (8) ha sido transferido a memoria no-volátil (2).

En Ia figura 3 se aprecia el proceso de recuperación de los bloques de datos transferidos, de modo que cuando el puntero de pila (3) aumenta y se acerca a las posiciones en las que antes estaban los datos transferidos a Ia memoria no volátil (2), se produce una expansión (11) de Ia pila para permitir que se realice una transferencia, según indica Ia flecha (9), del bloque que fue copiado con anterioridad a Ia memoria volátil que conforma Ia pila. En Ia figura 3, las flechas (12) y (10) indican Ia secuencia de acciones en Ia pila para Ia recuperación de un bloque de datos.

Diversas posibilidades de realizaciones prácticas de Ia invención, se describen en las adjuntas reivindicaciones dependientes.

A Ia vista de esta descripción y juego de figuras, el experto en Ia materia podrá entender que las realizaciones de Ia invención que se han descrito pueden ser combinadas de múltiples maneras dentro del objeto de Ia invención. La invención ha sido descrita según algunas realizaciones preferentes de Ia misma, pero para el experto en Ia materia resultará evidente que múltiples variaciones ' pueden ser introducidas en dichas realizaciones preferentes sin salir del objeto de Ia invención reivindicada.