Re: [gem5-users] Creating Blocking caches (i.e., 1 target per MSHR)

2019-03-25 Thread Abhishek Singh
(There was a typo in previous mail) Hello Nikos and Everyone, In src/mem/cache/cache.cc for function handleTimingReqMiss(), we only check if there is an existing mshr entry corresponding to Miss Request. And then we call *BaseCache::handleTimingReqMiss(pkt, mshr, blk, forward_time,

Re: [gem5-users] Creating Blocking caches (i.e., 1 target per MSHR)

2019-03-25 Thread Abhishek Singh
Hello Nikos and Everyone, In src/mem/cache/cache.cc for function handleTimingReqMiss(), we only check if there is an existing mshr entry corresponding to Miss Request. And then we call *BaseCache::handleTimingReqMiss(pkt, mshr, blk, forward_time, request_time);* In

Re: [gem5-users] Creating Blocking caches (i.e., 1 target per MSHR)

2019-03-25 Thread Abhishek Singh
I want to have just 1 target per cache line in MHSR queue ie., one target per MSHR entry, but if I set parameter tgt_per_mshr to be 1, I get the number of blocked cycles to zero i.e, there is no blocking due to full targets. If we see the allocateMissBuffer calls code in base.cc and base.hh, the

Re: [gem5-users] Creating Blocking caches (i.e., 1 target per MSHR)

2019-03-25 Thread Nikos Nikoleris
Hi Abishek, A single MSHR can keep track of more than one requests for a given cache line. If you set tgts_per_mshr to 1, then the MSHR will only be able to keep track of a single request for any given cache line. But it can still service requests to other cache lines by allocating more MSHRs.

[gem5-users] Creating Blocking caches (i.e., 1 target per MSHR)

2019-03-25 Thread Abhishek Singh
Hello Everyone, I am trying to simulate D-cache with one target per mshr, I tried changing the parameter "tgts_per_mshr" defined in "configs/common/Caches.py" to 1, it does not work. This is because when we allocate target for existing MSHR, we always check the "tgts_per_mshr" parameter after