Ogledi: 6 | Prenosi: 7
Vezja FPGA osnovana na statičnem pomnilniku so postala najprimernejša platforma za vrsto sodobnih aplikacij, kjer so pomembni kratek čas razvoja, manjša cena pri majhnih količinah in zmožnost reprogramiranja vezja med delovanjem. Fleksibilnost vezij FPGA izhaja iz možnosti spreminjanja in prilagajanja konfiguracijskega spomina, ki določa funkcijo vezja. Da se funkcija vezja med delovanjem ohrani, moramo zaščititi konfiguracijski spomin pred zunanjimi vplivi. Glavna skrb pri zagotavljanju zanesljivosti vezij FPGA je sevanje. Delci z veliko energijo, ki naključno zadenejo vezje, lahko povzročijo spremembo konfiguracijskega spomina (povzročijo preklop bitov). Takšne napake imenujemo tudi napake SEU (ang. single-event upset). Napake SEU so zelo pogoste v vesoljskih aplikacijah, vendar se te napake zaradi vedno večje tranzistorske gostote modernih vezij pojavljajo tudi na zemeljski površini.
Obstaja veliko različnih testnih metod, ki povečajo zanesljivost aplikacij na vezjih FPGA. Te metode delujejo vzporedno z delovanjem aplikacije. Metode sprotnega testiranja skoraj v trenutku zaznajo napake v aplikaciji in omogočajo metodam sprotnega popravljanja napak, da le te odpravijo. Imamo pa tudi metode izogibanja napakam, ki omogočajo pravilno delovanje vezja kljub prisotnim napakam. Lastnosti dobrih testnih metod so, da pri čim manjši redundanci v smislu vezja, časa, ali porabe energije maksimalno povečajo zanesljivost vezja. V doktorski disertaciji predstavljamo naše rezultate na področju razvoja metod za sprotno testiranje in popravljanje napak SEU.
Razvili smo metodo za sprotno testiranje šifrirnega algoritma AES (ang. advanced encryption standard). To je najmanjše vezje šifrirnega algoritma AES z vgrajenim sistemom za sprotno odkrivanje napak. Odkrivanje napak smo implementirali za vse operacije algoritma: enkripcijo, dekripcijo in razširjanje ključa. Poleg sprotnega testiranja pa smo razvili tudi vgrajeni samodejni test BIST (ang. built-in self-test). Ta nova testna metoda izvaja operacije algoritma v zanki in uporabi že vgrajen sistem za odkrivanje napak za analizo pravilnega delovanja algoritma.
Izboljšali smo tudi metode za sprotno popravljanje napak. Razvili smo metodo za sprotno popravljanje napak na vezjih FPGA z več vgrajenimi procesorji. Izdelali smo program za odpravljanje napak v konfiguracijskem spominu FPGA. Podoben program za odpravljanje napak za delovanje na enem procesorju so razvili že drugi, mi pa smo dodali možnost, da ob odpovedi tega procesorja napako lahko odpravi drug delujoč procesor.
Druga metoda je doslej najmanjši in najhitrejši strojno implementirani mehanizem za popravljanje napak. Mehanizem sprotno pregleduje konfiguracijski spomin vezja FPGA in odpravlja morebitne napake. Ta mehanizem je dovolj majhen, da ga lahko dodamo skoraj vsaki aplikaciji na vezju FPGA, ne da bi morali vezje zamenjati z večjim. Za ta mehanizem smo predlagali različne možnosti uporabe, ki ob različni redundanci ponujajo različno stopnjo zanesljivosti.
Vse razvite testne metode smo preverili z eksperimenti pri katerih smo v sistem vnašali napake in opazovali odzivnost metod na le te. Posledično smo razvili tudi svoje inovativno orodje za avtomatsko vnašanje napak v vezja FPGA.