I want to make L2 cache as nonexclusive. Non exclusive cache is cache which does not fill on a miss from cache closer to CPU. Also, when some block is accessed from Non exclusive cache, it does not invalidate the block like exclusive cache.
To implement in 'gem5', i have declared L2 cache 'mostly exclusive'. I have also set "writeback_clean" parameter to true of L1 cache.
Now, i want that this 'mostly exclusive cache, should act as 'Non exclusive' cache.
I think in gem5, accessed block from 'mostly exclusive' cache is invalidated in 'maintainClusivity()' function.
I think that by removing the 'maintainClusivity()' function, i can make the 'mostly exclusive' cache as 'non exclusive' cache.
Is my thinking correct?
Also, maintainClusivity() function is used at two places in cache.cc file. In 'access()' function and 'recvTimingResp()' function.
Can anyone suggest, do i need to remove 'maintainClusivity()' function from both places or not?
I do not understand why maintainclusivity() function is used in 'recvTimingResp()' function of gem5? Because 'mostly exclusive' cache are not filled on a miss from cache closer to CPU. I think there is no need of maintainclusivity() function in 'recvTimingResp()' function