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