Hi Paul,

In DRAMSim2, burstEnergy is only the aggregate of current:

burstEnergy[rank] += (IDD4R - IDD3N) * BL/2 * NUM_DEVICES;

We know the voltage. But the above equation doesn't multiply the current with 
the time  (# of cycles taken by read/write  command  *  time of one cycle). In 
order to calculate the energy, what variables in DRAMSim2 specify how many 
cycles were consumed by that read or write operation?

Second, In the above equation, as per my understanding, NUM_DEVICES means the 
number of DRAM chips in one DIMM. But I don't understand what is the purpose of 
BL/2 in that equation.

Thanks for the help.

Kind Regards, Ahmad

From: Paul Rosenfeld [mailto:[email protected]]
Sent: 26 July 2013 15:40
To: Hassan, Ahmad
Cc: [email protected]
Subject: Re: [marss86-devel] DRAM read/write energy

Sorry, let me amend the second part of the answer. The *energy values are 
current multiplied by time which yields coulombs. So in printStats() we 
multiply the coulombs by voltage to get joules and divide by time to get watts.

In other words the final expression printed in printStats() ends up being 
(sum(current * time piece) * voltage)/total time   which ends up yielding 
average power. However, the numerator of this formula is in fact energy.

My second suggestion stands, though. You can just remove the division by 
elapsedCycles and you will get energy.

On Fri, Jul 26, 2013 at 10:25 AM, Paul Rosenfeld 
<[email protected]<mailto:[email protected]>> wrote:
In the future, could you please refrain from sending questions purely about 
DRAMSim2 to the marss list? I don't want to hijack their list for unrelated 
questions.

The best way to get a question through is just to email dramninjas [at] gmail   
or post an issue on github. I don't get a lot of time these days to field 
DRAMSim2 questions, but I will do my best to get to them eventually.

Computing the power on a per-transaction business is a bit tricky as there are 
a lot of energy components that aren't tied to any particular transaction 
(background/refresh). However, if, from these statistics, you wanted to get the 
total energy, you'd just sum all of the watts numbers and multiply by the 
length of the epoch in seconds. This would give you total energy.

You're right that burstEnergy (and the other *Energy) fields are poorly named 
since they are in fact current, but all you have to do to convert them to 
energy is to multiply by Vdd. So if you wanted joules instead of watts, you 
could change these lines: 
https://github.com/dramninjasUMD/DRAMSim2/blob/master/MemoryController.cpp#L866 
 and just remove the division by elapsedCycles .

On Thu, Jul 25, 2013 at 11:10 AM, Hassan, Ahmad 
<[email protected]<mailto:[email protected]>> wrote:

Hi,

Please can someone describe how to measure energy for one read or write access 
(64Bytes) for DDR3 DRAM?

DRAMSim2 only reports power and I couldn't figure out how to get the energy of 
one read or write operation (64 Bytes) from that.

I created the trace file with just one entry:
0x1FF96FC0 WRITE   20

When I run DRAMsim2, it gives the following statistics but I couldn't find out 
how to measure energy for that write operation (64bytes)

== Power Data for Rank        1
   Average Power (watts)     : 0.085
     -Background (watts)     : 0.076
     -Act/Pre    (watts)     : 0.001
     -Burst      (watts)     : 0.001
     -Refresh    (watts)     : 0.008

I can see an attribute burstEnergy in MemoryController.cpp but it is not the 
energy, it is the accumulated current.

Thanks for the help

Cheers.

_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]<mailto:[email protected]>
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel


_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to