summaryrefslogtreecommitdiff
path: root/src/mem/SConscript
diff options
context:
space:
mode:
authorStephan Diestelhorst <stephan.diestelhorst@arm.com>2014-09-20 17:18:26 -0400
committerStephan Diestelhorst <stephan.diestelhorst@arm.com>2014-09-20 17:18:26 -0400
commitba98d598aef0e3823d2ded7084b1a2829ade5b73 (patch)
tree34293799e079272c60320087b507e7d6e8fda26e /src/mem/SConscript
parent16351ba8d6b98e4dc0012cfc4083fe93ec6d76ce (diff)
downloadgem5-ba98d598aef0e3823d2ded7084b1a2829ade5b73.tar.xz
mem: Simple Snoop Filter
This is a first cut at a simple snoop filter that tracks presence of lines in the caches "above" it. The snoop filter can be applied at any given cache hierarchy and will then handle the caches above it appropriately; there is no need to use this only in the last-level bus. This design currently has some limitations: missing stats, no notion of clean evictions (these will not update the underlying snoop filter, because they are not sent from the evicting cache down), no notion of capacity for the snoop filter and thus no need for invalidations caused by capacity pressure in the snoop filter. These are planned to be added on top with future change sets.
Diffstat (limited to 'src/mem/SConscript')
-rw-r--r--src/mem/SConscript4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mem/SConscript b/src/mem/SConscript
index dd96879e6..c351661b8 100644
--- a/src/mem/SConscript
+++ b/src/mem/SConscript
@@ -60,6 +60,7 @@ Source('tport.cc')
Source('port_proxy.cc')
Source('simple_mem.cc')
Source('physical.cc')
+Source('snoop_filter.cc')
if env['TARGET_ISA'] != 'null':
Source('fs_translating_port_proxy.cc')
@@ -77,8 +78,9 @@ DebugFlag('BaseBus')
DebugFlag('BusAddrRanges')
DebugFlag('CoherentBus')
DebugFlag('NoncoherentBus')
+DebugFlag('SnoopFilter')
CompoundFlag('Bus', ['BaseBus', 'BusAddrRanges', 'CoherentBus',
- 'NoncoherentBus'])
+ 'NoncoherentBus', 'SnoopFilter'])
DebugFlag('Bridge')
DebugFlag('CommMonitor')