BL/2 is the time in this case. BL is the burst length in beats and in DDR each side of the clock is used so the burst takes BL/2 cycles.
We have to multiply by the number of devices since each device bursts out its portion of the data on each beat. On Fri, Jul 26, 2013 at 11:05 AM, Hassan, Ahmad <[email protected]>wrote: > 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]> > 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]> > 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] > 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
