Files
DRAMSys/dram/src/core/refresh/RefreshManager.cpp
2014-03-21 16:22:49 +01:00

50 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(DramController& 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(sc_time time)
{
for (unsigned int i = 0; i < refreshManagerForBanks.size(); ++i)
{
RefreshManagerForBank& manager = *refreshManagerForBanks.at(i);
manager.scheduleRefresh(time);
}
}
} /* namespace controller */