Método para actualización de datos en memorias utilizando una unidad de gestión de memoria.
Método ejecutado por una aplicación para actualizar datos almacenados en una pluralidad de memorias físicasconectadas a una unidad de gestión de memoria (MMU) controlada por un microprocesador,
dicha unidad de gestión dememoria (MMU) realizando una transacción de actualización traduciendo direcciones de página de 5 memoria virtual endirecciones de páginas de memoria física por lectura de una tabla de página (PT) siguiendo una pluralidad deindicadores de dirección que forman una estructura de ramificación, el método se caracteriza porque éste comprendelas siguientes etapas:
- definir, por un primer atributo de versión (O), indicadores de una primera estructura de sub-ramificación (SA1), dichaprimera estructura de sub-ramificación (SA1) siendo usada por la unidad de gestión de memoria (MMU) para el actualacceso de la aplicación a las páginas de memoria física (P1),
- definir, por un segundo atributo de versión (E), indicadores para ser usados por la unidad de gestión de memoria(MMU), para la transacción de actualización de datos en dichas páginas de memoria física (P1),
- seleccionar, por la aplicación, de un conjunto de páginas de memoria libre incluyendo páginas con direcciones físicasdesignadas por indicadores definidos por el primer atributo de versión (O) y páginas con direcciones físicas designadaspor indicadores definidos por el segundo atributo de versión(E), dichos indicadores formando una segunda estructura desub-ramificación (SA2),
- actualizar datos de las páginas de memoria física seleccionadas designadas por los indicadores de la segundaestructura de sub-ramificación (SA2),
- configurar, por la unidad de gestión de memoria (MMU), la tabla de página (PT) de manera que la aplicación usa losindicadores de la segunda estructura de sub-ramificación (SA2) para el actual acceso a las páginas de memoria físicaen vez de los indicadores de la primera estructura de sub-ramificación (SA1) usados antes de la actualización.
Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/EP2009/059467.
Solicitante: NAGRAVISION S.A..
Nacionalidad solicitante: Suiza.
Dirección: ROUTE DE GENEVE 22-24 1033 CHESEAUX-SUR-LAUSANNE SUIZA.
Inventor/es: KUDELSKI,HENRI, GREMAUD,FABIEN.
Fecha de Publicación: .
Clasificación Internacional de Patentes:
- G06F12/10 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). › Traducción de direcciones.
- G06F9/445 G06F […] › G06F 9/00 Disposiciones para el control por programa, p. ej. unidades de control (control por programa para dispositivos periféricos G06F 13/10). › Carga o inicio de programas (arranque G06F 9/4401; disposiciones de seguridad para la carga o inicio de programas G06F 21/57).
PDF original: ES-2394154_T3.pdf
Fragmento de la descripción:
Método para actualización de datos en memorias utilizando una unidad de gestión de memoria Campo de la invención [0001] La presente invención se refiere a dispositivos que comprenden uno o más microprocesadores que realizan varias tareas gracias a, al menos, un código de la máquina incluido un programa de software y datos almacenados en memorias. Más particularmente, el método de la invención se dirige a actualizaciones completas o parciales de realización del programa de software utilizando una unidad de gestión de memoria asociada al microprocesador.
Antecedentes técnicos [0002] Un microprocesador controla la memoria con un sistema de gestión de memoria que es comúnmente implementado en forma de hardware y software. La parte de hardware del sistema forma una unidad de gestión de memoria (MMU) que se puede incluir en el microprocesador o estar en la forma de un componente separado, bien integrado en el mismo chip como el microprocesador, o formando un circuito integrado diferente conectado al microprocesador y la memoria.
La unidad de gestión de memoria (MMU) ejecuta transacciones de memoria que incluyen funciones para traducir direcciones virtuales en direcciones físicas, funciones para la protección de la memoria y para el control de las memorias caché.
Los microprocesadores actualmente usados principalmente sostienen la noción de memoria virtual. En un sistema de memoria virtual, instrucciones de programa ejecutadas por el microprocesador se refieren a direcciones virtuales de uso de datos en un espacio de memoria virtual del microprocesador. Este espacio puede ser mucho más grande que el espacio de memoria física disponible en el sistema.
Las direcciones virtuales del microprocesador se traducen por una unidad de gestión de memoria (MMU) en direcciones físicas usadas para el acceso a la memoria de sistema o para otros dispositivos de almacenamiento. La memoria virtual usa un mecanismo de paginación para traducir o vincular las direcciones virtuales con direcciones físicas. El espacio de memoria física se divide en páginas físicas con un tamaño fijo, por ejemplo 4 kilobytes. Las direcciones virtuales comprenden una parte de dirección de página y una parte de desvío de página o impresión por transferencia de página. La dirección de página virtual se traduce por el mecanismo de paginación en la dirección de página física. La impresión por transferencia de página especifica un desvío físico en la página física, es decir un desvío de la dirección de la página física.
La paginación de la memoria permite la ejecución del programa con un espacio de memoria virtual más grande que el espacio de memoria física existente. Por otra parte, la paginación facilita el movimiento de programa en diferentes lugares de la memoria física durante ejecuciones diferentes o múltiples del programa. La paginación también permite la ejecución simultánea de procesos múltiples por el microprocesador, cada proceso pudiendo acceder a sus propias páginas de memoria física asignadas sin estar recogido del disco duro por ejemplo y sin necesidad de asignar toda la memoria física a sólo un proceso. La protección de la memoria de otros procesos puede también ser facilitada basándose en la paginación.
La traducción de la dirección de página virtual en la dirección de página física se realiza consecutivamente leyendo una tabla de página llamada operación de mapa de tablas de páginas o mapa de tablas de páginas. El software operativo del microprocesador mantiene y almacena en la memoria de sistema, tablas de página con información para traducir una dirección de página virtual en una dirección de página física. Por lo tanto es relativamente oneroso llevar a cabo un mapa de tablas de páginas cuando múltiples accesos de memoria deben ser realizados para la traducción. El mapa de tablas de páginas se realiza por el hardware, el software o una combinación de ambos.
Para mejorar los rendimientos del sistema reduciendo el número de mapas de tabla de página, muchos microprocesadores se benefician de un mecanismo de almacenamiento de información de tablas de páginas en una memoria caché. Esta información comprende direcciones de página física traducidas de direcciones de páginas virtuales recientemente usadas. Esta memoria caché de información de página es comúnmente conocida como una "memoria tampón de traducción de direcciones de página" o "Translation Lookaside Buffer" o "TLB cache". La dirección de página virtual está provista al TLB caché que busca esta dirección. Cuando esta dirección es encontrada, el TLB caché proporciona directamente la dirección de la página física correspondiente sin realizar el mapa de tabla de página para la traducción. De esta manera, los rendimientos del sistema al igual que la velocidad de ejecución de los procesos son mejorados gracias a esta conversión de direcciones directas.
Cuando una actualización completa o parcial de una pieza almacenada de software debe ser realizada de una manera discontinua en diferentes tipos de memoria tal como ROM (Read Only Memor y , memoria de sólo lectura) , NVM (Non-Volatile Memor y , memoria no volátil) , RAM (Random Access Memor y , memoria de acceso aleatorio) , etc., la unidad de gestión de memoria y el mecanismo de paginación facilitan en gran medida las operaciones.
La actualización de un sistema puede llevarse a cabo según una primera solución que consiste en almacenar el nuevo software en una memoria física no volátil libre y modificando la tabla de página. Así el procesador usará las direcciones virtuales que apuntan hacia las direcciones físicas de la memoria donde el nuevo software es almacenado. Cuando la aplicación de instalación de actualización no tiene que ser actualizada, una aplicación específica fija ejecuta la actualización del software relacionado según un mecanismo relativamente simple. El sistema trabajará con el software viejo mientras la actualización no esté finalizada y se conectará al nuevo software sólo cuando éste esté completamente instalado y controlado por una secuencia de control tal como una suma de control o un hash.
Cuando una única aplicación también incluyendo la aplicación de instalación de actualización debe ser renovada en un sistema, la aplicación pasa a través de un estado inestable durante el proceso de modificación. La seguridad de tal aplicación bajo modificación depende de la fiabilidad de las instrucciones u órdenes usadas para la actualización. Esta situación de vulnerabilidad de la aplicación no puede ser aceptable en el campo de las tarjetas chip o módulos de seguridad que requieren un alto nivel de seguridad. Por otra parte, si la operación de actualización falla o se interrumpe de forma inesperada, un mecanismo bastante complejo para devolver el sistema al estado precedente es requerido. Esta restauración además implica un paso del sistema a través de un estado inestable que compromete la seguridad.
El documento US2006/129794A1 describe un método para actualizar un programa en una memoria flash sin proceder con el reinicio completo del procesador después de la instalación de la actualización. Un procesador se une con una unidad de gestión de memoria, una memoria de acceso aleatorio y una memoria flash. El contenido de la memoria flash es dinámicamente renovado por una actualización de una tabla de página en la que un indicador designa un nuevo programa almacenado en la memoria flash. El programa obsoleto es bien eliminado, o mantenido en la memoria flash después de la actualización de la tabla de página.
Resumen de la invención [0013] El objetivo de la invención es de llevar a cabo una actualización completa o parcial de la pieza de software en un sistema de forma fiable evitando los estados inestables o incoherentes transitorios que generan fallos de seguridad en el sistema. Otro objetivo es ejecutar una actualización fijada en un entorno con un espacio de memoria limitada como en el campo de portadores de datos portátiles incluido software operativo integrado.
Este objetivo se alcanza por un método ejecutado por una aplicación para actualizar datos almacenados en una pluralidad de memorias físicas conectada a una unidad de gestión de memoria controlada por un microprocesador, dicha unidad de gestión de memoria realizando una transacción de actualización traduciendo direcciones de página de memoria virtual en direcciones de páginas de memoria física por lectura de una tabla de página siguiendo una pluralidad de indicadores de dirección que forman una estructura de ramificación, el método se caracteriza porque éste comprende las siguientes etapas:
- definir, por un primer atributo de versión, indicadores de una... [Seguir leyendo]
Reivindicaciones:
1. Método ejecutado por una aplicación para actualizar datos almacenados en una pluralidad de memorias físicas conectadas a una unidad de gestión de memoria (MMU) controlada por un microprocesador, dicha unidad de gestión de memoria (MMU) realizando una transacción de actualización traduciendo direcciones de página de memoria virtual en direcciones de páginas de memoria física por lectura de una tabla de página (PT) siguiendo una pluralidad de indicadores de dirección que forman una estructura de ramificación, el método se caracteriza porque éste comprende las siguientes etapas:
- definir, por un primer atributo de versión (O) , indicadores de una primera estructura de sub-ramificación (SA1) , dicha primera estructura de sub-ramificación (SA1) siendo usada por la unidad de gestión de memoria (MMU) para el actual acceso de la aplicación a las páginas de memoria física (P1) ,
- definir, por un segundo atributo de versión (E) , indicadores para ser usados por la unidad de gestión de memoria (MMU) , para la transacción de actualización de datos en dichas páginas de memoria física (P1) ,
- seleccionar, por la aplicación, de un conjunto de páginas de memoria libre incluyendo páginas con direcciones físicas designadas por indicadores definidos por el primer atributo de versión (O) y páginas con direcciones físicas designadas por indicadores definidos por el segundo atributo de versión (E) , dichos indicadores formando una segunda estructura de sub-ramificación (SA2) ,
- actualizar datos de las páginas de memoria física seleccionadas designadas por los indicadores de la segunda estructura de sub-ramificación (SA2) ,
- configurar, por la unidad de gestión de memoria (MMU) , la tabla de página (PT) de manera que la aplicación usa los indicadores de la segunda estructura de sub-ramificación (SA2) para el actual acceso a las páginas de memoria física en vez de los indicadores de la primera estructura de sub-ramificación (SA1) usados antes de la actualización.
2. Método según la reivindicación 1 caracterizado por el hecho de que la tabla de página (PT) incluye nodos reuniendo al menos un par de indicadores definidos por el primer atributo de versión (O) y por el segundo atributo de versión (E) respectivamente, dichos nodos formando una estructura de ramificación leída por la unidad de gestión de memoria (MMU) .
3. Método según la reivindicación 1 o 2 caracterizado por el hecho de que la primera estructura de sub-ramificación (SA) comprende nodos definidos por el primer atributo de versión (O) , dichos nodos con indicadores definidos por el primer atributo de versión (O) usados por la aplicación para acceder a las páginas de memoria física.
4. Método según cualquiera de las reivindicaciones 1 a 3 caracterizado por el hecho de que la segunda estructura de sub-ramificación (SA2) incluye al menos un nodo definido por el segundo atributo de versión (E) , dicho nodo con un indicador definido por el segundo atributo de versión (E) usado por la aplicación para designar una nueva página de memoria destinada a almacenar datos de actualización.
5. Método según cualquiera de las reivindicaciones 1 a 4 caracterizado por el hecho de que la tabla de página (PT) se configura por la unidad de gestión de memoria (MMU) de manera que la aplicación accede a las páginas de memoria actualizada usando los indicadores de la segunda estructura de sub-ramificación (SA2) incluyendo los nodos definidos por el primer atributo de versión (O) y al menos un nodo definido por el segundo atributo de versión (E) .
6. Método según cualquiera de las reivindicaciones 1 a 5 caracterizado por el hecho de que, durante la actualización de datos de las páginas de memoria física, comprende las siguientes etapas adicionales:
- explorar la memoria física disponible y asignación de páginas de memoria adicional destinada a almacenar datos de actualización,
- crear nodos adicionales que designan las páginas adicionales previamente asignadas,
- modificar el atributo de versión de al menos un nodo de la estructura de ramificación durante la configuración de la tabla de página (PT) por la unidad de gestión de memoria (MMU) de manera que la aplicación accede a los nodos adicionales que designan las páginas adicionales previamente asignadas.
7. Método según cualquiera de las reivindicaciones 1 a 4 caracterizado por el hecho de que, cuando los datos de actualización se almacenan en las páginas de memoria física apropiada, incluye una etapa de verificación que consiste en comparar datos de control previamente almacenados en una o más páginas de memoria predeterminadas con datos de control calculados de los datos de actualización almacenados en las memorias físicas.
8. Método según la reivindicación 7 caracterizado por el hecho de que la verificación se realiza con datos de control que forman una firma que resulta de un resumen calculado con una función unidireccional matemática del tipo hash y encriptado con una clave conocida por el sistema, dichos datos de control calculados en todos o parte de los datos de actualización se proveen con la actualización y son almacenados en una o más páginas de memoria predeterminadas, la aplicación recalcula los datos de control usando los datos de actualización eficazmente almacenados y los compara con los datos de control previamente almacenados.
9. Método según la reivindicación 7 o 8 caracterizado por el hecho de que, si la comparación es exitosa, la unidad de gestión de memoria (MMU) convalida la instalación de la actualización y la modificación de los atributos de versión de los nodos concernidos por dicha actualización en la tabla de página (PT) .
10. Método según la reivindicación 7 o 8 caracterizado por el hecho de que, si la comparación falla, la unidad de gestión de memoria (MMU) bloquea la conmutación de la antigua a la nueva versión de la aplicación, dicha aplicación trabaja en las condiciones que preceden a la actualización con atributos de versión invariados de los nodos de la tabla de página
(PT) .
11. Método según la reivindicación 1 caracterizado por el hecho de que las direcciones de página de memoria física son leídas desde una memoria caché asociada a la unidad de gestión de memoria (MMU) , dichas direcciones de página de memoria física almacenadas en dicha memoria caché siendo obtenida de las direcciones correspondientes virtuales durante la lectura precedente de la tabla de página (PT) .
12. Método según cualquiera de las reivindicaciones 1 a 6 caracterizado por el hecho de que, durante la modificación del atributo de versión de un nodo de la tabla de página (PT) por la unidad de gestión de memoria (MMU) , el contenido de una página de memoria designado por un indicador de dicho nodo definido por el atributo de la versión que precede a la actualización se sustituye por el contenido de la página de memoria designado por el indicador definido por el atributo de la nueva versión.
13. Método según la reivindicación 2 caracterizado por el hecho de que los nodos se definen por un parámetro de configuración que informa a la unidad de gestión de memoria (MMU) del número de indicadores asociados a dicho nodo 20 definiendo una característica invariable o variable del nodo durante una actualización.
Patentes similares o relacionadas:
Procedimiento de gestión de módulos de software integrados para una computadora electrónica de un dispositivo de conmutación eléctrica, del 17 de Junio de 2020, de SCHNEIDER ELECTRIC INDUSTRIES SAS: Procedimiento de gestión de módulos de software integrados para una computadora electrónica integrada de un dispositivo eléctrico de conmutación de […]
Comunicación de datos de recompensa entre aplicaciones, del 10 de Junio de 2020, de Outfit7 Limited: Método de comunicación de datos de recompensa desde una primera aplicación que se ejecuta en un dispositivo de procesamiento de datos hasta una segunda aplicación […]
Compartición de objetos de primera clase a través de múltiples lenguajes de programación interpretados, del 29 de Abril de 2020, de THE BOEING COMPANY: Un método para compartir construcciones de lenguaje entre diferentes lenguajes de secuencias de comandos basados en Java, en el que las construcciones del […]
Sistema de control de acceso al servicio y procedimiento que usa un agente del navegador integrado, del 15 de Abril de 2020, de SAMSUNG ELECTRONICS CO., LTD.: Un sistema de control de acceso al servicio que usa un agente del navegador integrado, comprendiendo el sistema: un servidor que proporciona […]
Menú y configuración aumentada de búsqueda para aplicaciones informáticas, del 18 de Marzo de 2020, de Microsoft Technology Licensing, LLC: Un sistema, que comprende: un componente de referencia configurado para acceder a un conjunto de metadatos almacenados en un archivo […]
Sistemas y métodos para sincronización de datos y gestión de conmutación por error, del 19 de Febrero de 2020, de IEX Group, Inc: Un método para ejecutar una aplicación de forma expeditiva en al menos un procesador informático, comprendiendo el método: ejecutar simultáneamente una pluralidad de instancias […]
Aparatos y procedimientos de ampliación de servicios de aplicaciones, del 12 de Febrero de 2020, de QUALCOMM INCORPORATED: Un procedimiento para ampliar servicios de un dispositivo de usuario, que comprende: identificar una primera aplicación residente en el dispositivo […]
Método para transmitir y verificar la validez de los datos de configuración en un sistema electrónico, sistema electrónico asociado y producto de programa informático, del 29 de Enero de 2020, de ALSTOM Transport Technologies: Método para transmitir y verificar la validez de los datos de configuración en un sistema electrónico con almacenamiento centralizado de los […]