Review Board 2.0.15


mem: refactor LRU cache tags and add random replacment tags

Review Request #2167 - Created Feb. 21, 2014 and submitted - Latest diff uploaded

Information
Tony Gutierrez
gem5
default
Reviewers
Default
this patch implements a new tags class that uses a random replacement policy.
these tags prefer to evict invalid blocks first, if none are available a
replacement candidate is chosen at random.

this patch factors out the common code in the LRU class and creates a new
abstract class: the BaseSetAssoc class. any set associative tag class must
implement the functionality related to the actual replacement policy in the
following methods:

accessBlock()
findVictim()
insertBlock()
invalidate()
Regressions pass