Documente Academic
Documente Profesional
Documente Cultură
❑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
2
2. Reprezentarea interna a numerelor in calculator
❑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
❑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
5
2. Reprezentarea interna a numerelor in calculator
➢ Standardul IEEE 754 pentru reprezentarea în virgulă mobilă
6
2. Reprezentarea interna a numerelor in calculator
➢ Standardul IEEE 754 pentru reprezentarea în virgulă mobilă
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.
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:
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
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
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;
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
22
4. Arhitectura clasica Von Neumann
23
4. Arhitectura clasica Von Neumann
Citire Scriere
24
4. Arhitectura clasica Von Neumann
25
4. Arhitectura clasica Von Neumann
26
4. Arhitectura clasica Von Neumann
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:
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
31
4. Arhitectura clasica Von Neumann
32
4. Arhitectura clasica Von Neumann
33
5. Structuri pentru operatii
34
5.. Structuri pentru operatii
35
5.. Structuri pentru operatii
36
5.. Structuri pentru operatii
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
39
5.. Structuri pentru operatii
40
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative
41
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative
42
6. Arhitecturi paralele si multiprocesor.
Abordari asupra procesarii paralele alternative
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
46
7. Structura procesorului si a UCP
47
7. Structura procesorului si a UCP
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
50
7. Structura procesorului si a UCP
51
7. Structura procesorului si a UCP
52
Arhitectura Calculatoarelor
Cursul 8
Organizarea si funcționarea
procesorului.
Arhitecturile CISC si RISC
8. Arhitecturile RISC si CISC
54
8. Arhitecturile RISC si CISC
55
8. Arhitecturile RISC si CISC
56
8. Arhitecturile RISC si CISC
57
8. Arhitecturile RISC si CISC
58
9. Memoria sistemelor de calcul
60
9. Memoria sistemelor de calcul
61
9. Memoria sistemelor de calcul
62
3.11. Magistrala PCI
[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.
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)
GNT#
REQ#
REQ#
Arbitru
PCI
Dispozitiv Dispozitiv Dispozitiv Dispozitiv
PCI PCI PCI PCI
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.
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
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.
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.
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.
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.
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.
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.
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.
Î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.
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.
Î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.
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.
Î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.