MXPA02006716A - Metodo y aparato para respaldar un codigo de aplicacion despues de una falla de energia durante una actualizacion de codigo. - Google Patents

Metodo y aparato para respaldar un codigo de aplicacion despues de una falla de energia durante una actualizacion de codigo.

Info

Publication number
MXPA02006716A
MXPA02006716A MXPA02006716A MXPA02006716A MXPA02006716A MX PA02006716 A MXPA02006716 A MX PA02006716A MX PA02006716 A MXPA02006716 A MX PA02006716A MX PA02006716 A MXPA02006716 A MX PA02006716A MX PA02006716 A MXPA02006716 A MX PA02006716A
Authority
MX
Mexico
Prior art keywords
code
application code
memory
controlled device
backup
Prior art date
Application number
MXPA02006716A
Other languages
English (en)
Inventor
Aaron Hal Dinwiddie
Original Assignee
Thomson Licensing Sa
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 Thomson Licensing Sa filed Critical Thomson Licensing Sa
Publication of MXPA02006716A publication Critical patent/MXPA02006716A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Abstract

Un sistema, metodo y aparato para actualizar un codigo de computadora en un dispositivo controlado por computadora, superar microcortes en la actualizacion del codigo de computadora. La presente invencion permite actualizar un codigo de computadora a traves de un canal o mecanismo de actualizacion. En una forma, el codigo de respaldo correspondiente al codigo de aplicacion se almacena en la memoria. Luego de una falla de energia u otro microcorte con la cual el codigo de aplicacion se altere, el codigo de respaldo se utiliza por el codigo de reinicio para proporcionar una version del codigo de aplicacion para la operacion del dispositivo controlado por computadora. En una forma, la actualizacion se logra mediante una tarjeta inteligente.

Description

MÉTODO Y APARATO PARA RESPALDAR UN CÓDIGO DE APLICACIÓN DESPUÉS DE UNA FALLA DE ENERGÍA DURANTE UNA ACTUALIZACIÓN DE CÓDIGO CAMPO DE LA INVENCIÓN La presente invención se relaciona con la actualización de un código de computadora en dispositivos controlados por computadora, y más particularmente a un método y aparato para actualizar un código de computadora en un dispositivo controlado por un micro-procesador o computadora que utiliza una interfaz de tarjeta de circuito integrado (tarjeta inteligente) y/o en el caso de una falla de energía durante la actualización.
ANTECEDENTES DE LA INVENCIÓN Muchos dispositivos electrónicos consumibles como sistemas de televisión por pago (TV), cajas sobrepuestas de televisión por cable, receptores de televisión terrestres, receptor de televisión por satélite y sus semejantes requieren de actualización de programas periódicas para proporcionar un procesamiento de señal, características interactivas y mejoras en la seguridad para el consumidor. Las actualizaciones de programas para tales dispositivos generalmente se llevan a cabo al reemplazar los chips de memoria de únicamente lectura dentro del dispositivo o al conectar una computadora con un puerto de datos en el dispositivo para descargar la actualización del programa dentro de la memoria del dispositivo. En algunos casos, las actualizaciones requieren que un técnico visite el sitio del consumidor y lleve a cabo la actualización del programa. De manera alternativa, el consumidor deberá devolver el dispositivo al fabricante, quien le proporcionará otro dispositivo de reemplazo que contenga el programa actualizado. El proceso de actualización del programa es consumidor de tiempo, costoso y molesto para el consumidor. Cuando se ha reemplazado el chip completo de la memoria típicamente no existen problemas asociados con la operación del programa, ya que el programa completo ha sido reemplazado. Sin embargo, si se presenta un microcorte durante la actualización del programa, puede haber problemas de cualquier magnitud (es decir, falla en el dispositivo). Sin embargo, sin considerar sus desventajas, se prefiere el método de actualización. Una forma para estructurar la memoria del dispositivo para permitir una actualización con menos problemas del programa del sistema es dividir el programa, código o memoria del sistema en dos partes. Típicamente, una parte no se puede cambiar y usualmente reinicia el dispositivo y lleva a cabo la tarea de actualizar las porciones restantes del programa. La otra parte se puede cambiar y lleva a cabo todas las funciones que se supone debe cumplir el dispositivo. Esta parte con frecuencia se actualiza para tener los "grupos de características" más actualizados. La parte que no se puede cambiar puede ser llamada como código de reinicio o parte de código de reinicio, mientras que la parte que se puede cambiar se llama código de aplicación o parte de código de aplicación (es decir, contiene las características del producto del código de aplicación). En vista de lo anterior, cuando ocurre una condición de falla de energía durante la descarga de un nuevo código de reinicio, el dispositivo puede fallar. Este tipo de evento puede ser extremadamente dañino cuando se transmite un nuevo código sobre un servicio de satélite a millones de dispositivos y el código de trabajo han sido borrados y se reemplazará un nuevo código para ser introducido. Básicamente, la condición de falla de energía ha paralizado algunos de estos dispositivos. La operación de recuperación de este evento puede ser muy costosa para el fabricante del dispositivo. En un ambiente de actualización de código de transmisión por satélite actual (por ejemplo, DBS o Sistemas de Transmisión Directa), en el caso de un microcorte en la carga como una falla de energía o condición de falla, el fabricante debe preparar un almacenamiento del código de aplicación redundante en el producto, o establecer una red de servicio para fijar los productos con memoria alterada. Estas medidas son muy costosas e interrumpirán las actividades diarias del cliente. Por lo tanto, existe la necesidad de una técnica mejorada para proteger la capacidad de funcionamiento del código de aplicación bajo las condiciones mencionadas.
BREVE DESCRIPCIÓN DE LA INVENCIÓN En una forma, la presente invención es un método y aparato para actualizar un código de aplicación para un dispositivo controlado por computadora. La actualización se lleva a cabo particularmente a través de una conexión de datos con el dispositivo controlado por computadora, como por satélite, sistema de TV por cable, sistema de teléfono y/o sus semejantes. La presente invención utiliza un manejo de memoria o una versión comprimida del código de reinicio para proporcionar un respaldo para el dispositivo controlado por computadora. La invención se puede aplicar particularmente en el caso de una falla de energía o una condición de falla durante el proceso de actualización, o cualquier momento en que el código se altera. De conformidad con este aspecto, la presente invención proporciona programa y/o un código junto con la memoria relacionada que planea lograr una incorporación de protección total del código en un dispositivo controlado por computadora. Esto se puede lograr con un mínimo presupuesto de memoria del dispositivo controlado por computadora. Un dispositivo de almacenamiento de programas, como una ROM (Memoria de únicamente lectura) se divide en tres áreas: (1) un área que no se puede cambiar de código de re?nicio; (2) un área que se puede cambiar de código de aplicación; y (3) un área de código de respaldo. El área de código de reinicío contiene el código de reinicio. El área de código de aplicación contiene el código de aplicación. El área de código de respaldo o respaldo contiene el código de respaldo, de preferencia en un estado comprimido. El código de reinicio se puede operar para reiníciar la operación del programa de aplicación y reemplazará el código de aplicación existente con una nueva versión del código de aplicación cuando se le instruye para hacerlo. Sin embargo, el código de reinic?o puede no contar con las características de autenticación o recolección de nuevos códigos de aplicación desde el canal o mecanismo de actualización (por ejemplo, un sistema de transmisión directa por satélite (DBS)). El código de aplicación contiene todas las características del producto. En un ambiente DBS, por ejemplo, el código de aplicación contendrá un despliegue de audio/video, análisis del programa, pago por evento, etc. De conformidad con un aspecto de la presente invención, esta nueva autenticación de descarga del código de aplicación y el procesamiento de paquetes de código de descarga está en el segmento del código de aplicación actual. Esto es ventajoso ya que estas características complejas (es decir, la autenticación de descarga y la recolección en paquetes de datos de descarga) pueden actualizarse junto con el código de aplicación. El código de respaldo se puede operar para asegurar que el dispositivo controlado por computadora pueda recibir y autenticar una nueva descarga de código de aplicación en caso de que el código de aplicación existente se altere. El código de respaldo puede ampliar sus características con las características del código de aplicación dado que el código de respaldo está empaquetado o comprimido en forma adecuada. El grupo de características del código de respaldo puede ser cambiado y puede variar de la función fundamental mencionada para todas las funciones completas del código de aplicación bajo diseño. El código de respaldo puede actualizarse en el sitio del cliente con un método destructivo de sin falla de energía. Tal método se describe en el documento RCA 89210, propiedad del presente cesionario, Thomson Consumer Electronics, de Indianápolis, Indiana, USA. Con un tamaño razonable de memoria, y de preferencia una memoria no volátil, preservada para el código de respaldo, la incorporación de grupos de características seleccionadas adecuadamente, y un buen empaquetamiento de imagen o compresión para comprimir el código de respaldo, el dispositivo controlado por computadora diseñado para ser actualizado (por ejemplo, un receptor DBS), puede lograr un costo relativamente bajo de equipo, un desempeño altamente confiable en la operación de actualización, y un servicio al cliente no interrumpido, particularmente en el caso de alteración de la aplicación actual durante el proceso de descarga o actualización. En otra forma, la presente invención es un método y aparato para proporcionar un código de computadora a través de una interfaz de tarjeta inteligente. La invención utiliza una tarjeta de memoria, es decir una tarjeta inteligente que contiene un dispositivo de memoria en estado sólido, que almacena los programas a ser utilizados para actualizar (o de otra forma complementar) el programa dentro de un dispositivo controlado por computadora. Más particularmente, de conformidad con un aspecto de la presente invención, la interfaz de la tarjeta inteligente dentro de un dispositivo controlado por computadora, ya sea que la tarjeta que es insertada dentro de la interfaz de la tarjeta inteligente sea una tarjeta de memoria o una tarjeta inteligente convencional. Una tarjeta de memoria tiene un arreglo de conector que cumple con la norma ISO 7816-2 y con los puertos de datos de alta velocidad de una tarjeta tipo NRSS de modo que la actualización del programa se puede llevar a cabo mediante una interfaz de tarjeta inteligente. Una vez que la interfaz de la tarjeta inteligente ha detectado la inserción de una tarjeta de memoria, la interfaz solicita datos de la tarjeta. Específicamente, la interfaz proporciona una señal de reloj tipo NRSS para que la tarjeta de memoria provoque que el puerto de datos NRSS suministre la actualización del código de la computadora desde la tarjeta de memoria a una velocidad de aproximadamente 42 Mbits/segundo. La ¡nterfaz de tarjeta inteligente lee el encabezado de la corriente de datos dentro de los datos a ser suministrados por la tarjeta de memoria, de tal forma que la interfaz toma una decisión para aceptar los datos del código de computadora o rechazar los datos. La información del encabezado también suministra la interfaz con las condiciones de terminación de operación, por ejemplo, fin de información de archivo. La ¡nterfaz proporciona el código de computadora a la memoria del dispositivo controlado por computadora para actualizar el código de computadora en el mismo.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Se debe hacer referencia a la siguiente descripción de la presente invención junto con los dibujos acompañantes, en los cuales: la Figura 1 es una representación en diagrama de un sistema que tiene un dispositivo controlado por computadora con la capacidad de recibir actualizaciones de programas de conformidad con los principios de la presente invención; la Figura 2 ilustra un arreglo de memoria no volátil para un dispositivo controlado por computadora de conformidad con los principios de la presente invención; la Figura 3 es una ilustración en diagrama de un arreglo de memoria no volátil y el dispositivo controlado por computadora durante la instalación del código de respaldo; la Figura 4 es un diagrama de flujo que ilustra la operación de un aspecto de la presente invención que utiliza el arreglo de memoria no volátil de la Figura 2; la Figura 5 ilustra un diagrama en bloque de un sistema de actualización de programa para un dispositivo controlado por computadora que tiene una interfaz de tarjeta inteligente de conformidad con un aspecto de los principios de la presente invención; y la Figura 6 ilustra un diagrama de flujo que muestra la operación para el sistema de actualización de la Figura 5 de conformidad con los principios de la presente invención. Los números de referencia correspondientes indican las partes correspondientes a través de las diferentes vistas.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN Con referencia a la Figura 1, se ilustra un diagrama en bloque, generalmente señalado con el número 10, de un sistema que tiene un programa operativo y que se puede operar para actualizar por lo menos una porción del programa operativo. El sistema 10 incluye un dispositivo 12 controlado por computadora que se puede conectar con un mecanismo 14 o canal de actualización (colectivamente canal). Se debe observar que el dispositivo controlado por computadora 12 puede ser cualquier tipo de dispositivo controlado por computadora como los que se utilizan ampliamente o dentro de los componentes de electrónicos consumibles como por ejemplo, sin ser limitantes, sistema de televisión de transmisión directa por satélite, cajas sobrepuestas para sistemas de cable o de demanda de video, sistema de televisión de alta definición y sus semejantes. También, el canal 14 de actualización representa una pluralidad de mecanismos, maneras, formas y sus semejantes para recibir una actualización de conformidad con los principios presentados aquí. El canal de actualización, sin ser exhaustivo, incluye actualizaciones recibidas y transmitidas y actualizaciones directas de un dispositivo auxiliar o dispositivo de almacenamiento. Los canales de actualización recibida o transmitida incluyen satélite (como a través de DBS), un sistema de televisión por cable a través de una caja sobrepuesta, sistema de transmisión terrestre a través de un receptor de señal de televisión y sus semejantes. Los dispositivos auxiliares incluyen barras de memoria, tarjetas de memoria, tarjetas inteligentes o sus semejantes. De aquí en adelante, la presente invención será descrita con relación al canal de acceso que podría ser un satélite o un sistema DBS y el dispositivo controlado por computadora que puede ser un receptor DBS. Se debe observar que la selección del canal de acceso y el dispositivo controlado por computadora es arbitraria. Los principios de la presente invención expuestos aquí en conexión con un receptor DBS y un sistema DBS aplican en todos los dispositivos controlados por computadora actualizados mediante cualquier canal de acceso. Típicamente, el dispositivo 12 controlado por computadora incluye una unidad de procesamiento, un microcontrolador o su semejante 16, una memoria 20 como una ROM o su semejante, o un almacenamiento 18 de datos. El dispositivo 12 controlado por computadora también incluye otros componentes que son necesarios para la operación del dispositivo en particular. La memoria 20, en una forma incluye una memoria no volátil o una memoria volátil. El dispositivo 12 controlado por computadora opera, por lo menos en parte, bajo el control de instrucciones, códigos y/o programas (colectivamente programas). El programa está contenido dentro de la memoria 20. El dispositivo 12 controlado por computadora puede operar para permitir la actualización de por lo menos parte de su programa a través de un canal 14 de actualización. Con referencia a la Figura 2, se ilustra un arreglo de memoria no volátil 22 (mapa de memoria) de una porción no volátil de la memoria 20. El arreglo 22 de memoria no volátil puede ser una memoria flash o su semejante, y de preferencia se puede programar por campos. La memoria no volátil incluye un área 24 que no se puede cambiar, un área 26 que se puede cambiar y un área 28 que no se puede cambiar. El área 24 que no se puede cambiar puede ser llamada el área de código de reinicio ya que ahí reside el código 34 de reinicio para el dispositivo 12 controlado por computadora. El área de código de reinicio puede iniciar desde una dirección de memoria muy baja (genéricamente 0x0000000 ó 000000016) como se ilustra o puede iniciar desde una dirección alta de memoria, dependiendo de la dirección del vector de reinicio de la computadora. El código 34 de reinicío típicamente contiene solamente las características fundamentales para reiniciar el dispositivo 12 controlado por computadora y alcanzar un tamaño mínimo. El código 34 de reinicio también está de preferencia, provisto en un estado no comprimido. De manera adicional, el código 34 de reinicio se puede operar para reiniciar la operación de la operación del programa de aplicación, y puede reemplazar el código de aplicación existente con una nueva versión del código de aplicación cuando se le instruya para hacerlo. El código 34 de reinicio presente, no incluye las características de autenticación y recolección del nuevo código de aplicación desde el satélite DBS (canal 143 de actualización). La actualización del código 34 de reinicio puede lograrse en el ambiente de la fábrica o en el laboratorio. El área 26 que se puede cambiar puede ser llamada el área de código de aplicación (ACÁ), ya que contiene el código 32 de aplicación. El área 26 del código de aplicación inicia al final del área 24 del código de reinicio y puede ampliarse hasta que alcance el área 30 sobrante. Después del área 30 sobrante, la dirección de memoria está al inicio del área 28 del código de respaldo. Ya que el código 36 de respaldo no puede ser alterada, de preferencia, la presente invención verifica el tamaño del código de aplicación actual para encontrar si se introducirá un nuevo código de aplicación y/o el código de aplicación actual dentro de la dirección de la memoria del área de código de respaldo. El método de verificación será mencionado a continuación. El código de aplicación incluye el antiguo código de aplicación y el nuevo código de aplicación. El área 28 que no se puede cambiar puede ser llamada como el área de código de respaldo (BaCA) ya que contiene el código 36 de respaldo. El código 36 de respaldo de preferencia, está comprimido o procesado a través de un paquete de imágenes para reducir su tamaño. EL código 36 de respaldo debe residir en otro sitio diferente al de la memoria 22 no volátil, lejos del vector de reinicio de la computadora. En la Figura 1, el último byte del código 36 de respaldo debe ser la dirección más alta de la memoria (es decir, Oxfffffff). El código 36 de respaldo en su mínimo debe contener la característica para adquirir una nueva descarga del código de actualización (actualización) en caso de que se altere el código en funcionamiento actual. Con un recurso adecuado de memoria y compresión de código, el código 36 de respaldo puede tener todas las características del código 32 de aplicación. El código 36 de respaldo es así operativo para recibir y autenticar una nueva descarga del código de aplicación. También, el grupo de características del código 36 de respaldo se puede cambiar según sea requerido o necesario. Con un tamaño razonable de memoria en la memoria 22 no volátil, se alcanzan los grupos de características seleccionados adecuadamente, un buen paquete de imágenes o algoritmo de compresión para comprimir el código 36 de respaldo y una operación de actualización económica y confiable del dispositivo 12 controlado por computadora. El código 36 de respaldo es utilizado por el código 34 de reinicio cuando el código de aplicación se altera. Esto se ¡lustra en forma de diagrama en la Figura 3 y se hace referencia a él. En la Figura 3, se muestra una forma en la cual se reemplaza un código de aplicación alterado, actual dentro de un dispositivo controlado por computadora. Tal alteración puede ocurrir durante una falla de energía o una condición de falla de energía relacionada con el dispositivo 12. El código 36 de respaldo no está comprimido por la característica del código 34 de reinicio y se almacena en la memoria 38 volátil. El código 34 de reinicio provoca ahora que el código de respaldo, descomprimido se vuelva en el código 32 de aplicación de reemplazo para la memoria 22 no volátil. El código 34 de reinicio instala, el código de aplicación de reemplazo en el área 26 que se puede cambiar. Este código de aplicación de reemplazo se vuelve el código de aplicación actual que también se puede actualizar. La liberación actual (es decir, versión) del código de aplicación puede volverse en el código de respaldo luego de la compresión del código de aplicación actual. La compresión es de preferencia, de aproximadamente una proporción del 50%. El tamaño del código de respaldo puede ser únicamente la mitad del código de aplicación. Debido a que el código 36 de respaldo está en el área 28 que no se puede cambiar, el código de respaldo es instalado al momento de fabricación. Cuando el código de aplicación inicia con las nuevas características añadidas (a partir de las actualizaciones) y así crece en tamaño, el código de respaldo debe iniciar a reducir sus características no fundamentales. Esto proporciona espacio para que crezca el código de aplicación. Eso es especialmente real cuando el área 30 sobrante entre el código 32 de aplicación y el código 36 de respaldo ya fue ocupada. Cuando se utiliza un método de descarga no destructivo de falla de energía para actualizar el código de respaldo como en el método descrito a continuación, el código de reinicio debe verificar si el nuevo código de respaldo se introducirá dentro del área dei código de aplicación. Un método para detectar los límites de inicio (direcciones) del código 32 de aplicación y del código 36 de respaldo y el tamaño del bloque del código en la memoria 22 no volátil es como sigue: 1. Cada bloque de código inicia con un diferente patrón de datos. El patrón de datos tiene suficiente número de bytes para que ningún contenido en bloque del código tenga el mismo patrón de bytes; 2. Después del patrón de límite del bloque de código, debe haber una longitud del bloque de código u otra información relacionada con el bloque de código; 3. Cuando el código de reinicio encuentra una bloque de código de aplicación más nuevo en la memoria de descarga al buscar el patrón de límite del código de aplicación, entonces el código de reinicio conocerá (calculará) el nuevo tamaño del código. El código de reinícío buscará el patrón de datos de límite del código de respaldo desde el área de memoria no volátil y asegurarse de que el nuevo tamaño del código no se traslapará con el área de código de respaldo que compara el tamaño de código de aplicación, las direcciones de re i ni ció del código de respaldo, y el tamaño total de memoria no volátil; y 4. cuando el código de reinicio encuentra un código de respaldo en la memoria de descarga, el código de reinicio será el mismo para asegurarse de que no habrá traslape entre el código de aplicación y el código de respaldo. Con referencia ahora a la Figura 4, se ilustra un diagrama de flujo, generalmente señalado con el número 50, que muestra la forma en que funciona el código 36 de respaldo. Inicialmente, el dispositivo controlado por computadora se enciende, bloque 52.
Después del encendido, el código de reinicio verificará la consistencia del código de aplicación en la memoria no volátil, bloque 54, (es decir, si se alteró el código de aplicación). Si la verificación falla (es decir, que el código de aplicación está alterado), el código de reinicio buscará el patrón del datos del límite del código de respaldo, bloque 56. Una vez que el código de reinicio encuentre el patrón de datos y conozca el código de respaldo, bloque 58, el código de respaldo puede descomprimirse adecuadamente, bloque 60. La descompresión adecuada se lleva a cabo al examinar la información después del patrón de datos de límite. El código de reinicio después descomprimirá el código de respaldo en un área de memoria volátil dedicada llamada memoria de descarga. Después de esto, el código de reinicio colocará el código de respaldo descomprimido dentro del área 26 de código de aplicación en la memoria 22 no volátil e iniciará a ejecutar el código de respaldo que es ahora el código de aplicación. Cuando el código de respaldo tiene el grupo completo de características del código de aplicación, el cliente tendrá el servicio completo del producto, como en un receptor DBS. De otra forma, el cliente necesitará esperar hasta que la actualización del código de aplicación se haya completado con éxito o podrá tener un servicio parcial dependiendo del grupo de características. El aparato presente y el método asociado se pueden aplicar para llevar a cabo actualizaciones de código de computadora dentro del cualquier dispositivo controlado por computadora bajo condiciones destructivas de falla de energía de descarga. El dispositivo puede ser un receptor DBS, un sistema de televisión de alta definición y sus semejantes, que experimenten una nueva actualización de código de aplicación a través del sistema de transmisión por satélite DBS. Un método y aparato de conformidad con un aspecto de los principios de la presente invención se presentan a continuación, y se pueden aplicar para llevar a cabo actualizaciones de código de computadora dentro de un dispositivo controlado por computadora que tiene una interfaz de tarjeta de circuito integrado (comúnmente conocida como interfaz de tarjeta inteligente) como un canal o mecanismo 14 de actualización. Los dispositivos controlados por computadora se usan ampliamente en los componentes electrónicos consumibles, como por ejemplo, sin limitar, sistema de televisión por transmisión directa de satélite, cajas sobrepuestas para cable y sistema de demanda de vídeo, sistema de televisión de alta definición, y sus semejantes.
Con referencia ahora a la Figura 5, se ilustra un sistema de actualización de programa, generalmente señalado con el número 100, el cual comprende un dispositivo 102 controlado por computadora que tiene una interfaz 120 de tarjeta de memoria/inteligente y una tarjeta 104 de memoria o inteligente. El dispositivo 102 controlado por computadora, lo mismo que el dispositivo 12 controlado por computadora de la Figura 1, puede ser cualquier tipo de dispositivo 102 controlado por computadora, que se puede operar para aceptar actualizaciones para su programa, equipo o sus semejantes a través de un mecanismo o canal de actualización. El dispositivo 102 controlado por computadora comprende un microcontrolador 108 (unidad de procesamiento y/o su semejante), un sistema 106 controlado por computadora (por ejemplo, funciones de procesamiento de video de una televisión), y una memoria 110. El dispositivo 102 controlado por computadora a ser actualizado y almacenado está en la memoria 110. El dispositivo 102 controlado por computadora también contiene un lector 112 de tarjeta (o su semejante) para una tarjeta inteligente y/o una tarjeta de memoria y un conector 118 que forman parte de la interfaz 120 de la tarjeta inteligente para la tarjeta 104. La interfaz 120 de la tarjeta inteligente puede leer tarjetas inteligentes convencionales que son compatibles con el formato de tarjeta inteligente de la norma ISO 7816 o una tarjeta inteligente tipo NRSS, es decir, una tarjeta compatible con la norma ISO 7816 que tiene dos puertos de datos de alta velocidad. En la modalidad presente de la invención, la tarjeta 104 inteligente NRSS ilustrada en la Figura 5, contiene una unidad 114 de memoria y un controlador 116 de memoria, que juntos forman la tarjeta 104. El lector 112 de tarjeta también lee tarjeta de memoria convencionales. Se debe notar que mientras se muestra específicamente una tarjeta inteligente 104, la presente invención abarca todos los tipos de tarjetas de memoria e inteligentes. El conector 118 comprende ocho trayectos conductores para activar y dar acceso a la tarjeta 104. Estos trayectos incluyen seis trayectos 126 que son compatibles con la norma ISO 7816-2, a saber, suministro de voltaje, señal de reinicio, señal de reloj, tierra, voltaje de programación, y salida/entrada de datos. Además, la tarjeta 104 incluye dos trayectos 128 para una entrada de datos de alta velocidad y una salida de datos de alta velocidad. Otras modalidades de la invención pueden proporcionar el programa a través del puerto l/O 7816 o a través de una clavija diferente complementaria o un arreglo de puerto. En la Patente de Estados Unidos No. 5,852,290, emitida el 22 de diciembre de 1988 (presentada el 4 de agosto de 1995), titulada "Tarjeta Inteligente con base en un sistema de control de acceso con seguridad mejorada", se expone una descripción detallada de la interfaz de tarjeta inteligente para tener acceso a la tarjeta inteligente que tiene un conector convencional de la norma ISO 77816-2 con capacidades de entrada y salida de datos a alta velocidad, la cual se incorpora aquí en su totalidad como referencia). Después de que se ha insertado la tarjeta 104 dentro de la interfaz 120 de tarjeta inteligente, la interfaz 120 determina si la tarjeta 104 es una tarjeta inteligente (convencional o de otra clase) o una tarjeta 104 de memoria que contiene la actualización 124 del código de computadora. Después de reconocer que se ha insertado una tarjeta 104 de memoria, el microcontrolador 108 activa una interfaz NRSS (opuesto a la norma ISO 7816 convencional u otra interfaz para una tarjeta tipo inteligente o de otro tipo) para utilizar los puertos de datos de alta velocidad y extrae los datos (el código 124 de computadora ejecutable) desde la tarjeta 104 de memoria ( u otra). Esto se logra a una velocidad de aproximadamente 42Mbits/segundo. El código 124 de computadora se lleva en canales a la memoria 110 y se utiliza para actualizar los contenidos de la memoria 110. De esta forma un tamaño de código de 3.5 Mbits se puede actualizar en el dispositivo 102 controlado por computadora en menos de dos minutos. El término "actualizar" tiene la intención de incluir el parche de descarga o programas similares que complementen el programa existente almacenado en la memoria 110 así como la descarga de un nuevo programa completo en la memoria 110. La Figura 6 ilustra un diagrama de flujo de un proceso generalmente señalado con el número 200, utilizado para actualizar un código de computadora de un dispositivo controlado por computadora, como los descritos aquí. De preferencia, el proceso 200 de actualización de código de computadora se lleva a cabo en dos etapas. La primera etapa, señalada 202, identifica la tarjeta de memoria opuesto a los otros tipos de tarjetas inteligentes para el dispositivo controlado por computadora. La segunda etapa, generalmente señalada 204, carga los datos desde la tarjeta de memoria dentro de la memoria del microcontrolador o el dispositivo similar del dispositivo controlado por computadora. Se debe notar que el proceso 200 es una incorporación particular del proceso general descrito antes. En la etapa 202 de identificación de tarjeta de memoria, el microcontrolador en el paso 206, coloca la tarjeta insertada en el estado de reinicio ISO/7816, es decir, la interfaz alterna el trayecto de la señal de reinicio. En la etapa de reinicio, una tarjeta inteligente convencional está en el modo de descanso, y no responderá a la señal externa. Como tal, cualquier señal aplicada a cualquiera de las clavijas de la tarjeta inteligente será ignorada por una tarjeta inteligente convencional 7816. Por el contrario, la tarjeta de memoria, aunque se encuentre en el modo de descanso, monitorea el trayecto de entrada de reloj, por ejemplo, la terminal de entrada SC_CLK. En el paso 208, el microcontrolador aplica una señal de impulso en la terminal SC_CLK de la tarjeta inteligente. La señal de impulso, por ejemplo, realiza la transición de alto a bajo y de regreso a alto. En respuesta, el trayecto de entrada/salida de datos de una tarjeta de memoria produce una señal de estado opuesto. En el paso 210, el microcontrolador monítorea el trayecto de entrada/salida de datos de la conexión de interfaz para una señal de respuesta. Como tal, el microcontrolador considerará, en el paso 212, que la tarjeta insertada como una tarjeta de memoria cuando la señal de entrada/salida de datos cambie de bajo a alto y después a bajo, es decir, la señal de entrada/salida de datos es opuesta a la señal de reloj aplicada. De otra forma, la rutina 200 procede al paso 214 y se detiene. Después de que se completa la primera etapa 202 (identificación de tarjeta), el sistema inicia a solicitar datos desde la tarjeta. Esto ocurre en la segunda etapa 204 (carga de datos). En la etapa 204 de solicitud de datos, el controlador, en el paso 216 utiliza la interfaz NRSS, es decir la entrada de control NRSS_CLK y NRSS_DATA, para extraer datos, es decir, el nuevo código ejecutable actualizado, desde una tarjeta de memoria a una velocidad de aproximadamente 42 MB/segundo. En el paso 218 se analiza el encabezado de la corriente de datos. De conformidad con el encabezado de la corriente de datos, el microcontrolador tomará una decisión para aceptar los datos de código o rechazarlos, así como para obtener las condiciones de terminación de operación, es decir, obtener un identificador de fin de archivo. Cuando los datos son rechazados, la rutina 200 procede al paso 220. Cuando los datos son aceptados, en el paso 222, los datos se envían a la memoria dentro del dispositivo controlado por computadora para su almacenamiento. La rutina 200 se detiene en el paso 224, cuando se alcanza la condición de terminación, en decir cuando ocurre un error, cuando se alcanza el código de fin de archivo del archivo de datos, o cuando se presenta una interrupción de corriente. Se debe apreciar que el sistema 10 de la Figura 1 puede utilizar la interfaz de tarjeta, la tarjeta y los protocolos como se explicó antes para la actualización de un dispositivo 12 controlado por computadora. Con respecto a esto, la tarjeta puede ser una tarjeta de acceso que se utiliza en forma similar en los receptores DBS actuales. La tarjeta de acceso puede tener los atributos de la tarjeta 104 de la Figura 5. También, se debe apreciar que el sistema 100 de preferencia, utiliza los aspectos de respaldo de la presente invención como se explicó antes. En particular, el sistema 100 está abarcado dentro de la representación del dispositivo controlado por computadora de la Figura 1. De este modo, en un caso, la memoria 110 del dispositivo 102 controlado por computadora será dividido parcial o virtualmente como se presentó antes y tendrá los mismos atributos o similares. También, el sistema 100 incluirá otras funciones del dispositivo 102 controlado por computadora. La técnica presente como se ejemplificó antes puede ser ampliamente usada en cualquier tipo de sistemas incorporados con equipo que se pueda actualizar como cajas sobrepuestas, equipo de electrónicos consumibles, y sus semejantes. Es muy conveniente para los técnicos de servicio actualizar el programa del producto en el campo, así como para el cliente actualizar el programa del producto por el mismo.
Mientras que esta invención ha sido descrita con un diseño y/o configuración preferidos, la presente invención se puede modificar dentro del espíritu y alcance de esta exposición. Por lo tanto, esta solicitud tiene la intención de cubrir cualquier variación, uso o adaptación de la invención utilizando sus principios generales. Además, esta solicitud tiene la intención de cubrir tales apartados de la presente exposición siempre que caigan dentro de la práctica acostumbrada o conocida dentro de la técnica a la cual pertenece la invención y que caigan dentro de los límites de las reivindicaciones anexas.

Claims (18)

REIVINDICACIONES
1. Un dispositivo controlado por computadora caracterizado porque comprende: una unidad de procesamiento; y un memoria en comunicación con la unidad de procesamiento, la memoria está dividida en una primera área que contiene el código de reinicio, una segunda área que contiene el código de aplicación y una tercer área que contiene el código de respaldo; el código de reinicio tiene una pluralidad de instrucciones, que cuando son ejecutadas por la unidad de procesamiento, provocan que la unidad de procesamiento: (i) determine si el código de aplicación está alterado; y (i i) reemplaza el código de aplicación con el código de respaldo cuando el código de aplicación está alterado.
2. El dispositivo controlado por computadora de conformidad con la reivindicación 1, caracterizado porque la memoria comprende una memoria no volátil, y la primera área no se puede cambiar y la segunda área se puede cambiar y la tercera área no se puede cambiar.
3. El dispositivo controlado por computadora de conformidad con la reivindicación 2, caracterizado porque la memoria no volátil comprende una memoria flash.
4. El dispositivo controlado por computadora de conformidad con la reivindicación 1, caracterizado porque además comprende: un medio para recibir el código de aplicación de actualización para reemplazar el código de aplicación retenido en la segunda área.
5. El dispositivo controlado por computadora de conformidad con la reivindicación 4, caracterizado porque el medio para recibir el código de aplicación de actualización se puede operar para aceptar el código de aplicación de actualización desde cualquiera de la pluralidad de canales de actualización.
6. El dispositivo controlado por computadora de conformidad con la reivindicación 1, caracterizado porque el código de respaldo está comprimido.
7. El dispositivo controlado por computadora de conformidad con la reivindicación 6, caracterizado porque el código de reinicio se puede operar para descomprimir el código de respaldo.
8. Un método para restaurar el código de aplicación alterado en un dispositivo controlado por computadora, caracterizado porque comprende los pasos de: dividir una memoria del dispositivo controlado por computadora en un área de código de reinicio que contiene el código de reinicio, un área de código de aplicación que contiene el código de aplicación y un área de código de respaldo que contiene el código de respaldo; determinar si el código de aplicación está alterado; y reemplazar el código de aplicación con el código de respaldo cuando el código de aplicación está alterado.
9. El método de conformidad con la reivindicación 8, caracterizado porque el paso para determinar si el código de aplicación está alterado ocurre después del encendido del dispositivo controlado por computadora.
10. El método de conformidad con la reivindicación 8, caracterizado porque el código de respaldo está comprimido.
11. El método de conformidad con la reivindicación 10, caracterizado porque el paso de reemplazar el código de aplicación con el código de respaldo cuando el código de aplicación está alterado incluye el paso de: descomprimir el código de respaldo.
12. El método de conformidad con la reivindicación 11, caracterizado porque el paso de reemplazar el código de aplicación con el código de respaldo cuando el código de aplicación está alterado también incluye los pasos de: colocar el código de respaldo descomprimido en una memoria volátil; y mover el código de respaldo descomprimido dentro del área de aplicación de la memoria.
13. El método de conformidad con la reivindicación 8, !_ caracterizado porque el paso de determinar si el código de aplicación está alterado incluye los pasos de: determinar si ha ocurrido una falla en la energía durante la actualización del código de aplicación; y indicar que el código de aplicación está alterado cuando ha ocurrido una falla de energía durante la actualización.
14. Un dispositivo controlado por computadora caracterizado porque comprende: una unidad de procesamiento; una memoria en comunicación con la unidad de procesamiento, la memoria está dividida en una primer área que contiene el código de reinicio, una segunda área que contiene el código de aplicación y una tercer área que contiene el código de respaldo; un lector de tarjeta en comunicación con la unidad de procesamiento; una interfaz de lector de tarjeta en comunicación con el lector de tarjeta; y un medio para autenticar el código de aplicación actualizado recibido desde una tarjeta de memoria.
15. El dispositivo controlado por computadora de conformidad con la reivindicación 14, caracterizado porque la memoria comprende una memoria no volátil.
16. El dispositivo controlado por computadora de conformidad con la reivindicación 15, caracterizado porque la memoria comprende una memoria flash.
17. El dispositivo controlado por computadora de conformidad con la reivindicación 14, caracterizado porque la tarjeta de memoria es una tarjeta inteligente.
18. Un método para actualizar un código de aplicación en un dispositivo controlado por computadora, el código de aplicación contenido en una memoria no volátil, el método está caracterizado porque comprende los pasos de: proporcionar un código de aplicación actualizado en una tarjeta de memoria; insertar una tarjeta de memoria dentro del dispositivo controlado por computadora; leer una señal de identificación de la tarjeta de memoria; activar una interfaz de la tarjeta de memoria en respuesta a la señal de identificación de tarjeta; y reemplazar el código de aplicación con el código de aplicación actualizado desde la tarjeta de memoria.
MXPA02006716A 2000-01-07 2001-01-04 Metodo y aparato para respaldar un codigo de aplicacion despues de una falla de energia durante una actualizacion de codigo. MXPA02006716A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17499700P 2000-01-07 2000-01-07
PCT/US2001/000329 WO2001052065A2 (en) 2000-01-07 2001-01-04 Method and apparatus for backing up application code upon power failure during a code update

Publications (1)

Publication Number Publication Date
MXPA02006716A true MXPA02006716A (es) 2002-09-30

Family

ID=22638393

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA02006716A MXPA02006716A (es) 2000-01-07 2001-01-04 Metodo y aparato para respaldar un codigo de aplicacion despues de una falla de energia durante una actualizacion de codigo.

Country Status (10)

Country Link
US (1) US20020188886A1 (es)
EP (1) EP1332434A2 (es)
JP (1) JP2003532951A (es)
KR (1) KR20030036131A (es)
CN (1) CN1439128A (es)
AU (1) AU782310B2 (es)
CA (1) CA2396100A1 (es)
MX (1) MXPA02006716A (es)
TW (1) TW531695B (es)
WO (1) WO2001052065A2 (es)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697565B2 (en) * 1998-05-15 2004-02-24 Kabushiki Kaisha Toshiba Information recording method and information reproducing method
US7062584B1 (en) * 1999-07-15 2006-06-13 Thomson Licensing Method and apparatus for supporting two different types of integrated circuit cards with a single connector
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US7082549B2 (en) * 2000-11-17 2006-07-25 Bitfone Corporation Method for fault tolerant updating of an electronic device
US7043493B2 (en) * 2001-09-17 2006-05-09 Fujitsu Limited Hierarchical file system and anti-tearing algorithm for a limited-resource computer such as a smart card
US6816985B2 (en) * 2001-11-13 2004-11-09 Sun Microsystems, Inc. Method and apparatus for detecting corrupt software code
DE10212298B4 (de) 2002-03-20 2013-04-25 Grundig Multimedia B.V. Verfahren für die Verwaltung von Software für ein Fernsehgerät
US20050228978A1 (en) * 2002-06-28 2005-10-13 Koninklijke Philips Electronics N.V. Software download into a receiver
US20040054846A1 (en) * 2002-09-16 2004-03-18 Wen-Tsung Liu Backup device with flash memory drive embedded
KR20040034782A (ko) * 2002-10-17 2004-04-29 주식회사 제이에스디지텍 스마트 카드를 이용한 단말기 시스템 업그레이드 방법 및그 장치
EP1584005B1 (en) * 2002-12-18 2011-12-28 Hewlett-Packard Development Company, L.P. Mobile handset with a fault tolerant update agent
US20040250088A1 (en) * 2003-05-19 2004-12-09 Jwo-Lun Chen Apparatus using a password lock to start the booting procedure of a microprocessor
TWI307015B (en) * 2003-06-03 2009-03-01 Hon Hai Prec Ind Co Ltd System and method for automatically bootstrap with double boot areas in a single flash rom
TW200428284A (en) * 2003-06-03 2004-12-16 Hon Hai Prec Ind Co Ltd System and method for bootstrap with backup boot-code in single flash ROM
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7549042B2 (en) 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7614051B2 (en) 2003-12-16 2009-11-03 Microsoft Corporation Creating file systems within a file in a storage technology-abstracted manner
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7971199B1 (en) * 2004-05-03 2011-06-28 Hewlett-Packard Development Company, L.P. Mobile device with a self-updating update agent in a wireless network
US7185191B2 (en) * 2004-05-05 2007-02-27 International Business Machines Corporation Updatable firmware having boot and/or communication redundancy
US8595713B2 (en) 2004-07-08 2013-11-26 Andrew Llc Radio base station and a method of operating a radio base station
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7454605B2 (en) * 2004-11-18 2008-11-18 International Business Machines Corporation Method for adapter code image update
US7523350B2 (en) * 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
US7711989B2 (en) * 2005-04-01 2010-05-04 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
TWI345175B (en) * 2005-06-08 2011-07-11 Winbond Electronics Corp Method for updating firmware of memory card
KR101225841B1 (ko) * 2005-09-27 2013-01-23 엘지전자 주식회사 펌웨어 업데이트 복원방법
CN100465910C (zh) * 2006-06-02 2009-03-04 上海思必得通讯技术有限公司 对产品中闪存数据的防错、纠错方法
CN100465909C (zh) * 2006-06-02 2009-03-04 上海思必得通讯技术有限公司 产品中闪存初始化过程遍历数据进行查错的方法
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US8286156B2 (en) 2006-11-07 2012-10-09 Sandisk Technologies Inc. Methods and apparatus for performing resilient firmware upgrades to a functioning memory
US20080109647A1 (en) * 2006-11-07 2008-05-08 Lee Merrill Gavens Memory controllers for performing resilient firmware upgrades to a functioning memory
CN101192161B (zh) * 2006-11-23 2011-08-17 英业达股份有限公司 更新影像文件的方法
US9348730B2 (en) * 2007-01-31 2016-05-24 Standard Microsystems Corporation Firmware ROM patch method
CN101295278B (zh) * 2007-04-23 2010-08-11 大唐移动通信设备有限公司 定位被改写代码段所在进程的方法及装置
US8275927B2 (en) 2007-12-31 2012-09-25 Sandisk 3D Llc Storage sub-system for a computer comprising write-once memory devices and write-many memory devices and related method
US20090199178A1 (en) * 2008-02-01 2009-08-06 Microsoft Corporation Virtual Application Management
FR2929429B1 (fr) * 2008-03-31 2010-04-23 Sagem Monetel Procede securise de mise a jour d'un programme de demarrage ou d'un systeme d'exploitation d'un dispositif informatique
EP2386958A1 (en) 2010-05-13 2011-11-16 Assa Abloy AB Method for incremental anti-tear garbage collection
US9195542B2 (en) * 2013-04-29 2015-11-24 Amazon Technologies, Inc. Selectively persisting application program data from system memory to non-volatile data storage
US9116774B2 (en) 2013-05-14 2015-08-25 Sandisk Technologies Inc. Firmware updates for multiple product configurations
CN109656602A (zh) * 2019-01-09 2019-04-19 合肥联宝信息技术有限公司 一种代码升级方法及电子设备

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US5327531A (en) * 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery
US5367571A (en) * 1992-12-02 1994-11-22 Scientific-Atlanta, Inc. Subscriber terminal with plug in expansion card
US5870520A (en) * 1992-12-23 1999-02-09 Packard Bell Nec Flash disaster recovery ROM and utility to reprogram multiple ROMS
US5666293A (en) * 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system software through a broadcast channel
US5599203A (en) * 1995-10-31 1997-02-04 The Whitaker Corporation Smart card and smart card connector
US5805882A (en) * 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
JP2000515286A (ja) * 1997-05-30 2000-11-14 コーニンクレッカ、フィリップス、エレクトロニクス、エヌ、ヴィ セットトップのシステムソフトウエアをネットワークサーバからアップグレードするためのフェイルセーフ方法
US6209127B1 (en) * 1997-06-05 2001-03-27 Matsushita Electrical Industrial Co., Ltd Terminal device capable of remote download, download method of loader program in terminal device, and storage medium storing loader program
FR2764717B1 (fr) * 1997-06-17 2001-08-03 Thomson Multimedia Sa Procede de lecture d'instructions de microprocesseur de decodeur de donnees numeriques et decodeur utilisant un tel procede
JPH117505A (ja) * 1997-06-17 1999-01-12 Fujitsu Ltd カード型記憶媒体
EP0907285A1 (en) * 1997-10-03 1999-04-07 CANAL+ Société Anonyme Downloading data
KR100248757B1 (ko) * 1997-12-20 2000-03-15 윤종용 손상된 롬 바이오스 복구 방법
US6167532A (en) * 1998-02-05 2000-12-26 Compaq Computer Corporation Automatic system recovery
JP4016359B2 (ja) * 1998-03-24 2007-12-05 ソニー株式会社 受信装置及びプログラム書き換え方法
US6108236A (en) * 1998-07-17 2000-08-22 Advanced Technology Materials, Inc. Smart card comprising integrated circuitry including EPROM and error check and correction system
CA2349006C (en) * 1998-11-03 2008-01-08 Thomson Licensing S.A. Method and apparatus for updating computer code using an integrated circuit interface
US6622246B1 (en) * 1999-11-12 2003-09-16 Xerox Corporation Method and apparatus for booting and upgrading firmware
US6629192B1 (en) * 1999-12-30 2003-09-30 Intel Corporation Method and apparatus for use of a non-volatile storage management system for PC/AT compatible system firmware

Also Published As

Publication number Publication date
US20020188886A1 (en) 2002-12-12
JP2003532951A (ja) 2003-11-05
TW531695B (en) 2003-05-11
WO2001052065A2 (en) 2001-07-19
AU782310B2 (en) 2005-07-21
EP1332434A2 (en) 2003-08-06
AU2631101A (en) 2001-07-24
WO2001052065A3 (en) 2003-04-17
CN1439128A (zh) 2003-08-27
KR20030036131A (ko) 2003-05-09
CA2396100A1 (en) 2001-07-19

Similar Documents

Publication Publication Date Title
MXPA02006716A (es) Metodo y aparato para respaldar un codigo de aplicacion despues de una falla de energia durante una actualizacion de codigo.
TW472489B (en) Method and system for identifying and downloading appropriate software or firmware specific to a particular model of set-top box in a cable television system
US6478222B1 (en) Downloading of applications in a digital decoder
AU749089B2 (en) Downloading data
KR100486865B1 (ko) 엠펙 수신기/디코더로 데이터를 다운로딩하는 방법 및 이를 수행하기 위한 엠펙 송신 시스템
JP4913946B2 (ja) コンピュータ符号をロードする装置および方法
US6381741B1 (en) Secure data downloading, recovery and upgrading
US6209127B1 (en) Terminal device capable of remote download, download method of loader program in terminal device, and storage medium storing loader program
EP0880857B1 (en) Multicast downloading of software and data modules and their compatibility requirements
GB2381093A (en) Software upgrading
AU770984B2 (en) Method and system for targeted or universal upgrades of programming in a population of advanced set-top boxes in a cable television system
JP4084461B2 (ja) リモートダウンロードが可能な端末装置、その端末装置が備えるローダプログラムに適用されるダウンロード方法、そのローダプログラムを記録した記録媒体
EP4145271A1 (en) Methods and terminal for updating converted applet file, and java card device
KR100641187B1 (ko) 수신제한 시스템을 지원하는 방송 수신기의 고유정보 관리방법
EP1181824A1 (en) Method and system for locating a control channel and data transport stream within the signal received by a set-top box from a cable television system
CZ20001579A3 (cs) Způsob zavádění proveditelných aplikací do dekodéru, dekodér a paměťová karta