6 research outputs found
Control-flow checking via regular expressions
The present paper explains a new approach to program control flow checking. The check has been inserted at source-code level using a signature methodology based on regular expressions. The signature checking is performed without a dedicated watchdog processor but resorting to inter-process communication (IPC) facilities offered by most of the modern operating systems. The proposed approach allows very low memory overhead and trade-off between fault latency and program execution time overhead
Software dependability techniques validated via fault injection experiments
The present paper proposes a C/C++ source-to-source compiler able to increase the dependability properties of a given application. The adopted strategy is based on two main techniques: variable duplication/triplication and control flow checking. The validation of these techniques is based on the emulation of fault appearance by software fault injection. The chosen test case is a client-server application in charge of calculating and drawing a Mandelbrot fracta
On-Line Instruction-checking in Pipelined Microprocessors
Microprocessors performances have increased by more than five orders of magnitude in the last three decades. As technology scales down, these components become inherently unreliable posing major design and test challenges. This paper proposes an instruction-checking architecture to detect erroneous instruction executions caused by both permanent and transient errors in the internal logic of a microprocessor. Monitoring the correct activation sequence of a set of predefined microprocessor control/status signals allow distinguishing between correctly and not correctly executed instruction
The Watchdog Task: Concurrent error detection using assertions
The Watchdog Task, a software abstraction of the Watchdog-processor, is shown to be a powerful error detection tool with a great deal of flexibility and the advantages of watchdog techniques. A Watchdog Task system in Ada is presented; issues of recovery, latency, efficiency (communication) and preprocessing are discussed. Different applications, one of which is error detection on a single processor, are examined
Software implemented fault tolerance for microprocessor controllers: fault tolerance for microprocessor controllers
It is generally accepted that transient faults are a major cause of failure in micro processor systems. Industrial controllers with embedded microprocessors are particularly at risk from this type of failure because their working environments are prone to transient disturbances which can generate transient faults. In order to improve the reliability of processor systems for industrial applications within a limited budget, fault tolerant techniques for uniprocessors are implemented. These techniques aim to identify characteristics of processor operation which are attributed to erroneous behaviour. Once detection is achieved, a programme of restoration activity can be initiated. This thesis initially develops a previous model of erroneous microprocessor behaviour from which characteristics particular to mal-operation are identified. A new technique is proposed, based on software implemented fault tolerance which, by recognizing a particular behavioural characteristic, facilitates the self-detection of erroneous execution. The technique involves inserting detection mechanisms into the target software. This can be quite a complex process and so a prototype software tool called Post-programming Automated Recovery UTility (PARUT) is developed to automate the technique's application. The utility can be used to apply the proposed behavioural fault tolerant technique for a selection of target processors. Fault injection and emulation experiments assess the effectiveness of the proposed fault tolerant technique for three application programs implemented on an 8, 16, and 32- bit processors respectively. The modified application programs are shown to have an improved detection capability and hence reliability when the proposed fault tolerant technique is applied. General assessment of the technique cannot be made, however, because its effectiveness is application specific. The thesis concludes by considering methods of generating non-hazardous application programs at the compilation stage, and design features for incorporation into the architecture of a microprocessor which inherently reduce the hazard, and increase the detection capability of the target software. Particular suggestions are made to add a 'PARUT' phase to the translation process, and to orientate microprocessor design towards the instruction opcode map
Técnicas híbridas de tolerancia a fallos en microprocesadores
Este trabajo de tesis doctoral presenta tres nuevas técnicas de
detección de errores de control de flujo en microprocesadores. Estas
técnicas han sido implementadas de manera no intrusiva en un módulo
hardware externo y se han combinado con técnicas de software para
obtener una elevada capacidad de detección de errores. Se ha utilizado la
interfaz de traza como medio de observación de la ejecución permitiendo
la detección de errores de flujo de una manera no intrusiva y sin penalización
en las prestaciones.
La primera técnica propuesta ha sido denominada Predicción del
Contador de Programa. Está técnica está basada en el cálculo del
contador de programa a partir del código de instrucción actual y el valor
previo del contador de programa. Esta técnica es capaz de detectar el
subconjunto de errores que afectan al contador de programa de una
manera muy eficiente y con un coste en términos de recursos necesarios
para su implementación muy reducido. Adicionalmente, es importante
destacar que la técnica Predicción del Contador de Programa es
complementaria a las otras dos técnicas descritas en la tesis, Monitorización
de firmas y Monitorización dual, y es necesaria para que éstas dos alcancen
elevadas tasas de detección de errores de control de flujo.
La técnica de Monitorización de Firmas realiza el cálculo de una firma
online con el objetivo de verificar la ejecución de un bloque de
instrucciones. Cada bloque tiene asignada una firma de referencia que es
calculada en tiempo de compilación. La firma de referencia y la calculada
en tiempo de ejecución son comparadas al final de la ejecución de cada
bloque. Una de las mejoras que presenta esta técnica respecto a técnicas
basadas en el cálculo de firmas propuestas por otros autores es que
consigue reducir el tamaño de la memoria necesaria para almacenar las
firmas de referencia utilizando una tabla denominada CFC-ST. Se han
propuesto dos métodos de almacenamiento y acceso a la tabla CFC-ST, un
método estático y un método dinámico. En ambos casos el impacto sobre el rendimiento del sistema es reducido al conseguir reducir el tamaño de la
tabla necesaria para almacenar las firmas de referencia.
La tercera técnica desarrollada en esta tesis doctoral es la técnica de
Monitorización Dual. Esta técnica monitoriza la ejecución utilizando dos
puntos de observación diferentes, la interfaz de traza y el bus de memoria.
Gracias a estos dos puntos de observación se obtiene información de la
ejecución en diferentes etapas del pipeline del microprocesador. En
concreto se realiza la comparación del contador de programa y el código
de instrucción obtenidos en la etapa de búsqueda con el valor de los mismos
justo después de la etapa de ejecución.
Uno de los puntos a destacar de las técnicas Monitorización Dual y
Predicción del Contador de Programa es que pueden ser implementadas
sin necesidad de almacenar información de la ejecución calculada en
tiempo de compilación, reduciendo de una manera considerable el
impacto sobre el rendimiento del sistema, ya que el número de recursos
necesarios para su implementación es muy reducido.
Se han realizado extensas campañas de inyección de fallos utilizando la
herramienta AMUSE, lo cual nos ha permitido evaluar la efectividad de las
tres técnicas propuestas en esta tesis doctoral. Los resultados obtenidos en
cada una de las campañas de inyección demuestran que las técnicas
presentadas en esta tesis detectan de una manera eficiente aquellos errores
que afectan al flujo de programa alcanzando una buena solución de
compromiso entre la cobertura a fallos y el impacto sobre el rendimiento
del sistema.Programa Oficial de Doctorado en Ingeniería Eléctrica, Electrónica y AutomáticaPresidente: María Luisa López Vallejo.- Secretario: Enrique San Millán Heredia.- Vocal: Eduardo de la Torre Arnan