Documente Academic
Documente Profesional
Documente Cultură
73
Arhitectura Calculatoarelor
74
Arhitectura Calculatoarelor
75
n South hub este ncorporat timer-ul (8254), controllerul de ntreruperi (APIC), controllerul DMA.
Principiul de funcionare a controllerului DMA este prezentat n figura 7.3.
Arhitectura Calculatoarelor
76
Figura 7.3
Activitatea de DMA este luat drept etalon pentru viteza maxim de circulaie a datelor pe magistrala
unui calculator (microprocesorul nu particip i deci adresarea memoriei i perifericelor nu este afectat
de timpul de calcul al adresei fizice).
Arhitectura HyperTransport
Tehnologia (arhitectura) HyperTransport (HT) a fost proiectat ca alternativ arhitecturii bazate pe
magistrale i puni. Tehnologia a fost elaborat de firmele AMD, Apple Computers, Broadcom, Cisco
Systems, NVIDIA, PMC-Sierra, SGI, SiPackets, Sun Microsystems, Transmeta.
Principala inovaie nlocuirea conectrii prin intermediul magistralelor a dispozitivelor periferice prin
conectarea punct-la-punct (point-to-point) ce presupune transferuri de date concomitent n ambele
direcii ntre 2 noduri (similar cu topologia PCI-e, detaliat ulterior). Prin aceast tehnologie se
majoreaz considerabil viteza de transfer a datelor. Schema structural a arhitecturii HT este prezentat
n figura 7.4. Puntea de baz (host bridge) asigur legtura cu nucleul sistemului microprocesorul i
memoria. Controllerele perifericelor, ce necesit rate nalte de transfer de date sunt realizate n form de
tuneluri HT (HT Tunnel). Structura conectrii controllerului grafic AGP i a magistralei PCI-X la
magistrala HT, organizate ca tunel, este prezentat n figura 7.5, 7.6.
Caracteristicile principale ale tunelului sunt:
Interfaa HyperTransport pe 16 bii (Side A) ofer o rat maximal de transfer (lime de band)
pn la 6,4 GB/s;
Interfaa HyperTransport pe 8 bii (Side B) ofer o rat maximal de transfer pn la 1,6 GB/s.
n arhitectur este prevzut i conectarea prin punte cu magistrala PCI.
Arhitectura HT asigur toate tipurile de tranzacii a microprocesorului i dispozitivelor PCI, PCI-X i
AGP. Tranzaciile se efectueaz n form de pachete de diferite tipuri. Iniiatorul transferului transmite
pachetul-cerere i datele necesare tranzaciei scriere, dispozitivul int trimite pachetul-confirmare i date
pentru tranzacii de citire.
Semnalizarea ntreruperilor n HT este realizat tot pe pachete: dispozitivul trimite mesajul execut
tranzacia scriere pe adresa indicat la configurare. Rutina de tratare a ntreruperilor trimite mesajul de
finalizare ntrerupere prelucrat (End Of Interrupt, EOI), executnd o scriere pe alt
adres aferent dispozitivului dat.
Arhitectura Calculatoarelor
77
Arhitectura Calculatoarelor
78
Arhitectura Calculatoarelor
79
Arhitectura Calculatoarelor
80
Magistrala de sistem este destinat schimbului de informaie ntre CPU i alte componente ale PC.
Dintre ele fac parte magistralele GTL+(AGTL+), EV6.
Magistrala de sistem GTL+(AGTL+) este magistrala de interaciune ntre CPU i Chipset, a fost elaborat
de Intel pentru microprocesoarele Pentium III (Pentium IV). Limea magistralei 64 bii, frecvena
(ceas, FSB) 100, 133 (200, 266) MHz, viteza de transfer 800 MB/s, 1,06 GB/s (3,2 , 4,2 GB/s).
Magistrala EV6 a fost elaborat de firma Digital Equipment pentru CPU Alpha 21264. Ea este folosit
de firma AMD pentru sisteme cu microprocesoare K-7. Difer de alte magistrale prin: validarea
informaiei se petrece pe ambele fronturi ale semnalului de frecven, specificarea magistralei permite
majorarea frecvenei pn la 377 MHz.
7.4 Magistrala PCI
7.4.1 Magistrala paralel PCI
PCI (Peripheral Component Interconnect) local bus magistrala de conectare a componentelor
periferice. Aceast magistral de extensie a fost destinat procesoarelor Pentium i prima versiune a
aprut n anul 1992. n specificarea PCI versiunea 2.0 (1993) a fost introdus specificarea conectorilor i
cartelelor de extensie. n versiunea 2.1 (1995) a fost introdus frecvena maxim a ceasului de 66 MHz.
Descrierea dat se bazeaz pe textul standardului PCI Local Bus Spesification. Revision 2.2 de la
18.12. 1998, publicat de organizaia PCI SIG (Special Interest Grup).
Magistrala este sincron validarea semnalelor se petrece pe frontul pozitiv a semnalului CLK.
Frecvena nominal de sincronizare 33 MHz. Specificarea 2.1, permite mrirea frecvenei pn la 66
MHz prin acordul tuturor dispozitivelor conectate la magistral. La o frecven de 33 MHz, se poate
obine o rat de transfer de 132 MB/s n cazul implementrii pe 32 de bii, sau 264 MB/s pentru 64 de bii.
Cu o frecven a ceasului de 66 MHz, se pot obine rate de transfer de 264 MB/s, respectiv 528 MB/s.
Configurarea
Dispozitivul PCI poate fi multifuncional, adic const din mai multe funcii. Fiecrei funcii se
atribuie un spaiu de configurare de 256 bytes (Standardul PCI determin pentru fiecare slot spaiu de
configurare de pn la 256 regitri (pe 8 bits), ce nu se refer la spaiul de memorie i nici la spaiul de
intrare/ieire). Accesul la aceti regitri se petrece n faze speciale ale magistralei Configuration Read i
Configuration Write. Numrul funciei (function number), n tranzaciile de configurare este transmis pe
liniile AD[10:8] (liniile AD[0:7] adreseaz registrii din interiorul dispozitivului PCI). Deci dispozitivul poate
ncorpora pn la 8 funcii. La configurare se adreseaz funcia cu numrul 0.
La o magistral PCI pot fi conectate cteva dispozitive fiecare cu numrul su (device number). n sistem
pot fi cteva magistrale PCI, fiecare cu numrul su (PCI bus number). Magistralele se numeroteaz
consecutiv.
Protocolul magistralei PCI
La fiecare transfer particip dou dispozitive: iniiatorul i inta. Iniiatorul, sau dispozitivul master,
este cel care iniiaz un transfer. inta, sau dispozitivul slave, este adresat de iniiator n scopul executrii
transferului. Dispozitivele iniiator i int sunt numite ageni PCI.
Transferuri n mod exploziv
Un asemenea transfer const dintr-o singur faz de adrese urmat de mai multe faze de date.
Arbitrajul de magistral trebuie executat o singur dat . n timpul fazei de adrese se transmite adresa de
nceput i tipul tranzaciei care urmeaz . Dispozitivul int memoreaz adresa de nceput ntr-un contor
de adrese, i va incrementa adresa n fiecare faz de date.
n cazul magistralei PCI, cele mai multe transferuri se execut n mod exploziv, cele mai multe
dispozitive fiind proiectate astfel nct s permit asemenea transferuri. Dac un dispozitiv int poate
efectua numai tranzacii singulare, la ncercarea dispozitivului master de a executa o tranzacie n mod
exploziv, inta termin tranzacia dup prima faz de date. Astfel dispozitivul master va fi obligat s
solicite din nou magistrala printr-un proces de arbitraj. n acest mod performanele vor fi mai reduse, dar
tranzaciile singulare se pot utiliza pentru dispozitivele care nu necesit rate ridicate de transfer.
Presupunnd c nici iniiatorul i nici dispozitivul int nu insereaz stri de ateptare, poate fi transferat
cte un cuvnt la fiecare front cresctor al semnalului de ceas.
Tranzacii
Faza de adrese
Toate tranzaciile pe magistrala PCI constau dintr-o faz de adrese urmat de una sau mai multe faze de
date. Excepia o reprezint tranzaciile n care se utilizeaz adresarea pe 64 de bii, unde adresa este
Arhitectura Calculatoarelor
81
furnizat n dou faze de adrese. O faz de adrese are durata unei perioade de ceas. n aceast faz,
iniiatorul identific dispozitivul int i tipul tranzaciei. inta este identificat prin transmiterea unei
adrese de start pe magistrala de adrese/date n cadrul domeniului de adrese asignat dispozitivului.
Tipul tranzaciei este identificat prin depunerea tipului comenzii pe liniile C/BE. Iniiatorul activeaz
semnalul FRAME pentru a indica prezena unei adrese de start i tip de tranzacie valide. Deoarece adresa
de start este prezent numai pe durata unei perioade de ceas, fiecare dispozitiv int trebuie s memoreze
adresa pentru a putea fi decodificat ulterior.
Atunci cnd un dispozitiv int determin faptul c este adresat, trebuie s activeze semnalul
DEVSEL, pentru a revendica tranzacia. Dac acest semnal nu va fi activat ntr-un timp predeterminat,
iniiatorul va abandona tranzacia. Dup terminarea fazei de adrese, magistrala de adrese/date este
utilizat pentru transferul datelor n cadrul unei sau mai multor faze de date.
Faza de date
Pe durata fazei sau fazelor de date are loc transferul datelor ntre iniiator i int . Att iniiatorul ct i
inta trebuie s indice faptul c sunt pregtite pentru terminarea unei faze de date prin activarea
semnalelor IRDY, respectiv TRDY . n cazul n care nu sunt activate ambele semnale la nceputul unei
perioade de ceas, se va insera o stare de ateptare cu durata unei perioade.
Terminarea tranzaciei
Iniiatorul identific durata total a unui transfer cu ajutorul semnalului FRAME. Acest semnal este activat
la nceputul fazei de adrese i rmne activat pn cnd iniiatorul este pregtit pentru a termina faza
final de date (activeaz IRDY ). Executarea ultimei faze de date este indicat de iniiator prin
dezactivarea semnalului FRAME i activarea semnalului IRDY . Dup terminarea ultimului transfer,
iniiatorul readuce magistrala n starea inactiv prin dezactivarea semnalului IRDY .
Arbitrajul de magistral are loc n timp ce un dispozitiv master utilizeaz magistrala. Dac arbitrul
de magistral a acordat n prealabil magistrala unui alt dispozitiv master, acest dispozitiv poate detecta
starea inactiv a magistralei prin faptul c semnalele FRAME i IRDY sunt ambele dezactivate.
Se descriu n continuare principalele semnale.
AD[31:0] (Address/Data) - Reprezint magistrala multiplexat de adrese i de date. n timpul fazei
de adrese, pe aceast magistral se transmite adresa de start a tranzaciei. n timpul fazei de date, pe
liniile AD[31:0] se transmit date provenite de la iniiator (la o scriere) sau de la inta adresat (la o
citire).
C / BE [3:0] (Command or Byte Enable) - n timpul fazei de adrese aceste linii definesc o comand
pe care iniiatorul o utilizeaz pentru a indica tipul tranzaciei necesare. Dintre comenzile posibile
se amintesc citirea din memorie, scrierea n memorie, citirea de la un dispozitiv de I/E, scrierea la
un dispozitiv de I/E, achitarea unei ntreruperi etc. n timpul fazei de date aceste linii sunt utilizate
de iniiator pentru a indica octeii care trebuie transferai din cadrul cuvntului dublu adresat i
grupele de linii ale magistralei AD care trebuie utilizate pentru transferul datelor.
FRAME (Cycle Frame) - Este activat de iniiator i indic nceputul i durata unei tranzacii pe
magistral . O tranzacie poate consta din una sau mai multe transferuri de date ntre iniiatorul
curent i inta adresat. Semnalul FRAME este dezactivat atunci cnd iniiatorul este pregtit s
ncheie faza final de date.
TRDY (Target Ready) - Este activat de dispozitivul int adresat atunci cnd acest dispozitiv este
pregtit pentru un transfer de date (poate executa faza curent de date). Faza de date este terminat
atunci cnd inta activeaz TRDY i iniiatorul activeaz IRDY la frontul cresctor al semnalului de
ceas. n timpul unei operaii de citire, semnalul TRDY activat indic faptul c inta a depus date
valide pe magistrala de date. n timpul unei operaii de scriere, semnalul TRDY activat indic faptul
c inta este pregtit s accepte datele de la iniiator. Sunt inserate stri de ateptare n faza curent
de date pn cnd ambele semnale TRDY i IRDY sunt activate.
IRDY (Initiator Ready) - Este activat de iniiatorul tranzaciei i semnaleaz momentul n care
iniiatorul este pregtit pentru un transfer de date. n timpul unei operaii de scriere, semnalul IRDY
activat indic faptul c iniiatorul a depus date valide pe magistrala de date. n timpul unei operaii
de citire, semnalul IRDY activat indic faptul c iniiatorul este pregtit s accepte datele de la inta
adresat.
REQ (Request) - Este activat de iniiator pentru a indica o cerere de magistral. Aceast linie este
conectat la arbitrul de magistral. Metoda de arbitrare a magistralei nu este descris n specificaiile
PCI; se pot implementa diferite metode. Este specificat doar faptul c arbitrul de magistral trebuie
Arhitectura Calculatoarelor
82
s utilizeze un algoritm prin care s se evite blocajele; fiecrui dispozitiv master potenial trebuie
s i se permit accesul la magistral.
GNT (Grant) - Este activat de arbitrul de magistral pentru a indica acordarea magistralei pentru
iniiator. Atunci cnd detecteaz acest semnal, iniiatorul trebuie s atepte terminarea tranzaciei n
curs de ctre iniiatorul curent.
CLK (Clock) - Reprezint semnalul de ceas utilizat pentru sincronizarea tuturor tranzaciilor,
inclusiv a arbitrajului de magistral. Toi parametrii de sincronizare ai magistralei sunt specificai
relativ la frontul cresctor al semnalului de ceas. Frecvena semnalului de ceas se poate modifica n
orice moment, cu condiia s nu existe cereri de magistral i semnalul LOCK s nu fie activ. De
asemenea, ceasul poate fi oprit n starea low (pentru reducerea puterii consumate).
DEVSEL (Device Select) - Este activat de dispozitivul int nimai cnd acesta i-a decodificat
adresa. Dac un dispozitiv master a iniiat un transfer i nu detecteaz semnalul DEVSEL activ n
cursul a ase perioade de ceas, va presupune c inta nu poate rspunde sau c adresa respectiv nu
este utilizat. Va rezulta un abandon din partea dispozitivului master.
Exemplu de tranzacie
Figura 7.8 prezint un transfer de date reprezentativ de la un dispozitiv slave la un dispozitiv master,
de exemplu o operaie de citire de la un dispozitiv de I/E.
Tranzacia ncepe n momentul n care iniiatorul activeaz semnalul REQ (Request) - pentru a indica
o cerere de magistral, ce este conectat la arbitrul de magistral. Arbitrul de magistral pentru a indica
acordarea magistralei pentru iniiator, activeaz semnalul GNT (Grant), iar iniiatorul trebuie s atepte
terminarea tranzaciei n curs de ctre iniiatorul curent i s activeze semnalul FRAME n ciclul de ceas
1.
Arhitectura Calculatoarelor
83
Ciclul de ceas 6. Dispozitivul iniiator insereaz o stare de ateptare. Transferul de date se ntrerupe,
transferul cuvntului 3 de date este amnat pn n ciclul 7.
Ciclul de ceas 7. Dispozitivul iniiator activeaz IRDY i se transmite cuvntul de date 3. Iniiatorul
dezactiveaz semnalul FRAME pentru a indica faptul c urmtorul ciclu va fi final.
Ciclul de ceas 8. Toate liniile sunt dezactivate, ce marcheaz sfritul tranzaciei pe magistral.
O tranzacie de scriere (n care iniiatorul este sursa datelor) este similar cu cea din Figura 7.3. n acest
caz ciclul inactiv dup faza de adrese nu este necesar, deoarece iniiatorul menine n continuare controlul
asupra liniilor AD pe durata tranzaciei.
7.4.2 Magistrala serial PCI Express
PCI Express este o magistral serial ale crei specificaii iniiale au fost preluate de organizaia
PCI-SIG de la grupul de lucru Arapahoe (Arapahoe Working Group), care a elaborat specificaiile
preliminare ale interfeei 3GIO (Third Generation I/O). Versiunea 1.0 a acestor specificaii a fost
terminat n aprilie 2002, dup care specificaiile au fost transferate la organizaia PCI-SIG, interfaa
3GIO fiind redenumit PCI Express. Acest nume a fost ales pentru a sublinia compatibilitatea software a
noii magistrale cu magistrala PCI convenional. Specificaiile 3GIO au fost revzute de membrii PCISIG, fiind aprobate i publicate n luna iulie 2002 ca PCI Express versiunea 1.0. Scopul magistralei PCI
Express este de a pune la dispoziie o interconexiune serial scalabil, avnd costuri reduse i utilitate
general, care s unifice mai multe soluii de interconectare din cadrul unei platforme.
Topologia unui sistem bazat pe magistrala PCI Express conine un comutator i mai multe
conexiuni punct la punct cu dispozitivele de I/E. n Figura 7.9 se prezint topologiile conexiunilor
magistralelor PCI i PCI Express. Dispozitivele de I/E conectate la magistrala PCI mpart limea de
band (fig. 7.9 (a)). Iar la PCI Express (fig. 7.9 (b)) conexiunile multiple punct la punct introduc un nou
element, comutatorul, n cadrul topologiei sistemului de I/E. Comutatorul nlocuiete magistrala partajat
pentru conectarea dispozitivelor de I/E i permite comunicaia direct dintre dou dispozitive de I/E.
a)
b)
Figura 7.9 - Topologiile PCI i PCI Express
Nivelul fizic are la baz o legtur punct la punct format din dou canale de comunicaie simplex,
unul pentru transmisie i unul pentru recepie. Legtura fizic de baz (Figura 7.10) utilizeaz 4 conexiuni
ntre dou dispozitive, semnalele transmise fiind difereniale i avnd tensiuni reduse (LVDS - Low
Voltage Differential Signaling).
Nivelul legturii de date adaug numere de secven i coduri CRC acestor pachete pentru a
asigura un transfer fiabil. Semnalul de ceas este codificat mpreun cu datele pentru a obine rate de
transfer ridicate.
Arhitectura Calculatoarelor
84
Rata de transfer iniial este de 2,5 Gbii/s pentru fiecare direcie, fiind de ateptat ca aceasta s creasc
ulterior pn la 16 Gbii/s pe direcie.
Rata de transfer a unei legturi poate fi mrit liniar prin adugarea a noi canale. Numrul de canale poate
fi de 1, 2, 4, 8, 12, 16 sau 32. Viitoarele mbuntiri pentru creterea frecvenei de funcionare,
modificarea tehnicii de codificare sau schimbarea mediului fizic vor afecta numai nivelul fizic.
La transferuri pe mai multe canale se folosete principiul partajrii datelor pe canale (data stripping)
(Figura 7.11) ce const n transferul urmtorului byte pe urmtorul canal.
Arhitectura Calculatoarelor
85
Arhitectura Calculatoarelor
86
Cablul utilizat (Figura 7.13) pentru conectarea unitilor IDE este un cablu cu 40 de fire, prevzut cu
trei conectori.
Arhitectura Calculatoarelor
87
Arhitectura Calculatoarelor
88
Protocolul SAS specific o comunicaie duplex ntre controlerul SAS i o unitate de discuri.
Astfel, operaiile de citire i scriere pot fi executate n acelai timp, ceea ce crete performana.
Comparativ, unitile SATA utilizeaz o comunicaie semiduplex, astfel nct datele sunt transmise la
unitate pentru scriere, datele care trebuie citite de la unitate trebuie s atepte terminarea comunicaiei
precedente.
Se pot conecta un numr mare de uniti de discuri SAS sau SATA la un port al unui controler
SAS prin utilizarea unor expandoare SAS. Un expandor permite ca un singur iniiator s comunice cu un
numr de echipamente destinaie SAS/SATA. Un expandor SAS este similar cu un comutator dintr-o
reea, care permite conectarea mai multor sisteme utiliznd un singur port al comutatorului. Costul unui
sistem care conine un expandor este mult mai redus comparativ cu costul unui sistem care conine un
controler SAS cu un numr mare de porturi sau mai multe controlere cu un numr mai mic de porturi.
Prin utilizarea expandoarelor, sunt posibile pn la 65,535 legturi fizice (dispozitive).
Interfaa SAS utilizeaz semnale difereniale, codificarea 8b/10b a datelor i cifrarea datelor
pentru reducerea interferenelor electromagnetice. Se pot combina pn la patru porturi cu aceeai adres
ntr-un port de lime mai mare, care permite transferuri de date cu pn la 24 Gbii/s.
Unitile de discuri SAS sunt cu port dual, ceea ce nseamn c acestea se pot conecta direct i pot
fi controlate de dou controlere SAS n acelai timp. Aceast posibilitate permite construirea unui sistem
redundant. Atunci cnd unul din controlerele SAS se defecteaz, cellalt va fi totui n msur s acceseze
unitile de discuri SAS i datele memorate pe aceste uniti.
Principalele deosebiri dintre interfeele SAS i SATA sunt urmtoarele:
Unitile de discuri SATA sunt identificate prin numrul portului conectat la adaptorul
calculatorului gazd, n timp ce echipamentele SAS sunt identificate prin adresa lor SAS sau World
Wide Name. World Wide Name (WWN) este un identificator de 64 bii care reprezint adresa SAS i
identific n mod unic echipamentul n domeniul SAS. Din cei 64 de bii, 24 bii reprezint identificatorul
firmei productoare i 40 de bii reprezint identificatorul specific al productorului.
Spre deosebire de protocolul SATA, protocolul SAS permite existena mai multor iniiatori ntr-un
domeniu SAS.
Interfaa SATA permite conectarea numai a unitilor de discuri magnetice i a unitilor optice.
Interfaa SAS permite conectarea i a altor tipuri de echipamente, cum sunt scannere i imprimante.
Totui, aceste echipamente au, de obicei, alte interfee dect SAS, cum sunt USB, IEEE 1394 sau
Ethernet.
Interfaa SAS utilizeaz nivele mai ridicate de tensiune (0,8-1,6 V) dect interfaa SATA (0,40,6V).
Din cauza tensiunilor mai ridicate ale semnalelor, la interfaa SAS se pot utiliza cabluri mai lungi
(pn la 8 m), comparativ cu interfaa SATA, la care lungimea maxim a cablului poate fi de 1 m.
Unitile de discuri SAS au performane superioare comparativ cu unitile de discuri SATA. Viteza de
rotaie a unitilor SAS este cuprins ntre 10.000 i 15.000 rotaii pe minut (RPM), n timp ce viteza de
rotaie a unitilor SATA este cuprins ntre 5.400 i 7.200 RPM. Viteza de rotaie mai ridicat reduce
timpul de acces. Comunicaia duplex permis de unitile SAS contribuie de asemenea la performana
superioar a acestor uniti comparativ cu unitile SATA. Unitile SAS sunt cu port dual, iar aceasta le
permite s comunice cu dou adaptoare ale calculatorului gazd sau controlere simultan, ceea ce
mbuntete disponibilitatea datelor. De asemenea, unitile SAS sunt mai fiabile dect unitile SATA
i sunt proiectate pentru o utilizare mult mai intens. Pe de alt parte, unitile SATA sunt mult mai puin
costisitoare dect unitile SAS. Un alt avantaj al unitilor SATA este c acestea au, de obicei, capacitatea
semnificativ mai ridicat dect cea a unitilor SAS.
Arhitectura Calculatoarelor
89
Arhitectura Calculatoarelor
90
n specificaiile versiunea 1.0 a standardului USB magistrala USB este menionat ca host-centric: Ca
Master (dispozitivul ce controleaz transferurile pe magistral) pe magistrala USB ntotdeauna este hostcalculatorul (cu USB controller incorporat), iar toate dispozitivele periferice conectate la host sunt
dispozitive conduse sau Slave. Structura magistralei USB pe mai multe nivele se ilustreaz n Figura
7.18.
Arhitectura Calculatoarelor
91
alimentate numai cu tensiunea furnizat de cablul magistralei, n timp ce altele pot avea o surs proprie de
alimentare.
Un hub const din dou pri: un controler i un repetor. Controlerul conine regitri de interfa
pentru comunicaia cu calculatorul gazd. Comenzile de stare i de control permit calculatorului gazd
configurarea hub-ului, monitorizarea i controlul porturilor sale. Repetorul este un comutator controlat
prin protocol ntre portul de nivel superior i porturile de nivel inferior. De asemenea, repetorul
monitorizeaz semnalele de pe porturi i gestioneaz tranzaciile care i sunt adresate. Toate celelalte
tranzacii sunt repetate la dispozitivele ataate. Fiecare port de nivel inferior poate fi validat individual i
poate fi conectat la dispozitive cu vitez ridicat sau cu vitez redus. Porturile cu vitez redus sunt
izolate de semnalele cu vitez ridicat.
O funcie este un dispozitiv USB care poate transmite i/sau recepiona date sau informaii de
control pe magistral. Acest dispozitiv trebuie s rspund la cererile de tranzacie transmise de
calculatorul gazd. O funcie este implementat n mod obinuit ca un periferic separat conectat printr-un
cablu la un port al unui hub. Un singur dispozitiv fizic poate conine ns funcii multiple. De exemplu, o
tastatur i un trackball pot fi combinate ntr-un singur dispozitiv fizic. n cadrul unui asemenea dispozitiv
compus, funciile individuale sunt ataate la un hub, iar acest hub intern este conectat la magistrala USB.
Fiecare funcie conine informaii de configuraie care descriu posibilitile sale i resursele
necesare. Aceste informaii sunt transmise calculatorului gazd ca rspuns la o tranzacie de control.
naintea utilizrii unei funcii, aceasta trebuie configurat de calculatorul gazd. Aceast configurare
presupune alocarea unei limi de band n cadrul magistralei USB i selectarea opiunilor specifice de
configuraie.
Specificaiile magistralei USB 2.0 (numit i Hi-Speed USB) descriu o magistral cu performane
mbuntite. Conectoarele i cablurile conforme cu specificaiile USB 1.1 permit obinerea ratelor de
transfer mai ridicate ale magistralei USB 2.0 fr nici o modificare. Rata de transfer maxim care se poate
obine este de 480 Mbii/s. Perifericele USB 2.0 cu viteze de transfer superioare sunt conectate la un
distribuitor USB 2.0. Un distribuitor USB 2.0 accept tranzacii de vitez ridicat i furnizeaz datele cu
ratele corespunztoare perifericelor USB 2.0 i perifericelor USB 1.1. Vitezele de transfer ridicate sunt
negociate cu fiecare periferic, iar dac un periferic nu permite o vitez ridicat, legtura cu acest periferic
va funciona la viteza mai redus de 12 Mbii/s sau 1,5 Mbii/s. Aceasta implic o complexitate mai
ridicat a hub-lor i necesitatea memorrii temporare a datelor recepionate. Un hub USB 2.0 va avea
porturi de ieire pentru transferuri cu vitez ridicat i porturi de ieire pentru transferuri cu vitez redus.
Controlerele magistralei USB, aflate pe placa de baz a calculatorului gazd, au propriile
specificaii. n cazul versiunii 1.1 a magistralei USB, existau dou specificaii pentru aceste controlere.
Prima dintre ele, Universal Host Controller Interface (UHCI), a fost elaborat de firma Intel i permitea
simplificarea circuitelor, partea mai complex fiind cea de software. A doua specificaie, Open Host
Controller Interface (OHCI), a fost elaborat de firmele Compaq, Microsoft i National Semiconductor,
aceast specificaie permind simplificarea programelor, partea mai complex fiind cea de hardware.
Odat cu introducerea versiunii 2.0 a magistralei USB, a fost necesar elaborarea unei noi specificaii
pentru controlerele de magistral. Aceast specificaie, numit Enhanced Host Controller Interface
(EHCI), a fost elaborat de mai multe firme, printre care Intel, Compaq, NEC, Microsoft i Lucent
Technologies.
Exist specificaii separate pentru diferite categorii (clase) de periferice USB. O clas USB
reprezint un grup de periferice sau interfee cu atribute sau servicii similare. De exemplu, dou periferice
sau interfee sunt plasate n aceeai clas dac utilizeaz iruri de date cu acelai format pentru
comunicaia cu calculatorul gazd. Dintre clasele de periferice USB se amintesc urmtoarele: memorii de
mas, monitoare, dispozitive de interaciune cu utilizatorul (HID Human Interface Device), imprimante,
dispozitive audio, dispozitive de comunicaie (modemuri, telefoane analogice i digitale, adaptoare de
reea), dispozitive de captare a imaginilor fixe (camere digitale).
Sistema USB pe trei nivele
Sistema USB se divizeaz pe trei nivele cu anumite reguli de interaciune. Dispozitivul USB conine
interfaa (USB Bus Interface), componentele logice (USB Logical Device) i funcia (function). Hostul tot
este divizat n trei pri - interfaa (USB Host Controller), de sistem (USB System) i soft-ul dispozitivului
Arhitectura Calculatoarelor
92
a)
b)
c)
Figura 7.22 - Conector USB: a - tipul (hub), b - tipul (periferic), C - marcare convenional
Hub-rile (de exemplu, cele din calculator) conin o muf rectangular cu patru pini de tip A. Perifericele
se conecteaz la o asemenea muf dintr-un hub utiliznd o fi rectangular de tip A (Figura 7.22). Toate
cablurile care sunt ataate permanent la periferice conin o fi de tip A. De obicei, perifericele se
conecteaz ns printr-un cablu detaabil. Aceste periferice conin o muf ptrat de tip B, iar cablul care
conecteaz aceste periferice la un hub conine o fi de tip B la captul care se conecteaz la periferic i o
Arhitectura Calculatoarelor
93
fi de tip A la captul care se conecteaz la hub. n acest fel, nu este posibil conectarea incorect a
cablului. Specificaiile USB 2.0 au fost modificate ulterior publicrii acestora pentru a include o fi i o
muf de tip B de dimensiuni mai reduse. Aceti conectori, numii mini-B, conin cinci contacte i se
utilizeaz pentru echipamentele mobile de dimensiuni reduse, cum sunt telefoanele mobile.
Echipamentele respective conin o muf de tip mini-B, iar cablurile utilizate pentru conectarea acestor
echipamente la un calculator PC conin o fi de tip mini-B la un capt i o fi de tip A la cellalt capt.
Figura 7.23 ilustreaz o fi de tip mini-B alturat cu o fi de tip A.
Arhitectura Calculatoarelor
94
Arhitectura Calculatoarelor
95
Figura 7.31
Prin canalul de tip flux sunt transmise date intr-o direcie. Un Endpoint poate fi folosit pentru dou
canale de tip flux pentru intrare sau ieire. Canalul de tip flux poate realiza urmtoarele tipuri de
transferuri: continuu(date voluminoase), izocron i de ntreruperi. Transferul se petrece prin metoda primul
intrat primul ieit (FIFO). Canalul de tip mesaje susine tipul de transfer de control. Formatul mesajelor
este determinat de specificarea USB. Hostul transmite cererea ctre Endpoint, dup care urmeaz pachetul
cu mesaje, dup care urmeaz pachetul cu informaie despre starea Endpoint. Urmtorul mesaj nu poate fi
transmis pn precedentul nu este prelucrat. Schimbul cu mesaje n ambele direcii se efectueaz cu unul i
acelai Endpoint.
Canalele se organizeaz la configurarea dispozitivului USB. Pentru fiecare dispozitiv conectat exist un
canal pentru mesaje de tip control (Control Pipe Off), prin care se transmite informaia despre configurare,
stare i control.
Tipurile de transfer de date
Arhitectura USB permite patru tipuri de transferuri de date: de control, de ntrerupere, de date
voluminoase i izocrone.
Transferurile de control se utilizeaz de driverele calculatorului gazd pentru configurarea
dispozitivelor care sunt ataate la sistem. Alte drivere pot utiliza transferuri de control n moduri specifice
implementrii.
Transferurile de ntrerupere se utilizeaz pentru date cu volum redus. Transferul acestor date poate fi
solicitat de un dispozitiv n orice moment, iar rata de transfer pe magistrala USB nu poate fi mai redus
dect cea specificat de dispozitiv. Datele pentru care se utilizeaz transferurile de ntrerupere constau din
notificarea unor evenimente, din caractere sau coordonate care sunt organizate pe unul sau mai muli
octei. Un exemplu l reprezint coordonatele de la un dispozitiv indicator (Ex. mouse). Datele interactive
pot avea anumite limite ale timpului de rspuns care trebuie asigurate de magistrala USB.
Transferurile de date voluminoase (bulk) se utilizeaz cu periferice cum sunt memorii de mas,
imprimante sau scanere. Aceste date sunt secveniale. Fiabilitatea transferurilor este asigurat la nivel
hardware prin utilizarea unui cod detector de erori i reluarea unui transfer cu erori de un numr de ori.
Rata de transfer n cazul acestor transferuri poate varia n funcie de alte activiti de pe magistral.
Transferurile izocrone (isos egal, chronos timp) se utilizeaz pentru datele care trebuie furnizate
cu o anumit rat de transfer constant i a cror sincronizare trebuie garantat. Izocron are semnificaia
cu durat egal sau care apare la intervale regulate. Datele izocrone sunt generate n timp real i
trebuie furnizate cu rata cu care sunt recepionate pentru a pstra sincronizarea lor. Pe lng rata de
transfer impus, pentru datele izocrone trebuie respectat i ntrzierea maxim cu care acestea sunt
furnizate. Furnizarea la timp a datelor izocrone este asigurat cu preul unor pierderi poteniale n irul de
date. Cu alte cuvinte, erorile de transmisie nu sunt corectate prin mecanisme hardware, de exemplu, prin
retransmiterea lor. n concluzie, transferurile izocrone se caracterizeaz prin furnizarea la timp a datelor i
prin lipsa retransmiterii lor n cazul unor erori, deoarece datele ntrziate nu mai sunt utile. Spre deosebire
de transferurile izocrone, transferurile asincrone se caracterizeaz prin faptul c fiabilitatea transmiterii
datelor este mai important dect asigurarea sincronizrii. Pentru aceasta se utilizeaz retransmiterea
datelor n cazul unor erori, chiar dac apar ntrzieri din aceast cauz.
Arhitectura Calculatoarelor
96
Un exemplu tipic de date izocrone este reprezentat de imaginile video. Dac rata de transfer a acestor
iruri de date nu este respectat, va avea loc pierderea unor date datorit depirii capacitii bufferelor.
Chiar dac datele sunt furnizate de magistrala USB cu rata adecvat, ntrzierile introduse de programe
pot afecta negativ aplicaiile care utilizeaz aceste date, cum sunt cele pentru videoconferine.
irurilor de date izocrone li se aloc o poriune dedicat a limii de band a magistralei USB. De
asemenea, aceast magistral este proiectat pentru o ntrziere minim a transferurilor de date izocrone.
Protocolul
Similar cu alte interfee mai recente, interfaa USB utilizeaz un protocol bazat pe pachete. Toate
transferurile sunt iniiate de controlerul USB al calculatorului gazd. Tranzaciile de pe magistral implic
transmisia a patru tipuri de pachete:
Pachet antet (simbol token);
Pachet de date;
Pachet de confirmare (handshake);
Pachet special.
Fiecare tranzacie, const din 3 pachete i ncepe n momentul n care controlerul USB transmite, pe
baza unei planificri, un pachet antet (Token) care descrie tipul tranzaciei, direcia acesteia, adresa
dispozitivului USB i numrul punctului terminal. Sursa tranzaciei transmite apoi un pachet de date
(Data) coninnd datele care trebuie transferate, sau poate indica faptul c nu are date de transmis prin
faptul c pachetul de date nu conine informaii utile. Destinaia rspunde, n general, cu un pachet de
confirmare (Handshake) indicnd dac transferul s-a efectuat cu succes sau dac punctul terminal nu este
disponibil. Succesiunea pachetelor n tranzacii este prezentat n fig. 7.32
Arhitectura Calculatoarelor
97
Arhitectura Calculatoarelor
98
Cmpul de identificare al pachetului, PID, poate specifica un pachet de antet cu subtipul IN, OUT sau SETUP. Pachetele cu
subtipul IN sau OUT informeaz dispozitivul USB asupra direciei transferului care urmeaz: intrare (citire de ctre
calculatorul gazd), respectiv ieire (scriere de ctre calculatorul gazd). Un pachet cu subtipul SETUP se utilizeaz la
nceputul transferurilor de control. n cazul pachetelor cu subtipul OUT sau SETUP, cmpurile ADDR i ENDP identific n
mod unic punctul terminal care va recepiona urmtorul pachet de date. n cazul unui pachet cu subtipul IN, cmpurile ADDR
i ENDP identific punctul terminal care va transmite un pachet de date. Cmpul CRC5 conine codul CRC pentru cmpurile
ADDR i ENDP.
Pachet SOF
Un pachet SOF const dintr-un cmp de sincronizare, un cmp PID i un cmp de 11 bii reprezentnd numrul cadrului, dup
cum se ilustreaz . Dup pachetul SOF urmeaz transferul ctre primul dispozitiv conectat la magistrala USB(pachetele
IN/OUT, DATA, HANDSHAKE), apoi se petrece schimbul de date cu dispozitivul doi(pachetele IN/OUT, DATA,
HANDSHAKE), pn nu este apelat ultimul dispozitiv conectat la magistral.
Pachete de date
Informaiile propriu-zise sunt transmise pe magistrala USB n pachetele de date. Un pachet de date const din cmpul
de sincronizare SYNC, un cmp de identificare al pachetului PID, un cmp de date, un cmp CRC de 16 bii i cmpul de
sfrit al pachetului EOP. Codul CRC se calculeaz numai pentru cmpul de date. Datele sunt transmise ntr-un numr ntreg
de octei. Pentru dispozitivele cu vitez redus, lungimea maxim a cmpului de date este de 8 octei. Pentru dispozitivele cu
vitez normal (12 Mbii/s) i vitez ridicat (480 Mbii/s), lungimea maxim este de 1024 octei.
Pachete de confirmare
Pachetele de confirmare constau doar din cmpul de sincronizare SYNC, un cmp de identificare al pachetului PID i
cmpul de sfrit al pachetului EOP. Aceste pachete se utilizeaz pentru a raporta starea unei tranzacii de date prin subtipul
returnat n cmpul PID. Subtipul unui pachet de confirmare poate fi ACK (Acknowledge), NAK (Negative Acknowledge),
STALL (Stall) sau NYET (No Response Yet). Aceste subtipuri sunt descrise n Tabelul 3.2.
Calculatorul gazd i toate funciile USB decodific complet toi biii cmpului PID. Dac un cmp PID este
recepionat cu valori incorecte ale biilor de control sau cu valori nedefinite ale tipului pachetului, se presupune c a fost
recepionat eronat i restul pachetului este ignorat de receptor.
Cmpul de adres
Cmpul de adres (ADDR) specific adresa funciei USB care este sursa sau destinaia unui pachet de date. Acest
cmp are o lungime de 7 bii, permind specificarea a pn la 128 de adrese. Fiecare adres definete o singur funcie. Adresa
Arhitectura Calculatoarelor
99
0 este rezervat ca adres implicit i nu poate fi asignat n mod explicit unei funcii. La pornirea i resetarea unei funcii,
adresa acesteia va avea valoarea implicit 0. Calculatorul trebuie s seteze adresa funciei n timpul procesului de enumerare.
Cmpul punctului terminal
Cmpul punctului terminal (ENDP) permite o adresare mai flexibil a funciilor cu mai multe puncte terminale. Acest
cmp are o lungime de 4 bii, ceea ce permite adresarea a pn la 16 puncte terminale. Dispozitivele cu vitez redus pot avea
ns doar dou puncte terminale suplimentare pe lng punctul terminal cu numrul 0.
Cmpul de date
Cmpul de date poate conine ntre zero i 1024 de octei, n funcie de tipul transferului. Biii de date din cadrul
fiecrui octet sunt transmii pe magistral ncepnd cu bitul cel mai puin semnificativ.
Cmpurile de control ciclic redundant
Aceste cmpuri conin codurile de control ciclic redundant (CRC) utilizate pentru verificarea integritii diferitelor
cmpuri din pachetele de antet i de date. Cmpul PID nu este inclus n calculul codului CRC. Codurile CRC pentru pachetele
de antet i de date asigur detectarea tuturor erorilor de un bit i de doi bii. n cazul n care codul CRC calculat la recepie
difer de codul transmis ntr-un cmp CRC, receptorul va ignora cmpurile protejate i, n majoritatea cazurilor, ntregul
pachet.
Standardul USB specific polinoamele generatoare utilizate pentru calculul codurilor CRC. Pentru pachetele de antet se
utilizeaz un cmp CRC de 5 bii (CRC5), iar pentru pachetele de date se utilizeaz un cmp CRC de 16 bii (CRC16).
Cmpul de sfrit al pachetului
Acest cmp (EOP) indic sfritul unui pachet prin valoarea 0 pe durata corespunztoare a doi bii, urmat de valoarea
1 pe durata corespunztoare unui bit.
Figura 7.34