changeset a01cc09ae34c in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=a01cc09ae34c
description:
        mem: Fix DRAM bank occupancy for streaming access

        This patch fixes an issue that allowed more than 100% bus utilisation
        in certain cases.

diffstat:

 src/mem/simple_dram.cc |  14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diffs (27 lines):

diff -r 6da4081bcbb4 -r a01cc09ae34c src/mem/simple_dram.cc
--- a/src/mem/simple_dram.cc    Fri Nov 01 11:56:17 2013 -0400
+++ b/src/mem/simple_dram.cc    Fri Nov 01 11:56:18 2013 -0400
@@ -957,13 +957,19 @@
             // but do care about bank being free for access
             rowHitFlag = true;
 
-            if (bank.freeAt < inTime) {
+            // When a series of requests arrive to the same row,
+            // DDR systems are capable of streaming data continuously
+            // at maximum bandwidth (subject to tCCD). Here, we approximate
+            // this condition, and assume that if whenever a bank is already
+            // busy and a new request comes in, it can be completed with no
+            // penalty beyond waiting for the existing read to complete.
+            if (bank.freeAt > inTime) {
+                accLat += bank.freeAt - inTime;
+                bankLat += tBURST;
+            } else {
                // CAS latency only
                accLat += tCL;
                bankLat += tCL;
-            } else {
-                accLat += 0;
-                bankLat += 0;
             }
 
         } else {
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to