Sunteți pe pagina 1din 18

Lucrare de laborator Nr.

3
Tema: Studierea arhitecturii procesorului central i a memoriei
interne a unui sistem de calcul.
Obiectivele lucrrii:
Sistemele de calcul au avut, n ultimii ani, o evoluie exploziv datorat n primul rnd
evoluiei din domeniul electronicii i tehnologiilor actuale. Cele mai rspndite calculatoare de pe
pia se bazeaz pe procesoare produse de firma Intel.. Memoria unui sistem de calcul este locul
unde procesorul gsete programele i datele atunci cnd i ndeplinete sarcinile. Memoria este
centrul activitii, locul unde este pstrat tot ceea ce este folosit la un moment dat.
Prin parcurgerea acestei edine de aplicaii, studentul se va familiariza cu arhitecturile a trei
procesoare produse de firma Intel, va dobndi cunotine despre organizarea memoriei principale n
sistemele IBM PC.

Breviar teoretic
1. Introducere
Calculatorul numeric a fost conceput iniial ca un instrument de lucru pentru matematicieni i
fizicieni pentru a uura efectuarea unor calcule laborioase. Dup anul 1945, considerat ca fiind anul
de natere al calculatorului electronic, evoluia calculatoarelor a fost marcat de lrgirea domeniului
de aplicaii i de o evoluie tehnologic impresionant datorit apariiei procesoarelor.

2. Arhitectura unui sistem de calcul


Componentele principale ale unui sistem de calcul , conform descrierii lui von Neumann, sunt
(fig. 1):
1 - unitatea central de procesare (ALU);
2 - unitatea de control;
3 - memoria;
4 - echipamentele intrare/ieire.

Fig. 1. Modelul von Neumann al unui sistem de calcul


Toate calculatoarele personale sunt dezvoltate pe baza arhitecturii von Neumann. Acest
model se poate simplifica, rezultnd modelul bazat pe magistral prezentat n fig. 2.

Fig. 2. Modelul bazat pe magistral al unui calculator digital


Procesoarele Intel Pentium sunt procesoare superscalare care pot executa mai multe
instruciuni ntr-un ciclu, mbinnd att caracteristici CISC ct i RISC, primele fiind ns
predominante. Anumite instruciuni sunt complet cablate i pot fi executate ntr-o singur perioad
de tact (caracteristic RISC), n timp ce altele sunt microprogramate i pot necesita mai multe
perioade de tact pentru execuie (caracteristic CISC). De asemenea, procesoarele Intel au cteva
moduri de adresare, cteva formate de instruciune i puine registre (caracteristic CISC).

4. Procesorul 80486

Procesorul 80486 este un procesor pe 32 de bii bazat pe o arhitecur pipeline (band de


asamblare). Aceast band de asamblare are rolul de a crete numrului de instruciuni executate
ntr-un interval de timp. Execuia unei instruciuni a fost mprit n 5 pri distincte, fiecare
executat de o unitate funcional. n fiecare perioad a ceasului este preluat o instruciune i, dei
pentru executarea acesteia sunt necesare cteva perioade de ceas, datorit executrii aproape
simultane a mai multor instruciuni se realizeaz efectul executrii cte unei instruciuni n fiecare
perioad a ceasului.
PF
D1
D2
EX
WB
Fig.3. Structura benzii de asamblare a procesorului 80486
Structura pipeline este organizat pe 5 uniti (nivele):
1 - PF aducere n avans a instruciunii (Prefetch)
2 - D1 decodificare instruciune (Decode 1)
3 - D2 generare adres (Decode 2)
4 - EX execuie (Execute)
5 - WB memorare rezultat n registru (Write Back)
Pentru a alimenta n permanen unitatea de execuie rapid, n procesorul 80486 a fost
inclus o memorie cache de mare vitez. Conceptul cache folosete dou caracteristici importante
ale execuiei programelor: n primul rnd, programele tind s utilizeze datele i instruciunile situate
unele lng altele, iar n al doilea rnd, programele tind s refoloseasc n mod repetat aceleai
blocuri de date. innd cont de aceste caracteristici, sunt pstrate ntr-o unic memorie rapid
blocurile de date care urmeaz s fie utilizate. Memoriiile cache sunt foarte utile, deoarece datele i
intruciunile necesare se afl n peste 95% din cazuri n memoria cache. O alt noutate a
procesorului 80486 fa de precedentele este includerea pe cip a coprocesorului matematic.

5. Procesorul Pentium

Procesorul Pentium conine dou memorii cache separate pentru instruciuni i pentru date,
fiecare avnd capacitatea de 8Ko, o zon tampon de predicie dinamic a salturilor (branch target
buffer), dou buffer-e de aducere n avans a instruciunilor (prefetch) i o memorie de microprogram
(ROM). Memoria de microprogram conine secvenele de microinstruciuni aferente instruciunilor
complexe.
Cache-urile de instruciuni i date sunt asociative la nivel de set (two-way set-associative).
Un set conine dou linii (asociativitate=2) i fiecare linie conine 32 de octei. Fiecare cache are
propriul registru TLB (Translation Lookaside Buffer) pentru translatarea adreselor logice n adrese
fizice. Seturile TLB conin 4 linii (asociativitate=4). Ambele cache-uri utilizeaz algoritmul LRU
(Least Recent Used Line) pentru evacuarea unei linii din cache.
Procesorul Pentium este construit n jurul a dou benzi de asamblare (structuri pipeline)
ntregi, denumite U i V, i una n virgul mobil (flotant). Structura U este o structur complet
care poate procesa att instruciuni n virgul fix ct i n virgul mobil. Structura V poate procesa
doar instruciuni n virgul fix i cteva instruciuni simple n virgul mobil, cum ar fi
instruciunea exchange n virgul mobil. Instruciunile simple sunt cablate i pot fi executate ntr-o
singur perioad de tact. Instruciunile ce nu pot fi considerate simple sunt cele aritmetico-logice, de
tip memorie-registru sau registru-memorie, pentru execuia crora sunt necesare dou sau mai multe
cicluri de ceas.
Primele dou nivele (PF i D1) sunt partajate. Pe nivelul PF se realizeaz extragerea
instruciunilor din cache-ul de instruciuni sau din memorie. Pe nivelul D1, dou instruciuni

secveniale vor fi decodificate n paralel i se va decide dac vor fi lansate simultan sau nu n
execuie, n funcie de o serie de condiii cum ar fi:
0 - cele dou instruciuni trebuie s fie simple;
1 - ntre cele dou instruciuni trebuie s nu existe dependene (hazarduri) RAW sau WAR.
2
Pe nivelul D2 se calculeaz adresele operanzilor din memorie dac acetia exist. Pe
nivelul EX se execut operaia i, dac este necesar, se acceseaz cache-ul de date. Pe ultimul nivel
(WB) rezultatul instruciunii este memorat n registrul destinaie.

3
Fig.4. Structura benzilor de asamblare la procesorul Pentium
Dependenele apar atunci cnd instruciunile utilizeaz aceleai resurse (registre, zone de
memorie), caz n care se numesc dependene de date, sau cnd apar salturi condiionate, caz n care
se numesc dependene de control. Dependenele de date pot fi de tipurile WAR, WAW i RAW.
Dependenele WAR (write after read scriere dup citire) apar atunci cnd o instruciune
trebuie s modifice o locaie de memorie, dar trebuie s atepte ca toate instruciunile anterioare ce
necesit vechea locaie s o citeasc.
Dependenele WAW (write after write scriere dup scriere) apar atunci cnd mai multe
instruciuni modific aceeai locaie. Modificrile trebuie fcute n ordinea indicat de programul
secvenial.
n cazul dependenelor RAW (read after write citire dup scriere) o instruciune poate citi o
anumit valoare numai dup ce aceasta a fost furnizat de o instruciune ce o scrie.
La nivelul benzilor de asamblare instruciunile n cod main sunt descompuse n microoperaii care se execut n paralel. Rezultatul este apoi asamblat i trimis n exterior. n cazul
execuiei unui salt condiionat procesorul execut faza de fetch de la una din cele dou adrese
disponibile, urmnd ca ulterior s verifice corectitudinea saltului. Aceast presupunere pentru adresa
int a saltului se numete speculaie. Dac nu s-a anticipat corect adresa de salt atunci banda
pipeline este golit i se face un nou fetch de la adresa corect.
Anticiparea direciei unui salt se face pe baza execuiilor anterioare ale saltului, care sunt
memorate ntr-o tabel de predicie (Branch Target Buffer). Aceasta conine 256 de intrri organizate
n 4 blocuri (four-way set associative). Fiecare intrare conine adresa instruciunii de salt (branch),
adresa de salt i istoria acestei instruciuni. Cnd o instruciune de salt este decodificat n faza
D1, procesorul caut n BTB pentru a determina dac acesta conine o intrare alocat instruciunii n
cauz sau nu. Dac ciclul BTB va fi un insucces (miss), procesorul prezice c saltul nu se va
executa. Dac ciclul BTB se ncheie cu succes (hit), istoria nregistrat n locaia BTB aferent va
fi utilizat pentru a prezice dac instruciunea va provoca sau nu saltul condiionat. Dac se prezice
c saltul nu se va executa, procesorul continu cu extragerea instruciunilor de pe ramura

secvenial; n caz contrar extragerea instruciunilor se va face de la adresa specificat n


instruciunea analizat. Corectitudinea prediciei este evaluat la nceputul fazei WB.
n procesarea instruciunilor microprocesorul Pentium aplic dou strategii: in-order issue i
respectiv in-order completion. Cnd o instruciune este procesat n structura U i o a doua n
structura V, ambele prsesc nivelul D2 i intr n EX n acelai moment de timp. Dup intrarea n
EX, dac instruciunea din U va fi temporar oprit, atunci i instruciunea din V va fi temporar oprit
(cele dou instruciuni avanseaz n sincronism). Dac ns instruciunea din V este temporar oprit
atunci instruciunea din U avanseaz n execuie deoarece este prima din cadrul perechii respective.
n fine, dac instruciunea din U i ncheie faza EX naintea instruciunii din structura V, urmtoarea
instruciune din structura U nu va putea intra n nivelul EX pn cnd i instruciunea din structura
V i ncheie faza EX (urmtoarea pereche atac simultan nivelul EX).
Pentru execuia instruciunilor n virgul mobil sunt necesare 3 cicluri (fa de numai unul
pentru instruciunile simple). Aceste instruciuni traverseaz un pipeline cu 8 nivele:
1 - PF aducere n avans a instruciunii
2 - D1 decodificare instruciune
3 - D2 generare adres
4 - EX extragere operand
5 - X1 execuie 1
6 - X2 execuie 2
7 - WF scrie rezultat n registru flotant
8 - ER raportare eroare
Primele 5 nivele sunt partajate cu structurile U i V (instruciunile cu operanzi ntregi
utilizeaz nivelul 5, X1, pe post de unitate WB).

6. Procesorul Pentium MMX

Principala noutate a procesorului Pentium MMX fa de Pentium o constituie tehnologia


MMX care accelereaz instruciunile multimedia prin procesarea datelor n paralel. Aceast
tehnologie aduce un set de 57 de instruciuni noi precum i date pe 64 de bii. Exist i opt registre
pe 64 de bii denumite MM0 MM7. Tehnologia MMX a adugat i stagii suplimentare n
arhitectura benzilor de asamblare, a fost adugat o unitate, notat F, dup PF care realizeaz o
analiz gramatical a instruciunii extrase. ntre unitatea F i unitatea de decodare D1 se afl o coad
de ateptare n care se pot pstra pn la 4 micro-instruciuni.
Tehnologia MMX este reprezentat de un set de instruciuni care mresc viteza cu care se
efectueaz operaile ntregi. Registrele MMX sunt de fapt aceleai cu cele utilizate de FPU (floating
point unit), dar sunt accesate i utilizate diferit. Acest fapt este cunoscut sub denumirea de unificarea
registrelor. Deoarece ele sunt partajate, instruciunile FPU i MMX nu pot fi executate n acelai
timp. De asemenea, nu este posibil executarea instruciunilor FPU pe date MMX, din moment ce
aceste date sunt valori ntregi. MMX are capacitatea de a crete performana prin executarea a
multiple calcule pe o singur pies de date. Programatorii recurg la aceast caracteristic frecvent
atunci cnd pentru diferite calcule au nevoie de o multitudine de date. n mod normal, dac trebuie
executat o serie de operaii pe date individuale, se folosete un registru ca AL. Este imposibil
ncrcarea a 4 octei de date ntr-un registru de 32 de bii, i considerarea acestuia ca un vector de 4
octei. n comparaie, tehnologia MMX, permite ncrcarea a pn la 8 octei de date ntr-un registru
i tratarea fiecruia ca o parte de dat individual. Data poate fi de asemenea considerat ca format
din 4 cuvinte, 2 dublu-cuvinte sau 64 bii. Termenul SIMD (single instruction, multiple data) este
utilizat pentru a descrie modul n care MMX poate procesa informaii diferite utiliznd o singur
instruciune.

7. Procesorul Pentium PRO


Procesorul Pentium PRO se bazeaz tot pe o arhitectur superscalar, mbuntit fa de
arhitectura Pentium, denumit arhitectur de execuie dinamic. Execuia dinamic const n
descompunerea unei (macro)instruciuni n instruciuni direct executabile de ctre unitatea de
execuie, i executarea lor n paralel. Spre exemplu, instruciunea ADD EAX,[MEM] este decodat
n dou micro-instruciuni: una care citete operandul din memorie i una care face adunarea.
Banda de asamblare este format din 12 nivele (fig. 6) care sunt divizate dup cum urmeaz:
1 In-order front end:
2 o Se face predicia noii instruciuni,
3 o Se extrage instruciunea din memorie,
4 o Se decodific instruciunea n micro-instruciuni,
5 o Se redenumesc registrele externe procesorului pentru a elimina
dependenele,
6 o Se aloc unitatea de execuie i se memoreaz starea pentru fiecare microinstruciune n ROB (reorder buffer) n ordinea original din program.
7 Out-of-Order execution:
8 o Trimitere i executare micro-instruciune,
9 o Memorare temporar a rezultatelor n ROB.
10 In-order retirement:
11 o Scriere rezultate n registrele externe,
12 o Memorare date permanent dac este necesar,
13 o tergere micro-operaie din ROB.

Procesorul extrage instruciunile citind un double-word (32 bii) de la adresa indicat de


registrul IP (instruction pointer). Cei 32 de bii sunt transformai n cuvinte (16 bii) i trimii
decodorului. Procesorul extrage instruciunile secvenial pn apare o instruciune de salt. Dac
aceast instruciune de salt a fost prezis anterior bufferul BTB (branch target buffer) ntoarce
adresa urmtoarei instruciuni. Dac nu a fost prezis corect sau e prima dat cnd apare se
folosete algoritmul de predicie din nou.
n fiecare ciclu de ceas, trei macro-instruciuni pot fi decodate. Dac aceste instruciuni sunt
complexe sau sunt mai mari de 7 octei decodarea este limitat. Procesorul Pentium PRO posed trei
decodoare de instruciune denumite D0, D1 i D2. Primul decodor este capabil s decodeze o macroinstrciune care este format din cel mult patru micro-instruciuni ntr-un ciclu de ceas. Celelalte
dou decodoare sunt capabile s decodeze numai macro-instruciuni formate din cte o singur
micro-instruciune pe ciclu. Macro-instruciunile formate din mai mult de patru micro-instruciuni
necesit mai multe cicluri de ceas. Cnd D0 decodific o instruciune complex, celelalte decodoare
(D1 i D2) nu lucreaz.
Urmeaz apoi redenumirea registrelor accesibile programului, care sunt suportate de unitatea
de execuie. Acest lucru se face pentru a elimina dependenele false care apar datorit folosirii
aceluiai registru pentru efectuarea unor operaii distincte. Procesorul posed un numr de 40
registre ascunse (nu pot fi accesate prin instruciuni), denumite r0-r39. Spre exemplu, considerm c
avem urmtoarea secven de instruciuni:
mov eax,17
; aceast instruciune iniializeaz registrul eax cu o valoare
; registrul eax este mapat intern spre exemplu pe registrul r1
add mem1,eax ; instruciune care folosete valoarea curent a registrului eax
; este o dependen adevrat i registrul eax este mapat
; intern tot pe registrul r1
mov eax,3
; iniializeaz registrul eax cu o nou valoare
; nu este o dependen adevrat,
; registrul eax in aceast instruciune este mapat cu un alt
; registru intern, spre exemplu r2
add mem2,eax ; analog instruciunii numrul 2, eax este mapat de aceast
;dat tot cu registrul r2

Dup aceast redenumire a registrelor, micro-instruciunilor li se aloc cte o unitate de


execuie. Aceast informaie mpreun cu poziia din program i starea de executare este memorat
n ROB. Dac instruciunile sunt independente, n sensul c datele uneia nu depind de datele
celorlalte sunt trimise ctre unitatea de execuie specific imediat ce aceasta este diponibil.
Instruciunile care depind de datele alteia sunt oprite i ateapt datele de la instruciunea anterioar.

1
Imediat ce datele sunt disponibile, micro-instruciunea este trimis ctre o unitate de execuie
a unuia dintre porturile conectate la ROB. n fiecare ciclu se pot executa n paralel pn la 5 microinstruciuni. Odat ce micro-instruciunea este executat, rezultatele sunt trimise la ROB unde se
face memorarea rezultatelor.
Procesorul Pentium PRO conine 8KB de memorie cache asociativ pentru instruciuni i
8KB de memorie cache pentru date. Memoria cache pentru date poate fi accesat simultan pentru o
instruciune load i o instruciune store att timp ct datele sunt n blocuri diferite.
Tabela de predicie (Branch Target Buffer) a procesorului Pentium PRO are 512 intrri. n
plus, Pentium PRO conine o tabel de ntoarcere (Return Stack Buffer) care anticipeaz adresa de
ntoarcere dintr-o procedur.
Procesorul Pentium PRO este bazat pe procesorul Pentium, deci nu are instruciunile MMX
de la Pentium MMX.

8. Procesorul Pentium II

Memoria cache a procesorului Pentium II este de 32 KB, din care 16 KB pentru instruciuni
i 16 KB pentru date. Memoria cache de date poate fi accesat simultan de cele dou benzi de
asamblare att timp ct datele se afl n zone diferite. n cazul unui cache miss (datele nu se afl n
mmoria cache), este nevoie de minim 10 perioade pentru aducerea datelor din memoria principal.
Spre deosebire de Pentium Pro, Pentium II dispune i de tehnologia MMX, introdus cu
Pentium MMX.

Partea 2. Arhitectura memoriei interne


Introducere
Memoria unui sistem de calcul este alctuit din dispozitive electronice n care sunt pstrate
programele i datele de prelucrat. Ea are o structur ierarhizat, parametrii care definesc acest mod
de organizare fiind timpul de acces i capacitatea. Prin timp de acces se nelege intervalul de timp
care se scurge de la prezentarea adresei pn la obinerea pe magistral a datelor cerute. Capacitatea
se refer la numrul de bii ce pot fi memorai. De obicei capacitatea se exprim ca fiind produsul
dintre numrul de cuvinte si lungimea unui cuvnt. Numrul maxim de cuvinte ce pot fi memorate
este dependent de numrul de bii de adres.
Figura urmtoare ilustreaz ierarhia de memorie dintr-un sistem de calcul:

Dup cum reiese i din diagrama de mai sus, CPU acceseaz memoria conform unei ierarhii
stricte. Indiferent dac provine de pe discul dur (hard-disk) sau de la intrare (tastatur), cea mai mare
parte din informaie ajunge mai nti n RAM. Apoi CPU depoziteaz poriuni de informaii de care
va avea nevoie frecvent ntr-o memorie CACHE, i pstreaz anumite instruciuni n registre.
Toate componentele din computer, cum ar fi CPU, hard-diskul i sistemul de operare, lucreaz
mpreun ca o echip, iar memoria este una dintre cele mai importante componente ale acestei
echipe. Din momentul n care deschidem calculatorul i pn l nchidem, CPU folosete tot timpul
memoria.
S considerm un scenariu simplu:
1. Se pornete calculatorul;
2. Calculatorul ncarc date din ROM i efectueaz power-on self-test (POST), pentru a fi
sigur de funcionarea normal a tuturor componentelor hardware. Ca o parte a acestui test,
controlerul de memorie verific toate adresele de memorie cu o operaie rapid de citire/scriere,
pentru a fi sigur c nu exist nici o eroare n cipurile de memorie;
3. Computerul ncarc Basic Input/Output System (BIOS) din ROM. BIOS-ul asigur
informaiile eseniale despre dispozitive de stocare, secvena de boot, securitate, componentele Plug
and Play;
4. Computerul ncarc sistemul de operare (OS) de pe hard-disk n RAM-ul sistemului. n
general, componentele importante ale OS sunt pstrate n RAM atta timp ct calculatorul este
pornit. Acest fapt permite CPU accesul imediat la OS, ceea ce mbuntete performana i
funcionalitatea ntregului sistem;
5. Cnd se deschide o aplicaie, ea se ncarc n RAM. Pentru a nu umple RAM-ul, multe
aplicaii ncarc doar prile eseniale, i ulterior pe celelalte;
6. Dup ce se ncarc o aplicaie, orice fiier deschis pentru a fi utilizat n aplicaia respectiv
se ncarc n RAM;

7. Cnd se salveaz un fiier i se nchide aplicaia, fiierul este scris pe un dispozitiv de


memorie extern (hard-disk), dup care aplicaia este descrcat din RAM.
n lista de mai sus, ori de cte ori se ncarc sau se deschide o aplicaie, aceasta este plasat
n RAM. Acest lucru nseamn c a fost depozitat n temporary storage area , astfel nct CPU s
poat accesa acea informaie mult mai uor. CPU solicit datele de care are nevoie de la RAM, le
proceseaz i scrie date noi napoi n RAM, ntr-un cerc continuu. n majoritatea computerelor,
aceast deplasare continu a datelor ntre CPU i RAM se face de milioane de ori pe secund. Cnd
o aplicaie este nchis, aceasta i toate fiierele care o nsoesc sunt terse din RAM pemtru a face
loc altor date. Dac fiierele modificate nu sunt salvate ntr-un depozit de memorie permanent,
nainte de a fi terse, ele se pierd.
O proprietate a organizrii ierarhice a memoriei este c datele care se afl pe un nivel i, se
vor regsi i la nivelul i+1. Transferul de informaie ntre 2 nivele se face n blocuri. Dimensiunea
unui bloc poate fi fix sau variabil.
Accesul la un nivel se poate ncheia cu succes (hit atunci cnd informaia se afl n interiorul
nivelului) sau insucces (miss atunci cnd informaia nu se afl n interiorul nivelului). n mod
corespunztor la execuia unei aplicaii se obine un procent (rat) de succes (hit ratio), respectiv
insucces (miss ratio). Penalitatea asociat insuccesului (miss penalty) este intervalul de timp necesar
nlocuirii unui bloc n nivelul superior cu blocul necesar de la nivelul inferior, plus timpul necesar
livrrii datei dispozitivului care a solicitat-o. Obiectivul urmrit de proiectani este de a reduce
numrul de insuccese folosind diverse strategii de nlocuire a blocurilor neutilizate de pe un anumit
nivel al ierarhiei de memorii.

3. Cipuri de memorie
Memoriile dintr-un sistem de calcul se mpart n dou categorii:
1 - RAM Random Access Memory sunt accesibile att pentru citire ct i pentru scriere;
0 - ROM Read Only Memory memorii accesibile numai pentru citire.
2
Memoriile RAM pstreaz informaiile nscrise numai att timp ct sunt alimentate i
se confund adeseori cu memoria calculatorului. Aceast memorie se numete Random Access
deoarece orice celul de memorie se poate accesa direct dac se cunoate linia i coloana
elementului. Rezult c RAM-ul are o organizare matriceal. Opusul memoriei RAM este SAM
serial access memory n care accessul se face secvenial. SAM-ul este folosit pentru bufferele de
memorie unde datele sunt pstrate n ordinea n care sunt folosite.
Cele mai cunoscute module de memorii RAM sunt:
1. SRAM (static RAM), sunt construite intern folosind tranzistoare, de obicei patru pn la 6
pentru fiecare celul. Aceste memorii sunt foarte rapide dar au un cost ridicat, care determin
utilizarea acestora numai n cipuri de dimensiuni mici. Aceste cipuri sunt folosite de obicei n
construcia memoriei cache de nivel 1 (nivel intermediar ntre UCP i memoria principal).
2. DRAM (dynamic RAM) sunt realizate sub forma unui vector de celule, o celul fiind
alctuit dintr-o capacitate mic i dou tranzistoare. Capacitile pot fi ncrcate i descrcate,
permind memorarea valorilor de 0 i 1. Datorit tendinei capacitilor de a se descrca,
memoriile DRAM necesit o logic extern de generare a unui semnal periodic de remprosptare
(refresh). Acest dezavantaj este ns compensat de preul lor sczut. Memoria DRAM este accesat
prin intermediul a 2 adrese, una de linie, strobat de semnalul RAS (row access strobe), i una de
coloan, strobat de semnalul CAS (column access strobe). De obicei, adresele de linie i coloan se
decodific din adresa liniar furnizat de procesor.
3. FPM DRAM (fast page mode DRAM) ofer posibilitatea accesrii datelor n rafal (burst) :
dac se aceseaz date de pe aceeai linie, adresa de linie trebuie furnizat la nceput, strobat de

RAS; n continuare, se dau adresele de coloan strobate de pulsuri pe linia CAS. n acest fel, pentru
date contigue, timpul de acces scade. De obicei, un transfer dureaz 5-3-3-3 cicluri de tact, adic
primele date sunt disponibile n 5 cicluri, iar urmtoarele de pe aceeai linie n cte 3 cicluri. Aceste
memorii au o rat maxim de transfer cu memoria cache de nivel 2 (L2 cache) de 176 MB/s
(megaoctei / secund).
4. EDO DRAM (extended data out DRAM) este asemntor cu FPM DRAM, cu deosebirea c
urmtorul ciclu de citire/scriere poate ncepe n timp ce memoria nc pstreaz la ieire datele de la
ciclul anterior. Este cu 5% mai rapid dect memoria FPM DRAM ajungnd la o vitez maxim de
264 MB cu L2 cache.
5. SDRAM (synchronous DRAM) spre deosebire de celelalte tipuri de memorie discutate,
memoria SDRAM este sincron, adic att semnalele de intrare i ieire, ct i operaiile interne sunt
sincronizate cu un semnal de tact. Acest lucru permite conectarea la magistrala sincron a sistemului
i paralelizarea de tip pipeline a operaiilor interne. Viteza maxim de transfer cu L2 cache este de
aproximativ 528MB/s i echipeaz majoritatea staiilor de lucru.
6. DDR SDRAM (double data rate SDRAM) folosete pentru eantionarea semnalelor de
intrare i pentru operaiile interne att frontul cresctor, ct i cel descresctor al semnalului de tact.
n acest fel, rata de transfer aproape se dubleaz fa de SDRAM.
7. RDRAM (Rambus DRAM) - folosete o magistral de date foarte rapid (400MHz)
denumit Rambus channel. Transferul se face pe ambele fronturi ale semnalului de tact, ca la DDR
SDRAM, ajungndu-se la rate de transfer de 1600MB/s pe o magistral de 16 bii.
8. DDR2 SDRAM ofer avantajul operrii la frecven de tact dubl fa de DDR SDRAM,
datorit construciei interne (400, 533, 667 MHz). Astfel, se pot obine rate de transfer de ordinul
8533 MB/s la 533MHz.

Cipurile i conectorii folosii pentru memoria RAM au evoluat de-a lungul ultimilor ani.
Primele cipuri erau proprietate, adic diferii productori de calculatoare realizau plci de memorie
care funcionau numai cu acele sisteme specifice fabricantului. Apoi a aprut standardul SIMM
(Single In-line Memory Module). Acest standard utilizeaz un conector de 30 de pini i are
dimensiuni de 3,5 inches pe 0,75 inches (aproximativ 9 cm pe 2 cm). La cele mai multe calculatoare,
SIMM-urile se instaleaz n perechi de capacitate i vitez egal, deoarece limea magistralei este
mai mare dect un singur SIMM. De exemplu, trebuie instalate 2 SIMM-uri de 8 MB pentru a obine
16 MB de memorie RAM. Fiecare SIMM ar trimite 8 bii de date, n timp ce sistemul poate lucra cu
16 bii n acelai timp. Cipurile SIMM de mai trziu sunt puin mai mari (4,25 inches pe 1 inch, sau
11 cm pe 2,5 cm) i folosesc un conector de 72 de pini pentru a mri capacitatea de adresare,
asigurnd accesarea a 256 MB de RAM.
Pe msur ce procesoarele au evoluat, industia a adoptat un nou standard denumit DIMM
(Dual In-line Memory Module). Cu un conector de 168 de pini i o mrime de 5,4/1 inch (14/2,5

cm), DIMM variaz ca i capacitate ntre 8 MB i 128 MB per modul i poate fi instalat i singur, n
locul perechilor. Cele mai multe module de memorie pentru calculatoare opereaz la 3,3 voli n
timp ce sistemele Mac folosesc 5 voli. Un nou standard, RIMM (Rambus In-line Memory
Module), este comparabil ca mrime i configuraie cu DIMM, dar folosete o magistral special
pentru a mri considerabil viteza.
Numeroase tipuri de calculatoare notebook folosesc plci de memorie proprietare, dar unii
productori folosesc RAM-ul bazat pe configuraia Small Outline Dual In-line Memory Module
(SODIMM). Cardurile SODIMM sunt mici, de aprox. 2/1 inch (5/2,5 cm) i au 144 de pini.
Capacitatea variaz ntre 16 MB i 256 MB per modul. Un fapt interesant privind calculatoarele
Apple iMac este c acestea folosesc SODIMM n locul DIMM-urilor tradiionale.
Memoria ROM este construit din circuite integrate programabile. Datele nregistrate ntr-o
memorie ROM nu se pierd atunci cnd tensiunea de alimentare este oprit. Iniial datele erau
nscrise la fabricarea memoriei prin expunerea unui material fotosensibil printr-o masc ce conine
ablonul de bii dorit. Datorit acestui neajuns au fost dezvoltate mai multe tipuri care s permit
nscrierea acestora cu ajutorul unor dispozitive speciale:
1. PROM (Programmable ROM) este o memorie ROM ce se poate nscrie o singur dat, la
faa locului; ele sunt alctuite dintr-o matrice de sigurane care sunt arse prin aplicarea unei tensiuni
ridicate;
2. EPROM (Erasable PROM) sunt memorii PROM care utilizeaz unde ultraviolete pentru
tergere; aceste memorii pot fi terse i apoi rescrise (sunt reutilizabile);
3. EEPROM (Electrically Erasable PROM) sunt memorii EPROM care pot fi terse sau
nscrise folosind impulsuri de curent electric;
4. Memoriile flash sunt asemntoare memoriilor EPROM, doar c au un timp de acces mult
mai mic (aproximativ 100ns); durata lor de via este de aproximativ 10000 de cicluri de scriere.
n sistemele IBM PC memoriile ROM sunt folosite pentru programele BIOS care trebuie s
asigure pornirea sistemului de calcul precum i interfaarea cu celelalte componente ale sistemului.
BIOS-ul are mai multe sarcini, dar cea mai important este aceea de a ncrca sistemul de operare.
Cnd calculatorul este pus sub tensiune i microprocesorul ncearc s execute prima sa instrucie,
trebuie s ia aceast instrucie de undeva. Nu o poate lua din sistemul de operare deoarece acesta
este localizat pe hard-disk, i microprocesorul nu o poate lua de acolo fr nite instruciuni
prealabile, care s-i spun cum s fac acest lucru. BIOS asigur aceste instruciuni. Alte funcii ale
BIOS-ului sunt:
1. Power-on self-test pentru celelalte componente hardware ale sistemului;
2. Activeaz alte cipuri BIOS de pe diferitele plci instalate pe calculator.
De exemplu, controllerele SCSI i plcile grafice au propriul lor BIOS.
3. Asigur un set de rutine low-level, pe care sistemul de operare le folosete pentru a se
interfaa cu diferite dispozitive hardware. Aceste rutine determin denumirea de BIOS. Ele au grij
de componente precum tastatura, monitorul, porturile paralele i seriale, mai ales atunci cnd
calculatorul buteaz.
4. Opereaz setri pentru hard-disk, ceas, etc.
BIOS este un software special care face legtura ntre componentele hardware majore i
sistemul de operare. De regul este depozitat ntr-un cip flash pe placa de baz, dar uneori cipul este
un alt tip de ROM.

Fig. 3. Exemplu de BIOS care folosete memorie flash

4. Organizarea memoriei
Din punct de vedere fizic, memoria principal este organizat ca un set de locaii de memorare
numerotate consecutiv ncepnd cu 0. Numerele asociate locaiilor reprezint adrese fizice, iar
mulimea adreselor fizice constituie spaiul de adrese fizice. Spaiul de adrese fizice poate fi diferit
de spaiul de adrese al unui procesor.
Din punct de vedere logic, memoria principal reprezint o parte a memoriei virtuale asociat unui
program. Conceptul memoriei virtuale const n separarea spaiului de adrese fizice de spaiul de
adrese logice. Astfel un program utilizeaz adrese logice n locul adreselor fizice. Procesul de
convertire al adreselor logice (virtual) n adrese fizice se numete mapare sau translatare.
Separarea adreselor de locaiile de memorie permite mrirea spaiului de adresare gestionat de un
program peste dimensiunea spaiului fizic real, precum si distribuirea unui program n spaiul de
memorie sub forma unor blocuri, fapt care permite o optimizare a utilizrii resurselor de calcul.
Sistemele cu memorie virtual se mpart n dou categorii:
1 - cu paginare utilizeaz blocuri de dimensiune fix, numite pagini;
2 - cu segmentare utilizeaz blocuri de dimensiune variabil, numite segmente.
Adresarea paginat este caracterizat de o adres de dimensiune fix compus din dou
cmpuri: unul pentru numrul paginii i unul pentru deplasare n cadrul paginii. n cazul adresrii
segmentate, sunt necesare dou cuvinte de adres: unul pentru un numr de segment i unul pentru
deplasare in interiorul segmentului.
Translatarea adreselor logice n adrese fizice se face cu un mecanism de mapare a memoriei,
care folosete un tabel care asigur corespondena ntre spaiul virtual si cel fizic n termeni
individuali pagin/bloc.
Un tabel de pagini este o zon de memorie care conine o list de pagini i blocurile asociate.
Accesul la acest tabel este indicat de un registru special (PTOR Page Table Origin Register) care
conine adresa sa de nceput. Cnd se lanseaz n execuie un program , se ncarc PTOR cu adresa
de nceput a tabelului de pagin corespunztor. Aceast funcie este realizat de ctre sistemul de
operare n starea supervizor. Sistemul de operare determin ce blocuri de memorie sunt disponibile
i le organizeaz n pagini, dup care ncarc paginile respective din memoria extern.
Componentele sistemului de operare care realizeaz aceste funcii se numesc
disc (auxiliary storage manager).

Memoria virtual ofer suport pentru protecia proceselor n sistemele multitasking. Un


proces trebuie s se execute corect indiferent dac execuia sa este continu sau este ntrerupt
periodic prin comutarea altor procese. Paginile sau segmentele de memorie pot avea asociate
atribute (drepturi de acces) care s previn interferarea proceselor. Mecanismele de protecie a
memoriei au fost introduse ncepnd cu procesoarele Intel 80286.

5. Gestionarea memoriei
Spaiul de memorie, ntr-un calculator compatibil IBM PC care ruleaz sistemul de operare
DOS este mprit astfel:
1 - Zona de memorie convenional (de baz);
2 - Zona de memorie superioar (UMA);
3 - Zona de memorie nalt (HMA);
4 - Memoria expandat (EMS);
5 - Memoria extins (XMS).
Zona de memorie convenional ocup primii 640Ko de memorie (ntre adresele 00000h
9FFFFh). Spaiul de memorie este mprit n blocuri de 64Ko. Memoria de baz este rezervat
pentru componentele sistemului de operare, driverele de echipamente externe i pentru programele
utilizator. Spaiul de memorie convenional este utilizat dup cum urmeaz:
1 - tabela vectorilor de ntrerupere 0000:0000h0030:00FFh aici sunt plasate rutinele de tratare
a ntreruperilor; pot fi tratate maxim 256 de ntreruperi;
2 - zona de date BIOS 0040:0000h0050:00FFh conine informaii despre sistem, cum ar fi de
exemplu tipul de hardware prezent ;
3 - nucleul sistemului de operare aici se gsesc ncrcate fiierele IO.SYS i MSDOS.SYS,
bufferele pentru operaiile cu discul fix, programe rezidente n memorie i drivere;
4 - procesorul de comenzi DOS aici se ncarc fiierul command.com;
5 - zona de memorie liber (zona de memorie utilizator) zona n care sunt ncrcate programele
utilizator; ea ocup spaiul rmas ntre procesorul de comenzi DOS i adresa 9000:FFFFh.
n tabelul urmtor sunt indicate cteva din informaiile aflate n zona de date BIOS:
Adresa
0040:0000h
0040:0002h
0040:0004h
0040:0006h
0040:0008h
0040:000Ah
0040:000Ch
0040:000Eh
0040:0010h
0040:0013h

Dimensiune (n octei)
2
2
2
2
2
2
2
2
2
2

Descriere
Adresa de baz a primului port serial RS-232 COM1
Port serial COM2
Port serial COM3
Port serial COM4
Adresa de baz a primului port paralel LPT1
Port paralel LPT2
Port paralel LPT3
Port paralel LPT4
Lista de echipamente active (vezi tabelul 2)
Dimensiunea memorie de baz n Ko

Tabel 1: Zona de date BIOS

n tabelul urmtor este indicat semnificaia biilor din lista de echipamente:


Bit
0
1
2-3
4-5
6-7
8
9-11
12
13
1415

Semnificaie
Indic prezena discului fix
Indic prezena coprocesorului matematic
Dimensiunea memoriei ROM: 00=rezervat, 01=16Ko, 10=32Ko, 11=64Ko sau mai mult
Modul video: 00=rezervat, 01=40 coloane color, 10=80 coloane color, 11=TTL monocrom
Numrul de uniti de dischet instalate: 00=1, 01=2, 10=3, 11=4
Indic prezena DMA
Numrul de porturi seriale RS-232: 000=0,,111=7
Indic prezena adaptorului pentru jocuri (joystick)
Indic prezena imprimantei seriale
Numrul de porturi paralele: 00=0,,11=3

Tabel 2: Lista de echipamente instalate


Zona de memorie superioar (UMA upper memory area) ocup urmtorii 384Ko dup
memoria convenional. Ea cuprinde mai multe zone:
1 - zona de memorie video A000:0000hB000:FFFFh zon folosit ca buffer pentru ecran;
deoarece uzual memoria adaptoarelor grafice este mai mare dect zona de memorie video
(128Ko) se folosete o tehnic de paginare a memoriei video;
2 - zona ROM BIOS auxiliar C000:0000hC000:FFFFh este folosit n diverse moduri; uzual
aici se gsesc rutinele pentru controlul discului fix sau/i al adaptoarelor video;
3 - zona de extensie ROM - D000:0000hE000:FFFFh este folosit pentru extensii ROM BIOS;
n sistemele de calcul mai vechi era folosit pentru interpretorul ROM BASIC;
4 - zona ROM pentru BIOS - F000:0000hF000:FFFFh este o zon accesibil numai pentru
citire, deoarece conine rutinele ce asigur interfaa cu echipamentele hardware de baz.
Memoria expandat (EMS expanded memory specification) a fost dezvoltat din
necesitatea de a depi bariera celor 640Ko pe care i poate adresa sistemul de operare DOS. EMS
folosete o metod de paginare asemntoare celei utilizate n adaptoarele video. Zona de memorie
expandat este mprit n pagini de 16Ko care sunt mapate la un moment dat n zona de memorie
utilizator. Memoria EMS este accesibil prin folosirea managerului de memorie EMM386.EXE.
Avantajul utilizrii EMS const n eliberarea memoriei de baz prin transferul programelor rezidente
n zona EMS. n prezent EMS este folosit de foarte puine aplicaii datorit ineficienei
mecanismului bazat pe paginare.
Memoria extins (XMS extended memory specification) ocup spaiul de peste 1Mo, dar
este accesat direct, atunci cnd procesorul lucreaz n modul de lucru protejat.
Primii 64Ko de memorie peste limita de 1Mo formeaz memoria nalt (HMA high
memory area) i pot fi accesai de ctre procesor n modul de lucru real. Pentru a avea acces la
memoria XMS este necesar ncrcarea managerului de memorie HIMEM.SYS.
Memoria EMS nu trebuie confundat cu memoria XMS. Memoria EMS a fost dezvoltat
pentru a crete performanele sistemului n modul de lucru real, iar memoria XMS a fost conceput
pentru lucrul n modul protejat.

Mersul lucrarii

Asigura-te ca PC-ul e deconectat de la curent.


Deschide carcasa si determina de ce module de memorie si care este clasa procesorului de
care dispune sitemul dat. Inregistreaza standartele de socket si socluri gasite.
Gaseste in Internet datele ce caracterizeaza componentele studiate. Inregistreaza datele
gasite.
Detaseaza daca este posibil componentele, si determina clasa din care fac parte, realizeaza
pasii de conectare
Faceti o paralela cu standartele precedente si cele mai noi ca actualele.
Darea de seama va contine o descriere a unui processor si a memoriei interne a unui sitem de
calcul.