Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
MemoriaOtros temas sobre cachés
Universidad de Sonora Arquitectura de Computadoras 2
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 3
Localizando un bloque� La dirección se divide en:
� En un caché de mapeo directo (1-way), el bloque está dado por el índice.
� En un caché n-way (n > 1), el índice indica el conjunto en donde está el bloque.
� Hay que buscar el bloque dentro del conjunto comparando las etiquetas.
� En un caché fully, el bloque puede estar en cualquier parte.
� Hay que buscar el bloque en todo el caché comparando las etiquetas.
Localizando un bloque� Para mayor velocidad, las etiquetas se comparan en
paralelo.
Universidad de Sonora Arquitectura de Computadoras 4
Universidad de Sonora Arquitectura de Computadoras 5
Localizando un bloque� Un caché de mapeo directo requiere un solo
comparador.
Universidad de Sonora Arquitectura de Computadoras 6
Localizando un bloque� Un caché 4-way set associative requiere 4
comparadores.
Universidad de Sonora Arquitectura de Computadoras 7
Que organización usar� La selección entre mapeo directo, n-way set
associative y fully associative depende de compromisos entre la tasa de fallas y el costo del hardware.
Universidad de Sonora Arquitectura de Computadoras 8
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.
� Una estrategia típica es LRU (least recently used block – el bloque menos usado recientemente).
Universidad de Sonora Arquitectura de Computadoras 9
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 10
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 11
Ejemplo� Se tiene una CPU con:
� CPI = 1.0 con caché perfecto (sin fallas).
� 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 12
Ejemplo� El castigo por falla es:
� Para la memoria principal el castigo es:
100 ns / 0.2 ns = 500 ciclos.
� El CPI efectivo con un nivel de caché es:
� Para la CPU con un nivel de caché:
1.0 + 0.02 x 500 = 11.0
reloj de periodo
acceso de tiempo fallapor castigo =
ninstrucciópor detención de ciclos base CPI totalCPI +=
Universidad de Sonora Arquitectura de Computadoras 13
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 14
Ejemplo� El CPI efectivo para un caché de dos niveles:
� 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
ninstrucciópor ssecundaria sdetencione
n instrucciópor primarias sdetencione base CPI totalCPI ++=
Universidad de Sonora Arquitectura de Computadoras 15
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 16
Cachés multinivel� Valores típicos en 2012.
Universidad de Sonora 17
Comparación
17
Universidad de Sonora Arquitectura de Computadoras 18
Conclusión� 4 preguntas en la jerarquía de memoria:
1. ¿Dónde se puede poner un bloque?
2. ¿Cómo se encuentra un bloque?
3. ¿Qué bloque debe ser reemplazado si es necesario?
4. ¿Qué pasa en una escritura?
Universidad de Sonora Arquitectura de Computadoras 19
Conclusión� Pregunta 1: ¿Dónde se puede poner un bloque?
� En mapeo directo en el lugar que le toque según su dirección.
� En n-way 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 20
Conclusión� Pregunta 2: ¿Cómo se encuentra un bloque?
� En mapeo directo, buscando en la línea indicada por el índice y comparando las etiquetas.
� En n-way set associative, buscando en el conjunto indicado por el índice y comparando las etiquetas.
� En fully associative, buscando en todo el caché comparando etiquetas.
Universidad de Sonora Arquitectura de Computadoras 21
Conclusión� Pregunta 3: ¿Qué bloque debe ser reemplazado si
es necesario?
� En mapeo directo no hay otra opción: el bloque nuevo reemplaza al anterior.
� Para n-way y fully:
� 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 22
Conclusión� Pregunta 4: ¿Qué pasa en una escritura?
� Si el dato está en el caché:
� Write-through: se escribe en el caché y en la memoria
para evitar inconsistencias.
� Write-back: se escribe en el caché y la memoria se
actualiza cuando el bloque va a ser reemplazado.
Conclusión� Si el dato no está en el cache:
� Write allocate: se actualiza la memoria y se carga el
dato en el caché.
� No write allocate: se actualiza la memoria y no se
carga el dato en el caché.
Universidad de Sonora Arquitectura de Computadoras 23