Con cada nueva generación, los procesadores de alto rendimiento adoptan técnicas cada vez más agresivas para extraer más rendimiento. La ejecución fuera de orden, los mecanismos avanzados de comunicación de memoria y la fusión de instrucciones aportan mejoras significativas, pero dependen en gran medida de la especulación. A medida que los diseños se amplían, estos mecanismos especulativos se vuelven más vulnerables a los fallos de predicción, lo que puede costar hasta un 15% del rendimiento potencial.
En este contexto, la predicción de dependencias de memoria es esencial para garantizar que los loads no pasen por alto los stores más antiguos a la misma dirección. Asimismo, la fusión de instrucciones se ha utilizado para reducir la presión sobre el pipeline, aunque las implementaciones industriales se centran casi exclusivamente en patrones consecutivos simples. Solo una propuesta previa exploró la fusión especulativa de instrucciones de memoria no consecutivas basada en predicción.
Sin embargo, los enfoques actuales para la predicción de dependencias de memoria y la fusión especulativa siguen siendo limitados. La mayoría adoptan ideas procedentes de predictores de saltos, pese a que, como defendemos en esta tesis, no son adecuadas para estos dominios y suelen producir ineficiencias. Sostenemos que la información contextual utilizada para las predicciones debe seleccionarse con mayor cuidado. El uso de historias de longitud fija, o la búsqueda por fuerza bruta de la mejor longitud, puede generar rutas demasiado largas que introducen ruido o demasiado cortas que producen aliasing.
Defendemos que cada predicción debe entrenarse únicamente con la información situada entre las instrucciones implicadas. Si el camino entre dos instrucciones se repite, también es probable que se repita su interacción.
Bajo esta premisa, el objetivo de la tesis es revisar mecanismos especulativos desde la perspectiva de la sensibilidad al contexto. La hipótesis es que la precisión y la eficiencia pueden mejorar significativamente si los mecanismos se adaptan al contexto dinámico específico de cada interacción, en lugar de basarse en historias estáticas o genéricas. Para validar esta hipótesis, diseñamos y evaluamos nuevos predictores capaces de aprovechar el contexto relevante para ampliar la especulación y reducir sus riesgos.
La primera parte de la tesis estudia al Store Sets, predictor que continúa utilizándose como referencia en la predicción de dependencias de memoria. Nuestro análisis identifica cinco limitaciones fundamentales, en su mayoría relacionadas con la serialización innecesaria de instrucciones de memoria.
Basándonos en estas observaciones, presentamos PHAST, un nuevo predictor de dependencias que abandona los enfoques de distancia fija y de conjuntos. PHAST aprende de la ruta real de ejecución entre un store conflictivo y el load dependiente, permitiéndole identificar qué store debe proporcionar el valor al load con gran precisión. Este entrenamiento elimina numerosas falsas dependencias y reduce los squashes del pipeline. Con solo 14,5KB de presupuesto hardware, PHAST reduce el MPKI un 62% de media y obtiene un speedup del 1,29% respecto al estado del arte, con mejoras de hasta el 22%, acortando la distancia hasta un predictor ideal en apenas un 1,5%.
La última parte aborda la predicción de fusión de instrucciones. La única propuesta previa de fusión no consecutiva se fundamenta en un predictor Tournament, diseño que consideramos inadecuado para esta tarea. Para resolver sus limitaciones, presentamos FLIP, un predictor de fusión basado en el mismo principio de sensibilidad al contexto que PHAST. FLIP identifica oportunidades de fusión no consecutiva entre loads y stores, e introduce un conjunto de optimizaciones destinadas a relajar restricciones innecesarias y reducir los casos perjudiciales. Nuestros experimentos muestran que FLIP mejora el rendimiento en un 2,44% en SPEC CPU 2017 y en un 2,94% en MiBench, mientras reduce el MPKI en un 83%.
With each new generation, high-performance processors adopt increasingly aggressive techniques to extract more performance. Out-of-order execution, advanced memory communication mechanisms, and instruction fusion all contribute to higher performance, but they rely heavily on speculation. As designs grow wider and deeper, these speculative mechanisms become more vulnerable to misprediction, which can cost up to 15% of the processor's performance potential.
In this context, memory dependence prediction is essential to ensure that loads do not bypass older stores to the same address. Similarly, instruction fusion has been used to reduce pressure on the pipeline, though current industrial implementations focus almost exclusively on simple, consecutive patterns. Only a single prior proposal has explored speculative fusion of non-consecutive memory instructions using a predictor.
However, state-of-the-art approaches in both memory dependence prediction and instruction fusion prediction remain limited. Most are directly inspired by branch predictor designs, which, as we claim in this thesis, are not well suited for these domains and often result in inefficiencies.
The central claim of this thesis is that context information must be carefully selected for accurate prediction. The use of using fixed lengths or finding the best suited among a set through brute-force, like how it is done in branch prediction, can lead to an explosion of paths when the history is larger than necessary, or to aliasing when shorter.
Instead, we state that each prediction must be trained only with the information between the instructions involved in it. If the same path between those two instructions recur, then the outcome of the prediction will likely recur too.
Following this premise, the objective of this thesis is to revisit speculative hardware mechanisms from the perspective of context sensitivity. Our working hypothesis is that prediction accuracy and efficiency can be substantially improved if mechanisms adapt to the specific dynamic context of each case, rather than relying on static or generic lengths. To test this hypothesis, we design and evaluate new predictors that exploit the relevant execution context to expand the reach of speculation while minimizing its risks.
The first part of this thesis revisits the Store Sets predictor, still widely used as a reference mechanism for memory dependence prediction. Our analysis identifies five key limitations, most rooted in the unnecessary serialization of memory instructions.
Building on these insights, we introduce PHAST, a new memory dependence predictor that departs from fixed-distance and set-based approaches. PHAST learns from the actual execution path between a conflicting store and its dependent load, enabling it to predict precisely the store from which the load should receive its value. This path-sensitive training eliminates many false dependences and significantly reduces pipeline squashes. With only 14.5 KB of hardware budget, PHAST reduces MPKI by 62% on average and achieves a 1.29% average speedup over the state-of-the-art, with improvements of up to 22%, narrowing the gap to an ideal predictor to just 1.5%.
The final contribution addresses instruction fusion. Prior work on non-consecutive fusion relies on a Tournament branch predictor with long histories, a design that we found to be inappropriate for this task. To address these shortcomings, we present FLIP, a new fusion predictor that applies the same context-sensitive principle as PHAST. FLIP identifies profitable non-consecutive fusion opportunities among loads and stores and introduces a set of Non-consecutive Fusion Optimizations (NFOs) to relax unnecessary constraints and mitigate harmful cases. Experiments show that FLIP improves performance by 2.44% on SPEC CPU 2017 and 2.94% on MiBench, while reducing MPKI by 83%.
© 2001-2026 Fundación Dialnet · Todos los derechos reservados