Serial USB (Universal Serial Bus). Moduri de transfer USB Serial Bus USB Universal Serial

Seria de autobuz serial USB (Universal Serial Bus - autobuz serial universal) standardele computerului cu mult timp în urmă - versiunea primei versiuni aprobate a standardului a apărut pe 15 ianuarie 1996. Dezvoltarea standardului a fost inițiată de firme cu reputație înaltă - Intel, DEC, IBM, NEC, Northen Telecom și Compaq.

Scopul principal al setului standard pentru dezvoltatorii săi este de a crea o oportunitate reală pentru utilizatori de a lucra în modul Plug & Play cu dispozitive periferice. Aceasta înseamnă că ar trebui să existe prevederi pentru conectarea dispozitivului la un computer care rulează, recunoașterea automată imediat după conectare și apoi instalarea driverelor corespunzătoare. În plus, este de dorit să furnizați energie dispozitivelor cu consum redus de energie din autobuzul însuși. Viteza autobuzului ar trebui să fie suficientă pentru marea majoritate a perifericelor. Pe parcurs, problema istorică a lipsei de resurse pe magistralele interne ale unui computer IBM al unui computer compatibil este rezolvată - controlerul USB ia o singură întrerupere, indiferent de numărul de dispozitive conectate la magistrală.

Capacitățile magistralei USB USB rezultă din specificațiile sale tehnice:

Viteză mare de schimb (viteză maximă de semnalizare bit rate) - 12 Mb / s

Lungimea maximă a cablului pentru viteza mare de transmisie - 5 m

Rată de biți de semnalizare cu viteză redusă - 1,5 Mb / s

Lungimea maximă a cablului pentru o rată de transmisie redusă - 3 m

Numărul maxim de dispozitive conectate (inclusiv multiplicatori) este 127.

Este posibil să conectați dispozitive cu rate de transmisie diferite

Nu este nevoie să instalați elemente suplimentare de către utilizator, cum ar fi terminatoare pentru SCSI

Tensiunea de alimentare pentru dispozitivele periferice - 5 V

Consumul maxim de curent pe dispozitiv este de 500 mA.

Prin urmare, este recomandabil să conectați aproape orice dispozitiv periferic la USB, cu excepția camerelor video digitale și a hard diskurilor de mare viteză. Conectorii USB sunt proiectați pentru împerechere / divizare.

Abilitatea de a utiliza doar două viteze în baud limitează utilizarea magistralei, dar reduce semnificativ numărul de linii de interfață și simplifică implementarea hardware.

Alimentarea directă de pe USB este posibilă numai pentru dispozitive cu consum redus, cum ar fi tastaturi, șoareci, joystick-uri etc.

Semnalele USB sunt transmise printr-un cablu cu 4 fire.

Cablul pentru a susține autobuzul cu viteză maximă este pereche răsucită, ecranat și poate fi folosit și pentru funcționarea cu viteză redusă. Cablul pentru funcționare numai la viteza minimă (de exemplu, pentru conectarea unui mouse) poate fi oricare și neecranat.

Sistemul USB este împărțit în trei straturi cu reguli de comunicare specifice. Un dispozitiv USB conține o parte a interfeței, o parte a dispozitivului și o parte funcțională. Gazda este, de asemenea, împărțită în trei părți - interfață, sistem și software pentru dispozitiv. Fiecare parte este responsabilă numai pentru o anumită gamă de sarcini, interacțiunea logică și reală dintre ele este ilustrată în Fig. 69.

Structura luată în considerare include următoarele elemente:

Un dispozitiv USB fizic este un dispozitiv pe o magistrală care îndeplinește funcții de interes pentru utilizatorul final.

Client SW - software specific dispozitivului care rulează pe computerul gazdă. Poate fi o parte integrantă a sistemului de operare sau un produs special.

USB System SW - Suport sistem USB, independent de dispozitivele specifice și de software-ul clientului.

USB Host Controller - instrumente hardware și software pentru conectarea dispozitivelor USB la un computer gazdă.

Smochin. 69 Interacțiunea componentelor USB

Interfață fizică

Semnalele informaționale și tensiunea de alimentare de 5V sunt transmise printr-un cablu cu patru fire. Se utilizează o metodă diferențială de transmitere a semnalelor D + și D– pe două fire. Nivelurile de semnal ale emițătorului static trebuie să fie mai mici de 0,3 V (scăzut) sau peste 2,8 V (ridicat). Receptoarele rezistă la tensiuni de intrare cuprinse între -0,5 ... + 3,8 V. Transmițătorii trebuie să poată trece la o stare de impedanță ridicată pentru transmisia bidirecțională semi-duplex pe o pereche de fire.

Transmisia USB cu două fire nu se limitează la semnale diferențiale. În plus față de receptorul diferențial, fiecare dispozitiv are receptoare de linie pentru semnale D + și D–, iar emițătoarele acestor linii sunt controlate individual. Acest lucru face posibilă distincția între mai mult de două stări de linie utilizate pentru organizarea interfeței hardware. Stările DiffO și Diff1 sunt determinate de diferența de potențial pe liniile D + și D - mai mult de 200 mV, cu condiția ca potențialul pe una dintre ele să fie mai mare decât pragul de răspuns VSE. O stare în care ambele intrări D + și D– sunt scăzute se numește zero liniar (SEO - Single - Ended Zero). interfața definește următoarele stări:

Starea DataJ și Starea Data K - stările bitului transmis (sau pur și simplu J și K), sunt determinate prin stările DiffO și Diff1.

Stare de repaus - pauză în autobuz.

Resume State - semnal de „trezire” pentru a trezi dispozitivul din modul „somn”.

Start of Packet (SOP) - începutul pachetului (trecerea de la starea de repaus la K).

End of Packet (EOP) - sfârșitul pachetului.

Deconectați - dispozitivul este deconectat de la port.

Conectare - dispozitivul este conectat la port.

Resetare - resetați dispozitivul.

Stările sunt determinate de combinații de semnale diferențiale și liniare; pentru viteza maximă și redusă, stările DiffO și Diff1 au scopul opus. Decodarea stărilor Deconectare, Conectare și Resetare ia în considerare timpul petrecut de linii (mai mult de 2,5 ms) în anumite stări.

Autobuzul are două moduri de transmisie. Rata de transmisie a semnalului USB completă este de 12 Mbps, iar cea mică este de 1,5 Mbps. Pentru viteză maximă, se utilizează un cablu cu perechi răsucite ecranate cu o impedanță de 90 ohmi și o lungime a segmentului de până la 5 m, pentru un cablu neecranat cu răsucire redusă de până la 3 m.

Semnalele de sincronizare sunt codificate împreună cu datele folosind metoda NRZI (Non Return to Zero Invert), funcționarea sa este ilustrată în Fig. 72. Fiecare pachet este precedat de un câmp SYNC care permite receptorului să se acordeze la frecvența emițătorului.

Cablul are, de asemenea, linii VBus și GND pentru a transporta tensiunea de alimentare de 5 V către dispozitive. Secțiunea transversală a conductoarelor este selectată în conformitate cu lungimea segmentului pentru a asigura nivelul de semnal garantat și tensiunea de alimentare.

Smochin. 70 Conectarea unui dispozitiv cu viteză maximă

Smochin. 71 Conectarea unui dispozitiv cu viteză redusă

Smochin. 72. Codificarea datelor conform metodei NRZI

Standardul definește două tipuri de conectori (Tabelul 7 și Figura 73).

Tabelul 7

Conectorii de tip A sunt utilizați pentru a vă conecta la hub-uri (Conector Upstream). Fișele sunt instalate pe cabluri care nu sunt detașabile de dispozitive (de exemplu, tastatură, mouse etc.). Sloturile sunt instalate pe porturile din aval ale hub-urilor.

Conectorii din aval sunt utilizați pe dispozitivele de la care cablul de conectare poate fi deconectat (imprimante și scanere). Omologul (mufa) este instalat pe un cablu de conectare, al cărui capăt opus are o mufă de tip „A”.

Conectorii de tip "A" și "B" diferă mecanic (fig. 73), ceea ce exclude conexiunile de loopback nevalide ale porturilor hub. Conectorii cu patru pini sunt conectați pentru a preveni conectarea greșită. Proiectarea conectorilor permite conectarea tardivă și deconectarea timpurie a circuitelor de semnal în comparație cu circuitele de alimentare. Pentru a recunoaște conectorul USB, o denumire simbolică standard este plasată pe corpul dispozitivului.

Smochin. 73. Socluri USB: a - tip "A", b - tip "B", c - desemnare simbolică

Model de transfer de date

Fiecare dispozitiv USB este un set de puncte finale independente cu care comunică controlerul gazdă. Punctele finale sunt descrise de următorii parametri:

frecvența necesară a accesului la autobuz și întârzierile de serviciu admisibile;

lățimea de bandă a canalului necesară;

numărul punctului;

cerințe de gestionare a erorilor;

dimensiunile maxime ale pachetelor transmise și primite;

tipul de schimb;

direcția schimbului (pentru schimburi continue și izocrone).

Fiecare dispozitiv are în mod necesar un punct final numerotat 0, care este utilizat pentru inițializare, control general și interogare a stării sale. Acest punct este întotdeauna configurat la pornire și când dispozitivul este conectat la magistrală. Suportă transmisii de tip „control”.

În plus față de punctul zero, dispozitivele funcționale pot avea puncte suplimentare care implementează schimbul de date util. Dispozitivele cu viteză redusă pot avea până la două puncte suplimentare, dispozitivele cu viteză maximă pot avea până la 16 puncte de intrare și 16 puncte de ieșire (limitarea protocolului). Punctele nu pot fi utilizate până când nu sunt configurate (stabilirea unui canal asociat).

O conductă în USB se referă la modelul de comunicație dintre controlerul gazdă și punctul final al dispozitivului. Există două tipuri de canale: fluxuri și mesaje. Fluxul furnizează date de la un capăt la altul al canalului, este întotdeauna unidirecțional. Același număr de punct final poate fi utilizat pentru două canale de streaming - intrare și ieșire. Un flux poate implementa următoarele tipuri de schimb: continuu, izocron și întrerupe. Livrarea este întotdeauna în ordinea primul intrat, primul ieșit (FIFO); din perspectiva USB, datele fluxului sunt nestructurate. Mesajele sunt în formatul definit de specificația USB. Gazda trimite o cerere către punctul final, urmată de un pachet de mesaje (primit), urmat de un pachet de informații despre starea punctului final. Mesajul ulterior nu poate fi trimis în mod normal înainte de a-l prelucra pe cel anterior, dar atunci când se tratează erori, este posibil să se elimine mesajele care nu sunt tratate. Mesageria bidirecțională se adresează aceluiași punct final. Numai schimbul de control este utilizat pentru livrarea mesajelor.

Canalele sunt asociate cu caracteristici adecvate pentru punctul final (lățime de bandă, tip de serviciu, dimensiunea bufferului etc.). Canalele sunt organizate la configurarea dispozitivelor USB. Pentru fiecare dispozitiv pornit, există un canal de mesaje (Control Pipe 0) care transportă informații de configurare, control și stare.

Tipuri de transfer de date

USB acceptă atât moduri de comunicare unidirecționale, cât și bidirecționale. Transferul de date are loc între software-ul gazdă și punctul final al dispozitivului. Un dispozitiv poate avea mai multe puncte finale, comunicarea cu fiecare dintre ele (canal) este stabilită independent.

Arhitectura USB permite patru tipuri de bază de transfer de date:

Transferuri de control utilizate pentru configurare în timpul conexiunii și în timpul funcționării pentru a controla dispozitivele. Protocolul oferă livrarea de date garantată. Lungimea câmpului de date al mesajului de control nu depășește 64 de octeți la viteză maximă și 8 octeți la viteză mică.

Transferuri de date în bloc de pachete relativ mari, fără cerințe stricte de livrare. Angrenajele ocupă întreaga lățime de bandă gratuită a autobuzului. Pachetele au un câmp de date de 8, 16, 32 sau 64 de octeți. Aceste transmisii au cea mai mică prioritate și pot fi suspendate atunci când autobuzul este încărcat puternic. Permis numai la o rată de transfer totală.

Întrerupere - transmisie scurtă (până la 64 de octeți la viteză maximă, până la 8 octeți la scădere) a tipului de caractere sau coordonate de intrare. Întreruperile sunt spontane și nu trebuie întreținute mai lent decât necesită dispozitivul. Limita de timp de service este setată în intervalul 1-255 ms pentru viteza maximă și 10-255 ms pentru viteza mică.

Transferurile isocronice sunt transferuri continue, în timp real, care ocupă o porțiune negociată în prealabil din lățimea de bandă a autobuzului și au o întârziere de livrare specificată. Dacă este detectată o eroare, datele izocrone sunt transmise fără reîncercare - pachetele nevalide sunt ignorate. Un exemplu este transmiterea vocală digitală. Lățimea de bandă este determinată de cerințele pentru calitatea transmisiei, iar întârzierea de livrare poate fi critică, de exemplu, atunci când se implementează teleconferința.

Lățimea de bandă a autobuzului este împărțită între toate canalele instalate. Lățimea de bandă alocată este alocată canalului și, dacă stabilirea unui nou canal necesită o lățime de bandă care nu se încadrează în alocarea deja existentă, cererea de alocare a canalului este respinsă.

Arhitectura USB asigură tamponarea internă a tuturor dispozitivelor și, cu cât este nevoie de o lățime de bandă mai mare, cu atât ar trebui să fie mai mare tamponul său. USB trebuie să poată schimba la o viteză atât de mare încât latența datelor din dispozitiv cauzate de tamponare să nu depășească câteva milisecunde.

Transferurile izocrone sunt clasificate în funcție de modul în care punctele finale - surse sau destinatari de date - se sincronizează cu sistemul: fac distincție între clase de dispozitive asincrone, sincrone și adaptive, fiecare dintre ele corespunzând propriului tip de canal USB.

Protocol

Toate schimburile (tranzacțiile) prin USB constau din trei pachete. Fiecare tranzacție este programată și începe la inițiativa controlerului, care trimite un pachet de jetoane. Acesta descrie tipul și direcția de transfer, adresa dispozitivului USB și numărul punctului final. În fiecare tranzacție, este posibil doar schimbul între dispozitivul adresat (punctul său final) și gazdă. Dispozitivul adresat simbolului își recunoaște adresa și se pregătește să facă schimb. Sursa de date (identificată prin simbol) transmite un pachet de date (sau o notificare că nu există date disponibile pentru a transmite). După primirea cu succes a pachetului, receptorul de date trimite un pachet de strângere de mână.

Programarea tranzacțiilor oferă control asupra canalelor de streaming. La nivel hardware, utilizarea respingerii tranzacțiilor (NAck) la o rată de transmisie inacceptabilă împiedică revărsarea bufferelor din partea de sus și de jos. Jetoanele de tranzacție respinse sunt retransmise în timpul liber al autobuzului. Controlul fluxului permite programarea flexibilă a întreținerii fluxurilor de date simultane eterogene.

Toleranța la erori este asigurată de următoarele proprietăți USB:

Calitate ridicată a semnalului datorită receptoarelor / emițătorelor diferențiale și cablurilor ecranate.

Protejarea câmpurilor de control și date cu coduri CRC.

Detectați conectarea și deconectarea dispozitivului și configurarea resurselor la nivel de sistem.

Protocol de auto-vindecare cu timeout de pierdere a pachetelor

Controlul debitului pentru gestionarea tamponului izocron și hardware.

Independența funcției față de schimburile nereușite cu alte funcții.

Pentru a detecta erorile de transmisie, fiecare pachet are câmpuri CRC pentru a detecta toate erorile de un singur și dublu bit. Hardware-ul detectează erorile de transmisie, iar controlerul încearcă automat să transmită de trei ori. Dacă reîncercările nu reușesc, un mesaj de eroare este trimis software-ului client.

Formate de pachet

Octecții sunt transmiși pe magistrală secvențial, începând cu bitul cel mai puțin semnificativ. Toate coletele sunt organizate în pachete. Fiecare pachet începe cu câmpul Sincronizare, care este reprezentat de secvența de stare KJKJKJKK (codată NRZI) după starea de repaus. Ultimii doi biți (KK) sunt marcajul de pornire a pachetelor SOP folosit pentru a identifica primul bit al identificatorului de pachete PID. Identificatorul pachetului este un câmp PID de 4 biți care identifică tipul de pachet (tabelul 8), urmat de aceiași 4 biți ca biții de control, dar inversat.

În marcajele de pachete IN, SETUP și OUT, următoarele sunt câmpuri de adresă: adresa funcției de 7 biți și adresa punctului final de 4 biți. Acestea permit adresarea a până la 127 de funcții USB (adresa zero este utilizată pentru configurare) și 16 puncte finale pentru fiecare funcție.

Pachetul SOF conține un câmp de număr de cadre pe 11 biți, care este incrementat secvențial (ciclic) pentru următorul cadru.

Câmpul de date poate fi de la 0 la 1023 octeți întregi. Dimensiunea câmpului depinde de tipul de transmisie și este convenită la stabilirea unui canal.

Câmpul SCS-col este prezent în toți markerii și pachetele de date, protejează toate câmpurile de pachete, cu excepția PID. CRC-urile pentru markeri (5 biți) și date (11 biți) sunt calculate folosind diferite formule.

Tabelul 8

Conținut și scop

Adresa funcției și numărul punctului final - Marker tranzacție funcție

Adresa funcției și numărul punctului final - Jeton de tranzacție gazdă

Începutul marcatorului de cadre

Adresa funcției și numărul punctului final - Marcator tranzacție cu punct de control

Pachetele de date PID pare și impare sunt intercalate pentru identificarea exactă a confirmărilor

Confirmarea recepției pachetelor fără erori

Receptorul nu a reușit să primească sau emițătorul nu a reușit să transmită date. Poate fi folosit pentru a controla fluxul de date (indisponibil). În tranzacții, întreruperile sunt un semn al absenței întreruperilor necorespunzătoare

Punctul final necesită intervenția gazdei

Preambul de transmisie cu viteză redusă

Fiecare tranzacție este inițiată de controlerul gazdă prin trimiterea unui simbol și încheiată cu un pachet de strângere de mână. Secvența pachetelor în tranzacții este ilustrată în Fig. 7.7.

Controlerul gazdă organizează schimburi cu dispozitive conform planului său de alocare a resurselor. Controlerul ciclic (cu o perioadă de 1 ms) generează cadre (Frames), în care se potrivesc toate tranzacțiile programate. Fiecare cadru începe cu trimiterea markerului SOF (Start Of Frame), care este un semnal de ceas pentru toate dispozitivele, inclusiv hub-uri. La sfârșitul fiecărui cadru, este alocat un interval de timp EOF (End Of Frame), timp în care hub-urile interzic transmiterea către controler. Fiecare cadru are propriul număr. Controlerul gazdă funcționează cu un contor de 32 de biți, dar transmite doar cei mai puțin semnificativi 11 biți din simbolul SOF. Numărul cadrului este incrementat (ciclic) în timpul EOF. Gazda planifică încărcarea cadrului astfel încât să existe întotdeauna spațiu pentru tranzacții de control și întrerupere. Cadrele de timp liber pot fi umplute cu transferuri continue (Transferuri în bloc).

Sarcină de lucru

1. Descrieți funcțiile de gestionare a autobuzului și a portului

a) formarea adresei portului

b) organizarea unui canal end-to-end în interfața sistemului pentru transferul de date între portul dispozitivului de intrare-ieșire și MP.

2. Structura memoriei microprocesorului.

3. magistrală serial USB. Moduri de transfer de date.

4. Chipset. Scopul său. Diagrama chipset-ului.

5. Memoria microprocesorului. Registrele și scopul lor.

6. Interfețe standard și formate de transfer de date.

7. Aduceți diagrame pentru conectarea modemurilor, imprimantelor, plotterelor la portul COM.

8. Desenați o diagramă a interacțiunii componentelor \ USB.

USB permite schimbul de date între un computer gazdă și o varietate de dispozitive periferice (CP). Conform specificațiilor USB, dispozitivele pot fi hub-uri, funcții sau o combinație a ambelor. Un dispozitiv hub oferă doar puncte suplimentare pentru conectarea dispozitivelor la magistrală. Dispozitivul cu funcție USB oferă sistemului funcționalități suplimentare, cum ar fi o conexiune ISDN, un joystick digital, difuzoare cu interfață digitală etc. Un dispozitiv compus care conține mai multe funcții apare ca un hub cu mai multe dispozitive conectate. Dispozitivul USB trebuie să aibă o interfață USB care să accepte pe deplin protocolul USB, să efectueze operațiuni standard (configurare și resetare) și să furnizeze informații care să descrie dispozitivul. Întregul sistem USB este controlat de controlerul gazdă, care este subsistemul hardware și software al computerului gazdă. Autobuzul vă permite să vă conectați, să configurați, să utilizați și să deconectați dispozitivele în timp ce gazda și dispozitivele în sine rulează. Autobuzul USB este centrat pe gazdă: singurul master care controlează schimbul este computerul gazdă, iar toate perifericele atașate acestuia sunt exclusiv sclave. Topologia fizică a magistralei USB este o stea cu mai multe niveluri. Partea superioară a acestuia este controlerul gazdă combinat cu hub-ul rădăcină, de obicei cu două porturi. Un hub este un dispozitiv splitter; poate fi, de asemenea, o sursă de alimentare pentru dispozitivele conectate la acesta. Un dispozitiv periferic sau un hub intermediar poate fi conectat direct la fiecare port al hub-ului; magistrala permite până la 5 niveluri de concentrare în cascadă (fără a lua în considerare rădăcina). Deoarece dispozitivele combinate conțin un hub intern, conexiunea lor la un hub de nivel 6 nu mai este permisă. Fiecare hub intermediar are mai multe porturi din aval pentru conectarea dispozitivelor periferice (sau hub-uri din aval) și un port în amonte pentru conectarea la hub-ul rădăcină sau la portul din aval al unui hub din amonte. Topologia logică a USB este doar o stea: pentru controlerul gazdă, hub-urile creează iluzia conectării directe a fiecărui dispozitiv. Spre deosebire de magistralele de expansiune (ISA, PCI, PC Card), unde programul interacționează cu dispozitive prin adrese fizice ale celulelor de memorie, porturi I / O, întreruperi și canale DMA, aplicațiile interacționează cu dispozitivele USB numai prin interfața programului. Această interfață independentă de dispozitiv este furnizată de software-ul sistemului de controler USB.

Spre deosebire de cablurile AT A paralele voluminoase și costisitoare, și mai ales de magistrala SCSI cu varietatea sa de conectori și reguli complexe de conectare, cablarea USB este simplă și elegantă. Cablul USB conține un cablu cu pereche răsucită ecranată de 90 Ohm pentru circuitele de semnal și o pereche neecranată pentru alimentarea cu energie electrică (+5 V), lungimea admisibilă a segmentului este de până la 5 m. m lung poate fi folosit (este mai ieftin) ... Sistemul de cabluri și conectori USB nu face posibilă greșeala la conectarea dispozitivelor (Fig. 13.1, a și b). Pentru a recunoaște conectorul USB, pe carcasa dispozitivului se pune o denumire simbolică standard (Fig. 13.1, c). Soclurile de tip „A” se potrivesc numai pe porturile hub din aval, tipurile „A” de pe cablurile hub-ului periferic sau din amonte. Mufele și mufele de tip B sunt utilizate numai pentru cablurile care sunt deconectate de la dispozitivele periferice și de la porturile din amonte ale hub-urilor (de la dispozitive „mici” - șoareci, tastaturi etc. cablurile, de regulă, nu se deconectează). În plus față de conectorii standard arătați în Figura 19, sunt utilizate și versiuni miniaturale (Figura 20, c, d, e). Hub-urile și dispozitivele oferă capacități de conectare și deconectare la cald. Pentru aceasta, conectorii asigură o conexiune anterioară și deconectare ulterioară a circuitelor de alimentare în raport cu cele de semnal, în plus, este prevăzut un protocol pentru semnalizarea conexiunii și deconectării dispozitivelor. Alocările de pin ale conectorilor USB sunt prezentate în tabel. 9, numerotarea pinilor este prezentată în fig. 20. Toate cablurile USB sunt „drepte” - conectează aceleași lanțuri de conector.


Smochin. 19. Conectori USB: a - mufa tip "A", b - mufa tip "B", c - desemnare simbolică

Smochin. 20. Socluri USB: a - tip "A", b - tip "B" standard, c, d, e - miniatură tip "B"

Tabelul 9. Scopul pinilor conectorului USB

Autobuzul utilizează o metodă diferențială de transmitere a semnalelor D + și D- pe două fire. Viteza unui dispozitiv conectat la un anumit port este determinată de hub pe baza nivelurilor de semnal de pe liniile D + și D, schimbate de rezistențele de sarcină ale transceiver-urilor: dispozitivele cu o viteză mică „trag în sus” D- linie la un nivel înalt, cu unul complet - D +. Conexiunea dispozitivului HS este determinată la etapa schimbului de informații de configurare - fizic, pentru prima dată, dispozitivul HS trebuie să fie conectat ca un FS. Transmisia USB cu două fire nu se limitează la semnale diferențiale. În plus față de receptorul diferențial, fiecare dispozitiv are receptoare de linie pentru semnale D + și D-, iar emițătoarele acestor linii sunt controlate individual. Acest lucru face posibilă distincția între mai mult de două stări de linie utilizate pentru organizarea interfeței hardware.

Introducerea vitezei mari (480 Mbps - doar de 2 ori mai lentă decât Gigabit Ethernet) necesită o coordonare atentă a transceiverelor și a liniilor de comunicație. Doar cablul torsadat ecranat pentru liniile de semnal poate funcționa la această viteză. Pentru viteză mare, hardware-ul USB trebuie să aibă transceivere dedicate suplimentare. Spre deosebire de condiționatoarele potențiale pentru modurile FS și LS, emițătoarele HS sunt surse de curent orientate către prezența rezistențelor terminale pe ambele linii de semnal.

Rata de transmisie (LS, FS sau HS) este selectată de proiectantul periferic în funcție de necesitățile perifericului. Implementarea vitezei mici pentru dispozitiv este oarecum mai ieftină (transceiver-urile sunt mai simple, iar cablul pentru LS poate fi, de asemenea, o pereche ne-răsucită neîntorsată). În timp ce în dispozitivele USB „vechi” a fost posibil fără ezitare să se conecteze la orice port liber al oricărui hub, în ​​USB 2.0, cu dispozitive și hub-uri de diferite versiuni, a existat posibilitatea de a alege între configurații optime, suboptimale și inoperante.

Huburile USB 1.1 trebuie să accepte viteze FS și LS, viteza dispozitivului conectat la hub este determinată automat de diferența de potențial a liniilor de semnal. Când transferați pachete, hub-urile USB 1.1 sunt pur și simplu repetatoare care asigură o comunicare transparentă între periferic și controler. Transferurile de viteză redusă risipesc lățimea de bandă potențială a autobuzului destul de risipitor: în timpul în care ocupă autobuzul, un dispozitiv de mare viteză poate transfera de 8 ori mai multe date. Dar pentru a simplifica și reduce costul întregului sistem, aceste sacrificii au fost făcute, iar programatorul de tranzacții al controlerului gazdă monitorizează alocarea lățimii de bandă între diferite dispozitive.

În specificația 2.0, viteza de 480 Mbit / s ar trebui să se potrivească cu cele anterioare, dar cu un astfel de raport de viteze, schimburile către FS și LS vor „consuma” lățimea de bandă posibilă a autobuzului fără nici o „plăcere” (pentru utilizator). Pentru a preveni acest lucru, hub-urile USB 2.0 preiau caracteristicile comutatoarelor de pachete. Dacă un dispozitiv de mare viteză (sau un hub similar) este conectat la portul unui astfel de hub, hub-ul funcționează într-un mod repetor, iar tranzacția cu dispozitivul de pe HS preia întregul canal către controlerul gazdă pentru întreaga durată a executării sale. Dacă un dispozitiv sau hub 1.1 este conectat la portul hub USB 2.0, atunci pachetul trece prin canal către controler la viteza HS, este stocat în bufferul hub și merge la vechiul dispozitiv sau hub la FS sau LS nativ viteză. În același timp, funcțiile controlerului și hub 2.0 (inclusiv rădăcina) devin mai complicate, deoarece tranzacțiile pe FS și LS sunt împărțite și transferurile de mare viteză sunt încorporate între părțile lor. De la dispozitive și hub-uri vechi (1.1), toate aceste subtilități sunt ascunse, ceea ce asigură compatibilitatea înapoi. Este destul de clar că un dispozitiv USB 2.0 va fi capabil să realizeze viteză mare numai dacă sunt întâlnite doar hub-uri 2.0 de-a lungul drumului de la controlerul gazdă (de asemenea, 2.0). Dacă această regulă este încălcată și există un hub vechi între acesta și controlerul 2.0, atunci comunicarea poate fi stabilită numai în modul FS. Dacă dispozitivul și software-ul clientului sunt mulțumite de o astfel de viteză (de exemplu, pentru o imprimantă și un scaner, acest lucru va duce doar la un timp de așteptare mai mare pentru utilizator), atunci dispozitivul conectat va funcționa, dar un mesaj despre -configurația optimă a conexiunii va apărea. Dacă este posibil, (configurația) acestuia ar trebui corectată, deoarece comutarea cablurilor USB se poate face din mers. Dispozitivele și software-ul care sunt esențiale pentru lățimea de bandă a autobuzului vor refuza să funcționeze într-o configurație greșită și vor necesita în mod categoric o comutare. Dacă controlerul gazdă este vechi, atunci toate avantajele USB 2.0 nu vor fi disponibile utilizatorului. În acest caz, va trebui să schimbați controlerul gazdă (schimbați placa de bază sau cumpărați o placă de control PCI). Controlerul și hub-urile USB 2.0 permit creșterea lățimii de bandă a magistralei totale și pentru dispozitivele mai vechi. Dacă dispozitivele FS sunt conectate la diferite porturi ale hub-urilor USB 2.0 (inclusiv cel rădăcină), atunci debitul total al magistralei USB pentru acestea va crește în comparație cu 12 Mbit / s de câte ori sunt porturile hub-urilor de mare viteză folosit.

Hub-ul este un element cheie al sistemului PnP în arhitectura USB. Hubul îndeplinește multe funcții:

  • oferă conexiune fizică a dispozitivelor,

modelarea și perceperea

  • semnale conform specificațiilor autobuzului pentru

fiecare dintre porturile sale;

  • controlează tensiunea de alimentare la

porturi aval, cu prevederi pentru stabilirea limitelor curentului consumat de fiecare port;

  • monitorizează starea dispozitivelor conectate la acesta,

notificarea gazdei de modificări;

  • detectează erori pe autobuz, efectuează proceduri

repararea și izolarea segmentelor de autobuz defecte;

  • asigură comunicarea între segmentele de autobuz care operează pe

viteze diferite.

Hubul monitorizează semnalele generate de dispozitive. Un dispozitiv defect poate să nu fie capabil să „tacă” (să piardă activitatea) sau, dimpotrivă, să „bâlbâie” ceva. Aceste situații sunt monitorizate de hub-ul cel mai apropiat de dispozitiv și interzice transmisiile în amonte de la un astfel de dispozitiv nu mai târziu de-a lungul limitei (micro) cadrului. Datorită vigilenței hub-urilor, aceste situații vor împiedica blocarea întregului autobuz de către un dispozitiv defect.

Fiecare dintre porturile din aval poate fi activat sau dezactivat și configurat pentru rate de transfer mari, complete sau limitate. Huburile pot avea lumini de stare ale portului din aval care sunt controlate automat (logica hub-ului) sau software (controlerul gazdei). Indicatorul poate fi o pereche de LED-uri - verde și galben (chihlimbar) sau un LED cu culoare schimbătoare. Starea portului este reprezentată după cum urmează:

  • off-port nu este utilizat;
  • verde - funcționare normală;
  • galben - eroare;
  • verde intermitent - programul necesită atenție

utilizator (atenția software-ului);

  • intermitent galben - echipamentul necesită atenție

de (Atenție hardware).

Portul din amonte al hub-ului este configurat și prezentat extern ca viteză maximă sau viteză mare (numai USB 2.0). Când este conectat, portul hub USB 2.0 asigură terminarea conform schemei FS; este comutat în modul HS numai la comanda controlerului.

În fig. 13.3 prezintă o variantă de conectare a dispozitivelor și hub-urilor, unde un dispozitiv USB 2.0 de mare viteză este doar o cameră TV care transmite un flux video fără compresie. Conectarea unei imprimante și scanere USB 1.1 pentru a separa porturile de pe hub-ul 2.0 și chiar decuplarea acestora de dispozitivele audio le permite să utilizeze o lățime de bandă a autobuzului de 12 Mbps fiecare. Astfel, din lățimea de bandă totală de 480 Mbit / s, 3x12 = 36 Mbit / s este alocat dispozitivelor „vechi” (USB 1.0). De fapt, putem vorbi despre lățimea de bandă de 48 Mbps, deoarece tastatura și mouse-ul sunt conectate la un port separat al controlerului gazdă USB 2.0, dar aceste dispozitive „stăpânesc” doar o fracțiune din cei 12 Mbps alocați acestora. Desigur, puteți conecta o tastatură și un mouse la portul unui hub extern, dar din punctul de vedere al creșterii fiabilității, este mai bine să conectați dispozitivele de intrare a sistemului folosind cel mai scurt (în ceea ce privește numărul de cabluri, conectori și dispozitive intermediare) metoda. O configurație nereușită ar fi conectarea unei imprimante (scaner) la un hub USB 1.1 - în timp ce lucrați cu dispozitive audio (dacă sunt de înaltă calitate), viteza de imprimare (scanare) va scădea. O configurație inoperantă ar fi conectarea camerei la un port hub USB 1.1.

Când planificați conexiunile, luați în considerare modul în care dispozitivele sunt alimentate: dispozitivele alimentate din magistrală sunt de obicei conectate la hub-uri alimentate de rețea. Numai dispozitivele de consum redus sunt conectate la hub-uri alimentate de la magistrală - de exemplu, un mouse USB și alte dispozitive de indicare (trackball, tabletă) sunt conectate la o tastatură USB care conține un hub.

Gestionarea energiei este o funcție USB extrem de avansată. Pentru dispozitivele alimentate cu autobuz, puterea este limitată. Orice dispozitiv, atunci când este conectat, nu trebuie să extragă din curentul de magistrală peste 100 mA. Curentul de funcționare (nu mai mult de 500 mA) este declarat în configurație. Dacă hub-ul nu poate alimenta dispozitivul cu curentul declarat, acesta nu este configurabil și, prin urmare, nu poate fi utilizat.

Dispozitivul USB trebuie să accepte modul suspendat, în care consumul său curent nu depășește 500 μA. Dispozitivul ar trebui să se suspende automat atunci când magistrala nu mai este activă.

Smochin. 21. Exemplu de configurare a conexiunii

Capacitatea de trezire la distanță permite unui dispozitiv suspendat să semnaleze un computer gazdă, care poate fi, de asemenea, într-o stare suspendată. Capacitatea de trezire la distanță este descrisă în configurația dispozitivului. Această funcție poate fi dezactivată în timpul configurării.

Autobuzul USB (Universal Serial Bus) a apărut după standardele computerului cu mult timp în urmă - o versiune a primei versiuni aprobate a standardului a apărut la 15 ianuarie 1996. Dezvoltarea standardului a fost inițiată de firme cu reputație înaltă - Intel, DEC, IBM, NEC, Northen Telecom și Compaq.

Scopul principal al setului standard pentru dezvoltatorii săi este de a crea o oportunitate reală pentru utilizatori de a lucra în modul Plug & Play cu dispozitive periferice. Aceasta înseamnă că ar trebui să existe prevederi pentru conectarea dispozitivului la un computer care rulează, recunoașterea automată imediat după conectare și apoi instalarea driverelor corespunzătoare.

Capacitățile USB decurg din caracteristicile sale tehnice: viteză mare de schimb (rata de biți de semnalizare la viteză maximă) - 12 Mbit / s; lungimea maximă a cablului pentru schimbul de viteză mare - 5 m; rata de schimb redusă (rata de biți de semnalizare cu viteză redusă) - 1,5 Mbit / s; lungimea maximă a cablului pentru rata de schimb redusă - 3 m; numărul maxim de dispozitive conectate (inclusiv multiplicatori) - 127; este posibil să conectați dispozitive cu rate de schimb diferite; tensiune de alimentare pentru dispozitive periferice - 5 V; curent de consum maxim pe dispozitiv - 500 mA (acest lucru nu înseamnă că dispozitivele cu un curent de consum total de 127 ´ 500 mA = 63,5 A pot fi alimentate prin USB)

Topologia USB este aproape identică cu cea a unei rețele LAN cu perechi răsucite convenționale, denumită în mod obișnuit „stea”. Chiar și terminologia este similară - crescătorii de autobuze sunt numiți și HUBs.

În mod convențional, arborele pentru conectarea dispozitivelor USB la un computer poate fi descris după cum urmează (a se vedea figura 5.22) (numerele indică dispozitivele periferice cu o interfață USB):

Un HUB poate sta, de asemenea, în locul oricărui dispozitiv. Principala diferență față de topologia unei rețele locale convenționale este că poate exista un singur computer (sau dispozitiv gazdă). HUB-ul poate fi fie un dispozitiv autonom cu sursă de alimentare proprie, fie încorporat într-un dispozitiv periferic. Cel mai adesea, HUB-urile sunt încorporate în monitoare și tastaturi.

Semnalele USB sunt transmise printr-un cablu cu 4 fire, prezentat schematic în fig. 5.22:

Smochin. 5.22. Transmisie semnal prin cablu USB

Aici GND este circuitul de „caz” pentru alimentarea dispozitivelor periferice, VBus - +5 V și pentru circuitele de alimentare. Autobuzul D + este pentru trimiterea de date pe autobuz, iar magistrala D pentru primirea de date. Cablul pentru a susține autobuzul cu viteză maximă este pereche răsucită, ecranat și poate fi folosit și pentru funcționarea cu viteză redusă. Cablul pentru funcționare numai la viteza minimă (de exemplu, pentru conectarea unui mouse) poate fi oricare și neecranat.

În 1999, același consorțiu de companii de calculatoare care a inițiat dezvoltarea primei versiuni a standardului pentru magistrala USB a început să dezvolte activ versiunea 2.0 a USB, care diferă prin faptul că lățimea de bandă a magistralei este mărită de 20 de ori, până la 250 Mbit / s, care face posibilă transferul de date video prin USB și o face un concurent direct la IEEE-1394 (FireWire). Compatibilitatea tuturor perifericelor și cablurilor de mare viteză lansate anterior este pe deplin păstrată și se păstrează unul dintre cele mai importante avantaje ale USB - costul redus al controlerului.

Universal Serial Bus

  • Conector Mini-B ECN: Aviz emis în octombrie 2000.
  • Errata din decembrie 2000: Aviz emis în decembrie 2000.
  • Rezistențe de tragere / tragere în jos ECN
  • Errata din mai 2002: Aviz emis în mai 2002.
  • Asociații de interfață ECN: Aviz emis în mai 2003.
    • Au fost adăugate noi standarde pentru a permite asocierea mai multor interfețe cu o singură funcție de dispozitiv.
  • Șanț rotunjit ECN: Aviz emis în octombrie 2003.
  • Unicode ECN: Aviz emis în februarie 2005.
    • Acest ECN specifică faptul că șirurile sunt codificate folosind UTF-16LE.
  • Supliment USB inter-chip: Aviz emis în martie 2006.
  • Supliment de mers 1.3: Aviz emis în decembrie 2006.
    • USB On-The-Go face posibil ca două dispozitive USB să comunice între ele fără o gazdă USB separată. În practică, unul dintre dispozitive acționează ca gazdă pentru celălalt.

USB OTG

USB 3.0

USB 3.0 se află în etapele finale de dezvoltare. Următoarele companii sunt angajate în crearea USB 3.0: Microsoft, Texas Instruments, NXP Semiconductors. În specificația USB 3.0, porturile și cablurile standardului actualizat vor fi compatibile fizic și funcțional cu USB 2.0. Cablul USB 2.0 conține patru linii - o pereche pentru recepționarea / transmiterea datelor, una pentru alimentare și una pentru împământare. În plus față de acestea, USB 3.0 adaugă cinci linii noi (rezultând un cablu mult mai gros), dar noii pini sunt paraleli cu cele vechi pe un rând de pini diferit. Acum puteți determina cu ușurință dacă un cablu aparține unei anumite versiuni a standardului, doar uitându-vă la conectorul său. Specificația USB 3.0 ridică rata maximă de transfer de date la 4,8 Gbps - ordine de mărime mai mari decât 480 Mbps pe care USB 2.0 le poate oferi. USB 3.0 se mândrește nu numai cu o rată de transfer de date mai mare, ci și cu o putere crescută a curentului de la 500 mA la 900 mA. De acum înainte, utilizatorul nu va putea doar să alimenteze un număr mult mai mare de dispozitive dintr-un hub, dar hardware-ul în sine, furnizat anterior cu surse de alimentare separate, va scăpa de ele.


Aici GND este circuitul de „caz” pentru alimentarea dispozitivelor periferice, VBus - +5 V, de asemenea pentru circuitele de alimentare. Datele sunt transmise prin firele D + și D− diferențial (stările 0 și 1 (în terminologia documentației oficiale diff0 și respectiv diff1) sunt determinate de diferența de potențial între liniile mai mari de 0,2 V și cu condiția ca pe una a liniilor (D− în cazul diff0 și D + cu diff1) potențialul față de GND este mai mare de 2,8 V. Metoda de transmisie diferențială este principală, dar nu singura (de exemplu, în timpul inițializării, dispozitivul informează gazda despre modul acceptat de dispozitiv (Full-Speed ​​sau Low-Speed) trăgând una dintre datele de linie în V_BUS printr-un rezistor de 1,5 kΩ (D- pentru modul Low-Speed ​​și D + pentru modul Full-Speed, dispozitivele care funcționează în modul Hi-Speed ​​se comportă ca dispozitivele în modul Full-Speed ​​în această etapă). firul este prevăzut cu o înfășurare a fibrelor pentru a-l proteja de deteriorarea fizică.

Conector USB 3.0 tip B.

Conector USB 3.0 tip A.

Cabluri și conectori USB 3.0

Dezavantaje ale USB

Deși debitul de vârf al USB 2.0 este de 480 Mbps (60 Mbps), în practică nu este posibil să se obțină un debit aproape de vârf. Acest lucru se datorează întârzierilor destul de mari ale magistralei USB între cererea de transfer de date și începutul efectiv al transferului. De exemplu, magistrala FireWire, deși are o lățime de bandă de vârf mai mică de 400 Mbps, cu 80 Mbps mai mică decât USB 2.0, în realitate permite o lățime de bandă mai mare pentru schimbul de date cu hard disk-uri și alte dispozitive de stocare.

USB și FireWire / 1394

Protocol de stocare USB, care este o metodă de transfer de comenzi

În plus, stocarea USB nu a fost acceptată în sistemele de operare mai vechi (Windows 98 original) și a necesitat instalarea driverului. SBP-2 a fost sprijinit și în acestea. De asemenea, în sistemul de operare mai vechi (Windows 2000), protocolul de stocare USB a fost implementat într-o formă trunchiată, ceea ce nu permite utilizarea funcției de ardere a discurilor CD / DVD pe o unitate USB conectată prin USB; SBP-2 nu a avut niciodată astfel de restricții.

Busul USB este strict orientat, prin urmare, conectarea a 2 calculatoare sau 2 dispozitive periferice necesită echipamente suplimentare. Unii producători acceptă conectarea unei imprimante și a unui scaner, sau a unei camere și a unei imprimante, dar aceste implementări sunt foarte specifice furnizorului și nu sunt standardizate. Autobuzul 1394 / FireWire nu suferă de acest dezavantaj (pot fi conectate 2 camere video).

Cu toate acestea, datorită politicii de licențiere a Apple, precum și complexității hardware mult mai ridicate, 1394 este mai puțin frecventă, plăcile de bază ale computerelor mai vechi nu au un controler 1394. În ceea ce privește perifericele, suportul 1394 nu se găsește de obicei în altele decât camerele video și carcasele pentru hard disk-uri externe și unități CD / DVD.

Vezi si

  • Firewire
  • TransferJet

Surse de

Link-uri

  • Știri USB (germană)
  • Lista ID-urilor USB (furnizori, dispozitive și interfețe)

Autobuzele PCI și PCI Express sunt potrivite pentru conectarea perifericelor de mare viteză, dar utilizarea PCI pentru dispozitivele I / O de viteză mică (cum ar fi șoarecii și tastaturile) este ineficientă.

În plus, pentru a adăuga dispozitive noi, au fost folosite sloturi ISA și PCI gratuite, în care au fost inserate carduri de control I / O.

În acest caz, utilizatorul trebuie să pună singur comutatoarele și jumperii, apoi trebuie să deschidă unitatea de sistem, să introducă placa, să închidă unitatea de sistem și să pornească computerul.

Pentru mulți, acest proces este foarte dificil și duce adesea la erori. În plus, numărul sloturilor ISA și PCI este foarte mic (de obicei, două sau trei).

În 1993, reprezentanți din șapte companii (Compaq, DEC, IBM, Intel, Microsoft, NEC și Northern Telecom) au dezvoltat un autobuz care a fost optim pentru conectarea dispozitivelor de viteză redusă.

Rezultatul muncii lor a fost o anvelopă USB(Universal Serial Bus - Universal Serial Bus),îndeplinind următoarele cerințe:

  • utilizatorii nu ar trebui să instaleze comutatoare și jumperi pe plăci și dispozitive;
  • utilizatorii nu trebuie să deschidă computerul pentru a instala noi dispozitive I / O;
  • trebuie să existe un singur tip de cablu adecvat pentru conectarea tuturor dispozitivelor;
  • Dispozitivele I / O trebuie alimentate prin cablu;
  • trebuie să fie posibil să se conecteze până la 127 de dispozitive la un computer;
  • sistemul trebuie să accepte dispozitive în timp real (de exemplu,
    dispozitive sonore, telefon);
  • ar trebui să fie posibilă instalarea dispozitivelor în timp ce computerul rulează;
  • nu ar trebui să fie nevoie să reporniți computerul după instalarea unui dispozitiv nou;
  • producția unei noi magistrale și dispozitive I / O pentru aceasta nu ar trebui să fie costisitoare.

Lățimea totală de bandă a primei versiuni a magistralei (USB 1.0) este de 12 Mbps.

Versiunea 2.0 rulează la 480 Mbps, ceea ce este suficient pentru imprimante, camere digitale și multe alte dispozitive. Limita a fost aleasă pentru a reduce costul vârfurilor.

Versiunea USB 3.0 crește rata maximă de transfer de date până la 5 Gbps - ceea ce reprezintă un ordin de mărime mai mare decât USB 2.0 (480 Mbps). Astfel, rata de transfer crește de la 60 MB / s la 600 MB / s.

Autobuzul USB constă din hub rădăcină(hub rădăcină), care este introdus în conectorul magistralei principale (vezi Fig. 3.49). Acest hub rădăcină (denumit adesea hub hub) conține conectori de cablu care pot fi conectați la dispozitive I / O sau hub-uri suplimentare pentru a crește numărul de conectori.

Astfel, topologia magistralei USB este un arbore înrădăcinat într-un hub rădăcină care se află în interiorul computerului.



Conectorii (conectorii) cablului de pe partea dispozitivului diferă de conectorii de pe partea butucului astfel încât utilizatorul să nu conecteze accidental cablul de pe cealaltă parte.

Cablul este format din patru fire: două pentru transmiterea datelor, unul pentru alimentarea cu energie electrică (+5 V) și unul pentru masă. Sistemul transmite 0 prin schimbarea tensiunii și 1 fără schimbarea tensiunii ”, astfel încât o secvență lungă de zero biți generează un flux de impulsuri regulate.

Când este conectat un nou dispozitiv I / O, hub-ul rădăcină detectează acest fapt și întrerupe sistemul de operare.

Sistemul de operare interogează apoi noul dispozitiv pentru „ce este și câtă lățime de bandă a autobuzului are nevoie”.

Dacă sistemul de operare decide că există suficientă lățime de bandă pentru acest dispozitiv, acesta îi atribuie o adresă unică (1-127) și încarcă această adresă și alte informații în registrele de configurare din interiorul dispozitivului.

Astfel, dispozitivele noi pot fi conectate * din mers ”, fără ca utilizatorul să fie nevoit să instaleze noi carduri ISA sau PCI.

Cardurile neinițializate încep de la adresa 0, astfel încât să poată fi accesate. Multe dispozitive au hub-uri de rețea încorporate pentru dispozitive suplimentare. De exemplu, un monitor poate conține două hub-uri pentru difuzoarele din dreapta și din stânga.

Un vârf USB este o serie de canale între hub-ul rădăcină și dispozitivele I / O. Fiecare dispozitiv își poate împărți canalul în maximum 16 subcanaluri pentru diferite tipuri de date (de exemplu, audio și video).

În fiecare canal sau subcanal, datele se mută de la hub-ul rădăcină la dispozitiv și invers. Nu există schimb de informații între două dispozitive I / O.

Exact la fiecare milisecundă (± 0,05 ms), hub-ul rădăcină transmite un nou cadru pentru a sincroniza toate dispozitivele în timp. Un cadru este format din pachete, dintre care primul este transmis de la hub la dispozitiv. Următoarele pachete ale cadrului pot fi transmise în aceeași direcție sau în direcția opusă (de la dispozitiv la hub). În fig. 3.55 arată patru cadre consecutive.

În 1998, a fost creată o versiune USB de mare viteză numită USB 2.0. Acest standard este similar din multe puncte de vedere cu USB 1A și este compatibil cu acesta, cu toate acestea, adaugă unul nou la cele două viteze anterioare - 480 MB / s.

3 Organizarea memoriei într-un computer

3.1 Organizarea ierarhică a memoriei și principiul localității referințelor

Memorie- un set de dispozitive pentru primirea, stocarea și transmiterea datelor către procesorul central sau mediul extern al computerului. Principalele operații de memorie sunt scrierea și citirea.

În sistemele de calcul, memoria este una dintre componentele principale care determină atât performanța, cât și funcționalitatea întregului sistem.

Organizarea memoriei este complexă și ierarhizată. Ideea principală a ierarhiei memoriei este aceea de a se potrivi cu viteza de operare a dispozitivelor de operare, în primul rând cu procesorul, cu dispozitivele de stocare.

Organizarea ierarhică a memoriei are forma prezentată în Fig. 3.1, care prezintă intervalele de valori pentru capacitatea și performanța dispozitivelor de memorie pentru computerele moderne.


R și C. 3.1. Organizarea ierarhică a memoriei

RAM - memorie cu acces aleatoriu;

ROM - numai citire memorie;

CD / DVD - unitate optică;

HDD (Hard Disk Drive) - unitate de disc;

SSD (Solid State Drive) - hard disk

În fig. 3.1 se poate observa că la niveluri superioare ale ierarhiei sunt dispozitive cu capacitate de memorie mai mică, dar cu performanțe mai mari.

Memoria registrului sau fișierul registru este fabricat în matrița procesorului utilizând aceeași tehnologie și are aceleași performanțe ca și elementele de operare ale procesorului.

Memoria cache L1 rulează, de asemenea, intern în procesor, permițând accesul la instrucțiuni și date la viteza de ceas a procesorului.

În multe modele de procesoare, memoria cache L2 este integrată în nucleul procesorului.

Cache-ul L3 este implementat ca un microcircuit separat de mare viteză sau într-un procesor, ca în arhitectura Nehalem.

Eficacitatea organizării ierarhice este asociată cu cel mai important principiu al localității de referință sau cu principiul localității de referință.

La executarea majorității programelor, s-a observat că adresa următoarei comenzi va fi localizată fie direct în spatele adresei comenzii care se execută, fie nu departe de aceasta.

Mai mult, cu o probabilitate foarte mare, datele utilizate de aceste comenzi sunt de obicei structurate și localizate în locații secvențiale de memorie.

În plus, programele conțin multe bucle mici și subrutine care se repetă de multe ori pe un interval de timp.


În fig. 3.2 prezintă două secțiuni de program situate în memorie și zonele de date corespunzătoare.

R și C. 3.2. Localizarea programului și a datelor în memoria și localitatea de referință

Acest fenomen se numește localitate de referință sau localitate de acces. Este cunoscută regula „90/10” - adică 90% din timpul de funcționare al programului este asociat cu accesul la 10% din spațiul de adresă al acestui program.

3.2 Interacțiunea dintre procesor și diferite niveluri de memorie

Nivelurile ierarhiei de memorie sunt interconectate: toate datele de la un nivel pot fi găsite și la un nivel inferior și toate datele de la acel nivel inferior pot fi găsite la următorul nivel inferior și așa mai departe.

În fiecare moment, există un schimb cu două niveluri din apropiere. Cea mai mică unitate de informații care poate fi sau nu prezentă într-o ierarhie pe două niveluri se numește bloc.

Dimensiunea blocului poate fi fixă ​​sau variabilă. Dacă această dimensiune este fixă, atunci dimensiunea memoriei este un multiplu al dimensiunii blocului.

Un acces reușit sau nereușit la un nivel superior este numit respectiv lovit sau ratat.

Lovit - referire la un obiect din memorie, care se găsește la un nivel superior, în timp ce domnișoară înseamnă că nu a fost găsit la acel nivel.

Rata de accesare sau rata de accesare este procentul de accesări găsite la un nivel superior.

Rata de ratare este procentajul de accesări care nu sunt găsite la un nivel superior.

O lipsă este momentul înlocuirii unui bloc la un nivel superior cu un bloc de la un nivel inferior, plus timpul de transfer al acelui bloc pe dispozitivul dorit (de obicei procesorul).

Pierderile lipsă includ două componente: timpul de acces - timpul necesar pentru a accesa primul cuvânt al blocului la o ratare și timpul de transfer - timpul suplimentar pentru a transfera cuvintele rămase ale blocului.

Timpul de acces este legat de latența memoriei de nivel inferior, în timp ce timpul de transfer este legat de lățimea de bandă a canalului dintre dispozitivele de memorie de la două niveluri adiacente.

Procesorul este aproape întotdeauna inițiatorul accesului la memorie. O excepție este modul de acces direct la memorie, atunci când este organizat procesul de transfer al fișierelor între OP și memoria externă prin magistrala corespunzătoare, ocolind procesorul.

În cursul executării programului, procesorul procesează fiecare instrucțiune și determină adresa executivă A a operandului.

În acest caz, procesorul „nu știe” la ce nivel de memorie este această adresă executivă, prin urmare, se formează imediat un apel către OP.

Vom lua în considerare organizarea datelor bloc.

În memoria registrului, datele sunt scrise în blocuri sub formă de cuvinte de lungime 16, 32, 64 și 128 pic.

În memoria cache, un bloc este un șir de lungime 16, 32 sau 64 octeți... În OP, paginile de 4 - 8 sunt cele mai des utilizate KB.

Blocurile de pe hard disk sunt sectoare după 512 octeți... De regulă, dimensiunea paginii OP este un multiplu al lungimii sectorului de hard disk.

Dacă sistemul are o memorie cache, atunci controlerul cache verifică dacă cache conține adresa solicitată A isp. Dacă există date cu o astfel de adresă, atunci blocul cu aceste date este citit din memoria cache în procesor și accesul la OP este blocat.

Dacă nu există date în memoria cache cu adresa A isp, atunci blocul necesar este căutat în RAM, apoi încărcat în memoria cache și simultan transferat la procesor.

La fel, la accesarea memoriei principale, la lovire, blocul de date este transferat procesorului. În caz de ratare, datele sunt încărcate de pe discul dur sau optic în RAM.

Când accesați memoria de arhivă, blocul de date, adică discul necesar, este transferat automat din stocare și instalat în unitatea de disc a computerului.

3.3 Memoria adreselor

În dispozitivul de stocare a adreselor (ZU), fiecare element de memorie - o celulă, are o adresă care arată locația sa în spațiul de adresă.

Căutarea informațiilor este efectuată de numărul (adresa) celulei de stocare care stochează datele.

Setul de N celule de stocare formează o matrice de stocare 3M.

Pentru o dispunere compactă a celulelor de stocare și acces ușor la acestea, ZM este organizat ca un cub tridimensional.

Are două coordonate de adresă A 1 și A 2, iar a treia coordonată este

cuvinte n-bit.

Dacă adresa care vine de la hasА are o lățime mică la, apoi este împărțit în două componente cu k / 2 biți de adresă:

M = 2 k / 2 x 2 k / 2 = 2 k.

În acest caz, în loc de un DSA cu ieșiri M, sunt utilizate două decodoare cu 2 k / 2 ieșiri, ceea ce simplifică mult implementarea circuitului.

În fig. 3.3. arată o diagramă bloc a unui dispozitiv de stocare a adreselor.

Matricea de stocare 3M are două coordonate: rânduri și coloane. Unitatea de control (CU) controlează dispozitivele de memorie, primind semnale din exterior: RAS, CAS, CE, WE și OE.

Semnalul de selectare a cipului CE permite funcționarea acestui cip de memorie.

Modul de citire sau scriere este determinat de semnalul WE. Atâta timp cât microcircuitul nu folosește magistrala de date a motorului pas cu pas, ieșirile de informații ale registrelor sunt transferate de semnalul OE în a treia stare cu o rezistență ridicată la ieșire.

Adresa liniei de pe autobuzul SHA este însoțită de un semnal RAS, care permite primirea adresei și decriptarea acesteia. Semnalul CAS permite apoi recepția și decriptarea adresei coloanei.

Fiecare coloană are o a doua linie de citire / scriere pentru date. Aceste linii din fig. 3.3 sunt prezentate cu linii punctate.

Operațiunile de memorie sunt controlate de controlerul de memorie. Fiecare operație necesită cel puțin cinci cicluri de ceas.

Specificarea tipului de operație (citire sau scriere) și setarea adresei șirului.


RAS de modelare a semnalului.

Setarea adresei coloanei.

Condiționarea semnalului CAS.

Scrierea sau transmiterea datelor și returnarea semnalelor RAS și CAS în stare inactivă.

R și C. 3.3. Dispozitiv de stocare a adreselor

ЗМ - matrice de stocare;

RAS - Semnal stroboscop Adresă rând;

CAS - Semnal stroboscopic Adresă coloană;

WE - write enable;

OE - activați ieșirea semnalelor de ieșire (Output Enable);

CS - Chip Select

Latența și sincronizarea memoriei

Latența se referă la întârzierea dintre sosirea unei comenzi în memorie și executarea acesteia. Memoria nu se poate deplasa instantaneu dintr-o stare în alta. Pentru funcționarea stabilă a memoriei, este necesar să omiteți mai multe cicluri atunci când starea celulei de memorie se schimbă.

De exemplu, după executarea unei comenzi de citire, trebuie să urmeze o latență CAS. Aceasta este latența (CL) - cea mai importantă caracteristică a memoriei.

Evident, cu cât latența este mai mică, cu atât mai rapidă funcționează memoria.

Latența memoriei este determinată de temporizările sale, adică de întârzierile măsurate în numărul de cicluri de ceas între instrucțiuni individuale.

Există mai multe tipuri de temporizări ale memoriei.

CL: CAS Latency - timpul scurs din momentul în care o comandă este introdusă în memorie până la începutul unui răspuns la această solicitare. Acesta este timpul care trece între solicitarea procesorului de a obține unele date din memorie și momentul în care memoria emite aceste date.

RAS-la-CAS (tRCD): latență de la RAS la CAS - timpul care trebuie să treacă de la momentul accesării rândului matricial (RAS) până la accesarea coloanei sale matriciale (CAS), pentru a recupera datele în care datele necesare sunt stocate ...

RAS Precharge (tRP) - intervalul de timp dintre momentul închiderii accesului la un rând și începutul accesului la un alt rând de date.

Active to Precharge sau Cycle Time (tRAS) - o pauză de care memoria trebuie să revină în starea de așteptare pentru următoarea solicitare.

CMD: Rată de comandă - timpul din momentul în care cipul de memorie este activat până când prima comandă îl poate accesa. De obicei T1 (un ciclu de ceas) sau T2 (două cicluri de ceas).

Performanța memoriei crește rapid, iar latența sa se îmbunătățește cu greu.

Unele tipuri de memorie mai noi cu lățimi de bandă mai mari au latențe mai mari decât implementările anterioare.

În ultimii 25 de ani, latența RAM a scăzut de doar trei ori. În același timp, frecvența de ceas a procesoarelor a crescut de sute de ori.

3.4 Memoria asociativă

Conceptul de „asociere” se referă în primul rând la memorie, în care selecția se efectuează nu conform principiului adresei, ci în funcție de conținut.

Memoria asociativă folosește scrierea și citirea datelor în așa fel încât să ofere o selecție de cuvinte care au un conținut dat din anumite câmpuri.


Căutarea se efectuează utilizând caracteristici asociative. Structura unei astfel de memorii este prezentată în Fig. 3.4.

R și C. 3.4. Memoria asociativă

ЗМ - matrice de stocare;

ШП - caracteristică autobuz;

ШД - magistrala de date

Memoria stochează celule M pentru cuvinte m + 1-bit cu valori ale caracteristicilor.

Serviciul m + prima cifră indică: "0" - celula este liberă pentru scriere, "1" - celula este ocupată. Valorile caracteristicii asociative sunt formate din registrul de mască din câmpurile de caracteristici provenind din magistrala caracteristicilor SHP către registrul de caracteristici asociative.

Căutarea în matricea de stocare se efectuează într-un ciclu de ceas simultan pe câmpurile atributelor asociative ale tuturor cuvintelor stocate.

Acesta este semnul distinctiv al dispozitivelor de memorie asociativă.

Implementarea unei astfel de căutări se realizează prin scheme de potrivire combinațională bazate pe elementele „add modulo 2”.