Sunteți pe pagina 1din 29

MEMORIA CACHE - continuare

MEMORIA CACHE - continuare In cazul memorie cache cu mapare directa, blocul de memorie va fi mapat intr-o singura intrare in cadrul memoriei cache. Notam cu C numarul de blocuri din cadrul memoriei cache Blocul de memorie din cadrul memoriei cache va fi determinat astfel: adresa blocului de memorie MODULO C In cazul unei memorii cache set asociativa pe m cai vom avea: adresa blocului de memorie MODULO C/m In acest caz vom avea nevoie de m comparatoarea

Orice memorie cache poate fi definita de 3 parametrii 1. Numarul de linii cache C 2. Dimensiunea liniei de cache - L 3. Gradul de asociativitate - m

MEMORIA CACHE - continuare Orice adresa de memorie generata de ALU se descompune in: 1. TAG - t 2. INDEX - i 3. DEPLASAMENT sau OFFSET notat d Deoarece exista L bytes / linie => d = log(2)L cei mai putin semnificativi biti din adresa Dearece avem C/m linii / block => i = log(2) C/m

Restul de bitii pana la 32 vor reprezenta valoarea lui t


Exemplu Consideram o memorie de capacitate 32KB, cu mapare directa si dimensiunea unei linii de 16B Solutie Numarul de linii = 32 * 1024/16 = 2048 d = log L = log 16 = 4 i = log C/m = log 2048/1 = 11 t = 32 11 4 = 17

MEMORIA CACHE - continuare Scrierea in memoria cache se poate face prin mai multe metode: 1. Doar scriem in memoria cache aceasta tehnica se numeste WRITEBACK sau COPYBACK Memoria cache trebuie sa contina un indicator care sa reflecte modificarea continutului liniei dirty bit. Memoria cache trebuie sa contina un indicator care sa reflecte modificarea continutului liniei dirty bit. Acest bit trebuie setat cand avem un HIT pe scriere 2. Scriere in memoria cache dar si in nivelul urmator al ierarhiei de memorie WRITETHROUGH. In acest caz nu mai este nevoie de dirty bit. Aceasta metoda genereaza trafic de memorie mai mare decat precedenta metoda.

O optimizare o constituie folosirea unui buffer de scriere.

MEMORIA VIRTUAL Memoria principal poate aciona ca o memorie cache pentru nivelul de stocare secundar uzual implementat cu discuri magnetice.

De ce avem nevoie de o memorie virtual ?


1. Permite folosirea n comun, eficient i sigur a memoriei de ctre mai multe programe 2. nlturarea problemelor de programare cauzate de o memorie principal mic

Memoria principal trebuie s conin doar poriunile active ale programelor, deci va fi necesar un mecanism de protecie a programelor ntre ele trebuie s ne asigurm c un program va scrie i va citi doar din memoria principala atribuit lui. Memoria virtual implementeaz translatarea spaiului de adrese al programului n adrese fizice (frame-uri). Acest translatare asigur unicitatea spaiului de adrese al unui program fa de alte programe.

Pn la apariia acestui concept, depirea dimensiunii de memorie implica intervenia programatorului. Se mprea programul n componente i se trecerea la determinarea excluderilor mutuale. Suprapunerile erau ncrcate sau scoase din memorie n timpul execuiei programului. Apelurile dintre procedurile aflate n diferite module determinau suprapunerea unui modul cu altul.

Un bloc de memorie virtual este denumit pagin (dimensiunile paginilor sunt egale), iar un eec la accesarea memoriei virtuale se numete page fault.
Pentru memoria virtual vom avea adrese virtuale ce sunt translatate n adrese fizice. Aceasta mapare este full asociativa.

Exemplu: Adresa virtual este numele unei cri iar adresa fizic reprezint locaia crii n bibliotec.

Procesorul genereaz adrese virtuale n timp ce memoria este accesat folosind adrese fizice Ambele memorii sunt compuse din pagini (virtuale/fizice) ntre care exist o coresponden de 1:1 Exist posibilitatea ca o pagin virtual s fie prezent numai pe disc => imposibilitatea de a avea ca i coresponden o pagin fizic. O pagin fizic poate fi folosit n comun dou adrese virtuale fac referire la acceai adres fizic.

Memoria virtual ofer mecanismul de realocare se calculeaz corespondena dintre adresele virtuale folosite de program i diferitele adrese fizice , nainte ca adresele fizice s fie folosite de program. Realocarea se face pe baz de blocuri de dimensiune fix.

Proiectarea sistemelor de memorie virtual Dimensiunea paginilor trebuie s fie mare pentru a amortiza timpul de acces ridicat 32KB sau 64KB spre exemplu Amplasarea complet asociativ a paginilor se reduce complet frecvena de page fault. Page fault-urile pot fi tratate prin intermediul software-ului. n memoria virtual, paginile sunt localizate prin folosirea unui tabel ce indexeaz memoria; acest structur se numete page table tabel de pagin. Fiecare program are tabelul su de pagini, ce conine corespondena dintre spaiul su de adrese virtuale i adresele memoriei principale. Adresa unui tabel este memorat ntr-un registru ce indic adresa de nceput a tabelului page table register. !!!! Presupunem c tabelul se gsete ntr-o regiune fix i continu din memorie

Page faults n cazul n care bitul de validare este 0 (apare page fault) controlul va fi preluat de SO prin intermediul unui mecanism de tratare a excepiilor SO-ul caut pagina n urmtorul nivel de memorie din ierarhie, adresa virtual nu poate indica unde se gsete pagina cerut. SO-ul creeaz un spaiu pe disc pentru toate paginile unui proces odat cu crearea acestuia, mpreun cu o structur de date pentru nregistrarea locului unde este memorat fiecare pagin virtual pe disc. SO-ul creeaz de asemenea, o structur de date ce ine evidena proceselor i adreselor virtuale folosite de ctre fiecare pagin fizic.

Tabelele cu adresele paginilor fizice i ale paginilor de pe disc vor fi memorate n dou structuri de date separate. Cantitatea de memoria folosit pentru memorarea tabelor de pagini este mare.

Tehnici pentru reducerea volumului de memorie ocupat de tabelele de pagini i minimizarea memoriei principale alocate acestora 1. Utilizarea unui registru de limitare ce constrnge dimensiunea tabelului de pagini pentru un proces dat. 2. Majoritatea limbajelor necesit 2 poriuni expandabile una ce conine stiva i cealalt ce conine zona de acumulare (HEAP). Dezavantaj nu funcioneaz bine atunci cnd spaiul de adrese ntr-un mod discontinuu. este folosit

3. Aplicarea unei funcii de cutare HASHING pentru adresa virtual, astfel nct structura de date ce conine tabelul de pagini s aib o dimensiune egal doar cu numrul de pagini fizice existente n memoria principal. 4. Paginarea tabelor de pagini.

5. Utilizarea mai multor niveluri de tabele de pagini.

I/O

Actualmente exist o mare varietate de dispozitive de I/O. Organizarea acestor dispozitive se poate face avnd n vedere urmtoarele caracteristici: 1. COMPORTAREA input (citire o singur dat); output (scriere odat); storage (citire i rescriere) 2. Partenerul om sau dispozitiv electronic 3. Rata datelor valoarea maxim cu care datele pot fi transferate ntre dispozitivul de I/O i memoria principal/procesor Exp: Tastatura este un dispozitiv de intrare utilizat de ctre om cu o rat a datelor de peste 10 bytes/sec

Conexiunile ntre dispozitivele de I/O, procesor i memorie sunt denumite magistrale. Comunicaia ntre dispozitive i procesor presupune utilizarea ntreruperilor precum i folosirea unor protocoale de comunicaie.

Performana I/O depinde de limea de band existent ntre dispozitive. Limea de band poate fi msurat prin 2 metode: 1. Ct de multe date pot fi mutate prin sistem ntr-o anumit perioad de timp 2. Cte operaii de I/O pot fi efectuate ntr-o unitate de timp

Exemple: n cazul aplicaiilor multimedia limea de band este folosit n determinarea performanei; n cazul procesrilor unui numr foarte mare de accese al unui dispozitiv I/O, numrul de operaii I/O efectuate n unitatea de timp va fi factorul cheie n determinarea performanei. n cazul calculatoarelor i al laptop-urilor, timpul de rspuns este considerat factorul cheie n determinarea performanei

n cazul dispozitivelor embedded ne intereseaz durata fiecrui task i numrul de task-uri ce pot fi procesate ntr/o secund.

Discurile magnetice platane rotitoare acoperite cu o suprafa magnetic ce utilizeaz micarea capetelor de citire/scriere pentru accesul la disk. Este nonvolatil datele rmn i dup ntreruperea alimentrii cu energie a dispozitivului. 1-4 platane, fiecare avnd 2 suprafee ce pot fi scrise; Stiva de platane este rotit cu o vitez de 5400 15000 RPM. Diametrul platanelor este de la 1 inch la peste 3,5 inch Fiecare suprafa de disk este mprit n cercuri concentrice denumite piste. Ele sunt n numr de 10000 50000 pe o singur suprafa. Fiecare pist este mprit n sectoare (100-500). Fiecare sector are o dimensiune tipic de 512bytes. Secvena de scriere este urmtoarea: numr sector gap informaia pentru sector + codul de corecie eroare gap numrul umtorului sector

Iniial toate pistele aveau acelai numr de sectoare s-a introdus ZBR (zone bit record)

Capetele de citire/scriere sunt conectate mpreun => micarea se face n conjuncie. Fiecare cap este peste aceeai pist indiferent de suprafa => cilindru. Accesarea unei date presupune:

1. Poziionarea capetelor deasupra pistei dorite seek seek time


2. Se ateapt pn cnd capetele ajung deasupra sectorului dorit delay sau rotational delay Exp: Average rotational latency =
0,5 0,5 rotatii 0,0056 s 5,6 ms 5400 RPM 5400 RPM / (60 s ) m

Average rotational latency =

0,5 0,5 rotatii 0,0020 s 2,0 ms 15000 RPM 5400 RPM / (60 s ) m

3. Timpul de transfer timpul necesar transferrii unui bloc de bii. Timpul de trasfer = f(dimensiune sector, viteza de rotaie, densitatea nregistrrilor a unei piste) Controller-ul de disk are rol de control al discului precum i de control al transferului dintre disk i memorie.

La timpul de acces la disk se include i timpul necesar operrii controller-ului de disk


Exp: S se determine timpul mediu de citire/scriere al unui sector de 512bytes pentru un disk care are o vitez de rotaie de 10000 RPM. Se cunosc: 1.Timpul mediu de poziionare dat = 6 ms 2.Rata de transfer = 50 MB/s 3.Overhead-ul controller-ului este de 0,2 ms 4.Presupunem c discul este idle => nu exist timp de ateptare

Soluie Timpul mediu de acces al discului = timpul mediu de poziionare + ntrzierea medie + timpul de transfer + overhead-ul controller-ului

6,0 ms

0,5 rot 0,5 KB 0,2 ms 6,0 3,0 0,01 0,2 9,2 ms 10000 RPM 50 MB / s

Dac timpul mediu de poziionare msurat este 25% din timpul mediu dat, atunci avem: 1,5 ms + 3,0 ms + 0,01 ms + 0,2 ms = 4,7 ms

RAID Redundant Arrays of Inexpensive Disks O organizare de disk-uri care utilizeaz o matrice de disk-uri mici (ca i capacitate) i ieftine pentru creterea performanelor i a siguranei n utilizare. Ideea a fost de nlocuire a discurilor mari cu disk-uri mici. Disk-urile mici sunt mult mai eficiente per gigabyte dect disk-urile mari (evident ne referim la cantitatea de date stocat pe un astfel de disk) RAID 0 nu avem redundan striping Presupune rspndirea datelor pe mai multe disk-uri => acces automat la mai multe disk-uri simultan. Din punct de vedere al utilizatorului exist doar un singur disk, ceea ce simplific managementul informaiei. Performan mare pentru accese la informaie de dimensiune mare (sisteme de editare video) deoarece mai multe disk-uri funcioneaz ca unul singur.

RAID 1 toleran la defecte mirroring sau shadowing Este modalitatea aleas atunci cnd tolerana la defecte este un punct critic. Numrul de hardisk-uri utilizat este dublu fa de RAID 0. Cnd o dat este scris pe un disk, automat datele sunt scrise pe un alt disk redundant => ntotdeauna vom avea 2 copii ale informaiei. Dac un disk va prezenta un defect la un moment dat, atunci informaia va fi citit de pe discul oglind. CEA MAI SCUMP SOLIE RAID. RAID 2 detectare i corectare erori mprumut tehnicile de detecie i corecie a erorilor folosite n cazul memoriilor

RAID 3 grup de protecie bit-interleaved parity Costul unei disponibiliti mrite a datelor poate fi redus la 1/N, unde N este numrul de disk-uri care fac parte dintr-un grup de protecie. Dect s adugm disk-uri, mai simplu ar fi s adugm informaie redundant pentru restaurarea informaiei pierdute n caz de crash.

Citirile/scrierile se fac pe toate disk-urile din grup, dar vom avea 1 extra disk pentru meninerea informaiei de verificare n caz de crash. Schema folosit este determinarea paritii informaiei. RAID 3 este foarte folosit n cazul aplicaiilor care utilizeaz seturi de date foarte mari multimedia sau cod tiinific

RAID 4 block-interleaved parity Similar cu RAID 3, doar c utilizeaz un acces al datelor diferit. Paritatea este memorat ca blocuri i asociat cu un set de blocuri de date.

RAID 3 vs RAID 4 Sunt optimizate scrierile mici, deci vom avea un numr redus de accese la disk precum i un numr mic de disk-uri ocupate.

RAID 5 distributed block-interleaved parity Dezavantajul lui RAID 4 este faptul c paritatea disk-ului trebuie recalculat la fiecare scriere. O soluie ar fi s distribuim aceast informaie pe toate discurile astfel nct s nu mai avem un singur bottleneck.

Prin aceast soluie, anumite scrieri mici pot fi executate n paralel.

RAID 6 P + Q redundancy Folosit n cazul n care o singur corecie nu este suficient. Putem generaliza paritatea pentru a avea o nou calculaie pentru date i o nou informaie pentru verificarea discului. Acest block secundar este folosit pentru recuperarea datelor n caz de eec multiplu. Overhead-ul este dublu fa de RAID 5.

Alte metode folosite n practic

1.HOT SWAPPING replasarea unei componente hardware ct timp sistemul este n stare de funcionare
2.STANDBY SPARES Cuplarea unor resurse hardware noi imediat ce o resurs hardware este defect

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