mem: Do not include snoop-filter latency in crossbar occupancy
[gem5.git] / src / mem / dramsim2.hh
index c61b84cbe0044bd553cb569a1b958ad940a6fd70..5d8e64282221df2691cb53a13636052d794ff2dc 100644 (file)
@@ -80,7 +80,7 @@ class DRAMSim2 : public AbstractMemory
 
         bool recvTimingReq(PacketPtr pkt);
 
-        void recvRetry();
+        void recvRespRetry();
 
         AddrRangeList getAddrRanges() const;
 
@@ -103,6 +103,11 @@ class DRAMSim2 : public AbstractMemory
      */
     bool retryResp;
 
+    /**
+     * Keep track of when the wrapper is started.
+     */
+    Tick startTick;
+
     /**
      * Keep track of what packets are outstanding per
      * address, and do so separately for reads and writes. This is
@@ -127,12 +132,6 @@ class DRAMSim2 : public AbstractMemory
      */
     std::deque<PacketPtr> responseQueue;
 
-    /**
-     * If we need to drain, keep the drain manager around until we're
-     * done here.
-     */
-    DrainManager *drainManager;
-
     unsigned int nbrOutstanding() const;
 
     /**
@@ -190,7 +189,7 @@ class DRAMSim2 : public AbstractMemory
      */
     void writeComplete(unsigned id, uint64_t addr, uint64_t cycle);
 
-    unsigned int drain(DrainManager* dm);
+    DrainState drain() M5_ATTR_OVERRIDE;
 
     virtual BaseSlavePort& getSlavePort(const std::string& if_name,
                                         PortID idx = InvalidPortID);
@@ -203,7 +202,7 @@ class DRAMSim2 : public AbstractMemory
     Tick recvAtomic(PacketPtr pkt);
     void recvFunctional(PacketPtr pkt);
     bool recvTimingReq(PacketPtr pkt);
-    void recvRetry();
+    void recvRespRetry();
 
 };