22 noviembre 2010

Tema 3. Técnicas de optimización para la memoria caché


                   Para optimizar el tiempo de acceso de la memoria caché, se pueden hacer varias cosas: reducir la penalización por fallo, reducir la tasa de fallos, aprovechar el paralelismo y reducir el tiempo de acierto (latencia).

Reducir la penalización por fallo
                   Para lograr este objetivo se trabaja con cachés multinivel, cachés de víctimas, cachés no bloqueantes, se hace uso del Write Merging y la técnica Palabra crítica primero / rearranque rápido.


- Con las cachés multinivel, en caso de fallo no hay que acceder a memoria principal, sino que aún tenemos otra oportunidad de encontrar la dirección en el siguiente nivel de memoria caché, con lo cual nos ahorraríamos bastante tiempo.

- Con la caché de víctimas podemos guardar los últimos bloques descartados por un fallo (víctimas). Ante un fallo se comprueba si el bloque está en la caché de víctimas antes de acudir a memoria principal.

- Las cachés no bloqueantes, después de un fallo no se bloquean sino que siguen aceptando accesos, con lo que se oculta la latencia de los fallos.

- El Write Merging


Reducir la tasa de fallos
                   Para reducir la tasa de fallos, lo que se suele hacer es: aumentar el tamaño de la caché, aumentar el tamaño de los bloques, aumentar la asociatividad, usar cachés predictivas y cachés pseudoasociativas, y por último, técnicas de prebúsqueda.


Aprovechar el paralelismo
                    El modo de aprovechar el paralelismo sería mediante segmentación en los accesos.




Referencias:

No hay comentarios:

Publicar un comentario