From e4ba85556327254cb6ed673fad958df63e174ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89der=20F=2E=20Zulian?= Date: Tue, 10 Jul 2018 08:24:00 +0200 Subject: [PATCH] Initial displacement --- .../src/controller/core/refresh/RGR.cpp | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/DRAMSys/library/src/controller/core/refresh/RGR.cpp b/DRAMSys/library/src/controller/core/refresh/RGR.cpp index 42bd6dfe..9bb9d9dc 100644 --- a/DRAMSys/library/src/controller/core/refresh/RGR.cpp +++ b/DRAMSys/library/src/controller/core/refresh/RGR.cpp @@ -39,6 +39,10 @@ #include "../TimingCalculation.h" #include "../../../common/Utils.h" +#define TRUE 1 +#define FALSE 0 +#define INITIAL_DISPLACEMENT FALSE + using namespace std; RGR::RGR(sc_module_name, ControllerCore &ctrlcore) : ccore(ctrlcore), @@ -59,14 +63,6 @@ RGR::RGR(sc_module_name, ControllerCore &ctrlcore) : ccore(ctrlcore), pullInEnabled = ccore.config.ControllerCoreEnableRefPullIn; maxpostpone = ccore.config.ControllerCoreMaxPostponedARCmd * m; maxpullin = ccore.config.ControllerCoreMaxPulledInARCmd * m; -#if 0 - if (bwl) { - for (Bank b : ccore.getBanks()) { - auto nbs = ccore.config.memSpec.NumberOfBanks; - nextPlannedRefreshs[b] = b.ID() * tREFIx / nbs; - } - } -#endif for (Bank b : ccore.getBanks()) { pulledin[b] = 0; postponed[b] = 0; @@ -76,6 +72,14 @@ RGR::RGR(sc_module_name, ControllerCore &ctrlcore) : ccore(ctrlcore), setUpDummy(rps[b], b); nextPlannedRefreshs[b] = SC_ZERO_TIME; } +#if INITIAL_DISPLACEMENT == TRUE + if (bwl) { + auto nbs = ccore.config.memSpec.NumberOfBanks; + for (Bank b : ccore.getBanks()) { + nextPlannedRefreshs[b] = b.ID() * tREFIx / nbs; + } + } +#endif if (ccore.config.BankwiseLogic) { for (Bank b : ccore.getBanks()) { planNextRefresh(b, tREFIx, false); @@ -230,8 +234,7 @@ void RGR::scheduleRefresh(tlm::tlm_generic_payload &p, sc_time t) } break; default: - SC_REPORT_FATAL(this->name(), - "Invalid state in RGR flexible refresh FSM. Stop."); + SC_REPORT_FATAL(this->name(), "RGR flex FSM invalid state."); break; } planNextRefresh(bwl ? b : ccore.getBanks()[0], nrt, align);