Skip to content
This repository has been archived by the owner on Apr 27, 2023. It is now read-only.

SKW: Static branch prediction. #15

Open
ben-marshall opened this issue Nov 5, 2019 · 0 comments
Open

SKW: Static branch prediction. #15

ben-marshall opened this issue Nov 5, 2019 · 0 comments
Assignees
Labels
enhancement New feature or request RTL Issue with the synthesisable RTL skywater Associated with project skywater.

Comments

@ben-marshall
Copy link
Contributor

Currently, all control flow changes have a 5 cycle penalty, since they wait until the instruction reaches writeback before triggering the change.
Two improvements are possible within the scope of a microcontroller like the SCARV-CPU:

  • Decode stage taking of jump with immediate instructions.
  • "Always taken" or "predict taken if backwards" branch prediction.

Step 1, tracked here, will just implement static early branching in the decode stage for control flow changes where it is possible.

  • Instructions eligible: c.j,c.jal,jal.
@ben-marshall ben-marshall added enhancement New feature or request RTL Issue with the synthesisable RTL labels Nov 5, 2019
@ben-marshall ben-marshall self-assigned this Nov 5, 2019
@ben-marshall ben-marshall changed the title Better branch performance: static branching SKW: Static branch prediction. Jul 17, 2020
@ben-marshall ben-marshall added the skywater Associated with project skywater. label Jul 17, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request RTL Issue with the synthesisable RTL skywater Associated with project skywater.
Projects
None yet
Development

No branches or pull requests

1 participant