Go to the documentation of this file.
33 #ifndef TTA_RESOURCE_BROKER_HH
34 #define TTA_RESOURCE_BROKER_HH
45 #define TEST_BROKERS 0
84 int immRegIndex)
const;
92 int immRegIndex)
const;
100 int immRegIndex)
const;
108 int immRegIndex)
const = 0;
116 int immRegIndex)
const = 0;
124 int immRegIndex) = 0;
146 virtual void clear();
virtual ~ResourceBroker()
virtual SchedulingResourceSet allAvailableResources(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const
virtual bool isAlreadyAssigned(int cycle, const MoveNode &node, const TTAMachine::Bus *preassignedBus) const =0
virtual void assign(int cycle, MoveNode &node, SchedulingResource &res, int immWriteCycle, int immRegIndex)=0
unsigned int initiationInterval_
std::map< const TTAMachine::MachinePart *, SchedulingResource *, TTAMachine::MachinePart::Comparator > ResourceMap
bool hasResource(const SchedulingResource &r) const
virtual bool isApplicable(const MoveNode &node, const TTAMachine::Bus *preassignedBus) const =0
MoveResMap assignedResources_
virtual std::string brokerName() const
void addResource(const TTAMachine::MachinePart &mp, SchedulingResource *res)
bool hasResourceOf(const TTAMachine::MachinePart &mp) const
std::set< SchedulingResource * > ResourceSet
void resources(ResourceSet &contents)
std::map< const MoveNode *, SchedulingResource *, MoveNode::Comparator > MoveResMap
void setResourceMapper(const ResourceMapper &mapper)
virtual void setMaxCycle(unsigned int)
virtual bool isAvailable(SchedulingResource &des, const MoveNode &node, int cycle, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const
virtual void setInitiationInterval(unsigned int cycles)
SchedulingResource * resourceOf(const TTAMachine::MachinePart &mp) const
void validateResources() const
virtual bool isAnyResourceAvailable(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const
virtual bool isITemplateBroker() const
virtual SchedulingResource & availableResource(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const
virtual void setupResourceLinks(const ResourceMapper &mapper)=0
virtual bool isExecutionPipelineBroker() const
int resourceCount() const
virtual bool isIUBroker() const
virtual void unassign(MoveNode &node)=0
virtual int earliestCycle(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const =0
virtual void buildResources(const TTAMachine::Machine &target)=0
virtual int latestCycle(int cycle, const MoveNode &node, const TTAMachine::Bus *bus, const TTAMachine::FunctionUnit *srcFU, const TTAMachine::FunctionUnit *dstFU, int immWriteCycle, const TTAMachine::ImmediateUnit *immu, int immRegIndex) const =0
unsigned int instructionIndex(unsigned int) const
ResourceBroker(std::string, unsigned int initiationInterval=0)
const ResourceMapper & resourceMapper() const
virtual const TTAMachine::MachinePart & machinePartOf(const SchedulingResource &r) const
const ResourceMapper * resourceMapper_
virtual bool isBusBroker() const