summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/gpu-cache.h
diff options
context:
space:
mode:
authorMahmoud <[email protected]>2018-03-12 16:52:26 -0400
committerMahmoud <[email protected]>2018-03-12 16:52:26 -0400
commitbaba81bd9bd5ec5fd07e70b307ccbfeac2d90e0e (patch)
tree6a2c3a56a652604daedaf402537e57fa0d4f63ef /src/gpgpu-sim/gpu-cache.h
parent6a2f9978b9325fb78e8af1be5d5aaf90814e08d7 (diff)
fixibg sectir l1 deadlock bug
Diffstat (limited to 'src/gpgpu-sim/gpu-cache.h')
-rw-r--r--src/gpgpu-sim/gpu-cache.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/gpgpu-sim/gpu-cache.h b/src/gpgpu-sim/gpu-cache.h
index 0d07878..76b07a2 100644
--- a/src/gpgpu-sim/gpu-cache.h
+++ b/src/gpgpu-sim/gpu-cache.h
@@ -39,7 +39,7 @@
#include <iostream>
enum cache_block_state {
- INVALID,
+ INVALID=0,
RESERVED,
VALID,
MODIFIED
@@ -125,6 +125,7 @@ struct cache_block_t {
virtual unsigned get_modified_size() = 0;
virtual void set_m_readable(bool readable, mem_access_sector_mask_t sector_mask)=0;
virtual bool is_readable(mem_access_sector_mask_t sector_mask)=0;
+ virtual void print_status()=0;
virtual ~cache_block_t() {}
@@ -144,7 +145,7 @@ struct line_cache_block: public cache_block_t {
m_set_modified_on_fill = false;
m_readable = true;
}
- void allocate( new_addr_type tag, new_addr_type block_addr, unsigned time, mem_access_sector_mask_t sector_mask )
+ void allocate( new_addr_type tag, new_addr_type block_addr, unsigned time, mem_access_sector_mask_t sector_mask)
{
m_tag=tag;
m_block_addr=block_addr;
@@ -220,6 +221,9 @@ struct line_cache_block: public cache_block_t {
virtual bool is_readable(mem_access_sector_mask_t sector_mask) {
return m_readable;
}
+ virtual void print_status() {
+ printf("m_block_addr is %u, status = %u\n", m_block_addr, m_status);
+ }
private:
@@ -401,6 +405,11 @@ struct sector_cache_block : public cache_block_t {
return modified * SECTOR_SIZE;
}
+ virtual void print_status() {
+ printf("m_block_addr is %u, status = %u %u %u %u\n", m_block_addr, m_status[0], m_status[1], m_status[2], m_status[3]);
+ }
+
+
private:
unsigned m_sector_alloc_time[SECTOR_CHUNCK_SIZE];
unsigned m_last_sector_access_time[SECTOR_CHUNCK_SIZE];
@@ -1030,7 +1039,7 @@ protected:
std::string m_name;
cache_config &m_config;
tag_array* m_tag_array;
- mshr_table m_mshrs;
+ mshr_table m_mshrs;
std::list<mem_fetch*> m_miss_queue;
enum mem_fetch_status m_miss_queue_status;
mem_fetch_interface *m_memport;