Testarea pci expres cu introducerea de erori pentru a îmbunătăți fiabilitatea - totul despre electronica radio

Pe măsură ce orice tehnologie se îmbunătățește, este nevoie de creșterea fiabilității globale a sistemului - pentru a se asigura funcționarea și rezistența la influențe externe. Această cerință se aplică busului Express Peripheral Component Interconnect (PCI) Express. Pe măsură ce PCI Express începe să fie utilizat într-un număr tot mai mare de aplicații și numărul de dispozitive care susțin această magistrală crește, ar trebui să se aștepte ca acesta să fie mai rezistent la defecțiuni și la funcționarea mai fiabilă.

Dezvoltat de comitetul PCI-SIG, specificațiile pentru magistrala PCI Express oferă o serie de mecanisme de notificare a utilizatorilor de erori. Dacă sunt detectate defecțiuni, în funcție de tipul lor, acestea pot fi procesate prin hardware sau transmise conducătorului auto sau programului de aplicații. De exemplu, un program de aplicație poate efectua o comutare la un dispozitiv de lucru, evitând astfel abordarea unui dispozitiv care funcționează defectuos. Teoretic, aceasta este o metodă excelentă de creștere a fiabilității sistemului în ansamblu. Problema este cum să generăm astfel de erori pentru a testa răspunsul sistemului la apariția acestora. Articolul discută câteva metode tradiționale de testare cu introducerea de erori și unele inovații în metodologia de testare.

Testarea cu introducerea erorilor

Specificația PCI-SIG PCI Express oferă două mecanisme de notificare a utilizatorilor de erori:

  • notificare de eroare de bază;
  • notificare de eroare extinsă.
  • corectabile;
  • incorigibil - nu fatal;
  • incorigibil - fatal.

Erori corectabile pot fi procesate de hardware și nu au un impact funcțional asupra sănătății sistemului sau a programului de aplicații. În schimb, erorile nerecordabile sunt gestionate de driverul de dispozitiv sau de programul de aplicație. Fiecare aplicație și sistem procesează erori în diferite moduri, în funcție de tipul lor.

  • seturi complete de teste gata;
  • simulatoare;
  • generatoare de interferențe.

Kituri de testare pregătite

Cel mai bun exemplu al unui set de teste gata sunt testele efectuate folosind o cartelă de testare specială (PTC), care este folosită în laboratoarele PCI-SIG pentru testarea compatibilității. Setul de teste gata conține, de regulă, mai multe scenarii de testare. De exemplu, PTC include 13 scenarii care sunt folosite pentru testarea stratului de legătură de date și nivelul tranzacției PCI

Express. Principalul avantaj al setului de teste gata este ușurința de utilizare: testele sunt începute cu câteva clicuri ale mouse-ului și sunt efectuate automat, cu un raport despre rezultatele generate pentru fiecare scenariu utilizat.

Una dintre limitările seturilor de teste gata se datorează faptului că acestea sunt verificate numai pe o parte a canalului. Canalul PCI Express este format din puncte finale și un complex de rutare, pentru a garanta o capacitate operațională deplină, inginerul trebuie să testeze ambele părți ale canalului în condiții reale de lucru. Mai mult decât atât, el trebuie să introducă erori în punctele de capăt și în complexul de rutare și apoi să se asigure că ambele părți răspund corect acestor erori.

De obicei, cardul PTC înlocuiește placa de bază și poate crea numai erori în dispozitivele situate la punctele finale (Figura 1). Acest lucru restricționează aplicabilitatea acestor teste prin testarea numai a punctelor finale. În plus, deoarece obiectivele nu sunt disponibile într-un sistem real, driverele sau programele de testare nu pot fi instalate. Ca urmare, seturile complete de teste gata nu pot fi utilizate pentru testarea la nivel de sistem.

Fig. 1. Testați punctele finale ale dispozitivului utilizând PTC

Un alt dezavantaj al setului de teste pregătite este o alegere limitată de teste și este dificil sau imposibil să le schimbi. Din nou, să luăm PTC ca exemplu. Această placă conține 13 teste și acoperă doar o mică parte din specificații. Acest lucru este suficient pentru a verifica interoperabilitatea, dar nu suficient pentru a verifica în mod fiabil dispozitivul în ansamblu. Un set gata de utilizare oferă de obicei un set fix de teste și este foarte dificil pentru utilizatorul final să extindă numărul de scenarii de testare din acest pachet.

Desigur, pe piață există și alte produse care acoperă o gamă mai largă de teste decât PTC, de exemplu, pentru PCI Express Gen2 există kituri care includ mai mult de 170 de teste. Deși zona de testare a fost extinsă, această suită de testare încă suferă de un grad înalt de statică și lipsă de adaptabilitate la cerințele în schimbare ale utilizatorilor sau pentru a extinde domeniul de testare.

Simulatoarele sunt instrumente care imită o parte a unui canal. Unele dintre ele pot fi programate astfel încât să emuleze un punct final sau un complex de rutare a canalului, în timp ce altele sunt configurate static pentru a emula numai complexul de punct final sau de rutare (Figura 2a). Metoda generală de testare rămâne aceeași. Pentru a testa dispozitivul final, inginerul înlocuiește complexul de rutare cu un simulator care emulează acest complex de rutare (figura 2b). Pentru a testa complexul de rutare, punctul final este înlocuit cu un simulator, care apoi emulează comportamentul acestui punct final. Cu toate acestea, spre deosebire de un dispozitiv real sau un complex de rutare, simulatorul poate fi programat atât pentru funcționarea corectă, cât și pentru emularea unei defecțiuni.

Fig. 2. a) Schema de comutare a simulatorului pentru testarea complexului de rutare; b) Simulator cu backplane pentru testarea punctului final

Simulatoarele sunt foarte importante în stadiul inițial al ciclului de dezvoltare, când sunt disponibile numai un număr limitat de dispozitive. Acestea pot fi utilizate pentru testarea funcțională inițială, cunoscută și ca etapa primară de aducere pe piață a unui sistem sau a unui dispozitiv, dar acestea nu depind de disponibilitatea altor dispozitive. Acest lucru este important în acele scenarii în care dispozitivul testat este primul dispozitiv de acest tip de pe piață.

Majoritatea imitatorilor pot fi considerați ca niște mașini de stat care funcționează în conformitate cu cerințele protocolului și pot fi programabile printr-o interfață grafică (GUI) grafică sau printr-un API pentru aplicații de programare. Un inginer poate programa un simulator printr-un GUI sau API, astfel încât să facă aproape orice. Rezultatul este un instrument foarte flexibil care poate fi utilizat pentru testarea funcțională, introducând erori sau caracteristici de măsurare.

Dar, ca întotdeauna, pluses sunt urmate de cons. Deoarece simulatorul este foarte flexibil, este mult mai greu de reglat și de controlat. De exemplu, imaginați-vă că generarea de erori este că trebuie să introduceți accidental un nivel de TP deteriorat (TLP) după ce stabiliți o conexiune și configurați dispozitivul. Într-un sistem normal, această operație este efectuată printr-o rutare complexă și drivere. Cu toate acestea, acum, când folosim simulatorul pentru a emula complexul de rutare, trebuie să recreăm acest proces de inițiere manual înainte de a începe să introducem eroarea. Această sarcină este foarte greoaie.

Cea de-a doua limitare a simulatoarelor se regăsește și în domeniul testării sistemului. Simulatorul este un instrument excelent pentru testarea dispozitivelor dezvoltate sau a testelor funcționale. Cu toate acestea, în procesul de testare este important să se vadă funcționarea întregului sistem în ansamblu, inclusiv un complex de rutare, dispozitive, drivere și programe de aplicații. Una dintre întrebările-cheie pe care trebuie să le răspundă este: este eroarea înregistrată pe dispozitivul de destinație? De exemplu, dacă un card de rețea raportează o eroare irecuperabilă, cine ar trebui să ia măsurile corespunzătoare - driverul sau aplicația? Folosind simulatorul, eliminăm unele componente ale sistemului și, din moment ce simulatorul emulează o parte a sistemului, nu putem testa comportamentul sistemului ca un întreg.

Generatoare de interferențe

Principalul avantaj al generatorului de interferențe este că poate testa întregul sistem: un complex de rutare, un dispozitiv finit, precum și driverele și programele de aplicații. Generatorul de jammer poate fi programat pentru a introduce erori în complexul de rutare și în dispozitivul de destinație. Deoarece întregul sistem rulează, inginerul poate observa răspunsul driverului sau programului la o eroare specifică.

Un alt avantaj al generatorului de interferențe este faptul că este mai ușor de configurat decât simulatorul. Așa cum am menționat mai sus, folosind simulatorul, inginerul este forțat să programeze manual întregul proces de inițiere. Generatorul este transparent în timpul procesului de inițiere, astfel încât acesta din urmă este executat automat de complexul de rutare și de dispozitivul final. După inițiere, utilizatorul poate programa jammer-ul pentru a introduce erori utilizând secvența. Sequencerul este o mașină de stat în care există condiții dacă / altceva. Dacă o astfel de condiție este îndeplinită, atunci se efectuează o anumită operație.

În același exemplu menționat mai sus, introducerea accidentală a TLP-urilor deteriorate este ușor de configurat în generatorul de interferențe. După configurarea dispozitivului, generatorul intră aleatoriu în TLP cu antetul modificat (TLP corupt).

Deoarece generatorul de interferențe nu generează mesaje sau trafic, este necesar prezența ambelor dispozitive la fiecare capăt al canalului. Acest lucru nu este întotdeauna posibil în primele etape ale creării unei noi tehnologii. Prin urmare, generatorul de zgomot nu poate fi folosit în stadiile incipiente de dezvoltare, în acest caz simulatorul se ocupă mai bine de sarcină.

concluzie

În piața modernă există diferite tipuri de instrumente. Alegerea unui instrument adecvat este determinată de mulți factori. Primul și cel mai important dintre acestea este o înțelegere a nivelului de fiabilitate care este așteptat de la dispozitivul investigat. Atunci când se fabrică o cartelă de rețea pentru electronice de consum, testarea tuturor aspectelor caracteristicilor tehnice și acoperirea tuturor scenariilor negative posibile poate să nu joace un rol atât de important. În acest caz, o suită de testare rapidă și ușor de folosit, cu o acoperire destul de bună (mai mult de 13 scenarii de testare) este destul de potrivită. Cu toate acestea, dacă un inginer dezvoltă o platformă server pentru aplicații responsabile, este foarte important să testați fiabilitatea și capacitatea de a restabili întregul sistem. În astfel de cazuri, se recomandă utilizarea unui generator de interferențe, deoarece vă permite să testați funcționarea în comun a hardware-ului, a software-ului și a driverelor.

Cel de-al doilea factor care trebuie luat în considerare este faza de dezvoltare a dispozitivului testat: este dispozitivul în stadiul inițial de proiectare sau trebuie să recreați instrumentul utilizat în laboratorul PCI-SIG pentru testarea compatibilității? Pentru testarea timpurie a produsului, de exemplu, în timpul fazei de dezvoltare, este important să se simplifice mediul de lucru. În acest stadiu, un simulator poate fi un instrument bun, care emulează un complex de rutare, oferind un control complet asupra a ceea ce transmite. Cu toate acestea, pentru a testa nivelul sistemului sau pentru a crea erori în sistemul complet în laboratoarele de asistență pentru clienți sau pentru a recrea problemele pe care le are un utilizator, cea mai bună alegere ar putea fi un generator de interferențe.

Nu există o soluție universală. Trebuie să alegeți întotdeauna instrumentul potrivit pentru fiecare sarcină specifică.