Sunteți pe pagina 1din 82

2.

Reprezentarea interna a numerelor in calculator


➢ Reprezentarea numerelor in virgula fixa

❑Complement de 1
- Se considera numarul in baza 2 fara semn.
- Se convertesc toti bitii din 0 în 1 si din 1 în 0
- Se stabileste bitul de semn ca MSB
- Cifra «0» are doua reprezentari
Operatia de schimbare a valorii bitilor se numeste complementare
Exemplu: consideram -3;
Convertim 3=11
Complementam 11=>00
Adaugam bitul de semn -3=100

Pentru formatul dat de 4 biti: 3=0011=>-3=1011


Complementam: -3=1100
!!! Atentie la numarul de biti pe care este reprezentat numarul

2
2. Reprezentarea interna a numerelor in calculator

➢ Reprezentarea numerelor in virgula fixa

❑Complement de 2
- Se considera numarul in baza 2 complementat.
- Se adauga un bit «1» la rezultat;
- Daca rezulta transport acel bit se ignora
- Semnul este dat de MSB
- Cifra «0» are reprezentare unica, domeniul de reprezentare fiind
[-128;127]

3
2. Reprezentarea interna a numerelor in calculator

➢ Reprezentarea numerelor in virgula fixa

❑Cu exces
- Numarul este considerat fara semn
- Valoarea este deplasata prin adaugarea excesului
- Un numar în exces 128 se obtine prin adunarea lui 128 la numarul
original
- Exemplu:
• Pentru (+12)10 calculam (128 + 12 = 140)10 si rezulta (10001100)2.
• Pentru (‐12)10 calculam (‐12 + 128 = 116)10 si rezulta (01110100)2.

4
2. Reprezentarea interna a numerelor in calculator

➢ Reprezentarea numerelor in virgula fixa

❑BCD – Binary Coded Decimal


- Codificarea se face în baza 2 astfel încât fiecare cifra din baza 10
ocupa patru pozitii binare
- În aceasta reprezentare sunt mai putine probleme în reprezentarea
fractiilor neperiodice în baza 10
- Nu este nevoie de a se face conversia la intrare din baza 10 în baza
2 şi nici la ieşire din baza 2 în baza 10

5
2. Reprezentarea interna a numerelor in calculator
➢ Standardul IEEE 754 pentru reprezentarea în virgulă mobilă

❑ Există două formate principale în acest standard: precizie simplă şi precizie


dublă
❑ Precizie simplă ocupă 32 biți. Exponentul pe 8 biți reprezentat în exces 127
pentru care secvențele de biți 00000000 respectiv 11111111 sunt rezervate
pentru cazuri speciale. Partea fracționară reprezentată pe 23 biți şi există un
bit ascuns în stânga punctului zecimal aşa că rezultă un total de 24 biți
pentru significand.
❑ Precizie dublă ocupă 64 biți. Exponentul se reprezintă pe 11 biți în exces 1023.
Partea fracționară reprezentată pe 52 biți şi există un bit ascuns în stânga
punctului zecimal aşa că rezultă un total de 53 biți pentru significand.
❑ Bitul de semn este MSB.

6
2. Reprezentarea interna a numerelor in calculator
➢ Standardul IEEE 754 pentru reprezentarea în virgulă mobilă

❑ În formatul pe 32 biţi în câmpul de exponent avem 8 biţi iar restul de 23 biţi


sunt pentru mantisă N = ( −1) S ×2 E −127 ×(1.M)
❑ În formatul pe 64 de biţi în câmpul de exponent avem 11 biţi iar restul de 52
de biţi sunt pentru mantisă N = ( −1) S ×2 E −1023 ×(1.M ) )

❑ E=255(2047) şi M ≠0 corespunde formatului „NaN“ şi se semnalează


procesorului apariţia pe parcursul calculelor a unor situaţii speciale de tipul
împărţirii la zero sau extragere de rădăcină pătratică dintr-un număr
negativ, etc.
❑ E=255(2047) şi M=0 corespunde formatului care indică situaţia de overflow
±∞ .
❑ E=0 şi M ≠0, acest format corespunde situaţiei de denormalizare.
❑ E=0 şi M=0, este reprezentarea lui ‘0’ în virgulă flotantă IEEE 754: N = ( −1) S
×0

7
2. Reprezentarea interna a numerelor in calculator
➢ Standardul IBM S/360, S/370 pentru reprezentarea în
virgulă mobilă
❑ Standardul prezintă doua formate: precizie simplă (32 de biţi), precizie dublă
(64 de biţi)
❑ În câmpul exponentului se reprezintă numere întregi în exces de 64 şi pentru
toate versiuniile este format din 7 biţi
❑ Mantisa este un număr fracţionar reprezentat în semn-mărime nefolosindu-
se soluţia bit ascuns
❑ Baza este 16 iar normalizarea se face în consecinţă, fiecare incrementare sau
decrementare a exponentului mutând virgula la stânga sau la dreapta cu 4
poziţii binare
❑ nu avem posibilitatea de a reprezenta situaţii speciale de tipul NaN,
overflow, denormalizare, iar zero este reprezentat cu zero peste tot.

N = ( − 1) S ×16 E −64 (0.M ) )

8
2. Reprezentarea interna a numerelor in calculator
Exemplu: Se dă numărul 1915.40625. Se cere reprezentarea sa în standardele
IEEE 754 şi IBM S360/370.
❑ Conversia in baza 2: 191510 =111011110112 ; 4062510=0.011012
❑ Standard IEEE 754: 1915.4062510=11101111011.011012=1.1101111011011012x210
❑ Calcul exponent: E-127=10 => E=137
❑ Reprezentare:

❑ Numarul in format hexazecimal: 1915.40625 10=44EF6D00 16

❑ Standard IBM S360/370:


1915.4062510=11101111011.011012=0.011101111011011012x 163
❑ Calcul exponent: E-64=3 => E=67
❑ Reprezentare:

❑ Numarul in format hexazecimal: 1915.40625 10=4377B68016

9
Modele de dispozitive operaționale
Porti logice si algebra booleana
➢ Implementarea functiilor booleene:
❑ Se scrie tabela de adevar
❑ Se utilizeaza invertoare pentru a genera complementul fiecarei
intrari;
❑ Se utilizeaza porti AND pentru fiecare iesire “1” din tabela de
adevar
❑ Se conecteaza portile
❑ Se conecteaza portile AND la o poarta OR
❑ Se urmareste reformularea relatiilor pentru a utiliza cat mai
putine porti (din cauza intarzierilor)
❑ A+B+C +D se rescrie ca (A + B) + (C + D).

10
Modele de dispozitive operaționale
Porti logice si algebra booleana
➢ Doua moduri de reprezentare ale aceleiasi functii:

11
Modele de dispozitive operaționale
Circuite combinatoriale–
➢ Circuit combinatorial – circuit cu
mai multe intrari si mai multe
iesiri, fiecare iesire fiind unic
determinata prin intermediul
intrarilor (vezi fig)
➢ Multiplexorul – circuit cu 2n intrari,
n intrari de control si o iesire;
➢ Demultiplexorul – circuitul invers
multiplexorului

12
Modele de dispozitive operaționale

Circuite combinatoriale

➢ Decodorul – circuit cu n
intrari si 2n iesiri, de
regula utilizat pentru
adresari de memorie

13
Modele de dispozitive operaționale

Circuite combinatoriale

➢ Comparatorul – circuit
care compara doua
cuvinte

14
Modele de dispozitive operaționale
Circuite combinatoriale

➢ Circuite logice programabile– circuite utilizate pentru


implementari arbitrare ale functiilor booleene, care asigura:
❑ n intrari (2n daca se asigura si negarile),
❑ m porti AND, fiecare cu un set de intrari primare
❑ O matrice nxm de sigurante care specifica intrarile portilor
AND
❑ P porti OR care au ca intrari iesirile portilor AND
❑ O matrice mxp de sigurante care specifica ce iesiri AND devin
intrari OR

15
Modele de dispozitive operaționale
Circuite aritmetice
➢ Circuite de deplasare (shift) – sunt circuite cu n intrari si n
iesiri si o linie de control care directioneaza shiftarea prin biti
de 0 pentru deplasare la stanga si biti de 1 pentru deplasare la
dreapta

16
Modele de dispozitive operaționale
Circuite aritmetice
➢ Circuite sumatoare
❑ Half adder – efectueaza suma si
are un transport (carry) pe 2
biti

❑ Full adder – efectueaza suma si


ia in considerare bitul de carry
din dreapta

17
Modele de dispozitive operaționale
Circuite aritmetice
➢ Circuite sumatoare
❑ Ripple carry (extragere transport) – se obtine prin imbinarea a
n sumatoare Full adder cu dezavantajul ca introduce un numar
mare de intarzieri
❑ Carry select – imbunatatire a sumatorului Ripple carry;
imparte un sumator pe 2n biti in doua jumatati pe n biti-
inferioara si superioara; dubleaza hardware (fizic) jumatatea
superioara; una dintre cele doua parti superioare primeste
transport 0 iar cealalta transport 1; cele doua jumatati
functioneaza in paralel; in functie de rezultatul partii inferioare
este selectata una dintre partile superioare; se creste viteza cu
100% la un cost de 50% hardware

18
Modele de dispozitive operaționale
Circuite aritmetice – CLOCK(TACT)
❑ Sunt circuite care asigura sincronizarea dispozitivelor prin
emiterea unor impulsuri la o latime de banda precise si
intervale precise intre impulsuri; sunt controlate prin
oscilatoare de cristal;

❑ Fig: doua impulsuri de semnal


defazate cu ½

❑ Model semnal de clock asimetric

19
Modele de dispozitive operaționale
Intarzieri pe porti logice
❑ Intarzierea unui circuit se determina ca suma a intarzierilor
gasite pe calea cea mai lunga
❑ Daca avem intarzierile pe porti astfel:
❑ XOR - 8ns / AND - 2ns / OR - 2ns
❑ Calculati intarzierea pe circuit

20
Modele de dispozitive operaționale
Intarzieri pe porti logice
❑ Intarzierea unui circuit se determina ca suma a intarzierilor
gasite pe calea cea mai lunga
❑ Daca avem intarzierile pe porti astfel:
❑ XOR - 4ns / NAND - 5ns / OR - 3ns
❑ Calculati intarzierea pe circuit

21
4. Arhitectura clasica Von Neumann

Principiile Von Neumann

1. Informatia in calculator este codificata binar, prin cifre de 0 si 1.


O grupare de n biti formeaza un cuvant. Se definesc
❑ Octet (byte) – n=8
❑ Semicuvand (2 byte) – n=16
❑ Cuvant (4byte) – n=32
❑ Dublu cuvant (8byte) – n=64

➢ Un cuvant reprezinta o data sau o comanda (instructiune)

22
4. Arhitectura clasica Von Neumann

Principiile Von Neumann

2. Diferentierea intre cuvantul data si cuvantul comanda se face


prin contextul de utilizare. Cuvintele in calculator apar ca si
grupari de cod binar. Diferenta se gaseste in ordinea de utilizare a
cuvintelor in program.

➢ Avantaj-posibilitatea prelucrarii cuvintului de comanda


asemanator prelucrarii cuvantului de data, ceea ce permite
modificarea structurii unui program.

23
4. Arhitectura clasica Von Neumann

Principiile Von Neumann


3. Cuvintele de data si de comanda sunt depuse in locatii de
memorie identificate printr-un numar de locatie numit adresa de
memorie.
➢ Fiecare cuvant este retinut intr-o locatie de memorie la o adresa
numita pointer(to point-a indica) la cuvant.
➢ Prin operatia de citire se extrage cuvantul din memorie fara a
altera continutul-se face o copie a cuvantului
➢ Prin operatia de scriere se insereaza cuvantul la o adresa noua

Citire Scriere

24
4. Arhitectura clasica Von Neumann

Principiile Von Neumann

5. Efectuarea calculelor corespunzand algoritmului problemei de rezolvat


este univoc determinata de executia secventiala a instructiunilor care
constituie programul pentru algoritmul implementat
➢ Prima instructiune executata corespunde adresei de start a programului
➢ Adresa urmatoarei instructiuni se determina automat in timpul
executiei de catre CPU. Adresa acestei instructiuni poate fi urmatoarea
sau intr-o alta locatie a campului de adrese (blocuri decizionale)
➢ Unitatea de control (CU) dispune de un dispozitiv – numarator de
program (Program Counter) care, prin incrementare, defineste adresa
urmatoarei instructiuni
➢ Exceptie fac instructiunile cu ramificatie cand se atribuie o adresa in
subcampul de adrese al instructiunii curente si se retine in PC

25
4. Arhitectura clasica Von Neumann

Arhitectura unui calculator Von Neumann


1. Unitatea de Intrare
Asigura introducerea datelor si programelor, legatura intre calculator si
mediul exterior. Se disting doua moduri de functionare:
a) Direct - prin intermediul tastaturii, mouse-ului, scanner-ului, etc.
Prezinta avantajul simplitatii dar viteza de operare este mica si pot exista
erori umane.
b) Indirect - se foloseste un mediu intermediar de pe care se face citirea
informatiei, cu echipamente specializate: cititoare de cartele, cititoare de
banda perforata, cititoare de microfilme etc, iar ca mediu intermediar se
folosesc: cartelele, benzile perforate, microfilmele etc. Pentru introducerea
informatiei se parcurge traseul: operator uman -> document ->mediu
intermediar -> cititor -> calculator. Procesul de citire al datelor este mult
mai rapid, dar consuma timp in pregatirea datelor.

26
4. Arhitectura clasica Von Neumann

Arhitectura unui calculator Von Neumann


2) Unitatea Logico-Aritmetica
➢ Este singura unitate in care se genereaza informatia noua. Prelucrarile
sunt de natura logica si aritmetica. Caracteristica este viteza ridicata,
este cea mai performanta si cea mai productiva unitate din calculator.
ALU este cel mai rapid bloc din calculator.
➢ Din analiza numerica se stie ca orice operatie matematica se poate
reduce la o secventa de adunari si deplasari. De aceea un criteriu de
performata al unui calculator este numarul de adunari pe secunda
executate de ALU. Datorita dezvoltarii tehnicii VLSI s-au constituit ALU
cu performate de ordinul miliardelor de operatii pe secunda.
➢ Blocurile ce constituie ALU sunt: sumatoare, scazatoare,
complementatoare, registre, deplasatoare, decodificatoare, multiplexoare,
etc. ALU este parte componenta a Unitatii Centrale de Procesare (CPU).

27
4. Arhitectura clasica Von Neumann
Arhitectura unui calculator Von Neumann
3) Unitatea de Memorie
➢ Stocheaza datele si programele. indeplineste 3 functii de baza:
a) scriere (inregistrare sau Write)
b) memorare (stocare sau conservare sau Store)
c) citire (extragere sau Read)
➢ Pastreaza informatia fara sa o altereze deci nu are rol de procesare.
➢ Se caracterizeaza prin:
a) Capacitate = volumul de date ce sunt memorate, exprimat in biti, bytes
sau cuvinte. Unitatatile de masura curenta sunt: kilo(210), mega(220),
giga(230), tera(240).
b) Timpul de acces = intervalul de timp intre momentul când se da comanda
de citire si momentul in care data este disponibila. Timpul de acces defineste
viteza de lucru a memoriei. Cu cât acesta este mai mic, cu atât viteza este
mai mare.

28
4. Arhitectura clasica Von Neumann
Arhitectura unui calculator Von Neumann
4) Unitatea de Iesire
➢ Asigura comunicarea intre calculator si mediul exterior prin
extragerea rezultatelor din calculator. Se disting doua moduri de lucru:

a) Direct - prin intermediul display-ului sau monitorului, imprimantei,


plotter, etc.
b) Indirect - atunci când se foloseste un mediu intermediar cum ar fi benzile
de hârtie perforata, cartelele, etc. in acest caz se vor folosi dispozitive
specializate de tipul perforatoarelor de cartele sau benzi, etc.
➢ Unitatile de intrare si de iesire se numesc global unitati de I/O. Ele
constituie echipamentele periferice ale unui calculator.
➢ O functie de baza a unitatilor I/O e comunicarea la distanta care include
echipamente specializate pentru constituirea de retele (modem, routere,
bridge, etc).

29
4. Arhitectura clasica Von Neumann
Arhitectura unui calculator Von Neumann
5) Unitatea de Control
➢ Este considerata “creierul” calculatorului, are rolul de a superviza, a
monitoriza si administra functionarea tuturor unitatilor din calculator,
inclusiv propria functionare. UC asigura automatizarea completa a
procesului de calcul si este parte componenta a CPU.
➢ Din punct de vedere structural este o schema logica secventiala complexa
si este alcatuita din registre, numaratoare, divizoare de frecventa,
decodificatoare, etc. Din punct de vedere conceptual UC-urile sunt de
doua feluri: cablate si microprogramate.
➢ Stabileste functia de baza curenta determinata din instructiunea curenta
aflata in executie si din informatia de stare primita de la subunitatile
implicate in executie.
➢ Implementeaza mecanismul fundamental de executie a unei instructiuni:
citeste instructiunea curenta din memorie (fie din MO, fie din MSO), o
decodifica (adica o interpreteaza) pentru a decide care este functia de
executat, dupa care activeaza semnalele de comanda necesare pentru 30
4. Arhitectura clasica Von Neumann

Arhitectura unui calculator Von Neumann


5) Unitatea de Control
➢ Este considerata “creierul” calculatorului, are rolul de a
superviza, a monitoriza si administra functionarea tuturor
unitatilor din calculator, inclusiv propria functionare. UC
asigura automatizarea completa a procesului de calcul si este
parte componenta a CPU.
➢ Din punct de vedere structural este o schema logica secventiala
complexa si este alcatuita din registre, numaratoare, divizoare
de frecventa, decodificatoare, etc. Din punct de vedere
conceptual UC-urile sunt de doua feluri: cablate si
microprogramate.

31
4. Arhitectura clasica Von Neumann

Arhitectura unui calculator Von Neumann


5) Unitatea de Control
➢ Stabileste functia de baza curenta determinata din instructiunea
curenta aflata in executie si din informatia de stare primita de
la subunitatile implicate in executie.
➢ Implementeaza mecanismul fundamental de executie a unei
instructiuni: citeste instructiunea curenta din memorie (fie din
MO, fie din MSO), o decodifica (adica o interpreteaza) pentru a
decide care este functia de executat, dupa care activeaza
semnalele de comanda necesare pentru realizarea functiei si apoi
executa functia.

32
4. Arhitectura clasica Von Neumann

Ciclul Instructiune intr-un sistem de calcul

➢ Executia unei instructiuni se face in etapele:


❑ Citirea instructiunii cod masina din memorie si tranferarea ei in CPU.
Aceasta faza se numeste faza FETCH, deoarece se aplica asupra unei
instructiuni s-a numit mai exact FETCH INSTRUCTION. Faza FETCH
este obligatorie pentru orice instructiune, ea asigura extragerea
instructiunii curente din memorie si decodificare acesteia. Dupa
generarea adresei urmatoarei instructiuni faza FETCH se incheie si va
urma faza EXECUTE.
❑ Executarea instructiunii de catre unitatile functionale ale calculatorului
(in special de ALU), adica generarea rezultatului. Aceasta faza se
numeste faza EXECUTE

33
5. Structuri pentru operatii

Circuite logice combinaţionale - Decodificatorul (DCD)

➢ Serveşte la identificarea unui cod de intrare cu n biţi prin activarea unei


singure ieşiri (din cele m) corespunde codului de intrare. Fiecare ieşire
corespunde unei anumite combinaţii a valorilor de intrare.
➢ Intre n şi m există relaţia m = 2n, dar există şi DCD la care m < 2n.
➢ Vectorul intrărilor este format din cele n linii notate x0, x1, ... xn-1, iar
vectorul ieşirilor (active SUS în fig a, respectiv active JOS în fig b) din
liniile y0, y1, ..., ym-1.
➢ En este o intrare de validare care poate inhiba simultan toate ieşirile DCD.
➢ În tehnologie CMOS, în seria 4000 ieşirile DCD disponibile sunt fie active
SUS, fie active JOS, iar în tehnologie TTL (implicit şi în seriile CMOS
rapide 74HC, 74LV, etc) ieşirile DCD sunt active JOS.

34
5.. Structuri pentru operatii

Circuite logice combinaţionale - Demultiplexorul (DMUX)

➢ Asigură transmiterea datelor de la o singură sursă de date la m receptoare


succesive.
➢ Selecţia receptorului se realizează printr-un cod de selecţie de 𝑛 = 𝑙𝑜𝑔2 𝑚 biti.
Funcţia sugerează posibilitatea de a folosi orice DCD care are cel puţin o
intrare de validare pentru realizarea unui DMUX.
➢ Schema bloc DMUX:

35
5.. Structuri pentru operatii

Circuite logice combinaţionale - Multiplexorul (MUX)

➢ Permite transmiterea succesivă a datelor de la m surse de date la


un receptor unic.

➢ În cazul general, un MUX este prevăzut cu:


❑ m canale de date de intrare de câte b biţi;
❑ un canal ieşire pe b biţi;
❑ un cod de selecţie a canalului de intrare cu n biţi unde n = log2 m;
❑ o intrare de validare a funcţionării.

36
5.. Structuri pentru operatii

Circuite logice combinaţionale - Codificatorul (CD)


➢ Furnizează la ieşire un cod de n biţi corespunzător celor m intrari, daca
fiecărei linii de intrări îi corespunde un cod distinct este valabilă relaţia:
n ≥ log2 m.
➢ Exemplu structura interna codificarea binară a cifrelor zecimale: m = 10
intrări, nr biţi la ieşire n ≥ log2 10 = 3,33, deci vom avea 4 iesiri. Schema
bloc a unui codificator binar este:

37
5.. Structuri pentru operatii
Circuite logice combinaţionale – CDP - Utilitate
➢ Arbitrarea întreruperilor într-un microsistem. În funcţionarea unui
microsistem are loc prelucrarea informaţiei într-o succesiune stabilită într-
un program principal. Microsistemul este interconectat cu periferice.
Programul principal poate fi întrerupt printr-o solicitare din partea unui
periferic. Solicitarea de întrerupere are loc astfel:
❑ Perifericul pune pe 0 linia de intrare care-i corespunde;
❑ Se activează GS trecând pe 1, atenţionând microsistemul că a fost cerută o
întrerupere.
❑ Microsistemul termină secţiunea în lucru din programul principal şi trece
la deservirea întreruperii. El citeşte codul de ieşire al CDP, cod care
determină pentru fiecare periferic adresa subrutinei de deservire a
perifericului.
❑ După deservire, microsistemul revine la programul principal. Dacă mai
sunt şi alte cereri, microsistemul le deserveşte în ordinea priorităţii, până
când GS = 0.

38
5.. Structuri pentru operatii

Circuite logice combinaţionale-Detectorul şi generatorul de paritate


sau imparitate

❑ Este utilizat pentru detectarea erorilor de transmisie a informaţiei binare.


❑ Funcţia este un circuit logic combinaţional care determina paritatea sau
imparitatea numărului de variabile de intrare egal cu 1, generând un bit
de paritate sau imparitate. Un astfel de detector se bazează pe detectoare
elementare de imparitate cu două intrări (circuit SAU-EXCLUSIV).
❑ SAU-EXCLUSIV ca generator de imparitate

39
5.. Structuri pentru operatii

Circuite logice combinaţionale – Sumatorul

➢ Efectuarea de operaţii aritmetice (adunare sau scădere) cu două numere


binare având un număr egal de biţi.
➢ Orice sumator pe mai mulţi biţi este construit din sumatoare elementare
pe un bit.
➢ Sumatoarele elementare pe un bit pot fi:
❑ • semisumatoare (sumator pentru bitul zero), acest sumator elementar se
caracterizează prin faptul că nu ţine seama de transportul de la bitul cu
semnificaţie imediat inferioară.
❑ • sumatoare complete pe un bit care ţin seama de transportul de la bitul
cu semnificaţie imediat inferioară.

40
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative

Tipuri principale de calculatoare paralele: SIMD, MIMD


➢ SIMD (Single Instruction Multiple Data): numar mare de
procesoare elementare comandate de un singur procesor de
control, executand aceeasi instructiune, posibil anumite
procesoare inactive la anumite momente de timp - la
executia anumitor instructiuni
➢ MIMD (Multiple Instruction Multiple Data): mai multe
fluxuri de instructiuni se executa asupra mai multor date
(fiecare flux cu datele lui). Tipuri de MIMD:
▪ cu memorie comuna
▪ cu memorie distribuita

41
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative

Arhitectura SIMD – modelul 1


➢ Procesoarele Pi executa aceeasi instructiune, dictata de
unitatea de comanda
➢ Fiecare procesor îsi ia datele dintr-o memorie locala Mi

42
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative

Arhitectura SIMD – modelul 2


➢ Memoriile Mi sunt rapide si comunica cu o memorie
principala (sau externa)
➢ Între procesoarele Pi si memoriile Mi exista o retea de
interconectare care poate configura accesul (de exemplu:
procesorul Pi ia datele din memoria Mi+1)
➢ Procesoarele sunt foarte simple
➢ Operatii favorizate: vectoriale, cu lungimea vectorului
multiplu al numarului de procesoare
➢ Adunarea a doi vectori de lungime p se face într-un tact
➢ Problema critica: alimentarea cu date a Mi ⇒ complicatii
arhitecturale

43
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative
Arhitectura MIMD cu memorie comuna
➢ Fiecare procesor executa instructiuni proprii si are o memorie
rapida mica proprie (nereprezentata)
➢ Datele se afla în memoria comuna
➢ Operatii favorizate: paralele, la nivel de bloc
➢ Avantaj: comunicatie simpla, prin intermediul memoriei
➢ Dezavantaj: cu cât creste numarul de procesoare, cu atât creste
probabilitatea conflictelor de acces la memorie ⇒scade viteza de
calcul

44
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative
Arhitectura MIMD cu memorie distribuita – modelul 1
➢ Fiecare procesor are memorie proprie (arhitectura locala cuRISC
si memorie ierarhica)
➢ Comunicatia se face printr-o retea de comunicatie, prin mesaje
explicite
➢ Operatii favorizate: paralele, la nivel de bloc
➢ Comunicatia prin mesaje necesita algoritmi dedicati

45
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative

Arhitectura MIMD cu memorie distribuita – modelul 2


➢ Topologii ale retelei de comunicatie
▪ fixa: inel, grila (tor), hipercub, fat tree
▪ configurabila: switch, magistrale
➢ În calculatoarele actuale, topologia este de obicei
transparenta pentru utilizator
➢ Biblioteci de functii de comunicatie
➢ Numarul de procesoare poate fi foarte mare, de ordinul
miilor si peste (sute de mii)
➢ Puterea de calcul maxima: > 10 petaflop/secunda

46
7. Structura procesorului si a UCP

Unitatea centrala de procesare(CPU)


➢ Componentele CPU sunt conectate printr-o magistrala ( un set de
fire paralele pe care sunt transmise adrese, date si semnale de
control. Magistralele se pot afla atat în exteriorul cat si în
interiorul UCP.
➢ Unitate de control– CU-preia instructiuni din memoria principala
si le stabileste tipul, controland modul de executare a lor. Este
unitatea functionala care programeaza executia secventiala a
tuturor operatiilor necesare efectuarii instructiunilor, generând
semnale de comanda pentru tot sistemul, dirijând fluxul de date,
corelând viteza de lucru a unitatii centrale de prelucrare cu
memoria. Activitatea unitatii de comanda este controlata de un
semnal de ceas a carui frecventa este de ordinul sutelor de MHz.

47
7. Structura procesorului si a UCP

Unitatea centrala de procesare(CPU)


➢ Unitatea aritmetico-logica – ALU- reprezinta o unitate
combinationala cu doua intrari si o iesire care executa operatii
aritmetice si logice.
➢ Registrii - reprezinta memorii (elemente de memorare) de mare
viteza si dimensiuni reduse în care se stocheaza temporar
rezultate sau informatii de control . De regula toti registrii au
aceeasi dimensine si pot fi cititi si scrisi cu mare viteza. Pot fi
registri tip contor, de stare, de adresa, cu scop general.
➢ Registrul PC –registrul contor de program (program counter) -
indica instructiunea urmatoare ce va fi extrasa pentru executie.
Este folosit pentru urmarirea executiei instructiunilor.
➢ Registrul IP – registru de instructiuni (instruction register) -
pastreaza instructiunea în curs de executie

48
7. Structura procesorului si a UCP
Unitatea centrala de procesare(CPU)
➢ Efectuarea transferurilor de date si comenzi intre unitatile
functionale ale microprocesorului se face pe magistrala
interna de date a microprocesorului.
➢ Semnalele electrice prin care microprocesorul da comenzi
de executie catre memorie si catre celelalte componente din
sistem se numesc semnale de comanda.
➢ Semnalele electrice prin care microprocesorul culege
informatii privind starea componentelor din sistem se
numesc semnale de stare.
➢ Lungimea (numarul de biti) registrilor interni se coreleaza
cu latimea (numarul de linii) ale magistralei de date.
Aceasta e masura numarului de biti ai microprocesorului.
49
7. Structura procesorului si a UCP

Unitatea centrala de procesare(CPU)


➢ Microprocesoarele cu structurn fixa sunt de 8,16,32,64 biti.
Lungimea de cuvânt a microcalculatoarelor realizate cu
microprocesoare « bit slice » (felii de bit), a caror structura
e flexibila, va fi un multiplu întreg al numarului de biti ai
unei felii.
➢ Registrul de adrese, respectiv latimea magistralei de adrese
definesc spatiul de memorie adresabil direct de
microprocesor . O magistrala de adrese de 16 biti permite
adresarea a 216=65536 celule distincte, iar 20 linii de adresa
permit: 220=1.048.576 celule adresabile.

50
7. Structura procesorului si a UCP

Functionarea si organizarea CPU


➢ CPU executa instructiunile intr-o serie de pasi:
1. Preia instructiunea din memorie si o depune intr-un registru de
instructiune;
2. Schimba valoarea din registrul PC pentru a indica spre
urmatoarea instructiune;
3. Analizeaza si determina natura instructiunii pe care a preluat-o
4. Daca instructiunea foloseste un cuvant din memorie ii determina
locatia
5. Preia cuvantul si, daca este cazul, il depune intr-un registru
6. Executa instructiunea.
7. Preia urmatoarea instructiune si repeta pasii anteriori.

51
7. Structura procesorului si a UCP

Functionarea si organizarea CPU


➢ Este partea care supervizeaza functionarea corecta a sistemului
de calcul.
➢ Comenzile generate de unitatea de control se obtin in urma
decodificarii instructiunilor, a cererilor de intrerupere (primite de
la elementele microsistemului) si a impulsului de ceas.
➢ Modalitatile de implementare a unitatii de control sunt:
▪ prin microprogramare. Instructiunile reprezinta microprograme,
alcatuite din microinstructiuni (inscrise intr-o memorie speciala)
executate prin interpretare.
▪ Hardware – instructiunile sunt direct executate de harware. Se
spune ca unitatea de comanda este cablata.

52
Arhitectura Calculatoarelor
Cursul 8
Organizarea si funcționarea
procesorului.
Arhitecturile CISC si RISC
8. Arhitecturile RISC si CISC

CISC - Complex Instruction Set Computer


➢ Arhitectura CISC a procesoarelor - arhitectura procesoarelor
caracterizata de un set foarte bogat de instructiuni - masina,
formate de instructiuni de lungime variabila, numeroase moduri
de adresare deosebit de sofisticate.
➢ Microprocesoarele care utilizeaza arhitectura CISC au multe
instructiuni incorporate in ele. Acest lucru salveaza timp de
procesare deoarece instructiunile necesare sunt disponibile direct
din microprocesor si nu este nevoie ca acesta sa le preia din
programul stocat pe memoria extema, cum ar fi RAM-ul.
➢ Procesoarele sunt capabile să interpreteze mai mult de 400
instrucţiuni şi execuţia se realizează în mai multe cicluri maşină

54
8. Arhitecturile RISC si CISC

CISC - Complex Instruction Set Computer


➢ Arhitectura CISC ajuta microprocesorul sa grabeasca executia
programelor ce au nevoie de instructiuni. Din cauza
instructiunilor incorporate in microprocesor, performantele
acestuia sunt scazute. Pentru a trece peste aceasta problema
trebuie incorporate mai multe tranzistoare in microprocesor.
➢ Acest tip de procesor este folositor pentru nevoi generale de calcul,
in general in PC-uri.
➢ Microprocesoarele CISC au instructiunile incorporate, iar acestea
ocupa spatiu in microprocesor, lasand mai putin spatiu pentru
procesul de programare.

55
8. Arhitecturile RISC si CISC

CISC - Complex Instruction Set Computer


➢ Exista trei tipuri de categorii de instructiuni CISC:
❑ Aritmetico-logice
❑ De control secvential
❑ De acces la memorie
➢ Mocroprocesoarele Pentium si Intel prezinta arhitecturi de tip
CISC
➢ Procesoarele Intel x86, care intra în categoria procesoarelor CISC,
sunt cele mai raspândite procesoare.
➢ Primul procesor din seria x86 avea registre pe 16 biti, o magistrala
extema tot pe 16 biti si o adresare pe 20 biti, ceea ce permitea un
spatiu de adresa de 1 MB.

56
8. Arhitecturile RISC si CISC

RISC - Reduced Instruction Set Computer


➢ Arhitectura RISC a procesoarelor -arhitectura procesoarelor
scalare pipeline cu set optimizat de instructiuni masina
➢ Aplicatiile specifice sistemelor RISC: conducerea de procese în timp
real, procesare de semnale (DSP), calcule stiintifice cu viteza
ridicata, grafica de mare performanta, elemente de procesare în
sisteme multiprocesor si alte sisteme cu prelucrare paralela.
➢ Microprocesoarele ce utilizeaza arhitectura RISC au instructiuni
limitate incorporate, de aceea este nevoie de mai putine
tranzistoare pentru crearea microprocesorului.
➢ Microprocesorul RISC este mai ieftin decat cel CISC si este preferat
pentru scopuri stiintifice unde este necesar numar limitat de
instructiuni.

57
8. Arhitecturile RISC si CISC

Caracteristicile de baza ale modelului RISC


➢ Cresterea frecventei de lucru;
➢ Arhitectura supescalara cu 4-6 canale => 4-6 instructiuni;
➢ Cresterea paralelismului de executie simultana a instructiunilor prin pipe-
line relativ lungi;
➢ Implementarea pe sisteme de calcul multiprocesor;
➢ Set redus de instructiuni (sub 128);
➢ Marirea numarului de registre inteme;
➢ Anticiparea instructiunilor de salt;
➢ Capacitatea mare a magistralelor - 64 biti;
➢ Dimensiunea sporita a memoriei cache (16-64 K sau mai mult);
➢ Instructiuni de dimensiune fixa si format uniform, care nu opereaza de
regula cu date direct din/în memorie.
➢ Exista un numar mare de registre generale, atribute de arhitectura (cel
putin 32)

58
9. Memoria sistemelor de calcul

Parametrii ce caracterizeaza memoria


➢ Capacitatea - numarul de bytes pe care îi poate stoca memoria la
un moment dat, se exprima de regula prin multipli de bytes: K, M,
G, T.
➢ Timpul de acces - intervalul dintre solicitarea unor date /
informatii din memorie si obtinerea acesteia: ∆t = t2 – t1, unde t2 –
momentul solicitarii ; t1 – momentul obtinerii.
➢ Modul de organizare - include 2 niveluri:
❑ Memoria interna–memorie principala(primara), ce pastreaza
datele si informatiile pe parcursul executiei de catre CPU. Odata
terminata executia, datele vor fi extrase din memoria principala
si transferate catre dispozitivele de afisare a rezultatelor sau catre
memoria externa. Are capacitate mica, timp de acces redus si este
volatila.
59
9. Memoria sistemelor de calcul

Parametrii ce caracterizeaza memoria


➢ Modul de organizare - include 2 niveluri:
❑ Memoria externa - memoria auxiliara pastreaza
datele/informatiile si programele pe suporturi externe, în vederea
unor prelucrari ulterioare sau arhivarii; capacitatea de memorie
este mare, practic nelimitata, în functie de suporturile disponibile,
dar timpul de acces este mult mai mare decât la memoria interna.
➢ Modul de acces:
❑ Cu acces direct, aleator, la care timpul de acces la orice adresa din
memorie este acelasi;
❑ Cu acces pozitional, la care timpul de acces la o anumita adresa
este determinat de o serie de deplasari relative fata de adresa de la
început.

60
9. Memoria sistemelor de calcul

Parametrii ce caracterizeaza memoria


➢ Tehnicile de introducere/extragere a datelor/informatiilor-pot fi
seriale sau paralele;
➢ Viteza – reprezinta numarul de bytes ce se transfera în/din
memorie într-o unitate de timp (rata de transfer).
➢ Modul de adresare: este format dintr-un numar de celule(locatii),
fiecare celula are un numar de biti, formand o adresa. Daca o
adresa este pe n biti, maximul de celule adresabile este 2n. Celula
este cea mai mica unitate adresabila. Standardul adresabil este de
celule pe 8 biti.

61
9. Memoria sistemelor de calcul

Memoria interna - caracteristici


➢ Este componenta sistemului de calcul care stocheaza instructiunile
de prelucrat, rezultatele intermediare si finale ale programelor în
executie la un moment dat.
➢ Este o memorie cu acces direct
➢ Furnizeaza CPU datele necesare, într-un timp mai mic sau cel
mult egal cu timpul necesar CPU pentru a executa o instructiune.
➢ Localizarea unei date în memorie se realizeaza prin specificarea
adresei asociate datei.
➢ Adresa introdusa într-un registru de n biti va putea identifica,
prin intermediul decodificatorului, 2n locatii de memorie.

62
3.11. Magistrala PCI

3.11.1. Prezentare generala


În anul 1992, firma Intel a anuntat prima versiune (1.0) a unei specificatii pentru o magistrala locala,
denumita PCI (Peripheral Component Interconnect). Intentia initiala era realizarea unui standard care sa permita
interconectarea circuitelor rapide pe placa de baza, deoarece cu fiecare generatie de microprocesoare, Intel
trebuia sa modifice arhitectura magistralei locale pentru a mari performantele sistemului, ceea ce implica si
modificarea circuitelor de interfata pentru periferice.
Magistrala PCI urma sa se conecteze la magistrala locala a procesorului prin intermediul unui circuit
special destinat acestui scop. Astfel, la fiecare schimbare a procesorului si a magistralei locale, trebuia schimbat
doar circuitul de legatura, circuitele de interfata cu perifericele nefiind afectate.
Specificatia PCI initiala nu prevedea conectori de extensie. Intel a actualizat specificatiile PCI pentru
ca aceasta sa admita si conectori de extensie. Astfel magistrala PCI a fost definita detaliat din punct de vedere
electric si functional, ajungând cea mai utilizata arhitectura de magistrala. Versiunea 2.0 a aparut în 1993, iar
versiunea 2.1 în 1995.
Sunt posibile transferuri de 32 sau de 64 biti. În versiunea 2.1, frecventa maxima a ceasului este de 66
MHz, ceea ce permite obtinerea unei rate maxime de tmnsfer de 528 MB/s.
Standardul de extensie a placii PCI defineste o familie de conectori pentru adaptoare de 5 V sau 3,3
V, cu variante de 32 si 64 de biti. Este de asteptat ca în viitor majoritatea conectorilor de extensie sa utilizeze
surse de alimentare de 3,3 V in loc de 5 V.
Specificatiile PCI pennit utilizarea a doua din cele trei metode de conectare la magistrala locala a
procesorului: conectarea printr-un buffer si conectarea de tip statie de lucru. Datorita avantajelor legate de
performante si de flexibilitate, conectarea de tip statie de lucru este preferata. Se prezinta în Figura 3.20
schema bloc a unui sistem cu magistrala PCI, utilizind acest tip de conectare.
Magistrala PCI este conectata la magistrala sistem a procesorului prin intermediul unei punti UCP/PCI,
având acces direct la memoria principala. În acest fel, transferurile între UCP si memoria cache, respectiv între
dispozitivele de I/E si memoria principala pot avea loc simultan. Dispozitivele de I/E de viteza ridicata, ca a
adaptoarele grafice si adaptoarele de retea, care solicita în masura redusa procesorul, sunt conectate direct la
magistrala PCI. Dispozitivele care trebuie sa se conformeze altor standarde de magistrala., ca ISA sau SCSI, se
interfateaza cu magistrala PCI printr-o punte PCI/ISA, respectiv un adaptor SCSI.
Un sistem poate fi realizat si fara utilizarea puntilor de legatura. În acest caz, toate componentele,
inclusiv procesorul si memoria principala, se interfateaza direct cu magistrala PCI.
3.11.2. Semnalele magistralei PCI
Magistrala PCI este sincrona, la fel ca toate magistralele PC, inclusiv modelul original IBM PC. Toate
tranzactiile pe magistrala PCI sunt între un modul master, denumit oficial initiator (init iator), si modul slave,
denumit oficial tinta (target). Pentru a mentine redus numarul de pini PCI, liniile de adresa si de date sunt
multiplexate. În acest mod, pentru placile PCI sunt necesari 64 pini, pentru semnalele de adresa plus cele de date,
chiar daca PCI suporta adrese de 64 biti si date pe 64 de biti.
Pinii multiplexati de adrese si date functioneaza dupa cum urmeaza. La o operatie de citire, pe durata
ciclului 1, master-ul pune adresa pe magistrala. În ciclul 2 master-ul preia adresa de pe magistrala, iar magistrala
este oferita si poate fi utilizata de modulul slave. În ciclul 3, modul slave furnizeaza date curente. La operatia de
scriere, magistrala nu trebuie eliberata, deoarece master-ul pune pe ea atât adresa cât si datele. Cu toate acestea,
tranzactia minima are totusi trei cicluri. Daca modulul slave nu este capabil sa raspunda în timpul celor trei
cicluri, el poate insera stari de asteptare (wait). Sunt permise, de asemenea, transferuri de blocuri de dimensiune
nelimitata, precum si alte câteva tipuri de cicluri de magistrala.
Fiecare dispozitiv conectat la magistral a PCI poate functiona fie ca slave, fie ca master/slave. Un
dispozitiv master se mai numeste initiator, iar unul slave se mai numese tinta (target). Un dispozitiv tinta nu
poate initia transferuri pe magistrala.
Pentru a reduce numarul pinilor si dimensiunea conectorilor necesari pentru unitatile compatibile PCI,
adresele si datele sunt multiplexate, setul de linii pentru linii si date fiind notat cu AD. O tranzactie tipica pe
magistrala implica doua faze. În prima faza se transmite o adresa pe liniile AD, iar în faza a doua se transmit una
sau mai multe cuvinte de date pe aceleesi linii. Toate operatiile magistralei sunt sincronizate cu ajutorul unui
semnal de ceas, deoarece magistrala este sincrona. Sunt prevazute însa semnale care permit inserarea starilor de
asteptare de catre dispozitivele mai lente.
În Figura 3.21 se prezinta principalele semnale ale unui dispozitiv master/slave. În partea stânga se afla
semnalele obligatorii, necesare pentru transferurile de baza utilizând cuvinte de maxim 32 de biti. În partea
dreapta se afla semnalele optionale, care permit transferuri de date utilizand cuvinte de 64 biti, semnale care
permit controlul întreruperilor si semnale pentru executarea altor functii mai putin uzuale.
Magistrala PCI are un numar de semnale obligatoriisi un numar de semnale optionale, prezentate în Fig.3-21.
Restul de 120 sau 184 de pini sunt utilizati pentru alimentare, masa si diferite functii înrudite, care nu sunt listate
aici.
Urmeaza o trecere în revista a semnalelor magistralei PCI. Vom începe cu semnalele obligatorii (32 de
biti) si apoi vom trece la semnalele optionale (64 de biti).

[AD 31-0](Adress/Data)
Reprezinta magistrala multiplexata de adrese si de date. În timpul fazei de adrese, pe aceasta magistrala
se transmite adresa de start a tranzactiei. În timpul fazei de date, pe liniile AD[31-0] se transmit date provenite de
la initiator (la o scriere) sau de la tinta adresata (la o citire).
C/BE[3-0] (Command or Byte Enable)
În timpul fazei de adrese aceste linii definesc o comanda pe care inittiatorul o utilizeaza pentru a indica
tipul tranzactiei necesare. Dintre comenzile posibile se amintesc citirea din me morie, scrierea in memorie, citirea
de la un dispozitiv de I/E, scrierea la un dispozitiv de I/E, achitarea unei întreruperi etc. În timpul fazei de date
aceste linii sunt utilizate de initiator pentru a indica octetii care trebuie transferati din cadrul cuvântului dublu
adresat si grupele de linii ale magistralei AD care trebuie utilizate pentru transferul datelor.
PAR (Parity)
Reprezinta semnalul de paritate para pentru liniile AD[31-0] si C/BE [3-0]. Paritatea este generata de
initiator dupa terminarea fazei de adrese si dupa terminarea fiecarei faze de date la o tranzactie de scriere.
Paritatea este generata de tinta adresata dupa terminarea fiecarei faze de date la o tranzactie de citire.
FRAME (Cycle Frame)
Este activat de initiator si indica începutul si durata unei tranzactii pe magistrala. O tranzactie poate
consta din una sau mai multe transferuri de date între initiatorul curent si tinta adresata. Semnalulul FRAME este
dezactivat atunci când initiatorul este pregatit sa încheie faza finala de date.

TRDY (Target Ready)


Este activat de dispozitivul tinta adresat atunci când acest dispozitiv este pregatit pentru un transfer de
date (poate executa faza curenta de date). Faza de date este terminata atunci când tinta activeaza TRDY si
initiatorul activeaza IRDY la frontul crescator al semnalului de ceas. În timpul unei operatii de citire, semnalul
TRDY activat indica faptul ca tinta a depus date valide pe magistrala de date. În timpul unei operatii de scriere,
semnalul TRDY activat indica faptul ca tinta este pregatita sa accepte datele de la initiator. Sunt inserate stari de
asteptare în faza curenta de date pâna când ambele semnale TRDY si IRDY sunt activate.
IRDY (Initiator Ready)
Este activat de initiatorul tranzactiei si semnaleaza momentul în care initiatorul este pregatit pentru un
transfer de date. În timpul unei operatii de scriere, semnalul IRDY activat indica faptul ca initiatorul a depus date
valide pe magistrala de date. În timpul unei operatii de citire, semnalul IRDY activat indica faptul ca initiatorul
este pregatit sa accepte datele de la tinta adresata.
STOP
Prin activarea acestui semnal, dispozitivul tinta solicita initiatorului oprirea tranzactiei în curs in timpul
fazei curente de date.
DEVSEL (Device Select)
Este activat de dispozitivul target pâna atunci când acesta si-a decodificat adresa. Daca un dispozitiv
master a initiat un transfer si nu detecteaza semnalul DEVSEL activ în cursu1 a sase perioade de ceas, va
presupune ca tinta nu poate raspunde sau ca adresa respectiva nu este utilizata. Va rezulta un abandon din partea
dispozitivului master.
IDSEL (Initialization Device Select)
Este o intrare pentru un dispozitiv PCI si este utilizat pentru seletia circuitului in timpul accesului la
unul din registrele de configurare ale dispozitivului.
PERR (Parity Error)
Indica o eroare de paritate. Generarea informatiei de paritate este obligatorie pentru toate dispozitivele
PCI care transmit adrese si date pe magistrala AD. Detectarea si raportarea erorilor de paritate de catre
dispozitivele PCI este necesara în general (în anumite cazuri, erorile de paritate pot fi ignorate). Daca se
detecteaza o eroare de paritate de catre un dispozitiv tinta în timpul unei faze de date la o operatie de scriere,
tinta trebuie sa activeze semnalul PERR. Tinta poate continua tranzactia sau poate activa semnalul STOP pentru
terminarea prematura a tranzactiei. Daca se detecteaza o eroare de paritate de catre un dispozitiv initiator în
timpul unei faze de date la o operatie de citire, initiatorul trebuie sa activeze semnalul PERR. Initiatorul unei
tranzactii are responsabilitatea de a raporta detectarea unei erori de paritate. În acest scop, initiatorul trebuie sa
monitorizeze semnalul.
SERR (System Error)
Acest semnal poate fi activat de orice dispozitiv PCI pentru a raporta erori de paritate a adreselor, erori
de paritate a datelor în timpul unui ciclu special, sau erori critice diferite de cele de paritate. Acest semnal este
considerat ca ultima modalitate de raportare a erorilor serioase. Erorile care nu sunt catastrofale si cele
corectabile trebuie semnalate în alte moduri. La calculatoarele PC, SERR determina în general o întrerupere NMI
catre procesorul sistemului.
REQ (Request)
Este activat de initiator pentru a indica o cerere de magistrala. Aceasta linie este conectata la arbitrul de
magistrala. Metoda de arbitrare a magistralei nu este descrisa în specificatiile PCI; se pot implementa diferite
metode. Este specificat doar faptul ca arbitrul de magistrala trebuie sa utilizeze un algoritm prin care sa se evite
blocajele; fiecarui dispozitiv master potential trebuie sa i se permita accesul la magistrala.
GNT (Grant)
Este activat de arbitrul de magistrala pentru a indica acordarea magistralei pentru initiator. Atunci când
detecteaza acest semnal, initiatorul trebuie sa astepte terminarea tranzactiei în curs de catre initiatorul curent.
CLK (Clock)
Reprezinta semnalul de ceas utilizat pentru sincronizarea tuturor tranzactilor, inclusiv a arbitrajului de
magistrala. Toti parametrii de sincronizare ai magistralei sunt specificati relativ la frontul crescator al semnalului
de ceas. Frecventa semnalului de ceas se poate modifica în orice moment, cu condtia sa nu existe cereri de
magistrala si semnalul LOCK sa nu fie activ. De asemenea, ceasul poate fi oprit în starea low (pentru reducerea
puterii consumate).
RST (Reset)

Semnalele optionale
AD[63-32]
Reprezinta extensia la 64 de biti a magistralei de date AD[31-0]. Aceste linii nu sunt utilizate în timpul
fazei de adresare a unui transfer (cu exceptia cazului în care se utilizeaza adresarea pe 64 de biti).
C/BE [7-4]
Reprezinta extensia semnalelor C/BE[3-0]. Se utilizeaza numai în timpul fazei de date a unui transfer
(cu exceptia cazului în care se utilizeaza adresarea pe 64 de biti).
PAR64 (Parity for Upper Doubleword)
Este bitul de paritate paritate asociat AD[63-32) si C/BE [7-4].
REQ64 (Request 64 bit transfer)
Semnal generat de initiatorul curent pentru a indica faptul ca doreste executarea transferurilor utilizând
extensia la 64 de biti a liniilor de date. Semnalul REQ 64 are aceesi sincronizare ca si semnalul FRAME.
ACK64 (Acknowledge 64-bit transfer)
Semnal generat de tinta curent adresata (daca aceasta permite transferuri pe 64 de biti) ca raspuns la
activarea semnalului REQ64 de catre initiator. Semnalul ACK64 are aceeasi sincronizare ca si semnalul DEVSEL
LOCK
Acest semnal este utilizat de catre un initiator PCI care solicita accesul exclusiv la un dispozjtiv tinta de
memorie în timpul a doua sau mai multe tranzactii separate. Acest semnal este prevazut cu scopul de a permite
operatii de citire/modificare/scriere la operatiile cu semafoare. Daca un dispozitiv PCI contine o memorie
executabila sau o memorie care contine date de sistem (gestionate de sistemul de operare), trebuie sa
implementeze aceasta functie de blocare a resursclor.
CLKRUN
Acest semnal este optional si este definit pentru sistemele portabile.
INTA, INTB, INTC, INTD
Acest semnal este o iesire de la puntea UCP/PCI si o intrare pentru subsistemele de memorie conectate
la magistrala PCI care pot utiliza o memorie cache.
SBO (Snoop Back Off)
Semnalul SBO estre activat de puntea UCP/PCI pentru a indica faptul ca prin accesul curent la
memorie urmeaza sa se citeasca sau sa se actualizeze informatii perimate din memorie. Semnalul SBO are
semnificatie numai atunci când semnalul SDONE este de asemenea activat de catre puntea UCP/PCI. Atunci
când ambele semnale sunt activate, subsistemul de memorie PCI curent adresat trebuie sa raspunda prin
semnalarea unei retransmisii la initiatorul curent.
SDONE (Snoop Done)
Acest semn al este iesire de la puntea UCP/PCI si o intrare pentru subsistemele de memorie conectate la
magistrala PCI care pot utiliza o memorie cache. Semnalul SDONE este dezactivat de puntea UCP/PCI în timp
ce memoria cache a procesorului intervine într-o cerere dre acces la memorie executata de initiatorul curent.
Puntea activeaza semnalul SDONE atunci când interventia s-a terminat. Rezultatele interventiei sunt indicate de
catre semnalul SBO. Semnalul SBO dezactivat indica faptul ca initiatorul PCI acceseaza date valide din memorie
si ca memoria poate accepta sau furniza datele respective. Semnalul SBO activat indica faptul ca initiatorol PCI
acceseaza date perimate din memorie si nu trebuie sa termine accesul curent. Memoria va trebui sa termine
accesul prin semn alarea faptului ca operatia trebuie repetata.
TCLK (Test Clock)
TDI (Test Data Input)
TDO (Test Data Out)
TMS (Test Mode Select)
TRST (Test Reset)

3.11.3. Arbitrarea magistralei PCI


Pentru a utiliza magistrala PCI, un dispozitiv trebuie, mai întâi, sa o câstige. Arbitrarea magistralei
PCI utilizeaza un arbitru de magistrala, centralizat, dupa cu se vede în fig. 3.22. În cele mai multe variante de
proiectari, arbitrul magistralei este continut într-unul din circuitele punte. Fiecare dispozitiv PCI are doua linii
dedicate, care merg de la el la arbitru. O linie, REQ#; este utilizata pentru a cere magistrala. Cealalta linie,
GNT#, este utilizata pentru a receptiona recunoasterea alocarii magistralei.
GNT#
REQ#
GNT#
REQ#
GNT#

GNT#
REQ#

REQ#

Arbitru
PCI
Dispozitiv Dispozitiv Dispozitiv Dispozitiv
PCI PCI PCI PCI

Figura 3.22. Magistrala PCI utilizata ca arbitru de magistrala, centralizat.

Pentru a cere magistrala, un dispozitiv PCI (inclusiv UCP), activeaza REQ# si asteapta pâna când
vede ca linia GNT# este activata de arbitru. Când se întâmpla acest eveniment, dispozitivul poate utiliza
magistrala pe durata ciclului urmator. Algoritmul utilizat de catre arbitru nu este definit de specificatia PCI. Sunt
permise arbitrarea "round robin", arbitrarea în functie de prioritati, precum si alte scheme. În mod clar, un arbitru
trebuie sa fie corect, adica sa nu lase unele dispozitive sa astepte la nesfârsit.
Magistrala se aloca pentru o tranzactie, cu toate ca lungimea acestei tranzactii este. teoretic,
nelimitata. Daca dispozitivul vrea sa realizeze o a doua tranzactie, sio nici un alt dispozitiv nu solicita magistrala,
el o poate realiza, desi, în mod normal, între tranzactii trebuie inserat un ciclu inactiv.
Totusi în conditii speciale, în absenta unei competitii pentru magistrala, un dispozitiv poate realiza
tranzactii una dupa alta, fara a trebui sa insereze un ciclu inactiv. Daca un master face un transfer foarte lung si
alte dispozitive au cerul magistrala, arbitrul poate nega linia GNT#. Se presupune ca modulul master curent de
pe magistrala urmareste linia GNT#, astfel încât atunci când sesizeaza negarea semnalului, trebuie sa elibereze
magistrala pe ciclul urmator. Aceasta schema permite transferuri foarte lungi (care sunt eficiente) când este un
singur candidat master pe magistrala, dar da, totusi, raspuns rapid pentru dispozitivele concurente.

Semnalul CLK comanda magistrala. Cele mai multe dintre celelalte semnale sunt sincrone cu acesta.
Spre deosebire de magistrala ISA, o tranzactie pe magistrala PCI începe pe frontul descendent al semnalului
CLK care este în mijlocul unui ciclu, în loc de începutul acestuia.
Cele 32 de semnale AD sunt pentru adresa si date (pentru tranzactiile pe 32 de biti). În general, pe
durata ciclului 1 este activata adresa, iar pe durata ciclului 3 sunt activate datele. Semnalul PAR este un bit de
paritate pentru AD. Semnalul C/BE# este utilizat pentru doua lucruri diferite. Pe ciclul 1, el contine comanda
magistralei (citeste 1 cuvânt, citeste un bloc etc.). Pe ciclul 2 el contine o configuratie de 4 biti, ce specifica care
octeti ai cuvântului de 32 de biti este valid. Utilizând C/BE# este posibil sa se citeasca sau scrie 1, 2, 3 octeti sau
întreg cuvântul.
Semnalul FRAME# este activat de master-ul magistralei, pentru a începe o tranzactie pe magistrala.
La o citire, de obicei, IRDY# este activat acelasi timp cu FRAME#. El spune ca master-ul este gata sa accepte
datele de intrare. La o scriere, IRDY# este activat mai târziu, când datele sunt pe magistrala.
Semnalul IDSEL# este legat de faptul ca fiecare dispozitiv PCI trebuie sa aiba un spatiu de
configuratie de 256 de biti, pe care alte dispozitive sa-l poata citi (prin activarea IDSEL). Acest spatiu de
configuratie contine proprietatile dispozitivului. Caracteristica de "autoconfigurare" (Plug'n Play) a unor sisteme
de operare utilizeaza spatiul de configuratie pentru a afla ce dispozitive sunt pe magistrala.
Am ajuns, acum, la semnalele activate de slave. Primul dintre acestea, DEVSEL#, anunta ca slave-ul a
detectat adresa sa pe liniile AD si este pregatit sa se angajeze în tranzactie. Daca DEVSEL# nu este activat pe o
anumita durata limitata de timp, master-ul presupune ca dispozitivul adresat este fie absent, fie stricat.
Cel de al doilea semnal de la slave este TRDY#, pe care slave-ul îl activeaza la citiri, pentru a anunta
ca datele sunt pe liniile AD si la scrieri, pentru a anunta ca este pregatit sa accepte date.
Urmatoarele trei semnale sunt pentru raportarea de erori. Primul dintre acestea este STOP#, pe care
slave-ul îl activeaza daca se întâmpla ceva dezastruos si vrea sa abandoneze tranzactia curenta. Urmatorul,
PERR#, este utilizat pentru a raporta o eroare de paritate pentru date, pentru ciclul anterior. Pentru o citire, el
este activat de master; pentru o scriere este activat de catre slave. Este sarcina receptorului sa faca actiunea
corespunzatoare. În final, SERR# este pentru raportarea erorilor de adresa si a erorilor de sistem.
Semnalele REQ# si GNT# sunt pentru a efectua arbitrarea magistralei. Acestea nu sunt activate de
master-ul curent de pe magistrala, ci mai exact de un dispozitiv ce doreste sa devina master pe magistrala.
Ultimul semnal obligatoriu este RST#, utilizat pentru reinitializarea sistemu lui, daca utilizatorul apasa butonul
RESET sau daca un dispozitiv sistem anunta o eroare fatala. Activarea acestui sistem initializeaza toate
dispozitivele si reporneste calculatorul.
Am ajuns acum la semnalele optionale, cele mai multe dintre acestea fiind legate de extinderea de la
32 de biti la 64 de biti. Semnalele REQ64# si ACK64# permit master-ului sa ceara permisiunea pentru a realiza
tranzactii pe 64 de biti si, respectiv, permite slave-ului sa le accepte. Semnalele AD, PAR63 si C/BE# sunt pur si
simplu extensii ale semnalelor respective pentru 32 de biti.
Urmatoarele semnale nu au legatura cu diferenta de la 32 de biti la 64 de biti, ci cu sistemele
multiprocesor, ceva ce placile PCI nu sunt obligate sa permita. Semnalul LOCK permite blocarea magistralei
pentru tranzactii multiple. Urmatoarele doua sunt legate de ciclul de magistrala, pentru mentinerea coerentei
memoriei intermediare.
Semnalele INTx sunt petru cereri de întrerupere. O placa PCI poate avea pâna la patru dispozitive
logice, separate, pe ea, si fiecare poate avea propriile sale linii de cerere de întrerupere. Semnalele JTAG sunt
pentru procedura de test IEEE 1149.1 JTAG. În sfârsit, semnalul M66EN este cablat fie la tensiunea de
alimentare, fie la masa, pentru a stabili viteza ceasului. El nu trebuie schimbat pe durata functionarii sistemului.
Fig. 3.23.

Magistrala PCI este foarte simpla (ca mod de functionare). Pentru a va da seama mai bine de aceasta,
sa consideram diagrama din fig. 3.23. Aici se poate vedea o tranzactie de citire, urmata de un ciclu inactiv, urmat
de o tranzactie de scriere pentru acelasi master de pe magistrala.
Pe frontul descrescator al ceasului pe durata lui T1 , master-ul pune adresa de memorie pe AD si
comanda pentru magistrala pe C/BE#. El activeaza, apoi, FRAME# pentru a începe tranzactia pe magistrala.
Pe durata T2 master-ul lasa magistrala de adrese libera (adica în starea de mare impedanta), în
pregatirea ei pentru slave, care o va controla pe durata T3 . De asemenea, master-ul modifica C/BE# pentru a
arata ce octeti din cuvântul adresat vrea sa-i valideze (adica sa-i citeasca).
În T3 slave-ul activeaza DEVSEL#, astfel ca master-ul stie ca acesta a luat adresa si intentioneaza sa
raspunda. De asemenea, el pune datele pe liniile AD si activeaza TRDY# pentru a anunta master-ul. Daca slave-
ul nu este capabil sa raspunda asa de repede, el va trebui sa activeze totusi DEVSEL#, pentru a anunta prezenta
sa, dar mentine TRDY# negat pâna când poate sa preia datele.
Aceasta procedura poate introduce una sau mai multe stari de asteptare (wait).
În acest exemplu (si adesea în realitate), urmatorul ciclu este inactiv. Începând din T5 vedem acelasi
master care initiaza o scriere. El începe, ca de obicei, prin plasarea adresei si a comenzii pe magistrala. Numai
acum, în cel de-al doilea ciclu, el activeaza datele. Întrucât acelasi dispozitiv controleaza liniile AD, nu este
necesar un ciclu de eliberare a magistralei. Pe T7 , memoria accepta datele.

3.12. Magistrala seriala universala (USB)


Magistrala PCI este adecvata pentru atasarea perifericelor de mare viteza la un calculator, dar este
prea costisitor sa existe o interfata PCI pentru fiecare dispozitiv I/E de viteza scazuta, cum ar fi o tastatura sau un
mouse. Istoric, fiecare dispozitiv de I/E standard a fost conectat la calculator într-un mod specific, lasând libere
câteva conectoare ISA sau PCI pentru a adauga noi dispozitive. Din pacate, aceasta schema a fost însotita de
probleme, chiar de la început. De exemplu, fiecare nou dispozitiv de I/E vine, adesea, cu propria sa placa ISA
sau PCI. Utilizatorul este, adesea, responsabil pentru pozitionarea comutatoarelor si a unor conexiuni (jumpere)
pe placa, si asigurarea ca aceste pozitionari nu vin în conflict cu alte placi. Apoi utilizatorul trebuie sa desfaca
cutia (calculatorului), sa insereze cu grija placa, sa închida cutia si sa reporneasca calculatorul. Pentru multi
utilizatori, acest proces este dificil si cu mari sanse se eroare. În plus, numarul de conectori ISA si PCI este strict
limitat (de obicei doi sau trei). Placile cu autoconfigurare (Plug'n Play) elimina pozitionarea unor conexiuni
(jumpere), dar utilizatorul trebuie sa deschida, totusi, calculatorul si sa introduca placa, iar numarul de conectori
de magistrala este si el limitat.
Pentru a rezolva aceasta problema pe la mijlocul anilor 1990, reprezentanti de la sapte companii
(Compaq, DEC, IBM, Intel, Microsoft, NEC si Northen Telecom) s-au strâns pentru a proiecta un mod mai bun
de a atasa dispozitivele I/E, de viteza redusa, la un calculator. De atunci sute de alte companii li s-au alaturat.
Standardul rezultat este denumit USB (Universal Serial Bus, rom: magistrala seriala universala) si este
implementat, pe scara larga, în calculatoarele personale. El este descris mai detaliat în Anderson, (1997) si Tan
(1997).

Câteva dintre obiectivele companiilor care au conceput initial USB-ul si care au început proiectul, au
fost urmatoarele:
1. Utilizatorii nu trebuie sa aiba de pozitionat comutatoare sau conexiuni (jumpere) pe placi sau pe dispozitive.
2. Pentru a instala noi dispozitive de I/E utilizatorii nu trebuie sa deschida cutia.
3. Trebuie sa existe un singur tip de cablu, bun pentru conectarea tuturor dispozitivelor.
4. Dispozitivele de I/E trebuie sa se alimenteze singure, prin cablu.
5. Se pot atasa pâna la 127 de dispozitive la un singur calculator.
6. Sistemul ar trebuie sa suporte dispozitivele în timp real (de exemplu, sunet, telefon).
7. Dispozitivele trebuie sa poata sa fie instalate în timp ce calculatorul functioneaza.
8. Dupa instalarea unui nou dispozitiv sa nu trebuiasca repornit calculatorul.
9. Noua magistrala si dispozitivele ei de I/E ar trebui sa fie.

USB îndeplineste toate aceste conditii. Ea este proiectata pentru dispozitive de viteza redusa cum ar fi
tastaturi, mouse-uri, camere de luat vederi, scanere, telefoane digitale si altele. Banda de trecere totala pentru
USD este de 1.5 Mo/sec., care este suficienta pentru un numar substantial de astfel de dispozitive. Aceasta limita
scazuta a fost aleasa pentru a mentine un cost scazut.
Un sistem USB consta dintr-un hub central (root hub) care se conecteaza la magistrala principala (vezi
fig. 3.20). Acest hub are socluri pentru cabluri ce se pot conecta la dispozitive de I/E sau la alte hub-uri de
extindere, pentru a furniza mai multe socluri, astfel ca topologia unui sistem USB este un arbore cu radacina sa
la hub-ul central, în interiorul calculatorului. Cablurile au diferiti conectori, la capatul hub-ului si la capatul
dispozitivului, pentru a preveni interconectarea accidentala a doua socluri cu hub-uri.
Cablul consta din patru fire: doua pentru date, unul pentru alimentare (+5 volti) si unul pentru masa.
Sistemul de semnalare transmite un 0 ca o tranzitie a tensiunii si un 1 ca absenta unei tranzactii de tensiune,
astfel ca atât timp cât dureaza 0-urile se genereaza un flux de pulsuri.
Când se conecteaza un nou dispozitiv de I/E, hub-ul radacina detecteaza acest eveniment si întrerupe
sistemul de operare. Apoi sistemul de operare interogheaza dispozitivul, pentru a determina ce este si cât din
banda USB necesita. Daca sistemul de operare decide ca banda de trecere este suficienta pentru dispozitiv, el
asociaza noului dispozitiv o adresa unica (1-127) si încarca aceasta adresa si alte informatii în registrele de
configurare din dispozitiv. În acest mod, noi dispozitive pot fi adaugate imediat, fara a fi necesara nici o
informatie de configurare din partea utilizatorului si fara a trebui sa se instaleze noi placi ISA sau PCI. Placile
neinitializate pornesc de la adresa 0, astfel ca ele pot fi adresate. Pentru a face cablarea mai usoara, multe
dispozitive USB contin hub-uri incorporate pentru a accepta dispozitive suplimentare USB. De exemplu, un
monitor poate sa aiba doua socluri de hub pentru a amplasa difuzoarele stânga dreapta.
Din punct de vedere logic, sistemul USB poate fi vazut ca un set de canale de biti, de la hub-ul central
la dispozitivele de I/E. Fiecare dispozitiv împarte canalul sau în cel mult 16 subcanale, pentru diferite tipuri de
date (de exemplu, audio si video). Pe fiecare canal sau subcanal, datele merg de la hub-ul central la dispozitiv
sau invers. Nu exista trafic între doua dispozitive de I/E.
La exact fiecare 1.00±0.05 msec., hub-ul emite un nou cadru pentru a mentine toate dispozitivele
sincronizate în timp. Un cadru este asociat ca un canal de biti si consta din pachete, primul fiind de la hub-ul
radacina catre dispozitiv. Urmatoarele pachete din cadru pot, de asemenea, sa fie în aceasta directie sau pot
merge înapoi de la dispozitiv la hub-ul central. În fig. 3-54 este prezentata o secventa de patru cadre.
În fig. 3.24. nu se efectueaza nimic în cadrele 0 si 2, astfel încât este necesar doar un pachet SOF
(Start of Frame), de început de cadru. Acest pachet este transmis, întotdeauna, la toate dispozitivele. Cadrul 1
este o interogare, de exemplu o cerere pentru ca un dispozitiv de scanare sa returneze bitii pe care i-a gasit în
imaginea pe care o scaneaza. Cadrul 3 consta din datele ce se transmit la un dispozitiv, de exemplu la o
imprimanta.
USB suporta patru tipuri de cadre: control, izocron, transfer cantitati mari de date (bulk) si întrerupere.
Cadrele de control sunt utilizate pentru a configura dispozitive, a le transmite comenzi si a interoga despre starea
lor. Cadrele izocrone sunt dispozitive în timp real cum ar fi microfoane, difuzoare si telefoane care au nevoie sa
transmita sau sa accepte date la intervale de timp precise. Ele au o întârziere predictibila, dar nu permit
retransmisia în cazul unor erori. Cadrele de transfer cantitati mari de date sunt pentru transferuri mari la sau de la
dispozitive fara cerinte de timp real, cum ar fi imprimantele. În sfârsit, cadrele întrerupere sunt necesare deoarece
USD nu suporta întreruperi. De exemplu, în loc sa avem o tastatura care sa genereze o întrerupere ori de câte ori
se apasa o tasta sistemul de operare o poate interoga la fiecare 50 msec. pentru a prelua tastele apasate pâna
atunci.
Timp (msec)

0 1 2 3

Cadru 0 Cadru 1 Cadru 2 Cadru 3

Pachete de la hub-ul Pachete de la hub-ul


central (radacina) central (radacina)

SOF SOF IN DATA ACK SOF SOF IN DATA ACK


Pachete de date
de la dispozitiv
Pachete de date
SYN PID PLYLOAD CRC SYN PID PLYLOAD CRC
de la dispozitiv

Fig. 3.24. Hub-ul radacina USB transmite cadre la fiecare 1.00 msec.

Un cadru consta din unul sau mai multe pachete, câteva, posibil, în fiecare directie. Exista patru tipuri
de pachete: control sistem (token), date, negociere si special. Pachetele token sunt de la radacina la root la un
dispozitiv si sunt pentru controlul sistemului. Pachetele SOF, IN si OUT din fig. 3.24. sunt pachete de control
sistem (token). Pachetul SOF (Start of Frame) este primul în fiecare cadru si marcheaza începutul cadrului. Daca
nu este nimic de facut acolo, pachetul SOF este singurul din cadru. Pachetul de control sistem IN este o
interogare, care cere dispozitivului sa obtina anumite date. Câmpurile din pachetul IN specifica canalul de biti
interogat, astfel ca dispozitivul stie care sunt datele de obtinut (fdaca canalul are mai multe fluxuri). Pachetul de
control sistem OUT anunta ca vor urma datelke pentru dispozitiv. Cel de al patrulea tip de pachet pentru
controlul sistemului SETUP (care nu este prezentat în figura), este utilizat pentru configurare.
Pe lânga pachetul de control sistem (token), mai exista alte trei tipuri. Acestea sunt pachetele: DATA
utilizat pentru transmisie pâna la 64 de octeti de informatie în orice directie, negociere si pachete speciale.
Formatul unui pachet de date este prezentat în fig. 3.24. El consta dintr-un câmp de sincronizare de 8 biti, un tip
de pachet de 8 biti (PID), sarcina, adica datele de transmis si CRC-ul de 16 biti (Cyclic Redundancy Code;rom:
cod redundant ciclic ), pentru a detecta erori. Sunt definite trei tipuri de pachete de negociere: ACK (pachetul
anterior de date a fost bine receptionat), NAK (s-a detectat o eroare CRC) si STALL (va rog asteptati - acum
sunt ocupat).
Sa examinam acum, din nou, Fig. 3.24. La fiecare 1.00 msec trebuie transmis un cadru de la hub-ul
radacina (central), chiar daca nu este nimic de facut. Cadrele 0 si 2 constau doar dintr-un pachet SOF, indicând
ca nu s-a facut nimic. Cadrul 1 este o inerogare, astfel ca el începe cu transmiterea pachetelor SOF si IN de la
calculator la dispozitivele de I/E, urmate de un pachet DATA de la dispozitiv la calculator. Pachetul ACK spune
dispozitivului ca datele au fost receptionate corect. În cazul unei erori catre dispozitiv se va transmite un NAK si
pachetul se va retransmite în cazul transferurilor de cantitati mari de date (dar nu si cel al datelor izocrone).
Cadrul 3 este similar, ca structura, cu cadrul 1, cu exceptia faptului ca , acum, fluxul de date este de la calculator
la dispozitiv.
3.5. Magistrala ISA

A devenit o magistrala standard la calculatoarele bazate pe procesoarele din familia 80x86, fiind utilizata la
primele tipuri de calculatoare IBM PC. IBM a denumit initial aceasta magistralA I/0 Channel, ulterior utilizând
denumirea ISA (Industry-Standard Architecture). Magistrala ISA are 70 de linii, semnalele fiind prezentate in Tabelul
3.2.

Tabelul 3.2.

Semnalele magistralei ISA, descrise pe scurt, sunt urmatoarele:

OSC Este semnalul generat de un oscilator cu cuart.


CLK Este generat de circuitul 8284A. prin divizarea semnalului OSC cu 3. Spre deosebire de semnalul OSC
care este simetric, CLK este nesimetric , fiind 1 pe durata de 1/3 din perioada si 0 pe durata a 2/3 din
perioada.
RESET Este semnalul de resetare generat de circuitul 8284A.
ALE Este activat atunci când adresele de pe magistrala sunt valide. Se utilizeaza pentru validarea
circuitelor laIch de adrese.
AEN Este semnal de intrare pentru procesor, fiind generat de catre dispozitivele care solicita magistrala.
Controlerul de magistrala 8288 genereaza semnalul care deconecteaza driverele de date (liniile vor
trece în starea de inalta impedanta).
IOCHCH Este activat daca se detecteaza o eroare de paritate pe magistrala, când se genereaza o întrerupere
nemascabila.
IOCHRDY Se utilizeaza de memoriile sau dispozitivele mai lente pentru inserarea starilor de asteptare.
IRQ2-IRQ7 Cereri de întrerupere; reprezinta intrari pentru controlerul de întrerupere.
DRQ1 -DRQ3 Cereri DMA; reprezinta intrari pentru controlerul DMA. DRQO se utilizeaza, pentru reâmprospatarea
memoriei.
DACK0-DACK3 Semnale de confirmare a cererilor DMA.
T/C Semnal activat de controlerul DMA la terminarea unui transfer.
3.6. Magistrala IBM PC/AT
La aparitia procesorului 80286, în locul realizarii unei magistrale noi pentru calculatoarele AT, s-a ales solutia
extinderii magistralei IBM PC (ISA). S-a adaugat un nou conector pentru linii suplimentare de adrese, întreruperi, cereri
DMA, si pentru diferentierea transferurilor de 8 si 16 biti.
La introducerea seriei de calculatoare PS/2, IBM a decis sa introduca o noua magistrala, în parte pentru ca
magistralele utilizate pina atunci erau învechite, dar si pentru a opri copierea noilor sisteme. Modelele mai evaluate ale
acestei serii au fast echipate cu magistrala MicroChannel, complet noua, care a fost protejata cu numeroase parente.
Cheltuielile de licenta pentru aceasta magistrala au ajuns la 5% din pretul de vânzare.
Celelalte firme producatoare de calculatoare personate au adoptat un standard propriu de magistrala, numita
EISA (Extended Industry Standard Architecture), care este o extensie a magistralei ISA la 32 de biti, având avantajul ca
pastreaza compatibilitatea cu calculatoarele si placile de extensie existente, si se bazeaza pe o magistrala a carei licenta
a fast oferita liber numeroaselor firme producatoare de placi de extensie pentru calculatoarele IBM PC.

3.7. Magistrala VME

3.7.1. Principii
Magistrala VME (Versa Module Eurocard) provine din magistrala Versabus a firmei Motorola, care a fost
utilizata la primele sisteme bazate pe procesorul 68000. Ulterior, magistrala Versabus a fost adaptata pcntru formatul
placilor dublu Eurocard (160 x 200 mm), format devenit standard pcntru calculatoarele industriale. Noua magistrala,
proiectata în colaborare cu firmele Mostek, Signetics/Philips si Thompson CSF, a fost denumita VME, fiind anuntata în
anu 1981.
Este o magistrala de 32 biti cu perfo mante ridicate, utilizata pe scara larga, mai ales pentru aplicatii industriale.
Exis ta mii de placi de extensie bazate pe aceasta magistrala, produse de sute de firme. Are specificatii bine definite, care
descriu functionarea magistralei si regulile care trebuie respectate de placile VME.
Performantele ridicate sunt asigurate prin asincronismul magistralei, ceea ce permite diferitelor componente sa
functioneze la viteza corespunzatoare tehnologiei utilizate în practica, limita superioara este de ordinul a 100 ns pentru
un ciclu de magistrala, deoarece peste aceasta limita apar nesimetrii (bus skew) si alte probleme similare. Cu un transfer
de 4 octeti la fiecare 100 ns, rezulta o rata de transfer de 40 MB/s.
Fiabilitatea magistralei este asigurata prin proiectarea mecanica si protocolul logic. Spre deosebire de
conectorii calculatoarelor IBM PC, se utilizeaza conectori formati din pini metalici. Desi solutia este mai scumpa, se
elimina astfel conexiunile necorespunzatoare, care reprezinta una din principalele surse de probleme la sistemele de
calcul. Exista linii ale magistralei care se pot utiliza pentru autotest si raportarea starii.
Magistrala VME face parte dintr-o familie de trei magistrate proiectate pentru o gama larga de sisteme de
calcul, de la mici sisteme de dezvoltare la sisteme multiprocesor. De exe mplu, Figura 3.17(a) prezinta un sistem
minimal, format din trei placi VME, câte una pentru UCP, memorie si un controler de I/E.
Figura 3.17(b) prezinta un sistem multiprocesor. Fiecare procesor are o memorie locala la care se conecteaza
printr-o magistrala VSB. Daca se pastreaza programul si datele locale în memoriile locale, magistrala VME va fi
utilizata numai de instructiunile care fac acces la memoria globala partajata.
Astfel, rata de transfer globala poate depasi limita de 40 MB/s impusa de tehnologia VME. De exemplu, un
sistem mu ltiprocesor cu 16 UCP, fiecare UCP solicitând un cuvint de 4 octeti la fiecare 200 ns, necesita o rata de
transfer de:
(4 x 1/(200x109)) x 16 B/s = 320 MB/s

Daca 90 % din aceste accesuri se fac la memoria locala (pentru încarcarea instructiunilor, citirea/scrierea
datelor locale etc), cu o magistrala VME si 16 magistrale VSB se poate asigura aceasta rata.
Magistrala seriala VMS, care functioneaza independent de celelalte doua magistrale, poate fi utilizata pentru
comunicare si sincronizare între procesoare, în paralel cu transferurile de date pe magistrala principala.

3.7.2. Structura functionala


Aceasta structura consta din logica de interfata patru grupuri de linii numite magistrale, si o colectie de module
functionale asociate cu acestea.
Magistrala pentru transferul de date

Consta din 32 linii de date, 32 linii de adrese, 6 linii de modificare a adresei, care definesc tipul ciclului de
magistrala si 5 linii de control. Modulele functionale ale acestei magistrale cuprind modulele master si slave, un modul
monitor si un modul de tip ceas. Modulul master initiaza cicluri de transfer pentru a transfera datele cu modulul slave.
Modulul slave detecteaza ciclurile de transfer initiate de un master, si daca acele cicluri specifica participarea sa,
transfera datele la sau de la modulul master.
Monitorul urmareste transferurile de date, în scopul detectarii accesurilor la locatiile care i-au fost asignate
pentru a fi urmarite. În cazul în care apare un acces la o asemenea locatie, monitorul poate genera o întrerupere. Daca,
de exemplu, procesorul placii A scrie într-o locatie a memoriei globale care este urmarita de monitorul placii B,
procesorul placii B va fi întrerupt.
Ceasul masoara durata fiecarui transfer, si termina transferul daca acesta dureaza un timp prea mare. Este util
în cazul in care se adreseaza o locatie inexistenta sau un modul slave inexistent. Se evita astfel blocajul. Magistrala
pentru transferul de date dispune de linii nemultiplexate pentru adrese si date. Aceasta asigura cresterea performantelor
la executarea ciclurilor de transfer singular, când se transmite o adresa, dupa care se citeste sau se scrie data.

Magistrala pentru întreruperi

Consta din 7 linii de cerere de întrerupere, IRQ1-IRQ7, o linie de achitare a întreruperilor, IACK, si o
conexiune de tip daisy chan pentru achitarea întreruperilor. Deoarece pot exista mai multe UCP, liniile de cerere pot fi
partitionate între mai multe controlere de întreruperi, fiecare controler gestionând anumite linii si generând semnalele de
întrerupere, pentru anumite UCP.
. Sursa de întrerupere genereaza o cerere de întrerupere pe una din liniile de cerere. Atunci când cererea este
achitata de un modul de gestiune a nî treruperii, sursa de întrerupere furnizeaza 1, 2 sau 4 octeti de stare sau
identificare în cadrul unui ciclu special de magistrala, octeti care permit servirea întreruperii. Conexiunea de tip daisy
chain pentru achitarea întreruperilor va fi activata atunci când un modul de gestiune a întreruperii achita o cerere de
întrerupere. Aceasta conexiune asigura ca un singur modul sa raspunda cu octetii de stare sau identificare atunci când
au fost generate mai multe cereri.

Magistrala de arbitraj

În cadrul procesului de arbitraj este selectat modulul master sau modulul de gestiune a întreruperilor care va
putea utiliza magistrala pentru transferul de date. Magistrala de arbitraj cansta din 4 linii de cerere a magistralei, BR0-
BR3, 4 linii de acordare, BGOIN-BG3lN, si alte doua linii numite Bus Busy ( BBSY ) si Bus Clear ( BCLR ).
Exista un modul de cerere a magistralei, aflat pe aceeasi placa cu un modul master sau modul de gestiune a
întreruperii. Dupa efectuarea cererii, se asteapta achitarea acesteia de catre arbitru, dupa care modulul de cerere preia
controlul asupra magistralei prin activarea liniei Bus Busy, dezactiveaza cererea si indica modulului master faptul ca
magistrala este disponobila.
Arbitrul poate avea o facilitate de time-out, care permite retragerea utilizarii magistralei daca modulul solicitant
nu începe utilizarea magistralei în timpul prestabilit. Aceasta asigura ca magistrala nu va fi blocata ca rezultat al unui
semnal tranzitoriu pe linia de cerere. Arbitrul poate activa linia Bus Clear daca detecteaza o cerere de prioritate mai
ridicata fata de cea a modulului care utilizeaza magistrala în acel moment, acordând magistrala modulului mai prioritar.

Magistrala utilitara
Contine doua linii pentru semnale de ceas, o linie de resetare a sistemu lui, o linie de date pentru magistrala
seriala, o linie de detectare a caderii tensiunii de alimentare si o linie pentru indicarea a unei erori de sistem.
Modulul de ceas al sistemului fumizeaza un semnal de ceas SYSCLK de 16 MHz, util pentru diferite functii
care necesita o referinta de timp. Acest semnal nu se utilizeaza pentru delimitarea ciclurilor de magistrala.
Pentru magistrala seriala VMS exista un semnal de ceas SERCLK care asigura sincronizarea operatiilor pe
aceasta magistrala. Viteza de transfer pe magistrala seriala este de 32 Mbiti/s, dar se poate utiliza si o viteza de 16 sau 8
Mbiti/s. Protocolul acestei magistrale este complet independent de magistrala VME.
Starea sursei de alimentare este urmarita de un modul monitor, iar atunci cand se detecteaza o tensiune în
afara limitelor admise, monitorul utilizeaza linia prevazuta în acest scop (ACFAIL) pentru a avertiza toate placile
conectate la magistrala în vederea pregatirii caderii tensiunii ("graceful shutdown").
La detectarea unei erori de catre o placa conectata la magistrala VME, aceasta poate utiliza o linie speciala
(SYSFAIL) pentru a indica celorlalte module aparitia acestei erori.

3.7.3. Cicluri de magistrala


Specificatiile VME definesc cinci tipuri de cicluri de transfer si doua cicluri suplimentare. Ciclurile de transfer
se pot utiliza pentru transferul date lor de 8, 16 sau 32 de biti.

Ciclurile de citire si scriere


Încep prin transmiterea unei adrese si a unui cod de modificare a adresei, care indica tipul ciclului de
magistrala. Sunt permise si transferuri nealiniate, de exemplu 4 octeti începand de la o adresa impara.

Ciclurile de tranfer de blocuri


Se utilizeaza pentru citirea sau scrierea unui bloc de maxim 256 octeti. Acestea permit unui modul master sa
adreseze o singura locatie si apoi sa acceseze acea locatie si locatiile urmatoare, fara a transmite informatii
suplimentare de adresare. La initierea unui asemenea ciclu de catre un master, modulul slave memoreaza adresa într-
un numarator de adrese, ea fiind incrementata ulterior si utilizata la transferurile ulterioare.
Lungimea blocurilor transferate este limitata la 256 de octeti. Motivul este simplificarea proiectarii placilor de
memorie si reducerea timpului de acces la modulele de memorie. Daca nu ar exista aceasta limitare, toate modulele de
memorie ar trebui sa memoreze adresa de început a blocului, si apoi sa incrementeze aceasta adresa în fiecare ciclu.
Adresa incrementata ar trebui apoi decodificata de fiecare modul, pentru a testa daca adresa a ajuns în propria zona de
adrese. Aceasta decodificare ar creste timpul de acces.
Prin limitarea introdusa, daca un modul de memorie are o dimensiune de cel putin 256 octeti, iar prima adresa
se afla în propria zona de memorie, urmatoarele se vor afla de asemenea în aceasta zona. Deoarece numai cei 7 biti cei
mai putin semnificativi ai adresei se vor modifica în timpul unui tansfer, liniile superioare de adresa pot fi decodificate
o singura data, la începutul ciclului.

Ciclurile de citire-modificare-scriere

Asigura o operatie indivizibila de citire si scriere a unei locatii, fara a permite unul alt master accesul la acea
locatie înainte de terminarea operatiei. Aceste cicluri sunt utile în sistemele multiprocesor, unde trebuie partajate
anumite resurse, unele locatii de memorie fiind utilizate pentru functii semafor. Trebuie sa se asigure ca o resursa
utilizata de un anumit proces sa nu fie utilizata de un alt proces în acelsi timp. Un asemenea ciclu este similar cu un
ciclu de citire urmat de unul de scriere, dar nu se permite acordarea magistralei de date unui alt modul între cele doua
cicluri.

Ciclurile fara transferuri de date

Constau doar din transmiterea unei adrese. Rolul acestui ciclu este de a permite unui modul master sa anunte
ca va solicita în scurt timp continutul memoriei de la o anumita adresa. La o cerere ulterioara, memoria va putea
raspunde fara întârziere, evitându-se starile de asteptare. Se poate suprapune astfel un ciclu cu cel urmator.

Ciclurile de achitare a unei întreruperi

Sunt initiate de modulele de gestiune a întreruperilor în scopul citirii informatiilor de stare sau identificare de la
un modul care a solicitat o întrerupere.
În Figura 3.18 se prezinta un ciclu de citire de 32 de biti.
La începutul unui transfer, dispozitivul master depune adresa pe liniile de adrese A0-A31 si activeaza
semnalele de modificare a adreselor AMO-AM5, care definesc tipul ciclului de magistrala. Daca se efectueaza un
transfer complet de 32 de biti, se activeaza de asemenea semnalul LWORD. Acest semnal defineste, împreuna. cu tipul
ciclului, dimensiunea datelor transferate.
Dupa stabilizarea semnalelor AO-A31, AMO-AM5 si LWORD, dispozitivul master activeaza semnalul AS
(Address Strobe) pentru a indica dispozitivului slave faptul ca adresa este valida si poate fi memorata. Semnalul
WRITE va fi dezactivat daca se efectueaza o citire, si va fi activat daca se efectueaza o scriere. În final, dispozitivul
master activeaza semnalele DS0 – DS1 (Data Strobe) pentru a indica dispozitivului slave ca asteapta datele.
Pe baza semnalelor DS0, DS1, LWOROD si AS se determina octetul sau octetii necesari din cadrul cuvântului
selectat. Dispozitivul slave sesizeaza activarea semnalelor DS0 – DS1 si depune datele pe liniile 00-031. Apoi
activeaza semnalul DTACK (Data Acknowledge) pentru a semnala depunerea datelor.
Dispozitivul slave sesizeaza activarea semnalului DTACK, preia datele si dezactiveaza semnalele care au fost
activate la inceputul ciclului. Dezactivarea semnalelor DS0 - DS1 determina ca dispozitivul slave sa dezactiveze
semnalul DTACK, terminându-se ciclul.

3.7.4. Arbitrajul de magistrala


Se utilizeaza o combinatie între arbitrarea centralizata si cea distribuita. Exista un arbitru de magistrala
amplasat pe prima placa, cu rolul de a acorda magistrala pentru o cerere de un anumit nivel de prioritate. În cadrul
nivelului respectiv, un modul va fi selectat prin utilizarea unei conexiuni în lant între module.
Dintre algoritmii de arbitraj posibili, specificatiile VME descriu trei:
- arbitraj pe baza de prioritati,
- arbitraj «round robin»,
- arbitraj cu un singur nivel.

Arbitrajul pe baza de prioritati


Atribuie magistrala pe baza unei scheme de prioritati fixe, fiecarei linii de cerere fiindu-i asignata o prioritate.

Arbitrajul «round robin»


Atribuie magistrala pe baza unor prioritati rotitoare. Fiecare din cele 4 linii are aceesi prioritate. Daca
magistrala este atribuita modulului care a activat cererea de nivel n, prioritatea cea mai mare va fi asignata liniei de
cerere n-1 si cea mai mica liniei n .
Arbitrajul cu un singur nivel
În cazul arbitrajului cu un singur nivel, sunt acceptate numai cereri pe linia de nivel 3. Conexiunea de tip daisy
chain a acestui nivel va asigura ca un singur modul sa utilizeze magistrala.
Desi nu sunt descrisi de specificatiile VME, se pot utiliza si alti algoritmi. De exemplu, un algoritm poate
asigna prioritatea maxima cererii de nivel 3, pentru celelalte cereri atribuirea realizându-se în modul "round robin".
Eliberarea magistralei se poate realiza în doua moduri:
- eliberare la terminare (RWD - Release When Done);
- eliberarea la cerere (ROR - Release On Request).

În primul caz, modulul care a solicitat magistrala semnaleaza arbitrului terminarea utilizarii magistralei imediat
dupa ce modulul sau master a indicat ca nu mai necesita magistrala. În cazul eliberarii la cerere, dupa terminarea
utilizarii magistralei, arbitrul va fi anuntat numai daca un alt modul a efectuat o cere re de magistrala. Pentru aceasta,
modulul trebuie sa monitorizeze toate liniile de cerere. Aceasta metoda permite implementarea procedurii de parcare a
magistralei.

3.8. Magistrala Micro Channel


În anul 1987, firms IBM a lansat pe piata calculatoarele din familia PS/2.
Acestea dispuneau de unele îmbunatatiri, ca: un controler pentru adaptorul video VGA integrat pe placa de
baza, adaptorul de disc flexibil integrat pe placa de baza, noi porturi pentru tastatura si mouse, un adaptor si o interfata
mai performante pentru discul fix.
Caracteristica cea mai importanta a acestor sisteme a fost utilizarea unei noi magistrale de extensie, magistrala
Micro Channel (MCA - Micro Channel Architecture). Modelele 50Z, 55SX si 60 ale calculatoarelor PS/2 utilizeaza o
versiune de 16 biti a acestei magistrale, iar modelele 70, 80 utilizeaza o versiunede 32 de biti pentru adrese si date.
Desi a fost proiectata în primul rând pentru familia de microcalculatoare PS/2, magistrala Micro Channel a fost
proiectata astfel încât sa poata fi utilizata si la calculatoarele mainframe ale IBM. Se descriu in continuare
caracteristicile principale ale acestei magistrale.

Sistem de întreruperi îmbunatatit


Toate semnalele de întrerupere (IRQ) sunt active pe nivel. Aceasta necesita o logica mai simpla pentru
implementare, iar semnalele sunt mai putin vulnerabile la zgomote. Astfel se reduc costurile de implementare, se
îmbunatateste fiabilitatea sistemului si cresc performantele. Sistemul de control al întreruperilor permite partajarea unui
nivel de întrerupere, spre deosebire de magistrala ISA, care permite utilizarea unui nivel de întrerupere de catre un
singur adaptor.

Transferuri cu performante ridicate


Frecventa de lucru a magistralei este de 10 MHz pentru conectorii de 16 biti si de 16 MHz pentru conectorii de
32 de biti. Specificatiile definsc un ciclu implicit de 200 ns pentru transferul a 4 octeti, ceea ce corespunde unei rate de
transfer de 20 MB/s. Specificatiile permit ca datele sa fie transferate în cicluri cu durata mai mica decât cea implicita.
Rata reala de transfer a unui sistem este determinata de rata maxima de transfer a dispozitivului master care
controleaza transferurile, si de restrictiile de transfer ale dispozitivelor conectate la magistrala (din punctul de vedere al
ratei de transfer si a dimensiunii datelor). Viteza de transfer cu perifericele ajunge la 4 MB/s. Discurile pot transfera date
într-un mod numit mod exploziv, cu rate de pâna la 9 MB/s.

Magistrale de adrese si de date de 32 biti


Magistrala de adrese de 32 biti permite un spatiu de adresare de 4 GB de memorie sau dispozitive de I/E
mapate în memorie. Specificatiile permit si implementarea unui subset de 24 de biti al acestei magistrale. Magistrala de
adrese poate fi utilizata si ca o magistrala de I/E de 16 biti.
Magistrala de date de 32 biti se poate utiliza si ca o magistrala de 24 biti, 16 biti, sau 8 biti. Specificatiile
permit implementarea unui subset de 16 biti al magistralei de date atunci când este implementata o magistrala de adrese
de 24 biti. Magistrala de 16 biti se poate utiliza pentru transferul datelor de 16 sau 8 biti.

Selectia programabila a optiunii


Aceasta facilitate, numita Programmable Option Select (POS), elimina necesitatea comutatoarelor de pe placa
de baza sau de pe placile de extensie. Permite identificarea dispozitivelor, elimina conflictele legate de asignarea
resurselor si asigura configurarea dinamica a sistemului, daca exista un sistem de operare adecvat si drivere software
corespunzatoare.
Informatiile de configuratie a dispozitivelor sunt pastrate în opt registre de câte 1 octet. Fiecare dispozitiv
conectat la magistrala poate fi validat sau invalidat printr-un bit din registrele sale POS. Aceste registre mai contin
identificatorul dispozitivului, un indicator al conditiei de exceptie si informatii optionale de stare. Cu aceste informatii,
sistemul de operare si driverele de dispozitiv pot corecta conditia de eroare sau pot dezactiva dispozitivul.
Sistemul de arbitraj
Sistemul de arbitraj al magistralei asigura atât regimul de multitasking, cat si prelucrarea paralela. Magistrala
de date poate fi partajata de catre un total de 16 dispozitive master si slave. Se pot adauga coprocesoare, sisteme grafice
si de comunicatie.
Exista 4 linii de prioritate, care stabilesc 16 nivele de prioritate si se utilizeaza la arbitrarea magistralei.
Fiecarui dispozitiv master i se atribuie un nivel de prioritate între 0 si F, nivelul F fiind cel mai putin prioritar.
Dispozitivul cu nivelul de prioritate F este numit master implicit. Acestuia i se acorda magistrala atunci când nu exista
nici un alt master si la aparitia unei conditii de exceptie.
Un dispozitiv conectat la magistrala Micro Channel care doreste sa utilizeze magistrala trimite numarul de
prioritate care i-a fost acordat pe cele 4 linii de prioritate. Fiecare dispozitiv sau placa de extensie controleaza aceste
semnale sau renunta la magistrala, daca detecteaza existenta unei cereri de prioritate mai mare.

Îmbunatatiri ale magistralei Micro Channel


În anul 1990. IBM a introdus câteva îmbunatatiri magistralei Micro Channel pentru a creste viteza de transfer.
În modul de transfer "streaming" pe 32 sau 64 de biti transferurile de adrese si date intervin la intervale de 200 ns,
urmând ca datele ulterioare sa se transmita la intervale de l00 ns, eliminând necesitatea de a transmite adrese înaintea
fiecarui bloc de date. Cu acest mod, pe 32 de biti se ajunge la o rata de transfer de 40 MB/s, pentru un ceas de 10 MHz.
Prin implementarea unui mod "streaming" pe 64 de hiti, se pot transmite date si pe magistrala de adrese in timpul în
care aceasta nu este ocupata, rata de transfer ajungând la 80 MB/s.
Arhitectura Micro Channel nu s-a impus în masura asteptata din mai multe motive:
- incompatibilitatea cu placile existente AT sau ISA;
- performantele nu au crescut în mod semnificativ fata de sistemele cu magistrala ISA;
- cresterea preturilor, din cauza dimensiunilor mai reduse ale placilor, a tehnologiei de realizare si a
cheltuielilor de licenta.
Totusi arhitectura Micro Channel a introdus mai multe concepte noi care sunt utilizate în prezent pentru
implementarea magistralelor VL Bus si PCI.

3.9. Magistrala EISA

Magistrala EISA (Extended Industry Standard Architecture) a fost elaborata în anul 1988, de un consortiu de
firme condus de Compaq si Intel. Scopul era extinderea magistralei ISA, astfel încât sa permita arhitecturi de 32 de biti
si viteze de transfer superioare, pastrând insa compatibilitatea cu placile de extensie existente si cu perifericele. Se
urmarea insa si concurarea magistralei Micro Channel.
S-a adaugat un nou conector de extensie cu semnale suplimentare, iar complexitatea arhitecturii magistralei a
crescut. Multe caracteristici sunt similare cu cele ale magistralei Micro Channel:
- transferuri pe 32 de biti;
- posibilitatea multiprelucrarii;
- configurarea automata a sistemului si a placilor de extensie, fara utilizarea comutatoarelor.
Întreruperile sunt declansate pe front sau pe nivel, selectia fiind realizata prin program. Magis trala EISA
asigura o independenta fata de arhitectura procesorului utilizat.
Întregul spatiu de adresare de 32 biti este complet accesibil, nu numai de catre procesor, dar si de dispozitivele
DMA si controlerele de magistrala. Chiar controlerele DMA existente de 16 biti pot avea acces la întregul spatiu de
adresare.
Toate transferurile executate pe magistral a EISA sunt sincronizate de un semnal de ceas de 8,33 MHz. Exista
un mod de transfer in avalansa (burst mode), în care un transfer este executat într-un ciclu de ceas al magistralei.
Aceasta echivaleaza cu 8,33 milioane de transferuri pe secunda. Se pot transfera maxim patru octeti într-un ciclu, ceea
ce corespunde unci rate maxime teoretice de transfer de 33 MB/s.
Diferenta principala fata de magistrala Micro Channel este ca magistrala EISA este compatibila cu magistrala
ISA (AT), deci calculatoarele cu o magistrala EISA pot utiliza noile placi de extensie EISA, ca si vechile placi de
extensie AT. Calculatoarele cu o magistrala Micro Channel pot utiliza numai placi de extensie Micro Channel.
Circuitele utilizate pentru arhitecturile EISA au un pret mai ridicat. Datorita acestui dezavantaj sistemele EISA
nu au devenit arhitecturi de larga utilizare, fiind folosite mai ales pentru aplicatii pretentioase ca servere de retea sau
grafica de performanta. Pentru ea au fost produse doar câteva placi.

3.10. Magistrale locale

3.10.1. Cerinte pentru ratele de transfer

În cazul sistemelor actuale este necesar transferul rapid al unor blocuri mari de date. Aceasta necesitate apare
mai ales la urmatoarele subsisteme:
- Adaptoare grafice
Interfetele grafice ale sistemelor de operare Windows, OS/2 si Unix X-Windows necesita actualizarea rapida a
imaginii grafice pentru deplasarea, redimensionarea si actualizarea ferestrelor multiple. Acelasi lucru este
valabil pentru imaginile video în miscare. Procesorul trebuie sa actualizeze si sa transfere blocuri mari de date
în cadrul memoriei video.
- Adaptoare pentru interfata SCSI
Interfata SCSI este utilizata mai ales pentru memorii de masa, ca unitati de disc fix, unitati CD-ROM si
unitati de banda încasetata. Cresterea vitezei de transfer cu aceste dispozitive influenteaza semnificativ
perforrnantele globale ale sistemului.
- Adaptoare de retea FDDI (Fiber Distributed Digital Interface)
Daca adaptorul de retea este utilizat pentru transferul unor fisiere la sau de la un server, rata cu care pot fi
transferate datele între memorie si adaptor influenteaza performantele sistemului.

Tabelul 3.3 prezinta ratele de transfer necesare pentru unele subsisteme de I/E.

Majoritatea subsistemelor sunt conectate la magistrala de extensie a calculatorului PC. Aceasta poate fi o
magistrala ISA, EISA sau Micro Channel. Aceste magistrale nu asigura o rata de transfer suficienta pentru imagini
grafice de inalta rezolutie si un numar mare de culori, si nici pentru imagini video cu un numar de 30 cadre/s.
Un calcul simplu arata ca un ecran 1024*768 utilizat pentru imagini color reale, în miscare (3 octet/pixel)
contine 2,25 Mo de date. Pentru o miscare lenta sunt necesare cel putin 30 ecrane/sec, deci o viteza de transfer a datelor
de 67,5 Mo/sec. De fapt, situatia este mult mai critica deoarece pentru a afisa o imagime de la un hard disk, CD-ROM
sau DVD datele trebuie sa treaca de la unitatea de disc, pe magistrala, catre memorie. Pentru a fi afisate, datele trebuie
sa treaca din nou pe magistrala catre adaptorul grafic. Rezulta ca este nevoie de o banda de trecere a magistralei dubla,
de 135 Mo/sec.
Magistrala ISA lucreaza la o viteza maxima de transfer de 8,33 MHz si poate transfera 2 octeti pe ciclu, deci o
viteza medie de transfer de 16,7 Mo/sec.

Tabelul 3.3.

În multe cazuri, anumite subsisteme sunt integrate pe placa sistem. Aceasta nu inseamna ca ele nu utilizeaza
magistrala de extensie. Cele mai multe subsisteme integrate sunt conectate la o extensie a magistralei de extensie,
numita magistrala X sau magistrala utilitara. Figura 3.19 ilustreaza relatia dintre magistrala X, magistrala de extensie
si procesorul sistemului.
La o operatie de citire a memoriei, procesorul poate comunica cu memoria sa cache interna (de nivel 1) la
viteza maxima, daca informatia ceruta se afta în memoria cache. Daca aceasta memorie cache este de tip write-back,
operatiile de scriere în locatiile aftate în memoria cache se pot executa de asemenea la viteza maxima. Daca la o citire
cuvântul nu se afta în memoria cache, sau continutul memoriei cache trebuie scris în memoria principala, procesorul
trebuie sa utilizeze magistrala sa locala pentru a comunica cu memoria cache extema (de nivel 2). Daca cuvântul nu se
afla nici în aceasta memorie cache, se executa un acces la memoria DRAM.
La executia unei operatii de I/E, se va executa un ciclu de citire sau scriere utilizând magistrala de extensie.
Viteza de executie a acestui ciclu este data de viteza maxima a magistralei de extensie si de timpul de acces al
dispozitivului adresat.

3.10.2. Conceptul magistralei locale


Pentru a creste rata de transfer la operatiile de actualizare a memoriei video, adaptorul video se poate conecta
la magistrala locala a procesorului în locul magistralei de extensie. Adaptorul video este reproiectat pentru conectarea
directa la magistrala locala si minimizarea sau eliminarea starilor de asteptare inserate în ciclurile de magistrala atunci
când procesorul face acces la memoria video si la registrele de I/E ale adaptorului. În plus, adaptorul video contine si un
procesor local care poate executa comenzi grafice de nivel malt.
Exista trei metode de baza pentru conectarea unui dispozitiv la magistrala locala a procesorului

Conectarea directa

Dispozitivul este conectat direct la magistrala locala a procesorului. Acesta poate fi un procesor de orice tip, de
exemplu 80486 sau Pentium. Aceasta metoda impune unele restrictii importante de proiectare:
- Deoarece dispozitivul este conectat direct la magistrala locala a procesorului, va trebui reproiectat pentru a
fi utilizat cu procesoarele din generatiile viitoare (daca structura magistralei sau protocolul vor fi
modificate).
- Datoriti încarcarii suplimentare a magistralei locale, nu se poate conecta mai mult de un dispozitiv.
- Deoarece frecventa magistralei locale este ridicata, proiectarea interfetei la magistrala a dispozitivului este
dificila.
- În cazul modernzarii ulterioare a sistemului prin instalarea unui procesor de tip "overdrive", sistemul poate
functiona incorect datorita încarcarii suplimentare a magistralei locale.
- Procesorul nu poate efectua transferuri cu un dispozitiv în timp ce dispozitivul de pe magistrala locala
executa un transfer cu un alt dispozitiv.
Conectarea printr-un buffer

Bufferul prin care este conectat dispozitivul la magistrala locala amplifica semnalele magistralei, fiind posibila
conectarea mai multor dispozitive. Deoarece magistrala locala bufferata este izolata din punct de vedere electric fata de
magistrala locala a procesorului, reprezinta o singura incarcare pentru aceasta. La magistrala buferata se pot conecta de
obicei trei dispozitive, acesta fiind singurul avantaj al acestei metode.
Un dezavantaj al conectarii printr-un buffer este ca orice tranzactie initiata de procesor apare pe magistrala
locala, ca si pe cea bufferata. De asemenea, orice tranzactie initiata de un dispozitiv master de pe magistrala bufferata
apare si pe magistrala locala a procesorului. De aceea, procesorul si dispozitivul master nu pot utiliza magistrala
simultan.

Conectarea de tip statie de lucru

În cazul acestei solutii, utilizata la numeroase statii de lucru, controlerul memoriei cache de nivel 2 este
combinat cu un circuit de interfata numit punte (bridge), care asigura interfata dintre procesor, memoria principala si o
magistrala de I/E de viteza ridicata (de exemplu, PCI). Dispozitivele conectate la magistrala de I/E pot fi si adaptoare
inteligente cu rol de master. Prin utilizarea puntii de legatura, memoria principala poate fi accesata fie de procesor (prin
memoria sa cache de nivel 2), fie de un dispozitiv master de pe magistrala de I/E sau magistrala de extensie.
Procesorul poate continua incarcarea datelor din memoria cache de nivel 1 sau 2, în timp ce controlerul
memoriei cache asigura accesul la memoria principala a unui dispozitiv master de pe magistrala de I/E. Dispozitivele
master pot de asemenea comunica direct cu dispozitive slave de pe magistrala de I/E în timp ce procesorul acceseaza
una din memoriile cache sau controlerul memoriei cache de nivel 2 acceseaza memoria principala.
Un alt avantaj important al acestei metode este ca interfata dispozitivelor conectate la magistraqla de I/E va fi
independenta de magis trala procesorului. Modernizarea procesorului poate fi efectuata simplu, fara a afecta magistrala
de I/E si dispozitivele conectate la aceasta. Va trebui reproiectata numai puntea de legatura.

3.10.3. Magistrala VL Bus


Asociatia de standardizare pentru electronica video, VESA (Video Electronics Standards Association), o
asociatie de firme care sunt implicate în proiectarea si productia adaptoarelor gratice, a format un comitet pentru
dezvoltarea si standardizarea unci magistrale locale si a conectorilor magistralei. Aceasta magistrala denumitA VL Bus
(VESA Local Bus), a aparot în anul 1992 si în acelasi an a fast standardizata prima versiune (1.0) a acesteia.
Aceasta versiune defineste doua metode de interfatare la magistrala locaIa a procesorului: metoda directa si cea
bufferata care au fast descrise anterior. Magistrala care utilizeaza prima metoda este numita de tip A, iar cea care
utilizeaza metoda a doua este numita de tip B. În ambele cazuri. magistrala se bazeaza pe magistrala locala a
procesorului 80486. Diferenta principala dintre cele doua tipuri este ca magistrala de tip B permite utilizarea a pâna la
trei conectori de extensie, în functie de încarcarea capacitiva, în timp ce magistrala de tip A nu permite conectori de
extensie, fiind posibila conectarea unui singur dispozitiv. În cazul tipului B, apar întârzieri datorita bufferului, care
determina de obicei inserarea unor stari de aseptare în timpul transferurilor.
Versiunea 2.0 a magistralei prevede îmbunatatiri prin extinderea liniilor de date la 64 si posibilitatea conectarii
microprocesoarelor Pentium, pastrând compatibilitatea cu versiunea 1.0.
Magistrala VL Bus este scalabila si extensibila, fiind compatibila cu magistralele existente ISA, EISA, Micro
Channel. Specificatiile acesteia sunt disponibile pentru toate firmele, nefiind protejate prin brevet. Frecventa maxima a
magistralei este de 50 MHz. În cazul unei asemenea frecvente, devine importanta valoarea capacitatii electrice a liniilor
magistralei. La cresterea numarului de echipamente conectate la magistrala, creste si valoarea capacitatii electrice, si
deci încarcarea magistralei. Valorile mari ale capacitatii tind sa micsoreze viteza semnalelor si performantele
magistralei.
Tabelul 3.4 prezinta ratele teoretice maxime de transfer pentru magistrala VL Bus de 32 si 64 de biti, în functie
de diferite frecvente de ceas ale acestora.
Conectorii de extensie pentru magistrala VL Bus sunt adaugati pe aceesi linie cu conectorii magistralei ISA,
ceea ce permite combinarea adaptoarelor ISA si a celor VL Bus pe aceeasi placa. Sistemele cu magistrala VL Bus
cele mai utilizate sunt cele care permit atât extensii VL Bus, cât si ISA.
Standardul VL Bus specifica faptul ca dispozitivele conectate la magistrala trebuie sa permita configurarea
automata a sistemului. Nu se defineste însa modul în care trebuie realizata configurarea automata, deci registrele de
configurare pentru fiecare dispozitiv. Specificacatiile indica de asemenea ca dispozitivele conectate la magistrala VL
Bus trebuie sa fie transparente la driverele de dispozitiv, deci trebuie sa raspunda la acelasi set de comenzi si sa
fumizeze aceeasi stare ca si cele conectate la o alta magistrala.
Pe lânga adaptoarele video, exista si alte echipamente care sunt conectate la magistrala locala, cum sunt:
adaptoare de disc IDE, adaptoare SCSI sau adaptoare de retea.
Avantajele magistralei VL Bus constau în simplitatea arhitecturii si costul redus. Dezavantajul principal este
ca la aparitia unor procesoare mai performante, logica de interfata trebuie reproiectata pentru acestea. De asemenea,
faptul ca nu se defineste formatul registrelor de configuratie si adresele acestora nu permite realizarea unor interfete
software unitare pentru dispozitivele conectate la magistrala.

S-ar putea să vă placă și