small buxfix in bankwise powerdown manager
This commit is contained in:
@@ -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];
|
||||
|
||||
@@ -99,4 +99,3 @@ void RefreshManager::setupTransactions()
|
||||
}
|
||||
|
||||
} /* namespace core */
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()];}
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user