gem5/ext/drampower/ChangeLog
Andreas Hansson e0e8b08a42 ext: Add DRAMPower to enable on-line DRAM power modelling
This patch adds the open-source (BSD 3-clause) tool DRAMPower, commit
8d3cf4bbb10aa202d850ef5e5e3e4f53aa668fa6, to be built as a part of the
simulator. We have chosen this specific version of DRAMPower as it
provides the necessary functionality, and future updates will be
coordinated with the DRAMPower development team. The files added only
include the bits needed to build the library, thus excluding all
memory specifications, traces, and the stand-alone DRAMPower
command-line tool.

A future patch includes the DRAMPower functionality in the DRAM
controller, to enable on-line DRAM power modelling, and avoid using
post-processing of traces.
2014-10-09 17:52:03 -04:00

121 lines
7.7 KiB
Text

Change Log:
DRAMPower v4.0 - * DRAMPower can now be compiled as a library. This enables a user
to access the tool through an API and log commands and their
corresponding time stamps, removing the need to store large
command traces on disk. In addition, cycle counting variables
have been changed to int64 to support longer simulations.
The library can be compiled without Xerces to remove an optional
dependency and reduce the size of the binary.
* Improved robustness. The latest build is automatically checked
out on a test server, compiled, and tested to verify that the
output matches an expected reference. The code is also compiled
with a large number of warning flags enabled and treats all
warnings as errors.
* Bug fix: Fixed bug in io/termination energy calculation.
* Bug fix: Fixed bug in calculation of auto precharge cycle.
DRAMPower v3.1 - * Added IO and Termination Power measures from Micron's DRAM Power
Calculator, for all supported DRAM generations. In the case of
Wide IO DRAMs, these measures are already included in the provided
current specifications. This feature enables support for multi-rank
DRAM DIMMs (DDR2/3/4) and stacking of multiple Wide IO DRAM dies
(equivalent to ranks). To indicate use of multi-rank DRAMs or
multiple Wide IO DRAM dies/layers, the 'nbrOfRanks' parameter in
the memory specification XMLs can be employed. Note: The DRAM
command scheduler does not support multi-rank/multi-die DRAMs yet.
Only the power estimation component of DRAMPower has been updated
to support them. The current measures for dual-rank DRAMs only
reflect those for the active rank and not the idle rank. The
default state of the idle rank is assumed to be the same as the
current memory state, for background power estimation. Hence,
rank information in the command trace is not required.
* Added warning messages: New warning messages are provided, to
identify if the memory or bank state is inconsistent in the
user-defined traces. Towards this, a state check is performed on
every memory command issued.
* Improved run-time options: Users can now point directly to the
memory specification XML, instead of just the memory ID. Also,
users can optionally include IO and termination power estimates
(for both single and dual rank DRAMs) using '-r' flag in the
command line options.
* Bug fixes: (1) Refresh handler in the DRAM Command Scheduler was
kept ON in the Self-Refresh mode, when it can be turned OFF. This
bug has now been fixed. (2) Precharge All (PREA) always considered
precharging of all banks. It has now been modified to consider
precharging of the open/active banks alone.
DRAMPower v3.0 - * Added support for LPDDR3 and DDR4 memories, besides the already
supported DDR2/DDR3, LPDDR/LPDDR2 and WIDE IO DRAM memories.
* Added DRAM Command Scheduler: To support users of DRAMPower
without access to DRAM controllers, we have added a simple DRAM
command scheduler that dynamically schedules DRAM commands as if
it were a memory controller. The scheduler assumes closed-page
policy, employs ASAP scheduling for DRAM commands (i.e. schedules
commands as soon as timing constraints are met), performs FCFS
scheduling on DRAM transactions and supports all the different
DRAM generations supported by the power model. The generated DRAM
command schedule is also analyzable for real-time applications.
Users can also select speculative usage of power-down or
self-refresh modes (if needed) for idle periods between
transactions. It should be noted that using this command scheduler
is optional and it can be (de-)selected during run-time and users
can switch back to the previously used DRAM command interface as
in the earlier versions.
* Improved run-time options: Users can specify the memory and the
trace file to be used by DRAMPower using command line options.
Additionally, if the DRAM command scheduler is being used, the
users can specify the degree of bank interleaving required, the
request size and power-down or self-refresh options. Also, for
DDR4 memories the bank group interleaving can be specified using
command line options.
* Bug fixes: (1) For command traces ending with a RD/WR/RDA/WRA
command, the tool did not consider completion of operations when
estimating the total trace energy. The missing cycles are now
taken into account.
(2) The IDD5 (REF current) specification for WIDE IO SDR memory
specifications only included 2 banks for refreshes instead of all
four. We would like to thank David Roberts from AMD for spotting
the issue in our DATE'13 article. These measures have been updated.
(3) When estimating precharge cycle for commands with
auto-precharge, (RDA/WRA), the command analysis tool employed the
last activation cycle in the entire DRAM instead of the particular
DRAM bank. This bug has been fixed in this release.
DRAMPower v2.1 - * Added support for variation-aware power estimation, for a
selection of DDR3 memories manufactured using 50nm process
technology, based on the Monte-Carlo analysis presented in our
DAC'13 article.
DRAMPower v2.0 - * Added support for LPDDR/LPDDR2 and WIDE IO DRAM memories, besides
the already supported DDR2/DDR3 memories.
* Faster analysis: The trace analysis component in DRAMPower v2.0
triggers the evaluation only during memory state transitions
(between active, precharged, active and precharged power-down,
refresh, self-refresh and power-up states) and not on every clock
cycle, as was the case till the last version. This optimization
speeds up the power simulations using DRAMPower by several times
over cycle-accurate analysis, resulting in fast power analysis,
without affecting the accuracy of the trace analysis or the
reported power and energy estimates.
* Verification effort: Our power model was verified by the
Microelectronic System Design group at TU Kaiserslautern using
circuit-level SPICE simulations of a DRAM cross-section. As a
result of this verification effort, a couple of power equations
have been modified for Refresh and Self-refresh operations. The
difference between the power and energy estimates reported by our
updated model and the equivalent circuit-level simulations is
< 2% for all memory operations of any granularity for all memories
supported by DRAMPower.
DRAMPower v1.2 - * Supports different power-down and self-refresh modes in DDR2 and
DDR3 DRAM memories.
* Bug fix: Refresh power consumption equation in DRAMPower v1,
incorrectly subtracted IDD2n (precharge background current)
instead of IDD3n (active background current) from IDD5 (total
refresh current). This error has been rectified in this version.
DRAMPower v1.0 - * Performs cycle-accurate memory command trace analysis and estimates
power and energy consumption numbers for the trace.
* It supports the basic memory operations like read, write, refresh,
activate and (auto) precharge in DDR2 and DDR3 memories.