Move to old bankwise refresh manager.

This commit is contained in:
Lukas Steiner
2020-07-31 09:16:09 +02:00
parent 764135eb00
commit 25a268fc8c
3 changed files with 21 additions and 11 deletions

View File

@@ -301,10 +301,7 @@ void Controller::controllerMethod()
sendToDram(std::get<0>(commandTuple), std::get<1>(commandTuple));
}
else
{
//std::cout << "Ready command blocked at " << sc_time_stamp() << std::endl;
readyCmdBlocked = true;
}
}
// (6) Accept request from arbiter if scheduler is not full, otherwise backpressure (start END_REQ)

View File

@@ -85,19 +85,23 @@ sc_time RefreshManagerBankwise::start()
if (state == RmState::Regular)
{
currentIterator = remainingBankMachines.begin();
currentBankMachine = *remainingBankMachines.begin();
bool forcedRefresh = (flexibilityCounter == maxPostponed);
bool allBanksBusy = true;
for (auto it = remainingBankMachines.begin(); it != remainingBankMachines.end(); it++)
if (!skipSelection)
{
if ((*it)->isIdle())
currentIterator = remainingBankMachines.begin();
currentBankMachine = *remainingBankMachines.begin();
for (auto it = remainingBankMachines.begin(); it != remainingBankMachines.end(); it++)
{
currentIterator = it;
currentBankMachine = *it;
allBanksBusy = false;
break;
if ((*it)->isIdle())
{
currentIterator = it;
currentBankMachine = *it;
allBanksBusy = false;
break;
}
}
}
@@ -112,8 +116,16 @@ sc_time RefreshManagerBankwise::start()
if (currentBankMachine->getState() == BmState::Activated)
nextCommand = Command::PRE;
else
{
nextCommand = Command::REFB;
if (forcedRefresh)
{
currentBankMachine->block();
skipSelection = true;
}
}
timeToSchedule = checker->timeToSatisfyConstraints(nextCommand, rank,
currentBankMachine->getBankGroup(), currentBankMachine->getBank());
return timeToSchedule;

View File

@@ -74,6 +74,7 @@ private:
int maxPulledin = 0;
bool sleeping = false;
bool skipSelection = false;
};
#endif // REFRESHMANAGERBANKWISE_H