mem: Add support for writing back and flushing caches
authorAndreas Sandberg <Andreas.Sandberg@arm.com>
Fri, 2 Nov 2012 16:32:02 +0000 (11:32 -0500)
committerAndreas Sandberg <Andreas.Sandberg@arm.com>
Fri, 2 Nov 2012 16:32:02 +0000 (11:32 -0500)
commitddd6af414cdd4939f4ff382f0e83e7dfa695781d
tree5149831ec4714dea40a550665ba87e1299d4485a
parent050f24c7964cbe65633261e431e1105d1d5e8070
mem: Add support for writing back and flushing caches

This patch adds support for the following optional drain methods in
the classical memory system's cache model:

memWriteback() - Write back all dirty cache lines to memory using
functional accesses.

memInvalidate() - Invalidate all cache lines. Dirty cache lines
are lost unless a writeback is requested.

Since memWriteback() is called when checkpointing systems, this patch
adds support for checkpointing systems with caches. The serialization
code now checks whether there are any dirty lines in the cache. If
there are dirty lines in the cache, the checkpoint is flagged as bad
and a warning is printed.
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/cache/mshr_queue.cc
src/mem/cache/mshr_queue.hh
src/mem/cache/tags/base.hh
src/mem/cache/tags/fa_lru.hh
src/mem/cache/tags/iic.hh
src/mem/cache/tags/lru.hh