Review Board 2.0.15


mem: [DRAFT] Make DRAMCtrl response queue finite

Review Request #3315 - Created Feb. 8, 2016 and updated - Latest diff uploaded

Information
Joel Hestness
gem5
default
Reviewers
Default
Changeset 11331:8492ca5ea301
---------------------------
mem: [DRAFT] Make DRAMCtrl response queue finite

The DRAMCtrl had an effectively infinite response queue by using the
QueuedSlavePort to manage responses. Unfortunately, for high-bandwidth
applications, this queue causes unrealistic bloat, quickly filling with more
than 100 packets.

To fix this issue, change the response port from a QueuedSlavePort back to a
standard SlavePort, and implement the appropriate control flow. This includes
adding a backend queue, in which slots are reserved when packets arrive at on
the DRAMCtrl's request path.

Tested running with gem5's memtest.py:

../build/X86/gem5.opt --debug-flag=DRAM --outdir=$outdir ../configs/example/memtest.py -u 100

and a couple hundred varying GPU workloads in gem5-gpu.