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.
