¿Por qué es tan mala la tasa de aciertos hasta que el caché tiene un tamaño determinado?

0

Para un determinado caché, estas son las medidas:

Prueba de diferentes tamaños de memoria caché, de 16 a 1024 palabras, tamaño de bloque = 2 palabras y asosiatividad = 1. Tiempo de acceso: 20 ciclos.

Size     16 words 32 words 64 words 128 words 256 words 512 words 1024 words

Hit rate   1%       1%         1%      1%        1%       17%      50%

Cycle count 44841 44521   43881   42601       40041      34841   19481

¿Por qué la tasa de aciertos parece? ¿Por qué la tasa es tan mala hasta que el tamaño alcanza un tamaño determinado?

    

2 respuestas

1

El "cierto tamaño" se conoce como el "conjunto de trabajo" de una pieza de código, y el tamaño del conjunto de trabajo varía considerablemente entre las diferentes piezas de código.

La pregunta es si un elemento en particular en el caché se reemplaza o no por algo más antes de que pueda ser reutilizado. Solo obtienes una tasa de aciertos decente si el caché es lo suficientemente grande como para contener la mayor parte del conjunto de trabajo sin que se produzca un reemplazo.

    
respondido por el Dave Tweed
1

La tasa es tan mala hasta que la memoria caché alcanza un tamaño determinado porque se asigna directamente (asociatividad 1). La transición para este tipo de caché, el peor tipo de caché, será la peor. Si el caché es 1024, significa que todas las direcciones que difieren solo en el módulo 1024 se asignan al mismo bloque. Cada vez que el programa trabaja con dos o más ubicaciones de memoria que se asignan al mismo bloque, hay un flujo constante de fallos de memoria caché ya que esas dos ubicaciones de memoria luchan por estar en la memoria caché. ¡Puedes golpear una memoria caché asignada directamente simplemente accediendo a solo dos ubicaciones de memoria en un patrón alternativo!

Establecer cachés asociativos y totalmente asociativos tendrá un comportamiento más suave porque tienen en cuenta la localidad de referencia, ya que son capaces de elegir entre los bloques de "víctima" para ser reemplazados cuando hay una falla de caché.

    
respondido por el Kaz

Lea otras preguntas en las etiquetas