Cache.py revision 1366
19793Sakash.bagdia@arm.comfrom BaseMem import BaseMem 28706Sandreas.hansson@arm.com 38706Sandreas.hansson@arm.comsimobj BaseCache(BaseMem): 48706Sandreas.hansson@arm.com type = 'BaseCache' 58706Sandreas.hansson@arm.com adaptive_compression = Param.Bool(false, 68706Sandreas.hansson@arm.com "Use an adaptive compression scheme") 78706Sandreas.hansson@arm.com assoc = Param.Int("associativity") 88706Sandreas.hansson@arm.com block_size = Param.Int("block size in bytes") 98706Sandreas.hansson@arm.com compressed_bus = Param.Bool(false, 108706Sandreas.hansson@arm.com "This cache connects to a compressed memory") 118706Sandreas.hansson@arm.com compression_latency = Param.Int(0, 128706Sandreas.hansson@arm.com "Latency in cycles of compression algorithm") 135369Ssaidi@eecs.umich.edu do_copy = Param.Bool(false, "perform fast copies in the cache") 143005Sstever@eecs.umich.edu hash_delay = Param.Int(1, "time in cycles of hash access") 153005Sstever@eecs.umich.edu in_bus = Param.Bus(NULL, "incoming bus object") 163005Sstever@eecs.umich.edu lifo = Param.Bool(false, 173005Sstever@eecs.umich.edu "whether this NIC partition should use LIFO repl. policy") 183005Sstever@eecs.umich.edu max_miss_count = Param.Counter(0, 193005Sstever@eecs.umich.edu "number of misses to handle before calling exit") 203005Sstever@eecs.umich.edu mshrs = Param.Int("number of MSHRs (max outstanding requests)") 213005Sstever@eecs.umich.edu out_bus = Param.Bus("outgoing bus object") 223005Sstever@eecs.umich.edu prioritizeRequests = Param.Bool(false, 233005Sstever@eecs.umich.edu "always service demand misses first") 243005Sstever@eecs.umich.edu protocol = Param.CoherenceProtocol(NULL, "coherence protocol to use") 253005Sstever@eecs.umich.edu repl = Param.Repl(NULL, "replacement policy") 263005Sstever@eecs.umich.edu size = Param.Int("capacity in bytes") 273005Sstever@eecs.umich.edu split = Param.Bool(false, "whether or not this cache is split") 283005Sstever@eecs.umich.edu split_size = Param.Int(0, 293005Sstever@eecs.umich.edu "How many ways of the cache belong to CPU/LRU partition") 303005Sstever@eecs.umich.edu store_compressed = Param.Bool(false, 313005Sstever@eecs.umich.edu "Store compressed data in the cache") 323005Sstever@eecs.umich.edu subblock_size = Param.Int(0, 333005Sstever@eecs.umich.edu "Size of subblock in IIC used for compression") 343005Sstever@eecs.umich.edu tgts_per_mshr = Param.Int("max number of accesses per MSHR") 353005Sstever@eecs.umich.edu trace_addr = Param.Addr(0, "address to trace") 363005Sstever@eecs.umich.edu two_queue = Param.Bool(false, 373005Sstever@eecs.umich.edu "whether the lifo should have two queue replacement") 383005Sstever@eecs.umich.edu write_buffers = Param.Int(8, "number of write buffers") 393005Sstever@eecs.umich.edu