Looking at the code, it looks like the CPU controller simply clears it's own pending entries for that request (i.e., so that when it comes back from the cache, it will see that it is no longer pending and will simply be tossed). In other words, I don't think it searches through the cache hierarchy to try to stop a request in progress.
When you say that CacheController::annul_request is never called, are you sure you're looking at the right file? IIRC, there are a few CacheController objects in different namespaces (Memory::CoherentCache in coherentCache.cpp and plain Memory:: in cacheController.cpp). It's been a while since I've rummaged through the code so hopefully I'm not telling you the wrong thing. -Paul On Sat, Oct 20, 2012 at 10:37 PM, Vidyabhushan Mohan <[email protected]>wrote: > Hi, > I am trying to understand how memory requests are being annuled. The code > in MemoryHierarchy::annul_request is almost commented out except for > annuling request in the cpu controller. So, if there is a load/store that > needs to be annuled (the core issues a annul request) and if the request is > currently being serviced by the L3 cache (say), then how does it get > annuled? I see there is a CacheController::annul_request but it never gets > called. So, could someone share the thoughts on how such requests are > annuled? > > Thanks much, > - Bhushan > > > _______________________________________________ > http://www.marss86.org > Marss86-Devel mailing list > [email protected] > https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel > >
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
