Files
DRAMSys/DRAM/dram/core/scheduling/CommandSequenceGenerator.h
2014-03-15 18:31:16 +01:00

38 lines
1.0 KiB
C++

/*
* CommandGenerator.h
*
* Created on: Mar 5, 2014
* Author: jonny
*/
#ifndef COMMANDGENERATOR_H_
#define COMMANDGENERATOR_H_
#include <tlm.h>
#include <vector>
#include "core/ControllerState.h"
#include "Command.h"
namespace controller {
class CommandSequenceGenerator {
public:
CommandSequenceGenerator(const ControllerState& controllerState) : controllerState(controllerState) {}
virtual ~CommandSequenceGenerator() {}
CommandSequence generateCommandSequence(tlm::tlm_generic_payload& transaction);
CommandSequence generateCommandSequence(tlm::tlm_generic_payload* transaction);
private:
const ControllerState& controllerState;
Command getReadWriteCommand(tlm::tlm_generic_payload& transaction);
CommandSequence getBankMissCommandSequence(tlm::tlm_generic_payload& transaction);
CommandSequence getRowMissCommandSequence(tlm::tlm_generic_payload& transaction);
CommandSequence getRowHitCommandSequence(tlm::tlm_generic_payload& transaction);
};
} /* namespace controller */
#endif /* COMMANDGENERATOR_H_ */