mem: Add write coalescing and write-no-allocate to the caches
authorNikos Nikoleris <nikos.nikoleris@arm.com>
Mon, 10 Oct 2016 13:06:00 +0000 (14:06 +0100)
committerNikos Nikoleris <nikos.nikoleris@arm.com>
Thu, 18 Oct 2018 09:40:41 +0000 (09:40 +0000)
commit313c015bbc61da0b8acedc84e4d136835a9f9805
treee9043ea307e6c9027738e53377a23fbec3e906b8
parentbf305c14c47c4bd228c0910ea3bb30ab4bc935e1
mem: Add write coalescing and write-no-allocate to the caches

Enable the cache to detect contiguous writes and hold on to the MSHR
long enough to allow the entire line to be written. If the whole line
is written, the MSHR will be sent out as an invalidation requests, as
it is part of a whole-line write, i.e. no-fetch-on-write.

The cache is also able to switch to a write-no-allocate policy on the
actual completion of the writes, and instead use the tempBlock and
turn the write operation into a writeback.

These policies are all well-known, and described in works such as
Jouppi, Cache Write Policies and Performance, vol 21, no 2, ACM, 1993.

Change-Id: I19792f2970b3c6798c9b2b493acdd156897284ae
Reviewed-on: https://gem5-review.googlesource.com/c/12907
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
src/mem/cache/Cache.py
src/mem/cache/base.cc
src/mem/cache/base.hh
src/mem/cache/cache.cc