#include <binding_aware_sdfg.h>

Inheritance diagram for BindingAwareSDFG:
Collaboration diagram for BindingAwareSDFG:

List of all members.

Public Member Functions

 BindingAwareSDFG (TimedSDFgraph *constrainedSDFG, PlatformGraph *platformGraph, SDFflowType flowType)
 ~BindingAwareSDFG ()
CId getBindingOfActorToTile (SDFactor *a)
CId getBindingOfChannelToConnection (SDFchannel *c)
StaticOrderSchedulegetScheduleOnTile (CId tileId)
void setScheduleOnTile (CId tileId, StaticOrderSchedule &s)
SDFtime getTDMAsizeOnTile (CId tileId) const
SDFtime getTDMAsliceOnTile (CId tileId) const
uint nrTilesInPlatformGraph () const

Private Member Functions

void extractActorMapping (TimedSDFgraph *constrainedSDFG, PlatformGraph *platformGraph)
void extractChannelMapping (TimedSDFgraph *constrainedSDFG, PlatformGraph *platformGraph)
void constructBindingAwareSDFG (TimedSDFgraph *constrainedSDFG, PlatformGraph *platformGraph, SDFflowType flowType)
void createMappedActorNSoC (TimedSDFactor *a, Tile *t)
void createMappedChannelToTileNSoC (TimedSDFchannel *c, Tile *t)
void createMappedChannelToConnectionNSoC (TimedSDFchannel *ch, Connection *cn)
void modelBindingInNSoCFlow (TimedSDFgraph *g, PlatformGraph *ag)
SDFtime getLatencyAMBAbusSemaphore ()
SDFtime computeLatencyAMBAbus (CSize tokenSize)
void createMappedActorMPFlow (TimedSDFactor *a, Tile *t)
void createMappedChannelToTileMPFlow (TimedSDFchannel *c, Tile *t)
void createMappedChannelToConnectionMPFlow (TimedSDFchannel *ch, Connection *cn)
void modelBindingInMPFlow (TimedSDFgraph *g, PlatformGraph *ag)

Private Attributes

vector< CIdchannelBinding
vector< CIdactorBinding
uint nrTiles
vector< StaticOrderScheduleschedule
vector< SDFtimetdmaSize
vector< SDFtimetdmaSlice

Detailed Description

BindingAwareSDFG () Binding-aware SDFG.


Constructor & Destructor Documentation

BindingAwareSDFG::BindingAwareSDFG ( TimedSDFgraph constrainedSDFG,
PlatformGraph platformGraph,
SDFflowType  flowType 
)

BindingAwareSDFG () Constructor.

References ASSERT, constructBindingAwareSDFG(), extractActorMapping(), and extractChannelMapping().

Here is the call graph for this function:

BindingAwareSDFG::~BindingAwareSDFG (  )  [inline]

Member Function Documentation

SDFtime BindingAwareSDFG::computeLatencyAMBAbus ( CSize  tokenSize  )  [private]

computeLatencyAMBAbus () The function takes as an argument the size of a token (in bits) and returns the time needed to transfer this token over the AMBA bus.

Referenced by createMappedChannelToConnectionMPFlow().

void BindingAwareSDFG::constructBindingAwareSDFG ( TimedSDFgraph constrainedSDFG,
PlatformGraph platformGraph,
SDFflowType  flowType 
) [private]

constructBindingAwareSDFG () Create a binding-aware SDFG for the constrained SDFG taking into account the properties of the platform graph and the mapping as specified in the same graph. Note that this function is just a shell to select the correct flow model. The actual binding-aware SDFG construction is done in a different function.

References modelBindingInMPFlow(), modelBindingInNSoCFlow(), SDFflowTypeMPFlow, and SDFflowTypeNSoC.

Referenced by BindingAwareSDFG().

Here is the call graph for this function:

void BindingAwareSDFG::createMappedActorMPFlow ( TimedSDFactor a,
Tile t 
) [private]
void BindingAwareSDFG::createMappedActorNSoC ( TimedSDFactor a,
Tile t 
) [private]
void BindingAwareSDFG::createMappedChannelToTileMPFlow ( TimedSDFchannel c,
Tile t 
) [private]
void BindingAwareSDFG::createMappedChannelToTileNSoC ( TimedSDFchannel c,
Tile t 
) [private]
void BindingAwareSDFG::extractActorMapping ( TimedSDFgraph constrainedSDFG,
PlatformGraph platformGraph 
) [private]

extractActorMapping () The function extracts the actor binding and scheduling from the platform graph. This information is stored in the object variables 'actorBinding', 'nrTiles', 'schedule', 'tdmaSize', and 'tdmaSlice'.

References ACTOR_NOT_BOUND, actorBinding, ASSERT, CompBindings::begin(), CompBindings::end(), Processor::getActorBindings(), ArchComponent::getId(), Tile::getProcessor(), Processor::getReservedTimeSlice(), Processor::getSchedule(), Processor::getTimewheelSize(), SDFgraph::nrActors(), PlatformGraph::nrTiles(), nrTiles, schedule, tdmaSize, tdmaSlice, PlatformGraph::tilesBegin(), and PlatformGraph::tilesEnd().

Referenced by BindingAwareSDFG().

Here is the call graph for this function:

void BindingAwareSDFG::extractChannelMapping ( TimedSDFgraph constrainedSDFG,
PlatformGraph platformGraph 
) [private]

extractChannelMapping () The function extracts the actor binding and scheduling from the platform graph. This information is stored in the object variable 'channelBinding'.

References ASSERT, CompBindings::begin(), c, CHANNEL_NOT_BOUND, channelBinding, PlatformGraph::connectionsBegin(), PlatformGraph::connectionsEnd(), CompBindings::end(), Connection::getChannelBindings(), ArchComponent::getId(), and SDFgraph::nrChannels().

Referenced by BindingAwareSDFG().

Here is the call graph for this function:

CId BindingAwareSDFG::getBindingOfActorToTile ( SDFactor a  )  [inline]

References ACTOR_NOT_BOUND, actorBinding, and SDFcomponent::getId().

Referenced by SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::actorReadyToFire(), SDFstateSpacePriorityListScheduler::TransitionSystem::actorReadyToFire(), SDFstateSpaceListScheduler::TransitionSystem::actorReadyToFire(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::actorReadyToFire(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::actorReadyToFire(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::analyzeDeadlock(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::checkBindingAwareSDFG(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::checkBindingAwareSDFG(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::checkBindingAwareSDFG(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::computeTileUtilization(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::endActorFiring(), SDFstateSpacePriorityListScheduler::TransitionSystem::endActorFiring(), SDFstateSpaceListScheduler::TransitionSystem::endActorFiring(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::endActorFiring(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::endActorFiring(), SDFstateSpacePriorityListScheduler::TransitionSystem::execSDFgraph(), SDFstateSpaceListScheduler::TransitionSystem::execSDFgraph(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::initTracing(), modelBindingInMPFlow(), modelBindingInNSoCFlow(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::startActorFiring(), SDFstateSpacePriorityListScheduler::TransitionSystem::startActorFiring(), SDFstateSpaceListScheduler::TransitionSystem::startActorFiring(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::startActorFiring(), and SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::startActorFiring().

Here is the call graph for this function:

CId BindingAwareSDFG::getBindingOfChannelToConnection ( SDFchannel c  )  [inline]

References CHANNEL_NOT_BOUND, channelBinding, and SDFcomponent::getId().

Referenced by modelBindingInMPFlow(), and modelBindingInNSoCFlow().

Here is the call graph for this function:

SDFtime BindingAwareSDFG::getLatencyAMBAbusSemaphore (  )  [private]

getLatencyAMBAbusSemaphore () The function returns the latency for sending a semaphore through an AMBA bus.

Referenced by createMappedChannelToConnectionMPFlow().

void BindingAwareSDFG::setScheduleOnTile ( CId  tileId,
StaticOrderSchedule s 
) [inline]

References schedule.


Member Data Documentation


The documentation for this class was generated from the following files: