summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/dram.cc
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2020-07-13 20:57:59 -0700
committerGitHub <[email protected]>2020-07-13 20:57:59 -0700
commit707b2e1e86e71fa8b3eac18337f17062422bdd2b (patch)
tree6f2fcdc6f82f09b2469bd4e21a9c17504b5be01a /src/gpgpu-sim/dram.cc
parent78a52b027e7ca30860fdf8366c08c0590f857810 (diff)
parentce3f02dc00e13ccd0a3929282231c7e0116be4b5 (diff)
Merge pull request #190 from accel-sim/dev
Merging the final bits of the 4.0 release from the ISCA paper.
Diffstat (limited to 'src/gpgpu-sim/dram.cc')
-rw-r--r--src/gpgpu-sim/dram.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/gpgpu-sim/dram.cc b/src/gpgpu-sim/dram.cc
index 02356b2..ca47c46 100644
--- a/src/gpgpu-sim/dram.cc
+++ b/src/gpgpu-sim/dram.cc
@@ -31,6 +31,7 @@
#include "dram_sched.h"
#include "gpu-misc.h"
#include "gpu-sim.h"
+#include "hashing.h"
#include "l2cache.h"
#include "mem_fetch.h"
#include "mem_latency_stat.h"
@@ -207,8 +208,18 @@ dram_req_t::dram_req_t(class mem_fetch *mf, unsigned banks,
}
case BITWISE_XORING_BK_INDEX: {
// xoring bank bits with lower bits of the page
- int lbank = log2(banks);
- bk = tlx.bk ^ (tlx.row & ((1 << lbank) - 1));
+ bk = bitwise_hash_function(tlx.row, tlx.bk, banks);
+ assert(bk < banks);
+ break;
+ }
+ case IPOLY_BK_INDEX: {
+ /*IPOLY for bank indexing function from "Pseudo-randomly interleaved
+ * memory." Rau, B. R et al. ISCA 1991
+ * http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=348DEA37A3E440473B3C075EAABC63B6?doi=10.1.1.12.7149&rep=rep1&type=pdf
+ */
+ // xoring bank bits with lower bits of the page
+ bk = ipoly_hash_function(tlx.row, tlx.bk, banks);
+ assert(bk < banks);
break;
}
case CUSTOM_BK_INDEX: