Professional Documents
Culture Documents
Memoria extins este memoria peste limita de 1Mo , dar care este accesat direct, atunci cnd
procesorul lucreaz n modul de lucru protejat (nu mai este necesar un hardware specializat pentru a mapa
memoria superioar ntr-un spaiu de adrese de pn la 1Mo (figura 2).
Primii 64ko peste limita de 1Mo poart denumirea de High Memory Area i pot s fie accesai de
ctre procesor (I80286-I80486) n modul real.
Un program special (manager de memorie ) denumit HIMEM.SYS trebuie ncrcat pentru a asigura
accesul al memoria extins (eXtended Memory Specification - XMS).
Programul EMM386.EXE poate utiliza memoria XMS pentru a emula memoria EMS (dac nu exist
placa de memorie expandat n sistem).
Memoria EMS nu trebuie confundat cu memoria XMS. Memoria EMS a fost dezvoltat pentru a
crete performanele sistemului pentru modul real , iar memoria XMS a fost conceput pentru lucrul pe
modul protejat. Memoria expandat nu ocup o zon specific de adrese ci este asociat cu un mecanism
special de mapare ce face ca aceast memorie s poat fi accesat, n pagini, din spaiul de adrese specifice
modului real (pn la 1 Mo). Memoria extins apare n mod natural pentru modul de lucru protejat.
5. Memoria expandata
Memoria expandat este memoria peste limita de 1Mo , dar care apare n interiorul spaiului de adrese
asociate primului Mo. Exist o metod (specificaie) ce face posibil accesarea unei zone de memorie de
adres peste 1Mo n spaiul de adrese din interiorul primului Mo. Aceast specificaie se nunete Expanded
Memory Specification - EMS . Calculatorul trebuie s posede un hardware special ( plac de memorie
EMS) ; acest hardware dedicat face ca memoria de la adrese peste 1Mo s se "vad " din interiorul unei
ferestre de memorie din spaiul de adresare de pn la 1Mo (figura 1).
Un program special (manager de memorie ) numit EMM386.EXE trebuie ncrcat pentru a avea acces
la memoria expandat. Orice procesor (I8086 - I80486) poate avea acces la memoria expandat , chiar i n
modul real de lucru.
Dezavantajul memoriei expandate este acela c utilizeaz un hardware complex.
Valoare intoarsa
- operatie cu succes : un pointer catre blocul alocat
- operatie cu eroare : pointerul NULL (daca nu exista spatiu in heap)
Daca argumentul size=0 functia malloc intoarce NULL.
8. Alocarea memoriei cu functia allocmem.
allocmem
<DOS.H>
Declaratie:
int allocmem(unsigned size, unsigned *segp);
Functia allocmem utilizeaza functia DOS 0x48 pentru a aloca un bloc de memorie DOS caracterizat
print-un antet de 16 octeti astfel :
- octetul 0 : este 'M' sau 'Z'
- octetii 1 si 2 : reprezinta adresa de segment a blocului alocat (0000 daca blocul a fost eliberat)
- octetii 3 si 4 : reprezinta lungimea blocului in multiplii de 16 octeti
- octetii 5 - 15 : neutilizati
Semnificatia parametrilor este :
Parametru
Semnificatie
size
Numarul de grupuri de 16 biti cerute
segp
Pointer catre un segment alocat
NOTA: Functia malloc nu poate coexista cu funcia allocmem.
Valoare intoarsa
Operatie cu succes : -1
Operatie cu eroare : lungimea blocului de dimensiune maxima(dar mai mica decit cea solicitata, si un cod de
eroare DOS)
Memoria comun este un circuit mai complex ce include memoria propriu-zis i un controler care
arbitreaz conflictele de acces ce pot apare dac cele dou procesoare cer accesul "simultan" la memoria
comun.
Conflictele de acces pot apare dac un procesor citete iar cellalt scrie aceeai locaie de memorie
sau dac ambele procesoare scriu n aceai locaie de memorie.
Circuitul de arbitrare a conflictelor de acces are urmtoarele funcii :
- compar adresele generate de cele dou procesoare pentru memoria comun
- genereaz semnalele de control pentru memoria comun ( de exemplu WE/ )
- genereaz semnale pentru blocarea unui ciclu de acces (cel sosit puin mai trziu); se genereaz de
exemplu un semnal BUSY/ .
n figura 3. este ilustrat o soluie constructiv fr controler integrat (memoria comun este o
memorie RAM uzual).
Dezavantajul soluiei din figura 3 este complexitatea hardware n raport cu soluia integrat din figura 2.
10. Metoda de conectare cu impartirea bus-urilor intr-un sistem multiprocessor.
Explicati rolul semnalelor din schema urmatoare:
- mapare direct
- mapare asociativ (fully associative)
- mapare asociativ pe seturi (set associative) .
18. Maparea memoriei cache metoda directa
Maparea direct a memoriei cache este ilustrat n figura 2. Adresa din memoria principal (adresa
fizic) se compune din cmpurile : tag, bloc i cuvnt.
n acest caz blocul i din memoria principal este asociat cu blocul (i mod nr_blocuri_n _cache) = (i
mod 128) din memoria cache. Fiecare bloc din cache are asociat un cmp "tag" (primii 7 bii mai
semnificativi ai adresei fizice n memoria principal ).
Cmpul tag din adresa memoriei principale se compar cu fiecare cmp "tag" al memriei cach. Dup
gsirea corespondenei dintre cmpurile tag se alege cmpul "bloc" din adresa memoriei principale i cmpul
"cuvnt" din aceeai adres pentru selectarea octetului ce va fi transferat din blocul memoriei cache (dat de
tag) n blocul memoriei principale (dat de cmpul bloc i cmpul cuvnt al adresei n memoria principal).
Avantajul acestei mapri directe este accesul simultan la datele dorite i la cmpul tag (nu se face o
cutare asupra cmpului tag). Dac cmpul tag nu exist n memoria cache , datele vor fi suprimate.
Un dezavantaj al maprii directe apare atunci cnd dou sau mai multe blocuri din memoria
principal, utilizate alternativ, snt asociate aceluiai bloc din cache. Aceast situaie are probabilitate mic n
sistemele uniprocesor, dar probabilitatea crete pentru sistemele multiprocesor cu memorie cache comun.
---------------------------------------------------------------------------------------------- -----------------
Observaii:
- dimensiunea blocului n memoria cache este aleas n raport cu proprietatea de localizare a programelor.
- memoria cache este adresat cu adrese fizice i nu cu adrese virtuale (se elimin etapa de translatare a
adresei virtuale n adres fizic)
- algoritmii de reamplasare a blocurilor din memoria cache determin performana memoriei cache,
exprimat ca rat de pierderi (numr de ncercri euate de a gsi informaia dorit n cache).
21. Factori de care depinde rata de pierderi pentru memoria cache.
Exist urmtoarele politici de reamplasare a blocurilor din memoria cache:
1. Least recently used (LRU) - se nlocuiete blocul din cache cel mai puin recent utilizat , relativ la
momentul de timp curent (se face o analiza a utilizarii blocurilor existente n memoria cache cu un anumit
numr de momente de timp n urm n raport cu momentul de timp curent, la care trebuie s se produc o
reamplasare).
2. First In First Out (FIFO) - se nlocuiete blocul din cache care a stat n memoria cache cel mai
mare interval de timp.
3. Last In First Out (LIFO) - se nlocuiete blocul din cache care a stat n memoria cache cel mai mic
interval de timp.
4. Random (RAND) - se alege, n mod aleator ,un bloc din memoria cache ce va fi nlocuit.