29.01.2015 Views

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Detecting Soft Errors by a Purely <strong>Software</strong> Approach 45<br />

3. EXPERIMENTAL RESULTS<br />

In or<strong>de</strong>r to evaluate both the feasibility and the effectiveness of the proposed<br />

approach‚ we selected a C program to be used as a benchmark. We then applied<br />

the <strong>de</strong>tection approach by means of C2C translator‚ to get the har<strong>de</strong>ned version<br />

of the target program. Finally‚ we per<strong>for</strong>med a set of fault injection experiments<br />

and radiation ground testing on the original program as well as in the<br />

modified version‚ aiming at comparing the two program’s behaviors.<br />

During fault injection experiments‚ single bit flips were injected in memory<br />

areas containing the program’s co<strong>de</strong>‚ data segment and the internal processor’s<br />

registers by software simulation [10] using a commercially available tool:<br />

the d3sim simulator [11]. To achieve this‚ the generic command file was<br />

generated (see Figure 4-6).<br />

Command (1) tells to d3sim the condition when t (state machine counter)<br />

will be greater than INSTANT (the <strong>de</strong>sired fault injection instant). When<br />

this condition is true‚ the execution of the program in progress is suspen<strong>de</strong>d‚<br />

the XOR operation between TARG (the chosen SEU-target corresponding to<br />

the selected register or memory byte) and an appropriate binary mask<br />

(XOR-VALUE) is achieved‚ prior resuming main program execution. TARG<br />

symbolizes a memory location or a register. XOR_VALUE specifies the<br />

targeted bit.<br />

Command (2) sets a breakpoint at the end of the program. When the<br />

program counter reaches there‚ the simulator will print the memory segment

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!