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

why the "replace_req" should depend on (buffer_empty & write_ack_i)? #307

Open
adonics opened this issue May 23, 2024 · 2 comments
Open

Comments

@adonics
Copy link
Contributor

adonics commented May 23, 2024

Hi SIr
// back-end read channel
assign replace_req_o = (~hit & read_access & ~replace_i) & (buffer_empty & write_ack_i); //write-through policy

It is said write-through doesn't adopt write allocate, why the "replace_req" should depend on (buffer_empty & write_ack_i)?
best regards
adonics

@jjts
Copy link
Collaborator

jjts commented May 24, 2024

If the buffer is not empty, you can't guarantee that you are reading the last updated data. It prevents the cache line from being replaced with an old line.

@adonics
Copy link
Contributor Author

adonics commented May 27, 2024

thx, I try to understand that

  • if last beat is a write, ack_o will assert when ~buffer_full&write_access, then host can launch next req
  • when next req is a read and miss, the controller want to issue a replace, but he need make sure that previous write data/strb really go out

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

No branches or pull requests

2 participants