CVA6S+: A Superscalar RISC-V Core with High-Throughput Memory Architecture
Riccardo Tedeschi, Gianmarco Ottavi, Côme Allart, Nils Wistoff, Zexin Fu, Filippo Grillotti, Fabio De Ambroggi, Elio Guidetti, Jean-Baptiste Rigaud, Olivier Potin, Jean Roch Coulon, César Fuguet, Luca Benini, Davide Rossi
TL;DR
CVA6S+ tackles IPC bottlenecks in scalar RISC-V cores by building on CVA6S to create a dual-issue design enriched with register renaming, a two-level private-history branch predictor, ALU-to-ALU operand forwarding, and integrated FPU. Coupled with the HPDCache non-blocking data path, the design achieves $43.5\%$ IPC improvement over the scalar CVA6 and $10.9\%$ over CVA6S, while incurring under $9.3\%$ area overhead; memory bandwidth improves by $74.1\%$ with HPDCache. The evaluation on a FPGA-based Cheshire/Genesys 2 platform uses RV32IMAC with a, b, c, s bitmanip extensions to demonstrate practical gains in embedded workloads (Embench-IoT) and memory-intensive patterns (RaiderSTREAM). The work demonstrates the viability of combining microarchitectural enhancements with a non-blocking cache to deliver high-throughput, memory-bandwidth-efficient RISC-V cores for automotive and embedded domains.
Abstract
Open-source RISC-V cores are increasingly adopted in high-end embedded domains such as automotive, where maximizing instructions per cycle (IPC) is becoming critical. Building on the industry-supported open-source CVA6 core and its superscalar variant, CVA6S, we introduce CVA6S+, an enhanced version incorporating improved branch prediction, register renaming and enhanced operand forwarding. These optimizations enable CVA6S+ to achieve a 43.5% performance improvement over the scalar configuration and 10.9% over CVA6S, with an area overhead of just 9.30% over the scalar core (CVA6). Furthermore, we integrate CVA6S+ with the OpenHW Core-V High-Performance L1 Dcache (HPDCache) and report a 74.1% bandwidth improvement over the legacy CVA6 cache subsystem.
