Anda di halaman 1dari 6

Arhitectura calculatoarelor 242

De obicei, memoriile ROM utilizeaz organizarea 2D, toti bitii unui cuvnt
Iiind n cadrul aceluiasi circuit. Memoriile RAM sunt organizate de multe ori ca avnd
un singur bit ntr-un circuit integrat.
8.4. Memoria stiv
Memoria stiv este o list liniar de date elementare, n care inserarea, elimina-
rea si accesul la elementele de date se eIectueaz la un singur capt al acesteia. Se mai
numeste list de tip LFO (Last-In, First-Out).
n Iunctie de modul de implementare, stiva poate Ii de mai multe tipuri:
Stiv software, organizat n memoria intern;
Stiv cablat (hardware);
Stiv partial cablat.
IndiIerent de modul de implementare, o stiv trebuie s permit eIectuarea ur-
mtoarelor operatii:
Introducere (inserare): PUSH;
Extragere (eliminare): POP;
Acces la elementul din vrIul stivei.
8.4.1. Tipuri de memorii stiv
8.4.1.1. Stiva impIementat n memorie
Stiva poate Ii simulat n memoria intern a calculatorului, utilizndu-se adre-
sarea conventional. Gestionarea stivei se poate realiza prin soItware, existnd instructi-
uni speciale si registre dedicate pentru operatiile cu stiva (Figura 8.5).
Figura 8.5. Stiv implementat n memorie.
8. Unitatea de memorie 243
Stiva poate Ii deIinit cu ajutorul a dou registre. Registrul BP indic baza sti-
vei, iar registrul SP indic vrIul stivei. Adresa de baz a stivei rmne Iix, n timp ce
adresa care indic vrIul stivei se modiIic la Iiecare operatie de introducere si eliminare
din stiv. Instructiunile speciale de lucru cu stiva modiIic automat continutul registrului
SP.
De obicei, stivele cresc spre adrese mici, elementul din vrIul stivei avnd
adresa cea mai mic, dar exist si stive care cresc spre adrese mari. Indicatorul de stiv
poate contine adresa ultimului cuvnt ocupat din stiv (elementul din vrIul stivei), sau
adresa primului cuvnt liber din stiv.
Presupunnd c stiva creste spre adrese mici, iar SP indic elementul din vrIul
stivei, instructiunea de introducere a unui element n stiv decrementeaz registrul SP si
copiaz elementul respectiv n stiv. Instructiunea de extragere a unui element din vrIul
stivei copiaz acest element ntr-un registru sau un cuvnt de memorie si incrementeaz
registrul SP.
n cazul stivei simulate n memorie, pe lng operatiile obisnuite cu stiva, se
pot citi sau modiIica elemente oarecare din stiv, prin adresarea lor relativ Iat de re-
gistrul de baz al stivei (BP).
8.4.1.2. Stiva cabIat
Spre deosebire de stiva simulat n memorie, la care vrIul stivei se deplaseaz
n timp ce inIormatiile din stiv rmn Iixe, n cazul stivei cablate exist un vrI Iix si
inIormatiile din stiv sunt translatate la Iiecare operatie de introducere sau eliminare din
stiv (Figura 8.6).
Figura 8.6. Stiv cablat.
Stivele cablate pot avea un registru de stare asociat, care indic dac stiva este
goal (EMPTY) sau plin (FULL). La ncercarea de extragere a unui element din stiva
goal se poate activa un semnal de eroare UNDERFLOW, iar la ncercarea de introduce-
re a unui element n stiva plin se poate activa un alt semnal, OJERFLOW.
Arhitectura calculatoarelor 244
Stivele cablate au avantajul unei viteze ridicate de eIectuare a operatiilor.
Dezavantajul lor este dimensiunea limitat.
8.4.1.3. Stiva par|iaI cabIat
Dac dimensiunea stivei cablate este redus, este indicat completarea acesteia
cu o stiv simulat n memoria intern, pentru cazurile de depsire de capacitate a stivei
cablate (Figura 8.7).
Figura 8.7. Stiv partial cablat.
8.4.2. CaIcuIatoare orientate pe stiv
Calculatoarele obisnuite sunt de tip von Neumann, Iiind denumite si masini cu
registre. Acestea utilizeaz un limbaj masin n care instructiunile adreseaz explicit sau
implicit registrele UCP si n mod explicit locatii de memorie, Iiind posibile mai multe
Iormate de instructiuni, cu 1 pn la 3 sau 4 adrese.
Utilizarea limbajelor evoluate necesit calculatoare care simpliIic compilarea
si executia programelor scrise n aceste limbaje. n acest sens, calculatoarele orientate pe
stiv, care utilizeaz o stiv cablat n UCP, n locul registrelor, rezolv n mod eIicient
o serie de probleme legate de compilarea si executia programelor scrise n limbaje evo-
luate.
Aceste calculatoare utilizeaz instructiuni Ir adres, care pot speciIica extra-
gerea a doi operanzi din stiv, eIectuarea unei operatii asupra lor si depunerea rezulta-
tului n stiv (Figura 8.8).
8. Unitatea de memorie 245
Figura 8.8. Utilizarea stivei pentru pstrarea operanzilor si a rezultatului unor operatii
aritmetice.
Dintre problemele care se rezolv n mod eIicient de calculatoarele orientate pe
stiv, se amintesc:
TransIormarea expresiilor aritmetice din Iorma infixat n Iorma postfixat;
Evaluarea expresiilor aritmetice.
8.4.2.1. Nota|ia poIonez pentru expresiiIe aritmetice
Forma expresiilor aritmetice n care un operator apare ntre operanzi corespun-
de notatiei infixate. De exemplu:
A (B C)
Notatia polone: este o tehnic de scriere a expresiilor aritmetice care a Iost
introdus de logicianul polonez J. Lukasiewit: (1958). Exist notatia polonez prefixat
si notatia postfixat.
Fie E
1
si E
2
dou expresii aritmetice. Dac E este o expresie aritmetic, E E
1
o E
2
, unde o este un operator aritmetic, atunci Iorma polonez preIixat a expresiei E
este oE
1
E
2
, unde E
1
si E
2
sunt Iormele poloneze preIixate ale expresiilor E
1
si E
2
.
Forma polonez postIixat a expresiei E este E`
1
E`
2
o, unde E`
1
, E`
2
sunt Ior-
mele poloneze postIixate ale expresiilor E
1
si E
2
. Forma polonez preIixat si postIixat
a unui operand coincid cu operandul nsusi.
Forma polonez postIixat, numit si Iorma polonez invers, este cea mai uti-
lizat. Ea are cteva avantaje Iat de notatia inIixat:
Expresiile pot Ii scrise Ir paranteze;
Regulile de precedent ale operatorilor inIixati, reguli stabilite n mod arbitrar,
nu mai sunt necesare.
Evaluarea expresiilor se realizeaz mai simplu la calculatoarele care dispun de
memorie stiv.
Arhitectura calculatoarelor 246
Se prezint n Tabelul 8.2 cteva exemple de expresii inIixate si expresiile
postIixate echivalente.
Tabelul 8.2. Exemple de expresii inIixate si postIixate.
Infix Postfix
A (B + C) A B C +
A B + C A B C +
A B + C D A B C D +
(A + B) / (C - D) A B + C D - /
((A + B) C + D) / (E + F) A B + C D + E F + /
Ordinea operanzilor este aceeasi la ambele notatii. TransIormarea expresiilor se
reduce la amplasarea operatorilor n pozitiile corespunztoare.
8.4.2.2. EvaIuarea expresiiIor postfixate
Pentru evaluare se poate utiliza urmtorul algoritm:
1. Se examineaz Iiecare simbol din expresia postIixat, ncepnd de la stnga,
pn cnd se ajunge la un operator.
2. Se eIectueaz operatia indicat asupra celor doi operanzi de la stnga operato-
rului, si se memoreaz rezultatul.
3. Se sterg operanzii si operatorul, n locul lor trecndu-se rezultatul obtinut ante-
rior.
4. Dac expresia const acum dintr-o singur valoare, aceasta reprezint rezulta-
tul si algoritmul se termin. n caz contrar, se continu cu pasul 1.
ExempIuI 8.1
Expresia inIixat: (8 + 2 * 5) / (1 + 3 * 2 - 4)
Expresia postIixat: 8 2 5 * + 1 3 2 * + 4 - /
Etapele evalurii sunt urmtoarele:
8 2 5 * + 1 3 2 * + 4 - /
8 10 + 1 3 2 * + 4 - /
18 1 3 2 * + 4 - /
18 1 6 + 4 - /
18 7 4 - /
18 3 /
6
8. Unitatea de memorie 247
Se consider o expresie postIixat Iormat din n simboluri, Iiecare din ele re-
prezentnd o constant sau un operator. Pentru evaluarea acestei expresii prin utilizarea
unei stive, se poate utiliza algoritmul urmtor.
1. Se initializeaz o variabil k cu 1.
2. Se atribuie unei variabile s valoarea simbolului cu numrul de ordine k din ex-
presia postIixat (de exemplu, dac k 1, s ia valoarea primului simbol al ex-
presiei).
3. Dac s este o constant, se memoreaz n stiv si se trece la pasul 5.
4. Dac s este un operator, se extrag cele dou elemente din vrIul stivei, si se
eIectueaz asupra lor operatia indicat de s, astIel nct elementul din vrIul
stivei reprezint operandul din dreapta operatorului. Rezultatul se memoreaz
n stiv.
5. Dac k n (s-a ajuns la ultimul simbol al expresiei), operatia se termin, re-
zultatul Iiind n vrIul stivei. n caz contrar, se incrementeaz k si se continu
de la pasul 2.
ExempIuI 8.2
Expresia inIixat: (8 + 2 * 5) / (1 + 3 * 2 - 4)
Expresia postIixat: 8 2 5 * + 1 3 2 * + 4 - /
Se prezint n Figura 8.9 stiva pentru Iiecare pas al operatiei.
8.5. Memoria cache
8.5.1. PrincipiuI memoriei cache
Viteza UCP este superioar vitezei memoriilor, astIel c dup initierea unui
ciclu de acces la memorie, UCP trebuie s rmn inactiv un timp, asteptnd rspunsul
acesteia.
2
5 3 3 6 4
2 2 10 1 1 1 1 7 7 3
8 8 8 8 18 18 18 18 18 18 18 18 6
1 2 3 4 5 6 7 8 9 10 11 12 13
Figura 8.9. Continutul stivei la evaluarea unei expresii postIixate.

Anda mungkin juga menyukai