cpu: Update DRAM traffic gen
authorWendy Elsasser <wendy.elsasser@arm.com>
Sat, 20 Sep 2014 21:17:55 +0000 (17:17 -0400)
committerWendy Elsasser <wendy.elsasser@arm.com>
Sat, 20 Sep 2014 21:17:55 +0000 (17:17 -0400)
commita384525355c37f8776e03c78e12279c38c5c3097
tree748dec1bacd7bb72d62198f8f23e728251c92b47
parent3f7a9348dd365edcfe58b8ecdf293b17a7d779ce
cpu: Update DRAM traffic gen

Add new DRAM_ROTATE mode to traffic generator.
This mode will generate DRAM traffic that rotates across
banks per rank, command types, and ranks per channel

The looping order is illustrated below:
for (ranks per channel)
   for (command types)
      for (banks per rank)
         // Generate DRAM Command Series

This patch also adds the read percentage as an input argument to the
DRAM sweep script. If the simulated read percentage is 0 or 100, the
middle for loop does not generate additional commands.  This loop is
used only when the read percentage is set to 50, in which case the
middle loop will toggle between read and write commands.

Modified sweep.py script, which generates DRAM traffic.
Added input arguments and support for new DRAM_ROTATE mode.
The script now has input arguments for:
 1) Read percentage
 2) Number of ranks
 3) Address mapping
 4) Traffic generator mode  (DRAM or DRAM_ROTATE)

The default values are:
 100% reads, 1 rank, RoRaBaCoCh address mapping, and DRAM traffic gen mode

For the DRAM traffic mode, added multi-rank support.
configs/dram/sweep.py
src/cpu/testers/traffic_gen/generators.cc
src/cpu/testers/traffic_gen/generators.hh
src/cpu/testers/traffic_gen/traffic_gen.cc