Files
DRAMSys/dram/src/core/refresh/BankwiseRefreshManager.cpp
Janik Schlemminger 23076bcf7d ..
2014-03-19 10:09:09 +01:00

49 lines
1.1 KiB
C++

/*
* BankwiseRefreshManager.cpp
*
* Created on: Mar 9, 2014
* Author: jonny
*/
#include "BankwiseRefreshManager.h"
using namespace std;
namespace core {
BankwiseRefreshManager::BankwiseRefreshManager(CommandBus& bus, vector<RefreshTiming> refreshTimings)
{
assert(!refreshTimings.empty());
for (unsigned int i = 0; i < refreshTimings.size(); ++i)
{
RefreshManager* manager = new RefreshManager(bus, refreshTimings.at(i), Bank(i));
refreshManagerForBanks.push_back(manager);
}
}
BankwiseRefreshManager::~BankwiseRefreshManager()
{
for (unsigned int i = 0; i < refreshManagerForBanks.size(); ++i)
{
delete(refreshManagerForBanks.at(i));
}
}
bool BankwiseRefreshManager::hasCollision(const CommandSchedule& schedule)
{
RefreshManager& manager = *refreshManagerForBanks.at(schedule.getBank().ID());
return manager.hasCollision(schedule);
}
void BankwiseRefreshManager::scheduleRefresh(sc_time time)
{
for (unsigned int i = 0; i < refreshManagerForBanks.size(); ++i)
{
RefreshManager& manager = *refreshManagerForBanks.at(i);
manager.scheduleRefresh(time);
}
}
} /* namespace controller */