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 is update_serving_requests for WRITE requests called at the time when they are issued to the DRAM? #102

Open
beta-47 opened this issue Jun 30, 2021 · 0 comments

Comments

@beta-47
Copy link

beta-47 commented Jun 30, 2021

update_serving_requests is called at line 465 in src/Controller.h. At this point the WRITE request has just been issued. Shouldn't the function be called after the WRITE request has finished writing data to the DRAM?

Compare this with how a READ request is dealt with: after issuing the READ command, the depart field of the request is set to clk + channel->spec->read_latency, and the request is placed on the pending buffer. Only after the specified time has elapsed is update_serving_requests called for the said READ request. So shouldn't the same be followed for a WRITE request? (with its own corresponding write_latency, of course)

One possible reason that I could think of: the Controller need not wait for the WRITE request to complete before returning a completion indication, because ultimately it does not need any data from the DRAM, unlike a READ request.

If that is the case, can't the completion indication be returned as soon as the ACT for the corresponding WRITE request is issued?

@beta-47 beta-47 changed the title update_serving_requests for WRITE requests being possibly called incorrectly Why is update_serving_requests for WRITE requests called at the time when they are issued to the DRAM? Apr 4, 2022
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

1 participant