small buxfix in bankwise powerdown manager

This commit is contained in:
robert
2014-04-16 12:38:48 +02:00
parent b074e3777d
commit c491738b04
6 changed files with 11 additions and 9 deletions

View File

@@ -28,7 +28,7 @@ PowerDownManagerBankwise::PowerDownManagerBankwise(ControllerCore& controller) :
void PowerDownManagerBankwise::sleep(Bank bank, sc_time time)
{
if (!canSleep(bank))
if (!canSleep(bank) || isInPowerDown(bank))
return;
tlm_generic_payload& payload = powerDownPayloads[bank];

View File

@@ -99,4 +99,3 @@ void RefreshManager::setupTransactions()
}
} /* namespace core */

View File

@@ -21,13 +21,14 @@ public:
RefreshManager(ControllerCore& controller);
virtual ~RefreshManager();
bool hasCollision(const CommandSchedule& schedule) override;
bool hasCollision(const ScheduledCommand& command) override;
void scheduleRefresh(tlm::tlm_generic_payload& payload, sc_time time) override;
virtual bool hasCollision(const CommandSchedule& schedule) override;
virtual bool hasCollision(const ScheduledCommand& command) override;
virtual void scheduleRefresh(tlm::tlm_generic_payload& payload, sc_time time) override;
void reInitialize(Bank bank, sc_time time) override;
bool isInvalidated(tlm::tlm_generic_payload& payload, sc_time time) override;
virtual bool isInvalidated(tlm::tlm_generic_payload& payload, sc_time time) override;
private:
ControllerCore& controller;

View File

@@ -36,6 +36,8 @@ bool RefreshManagerBankwise::hasCollision(const CommandSchedule& schedule)
bool RefreshManagerBankwise::hasCollision(const ScheduledCommand& command)
{
const ScheduledCommand& ref= controller.state.getLastCommand(Command::AutoRefresh, command.getBank());
return command.getStart() < controller.state.getLastCommand(Command::AutoRefresh, command.getBank()).getEnd()
|| command.getEnd() > nextPlannedRefreshs[command.getBank()];}

View File

@@ -274,10 +274,10 @@ private:
{
Bank bank = DramExtension::getExtension(payload).getBank();
numberOfPayloadsInSystem[bank]--;
controller->powerDownManager->sleep(bank, sc_time_stamp());
printDebugMessage(
"Payload left system on bank " + to_string(bank.ID()) + ". Total number of payloads in Controller: "
+ to_string(getTotalNumberOfPayloadsInSystem()));
controller->powerDownManager->sleep(bank, sc_time_stamp());
}
@@ -340,7 +340,7 @@ private:
void dramPEQCallback(tlm_generic_payload& payload, const tlm_phase& phase)
{
Bank bank = DramExtension::getExtension(payload).getBank();
printDebugMessage("Received " + phaseNameToString(phase) + " from DRAM");
printDebugMessage("Received " + phaseNameToString(phase) + " on bank " + to_string(bank.ID()) + " from DRAM");
if (phase == BEGIN_RD || phase == BEGIN_WR)
{

View File

@@ -40,7 +40,7 @@ int sc_main(int argc, char **argv)
if(argc > 1)
simulationToRun = argv[1];
else
simulationToRun = "sim-batch.xml";
simulationToRun = "datasizes.xml";
SimulationManager manager(resources);
manager.loadSimulationsFromXML(resources + "/simulations/" + simulationToRun);