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.

40 Chapter 4<br />

being introduced‚ the cost (and hence the <strong>de</strong>sign and <strong>de</strong>velopment time) is<br />

often a major concern‚ and the adoption of standard components (Commercial<br />

Off-The-Shelf or COTS products) is a common practice. As a result‚ <strong>for</strong> this<br />

class of applications software fault tolerance is a highly attractive solution‚<br />

since it allows the implementation of <strong>de</strong>pendable systems without incurring<br />

the high costs coming from <strong>de</strong>signing custom hardware or using hardware<br />

redundancy. On the other si<strong>de</strong>‚ relying on software techniques <strong>for</strong> obtaining<br />

<strong>de</strong>pendability often means accepting some overhead in terms of increased co<strong>de</strong><br />

size and reduced per<strong>for</strong>mance. However‚ in many applications‚ memory and<br />

per<strong>for</strong>mance constraints are relatively loose‚ and the i<strong>de</strong>a of trading off reliability<br />

and speed is often easily acceptable.<br />

Several approaches have been proposed in the past to achieve fault tolerance<br />

(or just safety) by modifying only the software. The proposed methods<br />

can mainly be categorized in two groups: those proposing the replication of<br />

the program execution and the check of the results (i.e.‚ Recovery Blocks [3]<br />

and N-Version Programming [4]) and those based on introducing some control<br />

co<strong>de</strong> into the program (e.g.‚ Algorithm Based Fault Tolerance (ABFT) [5]‚<br />

Assertions [6]‚ Co<strong>de</strong> Flow Checking [7]‚ procedure duplication [8]). None of<br />

the mentioned approaches is at the same time general (in the sense that it<br />

can be used <strong>for</strong> any fault type and any application‚ no matter the algorithm<br />

it implements) and automatic (in the sense that it does not rely on the programmer’s<br />

skills <strong>for</strong> its effective implementation). Hence‚ none of the above<br />

methods is enough complete and suitable <strong>for</strong> the implementation of low-cost<br />

safety-critical microprocessor-based systems.<br />

To face the gap between the available methods and the industry requirements‚<br />

we propose an error <strong>de</strong>tection technique which is based on introducing<br />

data and co<strong>de</strong> redundancy according to a set of trans<strong>for</strong>mation rules applied<br />

on high-level co<strong>de</strong>. The set of rules is issued from a thorough analysis of the<br />

one <strong>de</strong>scribed in [9]. In this paper‚ we report experimental results of SEU<br />

effects on an industrial software application‚ obtained by per<strong>for</strong>ming fault<br />

injection experiments in commercial microprocessors. In Section 2 the<br />

software <strong>de</strong>tection rules are briefly presented. The main features of the used<br />

fault injection technique are summarized in Section 3. Experiments were<br />

per<strong>for</strong>med by injecting faults in selected targets during a randomly selected<br />

clock cycle. Experimental results obtained through both software fault injection<br />

and radiation testing campaign are analyzed and discussed in Section 4.<br />

Finally‚ Section 5 presents concluding remarks and future work.<br />

2. SOFTWARE BASED FAULT TOLERANCE<br />

This section <strong>de</strong>scribes the investigated methodology to provi<strong>de</strong> error <strong>de</strong>tection<br />

capabilities through a purely software approach. Subsection 2.1 <strong>de</strong>scribes<br />

the software trans<strong>for</strong>mation rules‚ while subsection 2.2 proposes an automatic<br />

generation of the har<strong>de</strong>ned programs.

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

Saved successfully!

Ooh no, something went wrong!