From 9494e7d16a18802b756fdc0e814837d5c98bbd86 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 18 Oct 2017 20:50:57 -0700 Subject: mem: Use the caching built into AddrRangeMap in the xbar Use that instead of caching built into the crossbar. Change-Id: If5a5355a0a1a6e532b14efc88a319de4c023f8c1 Reviewed-on: https://gem5-review.googlesource.com/5243 Reviewed-by: Daniel Carvalho Reviewed-by: Jason Lowe-Power Maintainer: Nikos Nikoleris --- src/mem/xbar.hh | 49 +------------------------------------------------ 1 file changed, 1 insertion(+), 48 deletions(-) (limited to 'src/mem/xbar.hh') diff --git a/src/mem/xbar.hh b/src/mem/xbar.hh index f826e142a..2b7e7ed48 100644 --- a/src/mem/xbar.hh +++ b/src/mem/xbar.hh @@ -319,7 +319,7 @@ class BaseXBar : public MemObject /** the width of the xbar in bytes */ const uint32_t width; - AddrRangeMap portMap; + AddrRangeMap portMap; /** * Remember where request packets came from so that we can route @@ -350,53 +350,6 @@ class BaseXBar : public MemObject */ PortID findPort(Addr addr); - // Cache for the findPort function storing recently used ports from portMap - struct PortCache { - bool valid; - PortID id; - AddrRange range; - }; - - PortCache portCache[3]; - - // Checks the cache and returns the id of the port that has the requested - // address within its range - inline PortID checkPortCache(Addr addr) const { - if (portCache[0].valid && portCache[0].range.contains(addr)) { - return portCache[0].id; - } - if (portCache[1].valid && portCache[1].range.contains(addr)) { - return portCache[1].id; - } - if (portCache[2].valid && portCache[2].range.contains(addr)) { - return portCache[2].id; - } - - return InvalidPortID; - } - - // Clears the earliest entry of the cache and inserts a new port entry - inline void updatePortCache(short id, const AddrRange& range) { - portCache[2].valid = portCache[1].valid; - portCache[2].id = portCache[1].id; - portCache[2].range = portCache[1].range; - - portCache[1].valid = portCache[0].valid; - portCache[1].id = portCache[0].id; - portCache[1].range = portCache[0].range; - - portCache[0].valid = true; - portCache[0].id = id; - portCache[0].range = range; - } - - // Clears the cache. Needs to be called in constructor. - inline void clearPortCache() { - portCache[2].valid = false; - portCache[1].valid = false; - portCache[0].valid = false; - } - /** * Return the address ranges the crossbar is responsible for. * -- cgit v1.2.3