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
Application number
ES02762230T
Other languages
English (en)
Inventor
Klaus-Peter Mattern
Michael Hering
Werner Harter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Application granted granted Critical
Publication of ES2260474T3 publication Critical patent/ES2260474T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation 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.
Estado de la técnica
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.
Ventajas de la invención
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.
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.
Dibujos
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.
Descripción de los ejemplos de realizació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).
ES02762230T 2001-09-28 2002-07-30 Procedimiento para la verificacion de un nucleo de ordenador de un microprocesador o de un micro controlador. Expired - Lifetime ES2260474T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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