Files
DRAMSys/dram/src/core/refresh/RefreshManager.cpp
2014-03-29 00:26:21 +01:00

47 lines
1.0 KiB
C++

/*
* BankwiseRefreshManager.cpp
*
* Created on: Mar 9, 2014
* Author: jonny
*/
#include "RefreshManager.h"
#include "../Controller.h"
using namespace std;
namespace core {
RefreshManager::RefreshManager(Controller& controller) : controller(controller)
{
assert(!controller.config.Timings.refreshTimings.empty());
for(Bank bank : controller.state.bankStates.getBanks())
{
refreshManagerForBanks.push_back(new RefreshManagerForBank(controller, bank));
}
}
RefreshManager::~RefreshManager()
{
for(RefreshManagerForBank* manager : refreshManagerForBanks)
{
delete manager;
}
}
bool RefreshManager::hasCollision(const CommandSchedule& schedule)
{
RefreshManagerForBank& manager = *refreshManagerForBanks.at(schedule.getBank().ID());
return manager.hasCollision(schedule);
}
void RefreshManager::scheduleRefresh(tlm::tlm_generic_payload& payload, sc_time time)
{
RefreshManagerForBank& manager = *refreshManagerForBanks.at(DramExtension::getExtension(payload).getBank().ID());
manager.scheduleRefresh(time);
}
} /* namespace controller */