Anthony Gutierrez has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/19148 )
Change subject: mem-ruby, arch-hsail: Removed hit latency from
VIPERCoalescer
......................................................................
mem-ruby, arch-hsail: Removed hit latency from VIPERCoalescer
Removed the dcache hit latency from VIPERCoalescer so HSAIL_X86
compiles after commit 496d5ed3e1f7dad42b0c2ebe0050d84621be8f99
Change-Id: I050a58d90f0f6356824c3c3bcb3f0b3c76d145e0
Signed-off-by: Pablo Prieto <[email protected]>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19148
Reviewed-by: Jason Lowe-Power <[email protected]>
Reviewed-by: Anthony Gutierrez <[email protected]>
Maintainer: Anthony Gutierrez <[email protected]>
Tested-by: kokoro <[email protected]>
---
M src/mem/ruby/system/VIPERCoalescer.cc
1 file changed, 24 insertions(+), 8 deletions(-)
Approvals:
Jason Lowe-Power: Looks good to me, approved
Anthony Gutierrez: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/mem/ruby/system/VIPERCoalescer.cc
b/src/mem/ruby/system/VIPERCoalescer.cc
index c332a55..b7f2561 100644
--- a/src/mem/ruby/system/VIPERCoalescer.cc
+++ b/src/mem/ruby/system/VIPERCoalescer.cc
@@ -213,12 +213,16 @@
for (int i = 0; i < size; i++) {
Addr addr = m_dataCache_ptr->getAddressAtIdx(i);
// Evict Read-only data
+ RubyRequestType request_type = RubyRequestType_REPLACEMENT;
std::shared_ptr<RubyRequest> msg = std::make_shared<RubyRequest>(
clockEdge(), addr, (uint8_t*) 0, 0, 0,
- RubyRequestType_REPLACEMENT, RubyAccessMode_Supervisor,
+ request_type, RubyAccessMode_Supervisor,
nullptr);
assert(m_mandatory_q_ptr != NULL);
- m_mandatory_q_ptr->enqueue(msg, clockEdge(),
m_data_cache_hit_latency);
+ Tick latency = cyclesToTicks(
+
m_controller->mandatoryQueueLatency(request_type));
+ assert(latency > 0);
+ m_mandatory_q_ptr->enqueue(msg, clockEdge(), latency);
m_outstanding_inv++;
}
DPRINTF(GPUCoalescer,
@@ -240,12 +244,16 @@
for (int i = 0; i < size; i++) {
Addr addr = m_dataCache_ptr->getAddressAtIdx(i);
// Write dirty data back
+ RubyRequestType request_type = RubyRequestType_FLUSH;
std::shared_ptr<RubyRequest> msg = std::make_shared<RubyRequest>(
clockEdge(), addr, (uint8_t*) 0, 0, 0,
- RubyRequestType_FLUSH, RubyAccessMode_Supervisor,
+ request_type, RubyAccessMode_Supervisor,
nullptr);
assert(m_mandatory_q_ptr != NULL);
- m_mandatory_q_ptr->enqueue(msg, clockEdge(),
m_data_cache_hit_latency);
+ Tick latency = cyclesToTicks(
+
m_controller->mandatoryQueueLatency(request_type));
+ assert(latency > 0);
+ m_mandatory_q_ptr->enqueue(msg, clockEdge(), latency);
m_outstanding_wb++;
}
DPRINTF(GPUCoalescer,
@@ -264,24 +272,32 @@
for (int i = 0; i < size; i++) {
Addr addr = m_dataCache_ptr->getAddressAtIdx(i);
// Evict Read-only data
+ RubyRequestType request_type = RubyRequestType_REPLACEMENT;
std::shared_ptr<RubyRequest> msg = std::make_shared<RubyRequest>(
clockEdge(), addr, (uint8_t*) 0, 0, 0,
- RubyRequestType_REPLACEMENT, RubyAccessMode_Supervisor,
+ request_type, RubyAccessMode_Supervisor,
nullptr);
assert(m_mandatory_q_ptr != NULL);
- m_mandatory_q_ptr->enqueue(msg, clockEdge(),
m_data_cache_hit_latency);
+ Tick latency = cyclesToTicks(
+
m_controller->mandatoryQueueLatency(request_type));
+ assert(latency > 0);
+ m_mandatory_q_ptr->enqueue(msg, clockEdge(), latency);
m_outstanding_inv++;
}
// Walk the cache
for (int i = 0; i< size; i++) {
Addr addr = m_dataCache_ptr->getAddressAtIdx(i);
// Write dirty data back
+ RubyRequestType request_type = RubyRequestType_FLUSH;
std::shared_ptr<RubyRequest> msg = std::make_shared<RubyRequest>(
clockEdge(), addr, (uint8_t*) 0, 0, 0,
- RubyRequestType_FLUSH, RubyAccessMode_Supervisor,
+ request_type, RubyAccessMode_Supervisor,
nullptr);
assert(m_mandatory_q_ptr != NULL);
- m_mandatory_q_ptr->enqueue(msg, clockEdge(),
m_data_cache_hit_latency);
+ Tick latency = cyclesToTicks(
+ m_controller->mandatoryQueueLatency(request_type));
+ assert(latency > 0);
+ m_mandatory_q_ptr->enqueue(msg, clockEdge(), latency);
m_outstanding_wb++;
}
}
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/19148
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I050a58d90f0f6356824c3c3bcb3f0b3c76d145e0
Gerrit-Change-Number: 19148
Gerrit-PatchSet: 2
Gerrit-Owner: Pablo Prieto Torralbo <[email protected]>
Gerrit-Reviewer: Anthony Gutierrez <[email protected]>
Gerrit-Reviewer: Bradford Beckmann <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Pouya Fotouhi <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev