Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ren] Separate INT/FP Rename Instantiations #347

Merged
merged 16 commits into from
Jul 29, 2019
Merged

[ren] Separate INT/FP Rename Instantiations #347

merged 16 commits into from
Jul 29, 2019

Conversation

bkorpan
Copy link
Contributor

@bkorpan bkorpan commented Jul 22, 2019

Type of change: other enhancement

Impact: rtl refactoring

Development Phase: implementation

Release Notes
Describe the INT/FP pipelines as separate instantiations of a module, rather than a single instantiation.

/**
* TODO This is a bit nasty, but it's currently necessary to
* split the INT/FP rename pipelines into separate instantiations.
* Won't have to do this anymore with a properly decoupled FP pipeline.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do you plan on handling int-to-fp/fp-to-int moves without doing this ugly merge step?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the FP rename pipeline ends up living behind a queue, fp-to-int could be handled the same as it is now. int-to-fp would need to use some sort of structure to match up fp destinations to the uops coming from the int side.

@bkorpan
Copy link
Contributor Author

bkorpan commented Jul 23, 2019

This boots fedora.

@@ -104,7 +104,11 @@ class BoomCore(implicit p: Parameters, edge: freechips.rocketchip.tilelink.TLEdg

val decode_units = for (w <- 0 until decodeWidth) yield { val d = Module(new DecodeUnit); d }
val dec_brmask_logic = Module(new BranchMaskGenerationLogic(coreWidth))
val rename_stage = Module(new RenameStage(coreWidth, numIntRenameWakeupPorts, numFpWakeupPorts))
val rename_stage = Module(new RenameStage(coreWidth, numIntPhysRegs, numIntRenameWakeupPorts, false))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit, but naming this int_rename_stage might make more sense,

Although if FP-pipeline becomes more decoupled, this naming is fine,

@bkorpan
Copy link
Contributor Author

bkorpan commented Jul 28, 2019

This needs rebasing for a very simple merge conflict.

@bkorpan bkorpan merged commit 46eb276 into master Jul 29, 2019
@bkorpan bkorpan deleted the separate-rename branch February 6, 2020 17:24
jerryz123 added a commit that referenced this pull request Mar 11, 2021
* Refactor how Configs parameterize the Top and TestHarnesses

* Bump sha3, testchipip, icenet, firesim
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants