Cost-effective and safe software-only solutions
Current approaches to provide hardware
safety will not be sufficient in the future,
because they become too costly. SIListra Systems develops
cost-effective and safe software-only solution to these problems.
Because our solutions are based on the Software Coded Processing
technology they are flexible and universally deployable.
Cheaper commodity hardware can be used in critical systems,
because we implement the hardware error detection in software.
The gained flexibility can be used to increase the utilization of
systems by executing critical and non-critical applications on the same hardware component.
We provide the following tools providing error detection and evaluation of error resilience:
The upcoming automotive safety standard (ISO 26262) names Coded Processing
explicitly as one technique to achieve the highest safety level (ASIL D). In addition
to the automotive industry, system architects working in any other safety-critical
application area, for instance, railway, aerospace, and medical devices, will profit from using our
SIListra Safety Transformer. Any application where the risk of erroneous executions is unacceptable high
can apply our SIListra Safety Transformer and the principles of Coded Processing in
software to minimize the risk introduced by erroneous outputs caused by execution errors to an acceptable level.
In summary the advantages of our SIListra Safety Transformer are:
- Safety (Resilience against hardware errors).
- Safety (Resilience against some bugs in 3rd-party software).
- Simple integration into development workflow.
- Support for distributed systems.
- Adaptable scope of protection and thereby minimization of costs.
The figure shows the work-flow of the SIListra Safety Transformer:

The tool automatically transforms an unsafe original program to a safe program version.
The functionality of both versions is equivalent.
But while the unsafe original version is vulnerable to hardware execution errors,
the safe version is with very high probability not.
If an execution error disturbs the execution of the safe version,
i.e., introduces an erroneous state, this error will be detected.
As a consequence, the error can be handled before erroneous output will be produced.
The SIListra Safety Transformer provides the safe program version in generic source code format that can be
compiled for the target platform.
Brief two page overview about
SIListra Safety Tools (PDF)
SIListra Safety Replicator
The SIListra Safety Replicator is a C to C source code transformer.
It transforms a C module (in ANSI C, given in source code, and including all header files)
into a protected C module. The protected C module detects soft errors that influence its execution.
The SIListra Safety Replicator does this by replicating the complete data-flow (including inter-procedural
data-flow and global and local state) of the module. Additionally, the SIListra Safety Replicator inserts
checks to detect control-flow errors.
Wrappers for integrating non-replicated external functions are automatically generated.
In summary the advantages of our SIListra Safety Replicator are:
- The workflow is similar to the SIListra Safety Transformer.
- Optimized for the detection of transient faults (soft errors) only.
- Automatically replicates any instruction and memory region in an application or module.
- Full ANSI-C (C99) language support.
- Adaptable scope of protection and thereby minimization of costs.
Brief two page overview about
SIListra Safety Tools (PDF)
SIListra Safety Evaluator
Error injection is a well accepted method to evaluate hardware error detection mechanisms.
The results of error injection campaigns provide information about how well error detection
mechanisms cope with errors.
For a good representativeness of the error injection, the error model used has to mirror real
world errors as accurately as possible.
We provide the SIListra Safety Evaluator which emulates the symptoms of hardware errors detailed.
One especially interesting result of the error injection campaigns executed with the SIListra Safety Evaluator
is the percentage of errors which cause a silently corrupted output, that is, the generated output is different from
the output of the fault-free run and no error is reported by the software.
Furthermore, the SIListra Safety Evaluator provides means to debug single injection runs using slicing.
This facilitates the identification of safety issues.
With the SIListra Safety Evaluator we make the following novel contributions:
- Easy usage through hardware independence. It requires no hardware description or model.
- A symptom-based, flexible and comprehensive error model that extends the mostly used only-bit-flips model.
- Support for debugging of silent data corruptions to improve the detection coverage of the evaluated error detection mechanism.
The Evaluator supports two different execution modes:
Deterministic: In this mode per run exactly one error is triggered.
Usually several thousands of such runs are executed where in each run another error of the
same type is triggered. This tests the ability of a detection mechanism to cope with rarely occurring errors.
Furthermore, we can determine if an error detection mechanism is especially susceptible to some error types.
Probabilistic: This mode combines all error types.
The user has to provide the probability that an error will occur.
Thus, one execution might be hit by several different errors. This mode allows to mirror the fact that for an error
detection mechanism which increases code size, the protected program version is more probable to collect
errors than the program version without error detection.
Most hardware error detection tools only detect a certain amount of silently corrupted output failures.
However, the question arises, if the remaining undetected failures are caused by the incomplete coverage of the detection approach
or by bugs in the error detection. Our debugging support helps to analyse and debug undetected failures.
Therefore, the SIListra Safety Evaluator presents the developer the complete data flow of an injected error through the application.
By inspecting the data flow the developers can find missing checks and missing redundancy in their detection mechanism or just plain bugs
in their implementation. Hence, SIListra Safety Evaluator’s debugging support is two-fold. First, it helps to improve the coverage of the
error detection approach. Second, it helps to debug the error detection implementation.
Technical documentation about the
SIListra Safety Evaluator (PDF)