From 5111973983dd7888427858d7d8fc23c3c64df600 Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Sat, 30 Nov 2019 00:13:08 +0100 Subject: [PATCH] Small bugfixes in controller and HBM2 checker. --- DRAMSys/library/src/controller/Controller.cpp | 4 ++-- DRAMSys/library/src/controller/checker/CheckerHBM2.cpp | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/DRAMSys/library/src/controller/Controller.cpp b/DRAMSys/library/src/controller/Controller.cpp index 240c0d5f..1b086ce6 100644 --- a/DRAMSys/library/src/controller/Controller.cpp +++ b/DRAMSys/library/src/controller/Controller.cpp @@ -362,7 +362,7 @@ tlm_sync_enum Controller::nb_transport_bw(tlm_generic_payload &trans, ranksNumberOfPayloads[rank.ID()]--; if (ranksNumberOfPayloads[rank.ID()] == 0) { - refreshManagers[rank.ID()]->messageIdle(); + refreshManagers[rank.ID()]->notifyIdle(); powerDownManagers[rank.ID()]->triggerEntry(TriggerSource::Controller); } @@ -404,7 +404,7 @@ void Controller::acquirePayload() if(ranksNumberOfPayloads[rank.ID()] == 0) { - refreshManagers[rank.ID()]->messageActive(); + refreshManagers[rank.ID()]->notifyActive(); powerDownManagers[rank.ID()]->triggerExit(TriggerSource::Controller); } ranksNumberOfPayloads[rank.ID()]++; diff --git a/DRAMSys/library/src/controller/checker/CheckerHBM2.cpp b/DRAMSys/library/src/controller/checker/CheckerHBM2.cpp index d198e241..d1ecaeb0 100644 --- a/DRAMSys/library/src/controller/checker/CheckerHBM2.cpp +++ b/DRAMSys/library/src/controller/checker/CheckerHBM2.cpp @@ -167,13 +167,11 @@ sc_time CheckerHBM2::delayToSatisfyConstraints(Command command, Rank rank, BankG lastCommandStart = lastScheduledByCommand[Command::RD]; if (lastCommandStart != SC_ZERO_TIME) - earliestTimeToStart = std::max(earliestTimeToStart, lastCommandStart - + memSpec->tRL + burstClocks + memSpec->tRTW); + earliestTimeToStart = std::max(earliestTimeToStart, lastCommandStart + memSpec->tRTW); lastCommandStart = lastScheduledByCommand[Command::RDA]; if (lastCommandStart != SC_ZERO_TIME) - earliestTimeToStart = std::max(earliestTimeToStart, lastCommandStart - + memSpec->tRL + burstClocks + memSpec->tRTW); + earliestTimeToStart = std::max(earliestTimeToStart, lastCommandStart + memSpec->tRTW); lastCommandStart = lastScheduledByCommandAndBankGroup[Command::WR][bankgroup.ID()]; if (lastCommandStart != SC_ZERO_TIME)