ES2670810T3 - Procedimiento de inicio de chip, chip de procesador multinúcleo y medio de almacenamiento - Google Patents
Procedimiento de inicio de chip, chip de procesador multinúcleo y medio de almacenamiento Download PDFInfo
- Publication number
- ES2670810T3 ES2670810T3 ES14877078.7T ES14877078T ES2670810T3 ES 2670810 T3 ES2670810 T3 ES 2670810T3 ES 14877078 T ES14877078 T ES 14877078T ES 2670810 T3 ES2670810 T3 ES 2670810T3
- Authority
- ES
- Spain
- Prior art keywords
- processor
- program
- chip
- storage unit
- startup
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Un procedimiento de inicio de chip para uso en un chip de procesador que comprende al menos más de dos procesadores y más de dos unidades de almacenamiento, que comprende: definir una primera cola de prioridades de inicio de los más de dos procesadores, y definir una segunda cola de prioridades de inicio de cada una de las más de dos unidades de almacenamiento para cada procesador (101); y que además comprende: determinar, según la primera cola de prioridades, un primer procesador que se ha de iniciar y tiene una prioridad más alta (102); cargar sucesivamente, mediante el primer procesador, un programa de inicio a partir de cada unidad de almacenamiento según la segunda cola de prioridades correspondiente al primer procesador, y ejecutar el programa de inicio para llevar a cabo una operación de inicialización (102); finalizar la carga del programa del primer procesador cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleve a cabo con éxito, o la carga del programa de inicio a partir de todas las más de dos unidades de almacenamiento falle (103); e iniciar la carga del programa de un segundo procesador hasta que se complete la carga del programa de los más de dos procesadores (104).
Description
5
10
15
20
25
30
35
40
45
50
55
60
DESCRIPCION
Procedimiento de inicio de chip, chip de procesador multinúcleo y medio de almacenamiento CAMPO TÉCNICO
[0001] La descripción se refiere a la tecnología de diseño de chips de circuito integrado y, en particular, a un procedimiento de inicio de chip, un procesador multinúcleo y un medio de almacenamiento.
ANTECEDENTES
[0002] Diseñar el inicio de un chip es siempre una de las claves para diseñar el chip. Uno de los motivos principales por el cual muchos dispositivos fallan y se descartan es que el fallo en el inicio de un chip produce el fallo del propio chip y finalmente hace que se descarte el dispositivo entero. Cuando se inicia un chip, se requiere la implementación de algunas operaciones de inicialización y gestiones de configuración en el chip. Cuando el chip se encuentra en una escala pequeña, la inicialización y configuración del chip están directamente incluidas en un diseño de reinicio por reloj del chip. El proceso de la operación de reinicio por reloj se completa mientras el chip se pone en marcha, es decir, el proceso de inicio de chip se completa. Después de que se completa el reinicio por reloj, el chip puede funcionar normalmente.
[0003] A continuación, la escala de chip se extiende, por ejemplo, se añaden procesadores. La información de configuración sobre el inicio del chip por lo general se almacena en una Memoria de Solo Lectura (ROM, por su sigla en inglés) en chip; cuando el chip se está iniciando, se busca la información de configuración en la memoria ROM para llevar a cabo la configuración inicial del chip.
[0004] Con el aumento progresivo en la escala de los chips y la diversificación de los escenarios de aplicación del chip, el chip tiene cada vez más contenidos para inicializar, y los contenidos inicializados requieren actualización, por lo que muchos chips almacenan programas de inicio en un modo ROM + flash o en un modo flash directo. En estos dos modos, los programas de inicialización de gran volumen que pueden ser actualizados se almacenan en la memoria flash.
[0005] Posteriormente, la actualización presenta algunas dificultades en el modo flash, por lo que se proporcionan una serie de soluciones en la técnica relacionada para mejorar la potencia y conveniencia de actualizar los programas de inicialización. Las soluciones de mejora actuales para el inicio de chips se centran en la optimización del software, tal como copia de seguridad de datos y de salto, pero rara vez implican la estructura de hardware, y mucho menos el chip multinúcleo y multicanal actual. El chip multinúcleo y multicanal ampliamente utilizado tiene un requisito muy estricto en cuanto a calidad de canales en el proceso de inicio, si un canal flash presenta problemas, el inicio del chip fallará indefectiblemente, lo cual produce el fallo del chip entero.
[0006] La publicación internacional WO 01/27753 A2 describe un procedimiento y aparato para cargar software en una pluralidad de procesadores.
RESUMEN
[0007] Teniendo en cuenta lo antedicho, para resolver los problemas de la técnica anterior, las realizaciones de la descripción proporcionan un procedimiento de inicio de chip, un chip de procesador multinúcleo y un medio de almacenamiento, que pueden llevar a cabo una optimización estructural en un chip multinúcleo y multicanal, mejorando de este modo la potencia y rendimiento del chip.
[0008] Las soluciones técnicas de las realizaciones de la descripción se implementan como se indica a continuación.
[0009] Se proporciona un procedimiento de inicio de chip para uso en un chip de procesador multinúcleo; el procesador multinúcleo incluye al menos más de dos procesadores y más de dos unidades de almacenamiento; el procedimiento incluye: definir una primera cola de prioridades de inicio de más de dos procesadores, y definir una segunda cola de prioridades de inicio de cada una de las más de dos unidades de almacenamiento para cada procesador; el procedimiento además incluye que:
un primer procesador que se ha de iniciar y tiene la prioridad más alta se determine según la primera cola de prioridades;
el primer procesador sucesivamente cargue un programa de inicio a partir de cada unidad de almacenamiento según
2
5
10
15
20
25
30
35
40
45
50
55
60
la segunda cola de prioridades correspondiente al primer procesador, y ejecute el programa de inicio para llevar a cabo una operación de inicialización;
la carga del programa del primer procesador termine cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleve a cabo con éxito, o la carga del programa de inicio a partir de todas las más de dos unidades de almacenamiento falle; y
la carga del programa del segundo procesador se inicie hasta que se complete la carga del programa de los más de dos procesadores.
[0010] En una realización, el chip de procesador multinúcleo además puede incluir un controlador de arranque, y el procedimiento además puede incluir:
que el primer procesador envíe un mensaje de inicio con éxito al controlador de arranque cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleve a cabo con éxito; y
en consecuencia, el paso de que la carga del programa del segundo procesador se inicie incluye:
que el controlador de arranque determine el segundo procesador que se ha de iniciar y tiene una segunda prioridad más alta según la primera cola de prioridades cuando el mensaje sobre el inicio con éxito enviado por el primer procesador se reciba o se determine que el primer procesador falla al cargar el programa de inicio a partir de una unidad de almacenamiento con la prioridad más baja en la segunda cola de prioridades correspondiente al primer procesador.
[0011] En una realización, el chip de procesador multinúcleo además puede incluir un controlador de arranque;
en la presente memoria, el paso de que el primer procesador que se ha de iniciar y tiene la prioridad más alta se determine según la primera cola de prioridades puede incluir:
que el controlador de arranque determine el primer procesador según la primera cola de prioridades y determine, para el primer procesador, una unidad de almacenamiento actual a partir de la cual se ha de cargar el programa de inicio según la segunda cola de prioridades correspondiente al primer procesador; y
el paso de que el primer procesador sucesivamente cargue el programa de inicio a partir de cada unidad de almacenamiento según la segunda cola de prioridades correspondiente al primer procesador y ejecute el programa de inicio para llevar a cabo la operación de inicialización puede incluir los pasos que se indican a continuación;
el primer procesador carga el programa de inicio a partir de la unidad de almacenamiento actual;
cuando determina que la carga se ha llevado a cargo con éxito, el primer procesador ejecuta el programa de inicio para realizar la operación de inicialización;
cuando determina que la carga falla, el controlador de arranque determina para el primer procesador una próxima unidad de almacenamiento como unidad de almacenamiento actual a partir de la cual se ha de cargar el programa de inicio según la segunda cola de prioridades correspondiente al primer procesador; y
los pasos de cargar, ejecutar y determinar se repiten hasta que el primer procesador carga el programa de inicio a partir de la unidad de almacenamiento con la prioridad más baja en la segunda cola de prioridades correspondiente al primer procesador.
[0012] En una realización, la determinación de que la carga falla puede incluir:
cuando el programa de inicio se carga a partir de la unidad de almacenamiento actual, el primer procesador envía un mensaje de comienzo de inicio al controlador de arranque;
se mide el tiempo transcurrido a partir de la recepción del mensaje de comienzo de inicio; si el mensaje de inicio con éxito enviado por el primer procesador no se recibe cuando se excede un umbral de temporización, se determina que el primer procesador falla al cargar el programa de inicio a partir de la unidad de almacenamiento actual.
[0013] En una realización, el procedimiento además puede incluir:
5
10
15
20
25
30
35
40
45
50
55
60
un procesador que ajusta la frecuencia de un reloj del sistema más rápidamente se determina como el primer procesador con la prioridad más alta.
[0014] En una realización, el chip de procesador multinúcleo además puede incluir una unidad de Acceso Directo a Memoria (DMA, por su sigla en inglés) y una unidad de almacenamiento en chip, y el procedimiento además puede incluir:
cuando el primer procesador carga el programa de inicio con éxito y ejecuta el programa de inicio para llevar a cabo la operación de inicialización, la unidad de DMA mueve los programas de inicio de otros procesadores cuyas prioridades son más bajas que la del primer procesador a la unidad de almacenamiento en chip según la primera cola de prioridades.
En una realización, cuando el chip de procesador multinúcleo adopta una unidad de almacenamiento ROM y una unidad de almacenamiento de un canal flash, una primera unidad de almacenamiento del primer procesador puede incluir la unidad de almacenamiento ROM y la unidad de almacenamiento del canal flash;
el paso de que el programa de inicio se ejecute para llevar a cabo la operación de inicialización puede incluir:
que el primer procesador lea una primera parte del programa de inicio de la unidad de almacenamiento ROM y ejecute la primera parte del programa de inicio y lea, según una instrucción de salto al final de la primera parte del programa de inicio, una segunda parte del programa de inicio de la unidad de almacenamiento del canal flash y ejecute la segunda parte del programa de inicio.
[0015] En una realización, cuando el chip de procesador multinúcleo puede incluir un microcontrolador (MCU, por su sigla en inglés), una Unidad de Procesamiento Central (CPU, por su sigla en inglés) y un Procesador Digital de Señales (DSP, por su sigla en inglés), estos se clasifican en orden descendente de prioridad en la primera cola de prioridades como; MCU, CPU y DSP.
[0016] Se proporciona un chip de procesador multinúcleo, que incluye al menos: un controlador de arranque, más de dos procesadores y más de dos unidades de almacenamiento; el controlador de arranque está conectado de manera comunicativa con cada procesador, y los más de dos procesadores están conectados en secuencia según un orden definido de una primera cola de prioridades; el controlador de arranque está configurado para determinar un procesador actual según la primera cola de prioridades de inicio de los más de dos procesadores, y determinar, para el procesador actual, unidades de almacenamiento actuales a partir de las cuales se ha de cargar un programa de inicio según la segunda cola de prioridades correspondiente al procesador actual; el procesador actual está configurado para cargar el programa de inicio a partir de cada unidad de almacenamiento actual según la segunda cola de prioridades correspondiente al procesador actual y ejecutar el programa de inicio para llevar a cabo la operación de inicialización; el procesador actual además está configurado para salir de la carga del programa de inicio cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleve a cabo con éxito, o la carga del programa de inicio a partir de todas las más de dos unidades de almacenamiento falle.
[0017] En una realización, el chip de procesador multinúcleo además puede incluir una unidad de DMA;
la unidad de DMA está configurada para, cuando el procesador actual carga el programa de inicio con éxito y ejecuta el programa de inicio para llevar a cabo la operación de inicialización, mover los programas de inicio de otros procesadores cuyas prioridades son más bajas que la del procesador actual a la unidad de almacenamiento en chip según la primera cola de prioridades.
[0018] Se proporciona un medio de almacenamiento en ordenador que almacena una instrucción ejecutable por ordenador para llevar a cabo el procedimiento de inicio de chip antes mencionado.
[0019] En la realización de la descripción, la primera cola de prioridades se define para más de dos procesadores, y la segunda cola de prioridades de inicio de cada una de las más de dos unidades de almacenamiento se define para cada procesador; el primer procesador que se ha de iniciar y tiene la prioridad más alta se determina según la primera cola de prioridades; el primer procesador sucesivamente carga el programa de inicio a partir de cada unidad de almacenamiento según la segunda cola de prioridades correspondiente al primer procesador, y ejecuta el programa de inicio para llevar a cabo la operación de inicialización; la carga del programa del primer procesador termina cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleva a cabo con éxito, o cuando la carga del programa de inicio a partir de todas las más de dos unidades de almacenamiento falla; y la carga del programa del segundo procesador se inicia hasta que se completa la carga del programa de los más de dos procesadores; de esta forma, se puede llevar a cabo una optimización estructural en el chip multinúcleo y
4
5
10
15
20
25
30
35
40
45
50
55
60
multicanal, mejorando de este modo la potencia y el rendimiento del chip.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0020]
La Figura 1 es un diagrama de flujo de un procedimiento de inicio de chip según una realización de la descripción;
La Figura 2 es un diagrama de flujo de la Etapa 101 en una primera realización de la descripción;
La Figura 3 es un diagrama de estructura de un chip de procesador multinúcleo según una cuarta realización de la descripción;
La Figura 4 es un diagrama de flujo del inicio de un chip de procesador multinúcleo según una realización de la descripción; y
La Figura 5 es un diagrama esquemático de procesos de asignación de direcciones de distintos procesadores en un mismo canal según una realización de la descripción.
DESCRIPCIÓN DETALLADA
[0021] Las soluciones técnicas de la descripción se detallan a continuación en combinación con los dibujos que la acompañan y realizaciones específicas.
Realización 1
[0022] Un procedimiento de inicio de chip que se proporciona mediante una realización de la descripción se utiliza en un chip de procesador multinúcleo, en la presente memoria el chip de procesador multinúcleo incluye al menos más de dos procesadores y más de dos unidades de almacenamiento. La Figura 1 es un diagrama de flujo de un procedimiento de inicio de chip según una realización de la descripción; como se muestra en la Figura 1, el procedimiento de inicio de chip incluye las siguientes etapas:
Etapa 101: se define una primera cola de prioridades de inicio de los más de dos procesadores y se define una segunda cola de prioridades de inicio de cada una de las más de dos unidades de almacenamiento para cada procesador;
Etapa 102: un primer procesador que se ha de iniciar y tiene una prioridad más alta se determina según la primera cola de prioridades; el primer procesador sucesivamente carga un programa de inicio a partir de cada unidad de almacenamiento según la segunda cola de prioridades correspondiente al primer procesador, y ejecuta el programa de inicio para llevar a cabo una operación de inicialización;
Etapa 103: la carga del programa del primer procesador termina cuando la carga del programa de inicio a partir de cualquier unidad de almacenamiento en las más de dos unidades de almacenamiento se lleva a cabo con éxito, o la carga del programa de inicio a partir de todas las más de dos unidades de almacenamiento falla; y
Etapa 104: la carga del programa del segundo procesador se inicia hasta que se completa la carga del programa de los más de dos procesadores.
[0023] En la realización de la descripción, existen varios tipos de núcleos internos del chip de procesador multinúcleo existente, especialmente un chip de banda base de procesador multinúcleo, que principalmente incluye: un DSP intensivo informáticamente, y una CPU con control intensivo y un MCU de configuración de programación sencilla. La cantidad requerida de cada tipo de procesador varía según los distintos requisitos de escenarios de aplicación. Al mismo tiempo, debido a la diversidad de escenarios de aplicación del chip de procesador multinúcleo, existe una gran diversidad de canales para que el chip se comunique con el exterior, incluyendo un canal flash, un canal de Entrada/Salida Rápida en Serie (SRIO, por su sigla en inglés), un canal de Interfaz Independiente de Medios de Gigabits en Serie (SGMII), un canal de Bus Serie Universal (USB, por su sigla en inglés), un canal de Entrada/Salida de Propósito General (GPIO, por su sigla en inglés), etc.
[0024] Cuando el chip de procesador multinúcleo incluye cualquiera de dos o tres de los DSP, CPU y MCU, el MCU puede tener la prioridad más alta en la primera cola de prioridades, la CPU tiene la segunda prioridad más alta, y el DSP tiene la tercera prioridad más alta; la razón por la que el MCU se selecciona como el primer procesador es que el MCU puede cambiar la frecuencia dominante de un sistema para habilitar al sistema para que entre en un estado de procesamiento de alta velocidad en el menor tiempo posible de manera que se reduzca el tiempo que les lleva a otros procesadores iniciarse.
[0025] En la realización de la descripción, las unidades de almacenamiento incluyen unidades de almacenamiento
5
5
10
15
20
25
30
35
40
45
50
55
60
ROM en el chip, y un canal o canales externos. Cuando se define la segunda cola de prioridades, las unidades de almacenamiento ROM tienen la prioridad más alta; cuando el chip de procesador multinúcleo se comunica con el exterior mediante el canal flash, el canal SRIO, el canal SGMII, el canal USB y el canal GPIO, estos pueden definirse en orden descendente de prioridad en la segunda cola de prioridades como: canal flash, canal USB, canal SGMII, canal SRIO y canal GPIO.
[0026] En la realización de la descripción, el procedimiento además incluye: que el primer procesador envíe un mensaje de inicio con éxito a un controlador de arranque cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleve a cabo con éxito;
en consecuencia, el paso de que la carga del programa del segundo procesador se inicie incluye:
que el controlador de arranque determine el segundo procesador que se ha de iniciar y tiene una segunda prioridad más alta según la primera cola de prioridades cuando se reciba el mensaje sobre el inicio con éxito enviado por el primer procesador o se determine que el primer procesador falla al cargar el programa de inicio a partir de la unidad de almacenamiento con la prioridad más baja en la segunda cola de prioridades correspondiente al primer procesador.
[0027] En la realización de la descripción, el chip de procesador multinúcleo también incluye una unidad de DMA y una unidad de almacenamiento en chip. El procedimiento además incluye: cuando el primer procesador carga el programa de inicio con éxito y ejecuta el programa de inicio para llevar a cabo la operación de inicialización, la unidad de DMA mueve programas de inicio de otros procesadores cuyas prioridades son más bajas que la del primer procesador a la unidad de almacenamiento en chip según la primera cola de prioridades.
[0028] En la realización de la descripción, cuando el chip de procesador multinúcleo adopta una unidad de almacenamiento ROM y una unidad de almacenamiento de un canal flash, la primera unidad de almacenamiento del primer procesador incluye la unidad de almacenamiento ROM y la unidad de almacenamiento del canal flash; la etapa de que el programa de inicio se ejecute para llevar a cabo la operación de inicialización incluye: que el primer procesador lea una primera parte del programa de inicio de la unidad de almacenamiento ROM y ejecute la primera parte del programa de inicio, y lea, según una instrucción de salto al final de la primera parte del programa de inicio, una segunda parte del programa de inicio de la unidad de almacenamiento del canal flash y ejecute la segunda parte del programa de inicio.
[0029] Al combinar las características de los procesadores en el chip de procesador multinúcleo y la diversidad de interfaces para que el chip se comunique con el exterior, un procedimiento de inicio de chip proporcionado por la realización de la descripción asegura la potencia del inicio del chip, reduce la probabilidad sin conexión de una red inalámbrica y mejora la calidad de la seguridad en la comunicación monitorizando y programando el inicio.
Realización 2
[0030] Basándose en el procedimiento de inicio de chip proporcionado por la realización 1 de la descripción, en la presente realización de la descripción, el chip de procesador multinúcleo también incluye un controlador de arranque. La Figura 2 es un diagrama de flujo de la Etapa 101 en la realización 1 de la descripción; como se muestra en la Figura 2, la Etapa 101 incluye las siguientes etapas:
Etapa 201: el controlador de arranque determina el primer procesador según la primera cola de prioridades y determina, para el primer procesador, una unidad de almacenamiento actual a partir de la cual se ha de cargar el programa de inicio según la segunda cola de prioridades correspondiente al primer procesador;
Etapa 202: el primer procesador carga el programa de inicio a partir de la unidad de almacenamiento actual;
Etapa 203: cuando determina que la carga se produce con éxito, el primer procesador ejecuta el programa de inicio para llevar a cabo la operación de inicialización; cuando determina que la carga falla, el controlador de arranque determina para el primer procesador una próxima unidad de almacenamiento como unidad de almacenamiento actual a partir de la cual se ha de cargar el programa de inicio según la segunda cola de prioridades correspondiente al primer procesador; y
Etapa 204: los pasos de cargar, ejecutar y determinar se repiten hasta que el primer procesador carga el programa de inicio a partir de la unidad de almacenamiento con una prioridad más baja en la segunda cola de prioridades correspondiente al primer procesador.
[0031] En la realización de la descripción, el controlador de arranque puede determinar que la carga falla según un
6
5
10
15
20
25
30
35
40
45
50
55
60
mensaje acerca del fallo de carga que se envía desde el primer procesador. En este modo, puesto que el procesador puede estar en un estado incontrolable cuando la carga falla, es probable que el controlador de arranque no determine que el primer procesador falla al cargar debido a la posibilidad de no recibir el mensaje acerca del fallo en la carga.
[0032] En la realización de la descripción, la determinación de que la carga falla se puede implementar mediante las siguientes etapas:
cuando el programa de inicio se carga a partir de la unidad de almacenamiento actual, el primer procesador envía un mensaje de comienzo de inicio al controlador de arranque;
se mide el tiempo transcurrido a partir de la recepción del mensaje de comienzo de inicio; si el mensaje de inicio con éxito enviado por el primer procesador no se recibe cuando se excede un umbral de temporización, se determina que el primer procesador falla al cargar el programa de inicio a partir de la unidad de almacenamiento actual.
[0033] Este modo puede evitar el caso del modo anterior en el cual es imposible determinar que el primer procesador falla al cargar debido a la no recepción del mensaje acerca del fallo al cargar, mejorando de este modo la precisión.
[0034] En la realización de la descripción, puede haber uno o más procesadores del mismo tipo, dependiendo de los distintos escenarios de aplicación; cuando existen varios procesadores del mismo tipo, p. ej. la CPU, en el chip, también es necesario definir el orden de prioridades para estas CPU.
Realización 3
[0035] Basándose en las realizaciones 1 y 2, una realización de la descripción además proporciona un chip de procesador multinúcleo, que incluye al menos un controlador de arranque, más de dos procesadores y más de dos unidades de almacenamiento; específicamente, el controlador de arranque está conectado de manera comunicativa con cada procesador; los más de dos procesadores están conectados en secuencia según el orden definido de la primera cola de prioridades;
el controlador de arranque está configurado para determinar un procesador actual según la primera cola de prioridades de inicio de los más de dos procesadores, y determinar, para el procesador actual, unidades de almacenamiento actuales a partir de las cuales se ha de cargar un programa de inicio según la segunda cola de prioridades correspondiente al procesador actual;
el procesador actual está configurado para cargar el programa de inicio a partir de cada unidad de almacenamiento actual según la segunda cola de prioridades correspondiente al procesador actual y ejecutar el programa de inicio para llevar a cabo la operación de inicialización; el procesador actual además está configurado para salir de la carga del programa de inicio cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleve a cabo con éxito, o la carga del programa de inicio a partir de todas las más de dos unidades de almacenamiento falle.
[0036] En la realización de la descripción, el chip de procesador multinúcleo además incluye una unidad de DMA; la unidad de DMA está configurada para, cuando el procesador actual carga el programa de inicio con éxito y ejecuta el programa de inicio para llevar a cabo la operación de inicialización, mover los programas de inicio de otros procesadores cuyas prioridades son más bajas que la del procesador actual a la unidad de almacenamiento en chip según la primera cola de prioridades.
Realización 4
[0037] Basándose en la realización 3, la Figura 3 es un diagrama de estructura de un chip de procesador multinúcleo según la realización 4 de la descripción; como se muestra en la Figura 3, el chip de procesador multinúcleo adopta una estructura de bus. El chip incluye un controlador de arranque (301), y el controlador de arranque está conectado con tres tipos de procesadores, a saber, una CPU (303), un mCu (302) y un DSP (304). Para una mejor descripción, solo hay un procesador del mismo tipo; los tres procesadores están conectados en secuencia según el orden definido de la primera cola de prioridades, y cada procesador está conectado con una unidad de DMA (312) para iniciarse. Excepto la ROM interna (305) y la Memoria de Acceso Aleatorio (RAM, por su sigla en inglés) interna (313), el chip también incluye canales para comunicarse con el exterior que incluyen un canal flash (306), un canal USB (307), un canal SGMII (308), un canal SRIO (309), y un canal GPIO (310);
el controlador de arranque (301) está configurado para monitorizar el proceso de inicio de cada procesador. Se definen un temporizador y un umbral de temporización correspondientes para cada procesador. Cuando el
7
5
10
15
20
25
30
35
40
45
50
55
60
procesador correspondiente comienza a llevar a cabo una operación de inicio, el temporizador empieza a medir el tiempo transcurrido a partir de entonces; si el procesador correspondiente no proporciona información de feedback acerca del éxito del inicio al controlador de arranque cuando el valor de temporización alcanza el umbral de temporización correspondiente, el controlador de arranque determina que el procesador falla al iniciarse; entonces es posible reiniciar todos los procesadores y llevar a cabo una configuración de asignación de direcciones en un canal bus.
[0038] El MCU (302) puede programar algunas tareas de baja complejidad informática y de control. En la presente realización, el MCU (302) se inicia como el primer procesador. La CPU (303) puede realizar algunas operaciones universales y llevar a cabo un control complejo de las mismas. La prioridad de la CPU (303) es más baja que la del MCU (402). El DSP (304) puede procesar algunos programas de operaciones especiales intensivas informáticamente. La prioridad del DsP (304) es más baja que la de la CPU (303).
[0039] La unidad de almacenamiento ROM (305) está configurada para almacenar una primera parte del programa de inicio para que el primer procesador lleve a cabo una configuración básica en el momento del inicio; la unidad de almacenamiento del canal flash (306) está configurada para almacenar una segunda parte del programa de inicio del primer procesador, todos los programas de inicio de otros procesadores, software de sistema, aplicaciones informáticas, y otros programas y datos. La unidad de almacenamiento del canal USB (307) está configurada para almacenar programas de inicio de seguridad de todos los procesadores centrales para actualizar programas. El canal SGMII (308) está configurado para conectar con una unidad de control principal del sistema y su red central para establecer comunicación de datos hasta que el sistema se inicie en línea. El canal SRIO (309) está configurado para establecer comunicación interactiva con otros chips y apoyar el inicio del chip mediante otros chips. El canal GPIO (310) puede apoyar el inicio del chip desde el exterior y está configurado para comunicarse con el exterior a baja velocidad.
[0040] Una unidad de gestión de asignación de canales (asignación) (311) está configurada para gestionar conmutación de canales, y cambiar la conexión de canal según la primera cola de prioridades y la segunda cola de prioridades definidas por el controlador de arranque (301) para hacer que el procesador correspondiente se inicie en el canal específico. La unidad de DMA (312) está configurada para mover datos y programas y puede mejorar la velocidad de carga de programa en el proceso de inicio del sistema. La RAM (313) está configurada para almacenar el programa de inicio cargado desde el exterior; un software puede leer el programa de inicio directamente de la RAM.
Realización 5
[0041] Basándose en las realizaciones 1 a 4, el procedimiento para iniciar el chip de procesador multinúcleo proporcionado por la presente realización de la descripción está elaborado tomando, a modo de ejemplo, un chip de procesador multinúcleo que incluye un MCU, una CPU y un DSP, en los cuales excepto una ROM interna, el chip se comunica con el exterior mediante un canal flash, un canal SRIO, un canal SGMII, un canal USB y un canal GPIOM; y el procedimiento incluye las siguientes etapas.
[0042] Etapa A1: se clasifican los procesadores multinúcleo en el chip; se define la primera cola de prioridades de inicio de los tres tipos de procesadores, y se define la segunda cola de prioridades de las unidades de almacenamiento correspondientes para cada procesador; en esta etapa, debido a que el MCU puede cambiar la frecuencia dominante del sistema para habilitar al sistema para que entre en el estado de procesamiento de alta velocidad en el menor tiempo posible de manera que se reduzca el tiempo que les lleva a otros procesadores iniciarse, el MCU se selecciona como el primer procesador; se define la prioridad más alta para el MCU. Por ende, el orden de la primera cola de prioridades es MCU, CPU y DSP.
[0043] Cuando el MCU se considera el primer procesador, el sistema permanece a una frecuencia elevada durante un periodo de tiempo prolongado en el proceso de inicio. Después de que se completa la carga del programa de inicio del MCU, el reloj del sistema puede aumentar de 100 MHz a 600 MHz, y la velocidad de carga del inicio del sistema puede incrementarse seis veces.
[0044] En esta etapa, el chip se comunica con el exterior mediante el canal flash, el canal SRIO, el canal SGMII, el canal USB, y el canal GPIO; para una mejor descripción, se define la misma segunda cola de prioridades para cada tipo de procesadores; la segunda cola de prioridades específica con un orden descendente de prioridad es: el canal flash, el canal USB, el canal GMII, el canal SRIO, y el canal GPIO.
[0045] Etapa A2: el controlador de arranque determina el primer procesador según la primera cola de prioridades, y determina la primera unidad de almacenamiento para el procesador actual según la segunda cola de prioridades; la primera unidad de almacenamiento del primer procesador incluye una unidad de almacenamiento ROM y una unidad
8
5
10
15
20
25
30
35
40
45
50
55
60
de almacenamiento de un canal flash.
[0046] En el proceso de inicio normal, el primer procesador lee una parte del programa de inicio de la ROM interna, y ejecuta la primera parte del programa de inicio para llevar a cabo la operación de inicialización. Cuando ejecuta la primera parte del programa de inicio, el primer procesador ajusta la frecuencia del reloj del sistema para hacer que el sistema entre en un estado de alta frecuencia. Hay una instrucción de salto al final de la primera parte del programa de inicio, por lo que el primer procesador carga una segunda parte del programa de inicio desde una interfaz flash según la instrucción de salto.
Cuando ejecuta la primera parte del programa de inicio o la segunda parte del programa de inicio para llevar a cabo la operación de inicialización, el primer procesador puede iniciar la unidad de DMA para mover los programas de inicio de otros núcleos fuera del chip a la unidad de almacenamiento en chip, es decir, RAM, de manera que se pueda reducir el tiempo que lleva cargar el programa durante el inicio de otros núcleos, y la configuración de lectura-escritura en chip pueda llevarse a cabo directamente.
[0047] Etapa A3: la unidad de DMA mueve los programas continuamente, al mismo tiempo, otros procesadores realizan una configuración de inicio. Finalmente, la unidad de DMA mueve todos los programas, y otros procesadores completan la configuración de inicio; de esta forma, el chip completa un conjunto entero de operaciones de inicio en un flujo normal.
[0048] Etapa A4: el controlador de arranque monitoriza el flujo de inicio en el proceso de inicio; cada procesador necesita enviar un mensaje de estado de inicio al controlador al comienzo del inicio y después de que el inicio se lleva a cabo con éxito. Si el controlador descubre que el inicio falla, el controlador cambia un canal de inicio del núcleo correspondiente.
[0049] En la presente memoria, el mensaje de estado de inicio incluye un mensaje de comienzo de carga que indica que el procesador comienza a cargar el programa de inicio, un mensaje de inicio con éxito que indica que el procesador se ha iniciado con éxito, y un mensaje de fallo en la carga que indica que el procesador falla al cargar el programa de inicio.
[0050] Cuando la carga se lleva a cabo con éxito, el procesador actual ejecuta el programa de inicio para realizar la operación de inicialización, y envía el mensaje de inicio con éxito al controlador de arranque;
cuando la carga falla, el controlador de arranque determina para el procesador actual una próxima unidad de almacenamiento como la unidad de almacenamiento actual según la segunda cola de prioridades, y envía un mensaje de fallo en el inicio al controlador de arranque cuando el procesador actual falla al cargar la última unidad de almacenamiento.
[0051] Etapa A5: cuando el procesador actual falla al iniciarse por primera vez, el controlador de arranque cambia el canal de inicio mediante la asignación, y una dirección de inicio inicial cambia de la ROM a una dirección correspondiente en el canal flash.
[0052] Si el procesador actual falla al iniciarse por segunda vez, el controlador de arranque cambia el canal de inicio mediante la asignación, y la dirección de inicio inicial cambia de la dirección correspondiente en el canal flash a una dirección en el canal USB.
[0053] Si el procesador actual falla al iniciarse por tercera vez, el controlador de arranque cambia el canal de inicio mediante la asignación, y la dirección de inicio inicial cambia de la dirección correspondiente en el canal USB a una dirección en el canal SGMII.
[0054] Si el procesador actual falla al iniciarse por cuarta vez, el controlador de arranque cambia el canal de inicio mediante la asignación, y la dirección de inicio inicial cambia de la dirección correspondiente en el canal SGMII a una dirección en el canal SRIO.
[0055] Si el procesador actual falla al iniciarse por quinta vez, el controlador de arranque cambia el canal de inicio mediante la asignación, y la dirección de inicio inicial cambia de la dirección correspondiente en el canal SRIO a una dirección en el canal GPIO.
[0056] En la presente memoria, el canal GPIO usa un modo de multiplexación de pines. Antes de iniciarse desde el canal GPIO, el controlador de arranque redefine pines, es decir, el controlador de arranque define una parte de pines utilizados cuando el sistema funciona normalmente como pines de inicio, y el programa de inicio se carga a través de
9
5
10
15
20
25
30
35
40
45
50
55
60
esta parte de pines. Después de que el inicio se lleva a cabo con éxito, el controlador de arranque libera esta parte de pines. La presente realización ahorra recursos de pin multiplexando los pines del canal GPIO, lo cual reduce el coste del chip.
[0057] Etapa A6: si el controlador de arranque todavía no puede recibir el mensaje de inicio con éxito después de que todos los canales del procesador actual se sondean una vez, el controlador selecciona, según las prioridades de los núcleos, un núcleo con la prioridad más alta entre el resto de núcleos como el nuevo núcleo actual; pasa a la Etapa A2 para llevar a cabo un nuevo inicio normal.
[0058] Etapa A7: si ninguno de los procesadores del sistema consigue iniciarse después de que todos los núcleos se sondean una vez, el chip de procesador multinúcleo será descartado y no se reutilizará. El chip puede entrar en un estado operativo, siempre que haya un procesador que pueda funcionar normalmente, y los otros procesadores que fallan al iniciarse normalmente pueden iniciarse nuevamente aplicando parches, actualizándose en línea y mediante otras formas siempre que no se produzca ningún problema en el hardware.
[0059] En la presente realización, las etapas A1 a A7 se pueden llevar a cabo en cualquier orden.
Realización 6
[0060] Basándose en la realización 4, la Figura 4 es un diagrama de flujo que muestra que un chip de procesador multinúcleo se inicia según una realización de la descripción; como se muestra en la Figura 4, el diagrama de flujo representa procedimientos de procesamiento cuando el chip se inicia normalmente según el flujo de inicio del chip y procedimientos de procesamiento con salto en casos anormales. El flujo incluye las siguientes etapas.
[0061] Etapa 401: cuando un chip de sistema se pone en marcha o se reinicia de manera externa, un controlador de arranque determina un primer procesador según la primera cola de prioridades, en la presente memoria el primer procesador se considera el procesador actual y determina una primera unidad de almacenamiento para el procesador actual según una segunda cola de prioridades, en la que la primera unidad de almacenamiento se considera la unidad de almacenamiento actual.
[0062] Etapa 402: el procesador actual lee una primera parte del programa de inicio desde una ROM en chip y realiza una configuración inicial.
[0063] Etapa 403: después de realizar la configuración de la primera parte del programa de inicio, el procesador actual salta a una primera dirección flash_dirección1 de un canal flash para cargar una segunda parte del programa de inicio; cuando la carga se lleva a cabo con éxito, pasa a la Etapa 404; o bien pasa a la Etapa 405.
[0064] Etapa 404: el procesador actual determina si la frecuencia dominante del sistema ha aumentado; si no es así, la configuración se lleva a cabo para aumentar la frecuencia dominante del sistema; si el controlador de arranque recibe el mensaje de inicio con éxito en el tiempo especificado, pasa a la Etapa 406.
[0065] Etapa 405: el procesador actual salta, según la indicación del controlador de arranque, a una segunda dirección flash_dirección2 del canal flash para cargar un programa de inicio de seguridad; si la carga se lleva a cabo con éxito, el mensaje de inicio con éxito se envía al controlador de arranque, y pasa a la Etapa 406; o el mensaje de fallo en la carga se envía al controlador de arranque, y luego el controlador de arranque realiza la configuración de asignación de direcciones para habilitar al procesador para que se inicie desde el canal USB.
[0066] Etapa 406: el controlador de arranque selecciona un núcleo con la prioridad más alta entre los núcleos que no se han iniciado como el procesador actual, y el núcleo lleva a cabo una nueva ronda de inicios; se llevan a cabo la Etapa 405 y las Etapas 407 a 410, y la Etapa 411 se lleva a cabo al final.
[0067] Etapa 407: el procesador actual carga el programa de inicio desde el canal USB; si la carga se lleva a cabo con éxito, el mensaje de inicio con éxito se envía al controlador de arranque, y se lleva a cabo la Etapa 406; o el mensaje de fallo en la carga se envía al controlador de arranque, y luego el controlador de arranque realiza la configuración de asignación de direcciones para habilitar al procesador para que se inicie desde el canal SGMII.
[0068] Etapa 408: el procesador actual carga el programa de inicio desde el canal SGMII; si la carga se lleva a cabo con éxito, el mensaje de inicio con éxito se envía al controlador de arranque, y pasa a la Etapa 406; o el mensaje de fallo en la carga se envía al controlador de arranque, y luego el controlador de arranque realiza la configuración de asignación de direcciones para habilitar al procesador para que se inicie desde el canal SRIO.
5
10
15
20
25
30
35
40
45
50
55
60
[0069] Etapa 409: el procesador actual carga el programa de inicio desde el canal SRIO; si la carga se lleva a cabo con éxito, el mensaje de inicio con éxito se envía al controlador de arranque, y pasa a la Etapa 406; o el mensaje de fallo en la carga se envía al controlador de arranque, y luego el controlador de arranque realiza la configuración de asignación de direcciones para habilitar al procesador para que se inicie desde el canal GPIO.
[0070] Etapa 410: el procesador actual carga el programa de inicio desde el canal GPIO; si la carga se lleva a cabo con éxito, los pines del canal GPIO se liberan, al mismo tiempo, el mensaje de inicio con éxito se envía al controlador de arranque, y se lleva a cabo la Etapa 406; o el mensaje de fallo en la carga se envía al controlador de arranque, y luego pasa a la Etapa 406.
[0071] Etapa 411: después de que todos los procesadores completan el flujo de inicio, el controlador de arranque resume información de estados acerca del inicio, y envía información de estados acerca del inicio con éxito o con fallos al exterior. En este momento termina el flujo de inicio.
[0072] En la presente realización, la Figura 5 es un diagrama esquemático de procesos de asignación de direcciones de distintos procesadores en el mismo canal según una realización de la descripción. Como se muestra en la Figura 5, puesto que los programas de inicio en el mismo canal de los procesadores multinúcleo en el chip se almacenan en distintas direcciones, las direcciones de inicio asignadas mediante la unidad de gestión de asignación de canales son diferentes. Cuando los programas de inicio se almacenan en un modo ROM + flash, para el primer procesador, hay dos direcciones de inicio en el canal flash; la primera dirección de inicio corresponde a la segunda parte del programa de inicio, y la segunda dirección de inicio corresponde al programa de inicio de seguridad.
[0073] En la realización de la descripción, las unidades de almacenamiento incluyen unidades de almacenamiento ROM en el chip y canal externo. Cuando se define la segunda cola de prioridades, la unidad de almacenamiento ROM tiene la prioridad más alta; cuando el chip de procesador multinúcleo se comunica con el exterior mediante el canal flash, el canal SRIO, el canal SGMII, el canal USB y el canal GPIO, se puede definir la segunda cola de prioridades en orden descendente de prioridad como: canal flash, canal USB, canal SGMII, canal SRIO y canal GPIO.
[0074] En la realización de la descripción, si el procedimiento de inicio de chip se implementa mediante módulos de función de software, y los módulos de función de software se venden o utilizan como productos independientes, también se pueden almacenar en un medio de almacenamiento legible por ordenador. En función de esta premisa, las soluciones técnicas en las realizaciones de la descripción que sustancialmente o en parte ofrecen una contribución a la técnica tradicional se pueden realizar en forma de producto de software; el producto de software informático se almacena en un medio de almacenamiento e incluye distintas instrucciones para que un dispositivo informático (que puede ser un ordenador personal, un servidor o un dispositivo de red, etc.) realice todo o parte del procedimiento en cada realización de la descripción. El medio de almacenamiento antes mencionado incluye: un disco de unidad flash USB, un disco duro externo, una ROM, un disco magnético o CD, y otros medios que pueden almacenar códigos de programa. De esta forma, la descripción no está limitada a cualquier combinación particular de hardware o software.
[0075] En consecuencia, la realización de la descripción también proporciona un medio de almacenamiento en ordenador, que almacena una instrucción ejecutable por ordenador, en el que la instrucción ejecutable por ordenador se utiliza para llevar a cabo el procedimiento de inicio de chip.
[0076] Las detalladas más arriba son únicamente las implementaciones preferidas de la descripción y no pretenden limitar el alcance de protección de la descripción; cualquier cambio o sustitución que se les pueda ocurrir fácilmente a los expertos en la materia en el alcance de las tecnologías descritas en la descripción quedarán comprendidos dentro del alcance de protección de la descripción. Por consiguiente, el alcance de protección de la descripción está sujeto al alcance de protección de las reivindicaciones.
APLICACIÓN INDUSTRIAL
[0077] En las realizaciones de la descripción, se define una primera cola de prioridades para un chip de procesador multinúcleo, a saber, un chip que incluye más de dos procesadores; se selecciona determinado procesador como el procesador de primer núcleo de inicio, y la prioridad del procesador de primer núcleo se define como la más alta; a continuación se define una cola de prioridades de inicio de cada unidad de almacenamiento para cada procesador; en el proceso de inicio, los procesadores se inician en orden descendente de prioridad, el programa de inicio se carga desde unidades de almacenamiento según un orden descendente de prioridad, y el programa de inicio se ejecuta para llevar a cabo la operación de inicialización; de esta forma, la optimización estructural se puede llevar a cabo en el chip multinúcleo y multicanal, evitando de este modo el fallo del chip producido por el fallo en el inicio y mejorando entonces la potencia y rendimiento del chip; además, aplicar estos chips a dispositivos puede evitar que los dispositivos se descarten debido al fallo en el inicio de los chips.
Claims (11)
- 51015202530354045505560REIVINDICACIONES1. Un procedimiento de inicio de chip para uso en un chip de procesador que comprende al menos más de dos procesadores y más de dos unidades de almacenamiento, que comprende: definir una primera cola de prioridades de inicio de los más de dos procesadores, y definir una segunda cola de prioridades de inicio de cada una de las más de dos unidades de almacenamiento para cada procesador (101); y que además comprende:determinar, según la primera cola de prioridades, un primer procesador que se ha de iniciar y tiene una prioridad más alta (102);cargar sucesivamente, mediante el primer procesador, un programa de inicio a partir de cada unidad de almacenamiento según la segunda cola de prioridades correspondiente al primer procesador, y ejecutar el programa de inicio para llevar a cabo una operación de inicialización (102);finalizar la carga del programa del primer procesador cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleve a cabo con éxito, o la carga del programa de inicio a partir de todas las más de dos unidades de almacenamiento falle (103); einiciar la carga del programa de un segundo procesador hasta que se complete la carga del programa de los más de dos procesadores (104).
- 2. El procedimiento según la reivindicación 1, en el que el chip de procesador multinúcleo además comprende un controlador de arranque, y el procedimiento además comprende:enviar, mediante el primer procesador, un mensaje de inicio con éxito al controlador de arranque cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento se lleve a cabo con éxito; y en el que iniciar la carga del programa del segundo procesador comprende:determinar, mediante el controlador de arranque, el segundo procesador que se ha de iniciar y tiene una segunda prioridad más alta según la primera cola de prioridades cuando se reciba el mensaje de inicio con éxito enviado por el primer procesador o se determine que el primer procesador falla al cargar el programa de inicio a partir de una unidad de almacenamiento con la prioridad más baja en la segunda cola de prioridades correspondiente al primer procesador.
- 3. El procedimiento según la reivindicación 1, en el que el chip de procesador multinúcleo además comprende un controlador de arranque;en el que determinar, según la primera cola de prioridades, el primer procesador que se ha de iniciar y que tiene la prioridad más alta comprende:que el controlador de arranque determine el primer procesador según la primera cola de prioridades, y determinar, para el primer procesador, una unidad de almacenamiento actual a partir de la cual se ha de cargar el programa de inicio según la segunda cola de prioridades correspondiente al primer procesador; yen el que la carga sucesiva, por parte del primer procesador, del programa de inicio a partir de cada unidad de almacenamiento según la segunda cola de prioridades correspondiente al primer procesador y la ejecución del programa de inicio para llevar a cabo la operación de inicialización comprenden las etapas de:carga, por parte el primer procesador, del programa de inicio a partir de la unidad de almacenamiento actual (202); cuando se determina que la carga se ha llevado a cabo con éxito, ejecución, por parte del primer procesador, del programa de inicio para llevar a cabo la operación de inicialización (203);cuando se determina que la carga falla, que el controlador de arranque determine para el primer procesador una próxima unidad de almacenamiento como unidad de almacenamiento actual a partir de la cual se ha de cargar el programa de inicio según la segunda cola de prioridades correspondiente al primer procesador; yque se repitan los pasos de cargar, ejecutar y determinar hasta que el primer procesador cargue el programa de inicio a partir de una unidad de almacenamiento con la prioridad más baja en la segunda cola de prioridades correspondiente al primer procesador (204).
- 4. El procedimiento según la reivindicación 3, en el que la determinación de que la carga falla comprende:1251015202530354045505560cuando el programa de inicio se carga a partir de la unidad de almacenamiento actual, que el primer procesador envíe un mensaje de comienzo de inicio al controlador de arranque;medir el tiempo transcurrido a partir de la recepción del mensaje de comienzo de inicio; si el mensaje de inicio con éxito enviado por el primer procesador no se recibe cuando se excede un umbral de temporización, determinar que el primer procesador falla al cargar el programa de inicio a partir de la unidad de almacenamiento actual.
- 5. El procedimiento según la reivindicación 1, que además comprende:determinar un procesador que ajusta la frecuencia de un reloj del sistema más rápidamente como el primer procesador con la prioridad más alta.
- 6. El procedimiento según la reivindicación 1, en el que el chip de procesador multinúcleo además comprende una unidad de Acceso Directo a Memoria, DMA, y una unidad de almacenamiento en chip, y el procedimiento además comprende:cuando el primer procesador carga el programa de inicio con éxito y ejecuta el programa de inicio para llevar a cabo la operación de inicialización, que la unidad de DMA, según la primera cola de prioridades, mueva los programas de inicio de otros procesadores cuyas prioridades son más bajas que la del primer procesador a la unidad de almacenamiento en chip.
- 7. El procedimiento según cualquiera de las reivindicaciones 1 a 6, en el que cuando el chip de procesador multinúcleo adopta una unidad de almacenamiento de Memoria de Solo Lectura, ROM, y una unidad de almacenamiento de un canal flash, la primera unidad de almacenamiento del primer procesador comprende la unidad de almacenamiento ROM y la unidad de almacenamiento del canal flash; y en el que ejecutar el programa de inicio para llevar a cabo la operación de inicialización comprende:que el primer procesador lea una primera parte del programa de inicio de la unidad de almacenamiento ROM y ejecute la primera parte del programa de inicio y lea, según una instrucción de salto al final de la primera parte del programa de inicio, una segunda parte del programa de inicio de la unidad de almacenamiento del canal flash y ejecute la segunda parte del programa de inicio.
- 8. El procedimiento según cualquiera de las reivindicaciones 1 a 6, en el que cuando el chip de procesador multinúcleo comprende un microcontrolador, MCU, una Unidad de Procesamiento Central, CPU, y un Procesador Digital de Señales, DSP, estos se clasifican en orden descendente de prioridad en la primera cola de prioridades como: MCU, CPU y DSP.
- 9. Un chip de procesador multinúcleo, que comprende al menos un controlador de arranque (301), más de dos procesadores (302, 303, 304) y más de dos unidades de almacenamiento (305, 313), en el que el controlador de arranque está conectado de manera comunicativa con cada procesador, y los más de dos procesadores están conectados en secuencia según un orden definido de una primera cola de prioridades;el controlador de arranque (301) está configurado para determinar un procesador actual según la primera cola de prioridades de inicio de los más de dos procesadores (302, 303, 304), y determinar, para el procesador actual, unidades de almacenamiento actuales desde donde se ha de cargar un programa de inicio según una segunda cola de prioridades correspondiente al procesador actual;el procesador actual está configurado para cargar el programa de inicio a partir de cada unidad de almacenamiento actual según la segunda cola de prioridades correspondiente al procesador actual y ejecutar el programa de inicio para llevar a cabo una operación de inicialización; el procesador actual además está configurado para salir de la carga del programa de inicio cuando la carga del programa de inicio a partir de cualquiera de las más de dos unidades de almacenamiento (305, 313) se lleve a cabo con éxito, o la carga del programa de inicio a partir de todas las más de dos unidades de almacenamiento (305, 313) falle.
- 10. El chip de procesador multinúcleo según la reivindicación 9, en el que el chip de procesador multinúcleo además comprende una unidad de Acceso Directo a Memoria, DMA, (312); la unidad de DMA (312) está configurada para, cuando el procesador actual carga el programa de inicio con éxito y ejecuta el programa de inicio para llevar a cabo la operación de inicialización, mover los programas de inicio de otros procesadores cuyas prioridades son más bajas que la del procesador actual a una unidad de almacenamiento en chip según la primera cola de prioridades.
- 11. Un medio de almacenamiento en ordenador que tiene instrucciones ejecutables por ordenador almacenadas, que cuando se ejecutan mediante un chip de procesador multinúcleo hacen que el chip de procesador multinúcleo lleve a cabo un procedimiento de inicio de chip según cualquiera de las reivindicaciones 1 a 8.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201310749809 | 2013-12-30 | ||
| CN201310749809.XA CN104750510B (zh) | 2013-12-30 | 2013-12-30 | 一种芯片启动方法及多核处理器芯片 |
| PCT/CN2014/075294 WO2015100878A1 (zh) | 2013-12-30 | 2014-04-14 | 一种芯片启动方法及多核处理器芯片、存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2670810T3 true ES2670810T3 (es) | 2018-06-01 |
Family
ID=53493079
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES14877078.7T Active ES2670810T3 (es) | 2013-12-30 | 2014-04-14 | Procedimiento de inicio de chip, chip de procesador multinúcleo y medio de almacenamiento |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9928077B2 (es) |
| EP (1) | EP3091434B1 (es) |
| CN (1) | CN104750510B (es) |
| ES (1) | ES2670810T3 (es) |
| WO (1) | WO2015100878A1 (es) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2017119098A1 (ja) * | 2016-01-07 | 2017-07-13 | 株式会社日立製作所 | 計算機システム及び計算機の制御方法 |
| CN107656773B (zh) * | 2017-09-28 | 2021-06-25 | 中国人民解放军国防科技大学 | 一种多核dsp启动方法 |
| CN111381958B (zh) * | 2018-12-29 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 通信装置、神经网络处理芯片、组合装置和电子设备 |
| CN109800032B (zh) * | 2019-01-31 | 2022-03-25 | 深圳忆联信息系统有限公司 | Bootrom多核加载方法及装置 |
| CN112558507B (zh) * | 2019-09-25 | 2022-03-01 | 北京比特大陆科技有限公司 | 频率自适应方法和装置、数据处理设备、介质和产品 |
| CN110990328B (zh) * | 2019-10-23 | 2022-06-17 | 武汉光庭信息技术股份有限公司 | 一种TBox的双处理器间可靠通信的方法及系统 |
| CN113515312A (zh) * | 2020-03-25 | 2021-10-19 | 华为技术有限公司 | 芯片启动方法、装置及计算机设备 |
| CN113873190A (zh) * | 2020-06-30 | 2021-12-31 | Oppo广东移动通信有限公司 | 图像前处理芯片及电子设备 |
| EP3933574B1 (en) * | 2020-07-02 | 2023-08-30 | Axis AB | A method and a monitoring camera |
| CN112148374A (zh) * | 2020-08-20 | 2020-12-29 | 瑞芯微电子股份有限公司 | 一种SoC芯片启动顺序控制方法及系统 |
| CN113238805A (zh) * | 2021-05-18 | 2021-08-10 | 上海金卓科技有限公司 | 一种芯片系统和芯片系统的启动方法 |
| TWI777639B (zh) * | 2021-06-29 | 2022-09-11 | 大陸商星宸科技股份有限公司 | 雙處理器電子裝置及其運作方法 |
| CN114115025B (zh) * | 2021-11-24 | 2024-05-28 | 国汽智控(北京)科技有限公司 | 基于自动驾驶系统的故障信息的保存方法、装置和设备 |
| CN114327660B (zh) * | 2021-12-30 | 2024-01-30 | 浙江大立科技股份有限公司 | 基于fpga的外接内存的初始化方法 |
| CN115658183B (zh) * | 2022-12-26 | 2023-03-31 | 北京紫光芯能科技有限公司 | 用于控制mcu的方法及装置、电子设备、存储介质 |
| CN115827079B (zh) * | 2023-01-09 | 2023-07-28 | 深流微智能科技(深圳)有限公司 | 启动图形处理器的控制方法、控制装置和电子设备 |
| CN116755783B (zh) * | 2023-06-19 | 2024-04-09 | 合芯科技有限公司 | 一种多核芯片启动方法、控制器及系统 |
| CN116594953B (zh) * | 2023-07-18 | 2023-09-22 | 北京芯驰半导体科技有限公司 | 一种基于pcie互联的多核异构芯片、启动方法和系统 |
| CN117113362B (zh) * | 2023-10-19 | 2024-01-19 | 中电科申泰信息科技有限公司 | 一种多芯粒处理器的安全启动维护方法 |
| US12455788B1 (en) * | 2024-04-25 | 2025-10-28 | Dell Products L.P. | Managing onboarding failure for distributed systems |
| CN119829163B (zh) * | 2024-12-20 | 2025-10-28 | 太初(无锡)电子科技有限公司 | 高可靠性的芯片启动方法及芯片 |
Family Cites Families (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1168004C (zh) | 1989-05-17 | 2004-09-22 | 国际商业机器公司 | 在数据处理系统中提供容错环境和体系结构的装置 |
| US5325517A (en) | 1989-05-17 | 1994-06-28 | International Business Machines Corporation | Fault tolerant data processing system |
| US5283868A (en) | 1989-05-17 | 1994-02-01 | International Business Machines Corp. | Providing additional system characteristics to a data processing system through operations of an application program, transparently to the operating system |
| US5432939A (en) * | 1992-05-27 | 1995-07-11 | International Business Machines Corp. | Trusted personal computer system with management control over initial program loading |
| WO2001027753A2 (en) * | 1999-10-12 | 2001-04-19 | Scientific-Atlanta, Inc. | Method and apparatus for loading software into a plurality of processors |
| 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 |
| CN1296830C (zh) * | 2003-06-08 | 2007-01-24 | 华为技术有限公司 | 中央处理单元启动的方法及系统 |
| US7281116B2 (en) | 2004-07-30 | 2007-10-09 | Hewlett-Packard Development Company, L.P. | Multiprocessor system having plural memory locations for respectively storing TLB-shootdown data for plural processor nodes |
| US7711941B2 (en) * | 2006-12-19 | 2010-05-04 | Lsi Corporation | Method and apparatus for booting independent operating systems in a multi-processor core integrated circuit |
| CN101452437B (zh) * | 2007-12-03 | 2011-05-04 | 英业达股份有限公司 | 多处理器系统 |
| CN101751273B (zh) | 2008-12-15 | 2013-04-24 | 中国科学院声学研究所 | 用于嵌入式系统的安全引导装置及方法 |
| US8413122B2 (en) * | 2009-02-12 | 2013-04-02 | International Business Machines Corporation | System and method for demonstrating the correctness of an execution trace in concurrent processing environments |
| TWI387926B (zh) | 2009-07-10 | 2013-03-01 | Wistron Neweb Corp | 更新程式區段之方法 |
| US8656149B2 (en) | 2010-06-07 | 2014-02-18 | International Business Machies Corporation | Rapid activation of service management processor subsystem for server device |
| WO2011159263A1 (en) | 2010-06-15 | 2011-12-22 | The Thailand Research Fund | Embedded system providing bootloader selected execution of multiple independent modular programs |
| US20110320794A1 (en) | 2010-06-28 | 2011-12-29 | Chung-Jen Yang | Flash System And Method For Updating The Flash System |
| CN103207788A (zh) | 2012-01-13 | 2013-07-17 | 中兴通讯股份有限公司 | 一种版本启动方法和装置 |
| CN102707975A (zh) | 2012-05-15 | 2012-10-03 | 上海大雨电子技术有限公司 | 一种运行hdmi显示初始化代码的方法 |
| CN102722394B (zh) | 2012-06-08 | 2015-03-18 | 深圳路迪网络有限公司 | 一种嵌入式设备的启动升级方法 |
| CN102902556B (zh) | 2012-09-06 | 2016-06-01 | 深圳市共进电子股份有限公司 | 一种嵌入式设备的多级引导加载方法 |
| CN103019775B (zh) | 2012-11-28 | 2016-04-13 | 小米科技有限责任公司 | 一种终端设备刷机的方法、装置和设备 |
| EP2851807B1 (en) * | 2013-05-28 | 2017-09-20 | Huawei Technologies Co., Ltd. | Method and system for supporting resource isolation under multi-core architecture |
| CN103294511A (zh) | 2013-05-31 | 2013-09-11 | 哈尔滨工业大学 | 基于CAN总线的bootloader软件的升级方法 |
| US9658940B2 (en) * | 2015-03-19 | 2017-05-23 | International Business Machines Corporation | Method to efficiently implement synchronization using software managed address translation |
-
2013
- 2013-12-30 CN CN201310749809.XA patent/CN104750510B/zh active Active
-
2014
- 2014-04-14 US US15/108,351 patent/US9928077B2/en active Active
- 2014-04-14 ES ES14877078.7T patent/ES2670810T3/es active Active
- 2014-04-14 EP EP14877078.7A patent/EP3091434B1/en active Active
- 2014-04-14 WO PCT/CN2014/075294 patent/WO2015100878A1/zh not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| EP3091434B1 (en) | 2018-04-11 |
| CN104750510B (zh) | 2019-04-02 |
| US9928077B2 (en) | 2018-03-27 |
| US20160321082A1 (en) | 2016-11-03 |
| CN104750510A (zh) | 2015-07-01 |
| EP3091434A4 (en) | 2017-01-25 |
| WO2015100878A1 (zh) | 2015-07-09 |
| EP3091434A1 (en) | 2016-11-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3091434B1 (en) | Chip starting method, multi-core processor chip and storage medium | |
| US9720676B2 (en) | Implementing updates to source code executing on a plurality of compute nodes | |
| CN101271415B (zh) | 嵌入式设备中监控看门狗的实现方法 | |
| EP2783266B1 (en) | Microprocessor, and method of managing reset events therefor | |
| CN105359101B (zh) | 用于多核处理器的系统管理中断处理 | |
| EP3803663B1 (en) | Watchdog timer hierarchy | |
| EP3123339A1 (en) | Low-overhead detection of unauthorized memory modification using transactional memory | |
| US12271246B2 (en) | Out-of-band management of heterogeneous computing platforms in low-power states | |
| US12468376B2 (en) | Out-of-band networking for heterogeneous computing platforms in low-power states | |
| US20250047744A1 (en) | Message queuing telemetry transport (mqtt) for out-of-band manageability in heterogeneous computing platforms | |
| EP3274837A1 (en) | Shared resource access control method and apparatus | |
| US12373376B2 (en) | Wireless interface sharing for out-of-band processors in heterogeneous computing platforms | |
| US12314731B2 (en) | Kill pill management in heterogeneous computing platforms | |
| US12353274B2 (en) | Out-of-band (OOB) diagnostics in heterogeneous computing platforms | |
| US12373014B2 (en) | Power management of out-of-band (OOB) processors in heterogeneous computing platforms | |
| US12591293B2 (en) | Out-of-band management for waking of individual components in low power modes in a heterogeneous computing platform | |
| US20250007831A1 (en) | Routing of manageability data in heterogeneous computing platforms | |
| US11086658B2 (en) | System performance enhancement with SMI on multi-core systems | |
| US20250005158A1 (en) | Unified extensible firmware interface (uefi)-level processing of out-of-band commands in heterogeneous computing platforms | |
| CN103176930B (zh) | 一种基于标准PCIe上行端口的IO扩展架构方法 | |
| US12405746B2 (en) | Local storage access by out-of-band (OOB) processors in heterogeneous computing platforms | |
| US20250045218A1 (en) | Flash arbitration in heterogeneous computing platforms | |
| US20250007830A1 (en) | Manageability data handling for heterogeneous computing platforms | |
| US20250004539A1 (en) | Security architecture for out-of-band manageability in heterogeneous computing platforms | |
| US12375629B2 (en) | Video frame buffer capture in heterogeneous computing platforms |