Simplified PDM.

This commit is contained in:
Lukas Steiner
2020-04-02 10:47:12 +02:00
parent b0418f711f
commit a5343a9da2
7 changed files with 7 additions and 13 deletions

View File

@@ -297,9 +297,9 @@ void Controller::controllerMethod()
dataResponseEvent.notify(triggerTime - sc_time_stamp());
ranksNumberOfPayloads[rank.ID()]--;
if (ranksNumberOfPayloads[rank.ID()] == 0)
powerDownManagers[rank.ID()]->triggerEntry(TriggerSource::Controller);
}
if (ranksNumberOfPayloads[rank.ID()] == 0)
powerDownManagers[rank.ID()]->triggerEntry();
sendToDram(commandPair.first, commandPair.second);
}

View File

@@ -44,7 +44,7 @@ class PowerDownManagerDummy final : public PowerDownManagerIF
public:
PowerDownManagerDummy() {}
virtual void triggerEntry(TriggerSource) override {}
virtual void triggerEntry() override {}
virtual void triggerExit(TriggerSource) override {}
virtual std::pair<Command, tlm_generic_payload *> getNextCommand() override;

View File

@@ -49,7 +49,7 @@ class PowerDownManagerIF
public:
virtual ~PowerDownManagerIF() {}
virtual void triggerEntry(TriggerSource) = 0;
virtual void triggerEntry() = 0;
virtual void triggerExit(TriggerSource) = 0;
virtual std::pair<Command, tlm_generic_payload *> getNextCommand() = 0;

View File

@@ -41,13 +41,9 @@ PowerDownManagerStaggered::PowerDownManagerStaggered(Rank rank, CheckerIF *check
setUpDummy(powerDownPayload, rank);
}
void PowerDownManagerStaggered::triggerEntry(TriggerSource source)
void PowerDownManagerStaggered::triggerEntry()
{
if (source == TriggerSource::Controller)
controllerIdle = true;
// TODO: check if state is always idle here
if (state == PdmState::Idle && controllerIdle)
if (state == PdmState::Idle)
triggered = true;
}

View File

@@ -46,7 +46,7 @@ class PowerDownManagerStaggered final : public PowerDownManagerIF
public:
PowerDownManagerStaggered(Rank, CheckerIF *);
virtual void triggerEntry(TriggerSource) override;
virtual void triggerEntry() override;
virtual void triggerExit(TriggerSource) override;
virtual std::pair<Command, tlm_generic_payload *> getNextCommand() override;

View File

@@ -171,7 +171,6 @@ void RefreshManagerBankwise::updateState(Command command, tlm_generic_payload *p
{
state = RmState::Regular;
timeForNextTrigger += memSpec->getRefreshIntervalPB();
powerDownManager->triggerEntry(TriggerSource::RefreshManager);
}
}
else if (command == Command::REFA)

View File

@@ -166,7 +166,6 @@ void RefreshManagerRankwise::updateState(Command command, tlm_generic_payload *)
{
state = RmState::Regular;
timeForNextTrigger += memSpec->getRefreshIntervalAB();
powerDownManager->triggerEntry(TriggerSource::RefreshManager);
}
}
}