diff options
| author | aamir <[email protected]> | 2018-11-03 17:03:58 -0700 |
|---|---|---|
| committer | aamir <[email protected]> | 2018-11-03 17:03:58 -0700 |
| commit | eae030c9d1d607d1c14e4ade99cb5caea6403efd (patch) | |
| tree | cae49cbe338f9aa84c0badb6f543154b29e6f8b0 /src/gpgpu-sim/dram_sched.h | |
| parent | a77c16f1ef6efc0b58eb14273aa52663eb7845b3 (diff) | |
merged with memory subsytem. Regression is passing but tensorcore kernel is stuck in deadlock
Diffstat (limited to 'src/gpgpu-sim/dram_sched.h')
| -rw-r--r-- | src/gpgpu-sim/dram_sched.h | 12 |
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; }; |
