Sunteți pe pagina 1din 4

Memoria Virtuala.

Memoria virtuala reprezinta un ansamblu de tehnici si mecanisme folosite pentru a


extinde
capacitatea aparenta a memoriei principale RAM. Astfel, numarul de biti din instructiune,
care specifica adresa, depaseste capacitatea memoriei principale fizic instalata, ca
posibilitati de adresare. In aceste conditii, din programul stocat in memoria externa vor fi
aduse in memoria principala numai zonele active la un moment dat. Procesul este
transparent pentru utilizator si se desfasoara automat. Spatiul de adresare explorat de bitii de
adresa din instructiunile furnizate de procesor corespunde capacitatii memoriei virtuale. Sub
aspect fizic memoria virtuala va fi organizata in memoria secundara.
Memoria virtuala este structurata, din punct de vedere logic, sub forma de pagini,
astfel ca, o adresa furnizata de o instructiune a procesorului consta in doua campuri: numarul
paginii si adresa in pagina:
Dimensiunile unei pagini sunt mult mai mici decat dimensiunea memoriei principale
Mp. In acest mod, in memoria principala pot fi aduse, din memoria secundara, mai multe
pagini active ale unui program sau ale mai multor programe, in cazul exploatarii sistemului in
regim de multiprogramare.

Memoria Cache
Reprezinta o memorie rapida care serveste ca zona de tampon intre memoria
principala si procesor. Cache-ul retine datele care au fost recent folosite de catre procesor si
evita intoarcerea datelor inapoi in memoria principala (mai lenta decat cache-ul) si astfel
datele sunt procesate mult mai repede. Atunci cnd UCP ncearc citirea unui cuvnt din
memorie, se testeaz dac respectivul cuvnt se afl n memoria cache. n caz afirmativ,
cuvntul este furnizat unitii centrale. n caz contrar, se ncarc n memoria cache un bloc al
memoriei principale, constnd dintr-un numr fix de cuvinte, iar apoi cuvntul este returnat
unitii centrale. Atunci cnd este adresat un cuvnt, acesta este transferat din memoria lent
n memoria cache, astfel nct la urmtoarea utilizare va putea fi accesat n mod rapid.
Atunci cnd este ncrcat un nou bloc n memoria cache, unul din blocurile
existente n aceast memorie trebuie nlocuit. Este necesar un algoritm care s selecteze
blocul care va fi nlocuit. Se prezint principalii algoritmi utilizai.
LRU (Least Recently Used): Se nlocuiete blocul care a fost cel mai puin recent
utilizat. Deoarece se presupune c blocurile utilizate cel mai recent au probabilitatea
cea mai mare de a fi accesate, aceast metod d cele mai bune
rezultate.
FIFO (First-In, First-Out): Se nlocuiete blocul care a fost ncrcat primul n
memoria cache (cel mai puin recent).
LFU (Least Frequently Used): Se nlocuiete blocul care a fost utilizat cel mai
puin.
Exist i o tehnic bazat pe nlocuirea aleatoare a unui bloc, fr a se ine cont
de utilizarea acestuia.

Memoria ROM
Memoria ROM (Read Only Memory memorie care poate fi doar citit) este un tip
de memorie permanenta (informaia coninut de acest tip de
memorie nu se pierde la oprirea calculatorului si nu poate fi schimbata de procesor sau
utilizator). De exemplu in ROM se pastreaza instructiuni utlizate de procesor la pornirea
computerului.
Memoriile ROM se mpart n trei grupe:
1. Memoriile ROM programate de ctre productor, dup cerinTele utilizatorului, prin

realizarea unor msti de programare specifice fiecrui set de circuite realizat. Ele reprezint
soluTia final, implementat n produse de cel puTin cteva sute de bucTi (pentru a fi
economic). Orice modificare ulterioar dorit presupune comanda unui nou set de memorii.
2. Circuitele PROM (programmable ROM - ROM programabil), care sunt programate
individual, de ctre utilizator. Programarea acestora este realizat prin distrugerea selectiv,
conform informaTiei ce se memoreaz, a unor micro-fuzibile, prin aplicarea unor tensiuni mai
mari, de programare, pe biTii doriTi (Fig. 3.23). Dup programare, la citirea din memorie,
folosind mecanisme similare de adresare si selecTie a celulelor, ca si pentru memoriile RAM,
conTinutul celulei selectate va fi transmis pe magistrala de date a cipului. InformaTia va avea
valoare logic "0" pentru celulele cu fuzibilul distrus, respectiv "1" pentru celulele cu fuzibilul
intact (n starea iniTial, circuitul conTine n toate celulele, valoarea "1" - fuzibile intacte). Si
n
cazul circuitelor PROM, informaTia odat memorat nu mai poate fi modificat.
3. Memoriile EPROM (erasable PROM - memorie PROM reprogramabil) ofer
posibilitatea reprogramrii memoriilor ROM. Acestea reTin informaTia ca o sarcin ntr-o
celula MOSFET (metal-oxid-semiconductor FET - field effect transistors), putnd fi stears,
prin expunerea cipului la o surs de radiaTii ultraviolete (cipul este prevzut cu o "fereastr"
de cuarT, n zona celulelor de memorie). Dup stergere, cipul poate fi reprogramat.

Memoria RAM
Memoria RAM stocheaz informaTii variabile. Unitatea central, sub controlul
programului, poate citi sau modifica conTinutul unei celule de memorie RAM. Memoria
RAM
poate fi de dou feluri: static sau dinamic.
a) Memoria RAM dinamic reTine informaTia prin ncrcarea cu sarcin electric a
capacitTii porTii unui tranzistor MOS. Deoarece sarcina acumulat pe capacitate scade n
timp, prin descrcarea acesteia, informaTia se va pierde dac nu se reface periodic. Aceast
operaTie de remprosptare (refresh) a memoriei RAM dinamic, depinde de valoarea
constantei RC a circuitului, (12 ms, cu C de ordinul fracTiunilor de pF) si depinde de tipul de
memorie utilizat.
Remprosptarea are loc prin efectuarea unei operaTii de citire, pe durata creia, de
obicei, este oprit accesul procesorului la circuitul de memorie respectiv. Aceast
inaccesibilitate pe perioada de remprosptare ocupa 15% din timpul total de lucru al
memoriei dinamice.
Memoria RAM dinamic prezint dou mari avantaje faT de cea static:
1. consumul de putere mult mai redus (cnd nu este adresat, consum putere doar pe
perioadele de remprosptare);
2. numrul de tranzistoare pe celul mai mic, deci densitTi mult mai mari de celule de
memorie pe cip.
b) Memoria RAM static nu necesit remprosptare. Celulele de memorie sunt
bistabile, similare ca schem de principiu cu bistabilele convenTionale.
Memoria static nu necesit circuite externe speciale si nu prezint probleme de
sincronizare a ciclurilor de remprosptare cu operaTiile normale de citire/scriere ale unitTii
centrale.

Ierarhie de memorie
Tendinta generala a calculatoarelor mari, cat si a calculatoarelor personale, este
extinderea utilizarii ierarhiilor de memorii. Motivul principal a acestei tendinte se datoreaza
modului in care opereaza programele. Prin analize statistice ale unor programe tipice s-a
constatat ca in orice interval de timp dat referintele la memorie tind sa se restranga in zone

locale ale memoriei. Aceasta proprietate este cunoscuta sub numele de localitate a
referintelor. Exista trei concepte asociate cu localitatea referintelor: localitatea spatiala,
temporala si secventiala. Aceste concepte sunt definite in continoare.
Localitatea spatiala. De multe ori, un program utilizeaza date si instructiuni ale caror
adrese sunt apropiate unele de altele in spatiul de adrese. De exemplu, referintele la
elementele unui tablou apar intodeauna in cadrul unei anumite zone limitate din spatiul de
adrese . Similar, daca UCP face referire la o instructiune I de un cuvant, memorata la o
adresa data A, instructiunea cea mai probabila de a fi referentiata in continuare de catre UCP
este cea mai imediat urmatoare dupa I, a carei adrese este A+1.
Localitatea temporala. Datele sunt instructiunile referite recent au o posibilitate
ridicata de a fi referite in viitorul apropiat. De exemplu, un grup de instructiuni dintr-o bucla
interativa sau o subrutina pot fi executate in mod repetat, rezultand o frecventa ridicata a
referintelor la adresele acestora.
Localitatea secventiala. Majoritatea instructiunilor dintr-un program sunt executate
intr-o ordine secventiala. Instructiunile care pot determina executia intr-o ordine diferita de
cea secventiala sunt salturile sau apelurile de proceduri. Acestea reprezinta insa doar intre
20% si 30% din totalul instructiunilor. De aceea, intre 70% si 80% din instructiuni sunt
executate in aceeasi ordine in care ele sunt pastrate in memorie.
Nivelul cel mai inalt, M1, este repreyentata de unitatea de memorie cea mai rapida, cu
dimensiunea cea mai redusa, si cu costul cel mai ridicat, fiind amplasat cel mai aproape de
procesor. Urmatorul nivel, M2, care este mai lent, are dimensiuni mai mari si un cost mai
redus decat nivelul M1, fiind amplasat mai departe de procesor. Acelasi lucru este valabil
pentru nivelele M3 pana la Mn. In general, pe masura ce nivelul creste, viteza si deci costul pe
bit creste in mod proportional, ceea ce tinde sa micsoreze capacitatea memoriei de la acel
nivel.

Celula de memorie
O celula de memorie este blocul consecutiv al unei unitati de memorie. Desi se
utilizeaza o diversitate de tehnologii, toate celulele de memorie semiconductoare reprezinta
urmatoarele proprietati:

Au doua stari stabile (sau semi-stabile), care pot fi utilizate pentru a reprezenta
valori binare 0 si 1.

Pot fi inscrise (cel putin o data) pentru setarea starii.

Pot fi citite pentru sesizarea starii.


O celula de memorie poate fi construita utilizand un numar redus de tranzistoare (unul
pana la sase tranzistoare, in functie de tehnologie). Restrictia principala asupra proiectaii unei
celule este dimesiunea sa. Obiectivul este ca dimensiunea celulei sa fie cat mai redusa, astfel
incat sa fie impachetate mai multe celule in spatiul disponibil din cadrul unei capsule.
Exista doua tipuri de memorii cu acces aleator, statice (SRAM) si dinamice (DRAM).
Atat memoriile statice cat si cele dinamice sunt volatile, deci informatia memorata este
pierduta atunci cand alimentarea cu energie este intrerupta. Memoriile statice constau din
celule asemanatoare cu bistabile utilizate in proiectarea logica. Celulele memoriilor SRAM
difera la bistabile in principal prin metodele utilizate pentru adresarea celulelor si transferul
datelor. Se utilizeaza linii multifunctionale care minimizeaza complexitatea celulelor de
memorare si numarul de conexiuni ale celulelor, facilitand astfel fabricarea matricelor 2D de
celule de memorare cu dimensiuni mari. Memoriile statice retin datele atunci cand un cuvant
este citit de acesta. De aceea aceste memorii au proprietatea ca citirea este nedistructiva.
Intr-o celula de memorie DRAM, starile 1 si 0 corespund prezentei sau absentei unei
sarcini memorate intr-un condensator controlat de un circuit de comutare, de obicei un
tranzistor. Condensatorul unei celule DRAM trebuie reincarcat periodic. Operatia de
reincarcare a condensatoareloreste numita reimprospatare. Deci, o memorie DRAM trebuie sa

contina un circuit de reimprospatare si sa alterneze operatiile de reimprospatare cu accesele


normale la memorie. Datele continute in memoriile dinamice trebuie rescrise in locatia
corespunzatoare de memorie dupa fiecare operatie de citire. De aceea, memoriile dinamice
sunt caracterizate prin proprietatea ca citirea este distructiva.
Deoarece o celula de memorie DRAM poate fi construita utilizand un singur
tranzistor, in timp ce o celula de memorie SRAM necesita pana la sase tranzistoare, la
memoriile dinamice se obtine o densitate de memorare mai ridicata. In consecinta, o memorie
RAM dinamica este mai putin costisitoare decat o memorie RAM statica corespunzatoare. Pe
de alta parte, o memorie RAM dinamica necesita un circuit de reimprospatare. Pentru
memorii de dimensiuni mari, costul fix al circuitului de reimprospatare ete mai mult decat
compensat de costul variabil mai redus al celulelor RAM dinamice. Astfel, memoriile RAM
dinamice sunt favorizate pentru memorii de dimensiuni mari. Un alt aspect este ca memoriile
RAM statice sunt mai rapide decat memoriile RAM dinamice.

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