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

Command Queue Scheduling Issue when refresh_waiting is Set #63

Open
shavvn opened this issue Mar 6, 2017 · 1 comment
Open

Command Queue Scheduling Issue when refresh_waiting is Set #63

shavvn opened this issue Mar 6, 2017 · 1 comment

Comments

@shavvn
Copy link
Collaborator

shavvn commented Mar 6, 2017

For close page policy at line 194~238 in CommandQueue.cpp.

Let's say refresh_waiting is true now and bank 0 is idle, but bank 1 is active with a CAS not issued.

Currently when the code sees bank 0 and check its nextActivate against current clock cycle (line 233), and just kept waiting till currentClockCycle>=nextActivate.

But in the meantime, it could totally issue the CAS in bank 1 as long as it's issuable, but current code prevents moving on to another command queue. Therefore some cycles are wasted here.

Therefore the produced command trace will look like:

# 10400: refresh_waiting = true
10404: read (0,0,60,1);
10419: read (0,2,253,1);
10434: read (0,3,95,1);
10449: read (0,4,221,1);
10464: read (0,5,154,1);
10479: read (0,6,168,1);

The reads are separated at every 15 cycles even though they could be issued at every 4 cycles.

But after all it's NOT timing violation but instead just inefficient scheduling.

@shavvn
Copy link
Collaborator Author

shavvn commented Mar 6, 2017

The nextActive here is actually the timing for precharge to finish. So in short, the issue here is that the command queue block-waits for one bank to finish precharge even though it can issue CAS command while waiting.

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