ES2642320T3 - Cargador de arranque de sistema operativo fácil de usar - Google Patents

Cargador de arranque de sistema operativo fácil de usar Download PDF

Info

Publication number
ES2642320T3
ES2642320T3 ES06706256.2T ES06706256T ES2642320T3 ES 2642320 T3 ES2642320 T3 ES 2642320T3 ES 06706256 T ES06706256 T ES 06706256T ES 2642320 T3 ES2642320 T3 ES 2642320T3
Authority
ES
Spain
Prior art keywords
information
memory
loaded
processor
slave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06706256.2T
Other languages
English (en)
Inventor
Mats Svensson
Michael Rosenberg
Niclas Bauer
Peter Aulin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2642320T3 publication Critical patent/ES2642320T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Description

5
10
15
20
25
30
35
40
45
50
55
DESCRIPCION
Cargador de arranque de sistema operativo facil de usar
Esta invencion se refiere a la inicializacion de sistemas electronicos que tienen multiples procesadores programables.
El proceso de iniciar, o arrancar, un sistema electronico que tiene un procesador programable conectado a uno o mas dispositivos de memoria para almacenar instrucciones de programa, o codigo, y datos no es tan simple como podna parecer a primera vista. Una parte importante de la razon para esto es la necesidad de que el procesador comience la operacion en un estado bien definido.
Los modos tradicionales para cargar codigo de programa y datos en un sistema basico son o bien "empujando" el codigo y datos a la memoria de acceso aleatorio (RAM) del sistema directamente o bien utilizando un cargador de arranque. El cargador de arranque, que es llamado algunas veces un cargador de arranque o un cargador de inicio, es un conjunto de instrucciones (es decir, codigo de programa, algunas veces llamado "codigo de arranque") que puede ser bien "empujado" a la RAM del sistema o bien cargado en la RAM desde una memoria no volatil, tal como la memoria de solo lectura (ROM). En su ejecucion por el procesador, el cargador de arranque entonces "arrastra" el resto del codigo y los datos e inicia el sistema.
Ejemplos de mecanismos anteriores para iniciar sistemas del procesador, que incluye cargadores de arranque, son las Patentes de los EE.UU. N° 5.652.886 de Tulpule y col. y N° 6.490.722 de Barton y col. y la Publicacion de Solicitud de Patente de los EE.UU. N° US 2002/0138156 A1 de Wong y col. Barton y col., por ejemplo, describen un cargador de arranque de dos etapas en el cual la segunda etapa encuentra, verifica, y carga el sistema operativo. En Wong y col., un sistema de multiprocesador utiliza un procesador maestro acoplado a una ROM para transferir el codigo de arranque a los procesadores esclavos, con controladores de memoria en los procesadores esclavos que rechazan las solicitudes de acceso a la memoria hasta que el codigo de arranque ha sido transferido a sus RAM.
Como es indicado por Barton y col. y Wong y col., por ejemplo, poner en marcha un sistema multiprocesador, que puede ser considerado generalmente como que tiene un procesador maestro o anfitrion, es decir, el sistema que ordena el arranque, y uno o mas procesadores esclavos o clientes, es decir, el sistema que ha de ser arrancado, es incluso mas complicado que poner en marcha un sistema de un solo procesador.
La Patente de los EE.UU. N° 5.155.833 de Cullison y col. describe un multiprocesador maestro-esclavo en el que el procesador esclavo tiene una agrupacion de RAM que sirve en el momento de la inicializacion como la memoria de arranque del procesador esclavo y durante el funcionamiento normal como la memoria cache del procesador esclavo. El procesador maestro escribe el programa de arranque del procesador esclavo en la agrupacion de RAM, por ejemplo, despues de un reinicio del sistema.
Las ventajas del metodo de "empuje" son que no requiere codigo para ejecutar en el esclavo durante el arranque y que solamente la sincronizacion requerida es para mantener el esclavo en un estado de reinicio y liberarlo cuando se finaliza la carga. Sin embargo, el metodo de "empuje" funciona solamente cuando la memoria o memorias del esclavo son visibles para el anfitrion. Esta visibilidad puede ser implementada de varias maneras. Por ejemplo, una memoria puede ser visible en la direccion y los buses de datos tanto de los procesadores anfitriones como de los esclavos o las transferencias de acceso directo memoria (DMA) pueden ser permitidos desde la memoria o memorias del anfitrion a la memoria o memorias del esclavo.
Cuando la memoria del esclavo que ha de ser cargada es invisible para el anfitrion, el metodo de "empuje" no puede ser utilizado. En esa situacion, ha de utilizarse alguna forma de carga de arranque. Como se ha observado anteriormente, la tecnica del cargador de arranque requiere, o bien que el codigo de arranque pueda ser empujado al esclavo (lo que en este caso no es posible), o bien que el esclavo pueda cargar el codigo desde una memoria no volatil. El cargador de arranque inicia a continuacion una transferencia de codigo desde el anfitrion al esclavo y finaliza cargando la memoria.
Son posibles los sistemas multiprocesador en los cuales parte o toda la memoria del esclavo no esta visible para un anfitrion. En tales sistemas, puede ser ventajoso aprovecharse de las estructuras de software bien establecidas para la carga y comunicacion entre procesadores, que renderizan cargadores de arranque tradicionales indeseables. Ademas, un cargador de arranque puede entrar en conflicto con el sistema operativo, que se puede decir que quiere tener el control sobre todo el sistema y toda la memoria.
Entre los problemas a los que se hace frente al integrar un cargador de arranque con un sistema operativo (OS) estan asegurar que el codigo que no esta aun cargado no es ejecutado, cargar de manera eficiente el codigo a una memoria o memorias invisibles para el anfitrion, y sincronizar con el anfitrion la carga y el arranque del esclavo o esclavos. Ademas, es necesario determinar que partes del sistema han de ser cargadas en la memoria visible tanto para los procesadores anfitriones como para los esclavos y como la imagen binaria que ha de ser cargada debena estar dispuesta para que el cargador de arranque funcione junto con el OS. Otro problema que puede ser importante
es la integracion del cargador de arranque y el OS, ya que una estructura ya establecida para la comunicacion entre el anfitrion y el esclavo puede ser a continuacion utilizada durante la carga. Tal estructura incluina tipicamente uno o mas primitivos para la comunicacion que dependen de las caractenstica del OS.
Compendio
5 Esta invencion proporciona, en un aspecto, un metodo para cargar informacion que incluye un cargador de arranque en un procesador esclavo en un sistema multiprocesador que incluye un procesador maestro y el procesador esclavo. El metodo incluye los pasos de reiniciar el procesador esclavo y mantener el procesador esclavo en un estado de reinicio; empujar una primera parte de la informacion a una primera memoria que es accesible mediante los procesadores maestro y esclavo, incluyendo la primera parte de la informacion el cargador de arranque; arrancar 10 el procesador esclavo; poner en marcha un sistema operativo en el procesador esclavo, incluyendo el bloqueo de la planificacion de procesos que tienen codigo de programa ubicado en una segunda memoria que es accesible mediante el procesador esclavo e inaccesible mediante el procesador maestro; reservar un area de almacenamiento intermedio en la primera memoria; enviar al procesador maestro la informacion sobre una ubicacion y tamano del area de almacenamiento intermedio con una segunda parte de la informacion que ha de ser cargada en la segunda 15 memoria; enviar un primer mensaje al procesador esclavo que indica que el area de almacenamiento intermedio ha sido cargada y se ha finalizado la carga o si se va a cargar mas informacion; copiar la informacion en el area de almacenamiento intermedio a la segunda memoria; enviar un segundo mensaje al procesador maestro que indica que la informacion en el area de almacenamiento intermedio ha sido copiada; y liberar el bloqueo de la planificacion de procesos que tienen codigo de programa ubicado en la segunda memoria.
20 En otro aspecto de la invencion, un sistema multiprocesador incluye un procesador anfitrion, al menos un procesador cliente, una primera memoria accesible mediante los procesadores anfitrion y cliente, una segunda memoria accesible mediante el procesador cliente y no accesible mediante el procesador anfitrion, y un cargador de arranque. La primera memoria incluye un area de almacenamiento intermedio, y el cargador de arranque incluye una parte anfitrion y una parte cliente. La parte anfitrion se puede cargar en la primera memoria y tiene una primera etapa y 25 una segunda etapa. La primera etapa reinicia y mantiene el procesador cliente en un estado de reinicio y empuja la informacion a la primera memoria. La segunda etapa es iniciada por la parte cliente, carga el area de almacenamiento intermedio con informacion que ha de ser cargada en la segunda memoria, y envfa a la parte cliente un primer mensaje que indica que el area de almacenamiento intermedio esta cargada. La parte cliente que se puede cargar en la primera memoria, pone en marcha un sistema operativo que incluye inicialmente el bloqueo 30 de la planificacion de todos los procesos que tienen codigo de programa ubicado en la segunda memoria, copia la informacion cargada en el area de almacenamiento intermedio a la segunda memoria, envfa a la parte anfitrion un segundo mensaje que indica que la informacion ha sido copiada, y libera el bloqueo de la planificacion de los procesos que tienen codigo de programa ubicado en la segundo memoria.
En otro aspecto de la invencion, un medio legible por ordenador contiene un programa informatico para cargar 35 informacion que incluye un cargador de arranque en un procesador esclavo en un sistema multiprocesador que incluye un procesador maestro y el procesador esclavo. El programa informatico realiza los pasos del metodo resumido anteriormente.
Breve descripcion de los dibujos
Las distintas caractensticas, objetos y ventajas de esta invencion seran comprendidos mediante la lectura de esta 40 descripcion en union con los dibujos, en los que:
La fig. 1 representa un sistema multiprocesador;
La fig. 2 es un diagrama de flujo de un cargador de arranque de sistema operativo facil de usar; y La fig. 3 representa un ejemplo de una organizacion de un area de almacenamiento intermedio.
Descripcion detallada
45 Como se ha observado anteriormente, un cargador de arranque convencional puede entrar en conflicto con el sistema operativo de un sistema multiprocesador. Esta solicitud describe un cargador de arranque de OS facil de usar y los metodos que satisfacen el desaffo de integrar un OS con un cargador de arranque en sistemas en los cuales el anfitrion y un cliente tienen un mecanismo de comunicacion que requiere al OS para que el mecanismo funcione y el cliente tiene dos sistemas de memoria: una visible tanto para el anfitrion como para el cliente y una 50 visible solamente para el cliente.
La fig. 1 representa tal sistema 100 multiprocesador que incluye un procesador 102 anfitrion y un procesador 104 cliente. Se apreciara que aunque la fig. 1 muestra un procesador 104 cliente, puede haber mas previstos. Tambien se apreciara que los procesadores anfitrion y cliente pueden ser cualesquiera procesadores electronicos programables. En el ejemplo representado en la fig. 1, el procesador 102 es mostrado como la unidad de tratamiento 55 central (CPU) de una maquina RISC avanzada (ARM), y el procesador 104 es mostrado como la CPU de un dispositivo de procesador de senal digital (DSP). La lmea discontinua en la fig. 1 representa el lfmite hardware entre
5
10
15
20
25
30
35
40
45
50
55
60
los dispositivos anfitrion y esclavo, en este ejemplo, el ARM y el DSP, y tambien una memoria 106 no volatil. La memoria 106 puede ser una ROM, una memoria flash, u otro tipo de dispositivo de memoria no volatil.
La mayona de los dispositivos DSP comercialmente disponibles incluyen memorias en el chip, y como se ha
indicado en la fig. 1, el DSP incluye RAM de un solo acceso "interno" (SARAM) y RAM de acceso doble (DARAM) 108, asf como una RAM 110 "externa" (XRAM). Un area de almacenamiento intermedio, indicada por la lmea discontinua, esta definida dentro de la memoria 108 como se ha descrito en mas detalle a continuacion. Las flechas en la fig. 1 indican trayectos de acceso, por ejemplo, buses y trayectos DMA, entre las CPU y las memorias. La CPU 102 de anfitrion ARM puede acceder a la memoria 106 no volatil y a la SARAM y a la DARAM 108 del DSP, pero no
a la XRAM 110 del DSP, y la CPU 104 del esclavo DSP puede acceder a todas las RAM 108, 110.
La SARAM y la DARAM 108 pueden ser cargadas desde la memoria 106 no volatil por el metodo de "empuje" trivial. Cuando el codigo necesita ser cargado a la XRAM 110 durante el arranque, sin embargo, se requiere una solucion de cargador de arranque por que la XRAM 110 es invisible a, es decir, no accesible mediante, la CPU 102 y asf el codigo de arranque no puede ser empujado a la XRAM 110.
Como se ha descrito en mas detalle a continuacion en conexion con el diagrama de flujo de la fig. 2, un cargador de arranque de OS facil de usar tiene ventajosamente una parte anfitrion y una parte cliente que es cargada en una memoria o memorias visibles tanto para el maestro como para el esclavo (por ejemplo, la SARAM y la DARAM 108).
La parte anfitrion del cargador de arranque de OS facil de usar puede ser considerada como que incluye dos etapas o modos de operacion. La primera etapa reinicia y mantiene el esclavo 104 en el estado de reinicio (Paso 202) y empuja la informacion (instrucciones de programa y/o datos) (Paso 204) del modo normal desde la memoria 106 no volatil a las memorias 108 comunmente visibles. La informacion empujada a estas memorias es principalmente el cargador de arranque, el OS, y cualquier codigo de puesta en marcha necesario para el OS. Debena apreciarse que una aplicacion o aplicaciones o partes de las mismas pueden ser empujadas tambien a estas memorias al inicio y pueden comenzar a ejecutarse durante la carga de la memoria 110 "externa". Cuando este "empuje" es finalizado (Paso 206), se permite que el esclavo 104 arranque (Paso 208) e inicie el OS (por ejemplo, es liberado desde el estado de reinicio) y sus mecanismos de comunicacion normal (Paso 210). La parte anfitrion espera a continuacion un mensaje desde el esclavo, el cual inicia la operacion de su segunda etapa como se ha descrito en mas detalle a continuacion.
La parte esclavo del cargador de arranque de OS facil de usar que es cargada ("empujada" por la primera etapa de la parte anfitrion) a las memorias 108 comunmente visibles inicia el sistema operativo, llevando a cabo las siguientes operaciones (Paso 210). En primer lugar, se crean controladores de interrupcion. El codigo para los controladores de interrupcion debe estar ubicado en la memoria que ya esta cargada porque puede ocurrir una interrupcion en cualquier momento. En segundo lugar, se crean estructuras de datos (por ejemplo, bloques y pilas de control de procesos) de procesos comunes, es decir, procesos que se ejecutan tanto en el anfitrion como en el esclavo. Debena comprenderse que ya que estos procesos comunes no han sido ejecutados todavfa, su codigo puede ser cargado en un momento posterior y puede estar ubicado muy bien en la memoria "externa" visible solamente para el esclavo, por ejemplo, la XRAM 110. En tercer lugar, se crea el proceso inactivo del sistema. El codigo para el proceso inactivo debe estar ubicado en la memoria que ya esta cargada porque el proceso inactivo es el proceso seleccionado para ejecutar por el OS si no hay nada util que hacer. En cuarto lugar, se bloquea la planificacion de al menos todos los procesos que residen en, es decir, que tienen codigo de programa o datos ubicados en, la memoria 110 "externa". La ejecucion de los procesos que residen en la memoria "interna" puede asf iniciar o continuar ventajosamente en paralelo con la carga de la memoria "externa" como se ha observado anteriormente. Es tambien posible detener la planificacion de todos los procesos excepto del proceso inactivo, pero esto no es necesario. Haciendo este bloqueo lo ultimo que se ha hecho antes de que el planificador del OS se active asegura que el codigo en estos procesos no se ejecutara cuando se libere el planificador. Finalmente, el planificador del Os es liberado, lo cual permite al OS poner en marcha el codigo de ejecucion y los procesos de planificacion. Se comprendera que ya que al menos fue bloqueada toda la planificacion de los procesos de memoria externa, todo lo que el OS puede hacer ahora es planificar interrupciones y el proceso inactivo.
En este punto, el esclavo 104 esta parcialmente en marcha y ejecutandose. La parte esclava del cargador de arranque de OS facil de usar ha sido cargada, y se esta ejecutando el proceso inactivo del esclavo. El OS del esclavo puede planificar y ejecutar codigo en respuesta a interrupciones y puede planificar el proceso inactivo y cualesquiera procesos desbloqueados que tienen codigo que reside en la memoria interna. Los mecanismos del OS para que todos los accesos de codigo y datos esten en la memoria que ya ha sido cargada (SARAM y DARAM 108, en este ejemplo) estan disponibles, incluyendo los mecanismos de comunicacion normal. Estos mecanismos de comunicacion del OS, que son abstracciones de alto nivel de la DMA, memoria compartida, y registros estructurados, son mas capaces que simples semaforos y habilitan al procesador anfitrion para comunicar eficientemente con un procesador (el esclavo) que no se ha iniciado completamente, es decir un procesador que esta ejecutando principalmente solamente el OS, los servicios de interrupcion, y procesos que residen en la rAm "interna".
El proceso inactivo reserva un bloque de memoria de la pila de memoria del esclavo que esta ubicada en la memoria visible para el anfitrion, tal como la memoria 108 "interna" (Paso 212). Como se ha descrito en mas detalle a
5
10
15
20
25
30
35
40
45
50
55
60
continuacion, este bloque de memoria reservado es utilizado para almacenamiento intermedio de informacion (codigo y/o datos) que ha de ser transferida a la memoria privada del esclavo, es decir, la memoria que es invisible para el anfitrion, tal como la XRAM 110 "externa". El proceso inactivo del esclavo utiliza ventajosamente los mecanismos de comunicacion establecidos para enviar al anfitrion (Paso 214) informacion sobre la direccion y tamano o longitud del area de almacenamiento intermedio reservada en el paso anterior. Despues de enviar la informacion, que puede estar contenida en uno o mas mensajes adecuados, los bloques esclavos, esperan un mensaje desde el anfitrion. Mientras esta "bloqueado" el esclavo no realiza ninguna otra actividad de carga hasta que recibe la respuesta del anfitrion.
Se comprendera que si el OS del esclavo actua sobre una interrupcion en esta etapa depende de la naturaleza de la interrupcion. Dado que muchos mecanismos del OS (como los utilizados para comunicar con el anfitrion, por ejemplo) dependen de interrupciones, y no puede saberse por adelantado cuando ocurrira una interrupcion, todo el codigo de interrupcion debe haber sido cargado en la memoria "interna". En ese sentido, las interrupciones son servidas durante la segunda etapa de la carga de arranque. Sin embargo, si una interrupcion va a activar una cadena de eventos tales como procesos que comienzan a hacer algun tratamiento de datos y el codigo o datos para esos procesos estan ubicados o seran ubicados en la memoria "externa", la interrupcion es bloqueada y el servicio de interrupcion pone la solicitud en la "cola de entrada" de ese proceso de manera que la solicitud sera servida despues de que el arranque haya finalizado y que el proceso puede ejecutarse.
A la recepcion de la informacion del esclavo, la segunda etapa del cargador de arranque del anfitrion llena el area de almacenamiento intermedio con informacion (codigo y/o datos) que ha de ser cargada en la memoria invisible del esclavo (Paso 216). El codigo y los datos son empujados al area de almacenamiento intermedio de un modo normal porque este area es la memoria a la que ambos procesadores pueden acceder, pero el empuje es activado a traves de los mecanismos de comunicacion del OS.
El anfitrion envfa ahora un mensaje al esclavo (Paso 218) que indica que el area de almacenamiento intermedio ha sido cargado y si la carga ha finalizado o hay disponibles mas codigo y/o datos. Este es el mensaje que esta esperando el esclavo. El anfitrion a su vez se bloquea ahora, esperando un mensaje desde el esclavo. El esclavo copia los contenidos del area de almacenamiento intermedio a ubicaciones adecuadas en su memoria privada de esclavo (Paso 220), implementando por ello su carga real. El esclavo envfa a continuacion un mensaje al anfitrion (Paso 222) que indica que el esclavo ha copiado los contenidos del area de almacenamiento intermedio.
Si existe mas codigo y/o datos para cargar (Paso 224), este ciclo de copiar y enviar mensajes (Pasos 216-224) puede ser repetido tantas veces como se requiera. Cuando la carga es finalizada, es decir, cuando no se necesita copiar mas informacion al esclavo, el esclavo libera el bloqueo de los procesos que fueron bloqueados antes, permitiendo por tanto la planificacion del codigo en su memoria privada de esclavo (Paso 226). La carga esta ahora completa.
Como se ha descrito anteriormente, el anfitrion llena el area de almacenamiento intermedio en la memoria 108 con codigo y datos que el esclavo copia ademas a destinos finales en la memoria 110 privada del esclavo. Quizas el modo mas simple de hacer esto es preceder todo el codigo y datos en el area de almacenamiento intermedio con una etiqueta que contiene la direccion de destino y la longitud del bloque que ha de ser cargado. La fig. 3 representa un ejemplo de tal organizacion del area de almacenamiento intermedio. Un bloque de codigo y/o datos que han de ser transferidos al area de almacenamiento intermedio incluye una cabecera que indica la longitud del bloque y donde ha de ser cargado en la memoria del esclavo, es decir, la direccion de destino. Como se ha indicado por las lmeas discontinuas en la fig. 3, varios de tales bloques pueden ser concatenados en el area de almacenamiento intermedio.
La informacion (codigo y datos) que ha de ser cargada puede estar dispuesta de muchas maneras en el area de almacenamiento intermedio y las memorias. A menudo la informacion esta dispuesta como bloques de informacion consecutiva que han de ser cargados a diferentes direcciones, y asf un tamano arbitrariamente elegido del area de almacenamiento intermedio puede no coincidir con los tamanos de todos los bloques. Aun, debena comprenderse que el sistema operara mas eficientemente cuando el area de almacenamiento intermedio este siempre llena. Esto significa que si los bloques que han de ser cargados son mas pequenos que este area, debena hacerse una alta transferencia de varios bloques (mas pequenos) al mismo tiempo. Esto significa tambien que un bloque debena ser dividido si es mas grande que la parte restante del area de almacenamiento intermedio, y una parte transferida al area de almacenamiento intermedio con la parte restante transferida en el siguiente bloque. Ademas, si un bloque es varias veces mas grande que el area de almacenamiento intermedio, puede que tenga que dividirse mas de una vez. Toda esta division y concatenacion es hecha en la parte anfitrion del cargador de arranque de OS facil de usar de manera que son bien conocidos para los informaticos. Desde el punto de vista de ingenieros de comunicaciones de datos, la parte anfitrion del cargador de arranque de OS facil de usar es asf un tipo de "capa de transporte".
El tecnico comprendera el beneficio de esta division y concatenacion de informacion en bloques de transferencia. Se requiere algun tipo de mecanismo de comunicacion para realizar las transferencias reales de informacion entre memorias, y cualquiera que sea el mecanismo utilizado, transferencias un poco mas grandes son preferibles tfpicamente a transferencias mas pequenas. Un area de almacenamiento intermedio mantenida llena puede hacer el uso del ancho de banda disponible mas eficiente minimizando ventajosamente la sobrecarga en el canal de
5
10
15
20
25
30
35
40
45
50
55
comunicaciones. Cada mensaje requiere alguna cantidad de administracion e informacion administrativa, y por lo tanto menos mensajes significa menos sobrecarga.
Un buen ejemplo del beneficio del efecto de division y concatenacion del bloque es el DMA como el mecanismo de comunicacion. El DMA requiere tipicamente alguna sobrecarga de configuracion (es decir, lleva algun tiempo configurarlo), pero a continuacion el DMA es muy eficiente una vez que ha sido puesto en marcha porque las transferencias pueden ser llevadas a cabo en ciclos de CPU mmimos. Con el fin de obtener el mayor beneficio del uso del DMA, debena hacerse cada vez mas grande la transferencia de DMA permitida por el hardware. Asf, actualmente se cree que es ventajoso ajustar el tamano del area de almacenamiento intermedio al tamano del bloque de DMA maximo.
La parte anfitrion del cargador de arranque de OS facil de usar debena "saber " cuando dejar su primera etapa (cargar la informacion empujandola a la memoria) y entrar en su segunda etapa (cargar la informacion a traves de uno o mas mecanismos de comunicacion). Despues de todo, el anfitrion no puede empujar la informacion a la memoria que es invisible para el. Aunque el esclavo envfa un mensaje a la parte anfitrion cuando ha alcanzado el proceso inactivo, esto puede no ser suficiente para que la parte anfitrion le diga al esclavo que comience a ejecutarse. Esta transicion del empuje a la carga de arranque sera vista como un cambio desde el paradigma de la carga pasiva (es decir, no se esta ejecutando codigo en el esclavo) al paradigma de la carga activa (es decir, un esclavo parcialmente vivo, ejecutandose).
Un modo de que la parte anfitrion sepa cuando cambiar las etapas es etiquetar el codigo y los datos que han de ser cargados con informacion sobre a que memoria seran cargados. Por ejemplo, la informacion destinada a la memoria invisible podna incluir una etiqueta o etiquetas que indican la informacion que ha de ser cargada en la memoria invisible. La ausencia de tal etiqueta podna indicar que la informacion ha de ser cargada en la memoria visible, aunque se apreciara que podna utilizarse tambien una etiqueta que indica explfcitamente que la informacion ha de ser cargada en la memoria visible. Esto permite al anfitrion hacer dos pasadas sobre la informacion y cargar solamente la informacion requerida en cada pasada. En la primera pasada, las cosas que van a la memoria interna senan encontradas y cargadas, y en la segunda pasada, las cosas que van a la memoria externa senan encontradas y cargadas.
Otro modo, que parece actualmente ser mas simple, es disponer la memoria privada del esclavo de tal manera que toda ella resida por encima (o por debajo) de una direccion predeterminada. La informacion que ha de ser transferida es a continuacion ordenada en consecuencia, con todas las secciones de codigo y datos que han de ser cargados a la memoria privada del esclavo puestas al final (o al comienzo) de la imagen ordenada. A continuacion, todo lo que ha de hacer la parte anfitrion del cargador de arranque de OS facil de usar es entrar en su segunda etapa cuando es encontrada una direccion mas grande (o mas pequena) que la direccion predeterminada (lfmite).
Con el fin de ahorrar memoria o aumentar la integridad del codigo y la seguridad de la plataforma en el lado del anfitrion, la informacion que ha de ser cargada al esclavo puede ser tambien procesada previamente de diferentes maneras. Por ejemplo, la informacion puede ser comprimida segun un algoritmo adecuado, reduciendo por tanto el tamano de la memoria necesaria para ello en el lado del anfitrion. Como otro ejemplo, la informacion puede ser cifrada, fortaleciendo por ello la seguridad de la plataforma, ya que un hacker potencial no sera capaz de desensamblar la informacion facilmente. Actualmente se cree que el cifrado es valioso si la informacion que ha de ser cargada al esclavo es almacenada en el sistema de archivos interno del anfitrion, donde la informacion esta disponible (al menos en teona) para cualquiera.
A partir de esta descripcion, se comprendera que los mecanismos del OS estan disponibles para la parte esclavo del cargador de arranque de OS facil de usar que es ejecutada por el procesador esclavo y que el esclavo puede reutilizar el codigo dependiente del OS existente requerido para la comunicacion. Ademas, el cargador de arranque de OS facil de usar utiliza recursos de carga (por ejemplo, DMA) eficientemente, con la parte anfitrion que decide automaticamente cuando conmutar desde una primera etapa, o modo de empuje, a una segunda etapa, o modo de cargador de arranque.
Se espera que esta invencion pueda ser implementada en una amplia variedad de entornos, incluyendo por ejemplo dispositivos de comunicacion moviles. Los dispositivos mas nuevos de entre ellos pueden emplear el cargador de arranque de OS facil de usar descrito aqm para arrancar sus DSP, lo que puede estar previsto para manejar tareas multimedia, en cooperacion con sus sistemas de software de procesador principal.
El cargador de arranque de OS facil de usar descrito aqrn tiene en cuenta el sistema operativo y se ejecuta realmente sobre un sistema operativo. El anfitrion se esta ejecutando completamente cuando el esclavo es arrancado o vuelto a arrancar de nuevo. Este cargador de arranque no requiere que el procesador anfitrion este en cierto estado con el fin de poner en marcha el procesador esclavo. En efecto, la puesta en marcha del procesador esclavo puede ser llevado a cabo en cualquier momento durante la ejecucion del software del procesador anfitrion. El cargador de arranque de OS facil de usar no necesita que un archivo ejecutable especial sea ejecutado en el procesador esclavo mientras la informacion esta siendo cargada a este desde el procesador anfitrion y la RAM inaccesible para la anfitrion. Un ejecutable es vinculado a todas las memorias del procesador esclavo. El esclavo es arrancado antes de que todo el codigo sea cargado, pero el codigo que esta vinculado a la memoria inaccesible para
5
10
15
20
25
30
35
40
el anfitrion no es ejecutado hasta que es cargado con ayuda del codigo que esta vinculado a la memoria accesible para el anfitrion del procesador esclavo.
Se comprendera por tanto que el cargador del OS facil de usar descrito aqrn hace posible cambiar la ejecucion del software en el procesador esclavo e iniciar la ejecucion de esclavo de un software de aplicacion antes de que sea completamente cargado. Uno o mas procesos de aplicacion pueden ser elegidos para "empujar" con el cargador de arranque en la memoria accesible para el anfitrion del procesador esclavo, y dichos procesos iniciaran la ejecucion en el mismo punto del tiempo en el que la memoria inaccesible para el anfitrion del procesador esclavo comienza a ser cargada.
Esta capacidad puede ser importante en muchos dispositivos y en muchos casos de uso. En un telefono movil, por ejemplo, tales casos de uso incluyen hacer una llamada, recibir una llamada, comprimir/descomprimir la voz, reproducir archivos de musica, etc. Con el cargador de arranque de OS facil de usar descrito aqrn, uno puede cargar y ejecutar software nuevo en el procesador esclavo virtualmente en cualquier momento mientras que el procesador anfitrion esta funcionando.
Se apreciara que los procedimientos descritos anteriormente son llevados a cabo repetitivamente si es necesario. Para facilitar la comprension, muchos aspectos de la invencion son descritos en terminos de secuencias de acciones que pueden ser realizadas mediante, por ejemplo, elementos de un sistema informatico programable. Se reconocera que distintas acciones podnan ser realizadas por circuitos especializados (por ejemplo, puertas logicas discretas interconectadas para realizar una funcion especializada o circuitos integrados espedficos de aplicacion), por instrucciones de programa ejecutadas por uno o mas procesadores, o por una combinacion de ambos.
Ademas, la invencion descrita aqrn puede ser considerada adicionalmente que ha de ser realizada completamente dentro de cualquier forma de medio de almacenamiento legible por ordenador que tiene almacenada en el un conjunto de instrucciones adecuadas para utilizar por o en conexion con un sistema, aparato, o dispositivo de ejecucion de instruccion, tal como un sistema basado en ordenador, sistema que contiene procesador, u otro sistema que puede buscar instrucciones desde un medio y ejecutar las instrucciones. Como se ha utilizado aqrn, un "medio legible por ordenador" puede ser cualquier medio que contiene, almacena, comunica, propaga, o transporta el programa para utilizar por o en conexion con el sistema, aparato, o dispositivo de ejecucion de instruccion. El medio legible por ordenador puede ser, por ejemplo pero no esta limitado a, un sistema, aparato, dispositivo, o medio de propagacion electronico, magnetico, optico, electromagnetico, infrarrojo o semiconductor. Mas ejemplos espedficos (una lista no exhaustiva) del medio legible por ordenador incluyen una conexion electrica que tiene uno o mas cables, un disquete de ordenador portatil, una RAM, una ROM, una memoria de solo lectura programable regrabable (EPROM o memoria Flash), y una fibra optica.
Asf, la invencion puede ser realizada de muchas formas diferentes, no todas las cuales son descritas anteriormente, y todas estas formas son contempladas para estar dentro del alcance de la invencion. Para cada uno de los distintos aspectos de la invencion, cualquier forma puede ser referida como "logica configurada para" realizar una accion descrita, o alternativamente como "logica que" realiza una accion descrita.
Se enfatiza que el termino "comprende" y "que comprende ", cuando es utilizado en esta solicitud, especifica la presencia de caractensticas declaradas, numeros enteros, pasos, o componentes y no excluye la presencia o adicion de una o mas de otras caractensticas, numeros enteros, pasos, componentes, o grupos de los mismos.
Las realizaciones particulares descritas anteriormente son meramente ilustrativas y no debenan ser consideradas restrictivas de ningun modo. El alcance de la invencion es determinado por las siguientes reivindicaciones, y todas las variaciones y equivalencias que caen dentro del rango de las reivindicaciones estan destinadas para ser abarcadas en ellas.

Claims (22)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    REIVINDICACIONES
    1. - Un metodo para cargar informacion en un procesador (104) esclavo en un sistema (100) multiprocesador que incluye un procesador (102) maestro y el procesador esclavo, incluyendo la informacion un cargador de arranque, que comprende los pasos de:
    a) reiniciar el procesador (104) esclavo y mantener el procesador (104) esclavo en un estado de reinicio;
    b) empujar una primera parte de la informacion a una primera memoria (108) que es accesible mediante el procesador (102) maestro y el procesador (104) esclavo, incluyendo la primera parte de la informacion el cargador de arranque;
    c) arrancar el procesador (104) esclavo;
    d) poner en marcha un sistema operativo en el procesador (104) esclavo, que incluye el bloqueo de la
    planificacion de procesos que tienen codigo de programa ubicado en una segunda memoria (110) que es
    accesible mediante el procesador (104) esclavo e inaccesible mediante el procesador (102) maestro;
    e) reservar un area de almacenamiento intermedio en la primera memoria (108):
    f) enviar al procesador (102) maestro la informacion sobre una ubicacion y tamano del area de almacenamiento intermedio reservada;
    g) basandose en la informacion enviada, cargar el area de almacenamiento intermedio con una segunda parte de la informacion que ha de ser cargada en la segunda memoria (110);
    h) enviar un primer mensaje al procesador (104) esclavo que indica que el area de almacenamiento intermedio ha sido cargada y si la carga ha finalizado o ha de cargarse mas informacion;
    i) copiar informacion en el area de almacenamiento intermedio a la segunda memoria (110);
    j) enviar un segundo mensaje al procesador (102) maestro que indica que la informacion en el area de
    almacenamiento intermedio ha sido copiada; y
    k) liberar el bloqueo de la planificacion de procesos que tienen codigo de programa ubicado en la segunda memoria (110).
  2. 2. - El metodo de la reivindicacion 1, que comprende ademas el paso de, si hay mas informacion que ha de ser cargada, repetir los pasos g-j hasta que no haya mas informacion que ha de ser cargada.
  3. 3. - El metodo de la reivindicacion 1, en donde el paso d) incluye crear controladores de interrupcion y crear estructuras de datos de los procesos que se ejecutan tanto en el procesador (102) maestro como en el procesador (104) esclavo.
  4. 4. - El metodo de la reivindicacion 1, en donde la primera parte de la informacion empujada a la primera memoria (108) incluye ademas el sistema operativo y al menos una parte de al menos una aplicacion.
  5. 5. - El metodo de la reivindicacion 1, en donde el paso d) incluye el bloqueo de la planificacion de todos los procesos excepto de un proceso inactivo.
  6. 6. - El metodo de la reivindicacion 1, en donde el paso g) incluye preceder la segunda parte de la informacion que ha de ser cargada a la segunda memoria (110) con al menos una etiqueta que indica una direccion en la segunda memoria (110) y una longitud de la informacion que ha de ser cargada.
  7. 7. - El metodo de la reivindicacion 1, en donde el paso g) incluye dividir la segunda parte de la informacion que ha de ser cargada a la segunda memoria (110) en bloques y cargar el area de almacenamiento intermedio con un primer bloque.
  8. 8. - El metodo de la reivindicacion 7, que comprende ademas el paso de repetir los pasos g-j para cada bloque en sucesion.
  9. 9. - El metodo de la reivindicacion 1, en donde la primera parte de la informacion empujada a la primera memoria (108) incluye al menos una etiqueta que indica si la informacion ha de ser cargada a la segunda memoria (110).
  10. 10. - El metodo de la reivindicacion 1, en donde la segunda parte de la informacion que ha de ser cargada a la segunda memoria (110) es al menos una de entre informacion comprimida y cifrada.
  11. 11. - Un sistema (100) multiprocesador, que comprende: un procesador (102) anfitrion;
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    al menos un procesador (104) cliente;
    una primera memoria (108) accesible mediante el procesador anfitrion y el procesador cliente, en donde la primera memoria incluye un area de almacenamiento intermedio;
    una segunda memoria (110) accesible mediante el procesador cliente y no accesible mediante el procesador anfitrion; y
    un cargador de arranque que incluye:
    una parte de anfitrion que se puede cargar a la primera memoria, que tiene una primera etapa que reinicia y mantiene el procesador (104) cliente en un estado de reinicio y empuja la informacion a la primera memoria (108), y que tiene una segunda etapa que es iniciada por la parte cliente, que carga el area de almacenamiento intermedio con informacion que ha de ser cargada a la segunda memoria (110) y que envfa a la parte cliente un primer mensaje que indica que el area de almacenamiento intermedio esta cargada; y
    una parte cliente que se puede cargar a la primera memoria (108), que pone en marcha un sistema operativo que incluye bloquear inicialmente la planificacion de todos los procesos que tienen codigo de programa ubicado en la segunda memoria (110), que copia la informacion cargada al area de almacenamiento intermedio a la segunda memoria (110), que envfa a la parte anfitrion un segundo mensaje que indica que la informacion ha sido copiada, y que libera el bloqueo de la planificacion de todos los procesos que tienen codigo de programa ubicado en la segunda memoria.
  12. 12. - El sistema de la reivindicacion 11, en donde la informacion empujada a la primera memoria (108) mediante la primera etapa incluye la parte cliente del cargador de arranque y el sistema operativo, y la segunda etapa permite a los procesadores (102 y 104) anfitrion y cliente intercambiar mensajes
  13. 13. - El sistema de la reivindicacion 12, en donde la informacion empujada a la primera memoria (108) mediante la primera etapa incluye al menos una parte de al menos una aplicacion.
  14. 14. - El sistema de la reivindicacion 11, en donde la parte cliente bloquea inicialmente la planificacion de todos los procesos excepto el proceso inactivo.
  15. 15. - El sistema de la reivindicacion 11, en donde el proceso inactivo envfa al procesador (102) anfitrion la informacion sobre una direccion y una longitud del area de almacenamiento intermedio.
  16. 16. - El sistema de la reivindicacion 11, en donde la informacion que ha de ser cargada a la segunda memoria (110) incluye al menos una etiqueta que indica una direccion en la segunda memoria (110) y una longitud de la informacion que ha de ser cargada.
  17. 17. - El sistema de la reivindicacion 11, en donde el area de almacenamiento intermedia esta organizada como bloques de informacion, y cada bloque incluye una cabecera que indica una longitud del bloque y una direccion para el bloque en la segunda memoria (110).
  18. 18. - El sistema de la reivindicacion 11, en donde la informacion empujada a la primera memoria (108) incluye al menos una etiqueta que indica si la informacion ha de ser cargada a la segunda memoria (110).
  19. 19. - El sistema de la reivindicacion 11, en donde la informacion que ha de ser cargada a la segunda memoria (110) es al menos una de entre informacion comprimida y cifrada.
  20. 20. - Un medio legible por ordenador que contiene un programa informatico para cargar informacion a un procesador (104) esclavo en un sistema (100) multiprocesador que incluye un procesador (102) maestro y el procesador (104) esclavo, en donde la informacion incluye un cargador de arranque y el programa informatico realiza los pasos de:
    a) reiniciar el procesador (104) esclavo y mantener el procesador (104) esclavo en un estado de reinicio;
    b) empujar una primera parte de la informacion a una primera memoria (108) que es accesible mediante el procesador (102) maestro y el procesador (104) esclavo, incluyendo la primera parte de la informacion el cargador de arranque;
    c) arrancar el procesador (104) esclavo
    d) poner en marcha un sistema operativo en el procesador (104) esclavo, que incluye el bloqueo de la planificacion de procesos que tienen codigo de programa ubicado en una segunda memoria (110) que es accesible mediante el procesador (104) esclavo e inaccesible mediante el procesador (102) maestro;
    e) reservar un area de almacenamiento intermedio en la primera memoria (108):
    f) enviar al procesador (102) maestro la informacion sobre una ubicacion y tamano del area de almacenamiento intermedio reservada;
    g) basandose en la informacion enviada, cargar el area de almacenamiento intermedio con una segunda parte de la informacion que ha de ser cargada en la segunda memoria (110);
    h) enviar un primer mensaje al procesador (104) esclavo que indica que el area de almacenamiento intermedio ha sido cargada y si la carga ha finalizado o ha de cargarse mas informacion;
    i) copiar informacion en el area de almacenamiento intermedio a la segunda memoria (110);
    j) enviar un segundo mensaje al procesador maestro (102) que indica que la informacion en el area de almacenamiento intermedio ha sido copiada; y
    k) liberar el bloqueo de la planificacion de procesos que tienen codigo de programa ubicado en la segunda memoria (110).
    10 21.- El medio legible por ordenador de la reivindicacion 20, en donde el programa informatico realiza ademas el paso
    de, si hay mas informacion que ha de ser cargada, repetir los pasos g-j hasta que no haya mas informacion que ha de ser cargada.
  21. 22. - El medio legible por ordenador de la reivindicacion 20, en donde el paso g) incluye preceder la segunda parte de la informacion que ha de ser cargada a la segunda memoria (110) con al menos una etiqueta que indica una
    15 direccion en la segunda memoria (110) y una longitud de la informacion que ha de ser cargada.
  22. 23. - El medio legible por ordenador de la reivindicacion 20, en donde el paso g) incluye dividir la segunda parte de la informacion que ha de ser cargada a la segunda memoria (110) en bloques y cargar el area de almacenamiento intermedio con un primer bloque.
ES06706256.2T 2005-01-22 2006-01-17 Cargador de arranque de sistema operativo fácil de usar Active ES2642320T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/040,798 US7356680B2 (en) 2005-01-22 2005-01-22 Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader
US40798 2005-01-22
PCT/EP2006/000351 WO2006077068A2 (en) 2005-01-22 2006-01-17 Operating-system-friendly bootloader

Publications (1)

Publication Number Publication Date
ES2642320T3 true ES2642320T3 (es) 2017-11-16

Family

ID=36593731

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06706256.2T Active ES2642320T3 (es) 2005-01-22 2006-01-17 Cargador de arranque de sistema operativo fácil de usar

Country Status (7)

Country Link
US (1) US7356680B2 (es)
EP (2) EP1844394B1 (es)
KR (1) KR101255382B1 (es)
CN (1) CN100580628C (es)
ES (1) ES2642320T3 (es)
PL (1) PL1844394T3 (es)
WO (1) WO2006077068A2 (es)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702893B1 (en) * 2006-09-22 2010-04-20 Altera Corporation Integrated circuits with configurable initialization data memory addresses
US8667254B1 (en) * 2008-05-15 2014-03-04 Xilinx, Inc. Method and apparatus for processing data in an embedded system
EP2141590A1 (en) * 2008-06-26 2010-01-06 Axalto S.A. Method of managing data in a portable electronic device having a plurality of controllers
US8145749B2 (en) 2008-08-11 2012-03-27 International Business Machines Corporation Data processing in a hybrid computing environment
US8141102B2 (en) 2008-09-04 2012-03-20 International Business Machines Corporation Data processing in a hybrid computing environment
US7984267B2 (en) * 2008-09-04 2011-07-19 International Business Machines Corporation Message passing module in hybrid computing system starting and sending operation information to service program for accelerator to execute application program
US8230442B2 (en) 2008-09-05 2012-07-24 International Business Machines Corporation Executing an accelerator application program in a hybrid computing environment
US8527734B2 (en) * 2009-01-23 2013-09-03 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a watch list of currently registered virtual addresses by an operating system
US9286232B2 (en) 2009-01-26 2016-03-15 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a cache of ranges of currently registered virtual addresses
US8843880B2 (en) 2009-01-27 2014-09-23 International Business Machines Corporation Software development for a hybrid computing environment
US8255909B2 (en) 2009-01-28 2012-08-28 International Business Machines Corporation Synchronizing access to resources in a hybrid computing environment
US9170864B2 (en) 2009-01-29 2015-10-27 International Business Machines Corporation Data processing in a hybrid computing environment
US8001206B2 (en) 2009-01-29 2011-08-16 International Business Machines Corporation Broadcasting data in a hybrid computing environment
US8010718B2 (en) 2009-02-03 2011-08-30 International Business Machines Corporation Direct memory access in a hybrid computing environment
US8386757B1 (en) * 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
US8037217B2 (en) 2009-04-23 2011-10-11 International Business Machines Corporation Direct memory access in a hybrid computing environment
US8180972B2 (en) 2009-08-07 2012-05-15 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment by maintaining remote memory values locally
US9417905B2 (en) 2010-02-03 2016-08-16 International Business Machines Corporation Terminating an accelerator application program in a hybrid computing environment
US9058191B2 (en) * 2010-03-22 2015-06-16 Qualcomm Incorporated Direct transfer of executable software image to memory allocated by target processor based on transferred image header
US8838949B2 (en) * 2010-03-22 2014-09-16 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
US8578132B2 (en) 2010-03-29 2013-11-05 International Business Machines Corporation Direct injection of data to be transferred in a hybrid computing environment
US20120102314A1 (en) * 2010-04-01 2012-04-26 Huizhou TCL Mobile Communications Co., Ltd. Smart phone system and booting method thereof
US9015443B2 (en) 2010-04-30 2015-04-21 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment
KR101863250B1 (ko) * 2012-02-17 2018-06-04 인포뱅크 주식회사 프로그램 실행 방법 및 장치와 이를 위한 기록매체
US8615766B2 (en) 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
CN102929719B (zh) * 2012-09-18 2015-09-02 中标软件有限公司 一种多核计算机上多操作系统的控制方法及多核计算机
CN105144185B (zh) 2013-04-23 2018-06-05 惠普发展公司,有限责任合伙企业 验证控制器代码和系统启动代码
CN105308609B (zh) * 2013-04-23 2017-12-29 惠普发展公司,有限责任合伙企业 存储事件数据的系统和方法
CN104199702A (zh) * 2014-09-08 2014-12-10 吴健辉 一种软件版本加载方法
TWI551479B (zh) * 2014-12-31 2016-10-01 橙的電子股份有限公司 內置啓動裝載器之胎壓偵測系統及其更新方法
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
GB2597082B (en) * 2020-07-14 2022-10-12 Graphcore Ltd Hardware autoloader
CN113094111B (zh) * 2021-04-16 2024-01-09 三星(中国)半导体有限公司 设备以及设备的启动方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3639571A1 (de) * 1986-11-20 1988-06-01 Standard Elektrik Lorenz Ag Verfahren und schaltungsanordnung zum urladen eines zweitrechners
US5155833A (en) * 1987-05-11 1992-10-13 At&T Bell Laboratories Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory
US5068780A (en) * 1989-08-01 1991-11-26 Digital Equipment Corporation Method and apparatus for controlling initiation of bootstrap loading of an operating system in a computer system having first and second discrete computing zones
US5799186A (en) * 1990-12-20 1998-08-25 Eastman Kodak Company Method and apparatus for programming a peripheral processor with a serial output memory device
KR970002882B1 (ko) * 1992-06-11 1997-03-12 엘지전보통신 주식회사 다중 프로세서 시스템의 부트 스트랩 프로그램 로딩 방법 및 장치
US6438683B1 (en) * 1992-07-28 2002-08-20 Eastman Kodak Company Technique using FIFO memory for booting a programmable microprocessor from a host computer
US5347514A (en) * 1993-03-26 1994-09-13 International Business Machines Corporation Processor-based smart packet memory interface
US5652886A (en) * 1994-10-03 1997-07-29 United Technologies Corporation System for loading a boot program into an initially blank programmable memory of a microprocessor using state machine and serial bus
US5754863A (en) * 1995-01-20 1998-05-19 Redcom Laboratories, Inc. System for downloading program code to a microprocessor operative as a slave to a master microprocessor
US5696949A (en) * 1995-06-15 1997-12-09 Intel Corporation System for PCI slots expansion using asynchronous PCI-to-PCI bridge with clock generator for providing clock signal to the expansion mother board and expansion side of bridge
US6058474A (en) * 1997-01-24 2000-05-02 Texas Instruments Incorporated Method and apparatus for DMA boot loading a microprocessor without an internal ROM
US6684397B1 (en) * 1997-09-08 2004-01-27 Novell, Inc. Auto-install apparatus and method
US5944820A (en) * 1997-10-15 1999-08-31 Dell U.S.A., L.P. Modifiable partition boot record for a computer memory device
US6012142A (en) * 1997-11-14 2000-01-04 Cirrus Logic, Inc. Methods for booting a multiprocessor system
JP2000242612A (ja) * 1999-02-25 2000-09-08 Sega Enterp Ltd メモリ及びバスを共有化したシステム
US6490722B1 (en) * 1999-03-30 2002-12-03 Tivo Inc. Software installation and recovery system
WO2001027753A2 (en) 1999-10-12 2001-04-19 Scientific-Atlanta, Inc. Method and apparatus for loading software into a plurality of processors
US6601167B1 (en) * 2000-01-14 2003-07-29 Advanced Micro Devices, Inc. Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program
US6760785B1 (en) * 2000-03-29 2004-07-06 Unisys Corporation Method, apparatus, and computer program product for establishing communications between an adapter card and a host processor running in a bios supported environment
GB0009945D0 (en) * 2000-04-20 2000-06-07 Sgs Thomson Microelectronics Debugging device nad method
US6691216B2 (en) * 2000-11-08 2004-02-10 Texas Instruments Incorporated Shared program memory for use in multicore DSP devices
US6810478B1 (en) * 2000-12-12 2004-10-26 International Business Machines Corporation System for remote booting of muntliple operating systems using chained bootstrap mechanism in a network
US6813522B1 (en) * 2000-12-29 2004-11-02 Emc Corporation Method of sharing memory in a multi-processor system including a cloning of code and data
US20020138156A1 (en) * 2001-01-25 2002-09-26 Wong Isaac H. System of connecting multiple processors in cascade
US7032106B2 (en) * 2001-12-27 2006-04-18 Computer Network Technology Corporation Method and apparatus for booting a microprocessor
KR100469669B1 (ko) * 2002-09-24 2005-02-02 삼성전자주식회사 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법
US20040088697A1 (en) * 2002-10-31 2004-05-06 Schwartz Jeffrey D. Software loading system and method
US7100038B2 (en) 2003-03-13 2006-08-29 Sun Microsystems, Inc. System and method for device parameter persistence
JP4349837B2 (ja) * 2003-04-24 2009-10-21 富士通株式会社 情報処理システム
CN1301473C (zh) * 2003-09-17 2007-02-21 中兴通讯股份有限公司 多处理器系统共享引导模块的方法
CN1277224C (zh) * 2003-10-20 2006-09-27 中兴通讯股份有限公司 嵌入式系统中主从式多处理器的引导方法

Also Published As

Publication number Publication date
PL1844394T3 (pl) 2017-12-29
CN101107592A (zh) 2008-01-16
KR101255382B1 (ko) 2013-04-17
US7356680B2 (en) 2008-04-08
EP3270285A1 (en) 2018-01-17
WO2006077068A3 (en) 2006-11-02
EP3270285B1 (en) 2019-03-20
WO2006077068A2 (en) 2006-07-27
CN100580628C (zh) 2010-01-13
EP1844394A2 (en) 2007-10-17
US20060168435A1 (en) 2006-07-27
EP1844394B1 (en) 2017-07-26
KR20070097538A (ko) 2007-10-04

Similar Documents

Publication Publication Date Title
ES2642320T3 (es) Cargador de arranque de sistema operativo fácil de usar
ES2699712T3 (es) Inicialización de un sistema operativo en etapas discretas
ES2332939T3 (es) Procedimiento y sistema para preservar datos volcados en caso de caida del sistema operativo.
ES2602143T3 (es) Instantáneas de un volumen compartido con consistencia de aplicación
ES2371995T3 (es) Actualización del firmware de un dispositivo electrónico.
ES2866156T3 (es) Sistema informático, método para acceder a un terminal de interconexión de componentes periféricos exprés, y equipo
US20140331034A1 (en) Embedded system boot from a storage device
JP2007213292A (ja) マルチプロセッサシステム及びスレーブシステムの起動方法
JP2010541105A (ja) ファームウェアイメージの更新および管理
JP2004086912A (ja) ワーキングコンテキスト格納及び再格納装置、並びに方法
JP2017087773A (ja) 車載装置
CN105103142A (zh) 在计算节点中的代理之间共享固件
TWI289267B (en) Method, apparatus, system and machine-readable medium for dynamically managing components of applications
JP5328410B2 (ja) 被起動オペレーティングシステム(os)動作計算機、計算機のos起動方法およびos起動プログラム
JP2011227730A (ja) マイクロコンピュータ
JP6334831B2 (ja) Tigersharc dspブート管理チップおよび方法
US9934045B1 (en) Embedded system boot from a storage device
CN111124522B (zh) 一种微内核及宏内核混合的方法及系统
US20030018858A1 (en) Signal processing apparatus having a plurality of microcomputers and a shared ROM
TWI379234B (en) Motherboard, storage device and controller thereof and booting method
TWI716969B (zh) 經由資料塊段之復原影像下載技術
JP2001256055A (ja) プログラムダウンロード方式
JP2007265230A (ja) 情報処理装置及びそのファイル読み込み方法
JP5823000B2 (ja) マイクロコンピュータ
TW202213093A (zh) 基本輸入輸出系統選項修改方法、系統及裝置