summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/dram.cc
diff options
context:
space:
mode:
authorMahmoud <[email protected]>2018-08-29 19:10:47 -0400
committerMahmoud <[email protected]>2018-08-29 19:10:47 -0400
commitb013499f5f490086c7a7c5c28b04346e79ab2635 (patch)
treeecb5a32f22deb4933c6690286cc1c15743455070 /src/gpgpu-sim/dram.cc
parent944f6dbf23d792dde360d3a4f2334de3b541de52 (diff)
improving code quality 2
Diffstat (limited to 'src/gpgpu-sim/dram.cc')
-rw-r--r--src/gpgpu-sim/dram.cc35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/gpgpu-sim/dram.cc b/src/gpgpu-sim/dram.cc
index ac63327..6c11b43 100644
--- a/src/gpgpu-sim/dram.cc
+++ b/src/gpgpu-sim/dram.cc
@@ -199,15 +199,28 @@ dram_req_t::dram_req_t( class mem_fetch *mf, unsigned banks, unsigned dram_bnk_i
const addrdec_t &tlx = mf->get_tlx_addr();
- if(dram_bnk_indexing_policy == 0) {
- bk = tlx.bk;
- }
- else if(dram_bnk_indexing_policy == 1) {
- int lbank = log2(banks);
- bk = tlx.bk ^ (tlx.row & ((1<<lbank)-1));
- }
- else
- assert(1);
+ switch(dram_bnk_indexing_policy){
+ case LINEAR_BK_INDEX:
+ {
+ bk = tlx.bk;
+ break;
+ }
+ 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));
+ break;
+ }
+ case CUSTOM_BK_INDEX:
+ /* No custom set function implemented */
+ //Do you custom index here
+ break;
+ default:
+ assert("\nUndefined bank index function.\n" && 0);
+ break;
+ }
+
row = tlx.row;
col = tlx.col;
@@ -883,10 +896,10 @@ void dram_t::set_dram_power_stats( unsigned &cmd,
unsigned dram_t::get_bankgrp_number(unsigned i)
{
- if(m_config->dram_bnkgrp_indexing_policy == 0) { //higher bits
+ if(m_config->dram_bnkgrp_indexing_policy == HIGHER_BITS) { //higher bits
return i>>m_config->bk_tag_length;
}
- else if (m_config->dram_bnkgrp_indexing_policy == 1) { //lower bits
+ else if (m_config->dram_bnkgrp_indexing_policy == LOWER_BITS) { //lower bits
return i&((m_config->nbkgrp-1));
}
else {