Sunteți pe pagina 1din 2

1.

Algoritmul Selective Victim Cache


(http://webspace.ulbsibiu.ro/lucian.vintan/html/Organizarea.pdf p35)

1. Hit în cache-ul principal: dacă cuvântul este găsit în cache-ul principal,


el este extras pentru CPU. Nu este nici o diferenţă faţă de cazul cacheului
mapat direct. Singura operaţie suplimentară este o posibilă
actualizare a biţilor de stare folosiţi de schema de predicţie. Actualizarea
se poate face în paralel cu operaţia de fetch şi nu introduce întârzieri
suplimentare.
2. Miss în cache-ul principal, hit în victim cache: în acest caz, cuvântul
este extras din victim cache în cache-ul mapat direct şi înaintat CPU. Un
algoritm de predicţie este invocat pentru a determina dacă va avea loc o
interschimbare între blocul referit şi blocul conflictual din cache-ul
principal. Dacă algoritmul decide că blocul din victim cache este mai
probabil să fie referit din nou decât blocul conflictual din cache-ul
principal se realizează interschimbarea; altfel blocul din victim cache
este copiat în blocul tranzitoriu al cache-ului principal iar maşină
secvenţială de stare trece în starea specială. Data poate fi înaintată CPU.
În ambele cazuri blocul din victim cache este marcat drept cel mai recent
folosit din lista LRU. În plus, biţii de predicţie sunt actualizaţi pentru a
reflecta istoria acceselor.
3. Miss atât în cache-ul principal cât şi în victim cache: dacă cuvântul nu
este găsit nici în cache-ul principal nici în victim cache, el trebuie extras
din nivelul următor al ierarhiei de memorie. Aceasta înseamnă că fie
blocul corespondent din cache-ul principal este “gol”, fie noul bloc este
în conflict cu un alt bloc memorat în cache (mai probabil). În primul caz,
noul bloc este adus în cache-ul principal iar victim cache-ul nu este
afectat. În cel de-al doilea caz, trebuie aplicat algoritmul de predicţie
pentru a determina care din blocuri este mai probabil să fie referit pe
viitor. Dacă blocul care soseşte din memoria centrală are o probabilitate
mai mare decât blocul conflictual din cache-ul principal, ultimul este
mutat în victim cache şi noul bloc îi ia locul în cache; altfel, blocul sosit
este direcţionat spre victim cache şi copiat în blocul tranzitoriu al cacheului
mapat direct, de unde poate fi accesat mai iute de către CPU

2.( http://depmath.ulbsibiu.ro/educamath/em/vol4nr1/vintan/vintan.pdf )
C˘a anumite branch-uri dinamice, ˆıntr-un anumit context
binar de aparit¸ie, au un comportament nepolarizat, fiind atˆat Taken cˆat ¸si
Not Taken ˆın proport¸ii semnificative
Entropie : dezordine (haos)

A¸sadar, ˆın cazul acestor branch-uri nepolarizate, comportamentul lor


memorat ca o lung˘a secvent¸˘a (zeci de milioane) de ’0’ (Not Taken) ¸si de
’1’ (Taken), este impredictibil din punct de vedere al nevoilor noastre inginere¸sti.

Strategii:
 Marim lungimea contextului binar asociat fiecarui branch.Pe 32 de biti cca 17% din
salturi sunt impredictibile,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).Incercarile domnului Vintan au fost interesante si
instructive dar nu au fost eficiente practice

3. http://neo.lcc.uma.es/staff/javi/files/FerrerMulti.pdf (p 10)

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