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 control – sunt 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 asincrone
– la 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 multimaster
– permit 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 seriale
– se 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.
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.