Documente Academic
Documente Profesional
Documente Cultură
Calculatoarele convenionale digitale au o form comun care i este atribuit lui von Neumann, dar
istoria real este c o ntreag echip a fost responsabil pentru elaborarea acestui model. De formaie
matematician, acesta a neles c un program poate fi reprezentat n form digital n memoria
calculatorului, mpreun cu datele asociate. Aritmetica binar paralel putea deci nlocui cu succes
aritmetica zecimal stngace folosit de ENIAC, cu fiecare rang reprezentat de zece tuburi electronice (1
activ i 9 inactive).
Modelul von Neumann const din cinci componente ca n figura 1.1.
Memory
Unit
Imput
Unit
Automat
logic
(ALU)
Output
Unit
Control
Unit
Accumulator (AC) i multiplier quotient (MQ) folosit pentru a reine temporar operanzii i
rezultatul din ALU. De exemplu, rezultatul multiplicrii a dou numere de 40 de bii este un
numr de 80 de bii; cei mai semnificativi 40 de bii sunt reinui n AC, iar cei mai puin
semnificativi n MQ.
Programul stocat sau memorat este cel mai important aspect al mainii von Neumann. Un program
este stocat n memoria calculatorului mpreun cu datele. Dei n prezent cunoatem acest fapt ca un dat,
anterior dezvoltrii calculatoarelor cu program stocat, programele erau memorate pe cartele, benzi
perforate sau benzi magnetice. n calculatoarele cu program memorat, programul poate fi manipulat ca i
datele. Acest fapt a dat natere compilatoarelor i sistemelor de operare i a fcut posibil marea
versabilitate pe care o au calculatoarele actuale.
Nivelul n
Maina virtual Mn
cu limbaj main Ln
Nivelul 3
Maina virtual M3
cu limbaj main L3
Nivelul 2
Maina virtual M2
cu limbaj main L2
Nivelul 1
Maina virtual M1
cu limbaj main L1
Calculatorul real M0
cu limbaj L0
Nivelul 0
Programele n Ln s fie
interpretoare ce ruleaz pe M d
fie traduse n limbajul Lm-1
Figura 1.3.
Un calculator cu n niveluri poate fi vzut ca n maini virtuale diferite, fiecare cu un limbaj main
diferit. Numai programele scrise n L0 pot fi direct executate de circuitele electronice, fr a necesita o
traducere sau interpretare.
Un programator ce a scris un program pentru maina virtual de nivel n nu trebuie s se preocupe de
interpretrile i translatrile de dedesubt. Cei mai muli utilizatori ce folosesc o main de nivel n sunt
interesai de ultimul nivel, deci de limbajul Ln care seamn cel mai puin cu limbajul main de pe
nivelul de baz. Cei care sunt interesai s neleag cum funcioneaz de fapt un calculator trebuie s
studieze toate nivelurile. Cei interesai de proiectarea unui calculator sau a unui nou nivel trebuie de
asemenea, s fie familiarizai i cu alte niveluri dect cele de sus.
Nive lul 5
Nive lul 4
Nive lul 3
Nivelul 2 (ISA)
Nive lul 1
Interpretarea (microprogra m)
sau executare direct
Nive lul
microca lculatoarelor
Hardware
Nive lul 0
Figura 1.4.
La nivelul cel mai de jos avem nivelul logic digital, format din pori. Dei sunt alctuite din
tranzistoare, porile pot fi modelate cu acuratee ca circuite digitale. Fiecare poart are una sau mai multe
intrri digitale (0 sau 1 logic) i calculeaz, n funcie de acestea o valoare de ieire pe baza unei funcii
simple cum ar fi I, SAU, NU. Cteva pori combinate pot forma o memorie de un bit, ce poate stoca 0
sau 1.
Memoriile de un bit pot fi combinate n grupuri de 16, 32 sau 64 (de ex.) pentru a forma registre.
Fiecare registru conine un numr binar pn la o anumit valoare.
Urmeaz nivelul microarhitecturii. La acest nivel avem n mod obinuit o colecie de 8 pn la 32 de
registre care formeaz o memorie local i un circuit UAL ce poate executa operaii aritmetice simple.
Registrele sunt conectate la UAL pentru a forma o cale de date (data path) prin care se transmit datele.
Operaiile principale ale cii de date constau n selecia a 1 sau 2 regitri asupra crora acioneaz UAL,
de exemplu le adun i rezultatul este stocat apoi n unul din regitri.
Pe unele maini operaiile cii de date sunt controlate de un program numit microprogram. Pe alte
maini calea de date este controlat direct prin hardware.
Pe mainile cu control software al cii de date, microprogramul este un interpretor al instruciunilor
de pe nivelul 2. Acesta extrage, examineaz i execut instruciunile secvenial folosind pentru aceasta
calea de date. De exemplu pentru ADD se va extrage intruciunea, se vor localiza i aduce n registru
operanzii, UAL calculeaz suma i n final rezultatul va fi depus ntr-un registru. Pe o main cu control
hardware al cii de date se vor executa paii similari dar fr ajutorul unui program memorat explicit
pentru controlul interpretrii instruciunilor de pe nivelul 2.
Nivelul 2 este nivelul arhitecturii setului de instruciuni (sau nivelul ISA Instruction Set
Arhitecture). Fiecare productor de calculatoare public un manual ce cuprinde i acest set de instruciuni.
Aceste manuale trateaz nivelul ISA, dar i nivelele de dedesupt.
Urmtorul nivel este de obicei un nivel hibrid. Cele mai multe din instruciuni sunt de obicei, de
asemenea, intruciuni de nivelul ISA. n plus exist un set de instruciuni noi, o organizare diferit a
memoriei, posibilitatea de executare concurent a dou sau mai multe programe i diverse alte
caracteristici. Exist mai multe posibiliti de proiectare a nivelului 3 dect n cazul nivelurilor 1 i 2.
Noile faciliti adugate pe nivelul 3 sunt realizate de un interpretor care se execut de pe nivelul 2,
interpretor numit sistem de operare din motive istorice. Instruciunile de pe nivelul 3 ce sunt identice cu
cele de pe nivelul 2 sunt executate direct de microprogram (sau controlate hardware) i nu de sistemul de
operare. Astfel spus, unele instruciuni de pe nivelul 3 sunt interpretate de sistemul de operare, iar alte
instruciuni de pe nivelul 3 sunt interpretate direct de microprogram. Aceasta este semnificaia termenului
hibrid folosit anterior. Vom numi acest nivel , nivelul main al sistemului de operare.
Primele trei niveluri ne sunt proiectate a fi utilizate de programatorul obinuit. Ele sunt concepute, n
principal, pentru execuia interpretoarelor i translatoarelor necesare susinerii nivelurilor superioare.
Aceste interpretoare i translatoare sunt scrise de programatorii de sistem, puini la numr, care sunt
specializai n proiectarea i implementarea de noi maini virtuale. Nivelul 4 i cele superioare sunt
destinate programatorilor de aplicaii.
O alt modificare ce apare pe nivelul 4 este metoda prin care sunt susinute nivelurile superioare.
Nivelurile 2 i 3 sunt ntodeauna interpretate . Nivelurile 4 i 5 i altele superioare sunt, de obicei,
susinute de translatoare, dei nu ntotdeauna.
O alt diferen ntre nivelele 1,2,3 i 4,5 este natura limbajului oferit. Limbajele main ale
nivelurilor 1,2,3 sunt numerice. ncepnd cu nivelul 4 limbajele conin cuvinte sau abrevieri pe nelesul
oamenilor.
Nivelul 4, nivelul limbajului de ansamblare, este de fapt o form simbolic pentru unul din limbajele
inferioare. Acest limbaj ofer utilizatorilor o metod de a scrie programe pentru nivelurile 1, 2, 3 ntr-o
form care nu este chiar aa de dificil ca cea a limbajelor virtuale. Programul care efectueaz traducerea
de pe acest nivel se numete asamblor (assembler).
Nivelul 5 conine de obicei limbaje proiectate pentru a fi utilizate pentru programatori de aplicaii.
Aceste limbaje sunt frecvent numite limbaje de nivel nalt. Exist sute de astfel de limbaje. Dintre cele
mai cunoscute se numr C, C++, BASIC, JAVA, LISP, PROLOG, PASCAL. Programele scrise n aceste
limbaje sunt traduse pentru nivelurile 3, 4 de translatoare cunoscute sub numele de compilatoare, dei
acestea pot fi uneori interpretate. De exemplu., programele scrise n Java sunt deseori interpretate. n
unele cazuri nivelul 5 reprezint un interpretor pentru un domeniu aplicativ, particular, de exemplu calcul
simbolic.
n esen calculatoarele sunt proiectate ca o serie de niveluri, fiecare nivel fiind construit pe baza
precedecesorului su. Fiecare nivel reprezint o abstractizare distinct cu obiecte i operaii diferite.
Mulimea de tipuri de date, operaii i caracteristici ale fiecrui nivel se numete arhitectur. Arhitectura
se refer la aspecte care sunt vizibile pentru utilizatorul unui nivel. Diferite caracteristici vzute de
programator, de exemplu memoria existent, sunt pri ale arhitecturii. Aspectele complementare, de
exemplu tehnologia de realizare a cipurilor de memorie nu fac parte din arhitectur (ci din organizare). n
practica comun arhitectura calculatoarelor i organizarea calculatoarelor nseamn acelai lucru
UAL
Memoria
principala
magistrala
sistemului
Unitate
Control
...
Registri
Disp
I/0
Memorie
extern
Figura 1.1.
Componentele sunt conectate printr-o magistral; aceasta este format dintr-o mulime de fire
paralele pe care sunt transmise adrese, date i semnale de control. Magistralele se pot afla n exteriorul
UCP conectnd o memorie i dispozitivele I/0, dar i n interiorul UCP.
UCP este alctuit din mai multe pri distincte: unitatea de control rspunde de extragerea
instruciunilor din memoria principal i executarea lor, iar UAL execut operaiile necesare ndeplinirii
instruciunilor.
UCP mai conine i o memorie redus ca dimensiune, foarte rapid, plasat pentru depozitarea
rezultatelor temporare i a anumitor informaii de control. Aceasta e format dintr-un numr de regitri.
De obicei toate registrele au aceai dimensiune. Registrele pot fi citite i scrise cu mare vitez deoarece se
afl n interiorul UCP. Cel mai important registru este PC (program counter) care indic instruciunea
urmtoare ce va fi extras pentru execuie. Important este i registrul IP registru de instruciuni
(instruction register), n care se pstreaz instruciunea n curs de execuie. Mai exist i alte registre, de
uz general i altele pentru scopuri bine determinate.
A +B
A
B
UAL
A +B
concept (Reduced Instruction Set Computer). Puin mai trziu, n 1981, la Stanford, John Henessy a
proiectat i fabricat un cip ntructva diferit, pe care l-a numit MIPS. Aceste cipuri au evoluat n produse
comerciale, procesoarele SPARC i respectiv MIPS. Totui 801 era un model experimental conceput
pentru a ilustra unele concepte. Succesul proiectului 801 a determinat IBM s dezvolte un produs
comercial RISC workstation, PC RT. Introdus n 1986, acesta nu a fost un succes comercial. n 1990 IBM
a produs un al treilea sistem, innd cont de leciile oferite de 801 i PC RT. IBM RISC System/6000 era o
main RISC superscalar i la puin timp dup apariie a nceput s fie referit ca arhitectura POWER.
Apoi IBM a fcut o alian cu Motorola i Apple, care utiliza microprocesoarele Motorola n
calculatoarele Macintosh. Rezultatul a fost o serie de maini ce implementeaz arhitectura PowerPC, o
arhitectur RISC superscalar. Procesoarele PowerPC sunt utilizate n mainile Apple Macintosh i n
numeroase aplicaii embedded.
Procesoarele RISC erau la apariia lor mult diferite fa de cele existente n acel moment. Deoarece
nu trebuiau s pstreze vreo compatibilitate cu produsele anterioare, proiectanii au ales seturi de
instruciuni care s maximizeze performana sistemului. Dac la nceput accentul cdea pe instruciuni
care s se execute rapid, n curnd s-a constatat c proiectarea unor instruciuni care s poat fi lansate
(issued - pornite) rapid era mai relevant. Ct timp dura n total o instruciune conta mai puin dect
numrul de instruciuni ce puteau fi lansate ntr-o secund. Filozofia general RISC este de a transfera
complexitatea ctre software dac astfel rezult o mbuntire global a performanei.
Procesoarele la care ne referim erau caracterizate de un set mic de instruciuni (aproape 50) fa de
200300 la DEC VAX sau marile calculatoare IBM. De aici acronimul RISC, n contrast cu CISC ce
nseamn Complex Instuction Set Computer. Suporterii RISC susineau c modul cel mai bun de a
proiecta un calculator este s ai un set de instruciuni simple care s se execute ntr-un singur ciclu al cii
de date (Fig. 1.2). Argumentul era viteza de execuie: chiar dac maina RISC va face n 4 -5 instruciuni
ceea ce va face o main CISC ntr-o instruciune, dac instruciunile RISC sunt de 10 ori mai rapide,
arhitectura RISC va fi n ctig. n acel moment i viteza memoriilor principale crescuse, ajungnd din
urm viteza memoriilor de control n care erau stocate interpretoarele, fapt ce a favorizat i el puternic
mainile RISC. Obiectivul principal era acela de a obine viteza maxim de operare prin utilizarea unor
procesoare relativ simple. Analiznd retrospectiv problema, urmtorii factori au condus la apariia
conceptului RISC:
- efectul incluziunii instruciunilor complexe,
- utilizarea cea mai bun a tranzistoarelor n implementri VLSI,
- excesul de microcod,
- utilizarea compilatoarelor.
Referitor la prima chestiune, era cunoscut faptul c unele instruciuni sunt mai frecvent folosite dect
altele. Soluia CISC era de a scurta ct mai mult durata instruciunilor folosite frecvent. Soluia RISC este
de a nu avea deloc instruciuni folosite mai puin frecvent.
Cu privire la cea de a doua remarc, Katevenis (1985) a artat n teza sa de doctorat c suportul
hardware pentru instruciuni complexe nu este cea mai bun cale de utilizare a tranzistoarelor n circuite
VLSI.Exist un optim ntre mrime/complexitate i vitez. Creterea complexitii VLSI duce la o
scdere a vitezei componentelor datorit capacitilor ce apar i a ntrzierii semnalelor. Odat cu
creterea densitii circuitelor trebuie luat o decizie asupra celui mai bun mod de a utiliza aria circutului.
Cu privire la microcod, acesta era scris n memorii de control de vitez mai mare dect a memoriei
principale. Odat cu creterea vitezei memoriei principale, dac aceasta ajunge s fie de vitez apropiat
cu cea a memoriei de control, apare un considerabil overhead la unitatea de control microprogramat, n
special la mainile cu instruciuni simple.
n ce privete compilatoarele, exista tendina de a proiecta compilatoare optimizate cu mai puine
instruciuni. La calculatoarele CISC, cu instruciuni complexe, era dificil pentru compilator s decid
automat cnd o instruciune rar folosit, complex, trebuie utilizat sau nu. O seciune cheie a dezvoltrii
procesoarelor RISC este asigurarea unui compilator optimizat care s preia o parte din complexitatea
hardware i s utilizeze n cel mai bun mod regitrii.
S-ar putea crede c, date fiind performanele oferite de arhitectura RISC, mainile RISC (cum ar fi
DEC Alpha) vor detrona mainile CISC (cum ar fi Intel Pentium) de pe pia. Timpul a artat c acest fapt
nu s-a produs din mai multe motive:
- n primul rnd din cauza compatibilitii cu modele anterioare i a banilor investii n software
pentru gama Intel.
- n al doilea rnd, Intel a reuit s incorporeze aceleai idei ntr-o arhitectur CISC. ncepnd cu
486, UCP-urile Intel conin un nucleu RISC ce execut instruciunile mai simple (i n general mai des
ntlnite) ntr-un singur ciclu al cii de date, interpretnd instruciunile mai complicate n modul
caracteristic CISC. Rezultatul net este c instruciunile uzuale sunt rapide i instruciunile exotice mai
lente. Chiar dac aceast abordare nu e la fel de rapid ca cea RISC pur, ea permite obinerea unei
performane globale competitive.
S2
S1
S2
S3
S4
S5
S3
S4
S5
3
4
6
7
8
9
(b)
Fig. 1.3. O band de asamblare de 5 segmente (a)
Starea fiecrui segment n funcie de timp (b)
(a)
timp
Segmentul 1 extrage instruciunea din memorie i o plaseaz ntr-un registru tampon. Segmentul 2 o
decodific, determinndu-i tipul i operanzii. Segmentul 3 localizeaz i extrage operanzii, fie din
registre, fie din memorie. Segmentul 4 execut instruciunea, de obicei rulnd operanzii prin calea de
date, iar segmentul 5 scrie rezultatul n registre.
n figura 1.3 b vedem cum opereaz o band de asamblare n funcie de timp. n ciclul 1, reg S1
lucreaz cu instruciunea 1 i o extrage din memorie. n ciclul 2, S2 decodific instruciunea 1. Tot n
Arhitecturi superscalare
Date fiind avantajele benzii de asamblare, ar fi de dorit mai multe din acestea. n figura 1.4 este
prezentat o posibil proiectare a unui UCP n banda de asamblare dual. Pentru a putea lucra n paralel,
cele 2 instruciuni nu trebuie s-i dispute resursele (de exemplu registrele) i nici una nu trebuie s
depind de rezultatul celeilalte. Fie compilatorul trebuie s garanteze c ipoteza anterioar e respectat,
fie conflictele sunt detectate i eliminate pe parcursul execuiei, cu ajutorul unui hardware suplimentar.
T2
T3
TAD
ADR
Adresa
TDS
DATA
TML
TMH
MREQ
TM
TRH
RD
TRL
THD
UCP depune adresa cuvntului pe liniile de adrese n primul ciclu Tl. Dup
stabilizarea adresei la noua valoare, se activeaz semnalele MREQ (care indic accesul la
memorie i nu la un dispozitiv de I/E) i RD. Memoria decodific adresa n ciclul T2 i
depune data pe magistral n ciclul T3. Pe frontul descresctor al ceasului din ciclul T3,
UCP citete liniile de date, memornd valoarea ntr-un registru intern. Dup citire, UCP
dezactiveaz semnalele MREQ i RD. De la frontul cresctor al ceasului poate ncepe un
nou ciclu.
Pentru o funcionare corect, exist specificaii de temporizare care trebuie respectate.
Unele ntrzieri sunt limitate la o valoare minim, iar altele la o valoare maxim.
TAD este intervalul de timp de la nceputul ciclului T1 pn la depunerea adresei.
Trebuie s fie mai mic dect o valoare maxim:
TAD TADmax
Aceasta garanteaz c n timpul fiecrui ciclu de citire, UCP va depune adresa ntr-un timp mai mic
dect cel maxim admisibil.
TDS (Data Setup) este intervalul de la depunerea datei pn la frontul descresctor al ceasului din
ciclul T3. Trebuie ca acest timp s satisfac condiia:
TDS TDSmin
pentru ca data s fie stabilizat naintea citirii acesteia de ctre UCP.
Datorit restriciilor asupra intervalelor TAD i TDS, n cazul cel mai defavorabil, memoria trebuie s
depun data ntr-un timp de cel mult:
2T + T/2 - TAD TDS
de la depunerea adresei. Dac memoria nu poate rspunde n acest interval de timp, trebuie s activeze
semnalul WAIT nainte de mijlocul ciclului T2, cnd se testeaz semnalul WAIT. Se vor insera stri de
ateptare (cicluri suplimentare de magistral) pn cnd memoria dezactiveaz semnalul WAIT.
TM este intervalul de la depunerea adresei pn la activarea semnalului MREQ. Rezult c este
necesar ca
TM>TMmin
pentru ca adresa s fie stabil pn la activarea semnalului MREQ. Acest timp este important dac
MREQ se utilizeaz la selecia circuitului de memorie, deoarece anumite memorii necesit un timp de
stabilizare a adresei pn la selecie.
TML, TRL sunt intervalele de la frontul descresctor al ceasului din ciclul T1 pn la activarea
semnalului MREQ, respectiv RD. Trebuie ca acestea s satisfac condiiile
TML TMLmax
TRL TRLmin
pentru ca aceste semnale s fie activate ntr-un anumit timp de la mijlocul ciclului T1.
Memoria va avea un timp de cel mult
2T max (TML , TRL) TDS
de la activarea MREQ negat i RD negat pn la depunerea datei.
Timpii TMH i TRH indic timpul dup care trebuie dezactivate semnalele MREQ negat i RD negat
dup citirea datei.
2.1.2.
Magistrale asincrone
Dup cum am menionat, la magistralele sincrone cele mai multe evenimente ocup un singur ciclu
de ceas. Pot apare ns situaii n care evenimentele dureaz mai mult de un ciclu al ceasului magistralei.
Mai mult, la magistralele sincrone, dac un transfer se termin naintea unui numr ntreg de cicluri,
trebuie s se atepte pn la sfritul ciclului, ceea ce duce la intrzieri inutile. Dac la o magistral sunt
conectate dispozitive cu viteze diferite (unele lente, altele rapide), viteza trebuie aleas dup dispozitivul
cel mai lent, cele rapide fiind ntrziate. De asemenea, dup alegerea unui ciclu de magistral, este dificil
s se utilizeze avantajele mbuntirilor tehnologice viitoare. De exemplu, dac dup un timp vor fi
disponibile memorii mai rapide, dei ele pot fi utilizate, vor funciona la aceeai vitez ca i cele vechi,
deoarece protocolul magistralei cere ca memoria s depun datele imediat naintea frontului descresctor
al ceasului din ciclul T1.
O magistral asincron elimin aceste dezavantaje. n locul semnalului de ceas se utilizeaz un
protocol logic ntre emitor i receptor (hand shake). Aa cum am menionat deja apariia unui eveniment
pe bus este determinat de finalizarea unui eveniment anterior. Un exemplu simplu este prezentat n
figura 2.8. Un master pe magistral pune tot ce i trebuie pe magistral (date, adrese, control) i apoi
activeaz semnalul MSYN (Master Synchronization).
n cazul unei operaii de citire, dup depunerea adresei, activarea semnalelor MREQ negat i RD
negat, face ca dispozitivul master s activeze semnalul MSYN. Dup detectarea acestui semnal,
dispozitivul slave depune data, i apoi activeaz semnalul SSYN (Slave Synchronization).
Dispozitivul master detecteaz activarea semnalului SSYN, ceea ce indic faptul c data este
disponibil, memoreaz data, iar apoi dezactiveaz liniile de adrese, mpreun cu semnalele MREQ
negat, RD negat i MSYN negat.
Dispozitivul slave detecteaz dezactivarea semnalului MSYN negat, indicnd terminarea ciclului,
dezactiveaz semnalul SSYN negat i invalideaz datele, ajungndu-se n starea iniial, cu toate
semnalele dezactivate, aeptndu-se un nou ciclu.
RD
DATA
ADR
MREQ
MSYN
DATA
SSYN
Adresa
2.3.1.
Arbitrarea centralizat
Un prim caz este acela n care exist o singur linie de cerere a magistralei. Linia de cerere de
ntrerupere este unic, de tip SAU cablat, i poate fi activat de unul sau mai multe dispozitive n orice
moment. Arbitrul nu poate distinge dac exist mai multe cereri simultane sau o singur cerere, ci numai
dac exist sau nu cereri la un moment dat. Linia de acordare a magistralei este i ea unic. Un exemplu
simplu de arbitrare centralizat este prezentat n figura 2.9, magistrala nefiind figurat.
Dispozitive de I/E
D3
D2
Arbitru
Cerere magistral
Acordare magistral
D1
D4
aceast linie, i, n cazul n care a efectuat o cerere, preia controlul asupra magistralei, fr s propage
semnalul de activare pe linie. Dac nu a efectuat o cerere, transmite semnalul urmtorului dispozitiv, care
procedeaz la fel, pn cnd un dispozitiv preia controlul asupra magistralei.
Prioritatea dispozitivelor este dat deci de distana la care se afl fa de arbitru, iar schema se
numete de tip daisy chain. Dispozitivul cel mai apropiat de arbitru are prioritatea maxim. Aceasta
nsemn c prioritatea diferitelor module poate fi asignat pur i simplu prin poziia pe care o au unele
fa de celelalte n sertar. Pentru a modifica aceste prioriti implicite, magistralele pot avea mai multe
nivele de prioritate. Pentru fiecare prioritate exist o linie de cerere i una de acordare a magistralei. Un
exemplu de astfel de magistral cu dou nivele de prioritate este prezentat n figura 2.10. Acest exemplu a
fost ales pentru simplitate, ntr-un caz real numrul nivelelor de prioritate putnd fi mai mare dect 2.
Dispozitivul se conecteaz la una din liniile de cerere, dup cum se dorete a fi asignat prioritatea
dispozitivului. n exemplul anterior, dispozitivele D1 i D2 utilizeaz nivelul 1, iar dispozitivele D3 i
D4 utilizeaz nivelul 2. n situaia c apar cereri de acordare a magistralei simultan pe ambele nivele de
prioritate, arbitrul de magistral va acorda magistrala dispozitivelor cu nivelul de prioritate cel mai
ridicat. n exemplul nostru nivelul mai prioritar este nivelul 2. Prioritatea se stabilete prin nlnuire
(daisy-chain) pentru dispozitivele plasate pe acelai nivel de prioritate. Deci, ordinea dispozitivelor din
punct de vedere al prioritii pentru exemplul prezentat este D3, D4, D1, D2.
Cerere nivel 2
D4
D3
D2
urmare, n timpul utilizarii magistralei, alte dispozitive pot solicita magistrala. La terminarea transferului
curent, va fi deja selectat urmtorul dispozitiv master, care poate ncepe transferul imediat dup
dezactivarea semnalului de achitare. Calculatoarele PDP-11 i microprocesoarele Motorola 680x0
utilizeaz un asemenea sistem de prioriti.
n cazul extrem din exemplul anterior se poate ajunge n situaia n care fiecare dispozitiv s posede
propria linie busrequest/bus grant. Aceast abordare complet centralizat este cea mai puternic din punct
de vedere logic, dar din punct de vedere practic cea mai puin scalabil dintre toate abordrile. Un cost
suplimentar important ar fi necesar pentru liniile adiionale.
Un exemplu de magistral cu arbitrare centralizat este magistrala Multibus. Aceast magistral a
fost elaborat de firma Intel pentru diferite configuraii de sisteme bazate pe microprocesoare, att
uniprocesor, ct i multiprocesor. Magistrala permite existena a pn la 16 module master i permite
dou tipuri de arbitrare, centralizat i descentralizat. n figura 2.11 se prezint arbitrarea centralizat.
Magistrala Multibus a fost standardizat prin standardul lEEE 796.
Master 1
BPRN BREQ
Master 2
BPRN BREQ
Master 3
BPRN BREQ
1 Logic de 1
2 prioriti 2
3
3
BREQ
Master 1
BPRN
BREQ
Master 2
BPRN
BREQ
Master 3
BPRN
prioritatea maxim va putea utiliza magistrala n urmtorul ciclu. Celelalte dispozitive vor
menine active cererile lor pentru a obine un ciclu urmtor de magistral.
Anumite transferuri necesit mai multe cicluri consecutive. Un dispozitiv care necesit
cicluri suplimentare activeaz semnalul de pe linia TR0 la nceputul primului ciclu de
transfer. Acest semnal, cu prioritatea maxim dintre semnalele TR, nu este asignat nici
unui dispozitiv, ci poate fi utilizat pentru pstrarea controlului asupra magistralei.
Dispozitivul cu prioritatea minim (16) poate efectua transferuri n oricare ciclu care
nu este rezervat de celelalte dispozitive. La nceputul fiecrui ciclu, dac nici una din
liniile TR nu este activ, poate efectua transferuri numai dispozitivul cu prioritatea 16.
Timpul de ateptare este minim pentru acest dispozitiv cu prioritate 16 i de aceea UCP
are de obicei prioritatea minim.
M3
M2
M1
UCP
Terminator de magistral
Ceas
Terminator de magistral
Fig. 2.13.
Figura 2.13 ilustreaz metoda de arbitrare SBI sub form simplificat. Fiecare
dispozitiv are ca intrri un semnal de ceas pentru sincronizare i toate liniile TR de
prioritate mai mare (inclusiv TR0). Fiecare dispozitiv poate activa propria sa linie TR i
linia TRO.
Un exemplu pentru o secven de operaii este prezentat n Figura 2.14.
Ceas
TR0
TR0
TR1
TR2
TR3
Ceas
Activat de 2
TR1
TR2
TR3
Transfer de date
De la 3
De la 1
De la 2
De la 2
Fig. 2.14
magistrala, la nceputul unui ciclu de ceas modulul testeaz dac magistrala este liber i
dac semnalul de pe intrarea sa BPRN este activat.
Terminator de magistral
BPRN
BPRN BPRO
BPRO
(Prioritate
min.)
Master
2
Master 3
BPRN
BPRO
(Prioritate max.)
Master 1
Fig. 2.15.
Dac acest semnal este activat, modulul dezactiveaz semnalul de pe ieirea sa BPRO,
ceea ce va determina dezactivarea semnalelor de pe intrrile BPRN i ieirile BPRO ale
modulelor urmtoare. La sfritul propagrii semnalelor prin lan, un singur modul va
avea intrarea BPRN activat i ieirea BPRO dezactivat. Acest modul poate deveni
master la nceputul unui ciclu de ceas, dac magistrala nu este ocupat (semnalul BUSY
nu este activ). Controlul asupra magistralei poate fi pstrat prin continuarea activrii
semnalului BUSY. n figura 2.16 se exemplific aceast schem de arbitrare.
Master 1
BPRN
BPRO
Master 2
BPRN
BPRO
BPRN
Fig. 2.16
n punctul 1, modulul Master 1 cedeaz magistrala i activeaz ierea BPRO. Semnalul
de la aceast ieire se propag prin celelalte module. n punctul 2, modulul Master 1
solicit din nou magistrala prin dezactivarea semnalului de la ieirea BPRO.
Prioritatea dispozitivelor descrete de la stnga la dreapta. Aceast metod este
similar cu arbitrarea centralizat daisy chain, dar fr utilizarea unui arbitru, astfel c
are un cost mai redus i este mai rapid.
Principalul avantaj al metodei de arbitrare descentralizat este simplitatea. Sunt
necesare doar dou linii de control, i numrul de linii este independent de numrul de
dispozitive. Se pot aduga noi dispozitive prin simpla conectare a lor la magistrala sistem.
Dezavantajul const n posibilitatea funcionrii eronate. O eroare n logica de
arbitrare a unui modul master poate mpiedica dispozitivele de prioritate mai mic s preia
controlul asupra magistralei, sau poate permite ca mai multe dispozitive s devin master.
n plus, prioritatea dispozitivelor este fix i nu se poate modifica.
O observaie legat de arbitrajul de magistral se refer la operaiile cu cicluri
multiple. n cazul sistemelor multiprocesor, se utilizeaz n mod obinuit un cuvnt de
memorie pentru a proteja datele partajate. Dac acest cuvnt este 0, un procesor l poate
seta la 1 i poate utiliza data partajat. Dac este deja 1, procesorul trebuie s atepte pn
cnd procesorul care utilizeaz data n acel moment termin operaia i seteaz cuvntul
din nou la 0.
Pot apare situaii n care dou procesoare consider simultan c au acces exclusiv la o
dat partajat, de exemplu n secvena urmtoare:
I. Procesorul A citete cuvntul x, care este zero (ciclul 0).
2. Procesorul B citete cuvntul x, care este zero (ciclul 1).
3. Procesorul A scrie 1 n cuvntul x (ciclul 2).
4. Procesorul B scrie 1 n cuvntul x (ciclul 3).
Pentru a se preveni o asemenea situaie, anumite procesoare au o instruciune care
citee un cuvnt de memorie, i dac este 0, l seteaz la 1 ("Test and Set"). Problema
const n faptul c o asemenea instruciune necesit dou cicluri de magistral, unul
pentru citire i unul pentru scriere. Exist posibilitatea ca un alt procesor s i intercaleze
operaiile ntre cele dou cicluri.
Soluia la aceast problem este de a se aduga o linie suplimentar la magistral, de
exemplu LOCK, care poate fi activat naintea unei instruciuni "Test and Set. Ct timp
aceast linie este activat, nici un alt procesor nu poate prelua magistrala. Aceasta
permite primului procesor s execute cicluri multiple de magistral fr intervenia altor
procesoare.
Un alt tip important de ciclu de magistral este atunci cnd sunt utilizate ntreruperi.
Dac UCP a comandat unui dispozitiv I/E s fac ceva, acesta trebuie s primeasc o
ntrerupere cnd lucrul ia sfrit. Semnalizarea ntreruperii se face tot pe magistral.
n cazul existenei a mai multor linii de ntrerupere conectate la mai multe dispozitive
apar aceleai tipuri de probleme de arbitrare ca n cazul ciclurilor de magistral obinuite.
Soluia care a fost gsit este de a atribui prioriti dispozitivelor i de a folosi un arbitru
centralizat. Acesta trebuie s satisfac prioritar dispozitivele critice din punct de vedere al
timpului. Exist mai multe astfel de chip-uri care controleaz ntreruperile. Intel
utilizeaz circuitul 8259A. Acesta poate lucra cu opt linii de ntrerupere. n cazul existenei
a mai mult de opt dispozitive de I/E acesta poate fi cascadat. La limit, toate cele opt
intrri ale circuitului se conecteaz la nc opt circuite 8259A, rezultnd posibilitatea
conectrii a 64 de dispozitive ntr-o reea de ntrerupere pe dou nivele. Circuitul 8259A
are civa pini speciali pentru aceast conectare n cascad.
Subsistem
Rata de transfer
(MB/s)
Adaptor
grafic
30...40
Video
LAN
3 pentru Token
Ring
2 pentru Ethernet
Disk fix
20...80
CD-ROM
Audio
1 pentru calitate
CD
Dac vorbim de calculatoarele PC, majoritatea subsistemelor sunt conectate la magistrala de extensie
a calculatorului. Aceasta poate fi o magistral PCI, ISA, EISA sau Micro Channel. Aceste magistrale nu
asigur o rat de transfer suficient pentru imagini grafice de nalt rezoluie i un numr mare de culori,
i nici pentru imagini video cu un numr de 30 cadre/s. Un calcul simplu arat c un ecran 1024*768
utilizat pentru imagini color reale, n micare (3 octei/pixel) conine 2,25 Mo de date. Pentru o micare
lent sunt necesare cel puin 30 ecrane/sec, deci o vitez de transfer a datelor de 67,5 Mo/sec. De fapt,
situaia este mult mai critic deoarece pentru a afia o imagime de la un hard disk, CD-ROM sau DVD
datele trebuie s treac de la unitatea de disc, pe magistral, ctre memorie. Pentru a fi afiate, datele
trebuie s treac din nou pe magistral ctre adaptorul grafic. Rezult c este nevoie de o band de trecere
a magistralei dubl, de 135 Mo/sec.
Magistrala ISA lucreaz la o vitez maxim de transfer de 8,33 MHz i poate transfera
2 octei pe ciclu, deci o vitez medie de transfer de 16,7 Mo/sec. Totodat ratele de transfer
de la interfeele video i de reea cresc n permanen. Aceste argumente
sunt conectate la o extensie a magistralei de extensie, pe care o vom numi magistrala X sau
magistrala utilitar. Astfel de dispozitive pot fi: interfaa de reea, modem, interfa SCSI,
un port serial etc. Aceast arhitectur, devenit tradiional, a fost eficient, dar devine la
rndul ei nesatisfctoare datorit performanelor n cretere ale dispoziticelor I/O.
Fig. 2.19.
Soluia adoptat de industrie a constat n a construi o magistral de mare vitez strns
integrat cu restul sistemului ce necesit doar o punte (bridge) ntre magistrala
procesorului i magistrala de mare vitez. Aceast magistral este conectat printr-o punte
sau un buffer cu magistrala de extensie X. Figura 2.19 ilustreaz o astfel de arhitectur cu
cteva dispozitive I/O care pot fi conectate la magistrala X. Acest aranjament este uneori
cunoscut ca o arhitectur mezanin.
La o operaie de citire a memoriei, procesorul poate comunica cu memoria sa cache
intern de nivel 1 la vitez maxim, dac informaia cerut se afl n memoria cache. Dac
aceast memorie cache este de tip write-back, operaiile de scriere n locaiile din memoria
cache se pot executa de asemenea la viteza maxim. Dac la o citire cuvntul nu se afl n
memoria cache, sau coninutul memoriei cache trebuie scris n memoria principal,
procesorul trebuie s utilizeze magistrala sa local pentru a comunica cu memoria cache
Conectori de extensie
extern (de nivel 2). Controlerul de cache este integrat n puntea care face legtura cu
magistrala de mare vitez. Dac cuvntul nu se afl nici n aceast memorie cache,
Buffer se
Dispozitiv
Dispozitiv
de I/E
Dispozitiv
de I/E de I/E
execut un acces la memoria DRAM.
magistrala X
La execuia unei operaii de I/E, se va executa un ciclu de citire sau scriere utiliznd
magistrala de extensie. Viteza de execuie a acestui ciclu este dat de viteza maxim a
magistralei de extensie i de timpul de acces al dispozitivului adresat.
Conectarea direct
Dup cum spune i numele, dispozitivul se conecteaz direct la magistrala local a
procesorului. Acesta poate fi un procesor de orice tip, de exemplu 80486 sau Pentium.
Aceast metod impune unele restricii importante de proiectare:
- Dispozitivul va trebui reproiectat pentru a fi utilizat cu procesoarele din generaiile
Memorie princ
viitoare (dac structura magistralei sau protocolul vor fi modificate).
- Nu se poate conecta mai mult de un dispozitiv din cauza ncrcrii suplimentare a
magistralei locale.
- n cazul modernizrii ulterioare a sistemului prin instalarea unui procesor de tip
"overdrive", sistemul poate funciona incorect datorit ncrcrii suplimentare a
magistralei locale.
- Procesorul nu poate efectua transferuri cu un dispozitiv, n timp ce dispozitivul de pe
magistrala local execut un transfer cu un alt dispozitiv.
Conectarea printr-un buffer
Bufferul are rolul de a amplifica semnalele magistralei, fiind posibil conectarea mai
multor dispozitive. Deoarece magistrala local bufferat este izolat din punct de vedere
electric fa de magistrala local a procesorului, reprezint o singur ncrcare pentru
Magistrala
mem.
aceasta. Singurul avantaj al acestei metode este c la magistrala buferat se pot conecta
de
obicei trei dispozitive. Dezavantajul major al conectrii printr-un buffer este c orice
tranzacie iniiat de procesor apare pe magistrala local, ca i pe cea bufferat. De aceea,
procesorul i dispozitivul master nu pot utiliza magistrala simultan.
Conectarea de tip staie de lucru
n acest caz controlerul memoriei cache de nivel 2 este combinat cu un circuit de
interfa numit punte (bridge), care asigur interfaa dintre procesor, memoria principal i
o magistral de I/E de vitez ridicat (de exemplu, PCI). Dispozitivele conectate la
magistrala de I/E pot fi i adaptoare inteligente cu rol de master. Prin utilizarea punii de
legtur, memoria principal poate fi accesat 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 ncrcarea datelor din memoria cache de nivel 1 sau 2, n
timp ce controlerul memoriei cache asigur accesul la memoria principal a unui dispozitiv
master de pe magistrala de I/E. Dispozitivele master pot de asemenea comunica cu
dispozitive slave de pe magistrala de I/E n timp ce procesorul acceseaz una din memoriile
cache sau n timp controlerul memoriei cache de nivel 2 acceseaz memoria principal.
Principalul beneficiu al acestei metode este c interfaa dispozitivelor conectate la
magistala de I/E va fi independent de magistrala procesorului. Va trebui reproiectat
numai puntea de legtur n situaia modernizrii procesorului.