#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)
StaticOrderSchedule & getScheduleOnTile (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< CId > channelBinding
vector< CId > actorBinding
uint nrTiles
vector< StaticOrderSchedule > schedule
vector< SDFtime > tdmaSize
vector< SDFtime > tdmaSlice

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: