1. Development of a parametric TAGE branch prediction unit for a RISC-V core
- Author
-
Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors, Semidynamics Technology, Marcuello Pascual, Pedro, González, Antonio, Torregrosa Ortego, Alex, Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors, Semidynamics Technology, Marcuello Pascual, Pedro, González, Antonio, and Torregrosa Ortego, Alex
- Abstract
La predicció de salts és un component essencial de qualsevol processador modern. A mesura que els pipelines creixen, la penalizació per mispredict es veu incrementada, i evitar-la és clau per a obtenir un bon rendiment. En aquest projecte, es desenvoluparà i implementarà una Unitat de Predicció de Salts per a un processador comercial RISC-V de 64 bits (nom en clau Avispado). La unitat estarà basada en el predictor de salts TAGE, il·lustrat per Seznec et al. l’any 2006. El predictor serà completament parametritzable, per a permetre al futur una expansió fàcil. El disseny estarà implementat íntegrament en SystemVerilog sintetitzable. Es mostraran els resultats de la síntesi, analitzant l’àrea i el timing de la unitat. Primer, un banc de proves autònom serà utilitzat, comparant diferents implementacions d’un predictor de salts que porten cap al predictor TAGE. Després, es realitzaran algunes modificacions al predictor perquè pugui reemplaçar al predictor existent a Avispado. Múltiples configuracions del predictor TAGE seran comparades mitjançant l’execució de benchmarks, estudiant com diferents pressupostos d’emmagatzematge afecten la ràtio de mispredicts., La predicción de saltos es un componente esencial de cualquier procesador moderno. A medida que los pipelines crecen, la penalización por mispredict se ve incrementada, y evitarla es clave para obtener un buen rendimiento. En este proyecto, se desarrollará e implementará una Unidad de Predicción de Saltos para un procesador RISC-V de 64 bits comercial (nombre en clave Avispado). La unidad estará basada en el predictor de saltos TAGE, ilustrado por Seznec et al. en 2006. El predictor será completamente parametrizable, para permitir en el futuro una expansión fácil. El diseño estará implementado íntegramente en SystemVerilog sintetizable. Se mostrarán los resultados de la síntesis, analizando el área y el timing de la unidad. Primero, un banco de pruebas autónomo será usado, comparando diferentes implementaciones de un predictor de saltos que llevan hacia el predictor TAGE. Después, se realizarán algunas modificaciones al predictor para que pueda reemplazar al predictor existente en Avispado. Múltiples configuraciones del predictor TAGE serán comparadas mediante la ejecución de benchmarks, estudiando como distintos presupuestos de almacenamiento afectan al ratio de mispredicts., Branch prediction is a fundamental component of any modern processor. With growing pipelines, the mispredict penalty gets higher, and avoiding it is key to obtain a good performance. In this project, a Branch Prediction Unit for a commercial in-order 64-bit RISC-V core (code named Avispado) will be developed and implemented. This unit will be based on the TAGE branch predictor, showcased by Seznec et al. in 2006. The predictor will be fully parameterizable, to allow for easy future expansion. The design will be fully implemented in synthesizable SystemVerilog. Synthesis results will be provided, analyzing area and timing of the unit. First, a standalone testbench will be used, comparing various branch predictor implementations that lead to the TAGE predictor. Afterwards, some modifications will be made to allow the predictor to replace Avispado’s existing branch predictor. Multiple configurations will be compared and benchmarked, studying how different storage budgets affect the misprediction rate.
- Published
- 2021