6 research outputs found
Study of the effects of SEU-induced faults on a pipeline protected microprocessor
This paper presents a detailed analysis of the behavior of a novel fault-tolerant 32-bit embedded CPU as compared to a
default (non-fault-tolerant) implementation of the same processor during a fault injection campaign of single and double faults. The
fault-tolerant processor tested is characterized by per-cycle voting of microarchitectural and the flop-based architectural states,
redundancy at the pipeline level, and a distributed voting scheme. Its fault-tolerant behavior is characterized for three different
workloads from the automotive application domain. The study proposes statistical methods for both the single and dual fault injection
campaigns and demonstrates the fault-tolerant capability of both processors in terms of fault latencies, the probability of fault
manifestation, and the behavior of latent faults
Mixed-Criticality Systems on Commercial-Off-the-Shelf Multi-Processor Systems-on-Chip
Avionics and space industries are struggling with the adoption of technologies
like multi-processor system-on-chips (MPSoCs) due to strict safety requirements.
This thesis propose a new reference architecture for MPSoC-based mixed-criticality
systems (MCS) - i.e., systems integrating applications with different level of criticality - which are a common use case for aforementioned industries.
This thesis proposes a system architecture capable of granting partitioning -
which is, for short, the property of fault containment. It is based on the detection
of spatial and temporal interference, and has been named the online detection of
interference (ODIn) architecture.
Spatial partitioning requires that an application is not able to corrupt resources
used by a different application. In the architecture proposed in this thesis, spatial
partitioning is implemented using type-1 hypervisors, which allow definition of
resource partitions. An application running in a partition can only access resources
granted to that partition, therefore it cannot corrupt resources used by applications
running in other partitions.
Temporal partitioning requires that an application is not able to unexpectedly
change the execution time of other applications. In the proposed architecture, temporal partitioning has been solved using a bounded interference approach, composed of
an offline analysis phase and an online safety net.
The offline phase is based on a statistical profiling of a metric sensitive to
temporal interference’s, performed in nominal conditions, which allows definition of
a set of three thresholds:
1. the detection threshold TD;
2. the warning threshold TW ;
3. the α threshold.
Two rules of detection are defined using such thresholds:
Alarm rule When the value of the metric is above TD.
Warning rule When the value of the metric is in the warning region [TW ;TD] for
more than α consecutive times.
ODIn’s online safety-net exploits performance counters, available in many MPSoC architectures; such counters are configured at bootstrap to monitor the selected
metric(s), and to raise an interrupt request (IRQ) in case the metric value goes above
TD, implementing the alarm rule. The warning rule is implemented in a software detection module, which reads the value of performance counters when the monitored
task yields control to the scheduler and reset them if there is no detection.
ODIn also uses two additional detection mechanisms:
1. a control flow check technique, based on compile-time defined block signatures, is implemented through a set of watchdog processors, each monitoring
one partition.
2. a timeout is implemented through a system watchdog timer (SWDT), which is
able to send an external signal when the timeout is violated.
The recovery actions implemented in ODIn are:
• graceful degradation, to react to IRQs of WDPs monitoring non-critical applications or to warning rule violations; it temporarily stops non-critical applications
to grant resources to the critical application;
• hard recovery, to react to the SWDT, to the WDP of the critical application, or
to alarm rule violations; it causes a switch to a hot stand-by spare computer.
Experimental validation of ODIn was performed on two hardware platforms: the
ZedBoard - dual-core - and the Inventami board - quad-core.
A space benchmark and an avionic benchmark were implemented on both platforms, composed by different modules as showed in Table 1
Each version of the final application was evaluated through fault injection (FI)
campaigns, performed using a specifically designed FI system. There were three
types of FI campaigns:
1. HW FI, to emulate single event effects;
2. SW FI, to emulate bugs in non-critical applications;
3. artificial bug FI, to emulate a bug in non-critical applications introducing
unexpected interference on the critical application.
Experimental results show that ODIn is resilient to all considered types of faul
Dependability-driven Strategies to Improve the Design and Verification of Safety-Critical HDL-based Embedded Systems
[ES] La utilizaciĂłn de sistemas empotrados en cada vez más ámbitos de aplicaciĂłn está llevando a que su diseño deba enfrentarse a mayores requisitos de rendimiento, consumo de energĂa y área (PPA). Asimismo, su utilizaciĂłn en aplicaciones crĂticas provoca que deban cumplir con estrictos requisitos de confiabilidad para garantizar su correcto funcionamiento durante perĂodos prolongados de tiempo. En particular, el uso de dispositivos lĂłgicos programables de tipo FPGA es un gran desafĂo desde la perspectiva de la confiabilidad, ya que estos dispositivos son muy sensibles a la radiaciĂłn. Por todo ello, la confiabilidad debe considerarse como uno de los criterios principales para la toma de decisiones a lo largo del todo flujo de diseño, que debe complementarse con diversos procesos que permitan alcanzar estrictos requisitos de confiabilidad.
Primero, la evaluaciĂłn de la robustez del diseño permite identificar sus puntos dĂ©biles, guiando asĂ la definiciĂłn de mecanismos de tolerancia a fallos. Segundo, la eficacia de los mecanismos definidos debe validarse experimentalmente. Tercero, la evaluaciĂłn comparativa de la confiabilidad permite a los diseñadores seleccionar los componentes prediseñados (IP), las tecnologĂas de implementaciĂłn y las herramientas de diseño (EDA) más adecuadas desde la perspectiva de la confiabilidad. Por Ăşltimo, la exploraciĂłn del espacio de diseño (DSE) permite configurar de manera Ăłptima los componentes y las herramientas seleccionados, mejorando asĂ la confiabilidad y las mĂ©tricas PPA de la implementaciĂłn resultante.
Todos los procesos anteriormente mencionados se basan en tĂ©cnicas de inyecciĂłn de fallos para evaluar la robustez del sistema diseñado. A pesar de que existe una amplia variedad de tĂ©cnicas de inyecciĂłn de fallos, varias problemas aĂşn deben abordarse para cubrir las necesidades planteadas en el flujo de diseño. Aquellas soluciones basadas en simulaciĂłn (SBFI) deben adaptarse a los modelos de nivel de implementaciĂłn, teniendo en cuenta la arquitectura de los diversos componentes de la tecnologĂa utilizada. Las tĂ©cnicas de inyecciĂłn de fallos basadas en FPGAs (FFI) deben abordar problemas relacionados con la granularidad del análisis para poder localizar los puntos dĂ©biles del diseño.
Otro desafĂo es la reducciĂłn del coste temporal de los experimentos de inyecciĂłn de fallos. Debido a la alta complejidad de los diseños actuales, el tiempo experimental dedicado a la evaluaciĂłn de la confiabilidad puede ser excesivo incluso en aquellos escenarios más simples, mientras que puede ser inviable en aquellos procesos relacionados con la evaluaciĂłn de mĂşltiples configuraciones alternativas del diseño.
Por Ăşltimo, estos procesos orientados a la confiabilidad carecen de un soporte instrumental que permita cubrir el flujo de diseño con toda su variedad de lenguajes de descripciĂłn de hardware, tecnologĂas de implementaciĂłn y herramientas de diseño.
Esta tesis aborda los retos anteriormente mencionados con el fin de integrar, de manera eficaz, estos procesos orientados a la confiabilidad en el flujo de diseño. Primeramente, se proponen nuevos mĂ©todos de inyecciĂłn de fallos que permiten una evaluaciĂłn de la confiabilidad, precisa y detallada, en diferentes niveles del flujo de diseño. Segundo, se definen nuevas tĂ©cnicas para la aceleraciĂłn de los experimentos de inyecciĂłn que mejoran su coste temporal. Tercero, se define dos estrategias DSE que permiten configurar de manera Ăłptima (desde la perspectiva de la confiabilidad) los componentes IP y las herramientas EDA, con un coste experimental mĂnimo. Cuarto, se propone un kit de herramientas que automatiza e incorpora con eficacia los procesos orientados a la confiabilidad en el flujo de diseño semicustom. Finalmente, se demuestra la utilidad y eficacia de las propuestas mediante un caso de estudio en el que se implementan tres procesadores empotrados en un FPGA de Xilinx serie 7.[CA] La utilitzaciĂł de sistemes encastats en cada vegada mĂ©s Ă mbits d'aplicaciĂł estĂ portant al fet que el seu disseny haja d'enfrontar-se a majors requisits de rendiment, consum d'energia i Ă rea (PPA). AixĂ mateix, la seua utilitzaciĂł en aplicacions crĂtiques provoca que hagen de complir amb estrictes requisits de confiabilitat per a garantir el seu correcte funcionament durant perĂodes prolongats de temps. En particular, l'Ăşs de dispositius lògics programables de tipus FPGA Ă©s un gran desafiament des de la perspectiva de la confiabilitat, ja que aquests dispositius sĂłn molt sensibles a la radiaciĂł. Per tot això, la confiabilitat ha de considerar-se com un dels criteris principals per a la presa de decisions al llarg del tot flux de disseny, que ha de complementar-se amb diversos processos que permeten aconseguir estrictes requisits de confiabilitat.
Primer, l'avaluació de la robustesa del disseny permet identificar els seus punts febles, guiant aixà la definició de mecanismes de tolerà ncia a fallades. Segon, l'eficà cia dels mecanismes definits ha de validar-se experimentalment. Tercer, l'avaluació comparativa de la confiabilitat permet als dissenyadors seleccionar els components predissenyats (IP), les tecnologies d'implementació i les eines de disseny (EDA) més adequades des de la perspectiva de la confiabilitat. Finalment, l'exploració de l'espai de disseny (DSE) permet configurar de manera òptima els components i les eines seleccionats, millorant aixà la confiabilitat i les mètriques PPA de la implementació resultant.
Tots els processos anteriorment esmentats es basen en tècniques d'injecció de fallades per a poder avaluar la robustesa del sistema dissenyat. A pesar que existeix una à mplia varietat de tècniques d'injecció de fallades, diverses problemes encara han d'abordar-se per a cobrir les necessitats plantejades en el flux de disseny. Aquelles solucions basades en simulació (SBFI) han d'adaptar-se als models de nivell d'implementació, tenint en compte l'arquitectura dels diversos components de la tecnologia utilitzada. Les tècniques d'injecció de fallades basades en FPGAs (FFI) han d'abordar problemes relacionats amb la granularitat de l'anà lisi per a poder localitzar els punts febles del disseny.
Un altre desafiament és la reducció del cost temporal dels experiments d'injecció de fallades. A causa de l'alta complexitat dels dissenys actuals, el temps experimental dedicat a l'avaluació de la confiabilitat pot ser excessiu fins i tot en aquells escenaris més simples, mentre que pot ser inviable en aquells processos relacionats amb l'avaluació de múltiples configuracions alternatives del disseny.
Finalment, aquests processos orientats a la confiabilitat manquen d'un suport instrumental que permeta cobrir el flux de disseny amb tota la seua varietat de llenguatges de descripciĂł de maquinari, tecnologies d'implementaciĂł i eines de disseny.
Aquesta tesi aborda els reptes anteriorment esmentats amb la finalitat d'integrar, de manera eficaç, aquests processos orientats a la confiabilitat en el flux de disseny. Primerament, es proposen nous mètodes d'injecciĂł de fallades que permeten una avaluaciĂł de la confiabilitat, precisa i detallada, en diferents nivells del flux de disseny. Segon, es defineixen noves tècniques per a l'acceleraciĂł dels experiments d'injecciĂł que milloren el seu cost temporal. Tercer, es defineix dues estratègies DSE que permeten configurar de manera òptima (des de la perspectiva de la confiabilitat) els components IP i les eines EDA, amb un cost experimental mĂnim. Quart, es proposa un kit d'eines (DAVOS) que automatitza i incorpora amb eficĂ cia els processos orientats a la confiabilitat en el flux de disseny semicustom. Finalment, es demostra la utilitat i eficĂ cia de les propostes mitjançant un cas d'estudi en el qual s'implementen tres processadors encastats en un FPGA de Xilinx serie 7.[EN] Embedded systems are steadily extending their application areas, dealing with increasing requirements in performance, power consumption, and area (PPA). Whenever embedded systems are used in safety-critical applications, they must also meet rigorous dependability requirements to guarantee their correct operation during an extended period of time. Meeting these requirements is especially challenging for those systems that are based on Field Programmable Gate Arrays (FPGAs), since they are very susceptible to Single Event Upsets. This leads to increased dependability threats, especially in harsh environments. In such a way, dependability should be considered as one of the primary criteria for decision making throughout the whole design flow, which should be complemented by several dependability-driven processes.
First, dependability assessment quantifies the robustness of hardware designs against faults and identifies their weak points. Second, dependability-driven verification ensures the correctness and efficiency of fault mitigation mechanisms. Third, dependability benchmarking allows designers to select (from a dependability perspective) the most suitable IP cores, implementation technologies, and electronic design automation (EDA) tools. Finally, dependability-aware design space exploration (DSE) allows to optimally configure the selected IP cores and EDA tools to improve as much as possible the dependability and PPA features of resulting implementations.
The aforementioned processes rely on fault injection testing to quantify the robustness of the designed systems. Despite nowadays there exists a wide variety of fault injection solutions, several important problems still should be addressed to better cover the needs of a dependability-driven design flow. In particular, simulation-based fault injection (SBFI) should be adapted to implementation-level HDL models to take into account the architecture of diverse logic primitives, while keeping the injection procedures generic and low-intrusive. Likewise, the granularity of FPGA-based fault injection (FFI) should be refined to the enable accurate identification of weak points in FPGA-based designs.
Another important challenge, that dependability-driven processes face in practice, is the reduction of SBFI and FFI experimental effort. The high complexity of modern designs raises the experimental effort beyond the available time budgets, even in simple dependability assessment scenarios, and it becomes prohibitive in presence of alternative design configurations.
Finally, dependability-driven processes lack an instrumental support covering the semicustom design flow in all its variety of description languages, implementation technologies, and EDA tools. Existing fault injection tools only partially cover the individual stages of the design flow, being usually specific to a particular design representation level and implementation technology.
This work addresses the aforementioned challenges by efficiently integrating dependability-driven processes into the design flow. First, it proposes new SBFI and FFI approaches that enable an accurate and detailed dependability assessment at different levels of the design flow. Second, it improves the performance of dependability-driven processes by defining new techniques for accelerating SBFI and FFI experiments. Third, it defines two DSE strategies that enable the optimal dependability-aware tuning of IP cores and EDA tools, while reducing as much as possible the robustness evaluation effort. Fourth, it proposes a new toolkit (DAVOS) that automates and seamlessly integrates the aforementioned dependability-driven processes into the semicustom design flow. Finally, it illustrates the usefulness and efficiency of these proposals through a case study consisting of three soft-core embedded processors implemented on a Xilinx 7-series SoC FPGA.Tuzov, I. (2020). Dependability-driven Strategies to Improve the Design and Verification of Safety-Critical HDL-based Embedded Systems [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/159883TESI
Avaliação do desempenho de redes PROFIBUS-DP suportada em técnicas de injecção de faltas
Tese de doutoramento. Engenharia Electrotécnica e de Computadores. Faculdade de Engenharia. Universidade do Porto. 200
TĂ©cnicas de inyecciĂłn de fallos basadas en FPGAs para la evaluaciĂłn de la tolerancia a fallos de tipo SEU en circuitos digitales
Este trabajo de tesis doctoral presenta nuevas técnicas de inyección de fallos
transitorios en elementos de memoria, que permiten la evaluaciĂłn del comportamiento
de los complejos circuitos digitales actuales en presencia de fallos SEU (Single Event
Upset).
Se han propuesto técnicas de inyección que dan solución a la evaluación de la
tolerancia a fallos SEU para distintos componentes de los sistemas digitales actuales, en
los que se tiende a integrar distintos tipos de circuitos en un mismo chip, SoCs (System
on Chip). El entorno de inyecciĂłn en las soluciones propuestas en esta tesis se basa en
emulación con dispositivos programables, FPGAs, realizándose las tareas relacionadas
con la inyecciĂłn desde la plataforma hardware de emulaciĂłn. La implementaciĂłn
hardware del sistema de inyecciĂłn minimiza la comunicaciĂłn necesaria entre el
hardware y un computador, siendo dicha comunicaciĂłn la mayor limitaciĂłn en la
velocidad del proceso de inyección. En primer lugar, se presenta una técnica de
inyecciĂłn de fallos basada en la emulaciĂłn de fallos con FPGA, que permite evaluar un
circuito digital cuando se dispone de su descripciĂłn en un lenguaje de alto nivel, como
VHDL. Por otro lado, se propone una soluciĂłn para la inyecciĂłn de fallos en circuitos
microprocesadores basada en el uso de la infraestructura de depuraciĂłn integrada en el
propio microprocesador (OCD, On-Chip Debugger), para acceder a sus recursos
internos (memorias y registros), en un componente comercial o prototipo final del
microprocesador.
Cuando se dispone de la descripciĂłn del circuito, Ă©ste se implementa junto con el
sistema de inyecciĂłn en la FPGA y no es necesario establecer una comunicaciĂłn con el
exterior durante el desarrollo de una campaña de inyección, por lo que esta propuesta se
ha denominado EmulaciĂłn AutĂłnoma. Al implementar el sistema completo de
inyecciĂłn en un Ăşnico dispositivo (la FPGA) se aumentan la observabilidad y
controlabilidad de los elementos del circuito. En este trabajo de investigaciĂłn se han
propuesto optimizaciones del proceso de inyecciĂłn, basadas en la mayor accesibilidad
al circuito que proporciona la EmulaciĂłn AutĂłnoma, para mejorar la eficiencia de las
tareas de inyecciĂłn de fallos y observaciĂłn del comportamiento del circuito en
presencia de fallos.
En esta tesis se describen y desarrollan tres implementaciones de técnicas de
inyecciĂłn basadas en EmulaciĂłn AutĂłnoma, denominadas Time-Multiplexed, State-Scan
y Mask-Scan. Cada una de las tres implementaciones ofrece un compromiso distinto
entre velocidad del proceso de inyecciĂłn y recursos necesarios para su aplicaciĂłn. La
técnica Time-Multiplexed incluye el mayor número de optimizaciones y mejoras por lo
que es la técnica que mayor velocidad consigue en el proceso de evaluación pero, para
ello, requiere una cantidad de recursos también mayor que las otras dos
implementaciones. Las otras dos técnicas son simplificaciones de la primera, por lo que
utilizan menos recursos hardware en la emulaciĂłn de fallos.
Además, se han desarrollado modelos de memoria que permiten aplicar la
técnica Time-Multiplexed a circuitos con memorias empotradas. Los modelos se basan
en controlar (para insertar los fallos) y observar (para detectar los errores y sus efectos)
el contenido de memoria a través de las señales de control, el bus de datos y el bus de
direcciones, evitando recorrer todas las palabras de datos. La inyecciĂłn de fallos en
circuitos con memorias empotradas es un problema de gran interés, puesto que éstas
últimas son un componente cada vez más habitual en los diseños actuales. Además no
se habĂa propuesto hasta la fecha ninguna soluciĂłn eficiente para la emulaciĂłn de fallos
en memorias. Esta aportación de la tesis permite inyectar fallos de forma rápida en
memorias empotradas resolviendo el problema de su limitada accesibilidad. También
para los modelos de memoria, se han propuesto distintas implementaciones en funciĂłn
de las prestaciones conseguidas y recursos hardware necesarios, denominados modelo
Básico y modelo ECAM. El modelo Básico requiere menos recursos para su
implementaciĂłn, mientras que el modelo ECAM proporciona una mayor capacidad de
análisis de los fallos.
Los experimentos realizados, tanto sobre circuitos de prueba como sobre
circuitos industriales reales, prueban que la EmulaciĂłn AutĂłnoma acelera el proceso de
inyecciĂłn con respecto a otras soluciones propuestas, permitiendo inyectar millones de
fallos en unos pocos segundos. La aceleraciĂłn conseguida es de dos Ăłrdenes de
magnitud, con la técnica Time-Multiplexed, con respecto a otras soluciones basadas en
emulaciĂłn, que a su vez proporcionan una aceleraciĂłn de cuatro Ăłrdenes de magnitud
con respecto a técnicas basadas en simulación. Esta notable aceleración en la inyección
de fallos permite evaluar circuitos de gran tamaño, como los circuitos actuales, donde
los posibles fallos suponen un nĂşmero elevado, y para obtener una medida significativa
de su tolerancia a fallos es necesario inyectar un gran conjunto de fallos en un tiempo
razonable. Se ha comprobado experimentalmente la viabilidad de la soluciĂłn presentada
para la inyecciĂłn de fallos en memoria y las caracterĂsticas de los modelos de memoria
propuestos, para ello se han realizado campañas de inyección sobre un microprocesador
industrial en el que se inyectan fallos tanto en los biestables como en la memoria.
Por otro lado, la técnica de inyección que se propone en la tesis orientada a
microprocesadores realiza la inyecciĂłn de fallos y observaciĂłn de sus efectos en el
circuito a través de su OCD. El avance de las capacidades e infraestructuras de
depuraciĂłn en los microprocesadores actuales se debe al auge de SoCs y sistemas
empotrados en los que, de otra forma, el acceso para depuraciĂłn a dicho componente
serĂa inviable o muy costoso. Estas capacidades proporcionan un mecanismo eficaz para
acceder a los recursos internos del microprocesador, necesario para realizar la inyecciĂłn
de fallos y observar el comportamiento del circuito. El sistema de inyecciĂłn propuesto
controla el OCD mediante su interfaz JTAG, el más común para acceder a los
microprocesadores actuales. Al igual que en el sistema de EmulaciĂłn AutĂłnoma, todas
las tareas de inyecciĂłn se realizan desde el hardware, una FPGA, que se conecta al
microprocesador bajo estudio a través de su interfaz JTAG. Esta solución es aplicable a
cualquier microprocesador con OCD e interfaz JTAG, lo que son caracterĂsticas
habituales en la actualidad.
Los experimentos desarrollados sobre microprocesadores comerciales (ARM y
PowerPC) demuestran que esta técnica proporciona una solución para la inyección de
fallos en componentes microprocesadores comerciales eficiente, de gran generalidad y
que alcanza un compromiso entre velocidad y coste.
En resumen, se ha propuesto una solución precisa, rápida y de bajo coste para
evaluar la tolerancia a fallos de tipo SEU de los circuitos digitales actuales, permitiendo
la inyección de fallos en circuitos de gran tamaño con memorias y microprocesadores
empotrados.
____________________________________________This PhD thesis presents new transient fault injection techniques to allow
evaluating the behaviour of complex digital circuits, as modern circuits, with transient
faults in memory elements, i.e., SEU (Single Event Upset) faults.
Fault injection techniques have been proposed to solve SEU tolerance evaluation
in different components of systems on chip (SoCs). The fault injection environment of
the proposed solutions in this thesis is emulation-based with FPGA, performing
injection tasks from the emulation hardware platform. The hardware implementation of
the injection system minimises the required communication between hardware and host
computer that is a bottleneck in speed injection process. First of all, a transient fault
emulation technique in FPGA devices aimed at evaluating a circuit, whose description
is available in a hardware description language (as VHDL), is presented. Secondly, a
fault injection technique aimed at evaluating fault tolerance in microprocessors is
proposed. Such proposal is applied on a final prototype or a commercial component and
it consists in using the debugger infrastructure integrated in the circuit (OCD, On-Chip
Debugger) to access the microprocessor’s internal resources (memory and registers).
On the one side, when the circuit description is available, the circuit is
implemented in the FPGA together with the injection system and therefore the
communication with the host PC is avoided during fault injection campaign. This fault
injection technique has been called Autonomous Emulation. The monolithic hardware
implementation for the injection system (a unique FPGA) provides better controllability
and observability of the circuit under test, than other solutions. Some injection process
optimisations are proposed in this research work in order to enhance the efficiency and
the speed of the different injection tasks.
In this work, three implementations of the Autonomous Emulation system are
proposed and developed. They are called Time-Multiplexed, State-Scan and Mask-
Scan. Each one provides a different trade-off between area overhead and injection
process speed-up. Time-Multiplexed technique includes more optimisations than the
other techniques. Therefore, it obtains the highest speed-up in the evaluation process,
but it requires more area overhead than the other implementations. State-Scan and
vi
Mask-Scan techniques are simplified versions of Time-Multiplexed implementation,
using less hardware resources to perform the fault emulation.
Furthermore, memory models have been developed in order to apply the Time-
Multiplexed technique to digital circuits with embedded memories. Such models are
based on controlling (to insert faults) and observing (to detect the errors and watch their
effects) the memory data by means of the control signals, data bus and memory address
bus, instead of accessing every memory word, that is a slow task, specially for large
memories. The fault injection in embedded memories is a very interesting problem as
they are components more and more usual in current digital designs. Besides, there is
not an efficient solution for fault emulation in memories in the literature. This thesis’
contribution allows the fault injection in embedded memories in a fast way, solving the
accessibility limitation problem. Different implementations have been also proposed for
the memory models, according to the trade-off between performance and hardware
resources requirements; they are named basic model and ECAM model. The basic
model involves less hardware resources, whilst the ECAM model provides a better
performance in the result analysis task.
The experiments developed in this thesis consist in performing fault injection
campaigns in benchmark circuits as well as in real ones. The experimental results prove
that Autonomous Emulation speeds-up the injection process with respect to other
existing solutions, making possible the injection of millions of faults in a few seconds.
The injection process speed increases around two orders of magnitude using Time-
Multiplexed with respect to other emulation-based solutions, what are faster than
simulation-based techniques in four orders of magnitude. This notable enhancement in
the injection speed allows the evaluation of the fault tolerance in large circuits, as the
current ones. In modern circuits, all the possible SEU faults suppose a very high number
of faults, and in order to obtain a significant measurement of the fault tolerance,
injecting a large set of faults in reasonable time is necessary. The feasibility of the
proposed memory models has also been analyzed performing fault campaigns in an
industrial microprocessor, injecting faults in flip-flops as well as in memory.
On the other side, the fault injection technique, proposed in this PhD thesis,
aimed at evaluating microprocessors using the OCD to insert the faults and to observe
their effects in the circuit. Nowadays, enhanced debugging capabilities and integrated
infrastructures are available in current microprocessors, due to the increasing use of
SoCs and embedded systems, where, without an OCD, the debugging process would be
infeasible or require a high cost. The OCD provides a mechanism to access
microprocessor’s internal resources and so it can be used to inject faults and to observe
the circuit behaviour. The proposed fault injection system controls the OCD by means
of the JTAG interface, what is the most common interface to access modern microprocessors. As in the Autonomous Emulation System, all the injection tasks are
performed in hardware, in an FPGA, that is connected to the microprocessor under test
by means of the JTAG interface. This solution could be applicable to any
microprocessor circuit with an OCD and a JTAG interface, what are the most common
features nowadays.
Developed experiments in commercial microprocessors (ARM and PowerPC)
show this technique provides an efficient solution to inject faults in microprocessors
devices, applicable to a wide range of different processors and offering a trade-off
between the injection process speed and its cost.
In summary, a fast, accurate and low cost solution to evaluate the SEU fault
tolerance in modern digital circuits has been proposed. It allows fault injection in large
circuits with embedded memories and microprocessors