Sunteți pe pagina 1din 29

Modelul von Neumann

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

Fig. 1.1. Modelul von Neumann al calculatorului numeric


Input Unit i Output Unit formeaz grupul dispozitivelor de intrare ieire ce asigur instruciuni i
date sistemului, care anterior au fost stocate n Memorii Unit.
Instruciunile i datele sunt procesate de ALU, sub controlul unitii Control Unit. Aceasta determin
execuia instruciunilor una dup alta, aa cum au fost ele memorate, att timp ct aceast secven nu este
ntrerupt de o instruciune de salt.
ALU i CU formeaz unitatea central (CPU).
Memoria calculatorului IAS era format din 1000 de locaii de stocare, numite cuvinte, fiecare avnd
40 de digii binari (bii). Att datele ct i instruciunile erau stocate aici. Deci numerele erau reprezentate
n form binar, iar fiecare instruciune era tot un cod binar. Fiecare numr era reprezentat pe 39 de bii i
un bit de semn. Un cuvnt putea conine, de asemenea, dou instruciuni de 20 de bii, fiecare format
din: un cod al operaiei de 8 bii (opcode) specificnd operaia i 12 bii de adres ai unui cuvnt din
memorie.
Unitatea de control aduce instruciunile din memorie i acestea sunt executate pe rnd. Pentru a putea
realiza acest lucru, o structur mai detaliat a mainii IAS relev faptul c att unitatea de control ct i
ALU posed locaii de stocare, numite registre, definite dup cum urmeaz:
- Memory buffer register (MBR) conine un cuvnt ce va fi stocat n memorie sau e folosit pentru
a recepiona un cuvnt din memorie,
- Memory address register (MAR) specific adresa n memorie a cuvntului ce va fi scris/citit n
MAR,
- Instruction register (IR) conine codul pe 8 bii al instruciunii ce se execut,
- Instruction buffer register (IBR) folosit pentru a reine temporar a doua instruciune dintr-un
cuvnt de memorie,
- Program counter (PC) conine adresa urmtoarei perechi de instruciuni ce va fi adus din
memorie,

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.

1.2.1 Limbaje, niveluri i maini virtuale


Calculatoarele utilizeaz un set de instruciuni main. Acestea formeaz mpreun un limbaj pe care
l vom numi L0. Programele scrise de utilizator sunt ntr-un limbaj L1, mult mai accesibil dect limbajul
mainii.
O metod posibil de executare a unui program scris n L1 este aceea de a nlocui fiecare instruciune
din acest limbaj cu o secven echivalent de instruciuni L0.
Programul rezultat este format numai din instruciuni scrise numai n limbajul L0. O astfel de tehnic
se numete traducere (translation).
Cea de-a doua tehnic const n a scrie un program n L0 care preia programe din L1 ca date de
intrare i le execut examinnd fiecare instruciune pe rnd i executnd secvena echivalent de
instruciuni din L0. O astfel de tehnic se numete interpretare (interpretation), iar programul care o
realizeaz se numete interpretor.
Traducerea i interpretarea sunt similare.
n loc de a gndi n termeni de traducere i interpretare de multe ori este mai simplu s ne imaginm
existena unui calculator virtual sau main virtual (virtual machine) al crui limbaj main este L1. S
numim aceast main virtual M1 i s numim maina virtual corespunztoare lui L0 cu M0. Dac o
astfel de main ar putea fi construit la un pre rezonabil nu am mai putea avea nevoie de L0 sau de o
main care s execute programe n L0. Programatorii ar putea scrie programele n L1 i le-ar putea
executa direct. Dar maina virtual ce suport limbajul L1 este prea scump sau prea complicat pentru a
putea fi realizat fizic. Totui oamenii au posibilitatea s scrie programe pentru aceasta. Aceste programe
vor fi interpretate sau traduse de un program scris n L1 care poate fi executat pe calculatorul existent. Pe
scurt, pot fi scrise programe pentru maini virtuale ca i cum acestea ar exista n realitate.
Pentru ca traducerea i interpretarea s fie practic limbajele L1 i L0 nu trebuie s fie prea diferite.
Acesta nseamn c L1, dei mai bun ca L0, va fi nepotrivit pentru multe aplicaii. Abordarea evident
este de a inventa un alt set de instruciuni mai prietenos cu utilizatorul i mai puin orientat main ca L1.
Acest al treilea set formeaz un nou limbaj pe care l numim L2 (cu maina virtual corespunztoare M2).
Programatorii pot scrie programe n L2, ca i cum o main virtual cu limbajul L2 ar exista n realitate.
Astfel de programe pot fi traduse n L1 sau, alternativ, executate cu un interpretor scris n L1.
Inventarea unei serii ntregi de limbaje, fiecare mai convenabil dect predecesoarele, poate continua
pn la crearea unui limbaj potrivit. Fiecare limbaj folosete predecesorul su ca baz, deci, folosind
aceast tehnic putem vedea calculatorul ca o serie de straturi (layers) sau nivele unul deasupra celuilalt
ca n figura 1.3.

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

Program n L1 pot fi interpretate de


un interpretor ce ruleaz pe M 0 fie
traduse n L0

Calculatorul real M0
cu limbaj L0

Programele n L0 pot fi direct


executate n circuitele electronice

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.

1.2.2. Maini multinivel contemporane


Cele mai multe calculatoare moderne sunt formate din dou sau mai multe niveluri. Exist pn la 6
niveluri ca n Figura 1.4. Nivelul 0 corespunde structurii hardware a mainii. Circuitele execut
programele n limbaj main de pe nivelul 1. Trebuie menionat existena unui nivel suplimentar, aflat
sub nivelul 0. Acest nivel, care nu apare n figur, ine de domeniul ingineriei electrice i se numete
nivelul echipamentelor (device level).

Nive lul 5

Nive lul limbaju lui


orientat pe aplicaie
Traducere (co mpilare )

Nive lul 4

Nive lul limbaju lui de


asamblare
Traducerea (asamb lor)

Nive lul 3

Nivelul 2 (ISA)

Nive lul 1

Nive lul main i


nivelul sistemu lui de
operare
Interpretare paria l
(sistem de operare)

Nive lul a rhitectur


setului de
instruciuni

Interpretarea (microprogra m)
sau executare direct

Nive lul
microca lculatoarelor
Hardware

Nive lul 0

Nive lul logic d igital

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

1.3. Procesoare (UCP)


n figura 1.1 este prezentat organizarea unui calculator simplu, organizat n jurul unei magistrale.

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.

1.3.1. Organizarea UCP


Organizarea intern a unei pri dintr-o UCP von Neumann tipic este dat mai n detaliu n Fig. 1.2.

A +B
A
B

UAL

A +B

Fig. 1.2. Calea de date a unei maini von Neumann tipice


Figura reprezint aa numita cale de date i include registre (ntre 1 i 32), UAL i mai multe
magistrale de legtur. Registrele trimit date ctre cele 2 registre de intrare n UAL, notate A i B. Acestea
au rolul de a pstra datele de intrare ale UAL n timp ce acesta calculeaz. UAL execut asupra datelor
operaii simple (adunri, scderi, funcii logice) al cror rezultat este depus ulterior tot n registre prin
intermediul registrului de ieire. Ulterior registrul poate fi scris (adic depozitat) n memorie. n exemplul
ilustrat este prezentat operaia de adunare.
Majoritatea instruciunilor fac parte din categoria registrumemorie sau registruregistru.
Instruciunile registru-memorie permit cuvintelor din memorie s fie ncrcate n registre, unde pot fi
folosite, de exemplu, ca date de intrare pentru UAL, Altele sunt folosite pentru depozitarea n memorie.
Cuvintele sunt uniti de date transferate ntre memorie i registru. Un cuvnt are lungimea
variabil, n funcie de calculatorul de care discutm. Subiectul se va detalia n capitolul privind memoria
i organizarea memoriei.
O astfel de instruciune extrage doi operatori din registru, i aduce n registrele de intrare ale UAL,
execut o operaie asupra lor, i depune rezultatul din nou n registru. Se numete ciclu al cii de date
(data path cycle) procesul prin care cei doi operatori sunt trecui prin UAL i rezultatul este depozitat.
Aceasta este o dat extrem de important pentru cele mai multe UCP. Ea definete n mare msur ce
poate face maina. Cu ct ciclul cii de date e mai rapid, cu att maina funcioneaz mai repede.

1.3.3. RISC i CISC


La sfritul anilor `70 interpretoarele erau utilizate uzual pentru proiectarea unui nou procesor i s-au
fcut experimente cu instruciuni foarte complexe. Proiectanii au ncercat s acopere interstiiul
semantic (semantic gap) dintre posibilitile mainilor i limbajele de programare de nivel nalt. Timp de
muli ani trendul n arhitectura i organizarea calculatoarelor a fost acela de a crete complexitatea
procesorului: mai multe instruciuni, mai multe moduri de adresare, mai multe registre specializate.
Au existat ns i exceptii. n 1981 John Cocke la de IBM a creat modelul experimental 801,
ncercnd s incorporeze o parte din ideile lui Seymour Cray ntr-un minicalculator de nalt performan.
n acelai an un grup de la Berkeley, condus de David Patterson i Carlo Sequin a proiectat un cip VLSI
pentru un UCP fr interpretor rezultnd procesorul RISC 1. Ei au introdus termenul RISC pentru acest

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.

1.5. Paralelism la nivelul instruciunii


n acest caz paralelismul este exploatat n cadrul instruciunilor individuale, pentru a face maina s
lanseze n execuie mai multe instruciuni/secund.

Pipeline (banda de ansamblare sau conduct) .


Concepul a existat din `60 la maini IBM prin citirea n avans a unei instruciuni din memorie i pstrarea
ei ntr-un set de regitri numit prefetch buffer. Citirea n avans mparte instruciunile n dou pri:
extragerea i executarea propriu-zis. Conceptul pipeline extinde strategia. Instruciunea e mprit n
mai multe pri, de fiecare parte ocupndu-se o component hardware, toate aceste componente hardware
putnd s funcioneze n paralel. Fig. 1.3 ilustreaz o band de asamblare cu 5 uniti numite i stages
(segmente, etape).
S1

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

ciclul 2, S1 extrage instruciunea 2. n ciclul 3, S3 extrage operanzii pentru instruciunea 1, S2 decodific


instruciunea 2 i S1 extrage instruciunea 3.
Dac un ciclu main dureaz x ns, o main clasic ar avea o vitez de 1/5x MIPS (milion
instruction per second). Viteza de prelucrare pe pipeline este 1/x MIPS.
Folosirea pipeline determin un compromis ntre latena (latency ct dureaz execuia unei
instruciuni) i lrgirea de band a procesului. (bandwidth cte MIPS execut un UCP). Pentru un ciclu
de ceas T s i n segmente, latena este nT i lrgimea de band -1/T MIPS.

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.

Fig. 1.4. Banda de asamblare dual cu 5 segmente


Cu toate c benzile de asamblare, simple sau duale, sunt folosite pe mainile RISC (386 i
predecesorii nu aveau nici una), ncepnd cu 486, Intel a introdus o band de asamblare n procesoarele
sale.
Pentium are dou benzi de asamblare asemntoare cu cele din fig. 1.4, dei mprirea ntre
segmentele 2 i 3 (numite decode-1 i decode-2) este puin difert fa de cea din exemplul nostru. Banda
de asamblare principal, numit u pipeline, poate executa orice instruciune Pentium, n timp ce a doua
band, numit v pipeline, poate executa doar instruciuni pentru ntregi i o instruciune simpl n virgul
mobil FXCH.
Reguli destul de complexe determin dac instruciunile sunt compatibile, astfel nct s poat fi
executate n paralel. Dac instruciunile sunt incompatibile, doar prima este executat (pe banda u), iar a
doua este pstrat i mperecheat cu o instruciune care o va urma. Instruciunile sunt executate n
ordine. Din aceast cauz compilatoarele specifice Pentium, care produceau perechi compatibile de
instruciuni, puteau s produc programe mai rapide. Pentru programe cu numere ntregi, Pentium cu cod
optimizat pentru el este de 2 ori mai rapid dect 486 la aceeai frecven de ceas. Acest ctig se datoreaz
celei de-a 2-a benzi de asamblare.
Alte UCP utilizeaz abordri cu totul diferite. Idea de baz este de a avea o singur band de
asamblare, dar cu mai multe uniti funcionale, aa cum se observ n figura 1.5
Procesorul Pentium II are o structur asemntoare cu cea din fig. 1.5. Pentru aceast abordare a fost
introdus termenul arhitectur superscalar.

Fig. 1.5. Un processor superscalar cu 5 uniti funcionale


Idea nu este nou, ci are o vechime de peste 30 de ani. n calculatorul CDC6600 se extrgea o
instruciune la fiecare 100nsec i se trimitea pentru execuie, n paralel, uneia din cele 10 uniti
funcionale, n timp ce UCP se ocupa cu extragerea instruciunii urmtoare.
Ar rezulta din figur c segmental S3 poate lansa instruciunile mult mai repede dect le poate
executa segmental S4. n realitate, majoritatea unitilor funcionale din segmental S4 au nevoie de mai
mult timp dect un ciclu de ceas pentru a-i face treaba, n mod cert cele care acceseaz memoria sau care
lucreaz n virgul mobil.
Dup cum se poate observa pot exista mai multe UAL n registrul S4.

2.2.1. Magistrale sincrone


Considerm o magistral sincron cu perioada ceasului T. Pentru exemplificare este
prezentat o operaie de citire i presupunem c citirea unui octet sau cuvnt din memorie
necesit 3 cicluri de magistral, T1, T2 i T3, cu durata total 3T ca n figura 2.7.
Ciclu de citire
T1
Tact

T2

T3

TAD

ADR

Adresa
TDS

DATA
TML

TMH

MREQ
TM

TRH

RD
TRL

THD

Figura 2.7. Ciclul de citire al unei magistrale sincron

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

Fig. 2.8. Operaia de citire la o magistral asincron


Se utilizeaz deci un protocol cu intercondiionare total (full hand-shake). Fiecare aciune este
condiionat de o aciune anterioar, i nu de un impuls de ceas.
Aceste aciuni sunt urmtoarele:
1. Este activat MSYN.
2. Este activat SSYN ca rspuns la activarea MSYN
3. MSYN este dezactivat ca rspuns la activarea SSYN.
4. SSYN este dezactivat ca rspuns la dezactivarea MSYN.
Magistralele de tip sincron sunt uor de implementat i de testat. Deoarece toate
dispozitivele conectate la un bus sincron sunt legate de frecvena de ceas a acestuia,
sistemul nu poate beneficia de avantajele conectrii unor dispozitive mai performante.
Singura soluie este utilizarea unei noi magistrale de frecven mai ridicat.
Dei magistralele asincrone au avantajele amintite, cele mai multe magistrale sunt
sincrone. Motivul este c o magistral sincron necesit mai puine linii i realizarea
acesteia este mai simpl. UCP activeaz semnalele de comand corespunztoare, iar
memoria sau perifericul va rspunde. Trebuie respectate doar condiiile de temporizare.
Costul magistralelor asincrone este mai ridicat, ceea ce influeneaz alegerea lor. Magistralele
asincrone sunt mai greu de depanat i interfeele pentru magistrale asincrone mai greu de realizat. Apple a
renunat la utilizarea magistralei VME (asincron) pentru calculatoarele Macintosh, chiar dac aceast
magistral a fost special proiectat pentru a fi compatibil cu familia de procesoare Motorola 68000.

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

Fig. 2.9. Un exemplu de arbitrare centralizat


cu un singur nivel de prioritate
Arbitrul activeaz linia de acordare a magistralei, la care sunt conectate n serie toate dispozitivele,
dac aceasta a fost activat. Dispozitivul cel mai apropiat fizic de arbitru detecteaz semnalul de pe

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

Fig. 2.10. Exemplu de arbitrare centralizat


cu mai multe nivele de prioritate
Se observ c nu este necesar s se cableze linia de acordare a cererii de nivel 2 serial prin
dispozitivele D1 i D2 deoarece acestea utilizeaz nivelul 1 pentru cererea de magistral. Este mai uor
s se cableze toate liniile de acordare a magistralei prin toate dispozitivele, dect s se efectueze
conexiuni speciale n funcie de prioritatea fiecrui dispozitiv. n funcie de nivelul de prioritate asignat
dispozitivului, doar o singur linie de acordare a magistralei va fi activ i utilizat de ctre un anume
dispozitiv.
Mecanismul de arbitrare a prioritii poate include o linie suplimentar de achitare, care este activat
de un dispozitiv atunci cnd a preluat controlul asupra magistralei n urma unui semnal de acordare a
magistralei. Semnalele de cerere i de acordare pot fi dezactivate imediat dup activarea acestei linii. Ca

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

Fig. 2.11. Arbitrarea centralizat a magistralei Multibus


Fiecare modul master dispune de o linie de cerere a magistralei (BREQ) i de una de acordare a
magistralei (BPRN), conectate la un modul central cu o logic de prioriti. S presupunem c un modul
solicit magistrala printr-o cerere transmis logicii de arbitraj. Aceast logic selecteaz urmtorul modul
master cruia i se acord magistrala i activeaz semnalul BPRN corespunztor. n Figura 2.12 se
prezint diagrama de timp a unei secvene de operaii.
1. Modulul Master 2 solicit magistrala. Arbitrul achit cererea prin activarea semnalului de pe linia
BPRN a modulului Master 2.
2. Modulul Master 1 solicit magistrala. Arbitrul stabilete c Master 1 are o prioritate mai mare
dect Master 2, acord magistrala modulului Master 1 i simultan retrage prioritatea modulului Master 2.
Modulul Master 1 dorete n continuare controlul asupra magistralei, astfel nct menine activ semnalul
su BREQ.
3. Modulul Master 1 termin operaia pe magistral i Master 2 preia controlul asupra magistralei.

BREQ
Master 1

BPRN

BREQ
Master 2
BPRN
BREQ
Master 3
BPRN

Fig. 2.12 Digrama de timp a arbitrrii centralizate

2.3.2. Arbitrarea descentralizat


Arbitrarea descentralizat se caracterizeaz prin faptul c nu exist arbitru de
magistral. Un dispozitiv care dorete s devin master pe magistral activeaz semnalul
bus request i apoi verific dac magistrala este ocupat (busy). Dac linia busy nu este
activ, dispozitivul trimite 0 ctre dispozitivul cu cel mai mare numr din lanul daisychain, activeaz linia busy i reactiveaz linia bus request. Dac magistrala este ocupat
sau dac un dispozitiv nu dorete controlul asupra magistralei, pur i simplu propag
semnalul bus grant ctre urmtorul dispozitiv.
Arbitrarea trebuie s fie o operaie rapid i din acest motiv o schem centralizat va
lucra bine numai cu un numr mic de dispozitive, de obicei pn la opt. O schem de
arbitrare descentralizat este indicat n cazul unui numr mare de dispozitive.
Un exemplu de magistral care utilizeaz aceast metod de
arbitrare este magistrala SBI (Synchronous Backplane Interconnect), dezvoltat de firma
DEC pentru calculatoarele VAX-11/780. Modulele de I/E nu se conecteaz direct la
magistrala SBI, care este optimizat pentru operaiile de citire/scriere a memoriei.
Modulele de I/E sunt conectate la o magistral Unibus sau MA558U5, care sunt conectate
la magistrala SBI prin adaptoare. Magistrala Unibus este utilizat n principal pentru
dispozitive de vitez mic i medie, ca terminale, imprimante i linii de comunicaie.
Magistrala MA558U5 este destinat pentru memorii externe, ca discuri i benzi magnetice.
Fiecare modul conectat la magistrala SBI (UCP, memorie, adaptor Unibus) are o
prioritate unic i o linie unic de cerere de transfer (TR - Transfer Request). Exist 16
asemenea linii (TR0, ..., TRI5), deci la magistral pot fi conectate maxim 16 dispozitive.
Dac un dispozitiv solicit magistrala, activeaz linia sa de cerere TR. La sfritul
ciclului de magistral toate dispozitivele cu cereri active testeaz liniile TR. Dispozitivul cu

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

Modulul 3 solicit magistrala n ciclul 1, iar modulele 1 i 2 solicit magistrala n ciclul


2. La sfritul ciclului 1, modulul 3 nu detecteaz semnale TR de prioritate mai mare,
astfel c dezactiveaz TR3 i transmite datele n timpul ciclului 2. La sfritul ciclului 2,
modulul 2 este ntrziat de modulul 1. Modulul 1 transmite datele n ciclul 3, iar modulul 2
n ciclurile 4 i 5. Modulul utilizeaz linia TR0 pentru a menine controlul asupra
magistralei pentru un transfer care necesit dou cicluri.
Exist o limit superioar a dispozitivelor conectate la magistrala SBI, egal cu
numrul liniilor TR. Deoarece controlerele nu se conecteaz direct la magistrala SBI,
aceasta nu este o limitare serioas a magistralei SBI.
Un alt tip de arbitrare descentralizat se utilizeaz n cazul magistralei Multibus a
firmei Intel i este prezentat n figura 2.15.
Modulele master sunt conectate n lan, n ordinea descresctoare a prioritii. Pentru
arbitrare se utilizeaz o linie conectat la intrarea BPRN (Bus Priority In) i la ieirea
BPRO (Bus Priority Out) a fiecrui modul. Primul modul din lan primete un semnal
BPRN activ n permanen (1 logic), deoarece nu exist un modul de prioritate mai mare
care s solicite magistrala. Dac nici un modul nu solicit magistrala, semnalul cu
valoarea 1 logic de pe linia de arbitrare se propag prin toate modulele. Pentru a prelua

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.

2.11. Magistrale locale


2.11.1. Cerine pentru ratele de transfer
Unul dintre parametrii eseniali ai unei magistrale este rata maxim de transfer.
Aceasta trebuie s fie mai mare sau egal cu rata maxim de transfer a dispozitivelor
conectate la magistrala respectiv. Magistrala poate deveni o trangulare cnd transferul
de date agregat se apropie de rata de transfer a magistralei. Problema poate fi soluionat
uneori folosind magistrale mai largi (de exemplu mrind busul de date de la 32 de bii la 64
de bii). Transferul rapid al unor blocuri mari de date apare ca o necesitate mai ales la
urmtoarele subsisteme:
- Adaptoare grafice
Interfeele grafice ale sistemelor de operare Windows, OS/2 i Unix X-Windows
necesit actualizarea rapid a imaginii grafice pentru deplasarea, redimensionarea
i actualizarea ferestrelor multiple. Acelai lucru este valabil pentru imaginile video
n micare. Procesorul trebuie s actualizeze i s transfere blocuri mari de date n
cadrul memoriei video.
- Adaptoare pentru interfa SCSI
Interfaa SCSI este utilizat mai ales pentru memorii de mas, ca uniti de disc fix,

uniti CD-ROM i uniti de band ncasetat. Creterea vitezei de transfer cu


aceste dispozitive influeneaz semnificativ performanele globale ale sistemului.
- Adaptoare de reea FDDI (Fiber Distributed Digital Interface)
Dac adaptorul de reea este utilizat pentru transferul unor fiiere la sau de la un
server, rata cu care pot fi transferate datele ntre memorie i adaptor influeneaz
performanele sistemului.

Subsistem

Rata de transfer
(MB/s)

Adaptor
grafic

30...40

Video

5..30 (pe fereastr)


15 pentru FDDI

LAN

3 pentru Token
Ring
2 pentru Ethernet

Disk fix

20...80

CD-ROM

Audio

1 pentru calitate
CD

Tabelul 2.3. Ratele transfer ale unor dispozitive I/E [3]

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

demonstreaz c o arhitectur cu o singur magistral nu este viabil.

n multe cazuri, anumite subsisteme sunt integrate pe placa sistem. Aceasta nu


nseamn c ele nu utilizeaz magistrala de extensie. Cele mai multe subsisteme integrate

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.

2.11.2. Conceptul magistralei locale


Pentru a crete rata de transfer la operaiile de actualizare a memoriei video,
adaptorul video se poate conecta la magistrala local a procesorului n locul magistralei
de extensie. Adaptorul video este reproiectat pentru conectarea direct la magistrala
local i minimizarea sau eliminarea strilor de ateptare inserate n ciclurile de
magistral atunci cnd procesorul face acces la memoria video i la registrele de I/E ale
adaptorului. n plus, adaptorul video conine i un procesor local care poate executa
comenzi grafice de nivel nalt.
Exist trei metode de baz pentru conectarea unui dispozitiv la magistrala local a
procesorului.

Punte magistrala de extensie

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.