From ba98d598aef0e3823d2ded7084b1a2829ade5b73 Mon Sep 17 00:00:00 2001 From: Stephan Diestelhorst Date: Sat, 20 Sep 2014 17:18:26 -0400 Subject: 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. --- src/mem/SConscript | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/mem/SConscript') 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') -- cgit v1.2.3