Het testen van de veiligheid en betrouwbaarheid van nieuwe computerchips kost vaak veel tijd. Een nieuwe methode, die gewoonlijk gebruikt wordt voor het beproeven van software in plaats van hardware, modelleert en test chips virtueel. Dat zou de ontwikkeltijd flink kunnen verminderen.
Huidige hardwaretests onderzoeken chips steekproefsgewijs op mankementen, of proberen alle input- en outputmogelijkheden op elke computerchip uit. De eerste manier ziet snel problemen over het hoofd. De tweede is alleen praktisch uitvoerbaar voor hele eenvoudige ontwerpen. Hoe dan ook, het testen kan maanden kosten.
Maar niet testen is ook geen optie: één foutje in de hardware kan een computer onbetrouwbaar en kwetsbaar voor hacks maken. Een update nadat de computer al verkocht is kan, anders dan bij een softwarefout, geen oplossing bieden.
Kunnen we ooit praten met Poekie?
Met behulp van AI slagen onderzoekers er steeds beter in dierengeluiden te ontcijferen. Kunnen we ooit echt met onze hond of kat babbelen?
Net echt
Een team onderzoekers van de Universiteit van Michigan, Google en Virginia Tech heeft het testproces versneld door computerchips te simuleren. Geavanceerde softwaretechnieken analyseren die simulaties vervolgens. De chipontwerpen worden vertaald naar uitvoerbare programmeercode. Met een extra laagje software werken ze net zoals bij gebruik in de echte wereld.
Het virtueel testen van chips geeft ingenieurs de mogelijkheid om ze te ‘fuzz-testen’. Zo’n test kijkt naar onverwachte resultaten of crashes, die dan onderzocht en opgelost kunnen worden. De inputs die het probleem veroorzaakten, worden vervolgnes een klein beetje aangepast zodat een vervolgtest soortgelijke problemen in de chip kan opsporen. Fuzz-tests zijn effectiever dan de traditionele willekeurige tests.
Verschil overbruggen
Een probleem dat het team moest overwinnen, is dat chips en code heel verschillend werken. Computerchips voeren een constante stroom van inputs en outputs uit, waarbij ze duizenden eenvoudige bewerkingen maken om een grotere taak te volbrengen. Maar softwaretests bestaan vaak uit het proberen van losse inputs, zoals een tekst of een bestand, om te kijken wat de output is. Het team moest de softwarefuzzers dus veranderen zodat ze voortdurend werken en niet alleen een enkele input afvuren en wachten op reactie.
De methode verkortte de tijd die nodig is om een chipontwerp te testen met twee ordes van grootte. Een chip waarvan het testen bijvoorbeeld normaal honderd dagen zou duren, kan nu in één dag worden geanalyseerd.
Het team testte vier onderdelen van een chip die gemaakt is door Google. Binnen een uur hadden ze drie onderdelen van de gesimuleerde chip voor 88 procent gecontroleerd. Van het vierde onderdeel zat de test toen op 65 procent.
Geen garantie
Het sneller testen van hardware zou de ontwikkelingstijd kunnen verkorten en de volgende generatie chips sneller, betrouwbaarder en veiliger maken, zegt het team.
Rob Hierons van de Universiteit van Sheffield is het ermee eens dat het testen van hardware vóór productie wenselijk, sneller en goedkoper zou zijn, maar waarschuwt dat geen enkele aanpak ooit kan garanderen dat een ontwerp vrij is van gebreken.
‘Fuzzing voegt wat richting toe aan het willekeurige testen, maar het zal uiteindelijk vaak beperkt zijn,’ zegt hij. Er kunnen altijd mankementen bestaan die ongelooflijk moeilijk te vinden zijn. ‘Je zou je fuzzer een hele lange tijd moeten laten draaien om ze te vinden.’