summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/QuadroFX5800/gpgpusim.config2
-rw-r--r--src/gpgpu-sim/gpu-cache.h6
2 files changed, 7 insertions, 1 deletions
diff --git a/configs/QuadroFX5800/gpgpusim.config b/configs/QuadroFX5800/gpgpusim.config
index 2151183..b5e1f01 100644
--- a/configs/QuadroFX5800/gpgpusim.config
+++ b/configs/QuadroFX5800/gpgpusim.config
@@ -19,7 +19,7 @@
-gpgpu_cache:il1 4:256:4:L:R:f,A:2:32,4
-gpgpu_tex_cache:l1 8:128:5:L:R:m,F:128:4,128:2
-gpgpu_const_cache:l1 64:64:2:L:R:f,A:2:32,4
--gpgpu_cache:dl2 64:32:8:L:R:m,A:16:4,4
+-gpgpu_cache:dl2 16:256:8:L:R:m,A:16:4,4
-gpgpu_cache:dl2_texture_only 1
-gpgpu_shmem_warp_parts 2
diff --git a/src/gpgpu-sim/gpu-cache.h b/src/gpgpu-sim/gpu-cache.h
index 2e5466c..7e143f9 100644
--- a/src/gpgpu-sim/gpu-cache.h
+++ b/src/gpgpu-sim/gpu-cache.h
@@ -400,6 +400,8 @@ public:
// access cache: returns RESERVATION_FAIL if request could not be accepted (for any reason)
virtual enum cache_request_status access( new_addr_type addr, mem_fetch *mf, unsigned time, std::list<cache_event> &events )
{
+ assert( mf->get_data_size() <= m_config.get_line_sz());
+
assert(m_config.m_write_policy == READ_ONLY);
assert(!mf->get_is_write());
new_addr_type block_addr = m_config.block_addr(addr);
@@ -539,6 +541,8 @@ public:
}
virtual enum cache_request_status access( new_addr_type addr, mem_fetch *mf, unsigned time, std::list<cache_event> &events )
{
+ assert( mf->get_data_size() <= m_config.get_line_sz());
+
bool wr = mf->get_is_write();
enum mem_access_type type = mf->get_access_type();
bool evict = (type == GLOBAL_ACC_W); // evict a line that hits on global memory write
@@ -657,6 +661,8 @@ public:
if ( m_fragment_fifo.full() || m_request_fifo.full() || m_rob.full() )
return RESERVATION_FAIL;
+ assert( mf->get_data_size() <= m_config.get_line_sz());
+
// at this point, we will accept the request : access tags and immediately allocate line
new_addr_type block_addr = m_config.block_addr(addr);
unsigned cache_index = (unsigned)-1;