ES2260474T3 - Procedimiento para la verificacion de un nucleo de ordenador de un microprocesador o de un micro controlador. - Google Patents
Procedimiento para la verificacion de un nucleo de ordenador de un microprocesador o de un micro controlador.Info
- Publication number
- ES2260474T3 ES2260474T3 ES02762230T ES02762230T ES2260474T3 ES 2260474 T3 ES2260474 T3 ES 2260474T3 ES 02762230 T ES02762230 T ES 02762230T ES 02762230 T ES02762230 T ES 02762230T ES 2260474 T3 ES2260474 T3 ES 2260474T3
- Authority
- ES
- Spain
- Prior art keywords
- computer
- core
- microprocessor
- automatic test
- verified
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
- Microcomputers (AREA)
Abstract
Procedimiento para la creación de una prueba automática (7) para la verificación de la función correcta de un núcleo de ordenador (36) de un microprocesador (30) o de un microcontrolador, en el que el núcleo del ordenador (36) comprende varias puertas con varios transistores, respectivamente, en el que durante una ejecución correcta de un programa de ordenador (3) en el microprocesador (30) o microcontrolador se ejecuta cíclicamente una prueba automática (7) y en el marco de la prueba automática (7) se verifica la función correcta de puertas del núcleo del ordenador, caracterizado porque se verifican al menos aquellas puertas del núcleo del ordenador (36), cuyo estado tiene repercusiones sobre la ejecución correcta del programa de ordenador (3) en el microprocesador (30) o microcontrolador, durante la ejecución de la prueba automática (7), y se crea en este caso la prueba automática (4), de tal manera que - se crea (11) un proyecto de la prueba automática (7) para el núcleo del ordenador (36); - se verifica si el estado de aquellas puertas del núcleo del ordenador (36), que no son verificadas por el proyecto de la prueba automática (7) durante una ejecución, tiene repercusiones sobre el desarrollo correcto del programa de ordenador (3) sobre el microprocesador (30) o microcontrolador (14); - en el caso de que el estado de al menos una puerta del núcleo del ordenador, que no es verificado por el proyecto de la prueba automática (7) durante una operación, tenga repercusiones sobre el desarrollo correcto del programa de ordenador (3) en el microprocesador (30) o microcontrolador, se crea la prueba automática (7) acabada, siendo ampliado el proyecto de la prueba automática (7) de tal forma que se verifican adicionalmente al menos aquellas puertas del núcleo del ordenador (36), que no han sido verificadas por el proyecto de la prueba automática (7) y cuyo estado tiene repercusiones sobre el desarrollo correcto del programa de ordenador (3) sobre el microprocesador (30) o microcontrolador, y - en el caso de que el estado de aquellas puertas del núcleo del ordenador (36), que no son verificadas por el proyecto de la prueba automática (7) durante una ejecución, no tenga repercusiones sobre el desarrollo correcto del programa de ordenador (3) en el microprocesador (30) o microcontrolador, se utiliza (20) el proyecto de la prueba automática (7) como prueba automática acabada (7).
Description
Procedimiento para la verificación de un núcleo
de ordenador de un microprocesador o de un microcontrolador.
La presente invención se refiere a un
procedimiento para la creación de una prueba automática para la
verificación de la función correcta de un núcleo de ordenador de un
microprocesador o de un microcontrolador. El núcleo de ordenador
comprende varias puertas con varios transistores, respectivamente.
En el procedimiento se lleva a cabo de forma cíclica una prueba
automática durante un ciclo correcto de un programa de ordenador en
el microprocesador o microcontrolador. En el marco de la prueba
automática se verifica la función correcta de las puertas del núcleo
de ordenador.
La invención se refiere, además, a una prueba
automática para la verificación de la función correcta de un núcleo
de ordenador de un microprocesador de un microcontrolador. El núcleo
de ordenador comprende varias puertas con varios transistores,
respectivamente. La prueba automática se puede llevar a cabo en
operaciones cíclicas durante un ciclo correcto de un programa de
ordenador en el microprocesador o en el microcontrolador. En este
caso, la prueba automática verifica la función correcta de las
puertas del núcleo del ordenador.
Por último, la presente invención se refiere a
un microprocesador o a un microcontrolador con un núcleo de
ordenador con varias puertas con varios transistores,
respectivamente. Sobre el núcleo del ordenador se puede llevar a
cabo una prueba automática para la verificación de la función
correcta del núcleo del ordenador. La prueba automática se puede
realizar durante un ciclo correcto de un programa de ordenador en el
microprocesador o microcontrolador en realizaciones cíclicas. En
este caso, la prueba automática verifica la función correcta de las
puertas del núcleo de ordenador.
La prueba automática de un núcleo de ordenador
se designa también como prueba automática incorporada (BIST). Se
conocen diferentes procedimientos de prueba automática a partir del
documento DE 43 05 288 A1 y a partir del Artículo "The
Fail-Stop Controller AE11" de Böhl, E. y col.,
International Test Conference, Paper 24.1, páginas 567 a 577,
0-7803-4209-7/97,
1997 IEEE. Se hace referencia expresa a estas publicaciones.
Por "ciclo correcto de un programa de
ordenador en el microprocesador o microcontrolador" se entiende
que se ejecuta, por ejemplo, en un microprocesador o un
microcontrolador de un aparato de control un programa de control, a
través del cual se desplaza el microprocesador o bien el aparato de
control, en general, ya a la posición para poder cumplir su función
de control. El núcleo del ordenador de un microprocesador o de un
microcontrolador se designa también como Unidad Central de
Procesamiento (CPU) o núcleo.
Se conoce a partir del campo de los aparatos de
control de automóviles, para la verificación de la función de un
núcleo de ordenador del aparato de control durante el funcionamiento
correcto del aparato de control, prever dos ordenadores con las
mismas potencias de cálculo. Esto se designa también como concepto
de ordenador redundante. En los dos ordenadores se ejecuta el
algoritmo de control o bien el algoritmo de regulación. Los
resultados del algoritmo de control o bien del algoritmo de
regulación de los dos ordenadores se comparan continuamente entre
sí. En el caso de desviaciones significativas de los resultados
entre sí, se parte de un error en uno de los dos ordenadores y se
desconecta todo el sistema con el fin de evitar un control o bien
una regulación erróneos.
No obstante, en este procedimiento conocido a
partir del estado de la técnica para la verificación de la función
correcta del núcleo del ordenador de un microprocesador o de un
microcontrolador de un aparato de control es un inconveniente que
los errores que aparecen ya durante el funcionamiento correcto del
aparato de control, es decir, durante el procesamiento de un
programa de control o bien de un programa de regulación, conducen a
una desconexión del aparato de control en un instante, en el que la
función de control o bien la función de regulación sería
especialmente importante. En el caso de una regulación de la
estabilidad para un automóvil, por ejemplo, se activa la regulación
cuando el vehículo amenaza con desviarse de la dirección. Cuando se
detecta un error del núcleo del ordenador del aparato de control en
una situación de este tipo y se desconecta el aparato de control y
de esta manera se inactiva la regulación, entonces esto puede
conducir a la desviación de la dirección del vehículo.
Para contrarrestar estos inconvenientes, ha sido
desarrollado un llamado concepto de ordenador de diversidad,
conocido, por ejemplo, a partir del documento DE 195 00 188 A1, en
el que el primer ordenador, el llamado ordenador de algoritmo,
tiene una potencia mayor que el segundo ordenador, el llamado
ordenador de monitor. En el ordenador de algoritmo se ejecuta el
algoritmo de control o bien de regulación propiamente dicho y
adicionalmente se ejecuta un cálculo de control. El cálculo de
control es ejecutado sobre el mismo microprocesador o
microcontrolador que el algoritmo de control o bien de regulación,
pero en diferentes divisiones de tiempo. En cada llamada del
cálculo de control se verifica una zona determinada, es decir, que
se verifican la función correcta de determinadas puertas del
ordenador de cálculo. Con el cálculo de control se pueden reconocer
errores del núcleo de cálculo del ordenador de algoritmo también
cuando éste no funciona de forma correcta, es decir, cuando no se
ejecuta ningún programa de control o bien ningún programa de
regulación. El cálculo de control se puede designar también como
una especie de prueba automática.
En el ordenador de monitor se ejecuta el mismo
cálculo de control. Los resultados de los cálculos de control se
comparan entre sí y en el caso de desviaciones significativas de los
resultados entre sí, se parte de un error en el núcleo del
ordenador del algoritmo y éste es desconectado, con el fin de evitar
un control o bien una regulación errónea. Con la ayuda del cálculo
de control se puede conseguir una cobertura de la prueba entre el
80% y 85% de todas las puertas del núcleo del ordenador del
algoritmo.
El 15% al 20% restante de las puertas del núcleo
del ordenador de algoritmo debe verificarse con respecto a la
función correcta como anteriormente con la ayuda de una modelación
del algoritmo de control o bien de regulación en el ordenador de
monitor y con la ayuda de una comparación del resultado modelado con
el resultado real del ordenador de algoritmo. Para este 15% al 20%
de las puertas del núcleo del ordenador existe, por lo tanto, como
anteriormente el problema descrito más arriba, en el sentido de que
los errores en determinadas circunstancias solamente pueden
aparecer y reconocerse en el caso de un funcionamiento correcto del
algoritmo, es decir, por ejemplo, durante la ejecución de un
programa de ordenador o bien de un programa de regulación. Además,
la modelación del algoritmo de control o bien del algoritmo de
regulación en el ordenador de monitor conduce a que en el caso de
una modificación del algoritmo de control o bien del algoritmo de
regulación propiamente dicho, deba modificarse también el modelo.
Por lo tanto, dos grupos de trabajo de desarrollos se dedican a
desarrollar, por una parte, el algoritmo de control o bien de
regulación propiamente dicho y, por otra parte, a desarrollar
adicionalmente el modelo. Esto significa un gasto de personal y de
costes considerable.
La presente invención se define en la
reivindicación 1.
La presente invención tiene el cometido de
verificar la función correcta de un núcleo de ordenador de un
microprocesador o de un microcontrolador, de tal forma que se evitan
los inconvenientes mencionados anteriormente. En particular, debe
poder detectarse precozmente la verificación de la función también
de aquellos errores que aparecen ya durante el primer
funcionamiento correcto del microprocesador o microcontrolador, y
debe poder prescindirse, a ser posible, de modelos para los
algoritmos de control o bien de regulación.
Para la solución de este cometido se propone,
partiendo del procedimiento del tipo mencionado al principio, que
al menos aquellas puertas del núcleo del ordenador, cuyo estado
tiene repercusiones sobre el ciclo correcto del programa de
ordenador, sean verificadas durante una ejecución de la prueba
automática y se cree en este caso la prueba automática, de tal forma
que
- -
- se crea un proyecto de la prueba automática para el núcleo del ordenador;
- -
- se verifica si el estado de aquellas puertas del núcleo del ordenador, que no son verificadas por el proyecto de la prueba automática durante una ejecución, tiene repercusiones sobre el desarrollo correcto del programa de ordenador sobre el microprocesador o microcontrolador;
- -
- en el caso de que el estado de al menos una puerta del núcleo del ordenador, que no es verificado por el proyecto de la prueba automática durante una operación, tenga repercusiones sobre el desarrollo correcto del programa de ordenador en el microprocesador o microcontrolador, se crea la prueba automática acabada, siendo ampliado el proyecto de la prueba automática de tal forma que se verifican adicionalmente al menos aquellas puertas del núcleo del ordenador, que no han sido verificadas por el proyecto de la prueba automática y cuyo estado tiene repercusiones sobre el desarrollo correcto del programa de ordenador sobre el microprocesador o microcontrolador, y
- -
- en el caso de que el estado de aquellas puertas del núcleo del ordenador, que no son verificadas por el proyecto de la prueba automática durante una ejecución, no tenga repercusiones sobre el desarrollo correcto del programa de ordenador en el microprocesador (30) o microcontrolador, se utiliza el proyecto de la prueba automática como prueba automática acabada.
De acuerdo con la invención, se ha reconocido
que en un núcleo de ordenador existen algunas puertas, cuyo estado
no repercute sobre un ciclo correcto de un programa de ordenador
sobre el microprocesador o microcontrolador. Por errores de estas
puertas, por ejemplo atasco en 0 o atasco en 1, no tienen ninguna
repercusión sobre el desarrollo del programa de ordenador y, por lo
tanto, sobre la función correcta del microprocesador o
microcontrolador. Se ha reconocido, además, que estas puertas no
tienen que ser verificadas por una prueba automática, para poder
asegurar una función correcta del microprocesa-
dor.
dor.
Es importante para la invención en primer lugar
determinar todas las puertas que no son abarcadas por la prueba
automática y verificar que el estado de estas puertas no es
relevante, es decir, que no tiene repercusiones sobre un desarrollo
correcto de un programa de ordenador determinado sobre el
microprocesador o microcontrolador. En efecto, de acuerdo con la
invención, no se consigue una cobertura de prueba completa de todas
las puertas del núcleo del ordenador, pero se verifican todas las
puertas relevantes. En la presente invención se puede prescindir de
un modelado del programa de ordenador, por ejemplo de algoritmos de
control o bien de regulación, para la verificación de las puertas
no cubiertas por la prueba automática, puesto que estas puertas no
tienen tampoco ninguna repercusión sobre el desarrollo correcto del
programa de ordenador.
De acuerdo con un desarrollo ventajoso de la
presente invención se propone que antes de la verificación de si el
estado de aquellas puertas del núcleo del ordenador, que no son
verificadas por el proyecto de la prueba automática durante una
ejecución, tiene repercusiones sobre el desarrollo correcto del
programa de ordenador sobre el microprocesador o microcontrolador,
se determina qué puertas del núcleo del ordenador no son
verificadas por el proyecto de la prueba automática durante una
ejecución.
De acuerdo con una forma de realización
preferida de la invención, se propone que la determinación de qué
puertas del núcleo del ordenador no son verificadas por el proyecto
de la prueba automática durante una ejecución, se lleve a cabo en
un emulador, en el que se reproduce al menos parcialmente la
estructura de las puertas del núcleo del ordenador.
De una manera más ventajosa, la verificación de
si el estado de aquellas puertas del núcleo del ordenador, que no
son verificadas por el proyecto de la prueba automática durante una
ejecución, tiene repercusiones sobre el desarrollo correcto del
programa de ordenador en el microprocesador o en el
microcontrolador, se lleva a cabo en un emulador, en el que está
reproducida al menos parcialmente la estructura de las puertas del
núcleo del ordena-
dor.
dor.
Otras características, posibilidades de
aplicación y ventajas de la invención se deducen a partir de la
descripción siguiente de ejemplos de realización de la invención,
que están representados en el dibujo. En este caso, todas las
características descritas o representadas, por sí o en combinación
discrecional, son objeto de la invención, de una manera
independiente de su redacción en las reivindicaciones de patente o
su referencia así como independientemente de su formulación o bien
representación en la descripción o bien en el dibujo. En este
caso:
La figura 1 muestra un concepto de ordenador de
diversidad para la realización de un procedimiento de acuerdo con
la invención para la verificación de la función correcta de un
microprocesador.
La figura 2 muestra un concepto de ordenador de
diversidad para la realización de un procedimiento conocido a
partir del estado de la técnica para la verificación de la función
correcta de un microprocesador.
La figura 3 muestra el diagrama de flujo del
procedimiento de acuerdo con la invención; y
La figura 4 muestra un microprocesador, en el
que se puede realizar una prueba automática creada de acuerdo con
el procedimiento de la invención.
En la figura 4 se designa un microprocesador de
acuerdo con la invención en su totalidad con el signo de referencia
30. A través de una conexión de transmisión de datos 35 adecuada,
el microprocesador 30 está conectado con una memoria principal 31 y
con una unidad de entrada/salida 32. La memoria principal 31 sirve
para la memorización de variables de cálculo y de programas de
ordenador. A través de la unidad de entrada/salida 32 se introducen
datos desde aparatos periféricos y se emiten a ellos.
El microprocesador 30 dispone de un núcleo de
ordenador 36, que se designa también como Unidad Central de
Procesamiento (CPU) o como núcleo. El microprocesador 30 comprende
un mecanismo de control 33 y un mecanismo de operación 34. El
mecanismo de control 33 asume el control del desarrollo dentro del
procesador 30 así como el control de la memoria principal 31 y de
la unidad de entrada/salida 32. Provoca la lectura de instrucciones
del programa de ordenador desde la memoria principal 31, las
interpreta y controla su ejecución. Los operandos a procesar son
leídos desde la memoria principal 31 o son introducidos a través de
la unidad de entrada/salida 32 en el mecanismo de operación 34 y los
resultados son escritos en la memoria principal 31 o son emitidos a
través de la unidad de entrada/salida 32. El mecanismo de operación
34 asume en este caso la memorización intermedia de los operandos y
de los resultados y ejecuta las operaciones lógicas y aritméticas
con estos operandos.
Además de la memoria principal externa 31, el
microprocesador 30 propiamente dicho posee algunas áreas de la
memoria. Algunas de ellas están previstas especialmente para ciclos
especiales dentro del procesador 30 y no están disponibles de forma
inmediata para la programación de máquinas o bien de ensambladores.
Otras se pueden seleccionar de forma explícita como células de
memoria de la memoria principal 31 y, por lo tanto, son
"visibles" para el programador.
El circuito del núcleo del ordenador 36 está
constituido principalmente por una pluralidad de transistores (no
se representan). Varios transistores se pueden agrupar en puertas.
Las salidas de las puertas son designadas como nudos. Un nudo se
puede describir como un punto del circuito del núcleo del ordenador
con un comportamiento unívoco en cada instante. Un núcleo de
ordenador comprende, por ejemplo, aproximadamente 100.000 puertas
con aproximadamente entre 10 y 100 transistores,
respectivamente.
Un microcontrolador, en el que se puede realizar
de la misma manera el procedimiento de acuerdo con la invención, se
conoce a partir del Artículo "The Fail-Stop
Controller AE11" de Böhl, E. y col., International Test
Conference, Paper 24.1, páginas 567 a 577,
0-7803-4209-7/97,
1997 IEEE. Se hace referencia expresamente a esta publicación.
En la figura 2 se representa un concepto de
ordenador de diversidad, como se conoce por ejemplo a partir del
documento DE 195 00 188 A1. Se hace referencia expresamente a esta
publicación. Este concepto de ordenador sirve para la realización
de un procedimiento conocido a partir del estado de la técnica para
la verificación de la función correcta de un núcleo de ordenador 36
de un microcontrolador 30 de un aparato de control de automóvil.
En el concepto de ordenador de diversidad están
previstos dos ordenadores. Un primer ordenador, el llamado
ordenador de algoritmo 1, tiene una potencia mayor que el segundo
ordenador, el llamado ordenador de monitor 2. En el ordenador de
algoritmo 1 se ejecuta un programa de ordenador con un algoritmo de
control o bien de regulación 3 propiamente dicho. Además, en el
ordenador de algoritmo se ejecuta un cálculo de control (CR) 4. En
el cálculo de control 4 se ejecutan en una extensión limitada unos
programas de prueba por el microprocesador 30 y se toman señales de
salida a través de la unidad de salida 32 y son evaluadas. El
cálculo de control 4 implementado como software como parte del
programa de ordenador 4 es ejecutado por el ordenador de algoritmo
1 en línea en divisiones de tiempo en paralelo a la ejecución del
algoritmo de control o bien de regulación propiamente dicho. En
cada llamada del cálculo de control 4 en una división de tiempo se
verifica una zona determinada, es decir, que se verifica la función
correcta de puertas determinadas, del núcleo de ordenador 36. Para
una ejecución completa del cálculo de control 4, éste es llamado en
varias divisiones de tiempo. Después de una ejecución del cálculo
de control no se verifican todas las puertas del núcleo del
ordenador 36. Habitualmente, en el cálculo de control se consigue
una cobertura de prueba entre el 80% y el 85% aproximadamente de
todas las puertas del núcleo del ordenador 36 del ordenador de
algoritmo 1.
En el ordenador de monitor 2 se ejecuta de la
misma manera un cálculo de control (CR) 5. En este caso, se
verifica la función correcta de puertas de un núcleo de ordenador 36
del ordenador modelo 2. Los resultados del cálculo de control 4
realizado en el ordenador de algoritmo 1 y del cálculo de control 5
realizado en el ordenador de modelo 2 se comparan entre sí. En el
caso de desviaciones significativas de los resultados entre sí, se
parte de un error en el núcleo del ordenador 36 del ordenador de
algoritmo 1 y éste es desconectado, con el fin de evitar un control
o regulación erróneos.
Con el cálculo de control se pueden reconocer
errores del núcleo del ordenador 36 del ordenador de algoritmo 1
también cuando éste no es accionado correctamente, es decir, cuando
no se ejecuta ningún programa de control o bien de regulación. El
cálculo de control se puede designar como una especie de prueba
automática.
El 15% a 20% restante de las puertas del núcleo
del ordenador 36 del ordenador de algoritmo 1, que no están
abarcadas por el cálculo de control, deben verificarse en cuanto a
la función correcta con la ayuda de un modelado 6 del programa de
ordenador, por ejemplo del algoritmo de control o bien de regulación
3, en el ordenador de monitor 2 o con la ayuda de una comparación
del resultado modelado del ordenador de monitor 2 con el resultado
real del ordenador de algoritmo 1. En el ordenador de monitor 3 se
reproduce el algoritmo de control o bien de regulación 3 en un
modelo 6. Los resultados del algoritmo de control o bien de
regulación 3 y del algoritmo de control o bien de regulación 6
modelado se comparan entre sí. En el caso de desviaciones
significativas de los resultados entre sí, se parte de un error en
el núcleo del ordenador 36 del ordenador de algoritmo 1 y éste es
desconectado. En efecto, de esta manera se pueden verificar los
errores de las puertas del microprocesador 30 no cubiertas por el
cálculo de control. No obstante, para este 15% a 20% de las puertas
del microprocesador 30 del ordenador de algoritmo 1 existe el
problema de que los errores, en determinadas circunstancias,
solamente aparecen y pueden ser reconocidos en el caso de un
funcionamiento correcto del microprocesador 30, es decir, en el
caso de la ejecución de un programa de control o bien de regulación.
Además, el modelado 6 del algoritmo de control o bien de regulación
en el ordenador de monitor 2 conduce a que en el caso de una
modificación del algoritmo de control o bien de regulación 3,
también debe modificarse el modelo 6. Por lo tanto, de acuerdo con
la invención, se propone el concepto de ordenador de diversidad
representado en la figura 1, en el que el cálculo de control
conocido ha sido ampliado con una prueba automática 7, 8 completa,
una llamada prueba automática incorporada (BIST). Como base de la
BIST 7 se puede recurrir a vectores de prueba utilizados por un
fabricante de semiconductores en el transcurso de la fabricación
del núcleo de ordenador 36. En el BIST 7 se ejecutan programas de
prueba por el ordenador de algoritmo 1 y lo resultados generados
son (signaturas) son tomados como señales de salida en salidas del
microprocesador 30 y son evaluados.
Para la evaluación de los resultados de prueba,
éstos son puestos a la disposición del ordenador de monitor 2 a
través de una interfaz de datos en serie. Allí se comparan entre sí
los resultados de prueba de la BIST 7 del ordenador de algoritmo 1
y de la BIST 8 del ordenador de monitor 2. En el caso de que se
detecte un error, se ejecuta una desconexión de seguridad de la
tensión de alimentación (reposición del hardware). En lugar de un
ordenador de monitor 2 separado, el segundo componente de ordenador
independientes podría estar integrado también con el ordenador de
algoritmo 1 como ASIC (Application Specific Integrated Circuit;
Circuito Integrado Específico de la Aplicación) en un módulo de
hardware común.
La BIST 7 implementada en cuanto al software
como parte del programa de ordenador que se ejecuta en el
microprocesador 30 se ejecuta por el ordenador de algoritmo 1 en
línea en divisiones de tiempo en paralelo a la ejecución del
algoritmo de control o bien de regulación 3 propiamente dicho. En
cada llamada de la BIST 7 en una división de tiempo se verifica una
zona determinada, es decir, que se verifica la función correcta de
determinadas puertas, del núcleo de ordenador 36. Para una ejecución
de la BIST 7, ésta debe ser llamada varias veces. Una ejecución de
la BIST fuera aproximadamente varios milisegundos (por ejemplo, 3
ms). Después de la ejecución de la BIST, se calcula una cobertura
de prueba entre aproximadamente 90% y 95% de todas las puertas del
núcleo de ordenador 36 del ordenador de algoritmo 1.
Para el 5% al 10% restante de las puertas, que
no están abarcadas por la BIST, se puede verificar a través de
simulación que el estado de estas puertas no tiene ninguna
repercusión sobre la ejecución correcta de un programa de ordenador
correcto, especialmente de un algoritmo de control o bien de
regulación, sobre el microprocesador 30. Para asegurar una función
correcta de este 5% a 10% de las puertas no tiene que emplearse,
por lo tanto, un modelo 6 del programa de ordenador -como e el
estado de la técnica-. Con el procedimiento según la invención se
puede conseguir una verificación de la función del microprocesador
30 de una manera independiente de la aplicación y al mismo tiempo
una verificación completa de todas las puertas relevantes del
núcleo de ordenador 36.
Para la realización del procedimiento de acuerdo
con la invención debe determinarse en primer lugar la función
correcta de las puertas del núcleo de ordenador 36 del ordenador de
algoritmo 1 que han sido verificadas por la BIST 7 o bien qué
puertas no han sido detectadas por la BIST 7. Para las puertas, que
no son detectadas por la BIST 7, debe determinarse entonces para un
programa de ordenador, que se ejecuta en el microordenador 30, si
el estado de estas puertas tiene repercusiones sobre la ejecución
correcta del programa de ordenador.
Ambos se pueden determinar por medio de un
ordenador de simulación, un llamado emulador de silicio. En el
ordenador de simulación se reproduce la estructura de las puertas
del núcleo del ordenador 36 en circuitos de puerta programables
(FPGA; Field Programmable Gate Arrays). El ordenador de simulación
se programa por medio de listas de redes, que proceden desde el
fabricante del núcleo del ordenador y que describen el
comportamiento del núcleo del ordenador 36. Los circuitos de
puertas se encuentran en una caja de emulación, que se controla y
se manda desde un ordenador, especialmente desde un puesto de
trabajo. La caja de emulación y el puesto de trabajo forman el
ordenador de simulación.
La actividad de la BIST es verificada a través
de un procedimiento para la simulación de errores. La simulación
proporciona, como variable porcentual, un índice para el grado de la
cobertura de errores. En el caso de la simulación de errores se
ejecuta, para el ensayo de instrucción el programa de ensayo de
instrucción con un modelo libre de errores y con un modelo afectado
de errores del núcleo de ordenador 36 del ordenador de algoritmo 1
en el ordenador de simulación. Cuando el programa de ensayo de
errores establece una desviación, se reconoce un error. La
totalidad de todos los programas de ensayo de instrucción forman la
BIST 7 del núcleo de ordenador 36. Cada error individual no
descubierto por la BIST es, en el desarrollo posterior, una variable
de entrada de una emulación de error que debe realizarse en la
etapa siguiente.
La emulación de error es ejecutada en el modelo
de puerta del ordenador de simulación, con el fin de determinar las
repercusiones del estado de una puerta sobre la ejecución correcta
del programa de ordenador. En virtud del hecho de que el emulador
de errores colabora con la periferia del ordenador de algoritmo 1,
se pueden determinar las repercusiones de los errores no
descubiertos a través de la BIST sobre el sistema general.
En el caso de que en el marco de la simulación
de errores y de la emulación de errores se descubra una puerta del
núcleo de ordenador 36 del ordenador de algoritmo 1, que no es
detectada, por una parte, por la BIST y que tiene, por otra parte,
repercusiones sobre la ejecución correcta del programa de ordenador,
se puede ampliar y modificar de una manera correspondiente la BIST,
de tal forma que también esta puerta sea detectada por la BIST. La
BIST 7 es ampliada, por lo tanto, en un proceso iterativo, hasta el
punto de que se reconocen todos los errores residuales críticos y
de esta manera se garantiza la seguridad del sistema.
En la figura 3 se representa un diagrama de
flujo de un procedimiento de acuerdo con la invención. El
procedimiento se inicia en un bloque funcional 10. En un bloque
funcional 11 se crea un proyecto de una BIST para el núcleo de
ordenador 36 del ordenador de algoritmo 1. Este proyecto se puede
crear de una manera independiente de un programa de ordenador (por
ejemplo, con un algoritmo de control o bien de regulación), que
debe ejecutarse posteriormente en el microprocesador. No obstante,
también es concebible que en el proyecto de la BIST se tenga en
cuenta ya el programa de ordenador, que debe ejecutarse
posteriormente en el microprocesador 30. La creación del proyecto
se lleva a cabo, en general, en el fabricante del núcleo del
ordenador 36.
En un bloque funcional 12 se ejecuta la
simulación de errores con el fin de determinar la actividad del
proyecto para en proyecto de la BIST, es decir, para determinar qué
puertas no son verificadas por el proyecto. Entonces se ejecuta en
un bloque funcional 13 la emulación de errores. La simulación de
errores y la emulación de errores son ejecutadas ambas en el
ordenador de simulación en al creador del programa de ordenador,
que se ejecuta en el microprocesador 30. En la emulación de errores
se determina en cada caso para una puerta, que no es verificada por
el proyecto de la BIST durante una ejecución, si el estado de la
puerta tiene repercusiones sobre la ejecución correcta del programa
de ordenador en el microprocesador 30. En caso afirmativo, se
deriva desde un bloque de consulta 14 hacia un bloque funcional 15,
donde la designación de la puerta actual es depositada en una
memoria de errores. No obstante, en el caso de que el estado de la
puerta considerada actualmente no tenga repercusiones sobre el
desarrollo del programa de ordenador, se deriva hacia otro bloque
de consulta 16, en el que se verifica si han sido verificadas todas
las puertas, que no son detectadas por el proyecto de la BIST. En
caso negativo, se deriva hacia un bloque funcional 17, en el que se
selecciona la puerta siguiente como puerta actual. También desde el
bloque funcional 15 se deriva hacia el bloque de consulta 16.
En el caso de que sean verificadas todas las
puertas, que no son detectadas por el proyecto de la BIST, se
deriva hacia un bloque funcional 18, en el que se lee la memoria de
errores. En el bloque de consulta 19 se verifica si la memoria de
errores está vacía. En caso afirmativo, se deriva hacia un bloque
funcional 20, en el que el proyecto actual de la BIST es utilizado
como BIST 7 acabada. En un bloque funcional 21 se termina entonces
el procedimiento según la invención.
No obstante, en el caso de que el estado de al
menos una puerta del núcleo de ordenador 36, que no ha sido
verificado por el proyecto del BIST durante la ejecución, tenga
repercusiones sobre la ejecución correcta del programa de ordenador
en el microprocesador 30 (la memoria de errores está vacía), se
deriva desde el bloque de consulta 19 hacia el bloque funcional 11,
en el que se crea de nuevo un proyecto de una BIST teniendo en
cuenta el contenido de la memoria de errores.
Este procedimiento recursivo se ejecuta hasta
que se cumple la condición en el bloque de consulta 19 (¿memoria de
errores vacía?). De acuerdo con la presente invención se determina,
por lo tanto, en un procedimiento recursivo una BIST óptima para el
programa de ordenador respectivo.
Claims (4)
1. Procedimiento para la creación de una prueba
automática (7) para la verificación de la función correcta de un
núcleo de ordenador (36) de un microprocesador (30) o de un
microcontrolador, en el que el núcleo del ordenador (36) comprende
varias puertas con varios transistores, respectivamente, en el que
durante una ejecución correcta de un programa de ordenador (3) en
el microprocesador (30) o microcontrolador se ejecuta cíclicamente
una prueba automática (7) y en el marco de la prueba automática (7)
se verifica la función correcta de puertas del núcleo del
ordenador, caracterizado porque se verifican al menos
aquellas puertas del núcleo del ordenador (36), cuyo estado tiene
repercusiones sobre la ejecución correcta del programa de ordenador
(3) en el microprocesador (30) o microcontrolador, durante la
ejecución de la prueba automática (7), y se crea en este caso la
prueba automática (4), de tal manera que
- -
- se crea (11) un proyecto de la prueba automática (7) para el núcleo del ordenador (36);
- -
- se verifica si el estado de aquellas puertas del núcleo del ordenador (36), que no son verificadas por el proyecto de la prueba automática (7) durante una ejecución, tiene repercusiones sobre el desarrollo correcto del programa de ordenador (3) sobre el microprocesador (30) o microcontrolador (14);
- -
- en el caso de que el estado de al menos una puerta del núcleo del ordenador, que no es verificado por el proyecto de la prueba automática (7) durante una operación, tenga repercusiones sobre el desarrollo correcto del programa de ordenador (3) en el microprocesador (30) o microcontrolador, se crea la prueba automática (7) acabada, siendo ampliado el proyecto de la prueba automática (7) de tal forma que se verifican adicionalmente al menos aquellas puertas del núcleo del ordenador (36), que no han sido verificadas por el proyecto de la prueba automática (7) y cuyo estado tiene repercusiones sobre el desarrollo correcto del programa de ordenador (3) sobre el microprocesador (30) o microcontrolador, y
- -
- en el caso de que el estado de aquellas puertas del núcleo del ordenador (36), que no son verificadas por el proyecto de la prueba automática (7) durante una ejecución, no tenga repercusiones sobre el desarrollo correcto del programa de ordenador (3) en el microprocesador (30) o microcontrolador, se utiliza (20) el proyecto de la prueba automática (7) como prueba automática acabada (7).
2. Procedimiento según la reivindicación 1,
caracterizado porque antes de la verificación (14) de si el
estado de aquellas puertas del núcleo del ordenador (36), que no
son verificadas por el proyecto de la prueba automática (7) durante
una ejecución, tiene repercusiones sobre la ejecución correcta del
programa de ordenador (3) en el microprocesador (30)’ o
microcontrolador, se determina qué puertas del núcleo del ordenador
(36) no son verificadas por el proyecto de la prueba automática (7)
durante la ejecución.
3. Procedimiento según la reivindicación 2,
caracterizado porque la determinación (11) de qué puertas del
núcleo del ordenador (36) no son verificadas por el proyecto de la
prueba automática (7) durante una ejecución, se lleva a cabo en un
emulador, en el que se reproduce al menos parcialmente la estructura
de puerta del núcleo del ordenador (36).
4. Procedimiento según una de las
reivindicaciones 1 a 3, caracterizado porque la verificación
(14) de si el estado de aquellas puertas del núcleo del ordenador
(36), que no son verificadas por el proyecto de la prueba
automática (7) durante una ejecución, tiene repercusiones sobre la
ejecución correcta del programa de ordenador (3) en el
microprocesador (30)’ o microcontrolador, se realiza en un emulador,
en el que se reproduce al menos parcialmente la estructura de
puerta del núcleo del ordenador (36).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10148032 | 2001-09-28 | ||
DE10148032A DE10148032A1 (de) | 2001-09-28 | 2001-09-28 | Verfahren zum Überprüfen eines Rechnerkerns eines Mikroprozessors oder eines Mikrocontrollers |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2260474T3 true ES2260474T3 (es) | 2006-11-01 |
Family
ID=7700735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02762230T Expired - Lifetime ES2260474T3 (es) | 2001-09-28 | 2002-07-30 | Procedimiento para la verificacion de un nucleo de ordenador de un microprocesador o de un micro controlador. |
Country Status (7)
Country | Link |
---|---|
US (1) | US7155351B2 (es) |
EP (1) | EP1433061B1 (es) |
JP (1) | JP4205583B2 (es) |
CN (1) | CN1311356C (es) |
DE (2) | DE10148032A1 (es) |
ES (1) | ES2260474T3 (es) |
WO (1) | WO2003032162A2 (es) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004024386A1 (de) * | 2004-05-17 | 2005-12-15 | Siemens Ag | Verfahren und Schaltungsanordnung zum Testen von Funktionen und/oder Algorithmen, die in elektronischen Schaltungen implementiert sind |
JP5509568B2 (ja) * | 2008-10-03 | 2014-06-04 | 富士通株式会社 | コンピュータ装置、プロセッサ診断方法、及びプロセッサ診断制御プログラム |
DE102011005766A1 (de) * | 2011-03-18 | 2012-09-20 | Zf Friedrichshafen Ag | Steuergerät für ein Kraftfahrzeug |
CN110502378B (zh) * | 2019-08-16 | 2022-11-22 | 兆讯恒达科技股份有限公司 | 一种配置多算法协处理器自检的方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4726024A (en) * | 1986-03-31 | 1988-02-16 | Mieczyslaw Mirowski | Fail safe architecture for a computer system |
DE3737713A1 (de) * | 1987-11-06 | 1989-05-18 | Steve Cordell | Verfahren zur durchfuehrung einer pruefung und abnahme eines elektronischen geraetes |
US5195095A (en) | 1990-12-28 | 1993-03-16 | General Electric Company | Algorithm for identifying tests to perform for fault isolation |
DE4139151A1 (de) * | 1991-11-28 | 1993-06-03 | Siemens Ag | Verfahren zum selbsttest von mikroprogrammierten prozessoren |
DE4305288A1 (de) | 1993-02-20 | 1994-08-25 | Bosch Gmbh Robert | Selbsttestverfahren für nicht-reguläre CMOS-Schaltstrukturen mit hoher Defekterfassung |
DE19500188B4 (de) * | 1995-01-05 | 2006-05-11 | Robert Bosch Gmbh | Schaltungsanordnung für eine Bremsanlage |
US5732209A (en) * | 1995-11-29 | 1998-03-24 | Exponential Technology, Inc. | Self-testing multi-processor die with internal compare points |
US5963566A (en) * | 1996-12-18 | 1999-10-05 | Lsi Logic Corporation | Application specific integrated circuit chip and method of testing same |
US5937154A (en) * | 1997-03-05 | 1999-08-10 | Hewlett-Packard Company | Manufacturing functional testing of computing devices using microprogram based functional tests applied via the devices own emulation debug port |
US5991898A (en) * | 1997-03-10 | 1999-11-23 | Mentor Graphics Corporation | Arithmetic built-in self test of multiple scan-based integrated circuits |
US6408413B1 (en) * | 1998-02-18 | 2002-06-18 | Texas Instruments Incorporated | Hierarchical access of test access ports in embedded core integrated circuits |
US6701476B2 (en) * | 2001-05-29 | 2004-03-02 | Motorola, Inc. | Test access mechanism for supporting a configurable built-in self-test circuit and method thereof |
US6948096B2 (en) * | 2001-07-31 | 2005-09-20 | Intel Corporation | Functional random instruction testing (FRIT) method for complex devices such as microprocessors |
KR100430074B1 (ko) * | 2002-01-08 | 2004-05-03 | 학교법인 한양학원 | 시스템칩 테스트 접근을 위한 랩드 코아 연결 모듈 |
US7577540B2 (en) * | 2002-03-01 | 2009-08-18 | Nec Corporation | Re-configurable embedded core test protocol for system-on-chips (SOC) and circuit boards |
US20040006729A1 (en) * | 2002-07-03 | 2004-01-08 | Pendurkar Rajesh Y. | Hierarchical test methodology for multi-core chips |
EP1496435A1 (en) * | 2003-07-11 | 2005-01-12 | Yogitech Spa | Dependable microcontroller, method for designing a dependable microcontroller and computer program product therefor |
US20060020411A1 (en) * | 2004-07-22 | 2006-01-26 | Elias Gedamu | Built-in self-test emulator |
US20060031789A1 (en) * | 2004-07-22 | 2006-02-09 | Elias Gedamu | Built-in self-test emulator |
US7818645B2 (en) * | 2004-07-22 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | Built-in self-test emulator |
US20060020442A1 (en) * | 2004-07-22 | 2006-01-26 | Elias Gedamu | Built-in self-test emulator |
-
2001
- 2001-09-28 DE DE10148032A patent/DE10148032A1/de not_active Ceased
-
2002
- 2002-07-30 US US10/491,402 patent/US7155351B2/en not_active Expired - Lifetime
- 2002-07-30 WO PCT/DE2002/002790 patent/WO2003032162A2/de active IP Right Grant
- 2002-07-30 ES ES02762230T patent/ES2260474T3/es not_active Expired - Lifetime
- 2002-07-30 DE DE50206090T patent/DE50206090D1/de not_active Expired - Lifetime
- 2002-07-30 CN CNB028192303A patent/CN1311356C/zh not_active Expired - Fee Related
- 2002-07-30 JP JP2003535063A patent/JP4205583B2/ja not_active Expired - Fee Related
- 2002-07-30 EP EP02762230A patent/EP1433061B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO2003032162A3 (de) | 2004-03-11 |
EP1433061B1 (de) | 2006-03-15 |
WO2003032162A2 (de) | 2003-04-17 |
JP4205583B2 (ja) | 2009-01-07 |
DE10148032A1 (de) | 2003-04-24 |
EP1433061A2 (de) | 2004-06-30 |
DE50206090D1 (de) | 2006-05-11 |
CN1561488A (zh) | 2005-01-05 |
CN1311356C (zh) | 2007-04-18 |
US7155351B2 (en) | 2006-12-26 |
US20050033533A1 (en) | 2005-02-10 |
JP2005505078A (ja) | 2005-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6678625B1 (en) | Method and apparatus for a multipurpose configurable bus independent simulation bus functional model | |
Goddard | Software FMEA techniques | |
US20080126068A1 (en) | Accelerated simulation and verification of a system under test (sut) using cache and replacement management tables | |
US20140107996A1 (en) | Enabling reuse of unit-specific simulation irritation in multiple environments | |
JP2006059355A (ja) | マイクロコントローラーによって制御される不揮発性記憶装置 | |
ES2260474T3 (es) | Procedimiento para la verificacion de un nucleo de ordenador de un microprocesador o de un micro controlador. | |
US5991529A (en) | Testing of hardware by using a hardware system environment that mimics a virtual system environment | |
US7266791B2 (en) | High level synthesis device, method for generating a model for verifying hardware, method for verifying hardware, control program, and readable recording medium | |
CN103793263B (zh) | 一种基于PowerPC处理器的DMA事务级建模方法 | |
Caba et al. | Testing framework for on-board verification of HLS modules using grey-box technique and FPGA overlays | |
Aleksandrowicz et al. | Designing reliable cyber-physical systems | |
JP4589255B2 (ja) | ハードウェア/ソフトウェア協調検証装置 | |
Gascón et al. | Synthesis of a simple self-stabilizing system | |
EP3734491A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
WO2013044122A1 (en) | Test functionality integrity verification for integrated circuit design | |
KR0136379B1 (ko) | 데이타 처리시스템의 개발방법 및 데이타 처리용 반도체 집적회로 | |
McDermid et al. | Assessing the safety of integrity level partitioning in software | |
Singh et al. | Symbolic quick error detection for pre-silicon and post-silicon validation: Frequently asked questions | |
WO2021009398A1 (es) | Un método para el trazado selectivo de la ejecución de instrucciones, dispositivo de procesamiento relacionado y procesador | |
CN117807778A (zh) | 用于验证upf方案的方法及装置、电子设备 | |
JPH1063704A (ja) | 半導体試験装置 | |
Pyle | METHODS FOR THE DESIGN OF | |
KR20160142050A (ko) | 테스트 패턴 발생 장치 및 방법, 이를 이용한 테스트 시스템과, 컴퓨터 프로그램 | |
JP6761280B2 (ja) | データ保持装置およびデータ保持システム | |
Clark | Large-scale hardware simulation: Modeling and verification strategies |