BindingAwareSDFG Class Reference
#include <binding_aware_sdfg.h>
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().
BindingAwareSDFG::~BindingAwareSDFG | ( | ) | [inline] |
Member Function Documentation
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().
void BindingAwareSDFG::createMappedActorMPFlow | ( | TimedSDFactor * | a, | |
Tile * | t | |||
) | [private] |
createMappedActorMPFlow () The function models an actor mapped to a tile.
References TimedSDFactor::addProcessor(), c, SDFgraph::createChannel(), TimedSDFactor::_Processor::execTime, TimedSDFactor::getExecutionTime(), SDFactor::getGraph(), Tile::getProcessor(), Processor::getType(), TimedSDFactor::setDefaultProcessor(), TimedSDFactor::_Processor::stateSize, and TimedSDFactor::_Processor::type.
Referenced by modelBindingInMPFlow().
void BindingAwareSDFG::createMappedActorNSoC | ( | TimedSDFactor * | a, | |
Tile * | t | |||
) | [private] |
createMappedActorNSoC () The function models an actor mapped to a tile.
References TimedSDFactor::addProcessor(), c, SDFgraph::createChannel(), TimedSDFactor::_Processor::execTime, TimedSDFactor::getExecutionTime(), SDFactor::getGraph(), Tile::getProcessor(), Processor::getType(), TimedSDFactor::setDefaultProcessor(), TimedSDFactor::_Processor::stateSize, and TimedSDFactor::_Processor::type.
Referenced by modelBindingInNSoCFlow().
void BindingAwareSDFG::createMappedChannelToConnectionMPFlow | ( | TimedSDFchannel * | ch, | |
Connection * | cn | |||
) | [private] |
createMappedChannelToConnectionMPFlow () The function models a channel mapped to a connection.
References actorBinding, TimedSDFactor::addProcessor(), computeLatencyAMBAbus(), SDFgraph::createActor(), SDFgraph::createChannel(), TimedSDFactor::_Processor::execTime, g, TimedSDFchannel::getBufferSize(), SDFchannel::getDstActor(), SDFchannel::getDstPort(), Connection::getDstTile(), SDFchannel::getGraph(), ArchComponent::getId(), SDFcomponent::getId(), SDFchannel::getInitialTokens(), getLatencyAMBAbusSemaphore(), SDFcomponent::getName(), Tile::getProcessor(), SDFport::getRate(), Processor::getReservedTimeSlice(), SDFchannel::getSrcActor(), SDFchannel::getSrcPort(), Connection::getSrcTile(), Processor::getTimewheelSize(), TimedSDFchannel::getTokenSize(), StaticOrderSchedule::insertActor(), SDFgraph::nrActors(), schedule, TimedSDFactor::setDefaultProcessor(), SDFchannel::setInitialTokens(), SDFcomponent::setName(), TimedSDFactor::_Processor::stateSize, and TimedSDFactor::_Processor::type.
Referenced by modelBindingInMPFlow().
void BindingAwareSDFG::createMappedChannelToConnectionNSoC | ( | TimedSDFchannel * | ch, | |
Connection * | cn | |||
) | [private] |
createMappedChannelToConnectionNSoC () The function models a channel mapped to a connection.
References TimedSDFactor::addProcessor(), c, SDFgraph::createActor(), SDFgraph::createChannel(), TimedSDFactor::_Processor::execTime, g, TimedSDFchannel::getBufferSize(), SDFchannel::getDstActor(), SDFchannel::getDstPort(), Connection::getDstTile(), SDFchannel::getGraph(), SDFchannel::getInitialTokens(), Connection::getLatency(), TimedSDFchannel::getMinBandwidth(), TimedSDFchannel::getMinLatency(), SDFcomponent::getName(), Tile::getProcessor(), SDFport::getRate(), Processor::getReservedTimeSlice(), SDFchannel::getSrcActor(), SDFchannel::getSrcPort(), Processor::getTimewheelSize(), TimedSDFchannel::getTokenSize(), TimedSDFactor::setDefaultProcessor(), SDFchannel::setInitialTokens(), SDFcomponent::setName(), TimedSDFchannel::setStorageSpaceChannel(), TimedSDFactor::_Processor::stateSize, and TimedSDFactor::_Processor::type.
Referenced by modelBindingInNSoCFlow().
void BindingAwareSDFG::createMappedChannelToTileMPFlow | ( | TimedSDFchannel * | c, | |
Tile * | t | |||
) | [private] |
createMappedChannelToTileMPFlow () The function models a channel mapped to a tile.
References SDFgraph::createChannel(), g, TimedSDFchannel::getBufferSize(), SDFchannel::getDstActor(), SDFchannel::getDstPort(), SDFchannel::getGraph(), SDFchannel::getInitialTokens(), SDFport::getRate(), SDFchannel::getSrcActor(), SDFchannel::getSrcPort(), SDFchannel::setInitialTokens(), and TimedSDFchannel::setStorageSpaceChannel().
Referenced by modelBindingInMPFlow().
void BindingAwareSDFG::createMappedChannelToTileNSoC | ( | TimedSDFchannel * | c, | |
Tile * | t | |||
) | [private] |
createMappedChannelToTileNSoC () The function models a channel mapped to a tile.
References SDFgraph::createChannel(), g, TimedSDFchannel::getBufferSize(), SDFchannel::getDstActor(), SDFchannel::getDstPort(), SDFchannel::getGraph(), SDFchannel::getInitialTokens(), SDFport::getRate(), SDFchannel::getSrcActor(), SDFchannel::getSrcPort(), SDFchannel::setInitialTokens(), and TimedSDFchannel::setStorageSpaceChannel().
Referenced by modelBindingInNSoCFlow().
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().
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().
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().
CId BindingAwareSDFG::getBindingOfChannelToConnection | ( | SDFchannel * | c | ) | [inline] |
References CHANNEL_NOT_BOUND, channelBinding, and SDFcomponent::getId().
Referenced by modelBindingInMPFlow(), and modelBindingInNSoCFlow().
SDFtime BindingAwareSDFG::getLatencyAMBAbusSemaphore | ( | ) | [private] |
getLatencyAMBAbusSemaphore () The function returns the latency for sending a semaphore through an AMBA bus.
Referenced by createMappedChannelToConnectionMPFlow().
StaticOrderSchedule& BindingAwareSDFG::getScheduleOnTile | ( | CId | tileId | ) | [inline] |
References schedule.
Referenced by SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::checkBindingAwareSDFG(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::checkBindingAwareSDFG(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::checkBindingAwareSDFG(), LoadBalanceBinding::constructStaticOrderSchedules(), SDFstateSpacePriorityListScheduler::TransitionSystem::initStaticOrderSchedules(), SDFstateSpaceListScheduler::TransitionSystem::initStaticOrderSchedules(), LoadBalanceBinding::reconstructStaticOrderSchedules(), SDFstateSpacePriorityListScheduler::TransitionSystem::startActorFiring(), and SDFstateSpaceListScheduler::TransitionSystem::startActorFiring().
References tdmaSize.
Referenced by SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::clockStep(), SDFstateSpacePriorityListScheduler::TransitionSystem::clockStep(), SDFstateSpaceListScheduler::TransitionSystem::clockStep(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::clockStep(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::clockStep(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::startActorFiring(), SDFstateSpacePriorityListScheduler::TransitionSystem::startActorFiring(), SDFstateSpaceListScheduler::TransitionSystem::startActorFiring(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::startActorFiring(), and SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::startActorFiring().
References tdmaSlice.
Referenced by SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::startActorFiring(), SDFstateSpacePriorityListScheduler::TransitionSystem::startActorFiring(), SDFstateSpaceListScheduler::TransitionSystem::startActorFiring(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::startActorFiring(), and SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::startActorFiring().
void BindingAwareSDFG::modelBindingInMPFlow | ( | TimedSDFgraph * | g, | |
PlatformGraph * | pg | |||
) | [private] |
modelBindingInMPFlow () Model all binding decisions in a timed SDF graph.
References a, actorBinding, SDFgraph::actorsBegin(), SDFgraph::actorsEnd(), SDFgraph::addActor(), SDFgraph::addChannel(), ASSERT, c, CHANNEL_NOT_BOUND, channelBinding, SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), component, createMappedActorMPFlow(), createMappedChannelToConnectionMPFlow(), createMappedChannelToTileMPFlow(), SDFgraph::getActor(), getBindingOfActorToTile(), getBindingOfChannelToConnection(), SDFgraph::getChannel(), PlatformGraph::getConnection(), SDFchannel::getDstActor(), Connection::getDstTile(), SDFcomponent::getId(), SDFcomponent::getName(), SDFchannel::getSrcActor(), Connection::getSrcTile(), PlatformGraph::getTile(), SDFgraph::getType(), SDFgraph::nrActors(), SDFgraph::nrChannels(), SDFcomponent::SDFcomponent(), SDFcomponent::setId(), SDFcomponent::setName(), and SDFgraph::setType().
Referenced by constructBindingAwareSDFG().
void BindingAwareSDFG::modelBindingInNSoCFlow | ( | TimedSDFgraph * | g, | |
PlatformGraph * | pg | |||
) | [private] |
modelBindingInNSoCFlow () Model all binding decisions in a timed SDF graph.
References a, actorBinding, SDFgraph::actorsBegin(), SDFgraph::actorsEnd(), SDFgraph::addActor(), SDFgraph::addChannel(), ASSERT, c, CHANNEL_NOT_BOUND, channelBinding, SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), component, createMappedActorNSoC(), createMappedChannelToConnectionNSoC(), createMappedChannelToTileNSoC(), SDFgraph::getActor(), getBindingOfActorToTile(), getBindingOfChannelToConnection(), SDFgraph::getChannel(), PlatformGraph::getConnection(), SDFchannel::getDstActor(), Connection::getDstTile(), SDFcomponent::getId(), SDFcomponent::getName(), SDFchannel::getSrcActor(), Connection::getSrcTile(), PlatformGraph::getTile(), SDFgraph::getType(), SDFgraph::nrActors(), SDFgraph::nrChannels(), SDFcomponent::SDFcomponent(), SDFcomponent::setId(), SDFcomponent::setName(), and SDFgraph::setType().
Referenced by constructBindingAwareSDFG().
uint BindingAwareSDFG::nrTilesInPlatformGraph | ( | ) | const [inline] |
References nrTiles.
Referenced by SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::clockStep(), SDFstateSpacePriorityListScheduler::TransitionSystem::clockStep(), SDFstateSpaceListScheduler::TransitionSystem::clockStep(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::clockStep(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::clockStep(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::computeTileUtilization(), LoadBalanceBinding::constructStaticOrderSchedules(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::execSDFgraph(), SDFstateSpacePriorityListScheduler::TransitionSystem::execSDFgraph(), SDFstateSpaceListScheduler::TransitionSystem::execSDFgraph(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::execSDFgraph(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::execSDFgraph(), SDFstateSpacePriorityListScheduler::TransitionSystem::initStaticOrderSchedules(), SDFstateSpaceListScheduler::TransitionSystem::initStaticOrderSchedules(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::initTracing(), LoadBalanceBinding::reconstructStaticOrderSchedules(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceAdvanceClocks(), and SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceProductionToken().
void BindingAwareSDFG::setScheduleOnTile | ( | CId | tileId, | |
StaticOrderSchedule & | s | |||
) | [inline] |
References schedule.
Member Data Documentation
vector< CId > BindingAwareSDFG::actorBinding [private] |
vector< CId > BindingAwareSDFG::channelBinding [private] |
uint BindingAwareSDFG::nrTiles [private] |
Referenced by extractActorMapping(), and nrTilesInPlatformGraph().
vector< StaticOrderSchedule > BindingAwareSDFG::schedule [private] |
Referenced by createMappedChannelToConnectionMPFlow(), extractActorMapping(), getScheduleOnTile(), and setScheduleOnTile().
vector< SDFtime > BindingAwareSDFG::tdmaSize [private] |
Referenced by extractActorMapping(), and getTDMAsizeOnTile().
vector< SDFtime > BindingAwareSDFG::tdmaSlice [private] |
Referenced by extractActorMapping(), and getTDMAsliceOnTile().
The documentation for this class was generated from the following files: