-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
tesi di laurea
Relatore
Ch.mo prof. Stefano Russo
Correlatore
Ing. Marcello Cinque
Candidato
Alessandro Testa
Matr. 885/189
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksAnno Accademico 2007/2008
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
ObiettiviObiettivi• Testare la robustezza dell’applicazione di
un sensore in caso dimalfunzionamenti. (es. interferenza
elettrom.)
•• Implementazione di un tool per l’iniezione di guasti in
microcontrollori
per reti di sensori senza filo.
1. 1. DiminuzioneDiminuzione delladellaprobabilitprobabilitàà
didi erroreerrore (non (non pipiùùumanoumano))
2. 2. VelocitVelocitàà didi calcolocalcolo e e
didiesecuzioneesecuzione didi un un numeronumeroelevatoelevato didi
esperimentiesperimenti e/oe/odidi studistudi per per
ottenereottenerell’’iniezioneiniezione didi guastiguasti in un in
un sistemasistema
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
ReteRete didi sensorisensori senzasenza filofilo
• Rete di sensori distribuiti nell'ambiente che cooperano tra di
loro, mediantetrasmissioni senza cavo (wireless) allo scopo di
rilevare fenomeni fisici.
RequisitiRequisiti
Tolleranza ai guasti
Consumi
Scalabilità
Mezzi trasmissivi
Prestazioni
Le WSN Le WSN nelnel mondomondo realereale
Individuazione incendi boschivi
Applicazioni militari
Applicazioni sanitarie
Home automation
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
Tecniche di Fault InjectionTecniche di Fault Injection
HardWareHardWare--Implemented Fault Injection (HWIFI)Implemented
Fault Injection (HWIFI) Tecnica adoperata per effettuare
l'iniezione di guasti direttamente nell'hardware di un sistema.
SoftWareSoftWare--Implemented Fault Injection (SWIFI)Implemented
Fault Injection (SWIFI)
Utilizzo di appositi strumenti software per realizzare
un'iniezione di guasti.
Iniezione di guasti a livello assemblyIniezione di guasti a
livello assembly A differenza della tecnica SWIFI, opera
direttamente sul singolo bit di un registro, sporcando il valore in
esso contenuto. 11
iniezioneiniezione
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
La La tecnicatecnica SWIFI SWIFI delldell’’AVRAVR--INJECT
TOOLINJECT TOOL
La La tecnicatecnica SWIFI SWIFI propostaproposta puòpuò
essereessere sintetizzatasintetizzata neinei seguentiseguenti
passipassi::
1.1. FaseFase didi prepre--injectioninjection AnalisiAnalisi del
del sistemasistema faultfault--freefree
2. Set2. Set--up up esperimentiesperimenti
CosaCosa iniettareiniettare??Dove Dove iniettareiniettare??
QuandoQuando iniettareiniettare??
•• AllAll’’nn--simasima
esecuzioneesecuzionedelldell’’istruzioneistruzione
dadasporcaresporcare
•• MemoriaMemoria•• CodiceCodice
•• RegistriRegistrispecialispeciali
•• SingleSingle--event event Upset (SEU)Upset (SEU)
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
ProblematicheProblematiche delldell’’AVRAVR--INJECT TOOLINJECT
TOOL
• L’AVRAVR--INJECT ToolINJECT Tool è stato realizzato per
automatizzare la tecnica SWIFI .
•• ScopoScopo: : evitare di realizzare l’iniezione dei guasti
mediante operazioni a mano.
1.1. AutomatizzareAutomatizzare ilil valorevalore del PCdel
PC
2.2. SemplificareSemplificare la la sceltascelta del del
puntopunto didi
iniezioneiniezione
3.3. UtilizzareUtilizzare un file XML per i un file XML per i
datidati inputinput
4.4. EvitareEvitare iniezioneiniezione in in
istruzioniistruzioni cheche non non
verrannoverranno maimai eseguiteeseguite
5.5. VerificareVerificare compatibilitcompatibilitàà tratra ilil
tipotipo didi
guastoguasto e la e la locazionelocazione sceltiscelti
6.6. SegnalareSegnalare allall’’utenteutente i warning!i
warning!
Quali compitideve avere il
tool?
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
FunzionalitFunzionalitàà delldell’’AVRAVR--INJECT TOOLINJECT
TOOL LL’’AVRAVR--INJECT Tool INJECT Tool supportasupporta::
esperimentiesperimenti semplicisemplici
studistudi parametriciparametrici (al (al variarevariare didi un
un parametroparametro))
campagnacampagna didi fault injection (fault injection
(collezionecollezione didi studistudi))
TecnicaTecnica del del ““countcount””
Il tool Il tool controllacontrolla se se
l'istruzionel'istruzione corrispondentecorrispondente allaalla
locazionelocazione inseritainserita
dall'utentedall'utentevieneviene invocatainvocata almenoalmeno
unauna voltavolta..
ControlloControllo compatibilitcompatibilitàà
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
CasiCasi dd’’usouso (1/2)(1/2)
-- ESPERIMENTOESPERIMENTO --
TipoTipo didi guastoguasto(il “cosa”)
PosizionePosizione bitbit
NumeroNumero didi ciclociclo(il “quando”)
LocazioneLocazione(il “dove”)
Path Path delladellaGoldenCopyGoldenCopy
SceltaScelta locazionelocazionedalladalla listalista(metodo
interattivo)
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
CasiCasi dd’’usouso (2/2)(2/2)
STUDIO STEPSTUDIO STEP--BYBY--STEPSTEP STUDIO RANDOMSTUDIO
RANDOM
•• TuttiTutti i i valorivalori sonosono sceltiscelti
dalldall’’utenteutente •• LL’’utenteutente devedeve
sceglierescegliere qualequale valorevalore sarsarààgeneratogenerato
casualmentecasualmente ((ciclociclo o o bitbit--flipflip))
StepStepValoriValori
inizialeinizialeValoriValorifinalefinale
QuantitQuantitàà valorivalori dada generaregenerare
aleatoriamentealeatoriamente
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
RisultatiRisultati ottenutiottenuti con con ll’’AVRAVR--INJECT
TOOL (1/2)INJECT TOOL (1/2)
•• Realizzazione di una campagna di iniezione di guasti mediante
l’utilizzodell’AVR-INJECT Tool (375 esperimenti in circa 1,5 h;
stima tempo manuale: 10’ per esperimento).
•• ValutazioneValutazione deidei risultatirisultati
ottenutiottenuti: :
Errori non effettivi (30%)
Fenomeni di crash (49%)
Fenomeni di hang (21%)
•• ÈÈ statastata effettuataeffettuata unauna campagnacampagna
didi fault injection i cui fault injection i cui parametriparametri
generatigeneraticasualmentecasualmente dalldall’’AVRAVR--INJECT
Tool INJECT Tool sonosono statistati::
locazione
bit
istante temporale
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
RisultatiRisultati ottenutiottenuti con con ll’’AVRAVR--INJECT
TOOL (2/2)INJECT TOOL (2/2)
La latenza è il tempo che intercorre tral’iniezione del guasto e
la sua manifestazione
La maggior parte degli hang error hannouna latenza maggiore o
uguale di 40 cicli.
-
Un tool per l’iniezione di guasti in microcontrollori per
Wireless Sensor NetworksFacoltà di IngegneriaCorso di Studi in
Ingegneria Informatica
ConclusioniConclusioni
•• ApplicazioneApplicazione in java in java dotatadotata didi
interfacciainterfaccia graficagrafica GUI per GUI per
impostareimpostareun un esperimentoesperimento e e unouno studio
studio didi fault injection in fault injection in modomodo
semplicesemplice e e veloceveloce. .
•• Il tool, in Il tool, in funzionefunzione deidei valorivalori
immessiimmessi dalldall’’utenteutente, , esegueesegue
ll’’iniezioneiniezionedidi guastiguasti..
• AutomatizzazioneAutomatizzazione didi unauna campagnacampagna
didi fault injection con la fault injection con la
generazionegenerazionedidi graficigrafici per per
ll’’analisianalisi deidei risultatirisultati..
•• GenerazioneGenerazione didi parametriparametri casualicasuali
mediantemediante distribuzionedistribuzione
gaussianagaussiana..
SviluppiSviluppi futurifuturi
•• AnalisiAnalisi didi errorierrori crash e hangcrash e hang
causaticausati dalldall’’iniezioneiniezione didi
guastiguasti((realizzatarealizzata con con ll’’ausilioausilio del
tool). del tool).