Sunteți pe pagina 1din 41

Unitatea aritmetica – logica

unde,
OP1, OP2 sunt cei doi operanzi reprezentati fiecare pe n biti;
REZ este rezultatul operatiei, de asemenea reprezentat pe n biti;
COP este codul de selectie a operatiei (codul operatiei), reprezentat pe
m biti, deci se pot codifica in total 2m operatii diferite.
UAL poate fi conectat intr-un sistem de calcul cu celelalte unitati functionale in
diferite moduri:

Magistrala unica.
Registru accumulator.
Interconectare cu trei magistrale.
Sumator-scazator pentru numere in cod complementar
RX , RY sunt doua registre temporare (de tipul T1 si T2 din solutia generala
precedenta), in care se incarca succesiv de pe magistrala cei doi operanzi, X si Y, pe n
biti fiecare.
RZ este un registru care preia rezultatul si il plaseaza apoi pe magistrala pentru
a fi transferat la destinatie.
Σ este un sumator, efectuand intotdeauna operatia de insumare.
MUX este un bloc de n multiplexoare 2:1 comandat de codul de selectie al
operatiei cop, un singur bit (cop = 0 adunare, cop = 1 scadere). Pe intrarile 0 ale
multiplexorului se conecteaza al doilea operand in forma directa (Y), iar pe intrarile 1,
al doilea operand in forma complementata (Y#). Acelasi semnal de selectie cop este
conectat si pe intrarea de transport a sumatorului CYin, care se aduna in rangul c.m.p.s.
la o operatie efectuata. Astfel,
cop = 0 => Z = X + Y + 0 = X + Y (adunare)
cop = 1 => Z = X + Y# + 1 = X –Y (scadere).
Logica ind este o logica combinationala care pozitioneaza cativa bistabili,
numiti indicatorii de conditie. Acesti indicatori se pozitioneaza in 1 sau 0 dupa fiecare
operatie, reflectand caracteristici ale rezultatului.
Unitate de inmultire in cod direct
Unitate logica

Exemplu: unitate logica foarte simpla care poate executa patru operatii
logice cu operanzi pe 4 biti fiecare => doi biti pentru reprezentarea codului
operatiei cop.

cop Operatia
00 X SAU Y
01 X SI Y
10 NU X
11 X • 2
Memoria

Organizarea memoriei principale

Memoria principala a unui sistem de calcul poate fi formata din mai


multe module, care pot fi si de tipuri diferite. In functie de modul de plasare a
adreselor in aceste module se disting doua organizari de baza:

-cu intretesere de ordin superior: adrese succesive sunt plasate in


acelasi modul de memorie.

-cu intretesere de ordin inferior: adrese succesive sunt plasate in


module consecutive.
Gestionarea memoriei principale

Pentru gestionarea memoriei principale  mecanisme de memorie


virtuala:
-memoria paginata;
-memoria segmentata.
Memoria paginata: spatiul virtual al unui program impartit in blocuri de lungime
fixa (pagini).

La un moment dat numai anumite pagini din memoria virtuala se


gasesc incarcate in cadrele de bloc din memoria fizica.

In timpul executiei programului, cand programul lanseaza o adresa


virtuala pentru o pagina care nu se gaseste in memoria fizica, aceasta pagina
este adusa de pe disc (pe disc se gasesc toate paginile programului) si
incarcata in memoria fizica, inlocuid o alta pagina.

Translatarea unei adrese virtuale generate la executia programului in


adresa fizica: tabela de pagini.
Adresa fizica = Adresa de baza a paginii , Deplasament cuvant
Memoria segmentata: spatiul virtual al unui program impartit in blocuri de
lungime variabila (segmente).

La un moment dat numai anumite segmente din memoria virtuala se


gasesc incarcate in memoria fizica.

In timpul executiei programului, cand programul lanseaza o adresa


virtuala pentru un segment care nu se gaseste in memoria fizica, acest
segment este adus de pe disc (pe disc se gasesc toate segmentele
programului) si incarcat in memoria fizica, inlocuid un alt segment.

Translatarea unei adrese virtuale generate la executia programului in


adresa fizica: tabela de segmente.
Adresa fizica = Adresa de baza a segm + Deplasament cuvant
Memoria principala la PC-uri

Cea mai importanta conexiune este cea dintre procesor si memoria


RAM. Transferul de date se face pe o magistrala lucrand la o anumita frecventa
(deaoarece RAM-ul este mult mai lent decat procesorul si aceasta frecventa
este mai mica).
In PC-ul original (IBM XT) transferul intre procesor, RAM si I/E se
desfasura sincron la o frecventa comuna.
Compaq 1987: ideea separarii magistralei sistem de magistrala I/E,
lucrand la frecvente diferite.
Cu introducerea procesorului 80486 s-a trecut la dublarea (cresterea)
frecventei procesorului fata de frecventa RAM
Cu introducerea procesoarelor urmatoare s-a marit si mai mult
frecventa procesorului fata de frecventa magistralei. Ex: Pentium III frecventa
magistralei 133 MHz si frecventa procesorului 1200 MHz (9x).
Conectarea memoriei prin
Northbridge:
Conectarea directa a memoriei la procesor:
Tipuri de memorii RAM utilizate in PC-uri

In PC se utilizeaza diferite tipuri de RAM, cateva fiind date in tabel:

Tip RAM Pini Lung. Utilizare


cuvant

SDRAM 168 64 biti In PC-uri mai vechi.


Rambus RAM 184 16 biti In unele PC-uri cu Pentium 4 si anumite
chipseturi.

DDR SDRAM 184 64 biti Versiune mai rapida de SD RAM. Utilizat cu


Athlon si Pentium 4 la 2.5 V

DDR2 SDRAM 240 64 biti Frecventa > DDR, 1.8 V


DDR3 SDRAM 240 64 biti Frecventa > DDR2, 1.5 V
DDR4 SDRAM 288 64 biti Frecventa > DDR3, 1.2 V
Memoriile actuale utilizate in calculatoare: DDR SDRAM (Double Data Rate
Synchronous Dynamic Random Access Memory).
Transferul de date: pe ambele fronturi ale ceasului de control => rata dubla de
date fata de un SDRAM obisnuit (SDR – Single Data Rate).

Rata maxima de transfer:


Rmax = fM x 2 x w
unde
fM frecventa ceasului de control (corespunzand conexiunii externe);
w latimea transferului (in biti).
Exemplu: memorie DDR SDRAM la 200 MHz (frecventa reala), 64 biti la un
transfer. Rata maxima:
Rmax = fM x 2 x w = 200x 106 x 2 x 64 = 25600 x 106 =
= 25600 Mb/s = 25600/8 MB/s = 3200 MB/s
Se utilizeaza un sistem pentru denumirea cipurilor si placutelor (modulelor) de
memorie. Astfel:
-pentru cipuri
DDRx-yyyy
unde
x este generatia tehnologica 1 (nu se marcheaza), 2, 3 sau 4;
yyyy este frecventa de ceas DDR (in realitate se furnizeaza o frecventa
pe jumatate);
-pentru placute
PCx-zzzz
unde
zzzz este rata maxima teoretica de transfer in MB/s.

Cateva exemple:
Cip memorie Frecventa reala Rata max Modul memorie
teoretica
DDR-200 100 MHz 1600 MB/s PC-1600
DDR-400 200 MHz 3200 MB/s PC-3200
DDR2-800 400 MHz 6400 MB/s PC2-6400
DDR3-1600 800 MHz 12800 MB/s PC3-12800
Diferentele principale intre generatiile tehnologice:
-viteza crescuta de operare;
-micsorarea tensiunii de alimentare:
DDR 2.5 V
DDR2 1.8 V
DDR3 1.5 V
DDR4 1.2 V

Prefetch. Memoria DDR transfera la un moment dat (la un front al


ceasului) 2 biti din matricea de memorie catre bufferul de I/E => prefetch 2 biti;
DDR2 transfera 4 biti => prefetch 4 biti;
DDR3, DDR4 transfera 8 biti => prefetch 8 biti;

Avantaj: micsorarea frecventei de ceas intern.


Exemplu: se compara trei cipuri de tehnologii diferite, dar de aceeasi
frecventa: DDR-400, DDR2-400 (exista) si DDR3-400 (imaginar). Frecventele
interne de lucru scad de la 200 MHz, la 100 MHz, respectiv la 50 MHz.

Exemplu: cipurile de memorie DDR-400, DDR2-800 si DDR3-1600


opereaza la aceeasi frecventa interna de 200 MHz.
Modulele de memorie difera in functie de tehnologie:
Chiar daca numarul de pini este acelasi, modulele cu DDR2 si DDR3 nu se pot
interschimba (difera pozitia cheii "notch").
Modul memorie Numar de pini
DDR 184
DDR2 240
DDR3 240
DDR4 288
Memoria cache
Se va presupune ca memoria principala are 256 Mocteti, memoria cache are 1
Moctet, iar dimensiunea unui bloc este de 16 octeti. Rezulta ca:

-memoria principala are


M = 256•220 / 24 = 228 / 24 = 224 blocuri

-memoria cache are


C = 1•220 / 24 = 220 / 24 = 216 cadre de bloc
Maparea directa: blocul numarul i din memoria principala se poate incarca
numai in cadrul de bloc numarul i modulo C (pentru exemplul considerat, in
cadrul de bloc numarul i modulo 65536).
Maparea complet asociativa: un bloc din memoria principala se poate
incarca in oricare cadru de bloc din memoria cache.
Maparea set asociativa. Se considera ca memoria cache este impartita in seturi
de dimensiune E (de exemplu E = 2 cadre de bloc / set) => memoria cache
contine S = C / E (in exemplul considerat, S = C / E = 216 / 21 = 2 15 = 32768 )
seturi. Blocul i din memoria principala poate fi incarcat in oricare cadru de bloc
apartinand setului i modulo S din memoria cache.
Maparea set asociativa este cea mai utilizata in practica!

 compromis intre maparea directa si cea complet asociativa.


Cazurile extreme:
E = 1 => S = C (maparea directa);
E = C => S = 1 (maparea complet asociativa).
Maparea sector asociativa: atat memoria cache cat si memoria
principala sunt impartite in sectoare de dimensiune E (de exemplu E = 16
blocuri / sector).
-memoria cache contine S = C / E (in exemplul considerat, S = C / E =
216 / 24 = 2 12 = 4096) sectoare;
-memoria principala contine P = M / E (in exemplul considerat, P = M /
E = 224 / 24 = 2 20) sectoare.

Sectorul i din memoria principala poate fi incarcat in oricare cadru de


sector din memoria cache, dar maparea blocurilor in cadrul unui sector este
fixa.
Memoria cache la PC-uri

Memoria cache este organizata pe cel putin doua niveluri:


Exemplu: Intel Celeron D 300 contine doua memorii cache L1 de 16 KB si o
memorie cache L2 de 256 KB. Magistrala dintre cache-urile L1 si L2 trebuie sa
dispuna de o viteza (rata) foarte mare de transfer. Se poate calcula pe baza
largimii magistralei (numar de biti transferati in paralel) si frecventa ceasului:

CPU Largime Frecventa Rata


magistrala ceas teoretica
Intel Pentium 64 bits 1400 MHz 11.2 GB/s
III
AMD 64 bits 2167 MHz 17.3 GB/s
Athlon XP+

AMD Athlon 64 bits 2200 MHz 17,6 GB/s


64
AMD Athlon 128 bits 2200 MHz 35,2 GB/s
64 FX
Intel Pentium 256 bits 3200 MHz 102 GB/s
4
Capacitatea memoriilor cache variaza in functie de procesor. In timp ce
la AMD se utilizeaza cache L1 de capacitate mare (128 KB), Intel utilizeaza
cache L1 mai mic (16 KB) dar eficient (Execution Trace Cache). Capacitatile
memoriilor cache pentru cateva procesoare:

CPU L1 cache L2 cache


Athlon XP 128 KB 256 KB
Athlon XP+ 128 KB 512 KB
Pentium 4 (I) 20 KB 256 KB
Pentium 4 (II) 20 KB 512 KB
"Northwood"
Athlon 64 128 KB 512 KB
Athlon 64 FX 128 KB 1024 KB
Pentium 4 (III) 28 KB 1024 KB
Ierarhia de memorii cache la Intel Core I7 (microarhitectura Nehalem):

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