SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem Class Reference

Collaboration diagram for SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem:

List of all members.

Classes

class  State

Public Types

typedef list< StateStates
typedef States::iterator StatesIter

Public Member Functions

 TransitionSystem (BindingAwareSDFG *bg)
 ~TransitionSystem ()
TDtime execSDFgraph (const TBufSize *sp, bool *dep, bool *bufferChannels)

Private Member Functions

bool storeState (State &s, StatesIter &pos)
void clearStoredStates ()
void dfsVisitDependencies (uint a, int *color, int *pi, bool **abstractDepGraph, bool *dep)
void findStorageDependencies (bool **abstractDepGraph, bool *dep, bool *bufferChannels)
void findCausalDependencies (SDFactor *a, bool **abstractDepGraph)
void analyzePeriodicPhase (bool *dep, bool *bufferChannels)
void analyzeDeadlock (bool *dep, bool *bufferChannels)
TDtime computeThroughput (const StatesIter cycleIter)
bool actorReadyToFire (SDFactor *a)
void startActorFiring (TimedSDFactor *a)
bool actorReadyToEnd (SDFactor *a)
void endActorFiring (SDFactor *a)
SDFtime clockStep ()
void initOutputActor ()
void checkBindingAwareSDFG ()

Private Attributes

BindingAwareSDFGbindingAwareSDFG
SDFactoroutputActor
TCnt outputActorRepCnt
State currentState
State previousState
States storedStates

Member Typedef Documentation


Constructor & Destructor Documentation

SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::TransitionSystem ( BindingAwareSDFG bg  )  [inline]

References bindingAwareSDFG, checkBindingAwareSDFG(), and initOutputActor().

Here is the call graph for this function:

SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::~TransitionSystem (  )  [inline]

Member Function Documentation

bool SDFstateSpaceBindingAwareBufferAnalysis::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 SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::State::actClk, currentState, and SDFcomponent::getId().

Referenced by analyzePeriodicPhase(), and execSDFgraph().

Here is the call graph for this function:

bool SDFstateSpaceBindingAwareBufferAnalysis::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 analyzePeriodicPhase(), and execSDFgraph().

Here is the call graph for this function:

void SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::analyzeDeadlock ( bool *  dep,
bool *  bufferChannels 
) [private]
void SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::analyzePeriodicPhase ( bool *  dep,
bool *  bufferChannels 
) [private]
void SDFstateSpaceBindingAwareBufferAnalysis::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().

Here is the call graph for this function:

void SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::clearStoredStates (  )  [inline, private]

References storedStates.

Referenced by execSDFgraph().

SDFtime SDFstateSpaceBindingAwareBufferAnalysis::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, SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::State::actClk, bindingAwareSDFG, currentState, BindingAwareSDFG::getTDMAsizeOnTile(), SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::State::glbClk, SDFgraph::nrActors(), BindingAwareSDFG::nrTilesInPlatformGraph(), and SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::State::tdmaPos.

Referenced by analyzePeriodicPhase(), and execSDFgraph().

Here is the call graph for this function:

TDtime SDFstateSpaceBindingAwareBufferAnalysis::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 SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::State::glbClk, and storedStates.

Referenced by execSDFgraph().

void SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::dfsVisitDependencies ( uint  a,
int *  color,
int *  pi,
bool **  abstractDepGraph,
bool *  dep 
) [private]

dfsVisitDependencies () The function performs a DFS on the abstract dependency graph from a node a to find all cycles of which a is part. Channels on a cycle are when needed marked to have a storage dependency.

References bindingAwareSDFG, c, SDFgraph::channelsBegin(), SDFgraph::channelsEnd(), SDFchannel::getDstActor(), SDFcomponent::getId(), SDFchannel::getSrcActor(), and SDFgraph::nrActors().

Referenced by findStorageDependencies().

Here is the call graph for this function:

void SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::endActorFiring ( SDFactor a  )  [private]

endActorFiring () Produce tokens on all output channels and remove the actor firing from the list of active firings.

References SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::State::actClk, bindingAwareSDFG, c, currentState, BindingAwareSDFG::getBindingOfActorToTile(), SDFport::getChannel(), SDFcomponent::getId(), SDFport::getRate(), SDFport::getType(), SDFactor::portsBegin(), SDFactor::portsEnd(), PRODUCE, SOS_NEXT_POS, and SOS_POS.

Referenced by analyzePeriodicPhase(), and execSDFgraph().

Here is the call graph for this function:

void SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::findCausalDependencies ( SDFactor a,
bool **  abstractDepGraph 
) [private]

findCausalDependencies () The function tracks all causal dependencies in the actor firing of actor a. Any causal dependency that is found is added to the abstract dependency graph.

References c, CH_TOKENS_PREV, SDFport::getChannel(), SDFchannel::getDstActor(), SDFcomponent::getId(), SDFport::getRate(), SDFchannel::getSrcActor(), SDFport::getType(), SDFactor::portsBegin(), and SDFactor::portsEnd().

Referenced by analyzePeriodicPhase().

Here is the call graph for this function:

void SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::findStorageDependencies ( bool **  abstractDepGraph,
bool *  dep,
bool *  bufferChannels 
) [private]

findStorageDependencies () The function find all cycles in the abstract dependency graph. Any channel modeling storage space which is part of a cycle is marked to have a storage dependency.

References bindingAwareSDFG, c, color, dfsVisitDependencies(), SDFgraph::nrActors(), SDFgraph::nrChannels(), and pi.

Referenced by analyzeDeadlock(), and analyzePeriodicPhase().

Here is the call graph for this function:

void SDFstateSpaceBindingAwareBufferAnalysis::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().

Here is the call graph for this function:

void SDFstateSpaceBindingAwareBufferAnalysis::TransitionSystem::startActorFiring ( TimedSDFactor a  )  [private]
bool SDFstateSpaceBindingAwareBufferAnalysis::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


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