/* * BankwiseRefreshManager.h * * Created on: Mar 9, 2014 * Author: jonny */ #ifndef BANKWISEREFRESHMANAGER_H_ #define BANKWISEREFRESHMANAGER_H_ #include "../../../common/dramExtension.h" #include "../configuration/MemSpec.h" #include "IRefreshManager.h" class ControllerCore; class RefreshManagerBankwise : public IRefreshManager { public: RefreshManagerBankwise(ControllerCore& controllerCore); virtual ~RefreshManagerBankwise(); virtual bool hasCollision(const ScheduledCommand& command) override; virtual void scheduleRefresh(tlm::tlm_generic_payload& payload, sc_time time) override; void reInitialize(Bank bank, sc_time time) override; bool isInvalidated(tlm::tlm_generic_payload& payload,sc_time time) override; private: ControllerCore& controllerCore; std::map refreshPayloads; std::map nextPlannedRefreshs; void planNextRefresh(Bank bank); }; #endif /* BANKWISEREFRESHMANAGER_H_ */