1 Gestión eficiente de la LSQ basada en mecanismos de filtrado Fernando Castro ArTeCS Group
2 Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro Índice
3 Creciente brecha entre la velocidad de procesamiento y el acceso a memoria Técnicas que permiten la ejecución adelantada de los loads (preservando la semántica del programa) Problema de escalabilidad de la LSQ Arquitecturas cada vez más agresivas Mayor latencia y consumo de energía Motivación
4 Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
5 Incremento de rendimiento Load bypassing Load forwarding Un paso más allá: Especulación Procesador: Detectar, squash y reejecutar loads prematuros Las implementaciones convencionales utilizan la LSQ Introducción I
6 LSQ: Realiza dinámicamente la desambiguación de memoria Los requerimientos en el ordenamiento de memoria son tres: Chequear si es posible realizar forwarding: store R5, 1000(R2). load R8, 1000(R2) Introducción II
7 Chequear si se precisa una acción correctora: store R5, 1000(R2). load R8, 1000(R2) Loads y stores: deben alcanzar el sistema de memoria en el orden especificado por el modelo de consistencia de memoria Introducción III
8 Lógica Asociativa Introducción IV
9 Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
10 Idea fundamental Reducir el número de búsquedas asociativas Reducir el consumo de energía por acceso Fundamento Las dependencias de memoria son bastante infrecuentes (12% de los loads forwarding) 74% de las instrucciones de memoria son loads El comportamiento de los loads está fuertemente sesgado Diseño propuesto I
11 Estructura global Loads que sólo ocasionalmente se comunican con stores in-flight tratamiento usando una cola especial La LQ convencional es dividida : Associative Load Queue (ALQ) Banked Non-Associative Load Queue (BNLQ) Necesitamos mecanismos adicionales para garantizar la corrección semántica de los programas Exclusive Bloom Filter (EBF) Diseño propuesto II
12 Diseño propuesto III
13 Loads en la BNLQ Issue: Se incrementa el contador correspondiente en el EBF Commit: Se decrementa el contador correspondiente en el EBF Todos los stores Chequean el correspondiente contador del EBF Valor mayor que cero squash Deshacer modificaciones en el EBF bajo saltos mal predichos o reejecución de instrucciones Diseño propuesto IV
14 Actualización del EBF bajo caminos incorrectos Los loads lanzados en caminos erróneos deben decrementar el contador del EBF Diseño propuesto V BNLQ EBF Hash DataAdd Loads in wrong path DataEA EBF index BNLQ Loads in wrong path
15 12 Diseño propuesto VI EBFs alternos tail head ROB limit EBF1EBF2 loads stores Chk Inc tail = head ROB limit EBF1EBF2 loads stores Inc Chk
16 3 EBFs alternos Diseño propuesto VII head = tail ROB limit EBF1EBF2 loads stores Chk Inc
17 Predicción de dependencias de los loads Predictor basado en profiling Predictor dinámico Diseño propuesto VIII
18 Predictor basado en profiling La predicción de dependencia de los loads está ligada a las instrucciones estáticas 82% todas sus instancias son independientes 10% todas sus instancias son dependientes 8% resto de loads Nuestra clasificación está basada en un umbral : Durante la ejecución de entrenamiento: 100 es el número total de instancias de un cierto load estático Umbral de 0.2 (20%) Si el load indexa la misma entrada del EBF que algún store in-flight para más de 20 instancias se predice como dependiente Diseño propuesto IX
19 Predictor de dependencias dinámico Tabla dedicada indexada por PC Todos los loads son considerados inicialmente como independientes Store encuentra acierto en el EBF Identificar los loads que colisionan con el store Modo DPU Predicción cambia a dependiente : Mantener durante el resto de la ejecución Refrescar periódicamente Diseño propuesto X
20 Modo DPU (Dependence Predictor Update) SAVED INFO EBF_counter = 2 EBF_index = 2005 DPU mode actived Entry 2005 Store X Load Y Load X Hash EBF 2 Diseño propuesto XI
21 SAVED INFO EBF_counter = 2 EBF_index = 2005 DPU mode actived Comitted Load Load_EA Hash= Saved EBF_counter Saved EBF_index Load_PC Prediction Table Diseño propuesto XII DPU mode?
22 SAVED INFO EBF_counter = 2 EBF_index = 2005 DPU mode actived Comitted Load Load_EA Hash= DPU mode? Load_PC Prediction Table Diseño propuesto XII YES INDEP
23 SAVED INFO EBF_counter = 2 EBF_index = 2005 DPU mode actived Comitted Load Load_EA Hash= Load_PC Prediction Table Diseño propuesto XII DPU mode? YES DEP INDEP
24 SAVED INFO EBF_counter = 2 EBF_index = 2005 DPU mode actived Comitted Load Load_EA Hash= Load_PC Prediction Table Diseño propuesto XII DPU mode? NO DEP
25 Diseño propuesto XIII Predictor dinámico vs predictor basado en profiling PVP : probabilidad predicción correcta sobre load dependiente PVN : probabilidad predicción incorrecta sobre load independiente Mejores resultados para el predictor basado en profiling Exploración de umbral
26 Exploración de umbral Algoritmo para hallar el umbral óptimo Comenzamos desde el valor más pequeño y gradualmente lo incrementamos Finalizamos cuando la razón entre ahorro de energía en el procesador y la degradación de IPC empieza a reducirse Diseño propuesto XIV
27 Tratamiento de falsos positivos en el EBF Existencia de falsos positivos (A) Tratar falsas dependencias como dependencias verdaderas + Simplifica el diseño - Squashes innecesarios - Se incrementa la presión en la ALQ (B) Recorrer la BNLQ bajo hit en el EBF e ignorar los falsos positivos + Reducido número de squashes + Disminuye la presión en la ALQ - Mayor retardo en iniciar el squash Diseño propuesto XV
28 Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
29 Parámetros de la LSQ y Simulación Entorno experimental
30 Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
31 Resultados experimentales I Basado en profiling Dinámico % Slowdown% LQ-SQ Eng. Savings% Processor Eng. Savings ALQ=48 ALQ=40ALQ=32ALQ= % ahorro de energía en la LSQ 2-4% ahorro de energía en el procesador Pérdida de rendimiento reducida (<1% en promedio)
32 Resultados experimentales II Escalado de la BNLQ (ALQ=32) AVG_INT AVG_FP AVG
33 Resultados experimentales III AVG_INTAVG_FPAVG Escalado de la BNLQ (ALQ=32). Configuración agresiva
34 Resultados experimentales IV Exploración del periodo de refresco óptimo para el predictor dinámico
35 Motivación Introducción Diseño propuesto Entorno experimental Resultados Conclusiones y trabajo futuro
36 Conclusiones Diseño particionado de la LQ Eficacia de los predictores dinámico y basado en profiling Reducción del impacto de los falsos positivos en el EBF Ahorro de energía (con una muy pequeña pérdida de rendimiento) de 35-50% en la LQ-SQ y 2-4% en el procesador Trabajo actual y futuro Eliminación total de la LQ Incorporación de simultaneous multithreading (SMT) Conclusiones y Trabajo futuro I
37 Conclusiones y Trabajo futuro II Eliminación total de la LQ LOADSTORE Tabla de edad (ROB_id=35)(ROB_id=24) Reejecución de instrucciones
38 Publicaciones F. Castro, D. Chaver, L. Pinuel, M. Prieto, M. C. Huang, F.Tirado. “Load-Store Queue Management: an Energy Efficient Design based on a State Filtering Mechanism”. IEEE International Conference on Computer Design (ICCD), pp , F. Castro, D. Chaver, L. Pinuel, M. Prieto, M. C. Huang, F. Tirado. “A Power- Efficient and Scalable Load-Store Queue Design”. Lecture Notes on Computer Science, Vol. 3728, pp. 1-9, F. Castro, D. Chaver, L. Pinuel, M. Prieto, M. C. Huang, F. Tirado. “Energy- Aware Load-Strore Queue State Filtering”. Conference on Design of Circuits and Integrated Systems (DCIS), F. Castro, D. Chaver, L. Pinuel, M. Prieto, F. Tirado. “Gestión eficiente de la LSQ basada en mecanismos de filtrado”. Jornadas de Paralelismo, pp , F. Castro, D. Chaver, L. Pinuel, M. Prieto, M. C. Huang, F. Tirado.”A Load- Store Queue Design Based on Predictive State Filtering. Journal of Low Power Electronics, Vol. 2, pp. 1-10, 2006.
39 GRACIAS POR VUERSTRA ATENCIÓN ¿ALGUNA PREGUNTA?