gem5-dev@gem5.org

The gem5 Developer List

View all threads

[S] Change in gem5/gem5[develop]: mem-ruby: Switch to dequeueMemRspQueue() in all Ruby protocols

GB
Gabriel B. (Gerrit)
Fri, Jul 7, 2023 10:17 AM

Gabriel B. has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/67659?usp=email )

Change subject: mem-ruby: Switch to dequeueMemRspQueue() in all Ruby
protocols
......................................................................

mem-ruby: Switch to dequeueMemRspQueue() in all Ruby protocols

Change-Id: I33bca345d985618e3fca62e9ddd5bcc3ad8226a3
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67659
Tested-by: kokoro noreply+kokoro@google.com
Maintainer: Bobby Bruce bbruce@ucdavis.edu
Reviewed-by: Bobby Bruce bbruce@ucdavis.edu

M src/learning_gem5/part3/MSI-dir.sm
M src/mem/ruby/protocol/MESI_Two_Level-dir.sm
M src/mem/ruby/protocol/MI_example-dir.sm
M src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm
M src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm
M src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm
M src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm
M src/mem/ruby/protocol/MOESI_CMP_token-dir.sm
M src/mem/ruby/protocol/MOESI_hammer-dir.sm
M src/mem/ruby/protocol/RubySlicc_Defines.sm
M src/mem/ruby/protocol/chi/CHI-mem.sm
11 files changed, 12 insertions(+), 10 deletions(-)

Approvals:
Bobby Bruce: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass

diff --git a/src/learning_gem5/part3/MSI-dir.sm
b/src/learning_gem5/part3/MSI-dir.sm
index ca5ea3e..70d9601 100644
--- a/src/learning_gem5/part3/MSI-dir.sm
+++ b/src/learning_gem5/part3/MSI-dir.sm
@@ -448,7 +448,7 @@
}

  action(popMemQueue, "pM", desc="Pop the memory queue") {
  •    memQueue_in.dequeue(clockEdge());
    
  •    dequeueMemRespQueue();
    }
    
    // Stalling actions
    

diff --git a/src/mem/ruby/protocol/MESI_Two_Level-dir.sm
b/src/mem/ruby/protocol/MESI_Two_Level-dir.sm
index 9d69755..aa61424 100644
--- a/src/mem/ruby/protocol/MESI_Two_Level-dir.sm
+++ b/src/mem/ruby/protocol/MESI_Two_Level-dir.sm
@@ -299,7 +299,7 @@
}

action(l_popMemQueue, "q", desc="Pop off-chip request queue") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
action(kd_wakeUpDependents, "kd", desc="wake-up dependents") {

diff --git a/src/mem/ruby/protocol/MI_example-dir.sm
b/src/mem/ruby/protocol/MI_example-dir.sm
index 11d2862..bbaa7d0 100644
--- a/src/mem/ruby/protocol/MI_example-dir.sm
+++ b/src/mem/ruby/protocol/MI_example-dir.sm
@@ -523,7 +523,7 @@
}

action(l_popMemQueue, "q", desc="Pop off-chip request queue") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
// TRANSITIONS

diff --git a/src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm
b/src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm
index f16c257..ec8ffe6 100644
--- a/src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm
+++ b/src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm
@@ -1397,7 +1397,7 @@
}

action(pm_popMemQueue, "pm", desc="pop mem queue") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
action(pt_popTriggerQueue, "pt", desc="pop trigger queue") {

diff --git a/src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm
b/src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm
index 3b38e3b..4dd03a1 100644
--- a/src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm
+++ b/src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm
@@ -1169,7 +1169,7 @@
}

action(pm_popMemQueue, "pm", desc="pop mem queue") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
action(pt_popTriggerQueue, "pt", desc="pop trigger queue") {

diff --git a/src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm
b/src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm
index 8608608..5e815a7 100644
--- a/src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm
+++ b/src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm
@@ -1103,7 +1103,7 @@
}

action(pm_popMemQueue, "pm", desc="pop mem queue") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
action(pt_popTriggerQueue, "pt", desc="pop trigger queue") {

diff --git a/src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm
b/src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm
index 3b4a801..f21400c 100644
--- a/src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm
+++ b/src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm
@@ -598,7 +598,7 @@
}

action(q_popMemQueue, "q", desc="Pop off-chip request queue") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
action(qf_queueMemoryFetchRequest, "qf", desc="Queue off-chip fetch  

request") {
diff --git a/src/mem/ruby/protocol/MOESI_CMP_token-dir.sm
b/src/mem/ruby/protocol/MOESI_CMP_token-dir.sm
index 97ea292..7f2bdf9 100644
--- a/src/mem/ruby/protocol/MOESI_CMP_token-dir.sm
+++ b/src/mem/ruby/protocol/MOESI_CMP_token-dir.sm
@@ -821,7 +821,7 @@
}

action(l_popMemQueue, "q", desc="Pop off-chip request queue") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
action(r_bounceResponse, "r", desc="Bounce response to starving  

processor") {
diff --git a/src/mem/ruby/protocol/MOESI_hammer-dir.sm
b/src/mem/ruby/protocol/MOESI_hammer-dir.sm
index 8fd447f..833ccd3 100644
--- a/src/mem/ruby/protocol/MOESI_hammer-dir.sm
+++ b/src/mem/ruby/protocol/MOESI_hammer-dir.sm
@@ -1141,7 +1141,7 @@
}

action(l_popMemQueue, "q", desc="Pop off-chip request queue") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
action(g_popTriggerQueue, "g", desc="Pop trigger queue") {

diff --git a/src/mem/ruby/protocol/RubySlicc_Defines.sm
b/src/mem/ruby/protocol/RubySlicc_Defines.sm
index 6ae3a6c..590a134 100644
--- a/src/mem/ruby/protocol/RubySlicc_Defines.sm
+++ b/src/mem/ruby/protocol/RubySlicc_Defines.sm
@@ -37,3 +37,5 @@
// memory controllers.
void functionalMemoryRead(Packet *pkt);
bool functionalMemoryWrite(Packet *pkt);
+
+void dequeueMemRespQueue();
diff --git a/src/mem/ruby/protocol/chi/CHI-mem.sm
b/src/mem/ruby/protocol/chi/CHI-mem.sm
index 820f2df..1e34d23 100644
--- a/src/mem/ruby/protocol/chi/CHI-mem.sm
+++ b/src/mem/ruby/protocol/chi/CHI-mem.sm
@@ -663,7 +663,7 @@
}

action(popMemoryQueue, "pmem", desc="Pop memory queue.") {
  • memQueue_in.dequeue(clockEdge());
  • dequeueMemRespQueue();
    }
// Stall/wake-up only used for requests that arrive when we are on the

--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/67659?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I33bca345d985618e3fca62e9ddd5bcc3ad8226a3
Gerrit-Change-Number: 67659
Gerrit-PatchSet: 7
Gerrit-Owner: Gabriel B. gabriel.busnot@arteris.com
Gerrit-Reviewer: Bobby Bruce bbruce@ucdavis.edu
Gerrit-Reviewer: Gabriel B. gabriel.busnot@arteris.com
Gerrit-Reviewer: Jason Lowe-Power jason@lowepower.com
Gerrit-Reviewer: kokoro noreply+kokoro@google.com
Gerrit-CC: kokoro noreply+kokoro@google.com

Gabriel B. has submitted this change. ( https://gem5-review.googlesource.com/c/public/gem5/+/67659?usp=email ) Change subject: mem-ruby: Switch to dequeueMemRspQueue() in all Ruby protocols ...................................................................... mem-ruby: Switch to dequeueMemRspQueue() in all Ruby protocols Change-Id: I33bca345d985618e3fca62e9ddd5bcc3ad8226a3 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67659 Tested-by: kokoro <noreply+kokoro@google.com> Maintainer: Bobby Bruce <bbruce@ucdavis.edu> Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu> --- M src/learning_gem5/part3/MSI-dir.sm M src/mem/ruby/protocol/MESI_Two_Level-dir.sm M src/mem/ruby/protocol/MI_example-dir.sm M src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm M src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm M src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm M src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm M src/mem/ruby/protocol/MOESI_CMP_token-dir.sm M src/mem/ruby/protocol/MOESI_hammer-dir.sm M src/mem/ruby/protocol/RubySlicc_Defines.sm M src/mem/ruby/protocol/chi/CHI-mem.sm 11 files changed, 12 insertions(+), 10 deletions(-) Approvals: Bobby Bruce: Looks good to me, approved; Looks good to me, approved kokoro: Regressions pass diff --git a/src/learning_gem5/part3/MSI-dir.sm b/src/learning_gem5/part3/MSI-dir.sm index ca5ea3e..70d9601 100644 --- a/src/learning_gem5/part3/MSI-dir.sm +++ b/src/learning_gem5/part3/MSI-dir.sm @@ -448,7 +448,7 @@ } action(popMemQueue, "pM", desc="Pop the memory queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } // Stalling actions diff --git a/src/mem/ruby/protocol/MESI_Two_Level-dir.sm b/src/mem/ruby/protocol/MESI_Two_Level-dir.sm index 9d69755..aa61424 100644 --- a/src/mem/ruby/protocol/MESI_Two_Level-dir.sm +++ b/src/mem/ruby/protocol/MESI_Two_Level-dir.sm @@ -299,7 +299,7 @@ } action(l_popMemQueue, "q", desc="Pop off-chip request queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } action(kd_wakeUpDependents, "kd", desc="wake-up dependents") { diff --git a/src/mem/ruby/protocol/MI_example-dir.sm b/src/mem/ruby/protocol/MI_example-dir.sm index 11d2862..bbaa7d0 100644 --- a/src/mem/ruby/protocol/MI_example-dir.sm +++ b/src/mem/ruby/protocol/MI_example-dir.sm @@ -523,7 +523,7 @@ } action(l_popMemQueue, "q", desc="Pop off-chip request queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } // TRANSITIONS diff --git a/src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm b/src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm index f16c257..ec8ffe6 100644 --- a/src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm +++ b/src/mem/ruby/protocol/MOESI_AMD_Base-Region-dir.sm @@ -1397,7 +1397,7 @@ } action(pm_popMemQueue, "pm", desc="pop mem queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } action(pt_popTriggerQueue, "pt", desc="pop trigger queue") { diff --git a/src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm b/src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm index 3b38e3b..4dd03a1 100644 --- a/src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm +++ b/src/mem/ruby/protocol/MOESI_AMD_Base-dir.sm @@ -1169,7 +1169,7 @@ } action(pm_popMemQueue, "pm", desc="pop mem queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } action(pt_popTriggerQueue, "pt", desc="pop trigger queue") { diff --git a/src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm b/src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm index 8608608..5e815a7 100644 --- a/src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm +++ b/src/mem/ruby/protocol/MOESI_AMD_Base-probeFilter.sm @@ -1103,7 +1103,7 @@ } action(pm_popMemQueue, "pm", desc="pop mem queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } action(pt_popTriggerQueue, "pt", desc="pop trigger queue") { diff --git a/src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm b/src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm index 3b4a801..f21400c 100644 --- a/src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm +++ b/src/mem/ruby/protocol/MOESI_CMP_directory-dir.sm @@ -598,7 +598,7 @@ } action(q_popMemQueue, "q", desc="Pop off-chip request queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } action(qf_queueMemoryFetchRequest, "qf", desc="Queue off-chip fetch request") { diff --git a/src/mem/ruby/protocol/MOESI_CMP_token-dir.sm b/src/mem/ruby/protocol/MOESI_CMP_token-dir.sm index 97ea292..7f2bdf9 100644 --- a/src/mem/ruby/protocol/MOESI_CMP_token-dir.sm +++ b/src/mem/ruby/protocol/MOESI_CMP_token-dir.sm @@ -821,7 +821,7 @@ } action(l_popMemQueue, "q", desc="Pop off-chip request queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } action(r_bounceResponse, "r", desc="Bounce response to starving processor") { diff --git a/src/mem/ruby/protocol/MOESI_hammer-dir.sm b/src/mem/ruby/protocol/MOESI_hammer-dir.sm index 8fd447f..833ccd3 100644 --- a/src/mem/ruby/protocol/MOESI_hammer-dir.sm +++ b/src/mem/ruby/protocol/MOESI_hammer-dir.sm @@ -1141,7 +1141,7 @@ } action(l_popMemQueue, "q", desc="Pop off-chip request queue") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } action(g_popTriggerQueue, "g", desc="Pop trigger queue") { diff --git a/src/mem/ruby/protocol/RubySlicc_Defines.sm b/src/mem/ruby/protocol/RubySlicc_Defines.sm index 6ae3a6c..590a134 100644 --- a/src/mem/ruby/protocol/RubySlicc_Defines.sm +++ b/src/mem/ruby/protocol/RubySlicc_Defines.sm @@ -37,3 +37,5 @@ // memory controllers. void functionalMemoryRead(Packet *pkt); bool functionalMemoryWrite(Packet *pkt); + +void dequeueMemRespQueue(); diff --git a/src/mem/ruby/protocol/chi/CHI-mem.sm b/src/mem/ruby/protocol/chi/CHI-mem.sm index 820f2df..1e34d23 100644 --- a/src/mem/ruby/protocol/chi/CHI-mem.sm +++ b/src/mem/ruby/protocol/chi/CHI-mem.sm @@ -663,7 +663,7 @@ } action(popMemoryQueue, "pmem", desc="Pop memory queue.") { - memQueue_in.dequeue(clockEdge()); + dequeueMemRespQueue(); } // Stall/wake-up only used for requests that arrive when we are on the -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/67659?usp=email To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings?usp=email Gerrit-MessageType: merged Gerrit-Project: public/gem5 Gerrit-Branch: develop Gerrit-Change-Id: I33bca345d985618e3fca62e9ddd5bcc3ad8226a3 Gerrit-Change-Number: 67659 Gerrit-PatchSet: 7 Gerrit-Owner: Gabriel B. <gabriel.busnot@arteris.com> Gerrit-Reviewer: Bobby Bruce <bbruce@ucdavis.edu> Gerrit-Reviewer: Gabriel B. <gabriel.busnot@arteris.com> Gerrit-Reviewer: Jason Lowe-Power <jason@lowepower.com> Gerrit-Reviewer: kokoro <noreply+kokoro@google.com> Gerrit-CC: kokoro <noreply+kokoro@google.com>