Cache prefetch en gem5

Cache prefetch en gem5

Andrés Gallego

Maestría en Ingeniería electrónica

Universidad Nacional de Colombia

Jerarquía de memorias

En procesadores modernos, la jerarquía de memorias es toda la cadena hardware que permite que el procesador obtenga la información necesaria para ejecutar un programa rápidamente.

El procesador trabaja más rápido

La evolución en los procesadores no ha sido la misma que en las memorias, dejando una brecha grande en la velocidad de ejecución

¿Para qué la jerarquía?

  • Las memorias de mayor capacidad son más lentas, y las de menor capacidad son más rápidas 
  • Tener diferentes tipos de memorias trabajando juntas logra acercarse a los requerimientos del procesador
  • Se sacrifica velocidad de acceso por capacidad, y viceversa.

Como libros en una biblioteca...

Si el procesador requiere datos parecidos frecuentemente, entonces es mejor tenerlos en una memoria rápida y cercana a él mientras sea posible.

Software prefetching

Al escribir un programa, tratar de predecir los datos que se van a necesitar desde la memoria y cargarlos directamente a la cache, para ahorrar tiempo.

Hardware prefetching

Construir la memoria cache de forma tal que el dato que se va a necesitar en un futuro sea traído para que esté previamente en la memoria cache y se ahorre tiempo.

Software disponible

  • GEMS - modelamiento de memorias de última generación.
  • Simplescalar - Simulador de un sistema completo.
  • Cacti - Consumo de potencia de las memorias.
  • gem5 - simulador de sistema completo.
  • multi2sim - Simulador CPU y GPU.
  • gem5.

GEMS

Capaz de simular jerarquías de memoria:

  • Protocolos de coherencia de datos.
  • Timing accuracy.
  • Modelos para memorias cache de diferentes niveles y DRAM de diferentes características. 
  • Universidad de Wisconsin, con licencia GPL.

Cacti

Capaz de simular jerarquía de memorias cache:

  • Potencia estática y dinámica de la cache.
  • Protocolos de coherencia de datos.
  • Timing accuracy.
  • Tiempo de acceso a memoria.
  • Área. 
  • Interfaz web.
  • Copyright 2007 Hewlett-Packard Development Corporation.

SimpleScalar

Capaz de simular arquitecturas completas:

  • Jerarquía de memorias simple.
  • Timing accuracy.
  • Soporta arquitecturas MIPS, ARM y Alpha.
  • SimpleScalar LLC corporation copyright.
  • Modelos simples de pipeline.

Multi2sim

Simulación de sistema completo:

  • Cycle accurate.
  • Arquitecturas complejas con etapas de pipeline. Arquitecturas ARM, MIPS, x86.
  • Multithread con muchos procesadores.
  • Jerarquía de memoria con coherencia de datos y optimizaciones.
  • Puertos de entrada y salida generales.
  • GPU.
  • Licencia GPL, open source.

gem5

Simulador de sistema completo.

  • Protocolos de coherencia de datos.
  • Timing accuracy.
  • Modelos para memorias cache de diferentes niveles y DRAM de diferentes características. Métodos de optimización dependiente de la arquitectura.
  • Arquitecturas ARM, MIPS, x86, Alpha, SPARC.
  • Berkeley-style open source license.

gem5

El simulador gem5  permite hacer simulaciones de sistemas embebidos comunicados por un dispositivo serial, de manera que se puedan correr benchmarks para probar modificaciones a la arquitectura.

 

Soporta un modelo de memoria clásico o RUBY (traido de GEMS) en las versiones más recientes.

www.gem5.org

gem5 y ARM

  • gem5 tiene soporte para la arquitectura ARM, pero no para todos sus procesadores.
  • Al no implementar algunos procesadores, las técnicas que usa de hardware prefetching no son completas.
  • Sus resultados no han sido validados con respecto a procesadores como el Cortex A8, ampliamente usado en sistemas embebidos.

Contribución

  • Desarrollo de un modelo ARM Cortex A8.
  • Validación de las estrategias  de prefetch de datos e instrucciones.
  • Comparaciones de los modelos actuales con hardware de la misma arquitectura y periféricos similares. 

Gracias.

Made with Slides.com