SDFstateSpaceTraceInterconnectCommunication::TransitionSystem Class Reference
Member Typedef Documentation
typedef States::iterator SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::StatesIter |
typedef struct SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::Token [private] |
Token Container for traced token information.
Constructor & Destructor Documentation
SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::TransitionSystem | ( | BindingAwareSDFG * | bg, | |
PlatformGraph * | pg | |||
) | [inline] |
References bindingAwareSDFG, checkBindingAwareSDFG(), initOutputActor(), initTracing(), and platformGraph.
SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::~TransitionSystem | ( | ) |
~TransitionSystem () Destructor.
References dstTileCh, firstTokenCh, isChannelTraced, lastProdTokenCh, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::next, nextConsTokenCh, srcTileCh, tileClock, and tokens.
Member Function Documentation
bool SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::actorReadyToEnd | ( | SDFactor * | a | ) | [private] |
actorReadyToEnd () The function returns true when the actor is ready to end its firing. Else the function returns false.
References SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::actClk, currentState, and SDFcomponent::getId().
Referenced by execSDFgraph().
bool SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::actorReadyToFire | ( | SDFactor * | a | ) | [private] |
actorReadyToFire () The function returns true when the actor is ready to fire in state s. Else it returns false.
References bindingAwareSDFG, c, CH_TOKENS, BindingAwareSDFG::getBindingOfActorToTile(), SDFport::getChannel(), SDFcomponent::getId(), SDFport::getRate(), SDFport::getType(), SDFactor::portsBegin(), SDFactor::portsEnd(), and SOS_ENTRY.
Referenced by execSDFgraph().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::checkBindingAwareSDFG | ( | ) | [private] |
checkBindingAwareSDFG () The function performs some sanity checks on the binding-aware SDFG
References ACTOR_NOT_BOUND, SDFgraph::actorsBegin(), SDFgraph::actorsEnd(), bindingAwareSDFG, BindingAwareSDFG::getBindingOfActorToTile(), and BindingAwareSDFG::getScheduleOnTile().
Referenced by TransitionSystem().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::clearStoredStates | ( | ) | [inline, private] |
References storedStates.
Referenced by execSDFgraph().
SDFtime SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::clockStep | ( | ) | [private] |
clockStep () The function progresses time till the first end of firing transition becomes enabled. The time step is returned. In case of deadlock, the time step is equal to UINT_MAX.
References a, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::actClk, bindingAwareSDFG, currentState, BindingAwareSDFG::getTDMAsizeOnTile(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::glbClk, SDFgraph::nrActors(), BindingAwareSDFG::nrTilesInPlatformGraph(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::tdmaPos, and traceAdvanceClocks().
Referenced by execSDFgraph().
TTime SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::computeLengthPeriodicPhase | ( | const StatesIter | cycleIter | ) | [private] |
computeLengthPeriodicPhase () The function returns the length (in time-units) of the periodic phase.
References SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::glbClk, and storedStates.
Referenced by execSDFgraph().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::computeScheduleExtensions | ( | TTime | lengthPeriodicPhase, | |
uint | slotTableSize, | |||
TTime * | shiftStartTransPhase, | |||
TTime * | shiftEndTransPhase, | |||
TTime * | duplicationPeriodicPhase | |||
) | [private] |
computeScheduleExtensions () The periodic behavior with which messages are communicated may not be a multiple of the slot-table size. The same may hold for the overlap between the transient and periodic phase. The NoC scheduling algorithm requires that both the periods and the overlap are a multiple of the slot table. This is needed to guarantee a contention-free schedule of the messages. This requirement can be met by shifting the start and end time of the transient schedule and duplicating the periodic schedule for a integer number of times. The function computes the required extensions and duplication.
References bindingAwareSDFG, SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::consTime, dstTileCh, firstToken, firstTokenCh, SDFcomponent::getId(), Tile::getProcessor(), Processor::getReservedTimeSlice(), PlatformGraph::getTile(), Processor::getTimewheelSize(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::inPeriodicPhase, isChannelTraced, lcm(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::next, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::nextInChannel, platformGraph, and SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::prodTime.
Referenced by traceConstructMessages().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::endActorFiring | ( | SDFactor * | a | ) | [private] |
endActorFiring () Produce tokens on all output channels and remove the actor firing from the list of active firings.
References SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::actClk, bindingAwareSDFG, c, currentState, BindingAwareSDFG::getBindingOfActorToTile(), SDFport::getChannel(), SDFcomponent::getId(), SDFport::getRate(), SDFport::getType(), SDFactor::portsBegin(), SDFactor::portsEnd(), PRODUCE, SOS_NEXT_POS, SOS_POS, and traceProductionToken().
Referenced by execSDFgraph().
TTime SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::execSDFgraph | ( | ) | [private] |
execSDFgraph() Execute the SDF graph till a deadlock is found or a recurrent state. The length of the periodic phase is returned.
References a, actorReadyToEnd(), actorReadyToFire(), SDFgraph::actorsBegin(), SDFgraph::actorsEnd(), bindingAwareSDFG, c, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::ch, CH, SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::clear(), clearStoredStates(), clockStep(), computeLengthPeriodicPhase(), currentState, endActorFiring(), foundPeriodicState, SDFcomponent::getId(), SDFchannel::getInitialTokens(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::glbClk, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::init(), isTracingCompleted(), SDFgraph::nrActors(), SDFgraph::nrChannels(), BindingAwareSDFG::nrTilesInPlatformGraph(), outputActor, outputActorRepCnt, periodicState, previousState, SOS_POS, startActorFiring(), storeState(), and TDMA_POS.
Referenced by traceCommunication().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::initOutputActor | ( | ) | [private] |
initOutputActor () The function selects an actor to be used as output actor in the state transition system.
References a, SDFgraph::actorsBegin(), SDFgraph::actorsEnd(), bindingAwareSDFG, FSMSADF::computeRepetitionVector(), SDFcomponent::getId(), outputActor, and outputActorRepCnt.
Referenced by TransitionSystem().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::initTracing | ( | ) | [private] |
initTracing () Initialize all data structures needed for the token tracing.
References ACTOR_NOT_BOUND, bindingAwareSDFG, c, SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), dstTileCh, firstToken, firstTokenCh, foundPeriodicState, BindingAwareSDFG::getBindingOfActorToTile(), SDFchannel::getDstActor(), SDFcomponent::getId(), SDFchannel::getSrcActor(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::init(), isChannelTraced, lastProdTokenCh, nextConsTokenCh, SDFgraph::nrActors(), SDFgraph::nrChannels(), BindingAwareSDFG::nrTilesInPlatformGraph(), periodicState, srcTileCh, tileClock, and tokens.
Referenced by TransitionSystem().
bool SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::isTracingCompleted | ( | ) | [private] |
isTracingCompleted () The function checks wether the tracing of all tokens is completed. On completion, it returns true. Else it returns false. The tracing is completed once the periodic state is found and all tokens produced till this state is found are also consumed.
References bindingAwareSDFG, foundPeriodicState, nextConsTokenCh, and SDFgraph::nrChannels().
Referenced by execSDFgraph().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::startActorFiring | ( | TimedSDFactor * | a | ) | [private] |
startActorFiring () Start the actor firing. Remove tokens from all input channels and add the actor firing to the list of active actor firings and advance sequence position.
References SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::actClk, bindingAwareSDFG, c, CONSUME, currentState, BindingAwareSDFG::getBindingOfActorToTile(), SDFport::getChannel(), TimedSDFactor::getExecutionTime(), SDFcomponent::getId(), SDFport::getRate(), BindingAwareSDFG::getTDMAsizeOnTile(), BindingAwareSDFG::getTDMAsliceOnTile(), SDFport::getType(), SDFactor::portsBegin(), SDFactor::portsEnd(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::tdmaPos, and traceConsumptionToken().
Referenced by execSDFgraph().
bool SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::storeState | ( | State & | s, | |
StatesIter & | pos | |||
) | [private] |
storeState () The function stores the state s on whenever s is not already in the list of storedStates. When s is stored, the function returns true. When the state s is already in the list, the state s is not stored. The function returns false. The function always sets the pos variable to the position where the state s is in the list.
References storedStates.
Referenced by execSDFgraph().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceAdvanceClocks | ( | const SDFtime | step | ) | [private] |
traceAdvanceClocks () The function increases the clocks of all tiles with one time unit.
References bindingAwareSDFG, BindingAwareSDFG::nrTilesInPlatformGraph(), and tileClock.
Referenced by clockStep().
CNode * SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceCommunication | ( | uint | slotTableSize | ) |
traceCommunication () The function generates a trace of all communication over the interconnect of a mapped and scheduled SDFG on a NoC-based platform. The relation between the communication in the transient and periodic part of the schedule is also included.
References execSDFgraph(), and traceConstructMessages().
Referenced by SDFstateSpaceTraceInterconnectCommunication::trace().
CNode * SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceConstructMessages | ( | uint | slotTableSize, | |
TTime | lengthPeriodicPhase | |||
) | [private] |
traceConstructMessages () The function returns two sets of messages. One set contains all tokens (messages) which belong to the transient part of the execution. The other set contains all tokens which belong to the periodic part of the execution.
References bindingAwareSDFG, CAddAttribute(), CAddNode(), CNewNode(), computeScheduleExtensions(), SDFcomponent::getName(), traceMarkTokensInPeriodicPhase(), traceMessagesPeriodic(), and traceMessagesTransient().
Referenced by traceCommunication().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceConsumptionToken | ( | const CId & | ch, | |
const uint & | rate, | |||
const SDFtime & | delay | |||
) | [private] |
traceConsumptionToken () Trace the consumption of a token on the given channel.
References SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::consTime, dstTileCh, isChannelTraced, nextConsTokenCh, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::nextInChannel, and tileClock.
Referenced by startActorFiring().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceMarkTokensInPeriodicPhase | ( | ) | [private] |
traceMarkTokensInPeriodicPhase () The function must be called after the SDFG is executed. It marks all tokens as beloning to the periodic phase or not.
References firstToken, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::inPeriodicPhase, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::next, periodicState, and SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::state.
Referenced by traceConstructMessages().
TTime SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceMessagesPeriodic | ( | TTime | duplicationPeriodicPhase, | |
TTime | lengthPeriodicPhase, | |||
CNode * | msgPeriodicNode | |||
) | [private] |
traceMessagesPeriodic () The function adds a list of all messages (tokens) sent in the periodic phase of the SDFG execution to the msgPeriodicNode. The function returns the overlap between the periodic and transient schedule.
References bindingAwareSDFG, CAddAttribute(), CAddNode(), SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::consTime, dstTileCh, firstToken, firstTokenCh, SDFcomponent::getId(), SDFcomponent::getName(), ArchComponent::getName(), Tile::getProcessor(), Processor::getReservedTimeSlice(), PlatformGraph::getTile(), Processor::getTimewheelSize(), TimedSDFchannel::getTokenSize(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::inPeriodicPhase, isChannelTraced, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::next, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::nextInChannel, SDFgraph::nrChannels(), platformGraph, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::prodTime, and srcTileCh.
Referenced by traceConstructMessages().
TTime SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceMessagesTransient | ( | TTime | shiftStartTransPhase, | |
TTime | shiftEndTransPhase, | |||
CNode * | msgTransNode | |||
) | [private] |
traceMessagesTransient () The function adds a list of all messages (tokens) sent in the transient phase of the SDFG execution to the msgTransNode. It returns the period (length) of the transient phase.
References bindingAwareSDFG, CAddAttribute(), CAddNode(), SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::consTime, dstTileCh, firstTokenCh, SDFcomponent::getId(), SDFcomponent::getName(), ArchComponent::getName(), Tile::getProcessor(), Processor::getReservedTimeSlice(), PlatformGraph::getTile(), Processor::getTimewheelSize(), TimedSDFchannel::getTokenSize(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::id, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::inPeriodicPhase, isChannelTraced, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::nextInChannel, platformGraph, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::prodTime, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::seqNr, and srcTileCh.
Referenced by traceConstructMessages().
void SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::traceProductionToken | ( | const CId & | ch, | |
const uint & | rate | |||
) | [private] |
traceProductionToken () Trace the production of a token on the given channel.
References bindingAwareSDFG, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::channelId, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::State::clear(), firstToken, firstTokenCh, foundPeriodicState, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::id, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::inPeriodicPhase, isChannelTraced, lastProdTokenCh, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::next, nextConsTokenCh, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::nextInChannel, SDFgraph::nrActors(), SDFgraph::nrChannels(), BindingAwareSDFG::nrTilesInPlatformGraph(), SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::prodTime, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::seqNr, srcTileCh, SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::_Token::state, storedStates, tileClock, and tokens.
Referenced by endActorFiring().
Member Data Documentation
BindingAwareSDFG* SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::bindingAwareSDFG [private] |
Referenced by actorReadyToFire(), checkBindingAwareSDFG(), clockStep(), computeScheduleExtensions(), endActorFiring(), execSDFgraph(), initOutputActor(), initTracing(), isTracingCompleted(), startActorFiring(), traceAdvanceClocks(), traceConstructMessages(), traceMessagesPeriodic(), traceMessagesTransient(), traceProductionToken(), and TransitionSystem().
Referenced by actorReadyToEnd(), clockStep(), endActorFiring(), execSDFgraph(), and startActorFiring().
Referenced by execSDFgraph(), initTracing(), isTracingCompleted(), and traceProductionToken().
Referenced by initTracing(), traceProductionToken(), and ~TransitionSystem().
Referenced by initTracing(), isTracingCompleted(), traceConsumptionToken(), traceProductionToken(), and ~TransitionSystem().
Referenced by execSDFgraph(), and initOutputActor().
Referenced by execSDFgraph(), and initOutputActor().
Referenced by execSDFgraph(), initTracing(), and traceMarkTokensInPeriodicPhase().
PlatformGraph* SDFstateSpaceTraceInterconnectCommunication::TransitionSystem::platformGraph [private] |
Referenced by computeScheduleExtensions(), traceMessagesPeriodic(), traceMessagesTransient(), and TransitionSystem().
Referenced by execSDFgraph().
Referenced by initTracing(), traceMessagesPeriodic(), traceMessagesTransient(), traceProductionToken(), and ~TransitionSystem().
Referenced by clearStoredStates(), computeLengthPeriodicPhase(), storeState(), and traceProductionToken().
Referenced by initTracing(), traceAdvanceClocks(), traceConsumptionToken(), traceProductionToken(), and ~TransitionSystem().
Referenced by initTracing(), traceProductionToken(), and ~TransitionSystem().
The documentation for this class was generated from the following files: