Memorie paralelă

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

Multe aplicatii folosesc formate speciale de date care pot fi accesate in paralel.Acest fenomen sta la baza conceptului de memorie paralelă unde idea principala este de a mari lațimea de banda a memoriei prin folosirea mai multor module de memorie ce funcționeaza in paralel pentru a furniza procesorului doar date folositoare.Arhitecturile de tip memorie paralelă sunt folosite in special in cazul procesoarelor de tip SIMD(Single instruction, multiple data).

Clasificarea sistemelor de memorie[modificare | modificare sursă]

Figura alaturata infațișeaza diferențele arhitecturale dintre memoria paralela si memoria intercalata(interleaved).

Arhitectura memoriei intercalate si paralele

Ambele configurații de memorie folosesc N module de memorie: S0,S1...SN-1 care lucreaza in paralel.Totodata, M elemente de procesare PE0, PE1...PEN-1 sunt utilizate cu memorii paralele(M≤N).

Memoriile intercalate folosesc module de memorii multiplexate in timp care primesc cereri de acces serial unul cate unul.Ciclul de acces al memoriei dureaza cateva cicluri de procesor.De obicei exista buffere la intrari/iesiri pentru a stoca cererile ce nu pot fi servite imediat.În mod tradițional computerele vectorizate folosesx memoriile intercalate.

Memoriile paralele au magistrale de adrese și date mari iar modulele de memorie primesc cereri de acces in paralel.Spre deosebire de memoriile intercalate, cele paralele sunt definite ca fiind multiplexate in spațiu.Un exemplu ce folosește o astfel de arhitectura este reprezentat de procesoarele SIMD(Single instruction, multiple data).

În unele supercomputere multivector , un sistem de memorie cu numeroase module de memorie poate fi multiplexat atat in timp cat si in spațiu.

Diferențe intre cele doua arhitecturi[modificare | modificare sursă]

Notiunea de sistem compatibil se refera la faptul ca exista un numar minim de module de memorie ce pot furniza date către toate elementele de procesare in fiecare ciclu preocesor.Pentru memoria intercalata inseamna că numărul de module de memorie este egal cu raportul dintre ciclul de memorie si ciclul procesor.În cazul memoriei paralele compatibile,numarul de module este egal cu numarul de elemente de procesare(N=M).

Conflictul de memorie se petrece atunci cand mai multe locații de date sunt accesate simultan in cadrul aceluiaș modul de memorie.Memoriile multiport faciliteaza cateva accesuri simultane dar sunt soluții forte scumpe in special atunci cand numarul de porturi este mare.Conflictul de memorie la memoriile intercalate poate avea ca efect scaderea lațimi de banda, în special la sistemele compatibile.În cazul memoriilor paralele, se presupune de obicei ca M elemente paralele de date pot fi accesate simultan in fiecare ciclu procesor.Drept urmare ,de obicei, conflictele de memorie nu sunt permise in cadrul sistemelor cu memorii paralele.

Principiile memoriei paralele[modificare | modificare sursă]

Memoria paralelă

Imaginea alaturata infațiseaza o diagrama bloc a arhitecturii de timp memorie paralela.Blocurile funcționale sunt:Unitatea de Calculare a Adresei,N module de memorie S0,S1...SN-1, Unitatea de Permutare a Datelor.În funcție de formatul de acces F si de locație primului element(punctul de scanare) r, Unitatea de Calculare a Adresei , calculeaza adresa si preda legatura catre modulul de memorie adecvat.Unitatea de Permutare a Datelor organizeaza datele în oridinea corecta specifica formatului de acces si a puctului de scanare.

Formate de acces[modificare | modificare sursă]

Spațiul de adrese în cadrul arhitecturilor cu memorie paralela nu poate fi asignat in mod arbitrar din moment ce datele trebuie sa fie stocate în memorie folosind tipare predefinite numite și formate de acces sau template.Elementele ce constitue datele pentru un anumit format de acces pot fi citite din modulele de memorie in paralel cand este realizat un acces lipsit de conflicte.

Exemple de formate de acces

Fiecare aplicație poate folosi diferite formate de acces.

Porcesare de imagini[modificare | modificare sursă]

O imagine poate fi reprezentata ca un vector bidimensional.Imaginile pot fi stocate,vizualizate,rotite ,scalate si comprimate.Procesarea de imagini poate folosi formate precum:rânduri,coloane,dreptunghiuri,diagonale.Imaginile 3-D sunt favorizate de folosirea formatelor de acces de tip spirala.In procesarea de imagini algoritmul Lee de rutare beneficieaza de formatul de acces de tip spirala.

Procesare video[modificare | modificare sursă]

Câteva dintre operațiile de baza ale codarii video cum ar fi standardele:H.263, H.264, si MPEG-4 sunt estimari de miscare,interoplari,compensari de miscare,transformate discrete cosinus,cuantizari,cuantizari inverse,si transformata discreta cosinus inversa.Formate de acces specifice pentru aceste operatii sunt :randuri,coloane,dreptunghiuri prabusite,dreptungiuri.Scanarea zigzag ca si alte scanari adiționale alternativ-orizontale și alternativ-verticale din cadrul formatului MPEG-4 pot folosi templateuri atipice.Aceste formate sunt similare formatului de acces Zigzag.



Avantaje și dezavantaje ale memoriei paralele[modificare | modificare sursă]

Un sistem de memorie paralela cu 8 module de memorie in comparație cu un sistem convențional de memorie scaleza o imagine folosind un algoritm simplu de interpolare de 6.5-8 ori mai repede.

În cazul codarii MPEG-4 folosind funcții ce includ interpolare,OBMC(overlapped block motion compensation) si IDTC(transformata cosinus inversă) sau obținut urmatoarele diferente între un sitem cu arhitectura clasica a memoriei și un sitem ce beneficiaza de o arhitectua cu memorie paralelă :sistemul cu arhitectură clasica a avut nevoie de 1.44-1.9 ori mai multe cicluri procesor si 1.22-1.62 ori mai multe instrucțiuni decât sitemul cu arhitectură paralela a memoriei.Aceste inbunatațiri se datoreaza alinierii optimale si ordonării datelor in sistemul cu memorie paralelă.

Ca și dezavantaje ,sitemele cu memorie paralelă au nevoie de o arie de silicon mai mare si o întarziere suplimentară in cazul adresării totale a memoriei.Puterea consumata la un acces de memorie este de 1.3-2.77 ori mai mare la memoriile paralele.Totuși, puterea totala consumată este afectată de doi factori:Operația de acces la memorie este mai redusă ca timp in cazul memoriilor paralele iar puterea totala e redusă datorită numarului mai mic de instrucțiuni necesare.

Referințe[modificare | modificare sursă]

Legături externe[modificare | modificare sursă]