Testarea noilor cipuri din punct de vedere al securității și al fiabilității poate dura, adesea, mai mult decât proiectarea acestora. O nouă metodă de modelare virtuală și testare cu programe utilizate, în mod tradițional, pentru software și nu pentru hardware, ar putea reduce timpul de dezvoltare.
Testarea curentă a hardware-ului se face fie prin alegerea, în mod aleatoriu, a unui cip care este supus mai multor încercări, fie prin testarea, în mod formal, a fiecărei intrări și ieșiri posibile a fiecărui cip. Prima abordare poate scăpa din vedere, foarte ușor, multe probleme, iar a doua este imposibil de realizat pentru toate cipurile, cu excepția celor mai simple modele. În oricare din cazuri, aceste testări pot dura luni de zile.
Totuși, un singur defect al unei piese hardware poate produce o vulnerabilitate a computerelor la atacuri ale hackerilor, iar, spre deosebire de un defect al software-ului, aceasta nu poate fi remediată cu o actualizare.
Cercetătorii din cadrul Universității Michigan, Google și Virginia Tech au accelerat procesul de testare prin simularea cipurilor și prin utilizarea instrumentelor avansate de testare software pentru a le analiza. Cipurile prototip au fost traduse în cod executabil, la care s-a adăugat un program software pentru a le face să funcționeze în mod similar cu variantele fizice.
Testarea cipurilor permite inginerilor să utilizeze o abordare numită „fuzzing”, care urmărește rezultatele neașteptate sau blocajele care pot fi apoi examinate și remediate. Intrările problematice care au cauzat blocajele sunt mutate și adaptate pentru a testa probleme similare în celelalte zone ale cipului. Această metodă este mai productivă decât testele pur aleatorii.
O problemă pe care echipa de cercetători a trebuit să o rezolve a fost aceea că cipurile și codul funcționează în moduri foarte diferite. Cipurile trec printr-un flux constant de intrări și ieșiri, efectuând mii de operații simple, pentru a realiza o sarcină mai complexă, în timp ce testele software implică, adesea, utilizarea unor intrări unice, precum un text sau un fișier și observarea rezultatului de la ieșire. Echipa a trebuit să adapteze aplicațiile software pentru a rula în timp, și pentru a nu declanșa o singură intrare după care să aștepte răspunsul.
„A trebuit să inducă în eroare aceste fuzzere software pentru a interpreta intrările în mod diferit decât în spațiul software. Cu alte cuvinte, am încercat să introducem date într-o singură dimensiune și să le extragem în dimensiuni multiple”, a declarat Timothy Trippel din cadrul Universității din Michigan.
Această metodă a redus timpul necesar pentru a testa design-ul unui cip cu două ordine de mărime. Un cip, a cărui testare, durează 100 de zile poate fi analizat într-o singură zi.
În cadrul unui experiment, echipa de cercetători a preluat patru secțiuni ale unui cip OpenTitan proiectat de Google și le-a testat, folosind abordarea fuzzing. În decurs de o oră, aceștia acoperiseră 88% din liniile de cod care alcătuiau modelul software din trei secțiuni și 65% din a patra secțiune.
Cercetătorii consideră că testarea mai rapidă a hardware-ului ar putea reduce timpul de dezvoltare și ar putea aduce, mai rapid, către consumatori, următoarea generație de cipuri mai sigure și fiabile.
Rob Hierons din cadrul Universității din Sheffield este de acord că testarea hardware-ului înainte de producție ar putea fi mai rapidă și mai ieftină, dar a avertizat că nicio abordare nu ar putea garanta vreodată că un design este lipsit de defecte.
„Fuzzing-ul adaugă o direcție aleatorie testării tradiționale, dar, în cele din urmă, va fi adesea limitată. Vor exista defecte care vor fi incredibil de greu de găsit. În acest sens, va fi necesară utilizarea fuzzing-ului pentru o perioadă mai mare de timp”, a declarat Hierons.