From: Pouya Fotouhi Date: Thu, 8 Aug 2019 01:01:20 +0000 (-0500) Subject: mem-ruby: Use check_on_cache_probe on MOESI X-Git-Tag: v19.0.0.0~661 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4651f361935415c3785520ec213698483ab24975;p=gem5.git mem-ruby: Use check_on_cache_probe on MOESI This change uses check_on_cache_probe statement to check if the cacheline subject to eviction is locked in MOESI. Change-Id: Ie650ccdc15bb41b4088e534975b662408aaccf24 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19890 Tested-by: kokoro Reviewed-by: Anthony Gutierrez Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power --- diff --git a/src/mem/protocol/MOESI_AMD_Base-CorePair.sm b/src/mem/protocol/MOESI_AMD_Base-CorePair.sm index e1504dea8..140bbc400 100644 --- a/src/mem/protocol/MOESI_AMD_Base-CorePair.sm +++ b/src/mem/protocol/MOESI_AMD_Base-CorePair.sm @@ -543,7 +543,9 @@ machine(MachineType:CorePair, "CP-like Core Coherence") tbe); } } else { + // Check if the line we want to evict is not locked Addr victim := L1Icache.cacheProbe(in_msg.LineAddress); + check_on_cache_probe(mandatoryQueue_in, victim); trigger(Event:L1I_Repl, victim, getCacheEntry(victim), TBEs.lookup(victim)); } @@ -582,7 +584,9 @@ machine(MachineType:CorePair, "CP-like Core Coherence") cache_entry, tbe); } } else { + // Check if the line we want to evict is not locked Addr victim := L1D1cache.cacheProbe(in_msg.LineAddress); + check_on_cache_probe(mandatoryQueue_in, victim); trigger(Event:L1D1_Repl, victim, getCacheEntry(victim), TBEs.lookup(victim)); } @@ -618,7 +622,9 @@ machine(MachineType:CorePair, "CP-like Core Coherence") cache_entry, tbe); } } else { + // Check if the line we want to evict is not locked Addr victim := L1D0cache.cacheProbe(in_msg.LineAddress); + check_on_cache_probe(mandatoryQueue_in, victim); trigger(Event:L1D0_Repl, victim, getCacheEntry(victim), TBEs.lookup(victim)); }