Sunteți pe pagina 1din 14

UNIVERSITATEA „SPIRU HARET

FACULTATEA DE STIINTE JURIDICE SI STIINTE ADMINISTRATIVE

TEMA CERCETARE „ MEMORIA RAM„

STUDENT : BACESCU MIHAI ALEXANDRU

BUCUREȘTI
2020

-1-
CUPRINS

Argument....................................................................................
Capitolul I...................................................................................
1.1 Elemente componente ale memoriei..................................
1.2 Tipuri de memorii...............................................................
Capitolul II...............................................................................
2.1 Caracteristicile memoriilor...............................................
2.2 Clasificarea caracteristicilor unei memorii RAM.....................
Capitolul III.................................................................................
3.1 Domenii de aplicabilitate a memoriei.....................................

-2-
ARGUMENT

Industria memoriilor este una dintre cele mai dinamice aplicatii ale electronicii din zilele noastre.
In ultimi ani chip-urile de memorie au avansat intr-un ritm alert, ceea ce a dus la o scadere dramatica a
pretului/MB. Factorul principal care a dus la cresterea productiei fund cererea de memorie, care a crescut
datorita programelor ce utilizeaza tot mai multa memorie dar si datorita avantajului (din punct de vedere al
performantelor) pe care memoria RAM il ofera in comparatie cu alte tehnologii de stocare a informatiei. In
acelasi timp performantele noilor module au fost imbunatatite, au scazut timpii de acces iar viteza bus-ului
a crescut. Toate aceste caracteristici au fost implementate din cauza mai multor factorii de ordin tehnic,
unul dintre acestia ar fi evolutia procesoarelor, care prin cresterea frecventei introduc necesitatea cresterii
performantelor pentru memorii. In lungul timpului memoriile au fost construite prin prisma mai multor
tehnologii, dintre acestea doar o parte au reusit sa se impuna pe piata. Principalul motiv fiind, dupa cum
multi dintre noi cunosc, raportul pret/perfomanta.
Aceasta componenta permite lucrul cu diferitele informatii din sistem. Exista doua mari categorii
de memorii: RAM Random Access memory (memorie cu acces aleator) si ROM Read Only Memory
(memorie doar pentru citire).
Ele sunt circuite electronice care pot memora o anumita cantitate de informatie.
Unii includ in termenul de memorie si orice dispozitiv pentru stocarea datelor, cum sunt discurile,
dar ne referim aici numai la memoria RAM sau memoria de sistem, cea care se sterge la oprirea sistemului.
Prin memoria de sistem se intelege acea components care are rolul de a stoca temporar date folosite de
computer in timpul functionarii sale. Fizic, este vorba de niste placute care se monteaza pe placa de baza, si
ele contin circuite de memorie.
Orice program lansat in executie manevreaza diverse date, si pe perioada procesarii acestora ele
sunt stocate in circuitele de memorie, care sunt foarte rapide in comparatie cu alte dispozitive de stocare din
sistem. Cu cit un sistem are mai multa memorie RAM, cu atit are mai mult spatiu temporar de manevrare a
datelor, si poate procesa blocuri mai mari de date, sau poate lucra simultan cu mai multe programe. Cand
memoria RAM ajunge sa se umple, sistemul incepe sa functioneze mai greu.
Poti vedea cata memorie RAM are sistemul tau chiar de la pornire, cind se face un test initial al
circuitelor de memorie, si apare un contor care avanseaza rapid pina la volumul total al memoriei instalate.
Un sistem cu performante medii are astazi 128 MB de memorie RAM. In lipsa memoriei RAM, sau daca
memoria RAM este defecta, sistemul poate refuza sa porneasca, deci si memoria este o componenta vitala a
computerului.

-3-
Capitolul I

1.1 Elemente componente ale memoriei

Este denumirea generica pentru orice tip de memorie care define urmatoarele caracteristici: poate fi
accesata aleator (nu secvential, precum benzile magnetice), este volatila (la Tntreruperea alimentarii cu
energie electrica, datele stocate se pierd) si se prezinta sub forma de cip-uri (asadar excludem dispozitivele
magnetice sau optice, precum hard disk-urile sau CD-urile). Utilitatea memoriei RAM este foarte mare, ea
beneficiind in plus fata de alte medii de stocare a informatiilor de o viteza extrem de mare, fund de mii de
ori mai rapida decat un hard disk, de exemplu.
Deoarece memoria RAM se monteaza pe placa de baza, si exists citeva tipuri distincte de
arhitectura a placutelor de memorie, orice adaugare sau inlocuire de memorie RAM trebuie facuta tinind
cont de ceea ce poate fi montat pe placa ta de baza. O placa de baza poate suporta numai un anumit tip
(uneori 2 tipuri, dar nu simultan) de placute de memorie.
Orice program lansat in executie manevreaza diverse date, si pe perioada procesarii acestora ele
sunt stocate in circuitele de memorie, care sunt foarte rapide in comparatie cu alte dispozitive de stocare din
sistem. Cu cit un sistem are mai multa memorie RAM, cu atit are mai mult spatiu temporar de manevrare a
datelor, si poate procesa blocuri mai mari de date, sau poate lucra simultan cu mai multe programe. Cind
memoria RAM ajunge sa se umple, sistemul incepe sa functioneze mai greu.
Poti vedea cita memorie RAM are sistemul tau chiar de la pornire, cind se face un test initial al
circuitelor de memorie, si apare un contor care avanseaza rapid pina la volumul total al memoriei instalate.
Un sistem cu performante medii are astazi 128 MB de memorie RAM. In lipsa memoriei RAM, sau daca
memoria RAM este defects, sistemul poate refuza sa porneasca, deci §i memoria este o components vitala a
computerului.
Memoria RAM este volatila, in sensul ca ea pierde toata informatia inmagazinata,la inchiderea
calculatoruli. Memoria ROM este nevolatila, in sensul ca ea pastreaza nealterata informatia chiar si dupa
inchiderea calculatorului.
Unitatea cea mai mica de masura a informatiei este bit-ul El ne arata daca un eveniment a avut sau
nu a avut loc si este reprezentat printr-o valoare 0 sau 1. 8 biti formeaza un octet sau un byte sau bait. In
general o celula de memorie poate memora o informatiede 8 biti deci un bait.
Capacitatea memoriei se masoara de obicei in megabaiti. Avem marimi standard de 32 Mb
megabaiti, 64 Mb, 128Mb,256 Mb 512 Mb etc.
Memoria volatila (memoria nepermanenta sau memoria interna) RAM: Este memoria de lucru a
sistemului. In aceasta memorie sistemul incarca diverse programe sau aplicatii pe care microprocesorul le
executa instructiune cu instructiune.

-4-
In continuare, este prezentata o scurta descriere a modului de functionare pentru cele mai raspindite
memorii existente pe piata cit si avantajele si dezavantajele tehnologiilor existente.Este o memorie in care
se poate scrie si din care se poate citi. La scoaterea de sub tensiune a sistemului, informatiile scrise aici se
pierd. Memoria RAM pastreaza programele sistemului de operare al utilizatorului, iar utilizatorul are acces
la aceasta.
Capacitatea memoriei interne a unui calculator este dimensiunea memoriei RAM si este o
caracteristica de performanta a sistemului. De memoria RAM depinde lungimea maxima a unui program
care poate fi incarcat intr-o sesiune de lucru si executat de procesor.
Programele ruleaza in memoria interna a calculatorului. Acest lucru inseamna ca datele si programul
sunt incarcate in memoria interna, instructiunile sunt executate de microprocesor iar rezultatele sunt aduse
in memoria interna.
Numarul de biti din memoria interaa este constant. Cand un program este incarcat intr-o zona de
memorie, comutatoarele de aici sunt setate sa reprezinte instructiuni, date sau biti ramasi liberi. Transferul
de biti in si din memorie este realizat de microprocesor, care executa doua operatii:
-depoziteaza secventele de biti in memorie (store);
-extrage secventele de biti din memorie (fetch).
Depozitarea secventelor de biti in memorie se face prin schimbarea starii comutatoarelor astfel incat
sa reprezinte noile valori, vechile valori fiind sterse.
Extragerea secventelor de biti din memorie inseamna copierea acestor biti in registrele procesorului,
fara modificarea starii comutatoarelor din memorie.
Dupa perioada de inceput, cand chip-urile de memorie se Tnfigeau pur si simplu in placa de baza,
primul model uzual a fost SIMM-ul pe 30 de pini, urmat de eel pe 72 de pini. SIMM (Single Inline Memory
Module), modulul prezentand o latime de banda de 8 biti pentru prima versiune si de 32 pentru cea de-a
doua; dimensiunea fizica a SIMM-ului pe 30 de pini este de doua ori mai mica decat in cazul celeilalte
variante. Diferentele de viteza dintre ele corespund perfect perioadei de glorie: daca prima versiune era
uzuala pe timpul sistemelor 286 si 386, SIMM-ul pe 72 de pini a stat la baza generatiei 486, Pentium si
Pentium Pro. Chip-urile folosite au fost de tip DRAM, FPM si, mai tarziu, EDO DRAM.
Urmasul lui SIMM s-a chemat DIMM (Dual Inline Memory Module). Dupa cum Ti spune si
numele, el ofera o latime de banda de 64 de biti, dubla fata de SIMM-urile pe 72 de pini, avand la baza un
fel de dual-channel intern, daca ni se permite comparatia. Numarul de pini a fost de 168 sau de 184 de pini,
in functie de tip: SDRAM sau DDR SDRAM. A existat si un numar limitat de modele de DIMM bazate pe
EDO DRAM dar ele nu au avut succes pentru ca trecerea de la SIMM la DIMM a coincis cu cea de la EDO
la SDRAM. RIMM (Rambus Inline Memory Module) este modelul constructiv al memoriilor RDRAM.
Numarul de pini este de 184 (ca si la DDR SDRAM) dar asemanarile se opresc aici, configuratia pinilor si
modul de lucru fiind total diferit. Mai sunt de amintit modulele SO-DIMM, destinate calculatoarelor

-5-
portabile, care detin un numar diferit de pini: 184 pentru SDRAM si 200 pentru DDR SDRAM. Practic
vorbind, montarea modulelor SIMM era o operatie greoaie si necesita experienta si indemanare.
Odata cu modulele DIMM (si RIMM, care au acelasi sistem de prindere) chinul a fost dat uitarii,
oricine putand monta o memorie, fiind necesara doar putina atentie. Montarea inversa a unui DIMM (care
necesita, totusi, destula forta) duce intotdeauna la arderea memoriei.
Random Access Memory (Memorie cu acces aleator) este un tip de memorie a calculatorului folosita
pentru rularea programelor. Memoria RAM este eel mai des intalnit tip de memorie la calculatoare si alte
periferice.
Memoria cea mai des folosita pentru calculatoare este cea de tip DRAM (Dynamic RAM). Ea
trebuie sa fie improspatata de cateva mii de ori pe secunda pentru pastrarea informatiei. Celalalt tip de
memorie, SRAM (Static RAM) nu necesita reimprospatare, ceea ce il face mult mai rapid, dar este
semnificativ mai scump.
Memoria RAM se caracterizeaza prin timpi mici de acces (ceea ce permite o viteza de rulare
maxima a programelor) si volatilitate (informatiile se pierd atunci cand memoria nu mai este alimentata).
Doua elemente care influenteaza viteza, stabilitatea si pretul memoriilor ar fi functiile ECC si
Registered, integrate in unele module de memorie. Cele ECC (Error Correction Code) detin o functie
speciala care permite corectarea erorilor ce apar pe parcursul utilizarii iar cele Registered (numite si
Buffered), detin un buffer (zona de memorie suplimentara) care depoziteaza informatia inainte ca ea sa fie
transmisa controller-ului, permitand verificarea riguroasa a acesteia. Memoriile Registered sunt mai lente
decat cele normale sau ECC si extrem de scumpe, folosirea lor fiind justificata doar in cazuri speciale, cand
corectitudinea informatiilor prelucrate si stabilitatea sistemului este yitala, de exemplu in cazul server-elor.
In general, atat timp cat memoria nu este supusa unor situatii anormale de functionare (frecventa, tensiune
sau temperatura in afara specificatiilor) ea ofera o stabilitate extrem de apropiata de perfectiune,
arhisuficienta pentru un calculator obisnuit.
Memoria ROM este in general utilizata pentru a stoca BIOS-ul (Basic Input Output System) unui
PC. In practica, o data cu evolutia PC-urilor acest timp de memorie a suferit o serie de modificari care au ca
rezultat rescrierea / arderea "flash" de catre utilizator a BlOS-uIui. Scopul, evident, este de a actualiza
functiile BlOS-ului pentru adaptarea noilor cerinte si realizari hardware ori chiar pentru a repara unele
imperfectiuni de functionare. Astfel ca in zilele noastre exista o multitudine de astfel de memorii ROM
programabile (PROM, EPROM, etc) prin diverse tehnici, mai mult sau mai putin avantajoase in functie de
gradul de complexitate al operarii acestora.
BIOS-ul este un program de marime mica (< 2MB) fara de care computerul nu poate functiona,
acesta reprezinta interfata ?ntre componentele din sistem si sistemul de operare instalat (SO).
In configuratia unui sistem de calcul intalnim doua mari tipuri de memorii - RAM si ROM. Memoria
este spaliul de lucru primar al oricarui calculator . Lucrand in tandem cu CPU (procesorul) are rolul de a

-6-
stoca date li de a procesa informatii ce pot fi procesate imediat si in mod direct de catre processor sau alte
dispozitive ale sistemului . Memoria este de asemenea legatura dintre software si CPU .
Din punct de vedere intern memoria RAM este aranjata intr-o matrice de celule de memorie , fiecare
celula fiind folosita pentru stocarea unui bit de date (Osaul logic) . Datele memorate pot fi gasite aproape
instantaneu (timp de ordinul zecilor de ns) prin indicarea randului si coloanei la intersectia carora se afla
celula respectiva . Se deosebesc doua tipuri de memorie :
SRAM(Static Ram) si DRAM(Dynamic Ram).
Tehnologia DRAM este cea mai intalnita in sistemele actuale , trebuind sa fie reimprospatata de sute
de ori / secunda pentru a retine datele stocate in celulelede memorie (de aici vine si numele) ; fiecare celula
este conceputa ca un mic condensator care stocheaza sarcina electrica .
Este prezenta sub doua tipuri de module : SIMM-urile si DIMM-urile . SIMM-ul a fost dezvoltat cu
scopul de a fi o solutie usoara pentru upgrade-uri . Magistral a de date este pe 32 biti, fizic modulele
prezentanJ 72 sau 30 de pini. DIMM-ul a fost folosit intai la sistemele Maclntosch dar a fost adoptat pe PC-
uri datorita magistralei pe 64 de biti , avand 128 pini.
Tipurile de memorie DRAM sunt: FPM (Fast Page Mode), EDO(Extended Data Out), SDRAM
(Synchronous DRAM). Cele mai rapide sunt SDRAM-urile , fiind si cele mai noi, oferind timpi de acces
mici (8ns).
RAM este o memorie volatila, ceea ce face ca informatia continuta aici sa se piarda la decuplarea
calculatorului de sub tensiune. Aceasta este memoria care poate fi citita ori scrisa in mod aleator, in acest
mod putindu-se accesa o singura celula a memoriei fara ca acest lucru sa implice utilizarea altor celule. In
practica este memoria de lucru a PC-ului, aceasta este utila pentru prelucrarea tempoarara a datelor, dupa
care este necesar ca acestea sa fie stocate (salvate) pe un suport ce nu depinde direct de alimentarea cu
energie pentru a mentine informatia.In memoria RAM se incarca sistemul de operare si programele de
aplicatie. Este o memorie cu viteza de acces foarte mare(actual 8-10 ns).Daca in urma cu cativa ani ea era
caracterizata dupa timpul de acces(60-70 ns), acum este caracterizata de viteza de bus la care lucreaza cu
procesorul(momentan existand memorie functionand pe bus de 66, 100,133 Mhz.

1.2 Tipuri de memorii

SRAM : acest tip de memorie utilizeaza in structure celulei de memorie 4 tranzistori si 2 rezistente.
Schimbarea starii intre 0 si 1 se realizeaza prin comutarea starii tranzistorilor. La citirea unei celule de
memorie informatia nu se pierde. Datorita utilizari matricei de tranzistori, comutarea intre cele doua stari
este foarte rapida.
DRAM are ca principiu constructiv celula de memorie formata dintr-un tranzistor si un condensator
de capacitate mica. Schimbarea starii se face prin incarcarea/descarcarea condensatorului. La fiecare citire a

-7-
celulei, condensatorul se descarca. Aceasta metoda de citire a memoriei este denumita "citire distructiva".
Din aceasta cauza celula de memorie trebuie sa fie reincarcata dupa fiecare citire. O alta problema, care
micsoreaza performantele in ansamblu, este timpul de reimprospatare al memoriei, care este o procedura
obligatorie. Reimprospatarea memoriei este o consecinta a principiului de functionare al condensatoriilor.
Acestia colecteaza electroni care se afla in miscare la aplicarea unei tensiuni electrice, insa dupa o anumita
perioada de timp energia inmagazinata scade in intensitate datorita pierderilor din dielectric. Aceste
probleme de ordin tehnic conduc la cresterea timpul de asteptare (latency) pentru folosirea memoriei.
Datorita raspindiri vaste a memoriei de tip DRAM, am sa exemplific modul de functionare a celulei de
memorie in baza acestei tehnologii.
Celula de memorie, este cea mai mica unitate fizica a memoriei. Este compusa din componente
electronice discrete. Principiul de functionare este in fapt modificarea starii logice Tntre 0 si 1 care la nivel
fizic, in functie de tehnologia utilizata, corespunde cu inmagazinarea energiei electrice prin intermediul
unui condensator (pentru DRAM), ori cu reconfigurarea matricei de tranzistori (in cazul SRAM).
Celula de memorie din punct de vedere logic este tratat ca fund un bit. Cea mai mica unitate logica
adresabila a memoriei este formata din opt biti si ia denumirea byte. Acesta ofera posibilitatea obtineri a
256 combinatii (caractere). Prin gruparea a opt bytes se obtine un cuvint (word). Constructiv, din motive ce
tin de design, celulele de memorie sint organizate sub forma unor matrici.
Pentru identificarea si accesarea celulelor de memorie, acestea dispun de o adresa unica pentru
fiecare celula in parte. Identificarea celulei de memorie se face prin transmiterea adresei acesteia prin BUS-
ul de adrese catre decodorul de adrese (format din decodoare pentru linie si coloana), acesta identifica
celula de memorie care corespunde adresei primite si transmite continutul acesteia catre interfata de date iar
aceasta mai departe, catre BUS-ul de date.
Magistrala pentru adrese (BUS adrese) este conexiunea intre chipset-ul placii de baza si memorie,
aceasta este puntea de legatura prin care adresele sunt transmise catre decodor.
Decodorul de adrese este format din decodorul de linie si eel de coloana, acesta receptioneaza adresa
celulei de memorie pe care o imparte in doua, prima parte fiind transmisa catre decodorul de linie iar a doua
catre eel de coloana, astfel se identifica celula de memorie corespunzatoare.
Matricea de memorie este structura prin care celulele de memorie sunt ordonate pe linii si coloane.
Interfata pentru date confine un amplificator de semnal, acesta receptioneaza informatiile stocate in
celulele de memorie, amplifica semnalul, retnearca memoria si transmite informatia prin BUS-ul de date
catre chipset (in cazul in care informatia este citita din memorie). Pentru scriere procedeul se inverseaza.
Magistrala pentru date (BUS date) este conexiunea intre chipset-ul placi de baza si memorie, aceasta
ofera posibilitatea transmiterii informatiilor ce trebuiesc prelucrate de catre procesor ori stocate in memorie.
In general celulele de memorie nu pot fi accesate individual, din acest motiv, constructiv matricea de
memorie este Tncapsulata intr-un chip. Chip-urile de memorie sunt asamblate pe un modul de memorie
(circuit imprimat) in numar de opt. Acestea sunt conectate la magistrala de adrese si la cea pentru date.

-8-
Astfel se obtine o celula de memorie virtuala, formata din 8 biti (1 byte). Modulele de memorie la rindul lor
sunt organizate in bancuri de memorie, acestea sunt conectate intre ele in acelasi mod ca si chip-urile.
Daca luam ca exemplu un procesor ce lucreaza pe 16 biti si vechile module de memorie de tip SIMM
care functionau numai in perechi. Ne punem intrebare, de ce cite doua?
Acest lucru se intimpla datorita procesorului, care are nevoie de 16 biti pentru a umple magistrala de
date, avind in vedere ca un modul de memorie define numai 8 biti, doua astfel de module au fost conectate
intre ele, in acest mod sa obtinut o magistrala pentru date cu latimea de 16 biti.
Timpul de as.teptare, pentru efectuarea tuturor operatiilor ce aduc informatia in interfata pentru date
este necesar un anumit timp, care este identificat sub numele "latency". Astfel ca, pentru transmiterea
adreselor intre procesor, chipset si memorie se utilizeaza 2 cicluri de tact. Pentru identificarea celulei de
memorie se parcurg doua operatii. Identificarea liniei din matrice, pentru care avem nevoie de 2/3 cicluri (in
functie de calitatea memoriei utilizata), aceasta perioada se nume§te RAS (Row Address Strobe) to CAS
(Column Address Strobe) delay si identificarea coloanei (CAS latency) pentru care se consuma aproximativ
acela§i timp ca si pentru prima operatie (2/3 cicluri). Pentru transmiterea informatiei catre interfata de date
se consuma 1 ciclu iar pentru ultima operatie, transmiterea datelor catre chipset si apoi catre procesor, inca
2 cicluri.
Dupa transmiterea informatiilor, in cazul in care cererea emisa de procesor este mai mai mare decit
latimea magistralei pentru date, urmatoarele cuvinte sint transmise catre procesor in modul rafala "burst
mode" la fiecare ciclu de tact, acest lucru este posibil datorita unui numerator intern care identifies
urmatoarea coloana si transmite catre amplificator continutul. Este o memorie din care se poate citii si pe
care se poate scrie. Ca si procesorul si memorile au o anumita viteza(66, 100, 133Mhz)

-9-
Capitolul II

2.1 Caracteristiciile memoriilor

A. Geometria sau modul de organizare a memoriei reprezentat de lungimea unui cuvant si numarul
de cuvinte memorate.
B. Capacitatea memoriei; reprezentand numarul total de biti ce pot fi memorati;
se exprima in general in multipli de Ik = 1024 de biti.
C. Timpul de acces la memorie; se exprima in [us] sau [ns] reprezentand timpul necesar pentru
citirea sau scrierea unor informatii in memorie.
D. Puterea consumata; pentru caracterizarea din acest punct de vedere a unei memorii, se foloseste
puterea consumata raportata al un bit de informatie, respectiv raportul dintre puterea totala consumata de
circuit si capacitatea acestuia; se masoara in [uw/bit].
E. Volatitatea, o memorie este volatila daca informatia inscrisa se pierde in timp; pierderea
informatiei se poate datora fie modului de stocare a acesteia (memoriei dinamice fie datorita disparitiei
tensiunilor de alimentare ale circuitului.
Stergerea informatiei din celula se face astfel: se aplica tensiunea pozitiva (+20 V) pe linia de
selectie cuvant punand in conductie tranzistorul T. Drena acestuia se conecteaza la potential zero si se
aplica +20V pe linia de programare. Datorita campului electric intern mare.
Electronii care tree din substrat prin efect tunel si se acumuleaza in grila izolata, formand o sarcina
negativa.

2.2Clasificarea caracteristicilor unei memorii RAM

In functie de modul de utilizare in raport cu un sistem de calcul a acestor memorii avem urmatoarele
tipuri de functii de memorare:
1. Functia de memorare cu citire si scriere de date; in aceasta categorie
intra asa numitele memorii cu acces aleator RAM (Random Acces Memory) care permit citirea si inscrierea
unor noi date de catre sistemul care le utilizeaza, precum si memoriile EEPROM (Electricaly Eraseable
Programmable Read Only Memory) care pot fi atat citite cat si sterse in mod selectiv si programate de catre
sistemul care le utilizeaza.
2. Functia de memorare numai cu citire de date; in aceasta categorie

- 10 -
intra memoriile ROM (Read Only Memory), PROM (Programable Read Only Memory), EPROM
(Eraseable Programable Read Only Memory) care pot fi numai citite de catre sistemul care le utilizeaza;
stergerea posibila numai in cazul memoriilor de tip EPROM.
Nu este efectuata de catre sistemul utilizator si nu este selectiva in raport cu informatia inscrisa.

Asa cum este usor de observat regasirea unei informatii stocate necesita
furnizarea unor semnale privind locul unde se gaseste aceasta
informatie. Aceste semnale constituie intrari pentru circuitul de
memorie si se numesc adrese. Numerele binare memorate constituie
date pentru acest circuit si ele sunt semnale de intrare atunci cand se
citeste din memorie. In final trebuie sa precizam ca accesul la memorie
se face la un moment de timp bine

determinat, moment necesar a fi comunicat printr-un semnal circuitului de memorie. Trebuie sa precizam ca
transferul de date este bidirectional (datele intra si ies din din circuit) in cazul memoriilor RAM si
EEPROM si unidirectional (datele ies din circuit) in cazul memoriilor ROM, PROM si EPROM.
Initial toate fuzibilele memoriei sunt scurtcircuitate. Programarea unei celule inseamna arderea
fuzibilului din nodul respectiv. Pentru programare se aplica impuls pozitiv pe baza, iar linia de bit DL se
mentine la potential coborat. Curentul de emitor al tranzistorului, suficient de mare, produce arderea
fuzibilului F. Programarea se face succesiv pe fiecare celula, selectia unei celule facandu-se prin liniile WL
si DL.
Un alt alocator se afla in nucleul sistemului de operare. Asa cum am spus deja, acest alocator
gestioneaza atit spatiul folosit in structurile de date interne nucleului, cit si spatiu necesar proceselor care se
executa Interactiunea dintre feluritele alocatoare de memorie din nucleu. Alocatorul de pagini
gestioneaza intreaga memorie fizica a masinii. El genereaza spatiu atit pentru procese (unitatea de baza fund
pagina), cit si memorie pentru alocatorul intern al nucleului. Sagetile indica schimb de spatiu de memorie
intre componente.
Subiectul acestui articol este cutiuta etichetata "alocatorul intern al nucleului", desi multe din
principiile indicate se aplica si celorlalte entitati. Aceste alocatoare sunt mult mai constrinse decit
alocatoarele din spatiul utilizatorului; in particular trebuie sa aiba timpi de raspuns foarte mici, pentru ca pot
fi chemate de parti critice din nucleu.
Cele trei alocatoare interactioneaza permanent: cind nucleul nu mai are destule zone pentru propriile
lui date cere noi pagini de la alocatorul de pagini. Cind procesele utilizatorilor mor, paginile lor sunt
preluate de alocatorul de pagini. Cind alocatorul de pagini are putine resurse disponibile, el poate cere
alocatorului intern sa returneze din memoria pe care nu o folose§te in acel moment, etc..

- 11 -
Capitolul III

3.1 Domenii de aplicabilitate a memoriei

Ce este de fapt alocarea memoriei? Calculatorul poseda din fabricate o anumita cantitate de memorie
(RAM). In memorie vor fl incarcate mai multe programe si datele prelucrate de ele: nucleul sistemului de
operare, datele acestuia, programele utilizatorilor si datele asupra carora acestea opereaza, datele citite de
la dispozitivele periferice, pachetele de date care vin si merg in reteaua in care calculatorul este conectat,
bibliotecile incarcate dinamic, etc. O singura bucata mare de memorie (RAM-ul) trebuie impartita intre
toate aceste entitati lacome, in asa fel Tncit sa nu se incomodeze unele pe altele. Entitatea care gestioneaza
memoria, tine contabilitatea zonelor ocupate si a celor libere, care satisface cererile pentru noi zone si care
re-utilizeaza zonele eliberate este alocatorul de memorie.
Alocarea memoriei este de obicei o treaba ierarhica; la baza ierarhiei se afla sistemul de operare, care
are la dispozitie Tntregul RAM. Sistemul de operare da feluritelor programe ale utilizatorilor portiuni de
memorie. La rindul lor, fiecare din programe gestioneaza bucatica primita de la nucleu pentru nevoile sale
interne.
In acest text ne vom concentra asupra alocatorului de memorie din nucleele sistemelor de operare de
tip Unix, dar vom privi superficial si asupra unor alte alocatoare. Un tratament excelent al subiectului
puteti gasi in capitolul 12 din cartea "Unix Internals", de Uresh Vahalia, publicatain anul 1996 de editura
Prentice Hall. Am folosit unele dintre prezentarile din acea carte in scrierea acestui articol.
O clasificare a limbajelor din punctul de vedere al alocarii memoriei le imparte in trei categorii:
Limbaje care nu pot aloca dinamic memorie. Din aceasta categorie fac parte cele mai ancestrale
limbaje: Cobol, Fortran. In aceste limbaje (eel putin in versiunile lor initiate), utilizatorul nu poate aloca
dinamic memorie de loc in momentul executiei programului; toata memoria necesara trebuie sa fie alocata
inainte ca programul sa porneasca in executie.
Limbaje cu alocare si dealocare explicita. Limbaje ca Pascal, C si C++ Ti permit utilizatorului sa ceara pe
parcursul executiei noi zone de memorie si sa returneze memoria folosita. Utilizatorul apeleaza pentru
acest scop niste functii de biblioteca. Aceste functii au fost implementate de eel care a scris compilatorul
pentru limbajul respectiv. Aceste functii cer de la sistemul de operare o bucata mare de memorie pe care
apoi o impart dupa necesitati; atunci cind toata bucata este consumata cer o alta de la nucleu. In Pascal
functiile cu pricina sunt new si free, in C malloc si free iar in C++ new si delete. Ca functionare sunt
extrem de similare; functiile din Pascal sj C++ folosesc tipul obiectelor alocate pentru a deduce cita

- 12 -
memorie este necesara (de exemplu programatorul zice: "vreau memorie pentru un vector de 10 intregi");
programatorii in C trebuie sa indice explicit de cita memorie au nevoie (ex.: "da-mi si mie 40 de octeti").
Limbaje cu colectoare de gunoaie (garbage collection). Lisp si Java folosesc un mecanism extrem de
interesant, prin care utilizatorul nu specifica niciodata cind vrea sa elibereze o zona de memorie (adica
free() nu exista); compilatorul si un sistem de functii care se executa simultan cu programul (runtime
system) deduc singure care dintre zone sunt nenecesare si le recupereaza. Lisp-ul aparent este un limbaj in
care nu exista nici macar alocare dinamica (o functie de gen new); in realitate in Lisp fiecare obiect nou
creat este automat alocat intr-o zona de memorie noua, fara ca utilizatorul sa trebuiasca sa specifice asta
(de exemplu cind utilizatorul concateneaza doua liste, atunci sistemul aloca automat spatiu pentru lista
rezultat).
Din anumite puncte de vedere, tehnica colectarii de gunoaie este cea mai preferabila. Principalul ei
avantaj este ca scuteste utilizatorul de pericolul de a folosi zone de memorie nealocate, prevenind astfel
aparitia unor bug-uri extrem de greu de depanat. Avantajele ei nu se opresc aici: impreuna cu o disciplina
de tipuri stricta, colectarea deseurilor face demonstrarea automata a corectitudinii programelor o sarcina
mult mai simpla: un demonstrator de teoreme va fi intotdeauna sigur ca o zona de memorie folosita nu este
dealocata.
Pe de alta parte, colectarea de gunoaie are anumite dezavantaje: este impredictibila ca timp consumat
(adica nu e clar in ce moment al executiei programului se va petrece), §i este conservative. Intrebarea daca
o anumita zona de memorie va mai fi sau nu folosita de un program in viitor este in general o chestiune
nedecidabila; asta inseamna ca nu se poate scrie nici un algoritm care sa raspunda la o astfel de intrebare,
chiar daca are informatii complete despre programul analizat si despre datele lui de intrare. Din cauza
aceasta este posibil ca un program cu coleetare automata sa pastreze alocate zone de memorie care sunt in
realitate inutile, pentru ca sistemul nu are cum sa demonstreze acest lucru.
In acest articol vom vorbi mai ales despre sisteme de tipul intermediar, cu alocare si dealocare
explicita. Motivele sunt multiple. In primul rind majoritatea alocatoarelor din nucleele sistemelor de
operare comerciale sunt de acest tipl. In al doilea rind, chiar implementarea unui alocator cu colector va
folosi idei de genul celor prezente in alocatoarele explicite. si in al treilea rind, colectarea gunoaielor este
un subiect ceva mai dificil.

- 13 -
CONCLUZII

Alocarea memoriei este un subiect foarte generos, care suscita in continuare interes cercetatorilor.
Gestiunea memoriei este un din functiile principale ale unui sistem de operare. Nucleul unui sistem de
operare gestioneaza Tntreaga memorie fizica a unui calculator; el ofera memorie atit siesi (nucleului),
pentru functionarea sa, cit si proceselor executate de utilizatori. Procesele utilizatorilor gestioneaza la
rindul lor bucatelele primite de la nucleu.

Daca subiectul va intereseaza mai aveti multe de aflat in domeniu. Daca nu, sper sa-i alocati macar 2-
3 neuroni in memoria dumneavoastra. Alegeti un algoritm in acest scop.

- 14 -

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