From 0d68d36b9d12c36e6201fa8bc4bec34258c04eab Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Thu, 27 Jun 2013 05:49:50 -0400 Subject: [PATCH] mem: Remove the cache builder This patch removes the redundant cache builder class. --- src/mem/cache/SConscript | 1 - src/mem/cache/base.cc | 17 +++++++ src/mem/cache/builder.cc | 98 ---------------------------------------- src/mem/cache/cache.cc | 16 +------ src/mem/config/cache.hh | 39 ---------------- 5 files changed, 18 insertions(+), 153 deletions(-) delete mode 100644 src/mem/cache/builder.cc delete mode 100644 src/mem/config/cache.hh diff --git a/src/mem/cache/SConscript b/src/mem/cache/SConscript index e7b0dca0c..8323602d2 100644 --- a/src/mem/cache/SConscript +++ b/src/mem/cache/SConscript @@ -38,7 +38,6 @@ SimObject('BaseCache.py') Source('base.cc') Source('cache.cc') Source('blk.cc') -Source('builder.cc') Source('mshr.cc') Source('mshr_queue.cc') diff --git a/src/mem/cache/base.cc b/src/mem/cache/base.cc index 85265b61e..ba981b606 100644 --- a/src/mem/cache/base.cc +++ b/src/mem/cache/base.cc @@ -49,7 +49,10 @@ #include "cpu/smt.hh" #include "debug/Cache.hh" #include "debug/Drain.hh" +#include "mem/cache/tags/fa_lru.hh" +#include "mem/cache/tags/lru.hh" #include "mem/cache/base.hh" +#include "mem/cache/cache.hh" #include "mem/cache/mshr.hh" #include "sim/full_system.hh" @@ -766,3 +769,17 @@ BaseCache::drain(DrainManager *dm) setDrainState(Drainable::Drained); return 0; } + +BaseCache * +BaseCacheParams::create() +{ + int numSets = size / (assoc * block_size); + + if (numSets == 1) { + FALRU *tags = new FALRU(block_size, size, hit_latency); + return new Cache(this, tags); + } else { + LRU *tags = new LRU(numSets, block_size, assoc, hit_latency); + return new Cache(this, tags); + } +} diff --git a/src/mem/cache/builder.cc b/src/mem/cache/builder.cc deleted file mode 100644 index 7de8fbf9d..000000000 --- a/src/mem/cache/builder.cc +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2003-2005 The Regents of The University of Michigan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Authors: Erik Hallnor - * Nathan Binkert - */ - -/** - * @file - * Simobject instatiation of caches. - */ -#include -#include - -#include "config/the_isa.hh" -#include "mem/cache/base.hh" -#include "mem/cache/cache.hh" -#include "mem/config/cache.hh" -#include "params/BaseCache.hh" - -// Tag Templates -#if defined(USE_CACHE_LRU) -#include "mem/cache/tags/lru.hh" -#endif - -#if defined(USE_CACHE_FALRU) -#include "mem/cache/tags/fa_lru.hh" -#endif - - -using namespace std; - -#define BUILD_CACHE(TAGS, tags) \ - do { \ - Cache *retval = \ - new Cache(this, tags); \ - return retval; \ - } while (0) - -#define BUILD_CACHE_PANIC(x) do { \ - panic("%s not compiled into M5", x); \ - } while (0) - -#if defined(USE_CACHE_FALRU) -#define BUILD_FALRU_CACHE do { \ - FALRU *tags = new FALRU(block_size, size, hit_latency); \ - BUILD_CACHE(FALRU, tags); \ - } while (0) -#else -#define BUILD_FALRU_CACHE BUILD_CACHE_PANIC("falru cache") -#endif - -#if defined(USE_CACHE_LRU) -#define BUILD_LRU_CACHE do { \ - LRU *tags = new LRU(numSets, block_size, assoc, hit_latency); \ - BUILD_CACHE(LRU, tags); \ - } while (0) -#else -#define BUILD_LRU_CACHE BUILD_CACHE_PANIC("lru cache") -#endif - -BaseCache * -BaseCacheParams::create() -{ - int numSets = size / (assoc * block_size); - - if (numSets == 1) { - BUILD_FALRU_CACHE; - } else { - BUILD_LRU_CACHE; - } - - return NULL; -} diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc index 6a0669e06..d59a0d44b 100644 --- a/src/mem/cache/cache.cc +++ b/src/mem/cache/cache.cc @@ -36,28 +36,14 @@ * Cache template instantiations. */ -#include "mem/config/cache.hh" - -#if defined(USE_CACHE_LRU) -#include "mem/cache/tags/lru.hh" -#endif - -#if defined(USE_CACHE_FALRU) #include "mem/cache/tags/fa_lru.hh" -#endif - +#include "mem/cache/tags/lru.hh" #include "mem/cache/cache_impl.hh" // Template Instantiations #ifndef DOXYGEN_SHOULD_SKIP_THIS - -#if defined(USE_CACHE_FALRU) template class Cache; -#endif - -#if defined(USE_CACHE_LRU) template class Cache; -#endif #endif //DOXYGEN_SHOULD_SKIP_THIS diff --git a/src/mem/config/cache.hh b/src/mem/config/cache.hh deleted file mode 100644 index 0b7839410..000000000 --- a/src/mem/config/cache.hh +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2004-2005 The Regents of The University of Michigan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Authors: Nathan Binkert - */ - -/** - * @file - * Central location to configure which cache types we want to build - * into the simulator. In the future, this should probably be - * autogenerated by some sort of configuration script. - */ -#define USE_CACHE_LRU 1 -#define USE_CACHE_FALRU 1 - -- 2.30.2