cva6 icon indicating copy to clipboard operation
cva6 copied to clipboard

Dual issue

Open JeanRochCoulon opened this issue 2 years ago • 9 comments

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.

JeanRochCoulon avatar Sep 12 '23 07:09 JeanRochCoulon

Hello,

It looks like CVA6 is capable of Dual Issue. When are you expecting to release RTL for Dual Issue of CVA6?

Thanks,

Jay

jay1sung avatar Oct 03 '23 18:10 jay1sung

Hi Jay By the end of the year, the dual issue will be functional. Then verification could start.. Cheers

JeanRochCoulon avatar Oct 03 '23 22:10 JeanRochCoulon

You said "The progress indicator is the step done (functional single- and dual-issue, no impact on single-issue and expected performance on dual-issue)." So I understood that you already completed the function/performance check. You mentioned a model that is software language not RTL?

Thanks,

Jay

jay1sung avatar Oct 03 '23 22:10 jay1sung

That is a python model which (tries to) estimate the performance gain. Regards

JeanRochCoulon avatar Oct 04 '23 04:10 JeanRochCoulon

Hi, @JeanRochCoulon. I am interested in the dual issue feature. But this Github issue has had no progress since October. I'm just wondering how things are going.

Thank you.

jin8495 avatar Apr 01 '24 04:04 jin8495

@jin8495 We have a working version of superscalar CVA6 and we will add new features to improve performance further.

Superscalar CVA6 will be released step-by-step (there are many versioning conflicts since development started!) in the following months; and the release will be completed by the end of the year.

FYI It has been presented during the last CVA6 verification workshop and the slides are available on OpenHW Group Mattermost. A presentation will be made at CF24-OSHW.

@jay1sung The model is now available on GitHub: https://github.com/ThalesSiliconSecurity/cva6-perf-model

cathales avatar Apr 02 '24 09:04 cathales

@cathales Thank you for the information. That is really what I want. 😄

jin8495 avatar Apr 03 '24 01:04 jin8495

Update: ETA is July the 5th

Cc @jin8495

cathales avatar Apr 05 '24 15:04 cathales

Notes from https://github.com/openhwgroup/cva6/pull/2047 for parametrization of superscalar (feel free to discuss these points)

  • Need two options bit SuperscalarEn and int unsigned PIP_WIDTH
  • NrCommitPorts can be replaced by PIP_WIDTH
  • Try to make Verilator understand that [1] is never used unless SuperscalarEn
  • core/frontend/instr_queue.sv Update NID and its comment

cathales avatar Apr 16 '24 15:04 cathales