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
