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

[WIP] Port Wrong Path Aware EIP #4

Draft
wants to merge 1 commit into
base: wrong-path
Choose a base branch
from
Draft

Conversation

krishnamtibrewala
Copy link
Collaborator

// TODO
}
#else
uint32_t eip::prefetcher_cache_operate(uint64_t addr, uint64_t ip, uint64_t instr_id, uint8_t cache_hit, uint8_t prefetch_hit, uint32_t metadata_in)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The function signature is changed NEED to update without breaking other things.
metadata_in is updated to have wrong_path info


// IMPORTANT: This function needs to be called in the same order as prefetcher_cache_operate,
// meaning that after calling prefetcher_squash, none of the squashed instructions should call prefetcher_cache_operate.
// Otherwise, performance may be sub-optimal.
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Get more clarity on where it has to be called.
With current understanding have called at following line in ooo_cpu.cc

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

prefetcher_cache_operate is called in try_hit(..) of cache.cc, I believe the way impl_prefetcher_squash is called should be fine provided on a mispredicated branch we flush the pipeline

@ngober
Copy link
Collaborator

ngober commented Mar 4, 2024

I don't have any specific reviews of the code, I think the addition of prefetcher_squash is very good. But, have you felt that the modules as objects interface is easier to work with than the legacy interface? Are there ways that it could be improved?

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