29a30
> import math
45a47,52
> #
> # Probe filter is a cache, latency is not used
> #
> class ProbeFilter(RubyCache):
> latency = 1
>
49c56,58
<
---
> parser.add_option("--pf-on", action="store_true",
> help="Hammer: enable Probe Filter")
>
109a119,141
> #
> # determine size and index bits for probe filter
> # By default, the probe filter size is configured to be twice the
> # size of the L2 cache.
> #
> pf_size = MemorySize(options.l2_size)
> pf_size.value = pf_size.value * 2
> dir_bits = int(math.log(options.num_dirs, 2))
> pf_bits = int(math.log(pf_size.value, 2))
> if options.numa_high_bit:
> if options.numa_high_bit > 0:
> # if numa high bit explicitly set, make sure it does not overlap
> # with the probe filter index
> assert(options.numa_high_bit - dir_bits > pf_bits)
>
> # set the probe filter start bit to just above the block offset
> pf_start_bit = 6
> else:
> if dir_bits > 0:
> pf_start_bit = dir_bits + 5
> else:
> pf_start_bit = 6
>
119a152,153
> pf = ProbeFilter(size = pf_size, assoc = 4)
>
128c162,165
< memBuffer = mem_cntrl)
---
> probeFilter = pf,
> memBuffer = mem_cntrl,
> probe_filter_enabled = \
> options.pf_on)