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

Power of individual banks #49

Merged
merged 20 commits into from
Oct 30, 2016
Merged

Power of individual banks #49

merged 20 commits into from
Oct 30, 2016

Conversation

efzulian
Copy link
Contributor

@efzulian efzulian commented Oct 24, 2016

Summary of changes:

Implement bank-wise refresh.

Bank-wise 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)

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.

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

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.

knox357 and others added 19 commits June 23, 2016 15:40
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.
@efzulian
Copy link
Contributor Author

@myzinsky could you please post some information about the publication where more information can be found? Thanks!

@coveralls
Copy link

Coverage Status

Coverage increased (+1.005%) to 88.149% when pulling abcdd01 on tukl-msd:master into e18a37f on ravenrd:master.

1 similar comment
@coveralls
Copy link

Coverage Status

Coverage increased (+1.005%) to 88.149% when pulling abcdd01 on tukl-msd:master into e18a37f on ravenrd:master.

@coveralls
Copy link

Coverage Status

Coverage increased (+1.005%) to 88.149% when pulling 767cb37 on tukl-msd:master into e18a37f on ravenrd:master.

1 similar comment
@coveralls
Copy link

Coverage Status

Coverage increased (+1.005%) to 88.149% when pulling 767cb37 on tukl-msd:master into e18a37f on ravenrd:master.

@myzinsky
Copy link
Member

@Sv3n
Copy link
Collaborator

Sv3n commented Oct 25, 2016

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.

@Sv3n
Copy link
Collaborator

Sv3n commented Oct 30, 2016

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.

@Sv3n Sv3n merged commit 90d6290 into tukl-msd:master Oct 30, 2016
@efzulian
Copy link
Contributor Author

Hi Sven, thanks!
For the next commits we're going to be more careful with coding style.

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

Successfully merging this pull request may close these issues.

5 participants