-
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
Power of individual banks #49
Conversation
1)Implement energy split up to each memory banks for the below components. act_energy pre_energy read_energy write_energy pre_stdby_energy act_stdby_energy 2) Configuration options "-o <mode>" and "-f <factor>" replaced by "-b <factor>". The vendor specific power offset factor rho can be specified CLI argument -b <factor>. 3) Updated the LibDRAMPower library with the latest feature. 4) Added specs for SAMSUNG K4B1G1646E 1Gb DDR3-1600 16bit device. 5) Improved README description.
1) Implement bankwise energy distribution for the below components. idle_energy_act idle_energy_pre f_act_pd_energy f_pre_pd_energy s_act_pd_energy s_pre_pd_energy sref_energy sref_ref_energy sref_ref_act_energy sref_ref_pre_energy spup_energy spup_ref_energy spup_ref_act_energy spup_ref_pre_energy pup_act_energy pup_pre_energy 2) New class for Bankwise parameters . Implement explicit handling of PASR and Self-Refresh power factor Sigma.( New CLI arguments for both).
1) Corection :Added the shared energy component act_stdby_energy_banks[]. 2) Splitted the refresh energy per bank. 3) Splitted total energy per banks.
Last changes from the official DRAMPower repository merged into DRAMPower-tukl-msd. Found and fixed a bug in CommandAnalysis.cc. In case of PREA command the precharge counter is incremented with the number of active banks. But the precharge counter of a bank that was active should be incremented just by one instead of the number of active banks. Indentation fixed in MemBankWiseParams.h and MemBankWiseParams.cc. Some tests are failing (make test). Before submitting the patch to the official DRAMPower all tests must pass.
1) Overloaded the libDRAMPower constructor for adaptability. 2) Fixed the bug : last_pre_cycle was not updated with timestamp for PREA . 3) Added a default constructor for MemBankWiseParams and also added a default case for PASR modes. 4) Adapted the test_LPDDR2_1066_termination_matches_reference.out for unit test.
1) Implement bankwise refersh. 2) Bankwise ACT and PRE energy calculations are updated with new formulas as below. Ione := ( Idd3n + [ ρ.(Idd3n - Idd2n) + Idd2n ].(B -1) ) ------------------------------------------------ B Eact(b) = Vdd.[ Idd0 - Ione ].tRAS.Nact(b) Epre(b) = Vdd.[ Idd0 - Ione ].tRP.Npre(b) 3) Add new modified spec (modified_MICRON_1Gb_DDR3-1600_8bit_G_3s.xml) with REFB parameters idd5b abd tREFB. 4) Add unit test for REFB calcuation. 5) Removed unwanted variable numberofacts.
Add the missing reference file (test_MICRON_1Gb_DDR3_1600_8bit_G_3s_bankwise_refresh.out ) for REFB unit test.( missed in previous commit).
1) Removed the redundant variables numberofpres,numberofreads and numberofwrites and adapted the unit test accordingly. 2) Simplified the calculation of ione.
Implement Bankwise refresh.
Update the unit tests for bank-wise components.
Fix the path in the test.py referring the command trace which was wrong in previous commit, also replaced the PASR.commands.trace.
Clang throws "implicit conversion changes signedness" for when signed type "int" was used for array indexing. This replaced with unsiged.
Merge remote-tracking branch 'upstream/master'
Add bank-wise unit tests.
@myzinsky could you please post some information about the publication where more information can be found? Thanks! |
1 similar comment
1 similar comment
Here is the paper: https://ems.eit.uni-kl.de/fileadmin/ems/user_upload/PID4374359.pdf |
That's a lot of reading material :) I'm happy it can be merged w/o conflicts, thanks for taking care of that. I'll probably get around to looking through the code over the weekend, and then I'll push the merge button. |
Hi all! I've had a look at the code, and will merge it in after typing this message. Apart from some code style issues, I have no remarks, and I do not want to nitpick right now. In general, the code feels a bit copy-paste oriented, and I think we are forced into that style by the way our data structures are set up. I'm (slowly) working on some restructuring on a branch that should hopefully fix that to a large extent. I'll merge the changes from master into that branch later, to see if the new insight that we require statistics per bank changes the structure I had in mind. |
Hi Sven, thanks! |
Summary of changes:
Implement bank-wise refresh.
Bank-wise ACT and PRE energy calculations are updated with new formulas as below.
Add new modified spec (modified_MICRON_1Gb_DDR3-1600_8bit_G_3s.xml) with REFB parameters idd5b and tREFB.
Add unit test for REFB calculation.
Implement bank-wise energy distribution for the below components.
New class for bank-wise parameters.
Implement explicit handling of PASR and Self-Refresh power factor Sigma. CLI arguments added.
Added specs for SAMSUNG K4B1G1646E 1Gb DDR3-1600 16bit device.
Small improvements to the README file.
Bank-wise unit tests added.
This topic was discussed in the issue #28.