Resumen:
|
[ES] La mejora de las prestaciones del subsistema de memoria RAM (jerarquía de cache y memoria principal) es uno de los grandes retos en que se han centrado muchos de los trabajos recientes para incrementar las prestaciones ...[+]
[ES] La mejora de las prestaciones del subsistema de memoria RAM (jerarquía de cache y memoria principal) es uno de los grandes retos en que se han centrado muchos de los trabajos recientes para incrementar las prestaciones de los procesadores modernos. Entre las técnicas más empleadas por los arquitectos de computadores se encuentra la prebúsqueda o el prefetcher.
En los procesadores actuales de gama alta se implementan prefetchers a lo largo de la jerarquía de cache (por ej. en L1, L2 y L3) con el objetivo de ocultar la latencia de acceso a la memoria principal. Estos accesos superan el centenar de ciclos lo que inevitablemente se traduce en un bloqueo del ROB y, en consecuencia, en una penalización de prestaciones. Para atacar este aspecto, algunos de los prefetchers implementados en los procesadores más potentes, como el IBM POWER8, admiten un elevado número de configuraciones. Es más, proporcionan una interfaz hardware/software que permite seleccionar la configuración deseada en tiempo de ejecución.
Configurar el prefetcher de manera óptima no es una tarea fácil puesto que las distintas tareas en ejecución muestran comportamientos muy dispares y, por tanto, se ven beneficiadas por configuraciones distintas. Es más, cuando hay múltiples aplicaciones en ejecución, el ancho de banda de memoria se convierte en un recurso escaso lo que provoca situaciones de alta contención incrementando todavía más la latencia. En este caso, elegir una configuración inadecuada del prefetcher para una aplicación dada puede perjudicar las prestaciones del resto de aplicaciones en ejecución concurrente. En este TFM, partiendo del estudio del impacto de las configuraciones del prefetcher en una situación de ancho de banda limitado, se propone una estrategia que, en tiempo de ejecución, selecciona la mejor configuración para cada aplicación individual teniendo en cuenta el resto de aplicaciones en ejecución concurrente. La propuesta selecciona configuraciones que no consumen mucho ancho de banda o incluso lo desactivan para las aplicaciones cuyas prestaciones no se benefician o se benefician marginalmente de ello, liberando de esta forma ancho de banda para aquellas que potencialmente se pueden beneficiar.
[-]
|