subiecte rezolvate partea a ii-a

34
1 1. Tipuri de date - instrucţiunile unui microprocesor trebuie să opereze asupra unor operanzi având diferite tipuri de date. - care sunt tipurile de date primare utilizate în programare? - date numerice:   Numere întregi   Numere reale - date booleene  TRUE/FALSE - date caractere şi şiruri de caractere  ASCII, UNICODE - Ce se înţelege prin tip de date? - Tip    prin tip se înţelege o colecţie de valori  - Tip de date    prin tip de date se înţelege un tip împreună cu un set de operaţii ce se pot efectua cu valorile tipului - Tip de date abstract    este un tip de date ale cărui   proprietăţi (valorile şi ope raţiile) sunt specificate independent de orice implementare particulară  - Tip de date structurat    este o implementare a unui tip de date abstract. - Exemplu:  Tip byte  valori între -127 şi +128  Tip de date byte  valori între -127 şi +128  operatori +, -, *, /, %  Tip de date abstract: stiva  Tip de date structura: stiva de numere intregi i mplementată ca vector  - Care sunt caracteristicile de implementare ale tipurilor de date primare? - Caracteristici de implementare ale tipurilor de date primare:  Dimensiune   Număr octeţi   Codificare  Cu semn, fără semn   Întregi, virgula flotantă  Operaţii  Instrucţiunile ce au operanzi de tipul respectiv - Tipuri de date fundamentale oferite de IA-32  +Tenbyte

Upload: cris

Post on 02-Jun-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 1/34

1

1.  Tipuri de date

-  instrucţiunile unui microprocesor trebuie să opereze asupra unor operanzi avânddiferite tipuri de date.

care sunt tipurile de date primare utilizate în programare?-  date numerice:

   Numere întregi

   Numere reale-  date booleene

  TRUE/FALSE-  date caractere şi şiruri de caractere 

  ASCII, UNICODE-  Ce se înţelege prin tip de date? 

-  Tip –   prin tip se înţelege o colecţie de valori - 

Tip de date –   prin tip de date se înţelege un tip împreună cu un set de operaţii ce se potefectua cu valorile tipului

-  Tip de date abstract –  este un tip de date ale cărui  proprietăţi (valorile şi operaţiile)sunt specificate independent de orice implementare particulară 

-  Tip de date structurat –  este o implementare a unui tip de date abstract.-  Exemplu:

  Tip byte  valori între -127 şi +128 

  Tip de date byte

 

valori între -127 şi +128   operatori +, -, *, /, %

  Tip de date abstract: stiva

  Tip de date structura: stiva de numere intregi implementată ca vector  -  Care sunt caracteristicile de implementare ale tipurilor de date primare?

-  Caracteristici de implementare ale tipurilor de date primare: 

  Dimensiune 

   Număr octeţi 

  Codificare

 

Cu semn, fără semn   Întregi, virgula flotantă 

  Operaţii   Instrucţiunile ce au operanzi de tipul respectiv 

-  Tipuri de date fundamentale oferite de IA-32

  +Tenbyte

Page 2: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 2/34

2

Page 3: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 3/34

3

2. Variabile si constante-  Ce este o variabila?-  Prin ce se caracterizeaza o variabila?-  Un aspect fundamental pentru limbajele de programare este utilizarea variabilelor .

Ce este o variabila?  = o marime care in cursul executiei unui program isi poate modifica valoarea.

-  Prin ce se caracterizeaza o variabila?

   Nume

  Tip

  Valoare-  Cum se transpune definirea unei variabile intrun limbaj de programare de nivel inalt,

de catre compilator, la nivel de executie pe un microprocesor?

  int a = 0;

O variabila poate fi privita ca o locatie de memorie folosita pentru stocarea unei valorisi este caracterizata prin:

  nume (identificator): acesta este asociat adresei locatiei de memorie.

  valoare: informatia stocata

  tip: determina multimea de valori pe care le poate lua variabila, codificarealor, precum si operatiile ce se pot aplica acestor valori.

-  Interpretarea informatiei stocate este specificat de tipul variabilei

a.  Declararea si definirea variabilelor

-  Ce inseamna declararea variabilelor?

  specificarea unui nume si a unui tip de Data-  Ce inseamna definirea unei variabile?

  alocarea unei zone de memorie pentru pastrarea valorii variabilei-  Initializarea unei variabile

  Specificarea unei valori pentru variabila respectiva-  Declararea si definirea variabilelor in asamblare

nume_var tip lista_valorinume_sir tip N dup(valoare)

tip: db, dw, dd, dq, dtvar_int8 db 12Hvar_int16 dw 1234Hvar_int32 dd 12341234H

var_int64 dq 1234123412341234H-  Constante vs. variabile?-  Unde este pastrata valoarea unei constante sau a unei variabile?

const_int8 equ 10var_int8 db 10

mov al, const_int8mov al, var_int8

Page 4: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 4/34

4

-  Caracteristicile variabilelor   Numele variabilei  Tipul variabilei

  Dimensiunea alocată pentru variabile   Codificarea valorii variabilei

 

Stocarea conţinutului variabilelor    Alocarea de memorie pentru stocarea valorii

  Alinierea datelor  Accesarea variabilelor

  Pointeri şi referinţe   Valoare

3. Pointeri si referinte

-  Pointeri şi referinţe 

 

 Numele unei variabile identifică adresa de memorie la care este salvatăvariabila în memorie.  Tipul variabilei specifică setul de valori pentru variabilă, dimensiunea maximă

de memorie necesară stocării valorilor de tipul respectiv, precum şi setul deoperaţii ce se pot efectua asupra valorilor respective.

  Valoarea variabilei este dată de conţinutul memoriei în timpul execuţiei programului.

  O variabila de tip pointer contine adresa unei locatii de memorie care la randulei contine valoarea propriuzisa

-  Pointeri şi referinţe –  exempluint X = 5;

int Y = 7;...int* Ptr = &X;

  Rezultatul operaţiei *Ptr = 10 

Page 5: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 5/34

5

  Pointer neiniţializat int *Ptr;

  Ce se întâmplă după Ptr1 = Ptr2? 

  Care este rezultatul operaţiei *Ptr1 = *Ptr2? 

   Numele unei variabile identifică adresa de memorie la care este salvată variabilaîn memorie

  Accesarea unei variabile de memorie:mov al, var_int8mov si, offset var_int8mov al, [si]

  Un pointer este o variabilă ce conţine adresa unei alte variabile 

O referinţă este adresa unei variabile 

Page 6: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 6/34

6

int a = 1;int b = 2;int *pa = &a; Care este conţinutul variabilelor după int *pb; execuţia secvenţei de cod? 

 pb = pa + 1;

*pb = *pa + *pb;

  Alocarea memoriei:int *pa = new int;int *pb = malloc(sizeof(int));

int *pc = new int[10];  Dezalocarea memoriei:

delete pa;free(pb);delete[] pc;

-  Probleme curente la utilizarea pointerilor

  Utilizarea unui pointer neiniţializat int *pa; int *pa = NULL;*pa = 10; *pa = 10;

 

Utilizarea unui pointer iniţializat incorect int *pa;

 pa = 10;*pa = 10;

  Utilizarea unui pointer după ce a fost dezalocat: int *pa = new int;*pa = 10;delete pa;(*pa)++;

 

Utilizarea eronată a aritmeticii pointerilor: int a = 10; int a = 10;int *pa = (&a)+1; float b;int *pa = (&a)+1;

  Utilizarea unui pointer în afara scopului variabilei spre care arată: int *pa; int* f(void)if( ... ) {{ int a = 10;int a = 10; return &a;

 pa = &a; }}(*pa)++;

Page 7: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 7/34

7

  Dangling pointers:int *pa = malloc(4), *pb = pa;free(pa);*pb = 10;

 

 Nu se dezaloca memoria după ce s-a încheiat operarea asupra ei: memory leaksfor( i = 0; i < 100000; i++ ){int *pi = new int(i);*pi = rand();

 printf(“%d”, *pi);} 

  Dezalocare multiplă pentru aceeaşi zonă alocată int *pa = malloc(4), *pb = pa;free(pa);free(pb);

-  Recomandări la utilizarea pointerilor  

  Programatorul trebuie să se asigure că valoarea referită de un pointer estevalidă atunci când se accesează; 

  Programatorul trebuie să se asigure că toate zonele alocate dinamic în cod se şidezalocă; 

  Programatorul trebuie să se asigure că nu şterge aceeaşi zonă alocată de maimulte ori;

  Programatorul e bine să nu folosească aritmetica pointerilor

4. Probleme de securitate a codului

-  Probleme de secur i tate a codului :

/* Echo Line */void echo(){char buf[4];gets(buf);

 puts(buf);}int main(){

 printf("Type a string:");echo();return 0;}

  Alocarea variabilelor dinamice?

  Alocarea variabilelor statice?  Variabile globale

 

Variabile locale

Page 8: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 8/34

8

  În buffer-ul de memorie se introduce codul maşină al programului ce sedoreşte executat 

  Adresa de revenire se suprascrie cu adresa bufferului  La revenirea din funcţie se va apela codul “străin” 

 

Depăşirea buffer -ului de memorie permite execuţia unei secvenţe de cod pe omaşină la distanţă 

  Exemple: Internet Worm

5. Modele de memorie

-  Adresele cu care procesorul adresează memoria fizică prin magistrala de adrese suntconsiderate adrese fizice 

-  Fiecare octet de memorie are o adresă unică numită adresa fizică 

Spaţiul maxim de adrese fizice   IA-32 este 4Go (32 biţi) (extensibil la 64 Go prin PAE (Physical Address

Extension) 36 biţi) 

  IA-32e este in funcţie de modul de implementare: 40biti, 48 biţi, 56 biţi sau 64 biţi 

-  Aplicaţiile nu folosesc insă in mod direct adresele fizice 

-  Aplicaţiile utilizează facilităţile de management al memoriei implementate in procesor: 

  Modelul de memorie liniară 

  Modelul de memorie segmentată 

  Modelul de memorie real –  modul de adresare 8086 

Page 9: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 9/34

9

-  Modelul de memorie liniar: 

  Memoria apare programelor ca un unic spaţiu de adrese liniare de 4 Go (0-232-1) 

  Codul, datele şi stiva programelor se regăsesc in acelaşi spaţiu de adrese liniare 

Modul de memorie segmentat:   Memoria apare programelor ca un grup de spaţii de adrese independente,

contigue, numite segmente 

  Codul, datele şi stiva programelor sunt uzual conţinute in segmente distincte 

  Poate gestiona 16383 segmente fiecare avand maxim 4 Go (0-232-1) -  Modelul de memorie liniar  

-  Adresa obţinută după segmentare este tot o adresă liniară -  Adresa liniară poate fi mapată direct intr -o adresă fizică (nu este folosită paginarea) -  Paginarea şi memoria virtuală 

  Independent de modelul de memorie se poate utiliza paginarea

  Adresa liniară se interpretează ca o adresă virtuală ce descrie o pagină dememorie ce se mapează in memoria fizică 

Page 10: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 10/34

10

6. Moduri de adresare

-  Ce se intelege prin moduri de adresare ale unui procesor?

-  Reprezintă modalitatea prin care se specifică operanzii pentru instrucţiuni 

  Operanzi şi rezultate 

  Adrese de salt -  Operanzii se specifică implicit sau explicit -  Operanzii pot fi localizaţi in: 

  Codul instrucţiunii 

  Registre 

 

Locaţii de memorie   Porturi de intrare/ieşire 

-  Adresarea imediată 

  Operandul este specificat in codul instrucţiunii mov eax, 10add eax, 10a = 10

 b = const_10 

c = b + const_20- 

Adresarea prin registre  Operandul este specificat şi localizat intr -unul din registrele procesorului

add eax, ebx

Page 11: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 11/34

11

-  Adresarea memoriei

  Operandul este specificat şi localizat in memorie 

  Există mai multe moduri de adresare a memoriei 

  O adresă de memorie in aplicaţii se specifică prin:

-  Adresarea memoriei

   Adresare directă  –  adresa de memorie a operandului este specificată in codulinstrucţiunii   Utilizare: variabile de memorie adresabile direct

var_int32 dd 0mov eax, var_int32mov var_int32, ebx

 

 Adresare indirectă  –  adresa de memorie a operandului este specificată printr -un registru sau printr-o combinaţie de registre   Utilizare: pointeri şi referinţe 

var_int32 dd 0mov ebx, offset var_int32mov eax, [ebx]

  Există mai multe combinaţii de componente prin care se poate specifica oadresă de offset 

sir_int16 dw 10 dup (?)xor eax, eaxmov esi, 2

mov ax, sir_int16mov ebx, offset sir_int16mov ax, [ebx+2]mov ax, [ebx+esi*2]

7. Extensii SIMD-  Multimedia extension –  MMX-  Streaming SIMD extensions

  SSE, SSE2, SSE3, SSE4.1, SSE4.2-  Advanced Vector Extensions

 

AVX

Page 12: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 12/34

12

-  Utilizare:

  Procesare, filtrare, recunoaştere, codare voce 

  Procesare, filtrare, recunoaştere, codare video 

  Grafică 3D, modelare CAD 

 

Algoritmi de criptare-  Identificare

...mov eax, 1cpuidtest edx, 00800000h

 jnz mmx_found...

-  Registre MMX şi SSE 

-  Operaţii şi operanzi SIMD 

  Instrucţiunile operează asupra unor date impachetate

  Instrucţiunile operează asupra unor date scalare 

Page 13: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 13/34

13

-  Operaţii şi operanzi SIMD (MMX) 

-  Operaţii şi operanzi SIMD (SSE, SSE2) 

int i;for( i = 0; i < 4; i++ )

{c[i] = a[i] + b[i];}

 paddd xmm1, xmm2

-  Tratarea depasirilor la operatiile aritmetice 

Wraparound –  valoarea rezultata se obtine prin eliminarea bitilor maisemnificativi  Signed saturation –  valoarea rezultata se va limita la min/max cu semn  Unsigned saturation –  valoarea rezultata se va limita la min/max fara semn

Page 14: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 14/34

14

-  Operatii impachetate aritmetice

-  Comparatii

Pack si Unpack

8. 

Reguli de optimizare a codului

-  Specifice pe arhitecturi de procesoare-  Vizează diferite blocuri arhitecturale

  Front end

  Execution core

  Memory-  Reguli generale:

  Generarea codului după tiparul 4-1-1 (microoperaţii) (P6)

 

Optimizarea salturilor şi buclelor    Aducerea instrucţiunilor in avans şi decodarea lor    Selecţia instrucţiunilor    Optimizarea acceselor la memorie

-  Optimizare specifica pe tip de procesor (utilizarea CPUID)-  Paralelizarea codului si algoritmilor pentru multi-core si multi-threading-  Optimizarea salturilor

  Eliminarea salturilor  Aranjarea codului pentru a forma blocurile de bază contigue şi

eliminarea salturilor inutile  Utilizarea instrucţiunilor condiţionate setcc şi cmov 

 

Aranjarea codului pentru a se potrivi peste predicţia statică implementată lanivelul microarhitecturii

Page 15: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 15/34

15

  Evitarea apelurilor incuibate multiple de subrutine  Desfăşurarea buclelor  

9. Performanţa sistemelor 

-   Programarea secvenţială 

  Majoritatea aplicaţiilor sunt scrise după o logică secvenţială   Aplicaţia este executată pe un singur procesor  

 

Problema este împărţită într -o serie de instrucţiuni ale procesorului  Instrucţiunile sunt executate secvenţial   Doar o instrucţiune se execută la un moment de timp dat 

-   Performanţa execuţiei secvenţiale:  Viteza de calcul: număr de operaţii pe sec 

v=N

t  

  Dacă o aplicaţie necesită N operaţii   Din aceste operaţii o fracţiune f se execută cu rata    şi restul se execută cu

viteza  

    ≫    Timpul total de execuţie: 

Page 16: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 16/34

16

t=  +

(1−)  

  Performanţa aplicaţiei: 

r =

=1

  

+(1−)

≈ 1

1

 

  Pentru a obţine o performanţă rezonabilă f trebuie să fie cât mai mare 

  În aplicaţiile secvenţiale, dacă există blocuri de operaţii care se execută la oviteză mult mai redusă decât restul operaţiilor, performanţa întregii aplicaţii

 poate fi limitată de efectele acestora.  Pentru a obţine o performanţă cât mai ridicată la execuţia aplicaţiilor

secvenţiale trebuie identificate blocurile care necesită cel mai mare număr de

operaţii ( f ) şi trebuie implementat cât mai performant (  )-   Performanţa execuţiei paralele: 

  O aplicaţie (algoritm, task) se poate executa secvenţial pe un sistemuniprocesor

  Sau aplicaţia se poate descompune în mai multe taskuri care se executăsimultan pe mai multe procesoare

  Cum se poate exprima performanţa unei aplicaţii executate pe un sistemmultiprocesor, comparativ cu execuţia pe un sistem uniprocesor?

-   Programarea secvenţială 

Page 17: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 17/34

17

-   Performanţa execuţ iei paralele

  MIPS sau MFLOPS nu se potrivesc pentru măsurarea performanţei sistemelor paralele.

  Există alţi parametrii prin care se poate estima  performanţa aplicaţiilor

 paralele:  Speedup  Eficienţa 

-  Speedup:

  Performanta aplicaţiilor paralele este adesea masurată în termeni de creştere avitezei

  În cazul ideal, pentru o aplicaţie care se execută pe un sistem cu p procesoare,creşterea în performanţă va fi egală cu p 

  Cum se poate determina creşterea în performanţă (speedup) pentru o aplicaţiece se execută pe un sistem cu  p procesoare faţă de execuţia pe un sistem cu 1

 procesor? 

Performanţa relativă se defineşte ca raportul dintre timpul de execuţie obţinut pe un sistem uniprocesor şi timpul de execuţie obţinut pe un sistem paralel

Speedup =Sequential execution time

Parallel execution time 

-   Eficienţa: 

  Creşterea în performanţă a unei aplicaţii nu este nelimitată, indiferent câte procesoare s-ar putea folosi pe un sistem.

  Creşterea în performanţă (speedup) nu măsoară eficienţa cu care sunt utilizate procesoarele.

  Se pune problema atingerii unui optim costcreştere în performanţă. 

 

Eficienţa se defineşte ca raportul dintre creşterea în performanţă şi numărul de procesoare folosit pentru a obţine creşterea respectivă 

Efficiency = Sequential execution timeProcessors∗Parallel execution time

 

Efficiency =Speedup

Processors 

-  Stabilirea cerintelor pentru eficienta multicore  Cresterea liniara a performantelor pentru primele n procesoare

-  Limitele calcului paralel: 

Teoretice  Legea lui Amdahl

Page 18: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 18/34

18

  Practice  Încărcarea inegală a procesoarelor    Timpul de comunicaţie   Operaţii suplimentare necesare (sincronizări, planificări)   Secţiuni non-computaţionale 

 

Altele  Timpul şi costurile de rescriere a codului

Legea lu i Amdahl

-  În realitate nu toate aplicaţiile pot fi  paralelizate 100%, deoarece conţin operaţii ce sunt secvenţiale. 

-  O aplicaţie conţine două tipuri de operaţii:   Operaţii ce trebuie executate secvenţial   Operaţii ce se pot executa simultan 

-  Legea lui Amdahl specifică limita teoretica  pentru îmbunătăţirea performanţelor unui algoritm executat pe un sistem paralel ca fiind operaţiile ce se execută inerent

secvenţial. -  Creşterea în performanţă S(p) pentru p procesoare:

S (p) =t(1)

t(p)=

1+ (1)

 + ()

  t(1) –  timpul de execuţie al aplicaţiei pe un procesor    t(p) –  timpul de execuţie al aplicaţiei pe p procesoare  ts(1), ts(p) –  timpul e execuţie a fracţiunii secvenţiale din aplicaţie pe un

 procesor, respectiv pe p procesoare  tp(1), tp(p) –  timpul e execuţie a fracţiunii secvenţiale din aplicaţie pe un

 procesor, respectiv pe p procesoare

10. Intefata paralela

-  Portul paralel a fost proiectat în vederea conectării la calculator a imprimantelor.-  Poate fi folosit şi ca un port de intrare/ieşire de uz general, pentru cuplarea la

calculator a oricărui dispozitiv extern. -  Un alt dispozitiv uzual conectat la portul paralel este scannerul.-  Este un port simplu, uşor de programat astfel că poate utilizat în dezvoltarea de

 prototipuri, realizarea de experimente şi teste de interfaţare a calculatorului cuechipamente externe

-  Portul paralel a fost standardizat în 1994 sub denumirea IEEE 1284.- 

Standardul descrie comunicarea de mare viteză,  bidirecţională, între PC şi periferic prin interfaţa paralelă. 

-  Standardul IEEE 1284 defineşte în totalitate portul paralel şi prevede:  Modurile de transfer pentru date  Metoda de negociere a modurilor de transfer  Caracteristicile interfeţei fizice: cabluri, conectori   Caracteristicile interfeţei electrice: amplificatoare de linie, receptoare, 

impedanţa liniei, terminatoare. -  Portul paralel constă din interfaţa paralelă şi conectorul de 25 pini situat în spatele

calculatorului.

Page 19: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 19/34

19

-  Interfaţa paralelă constă din totalitatea circuitelor şi registrelor de comandă, date şistare care asigură legătura între un echipament periferic şi magistrala internă acalculatorului prin conectorul paralel.

-  Portul paralel

-  Ce elemente hardware şi software trebuie cunoscute pentru a putea dezvolta o aplicaţie  pentru un anumit port de I/O?

-  Pentru a accesa un port trebuie cunoscute:  Registre, buffere de intrare  Semnificaţia rangurilor registrelor (comenzi, date, stare)   Conectarea rangurilor registrelor la cupla portului 

Adresele de porturi ale registrelor  Protocolul de comunicaţie   Întreruperi  Canale DMA

-  Din punct de vedere logic, interfaţa paralelă standard este formată din două registre şiun buffer de intrare, ocupând trei adrese consecutive din spaţiul adreselor de porturi al 

 procesorului.-  Portul paralel standard conţine: 

 

Un registru de date pe 8 biţi bidirecţional (iniţial a fost unidirecţional ca ieşire), 

Page 20: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 20/34

20

  Un registru de control bidirecţional pe 6 biţi dintre care doar 4 linii sunt legatela connector-ul interfeţei paralele 

  Un buffer de intrare pe 5 biţi pentru liniile de stare de la periferic. -  Ieşirile interfeţei paralele folosesc nivelele logice TTL, curentul însă diferă de la o 

interfaţă la alta (până la 12 mA). 

Circuitele interfeţei paralele sunt uzual implementate în chipset-ul de I/O-  Registrul de date:

  Adresa: IOBase+0  IOR:

MOV dx, IOBase data = inport(IOBase);

IN al, dx  IOW:

MOV dx, IOBase outport(IOBase, data);OUT dx, al

  Ieşirile registrului de date sunt legate la pinii 2-9 ai conectorului de interfaţă paralelă 

  La portul paralel bidirecţional direcţia de transfer se setează prin bitul 5 dinregistrul de control)

-  Registrul de stare

  Adresa: IOBase+1

Page 21: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 21/34

21

  IOR:MOV dx, IOBase+1 status = inport(IOBase+1);IN al, dx

-  Registrul de contr ol

 

Adresa: IOBase+2

 

Biţii 4 şi 5 sunt pentru controlul intern al interfeţei paralele  Bitul 4 este destinat validării întreruperilor    Bitul 5 validează intrarea pentru registrul de date 

Page 22: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 22/34

22

  Liniile corespunzătoare registrului de control sunt  bidirecţionale.   Ieşirile registrului de control sunt legate la cuplă prin intermediul unor

inversoare Open-Colector, pentru a asigura procesorului şi posibilitatea de aciti aceste linii.

  Când portul de control este folosit ca intrare, trebuie ca registrul de control să

conţină valoare 0100. 

Moduri de lucru-  Specifică modul de funcţionare şi caracteristicile de transfer al datelor-  Moduri de lucru:

  SPP –  Standard Parallel Port  Compatibility   Nibble  Byte

  EPP –  Enhanced Parallel Port 

ECP –  Extended Capability Port

-  SPP

  Protocol de comunicaţie implementat în software   Foloseşte doar registrele standard ale interfeţei paralele  Se pot monitoriza semnale externe şi se pot genera semnale prin portul paralel  Se pot implementa şi alte protocoale în afară de cele standard

-  SPP –  Compatibil ity

  Date unidirecţionale trimise spre periferic (imprimantă)   Protocolul standard implementat este Centronics

  Care sunt paşii ce trebuie codificaţi în program pentru implementarea

protocolu lui Centronics?  Citeşte portul de stare şi verifică rangul Busy,  pentru a vedea dacă imprimanta

este liberă   Dacă imprimanta e liber a 

  Se scrie data la portul de date   Se activează linia Strobe (scriere în portul de control)   Se dezactivează linia Strobe (scriere în portul de control) 

-  SPP –  Nibble

  Permite transferuri bidirecţionale:   Ieşiri pe 8 biţi 

 

Intrări pe 4 biţi prin portul de stare   Cum se implementează prin program protocolul de citire date de la periferic?

Page 23: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 23/34

23

  Operaţii pentru citire:   Portul cere o jumătate de octet activând HostBusy  Perifericul răspunde plasând prima jumătate de octet pe liniile de stare

şi activează PtrClk  

 

Portul dezactivează HostBusy indicând că a preluat data   Perifericul dezactivează PtrClk    Operaţiile se repetă şi pentru a doua jumătate a octetului

-  SPP –  Byte

  Permite transferuri bidirecţionale pe 8 biţi prin  portul de date al interfeţei paralele

  Rangul 5 din registrul de control specifică direcţia de transfer pentru registrulde date

  Pentru trecerea din ieşire în intrare trebuie setat bitul 5 pe 1

-  EPP

 

Protocolul de transfer este implementat în hardware  Oferă 4 cicluri de transfer: 

  Ciclu de scriere date  Ciclu de citire date  Ciclu de scriere adrese  Ciclu de citire adrese

  Ciclurile de adrese sunt destinate transferului de adrese, comenzi sauinformaţii de control 

-  ECP

 

Protocolul de transfer este implementat în hardware  Elemente de transfer specifice: adresarea de canal, cicluri de date şi de

comenzi, compresia datelor (run length encoding), registre tampon FIFO  Transferurile pot fi directe (calculator-periferic) sau inverse

11. Interfata serie

-  Portul serial a fost proiectat ca o alternativă la portul paralel pentru conectarea lacalculator a echipamentelor din medii cu perturbaţii şi aflate la distanţă (peste 3 m). 

-  Printre dispozitivele uzuale conectate la portul serial sunt modemul, cititor de cod de bare şi centrala telefonică (PBX). 

Este un port relativ simplu şi uşor de programat ce este folosit pentru conectarea lacalculator a sistemelor embedded.

-  La momentul actual se foloseste destul de des conceptul de COM virtual pentruconectarea prin USB, bluetooth sau (W)LAN

-  La baza portului serie al calculatorului stă standardul RS232.-  Standardul RS232 defineşte cerinţele logice, electrice şi mecanice pentru transferul

serie al informaţiilor in format digital.   Nivele de tensiune (EIA, PC +/- 12V)  Tip de transfer: sincron, asincron  Tip de echipamente: DTE şi DCE 

 

Parametrii de comunicaţie   Controlul fluxului

Page 24: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 24/34

24

-  Prin ce se caracterizează o comunicaţie asincronă? -  Comunicaţie asincronă: 

  Transferul unui caracter la un moment dat.   Nu există semnal de tact.   Receptorul se sincronizează cu emiţătorul prin programare.

-  Controlul fl uxului

  Ce este şi pentru ce e necesar?   Problema sincronizării transferurilor blocurilor de date

  Cum află emiţătorul dacă receptorul poate primi sau nu alte caractere  Soluţii: 

  Fără control   Control software (XON/XOFF)

 

Control hardware (RTS/CTS)-  Portul serie constă din interfaţa serială şi conectorul de 9 pini situat in spatele

calculatorului.-  Prin interfaţa serială se inţelege ansamblul circuitelor care asigură comunicaţia intre 

unitatea centrală (procesor) şi un dispozitiv  periferic care transferă informaţia bit după bit.

-  Portul serie

-  Pentru a accesa un port trebuie cunoscute:  Registre, buffere de intrare  Semnificaţia rangurilor registrelor (comenzi, date, stare)  Conectarea rangurilor registrelor la cupla portului  Adresele de porturi ale registrelor  Protocolul de comunicaţie   Intreruperi

 

Canale DMA-  Din punct de vedere logic, interfaţa serială este formată dintr -un set de registre ce

ocupă adrese consecutive din spaţiul adreselor de porturi al procesorului.-  Portul serie conţine: 

  Registre tampon pentru transmisie şi recepţie   Registre de stare  Registre de configurare şi control 

-   Registrele de transmisie şi recepţie 

  Adresa: IOBase+0  IOR: (citirea ultimului caracter recepţionat) 

MOV dx, IOBase data = inport(IOBase);IN al, dx

Page 25: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 25/34

25

  IOW: (transmisia unui caracter)MOV dx, IOBase outport(IOBase, data);OUT dx, al

  Circuitul de interfaţă serie implementează serializarea şi deserializarea datelortransmise şi respectiv recepţionate. 

 

Biţii se serializează pe linia TxD şi sunt recepţionaţi prin RxD din cuplaserială. 

-  Registrul de contr ol

  Adresa: IOBase + 3  IOR:

MOV dx, IOBase+3 data = inport(IOBase+3);IN al, dx

  IOW:MOV dx, IOBase+3 outport(IOBase+3, data);OUT dx, al

  Biţii 1 şi 0 indică lungimea caracterului transmis 

  Bitul 2 indică numărul de biţi de stop:   STB = 0 - 1 bit de stop;  STB = 1 şi lungimea caracterului este de 5 biţi - 1 . biţi de stop;   STB = 1 şi lungimea caracterului este de 6, 7 sau 8 biţi - 2 biţi de stop.

  Bitul 3 indică dacă se foloseşte sau nu un bit de paritate in transmisie saurecepţie.   PEN = 0 - nu se foloseşte paritatea;   PEN = 1 - se va genera un bit de paritate cand se transmit date sau se va

aştepta şi un bit de paritate cand se recepţionează date.   Bitul 4 selectează tipul de paritate. 

  EPS = 0 şi PEN = 1 - paritate impară (un număr impar de 1);   EPS = 1 şi PEN = 1 - paritate pară (număr par de 1). 

  Bitul 5 - dacă bitul 3 este  pe “1” şi bitul 5 este tot pe “1” atunci bitul de paritateeste transmis şi este detectat la recepţie ca “0” dacă EPS=1 sau ca şi “1” dacăEPS=0.

  Bitul 6 - set break control bit.  Bitul 7 este bitul de acces la registrul pentru divizarea ratei:

  DLAB = 1 - se realizează accesul la registrele de divizare;   DLAB = 0 - se realizează la buffer -ele de recepţie, transmisie şi 

registrul de validare a intreruperilor.

Page 26: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 26/34

26

-  Registrele de divizare

  Adresa: IOBase+0 şi IOBase+1   Generatorul ratei de transfer preia tactul de intrare şi il imparte cu orice număr

cuprins intre 1 şi 216 –  1   Numărul se află in registrele de divizare.  

Frecvenţa de ieşire a generatorului este 16x rata.   Frecvenţa de intrare a generatorului este 1.84MHz 

divisor = (frecvenţa de intrare) / (baud rate x 16) 

outport(IOBase+3, 0x80);outport(IOBase+1, 0x00);outport(IOBase+0, 0x06);outport(IOBase+3, ...);

-  Registrul de stare

  Adresa: IOBase+5  Bitul 0 = 1 - s-a recepţionat un caracter şi a fost transferat in buffer-ul de

recepţie.  

Bitul 1 = 1 - indică faptul că data din buffer -ul de recepţie nu a fost citită decătre procesor inaintea recepţionării unui alt caracter. Astfel că acest primcuvant a fost pierdut. Bitul OE este pus pe 0 la citirea registrului de stare decătre procesor. 

 

Bitul 2 - indică apariţia unei erori de paritate.   Bitul 3 - apariţia unei erori de cadru. Caracterul recepţionat nu are bitul de stopvalid. Acest bit este pus pe 1 de fiecare dată cand bitul de stop ce urmeazădupă ultimul bit de date sau după bitul de paritate, este 0. 

  Bitul 4 - indică dacă linia de recepţie este in starea 0 o perioadă de timp maimare decat timpul necesar transmisiei complete a unui caracter. Inseamnă cătransmiţătorul a forţat linia pe 0 (Set Break). 

  Bitul 5 - indică procesorului că circuitul este pregătit pentru a primi un noucaracter ce trebuie transmis. Acest bit este setat la “1” cand un caracter estetransferat din buffer-ul de transmisie in registrul de serializare. Bitul esteresetat la “0” cand procesorul incarcă buffer -ul de transmisie cu un nou

caracter.

Page 27: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 27/34

27

  Bitul 6 - indică faptul că registrul de serializare este gol. Bitul este  pus pe “0”odată cu incărcare unui nou caracter din buffer -ul de transmisie.

-  Care este rolul celor două flaguri pentru starea transmisiilor seriale?  Transmiter Holding Register Empty  Transmiter Shift Register Empty

12. Interfata USB

-  Caracteristicile interfeţei USB 

  Cost redus –  USB este o soluţie simplă şi cu costvredus pentru conectareadispozitivelor periferice la PC

  Standard unic pentru cabluri şi conectori   Alocarea automată a adreselor pentru periferice   Sesizarea perifericelor în timpul funcţionării sistemului

 

Permite conectarea a până la 127 dispozitive perif erice  Permite conectarea perifericelor compuse (ce conţin mai multe funcţii)   Rate de transfer medii (12 Mbps)

  Dispozitive ieftine dar cu rată de transfer mică (1.5 Mbps) –  USB 1(Low-speed)

  Dispozitive mai scumpe cu o rată de transfer medie (12 Mbps) –  USB 1(Full-speed)

  Dispozitive performante cu rată de transfer mare (480 Mbps) –  USB 2(High-speed)

  Dispozitive performante noi cu rată de transfer foarte mare (5 Gbps) –  USB 3 (Super-speed)

Page 28: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 28/34

28

  Protocol de comunicaţie flexibil pentru mai multe moduri de transfer  Integrare simplă în shema dispozitivelor  periferice  Detecţie şi corecţie de erori   Alimentare dispozitivelor prin interfaţa USB (5V, 100-500 mA)  Controlul consumului (dacă nu se fac transferuri, interfaţa trece în starea de

consum redus)-  Modelu l USB

  Elementele USB se împart în două clase:   Dispozitive de interconectare (hub-uri)

-  Sunt dispozitive ce au mai multe porturi la care se pot conectaalte elemente USB

-  La un hub poate fi conectat un alt hub-  Sunt permise 5 nivele de hub-uri

  Dispozitive funcţionale (funcţii) -  Sunt dispozitive ce realizează un anumit tip de operaţii numite

funcţii  

Topologia de interconectare aelementelor USB este una detip arbore

   Nodul rădăcină al arborelui este un element hub numitrădăcină (root hub) implementat în chipset-ul deI/O al plăcii de bază 

  La hub-ul rădăcină se pot conecta alte hub-uri sau

funcţii   USB nu oferă o conectare de

tip punct-la-punct ci este oconexiune de tip magistrală 

  Toate echipamenteleconectate partajează aceleasisemnale

  Informaţia circulă pe magistrală sub formă de pachete  Fiecare dispozitiv funcţional USB va recepţiona toate pachetele (chiar dacă nu

îi sunt adresate)  Distanţa maximă între un hub şi o funcţie e de 5m  

Interfaţa sistem (host)   Interfaţa dispozitiv(device)  Stiva de comunicaţii 

   Nivelul fizic   Nivelul legaturii USB   Nivelul funcţional 

  Este format din componente hardware şi software   Software: driver dispozitiv USB, driver USB, driver controller USB  Hardware: USB root Hub + host controller, USB hub şi dispozitive

USB

Page 29: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 29/34

29

  Tranzacţiile USB sunt iniţiate la nivel software   De la nivelul driverului dispozitiv pentru a accesa dispozitivul  Prin driverul USB sunt transmise pe USB

-  Nivelu l fi zic –  dispozitive funcţionale 

  Sunt dispozitive capabile să trimită sau să recepţioneze pachete de date şi

control pe magistrala USB  Conţin informaţii de identificare şi configurare ce descriu capabilităţileimplementate şi resursele necesare

  Înainde de a fi utilizate funcţiile trebuie configurate   Sunt de două tipuri

  Simple –  conţin o singură unitate funcţională   Compuse –  conţin un hub la care sunt conectate mai multe unităţi

funcţionale interne -  Nivelu l fi zic –  dispozitive de interconectare

  Simplifică conectarea dispozitivelor USB la host   Posedă un număr de porturi

 

Un port de conectare la părinte (upstream)   Mai multe porturi de conectare la alte hub-uri sau funcţii 

  Sesizează conectările şi deconectările porturilor  dispozitiv  Furnizează alimentare dispozitivelor  

 

Permite controlul porturilor (validare/invalidare, stabilire rata de transfer)  Suport pentru distribuirea mesajelor (upstream/downstream)

Page 30: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 30/34

30

   Hub controller

  Conţine setul de registre  prin care se configurează hub-ul   Hub repeater

  Comutator de pachete  Regenerează semnalele 

   Hub central (host)

  Detectează conectarea şi deconectarea echipamentelor  USB  Gestionează transferul de date între PC şi echipamentele USB  Monitorizează informaţiile de stare de la echipamentele USB  Furnizează alimentare echipamentelor USB conectat 

-  Nivelul de comunicaţie USB 

  Driverul USB  Oferă o interfaţă de comunicaţie prin USB pentru nivelul software de

deasupra lui  Împarte o operaţie funcţională în tranzacţii USB   Tanzacţiile vor fi executate secvenţial în cadre de 1 ms   Execută tranzacţiile pe baza caracteristicilor dispozitivului destinaţie 

  Driverul controller-ului USB (host USB) HCD  Planifică generarea transferurilor pachetelor pe magistrala USB  Se foloseşte de liste de tranzacţii   Fiecare listă se transmite într -un frame de 1 ms

  Drivere dispozitiv USB (clienţi USB)   Iniţiază operaţiile cu dispozitivul USB 

 

Sunt dedicate dispozitivelor USB  Implementează accesul la particularităţile funcionale ale unuidispozitiv USB

  Se foloseşte de serviciile de comunicaţie prin USB oferite de driverulUSB

  Particularităţile de transfer prin USB sunt transparente la acest nivel

Page 31: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 31/34

31

Caracter istici f izice

Cum detectează echipamentele USB de interconectare (hub-urile) că s-a conectat(deconectat) un dispozitiv la (de la) unul din porturile sale?

-   Dispozitive cu rată de transfer mică 

  Dispozitivele USB de viteză redusă au o rezistenţă legată la Vcc pe linia D- pentru:

  Detecţia conectării dispozitivului   Identificarea tipului dispozitivului

-   Dispozitive cu rată de transfer mare 

  Dispozitivele USB de viteză mare au o rezistenţă legată la Vcc pe linia D+ pentru:

  Detecţia conectării dispozitivului   Identificarea tipului dispozitivului

- Codificarea şi transmiterea datelor pe li ni i le fizice de comunicaţie:

  Specifică modul în care datele în format binar suntcodificate pe liniile fizice decomunicaţie 

  Codificarea datelor binare în semnale 

  Transmisia USB presupune doi paşi:   Codificarea datelor în formatul NRZI (Non-Return to Zero Inverted)   Generarea semnalului diferenţial 

   Recepţia USB presupune   Recepţia semnalului diferenţial   Decodarea datelor din formatul NRZI 

Page 32: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 32/34

32

-  Codifi carea datelor în formatul NRZI

  Datele sunt reprezentate prin tranziţia semnalului   Când se transmite 0 atunci se efectuează o tranziţie a liniei de ieşire   Când se transmite 1 atunci se păstrează starea liniei 

  Codificarea este utilă pentru că pe linie se transmite şi semnalul de tact   Receptorul va putea sa regenereze tactul şi să se sincronizeze cu emiţătorul   Există riscul desincronizării dacă se transmite un sir neschimbat de “1”   Pentru evitarea acestui lucru se inserează la codificare biţi de “0” dacă apar

secvenţe de 6  biţi de “1”.

  Exemplu

Protocolul USB

-  Comunicaţia prin USB se împarte în două categorii:   Enumerare –  comunicaţia aferentă procesului de enumerare a dispozitivelor    Utilizare (Transfer) –  comunicaţia specifică aplicaţiei ce utilizează dispozitivul 

 Enumerare:   Prin enumerare sistemul gazdă află dispozitivele USB conectate şi le

 programează pentru transferal de date   În timpul enumerării  dispozitivele USB răspund unei secvenţe standard de

cereri din partea host-ului 

-  Transferuri cu dispozitivul  

  După identificare şi configurare dispozitivele USB pot fi utilizate din aplicaţii   Fiecare transfer de date se încadr ează în unul din următoarele tipuri: 

  Control   Întreruperi 

 

Blocuri   Izocron 

Page 33: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 33/34

33

-  Transfer USB

-  Transferul cu dispozitivul

  Sistemul gazdă e responsabil de gestionarea transferurilor prin USB 

  Host-ul divide traficul în cuante de timp de 1ms numite cadre 

  Host-ul alocă câte o porţiune din fiecare cadru fiecărui transfer    Fiecare cadru începe printr-un pachet special numit Start-of-Frame (SOF)   Exemplu de transferuri împărţite în cadre 

 

Toate transferurile se desfăşoară între un dispozitiv şi host 

  Fiecare transfer constă din una sau mai multe tranzacţii   Tranzacţiile unui transfer pot fi încapsulate întrun singur cadru sau se pot

întinde pe mai multe cadre în funcţie de:   Modul de planificare a tranzacţiilor de host   Dimensiunea transferului  Viteza transferului  Celelalte transferuri curente

  O tranzacţie este compusă din unul sau mai multe pachete  Deoarece tot traficul USB partajează aceleaşi linii fizice, fiecare tranzacţie

trebuie să includă o adresă care identifică dispozitivul destinaţie 

Page 34: Subiecte Rezolvate Partea a II-A

8/10/2019 Subiecte Rezolvate Partea a II-A

http://slidepdf.com/reader/full/subiecte-rezolvate-partea-a-ii-a 34/34

-   Adresarea dispozitivelor USB

  Fiecare dispozitiv are o adresă unică alocată de host în faza de enumerare 

  Entitatea finală implicată într -un transfer pe USB nu este însă dispozitivul USB 

  Un dispozitiv are unul sau mai multe unităţi interne adresabile individualnumite endpoint 

 

Un endpoint este uzual un buffer sau registru intern dispozitivului   Datele stocate într-un endpoint pot fi date recepţionate sau date care vor fi

transmise 

  Host-ul nu are endpoints, însă el comunică cu endpoint-urile dispozitivelor    Adresa unui endpoint este formată dintr -un număr pe 4 biţi şi o direcţie de

transfer (IN sau OUT)   Toate dispozitivele trebuie sa implementeze endpoint-ul cu numărul 0, ce are

rol de control 

-  Tranzacţii USB   Tranzacţiile USB sunt compuse din până la 3 faze, fiecare fază fiind specificată

 printr-un pachet USB.

 

Fiecare tranzacţie începe printr-un pachet de tip token, trimis de host prin carese stabileşte adresa partenerului şi tipul tranzacţiei.

  Pachetul de date conţine datele specific transferului  Pachetul de răspuns din partea partenerului cu rezultatul transferului.