Sunteți pe pagina 1din 6

Conf. Dr. Timofte Carmen Cap5.

Memoria interna

5. Memoria Interna
5.1 Noţiuni generale
 Unitatea de memorie reprezintă ansamblul format din mediul de memorare şi circuitele
electronice care îi asigură buna funcţionare.
 Memoria centrală are funcţia de a stoca instrucţiunile programelor şi datelor.
 Programul, pentru a putea fi executat, trebuie să se găsească în memoria centrală.
 Fazele execuţiei unui program sunt:
- selectarea instrucţiunii din memoria centrală;
- încărcarea instrucţiunii în microprocesor;
- executarea instrucţiunii;
- repetarea etapelor anterioare în mod secvenţial, pentru fiecare instrucţiune a
programului.

Caracteristici:
- Ansamblu de registre - Memoria are la bază un ansamblu de registre de aceeaşi mărime, care
formează o matrice.
- Locaţie de memorie - Succesiunea de poziţii binare adresată individual se numeşte locaţie de
memorie sau cuvânt de memorie. Lungimea unui cuvânt de memorie este multiplu de 1B (8 biţi),
putând avea: 8, 16, 32, 64 biţi şi depinde de modelul calculatorului.
- Adresă de memorie - O locaţie de memorie este identificabilă prin adresa sa. Adresele de
memorie se numerotează începând cu 0, numărul identificând unic fiecare cuvânt de byte.
Adresele ajută la lucrul cu memoria calculatorului.
- Capacitatea memoriei - Numărul locaţiilor adresabile reprezintă capacitatea memoriei. Aceasta
se exprimă în kilo-bytes (1KB=210B), mega-bytes (1MB=210KB), giga-bytes (1GB= 210MB),
tera-bytes (1TB=210GB).
- Timpul de acces – este intervalul de timp ce separă cererea unei informaţii de obţinerea sa la
locul prelucrării. Se exprimă în nanosecunde şi de obicei mai mic decât 70ns.
- Viteza de transfer – sau debitul datelor se exprimă în MB/sec.

Memorie cache
 Timpul de execuţie al unei instrucţiuni este mult mai mic decât timpul de acces la memorie,
motiv pentru care se foloseşte o memorie tampon între procesor şi memoria centrală, numită
memorie cache.
 Ea stochează pentru un timp limitat părţi ale programului sau datele cele mai utilizate.
 Se realizează cu componente (chip-uri) de memorie statică, SRAM, care este foarte scumpă.

Memorie virtuală
 Un program, pentru a fi executat trebuie să se regăsească în memoria centrală, motiv pentru
care, mărimea programului trebuie să fie cel mult egală cu capacitatea memoriei centrale.
 Dar o mare parte a programelor sunt mult mai mari decât capacitatea memorie, motiv
pentru care a fost introdus conceptul de memorie virtuală.
 Programul este divizat în părţi, numite segmente cu suprapunere (overlays).
 Sistemul de operare păstrează în memorie părţile din program care se utilizează stochează
restul pe disc.
 Majoritatea sistemelor de memorie virtuală utilizează mecanismul de paginare.

1
Conf. Dr. Timofte Carmen Cap5. Memoria interna

5.2. Schema funcţională


Schema cea mai simplă a unei unităţi de memorie este aceea în care citirea şi scrierea nu pot avea
loc simultan.
 Funcţia de scriere reprezintă transferul informaţiei din alte unităţi de prelucrare în memorie,
 iar funcţia de citire constă în extragerea informaţiei din memorie şi transmiterea ei spre alte
unităţi ale sistemului.
Derularea funcţiilor, presupune:
- pentru scrierea informaţiei, de la procesor către memorie:
o procesorul afişează adresa, datele şi codul funcţiei de scriere;
o procesorul activează semnalul pentru cererea de acces;
o memoria recepţionează cererea de acces, decodifică adresa;
o memorie înregistrează datele prezentate de procesor.
- pentru citirea informaţiei, de către procesor din memorie:
o procesorul afişează adresa şi codul funcţiei de citire;
o procesorul activează semnalul pentru cerere de acces;
o memoria recepţionează cererea de acces, decodifică adresa şi afişează datele;
o procesorul înregistrează datele prezentate pe magistrală.

Schema funcţională a memoriei centrale este prezentată în continuare.


Magistrală de comenzi Paritate
A
s
Decodi Selec 1 0 0 1 0 1 1 0 0
ficator ţie 0 1 1 0 0 1 0 0 1 Matri
ce
scriere 1 1 0 0 0 1 0 1 0
de
/citire me
morie

0 0 0 1 1 0 0 1 1
0 0 1 0 1 0 0 1 Registru
de date
Magistrală de adrese
Magis
trală
de
date

2
Conf. Dr. Timofte Carmen Cap5. Memoria interna

5.3.Tipuri de memorii
După posibilitatea modificării conţinutului, memoria centrală poate fi:
- ROM (Read Only Memory) – memorie doar pentru citire, al cărei conţinut nu se poate modifica
sau distruge în urmă întreruperii sursei de curent;
o Este programată de producătorii calculatoarelor pentru funcţii specifice, cum ar fi
testarea şi iniţializarea sistemului la pornire;
o Are o capacitate limitată, mai mică de 1MB;
o Unele variante permit programarea sau reprogramarea:
 PROM (Programmable ROM) – ROM programabil cu ajutorul unui dispozitiv
special, numit programator de PROM;
 EPROM (Erasable PROM) – memorie care poate fi programată de mai multe ori;
ştergerea se realizează prin expunerea cipului la lumină ultravioletă;
 EAPROM (Electrically Alterable PROM) – memorie la care ştergerea se
realizează prin mijloace electrice.
- RAM (Random Access Memory) – poate fi de 2 feluri:
o Statică SRAM (Static RAM) – elementele de memorare sunt formate din circuite
basculante bistabile, având la bază tranzistoare. Se bazează pe închiderea/deschiderea de
circuit. Este volatilă ca şi DRAM-ul, dar nu necesită reîmprospătare constantă. Este de 5
ori mai rapidă, de 2 ori mai scumpă, de 2 ori mai voluminoasă decât DRAM-ul.
o Dinamică DRAM (Dynamic RAM) – constă în înlocuirea tranzistoarelor printr-un
condensator. Memorarea informaţiei se realizează prin prezenţa sau absenţa sarcinii
electrice pe condensator. Dar condensatorul se poate descărca în timp, deci poate pierde
informaţia. DRAM permite o creştere a densităţii de integrare, dar necesită operaţii de
reîmprospătare, care scade debitul util. Se numeşte dinamică deoarece trebuie
reîmprospătată de sute de ori pe secundă pentru a reţine datele stocate. După modul de
conectare, se împart:
 SIMM (Single In-line Memory Modules) – dezvoltat cu scopul de a fi o soluţie
pentru up-grade-uri, fiind circuite integrate grupate pe o rigletă; modele cu 30
pini, 72 pini, care au permis implementarea eficientă a magistralei de date pe 32
de biţi. Erau module de 64MB. Din această categorie, fac parte:
 FPM (Fast PageMode) – erau folosite pe scară largă înainte de apariţia
celor EDO. Erau disponibile în module SIMM de 2,4,8,16,32 MB, la
viteze de 60,70ns.
 ECC (Error Correcting Code) –tip special de memorie, cu corecţie de
erori; folosite în special la server-e;
 EDO (Extended Data Output) –îmbunătăţire a tipului FPM; datele sunt
citite mai rapid; câştig de performanţă faţă de FPM de 2-5 procente;
viteze de 50, 60 ns.
 DIMM (Dual In-line Memory Modules) – iniţial a fost folosit la sistemele
Macintosh, şi au intrat la PC-uri la magistrala de date pe 64 de biţi; un DIMM
este echivalent cu o pereche de SIMM-uri, dar foloseşte mai puţin spaţiu; Erau
module de 128MB.DIMM-ul are o magistrală de date pe 64 pini
 SDRAM (Synchron Data RAM) – primul model din categoria DIMM;
module de 64 de biţi; timpi de acces de 8-12ns. Sporul de performanţă
faţă de EDO este de numai 5% la 66MHz, dar are un salt semnificativ la
100Mhz.

3
Conf. Dr. Timofte Carmen Cap5. Memoria interna

 DDRAM (Double Data RAM)- permite citirea datelor de pe ambele


fronturi ale semnalului de ceas, asigurând de 2 ori lărgimea de bandă a
SDRAM-urilor tradiţionale; practic dublează frecvenţa de transfer a
memoriei fără creşterea frecvenţei de ceas. Toţi marii producători sprijină
acest tip de memorie, cu excepţia lui Intel, care şi-a creat propriul tip.
Este mult mai ieftină decât cea RIMM. Este de 3 tipuri:
o DDR-1 – au 184 de pini, dublează performanţa memoriei
SDRAM, prin trimiterea de biţi pe ambele fronturi ale ciclului de
tact.
o DDR-II – au 200 de pini; dublează performanţa memoriei DDR-I,
prin trimiterea de 2 biţi pe ambele fronturi ale ciclului de tact
(total 4); lăţime de bandă dublată: exp.: SDRAM la 100MHz, a
devenit în DDR-I 200Mb/s, şi în DDR-II 400Mb/s.
 Există o serie de standarde (2005): PC 2700 –la frecvenţa
333MHz, ..., PC4200 –la 533MHz, PC 4400 –la 550MHz,
PC4800 – la 600MHz. Exp.: Un semnal la 100Mhz în
DDR-II oferă o lăţime de bandă de 3.2GB/s în standardul
PC3200;
 beneficiază de tehnologii de vârf:
 OCT (On Chip Termination) – aduce îmbunătăţiri
prin înglobarea în cadrul modulelor de memorie a
condensatoarelor destinate filtrării semnalului.
 OCD (Off Chip I/O Driver) – permite controlul
impedanţei.
o DDR-III - disponibilă momentan doar pentru memoriile plăcilor
video high-end NVIDIA şi ATI (din 2004) şi reţelelor de mare
viteză; au rată de transfer cu 50% mai mare şi consum de energie
redus cu 50%. Alimentate la 1.2V, în variantele DDR667/PC5400,
DDR800/PC6400.
 RIMM (Rambus In-line Memory Modules) –
 RDRAM (Rambus RAM) – Intel a lansat acest tip de memorie; este
dezvoltată din RDRAM tradiţional, dar cu o arhitectură optimizată pentru
performanţe de vârf, în care datele sunt citite în pachete mici. Iniţial au
pornit de la frecvenţa de 800Mhz, viteze de 800Mb/s/pin, 1600Mb/s/pin.
Cipurile RDRAM sunt foarte apropiate de CPU, deoarece frecvenţa de
lucru foarte mare generează interferenţe radio. Sunt mult mai scumpe. În
2004 ocupau circa 0.1% din piaţa de DRAM, adresându-se
calculatoarelor high-end, segment care reprezintă mai puţin de 5% din
totalul vânzărilor.
Cele mai folosite azi sunt DDR-I şi se preconizează trecerea masivă spre DDR-II. DDR-III încă nu
a intrat pe piaţă decât la plăcile video de mare performanţă, fiind foarte scumpe. Tot scumpe sunt
memoriile RDRAM, care au nevoie de plăci de bază speciale, şi se adresează calculatoarelor high-
end şi servere-lor de mare performanţă.

În timp de ce viteza procesoarelor a crescut de aproximativ 100 de ori în ultimii 10 ani,


performanţele memoriilor au crescut de doar 20 de ori. Astfel se impune apariţia unor noi tipuri de
memorie pentru a face faţă procesoarelor.

4
Conf. Dr. Timofte Carmen Cap5. Memoria interna

5.4.Modul de stocare a datelor în memorie


De obicei, când se scriu litere şi cifre, se începe cu partea cea mai semnificativă. De exemplu la
numărul 1776, partea cea mai semnificativă este 1. La şirul de caractere „ABC”, A este partea cea
mai semnificativă.

Microprocesoarele au 2 moduri de stocare a datelor în memorie:


- „little endian” – cu cel mai puţin semnificativ byte memorat primul; de exemplu: procesoarele
INTEL şi compatibile.
- „big endian” – cu cel mai semnificativ byte memorat primul; de exemplu: procesoarele
UltraSPARC de la Sun Microsystems.

Modul de stocare a datelor la care ne vom referi este cel specific procesoarelor Intel, şi anume „little
endian”. Denumirea cea mai frecventă este cea de stocare inversă a cuvintelor, şi indică faptul că
un cuvânt (pe 2B) are bytes stocaţi invers decât modul normal. Acest model se aplică şi datelor de
4B (2W), dar nu se aplică şirurilor de caractere, care se definesc la nivel de B.

Exemple:
- numărul zecimal 1776, memorat invers ar arăta 6771. Dar el se reprezintă în interiorul
calculatorului în hexa şi va fi 06F0. Pentru inversarea numărului 06F0 nu trebuie inversată
ordinea cifrelor hexa individuale, ci trebuie inversaţi bytes, reprezentaţi de perechi de cifre. Deci
inversul cifrei hexa 06F0 este F006.
- Numărul zecimal 7, definit la nivel de W (word) va fi reprezentat în registrii microprocesorului
sub forma 0007, iar în memorie, va fi reprezentat invers: 0700.
- Numărul hexa 1ABC (pe 2B=1W), în memorie va arăta BC1A, iar în registrii 1ABC.
- Şirul de caractere „ABC”, definit la nivel de B (byte), va arătă în memorie în ordinea normală,
adică „31 32 33” (caracterul ASCII A, caracterul ASCII B, caracterul ASCII C).

De fiecare dată când lucraţi cu date reprezentate în sistem hexa, trebuie să ştiţi dacă sunt
reprezentate direct (aşa cum le scrieţi) sau invers (aşa cum sunt stocate).De obicei, datele destinate
utilizatorului sunt afişate în ordinea normală.

Modalitatea de vizualizare a modului de reprezentare a datelor în memorie se realizează cu ajutorul


programului DEBUG din linie de comandă sau cu un utilitar de vizualizare a codului sursă în limbaj
de asamblare (cv, td etc.).

Fie instrucţiunea care mută valoare hexa 1234 în registrul AX. Programul DEBUG va afişa pentru
acel program, acea linie:
.....B8 3412 MOV AX,1234H
unde B8 este codul operaţiei MOV AX..., iar 3412 este modul de stocare a numărului în memorie,
iar în partea dreaptă numărul afişat normal (1234).
Pentru a vedea memoria, se poate da un dump cu comanda :
- d ds:0000
care va afişa:
..... 34 12 ....

TEMĂ: identificaţi modurile de reprezentare a datelor în memorie pentru programul în Assembler


realizat de voi.

5
Conf. Dr. Timofte Carmen Cap5. Memoria interna

(https://thebittheories.com/little-endian-vs-big-endian-b4046c63e1f2)

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