Documente Academic
Documente Profesional
Documente Cultură
Generaia cincia
S-a ncercat o definire a generaiei a cincia, prin formularea cerinelor ce stau n faa
calculatoarelor la ora actual, cerine care cuprin urmtoarele:
-o interfa inteligent care s permit dialogul pe baz de limbaj natural (voce, sunete,
imagini, informaie grafic);
-crearea unei maini care s realizeze raionament pentru rezolvarea problemei, fr
cunoaterea prealabil a algoritmului;
-baze de date imense cu o cutare foarte rapid.
2.
Se poate spune c aceste tendine respect legea lui Gordon Moore, cofondator
mpreun cu Obert Noyce a societii INTEL. Acesta, n 1965, enun celebra sa lege:
numrul de tranzistori din circuitele integrate se va dubla la fiecare doi ani . Aceasta
nseamn c, la fiecare 10 ani se schimb
prefixul de msurare, adic totul crete de 1000 de ori. ntr-adevr, dac hard discurile din
anii 90 aveau 100 MB, n 2000 ele au 100 GB. Frecvena ceasului era n 1990 de 8 MHz iar n
2000 era de 1 GHz etc.
3.
Flux de
instruciuni
multiplu
SISD
MISD
SIMD
MIMD
Aceasta arhitectura interna a fost dezvoltata n mai multe directii rezultnd sisteme de
calcul cu posibilitati noi si adaptate noilor cerinte cerute de societate. Pentru a vedea aceste
noi directii ne vom folosi de o clasificare a sistemelor dupa arhitectura interna propusa de
Flynn:
SISD (Single Instruction Single Data)
SIMD (Single Instruction Multiple Data)
MISD (Multiple Instructions Single Data)
MIMD (Multiple Instructions Multiple Data)
Arhitectura SIMD se caracterizeaz prin n uniti de procesare (UP) care opereaz sub
controlul unui flux unic de instruciuni (FI) lansat de o singur unitate de comand (UC).
Cele mai cunoscute maini SIMD sunt calculatoarele vectoriale. Acestea transform
instruciuni care se execut n n pai ntr-o main SIMD, n instruciuni care se execut
ntr-un singur pas. De exemplu, suma a doi vectori: c[i]=a[i]+b[i] pentru i=1n se face
ntr-un pas, fiecare Unitate de Prelucrare calculnd o component a vectorului sum.
3.
MISD (Multiple Instruction Single Data - mai multe instructiuni cu o data)
Fluxuri de instruciuni multiple, flux de date singular (MISD)- neobinuit datorit faptului c
fluxurile de instruciuni multiple au nevoie, de obicei, de fluxuri multiple de date pentru a fi
eficient. Totui, acest tip este folosit cnd se ajunge la paralelism redundant, ca de exemplu
la avioane, care sunt obligate s posede cteva sisteme backup n cazul n care unul se
defecteaz. Acestea sunt sistemele care folosesc microprocesoare pipeline (conduct),
metod folosit de ctre procesoarele recente. La un astfel de microprocesor, de exemplu,
4.
Legea lui Amdahl : eficiena maxim n mbuntirea unui sistem (concret sau abstract) se
atinge dac se optimizeaz subsistemul cel mai folosit.
Aceast lege afirm c o mic parte a programului, care nu poate fi paralelizat va limita
acceleraia global care poate fi obinut din restul programului, din partea paralelizabil a
acestuia. Orice probleme matematice sau de inginerie suficient de complexe, de obicei, vor
consta din mai multe pri, unele paralelizabile, iar altele secveniale. Accelerarea S pentru
un sistem cu N procesoare este, prin
definiie: S=Ts/Tn, unde:
Ts = timpul de execuie pentru cel mai rapid algoritm secvenial care rezolv problema pe
un monoprocesor;
Tn = timpul de execuie al algoritmului paralel executat pe un sistem multiprocesor, cu N
microprocesoare.
Dac notm cu f fracia (procentajul) din algoritm care are un caracter eminamente
secvenial, f [0,1], putem scrie:
Tn=fTs+(1f (Ts))/N Legea lui G. Amdahl, 1S N
Relaia obinut reprezint formula clasic pentru legea lui Andahl. Aceast lege este
perfect valabil pentru aplicaii cu sarcin de lucru fix.
a)
b)
=1 => Sn=1
c)
=1 => Sn=n
d)
n->oo , Sn-> 1/
cnd parametrul n tinde spre infinit, accelerarea sau ctigul de vitez S n este limitat de
ponderea operaiilor secveniale n aplicaia dat.
5.
Dup cum se observ conveierul respectiv e constituit din n nivele, primul fiind nivel de
intrare iar ultimul nivel de ieire. Fiecare nivel conine un fixator(circuit de memorare de ex.
registru) i un circuit logic combinaional(CLC). Toate circuitele de memorare sunt
sincronizate cu semnalul CLK. n acest fel n fiecare moment de timp pe fiecare nivel al
conveierului sunt fixate simultan pentru o perioad de tact nite date. Datele de pe primul
nivel sunt date de intrare n conveier, datele la nivelul de ieire reprezint rezultatul final
generat de conveier iar datele de pe celelalte nivele sunt date intermediare. CLC de pe un
anumit nivel al conveierului prelucreaz datele furnizate de fixatorul respectiv n
conformitate cu cerinele operaiei de pe nivelul corespunztor. Toate operaiile executate
pe nivelele conveierului rezult din divizarea unei operaii complexe. Astfel, nivelele
conveierului permit asamblarea a operaiei sau funciei de la intrarea conveierului.
n aa fel n fiecare moment de timp se proceseaz cteva perechi de operanzi(n cazul
operaiei cnd apare virgula flotant), dar tot n fiecare tact se genereaz cte un rezultat la
ieire. Datorit acestei proprieti performana conveierelor este foarte nalt i poate fi
caracterizat ca un rezultat pe tact. Durata tactului depinde practic de ntrzierea introdus
de circuitul logic combinaional. Evident frecvena de lucru a conveierului trebuie corelat
cu ntrzierea maxim introdus pe unul din nivelele conveierului. n caz ideal ntrzierea
introdus de fiecare CLC ar trebui s fie egal. La nivel practic divizarea operaiei complexe
pe sub-operaii trebuie realizat n aa mod nct complexitatea respectiv ntrzierea la nivel
de fiecare sub-operaie s fie ct mai aproape una de alta.
10
Cel mai simplu conveier dar i cel mai performant ca vitez de lucru este conveierul liniar.
Un conveier liniar are conectate intrrile ieirile la 2 nivele vecine.
Pentru a reduce costurile conveierelor se utilizeaz conveiere multi-funcionale(dinamice).
Un conveier multi-funcional e capabil s execute cel puin dou tipuri de operaii
complexe(de ex. nmulirea i adunarea n virgul flotant). Conveierul multi-funcional
conine interconexiuni de tip reacie(de ex. nivelul i e conectat la nivelul i-3). ntr-un
conveier multi-funcional intrarea respectiv ieirea pot fi oriunde la nivel structural.
Conveierele pot fi aritmetice, de instruciuni la nivel de memorie a sistemului etc.
6.
11
Considerm problema calculrii sumei a N numere n virgul mobil b1, b2, , bn.
12
nsumarea poate fi efectuat prin modificarea sumatorului dup cum se arat n figura 1.20.
A fost adugat o cale de reactie invers la ieirea etajului final E4, permitnd rezultatelor
sale s fie aplicate la intrarea primului etaj E1. Operanzii de intrare ai sumatorului modificat
se obtin din patru surse separate: o variabil X care este obtinut dintr-un registru UCP sau
o locatie de memorie; o surs constant K; ieirea etajului E4, reprezentnd rezultatul
calculat de E4 n perioada de ceas precedent i un rezultat anterior calculat de sistemul
pipeline i memorat n registrul de ieire R.
Problema adunrii a N numere este solutionat de sistemul pipeline aritmetic din figura 1.20
n modul urmtor:
Operanzii b1, b2, , bN sunt introdui n sistemul pipeline ntr-un ir continuu prin intrarea
X. Acest proces necesit o secvent de operatii de ncrcare din memorie, care sunt
implementate simplu dac operanzii sunt memorati n locatii continue.
In figura 1.23, b8 = bN este ultimul element care trebuie nsumat.
Dup ce ultimul operand bN a fost aplicat la intrarea sistemului pipeline, structura reactiei
inverse este modificat din nou pentru a permite ca cele patru sume partiale b1+b5,
b2+b6, b3+b7 i b4+b8 s fie adunate. Modificarea necesar a structurii reactiei inverse
este indicat n figura 1.22 pentru cazul N= 8. La momentul t = 9, intrrile externe n
sistemul pipeline sunt invalidate prin setarea lor la zero, iar prima din cele patru sume
partiale b1+b5 de la ieirea etajului E4 este memorat n registrul R. Apoi, la momentul t =
10, noul rezultat b2+b6 de la etajul E4 este aplicat la intrarea sistemului pipeline, mpreun
cu rezultatul precedent b1+b5 obtinut din R. Astfel, n acest moment ncepe calculul
b1+b5+b2+b6, care este suma jumttii operanzilor de intrare. Dup o nou ntrziere de o
perioad, ncepe calculul sumei celeilalte jumtti b3+b7+b4+b8.
13
Atunci cnd b1+b5+b2+b6 apare la ieirea etajului E4 la momentul t =14, aceasta este
memorat n R, pn cnd b3+b7+b4+b8 apare la ieirea etajului E4 la momentul t = 16. In
acest moment, ieirile etajului E4 i ale registrului R sunt aplicate la intrrile etajului E1.
Rezultatul final este produs patru perioade mai trziu, la momentul t = 20 n cazul N = 8.
Pentru cazul general al N operanzi, sistemul pipeline aritmetic din figura 1.21 i 1.22 poate
calcula suma a N>4 numere n virgul mobil ntr-un timp (N+11)T unde T este perioada de
ceas a sistemului pipeline, deci ntrzierea pe etaj. Deoarece un sumator comparabil care nu
este de tip pipeline necesit un timp de 4NT pentru calcularea sumei, creterea vitezei
obtinute este 4N/(N+11), care se apropie de 4 pe msur ce N crete.
7.
Sumatorul CSA : se aplica 3 numere la intrare fiind generate 2 nr. Binare la iesire. O iesire
reprezinta suma separata pe fiecare coloana de biti iar cealalta iesire cifrele transportului
generate salvate sub forma de vector C.
Pentru a obtine suma celor 3 numere vectorul C si Sb ( bit WISE ) trebuie sumati pe un
sumator clasic de tip CPA. Reprezentarea Raspunsului de n biti la un sumator CSA :
Sb = { 0, sn-1, sn-2,..., s1,s0 }
C = {cn, cn-1, cn-2,..., c1, 0 }
Relatia pentru un bit a Sb este : Sbi = xi + yi + zi ( in cazul dat + e adunare modulo2 )
Iar pentru vectorul C relatia este : C = xiyi V xizi V yizi
Deci suma celor 3 numere x, y si z va fi : S=x+y+z = C + Sb
Deoarece sumatorul CSA efectueaza toate calculele a C si Sb in paralel rezultatele sunt
calculate cu o intirziere foarte mica, intirzierea este practic de 2 nivele logice. Acest tip de
sumator se utilizeaza la imultirea a 2 numere.
PipeLine de imultire
Fie 2 numere A si B a cite 8 biti este necesara efectuarea produsului P a acestor 2 numere
Structura de mai sus reprezinta conveerul de imultire in care sumarile se realizeaza conform
aroborelui walles.
Pentru a suma cele 8 produse partiale (p/u a genera produsul P) v-om utiliza un set de
circuite CSA astfel in cit se reduce arborele sumarii de la 8 numere de intrare la doar 2
numere dupa care am putea recurge la un circuit CPA pentru a obtine produsul propriu zis.
Conveerul reprezintat este realizat pe 4 etaje S1, S2, S3, S4;
I et. Logica care genereaza cifrele binare ale tuturor produselor partiale
II III et. Contin circuite CSA interconectate a cite 2 nivele
IV et. Etapa finala este dintr-un sumator clasic din care se obtine produsul final
Modificand str. Initiala intr-un conveer pe 6 etaje devine posibila dublarea fregventei de
lucru a conveeruului. Costurile noii versiuni a conveerului ar fi cu 20-25 % mai mari fata de
14
8.
15
16
9.
17
Dezavantajele:
- Creterea capacitii necesare ROM pentru microcod reduce spaiul unitilor logice de
procesare i implicit diminueaz performanele.
- Un dezavantaj semnificativ al unui set complex de instruciuni este acela c exist
instruciuni complexe rar folosite, instruciuni care ocup o cantitate considerabil de spaiu
disponibil pe chip n zona ROM de microcod.
IBM a realizat o statistic detaliat cu rezultate neateptate i impresionante:
Un program pentru un procesor CISC folosete tipic 20% din instruciuni n aproximativ 80%
din durata execuiei unui program.
n contexte speciale execuia unei secvene de instruciuni simple ruleaz mai repede dect
o singur instruciune cu cod main complex care ar avea acelai efect.
Programele au un numr semnificativ de instruciuni de control al programului ( call, jmp ...)
Se prefigureaz ca alternative:
Reducerea setului de instruciuni;
Nivele de pipeline pentru execuia instruciunilor;
Numai anumite instruciuni s aibe acces direct la memorie, restul folosesc registrele
interne ale microprocesorului;
Folosirea registrelor ntr-o manier care s permit acces rapid al apelurilor.
Introducere
In general, arhitecturile calculatoarelor au evoluat progresiv spre o complexitate mai
ridicat ca, de exemplu un numr mai mare de instructiuni, un numr mai mare de moduri
de adresare, o putere de calcul mai ridicat a instructiunilor individuale, registre mai
specializate. Calculatoarele care se ncadreaz n asemenea tendinte sunt numite
calculatoare cu set complex de instructiuni (CISC - Complex Instruction Set Computer).
S-a constatat la un moment dat c adugarea unei instructiuni complexe la un set de
instructiuni afecteaz eficienta i costul procesorului. Efectele unei asemenea instructiuni
trebuie evaluate nainte ca aceasta s fie adugat la setul de instructiuni. Unele din
instructiunile puse la dispozitie de procesoarele CISC sunt utilizate rareori de compilatoare.
Conceptul de baz de a nu se aduga instructiuni utilizate rar la setul de instructiuni
reprezint un concept inovativ al arhitecturilor de calculatoare, numit calculator cu set redus
de instructiuni (RISC - Reduced Instruction Set Computer). Filozofia de proiectare a
arhitecturilor RISC este de a se aduga la setul de instructiuni numai acele instructiuni care
determin un ctig de performant.
Avantajele arhitecturilor RISC se refer la:
1. Viteza de calcul;
2. Implementarea n circuite VLSI;
3. Timpul de proiectare;
4. Facilitarea utilizrii limbajelor de nivel nalt.
1. In ceea ce privete viteza de calcul, arhitecturile RISC sunt mai potrivite pentru utilizarea
sistemelor pipeline de instructiuni. Aceste arhitecturi maximizeaz rata de transfer a
sistemului pipeline prin faptul c au o dimensiune uniform i o durat egal a executiei
pentru majoritatea instructiunilor. Aceste caracteristici reduc perioadele de inactivitate n
cadrul sistemului pipeline.
2. Implementarea n circuite VLSI se refer la faptul c :
unitatea de control a arhitecturilor RISC este implementat prin hardware. Un sistem cu o
unitate de control cablat va fi, mai rapid dect unul microprogramat. In plus, un numr
mare de registre i memoriile cache n cadrul capsulei vor reduce numrul accesurilor la
memorie. Datele mai frecvent utilizate pot fi pstrate n registre. Registrele pot pstra de
asemenea parametrii care trebuie transmii altor proceduri.
3. Un alt avantaj al arhitecturilor RISC este c acestea necesit o perioad mai scurt de
proiectare, deci costurile sunt mai reduse. Timpul necesar pentru testarea i depanarea
circuitelor rezultate este mai redus, deoarece nu se utilizeaz microprogramarea i
dimensiunea unittii de control este redus deci posibilitatea erorilor de proiectare este mai
redus.
4. Arhitecturile RISC ofer anumite caracteristici care faciliteaz n mod direct operatiile
obinuite ale limbajelor de nivel nalt.
Caracteristici ale arhitecturilor RISC :
19
1. Majoritatea instructiunilor acceseaz operanzii din registre, cu exceptia unui numr redus
dintre ele, cum sunt instructiunile LOAD i STORE, care acceseaz memoria. Cu alte cuvinte,
o arhitectur RISC este un calculator de tip load/store.
2. Executia majorittii instructiunilor necesit un singur ciclu de ceas, cuexceptia unui
numr redus dintre ele, cum sunt instructiunile LOAD i STORE.
3. Unitatea de control este cablat. Deci, arhitecturile RISC nu sunt microprogramate. Codul
generat de compilator este executat direct prin hardware i nu este interpretat prin
microprogramare.
4. Exist un numr redus de formate ale instructiunilor (adesea mai mic dect 4).
5. UCP are un numr mare de registre. O alternativ la un numr mare de registre este
amplasarea unei memorii cache n aceeai capsul.
6. Compilatorul are o complexitate ridicat. De exemplu, compilatorul trebuie s se ocupe
de salturile ntrziate.
8. Exist relativ putine instructiuni (adesea, mai putin de 150) i foarte putine moduri de
adresare (adesea mai putin de 4).
9. Arhitecturile RISC faciliteaz operatiile limbajelor de nivel nalt printr-o alegere judicioas
a instructiunilor i prin utilizarea compilatoarelor care optimizeaz codul.
10. Arhitecturile RISC utilizeaz sistemele pipeline de instructiuni i metode pentru
rezolvarea problemei salturilor, cum sunt tehnicile de prencrcare multipl i de predictie a
salturilor.
20
21
Hardul complex poate avea si un alt efect relativ neasteptat. Proiectantii au fost nevoiti sa
se concentreze pe functionarea lui si au acordat mai putina atentie performantelor. Un astfel
de exemplu este cazul instructiunii INDEX de la procesorul VAX , care ruleaza mai incet
decat o bucla care executa acelasi cod.
Tot datorita setului redus de instructiuni de asamblare, compilatoarele optimizate pentru
RISC sunt capabile sa organizeze mai eficient fluxul de instructiuni de asamblare. Pe de alta
parte insa, compilatoarele obtimizate pentru RISC necesita mai mult timp de compilare
decat cele pentru CISC. Aceasta deoarece trebuie sa se ocupe si de managementul benzii
de asamblare, anticiparea ramificatiilor sau reorganizarea codului.
Ca principiu, arhitectura RISC are mai multi registri generali, in timp ce CISC are mai multi
speciali. Oricum, procesoarele moderne imprumuta atat caracteristici CISC cat si RISC.
In cazul instructiunilor de tip reg reg pot fi evedentiate 2 faze de executie a instructiunilor :
-
IF ( instruction fetch )
memoriei
II
executia conveer cu suprapunere a 2 faze ( la fiecare faza este posibil un singur acces
la memorie )
III
exec conveer cu suprapunere a 3 faze ( este posibila 2 aceese la memorie pe o
singura faza )
22
Se va lua acelas fragment de cod pentru fiecare din cele 3 cazuri pentru a putea face o
comparatie. Fragmentul de cod va contine si o instructiune de salt.
Un procesor superscalar aduce din memorie i decodific, n mod obinuit, mai multe
instruciuni simultan. Ca parte a acestui proces, efectele salturilor condiionate sunt
anticipate pentru a asigura un flux nentrerupt de instruciuni. Fluxul de instruciuni, adus
anticipat n bufferul de prefetch (citire anticipat a instruciunilor), este analizat pentru
determinarea dependenelor de date, iar instruciunile independente sunt distribuite
unitilor funcionale, n conformitate cu tipul lor. Aici ncepe, n paralel, execuia
23
24
25
26
Pe msura deplasrii din partea superioar a ierarhiei spre cea inferioar, seconstat urmtoarele:
(a) Scade costul pe bit;(b) Crete capacitatea;(c) Crete timpul de acces;(d) Scade frecvena de acces la
memorie de ctre UCP.Rezult deci c memoriile rapide, cu un cost mai ridicat, sunt extinse prin memorii
de dimensiuni mai mari, mai lente, dar mai ieftine. Dac memoria poate fi organizat conform punctelor
(a) - (c), i dac datele i instruciunile pot fi distribuite n cadrul acestei memorii conform condiiei (d),
aceast organizare va reduce costurile globale, meninnd n acelai timp un anumit nivel al
performanelor. Baza pentru validitatea condiiei (d) o reprezint principiul cunoscut sub numele
de localitate a referinelor. Referinele la memorie efectuate de UCP, att pentru date, ct i pentru
instruciuni, tind s se grupeze n anumite zone. Programele conin de obicei un numr de bucle
repetitive i subrutine. Dup intrarea ntr-o asemenea bucl sau subrutin, vor exista referine repetate la
un numr redus de instruciuni. n mod similar, operaiile cu tablouri de date implic accesul la un set
grupat de cuvinte de date. ntr-o perioad mai lung de timp, zonele de memorie accesate se schim,
dar ntr-o perioad scurt de timp, UCP lucreaz mai ales cu referine de memorie grupate.
n mod corespunztor, este posibil organizarea datelor n cadrul ierarhiei astfel nct procentul de
accesuri la nivelul imediat inferior este cu mult mai redus dect cel la nivelul imediat superior.
Considerm, de exemplu, c memoria este organizat pe dou nivele, nivelul 1 fiind nivelul superior.
Nivelul 2 conine toate instruciunile i datele programului. O parte a instruciunilor i datelor pot fi plasate
temporar n nivelul 1. Periodic, anumite zone din nivelul 1 sunt mutate n memoria de nivel 2, elibernd
spaiupentru alte zone din nivelul 2. n medie ns, majoritatea referinelor se vor efectua la
27
28
Dac analizm organizarea unui calculator, vedem c "inima" acestuia este o unitate de
prelucrare a informatiilor (localizat n procesor), nconjurat de o serie de circuite al cror
rol este, n ultim instant, de a memora informatiile n diverse forme.Aceste circuite de
memorare sunt organizate pe mai multe nivele, ntr-o structur ierarhic, n functie de
distanta fat de unitatea de prelucrare. Pe msur ce se deprteaz de procesor, nivelele de
memorie au o capacitate mai mare, dar i o vitez mai mic. Putem distinge, n principiu,
patru nivele ale ierarhiei de memorii:
- Nivelul regitrilor procesorului. Acetia au, n mod evident, cel mai mic timp de acces,
aflndu-se pe acelai circuit cu unitatea de prelucrare. Este deci de preferat ca aplicatiile s
utilizeze ct mai mult posibil regitrii, pentru a mri performanta. Totui,numrul acestora
este redus, astfel nct este practic imposibil ca o aplicatie s se poat executa exclusiv cu
ajutorul regitrilor, fr a face deloc apel la nivelele urmtoare de memorare. Mai mult,
codurile instructiunilor nu pot fi retinute nregitri.
- Nivelul memoriei cache (numit i memorie imediat). Este singurul nivel care
poate lipsi, fr ca aceasta s implice o schimbare n programele care ruleaz. Att lucrul cu
regitrii procesorului, ct i accesarea nivelelor urmtoare necesit o form de gestiune prin
software; nu este i cazul memoriei cache. La rndul su, memoria cache poate fi mprtit
pe nivele: poate exista un modul cache chiar n interiorul procesorului (numit cache L1),
foarte mic i care functioneaz practic la viteza procesorului, i un altul pe placa de baz
(cache L2), fabricat tot n tehnologie SRAM,care este putin mai mare dect cache-ul L1 i
putin mai lent. Unele implementri pot lucra chiar cu 3 nivele de cache, dintre care 2 sunt
integrate n procesor.
- Nivelul memoriei principale. Dei aici poate fi inclus i memoria ROM, n practic
se are n vedere doar memoria RAM, deoarece prelucrarea informatiei nseamn implicit
modificarea acesteia.
- Nivelul memoriei secundare. Acest nivel are caracteristica de stocare persistent.
Spre deosebire de nivelele anterioare, care sunt volatile, la acest nivel informatiile se
pstreaz i dup ntreruperea alimentrii calculatorului. Tot la nivelul memoriei secundare
se gsete memoria virtual. Formele de implementare a memoriei secundare sunt: discul
dur (cel mai folosit), discheta, mediile optice (CD,DVD), banda magnetic etc.
29
30
Pentru a folosi proprietatea referinelor localizate n timp, datele cele mai recent accesate
trebuie pstrate ct mai aproape de procesor. Pentru a folosi proprietatea referinelor
localizate n spaiu la transferul ntre niveluri trebuie mutate blocuri continue de date i nu
cuvinte individuale. Dar organizarea ierarhic i folosirea proprietii localizrii referinelor la
memorie, face ca pe diferite niveluri ierarhice s existe informaii copii ale aceluiai bloc de
date, date ce pot fi modificate doar pe nivelul cel mai apropiat de UCP, sau i pe nivelurile
inferioare.
Memoria cache, sau RAM cache-ul este memorie de tip static RAM. Ca orice SRAM, are o
viteza si un cost mult mai ridicate decat RAM-ul dinamic (DRAM). Avand in vedere ca
programele acceseaza memoriile de date sau instructiuni in repetate randuri, s-a observat
ca prin pastrarea a cat mai multe dintre aceste informatii pe SRAM, intregul sistem
functioneaza mai rapid.
Memoriile de tip cache s-au dovedit a fi extrem de folositoare n multe domenii ale
informaticii pentru c modelele accesului la memorie n programele aplicaie obinuite sunt
de tiplocalitate a referinei. Exist cteva feluri de localitate, dar acest articol prezint cazul
n care datele accesate sunt foarte apropiate n domeniul timp (fenomenul de localitate
temporal). Datele ar putea fi sau nu localizate fizic aproape una de cealalt (localitate
spaial).
31
32
Cache-ul de instructiuni este folosit pentru memorarea instructiunilor care sunt folosite
frecvent, ceea ce duce la marirea vitezei de functionare a sistemului. Aceasta zona poate
chiar sa faca operatii limitate, sau sa "prezica" datele ce vor fi folosite ulterior, prin
memorarea instructiunilor accesate cu frecventa.
]Cache-ul de Date
Cache-ul de date este un buffer foarte rapid, care poate prelua datele necesare unor
instructiuni din memoria principala si sa le transmita registrilor. Odata ajunse datele in
registrii, acestea pot fi folosite de catre procesor in intructiuni. Dupa terminarea executiei
instructiunii, rezultatul retinut in registrii este returnat pentru memorarare in cache-ul de
date si apoi transmis memoriei principale.
]Cache-ul TLB
Cache-ul TLB (din engleza, Translation Look-aside Buffer)acceseaza memoria fizica. Fiecare
task care ruleaza are alocat un spatiu din memoria virtuala, care acceseaza spatii din adresa
fizica. Procesorul lucreaza cu memoria virtuala, iar memoria cache si memoria de operare
lucreaza cu memoria fizica. Fiecare spatiu din memoria virtuala sau fizica foloseste pagini
pentru accesare. TLB-ul retine aceste pagini, si datorita vitezei caracteristice memoriei
cache, accesarea spatiilor memoriei fizice este rapida, ceea ce duce la o viteza buna a
procesorului pentru lucrul cu adresele virtuale si rularea taskurilor.
33
unde:
CC = costul mediu pe bit al memoriei cache;
CM = costul mediu pe bit al memoriei principale;
DC = dimensiunea memoriei cache;
DM = dimensiunea memoriei principale.
34
Avem:
unde:
35
memoriei principale i cmpul "cuvnt" din aceeai adres pentru selectarea octetului ce va fi
transferat din blocul memoriei cache (dat de tag) n blocul memoriei principale (dat de
cmpul bloc i cmpul cuvnt al adresei n memoria principal).
Avantajul acestei mapri directe este accesul simultan la datele dorite i la cmpul tag (nu
se face o cutare asupra cmpului tag). Dac cmpul tag nu exist n memoria cache , datele
vor fi suprimate.Un dezavantaj al maprii directe apare atunci cnd dou sau mai multe
blocuri din memoria principal, utilizate alternativ, snt asociate aceluiai bloc din cache.
Aceast situaie are probabilitate mic n sistemele uniprocesor, dar probabilitatea crete
pentru sistemele multiprocesor cu memorie cache comun.
36
37
Observaii
- dimensiunea blocului n memoria cache este aleas n raport cu proprietatea de
localizare a programelor .
- memoria cache este adresat cu adrese fizice i nu cu adrese virtuale (se elimin etapa
de translatare a adresei virtuale n adres fizic)
- algoritmii de reamplasare a blocurilor din memoria cache determin performana
memoriei cache, exprimat ca rat de pierderi (numr de ncercri euate de a gsi
informaia dorit n cache).
Exist urmtoarele politici de reamplasare a blocurilor din memoria cache:
1. Least recently used (LRU) Least recently used (LRU) - se nlocuiete blocul din cache cel
mai puin recent utilizat , relativ la momentul de timp curent (se face o analiza a utilizarii
blocurilor existente n memoria cache cu un anumit numr de momente de timp n urm n
raport cu momentul de timp curent, la care trebuie s se produc o reamplasare).
38
2. First In First Out (FIFO) First In First Out (FIFO) - se nlocuiete blocul din cache care a
stat n memoria cache cel mai mare interval de timp.
3. Last In First Out (LIFO) Last In First Out (LIFO) - se nlocuiete blocul din cache care a
stat n memoriacache cel mai mic interval de timp.
4. Random (RAND) Random (RAND) - se alege, n mod aleator ,un bloc din memoria cache
ce va fi
nlocuit.
39
42
43
44
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Tehnici de mapare n sisteme cu memorie cache: Mapare direct. Avantaje i dezavantaje. P31
23.
24.
25.
Performana memoriei cache: Hit ratio/Miss rate versus Block&Cache size. Alte dependene.
P36
45
26.
27.
46