SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem Class Reference
Classes | |
class | State |
Public Types | |
typedef list< State > | States |
typedef States::iterator | StatesIter |
Public Member Functions | |
TransitionSystem (BindingAwareSDFG *bg) | |
~TransitionSystem () | |
TDtime | execSDFgraph (vector< double > &tileUtilization) |
Private Member Functions | |
bool | storeState (State &s, StatesIter &pos) |
void | clearStoredStates () |
TDtime | computeThroughput (const StatesIter cycleIter) |
void | computeTileUtilization (const StatesIter recurrentState, vector< double > &tileUtilization) |
bool | actorReadyToFire (SDFactor *a) |
void | startActorFiring (TimedSDFactor *a) |
bool | actorReadyToEnd (SDFactor *a) |
void | endActorFiring (SDFactor *a) |
SDFtime | clockStep () |
void | initOutputActor () |
void | checkBindingAwareSDFG () |
Private Attributes | |
BindingAwareSDFG * | bindingAwareSDFG |
SDFactor * | outputActor |
TCnt | outputActorRepCnt |
State | currentState |
State | previousState |
States | storedStates |
Member Typedef Documentation
typedef States::iterator SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::StatesIter |
Constructor & Destructor Documentation
SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::TransitionSystem | ( | BindingAwareSDFG * | bg | ) | [inline] |
References bindingAwareSDFG, checkBindingAwareSDFG(), and initOutputActor().
SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::~TransitionSystem | ( | ) | [inline] |
Member Function Documentation
bool SDFstateSpaceBindingAwareThroughputAnalysis::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 SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::actClk, currentState, and SDFcomponent::getId().
Referenced by execSDFgraph().
bool SDFstateSpaceBindingAwareThroughputAnalysis::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 SDFstateSpaceBindingAwareThroughputAnalysis::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 SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::clearStoredStates | ( | ) | [inline, private] |
References storedStates.
Referenced by execSDFgraph().
SDFtime SDFstateSpaceBindingAwareThroughputAnalysis::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, SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::actClk, bindingAwareSDFG, currentState, BindingAwareSDFG::getTDMAsizeOnTile(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::glbClk, SDFgraph::nrActors(), BindingAwareSDFG::nrTilesInPlatformGraph(), and SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::tdmaPos.
Referenced by execSDFgraph().
TDtime SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::computeThroughput | ( | const StatesIter | cycleIter | ) | [private] |
computeThroughput () The function calculates the throughput of the states on the cycle. Its value is equal to the average number of firings of an actor per time unit.
References SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::glbClk, and storedStates.
Referenced by execSDFgraph().
void SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::computeTileUtilization | ( | const StatesIter | recurrentState, | |
vector< double > & | tileUtilization | |||
) | [private] |
computeTileUtilization () The function calculates the fraction of the time that a processor is busy during the periodic part of the execution.
References a, ACTOR_NOT_BOUND, SDFgraph::actorsBegin(), SDFgraph::actorsEnd(), bindingAwareSDFG, FSMSADF::computeRepetitionVector(), BindingAwareSDFG::getBindingOfActorToTile(), TimedSDFactor::getExecutionTime(), SDFcomponent::getId(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::glbClk, BindingAwareSDFG::nrTilesInPlatformGraph(), and storedStates.
Referenced by execSDFgraph().
void SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::endActorFiring | ( | SDFactor * | a | ) | [private] |
endActorFiring () Produce tokens on all output channels and remove the actor firing from the list of active firings.
References SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::actClk, bindingAwareSDFG, c, currentState, BindingAwareSDFG::getBindingOfActorToTile(), SDFport::getChannel(), SDFcomponent::getId(), SDFcomponent::getName(), SDFport::getRate(), SDFport::getType(), SDFactor::portsBegin(), SDFactor::portsEnd(), PRODUCE, SOS_NEXT_POS, and SOS_POS.
Referenced by execSDFgraph().
TDtime SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::execSDFgraph | ( | vector< double > & | tileUtilization | ) |
execSDFgraph() Execute the SDF graph till a deadlock is found or a recurrent state. The throughput is returned.
References a, actorReadyToEnd(), actorReadyToFire(), SDFgraph::actorsBegin(), SDFgraph::actorsEnd(), bindingAwareSDFG, c, SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::ch, CH, SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::clear(), clearStoredStates(), clockStep(), computeThroughput(), computeTileUtilization(), currentState, endActorFiring(), SDFcomponent::getId(), SDFchannel::getInitialTokens(), SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::glbClk, SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::init(), SDFgraph::nrActors(), SDFgraph::nrChannels(), BindingAwareSDFG::nrTilesInPlatformGraph(), outputActor, outputActorRepCnt, previousState, SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::print(), SOS_POS, startActorFiring(), storeState(), and TDMA_POS.
Referenced by SDFstateSpaceBindingAwareThroughputAnalysis::analyze().
void SDFstateSpaceBindingAwareThroughputAnalysis::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 SDFstateSpaceBindingAwareThroughputAnalysis::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 SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::actClk, bindingAwareSDFG, c, CONSUME, currentState, BindingAwareSDFG::getBindingOfActorToTile(), SDFport::getChannel(), TimedSDFactor::getExecutionTime(), SDFcomponent::getId(), SDFcomponent::getName(), SDFport::getRate(), BindingAwareSDFG::getTDMAsizeOnTile(), BindingAwareSDFG::getTDMAsliceOnTile(), SDFport::getType(), SDFactor::portsBegin(), SDFactor::portsEnd(), and SDFstateSpaceBindingAwareThroughputAnalysis::TransitionSystem::State::tdmaPos.
Referenced by execSDFgraph().
bool SDFstateSpaceBindingAwareThroughputAnalysis::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().
Member Data Documentation
Referenced by actorReadyToEnd(), clockStep(), endActorFiring(), execSDFgraph(), and startActorFiring().
Referenced by execSDFgraph(), and initOutputActor().
Referenced by execSDFgraph(), and initOutputActor().
Referenced by execSDFgraph().
Referenced by clearStoredStates(), computeThroughput(), computeTileUtilization(), and storeState().
The documentation for this class was generated from the following files: