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