diff options
author | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2018-05-04 15:57:44 +0100 |
---|---|---|
committer | Nikos Nikoleris <nikos.nikoleris@arm.com> | 2018-05-31 15:10:42 +0000 |
commit | 4976ff51d711ac999afffafe0fd701a2d8997999 (patch) | |
tree | fa028e699a451a7023e47e3505c062a591836d11 /src/mem/cache/cache.hh | |
parent | 18312bc263d7b3568044d0b361ce376077f432c9 (diff) | |
download | gem5-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.hh | 16 |
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. |