-
Notifications
You must be signed in to change notification settings - Fork 47
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
DRAMPower Library error in calculating intermediate results #31
Comments
Hi guys, I've received the mail with the zip / patch. I still need to have a look at it (I'm not on my linux laptop now). |
Hi Sven, actually I posted here the patch as a zip file (and some hours later I removed it). It was a mistake, I should have open a proper pull request for that. Please ignore the patch in the zip file for now. We are doing some more tests and as soon we double check everything I will open the pull request. |
Ok, no problem. I was already confused a bit, since I couldn't find any reference on github to the mail I received :) |
I've merged these changes into the master, and merged the mac branch on top of it. We are now back to a single branch from my perspective (master), which has all the latest features. |
We discovered an issue in the DRAMPower library when intermediate results are needed, e.g. to plot the power consumption over time or if an interactive simulation is conducted. Don't worry, the total energy consumption is still correct.
We do a simulation with DRAMSys and want to plot the current power consumption over time:
at time ~50000 we go into SREF and wake up at ~150000 and we get a big power peak.
in the self refresh time the calculated Energy is 0 and therefore also the current power consumption in the time intervals during SREF.
Obviously the area of this peak should be placed flatted in the interval of the SREF.
This is due to the fact that during the simulation we don’t tell DRAMPower to proceed with the simulation time e.g. during the SREF interval.
I had the idea of a simple workaround:
in our power calculation thread, which is triggered periodically (systemc) I send DRAMPower a NOP function to count up the time:
However this results in a very strange behavior:
As you can see when we issue multiple NOPs to update the time in DRAM Power, the sref_cycles are accumulating because the beginning of the SREF (sref_cycle) is not updated or reset to the current timestamp.
Lets consider the SREF for now:
We changed the code a little bit below:
We did the same for the other power down modes in the else if statements ...
And the result looks like this, which looks much better:
We are currently investigating and testing all the changes and we will come up with a pull request soon.
Moreover, we will adjust the library documentation and the example code.
The text was updated successfully, but these errors were encountered: