summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/mem_fetch.h
diff options
context:
space:
mode:
authorgpgpu-sim <[email protected]>2018-10-29 13:55:31 -0700
committerGitHub <[email protected]>2018-10-29 13:55:31 -0700
commit42d8d8c9b5b0eb93ff228a877fd6a5bed5cf956d (patch)
tree7bc8917d1f685487d775975596f9b22a063e4aef /src/gpgpu-sim/mem_fetch.h
parent68134d5eb326552fc1ef4b02b2eb21103266283b (diff)
parentea226a289bcdf94811712a4563ae3eb334ee3a7b (diff)
Merge pull request #79 from purdue-aalp/dev
Merging dev-purdue to public-dev-gpgpu-sim-repo
Diffstat (limited to 'src/gpgpu-sim/mem_fetch.h')
-rw-r--r--src/gpgpu-sim/mem_fetch.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/gpgpu-sim/mem_fetch.h b/src/gpgpu-sim/mem_fetch.h
index de98748..e5efffd 100644
--- a/src/gpgpu-sim/mem_fetch.h
+++ b/src/gpgpu-sim/mem_fetch.h
@@ -55,7 +55,9 @@ public:
unsigned wid,
unsigned sid,
unsigned tpc,
- const struct memory_config *config );
+ const struct memory_config *config,
+ mem_fetch *original_mf = NULL,
+ mem_fetch *original_wr_mf = NULL);
~mem_fetch();
void set_status( enum mem_fetch_status status, unsigned long long cycle );
@@ -104,6 +106,7 @@ public:
enum mem_access_type get_access_type() const { return m_access.get_type(); }
const active_mask_t& get_access_warp_mask() const { return m_access.get_warp_mask(); }
mem_access_byte_mask_t get_access_byte_mask() const { return m_access.get_byte_mask(); }
+ mem_access_sector_mask_t get_access_sector_mask() const { return m_access.get_sector_mask(); }
address_type get_pc() const { return m_inst.empty()?-1:m_inst.pc; }
const warp_inst_t &get_inst() { return m_inst; }
@@ -112,6 +115,10 @@ public:
const memory_config *get_mem_config(){return m_mem_config;}
unsigned get_num_flits(bool simt_to_mem);
+
+ mem_fetch* get_original_mf() { return original_mf; }
+ mem_fetch* get_original_wr_mf() { return original_wr_mf; }
+
private:
// request source information
unsigned m_request_uid;
@@ -143,6 +150,10 @@ private:
const struct memory_config *m_mem_config;
unsigned icnt_flit_size;
+
+ mem_fetch* original_mf; //this pointer is set up when a request is divided into sector requests at L2 cache (if the req size > L2 sector size), so the pointer refers to the original request
+ mem_fetch* original_wr_mf; //this pointer refers to the original write req, when fetch-on-write policy is used
+
};
#endif