Merge remote branch 'upstream/master'

This commit is contained in:
tranan
2016-10-26 15:10:42 +02:00
7 changed files with 4854 additions and 992 deletions

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 300 KiB

View File

@@ -134,17 +134,21 @@ void ControllerCore::triggerRefresh(tlm::tlm_generic_payload& payload)
state->cleanUp(time);
if (!refreshManager->isInvalidated(payload, time) && !powerDownManager->isInSelfRefresh(bank)) {
if (!refreshManager->isInvalidated(payload, time) && !powerDownManager->isInSelfRefresh(bank))
{
printDebugMessage("Triggering refresh on bank " + to_string(bank.ID()));
powerDownManager->wakeUpForRefresh(bank, time); //expects PDNA and PDNP to exit without delay
bool pdnpToSrefTransition = false;
if (config.PowerDownMode == EPowerDownMode::Staggered) {
if (config.PowerDownMode == EPowerDownMode::Staggered)
{
pdnpToSrefTransition = state->getLastCommand(Command::PDNPX,bank).getStart() >= time;
}
if (pdnpToSrefTransition) {
if (pdnpToSrefTransition)
{
powerDownManager->sleep(bank,time);
}
else {
else
{
refreshManager->scheduleRefresh(payload, time);
}
}

View File

@@ -89,10 +89,10 @@ void RefreshManagerBankwise::scheduleRefresh(tlm::tlm_generic_payload& payload,
ScheduledCommand refresh(Command::AutoRefresh, time, getExecutionTime(Command::AutoRefresh, refreshPayload), extension);
controllerCore.getCommandChecker(Command::AutoRefresh).delayToSatisfyConstraints(refresh);
controllerCore.state->change(refresh);
extension.incrementRow();
controllerCore.controller.send(refresh, refreshPayload);
extension.incrementRow();
planNextRefresh(extension.getBank());
planNextRefresh(extension.getBank());
}
void RefreshManagerBankwise::planNextRefresh(Bank bank)

View File

@@ -83,7 +83,7 @@ void PrechargeAllChecker::delayToSatisfyConstraints(ScheduledCommand& command) c
}
else if (lastCommand.getCommand() == Command::SREFX)
{
command.establishMinDistanceFromStart(lastCommand.getEnd(), config.memSpec.tXSR);
command.establishMinDistanceFromStart(lastCommand.getStart(), config.memSpec.tXSR);
}
else
reportFatal("Precharge All Checker",

View File

@@ -104,7 +104,7 @@ void RefreshChecker::delayToSatisfyConstraints(ScheduledCommand& command) const
}
else if (lastCommand.getCommand() == Command::SREFX)
{
command.establishMinDistanceFromStart(lastCommand.getEnd(), config.memSpec.tXSR);
command.establishMinDistanceFromStart(lastCommand.getStart(), config.memSpec.tXSR);
}
else if (lastCommand.getCommand() == Command::AutoRefresh)
{

View File

@@ -60,7 +60,7 @@ $ git push origin HEAD
You may need to update your submodules.
```bash
git submodule update --init --recursive
$ git submodule update --init --recursive
```
### Dependencies