diff options
author | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2018-05-01 14:26:14 +0100 |
---|---|---|
committer | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2018-05-31 13:39:27 +0000 |
commit | 8ba77ae8fc98a355082da2bd9fdc6ecf4928f725 (patch) | |
tree | 8bc531e77c478244f69ae53265efbc6c2a866d6e /src/mem/cache/cache.hh | |
parent | 07820f323704cf943ff2fae14ba5b7ac04e607b3 (diff) | |
download | gem5-8ba77ae8fc98a355082da2bd9fdc6ecf4928f725.tar.xz |
mem-cache: Refactor the cache recvTimingResp function
The recvTimingResp function in the cache handles timing
responses. Over time, recvTimingResp has grown in complexity and code
size. This change factors out some of its functionality to a separate
function. The new function iterates through the in-service targets and
handles them accordingly.
Change-Id: I0ef28288640f6be1b30452b0664d32432e692ea6
Reviewed-on: https://gem5-review.googlesource.com/10423
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Diffstat (limited to 'src/mem/cache/cache.hh')
-rw-r--r-- | src/mem/cache/cache.hh | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh index 7d282790f..3076a56cf 100644 --- a/src/mem/cache/cache.hh +++ b/src/mem/cache/cache.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2017 ARM Limited + * Copyright (c) 2012-2018 ARM Limited * All rights reserved. * * The license below extends only to copyright in the software and shall @@ -370,6 +370,21 @@ class Cache : public BaseCache void handleUncacheableWriteResp(PacketPtr pkt); /** + * Service non-deferred MSHR targets using the received response + * + * Iterates through the list of targets that can be serviced with + * the current response. Any writebacks that need to performed + * must be appended to the writebacks parameter. + * + * @param mshr The MSHR that corresponds to the reponse + * @param pkt The response packet + * @param blk The reference block + * @param writebacks List of writebacks that need to be performed + */ + void serviceMSHRTargets(MSHR *mshr, const PacketPtr pkt, CacheBlk *blk, + PacketList& writebacks); + + /** * Handles a response (cache line fill/write ack) from the bus. * @param pkt The response packet */ |