Cache 3ra Parte
Cache 3ra Parte
Cache 3ra Parte
Optimizaciones
Tipos de misses
MEMORIA
MEMORIA
PRINCIPAL
PRINCIPAL
CPU
CPU CACHE
CACHE
e jo r ar un
M
c t o pue-
asp e
p e r judi- Aumentar el
de Ancho de banda
tro.
car o
Optimizaciones
MEMORIA
MEMORIA
PRINCIPAL
PRINCIPAL
CPU
CPU CACHE
CACHE
e jo r ar un
M
c t o pue-
asp e
p e r judi-
de Aumentar el
tro.
car o Ancho de banda
Optimizaciones
Cache
Cache Cache
Cache
CPU
CPU CPU
CPU
L1
L1 L1
L1
Optimizaciones: Reduciendo el Miss Rate
Cache
Cache Cache
Cache
L1
L1 L1
L1
Optimizaciones: Reduciendo el Miss Rate
Miss penalty
Tiempo de
transferencia
Tiempo de acceso
Tamaño de bloque
Optimizaciones: Reduciendo el Miss Rate
Cache
Cache Cache
Cache
L1
L1 L1
L1
Optimizaciones: Reduciendo el Miss Rate
n t e niendo
Ma
● Tamaño de bloque y Miss rate t a m año
e l
che
de c a
Miss rate
Cuanto más grande
A medida que pasamos es el bloque, menos
de bloques pequeños a bloques entran en cache.
bloques grandes Aumentarán los conflictos
aprovechamos la localidad (los bloques serán
espacial, el miss rate reemplazados con más
disminuye. frecuencia) comprometiendo
la localidad temporal.
Tamaño de bloque
Polution point
Optimizaciones: Reduciendo el Miss Rate
Average
Access
Time
Tamaño de bloque
Cache
Cache
CPU L1
L1
CPU
Cache
Cache
L2
L2
Victim
Victim
cache
cache
Victim
Victim
cache
cache
Victim
Victim
cache
cache
Victim
Victim
cache
cache
Victim
Victim
cache
cache
AMAT
AMAT ==Hit
Hittime
timeL1L1++Miss
Missrate
rateL1L1*Miss
*Misspenalty
penaltyL1L1
==Hit
Hittime
timeL1L1++Miss
Missrate
rateL1L1*(Hit
*(Hittime
timeL2L2++Miss
Missrate
rateL2L2*Miss
*Misspenalty
penaltyL2L2))
AMAT
AMAT2niveles = Hit time ++Miss
Missrate
rateL1L1*Miss
*Misspenalty
2niveles = Hit timeL1
L1 penaltyL1L1
==11++(40/1000)*(Hit
(40/1000)*(Hittime
timeL2L2++Miss
Missrate
rateL2L2*Miss
*Misspenalty
penaltyL2L2))
==11++0.04*(10
0.04*(10++(20/40)*200)
(20/40)*200)
==11++0.04*110
0.04*110==5.4
5.4ciclos
ciclos
AMAT
AMATsin = 1 + (40/1000)*200
L2 = 1 + (40/1000)*200
sinL2 24
==11++0.04*200
0.04*200==99ciclos
ciclos
Optimizaciones: Reduciendo el Miss Penalty
M[512] ← R3
R1 ← M[1024]
Write buffer
R2 ← M[512]
MEMORIA
MEMORIA
PRINCIPAL
PRINCIPAL
Optimizaciones: Reduciendo el Miss Penalty
M[512] ← R3
R1 ← M[1024]
Write buffer M[512] ← R3
R2 ← M[512]
MEMORIA
MEMORIA
PRINCIPAL
PRINCIPAL
512 X
1024 Z
Optimizaciones: Reduciendo el Miss Penalty
512 X
1024 Z
Optimizaciones: Reduciendo el Miss Penalty
512 X
1024 Z
Optimizaciones: Reduciendo el Miss Penalty
512 X
Dato viejo
1024 Z
Optimizaciones: Reduciendo el Miss Penalty
CPU Cache
L1
CPU Cache
L1
CPU Cache
L1
Optimizaciones: Reduciendo el Miss Penalty
● Prefetching de información
– Disponer de la información
con antelación.
– Por HW.
Cache
CacheL1
L1
– Por SW. MEMORIA
MEMORIA
CPU
CPU PRINCIPAL
PRINCIPAL
Mi
ss
Prefetch
buffer
Optimizaciones
● Cache No bloqueante:
– Solapar trabajo de CPU con resolución de misses
– Atender Read Hits luego de un Miss
– Mejora el Miss Penalty efectivo
– “Miss under Miss” o “Hit under multiple Miss”
● Multibanked caches
Optimizaciones: aumentando el Ancho de Banda
● Cache No bloqueante:
– Solapar trabajo de CPU con resolución de misses
– Atender Read Hits luego de un Miss
– Mejora el Miss Penalty efectivo
– “Miss under Miss” o “Hit under multiple Miss”
● Multibanked caches
● Pipelined Caches
– + mayor throughput
– - latencia individual para un hit
– + Hit Time
Referencias
45