summaryrefslogtreecommitdiff
path: root/src/mem/cache/cache.hh
diff options
context:
space:
mode:
authorNikos Nikoleris <nikos.nikoleris@arm.com>2018-05-04 15:57:44 +0100
committerNikos Nikoleris <nikos.nikoleris@arm.com>2018-05-31 15:10:42 +0000
commit4976ff51d711ac999afffafe0fd701a2d8997999 (patch)
treefa028e699a451a7023e47e3505c062a591836d11 /src/mem/cache/cache.hh
parent18312bc263d7b3568044d0b361ce376077f432c9 (diff)
downloadgem5-4976ff51d711ac999afffafe0fd701a2d8997999.tar.xz
mem-cache: Refactor the recvAtomic function
The recvAtomic function in the cache handles atomic requests. Over time, recvAtomic has grown in complexity and code size. This change factors out some of its functionality in a separate functiona. The new functions handles atomic requests that miss. Change-Id: If77d2de1e3e802e1da37f889f68910e700c59209 Reviewed-on: https://gem5-review.googlesource.com/10425 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> 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.hh16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mem/cache/cache.hh b/src/mem/cache/cache.hh
index 0b04aadea..4a56f14f1 100644
--- a/src/mem/cache/cache.hh
+++ b/src/mem/cache/cache.hh
@@ -422,6 +422,22 @@ class Cache : public BaseCache
*/
void recvTimingSnoopResp(PacketPtr pkt);
+
+ /**
+ * Handle a request in atomic mode that missed in this cache
+ *
+ * Creates a downstream request, sends it to the memory below and
+ * handles the response. As we are in atomic mode all operations
+ * are performed immediately.
+ *
+ * @param pkt The packet with the requests
+ * @param blk The referenced block
+ * @parma writebacks A list with packets for any performed writebacks
+ * @return Cycles for handling the request
+ */
+ Cycles handleAtomicReqMiss(PacketPtr pkt, CacheBlk *blk,
+ PacketList &writebacks);
+
/**
* Performs the access specified by the request.
* @param pkt The request to perform.