aboutsummaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/dram_sched.h
diff options
context:
space:
mode:
authorTimothy G Rogers <[email protected]>2018-02-21 15:39:03 -0500
committerGitHub Enterprise <[email protected]>2018-02-21 15:39:03 -0500
commit4a94401a277342cfd0799863b1a07abc95f954c7 (patch)
tree189adf02f534869654c7ebe5f5dd4c4838def3a3 /src/gpgpu-sim/dram_sched.h
parent275e5813f4ef3ef92851d1a3752d1bffaabcdb50 (diff)
parent6a2f9978b9325fb78e8af1be5d5aaf90814e08d7 (diff)
Merge pull request #6 from abdallm/dev-purdue-integration
HBM model + all Mahmoud's changes to the sim
Diffstat (limited to 'src/gpgpu-sim/dram_sched.h')
-rw-r--r--src/gpgpu-sim/dram_sched.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gpgpu-sim/dram_sched.h b/src/gpgpu-sim/dram_sched.h
index 3860f5b..63f5831 100644
--- a/src/gpgpu-sim/dram_sched.h
+++ b/src/gpgpu-sim/dram_sched.h
@@ -35,6 +35,11 @@
#include <list>
#include <map>
+enum memory_mode {
+ READ_MODE = 0,
+ WRITE_MODE
+};
+
class frfcfs_scheduler {
public:
frfcfs_scheduler( const memory_config *config, dram_t *dm, memory_stats_t *stats );
@@ -43,17 +48,24 @@ public:
dram_req_t *schedule( unsigned bank, unsigned curr_row );
void print( FILE *fp );
unsigned num_pending() const { return m_num_pending;}
+ unsigned num_write_pending() const { return m_num_write_pending;}
private:
const memory_config *m_config;
dram_t *m_dram;
unsigned m_num_pending;
+ unsigned m_num_write_pending;
std::list<dram_req_t*> *m_queue;
std::map<unsigned,std::list<std::list<dram_req_t*>::iterator> > *m_bins;
std::list<std::list<dram_req_t*>::iterator> **m_last_row;
unsigned *curr_row_service_time; //one set of variables for each bank.
unsigned *row_service_timestamp; //tracks when scheduler began servicing current row
+ std::list<dram_req_t*> *m_write_queue;
+ std::map<unsigned,std::list<std::list<dram_req_t*>::iterator> > *m_write_bins;
+ std::list<std::list<dram_req_t*>::iterator> **m_last_write_row;
+
+ enum memory_mode m_mode;
memory_stats_t *m_stats;
};