mem: Hit callback delay fix
authorDavid Hashe <david.hashe@amd.com>
Mon, 20 Jul 2015 14:15:18 +0000 (09:15 -0500)
committerDavid Hashe <david.hashe@amd.com>
Mon, 20 Jul 2015 14:15:18 +0000 (09:15 -0500)
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

index 2974d07a4030c9870c13538d2e80ca2128565592..83be9337aacc13cb4050ea3fda5b1912de43079b 100644 (file)
@@ -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;
     }