Sunteți pe pagina 1din 4

1.

Care este rolul microarhitecturii/algoritmului “Selective Victim Cache” in


cadrul unui sistem ierarhizat de memorii (in care cache-ul principal de nivel 1
este cu mapare directa)? Descrieti principial (pe cazuri) algoritmul respectiv.
Pentru a reduce rata de miss a cache-urilor mapate direct si totodata distanta dintre procesor si
memoria principala, s-a propus conceptul de Victim Cache. Victim cache este o memorie mica
complet asociativa, plasata intre cache-ul mapat direct de nivel 1 si memoria principala. Cu
scopul de a reduce numarul de interschimbari dintre cache-ul principal si victim cache, s-a
introdus un nou concept numit Selectiv Victim Cache (SVC).

Acest concept presupune ca blocurile ce vor veni din memoria principala sunt plasate selectiv,
fie in cache-ul principal sau in SVC, folosind un algoritm de predictie bazat pe istoria folosirii lor.
Predictia este folosita de asemenea in cazul unui miss in cache-ul principal pentru a determina
daca e nevoie de o interschimbare a blocurilor aflate in conflict.

Algoritmul foloseste doi biti de stare asociati fiecarui bloc din cache numiti hit bit si sticky bit.
Daca hit bit=1, inseamna ca a avut loc cel putin un acces cu hit pe bloc, cand acesta s-a aflat in
cache-ul principal ultima data.

Daca hit bit=0, inseamna ca blocul corespunzator nu a fost accesat niciodata, cand acesta s-a
aflat in cache-ul principal ultima data.

Atunci cand un bloc este adus in cache-ul principal, stick-bit pentru acel bloc va fi setat pe 1

Cazul 1 : Acces la blocul B, hit in SVC, A este Cazul 2: Acess la blocul B, miss atat in cache-ul
blocul conflictual din cache-ul principal principal cat si in SVC, A este blocul conflictual
din cache-ul principal.
daca sticky[A]=0 atunci
interschimba A cu B daca sticky[A]=0 atunci
sticky[B] <- 1; hit[B]<-1; muta A in victim cache
copiem B in blocul tranzitoriu transfera B in cache-ul principal
altfel sticky[B]<-1; hit[B]<-1;
daca hit[B]=0 atunci
sticky[A]<-0;
copiem B in blocul tranzit. (se reiau pasii de la cazul 1)
altfel
interschimba A cu B
sticky[B]<-1; hit[B]<-0;
2. De ce este dificil de predictionat un branch cu un comportament puternic
entropic si nepolarizat intr-un anumit context dinamic (binar) de aparitie (LHR,
GHR, etc.)? Ce strategii exista in vederea transformarii sale intr-un branch mai
polarizat si deci mai predictibil?
Dificultatea vine din faptul ca anumite branch-uri dinamice, intr-un anumit context binar de
aparitie, au un comportament nepolarizat, fiind atat Taken cat si Not Taken in proportii
semnificative.

Asadar in cazul acestor branch-uri nepolarizate, comportamentul lor memorat ca o lunga


secventa (zeci de milioane) de „0” (Not Taken) si de „1” (Taken), este impredictibil din punct de
vedere al nevoilor noastre ingineresti.

Strategii:

- Marim lungimea contextului binar asociat fiecarui branch. Pe 32 de biti, aproximativ


17% din salturi sunt impredictibile, dar pe 64 de biti scade la 4%. Contextul de predictie
pe 64 de biti nu e fezabil practic, dar micsoreaza entropia.
- Cautam informatii cu ajutorul carora branch-urile nepredictictibile sa devina mai
polarizante (mai predictibile).

3. Prezentati modul de lucru al unui algoritm genetic de tip mono-obiectiv


- Se genereaza aleator o populatie
- Se creeaza un set de simulari
- Se adauga in set toate simularile necesare pentru a evalua intreaga populatie
- Se expediaza setul de simulari si se asteapta rezultatele
- Folosind rezultatele se realizeaza procesul de selectie parintilor
- Se aplica operatorul de crossover cu probabilitatea specificata
- Fiecarui individ rezultat din crossover i se aplica operatorul de mutatie
- Populatia noua este formata din indivizii rezultati din pasii 5-7
- Daca nu a fost indeplinita o conditie de oprire, se trece la pasul 2 pentru a incepe urmatoarea
generatie
4. Algoritmul de predictie pentru predictorul de branch-uri de tip perceptron.
Simplificari in vederea fezabilitatii implementarii hardware a predictorului
Pereceptronul este una dintre cele mai simple metode de retele neuronale fiind utilizat la
clasificarea pattern-urilor. Atunci cand se foloseste un predictor de tip perceptron, se va folosi o
tabela de N perceptroni. Atunci cand procesorul intalneste un branch in faza de fetch, au loc
urmatorii pasi:

1. Adresa de salt este folosita pentru a produce un index i є 0..N -1 in tabela de


perceptroni
2. Al i-ulea perceptron este fetch-uit din tabel intr-un vector de ponderi
3. Valorea lui y este calculata ca fiind produsul scalar dintre P si registrul de istorie globala
4. Salt-ul este predictionat not taken daca y este negativ si taken in caz contrar
5. Odata de rezultatul saltului devine cunoscut, algoritmul de invatare foloseste acest
rezultat si valoarea lui y pentru a face update in vectorul de ponderi
6. Vectorul P este scris inapoi in cea de i-a intrare in tabela

In ceea ce priveste simplificarile, exista un numar de modalitati aritmetice si microarhitecturale


care permit o predictie intr-un singur ciclu, chiar si pentru lungimi mari de istorie.

Marimea PHT (pattern history table) determina costuri mari de implementare pentru a obtine predictii bune.
Dar multe intrari din PHT raman nefolosite. Se aplica un cache pentru a retine intrari de PHT care se folosesc
mai des, eliminand astfel costurile mari pentru implementare PHT.

5. Considerand o arhitectura de calcul cu multi parametri (ex. 52), fiecare


parametru avand mai multe valori posibile(ex. 16), de ce este complexa
problema optimizarii sale? Ce solutii algoritmice eficiente exista in vederea
reducerii acestei complexitati, in cadrul procesului de optimizare?
Problema optimizarii este complexa, deorece avand 52 de parametrii, fiecare parametru avand
16 valori posibile, vom avea in total 2208 configuratii, ceea ce face ca un DSN (design space
exploration) manual sa fie imposibil de realizat.

Pentru reducerea acestei complexitati, in cadrului procesului de optimizare, se folosesc


algoritmi euristici avansati. O solutie ar fi folosirea unei functii vector f care mapeaza un tuplu
de m parametrii intr-un tuplu de n criterii.

Min/Max y=f(x)=(f1(x),f2(x),…,fn(x)), unde


x=(x1,x2,…,xm) є X – vectorul de decizie (numarul de core-uri, capacitatea cache-urilor, etc)

y=(y1,y2,…,yn) є Y – vectorul de criterii (IPC, energie, complexitate)

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

  • Prezentare Thomas Kearns
    Prezentare Thomas Kearns
    Document14 pagini
    Prezentare Thomas Kearns
    Bianca Gliga
    Încă nu există evaluări
  • Intrebari
    Intrebari
    Document58 pagini
    Intrebari
    Bianca Gliga
    Încă nu există evaluări
  • Intrebari
    Intrebari
    Document58 pagini
    Intrebari
    Bianca Gliga
    Încă nu există evaluări
  • Grupul Tinta
    Grupul Tinta
    Document1 pagină
    Grupul Tinta
    Bianca Gliga
    Încă nu există evaluări
  • Subiecte FINAL
    Subiecte FINAL
    Document21 pagini
    Subiecte FINAL
    Bianca Gliga
    Încă nu există evaluări
  • Fitz
    Fitz
    Document1 pagină
    Fitz
    Bianca Gliga
    Încă nu există evaluări
  • Rezolvare Model2 Subiect
    Rezolvare Model2 Subiect
    Document4 pagini
    Rezolvare Model2 Subiect
    Bianca Gliga
    Încă nu există evaluări
  • Sub9 06 09
    Sub9 06 09
    Document1 pagină
    Sub9 06 09
    Bianca Gliga
    Încă nu există evaluări
  • Examen
    Examen
    Document2 pagini
    Examen
    Bianca Gliga
    Încă nu există evaluări
  • Subiecte A&d APD 13.06.2008
    Subiecte A&d APD 13.06.2008
    Document1 pagină
    Subiecte A&d APD 13.06.2008
    Bianca Gliga
    Încă nu există evaluări
  • Teme Proiect Audio
    Teme Proiect Audio
    Document1 pagină
    Teme Proiect Audio
    Bianca Gliga
    Încă nu există evaluări
  • Proiect DSP Cerinte
    Proiect DSP Cerinte
    Document2 pagini
    Proiect DSP Cerinte
    Bianca Gliga
    Încă nu există evaluări
  • Indrumar PDS
    Indrumar PDS
    Document139 pagini
    Indrumar PDS
    Iulian Ciolacu
    Încă nu există evaluări
  • Subiect e
    Subiect e
    Document1 pagină
    Subiect e
    Bianca Gliga
    Încă nu există evaluări
  • RRRRR
    RRRRR
    Document1 pagină
    RRRRR
    Bianca Gliga
    Încă nu există evaluări