changeset 09ea1346e89e in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=09ea1346e89e
description:
ruby: moesi cmp directory: separate actions for external hits
This patch adds separate actions for requests that missed in the local
cache
and messages were sent out to get the requested line. These separate
actions
are required for differentiating between the hit and miss latencies in
the
statistics collected.
diffstat:
src/mem/protocol/MOESI_CMP_directory-L1cache.sm | 19 ++++++++++++++++---
1 files changed, 16 insertions(+), 3 deletions(-)
diffs (57 lines):
diff -r f9bf34ba4172 -r 09ea1346e89e
src/mem/protocol/MOESI_CMP_directory-L1cache.sm
--- a/src/mem/protocol/MOESI_CMP_directory-L1cache.sm Tue Jun 25 00:32:03
2013 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-L1cache.sm Tue Jun 25 00:32:04
2013 -0500
@@ -629,6 +629,12 @@
sequencer.readCallback(address, cache_entry.DataBlk);
}
+ action(hx_load_hit, "hx", desc="Notify sequencer the load completed.") {
+ assert(is_valid(cache_entry));
+ DPRINTF(RubySlicc, "%s\n", cache_entry.DataBlk);
+ sequencer.readCallback(address, cache_entry.DataBlk, true);
+ }
+
action(hh_store_hit, "\h", desc="Notify sequencer that store completed.") {
assert(is_valid(cache_entry));
DPRINTF(RubySlicc, "%s\n", cache_entry.DataBlk);
@@ -636,6 +642,13 @@
cache_entry.Dirty := true;
}
+ action(xx_store_hit, "\xx", desc="Notify sequencer that store completed.") {
+ assert(is_valid(cache_entry));
+ DPRINTF(RubySlicc, "%s\n", cache_entry.DataBlk);
+ sequencer.writeCallback(address, cache_entry.DataBlk, true);
+ cache_entry.Dirty := true;
+ }
+
action(i_allocateTBE, "i", desc="Allocate TBE") {
check_allocate(TBEs);
TBEs.allocate(address);
@@ -1162,7 +1175,7 @@
}
transition(OM, All_acks, MM_W) {
- hh_store_hit;
+ xx_store_hit;
gg_sendUnblockExclusive;
s_deallocateTBE;
o_scheduleUseTimeout;
@@ -1183,7 +1196,7 @@
transition(IS, Data, S) {
u_writeDataToCache;
m_decrementNumberOfMessages;
- h_load_hit;
+ hx_load_hit;
g_sendUnblock;
s_deallocateTBE;
n_popResponseQueue;
@@ -1192,7 +1205,7 @@
transition(IS, Exclusive_Data, M_W) {
u_writeDataToCache;
m_decrementNumberOfMessages;
- h_load_hit;
+ hx_load_hit;
gg_sendUnblockExclusive;
o_scheduleUseTimeout;
s_deallocateTBE;
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev