OpenASIP  2.0
Public Member Functions | Private Attributes | List of all members
ResourceManager Class Referenceabstract

#include <ResourceManager.hh>

Inheritance diagram for ResourceManager:
Inheritance graph
Collaboration diagram for ResourceManager:
Collaboration graph

Public Member Functions

 ResourceManager (const TTAMachine::Machine &machine)
 
virtual ~ResourceManager ()
 
virtual bool canAssign (int cycle, MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0
 
virtual void assign (int cycle, MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1)=0
 
virtual void unassign (MoveNode &node)=0
 
virtual int earliestCycle (MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0
 
virtual int earliestCycle (int cycle, MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0
 
virtual int latestCycle (MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0
 
virtual int latestCycle (int cycle, MoveNode &node, const TTAMachine::Bus *bus=nullptr, const TTAMachine::FunctionUnit *srcFU=nullptr, const TTAMachine::FunctionUnit *dstFU=nullptr, int immWriteCycle=-1, const TTAMachine::ImmediateUnit *immu=nullptr, int immRegIndex=-1) const =0
 
virtual bool supportsExternalAssignments () const =0
 
virtual int largestCycle () const =0
 
virtual int smallestCycle () const =0
 
const TTAMachine::Machinemachine () const
 
virtual TTAProgram::Instructioninstruction (int cycle) const =0
 

Private Attributes

const TTAMachine::Machinemachine_
 Target machine. More...
 

Detailed Description

Base interface for resource managers.

Definition at line 53 of file ResourceManager.hh.

Constructor & Destructor Documentation

◆ ResourceManager()

ResourceManager::ResourceManager ( const TTAMachine::Machine machine)

Constructor.

Parameters
machineTarget machine to be managed by the resource manager.

Definition at line 40 of file ResourceManager.cc.

40  :
41  machine_(&machine) {
42 }

◆ ~ResourceManager()

ResourceManager::~ResourceManager ( )
virtual

Destructor.

Definition at line 47 of file ResourceManager.cc.

47  {
48 }

Member Function Documentation

◆ assign()

virtual void ResourceManager::assign ( int  cycle,
MoveNode node,
const TTAMachine::Bus bus = nullptr,
const TTAMachine::FunctionUnit srcFU = nullptr,
const TTAMachine::FunctionUnit dstFU = nullptr,
int  immWriteCycle = -1,
const TTAMachine::ImmediateUnit immu = nullptr,
int  immRegIndex = -1 
)
pure virtual

◆ canAssign()

virtual bool ResourceManager::canAssign ( int  cycle,
MoveNode node,
const TTAMachine::Bus bus = nullptr,
const TTAMachine::FunctionUnit srcFU = nullptr,
const TTAMachine::FunctionUnit dstFU = nullptr,
int  immWriteCycle = -1,
const TTAMachine::ImmediateUnit immu = nullptr,
int  immRegIndex = -1 
) const
pure virtual

◆ earliestCycle() [1/2]

virtual int ResourceManager::earliestCycle ( int  cycle,
MoveNode node,
const TTAMachine::Bus bus = nullptr,
const TTAMachine::FunctionUnit srcFU = nullptr,
const TTAMachine::FunctionUnit dstFU = nullptr,
int  immWriteCycle = -1,
const TTAMachine::ImmediateUnit immu = nullptr,
int  immRegIndex = -1 
) const
pure virtual

◆ earliestCycle() [2/2]

virtual int ResourceManager::earliestCycle ( MoveNode node,
const TTAMachine::Bus bus = nullptr,
const TTAMachine::FunctionUnit srcFU = nullptr,
const TTAMachine::FunctionUnit dstFU = nullptr,
int  immWriteCycle = -1,
const TTAMachine::ImmediateUnit immu = nullptr,
int  immRegIndex = -1 
) const
pure virtual

◆ instruction()

virtual TTAProgram::Instruction* ResourceManager::instruction ( int  cycle) const
pure virtual

◆ largestCycle()

virtual int ResourceManager::largestCycle ( ) const
pure virtual

◆ latestCycle() [1/2]

virtual int ResourceManager::latestCycle ( int  cycle,
MoveNode node,
const TTAMachine::Bus bus = nullptr,
const TTAMachine::FunctionUnit srcFU = nullptr,
const TTAMachine::FunctionUnit dstFU = nullptr,
int  immWriteCycle = -1,
const TTAMachine::ImmediateUnit immu = nullptr,
int  immRegIndex = -1 
) const
pure virtual

◆ latestCycle() [2/2]

virtual int ResourceManager::latestCycle ( MoveNode node,
const TTAMachine::Bus bus = nullptr,
const TTAMachine::FunctionUnit srcFU = nullptr,
const TTAMachine::FunctionUnit dstFU = nullptr,
int  immWriteCycle = -1,
const TTAMachine::ImmediateUnit immu = nullptr,
int  immRegIndex = -1 
) const
pure virtual

◆ machine()

const TTAMachine::Machine & ResourceManager::machine ( ) const

◆ smallestCycle()

virtual int ResourceManager::smallestCycle ( ) const
pure virtual

◆ supportsExternalAssignments()

virtual bool ResourceManager::supportsExternalAssignments ( ) const
pure virtual

◆ unassign()

virtual void ResourceManager::unassign ( MoveNode node)
pure virtual

Member Data Documentation

◆ machine_

const TTAMachine::Machine* ResourceManager::machine_
private

Target machine.

Definition at line 114 of file ResourceManager.hh.

Referenced by machine().


The documentation for this class was generated from the following files:
ResourceManager::machine
const TTAMachine::Machine & machine() const
Definition: ResourceManager.cc:56
ResourceManager::machine_
const TTAMachine::Machine * machine_
Target machine.
Definition: ResourceManager.hh:114