From 3444d5f359bdef91ecebb33c6c241c8e6c673dc0 Mon Sep 17 00:00:00 2001 From: David Hashe Date: Mon, 20 Jul 2015 09:15:18 -0500 Subject: [PATCH] mem: Hit callback delay fix This patch was created by Bihn Pham during his internship at AMD. There is no need to delay hit callback response messages by a cycle because the response latency is already incurred in the Ruby protocol. This ensures correct timing of memory instructions. --- src/mem/ruby/system/RubyPort.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc index 2974d07a4..83be9337a 100644 --- a/src/mem/ruby/system/RubyPort.cc +++ b/src/mem/ruby/system/RubyPort.cc @@ -469,8 +469,10 @@ RubyPort::MemSlavePort::hitCallback(PacketPtr pkt) // turn packet around to go back to requester if response expected if (needsResponse) { DPRINTF(RubyPort, "Sending packet back over port\n"); - // send next cycle - schedTimingResp(pkt, curTick() + rs->clockPeriod()); + // Send a response in the same cycle. There is no need to delay the + // response because the response latency is already incurred in the + // Ruby protocol. + schedTimingResp(pkt, curTick()); } else { delete pkt; } -- 2.30.2