From 2d507fb32769ea39e18659b1baff370aa9745ccf Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Tue, 27 Oct 2020 16:16:48 +0100 Subject: [PATCH] Decrement active transactions after BEGIN_RESP. --- DRAMSys/library/src/simulation/Arbiter.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/DRAMSys/library/src/simulation/Arbiter.cpp b/DRAMSys/library/src/simulation/Arbiter.cpp index 6c50b9be..5ef44350 100644 --- a/DRAMSys/library/src/simulation/Arbiter.cpp +++ b/DRAMSys/library/src/simulation/Arbiter.cpp @@ -209,6 +209,16 @@ void Arbiter::peqCallback(tlm_generic_payload &payload, const tlm_phase &phase) if (returnValue == TLM_UPDATED) payloadEventQueue.notify(tPayload, tPhase, tDelay); } + + if (activeTransactions[threadId] == maxActiveTransactions) + { + tlm_phase tPhase = END_REQ; + sc_time tDelay = SC_ZERO_TIME; + tlm_generic_payload &tPayload = *outstandingEndReq[threadId]; + tSocket[static_cast(threadId)]->nb_transport_bw(tPayload, tPhase, tDelay); + } + + activeTransactions[threadId]--; } else { @@ -219,16 +229,6 @@ void Arbiter::peqCallback(tlm_generic_payload &payload, const tlm_phase &phase) { payload.release(); - if (activeTransactions[threadId] == maxActiveTransactions) - { - tlm_phase tPhase = END_REQ; - sc_time tDelay = SC_ZERO_TIME; - tlm_generic_payload &tPayload = *outstandingEndReq[threadId]; - tSocket[static_cast(threadId)]->nb_transport_bw(tPayload, tPhase, tDelay); - } - - activeTransactions[threadId]--; - if (!pendingResponses[threadId].empty()) { tlm_generic_payload &tPayload = *pendingResponses[threadId].front();