Académique Documents
Professionnel Documents
Culture Documents
Calcul – Curs 3
• Un crossbar
performant,
eficient si
non-blocant
in FPGA-urile
Virtex-II si
Virtex-II
Pro/ProX
Cuprins
4
a1
a2
am
• Bus Inlantuit
Comutatoare Neierarhice
7
a2 L
S
a3 L
S S
… … …
am L
S S S S
1 2 3 … m-1
Comutatoare Neierarhice
8
• Trunchi-K neierarhic:
– S(tk; ma, c:min(k,m/2); m*k Sp)
a1 L
S S S S
a2 L
S S S S
a3 L
S S S S
… … …
am L
S S S S
1 2 3 … k
Cuprins
9
R Addr Addr
Data Out M
R Data
Data In
Addr
R Addr
M
R Data Buff Data Buff
2 Dir 2 Dir
R Addr Addr
Latch
Mux MAG
A/D
Addr/Data M
R Data + Cmd
Buff
2 Dir
Data
P
sum = 0;
for (i = 0; i < n; i++)
sum += a[i];
*v = sum;
• Localitate de Date
– Consideram secventa de locatii de memorie: &sum, &i, &i, &n, &a[0],
&sum, &sum, &i, &i, &i, &n, &a[1], &sum, &sum, &i, &i, &i, &n, &a[2],
&sum, &sum, ..., &a[n-1], &sum, &sum, &sum, v
– sum, i, si n pot fi localizati in registrii deoarece au o localitate temporala
foarte buna
– Accesul la vectorul a are insa o localitate spatiala foarte buna → cache
• Localitate de Instructiuni
– Toate instructiunile din bucla sunt accesate in mod repetat si in secventa, si
astfel au atat localitate spatiala cat si temporala buna
©Henri Casanova, U of Hawaii
Localitate si Ierarhia de Memorii
21
adresa pe n biti
Fiecare adresa se refera la
locatia unui cuvant
tag set index block offset
t biti s biti b biti
0...01
Gaseste setul:
0...10
0...11 2
... Compara tagul:
1...01
Daca nu e gasit: miss
1...10
1...11
Daca e gasit: hit si
accesare a byte-ului
de la offsetul dorit
001
010 Tag-urile contine o parte
011 din adresa liniei de
100 memorie
101
Seturile corespund unei
110 parti a adresei liniei de
111 memorie
001
010
@0110010110
@0110010111
011 @0110011000
100 @0110011001
101 @0110011010
@0110011011
110
@0110011100
111 @0110011101
@0110011110
Cache @0110011111
s=3, t=4, b=3 @0110100000
@0110100001
©Henri Casanova, U of Hawaii
Cache Mapat Direct
36
001
010
@0110010110
@0110010111
011 0110 @0110011000
Linia de memorie
100 @0110011001
101 @0110011010
@0110011011
110
@0110011100
111 @0110011101
@0110011110
Cache 101 al 6–lea @0110011111
element in linia @0110100000
s=3, t=4, b=3
de cache @0110100001
©Henri Casanova, U of Hawaii
Cache Mapat Direct
37
001
010
@0110010110
@0110010111
011 0110 @0110011000
Linia de memorie
100 @0110011001
101 @0110011010
@0110011011
110
@0110011100
111 @0110011101
@0110011110
Cache 111 al 8–lea @0110011111
s=3, t=4, b=3 element in linia @0110100000
de cache @0110100001
©Henri Casanova, U of Hawaii
Cache Mapat Direct – Concluzii
38
• Avantaje
– Design simplu
• Doar cateva comparatii intre parti din adrese de
memorie
– In plus, fiecare linie de cache are un bit de validare asociat
– Astfel, Cache-ul mapat direct este:
• Rapid
• Necesita putin hardware
• Dezavantaj major
– Este vulnerabil la Thrashing (murdarire)
Gaseste setul:
0...10
0...11 2
... Compara primul tag:
1...01
Daca e gasit: hit si
1...10 accesare a byte-ului de la
1...11 offsetul dorit
Gaseste setul:
0...10
0...11 2
... Compara primul tag:
1...01
1...10
3
1...11
Compara al doilea tag:
Daca e gasit: hit si accesare a
byte-ului de la offsetul dorit
Daca nu e gasit: miss
©Henri Casanova, U of Hawaii
Mapare Total Asociativa
42
• O linie de memorie poate fi plasata oriunde un Cache!
– Se obtine considerabil mai putin thrashing
– Complexitate crescuta a unitatii de comanda
Store
Memoria
Principala
CPU
Cache
Load
Cache
Load
©Henri Casanova, U of Hawaii
Write-Back
48
• Solutia 2 – Write-Back
– Se scrie doar in cache
– Liniile de cache sunt scrise in memoria principala doar cand sunt
evacuate/inlocuite
– Necesita un bit “dirty” pentru a indica daca o linie de cache a fost
modificata sau nu
– Memoria si cache-ul nu mai sunt totdeauna consistente!
Write
CPU Store Back Memoria
Cache Principala
Load Cache
Load
• Write-Through
– Mult mai usor de implementat ca Write-Back
– Nivelul urmator de cache va avea intotdeauna o copie
actualizata a datelor utilizate
• Foarte important pentru sisteme multiprocesor – simplifica
problemele de coerenta a datelor
©Henri Casanova, U of Hawaii
Write allocate, No-write allocate
50
• Q & A?
• Next time:
• Imbunatatirea performantelor memoriei
• Reprezentarea PMS a unei structuri multiprocesor
organizata pe o magistrala comuna (SBC)
• KBUS
• KML