Memoria: otros temas sobre cachés

Download Report

Transcript Memoria: otros temas sobre cachés

Memoria
Otros temas sobre cachés
Otros temas
1. Estrategias de búsqueda de bloque.
2. Estrategias de reemplazo de bloque.
3. Cachés multinivel.
Universidad de Sonora
Arquitectura de Computadoras
2
Localizando un bloque
 En un caché de mapeo directo (1-way), un bloque
solo puede ir en un lugar.
 En un caché asociativo (n-way, n > 1), es necesario
localizar el bloque.
 La dirección se divide en:
 El índice selecciona el conjunto.
 Dentro del conjunto se comparan las etiquetas de
todos los bloques.
 Para mayor velocidad, las etiquetas se comparan en
paralelo.
Universidad de Sonora
Arquitectura de Computadoras
3
Localizando un bloque
 Dado un tamaño fijo, existe una relación entre el
tamaño del índice y los parámetros del caché.
 Para un caché de 256 bloques:
Asociatividad Conjuntos
Bloques
Índice
1-way
256
1
8
2-way
128
2
7
4-way
64
4
6
8-way
32
8
5
128-way
2
128
1
256-way
1
256
0
Universidad de Sonora
Arquitectura de Computadoras
4
Localizando un bloque
 Un caché de mapeo directo requiere un solo
comparador.
Universidad de Sonora
Arquitectura de Computadoras
5
Localizando un bloque
 Un caché 4-way set associative requiere 4
comparadores.
Universidad de Sonora
Arquitectura de Computadoras
6
Que organización usar
 La selección entre mapeo directo, set associative y
fully associative depende del costo de falla
comparando con el costo de implementar
asociatividad en tiempo y hardware.
Universidad de Sonora
Arquitectura de Computadoras
7
Bloque a reemplazar
 En mapeo directo no hay elección.
 En set associative se escoge un bloque dentro del
conjunto seleccionado.
 En fully associative cualquier bloque del caché es
candidato a ser reemplazado.
 La estrategia mas usada es LRU (least recently
used – menos usado recientemente).
Universidad de Sonora
Arquitectura de Computadoras
8
Bloque a reemplazar
 LRU se vuelve costoso para conjuntos con muchos
bloques.
 Otra opción es aproximar LRU o usar una estrategia
FIFO (first-in first-out – el primero que entra es el
primero en salir).
 Una tercera opción es usar reemplazo aleatorio.
Universidad de Sonora
Arquitectura de Computadoras
9
Cachés multinivel
 Tener uno o mas niveles de cachés.
 Los sistemas de dos niveles son comunes.
 El caché de segundo nivel (L2) se accesa cuando
hay una falla en el caché primario (L1).
 Si el caché L2 contiene el dato, el castigo por falla
de L1 es el tiempo de acceso de L2 que es mucho
menor que el tiempo de acceso a la memoria
 Si el dato no está en L1 ni en L2, se accesa la
memoria y el castigo por falla es mayor.
Universidad de Sonora
Arquitectura de Computadoras
10
Ejemplo
 Se tiene una CPU con:
 CPI = 1.0 con caché fuera perfecto.
 Velocidad de reloj = 5 GHz.
 Tiempo de acceso de memoria = 100 ns.
 Tasa de fallas del caché primario = 2%.
 ¿Qué tan rápido es el sistema si se agrega otro nivel
de caché con tiempo de acceso de 5 ns y capaz de
reducir la tasa de fallas a la memoria a 0.5%?
Universidad de Sonora
Arquitectura de Computadoras
11
Ejemplo
 El castigo por falla es:
castigo por falla 
tiempode acceso
periodode reloj
 Para la memoria principal el castigo es:
100 ns / 0.2 ns = 500 ciclos.
 El CPI efectivo con un nivel de caché es:
CPI total CPI base  ciclosde detenciónpor instrucción
 Para la CPU con un nivel de caché:
1.0 + 0.02 x 500 = 11.0
Universidad de Sonora
Arquitectura de Computadoras
12
Ejemplo
 Con dos niveles de caché, una falla en el caché L1
se puede resolver por L2 o por la memoria.
 Si se resuelve en L2, el tiempo de acceso a L2 es el
castigo por falla.
 En otro caso, el castigo por falla es la suma de los
tiempos de acceso a L2 y a la memoria.
 El castigo por falla por un acceso a L2 es:
5 ns / 0.2 ns = 25 ciclos
Universidad de Sonora
Arquitectura de Computadoras
13
Ejemplo
 El CPI efectivo para un caché de dos niveles:
CPI total CPI base  detenciones primariaspor instrucción 
detenciones secundarias por instrucción
 Para la CPU con dos niveles de caché:
1.0 + 0.02 x 25 + 0.005 x 500 = 1 + 0.5 + 2.5 = 4
 Por lo tanto, la CPU con dos niveles de caché es
más rápido que la CPU con un nivel en:
11 / 4 = 2.75
Universidad de Sonora
Arquitectura de Computadoras
14
Cachés multinivel
 Se introducen dos nuevos conceptos:
 Tasa de fallas global (global miss rate) es la fracción
de referencias que fallan en todos los niveles.
 Tasa de fallas local (local miss rate) es la fracción de
referencias que fallan en un nivel.
 El caché primario es mas pequeño y con menor
tiempo de acceso que los secundarios.
Universidad de Sonora
Arquitectura de Computadoras
15
Cachés multinivel
 Valores típicos en 2004.
Universidad de Sonora
Arquitectura de Computadoras
16
Algoritmos y el caché
 Un algoritmo puede tener un comportamiento
distinto a su comportamiento teórico debido a la
presencia del caché.
 En teoría, Radix Sort es mejor que Quicksort para
arreglos grandes.
Universidad de Sonora
Arquitectura de Computadoras
17
Algoritmos y el caché
 Comportamiento teórico
Universidad de Sonora
Arquitectura de Computadoras
18
Algoritmos y el caché
 Comportamiento real
Universidad de Sonora
Arquitectura de Computadoras
19
Algoritmos y el caché
 Motivo: fallas de caché.
Universidad de Sonora
Arquitectura de Computadoras
20
Solución
 Diseñar algoritmos que hagan uso efectivo del
caché (principio de locality).
 Problema: el rendimiento puede variar de un sistema
a otro.
 El reto es diseñar algoritmos adaptables.
Universidad de Sonora
Arquitectura de Computadoras
21
Conclusión

1.
2.
3.
4.
4 preguntas en la jerarquía de memoria:
¿Dónde se puede poner un bloque?
¿Cómo se encuentra un bloque?
¿Qué bloque debe ser reemplazado en una falla?
¿Qué pasa en una escritura?
Universidad de Sonora
Arquitectura de Computadoras
22
Conclusión
 ¿Dónde se puede poner un bloque?
 En mapeo directo en el lugar que le toque según su
dirección.
 En set associative en cualquier lugar dentro del
conjunto que le toque.
 En fully associative en cualquier lugar del caché.
Universidad de Sonora
Arquitectura de Computadoras
23
Conclusión
 ¿Cómo se encuentra un bloque?
 En mapeo directo, buscando en el lugar que le toque
y comparando la etiqueta.
 En set associative, buscando en el conjunto que le
toque comparando etiquetas.
 En fully associative, buscando en el caché
comparando etiquetas.
Universidad de Sonora
Arquitectura de Computadoras
24
Conclusión
 ¿Qué bloque debe ser reemplazado en una falla?
 LRU (least recently used - menos usado
recientemente).
 Aproximación LRU o FIFO (first-in first-out – el
primero que entra es el primero en salir).
 Aleatorio.
Universidad de Sonora
Arquitectura de Computadoras
25
Conclusión
 ¿Qué pasa en una escritura?
 Write-through se escribe en el caché y en la
memoria para evitar inconsistencias.
 Write-back se escribe en el caché y solamente
cuando es necesario en la memoria.
Universidad de Sonora
Arquitectura de Computadoras
26