summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPouya Fotouhi <Pouya.Fotouhi@amd.com>2019-08-07 20:01:20 -0500
committerPouya Fotouhi <pfotouhi@ucdavis.edu>2019-08-13 00:51:54 +0000
commit4651f361935415c3785520ec213698483ab24975 (patch)
tree0061d406bf1c133a0d1dc3861a0f7da6fd0288d2 /src
parent1942b21713e49975d67c0d4145e2b1020e2d15ba (diff)
downloadgem5-4651f361935415c3785520ec213698483ab24975.tar.xz
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 <noreply+kokoro@google.com> Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
Diffstat (limited to 'src')
-rw-r--r--src/mem/protocol/MOESI_AMD_Base-CorePair.sm6
1 files changed, 6 insertions, 0 deletions
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));
}