mem: write streaming support via WriteInvalidate promotion
authorCurtis Dunham <Curtis.Dunham@arm.com>
Fri, 27 Jun 2014 17:29:00 +0000 (12:29 -0500)
committerCurtis Dunham <Curtis.Dunham@arm.com>
Fri, 27 Jun 2014 17:29:00 +0000 (12:29 -0500)
commitf6f63ec0aa68f631691d9eccc18739722a0a9f17
tree6d3cd4d0f43381980412ade2ed8266e3d3ba472d
parent3be4f4b846f991c98fe1909631996c5b58d52437
mem: write streaming support via WriteInvalidate promotion

Support full-block writes directly rather than requiring RMW:
 * a cache line is allocated in the cache upon receipt of a
   WriteInvalidateReq, not the WriteInvalidateResp.
 * only top-level caches allocate the line; the others just pass
   the request along and invalidate as necessary.
 * to close a timing window between the *Req and the *Resp, a new
   metadata bit tracks whether another cache has read a copy of
   the new line before the writeback to memory.
src/mem/cache/base.cc
src/mem/cache/base.hh
src/mem/cache/blk.hh
src/mem/cache/cache.hh
src/mem/cache/cache_impl.hh
src/mem/packet.cc
src/mem/packet.hh