Principii şi metodologii de testare pentru magistrale

 

1. Obiectivul lucrării

 

Lucrarea de faţă îşi propune să prezinte într-o formă cât mai exactă şi eficientă câteva principii, metodologii de testare şi termeni de comparaţie folosiţi pentru măsurarea performanţelor şi compararea diferitelor tipuri de magistrale. Se urmăreşte tratarea următoarelor aspecte legate de funcţionarea şi evaluarea performanţelor:

a)      clasificarea magistralelor după criterii predefinite;

b)      tipuri şi standarde de magistrale existente;

c)      prezentarea caracteristicilor generale ale magistralelor

 

2. Introducere teoretică

 

2.1. Conceptul de magistrală

 

În modelul maşinii von Neumann, comunicaţia dintre componentele sistemului se realizează prin legături dedicate între perechi de componente. Această abordare este relativ rigidă, limitând drastic scalabilitatea (posibilitatea de extindere) a sistemului. Adăugarea de noi componente este dificilă şi implică modificarea celor deja existente. Proiectarea unei noi componente implică cunoaşterea în detaliu a funcţionării celorlalte elemente deja prezente. Soluţionarea acestei probleme a venit din partea firmei Digital Equipment Corporation (DEC), care la sfârşitul anilor ’60 a lansat pe piaţă primul calculator (PDP 11), construit în jurul unei magistrale – magistrala UniBus.

Conceptual, magistrala este un mediu comun de comunicaţie între componentele unui sistem de calcul; fizic este alcătuită dintr-un set de linii de semnal care facilitează transferul de date şi realizează sincronizarea între componentele sistemului.

Introducerea conceptului de magistrală a revoluţionat modul de concepere şi proiectare a noilor sisteme de calcul. Modelul de calculator bazat pe magistrală a fost preluat mai ales de familiile de calculatoare mini şi micro. Prin standardizarea magistralelor, sistemele de calcul au devenit deschise, în sensul că un număr mai mare de producători au avut posibilitatea să realizeze componente pentru o anumită structură de calculator (module de memorie, interfeţe I/O, echipamente periferice), bazându-se numai pe specificaţiile magistralei.

În decursul timpului au fost dezvoltate diferite standarde de magistrală, care au urmărit evoluţia procesoarelor (a unităţilor centrale) şi a necesităţilor de comunicaţie ale acestora (viteză, mod de transfer, necesităţi de sincronizare şi control etc.). S-au dezvoltat, de asemenea, magistrale specializate pentru anumite tipuri de echipamente periferice (SCSI şi EIDE pentru unităţi de disc, console grafice, interfeţe de măsură şi control). Din acest punct de vedere. în momentul actual se pot distinge două clase de magistrale:

·        magistrale de sistem – dezvoltate mai ales pentru conectarea unităţii centrale la celelalte componente de bază ale sistemului (de exemplu: MultiBus, ISA, EISA, PCI);

·        magistrale specializate – care încearcă să optimizeze transferul de date cu un anumit tip de echipamente periferice (VESA, AGP, SCSI, GPIB).

Apariţia şi evoluţia ulterioară a microprocesoarelor a consacrat modelul de calculator bazat pe magistrală. Configuraţia semnalelor unui microprocesor este astfel concepută încât să permită conectarea uşoară la o magistrală de sistem. În general, fiecare familie de microprocesoare (Intel 8086, Z80, MC 68000) a impus o anumită structură şi un anumit standard de magistrală. Există însă anumite caracteristici comune acestor magistrale (principii de transfer, tipuri de semnale), astfel încât modulele proiectate pentru un tip de magistrală să poată fi, prin modificări minime, conectabile altor magistrale.

S-au introdus noi principii de transfer care compensează într-o oarecare măsură limitările de viteză impuse de legile fizicii de transmitere a semnalelor electrice. Cele mai reprezentative dintre acestea sunt transferul concurent prin tranzacţii şi prelucrarea pipe-line a cererilor de transfer.

 

2.2. Elemente definitorii ale magistralei

 

O magistrală se compune dintr-un set de semnale şi un set de reguli constituite într-un protocol, care guvernează transferul de informaţii şi accesul la mediul de comunicaţie. Informaţiile transferate pot fi: date, instrucţiuni şi informaţii de control şi sincronizare.

Protocolul se referă la:

·          caracteristicile mecanice: tip de conectori, număr de conectori alocaţi pentru un slot, formatul modulelor de extensie ataşabile, sertar şi fund de sertar (rack şi cablajul din spatele acestuia – această structură fiind specifică magistralelor industriale);

·          caracteristicile electrice ale componentelor conectate pe magistrală: nivele de tensiune, curenţi, încărcare, frecvenţă de lucru, rată de transfer;

·          secvenţa de generare a semnalelor necesare pentru efectuarea unui transfer;

·          timpii limită pentru diferitele faze ale unui transfer şi timpii de menţinere a unui anumit semnal;

·          intercondiţionările funcţionale şi temporale între diferitele tipuri de semnale.

În accepţiunea clasică, o magistrală se compune din următoarele tipuri de semnale.

Semnale de date – sunt semnale bidirecţionale utilizate pentru transferul de date şi instrucţiuni. La un moment dat doar un singur dispozitiv poate să emită pe liniile de date; numărul liniilor de date (8, 16, 32, 64) determină dimensiunea maximă a cuvântului de date care poate fi transferat la un moment dat şi, implicit, viteza medie de transfer a magistralei.

Semnale de adresă – sunt utilizate pentru specificarea adresei modulului destinaţie sau sursă de date, numărul de linii de adresă determinând spaţiul maxim de adresare permis de magistrală (de exemplu, 24 linii de adresă determină un spaţiu de adresare de 224 = 16 Mlocaţii).

Semnale de comandă – sunt semnale unidirecţionale generate de CPU (sau de către alt dispozitiv master), utilizate pentru specificarea direcţiei de transfer (de exemplu, semnale de citire sau scriere pentru CPU) şi a tipului de modul adresat (de memorie sau modul I/O, de memorie program, controler de întrerupere etc.).

Semnale de controlsunt semnale de utilizate pentru reglarea condiţiilor de transfer al datelor (temporizarea deschiderii şi închiderii amplificatoarelor de magistrală pentru semnalele vehiculate pe aceasta).

Semnale de întrerupere sunt generate de un controler dedicat, permit semnalizarea unor evenimente interne sau externe şi implicit determină întreruperea execuţiei programului curent.

Semnale de tact (de ceas) sunt generate de un oscilator cu cuarţ, fiind folosite pentru sincronizare şi pentru generarea unor semnale de frecvenţă programabilă.

Linii de alimentare – sun generate de sursa de tensiune a sistemului, fiind folosite pentru alimentarea modulelor sistemului.

Semnale de control a accesului – sunt utilizate pentru arbitrarea şi controlul accesului pe magistrală (în cazul magistralelor multimaster), fiind generate de un circuit specializat (arbitru de magistrală).

Numărul şi semnificaţia particulară a semnalelor depind de tipul şi destinaţia magistralei. Anumite grupe de semnale din cele prezentate pot să lipsească (de exemplu, semnalele de control) sau altele noi pot fi adăugate (semnalele de eroare, semnalele de control al lăţimii datelor transferate pe 8 sau pe 16 biţi etc.).

Magistralele pot fi clasificate în funcţie de mai multe criterii.

I. modul de lucru (în raport cu semnalul de tact):

·        magistrale sincrone – la care ciclurile de transfer sunt direct corelate cu semnalul de tact. Viteza de transfer este mai mare, însă rata de transfer a magistralei este limitată de frecvenţa tactului. Datorită vitezei limitate de propagare a semnalului electric, creşterea ratei ar duce la diferenţe de fază la capetele magistralei.

·        magistrale asincronela care nu există o legătură directă între evoluţia în timp a unui ciclu de transfer şi tactul sistemului. Majoritatea magistralelor actuale lucrează pe acest principiu (de exemplu, ISA, EISA, MultiBus).

II. numărul de module master conectate pe magistrală:

·        magistrale unimaster există un singur modul master pe magistrală. Nu necesită mecanisme de arbitrare a magistralei (un modul master poate iniţia un ciclu de transfer, pe când un modul slave poate fi comandat în timpul unui ciclu de transfer, neavând elementele necesare pentru a prelua controlul magistralei).

·        magistrale multimasterpermit conectarea mai multor module master pe acelaşi tronson de magistrală. Magistrala trebuie să conţină semnale de arbitrare şi un protocol de transfer al controlului pe magistrală (de exemplu, MultiBus, VME).

III. modul de realizare al transferului de date:

·        magistrale cu transfer prin cicluri (magistrale secvenţiale) regula de bază: ciclurile de transfer se desfăşoară secvenţial, la un moment dat cel mult un ciclu de transfer fiind în curs de desfăşurare. Majoritatea magistralelor folosesc acest principiu de transfer.

În funcţie de direcţia de transfer se disting şase cicluri semnificative:

¡        cicluri de citire (respectiv scriere) din/în memorie;

¡        cicluri de citire (respectiv scriere) de la/la un port intrare-ieşire;

¡        cicluri de acces direct la memorie (citire/scriere).

·        magistrale tranzacţionale transferul de date se efectuează prin tranzacţii. O tranzacţie este divizată în mai multe faze. Mai multe tranzacţii se pot desfăşura simultan, cu condiţia ca tranzacţiile să fie în faze diferite; această restricţie provine din faptul că fiecare fază a unei tranzacţii foloseşte un subset din mulţimea semnalelor magistralei. Teoretic, la aceste magistrale factorul de creştere a vitezei (în comparaţie cu o magistrală secvenţială) este egal cu numărul de faze în care se divide o tranzacţie (de exemplu, magistrala procesorului Pentium).

IV. numărul semnalelor utilizate în transferul de date:

·        magistrale serialese utilizează rar ca mijloc de comunicaţie între componentele de bază ale unui calculator (CPU, memorie, interfeţe de I/O etc.), datorită vitezei de transfer relativ scăzute. Se folosesc, totuşi, în anumite sisteme dedicate bazate pe microcontrolere, la care costul şi dimensiunea redusă sunt parametri definitorii (de exemplu, magistrala USB).

·        magistrale paralele – cele mai răspândite.

 

2.3. Familii şi standarde de magistrală

 

Caracteristicile constructive ale unei magistrale sunt influenţate de cerinţele şi particularităţile funcţionale ale procesorului pentru care a fost concepută. Acest fapt vine în contradicţie cu ideea de sistem deschis, conform căreia mediul de comunicaţie între componentele unui sistem trebuie să fie independent de producător. Firmele dominante în domeniul construcţiei de calculatoare şi-au dezvoltat propriile standarde de magistrală adaptate familiilor de procesoare pe care le produc.

Exemple. DEC – UniBus, Intel – MultiBus, IBM – PC Bus HP – GPIB etc.

Unele din aceste magistrale sunt deschise, în sensul că standardul este accesibil şi utilizabil liber de orice producător; altele au fost patentate şi au restricţii de utilizare, de exemplu magistrala MicroChannel (MCA) a firmei IBM, folosită în construcţia calculatoarelor PS/2. Există şi standarde dezvoltate de grupuri de producători cu interese apropiate. Astfel au apărut standardele Camac, FastBus, FutureBus.

În cazul acestor magistrale se pune problema asigurării interoperabilităţii şi compatibilităţii între module realizate de diverşi producători. Metoda de eliminare a unor astfel de probleme este supunerea componentelor la teste de conformanţă.

Cele mai cunoscute foruri internaţionale de standardizare care au activitate în domeniul magistralelor sunt IEEE, ANSI şi IEC.

În cadrul unui sistem de calcul pot să coexiste mai multe tipuri de standarde, specializate pe transferul de date între anumite tipuri de componente de sistem. Astfel, se poate utiliza o magistrală de mare viteză pentru transferul între procesor şi memorie, o magistrală cu acces multiplu (multimaster) pentru unele periferice de mare viteză (disc, interfaţă video) şi o magistrală de mică viteză pentru perifericele lente. În aplicaţiile de control se mai poate adăuga şi o magistrală de instrumentaţie, adaptată pentru culegerea datelor de proces.

Pentru a satisface o gamă largă de cerinţe, s-au dezvoltat familii de magistrale care cuprind mai multe variante ale unei magistrale de bază şi sunt compatibile între ele într-o oarecare măsură (interfeţele dezvoltate pentru aceste variante necesită modificări minore pentru compatibilizare).

În prezent există mai multe astfel de familii de magistrale:

·        magistrale dezvoltate pentru calculatoare Dec – UniBus, QBus şi VAXBI;

·        magistrale dezvoltate pentru procesoarele Intel – MultiBus I, MultiBus II şi extensii ale acestora;

·        magistrale inspirate de structura seriei de procesoare Motorola – magistralele VME;

·        magistrale de instrumentaţie – familia GPIB (dezvoltată de Hewlett Packard), IEEE488 şi Camac.

În domeniul PC-urilor s-au dezvoltat mai multe magistrale care au devenit standarde de facto înainte ca acestea să fie propuse pentru standardizare formală: ISA, EISA, VESA, PCI, SCSI, AGP, USB, PCIExpress etc.

 

2.4. Tipuri de magistrale

 

Aşa cum s-a arătat mai sus, o magistrală (bus) este o structură de interconectare (un ansamblu de linii de comunicaţii) între mai multe circuite sau unităţi ale unui calculator.

Un PC are diferite tipuri de magistrale, între care se află următoarele:

·        magistrala procesorului;

·        magistrala de adrese;

·        magistrala memoriei;

·        magistrala locală

·        magistrala I/O.

Exemple. Camac (fizică nucleară), FastBus (fizica energetică), OmniBus (PDP-8), UniBus (PDP-11), MassBus (VAX şi PDP-11), MegaBus (Moneywell), MicroChannel (PS/2), NuBus (MacIntosh 2), VersaBus (Motorola), VME (Motorola 680x0), MultiBus 1 (INTEL 8086), MultiBus 2 (INTEL 80386), ISA sau ATBus (INTEL 80286), EISA (INTEL 80386), MCA (IBM, 80386), VLBus (VESA, 80486), PCI (Pentium), FireWire (IEEE 1394) etc.

 

3. Descrierea aplicaţiei

 

Aplicaţia aferentă acestei lucrări de laborator este realizată în mediul de dezvoltare Visual C#.NET şi urmăreşte dezvoltarea următoarelor noţiuni:

a)        implementarea în interiorul aplicaţiei a unui catalog de referinţă în ceea ce priveşte tipurile de magistrale folosite în cadrul unei analize comparative;

b)       implementarea în cadrul aplicaţiei a unui modul de analiză comparativă a magistralelor în vederea evaluării acestora din punct de vedere al performanţei.

           

 

Fig. 2. Meniul principal al aplicaţiei.

 

Aplicaţia conţine câte un formular pentru fiecare noţiune implementată, un formular cu meniul principal al aplicaţiei, precum şi un formular auxiliar, folosit pentru generarea graficelor de comparaţie.

            Formularul principal al aplicaţiei a fost construit în jurul a două butoane de control, corespunzătoare celor două funcţii generale ale aplicaţiei. Acestea sunt separate vizual conform celor două module majore: tipuri şi familii de magistrale, respectiv, comparaţie între diverse tipuri de magistrale (vezi figura 2).

Cel de-al doilea formular component al platformei este formularul intitulat Tipuri şi familii de magistrale, al cărui rol este de a prezenta utilizatorului un catalog cuprinzând categoriile şi tehnologiile de magistrale existente.

 Acest formular funcţionează prin intermediul a două ferestre de tip text, în care se vor afişa informaţiile despre magistralele selectate. De asemenea, se folosesc două ferestre de tip picture, a căror funcţie este de a afişa informaţii grafice legate de magistralele selectate de către utilizator. Ca element ajutător, s-au inclus şi două scrollbar-uri verticale, care permit utilizatorului o manipulare mai uşoară a textului afişat (vezi figura 3).

 

 

Fig. 3. Formularul Tipuri şi familii de magistrale.

 

Al treilea formular dezvoltat în cadrul aplicaţiei este intitulat Comparaţie între diverse tipuri de magistrale şi are în vedere implementarea funcţiilor de comparaţie a magistralelor în funcţie de clasificările stabilite în baza teoretică a lucrării. Acest formular deosebit de dens, fapt care se datorează în principal numărului mare de magistrale disponibile pentru comparaţie.

În interiorul acestui formular, tipurile de magistrale sunt diferenţiate după criteriile prezentate în partea teoretică. Utilizatorul are la dispoziţie o bază largă de selecţie în ceea ce priveşte compararea de magistrale. Acestea pot fi selectate în funcţie de cinci criterii, şi anume (vezi figura 4):

·        rata maximă de transfer;

·        numărul liniilor de adresă;

·        numărul liniilor de date;

·        frecvenţa de lucru;

·        numărul ciclurilor de date transferate per perioadă de ceas (clock).

 

 

Fig. 4. Formularul Comparaţie între diverse tipuri de magistrale.

 

Deşi se pot selecta pentru comparaţie toate magistralele în mod simultan, este recomandat ca numărul magistralelor comparate simultan să se situeze în intervalul 2¸10 magistrale, pentru a nu îngreuna vizualizarea şi inteligibilitatea graficului.

Butonul Afişare grafic porneşte formularul următor, în cadrul căruia se efectuează afişarea efectivă. Acest ultim formular component al aplicaţiei are rolul de a afişa diagrama ale cărei elemente grafice au fost selectate în formularul anterior. S-a ales afişarea graficului într-un formular diferit pentru a preveni supraaglomerarea formularului de comparaţie a magistralelor. Astfel, singurul element component al acestui formular este un control de generare a graficelor, care preia valorile variabilelor definite în formularul anterior (vezi figura 5).

 

 

Fig. 5. Formularul Grafic.

 

4. Desfăşurarea lucrării

 

1.      Se parcurge introducerea teoretică pentru înţelegerea aspectelor care stau la baza aplicaţiei.

2.      Se parcurge capitolul de descriere a aplicaţiei pentru aprofundarea opţiunilor pe care aplicaţia le pune la dispoziţie.

3.      Se lansează aplicaţia de testare a magistralelor: Magistrale.exe.

4.      Se deschide formularul Tipuri şi familii de magistrale şi se compară tipurile de magistrale prezentate în cadrul acestui formular. Se studiază diferenţele constructive şi aplicative ale magistralelor.

·        Se selectează în prima casetă o magistrală ale cărei caracteristici şi imagini vor fi afişate pe ecran.

·        Se selectează în cea de-a doua casetă o magistrală ale cărei caracteristici şi imagini vor fi afişate pe ecran

·        Se compară diferenţele tehnologice şi constructive dintre cele două tipuri de magistrale.

·        Se procedează în mod asemănător pentru toate tipurile de magistrale disponibile pentru comparaţie.

5.      Se deschide formularul Comparaţie între diverse tipuri de magistrale şi se compară gradual toate magistralele disponibile, conform celor cinci criterii de evaluare.

·        Se studiază toate magistralele disponibile şi se selectează magistralele dorite pentru comparaţie.

Atenţie! Deşi este posibilă selectarea simultană a tuturor magistralelor pentru comparaţie, este recomandabil ca utilizatorul să se limiteze la cca. 8 magistrale comparate simultan.

·        Se selectează tipul de analiză comparativă dorit şi se notează rezultatele obţinute.

·        Dacă se doreşte adăugarea unei magistrale ale cărei caracteristici să fie definite de utilizator, se acţionează căsuţa Adaugă şi se introduc numele magistralei, rata maximă de transfer, numărul liniilor de adresă, numărul liniilor de date, frecvenţa de lucru şi numărul ciclurilor de date per perioadă de ceas (clock). Se notează rezultatele obţinute în urma comparaţiei alese.

·        Dacă se doreşte o nouă comparaţie, se deselectează magistralele care urmează a fi eliminate din cadrul comparaţie şi se selectează noile magistrale care se introduc în comparaţie.

 

5. Întrebări

 

1.       Enumeraţi criteriile de clasificare ale magistralelor şi categoriile în care se împart aceste magistrale în funcţie de criterii.

2.       Cum s-au dezvoltat în ultimii ani magistralele specializate? Daţi exemple.

3.       Cum poate fi pusă în legătură evoluţia magistralelor cu cea a procesoarelor?

4.       Care sunt parametrii care măsoară performanţa unei magistrale?

5.       Comparaţi magistralele secvenţiale cu cele tranzacţionale. Daţi exemple.

6.       Enumeraţi criteriile de clasificare ale magistralelor prezentate în aplicaţie.

7.       Clasificaţi magistralele prezentate în aplicaţie în funcţie de rata de transfer.

8.               Găsiţi un tip de magistrală care nu face parte din aplicaţie şi realizaţi o comparaţie.