gem5/src/mem/cache
Mitch Hayenga 4920f0d7e5 mem: Fix cache latency bug
Fixes a latency calculation bug for accesses during a cache line fill.

Under a cache miss, before the line is filled, accesses to the cache are
associated with a MSHR and marked as targets.  Once the line fill completes,
MSHR target packets pay an additional latency of
"responseLatency + busSerializationLatency".  However, the "whenReady"
field of the cache line is only set to an additional delay of
"busSerializationLatency".  This lacks the responseLatency component of
the fill.  It is possible for accesses that occur on the cycle of
(or briefly after) the line fill to respond without properly paying the
responseLatency.  This also creates the situation where two accesses to the
same address may be serviced in an order opposite of how they were received
by the cache.  For stores to the same address, this means that although the
cache performs the stores in the order they were received, acknowledgements
may be sent in a different order.

Adding the responseLatency component to the whenReady field preserves the
penalty that should be paid and prevents these ordering issues.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>
2013-03-27 18:36:09 -05:00
..
prefetch mem: Add deferred packet class to prefetcher 2013-02-19 05:56:06 -05:00
tags scons: Fix up numerous warnings about name shadowing 2013-02-19 05:56:06 -05:00
base.cc mem: Cancel cache retry event when blocking port 2013-03-26 14:46:51 -04:00
base.hh mem: Tighten up cache constness and scoping 2013-02-15 17:40:10 -05:00
BaseCache.py mem: Remove the IIC replacement policy 2013-01-07 13:05:39 -05:00
blk.cc Fix #include lines for renamed cache files. 2008-02-10 14:45:25 -08:00
blk.hh mem: Make LL/SC locks fine grained 2013-01-08 08:54:07 -05:00
builder.cc mem: Remove the IIC replacement policy 2013-01-07 13:05:39 -05:00
cache.cc mem: Remove the IIC replacement policy 2013-01-07 13:05:39 -05:00
cache.hh mem: Change accessor function names to match the port interface 2013-02-19 05:56:06 -05:00
cache_impl.hh mem: Fix cache latency bug 2013-03-27 18:36:09 -05:00
mshr.cc mem: Fix SenderState related cache deadlock 2013-02-19 05:56:06 -05:00
mshr.hh MEM: Put memory system document into doxygen 2012-09-25 11:49:41 -05:00
mshr_queue.cc mem: Add support for writing back and flushing caches 2012-11-02 11:32:02 -05:00
mshr_queue.hh mem: Add support for writing back and flushing caches 2012-11-02 11:32:02 -05:00
SConscript scons: rename TraceFlags to DebugFlags 2011-06-02 17:36:21 -07:00