Design of a distributed memory unit for clustered microarchitectures

Tesis doctoral de Stefan Bieschewski

El diseño distribuido de componentes críticos de un pocesador puede mejorar su eficiencia energética y en última instancia su rendimiento. Esta tesis propone el diseño distribuido de una unidad de memoria y de una cache de primer nivel en el contexto de una microarquitectura clusterizada. el primer objeto de investigación son los predictores de banco. Esos predictores pueden ser usados para reducir las comunicaciones entre clusters cuando el cache está distribuido en bancos. Se han comparado ocho diseños distintos de predictores en base al coste y precisión. Un predictor de banco de tamaño ilimitado puede alcanzar una precisión del 95% para los benchmarks specint. Proponemos un predictor de tamaño más razonable, de 3.3kbytes, que alcanza una precisión del 84%. la segunda propuesta es el diseño de una unidad de memoria distribuida. Basándonos en nuestras experiencias con los predictores de banco elegimos un diseño que no asigna una confianza a predicciones de banco. Puesto que la distribución de instrucciones de memoria entre clusters está basada en la dirección, el mapeo preciso no se conoce hasta una etapa avanzada del pipeline. Para resolver ese problema, las entradas de la cola de memoria se reservan tardíamente y fuera de orden. Pero la reserva fuera de orden resulta inadecuada para colas convencionales con entradas ordenadas por edad. Proponemos colas desordenadas para resolver ese problema y demostramos como se pueden implementar eficazmente. la tercera propuesta es una colección de mecanismos para controlar el flujo de instrucciones. tradicionalmente las entradas de la cola de memoria se reservan en las etapas en-orden del pipeline. Si la cola de memoria se queda sin entradas disponibles, simplemente se bloquea esa etapa. Puesto que reservamos las entradas fuera de orden, no podemos aplicar ese método y al no controlar el flujo de instrucciones se puede desbordar la cola de memoria, generando pipeline flushes. Proponemos dispatch throttling y pre-access queues para evitar desbordamientos. Esas técnicas mejoran el rendimiento en un 12% y 27% para specint y specfp respectivamente. la cuarta propuesta es un mecanismo para emitir instrucciones de memoria usando una cola de emisión-la memory issue queue, la cual asume el rol de la pre-access queue. Mientras que ésta actúa como una simple fifo, la primera puede aplicar políticas de selección de instrucciones para la emisión. Así pues, una política que priorice las instrucciones más antiguas mejora el rendimiento en 1.6% y 3.1% para specint y specfp respectivamente. Más importante, la cola de emisión proporciona un mecanismo para bloquear instrucciones y volver a emitirlas más tarde. la quinta propuesta es conservative deadlock aware entry allocation, una nueva política de emisión para el memory issue queue que evita abrazos mortales. Estos pueden aparecer como consecuencia de la reserva fuera de orden de entradas en la cola de memoria. Esa propuesta reduce el número de pipeline flushes, especialmente para pequeñas colas de memoria. Para specint, una cola de loads de 12 entradas proporciona el mismo rendimiento que una cola con 24 entradas sin el mecanismo. Para specfp una cola de loads de 16 entradas proporciona el mismo rendimiento que una cola con 28 entradas (96 en total) sin el mecanismo. la sexta propuesta es un mecanismo para liberar entradas de la cola de loads antes de la fase de commit. Ese mecanismo puede ser aplicado a arquitecturas con ordenamiento débil de accesos a memoria como por ejemplo alpha y powerpc. Nuestros experimentos muestran que esa propuesta incrementa el tamaño efectivo de la cola de loads de entre 2 a 4 entradas por cluster, requiere un tamaño menor, y necesita menos energía para alcanzar el rendimiento máximo. finalmente comparamos la unidad de memoria distribuida propuesta con una unidad de memoria centralizada y mostramos que dicha propuesta usa significativamente menos energía y al mismo tiempo mejora el rendimiento.

 

Datos académicos de la tesis doctoral «Design of a distributed memory unit for clustered microarchitectures«

  • Título de la tesis:  Design of a distributed memory unit for clustered microarchitectures
  • Autor:  Stefan Bieschewski
  • Universidad:  Politécnica de catalunya
  • Fecha de lectura de la tesis:  20/06/2013

 

Dirección y tribunal

  • Director de la tesis
    • Joan Manel Parcerisa Bundó
  • Tribunal
    • Presidente del tribunal: julio Sahuquillo borrás
    • Fernando Latorre salinas (vocal)
    • (vocal)
    • (vocal)

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio