un tool per l’iniezione di guasti in microcontrollori per ......un tool per l’iniezione di...
TRANSCRIPT
-
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).