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

cpu-o3: refactor decoupled FTB #231

Merged
merged 9 commits into from
Dec 23, 2024
Merged

cpu-o3: refactor decoupled FTB #231

merged 9 commits into from
Dec 23, 2024

Conversation

Lawrence-ID
Copy link
Contributor

@Lawrence-ID Lawrence-ID commented Dec 12, 2024

  • ideal_tick() is copied from commit: e7294f1
    TODO: Fix bug in ideal_tick(): Bubbles created by generateFinalPredAndCreateBubbles() are lost in the next tick, resulting in almost no override bubbles. To resolve this, move tryEnqFetchTarget() and tryEnqFetchStream() outside the while loop (before decrementing numOverrideBubbles). Additionally, ensure that two FTB entries generated by generateAndSetNewFetchStream() are saved in the current tick, allowing both entries to be enqueued to FTQ/FSQ in the next tick.

  • makeNewPrediction() was split into generateAndSetNewFetchStream() and enqueueFetchStream(). When enableTwoTaken, the stream entry is set in the previous ideal_tick(), so in the current ideal_tick(), we only need to enqueue the fetch stream. When disableTwoTaken, the function flow remains the same as before, where a new prediction is made and the fetch stream is enqueued in the same tick.

Change-Id: I7a6d5e69b40a8e484f05e69d241f581af47d3357
ideal_tick() is copied from commit: e7294f1
TODO: Fix bug in ideal_tick(): Bubbles created by generateFinalPredAndCreateBubbles() are lost in the next tick,
resulting in almost NO override bubbles. To resolve this, move tryEnqFetchTarget() and tryEnqFetchStream()
outside the while loop (before decrementing numOverrideBubbles). Additionally, ensure that TWO FTB entries
generated by generateAndSetNewFetchStream() are saved in the current tick, allowing both entries to enqueue
to FTQ/FSQ in the next tick.

Change-Id: Ibbacd199e2ac9d47fb10c8011ef844a499e918b6
Change-Id: Ide0a7eb0b0d3c31226f57e0a0d64e1d813de506c
Change-Id: I7a6d5e69b40a8e484f05e69d241f581af47d3357
ideal_tick() is copied from commit: e7294f1
TODO: Fix bug in ideal_tick(): Bubbles created by generateFinalPredAndCreateBubbles() are lost in the next tick,
resulting in almost NO override bubbles. To resolve this, move tryEnqFetchTarget() and tryEnqFetchStream()
outside the while loop (before decrementing numOverrideBubbles). Additionally, ensure that TWO FTB entries
generated by generateAndSetNewFetchStream() are saved in the current tick, allowing both entries to enqueue
to FTQ/FSQ in the next tick.

Change-Id: Ibbacd199e2ac9d47fb10c8011ef844a499e918b6
Change-Id: Ide0a7eb0b0d3c31226f57e0a0d64e1d813de506c
@jensen-yan jensen-yan force-pushed the refactor-ideal-frontend branch from 3a97593 to 63ba779 Compare December 16, 2024 07:50
Change-Id: I40d159242ca782b91add8e1483be6a5306f43b0d
Merge branch 'refactor-ideal-frontend' of https://github.com/OpenXiangShan/GEM5 into refactor-ideal-frontend

Change-Id: I0055821eb8eb43cf5c80d7326db13be78f83575a
@Lawrence-ID Lawrence-ID merged commit 0a79459 into xs-dev Dec 23, 2024
1 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants