Sunteți pe pagina 1din 31

BPC-Curs

Capitolul 3
ARHITECTURA UNUI SISTEM DE
CALCUL SECVENIAL
3.1. Schema bloc a unui calculator (modelul von Neumann)
Prin arhitectura unui sistem de calcul se nelege totalitatea dispozitivelor
componente precum i a conexiunilor existente ntre aceste dispozitive.
Arhitectura sistemelor de calcul actuale provine din dezvoltarea unui model
introdus de matematicianul John von Neumann n 1945, numit i model sau
arhitectur von Neumann. Majoritatea calculatoarelor moderne respect acest
model, ceea ce difer fiind doar tehnologia utilizat n realizarea modulelor
componente, modalitile de conectare dintre module i performanele atinse.
Arhitectura von Neumann const din trei tipuri de dispozitive (fig. 3.1):
unitatea central de prelucrare UCP (CPU Central Processing Unit);
memoria;
dispozitive de intrare/ieire I/O.

Memorie

Unitate
central
de
prelucrare

Magistral de adrese
Magistral de date
Magistral de
comenzi/stari
Dispozitive
I/O

Fig. 3.1 Schema bloc a unui calculator (model von Neumann)


n esen, cele trei elemente realizeaz urmtoarele:
- unitatea central de prelucrare, numit i procesor, deine tot controlul i
efectueaz toate calculele;
- memoria stocheaz datele i programele;
- dispozitivele de intrare/ieire asigur legtura cu mediul nconjurtor.
1

Informaia vehiculat ntre blocurile structurale ale unui calculator conine


date, adrese i semnale de comand sau stare. Un semnal de stare conine
informaii despre starea unui anumit dispozitiv la un moment dat, de exemplu:
ocupat, neocupat, etc. Conform celor trei categorii de informaie, liniile de
comunicaie sunt grupate n aa numitele magistrale (bus). Prin urmare, n
structura calculatorului exist trei tipuri magistrale: magistrala de adrese,
magistrala de date i magistrala de comenzi sau stri.
Transferul de informaie se realizeaz ntotdeauna ntre un dispozitiv
emitor i unul sau mai multe dispozitive receptoare. n funcie de sensul de
transfer magistralele pot fi: unidirecionale sau bidirecionale. n cazul
magistralelor unidirecionale informaia este transferat ntr-un singur sens, de
regul de la dispozitivul master (stpn) la dispozitivul slave (sclav). Prin
dispozitiv master se nelege un dispozitiv care poate avea iniiativa unui
transfer. Dispozitivul slave doar rspunde la cererile unui dispozitiv master. n
cazul arhitecturii von Neumann exist un singur dispozitiv master, acesta fiind
unitatea central de prelucrare. Memoria i dispozitivele de I/O sunt dispozitive
slave. Magistralele bidirecionale permit schimbul de informaie n ambele
sensuri: de la master la slave (date, comenzi i stri); de la slave la master (date
i stri).
Prin intermediul magistralei de adrese se vehiculeaz informaia ce
permite identificarea i localizarea unor date sau instruciuni aflate fie n
memorie, fie n dispozitivele de intrare/ieire. Aceast magistral este
unidirecional. Prin intermediul magistralei de date se transfer informaiile
propriu-zise: date numerice, alfanumerice, coduri de instruciuni. Este o
magistral bidirecional. Prin intermediul magistralei de comenzi/stri unitatea
central de prelucrare emite semnale de comand i control ctre memorie sau
dispozitivele de intrare/ieire, iar acestea rspund cu semnale de stare.
Magistrala de comenzi/stri este o magistral bidirecional.
Unitatea central de prelucrare poate efectua operaii elementare ca:
- operaii de citire sau scriere de la, respectiv la, memorie sau dispozitivele de
intrare/ieire;
- operaii aritmetice sau operaii logice.
Operaiile elementare executate de UCP sunt codificate sub forma de
instruciuni. O secven de instruciuni care codific un algoritm ce rezolv o
anumit problem constituie un program.

3.2. Memoria unui sistem de calcul


Memoria este o component de baz a oricrui sistem de calcul,
capacitatea acesteia fiind unul din parametrii importani care caracterizeaz
puterea calculatoarelor. Rolul memoriei este de a pstra datele i instruciunile
prelucrate de unitatea central de prelucrare UCP. n funcie de poziia ocupat
n raport cu UCP, memoria poate fi:
2

BPC-Curs

intern sau principal;


extern sau secundar.
Memoria principal mai este denumit i memorie operativ. Memoria
secundar este denumit i memorie auxiliar. Memoria principal conine
informaia n curs de prelucrare: programe n curs de execuie i date cu care
opereaz programul curent. Ea este direct accesibil unitii centrale de
prelucrare prin intermediul unei magistrale.
Memoria secundar este conectat n sistemul de calcul prin intermediul
unei interfee de intrare/ieire.
Un model simplu, dar destul de utilizat, al memoriei unui sistem de calcul
este prezentat n figura 3.3.
coninut
adresa
n locaii

cuvnt memorie
Fig. 3.3 Model de organizare a memoriei unui sistem de calcul
n acest model, memoria este considerat ca o colecie de n locaii de memorie
consecutive. Toi productorii de calculatoare au adoptat standardul locaiei de
memorie de 8 bii (un octet sau byte), aceasta fiind cea mai mic unitate de
memorie adresabil. Octeii pot fi grupai n cuvinte de 16 bii, 32 bii sau 64
bii. Importana cuvntului provine din faptul c majoritatea instruciunilor unei
UCP opereaz cu cuvinte ntregi. Astfel, o unitate central de prelucrare pe 32
respectiv 64 de bii are registre de 32 respectiv 64 de bii.
Trebuie precizat c modelul de organizare liniar a locaiilor de memorie
este destul de simplist. n realitate, memoria unui calculator este structurat pe
mai multe nivele, fiecare nivel avnd anumite caracteristici i fiind implementat
cu tipuri diferite de circuite i dispozitive. Chiar n cadrul aceluiai nivel, de
obicei organizarea nu este liniar (cazul memoriilor de mare capacitate). Totui,
indiferent de dispozitivul sau componenta fizic folosit, informaia este
memorat n binar.

3.2.1. Memoria intern (principal)


n prezent, memoria intern este implementat cu circuite
semiconductoare integrate, realizate n diferite tehnologii. n cele ce urmeaz se
vor prezenta numai circuitele de memorii semiconductoare. Unele din aceste
circuite sunt circuite combinaionale altele sunt circuite secveniale.
3.2.1.1. Organizarea celulelor de memorie. Operaii realizate
Circuitele de memorie pstreaz informaiile binare n celule elementare
de memorie cu capacitatea de un bit. Celulele elementare de memorie pot fi
realizate n diferite tehnologii care asigur performane bune legate de puterea
consumat, timpul de acces, tipurile de operaii realizate, densitatea de integrare,
etc.
Celulele elementare de memorie sunt grupate n locaii de memorie.
Locaia de memorie reprezint entitatea la care se poate face acces. Capacitatea
unei locaii, la diverse tipuri de memorii, poate fi 1, 2, 4, sau 8 celule elementare
de bit. Identificarea unei locaii de memorie se face pe baza unei adrese. Adresa
corespunztoare unei locaii este unic. La un moment dat o singur locaie de
memorie este activ (selectat). Toate locaiile de memorie corespunztoare
aceluiai dispozitiv (circuit) de memorie au aceeai lungime. Reamintim c n
domeniul calculatoarelor s-a adoptat standardul locaiei de memorie de 8 bii,
adic un octet (byte). Combinaia binar citit sau nscris n memorie se
numete cuvnt memorie.
Locaiile de memorie pot fi organizate liniar (fig. 3.4a), cnd fiecare linie
conine o locaie, sau matriceal (fig. 3.4b), cnd fiecare element de matrice
conine o locaie.
coloane
adrese
locaii
0 bm-1 b1 b0
1
2

n-1

0
linii

c-1

0
1
2
l-1

locaie bm-1 b1
a)

b0

b)

Fig.3.4 Organizarea locaiilor de memorie: a) liniar, b) matriceal

BPC-Curs

La organizarea matriceal adresa unei locaii este format din adresa de linie i
adresa de coloan. n general, adresa unei locaii este format prin concatenarea
codurilor binare ale celor dou tipuri de adrese.
O locaie de memorie are o anumit capacitate de stocare dat de numrul
de bii ai locaiei de memorie. Capacitatea total a unui circuit de memorie se
obine nmulind numrul total de locaii de memorie cu capacitatea unei locaii.
Capacitatea unei memorii se poate exprima i n numrul de cuvinte de
memorie: 256 bii (cuvntul este un bit), 16 kilobii sau 16 kb, 32 kilooctei (ko)
sau 32 kB (kiloBytes) (cuvntul este un octet).
Dispozitivele de memorie se folosesc la stocarea sau extragerea de
informaie. Prin urmare, operaiile de baz realizate cu circuitele de memorie
sunt: citirea i scrierea. n plus, exist memorii care pot fi programate i
memorii la care informaia trebuie renscris pentru a nu se pierde, adic trebuie
realizat regenerarea.
Scrierea reprezint operaia prin care, precizndu-se o anumit adres de
locaie, se depune o informaie n memorie. Citirea reprezint operaia prin care
se regsete, pe baza unei adrese, o informaie stocat anterior ntr-o anumit
locaie de memorie. Informaia de adres este binar. Lungimea acestui cuvnt
de adres este funcie de numrul de locaii. Dac notm cu n numrul de locaii
de memorie, atunci lungimea cuvntului de adres (n binar), l , este cel mai mic
numr natural care satisface relaia:
l log 2 n . (rezult din 2l n )
De exemplu, dac dispunem de un circuit de memorie cu n = 1024 = 210 locaii
de memorie, atunci lungimea cuvntului de adres este l = log 2 1024 = 10 .
Avnd n vedere cele artate anterior, putem spune c un circuit de
memorie are, n general, urmtoarele conexiuni (fig. 3.5):

l
linii de adres
p

Circuit de
memorie

m
linii de date

linii de control
Fig. 3.5 Conexiunile unui circuit de memorie
-

l linii de adres, prin intermediul crora se specific adresa unei locaii de


memorie;

m linii de date, prin intermediul crora se realizeaz scrierea (respectiv


citirea) informaiei la (respectiv de la) o anumit adres specificat prin
liniile de adres;
- p linii de control, prin care se precizeaz tipul operaiei ce urmeaz a se
efectua cu circuitul de memorie (citire, scriere, programare, regenerare).
Pentru o organizare liniar a locaiilor de memorie, rezult o capacitate dat de
expresia:
2l m bii.

Observaie. Liniile de adres i de control sunt unidirecionale, iar cele de date


pot fi unidirecionale (pentru memorii care permit numai operaii de citire) sau
bidirecionale (pentru memorii care permit att operaii de citire ct i de
scriere).
Ca exemplu, prezentm un circuit de memorie cu l = 10 linii de adres i
m = 8 linii de date (1kB), care permite operaii de citire i scriere. Conexiunile
acestui dispozitiv sunt prezentate n figura 3.6.

linii de
adres

A0
A1
Memorie
1kB

A9
linii de
control

R /W

D0
D1
linii de
date
D7

CS

Fig. 3.6 Conexiunile unui circuit de memorie de 1kB


Circuitul devine operant la activarea intrrii de selecie a circuitului, CS (Chip
Select).
Pentru a realiza operaia de citire (Read) se plaseaz pe liniile de adres
A0 ,, A9 adresa locaiei de memorie. Pe linia notat R / W se va plasa valoarea
logic 1, specificnd dispozitivului de memorie c se dorete o operaie de citire.
Pe baza acestor informaii, dispozitivul de memorie va selecta locaia de
memorie i va depune coninutul ei pe liniile de date D0 ,, D7 .
n cazul unei operaii de scriere (Write) se depune pe liniile de adres
A0 ,, A9 , adresa locaiei de memorie n care se va realiza scrierea. Pe linia
R / W se depune 0 logic, iar pe liniile de date, D0 ,, D7 , se depune informaia
ce se dorete a fi scris.

BPC-Curs

Circuitele de memorii realizate cu semiconductoare se difereniaz printro serie de proprieti, cum ar fi:
geometria sau modul de organizare a memoriei;
capacitatea memoriei;
timpul de acces la memorie: intervalul de timp dintre momentul n care se
apeleaz la dispozitivul de memorie i momentul n care informaia este
disponibil la ieire; se exprim n microsecunde ( s ) sau nanosecunde ( ns );
ciclul de citire sau scriere: timpul scurs ntre dou citiri sau scrieri
consecutive; se exprim de asemenea n s sau ns - este superior timpului de
acces;
puterea consumat, exprimat n W / bit ;
volatilitatea: pierderea informaiei n timp; la memoriile volatile
informaia se pierde odat cu decuplarea tensiunii de alimentare; volatilitatea
este determinat de tehnologia de realizare;
tehnologia de realizare: bipolare (TTL, TTL Shottky, ECL), MOS,
CMOS, I2L; circuitele bipolare sunt foarte rapide dar au o densitate mic de
integrare. Circuitele MOS sunt mai simple, deci au o densitate de integrare mai
mare, dar au o vitez mai mic dect cele bipolare.
3.2.1.2. Clasificarea circuitelor de memorie
Memoriile se pot clasifica dup mai multe criterii: tipul operaiilor
permise, modul cum pstreaz informaiile nscrise, etc.
n funcie de tipul operaiilor permise exist memorii:
de tip ROM (Read Only Memory): accept doar operaii de citire;
de tip RAM (Random Acces Memory): accept operaii de citire/scriere
aleatoare.
a). Memorii ROM
Memoriile ROM sunt folosite doar pentru citirea informaiei nscris
anterior, informaie ce este rezident permanent n cadrul sistemului. Memoriile
ROM sunt utilizate pentru:
- stocarea secvenelor de instruciuni ce nu se schimb, ca de exemplu secvene
de iniializare;
- memorarea unor tabele de valori;
- stocarea unor informaii privind caracteristicile unui sistem de calcul, etc.
Memoriile ROM genereaz un set fix de cuvinte, nscrise anterior, atunci
cnd aceste cuvinte sunt adresate. n funcie de cum sunt nscrise aceste cuvinte,
eventual terse, exist mai multe tipuri de memorii ROM:

memorii ROM cu mascare sau ROM: nscrierea informaiei se face n


timpul procesului tehnologic (prin folosirea unor mti). Aceste memorii sunt
cele mai rapide.
memorii ROM programabile PROM (Programmable ROM): Acestea
sunt produse fr a fi nscrise, nscrierea informaiilor fiind efectuat de
utilizator. Odat nscrise ele nu mai pot fi modificate. Fa de memoriile ROM,
au un timp de acces mai mare i o densitate de integrare mai mic.
Memorii ROM reprogramabile- EPROM (Erasable PROM): pot fi terse
i reprogramate.
Structura circuitelor de memorie ROM, PROM i EPROM
Celulele elementare de memorie sunt organizate matriceal, iar locaiile
liniar (figura 3.7). Pe o linie se afl toate celulele elementare (celule de bit) care
alctuiesc un cuvnt de memorie, iar pe o coloan se afl toate celulele
elementare corespunztoare unui bit din toate cuvintele. Celulele de pe o
coloan sunt conectate la o aceeai linie de bit de date. La selectarea unei linii
cuvnt, pe liniile de date se propag coninutul locaiei respective. Prin
programare se poate nscrie ntr-o celul de bit o anumit valoare logic: 0 sau 1.
Iniial sau prin tergere toate celulele de bit sunt aduse la acelai coninut.
cuvnt 0

A0
A1

cuvnt 1
celul de bit

Dec.
adr.
Al-1

cuvnt 2l 1
CS
PROG
OE

Logic de
control

Amplificatoare date
Dm-1 Dm-2

D1

D0

Fig. 3.7 Schema bloc a unei memorii de tip ROM


Adresa de pe liniile de adres A0 ,, Al 1 este decodificat, selectndu-se
cuvntul dorit din cele 2l cuvinte. Selecia circuitului se realizeaz prin
semnalul CS (Chip Select). Validarea datelor la ieire se face prin linia OE
(Output Enable). Datele citite din memorie se obin pe liniile de date
D0 ,, Dm 1 .
Celula de bit este realizat cu tranzistoare sau diode.

BPC-Curs

b). Memorii RAM


Memoriile de tip RAM accept ambele tipuri de operaii: citire i scriere.
n funcie de modul cum pstreaz informaiile nscrise, memoriile RAM pot fi
clasificate n dou tipuri:
statice SRAM (Static RAM);
dinamice DRAM (Dynamic RAM).
Memorii RAM statice (SRAM)
La aceste circuite de memorie informaia odat nscris se pstreaz atta
timp ct este meninut tensiunea de alimentare. Celulele de bit sunt constituite
din bistabile, realizate n tehnologie bipolar. Prin urmare, memoriile RAM
statice sunt foarte rapide, dar au capaciti mici din cauza densitii de integrare
mai mic (implementarea fizic a unei celule de bit, fiind realizat cu bistabile,
necesit o structur mai complex; reamintim c cel mai simplu bistabil RS
asincron are dou pori NAND (I-NU)). Anticipnd, acest tip de memorii sunt
utilizate ca memorii cache.
Celulele de bit sunt organizate matriceal, la fel ca la memoriile ROM. n
plus apar circuite combinaionale necesare nscrierii informaiei. n figura 3.9
este prezentat un exemplu de structur intern a unui circuit de memorie RAM
static. Memoria are capacitatea de 2l cuvinte (locaii) a cte m bii. Circuitul are
l linii de adres, A0 ,, Al 1 , care prin decodificare genereaz semnalele pentru
selecia cuvntului de memorie. Selecia circuitului se face prin semnalul CS .
Citirea sau scrierea sunt comandate prin semnalul R / W (1 citire, 0 scriere).
Liniile de date D0 ,, Dm 1 sunt bidirecionale. Pot exista i circuite cu linii
unidirecionale, la care liniile pentru citirea datelor sunt diferite de liniile pentru
nscrierea lor.
0
1

A0
A1

Matrice de celule bit

Dec.
adr.
Al-1

CS
R /W

2l 1

Logic de
control

Amplificare
Amplificare
la scriere
la citire
m
m
Circuite de intrare/ieire
Dm-1 Dm-2

D1

D0

Fig. 3.9 Schema bloc intern a unui circuit de memorie RAM static
9

Memorii RAM dinamice DRAM


Pentru a realiza o capacitate de stocare mare se simplific structura celulei
elementare. Astfel se obine o densitate de integrare mai mare i un consum de
putere mai mic. Simplitatea duce ns la un dezavantaj: celula de bit pierde
informaia n timp i aceasta trebuie regenerat periodic. Perioada de regenerare
este tipic de 2 ms i nu depinde de capacitatea circuitului.
n principiu, celula de bit este un condensator care are dou stri: ncrcat
cu sarcin electric i descrcat. O stare se codific prin 1 logic, iar cealalt prin
0 logic. Deoarece condensatorul se descarc n timp pe rezistena de intrare, care
nu este ideal (infinit), este necesar regenerarea (rencrcarea) sarcinii electrice
(refresh), cel puin o dat la 2 ms .
Organizarea celulelor de bit este matriceal dar, n general, cuvntul de
memorie este de un bit. Pentru obinerea unui cuvnt de date de o anumit
lungime, circuitele de memorie pot fi conectate n serie, iar pentru mrirea
capacitii se conecteaz n paralel. n figura 3.11 este prezentat schema bloc
de principiu a unui circuit de memorie DRAM, la care cuvntul de memorie este
de un bit. La memoriile DRAM, deoarece domeniul de adrese este mare, adresa
unui cuvnt este fragmentat n adres de linie i adres de coloan. Ambele
adrese se aplic la aceleai intrri, fiind validate de semnale diferite: RAS (Row
Address Strob) pentru adresa de linie i CAS (Column Address Strob) pentru
adresa de coloan.

0
RAS

Registru l/2
adres
linie

2l/2-1
0
1
2

Dec.
adr.
linie

2l/2-1
A0
A1 l/2
Al/2-1

Registru l/2
adres
coloan

Mux/Dmux
2l/2:1/1: 2l/2
OD

CAS

R /W

ID

3.11 Schema bloc de principiu a unui circuit de memorie DRAM


Memoriile dinamice accept trei tipuri de operaii: citire, scriere i
regenerare. Circuitele de memorie DRAM nu au linia CS (Chip Select),
selecia circuitului realizndu-se prin perechea de semnale RAS i CAS .
10

BPC-Curs

Regenerarea se face simultan pentru toate celulele de pe o linie din matrice. Prin
urmare, la regenerare este activat numai semnalul RAS , nu i CAS . De
exemplu, n cazul unei memorii de capacitate 16kb, matricea de celule are 128
linii i 128 coloane. Adresa de linie sau de coloan are 7 bii. Sunt necesare 128
cicluri de regenerare care trebuie s se desfoare n 2 ms . Rezult aproximativ
15 s pentru regenerarea unei linii. n sistemele de calcul regenerarea are loc
simultan n toate circuitele unitii de memorie. Deci, indiferent de capacitatea
memoriei sistemului de calcul, regenerarea are perioada de 2 ms , egal cu
perioada de regenerare a unui circuit.
La circuitele cu capacitate mai mare dect 16kb, la regenerare matricea de
celule este vzut cu 128 de linii i cu mai mult de 128 coloane. n cazul
operaiilor de citire/scriere matricea este vzut ptrat.
Alte clasificri
Dup modul cum pstreaz informaiile nscrise, memoriile pot fi
clasificate n:
nevolatile nu i pierd coninutul la decuplarea tensiunii de alimentare.
Dintre aceste memorii amintim: memoriile de tip ROM, memorii RAM CMOS
cu baterie ncorporat. Tehnologia CMOS este o tehnologie MOS (metal-oxidsemiconductor) care folosete cupru. Aceste dispozitive au un consum foarte
mic. Datorit acestui fapt ele sunt conectate tot timpul la o baterie (cnd sistemul
este nchis). Se folosesc n special pentru a memora anumite caracteristici ale
sistemului de calcul.
volatile - i pierd coninutul odat cu oprirea tensiunii de alimentare:
RAM static, RAM dinamic.
3.2.1.3 Tehnologii noi de memorii DRAM
Creterea frecvenei de lucru i a vitezei de calcul a noilor generaii de
procesoare a impus gsirea unor soluii pentru reducerea timpului de acces la
memoriile de mare capacitate. Timpul de propagare a semnalului electric prin
submodulele unui circuit de memorie (decodificator, celula elementar de
memorie i amplificator final) are o limit fizic. Prin urmare, pentru
mbuntirea timpului de acces, soluia care rmne este gsirea unor noi
modaliti de organizare intern a circuitelor de memorie, care s elimine
anumite etape ale ciclului de transfer i care favorizeaz accesul paralel.

11

3.2.2 Modaliti de organizarea logic a memoriei. Memoria virtual


Din punct de vedere logic, organizarea memoriei unui sistem de calcul
poate fi realizat utiliznd mai multe tehnici: segmentare, paginare, sub form
de stiv.
Segmentarea
Segmentarea presupune divizarea logic a memoriei n zone compacte
denumite segmente de memorie. Acestea pot s aib lungime fix sau variabil.
Segmentele pot s ocupe poziii disjuncte n spaiul de adresare sau se pot
suprapune parial sau total. Adresarea unei locaii de memorie se face prin
specificarea adresei segmentului i a adresei relative n cadrul segmentului (fig.
3.13). Aceast modalitate de adresare ofer urmtoarele avantaje:
accesul unui program sau a unui task (a unei sarcini) este limitat numai la
locaiile de memorie coninute n segmentele care i-au fost alocate;
se pot separa zonele de memorie n funcie de destinaia acestora: cod (codul
executabil al instruciunilor), date, stiv;
specificarea adresei relative n cadrul segmentului necesit un numr mai mic
de bii, ceea ce duce implicit la reducerea lungimii instruciunilor;
segmentele de program pot fi amplasate n diverse locuri ale spaiului de
adresare sau pot fi relocate (se ajusteaz coninutul cmpurilor de adres
dependente de o adres de baz), cu modificri minore n cadrul programului.
Adrese Memoria fizic
0
Adresa de segment
Adresa relativ n
segment

Segment
Locaie de
memorie

Adresa maxim

Fig. 3.13 Adresarea unei locaii dintr-un segment

12

BPC-Curs

Un segment logic poate s aib mai multe atribute, cum ar fi: adresa de
nceput a segmentului, lungimea, drepturile de acces la segment, etc. Cu ajutorul
atributelor asociate unui segment se controleaz accesul la locaiile segmentului.
Se pot verifica tipurile de operaii permise (citire, citire/scriere), nivelul de
prioritate solicitat, depirea limitei maxime a segmentului.
Implementarea efectiv a segmentrii depinde de suportul hardware oferit
de unitatea central de prelucrare (procesor). n capitolul 4 se va prezenta modul
de soluionare al segmentrii la procesoarele familiei Intel x86. Amplasarea
segmentelor n spaiul de adresare disponibil i ncrcarea acestora n memoria
principal este realizat de sistemul de operare.
Paginarea
Scopul principal al paginrii este de a extinde memoria intern a unui
sistem de calcul peste memoria extern. n acest scop att memoria intern ct i
cea extern este divizat logic n blocuri de lungime fix, numite pagini.
Concret, memoria intern este divizat n pagini de memorie de o anumit
lungime. Fiecare program ce urmeaz a fi ncrcat n memoria intern din
memoria extern, este fragmentat ntr-un numr de pagini de program (pagini)
de dimensiunea paginii de memorie intern. n timpul execuiei programului
paginile sunt ncrcate n memoria intern numai dac se solicit informaii
coninute n acestea. Adresa absolut a unei locaii de memorie ntr-o pagin se
calculeaz pe baza adresei absolute a paginii de memorie i a adresei relative n
pagina de memorie. n acest fel spaiul efectiv necesar pentru execuia unui
program este mult mai mic.
Paginarea este realizat de sistemul de operare i mecanismul respectiv
este transparent pentru utilizator. O influen deosebit asupra eficienei
paginrii o are dimensiunea paginii de memorie. ncrcarea paginii n memoria
intern necesit un anumit timp, denumit timp de penalizare. Timpul de
penalizare depinde de dimensiunea paginii i de viteza de transfer ntre memoria
intern i memoria extern (disc). Dac dimensiunea paginii este mic, timpul
de penalizare este mic dar vor fi mai multe solicitri i deci sunt necesare tabele
de dimensiuni mai mari pentru gestiunea paginilor (tabele care pstreaz
corespondena dintre paginile unui program i paginile de memorie intern n
care sunt ncrcate). Dac dimensiunea este mare, n comparaie cu dimensiunea
memoriei interne, aceasta poate duce la nlocuirea repetat a paginilor, ceea ce
scade eficiena implementrii.
Organizarea sub form de stiv
n acest tip de organizare accesul nu se mai realizeaz dup adres ci dup
o relaie de ordine. n acest scop se folosete o informaie suplimentar care
precizeaz tot timpul vrful stivei. Exist dou modaliti de organizare a
memoriei sub form de stiv, modaliti ce corespund la dou relaii de ordine:
stive de tip FIFO (First In First Out primul intrat, primul ieit);
13

stive de tip LIFO (Last In First Out ultimul intrat, primul ieit).
Stivele de tip FIFO sunt cunoscute sub numele de cozi. n organizarea
memoriei sub form de coad, prima informaie venit este prima extras.
Informaia este introdus n coad pe la un capt iar extragerea este fcut pe la
cellalt capt (fig. 3.14).
extragere

depunere
ultima informaie
depus

prima informaie
extras

Fig. 3.14 Organizarea sub form de coad FIFO


Stivele de tip LIFO sunt denumite simplu stive. Relaia de ordine care
determin modul de acces la informaia dintr-o stiv este de tip LIFO, deci
ultima informaie depus n stiv este prima extras (procesat sau servit).
Organizarea sub form de stiv presupune implementarea a dou operaii:
- o operaie de depunere a unei informaii n stiv, denumit PUSH;
- o operaie de extragere a unei informaii din stiv, denumit POP.
Stiva poate fi organizat n memoria fizic astfel nct dimensiunea ei s creasc
de la adrese mari spre adrese mici (fig.3.15) sau invers. De obicei, mecanismul
de acces la stiv este implementat prin hardware, existnd un registru n UCP
care conine adresa ultimei locaii ocupate n stiv.
Memoria fizic
POP

PUSH

adrese mici
vrful stivei
stiva
baza stivei
adrese mari
Fig. 3.15 Organizarea sub form de stiv

14

BPC-Curs

Memoria virtual
Memoria virtual este un concept arhitectural prin care memoria intern
este extins peste spaiul de adresare al memoriei externe. Memoria virtual se
poate implementa prin segmentare sau paginare. Aceste tehnici pot fi combinate
pentru extinderea virtual a spaiului de adresare. Mecanismul memoriei virtuale
este folosit mai ales n cazul sistemelor de operare multi-tasking i multiutilizator (de ex. Windows, Unix, etc.). Reamintim c n cazul ambelor tehnici
(segmentare sau paginare) memoria intern i extern este divizat n blocuri. La
execuia unui program se ncarc n memoria intern numai acele blocuri care
sunt necesare pentru execuie. Astfel spaiul ocupat efectiv de un program n
memoria intern este mult mai mic dect dimensiunile acestuia. n acest fel se
pot utiliza medii de programare a cror dimensiune depete cu mult
dimensiunea fizic a memoriei interne. De asemenea, pot fi ncrcate n
memoria intern mai multe programe sau taskuri.
3.2.3 Ierarhii de memorii
Memoria unui sistem de calcul trebuie s satisfac mai multe cerine,
adesea contradictorii: capacitate mare, timp de acces mic, cost rezonabil i
dimensiuni reduse. Aceste cerine nu pot fi ndeplinite simultan de un singur tip
de memorie. Cu tehnologia actual se pot realiza memorii de mare vitez dar de
capacitate mic (RAM static), memorii de capacitate mare i de vitez medie
(variante de memorii DRAM) i memorii de capacitate foarte mare dar cu timp
de acces mare (memorii externe pe suport magnetic sau optic).
n sistemele de calcul performante spaiul de memorare este structurat
ierarhic pe mai multe nivele, fiecare nivel avnd o capacitate mai mare dect
predecesorul, dar i un timp de acces la informaie mai mare. n figura 3.16 este
reprezentat organizarea ierarhic a memorie unui sistem de calcul.

Registre
Crete viteza
i costul

Memoria cache
Memoria principal

Crete timpul
de acces i
capacitatea

Memoria secundar
Fig. 3.16 Structura ierarhic a memoriei unui calculator

15

n vrful ierarhiei se situeaz registrele generale ale procesorului (UCP),


dup care urmeaz memoria cache, memoria principal i memoria secundar.
Memoria cache
Memoria cache este o memorie RAM rapid de mic capacitate amplasat
ntre procesor i memoria principal (operativ), n scopul mbuntirii
performanelor unui sistem de calcul. Aceast memorie mai este numit i
memorie intermediar. Marea majoritate a operaiilor executate de procesor sunt
cu memoria intern, care este o memorie de capacitate mare dar cu o vitez de
lucru mai mic dect a procesorului. Pentru a nltura o parte din dezavantajele
acestui neajuns se utilizeaz o memorie foarte rapid, dar de capacitate mic, ca
un intermediar ntre procesor i memoria intern (fig. 3.17).
Din punct de vedere fizic, memoria cache poate fi plasat n interiorul sau
exteriorul procesorului. Se urmrete ca marea majoritate a operaiilor s fie
efectuate cu memoria cache. Prin urmare, n memoria cache sunt pstrate
instruciunile i datele care au cea mai mare probabilitate de a fi utilizate n
viitorul apropiat. n acest scop exist un dispozitiv care, pe baza unor algoritmi
de predicie, va extrage informaia din memoria intern i o va depune n
memoria cache. Dac informaia cutat nu este n memoria cache, atunci va fi
cutat n memoria intern.
Algoritmii de predicie pe baza crora informaia din memoria intern este
adus n memoria cache pot fi de dou feluri:
- algoritmi care se bazeaz pe principiul localizrii: se ncarc n memoria
cache informaia care se afl n jurul adresei la care s-a fcut ultimul acces;
- algoritmi care se bazeaz pe principiul frecvenei acceselor: se aduce n
memoria cache informaia care este accesat mai des.

Procesor
(UCP)

Memoria
principal

Magistral
sistem

Memoria
cache
Fig. 3.17 Plasarea memoriei cache

O alt problem care trebuie rezolvat atunci cnd se lucreaz cu memoria


cache este cea a consistenei informaiei, adic trebuie ca informaia ce se
16

BPC-Curs

gsete n memoria cache s fie identic cu cea din memoria intern. Prin
urmare, trebuie reactualizat informaia din memoria cache.
O caracteristic important o constituie plasarea informaiei n memoria
cache. Astfel exist dou variante:
- cu memorie cache unic: datele i instruciunile folosesc aceeai memorie
cache;
- cu memorie cache divizat: instruciunile sunt ntr-o memorie cache i datele
n alta.
n cazul procesoarelor Intel (pn n 2005, deoarece de la Intel 64 biti
Xeon apare L3) memoria cache era organizat pe dou nivele: L1 i L2. Nivelul
L1, cel mai apropiat de procesor, este subdivizat n dou blocuri de cte 16
koctei, unul pentru pstrarea instruciunilor i unul pentru pstrarea datelor.
Nivelul L2 este de dimensiune mai mare (256-512 koctei) i pstreaz att
instruciuni ct i date. La ultimele variante de procesoare memoria cache i
unitatea de management a acestei memorii sunt incluse n structura procesorului.
n prezent n cazul procesoarelor Intel multicore s-a ajuns la nivelul L4.
http://en.wikipedia.org/wiki/List_of_Intel_microprocessors#64-bit_processors:_IA-64

17

3.3 Unitatea central de prelucrare


Unitatea central de prelucrare UCP (sau procesorul) reprezint nucleul
unui calculator. Rolul ei este de a executa un program din memoria intern,
care prelucreaz un set de date tot din memoria intern. Programul i datele
sunt ncrcate n memoria principal din memoria extern (secundar).
Reamintim c un program este constituit dintr-o secven de instruciuni.
Instruciunile reprezint coduri numerice ale operaiilor ce trebuie s le
efectueze unitatea central de prelucrare. Fiecare instruciune este adus n
UCP i executat. Apoi se trece la instruciunea urmtoare i aa mai departe.
Unitatea central de prelucrare cuprinde trei componente principale
(fig.3.23):
blocul registrelor generale (RG);
unitatea aritmetic-logic (UAL);
unitatea de comand i control (UCC).

UCP
GT

GF

RI

DI + BCC

NP
RS

UCC

UAL

RG

A
R1

R2

RN

Magistrala sistem
Fig. 3.23 Structura unitii centrale de prelucrare (UCP)

18

BPC-Curs

3.3.1 Blocul registrelor generale


Registrele generale (RG) au rolul unor locaii de memorie rapid n care
se pstreaz temporar diferite informaii: date, rezultate intermediare, operanzi,
etc. Registrele pot efectua operaii elementare, cum ar fi: tergere, deplasare,
rotaie, ncrcare paralel sau serial. Exist registre care pot efectua operaii
de incrementare decrementare, completnd funcia de registru cu cea de
numrtor. n registrele generale se depun datele citite din memoria principal
sau se depun datele care urmeaz s se transfere ntr-o locaie din memoria
principal. n cazul operaiilor de intrare/ieire n RG se nscriu datele care se
citesc sau se trimit ctre un dispozitiv periferic prin intermediul interfeelor de
intrare/ieire. Numrul i rolul RG difer la diverse tipuri de uniti centrale de
prelucrare, n funcie de acestea UCP-urile fiind mai performante sau mai puin
performante.
n principiu, exist dou moduri de organizare a registrelor generale (fig.
3.24):
a) registre conectate direct ntre ele;
b) registre conectate prin magistrala intern a UCP.

R1

R2

R3

R1

R2

R3

R4

R5

R6

R4

R5

R6

a)

b)

Fig. 3.24 a) conectare direct ntre registre, b) conectare prin magistral


Primul tip de organizare permite transferul simultan al datelor ntre mai multe
registre, n timp ce al doilea tip permite ca la un moment dat s se poat realiza
un singur transfer, transfer ce duce la ocuparea magistralei interne de date.
n mod uzual, n cadrul registrelor generale exist un registru numit
acumulator (A), specializat n operaii ale unitii aritmetico-logice. Acest
registru are rolul de a stoca unul din operanzii implicai n execuia unei operaii
aritmetico-logice i tot n el este stocat rezultatul operaiei.
La fel ca i locaiile de memorie, registrele generale sunt identificate n
codul instruciunii printr-un cod de adres registru. Spre deosebire de locaiile
din memoria principal, unde la un moment dat se permite accesul la o singur
locaie, registrele generale pot fi accesate simultan.
19

3.3.2 Unitatea aritmetic-logic


Unitatea aritmetic-logic UAL execut operaiile logice i aritmetice
specificate de ctre instruciunile unui program. O UAL efectueaz operaii
logice ca: negaie, I, SAU, etc. i operaii aritmetice ca: adunare, scdere,
nmulire, mprire, complement fa de 1, fa de 2, etc. n general, o UAL
primete doi operanzi i un cod de operaie (care selecteaz operaia efectuat
asupra operanzilor) i furnizeaz un rezultat, nsoit, eventual, de informaii
suplimentare asupra acestuia (condiii). Prin urmare, o UAL este un circuit
combinaional care se interpune ntre dou sau mai multe registre i modific
corespunztor datele n timpul transferului. Schema bloc de principiu a unei
uniti aritmetice-logice este prezentat n figura 3.25. n aceast schem nu s-a
mai figurat intrarea prin care se specific operaia efectuat.

R
n

A
n

UAL

Fig. 3.25 Schema bloc a unei uniti aritmetico-logice


Exist tipuri de structuri n care registrul R este un registru special numit
registru temporar sau un registru general oarecare. De asemenea, registrul n
care se depune rezultatul poate fi implicit registrul A (acumulator) sau oricare alt
registru general.
Algoritmii de nmulire i mprire se implementeaz folosind secvene
de adunri i deplasri succesive.
Exemplu: Considerm numrul natural zecimal N = 13 pe care dorim s-l
nmulim cu numrul zecimal 2. Considerm dimensiunea reprezentrii de 8 bii
i atunci numrul N se reprezint n binar prin N = 00001101 . Dac efectum
deplasarea spre stnga cu o poziie obinem 00011010 = 2610 , deci chiar
rezultatul nmulirii cu 2.

20

BPC-Curs

Prin urmare, o nmulire cu 2 k nseamn o deplasare spre stnga, n binar, cu k


poziii, iar o mprire ntreag cu 2 k nseamn o deplasare spre dreapta cu k
poziii. Dac nmulitorul nu este o putere a lui 2 se efectueaz i adunri
repetate. De exemplu, pentru efectuarea operaiei 13 3 se procedeaz astfel:
13 3 = 13 (2 + 1) = 13 2 + 13 ,
adic se face o deplasare spre stnga cu o poziie i apoi o adunare cu
denmulitul.
Scderea se efectueaz ca o adunare cu complementul scztorului.
Rezult c operaia aritmetic de baz efectuat de UAL este adunarea. Prin
urmare, elementul de baz al unei UAL este un sumator. O variant simpl de
UAL conine un set de sumatoare elementare conectate n paralel (figura 3.26).
Numrul de sumatoare elementare este egal cu numrul de bii ai cuvntului de
date, sau capacitatea registrelor generale n .

Bn-1
Tn-1

An-1
n 1

Tn-2

B1
T1

A1
1

B0
T0

A0
0

Sn-1
S1
S0
Fig. 3.26 Schema bloc a unui sumator paralel pe n bii
Pentru operaiile logice sumatoarele elementare sunt nlocuite cu circuite
care realizeaz operaia SAU, NU sau I. Complementarea fa de 1 se face
printr-o simpl inversare a biilor operandului, iar complementarea fa de 2 este
o complementare fa de 1 urmat de o adunare cu 1.
3.4.3 Unitatea de comand i control
Unitatea de comand i control UCC aduce instruciunile din memoria
principal i determin tipul lor. O instruciune reprezint o codificare a unei
succesiuni de operaii elementare, numite i microoperaii. Semnalele care
comand aceste operaii elementare sunt referite ca mirocomenzi.
Microcomenzile sunt trimise elementelor de execuie din structura
calculatorului: registre, UAL, memorie, porturi, etc., care realizeaz operaii
elementare cum ar fi: nscriere, validare ieire, tergere, deplasare stnga, etc. O
instruciune este de fapt, o succesiune de microoperaii, care compun execuia
instruciunii. Toate microoperaiile care se execut n acelai timp definesc o
stare n execuia unei instruciuni, numit i faz. Unitatea de comand i control
descompune fiecare instruciune ntr-o succesiune de faze.
21

Pentru a putea realiza funciile descrise anterior, unitatea de comand i


control, UCC, cuprinde urmtoarele componente:
Registrul de instruciuni (RI), n care se pstreaz codul instruciunii ce a
fost extras din memorie i urmeaz a fi decodificat, adic codul instruciunii n
curs de execuie.
Registrul numrtor de program (NP) (sau PC - Program Counter sau IP
Instruction Pointer) - este un registru numrtor de adrese care conine adresa
instruciunii urmtoare. Un program ce trebuie executat (o succesiune de
instruciuni) se afl nscris n locaii de memorie succesive. Adresa locaiei ce
conine codul instruciunii care a fost adus din memorie este nscris n registrul
NP. Coninutul registrului numrtor de adrese este automat incrementat dup ce
codul instruciunii a fost adus din memorie n RI, pregtindu-se astfel
instruciunea urmtoare. Registrul NP este un numrtor cu prescriere.
Posibilitatea de prescriere a unei adrese permite existena salturilor n citirea
locaiilor de memorie. Salturile, ntr-un program, sunt necesare n urma
operaiilor de decizie. Pentru iniierea unui program trebuie ncrcat NP cu
adresa de nceput corespunztoare. De exemplu, prin comanda RESET, registrul
NP este ncrcat cu o adres fixat de productor, de obicei 0.
Registrul de stare (RS) este format dintr-un set de bistabile de stare care
conin informaii legate de modul de execuie al instruciunilor (de exemplu
execuia pas cu pas, validarea ntreruperilor), de rezultatele operaiilor aritmetice
i logice (de exemplu depirea capacitii de reprezentare, transport din rangul
superior) sau informaii legate de coninutul anumitor registre (coninutul unui
registru este par sau impar, coninutul este zero, etc.). Biii din registrul de stare
mai sunt numii indicatori de condiii sau fanioane (flags), iar registrul mai este
referit ca registrul indicatorilor de condiii. Orice unitate central de prelucrare
trebuie s conin cel puin urmtorii trei indicatori de condiie:
- C - Carry (transport): se poziioneaz (este setat) C = 1, dac n urma
execuiei unei instruciuni a aprut un transport de la rangul cel mai
semnificativ sau s-a fcut un mprumut la acest rang, i este resetat C = 0 ,
dac nu a aprut transport;
- O - Overflow (depire): este setat O = 1 , dac a aprut o depire a
capacitii de reprezentare i resetat O = 0 , dac rezultatul este corect;
- Z - Zero (zero): este poziionat Z = 1, dac rezultatul este nul, i Z = 0 ,
dac rezultatul este diferit de zero.
Obs. Existena registrului de stare la un procesor permite ca setul de
instruciuni s conin i instruciuni condiionate. O instruciune condiionat se
execut sau nu n funcie de valoarea unui anumit fanion.
Decodificatorul de instruciuni (DI) este un circuit care realizeaz
decodificarea instruciunii (stabilete tipul instruciunii).
Blocul circuitelor de comand (BCC) genereaz semnalele de comand
necesare execuiei instruciunilor. Semnalele de comand sunt specifice tipului
unei instruciuni, fazei curente i informaiei de stare din UCP. n general, acest
22

BPC-Curs

bloc este implementat prin microprogramare, adic algoritmul de funcionare


este nscris ca o succesiune de cuvinte ntr-o memorie de tip ROM.
Generatorul de tact (GT) genereaz semnalele de tact (ceas, timp) pentru
funcionarea sincron a ntregului calculator. Frecvena sa determin viteza de
lucru a calculatorului.
Generatorul de faze (GF) construiete succesiunea de faze necesare
pentru execuia instruciunii al crei cod se afl n registru de instruciuni.
Fiecare instruciune se caracterizeaz printr-o secven specific de
microoperaii sau faze. Generarea fazei urmtoare este determinat de trei
elemente: faza curent, tipul instruciunii i coninutul registrului de stare RS.

3.4 Setul de instruciuni

3.4.1 Ciclul main. Ciclul instruciune


Execuia unei instruciuni de ctre un procesor implic execuia unor
operaii de baz. Aceste operaii de baz sunt: extragerea codului instruciunii
(fetch) din memorie, citirea din memorie, scrierea n memorie, citirea de la
dispozitivul de intrare, scrierea la dispozitivul de ieire, achitarea unei
ntreruperi, etc. Fiecare din aceste operaii de baz se desfoar n intervale de
timp bine stabilite, controlate de ceasul sistemului (frecvene de ordinul GHz). O
perioad de ceas (ciclu de tact) se numete stare, T . Intervalul de timp n care se
execut o operaie de baz a instruciunii se numete ciclu main (fig. 3.27).
Ciclul instruciune reprezint o succesiune de cicluri main, n care primul
ciclu ( M 1 ) este ciclul de extragere din memorie a codului instruciunii, ce
urmeaz s se execute. Altfel spus, ciclul instruciune reunete toate activitile
ce se desfoar pe parcursul unei instruciuni. n figura 3.27 este reprezentat un
ciclu instruciune format din trei cicluri main: M 1 , M 2 , M 3 .

T
M1
extragere cod
instruciune

M2
citire din
memorie

M3
scriere n
memorie

ciclul instruciune
Fig. 3.27 Ciclul instruciune format din trei cicluri main

23

innd cont de operaiile de baz efectuate de un procesor, rezult c, n


general, un procesor are urmtoarele cicluri main:
- ciclul de extragere a codului instruciunii (fetch);
- ciclul de citire din memorie (read);
- ciclul de scriere n memorie (write);
- ciclul de citire de la un dispozitiv periferic de intrare (in);
- ciclul de scriere la un dispozitiv periferic de ieire (out);
- ciclul de acceptare a unei cereri de ntrerupere;
- ciclul de acceptare a unei cereri de magistral (atunci cnd un alt dispozitiv
solicit controlul magistralei, de exemplu pentru un transfer de date).
3.4.2 Execuia instruciunilor
Procesorul execut fiecare instruciune printr-o secven de pai:
1. extrage din memorie, de la adresa specificat de numrtorul de adrese
ale programului NP, codul instruciunii (sau primul cuvnt al instruciunii
- codul operaiei) n registrul de instruciuni RI;
2. modific numrtorul de adrese NP pentru a indica urmtoarea
instruciune;
3. determin tipul instruciunii extrase n RI;
4. dac instruciunea folosete date din memorie determin adresele
datelor;
5. extrage datele, dac exist, n registrele generale ale procesorului;
6. execut instruciunea;
7. nscrie rezultatele execuiei n locul indicat de instruciune;
8. sare la pasul 1 pentru a ncepe prelucrarea urmtoarei instruciuni.
Aceast secven se numete ciclul de extragere-decodficare-execuie. Toate
calculatoarele al cror procesor are o structur de tipul celei descrise n acest
capitol lucreaz respectnd aceti pai. Instruciunile sunt aduse pe rnd n UCP
i executate.
Execuia paralel a instruciunilor
Execuia unei instruciuni cuprinde dou etape distincte:
etapa de aducerea a codului instruciunii (sau primul cuvnt COP) n
registrul de instruciuni (ciclul fetch) care este identic pentru toate
instruciunile;
etapa de execuie propriu-zis a instruciunii.
Se urmrete ca un procesor s aib o vitez de execuie a instruciunilor
ct mai mare. Viteza de propagare a unui semnal electric este limitat i deci
rezult o vitez limitat a efecturii instruciunilor ntr-un calculator. Mrirea
vitezei de execuie a instruciunilor se realizeaz prin utilizarea unor structuri
paralele. n continuare descriem succint unele soluii utilizate n acest scop:
24

BPC-Curs

a) suprapunerea etapei de execuie a unei instruciuni cu etapa de aducere


din memorie a instruciunii urmtoare (fig. 3.28).

prima instruciune

execuie

fetch

fetch

a doua instruciune

execuie

Fig. 3.28 Suprapunerea ciclului fetch cu ciclul de execuie


b) execuia unei instruciuni s fie efectuat n paralel de ctre mai multe
elemente de execuie (de exemplu, de ctre mai multe UAL care execut n
paralel operaiile care compun un algoritm de nmulire sau mprire).
c) utilizarea unei structuri pipeline (fig. 3.29a,b). De exemplu, pentru
execuia unei instruciuni se utilizeaz 5 uniti de procesare autonome. S
presupunem c fiecare pas dureaz n nsec. Atunci o instruciune se va executa
n 5n nsec. Deoarece la un moment dat se pot executa 5 instruciuni rezult o
medie de n nsec pentru o instruciune.

P1

Unitatea de extragere
instruciune

P2

Unitatea de analiz
instruciune

P3

Unitatea de calcul a
adresei

P4

Unitatea de execuie
instruciune

P5

P1
P2
P3
P4
P5

1 2 3 4
1 2 3
1 2
1

5
4
3
2
1

6
5
4
3
2

7
6
5
4
3

8
7
6
5
4

b)
b1
b2

a1
a2
UAL

bn

an

Unitatea de extragere
date

c1
c2

UAL
cn

a)

c)

Fig. 3.29 a) Structura unei maini pipeline cu cinci uniti de


prelucrare. b) Starea fiecrei uniti de execuie n timp.
c) Prelucrarea paralel a vectorilor a i b , rezultatul fiind vectorul c
25

d) Pentru prelucrarea vectorilor se pot utiliza structuri vectoriale. De


exemplu, n figura 3.29c este prezentat modul de prelucrare a doi vectori
(a1 , a2 ,, an ) i (b1 , b2 ,, bn ) , rezultatul fiind vectorul (c1 , c2 ,, cn ) . Se
utilizeaz cte o UAL pentru obinerea fiecrei componente a vectorului
rezultant.
e) Exist structuri de matrici de procesoare lucrnd n paralel, n care
fiecare procesor are o memorie proprie i execut o anumit secven de
program. De asemenea se utilizeaz i structuri multiprocesor, care conin mai
multe procesoare conectate la o aceeai magistral. Procesoarele au att
memorie comun ct i memorie local.
3.4.3 Formatul instruciunilor
O instruciune executat de UCP este codificat ntr-un format binar.
Codul unei instruciuni trebuie s conin informaii necesare interpretrii i
executrii sale de ctre UCP: tipul operaiei efectuate, operanzii, modul de
calcul al adresei operanzilor, etc. Informaiile specificate pot fi organizate n mai
multe cmpuri. Formatul instruciunilor specific numrul de cuvinte de
memorie utilizat pentru codificarea fiecrui tip de instruciune i semnificaia
cmpurilor ce formeaz instruciunea. Codul unei instruciuni are, n general,
dou cmpuri:
- codul operaiei (COP) care indic operaia efectuat de instruciune;
- cmpul de adrese care specific modul de obinerea a operanzilor. Acest
cmp poate lipsi n cazul instruciunilor fr operanzi.

a)

COP

b)

COP

Adresa

c)

COP

Adresa 1

Adresa 2

d)

COP

Adresa 1

Adresa 2

Adresa 3

Fig. 3.30 Formate de instruciuni


Formatele tipice de instruciuni sunt (fig. 3.30):
a) instruciuni fr adres, care opereaz cu date din registrul implicit (de
exemplu registrul acumulator);
26

BPC-Curs

Ex:

DAA
AAA

; Decimal Adjust for Addition - corecie zecimal dup


; adunarea n BCD mpachetat (dou cifre pe octet)
; ASCII Adjust for Addition - corecie zecimal dup
; adunarea n BCD despachetat (o cifr pe octet)

b) instruciuni cu o adres, care opereaz cu date din acumulator ca registru


implicit i un registru sau o dat din memorie.
Ex.

ADD adr

; se adun coninutul adresei adr cu valoarea din


; registrul acumulator

c) instruciuni cu dou adrese: acestea sunt de tipul registru-registru,


registru-memorie sau memorie-memorie; adresele specific registre sau
locaii de memorie;
Ex.

MOV AX, BX

; coninutul reg. BX este copiat n reg. AX

d) instruciuni cu trei adrese: aceste instruciuni specific adresele celor doi


operanzi i adresa rezultatului, care pot fi registre sau locaii de memorie;
ele sunt mai puin utilizate.
Totalitatea instruciunilor pe care le poate executa un procesor constituie
setul de instruciuni al acelui procesor. Lungimea cmpului cod operaie se
determin n funcie de numrul de instruciuni distincte din set. Astfel, dac
setul are m instruciuni sunt necesari n = [log 2 m] bii pentru codificarea lor.
Lungimea cmpului de adres utilizat pentru specificarea unui operand
determin de fapt capacitatea memoriei ce poate fi adresat. Aceasta se
stabilete n funcie de modul de organizare a memoriei. De exemplu, o memorie
de capacitate 220 octei poate fi organizat fie ca o memorie avnd lungimea
cuvntului de memorie de 8 bii, fie ca o memorie avnd lungimea cuvntului de
32 bii. n primul caz sunt necesari 20 bii pentru specificarea adresei unui
cuvnt, n timp ce n al doilea caz sunt necesari 18 bii. Cmpul de adres din
instruciune trebuie s permit accesarea oricrei locaii de memorie. n
concluzie, pentru lungimea mare a cuvntului adresa este mai scurt i deci i
cmpul de adres din instruciune i implicit instruciunea este mai scurt.
Lungimea cuvntului de memorie este de dorit s fie un octet, dac
operandul este un caracter; dac operandul este un numr n virgul mobil, este
de preferat organizarea pe 32 bii, deoarece operandul se poate obine ntr-un
singur acces la memorie. Organizarea ideal a memoriei este aceea n care
accesul este permis att la nivel de octet, ct i la nivel de 16, 32 sau 64 bii.
Pentru un calculator cu destinaie general setul de instruciuni conine
urmtoarele tipuri de instruciuni: de deplasare (registru-registru, registrumemorie, memorie-memorie), aritmetice, logice, salt i oprire.
27

3.4.4 Clasificarea unitilor centrale de prelucrare


n decursul evoluiei calculatoarelor tendina fireasc a fost de a extinde
mereu setul de instruciuni acceptat de unitatea central de prelucrare, urmrind
n acest fel simplificarea activitii de programare n limbaj de asamblare. Au
fost implementate instruciuni tot mai performante, care se apropiau tot mai mult
de instruciunile din limbajele de nivel nalt (if, while, case). Aceast tendin de
cretere a setului de instruciuni a fost susinut i de introducerea tehnicii de
implementare a UCP prin microprogramare. Conform acestei tehnici o
instruciune complex n limbaj main se execut printr-o secven de
microinstruciuni (n cadrul microprogramrii generarea semnalelor de comand
necesare execuiei unei instruciuni se face prin citirea unor cuvinte de comand
stocate ntr-o memorie de control). Cu ct setul de instruciuni este mai mare,
microprogramul devine mai mare i deci mai lent. Mai multe instruciuni
nseamn mai mult timp pentru decodificare. Ctigul const ns n instruciuni
mai puternice la ndemna programatorului.
n urma unor analize pe mai multe tipuri de programe, scrise n diferite
limbaje de programare, n care s-a urmrit frecvena de apariie a diferitelor
tipuri de instruciuni, s-a constatat c o mare parte din timpul de lucru al UCP
(80-85%), este ocupat cu execuia unui set redus de instruciuni (10-20% din
setul de instruciuni). Instruciunile de complexitate mare sunt utilizate n
proporie sczut. A aprut ideea utilizrii unui set minimal (redus) de
instruciuni. Alegerea unui set redus de instruciuni duce la o simplificare a
arhitecturii UCP, pentru c este nevoie s se decodifice mai puine instruciuni.
n felul acesta UCP poate lucra la o vitez mai mare. Restul de instruciuni sunt
emulate (simulate) prin intermediul celorlalte tipuri instruciuni. Dezavantajul
const n efortul foarte mare depus n faza de programare la nivel de limbaj de
asamblare sau ntr-o complexitate mai mare a compilatoarelor pe astfel de
calculatoare.
innd cont de cele artate anterior i de faptul c tipul i rolul registrelor
este diferit de la o unitate central de prelucrare la alta, rezult c pentru
clasificarea unitilor centrale se pot utiliza dou criterii:
a) complexitatea setului de instruciuni;
b) setul de registre.
a) n funcie de complexitatea setului de instruciuni pe care le pot
executa, unitile centrale de prelucrare pot fi mprite n dou tipuri:
de tip CISC (Complex Instruction Set Computer);
de tip RISC (Reduced Instruction Set Computer).
Uniti centrale de prelucrare de tip CISC au un set extins (complex) de
instruciuni. La o astfel de UCP o instruciune se execut n mai multe perioade
28

BPC-Curs

de tact. Ca exemplu de calculatoare care au UCP de tip CISC amintim: Intel,


VAX, DEC, IBM 360.
Unitile centrale de prelucrare de tip RISC sunt cele care utilizeaz un set
redus de instruciuni. La o UCP de tip RISC o instruciune se execut ntr-un
singur tact. De exemplu, procesoare ca Motorola 88110 (Motorola), Alpha AXP
(DEC) i Power PC (IBM, Apple i Motorola) sunt de tip RISC.
b) n funcie de setul de registre, UCP-urile se pot clasifica n:
cu set ortogonal de registre: acestea permit utilizarea tuturor
registrelor n mod omogen (identic), neexistnd registre dedicate. Astfel de
procesoare sunt cele produse de firma Motorola.
cu set neortogonal de registre sau cu registre specializate. La acest
tip fiecare din registrele interne sunt utilizate n scopuri precise. Astfel de
procesoare sunt cele ale firmei Intel.

29

Cap. 4. UNITI CENTRALE DE PRELUCRARE DE TIP


MICROPROCESOR
4.1. Istoric
list of Intel processors
http://en.wikipedia.org/wiki/List_of_Intel_microprocessors#The_16-bit_processors:_MCS-86_family

4.1. Semnalele unui microprocesor


Semnalele unui microprocesor se pot mpri, n funcie de rolul acestora,
n trei categorii:
- semnale de adres;
- semnale de date;
- semnale de comand i control.
Semnalele de adres sunt utilizate pentru adresarea locaiilor de memorie
sau a porturilor (registrelor) de intrare/ieire. Numrul de linii de adres
determin spaiul maxim de adresare al microprocesorului. Obinuit se folosesc
16, 20, 24, 32, 64 linii de adres.
Semnalele de date se utilizeaz pentru transferul informaiilor ntre
diferitele module conectate pe magistral. Numrul semnalelor de date
determin lungimea cuvntului de date ce se poate transfera printr-un ciclu de
transfer. De regul, numrul semnalelor de date este multiplu de 8 (exemplu: 8,
16, 32, 64).
Semnalele de comand i control au rolul de a controla fluxul de date i de
a sincroniza microprocesorul cu anumite evenimente externe. Aceste semnale se
pot clasifica, dup natura lor, n urmtoarele categorii:
- semnale de comand;
- semnale de ntrerupere;
- semnale pentru arbitrarea magistralei;
- semnale de stare;
- semnale diverse.

Semnale
de adres
Semnale
de date
Semnale de
comand
Semnale de
ntrerupere

Microprocesor

Semnale de arbitrare
a magistralei
Semnale de stare
Semnal de tact
Alte semnale
Alimentare

Fig. 4.2 Semnalele unui microprocesor


30

BPC-Curs

Semnalele de comand specific sensul transferului de date (citire/scriere)


precum i sursa/destinaia transferului (memorie sau port de intrare/ieire).
Fiecare semnal de comand determin un anumit tip de ciclu de transfer: citire
memorie, scriere memorie, citire port de intrare, scriere port de ieire, achitare
cerere de ntrerupere, etc. Numele acestor semnale difer de la un procesor la
altul, dar semnificaia lor este aceeai.
Semnalele de ntrerupere sunt intrri pentru microprocesor i au rolul de a
indica apariia unor evenimente externe. Acceptarea unei ntreruperi este
confirmat de microprocesor prin activarea unui semnal de comand specific.
Semnalele de arbitrare a magistralei se utilizeaz pentru controlul
accesului la magistrala sistemului. Ele sunt necesare atunci cnd pe magistral
sunt conectate mai multe module, care au dreptul de a iniia transferuri de date
pe magistral. Reamintim c aceste module sunt module master. Ele pot fi
module procesor sau module de acces direct la memorie. Modulele care pot fi
citite/scrise de ctre modulele master sunt module slave.
Semnalele de stare permit monitorizarea funcionrii microprocesorului
de ctre un depanator sau de ctre alte module legate mai strns de
microprocesor (coprocesor, controloare de magistral, etc.).
ntr-un sistem cu microprocesor se pot utiliza mai multe magistrale de
acelai tip. Avantajul utilizrii mai multor magistrale const n posibilitatea
efecturii unor transferuri n paralel. Acest lucru se recomand n cazul n care
ntr-un sistem sunt mai multe module master.

31

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