Binding Class Reference
#include <binding.h>
Public Member Functions | |
Binding (SDFflowType type) | |
virtual | ~Binding () |
TimedSDFgraph * | getAppGraph () |
virtual void | setAppGraph (TimedSDFgraph *g)=0 |
PlatformGraph * | getArchGraph () |
void | setArchGraph (PlatformGraph *g) |
SDFflowType | getFlowType () const |
virtual bool | bind ()=0 |
virtual bool | bindSDFGtoTiles ()=0 |
virtual bool | constructStaticOrderScheduleTiles ()=0 |
virtual bool | allocateTDMAtimeSlices ()=0 |
virtual bool | optimizeStorageSpaceAllocations ()=0 |
virtual void | releaseResources ()=0 |
Protected Member Functions | |
double | analyzeThroughputApplication () |
double | analyzeThroughput (vector< double > &tileUtilization) |
bool | isThroughputConstraintSatisfied () |
void | minimizeStaticOrderSchedules (PlatformGraph *archGraph) |
Protected Attributes | |
PlatformGraph * | archGraph |
TimedSDFgraph * | appGraph |
SDFflowType | flowType |
Detailed Description
Binding () Base class for all binding algorithm.
Constructor & Destructor Documentation
Binding::Binding | ( | SDFflowType | type | ) | [inline] |
virtual Binding::~Binding | ( | ) | [inline, virtual] |
Member Function Documentation
virtual bool Binding::allocateTDMAtimeSlices | ( | ) | [pure virtual] |
Implemented in LoadBalanceBinding.
Referenced by SDF3Flow::allocateTDMAtimeSlices().
double Binding::analyzeThroughput | ( | vector< double > & | tileUtilization | ) | [protected] |
analyzeThroughput () The function returns the throughput of the application graph mapped onto the platform graph.
References SDFstateSpaceBindingAwareThroughputAnalysis::analyze(), appGraph, archGraph, and flowType.
Referenced by LoadBalanceBinding::allocateTDMAtimeSlices(), isThroughputConstraintSatisfied(), LoadBalanceBinding::minimizeTimeSlices(), and LoadBalanceBinding::optimizeTimeSlices().
double Binding::analyzeThroughputApplication | ( | ) | [protected] |
analyzeThroughputApplication () The function returns the throughput of the application graph considering the absense of auto-concurrency, the buffer constraints and the mapping of actors to the fastest processor.
References a, SDFgraph::actorsBegin(), SDFgraph::actorsEnd(), SDFstateSpaceThroughputAnalysis::analyze(), appGraph, c, SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), TimedSDFchannel::_BufferSize::dst, TimedSDFactor::_Processor::execTime, g, TimedSDFchannel::getBufferSize(), TimedSDFchannel::_BufferSize::mem, modelAutoConcurrencyInSDFgraph(), modelBufferSizeInSDFgraph(), TimedSDFactor::processorsBegin(), TimedSDFactor::processorsEnd(), TimedSDFchannel::setBufferSize(), TimedSDFactor::setDefaultProcessor(), TimedSDFchannel::_BufferSize::src, TimedSDFchannel::_BufferSize::sz, and TimedSDFactor::_Processor::type.
Referenced by LoadBalanceBinding::bindSDFGtoTiles().
virtual bool Binding::bind | ( | ) | [pure virtual] |
Implemented in LoadBalanceBinding.
virtual bool Binding::bindSDFGtoTiles | ( | ) | [pure virtual] |
Implemented in LoadBalanceBinding.
Referenced by SDF3Flow::bindSDFGtoTiles().
virtual bool Binding::constructStaticOrderScheduleTiles | ( | ) | [pure virtual] |
Implemented in LoadBalanceBinding.
Referenced by SDF3Flow::constructStaticOrderScheduleTiles().
TimedSDFgraph* Binding::getAppGraph | ( | ) | [inline] |
References appGraph.
PlatformGraph* Binding::getArchGraph | ( | ) | [inline] |
References archGraph.
SDFflowType Binding::getFlowType | ( | ) | const [inline] |
bool Binding::isThroughputConstraintSatisfied | ( | ) | [protected] |
isThroughputConstraintSatisfied () Check wether or not the throughput constraint is satisfied.
References analyzeThroughput(), appGraph, TimedSDFgraph::getThroughputConstraint(), and CFraction::value().
Referenced by LoadBalanceBinding::allocateTDMAtimeSlices(), and LoadBalanceBinding::bindingCheck().
void Binding::minimizeStaticOrderSchedules | ( | PlatformGraph * | archGraph | ) | [protected] |
minimizeStaticOrderSchedules () The function minimizes the length of all static-order schedules.
References ArchComponent::getName(), Tile::getProcessor(), Processor::getSchedule(), logMsg(), StaticOrderSchedule::minimize(), PlatformGraph::tilesBegin(), and PlatformGraph::tilesEnd().
Referenced by LoadBalanceBinding::constructStaticOrderScheduleTiles().
virtual bool Binding::optimizeStorageSpaceAllocations | ( | ) | [pure virtual] |
Implemented in LoadBalanceBinding.
Referenced by SDF3Flow::optimizeStorageSpaceAllocations().
virtual void Binding::releaseResources | ( | ) | [pure virtual] |
Implemented in LoadBalanceBinding.
Referenced by SDF3Flow::bindSDFGtoTiles().
virtual void Binding::setAppGraph | ( | TimedSDFgraph * | g | ) | [pure virtual] |
Implemented in LoadBalanceBinding.
Referenced by SDF3Flow::checkInputDesignFlow().
void Binding::setArchGraph | ( | PlatformGraph * | g | ) | [inline] |
References archGraph.
Referenced by bindApplicationGraphsToArchitectureGraph(), and SDF3Flow::checkInputDesignFlow().
Member Data Documentation
TimedSDFgraph* Binding::appGraph [protected] |
Referenced by LoadBalanceBinding::allocateTDMAtimeSlices(), analyzeThroughput(), analyzeThroughputApplication(), Binding(), LoadBalanceBinding::bindingCheck(), LoadBalanceBinding::bindSDFGtoTiles(), LoadBalanceBinding::constructStaticOrderSchedules(), LoadBalanceBinding::estimateMaxCycleMean(), getAppGraph(), isThroughputConstraintSatisfied(), LoadBalanceBinding::minimizeStorageSpace(), LoadBalanceBinding::minimizeTimeSlices(), LoadBalanceBinding::optimizeActorToTileBindings(), LoadBalanceBinding::optimizeTimeSlices(), LoadBalanceBinding::reconstructStaticOrderSchedules(), LoadBalanceBinding::releaseResources(), LoadBalanceBinding::setAppGraph(), LoadBalanceBinding::sortActorsOnCriticality(), LoadBalanceBinding::sortTilesOnCommunicationOverhead(), LoadBalanceBinding::sortTilesOnLoad(), and LoadBalanceBinding::updateStorageSpaceAllocation().
PlatformGraph* Binding::archGraph [protected] |
Referenced by LoadBalanceBinding::allocateConnectionResources(), LoadBalanceBinding::allocateTDMAtimeSlices(), analyzeThroughput(), LoadBalanceBinding::bindActorsToTiles(), Binding(), LoadBalanceBinding::bindSDFGtoTiles(), LoadBalanceBinding::computeLoadOfChannelToConnectionBinding(), LoadBalanceBinding::constructStaticOrderSchedules(), LoadBalanceBinding::constructStaticOrderScheduleTiles(), getArchGraph(), LoadBalanceBinding::initTileLoad(), LoadBalanceBinding::minimizeStorageSpace(), LoadBalanceBinding::minimizeTimeSlices(), LoadBalanceBinding::moveActorBinding(), LoadBalanceBinding::optimizeTimeSlices(), LoadBalanceBinding::reconstructStaticOrderSchedules(), LoadBalanceBinding::releaseConnectionResources(), LoadBalanceBinding::releaseTimeSlices(), LoadBalanceBinding::reserveTimeSlices(), setArchGraph(), LoadBalanceBinding::sortTilesOnCommunicationOverhead(), and LoadBalanceBinding::sortTilesOnLoad().
SDFflowType Binding::flowType [protected] |
Referenced by analyzeThroughput(), Binding(), and getFlowType().
The documentation for this class was generated from the following files: