Dual issue
Created by: JeanRochCoulon
What The goal is to provide a faster version of CVA6, with an opt-in configuration option to enable dual-issue.
Howto The new configuration parameter will impact the fetch width (32 or 64 bits, in the frontend); the number of issue ports (single or dual issue, issue stage) and add an ALU (EX stage).
Current status CVA6 currently is single issue. Some places in the frontend are generic but not all.
Risks The implementation could not provide as much performance as we hope; or require too much power, area or timing.
Prerequisites None
KPI The development is split in three steps: fetch, issue and execute. Thanks to a model, we have an expected performance (CoreMark/MHz) for each step. The progress indicator is the step done (functional single- and dual-issue, no impact on single-issue and expected performance on dual-issue).
Description of done CVA6 should be able to issue up to 2 instruction each cycle and reach the expected performance goal.